|
|
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: 16896 (0x4200)
Types: TextFile
Names: »tdevtest «
└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer
└─⟦f546e193b⟧
└─⟦this⟧ »tdevtest «
(odevtest=slang
end)
b. s. h200 , a200, b200, e100
d.
p. <:fpnames:>
k = h55
l.
w. s0, s1 ;
jl. a06. ;
b00: 0 ; Used Share
b01: 0,0,0 ; Share 1 (State, First, Segno)
b02: 0,0,0 ; Share 2 (State, First, Segno)
b03: 0,0,0 ; Share 3 (State, First, Segno)
b04: 0 ; Current segment
b05: 3<12+0,0,0,0,0 ;
b06: 0,r.8 ; answer
b08: 0 ; okbits
b09: 0 ; online input, 0=false
b10: 0 ; online output, 0=false
b12: 0 ; startsegm for io
b13: 0 ; devno
b14: 0,0,0,0,0 ; entry (area) name;
b15: 0 ; antal segmenter pr blok
b16: 0 ; antal halvord pr blok
b17: 2500 ; max antal segmenter før forfra
b18: 0 ; antal segmenter ialt
b19: 3<12+0 ; input
b20: 5<12+0 ; output
b21: 10 ; ti
b22: 0 ; antal segmenter ialt før stop
b23: 0 ; max buflgd i segm
b24: 3 ; tre
b25: 0,0 ; starttid for aktuelle tidsmåling
b26: 0 ; antal ms/segm
b27: 0 ; antal io i denne tidsmåling
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
a01: ; ok.no warning.yes
al w2 3 ; ok.no, warning.yes
rs. w2 b08. ;
a05: rl. w1 b27. ; get antal io
sl w1 1 ; if antal > 0
jl. w3 e10. ; then udskriv antal overført
al. w0 e88. ; farveltext
jl. w3 e00. ; write
al. w3 b14. ; name
rl. w1 b13. ; devno
sl w1 1 ; if devno > 0
jd 1<11+64 ; remove process
rl. w2 b08. ; ok bits
jl. h7. ;
a06: ; initiering
;
; initier div
;
al w1 1 ; true
al w2 h1 ; processpart of zonedescr
;
el. w0 x2+h20.+1 ; get input
se w0 8 ; if terminal
sn w0 9 ; or console
rs. w1 b09. ; then online
;
el. w0 x2+h21.+1 ; get output
se w0 8 ; if terminal
sn w0 9 ; or console
rs. w1 b10. ; then online
;
rl. w0 b12. ; get startsegm
rs. w0 b04. ; gem som current segm
wa. w0 b17. ; læg startsegm til forfrasegm
rs. w0 b17. ; gem modificeret forfrasegm
;
;
; beregn max buflgd
;
rl. w3 h16. ; get own adress
rl w1 x3+24 ; last adr
al. w0 a99. ; first buf
ws w1 0 ; buflgd total = last adr - first buf
al w3 3 ; tre
al w0 0 ; w0/w1=buflgd total
wd w1 6 ; buflgd total // 3
ls w1 -9 ; buflgd // 512
rs. w1 b23. ; gem max buflgd
;
; read/write?
;
al. w0 e90. ; bed om read/write
jl. w3 e00. ; write (out..
a07: jl. w3 h25.-2 ; inchar
se w2 114 ; read
sn w2 119 ; write
jl. a08. ; ok
jl. a07. ; læs igen
a08: ; r/w læst
rl. w0 b19. ; input
se w2 114 ; read
rl. w0 b20. ; output
rs. w0 b05. ; io-type
jl. w3 e40. ; læs til nl;
;
; bloklgd?
;
al. w0 e91. ; bed om bloklgd
jl. w3 e42. ; read integer
rs. w0 b15. ; gem bloklgd og check
sh. w0 (b23.) ; højest ??
sh w0 0 ; mindst 1
jl. e08. ; ellers fejl
;
; segmenter ialt før stop
;
al. w0 e93. ; bed om segmenter før stop
jl. w3 e42. ; read integer
rs. w0 b22. ; gem stopsegm
;
; startsegm for io
;
al. w0 e89. ; bed om startsegm
jl. w3 e42. ; read integer
rs. w0 b12. ; gem startsegm
;
; devno
;
al. w0 e84. ; devno?
jl. w3 e42. ; read integer
rs. w0 b13. ; gem devno
;
; devicenavn?
;
al. w0 e86. ; device?
al. w2 b14. ; name
jl. w3 e45. ; læs text
;
; initier buffere mv.
;
al. w0 b03. ;
rs. w0 b00. ; used share := b03
rl. w0 b15. ; segmenter pr blok
ls w0 9 ; shift 9 = * 512 dvs som halvord
rs. w0 b16. ; halvord pr blok
;
al. w1 a99. ; start bufferarea
rs. w1 b01.+2 ; 1. buffer
wa. w1 b16. ; + bufferlængde
rs. w1 b02.+2 ; 2. buffer
wa. w1 b16. ; + bufferlængde
rs. w1 b03.+2 ; 3. buffer
;
rl. w2 b16. ; hw pr buf
wm. w2 b24. ; *3
a10:
al w2 x2-2 ; next adr
am. (b01.+2) ;
rs w2 x2+0 ; initier word
se w2 0 ; if not slut
jl. a10. ; then next
;
; create php. dev.
;
al w0 0 ; ok
al. w3 b14. ; name
rl. w1 b13. ; devno
sl w1 1 ; if devno > 0
jd 1<11+54 ; then create php.
se w0 0 ; if not ok
jl. e04. ; then goto eror (create)
;
; initialize mv.
;
rl. w1 b05. ; io-type
jd 1<11+6 ; initialize
sn. w1 (b20.) ; if output
jd 1<11+8 ; then reserve
se w0 0 ; if not ok then goto
jl. e07. ; error (reserve)
;
; init tidsmåling
;
jd 1<11+36 ; get clock
ds. w1 b25.+2 ; gem
;
; lav noget
;
a11: rl. w2 b00. ; Next Operation:
al w2 x2+6 ; Share No := Share No + 1;
sl. w2 b04. ; If share No > 3 Then Share No := 1;
al. w2 b01. ;
rs. w2 b00. ;
rl w2 x2 ; If State = active then
sn w2 0 ; begin
jl. a14. ;
;
rl. w1 b27. ; get antal io for denne tidsmåling
al w1 x1+1 ; + 1
rs. w1 b27. ; gem
;
al. w1 b06. ;
jd 1<11+18 ; wait answer (Used Share);
al w2 1 ; en
ls w2 (0) ; w2 := 1 shift result
sn w2 2 ; if ok
lo w2 x1 ; then w2 := result or status
rs. w2 (b00.) ; gem det
se w2 2 ; if not ok
jl. e02. ; then error..
rl. w0 b06.+2 ; hw transferred
se. w0 (b16.) ; if transferred <> bloklgd
jl. e03. ; then error..
a14: rl. w1 b04. ; hent segno
rl. w2 b00. ; hent share
rs. w1 b05.+6 ;
rs w1 x2+4 ;
rl w1 x2+2 ; op.first := used share.first
rs. w1 b05.+2 ;
al w1 x1-2 ;
wa. w1 b16. ; op.last := first + hw pr block - 2
rs. w1 b05.+4 ;
al. w1 b05. ;
al. w3 b14. ;
jd 1<11+16;
rs. w2 (b00.) ; share state := mess buffer address
a15: ; optæl segmeter overført
rl. w0 b15. ; antal segm pr blok
wa. w0 b18. ; + tidligere
rs. w0 b18. ; = segmenter ialt
;
; forfra?
;
rl. w1 b04. ; hent segno
wa. w1 b15. ; tæl op
sl. w1 (b17.) ; if segno < max
jl. a16. ;
jl. a12. ; then fortsæt
a16: ; else forfra
jl. w3 e10. ; write
rl. w1 b12. ; segno:=startsegm
;
; stop?
;
a12: rl. w2 b22. ; max antal segmenter
sh w2 0 ; if maxantal <= 0
jl. a13. ; then fortsæt i det uendelige
rl. w0 b18. ; segmenter overført
sl w0 x2 ; if antal overført >= maxantal
jl. a05. ; then slut..
a13:
rs. w1 b04. ; gem nyt segno
;
jl. a11. ; goto next Operation;
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; output
;
0 ; returadr
e00: rs. w3 e00.-2 ; write text, outend, w0 indeholder text
jl. w3 h31.-2 ; outtext
al w2 0 ;
jl. w3 h33.-2 ; outend
jl. (e00.-2) ; retur
0 ; returadr
e01: rs. w3 e01.-2 ; write integer, outend, w0 indeholder tal
jl. w3 h32.-2 ; outinteger
32<12+8 ; <<dddddddd>
al w2 0 ;
jl. w3 h33.-2 ; outend
jl. (e01.-2) ; retur
e02: al. w0 e81. ; bad result or status
jl. w3 h31.-2 ;
rl. w0 (b00.+0) ; result
jl. e09. ; write and terminate
e03: rs. w0 b05. ; hw transferred error
al. w0 e82. ;
jl. w3 h31.-2 ;
rl. w0 b05. ; hw
jl. e09. ; write and terminate
e04: rs. w0 b05. ; create area
al. w0 e83. ;
jl. w3 h31.-2 ;
rl. w0 b05. ; result
jl. e09. ; write and terminate
e05: rs. w0 b05. ; lookup
al. w0 e85. ;
jl. w3 h31.-2 ; result
rl. w0 b05. ;
jl. e09. ; write and terminate
e07: rs. w0 b05. ; reserve process
al. w0 e87. ;
jl. w3 h31.-2 ;
rl. w0 b05. ; result
jl. e09. ; write and terminate
e08: ; bloklængde angivelse
al. w0 e92. ;
jl. w3 h31.-2 ;
rl. w0 b23. ; max buflgd
jl. w3 h32.-2 ; write integer
32<12+1 ; <<d>
jl. a01. ; terminate
e09: jl. w3 e01. ; write integer
jl. a01. ; terminate program med ok.no
;
; forfra text
;
0 ; returadr
e10: rs. w3 e10.-2 ; write forfra text
;
jd 1<11+36 ; get clock
ss. w1 b25.+2 ; - starttid
wd. w1 b27. ; // antal io
al w0 0 ;
wd. w1 b21. ; // 10 (som ms)
rs. w1 b26. ; gem antal ms pr blok
;
al. w0 e97. ; forfra text sat til read
rl. w3 b05. ; hent io-type
se. w3 (b19.) ; if write
al. w0 e98. ; then forfra text sat til write
jl. w3 h31.-2 ; write (out..
al. w0 b14. ; disknavn
jl. w3 h31.-2 ; write (out..
rl. w0 b18. ; segmenter ialt
jl. w3 h32.-2 ; write (out..
32<12+8 ; <<dddddddd>
al. w0 e95. ; segmenter pr blok
jl. w3 h31.-2 ; write (out..
rl. w0 b15. ; bloklgd
jl. w3 h32.-2 ; write (out..
32<12+3 ; <<ddd>
al. w0 e96. ; ms/segm
jl. w3 h31.-2 ; write (out..
rl. w0 b26. ; ms
jl. w3 h32.-2 ; write (out..
32<12+3 ; <<ddd>
al w2 0 ;
jl. w3 h33.-2 ; outend
;
al w1 0 ; nul
rs. w1 b27. ; nulstil antal io for aktuelle måling
jd 1<11+36 ; get clock
ds. w1 b25.+2 ; gem som ny starttid
;
jl. (e10.-2) ; retur
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; texter
;
e80: <:<10>Segments transferred<0>:>,0
e81: <:<10>Bad Result Or Status on file, result=<0>:>,0
e82: <:<10>Forkert antal halvord overført<0>:>,0
e83: <:<10>Create Process, result=<0>:>,0
e84: <:Deviceno? (1..?) <0>:>
e85: <:<10>Create file, result=<0>:>
e86: <:Devicenavn? <0>:>
e87: <:<10>Reserve/Initialize Process, result=<0>:>
e88: <:<10>End.<10><0>:>
e89: <:Startsegm? <0>:>
e90: <:Read/Write? (r/w) <0>:>
e91: <:Segmenter pr blok? <0>:>
e92: <:Ulovlig bloklængde, mulig længde 1..<0>:>
e93: <:Segmenter ialt før stop? <0>:>
e95: <:, bloklængde:<0>:>
e96: <:, ms/blok:<0>:>
e97: <:<10>Ialt læst på <0>:>
e98: <:<10>Ialt skrevet på <0>:>
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; read to nl
;
0 ; wrk var
0 ; retur adr
e40: rs. w3 e40.-2 ; læs til w2=nl, w2 indeholder sidst læste tegn
;
rs. w2 e40.-4 ; gem w2
al w2 10 ; nl
rl. w1 b09. ; online input?
so w1 1 ; if true
jl. w3 h33.-2 ; then outend (nl)
rl. w2 e40.-4 ; genskab w2
;
e41:
sn w2 10 ; if nl
jl. (e40.-2); thenretur..
jl. w3 h25.-2 ; læs tegn
jl. e41. ; igen
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; read integer
0 ; retur adr
e42: rs. w3 e42.-2 ; skriv ledetext fra w0 og læs integer til w0
jl. w3 e00. ; outtext (ledetext)
al w0 0 ; tal:=0
e43:
jl. w3 h25.-2 ; inchar
sn w2 0 ;
jl. e43. ; igen da nul læst
sl w2 48 ; if not tal
sl w2 58 ; then
jl. e44. ; slut
al w2 x2-48 ; talværdi
wm. w0 b21. ; gange 10
wa w0 4 ; + ciffer
jl. e43. ; læs næste ciffer
e44: jl. w3 e40. ; læs til nl
jl. (e42.-2); retur..
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; read text
0 ; textarray idx
0 ; textarray adr
0 ; retur adr
e45: rs. w3 e45.-2 ; skriv ledetext fra w0 og læs til array specificeret i w2
rs. w2 e45.-4 ;
jl. w3 e00. ; outtext (ledetext)
al w3 16 ; idx
rs. w3 e45.-6 ;
e46:
jl. w3 h25.-2 ; inchar
sn w2 0 ;
jl. e46. ; igen da nul læst
sn w2 10 ; if nl
jl. e48. ; then slut
rl. w1 e45.-4 ; array adr
rl. w3 e45.-6 ; hent idx
ls w2 x3 ; shift tegnet ind
lo w2 x1 ; indsæt tegn
rs w2 x1 ; gem tegn
al w3 x3-8 ; nyt idx
sl w3 0 ; if idx >= 0
jl. e47. ; then samme adr
al w3 16 ; idx := 16
al w1 x1+2 ; tæl adr op
rs. w1 e45.-4 ;
e47:
rs. w3 e45.-6 ; gem idx
jl. e46. ; næste tegn
e48: jl. w3 e40. ; læs til nl
jl. (e45.-2); retur..
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; buffere
;
a99: 0
;
e.e.e.
▶EOF◀