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

⟦c7daf4b7c⟧ TextFile

    Length: 10752 (0x2a00)
    Types: TextFile
    Names: »kkmonret4«

Derivation

└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ.  Detaljer om "HC8000" projekt.
    └─⟦0364f57e3⟧ 
        └─⟦80d78256e⟧ »kkmon4filer« 
            └─⟦this⟧ 

TextFile

(
message monchange release 7.0 to 7.14
clear temp mondef moncentral monprocs,
montabinit monprocfnc1 monprocfnc2 monmaster  ,
mdef mcentral mprocs,
mtabinit mprocfnc1 mprocfnc2 mmaster
contract entry.kkmon4filer mondef moncentral monprocs,
montabinit monprocfnc1 monprocfnc2 monmaster   

skip 36.1
c=copy mess.no 1
mdef=assign mondef

skip 36.1
c=copy mess.no 1
mcentral=set 1 disc3
mcentral=edit moncentral

skip 36.1
c=copy mess.no 1
mprocs=set 1 disc3
mprocs=edit monprocs

skip 36.1
c=copy mess.no 1
mtabinit=set 1 disc3
mtabinit=edit montabinit

skip 36.1
c=copy mess.no 1
mprocfnc1=set 1 disc3
mprocfnc1=edit monprocfnc1

skip 36.1
c=copy mess.no 1
mprocfnc2=set 1 disc3
mprocfnc2=edit monprocfnc2

skip 36.1
c=copy mess.no 1
mmaster=set 1 disc3
mmaster=edit monmaster

head cpu
end)



$def
;********************
f


$central
;********************
l./c6:/,l-4,d./ria179/,d./e./,i/
b. w.
c6:  al  w3     1
     jl         -1  ; hard stop
;
; power up
;
c25:
c. a430
     jl. w3     d37. ; init cpu1
z.
     al  w3     b49 ; power up element
     gp  w3     b91 ;
     ri         a179; goto start proc
e.
;
/,
l./d7:ggw2b94/,d-1,i/
b. i15 w.
i14: 1<23+4<3+2.100   ; timer 2 most significant
i15: 1<23+5<3+2.100   ; timer 2 least significant
i13: 0
d7:  di. w0    (i14.) ; read most significant
     ls  w0     8     ;
     di. w2    (i15.) ; read least significant
     wa  w2     0     ; w2:=most<8+least
     ws. w2     i9.   ; -cw:= - 1<16 + most<8 +least
     ac  w2     x2    ;
/,
l./d35:/,g 2/.(2)/ x3/,f

$procs
;********************
l./e50  /,r/e50/c99/,
l./e58:/,l1,i/
m. -------------------- 
c.-1
/,l./i55:/,l./e./,l1,i/
z.,m. ++++++++++++++++++++
/,l./c21:/,i/
b. i5,h5 w.
/,l./c99/,i/
    ws  w2  b0        ; w2:=interrupt level
rl w3 x2+1164
al w3 x3+1
rs w3 x2+1164
     bz  w0  x1+a13    ; w0:=state
     sn  w0     a104   ; if state=wait event then
     jl.        i0.    ; goto start driver
     am      x2-16     ; else save interrupt level
     rs  w2  x1+a302+2 ; in save area.proc
     jl         c99    ; and return from interrupt
i0:  rs  w2  x1+a28
/,l./d10/,l1,i/
e.
/,l./end of service for cpu(i)/,
l./segment3/,l./b127/,l1,i/
g2=g3
/,l./e3:/,l./g2;8:/,r/g2/h8/,
l./h72;72:/,i/
m. --------------------
c.-1
/,l./h3=g6/,i/
z.,m. ++++++++++++++++++++
/,l./78clockdriver/,l./remoterprocess/,i/
h8:              ; driver
                 ; w0 : undef
                 ; w1 = sender
                 ; w2 = buf
                 ; w3 = proc
;p.<:ttydriv:>

m. --------------------
c.-1
/,f
$tabinit
;*****************
i/
z.,m. ++++++++++++++++++++
/,l./f0:/,l./h22/,i/
m. ------------------
c.-1
/,l./h24/,i/
z.,m. ++++++++++++++++++++
/,
l./b54/,r/b54/8;***microprogram error/,
l./b.i10/,d./j6:/,i/
b. i0  w.
h1:  0,r.a180>1     ; reg dump
h0:
c. -1
     rl. w1  i0.    ;
     al  w1  x1+1   ;
     rs. w1  i0.    ;
     gp  w1  64     ; write test register
i0:0
z.
     jl.    0       ; dummy loop
/,
l./b54/,r/b54/8;***microprogram error should be 7/,
l./dummyexternal/,i/
m. --------------------
c.-1
/,l./h23:/,l2,i/
z.,m. ++++++++++++++++++++
/,l./segment5:/,l./;get n/,d./gpw1/,i/
     al  w1     1024;
     ls  w1     6   ; core size is initiality set to 32 K words
/,l./,b89/,r/b89/  0/,l./a66/,r/a66/  0/,l./b86/,r/b86/  0/,f
$procfnc1
;********************
l./b60:/,l./d8:/,l-1,i/
m. -------------------- 
w.
c.-1
/,l./d12:/,l-2,i/
z.,m. ++++++++++++++++++++
/,l./;pro/,i/
m. --------------------
c. -1

/,l./e15:/,l./;pr/,i/
z.,m. ++++++++++++++++++++
/,l./e24:/,l./g3:/,l./e.;/,l1,i/
m. -------------------- 
c.-1
/,l./g4:/,l./;the/,i/
z.,m. ++++++++++++++++++++
/,l./h1:/,l2,i/
m. --------------------
c.-1
/,l./e42:/,l./h0:/,l2,i/
z.,m. ++++++++++++++++++++
/,l./e44:/,l./e.;/,l1,i/
m. --------------------
c.-1
/,l./e48:/,l./h0:/,i/
z.,m. ++++++++++++++++++++
b. g20,h10 w.
/,l./g20:/,l./e.;/,l1,i/
m. --------------------
c.-1

/,l./e51:/,l./jlx2/,l1,i/
z.,m. ++++++++++++++++++++
/,l./n50:/,l./j0:/,l./e1./,i/
m. --------------------
c. -1
/,l./e7./,l1,i/
z.,m. ++++++++++++++++++++
/,f

$procfnc2
;****************
l./;btj1977/,i/
w.
m. -------------------- 
c.-1
/,l./m6:/,l2,i/
z.,m. ++++++++++++++++++++
/,l./jl.n0./,l1,i/
m. --------------------
c.-1

/,l./m11:/,l./;testname/,i/
z.,m. ++++++++++++++++++++
/,l./e24=k-2/,l1,i/
m. --------------------
c. -1
/,l./;testnew/,i/
z.,m. ++++++++++++++++++++
/,l./e45./,i/
m. --------------------
c. -1
/,l./b45/,l1,i/
z.,m. ++++++++++++++++++++
/,l./g8:/,l1,i/
m. --------------------
c. -1
/,l./n2./,i/
z.,m. ++++++++++++++++++++
/,l./;test/,i/
m. --------------------
c. -1
/,l./;subp/,i/
z.,m. ++++++++++++++++++++
/,l./e48./,i/
m. --------------------
c. -1
/,l./n6./,l1,i/
z.,m. ++++++++++++++++++++
/,l./d17:/,l./e./,l1,i/
m. -------------------- 
c.-1
/,l./d16:/,i/
z.,m. ++++++++++++++++++++
/,l./d15:/,l1,i/
m. --------------------
c.-1
/,l./m32:/,l./g8:/,l./;if not bs-dev/,i/
z.,m. ++++++++++++++++++++
/,l./n5=/,l1,i/
m. --------------------
c.-1
/,l./d21:/,i/
z.,m. ++++++++++++++++++++
d20: d2
/,l./d34:/,l1,i/
m. --------------------
c.-1

/,l./m64:/,l./;set/,i/
z.,m. ++++++++++++++++++++
/,l./;doc/,i/
m. --------------------
c.-1
/,l./m100:/,l./jl.e24./,l1,i/
z.,m. ++++++++++++++++++++
m101:
      jl.    e24.

m40:,m43:,m66:,m70:,m125:
m. --------------------
c.-1

/,l./m128/,l./;test/,i/
z.,m. ++++++++++++++++++++
/,l./m155:/,l./e25./,i/
m. --------------------
c. -1
/,l2,i/
z.,m. ++++++++++++++++++++
/,l./e25./,i/
m. --------------------
c. -1
/,l2,i/
z.,m. ++++++++++++++++++++
/,l./m00=m00/,i/
m. --------------------
c.-1
/,l./m155=m155/,i/
z.,m. ++++++++++++++++++++
m8=m8-n50,m13=m13-n50,m15=m15-n50,m16=m16-n50,m17=m17-n50
m34=m34-n50,m40=m40-n50,m43=m43-n50,m65=m65-n50
m66=m66-n50,m70=m70-n50,m101=m101-n50,m125=m125-n50,m149=m149-n50
m150=m150-n50,m151=m151-n50,m152=m152-n50,m153=m153-n50,m154=m154-n50
/,l./m260=/,i/
m. --------------------
c.-1
/,l./j0=/,i/
z., m. ++++++++++++++++++++
/,l./r7:/,l1,i/
h.
m. -------------------- 
c.-1

/,l./p46:/,l./;create per/,i/
z.,m. ++++++++++++++++++++
/,l./p35:/,l./;set/,i/
m. -------------------- 
c.-1

/,l./p39:/,l./m32;/,l1,i/
z.,m. ++++++++++++++++++++
/,l./p42:/,l./;pr/,i/
m. -------------------- 
c.-1

/,l./p44:/,l./n49:/,l./w./,i/
z.,m. ++++++++++++++++++++

n49:
h.
   r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,p27.,p28.,p29.
   p30.,p31.,p32.,r7. ,p34.,p35.,r7. ,r7. ,r7. ,r7. 
   p40.,r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. 
   r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. ,r7. 
   r7. ,r7. 
/,l./j5=/,l./;recordcatb/,i/
m. --------------------
c. -1
/,l./interruptadd/,i/
z.,m. ++++++++++++++++++++
/,l./e28:/,l-1,i/
m. --------------------
c.-1
/,l./g11:/,l./;def/,i/
z.,m. ++++++++++++++++++++
/,f
$master
;********************
l./i10:/,l1,i/
/,l./<:ver:>/,l./a24,1<7/,r/1/0/,l./<:er:>/,l./a24,1<7/,r/1/0/,
l./a24,1<7/,r/1/0/,
l./; segment 10/,l./i10,j10/,l./i3:/,l-1,i/
     ;; init of timer
     ;;++++++++++++++++++++++++++++++++++++
     ;; entry i0.
     ;; return address in w2.
     ;; destroyed w1.
b.   c40  w.           ;


                       ; constants for timer initialisation.
                       ; cr = control reg. in timer (1 ,2 ,3 )
                       ; interupt disabled from timer by 0<6
c10: 1<7+1<6+000<3+0<2+0<1+0; cr 1 operate all timers
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                 ; most sgnf. byte to rtimer 0.
c14:255                ; leats sgnf. byte to timer 1.
c22: 255               ; most sgnf. byte to timewr 2.
c24: 255               ; least sgnf. byte to timer 2.
c32: 0                 ; most sgnf. byte to timer 3.
c34: 49                ; least sgnf. byte to timer 3.



i9:                    ; init of timer.
     rs. w2  c29.      ; save return address.
     rl. w1  c21.      ; select control reg 1 as addrs 0.
     do. w1  (c1.)     ; write dev no 1.
     rl. w1  c11.      ; preset all timers.
     do. w1  (c0.)     ; write char dev. 0.
     rl. w1  c20.      ; 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.
     rl. w1  c21.      ; select cr as1 as addrs 0.
     do. w1  (c1.)     ; write char dev. 1.
     rl. w1  c32.      ; load most sgnf. counter 
                       ; value  to timer bufffer.
     do. w1  (c6.)     ; write char dev. no 6.
     rl. w1  c34.      ; load least signif. byte to counter 3.
     do. w1  (c7.)     ; write char dev. no. 7.
     rl. w1  c22.      ; load most sgnf. byte to counter 2.
     do. w1  (c4.)     ; write char dev. 4.
     rl. w1  c24.      ; load least sgnf. byte to counter 3.
     do. w1  (c5.)     ; write char dev. no. 5.
     rl. w1  c12.      ; load most sgnf. byte to counter 1.
     do. w1  (c2.)     ; write char dev. no. 2.
     rl. w1  c14.      ; 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.     (c29.)    ; return from subroutine.
c29: 0                 ; return address.
e.                     ; end block init of timer.
/,l./i3:/,l2,i/
     jl. w2     i9.    ; goto init timer
/,f
▶EOF◀