|
|
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: 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◀