|
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 - download
Length: 28901 (0x70e5) Description: Bits:30000870 GIER SIMULATOR GIERPROGTXT Types: 8-hole paper tape, TextFileEvenParity
;operator korutine; b.a20,w. ;begin a20: 3<12,0,0 ; a19: 5<12,0,0 ; a18: <:res:> ; <:hp<10>:> ; <:sto:> ; <:kb0:> ; <:ka0:> ; <:ka1:> ; <:kb1:> ; a17: <:et<10>:> ; a16: <:p<10>:> ; a15: <:<10>:> ; a14: 1<23 ; a13: <:?<10>:>,<:!<10>:>; a12: <:operator:>,0,0 ; b20: ; a0: al. w3 a12. ; al. w1 0 ; jl. w2 b0. ; 0,0 ; rl w0 x2+10 ; jd 1<11+26 ; am. ( c17.) ; sn w2 x2 ; se. w0 ( c2.) ; jl. a0. ; al. w0 a20.+2 ; al. w1 a20.+4 ; ds. w1 a20.+4 ; al. w3 c15. ; jl. w2 b0. ; 0,0 ; rl w0 x2+10 ; jd 1<11+26 ; sn w0 0 ; jl. a6. ; al w3 0 ; dl. w2 a20.+4 ; a1: sn. w1 (x3+a18.) ; jl. x3+a2. ; sl w3 12 ; jl. a6. ; al w3 x3+2 ; jl. a1. ; a2: jl. a4. ; am 6 ; jl. a3. ; am -1 ; am. ( a14.) ; am 1 ; al w1 1 ; se. w2 ( a15.) ; jl. a6. ; al w0 g11 ;texaddr(indikator); jl. w2 b14. ; jl. a5. ; a3: se. w2 ( a16.) ; jl. a6. ; am g25-g26 ; al w2 -g25 ; al w1 1 ; ls w1 x2+15 ; al w0 g20 ;texaddr(fejlbits); jl. w2 b14. ; jl. a5. ; a4: se. w2 ( a17.) ; jl. a6. ; jl. w2 b15. ; a5: am 2 ; a6: al. w1 a13. ; al w0 x1 ; ds. w1 a19.+4 ; al. w1 a19. ; al. w3 c15. ; jl. w2 b0. ; 0,0 ; jd 1<11+26 ; jl. a0. ; e. ;end; ;texas korutine; b.a20,w. ;begin c99: ; a20: 14<12 ; h. ; a19: a0,a1,a2,a3,a4,a5,a6 w. ; 10<12,0,r.6 ; jl. w2 b0. ; c100: 0,0 ; jl. 22 ; 10<12,0,r.6 ; jl. w2 b0. ; c101: 0,0 ; rl w0 x2+12 ; am. ( c16.) ; se w1 x1 ; sl w0 5 ; jl. 6 ; rs w3 x1 ; jl. b1. ; al w3 x3-16 ; dl w1 x2+22 ; ds w1 x3+12 ; dl w1 x2+18 ; ds w1 x3+8 ; rl w1 x2+14 ; rl w0 x2+10 ; ds w1 x3+4 ; rl w1 x2+12 ; jd 1<11+26 ; bz. w2 x1+a19. ; jl. x2-k ; ;kanal rutiner; b.e20,w. ;begin e20: 0 ; a0: rs. w3 e20. ;stop: rs. w3 c17. ; jl. w2 b4. ; jl. w2 b18. ; jl. e2. ; a1: rs. w3 e20. ;hp: al w1 38 ; jl. w2 b3. ; al w1 0 ; jl. w2 b5. ; al w1 0 ; jl. w2 b3. ; al w1 0 ; jl. w2 b6. ; jl. e2. ; a2: rs. w3 e20. ;vk: rs. w3 c16. ; al w1 960 ; wm w1 x3+10 ; wa w1 x3+8 ; ls w1 -2 ; rs. w1 c20. ; jl. w2 b3. ; al w0 0 ; rs. w0 c16. ; jl. e2. ; a3: rs. w3 e20. ;lk: rl. w1 c20. ; al. w2 b6. ; jl. e0. ; a4: rs. w3 e20. ;sk: rl. w1 c20. ; rl. w0 c19. ; sl w0 x1+1 ; jl. e2. ; al. w2 b5. ; e0: sl. w1 ( c6.) ; jl. e1. ; rl w1 x3+12 ; jl w2 x2 ; jl. e2. ; e1: rs w1 x3+4 ; e2: rl. w1 e20. ; al. w3 c8. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; al. w1 a20. ; am. ( e20.) ; jl 14 ; e. ;end; ;tegn rutiner; b.e20,w. ;begin e20: 0 ; a5: ;ly: a6: ;sy: rl. w1 e20. ; al. w3 c8. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; al. w1 a20. ; am. ( e20.) ; jl 14 ; e. ;end; e. ;end; ;procedure sendmwaita; ; call return ;w0 next buf ;w1 messaddr last buf ;w2 link buffaddr ;w3 nameaddr link b.a20,w. ;begin b0: rl. w0 c4. ; old first buf:= first buf; rs. w2 c4. ; first buf:= link; rs w0 x2+2 ; word(link+2):= old first buf; jd 1<11+16 ; send message; sn w2 0 ; if no buffer then break 6; jd 1<11+18 ; rs. w2 ( c4.) ; word(link):= buffaddr; a0: al w2 0 ;we: b1: jd 1<11+24 ; wait event; se w0 1 ; if message then goto mes; jl. a3. ; al. w1 c4. ; i:= address(first buf); a1: rl w3 x1 ; for j:= word(i) sn w2 (x3) ; while word(j)<>buffaddr do jl. a2. ; al w1 x3+2 ; i:= j+2; jl. a1. ; a2: rl w0 x3+2 ; word(i):= word(j+2); rs w0 x1 ; jl x3+4 ; return; a3: jd 1<11+26 ;mes: al w0 2 ; get event; al. w1 0 ; send answer(rejected); jd 1<11+22 ; jl. a0. ; goto we; e. ;end; ;procedure initsegm; ; call return ;w0 ? ;w1 ? ;w2 link ? ;w3 ? b.a20,w. ;begin a20: 0 ; b2: rs. w2 a20. ; savelink:= link; am. ( c3.) ; rl w3 24 ; tsa:= top storage address; al. w1 b19. ; al w2 x1+4 ; this:= startaddr+4; al w1 0 ; next:= 0; comment last segm; al w0 2047 ; written:= false; segmentnr:= impossible; ;rep: a0: ds w1 x2-2 ; createsegm(written,segmentnr,next); al w1 x2 ; next:= this; al w2 x2+964 ; this:= this+segmentlength; sh w2 x3-960 ; if this+960<=tsa then goto rep; jl. a0. ; rs. w1 c5. ; firstsegm:= next; rl. w1 c20. ; søgkanal(valgte kanal); jl. w2 b3. ; jl. ( a20.) ; return e. ;end; ;procedure søgkanal; ; call return ;w0 ? ;w1 kanalnr segmentnr ;w2 link ? ;w3 førsteadr b.a20,w. ;begin a20: 320 ; a19: 960 ; a18: 0 ; a17: 0 ; b3: sl. w1 ( c6.) ; jl x2 ; rs. w2 a18. ; savelink:= link; wm. w1 a20. ; wd. w1 a19. ; rs. w0 a17. ; al. w2 c5. ; i:= address(first segm); a0: rl w3 x2 ; for j:= word(i) bz w0 x3-3 ; while byte(j-3)<>segmentnr do sn w0 x1 ; jl. a1. ; if word(j-2)=0 then goto findes ikke rl w0 x3-2 ; else i:= j-2; sn w0 0 ; jl. a2. ; al w2 x3-2 ; jl. a0. ; a1: rl w0 x3-2 ; rs w0 x2 ; word(i):= word(j-2); al w2 x3 ; old first segm:= first segm; rx. w2 c5. ; first segm:= j; rs w2 x3-2 ; word(j):= old first segm; jl. a3. ; goto slut; a2: rs w0 x2 ;findes ikke: al w2 x3 ; old first segm:= first segm; rx. w2 c5. ; first segm:= j; rs w2 x3-2 ; word(j):= old first segm; bz w0 x3-4 ; if written then se w0 0 ; jl. w2 b8. ; outputsegm; jl. w2 b7. ; inputsegm; ;slut: a3: wa. w3 a17. ; adjust address; rs. w3 c18. ; store address; jl. ( a18.) ; return; e. ;end; ;procedure clearsegm; ; call return ;w0 ? ;w1 unchanged ;w2 link ? ;w3 0 b.a20,w. ;begin a20: 0 ; b4: rs. w2 a20. ; savelink:= link; rl. w3 c5. ; segm:= firstsegm; a0: sn w3 0 ;rep: jl. ( a20.) ; if segm=0 then return; bz w0 x3-4 ; if written then se w0 0 ; jl. w2 b8. ; outputsegm; rl w3 x3-2 ; segm:= next(segm); jl. a0. ; goto rep; e. ;end; ;procedure skriv (læs) kanal; ; call return ;w0 ? ;w1 gieradr<2 ? ;w2 link ? ;w3 ? b.a20,w. ;begin a20: 0,r.5 ; a19: 0 ; a18: 3940 ; a17: 4096 ; b5: al w0 1 ;skriv kanal: rl. w3 c5. ; hs w0 x3-4 ; am -2 ; b6: al w0 5 ;læs kanal: hs. w0 a20. ; rl. w3 c18. ; sl. w1 ( a18.) ; jl. a1. ; al w0 x3+318 ; ds. w0 a20.+4 ; al w1 x1+g30 ; ds. w2 a20.+8 ; a0: al. w3 c8. ; al. w1 a20. ; jl. w2 b0. ; 0,0 ; rl w0 x2+10 ; jd 1<11+26 ; se w0 320 ; jl. a0. ; jl. ( a20.+8) ; a1: rl. w0 a17. ; ws w0 2 ; ls w0 1 ; rs. w0 a19. ; am ( 0) ; al w0 x3-2 ; ds. w0 a20.+4 ; al w1 x1+g30 ; ds. w2 a20.+8 ; a2: al. w3 c8. ; al. w1 a20. ; jl. w2 b0. ; 0,0 ; rl w0 x2+10 ; jd 1<11+26 ; se. w0 ( a19.) ; jl. a2. ; rl. w3 a20.+4 ; al w3 x3+2 ; al w0 320 ; ws. w0 a19. ; rs. w0 a19. ; am ( 0) ; al w0 x3-2 ; ds. w0 a20.+4 ; al w0 g30 ; rs. w0 a20.+6 ; a3: al. w3 c8. ; al. w1 a20. ; jl. w2 b0. ; 0,0 ; rl w0 x2+10 ; jd 1<11+26 ; se. w0 ( a19.) ; jl. a3. ; jl. ( a20.+8) ; e. ;end; ;procedure insegm; ; call return ;w0 ? ;w1 segmentnr segmentnr ;w2 link firstaddr ;w3 firstaddr firstaddr b.a20,w. ;begin a20: 3<12,0,r.4 ; b7: ds. w2 a20.+8 ; segmnr(mes):= segment nr; rs w1 x3-4 ; segmnr(segm):= segment nr; al w0 x3+510 ; savelink:= link; ds w0 a20.+4 ; fstadr(mes):= firstaddr; a0: al. w1 a20. ; lstadr(mes):= firstaddr+510; al. w3 c7. ;again: jl. w2 b0. ; sendmwaita; 0,0 ; dl w1 x2+10 ; status:= buf(8); bytes:= buf(10); jd 1<11+26 ; get event; sn w0 0 ; if status<>0 or bytes=0 then sn w1 0 ; goto again; jl. a0. ; rl. w3 a20.+2 ; al w3 x3+480 ; al w2 x3+480 ; a1: bz w1 x3-1 ; unpacksegm; bz w0 x3-2 ; ds w1 x2-2 ; bz w1 x3-3 ; bl w0 x3-4 ; ds w1 x2-6 ; bz w1 x3-5 ; bz w0 x3-6 ; ds w1 x2-10 ; bz w1 x3-7 ; bl w0 x3-8 ; ds w1 x2-14 ; bz w1 x3-9 ; bz w0 x3-10 ; ds w1 x2-18 ; bz w1 x3-11 ; bl w0 x3-12 ; ds w1 x2-22 ; bz w1 x3-13 ; bz w0 x3-14 ; ds w1 x2-26 ; bz w1 x3-15 ; bl w0 x3-16 ; ds w1 x2-30 ; bz w1 x3-17 ; bz w0 x3-18 ; ds w1 x2-34 ; bz w1 x3-19 ; bl w0 x3-20 ; ds w1 x2-38 ; bz w1 x3-21 ; bz w0 x3-22 ; ds w1 x2-42 ; bz w1 x3-23 ; bl w0 x3-24 ; ds w1 x2-46 ; bz w1 x3-25 ; bz w0 x3-26 ; ds w1 x2-50 ; bz w1 x3-27 ; bl w0 x3-28 ; ds w1 x2-54 ; bz w1 x3-29 ; bz w0 x3-30 ; ds w1 x2-58 ; bz w1 x3-31 ; bl w0 x3-32 ; ds w1 x2-62 ; bz w1 x3-33 ; bz w0 x3-34 ; ds w1 x2-66 ; bz w1 x3-35 ; bl w0 x3-36 ; ds w1 x2-70 ; bz w1 x3-37 ; bz w0 x3-38 ; ds w1 x2-74 ; bz w1 x3-39 ; bl w0 x3-40 ; ds w1 x2-78 ; al w2 x2-80 ; al w3 x3-40 ; se w3 x2 ; jl. a1. ; rl. w1 a20.+6 ; segment nr:= segmnr(mes); jl. ( a20.+8) ; return; e. ;end; ;procedure outsegm; ; call return ;w0 ? ;w1 unchanged ;w2 link ? ;w3 firstaddr firstaddr b.a20,w. ;begin a20: 5<12,0,r.3 ; a19: 0,0 ; b8: ds. w2 a19.+2 ; savelink:= link; bz w0 x3-3 ; rs w0 x3-4 ; written:= false; rs. w0 a20.+6 ; segmnr(mes):= segment nr; al w0 x3+510 ; ds w0 a20.+4 ; fstadr(mes):= firstaddr; al w2 x3 ; lstadr(mes):= firstaddr+510; a0: dl w1 x2+2 ; packsegm; hs w0 x3+0 ; hs w1 x3+1 ; dl w1 x2+6 ; hs w0 x3+2 ; hs w1 x3+3 ; dl w1 x2+10 ; hs w0 x3+4 ; hs w1 x3+5 ; dl w1 x2+14 ; hs w0 x3+6 ; hs w1 x3+7 ; dl w1 x2+18 ; hs w0 x3+8 ; hs w1 x3+9 ; dl w1 x2+22 ; hs w0 x3+10 ; hs w1 x3+11 ; dl w1 x2+26 ; hs w0 x3+12 ; hs w1 x3+13 ; dl w1 x2+30 ; hs w0 x3+14 ; hs w1 x3+15 ; dl w1 x2+34 ; hs w0 x3+16 ; hs w1 x3+17 ; dl w1 x2+38 ; hs w0 x3+18 ; hs w1 x3+19 ; dl w1 x2+42 ; hs w0 x3+20 ; hs w1 x3+21 ; dl w1 x2+46 ; hs w0 x3+22 ; hs w1 x3+23 ; dl w1 x2+50 ; hs w0 x3+24 ; hs w1 x3+25 ; dl w1 x2+54 ; hs w0 x3+26 ; hs w1 x3+27 ; dl w1 x2+58 ; hs w0 x3+28 ; hs w1 x3+29 ; dl w1 x2+62 ; hs w0 x3+30 ; hs w1 x3+31 ; dl w1 x2+66 ; hs w0 x3+32 ; hs w1 x3+33 ; dl w1 x2+70 ; hs w0 x3+34 ; hs w1 x3+35 ; dl w1 x2+74 ; hs w0 x3+36 ; hs w1 x3+37 ; dl w1 x2+78 ; hs w0 x3+38 ; hs w1 x3+39 ; al w3 x3+40 ; al w2 x2+80 ; se w3 x2-480 ; jl. a0. ; a1: al. w3 c7. ;again: al. w1 a20. ; jl. w2 b0. ; sendmwaita; 0,0 ; dl w1 x2+10 ; status:= buf(8); bytes:= buf(10); jd 1<11+26 ; get event; sn w0 0 ; if status<>0 or bytes=0 then sn w1 0 ; goto again; jl. a1. ; rl. w1 a19. ; w1:= savew1; rl. w3 a20.+2 ; firstaddr:= fstadr(mes); jl. ( a19.+2) ; return; e. ;end; ;procedure parentmessage; ; call return ;w0 ? ;w1 unchanged ;w2 link ? ;w3 name adr. name adr. b.a20,w. ;begin a20: 2<12+1,<:finis:>,0 ; a19: 16<12,<:wait for :>; a18: 24<12,<:load :>,0 ; a17: 26<12+1,<:change :>; a16: 0,0 ; a15: 0,0 ; b9: al. w3 c8. ; al. w1 a19. ; jd 1<11+16 ; jd 1<11+18 ; jd 1<11+10 ; am a20-a19 ; b10: am a19-a18 ; b11: am a18-a17 ; b12: al. w0 a17. ; ds. w1 a16.+2 ; ds. w3 a15.+2 ; dl w1 x3+2 ; ds. w1 d0.+10 ; dl w1 x3+6 ; ds. w1 d0.+14 ; rl. w3 a16. ; dl w1 x3+2 ; ds. w1 d0.+2 ; dl w1 x3+6 ; ds. w1 d0.+6 ; al. w1 d0. ; al. w3 c14. ; jd 1<11+16 ; jd 1<11+18 ; rl. w3 a15.+2 ; rl. w1 a16.+2 ; jl. ( a15.) ; e. ;end; ;procedure wait; ; call return ;w0 unchanged ;w1 unchanged ;w2 link ? ;w3 unchanged b.a20,w. ;begin a20: 0,1 ; a19: 0,0 ; a18: 0,0 ; a17: <:clock:>,0,0,0 ; b13: ds. w3 a19.+2 ; ds. w1 a18.+2 ; al. w1 a20. ; al. w3 a17. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; rl. w3 a19.+2 ; dl. w1 a18.+2 ; jl. ( a19.) ; e. ;end; ;procedure bitsetandclear; ; call return ;w0 texaddr ? ;w1 mask ? ;w2 link ? ;w3 ? b.a20,w. ;begin a20: 0,0 ; a19: 3<12,0,0,0 ; a18: 5<12,0,0,0 ; a17: 4<12 ; a16: 8<12 ; a15: 0 ; b14: ds. w2 a20.+2 ; rs. w0 a19.+6 ; rs. w0 a18.+6 ; al. w3 c8. ; al. w1 a17. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; al. w1 a15. ; al w0 x1 ; ds. w1 a19.+4 ; ds. w1 a18.+4 ; al. w1 a19. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; rl. w0 d0.+2 ; se w0 2 ; jl. -12 ; rl. w0 a15. ; lo. w0 a20. ; sh w0 0 ; lx. w0 a20 ; rs. w0 a15. ; al. w1 a18. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; rl. w0 d0.+2 ; se w0 2 ; jl. -12 ; al. w1 a16. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; jl. ( a20.+2) ; e. ; ;procedure reset; ; call return ;w0 ;w1 ;w2 link ;w3 b.a20,w. ;begin b15: e. ;end; ;procedure initkb; ; call return ;w0 ? ;w1 ? ;w2 link ? ;w3 ? b.a20,w. ;begin a20: 0 ; a19: <:gierprog:>,0,0 ; a18: 3<12,0,0,a15 ; b18: rs. w2 a20. ; al. w3 a19. ; al. w1 a18. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; dl. w1 d0.+2 ; sn w0 0 ; sn w1 0 ; jl. -14 ; b19: ;entry: ;(her starter også tromlebuffer og kontrolbord) b.e20,w. ; begin e20: jl. e0. ; e19: <:gier:>,0,0 ; e18: <:gier980a:>,0,0 ; e17: 3<12,0,0,1 ; e16: 5<12,0,0,0 ; e15: 1<18 ; e14: 20<12 ; e13: <:process io:> ; e12: <:gier psproc:> ; e0: ds. w1 c1. ; ds. w3 c3. ; al. w3 c15. ; jl. w1 e2. ; rl. w2 c1. ; al. w3 c14. ; jl. w1 e2. ; rl. w2 c0. ; se. w2 ( c2.) ; jl. e7. ; se. w2 ( c1.) ; jl. e1. ; al. w1 c9. ; al. w3 c14. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; rl. w2 d0.+6 ; rs. w2 c2. ; e1: al. w3 c9. ; al. w1 e3. ; e2: rs. w1 e20. ; dl w1 x2+4 ; ds w1 x3+2 ; dl w1 x2+8 ; ds w1 x3+6 ; jl. ( e20.) ; e3: al. w3 c7. ; al. w1 d0. ; jd 1<11+42 ; jd 1<11+52 ; jd 1<11+8 ; se w0 0 ; jl. e8. ; rl. w1 d0. ; wm. w1 c6. ; rs. w1 c6. ; al. w3 e19. ; jd 1<11+86 ; se w0 0 ; jl. e9. ; jd 1<11+4 ; rs. w0 psgd1 ; rs. w0 psgd2 ; al. w3 c8. ; jd 1<11+8 ; sn w0 0 ; jl. e4. ; jl. w2 b10. ; jl. w2 b13. ; wait(1) jd 1<11+8 ; se w0 0 ; jl. -6 ; e4: al. w1 e14. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; al. w3 e18. ; jd 1<11+52 ; se w0 0 ; jl. e10. ; al. w3 a16. ; al w0 x3+510 ; ds. w0 e17.+4 ; ds. w0 e16.+4 ; e5: al. w3 e18. ; al. w1 e17. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; dl. w1 d0.+4 ; sz. w0 ( e15.) ; jl. e6. ; sn w0 0 ; se w1 512 ; jl. -18 ; rl. w1 e17.+6 ; al. w1 x1+1 ; rs. w1 e17.+6 ; al. w3 c8. ; al. w1 e16. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; rl. w0 d0.+2 ; se w0 512 ; jl. -12 ; rl. w1 e16.+6 ; al w1 x1+256 ; rs. w1 e16.+6 ; jl. e5. ; e6: jd 1<11+64 ; al. w3 a19. ; jd 1<11+52 ; se w0 0 ; jl. e11. ; al. w3 b19. ; al. w0 a14. ; ds. w0 a18.+4 ; al. w0 c100. ; rx. w0 c4. ; rs. w0 c100.+2 ; al. w3 c8. ; al. w1 c99. ; jd 1<11+16 ; rs. w2 c100. ; al. w0 c101. ; rx. w0 c4. ; rs. w0 c101.+2 ; jd 1<11+16 ; rs. w2 c101. ; jl. w2 b15. ; jl. b20. ; e7: am e13-c7 ; e8: am c7-e12 ; e9: am e12-e18 ; e10: am e18-a19 ; e11: al. w1 a19. ; al w2 x1+6 ; ds. w2 e16.+4 ; al. w1 e16. ; al. w3 c15. ; jd 1<11+16 ; jd 1<11+18 ; jl. b9. ; e. ; end; a16: m. skal der loades ved kald a17=(:(:a16+510:)/512*512-a16:)>1 c. a17-1 ; 0,r.a17 ; z. ; a15=k/512 ; k=b19 ;kontrolbord rutine; b.e30,w. ; begin al w1 0 ; jl. w2 e1. ; se w1 10 ; sn w1 32 ; jl. b19. ; jl. w2 e3. ; jl. w2 e1. ; jl. w2 e3. ; jl. w2 e1. ; jl. w2 e3. ; al w1 0 ; jl. w2 e1. ; se w1 10 ; jl. -6 ; jl. e25. ; e30: 0 ; ;procedure inblock; b.f20,w. ; begin f20: 0,r.10 ; f19: 3<12,0,0 ; f18: 0,0 ; f17: 0 ; e0: ds. w0 f18.+2 ; rs. w2 f17. ; al. w1 f20. ; al w2 x1+18 ; ds. w2 f19.+4 ; al. w3 c15. ; al. w1 f19. ; jd 1<11+16 ; al. w1 d0. ; jd 1<11+18 ; rl. w0 d0.+2 ; sn w0 0 ; jl. -12 ; wa. w0 f19.+2 ; rs. w0 e30. ; al. w1 f20 ; dl. w0 f18.+2 ; jl. ( f17.) ; e. ; ;procedure readchar; b.f20,w. ; f20: 0 ; f19: 0 ; e1: rx. w2 f20. ; se w2 0 ; jl. f0. ; rx. w1 f19. ; al w1 x1+2 ; sl. w1 ( e30.) ; jl. w2 e0. ; rl w2 x1 ; rx. w1 f19. ; f0: ld w2 8 ; rx. w2 f20. ; jl x2 ; ;procedure repeatchar; e2: rx. w2 f20. ; ld w2 -8 ; rx. w2 f20. ; jl x2 ; e. ; ;procedure find kommando; b.f20,w. ; f20: 0 ; f19: <:cel:> ; <:<0><0>F:> ; <:<0><0>M:> ; <:<0><0>R:> ; <:<0>bl:> ; <:<0>bs:> ; <:<0>by:> ; <:<0><0>g:> ; <:<0>in:> ; <:<0><0>p:> ; <:<0>r1:> ; <:<0>s1:> ; <:<0>ta:> ; <:<0>tk:> ; <:<0>a0:> ; <:<0>b0:> ; <:fin:> ; <:fri:> ; <:<0>hh:> ; <:<0>hp:> ; <:ka0:> ; <:ka1:> ; <:kb0:> ; <:kb1:> ; <:<0>o0:> ; <:<0>o1:> ; <:res:> ; <:sta:> ; <:<0>T0:> ; <:<0>T1:> ; <:udf:> ; <:<0>:=:> ; <:<0><0>=:> ; h. ; -1 ; f18: e4 ; e5,r.13 ; e6 ; e7 ; e8 ; e9 ; e10 ; e11 ; e12 ; e13 ; e14 ; e15 ; e16 ; e17 ; e18 ; e19 ; e20 ; e21 ; e22 ; e23 ; e24 ; w. ; e3: rs. w2 f20. ; al w3 127 ; la w3 2 ; sn w3 10 ; jl. e25. ; al w2 -2 ; f0: al w2 x2+2 ; rl. w0 x2+f19. ; sh w0 0 ; jl. ( f20.) ; se w0 x1 ; jl. f0. ; ls w2 -1 ; bz. w1 x2+f18. ; jl. x1-k ; e. ; e. ; a14=k+510 ; e. ;end; e.e.e.e.e. ▶EOF◀