|
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«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ. └─⟦4334b4c0b⟧ └─⟦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+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◀