|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 4608 (0x1200)
Types: TextFile
Names: »hctimerinit«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »hctimerinit«
;;+++++++++++++++++++++++++++++++++++++
;; 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+1<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: 0 ; 10 ; most sgnf. byte to rtimer 0.
c14: 255 ; 127 ; leats sgnf. byte to timer 1.
c22: 255 ; 10 ; most sgnf. byte to timewr 2.
c24: 255 ; 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.
rl. w2 c21. ; select control reg 1 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◀