|
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: 17664 (0x4500) Types: TextFile Names: »tdisktest «
└─⟦9ccaf6601⟧ Bits:30008165 Bånd med SW8000 kildetekst/release værktøjer └─⟦f546e193b⟧ └─⟦this⟧ »tdisktest «
(odisktest=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 b07: 0,r.10 ; tail b08: 0 ; okbits b09: 0 ; online input, 0=false b10: 0 ; online output, 0=false b12: 0 ; startsegm 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 i filen 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 jd 1<11+48 ; remove entry 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 bloklgdantal segmenter jl. w3 e42. ; read integer rs. w0 b22. ; gem antal ; ; disknavn? ; al. w0 e89. ; disk? al. w2 b07.+2 ; tail + 2 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 ; ; lav arbejdsfil mv ; al. w3 b14. ; name jd 1<11+68 ; generate name al. w0 e94. ; text jl. w3 e00. ; write name al. w0 b14. ; name jl. w3 e00. ; write name al. w3 b14. ; name al. w1 b07. ; tail rl. w2 b17. ; maxsegm før forfra wa. w2 b15. ; + en blok rs w2 x1 ; ind i tail (1) jd 1<11+40 ; create entry se w0 0 ; if not ok jl. e05. ; then error jd 1<11+42 ; lookup entry jd 1<11+52 ; create area process se w0 0 ; if not ok then goto jl. e04. ; error 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 b07.+2 ; 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 Area Process, result=<0>:>,0 e85: <:<10>Create file, result=<0>:> e86: <:<10>Create file, result=<0>:> e87: <:<10>Reserve/Initialize Process, result=<0>:> e88: <:<10>End.<10><0>:> e89: <:Disknavn? <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>:> e94: <:Filnavn benyttet <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) ; then retur.. 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.. ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; diskbuffere ; a99: 0 ; e.e.e. ▶EOF◀