DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦032b82b7a⟧ TextFile

    Length: 4608 (0x1200)
    Types: TextFile
    Names: »hctimerinit«

Derivation

└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
    └─⟦4334b4c0b⟧ 
        └─⟦this⟧ »hctimerinit« 

TextFile


     ;;+++++++++++++++++++++++++++++++++++++
     ;; init of timer
     ;;++++++++++++++++++++++++++++++++++++
     ;; entry g0.
     ;; return address in w3.
     ;; destroyed w0,w1,w2.
     ;; timer is motorola mc6840
     ;; programable timer module (ptm)
     ;; for futhrr information see relevant
     ;; motolora documentation.
     ;; note it can be used to geive 
     ;; up to 3 different timer interupt
     ;; but it is not used here.
b.   c40  w.           ;


    ;; constants for timer initialisation.
    ;; cr = control reg. in timer (1 ,2 ,3 )
c10: 1<7+0<6+000<3+0<2+0<1+0; cr 1 operate all timers
    ;; interupt disabledfrom timer with 0<6 in c10,
    ;;          enabled with 1 < 6.
c11: 1<7+0<6<000<3+0<2+0<1+1; cr 1 preset all timers.
c20: 1<7+0<6+000<3+0<2+0<1+0; cr 2 select cr 3.
c21: 1<7+0<6+000<3+0<2+0<1+1; cr 2 select cr 1.
c30: 1<7+0<6+000<3+0<2+1<1+0; cr 3 no prescale.
c31: 1<7+0<6+000<3+0<2+1<1+1; cr 3 prescale.
                       ; device addrs for clock.
c0:  1<23+0<3+2.100    ;addrs for write cr 1 or 3.
                       ;         read nothing.

c1:  1<23+1<3+2.100    ; addrs write cr 2.
                       ; addrs read status reg..
c2:  1<23+2<3+2.100    ; addrs write most sgnf. byte
                       ;               buffer reg..
                       ; addrs read timer no 1 counter.
c3:  1<23+3<3+2.100    ; addrs write timer no 1 latches.
                       ; addrs read least sgnf. bytes
                       ;               buffer reg..
c4:  1<23+4<3+2.100    ; addrs write most sgnf. byte buffer
                       ;reg..
                       ; 
                       ; addrs read timer no 2 counter.
c5:  1<23+5<3+2.100    ; addrs write timer 2 latches.
                       ; read least sgnf. byte buffer reg..
c6:  1<23+6<3+2.100    ; addrs write most sgnf. byte buffer
                       ;reg..
                       ; addrs read timer 3 counter.
c7:  1<23+7<3+2.100    ; addrs write write timer no 3 latches.
                       ; addrs read least sgnf. byte buffer
                       ;reg..

c12: 10                ; most sgnf. byte to rtimer 0.
c14: 127               ; leats sgnf. byte to timer 1.
c22: 10                ; most sgnf. byte to timewr 2.
c24: 127               ; least sgnf. byte to timer 2.
c32: 0                 ; most sgnf. byte to timer 3.
c34: 49                ; least sgnf. byte to timer 3.



g0:                    ; init of timer.
     rl. w2  c21.      ; select control reg 1 as addrs 0.
     do. w2  (c1.)     ; write dev no 1.
     dl. w1  c20.      ; preset all timers.
     do. w0  (c0.)     ; write char dev. 0.
                       ; select cr 3 ass addrs 0.
     do. w1  (c1.)     ; write char dev. 1.
     rl. w1  c30.      ; set cr 3 no prescale.
     do. w1  (c0.)     ; swrite  char dev. 0.
                       ; select cr as1 as addrs 0.
     do. w2  (c1.)     ; write char dev. 1.
     dl. w1  c34.      ; load most sgnf. counter 
                       ; value  to timer bufffer.
     do. w0  (c6.)     ; write char dev. no 6.
                       ; load least signif. byte to counter 3.
     do. w1  (c7.)     ; write char dev. no. 7.
     dl. w1  c24.      ; load most sgnf. byte to counter 2.
     do. w0  (c4.)     ; write char dev. 4.
                       ; load least sgnf. byte to counter 3.
     do. w1  (c5.)     ; write char dev. no. 5.
     dl. w1  c14.      ; load most sgnf. byte to counter 1.
     do. w0  (c2.)     ; write char dev. no. 2.
                       ; load least sgnf. byte to counter 1.
     do. w1  (c3.)     ; write char dev. no. 3.
     rl. w1  c10.      ; send cr 1 operate all timers
     do. w1  (c0.)     ; write char dev. no. 0.
     di. w1  (c1.)     ; data in char dev. 1.
     jl     x3         ; return from subroutine.
e.                     ; end block init of timer.
▶EOF◀