ORS

Used Exports

BUILTINS: BOOLEAN CHAR CHR DEC FLT INC INTEGER LONGINT ODD ORD REAL
Oberon: Log
SYSTEM: VAL
Texts: Append OpenReader OpenWriter Pos Read Reader Reader.eot Text Write WriteInt WriteLn WriteString Writer Writer.buf

MODULE ORS; (* NW 19.9.93 / 20.3.2017 Scanner in Oberon-07*)
.MODULE ORS (KEY 76547166, VERSION 1, SIZE 00002144)
.IMPORT Texts (KEY 0B9E9984)
.IMPORT Fonts (KEY F4C9F557)
.IMPORT Files (KEY 73F5D686)
.IMPORT Oberon (KEY A89CCEE2)
.IMPORT Display (KEY 4C08D3EA)
.IMPORT Viewers (KEY 25ABF199)
.DATA 3E0H
.STRING 3E0H " pos "
.STRING 3E8H "string too long"
.STRING 3F8H "hexdig expected"
.STRING 408H "hexdig expected"
.STRING 418H "string too long"
.STRING 428H "too many digits"
.STRING 438H "illegal value"
.STRING 448H "too large"
.STRING 454H "bad integer"
.STRING 460H "digit?"
.STRING 468H "too large"
.STRING 474H "too large"
.STRING 480H "bad integer"
.STRING 48CH "unterminated comment"
.STRING 4A4H "IF"
.STRING 4A8H "DO"
.STRING 4ACH "OF"
.STRING 4B0H "OR"
.STRING 4B4H "TO"
.STRING 4B8H "IN"
.STRING 4BCH "IS"
.STRING 4C0H "BY"
.STRING 4C4H "END"
.STRING 4C8H "NIL"
.STRING 4CCH "VAR"
.STRING 4D0H "DIV"
.STRING 4D4H "MOD"
.STRING 4D8H "FOR"
.STRING 4DCH "ELSE"
.STRING 4E4H "THEN"
.STRING 4ECH "TRUE"
.STRING 4F4H "TYPE"
.STRING 4FCH "CASE"
.STRING 504H "ELSIF"
.STRING 50CH "FALSE"
.STRING 514H "ARRAY"
.STRING 51CH "BEGIN"
.STRING 524H "CONST"
.STRING 52CH "UNTIL"
.STRING 534H "WHILE"
.STRING 53CH "RECORD"
.STRING 544H "REPEAT"
.STRING 54CH "RETURN"
.STRING 554H "IMPORT"
.STRING 55CH "MODULE"
.STRING 564H "POINTER"
.STRING 56CH "PROCEDURE"
.POINTER_REFERENCES 13CH 148H 168H 15CH 16CH 170H 190H 184H
.FIXUP T 0H
IMPORT SYSTEM, Texts, Oberon;
(* Oberon Scanner does lexical analysis. Input is Oberon-Text, output is
sequence of symbols, i.e identifiers, numbers, strings, and special symbols.
Recognises all Oberon keywords and skips comments. The keywords are
recorded in a table.
Get(sym) delivers next symbol from input text with Reader R.
Mark(msg) records error and delivers error message with Writer W.
If Get delivers ident, then the identifier (a string) is in variable id, if int or char
in ival, if real in rval, and if string in str (and slen) *)
CONST IdLen* = 32;
NKW = 34; (*nof keywords*)
maxExp = 38; stringBufSize = 256;
(*lexical symbols*)
null = 0; times* = 1; rdiv* = 2; div* = 3; mod* = 4;
and* = 5; plus* = 6; minus* = 7; or* = 8; eql* = 9;
neq* = 10; lss* = 11; leq* = 12; gtr* = 13; geq* = 14;
in* = 15; is* = 16; arrow* = 17; period* = 18;
char* = 20; int* = 21; real* = 22; false* = 23; true* = 24;
nil* = 25; string* = 26; not* = 27; lparen* = 28; lbrak* = 29;
lbrace* = 30; ident* = 31;
if* = 32; while* = 34; repeat* = 35; case* = 36; for* = 37;
comma* = 40; colon* = 41; becomes* = 42; upto* = 43; rparen* = 44;
rbrak* = 45; rbrace* = 46; then* = 47; of* = 48; do* = 49;
to* = 50; by* = 51; semicolon* = 52; end* = 53; bar* = 54;
else* = 55; elsif* = 56; until* = 57; return* = 58;
array* = 60; record* = 61; pointer* = 62; const* = 63; type* = 64;
var* = 65; procedure* = 66; begin* = 67; import* = 68; module* = 69; eot = 70;
TYPE Ident* = ARRAY IdLen OF CHAR;
VAR ival*, slen*: LONGINT; (*results of Get*)
rval*: REAL;
id*: Ident; (*for identifiers*)
str*: ARRAY stringBufSize OF CHAR;
errcnt*: INTEGER;
ch: CHAR; (*last character read*)
errpos: LONGINT;
R: Texts.Reader;
W: Texts.Writer;
k: INTEGER;
KWX: ARRAY 10 OF INTEGER;
keyTab: ARRAY NKW OF
RECORD sym: INTEGER; id: ARRAY 12 OF CHAR END;
PROCEDURE CopyId*(VAR ident: Ident);
BEGINa ident := id
0000a .PROC 1
0000a .PROC 7
0000a(4EE90008): SUB SP, SP, 8H
0001a .PROC 2
0001a(AFE00000): STR LNK, SP, 0H
0002a .PROC 3
0002a(A0E00004): STR R0, SP, 4H
ENDb CopyId;
0003b .PROC 4
0003b(80E00004): LDR R0, SP, 4H
0004b .FIXUP D
0004b(8D000004): LDR SB, MT, MOD0 [ORS]
0005b(41D8000C): ADD R1, SB, CH [data]
0006b(42000008): MOV R2, R0, 8H
0007b(83100000): LDR R3, R1, 0H
0008b(41180004): ADD R1, R1, 4H
0009b(A3000000): STR R3, R0, 0H
000Ab(40080004): ADD R0, R0, 4H
000Bb .PROC 5
000Bb(42290001): SUB R2, R2, 1H
000Cb(E9FFFFFA): BNE -6 [0007H]
000Db(8FE00000): LDR LNK, SP, 0H
000Eb(4EE80008): ADD SP, SP, 8H
000Fb(C700000F): B LNK
PROCEDURE Pos*(): LONGINT;
BEGINc RETURN Texts.Pos(R)d -e 1
0010c .PROC 8
0010c(4EE90004): SUB SP, SP, 4H
0011c(AFE00000): STR LNK, SP, 0H
0012d .FIXUP D
0012d(8D00000E): LDR SB, MT, MOD0 [ORS]
0013d(40D80138): ADD R0, SB, 138H [data]
0014d .FIXUP D
0014d(8D100002): LDR SB, MT, MOD1 [Texts]
0015d(41D80002): ADD R1, SB, VAR2
0016e .FIXUP P
0016e(F7114016): BL MOD1 [Texts] PROC20
ENDf Pos;
0017f(40090001): SUB R0, R0, 1H
0018f(8FE00000): LDR LNK, SP, 0H
0019f(4EE80004): ADD SP, SP, 4H
001Af(C700000F): B LNK
PROCEDURE Mark*(msg: ARRAY OF CHAR);
VAR p: LONGINT;
BEGINg p := Pos();h
001Bg .PROC 9
001Bg(4EE90010): SUB SP, SP, 10H
001Cg(AFE00000): STR LNK, SP, 0H
001Dg(A0E00004): STR R0, SP, 4H
001Eg(A1E00008): STR R1, SP, 8H
001Fh(F7FFFFF0): BL -16 [0010H]
0020h(A0E0000C): STR R0, SP, CH
IF (p > errpos)i & (jerrcnt < 25)k THENl
0021i(80E0000C): LDR R0, SP, CH
0022i .FIXUP D
0022i(8D00000E): LDR SB, MT, MOD0 [ORS]
0023i(81D00134): LDR R1, SB, 134H [data]
0024i(00090001): SUB R0, R0, R1
0025j(E600002A): BLE 42 [0050H]
0026k .FIXUP D
0026k(8D000004): LDR SB, MT, MOD0 [ORS]
0027k(80D0012C): LDR R0, SB, 12CH [data]
0028k(40090019): SUB R0, R0, 19H
0029l(ED000026): BGE 38 [0050H]
Texts.WriteLn(W)m;n Texts.WriteString(W,o " pos ")p;q Texts.WriteInt(W,r p,s 1)t;u Texts.Write(W,v " ")w;x
002Am .FIXUP D
002Am(8D000004): LDR SB, MT, MOD0 [ORS]
002Bm(40D8016C): ADD R0, SB, 16CH [data]
002Cm .FIXUP D
002Cm(8D100002): LDR SB, MT, MOD1 [Texts]
002Dm(41D80005): ADD R1, SB, VAR5
002En .FIXUP P
002En(F711C018): BL MOD1 [Texts] PROC28
002Fo .FIXUP D
002Fo(8D000003): LDR SB, MT, MOD0 [ORS]
0030o(40D8016C): ADD R0, SB, 16CH [data]
0031o .FIXUP D
0031o(8D100002): LDR SB, MT, MOD1 [Texts]
0032o(41D80005): ADD R1, SB, VAR5
0033p .FIXUP D
0033p(8D000002): LDR SB, MT, MOD0 [ORS]
0034p(42D803E0): ADD R2, SB, 3E0H [" pos "]
0035p(43000007): MOV R3, R0, 7H
0036q .FIXUP P
0036q(F711D008): BL MOD1 [Texts] PROC29
0037r .FIXUP D
0037r(8D000004): LDR SB, MT, MOD0 [ORS]
0038r(40D8016C): ADD R0, SB, 16CH [data]
0039r .FIXUP D
0039r(8D100002): LDR SB, MT, MOD1 [Texts]
003Ar(41D80005): ADD R1, SB, VAR5
003Bs(82E0000C): LDR R2, SP, CH
003Ct(43000001): MOV R3, R0, 1H
003Du .FIXUP P
003Du(F711E007): BL MOD1 [Texts] PROC30
003Ev .FIXUP D
003Ev(8D000005): LDR SB, MT, MOD0 [ORS]
003Fv(40D8016C): ADD R0, SB, 16CH [data]
0040v .FIXUP D
0040v(8D100002): LDR SB, MT, MOD1 [Texts]
0041v(41D80005): ADD R1, SB, VAR5
0042w(42000020): MOV R2, R0, 20H
0043x .FIXUP P
0043x(F711B006): BL MOD1 [Texts] PROC27
Texts.WriteString(W,y msg)z;a Texts.Append(Oberon.Log,b W.buf)c
0044y .FIXUP D
0044y(8D000004): LDR SB, MT, MOD0 [ORS]
0045y(40D8016C): ADD R0, SB, 16CH [data]
0046y .FIXUP D
0046y(8D100002): LDR SB, MT, MOD1 [Texts]
0047y(41D80005): ADD R1, SB, VAR5
0048z(82E00004): LDR R2, SP, 4H
0049z(83E00008): LDR R3, SP, 8H
004Aa .FIXUP P
004Aa(F711D007): BL MOD1 [Texts] PROC29
004Bb .PROC 6
004Bb .FIXUP D
004Bb(8D400005): LDR SB, MT, MOD4 [Oberon]
004Cb(80D0000D): LDR R0, SB, VAR13
004Dc .FIXUP D
004Dc(8D000002): LDR SB, MT, MOD0 [ORS]
004Ec(81D0016C): LDR R1, SB, 16CH [data]
ENDd ;
004Fd .FIXUP P
004Fd(F710E005): BL MOD1 [Texts] PROC14
INC(errcnt);e errpos := p + 4
0050e .FIXUP D
0050e(8D000003): LDR SB, MT, MOD0 [ORS]
0051e(40D8012C): ADD R0, SB, 12CH [data]
0052e(81000000): LDR R1, R0, 0H
0053e(41180001): ADD R1, R1, 1H
0054e(A1000000): STR R1, R0, 0H
ENDf Mark;
0055f(80E0000C): LDR R0, SP, CH
0056f(40080004): ADD R0, R0, 4H
0057f(A0D00134): STR R0, SB, 134H
0058f(8FE00000): LDR LNK, SP, 0H
0059f(4EE80010): ADD SP, SP, 10H
005Af(C700000F): B LNK
PROCEDURE Identifier(VAR sym: INTEGER);
VAR i, k: INTEGER;
BEGINg i := 0;h
005Bg(4EE90010): SUB SP, SP, 10H
005Cg(AFE00000): STR LNK, SP, 0H
005Dg(A0E00004): STR R0, SP, 4H
005Eh(40000000): MOV R0, R0, 0H
005Fh(A0E00008): STR R0, SP, 8H
REPEAT
IF i < IdLen-1 THENi id[i]j := ch;k INC(i) ENDl ;
0060i(80E00008): LDR R0, SP, 8H
0061i(4009001F): SUB R0, R0, 1FH
0062i(ED00000A): BGE 10 [006DH]
0063j(80E00008): LDR R0, SP, 8H
0064j(41090020): SUB R1, R0, 20H
0065j(DA0A591C): BLCC MT [trap=1, pos=2649]
0066j .FIXUP D
0066j(8D000016): LDR SB, MT, MOD0 [ORS]
0067j(00D80000): ADD R0, SB, R0 [global array]
0068k(91D00130): LDR R1, SB, 130H
0069k(B100000C): STR R1, R0, CH
006Al(80E00008): LDR R0, SP, 8H
006Bl(40080001): ADD R0, R0, 1H
006Cl(A0E00008): STR R0, SP, 8H
Texts.Read(R,m ch)n
006Dm .FIXUP D
006Dm(8D000007): LDR SB, MT, MOD0 [ORS]
006Em(40D80138): ADD R0, SB, 138H [data]
006Fm .FIXUP D
006Fm(8D100002): LDR SB, MT, MOD1 [Texts]
0070m(41D80002): ADD R1, SB, VAR2
0071n .FIXUP D
0071n(8D000002): LDR SB, MT, MOD0 [ORS]
0072n(42D80130): ADD R2, SB, 130H [data]
UNTILo (ch < "0")p OR (qch > "9")r & (sch < "A")t OR (uch > "Z")v & (wch < "a")x OR (ych > "z")z;a
0073o .FIXUP P
0073o(F7113024): BL MOD1 [Texts] PROC19
0074p .FIXUP D
0074p(8D000003): LDR SB, MT, MOD0 [ORS]
0075p(90D00130): LDR R0, SB, 130H [data]
0076p(40090030): SUB R0, R0, 30H
0077q(E5000014): BLT 20 [008CH]
0078r .FIXUP D
0078r(8D000004): LDR SB, MT, MOD0 [ORS]
0079r(90D00130): LDR R0, SB, 130H [data]
007Ar(40090039): SUB R0, R0, 39H
007Bs(E6000004): BLE 4 [0080H]
007Ct .FIXUP D
007Ct(8D000004): LDR SB, MT, MOD0 [ORS]
007Dt(90D00130): LDR R0, SB, 130H [data]
007Et(40090041): SUB R0, R0, 41H
007Fu(E500000C): BLT 12 [008CH]
0080v .FIXUP D
0080v(8D000004): LDR SB, MT, MOD0 [ORS]
0081v(90D00130): LDR R0, SB, 130H [data]
0082v(4009005A): SUB R0, R0, 5AH
0083w(E6000004): BLE 4 [0088H]
0084x .FIXUP D
0084x(8D000004): LDR SB, MT, MOD0 [ORS]
0085x(90D00130): LDR R0, SB, 130H [data]
0086x(40090061): SUB R0, R0, 61H
0087y(E5000004): BLT 4 [008CH]
0088z .FIXUP D
0088z(8D000004): LDR SB, MT, MOD0 [ORS]
0089z(90D00130): LDR R0, SB, 130H [data]
008Az(4009007A): SUB R0, R0, 7AH
008Ba(E6FFFFD4): BLE -44 [0060H]
id[i]b := 0X;c
008Cb(80E00008): LDR R0, SP, 8H
008Db(41090020): SUB R1, R0, 20H
008Eb(DA0AE91C): BLCC MT [trap=1, pos=2793]
008Fb .FIXUP D
008Fb(8D000007): LDR SB, MT, MOD0 [ORS]
0090b(00D80000): ADD R0, SB, R0 [global array]
0091c(41000000): MOV R1, R0, 0H
0092c(B100000C): STR R1, R0, CH
IF i < 10 THENd k := KWX[i-1]e;f (*search for keyword*)
0093d(80E00008): LDR R0, SP, 8H
0094d(4009000A): SUB R0, R0, AH
0095d(ED000040): BGE 64 [00D6H]
0096e(80E00008): LDR R0, SP, 8H
0097e(40090001): SUB R0, R0, 1H
0098e(4109000A): SUB R1, R0, AH
0099e(DA0B121C): BLCC MT [trap=1, pos=2834]
009Ae(40010002): LSL R0, R0, 2H
009Be .FIXUP D
009Be(8D00000C): LDR SB, MT, MOD0 [ORS]
009Ce(00D80000): ADD R0, SB, R0 [global array]
009Df(80000198): LDR R0, R0, 198H
009Ef(A0E0000C): STR R0, SP, CH
WHILE (id # keyTab[k]g.id)h & (ik < KWX[i]j)k DOl INC(k) ENDm ;
009Fg(80E0000C): LDR R0, SP, CH
00A0g(41090022): SUB R1, R0, 22H
00A1g(DA0B471C): BLCC MT [trap=1, pos=2887]
00A2g(400A0010): MUL R0, R0, 10H
00A3g .FIXUP D
00A3g(8D000008): LDR SB, MT, MOD0 [ORS]
00A4g(00D80000): ADD R0, SB, R0 [global array]
00A5h(41D8000C): ADD R1, SB, CH
00A6h(400801C4): ADD R0, R0, 1C4H
00A7h(92100000): LDR R2, R1, 0H
00A8h(41180001): ADD R1, R1, 1H
00A9h(93000000): LDR R3, R0, 0H
00AAh(40080001): ADD R0, R0, 1H
00ABh(04290003): SUB R4, R2, R3
00ACh(E9000002): BNE 2 [00AFH]
00ADh(44290000): SUB R4, R2, 0H
00AEh(E9FFFFF8): BNE -8 [00A7H]
00AFi(E100000E): BEQ 14 [00BEH]
00B0j(80E00008): LDR R0, SP, 8H
00B1j(4109000A): SUB R1, R0, AH
00B2j(DA0B591C): BLCC MT [trap=1, pos=2905]
00B3j(40010002): LSL R0, R0, 2H
00B4j .FIXUP D
00B4j(8D000011): LDR SB, MT, MOD0 [ORS]
00B5j(00D80000): ADD R0, SB, R0 [global array]
00B6k(81E0000C): LDR R1, SP, CH
00B7k(80000198): LDR R0, R0, 198H
00B8k(01190000): SUB R1, R1, R0
00B9l(ED000004): BGE 4 [00BEH]
00BAm(80E0000C): LDR R0, SP, CH
00BBm(40080001): ADD R0, R0, 1H
00BCm(A0E0000C): STR R0, SP, CH
00BDm(E7FFFFE1): B -31 [009FH]
IF k < KWX[i]n THENo sym := keyTab[k]p.sym ELSEq symr := ident ENDs
00BEn(80E00008): LDR R0, SP, 8H
00BFn(4109000A): SUB R1, R0, AH
00C0n(DA0B7E1C): BLCC MT [trap=1, pos=2942]
00C1n(40010002): LSL R0, R0, 2H
00C2n .FIXUP D
00C2n(8D00000E): LDR SB, MT, MOD0 [ORS]
00C3n(00D80000): ADD R0, SB, R0 [global array]
00C4o(81E0000C): LDR R1, SP, CH
00C5o(80000198): LDR R0, R0, 198H
00C6o(01190000): SUB R1, R1, R0
00C7o(ED00000A): BGE 10 [00D2H]
00C8p(80E0000C): LDR R0, SP, CH
00C9p(41090022): SUB R1, R0, 22H
00CAp(DA0B941C): BLCC MT [trap=1, pos=2964]
00CBp(400A0010): MUL R0, R0, 10H
00CCp .FIXUP D
00CCp(8D00000A): LDR SB, MT, MOD0 [ORS]
00CDp(00D80000): ADD R0, SB, R0 [global array]
00CEq(800001C0): LDR R0, R0, 1C0H
00CFq(81E00004): LDR R1, SP, 4H
00D0q(A0100000): STR R0, R1, 0H
00D1r(E7000003): B 3 [00D5H]
00D2s(4000001F): MOV R0, R0, 1FH
00D3s(81E00004): LDR R1, SP, 4H
00D4s(A0100000): STR R0, R1, 0H
ELSE symt := ident
00D5t(E7000003): B 3 [00D9H]
ENDu
00D6u(4000001F): MOV R0, R0, 1FH
00D7u(81E00004): LDR R1, SP, 4H
00D8u(A0100000): STR R0, R1, 0H
ENDv Identifier;
00D9v(8FE00000): LDR LNK, SP, 0H
00DAv(4EE80010): ADD SP, SP, 10H
00DBv(C700000F): B LNK
PROCEDURE String;
VAR i: INTEGER;
BEGINw i := 0;x Texts.Read(R,y ch)z;a
00DCw(4EE90008): SUB SP, SP, 8H
00DDw(AFE00000): STR LNK, SP, 0H
00DEx(40000000): MOV R0, R0, 0H
00DFx(A0E00004): STR R0, SP, 4H
00E0y .FIXUP D
00E0y(8D000014): LDR SB, MT, MOD0 [ORS]
00E1y(40D80138): ADD R0, SB, 138H [data]
00E2y .FIXUP D
00E2y(8D100002): LDR SB, MT, MOD1 [Texts]
00E3y(41D80002): ADD R1, SB, VAR2
00E4z .FIXUP D
00E4z(8D000002): LDR SB, MT, MOD0 [ORS]
00E5z(42D80130): ADD R2, SB, 130H [data]
00E6a .FIXUP P
00E6a(F7113073): BL MOD1 [Texts] PROC19
WHILE ~R.eot &b (cch # 22X)d DOe
00E7b .FIXUP D
00E7b(8D000003): LDR SB, MT, MOD0 [ORS]
00E8b(90D00138): LDR R0, SB, 138H [data]
00E9c(E9000022): BNE 34 [010CH]
00EAd .FIXUP D
00EAd(8D000003): LDR SB, MT, MOD0 [ORS]
00EBd(90D00130): LDR R0, SB, 130H [data]
00ECd(40090022): SUB R0, R0, 22H
00EDe(E100001E): BEQ 30 [010CH]
IF ch >= " " THENf
00EEf .FIXUP D
00EEf(8D000004): LDR SB, MT, MOD0 [ORS]
00EFf(90D00130): LDR R0, SB, 130H [data]
00F0f(40090020): SUB R0, R0, 20H
00F1f(E5000012): BLT 18 [0104H]
IF i < stringBufSize-1 THENg str[i]h := ch;i INC(i) ELSEj Markk("string too long")l ENDm ;
00F2g(80E00004): LDR R0, SP, 4H
00F3g(400900FF): SUB R0, R0, FFH
00F4g(ED00000B): BGE 11 [0100H]
00F5h(80E00004): LDR R0, SP, 4H
00F6h(41090100): SUB R1, R0, 100H
00F7h(DA0C8E1C): BLCC MT [trap=1, pos=3214]
00F8h .FIXUP D
00F8h(8D00000A): LDR SB, MT, MOD0 [ORS]
00F9h(00D80000): ADD R0, SB, R0 [global array]
00FAi(91D00130): LDR R1, SB, 130H
00FBi(B100002C): STR R1, R0, 2CH
00FCj(80E00004): LDR R0, SP, 4H
00FDj(40080001): ADD R0, R0, 1H
00FEj(A0E00004): STR R0, SP, 4H
00FFk(E7000004): B 4 [0104H]
0100l .FIXUP D
0100l(8D000008): LDR SB, MT, MOD0 [ORS]
0101l(40D803E8): ADD R0, SB, 3E8H ["string too long"]
0102l(41000010): MOV R1, R0, 10H
0103m(F7FFFF17): BL -233 [001BH]
END ;
Texts.Read(R,n ch)o
0104n .FIXUP D
0104n(8D000004): LDR SB, MT, MOD0 [ORS]
0105n(40D80138): ADD R0, SB, 138H [data]
0106n .FIXUP D
0106n(8D100002): LDR SB, MT, MOD1 [Texts]
0107n(41D80002): ADD R1, SB, VAR2
0108o .FIXUP D
0108o(8D000002): LDR SB, MT, MOD0 [ORS]
0109o(42D80130): ADD R2, SB, 130H [data]
ENDp ;
010Ap .FIXUP P
010Ap(F7113024): BL MOD1 [Texts] PROC19
010Bp(E7FFFFDB): B -37 [00E7H]
str[i]q := 0X;r INC(i);s Texts.Read(R,t ch)u;v slen := i
010Cq(80E00004): LDR R0, SP, 4H
010Dq(41090100): SUB R1, R0, 100H
010Eq(DA0CF81C): BLCC MT [trap=1, pos=3320]
010Fq .FIXUP D
010Fq(8D000007): LDR SB, MT, MOD0 [ORS]
0110q(00D80000): ADD R0, SB, R0 [global array]
0111r(41000000): MOV R1, R0, 0H
0112r(B100002C): STR R1, R0, 2CH
0113s(80E00004): LDR R0, SP, 4H
0114s(40080001): ADD R0, R0, 1H
0115s(A0E00004): STR R0, SP, 4H
0116t(40D80138): ADD R0, SB, 138H
0117t .FIXUP D
0117t(8D100008): LDR SB, MT, MOD1 [Texts]
0118t(41D80002): ADD R1, SB, VAR2
0119u .FIXUP D
0119u(8D000002): LDR SB, MT, MOD0 [ORS]
011Au(42D80130): ADD R2, SB, 130H [data]
011Bv .FIXUP P
011Bv(F7113011): BL MOD1 [Texts] PROC19
ENDw String;
011Cw(80E00004): LDR R0, SP, 4H
011Dw .FIXUP D
011Dw(8D000004): LDR SB, MT, MOD0 [ORS]
011Ew(A0D00004): STR R0, SB, 4H [data]
011Fw(8FE00000): LDR LNK, SP, 0H
0120w(4EE80008): ADD SP, SP, 8H
0121w(C700000F): B LNK
PROCEDURE HexString;
VAR i, m, n: INTEGER;
BEGINx i := 0;y Texts.Read(R,z ch)a;b
0122x(4EE90010): SUB SP, SP, 10H
0123x(AFE00000): STR LNK, SP, 0H
0124y(40000000): MOV R0, R0, 0H
0125y(A0E00004): STR R0, SP, 4H
0126z .FIXUP D
0126z(8D000009): LDR SB, MT, MOD0 [ORS]
0127z(40D80138): ADD R0, SB, 138H [data]
0128z .FIXUP D
0128z(8D100002): LDR SB, MT, MOD1 [Texts]
0129z(41D80002): ADD R1, SB, VAR2
012Aa .FIXUP D
012Aa(8D000002): LDR SB, MT, MOD0 [ORS]
012Ba(42D80130): ADD R2, SB, 130H [data]
012Cb .FIXUP P
012Cb(F7113011): BL MOD1 [Texts] PROC19
WHILE ~R.eot &c (dch # "$")e DOf
012Dc .FIXUP D
012Dc(8D000003): LDR SB, MT, MOD0 [ORS]
012Ec(90D00138): LDR R0, SB, 138H [data]
012Fd(E900007B): BNE 123 [01ABH]
0130e .FIXUP D
0130e(8D000003): LDR SB, MT, MOD0 [ORS]
0131e(90D00130): LDR R0, SB, 130H [data]
0132e(40090024): SUB R0, R0, 24H
0133f(E1000077): BEQ 119 [01ABH]
WHILE ~R.eot &g (hch <= " ")i DOj Texts.Read(R,k ch)l ENDm ; (*skip*)
0134g .FIXUP D
0134g(8D000004): LDR SB, MT, MOD0 [ORS]
0135g(90D00138): LDR R0, SB, 138H [data]
0136h(E900000C): BNE 12 [0143H]
0137i .FIXUP D
0137i(8D000003): LDR SB, MT, MOD0 [ORS]
0138i(90D00130): LDR R0, SB, 130H [data]
0139i(40090020): SUB R0, R0, 20H
013Aj(EE000008): BGT 8 [0143H]
013Bk .FIXUP D
013Bk(8D000004): LDR SB, MT, MOD0 [ORS]
013Ck(40D80138): ADD R0, SB, 138H [data]
013Dk .FIXUP D
013Dk(8D100002): LDR SB, MT, MOD1 [Texts]
013Ek(41D80002): ADD R1, SB, VAR2
013Fl .FIXUP D
013Fl(8D000002): LDR SB, MT, MOD0 [ORS]
0140l(42D80130): ADD R2, SB, 130H [data]
0141m .FIXUP P
0141m(F7113015): BL MOD1 [Texts] PROC19
0142m(E7FFFFF1): B -15 [0134H]
IF ("0" <= ch)n & (och <= "9")p THENq m := ORD(ch) -r 30H
0143n(40000030): MOV R0, R0, 30H
0144n .FIXUP D
0144n(8D000005): LDR SB, MT, MOD0 [ORS]
0145n(91D00130): LDR R1, SB, 130H [data]
0146n(00090001): SUB R0, R0, R1
0147o(EE000009): BGT 9 [0151H]
0148p .FIXUP D
0148p(8D000004): LDR SB, MT, MOD0 [ORS]
0149p(90D00130): LDR R0, SB, 130H [data]
014Ap(40090039): SUB R0, R0, 39H
014Bq(EE000005): BGT 5 [0151H]
014Cr .FIXUP D
014Cr(8D000004): LDR SB, MT, MOD0 [ORS]
014Dr(90D00130): LDR R0, SB, 130H [data]
ELSIFs (t"A" <= ch)u & (vch <= "F")w THENx m := ORD(ch) -y 37H
014Es(40090030): SUB R0, R0, 30H
014Fs(A0E00008): STR R0, SP, 8H
0150t(E7000014): B 20 [0165H]
0151u(40000041): MOV R0, R0, 41H
0152u .FIXUP D
0152u(8D000006): LDR SB, MT, MOD0 [ORS]
0153u(91D00130): LDR R1, SB, 130H [data]
0154u(00090001): SUB R0, R0, R1
0155v(EE000009): BGT 9 [015FH]
0156w .FIXUP D
0156w(8D000004): LDR SB, MT, MOD0 [ORS]
0157w(90D00130): LDR R0, SB, 130H [data]
0158w(40090046): SUB R0, R0, 46H
0159x(EE000005): BGT 5 [015FH]
015Ay .FIXUP D
015Ay(8D000004): LDR SB, MT, MOD0 [ORS]
015By(90D00130): LDR R0, SB, 130H [data]
ELSEz ma := 0;b Mark("hexdig expected")c
015Cz(40090037): SUB R0, R0, 37H
015Dz(A0E00008): STR R0, SP, 8H
015Ea(E7000006): B 6 [0165H]
015Fb(40000000): MOV R0, R0, 0H
0160b(A0E00008): STR R0, SP, 8H
0161c .FIXUP D
0161c(8D000007): LDR SB, MT, MOD0 [ORS]
0162c(40D803F8): ADD R0, SB, 3F8H ["hexdig expected"]
0163c(41000010): MOV R1, R0, 10H
ENDd ;
0164d(F7FFFEB6): BL -330 [001BH]
Texts.Read(R,e ch)f;g
0165e .FIXUP D
0165e(8D000004): LDR SB, MT, MOD0 [ORS]
0166e(40D80138): ADD R0, SB, 138H [data]
0167e .FIXUP D
0167e(8D100002): LDR SB, MT, MOD1 [Texts]
0168e(41D80002): ADD R1, SB, VAR2
0169f .FIXUP D
0169f(8D000002): LDR SB, MT, MOD0 [ORS]
016Af(42D80130): ADD R2, SB, 130H [data]
016Bg .FIXUP P
016Bg(F711302A): BL MOD1 [Texts] PROC19
IF ("0" <= ch)h & (ich <= "9")j THENk n := ORD(ch) -l 30H
016Ch(40000030): MOV R0, R0, 30H
016Dh .FIXUP D
016Dh(8D000004): LDR SB, MT, MOD0 [ORS]
016Eh(91D00130): LDR R1, SB, 130H [data]
016Fh(00090001): SUB R0, R0, R1
0170i(EE000009): BGT 9 [017AH]
0171j .FIXUP D
0171j(8D000004): LDR SB, MT, MOD0 [ORS]
0172j(90D00130): LDR R0, SB, 130H [data]
0173j(40090039): SUB R0, R0, 39H
0174k(EE000005): BGT 5 [017AH]
0175l .FIXUP D
0175l(8D000004): LDR SB, MT, MOD0 [ORS]
0176l(90D00130): LDR R0, SB, 130H [data]
ELSIFm (n"A" <= ch)o & (pch <= "F")q THENr n := ORD(ch) -s 37H
0177m(40090030): SUB R0, R0, 30H
0178m(A0E0000C): STR R0, SP, CH
0179n(E7000014): B 20 [018EH]
017Ao(40000041): MOV R0, R0, 41H
017Bo .FIXUP D
017Bo(8D000006): LDR SB, MT, MOD0 [ORS]
017Co(91D00130): LDR R1, SB, 130H [data]
017Do(00090001): SUB R0, R0, R1
017Ep(EE000009): BGT 9 [0188H]
017Fq .FIXUP D
017Fq(8D000004): LDR SB, MT, MOD0 [ORS]
0180q(90D00130): LDR R0, SB, 130H [data]
0181q(40090046): SUB R0, R0, 46H
0182r(EE000005): BGT 5 [0188H]
0183s .FIXUP D
0183s(8D000004): LDR SB, MT, MOD0 [ORS]
0184s(90D00130): LDR R0, SB, 130H [data]
ELSEt nu := 0;v Mark("hexdig expected")w
0185t(40090037): SUB R0, R0, 37H
0186t(A0E0000C): STR R0, SP, CH
0187u(E7000006): B 6 [018EH]
0188v(40000000): MOV R0, R0, 0H
0189v(A0E0000C): STR R0, SP, CH
018Aw .FIXUP D
018Aw(8D000007): LDR SB, MT, MOD0 [ORS]
018Bw(40D80408): ADD R0, SB, 408H ["hexdig expected"]
018Cw(41000010): MOV R1, R0, 10H
ENDx ;
018Dx(F7FFFE8D): BL -371 [001BH]
IF i < stringBufSize THENy str[i]z := CHR(m*10H +a n)b;c INC(i) ELSEd Marke("string too long")f ENDg ;
018Ey(80E00004): LDR R0, SP, 4H
018Fy(40090100): SUB R0, R0, 100H
0190y(ED00000E): BGE 14 [019FH]
0191z(80E00004): LDR R0, SP, 4H
0192z(41090100): SUB R1, R0, 100H
0193z(DA0F8E1C): BLCC MT [trap=1, pos=3982]
0194z .FIXUP D
0194z(8D00000A): LDR SB, MT, MOD0 [ORS]
0195z(00D80000): ADD R0, SB, R0 [global array]
0196a(81E00008): LDR R1, SP, 8H
0197a(41110004): LSL R1, R1, 4H
0198b(82E0000C): LDR R2, SP, CH
0199b(01180002): ADD R1, R1, R2
019Ac(B100002C): STR R1, R0, 2CH
019Bd(80E00004): LDR R0, SP, 4H
019Cd(40080001): ADD R0, R0, 1H
019Dd(A0E00004): STR R0, SP, 4H
019Ee(E7000004): B 4 [01A3H]
019Ff .FIXUP D
019Ff(8D00000B): LDR SB, MT, MOD0 [ORS]
01A0f(40D80418): ADD R0, SB, 418H ["string too long"]
01A1f(41000010): MOV R1, R0, 10H
01A2g(F7FFFE78): BL -392 [001BH]
Texts.Read(R,h ch)i
01A3h .FIXUP D
01A3h(8D000004): LDR SB, MT, MOD0 [ORS]
01A4h(40D80138): ADD R0, SB, 138H [data]
01A5h .FIXUP D
01A5h(8D100002): LDR SB, MT, MOD1 [Texts]
01A6h(41D80002): ADD R1, SB, VAR2
01A7i .FIXUP D
01A7i(8D000002): LDR SB, MT, MOD0 [ORS]
01A8i(42D80130): ADD R2, SB, 130H [data]
ENDj ;
01A9j .FIXUP P
01A9j(F711303E): BL MOD1 [Texts] PROC19
01AAj(E7FFFF82): B -126 [012DH]
Texts.Read(R,k ch)l;m slen := i (*no 0X appended!*)
01ABk .FIXUP D
01ABk(8D000004): LDR SB, MT, MOD0 [ORS]
01ACk(40D80138): ADD R0, SB, 138H [data]
01ADk .FIXUP D
01ADk(8D100002): LDR SB, MT, MOD1 [Texts]
01AEk(41D80002): ADD R1, SB, VAR2
01AFl .FIXUP D
01AFl(8D000002): LDR SB, MT, MOD0 [ORS]
01B0l(42D80130): ADD R2, SB, 130H [data]
01B1m .FIXUP P
01B1m(F7113008): BL MOD1 [Texts] PROC19
ENDn HexString;
01B2n(80E00004): LDR R0, SP, 4H
01B3n .FIXUP D
01B3n(8D000004): LDR SB, MT, MOD0 [ORS]
01B4n(A0D00004): STR R0, SB, 4H [data]
01B5n(8FE00000): LDR LNK, SP, 0H
01B6n(4EE80010): ADD SP, SP, 10H
01B7n(C700000F): B LNK
PROCEDURE Ten(e: LONGINT): REAL;
VAR x, t: REAL;
BEGINo x := 1.0;p t := 10.0;q
01B8o(4EE90010): SUB SP, SP, 10H
01B9o(AFE00000): STR LNK, SP, 0H
01BAo(A0E00004): STR R0, SP, 4H
01BBp(60003F80): MOV' R0, R0, 3F80H
01BCp(A0E00008): STR R0, SP, 8H
01BDq(60004120): MOV' R0, R0, 4120H
01BEq(A0E0000C): STR R0, SP, CH
WHILE e > 0 DOr
01BFr(80E00004): LDR R0, SP, 4H
01C0r(40090000): SUB R0, R0, 0H
01C1r(E600000F): BLE 15 [01D1H]
IF ODD(e) THENs x := t * x ENDt ;
01C2s(80E00004): LDR R0, SP, 4H
01C3s(40040001): AND R0, R0, 1H
01C4s(E1000004): BEQ 4 [01C9H]
01C5t(80E0000C): LDR R0, SP, CH
01C6t(81E00008): LDR R1, SP, 8H
01C7t(000E0001): FML R0, R0, R1
01C8t(A0E00008): STR R0, SP, 8H
t := t * t;u e := e DIV 2
01C9u(80E0000C): LDR R0, SP, CH
01CAu(81E0000C): LDR R1, SP, CH
01CBu(000E0001): FML R0, R0, R1
01CCu(A0E0000C): STR R0, SP, CH
ENDv ;
01CDv(80E00004): LDR R0, SP, 4H
01CEv(40020001): ASR R0, R0, 1H
01CFv(A0E00004): STR R0, SP, 4H
01D0v(E7FFFFEE): B -18 [01BFH]
RETURN x
ENDw Ten;
01D1w(80E00008): LDR R0, SP, 8H
01D2w(8FE00000): LDR LNK, SP, 0H
01D3w(4EE80010): ADD SP, SP, 10H
01D4w(C700000F): B LNK
PROCEDURE Number(VAR sym: INTEGER);
CONST max = 2147483647 (*2^31 - 1*);
VAR i, k, e, n, s, h: LONGINT; x: REAL;
d: ARRAY 16 OF INTEGER;
negE: BOOLEAN;
BEGINx ival := 0;y i := 0;z n := 0;a k := 0;b
01D5x(4EE90068): SUB SP, SP, 68H
01D6x(AFE00000): STR LNK, SP, 0H
01D7x(A0E00004): STR R0, SP, 4H
01D8y(40000000): MOV R0, R0, 0H
01D9y .FIXUP D
01D9y(8D000026): LDR SB, MT, MOD0 [ORS]
01DAy(A0D00000): STR R0, SB, 0H [data]
01DBz(40000000): MOV R0, R0, 0H
01DCz(A0E00008): STR R0, SP, 8H
01DDa(40000000): MOV R0, R0, 0H
01DEa(A0E00014): STR R0, SP, 14H
01DFb(40000000): MOV R0, R0, 0H
01E0b(A0E0000C): STR R0, SP, CH
REPEAT
IF n < 16 THENc d[n]d := ORD(ch)-e30H;f INC(n) ELSEg Markh("too many digits")i;j n := 0 ENDk ;
01E1c(80E00014): LDR R0, SP, 14H
01E2c(40090010): SUB R0, R0, 10H
01E3c(ED00000D): BGE 13 [01F1H]
01E4d(80E00014): LDR R0, SP, 14H
01E5d(41090010): SUB R1, R0, 10H
01E6d(DA12021C): BLCC MT [trap=1, pos=4610]
01E7d(40010002): LSL R0, R0, 2H
01E8d(00E80000): ADD R0, SP, R0
01E9e .FIXUP D
01E9e(8D000010): LDR SB, MT, MOD0 [ORS]
01EAe(91D00130): LDR R1, SB, 130H [data]
01EBf(41190030): SUB R1, R1, 30H
01ECf(A1000024): STR R1, R0, 24H
01EDg(80E00014): LDR R0, SP, 14H
01EEg(40080001): ADD R0, R0, 1H
01EFg(A0E00014): STR R0, SP, 14H
01F0h(E7000006): B 6 [01F7H]
01F1i .FIXUP D
01F1i(8D000008): LDR SB, MT, MOD0 [ORS]
01F2i(40D80428): ADD R0, SB, 428H ["too many digits"]
01F3i(41000010): MOV R1, R0, 10H
01F4j(F7FFFE26): BL -474 [001BH]
01F5k(40000000): MOV R0, R0, 0H
01F6k(A0E00014): STR R0, SP, 14H
Texts.Read(R,l ch)m
01F7l .FIXUP D
01F7l(8D000006): LDR SB, MT, MOD0 [ORS]
01F8l(40D80138): ADD R0, SB, 138H [data]
01F9l .FIXUP D
01F9l(8D100002): LDR SB, MT, MOD1 [Texts]
01FAl(41D80002): ADD R1, SB, VAR2
01FBm .FIXUP D
01FBm(8D000002): LDR SB, MT, MOD0 [ORS]
01FCm(42D80130): ADD R2, SB, 130H [data]
UNTILn (ch < "0")o OR (pch > "9")q & (rch < "A")s OR (tch > "F")u;v
01FDn .FIXUP P
01FDn(F711304C): BL MOD1 [Texts] PROC19
01FEo .FIXUP D
01FEo(8D000003): LDR SB, MT, MOD0 [ORS]
01FFo(90D00130): LDR R0, SB, 130H [data]
0200o(40090030): SUB R0, R0, 30H
0201p(E500000C): BLT 12 [020EH]
0202q .FIXUP D
0202q(8D000004): LDR SB, MT, MOD0 [ORS]
0203q(90D00130): LDR R0, SB, 130H [data]
0204q(40090039): SUB R0, R0, 39H
0205r(E6000004): BLE 4 [020AH]
0206s .FIXUP D
0206s(8D000004): LDR SB, MT, MOD0 [ORS]
0207s(90D00130): LDR R0, SB, 130H [data]
0208s(40090041): SUB R0, R0, 41H
0209t(E5000004): BLT 4 [020EH]
020Au .FIXUP D
020Au(8D000004): LDR SB, MT, MOD0 [ORS]
020Bu(90D00130): LDR R0, SB, 130H [data]
020Cu(40090046): SUB R0, R0, 46H
020Dv(E6FFFFD3): BLE -45 [01E1H]
IF (ch = "H")w OR (xch = "R")y OR (zch = "X")a THENb (*hex*)
020Ew .FIXUP D
020Ew(8D000004): LDR SB, MT, MOD0 [ORS]
020Fw(90D00130): LDR R0, SB, 130H [data]
0210w(40090048): SUB R0, R0, 48H
0211x(E1000008): BEQ 8 [021AH]
0212y .FIXUP D
0212y(8D000004): LDR SB, MT, MOD0 [ORS]
0213y(90D00130): LDR R0, SB, 130H [data]
0214y(40090052): SUB R0, R0, 52H
0215z(E1000004): BEQ 4 [021AH]
0216a .FIXUP D
0216a(8D000004): LDR SB, MT, MOD0 [ORS]
0217a(90D00130): LDR R0, SB, 130H [data]
0218a(40090058): SUB R0, R0, 58H
0219b(E9000048): BNE 72 [0262H]
REPEAT h := d[i]c;d
021Ac(80E00008): LDR R0, SP, 8H
021Bc(41090010): SUB R1, R0, 10H
021Cc(DA12EE1C): BLCC MT [trap=1, pos=4846]
021Dc(40010002): LSL R0, R0, 2H
021Ec(00E80000): ADD R0, SP, R0
021Fd(80000024): LDR R0, R0, 24H
0220d(A0E0001C): STR R0, SP, 1CH
IF h >= 10 THENe h := h-7 ENDf ;
0221e(80E0001C): LDR R0, SP, 1CH
0222e(4009000A): SUB R0, R0, AH
0223e(E5000003): BLT 3 [0227H]
0224f(80E0001C): LDR R0, SP, 1CH
0225f(40090007): SUB R0, R0, 7H
0226f(A0E0001C): STR R0, SP, 1CH
k := k*10H +g h;h INC(i) (*no overflow check*)
0227g(80E0000C): LDR R0, SP, CH
0228g(40010004): LSL R0, R0, 4H
0229h(81E0001C): LDR R1, SP, 1CH
022Ah(00080001): ADD R0, R0, R1
022Bh(A0E0000C): STR R0, SP, CH
UNTILi i = n;j
022Ci(80E00008): LDR R0, SP, 8H
022Di(40080001): ADD R0, R0, 1H
022Ei(A0E00008): STR R0, SP, 8H
022Fj(80E00008): LDR R0, SP, 8H
0230j(81E00014): LDR R1, SP, 14H
0231j(00090001): SUB R0, R0, R1
0232j(E9FFFFE7): BNE -25 [021AH]
IF ch = "X" THENk sym := char;l
0233k .FIXUP D
0233k(8D00001D): LDR SB, MT, MOD0 [ORS]
0234k(90D00130): LDR R0, SB, 130H [data]
0235k(40090058): SUB R0, R0, 58H
0236k(E9000012): BNE 18 [0249H]
0237l(40000014): MOV R0, R0, 14H
0238l(81E00004): LDR R1, SP, 4H
0239l(A0100000): STR R0, R1, 0H
IF k < 100H THENm ival := k ELSEn Marko("illegal value")p;q ival := 0 ENDr
023Am(80E0000C): LDR R0, SP, CH
023Bm(40090100): SUB R0, R0, 100H
023Cm(ED000004): BGE 4 [0241H]
023Dn(80E0000C): LDR R0, SP, CH
023En .FIXUP D
023En(8D00000B): LDR SB, MT, MOD0 [ORS]
023Fn(A0D00000): STR R0, SB, 0H [data]
0240o(E7000007): B 7 [0248H]
0241p .FIXUP D
0241p(8D000003): LDR SB, MT, MOD0 [ORS]
0242p(40D80438): ADD R0, SB, 438H ["illegal value"]
0243p(4100000E): MOV R1, R0, EH
0244q(F7FFFDD6): BL -554 [001BH]
0245r(40000000): MOV R0, R0, 0H
0246r .FIXUP D
0246r(8D000005): LDR SB, MT, MOD0 [ORS]
0247r(A0D00000): STR R0, SB, 0H [data]
ELSIF chs = "R" THENt sym := real;u rval := SYSTEM.VAL(REAL, k)
0248s(E7000011): B 17 [025AH]
0249t .FIXUP D
0249t(8D000003): LDR SB, MT, MOD0 [ORS]
024At(90D00130): LDR R0, SB, 130H [data]
024Bt(40090052): SUB R0, R0, 52H
024Ct(E9000007): BNE 7 [0254H]
024Du(40000016): MOV R0, R0, 16H
024Eu(81E00004): LDR R1, SP, 4H
024Fu(A0100000): STR R0, R1, 0H
ELSEv symw := int;x ival := k
0250v(80E0000C): LDR R0, SP, CH
0251v .FIXUP D
0251v(8D000008): LDR SB, MT, MOD0 [ORS]
0252v(A0D00008): STR R0, SB, 8H [data]
0253w(E7000006): B 6 [025AH]
0254x(40000015): MOV R0, R0, 15H
0255x(81E00004): LDR R1, SP, 4H
0256x(A0100000): STR R0, R1, 0H
ENDy ;
0257y(80E0000C): LDR R0, SP, CH
0258y .FIXUP D
0258y(8D000007): LDR SB, MT, MOD0 [ORS]
0259y(A0D00000): STR R0, SB, 0H [data]
Texts.Read(R,z ch)a
025Az .FIXUP D
025Az(8D000002): LDR SB, MT, MOD0 [ORS]
025Bz(40D80138): ADD R0, SB, 138H [data]
025Cz .FIXUP D
025Cz(8D100002): LDR SB, MT, MOD1 [Texts]
025Dz(41D80002): ADD R1, SB, VAR2
025Ea .FIXUP D
025Ea(8D000002): LDR SB, MT, MOD0 [ORS]
025Fa(42D80130): ADD R2, SB, 130H [data]
ELSIFb chc = "." THENd
0260b .FIXUP P
0260b(F7113063): BL MOD1 [Texts] PROC19
0261c(E700013A): B 314 [039CH]
0262d .FIXUP D
0262d(8D000004): LDR SB, MT, MOD0 [ORS]
0263d(90D00130): LDR R0, SB, 130H [data]
0264d(4009002E): SUB R0, R0, 2EH
0265d(E90000FE): BNE 254 [0364H]
Texts.Read(R,e ch)f;g
0266e .FIXUP D
0266e(8D000004): LDR SB, MT, MOD0 [ORS]
0267e(40D80138): ADD R0, SB, 138H [data]
0268e .FIXUP D
0268e(8D100002): LDR SB, MT, MOD1 [Texts]
0269e(41D80002): ADD R1, SB, VAR2
026Af .FIXUP D
026Af(8D000002): LDR SB, MT, MOD0 [ORS]
026Bf(42D80130): ADD R2, SB, 130H [data]
026Cg .FIXUP P
026Cg(F711300C): BL MOD1 [Texts] PROC19
IF ch = "." THENh (*double dot*) ch := 7FX;i (*decimal integer*)
026Dh .FIXUP D
026Dh(8D000003): LDR SB, MT, MOD0 [ORS]
026Eh(90D00130): LDR R0, SB, 130H [data]
026Fh(4009002E): SUB R0, R0, 2EH
0270h(E900003C): BNE 60 [02ADH]
0271i(4000007F): MOV R0, R0, 7FH
0272i .FIXUP D
0272i(8D000005): LDR SB, MT, MOD0 [ORS]
0273i(B0D00130): STR R0, SB, 130H [data]
REPEAT
IF d[i]j < 10 THENk
0274j(80E00008): LDR R0, SP, 8H
0275j(41090010): SUB R1, R0, 10H
0276j(DA14EF1C): BLCC MT [trap=1, pos=5359]
0277j(40010002): LSL R0, R0, 2H
0278j(00E80000): ADD R0, SP, R0
0279k(80000024): LDR R0, R0, 24H
027Ak(4009000A): SUB R0, R0, AH
027Bk(ED00001F): BGE 31 [029BH]
IF k <= (max-d[i]l)m DIV 10 THENn k := k *10 +o d[i]p ELSEq Markr("too large")s;t k := 0 ENDu
027Cl(80E00008): LDR R0, SP, 8H
027Dl(41090010): SUB R1, R0, 10H
027El(DA15171C): BLCC MT [trap=1, pos=5399]
027Fl(40010002): LSL R0, R0, 2H
0280l(00E80000): ADD R0, SP, R0
0281m(61007FFF): MOV' R1, R0, 7FFFH
0282m(4116FFFF): IOR R1, R1, FFFFFFFFH
0283m(80000024): LDR R0, R0, 24H
0284m(00190000): SUB R0, R1, R0
0285n(400B000A): DIV R0, R0, AH
0286n(81E0000C): LDR R1, SP, CH
0287n(01190000): SUB R1, R1, R0
0288n(EE00000B): BGT 11 [0294H]
0289o(80E0000C): LDR R0, SP, CH
028Ao(400A000A): MUL R0, R0, AH
028Bp(81E00008): LDR R1, SP, 8H
028Cp(42190010): SUB R2, R1, 10H
028Dp(DA15361C): BLCC MT [trap=1, pos=5430]
028Ep(41110002): LSL R1, R1, 2H
028Fp(01E80001): ADD R1, SP, R1
0290q(81100024): LDR R1, R1, 24H
0291q(00080001): ADD R0, R0, R1
0292q(A0E0000C): STR R0, SP, CH
0293r(E7000006): B 6 [029AH]
0294s .FIXUP D
0294s(8D000022): LDR SB, MT, MOD0 [ORS]
0295s(40D80448): ADD R0, SB, 448H ["too large"]
0296s(4100000A): MOV R1, R0, AH
0297t(F7FFFD83): BL -637 [001BH]
0298u(40000000): MOV R0, R0, 0H
0299u(A0E0000C): STR R0, SP, CH
ELSE Markv("bad integer")w
029Av(E7000004): B 4 [029FH]
029Bw .FIXUP D
029Bw(8D000007): LDR SB, MT, MOD0 [ORS]
029Cw(40D80454): ADD R0, SB, 454H ["bad integer"]
029Dw(4100000C): MOV R1, R0, CH
ENDx ;
029Ex(F7FFFD7C): BL -644 [001BH]
INC(i)
UNTILy i = n;z
029Fy(80E00008): LDR R0, SP, 8H
02A0y(40080001): ADD R0, R0, 1H
02A1y(A0E00008): STR R0, SP, 8H
02A2z(80E00008): LDR R0, SP, 8H
02A3z(81E00014): LDR R1, SP, 14H
02A4z(00090001): SUB R0, R0, R1
02A5z(E9FFFFCE): BNE -50 [0274H]
sym := int;a ival := k
02A6a(40000015): MOV R0, R0, 15H
02A7a(81E00004): LDR R1, SP, 4H
02A8a(A0100000): STR R0, R1, 0H
ELSEb (*real number*) xc := 0.0;d e := 0;e
02A9b(80E0000C): LDR R0, SP, CH
02AAb .FIXUP D
02AAb(8D00000F): LDR SB, MT, MOD0 [ORS]
02ABb(A0D00000): STR R0, SB, 0H [data]
02ACc(E70000B6): B 182 [0363H]
02ADd(40000000): MOV R0, R0, 0H
02AEd(A0E00020): STR R0, SP, 20H
02AFe(40000000): MOV R0, R0, 0H
02B0e(A0E00010): STR R0, SP, 10H
REPEAT (*integer part*) x := x * 10.0 +f FLT(d[i]g);h INC(i) UNTILi i = n;j
02B1f(80E00020): LDR R0, SP, 20H
02B2f(61004120): MOV' R1, R0, 4120H
02B3f(000E0001): FML R0, R0, R1
02B4g(81E00008): LDR R1, SP, 8H
02B5g(42190010): SUB R2, R1, 10H
02B6g(DA16371C): BLCC MT [trap=1, pos=5687]
02B7g(41110002): LSL R1, R1, 2H
02B8g(01E80001): ADD R1, SP, R1
02B9h(81100024): LDR R1, R1, 24H
02BAh(62004B00): MOV' R2, R0, 4B00H
02BBh(211C0002): FAD' R1, R1, R2
02BCh(000C0001): FAD R0, R0, R1
02BDh(A0E00020): STR R0, SP, 20H
02BEi(80E00008): LDR R0, SP, 8H
02BFi(40080001): ADD R0, R0, 1H
02C0i(A0E00008): STR R0, SP, 8H
02C1j(80E00008): LDR R0, SP, 8H
02C2j(81E00014): LDR R1, SP, 14H
02C3j(00090001): SUB R0, R0, R1
02C4j(E9FFFFEC): BNE -20 [02B1H]
WHILE (ch >= "0")k & (lch <= "9")m DOn (*fraction*)
02C5k .FIXUP D
02C5k(8D00001B): LDR SB, MT, MOD0 [ORS]
02C6k(90D00130): LDR R0, SB, 130H [data]
02C7k(40090030): SUB R0, R0, 30H
02C8l(E5000018): BLT 24 [02E1H]
02C9m .FIXUP D
02C9m(8D000004): LDR SB, MT, MOD0 [ORS]
02CAm(90D00130): LDR R0, SB, 130H [data]
02CBm(40090039): SUB R0, R0, 39H
02CCn(EE000014): BGT 20 [02E1H]
x := x * 10.0 +o FLT(ORD(ch) -p 30H)q;r DEC(e);s Texts.Read(R,t ch)u
02CDo(80E00020): LDR R0, SP, 20H
02CEo(61004120): MOV' R1, R0, 4120H
02CFo(000E0001): FML R0, R0, R1
02D0p .FIXUP D
02D0p(8D000007): LDR SB, MT, MOD0 [ORS]
02D1p(91D00130): LDR R1, SB, 130H [data]
02D2q(41190030): SUB R1, R1, 30H
02D3r(62004B00): MOV' R2, R0, 4B00H
02D4r(211C0002): FAD' R1, R1, R2
02D5r(000C0001): FAD R0, R0, R1
02D6r(A0E00020): STR R0, SP, 20H
02D7s(80E00010): LDR R0, SP, 10H
02D8s(40090001): SUB R0, R0, 1H
02D9s(A0E00010): STR R0, SP, 10H
02DAt(40D80138): ADD R0, SB, 138H
02DBt .FIXUP D
02DBt(8D10000B): LDR SB, MT, MOD1 [Texts]
02DCt(41D80002): ADD R1, SB, VAR2
02DDu .FIXUP D
02DDu(8D000002): LDR SB, MT, MOD0 [ORS]
02DEu(42D80130): ADD R2, SB, 130H [data]
ENDv ;
02DFv .FIXUP P
02DFv(F7113073): BL MOD1 [Texts] PROC19
02E0v(E7FFFFE4): B -28 [02C5H]
IF (ch = "E")w OR (xch = "D")y THENz (*scale factor*)
02E1w .FIXUP D
02E1w(8D000004): LDR SB, MT, MOD0 [ORS]
02E2w(90D00130): LDR R0, SB, 130H [data]
02E3w(40090045): SUB R0, R0, 45H
02E4x(E1000004): BEQ 4 [02E9H]
02E5y .FIXUP D
02E5y(8D000004): LDR SB, MT, MOD0 [ORS]
02E6y(90D00130): LDR R0, SB, 130H [data]
02E7y(40090044): SUB R0, R0, 44H
02E8z(E9000051): BNE 81 [033AH]
Texts.Read(R,a ch)b;c s := 0;d
02E9a .FIXUP D
02E9a(8D000004): LDR SB, MT, MOD0 [ORS]
02EAa(40D80138): ADD R0, SB, 138H [data]
02EBa .FIXUP D
02EBa(8D100002): LDR SB, MT, MOD1 [Texts]
02ECa(41D80002): ADD R1, SB, VAR2
02EDb .FIXUP D
02EDb(8D000002): LDR SB, MT, MOD0 [ORS]
02EEb(42D80130): ADD R2, SB, 130H [data]
02EFc .FIXUP P
02EFc(F7113010): BL MOD1 [Texts] PROC19
02F0d(40000000): MOV R0, R0, 0H
02F1d(A0E00018): STR R0, SP, 18H
IF ch = "-" THENe negE := TRUE;f Texts.Read(R,g ch)h
02F2e .FIXUP D
02F2e(8D000005): LDR SB, MT, MOD0 [ORS]
02F3e(90D00130): LDR R0, SB, 130H [data]
02F4e(4009002D): SUB R0, R0, 2DH
02F5e(E900000A): BNE 10 [0300H]
02F6f(40000001): MOV R0, R0, 1H
02F7f(B0E00064): STR R0, SP, 64H
02F8g .FIXUP D
02F8g(8D000006): LDR SB, MT, MOD0 [ORS]
02F9g(40D80138): ADD R0, SB, 138H [data]
02FAg .FIXUP D
02FAg(8D100002): LDR SB, MT, MOD1 [Texts]
02FBg(41D80002): ADD R1, SB, VAR2
02FCh .FIXUP D
02FCh(8D000002): LDR SB, MT, MOD0 [ORS]
02FDh(42D80130): ADD R2, SB, 130H [data]
ELSEi negEj := FALSE;k
02FEi .FIXUP P
02FEi(F711300F): BL MOD1 [Texts] PROC19
02FFj(E700000D): B 13 [030DH]
0300k(40000000): MOV R0, R0, 0H
0301k(B0E00064): STR R0, SP, 64H
IF ch = "+" THENl Texts.Read(R,m ch)n ENDo
0302l .FIXUP D
0302l(8D000006): LDR SB, MT, MOD0 [ORS]
0303l(90D00130): LDR R0, SB, 130H [data]
0304l(4009002B): SUB R0, R0, 2BH
0305l(E9000007): BNE 7 [030DH]
0306m .FIXUP D
0306m(8D000004): LDR SB, MT, MOD0 [ORS]
0307m(40D80138): ADD R0, SB, 138H [data]
0308m .FIXUP D
0308m(8D100002): LDR SB, MT, MOD1 [Texts]
0309m(41D80002): ADD R1, SB, VAR2
030An .FIXUP D
030An(8D000002): LDR SB, MT, MOD0 [ORS]
030Bn(42D80130): ADD R2, SB, 130H [data]
030Co .FIXUP P
030Co(F711300E): BL MOD1 [Texts] PROC19
END ;
IF (ch >= "0")p & (qch <= "9")r THENs
030Dp .FIXUP D
030Dp(8D000003): LDR SB, MT, MOD0 [ORS]
030Ep(90D00130): LDR R0, SB, 130H [data]
030Fp(40090030): SUB R0, R0, 30H
0310q(E5000025): BLT 37 [0336H]
0311r .FIXUP D
0311r(8D000004): LDR SB, MT, MOD0 [ORS]
0312r(90D00130): LDR R0, SB, 130H [data]
0313r(40090039): SUB R0, R0, 39H
0314s(EE000021): BGT 33 [0336H]
REPEAT s := s*10 +t ORD(ch)-u30H;v Texts.Read(R,w ch)x
0315t(80E00018): LDR R0, SP, 18H
0316t(400A000A): MUL R0, R0, AH
0317u .FIXUP D
0317u(8D000006): LDR SB, MT, MOD0 [ORS]
0318u(91D00130): LDR R1, SB, 130H [data]
0319u(00080001): ADD R0, R0, R1
031Av(40090030): SUB R0, R0, 30H
031Bv(A0E00018): STR R0, SP, 18H
031Cw(40D80138): ADD R0, SB, 138H
031Dw .FIXUP D
031Dw(8D100006): LDR SB, MT, MOD1 [Texts]
031Ew(41D80002): ADD R1, SB, VAR2
031Fx .FIXUP D
031Fx(8D000002): LDR SB, MT, MOD0 [ORS]
0320x(42D80130): ADD R2, SB, 130H [data]
UNTILy (ch < "0")z OR (ach >"9")b;c
0321y .FIXUP P
0321y(F7113015): BL MOD1 [Texts] PROC19
0322z .FIXUP D
0322z(8D000003): LDR SB, MT, MOD0 [ORS]
0323z(90D00130): LDR R0, SB, 130H [data]
0324z(40090030): SUB R0, R0, 30H
0325a(E5000004): BLT 4 [032AH]
0326b .FIXUP D
0326b(8D000004): LDR SB, MT, MOD0 [ORS]
0327b(90D00130): LDR R0, SB, 130H [data]
0328b(40090039): SUB R0, R0, 39H
0329c(E6FFFFEB): BLE -21 [0315H]
IF negE THENd e := e-s ELSEe ef := e+s ENDg
032Ad(90E00064): LDR R0, SP, 64H
032Bd(E1000005): BEQ 5 [0331H]
032Ce(80E00010): LDR R0, SP, 10H
032De(81E00018): LDR R1, SP, 18H
032Ee(00090001): SUB R0, R0, R1
032Fe(A0E00010): STR R0, SP, 10H
0330f(E7000004): B 4 [0335H]
0331g(80E00010): LDR R0, SP, 10H
0332g(81E00018): LDR R1, SP, 18H
0333g(00080001): ADD R0, R0, R1
0334g(A0E00010): STR R0, SP, 10H
ELSE Markh("digit?")i
0335h(E7000004): B 4 [033AH]
0336i .FIXUP D
0336i(8D000010): LDR SB, MT, MOD0 [ORS]
0337i(40D80460): ADD R0, SB, 460H ["digit?"]
0338i(41000007): MOV R1, R0, 7H
ENDj
0339j(F7FFFCE1): BL -799 [001BH]
END ;
IF e < 0 THENk
033Ak(80E00010): LDR R0, SP, 10H
033Bk(40090000): SUB R0, R0, 0H
033Ck(ED00000E): BGE 14 [034BH]
IF e >= -maxExp THENl x := x / Ten(-e)m ELSEn xo := 0.0 ENDp
033Dl(80E00010): LDR R0, SP, 10H
033El(5009FFDA): SUB R0, R0, FFFFFFDAH
033Fl(E5000008): BLT 8 [0348H]
0340m(80E00010): LDR R0, SP, 10H
0341m(41000000): MOV R1, R0, 0H
0342m(00190000): SUB R0, R1, R0
0343n(F7FFFE74): BL -396 [01B8H]
0344n(81E00020): LDR R1, SP, 20H
0345n(001F0000): FDV R0, R1, R0
0346n(A0E00020): STR R0, SP, 20H
0347o(E7000002): B 2 [034AH]
0348p(40000000): MOV R0, R0, 0H
0349p(A0E00020): STR R0, SP, 20H
ELSIF eq > 0 THENr
034Aq(E7000012): B 18 [035DH]
034Br(80E00010): LDR R0, SP, 10H
034Cr(40090000): SUB R0, R0, 0H
034Dr(E600000F): BLE 15 [035DH]
IF e <= maxExp THENs x := Ten(e)t *u x ELSEv xw := 0.0;x Mark("too large")y ENDz
034Es(80E00010): LDR R0, SP, 10H
034Fs(40090026): SUB R0, R0, 26H
0350s(EE000006): BGT 6 [0357H]
0351t(80E00010): LDR R0, SP, 10H
0352u(F7FFFE65): BL -411 [01B8H]
0353v(81E00020): LDR R1, SP, 20H
0354v(000E0001): FML R0, R0, R1
0355v(A0E00020): STR R0, SP, 20H
0356w(E7000006): B 6 [035DH]
0357x(40000000): MOV R0, R0, 0H
0358x(A0E00020): STR R0, SP, 20H
0359y .FIXUP D
0359y(8D000023): LDR SB, MT, MOD0 [ORS]
035Ay(40D80468): ADD R0, SB, 468H ["too large"]
035By(4100000A): MOV R1, R0, AH
035Cz(F7FFFCBE): BL -834 [001BH]
END ;
sym := real;a rval := x
035Da(40000016): MOV R0, R0, 16H
035Ea(81E00004): LDR R1, SP, 4H
035Fa(A0100000): STR R0, R1, 0H
ENDb
0360b(80E00020): LDR R0, SP, 20H
0361b .FIXUP D
0361b(8D000008): LDR SB, MT, MOD0 [ORS]
0362b(A0D00008): STR R0, SB, 8H [data]
ELSE (*decimal integer*)
REPEATc
0363c(E7000038): B 56 [039CH]
IF d[i]d < 10 THENe
0364d(80E00008): LDR R0, SP, 8H
0365d(41090010): SUB R1, R0, 10H
0366d(DA1A121C): BLCC MT [trap=1, pos=6674]
0367d(40010002): LSL R0, R0, 2H
0368d(00E80000): ADD R0, SP, R0
0369e(80000024): LDR R0, R0, 24H
036Ae(4009000A): SUB R0, R0, AH
036Be(ED00001F): BGE 31 [038BH]
IF k <= (max-d[i]f)g DIV 10 THENh k := k*10 +i d[i]j ELSEk Markl("too large")m;n k := 0 ENDo
036Cf(80E00008): LDR R0, SP, 8H
036Df(41090010): SUB R1, R0, 10H
036Ef(DA1A381C): BLCC MT [trap=1, pos=6712]
036Ff(40010002): LSL R0, R0, 2H
0370f(00E80000): ADD R0, SP, R0
0371g(61007FFF): MOV' R1, R0, 7FFFH
0372g(4116FFFF): IOR R1, R1, FFFFFFFFH
0373g(80000024): LDR R0, R0, 24H
0374g(00190000): SUB R0, R1, R0
0375h(400B000A): DIV R0, R0, AH
0376h(81E0000C): LDR R1, SP, CH
0377h(01190000): SUB R1, R1, R0
0378h(EE00000B): BGT 11 [0384H]
0379i(80E0000C): LDR R0, SP, CH
037Ai(400A000A): MUL R0, R0, AH
037Bj(81E00008): LDR R1, SP, 8H
037Cj(42190010): SUB R2, R1, 10H
037Dj(DA1A561C): BLCC MT [trap=1, pos=6742]
037Ej(41110002): LSL R1, R1, 2H
037Fj(01E80001): ADD R1, SP, R1
0380k(81100024): LDR R1, R1, 24H
0381k(00080001): ADD R0, R0, R1
0382k(A0E0000C): STR R0, SP, CH
0383l(E7000006): B 6 [038AH]
0384m .FIXUP D
0384m(8D000023): LDR SB, MT, MOD0 [ORS]
0385m(40D80474): ADD R0, SB, 474H ["too large"]
0386m(4100000A): MOV R1, R0, AH
0387n(F7FFFC93): BL -877 [001BH]
0388o(40000000): MOV R0, R0, 0H
0389o(A0E0000C): STR R0, SP, CH
ELSE Markp("bad integer")q
038Ap(E7000004): B 4 [038FH]
038Bq .FIXUP D
038Bq(8D000007): LDR SB, MT, MOD0 [ORS]
038Cq(40D80480): ADD R0, SB, 480H ["bad integer"]
038Dq(4100000C): MOV R1, R0, CH
ENDr ;
038Er(F7FFFC8C): BL -884 [001BH]
INC(i)
UNTILs i = n;t
038Fs(80E00008): LDR R0, SP, 8H
0390s(40080001): ADD R0, R0, 1H
0391s(A0E00008): STR R0, SP, 8H
0392t(80E00008): LDR R0, SP, 8H
0393t(81E00014): LDR R1, SP, 14H
0394t(00090001): SUB R0, R0, R1
0395t(E9FFFFCE): BNE -50 [0364H]
sym := int;u ival := k
0396u(40000015): MOV R0, R0, 15H
0397u(81E00004): LDR R1, SP, 4H
0398u(A0100000): STR R0, R1, 0H
ENDv
0399v(80E0000C): LDR R0, SP, CH
039Av .FIXUP D
039Av(8D00000F): LDR SB, MT, MOD0 [ORS]
039Bv(A0D00000): STR R0, SB, 0H [data]
ENDw Number;
039Cw(8FE00000): LDR LNK, SP, 0H
039Dw(4EE80068): ADD SP, SP, 68H
039Ew(C700000F): B LNK
PROCEDURE comment;
BEGINx Texts.Read(R,y ch)z;a
039Fx(4EE90004): SUB SP, SP, 4H
03A0x(AFE00000): STR LNK, SP, 0H
03A1y .FIXUP D
03A1y(8D000007): LDR SB, MT, MOD0 [ORS]
03A2y(40D80138): ADD R0, SB, 138H [data]
03A3y .FIXUP D
03A3y(8D100002): LDR SB, MT, MOD1 [Texts]
03A4y(41D80002): ADD R1, SB, VAR2
03A5z .FIXUP D
03A5z(8D000002): LDR SB, MT, MOD0 [ORS]
03A6z(42D80130): ADD R2, SB, 130H [data]
03A7a .FIXUP P
03A7a(F7113086): BL MOD1 [Texts] PROC19
REPEAT
WHILE ~R.eot &b (cch # "*")d DOe
03A8b .FIXUP D
03A8b(8D000003): LDR SB, MT, MOD0 [ORS]
03A9b(90D00138): LDR R0, SB, 138H [data]
03AAc(E900001D): BNE 29 [03C8H]
03ABd .FIXUP D
03ABd(8D000003): LDR SB, MT, MOD0 [ORS]
03ACd(90D00130): LDR R0, SB, 130H [data]
03ADd(4009002A): SUB R0, R0, 2AH
03AEe(E1000019): BEQ 25 [03C8H]
IF ch = "(" THENf Texts.Read(R,g ch)h;i
03AFf .FIXUP D
03AFf(8D000004): LDR SB, MT, MOD0 [ORS]
03B0f(90D00130): LDR R0, SB, 130H [data]
03B1f(40090028): SUB R0, R0, 28H
03B2f(E900000D): BNE 13 [03C0H]
03B3g .FIXUP D
03B3g(8D000004): LDR SB, MT, MOD0 [ORS]
03B4g(40D80138): ADD R0, SB, 138H [data]
03B5g .FIXUP D
03B5g(8D100002): LDR SB, MT, MOD1 [Texts]
03B6g(41D80002): ADD R1, SB, VAR2
03B7h .FIXUP D
03B7h(8D000002): LDR SB, MT, MOD0 [ORS]
03B8h(42D80130): ADD R2, SB, 130H [data]
03B9i .FIXUP P
03B9i(F7113012): BL MOD1 [Texts] PROC19
IF ch = "*" THENj comment ENDk
03BAj .FIXUP D
03BAj(8D000003): LDR SB, MT, MOD0 [ORS]
03BBj(90D00130): LDR R0, SB, 130H [data]
03BCj(4009002A): SUB R0, R0, 2AH
03BDj(E9000001): BNE 1 [03BFH]
03BEk(F7FFFFE0): BL -32 [039FH]
ELSE Textsl.Read(R,m ch)n
03BFl(E7000007): B 7 [03C7H]
03C0m .FIXUP D
03C0m(8D000006): LDR SB, MT, MOD0 [ORS]
03C1m(40D80138): ADD R0, SB, 138H [data]
03C2m .FIXUP D
03C2m(8D100002): LDR SB, MT, MOD1 [Texts]
03C3m(41D80002): ADD R1, SB, VAR2
03C4n .FIXUP D
03C4n(8D000002): LDR SB, MT, MOD0 [ORS]
03C5n(42D80130): ADD R2, SB, 130H [data]
ENDo
03C6o .FIXUP P
03C6o(F711300D): BL MOD1 [Texts] PROC19
ENDp ;
03C7p(E7FFFFE0): B -32 [03A8H]
WHILE ch = "*" DOq Texts.Read(R,r ch)s ENDt
03C8q .FIXUP D
03C8q(8D000004): LDR SB, MT, MOD0 [ORS]
03C9q(90D00130): LDR R0, SB, 130H [data]
03CAq(4009002A): SUB R0, R0, 2AH
03CBq(E9000008): BNE 8 [03D4H]
03CCr .FIXUP D
03CCr(8D000004): LDR SB, MT, MOD0 [ORS]
03CDr(40D80138): ADD R0, SB, 138H [data]
03CEr .FIXUP D
03CEr(8D100002): LDR SB, MT, MOD1 [Texts]
03CFr(41D80002): ADD R1, SB, VAR2
03D0s .FIXUP D
03D0s(8D000002): LDR SB, MT, MOD0 [ORS]
03D1s(42D80130): ADD R2, SB, 130H [data]
03D2t .FIXUP P
03D2t(F711300C): BL MOD1 [Texts] PROC19
03D3t(E7FFFFF4): B -12 [03C8H]
UNTIL (ch = ")")u OR Rv.eot;w
03D4u .FIXUP D
03D4u(8D000004): LDR SB, MT, MOD0 [ORS]
03D5u(90D00130): LDR R0, SB, 130H [data]
03D6u(40090029): SUB R0, R0, 29H
03D7v(E1000003): BEQ 3 [03DBH]
03D8w .FIXUP D
03D8w(8D000004): LDR SB, MT, MOD0 [ORS]
03D9w(90D00138): LDR R0, SB, 138H [data]
03DAw(E1FFFFCD): BEQ -51 [03A8H]
IF ~R.eot THENx Texts.Read(R,y ch)z ELSEa Markb("unterminated comment")c ENDd
03DBx .FIXUP D
03DBx(8D000003): LDR SB, MT, MOD0 [ORS]
03DCx(90D00138): LDR R0, SB, 138H [data]
03DDx(E9000008): BNE 8 [03E6H]
03DEy .FIXUP D
03DEy(8D000003): LDR SB, MT, MOD0 [ORS]
03DFy(40D80138): ADD R0, SB, 138H [data]
03E0y .FIXUP D
03E0y(8D100002): LDR SB, MT, MOD1 [Texts]
03E1y(41D80002): ADD R1, SB, VAR2
03E2z .FIXUP D
03E2z(8D000002): LDR SB, MT, MOD0 [ORS]
03E3z(42D80130): ADD R2, SB, 130H [data]
03E4a .FIXUP P
03E4a(F7113012): BL MOD1 [Texts] PROC19
03E5b(E7000004): B 4 [03EAH]
03E6c .FIXUP D
03E6c(8D000004): LDR SB, MT, MOD0 [ORS]
03E7c(40D8048C): ADD R0, SB, 48CH ["unterminated comment"]
03E8c(41000015): MOV R1, R0, 15H
03E9d(F7FFFC31): BL -975 [001BH]
ENDe comment;
03EAe(8FE00000): LDR LNK, SP, 0H
03EBe(4EE80004): ADD SP, SP, 4H
03ECe(C700000F): B LNK
PROCEDURE Get*(VAR sym: INTEGER);
BEGINf
03EDf .PROC 10
03EDf(4EE90008): SUB SP, SP, 8H
03EEf(AFE00000): STR LNK, SP, 0H
03EFf(A0E00004): STR R0, SP, 4H
REPEAT
WHILE ~R.eot &g (hch <= " ")i DOj Texts.Read(R,k ch)l ENDm;
03F0g .FIXUP D
03F0g(8D00000A): LDR SB, MT, MOD0 [ORS]
03F1g(90D00138): LDR R0, SB, 138H [data]
03F2h(E900000C): BNE 12 [03FFH]
03F3i .FIXUP D
03F3i(8D000003): LDR SB, MT, MOD0 [ORS]
03F4i(90D00130): LDR R0, SB, 130H [data]
03F5i(40090020): SUB R0, R0, 20H
03F6j(EE000008): BGT 8 [03FFH]
03F7k .FIXUP D
03F7k(8D000004): LDR SB, MT, MOD0 [ORS]
03F8k(40D80138): ADD R0, SB, 138H [data]
03F9k .FIXUP D
03F9k(8D100002): LDR SB, MT, MOD1 [Texts]
03FAk(41D80002): ADD R1, SB, VAR2
03FBl .FIXUP D
03FBl(8D000002): LDR SB, MT, MOD0 [ORS]
03FCl(42D80130): ADD R2, SB, 130H [data]
03FDm .FIXUP P
03FDm(F7113019): BL MOD1 [Texts] PROC19
03FEm(E7FFFFF1): B -15 [03F0H]
IF R.eot THENn sym := eot
03FFn .FIXUP D
03FFn(8D000004): LDR SB, MT, MOD0 [ORS]
0400n(90D00138): LDR R0, SB, 138H [data]
0401n(E1000004): BEQ 4 [0406H]
ELSIFo chp < "A" THENq
0402o(40000046): MOV R0, R0, 46H
0403o(81E00004): LDR R1, SP, 4H
0404o(A0100000): STR R0, R1, 0H
0405p(E70001C4): B 452 [05CAH]
0406q .FIXUP D
0406q(8D000007): LDR SB, MT, MOD0 [ORS]
0407q(90D00130): LDR R0, SB, 130H [data]
0408q(40090041): SUB R0, R0, 41H
0409q(ED000159): BGE 345 [0563H]
IF ch < "0" THENr
040Ar .FIXUP D
040Ar(8D000004): LDR SB, MT, MOD0 [ORS]
040Br(90D00130): LDR R0, SB, 130H [data]
040Cr(40090030): SUB R0, R0, 30H
040Dr(ED0000CB): BGE 203 [04D9H]
IF ch = 22X THENs String;t sym := string
040Es .FIXUP D
040Es(8D000004): LDR SB, MT, MOD0 [ORS]
040Fs(90D00130): LDR R0, SB, 130H [data]
0410s(40090022): SUB R0, R0, 22H
0411s(E9000005): BNE 5 [0417H]
0412t(F7FFFCC9): BL -823 [00DCH]
ELSIFu chv = "#" THENw Texts.Read(R,x ch)y;z sym := neq
0413u(4000001A): MOV R0, R0, 1AH
0414u(81E00004): LDR R1, SP, 4H
0415u(A0100000): STR R0, R1, 0H
0416v(E70000C1): B 193 [04D8H]
0417w .FIXUP D
0417w(8D000009): LDR SB, MT, MOD0 [ORS]
0418w(90D00130): LDR R0, SB, 130H [data]
0419w(40090023): SUB R0, R0, 23H
041Aw(E900000B): BNE 11 [0426H]
041Bx .FIXUP D
041Bx(8D000004): LDR SB, MT, MOD0 [ORS]
041Cx(40D80138): ADD R0, SB, 138H [data]
041Dx .FIXUP D
041Dx(8D100002): LDR SB, MT, MOD1 [Texts]
041Ex(41D80002): ADD R1, SB, VAR2
041Fy .FIXUP D
041Fy(8D000002): LDR SB, MT, MOD0 [ORS]
0420y(42D80130): ADD R2, SB, 130H [data]
0421z .FIXUP P
0421z(F7113024): BL MOD1 [Texts] PROC19
ELSIFa chb = "$" THENc HexString;d sym := string
0422a(4000000A): MOV R0, R0, AH
0423a(81E00004): LDR R1, SP, 4H
0424a(A0100000): STR R0, R1, 0H
0425b(E70000B2): B 178 [04D8H]
0426c .FIXUP D
0426c(8D000007): LDR SB, MT, MOD0 [ORS]
0427c(90D00130): LDR R0, SB, 130H [data]
0428c(40090024): SUB R0, R0, 24H
0429c(E9000005): BNE 5 [042FH]
042Ad(F7FFFCF7): BL -777 [0122H]
ELSIFe chf = "&" THENg Texts.Read(R,h ch)i;j sym := and
042Be(4000001A): MOV R0, R0, 1AH
042Ce(81E00004): LDR R1, SP, 4H
042De(A0100000): STR R0, R1, 0H
042Ef(E70000A9): B 169 [04D8H]
042Fg .FIXUP D
042Fg(8D000009): LDR SB, MT, MOD0 [ORS]
0430g(90D00130): LDR R0, SB, 130H [data]
0431g(40090026): SUB R0, R0, 26H
0432g(E900000B): BNE 11 [043EH]
0433h .FIXUP D
0433h(8D000004): LDR SB, MT, MOD0 [ORS]
0434h(40D80138): ADD R0, SB, 138H [data]
0435h .FIXUP D
0435h(8D100002): LDR SB, MT, MOD1 [Texts]
0436h(41D80002): ADD R1, SB, VAR2
0437i .FIXUP D
0437i(8D000002): LDR SB, MT, MOD0 [ORS]
0438i(42D80130): ADD R2, SB, 130H [data]
0439j .FIXUP P
0439j(F7113018): BL MOD1 [Texts] PROC19
ELSIFk chl = "(" THENm Texts.Read(R,n ch)o;p
043Ak(40000005): MOV R0, R0, 5H
043Bk(81E00004): LDR R1, SP, 4H
043Ck(A0100000): STR R0, R1, 0H
043Dl(E700009A): B 154 [04D8H]
043Em .FIXUP D
043Em(8D000007): LDR SB, MT, MOD0 [ORS]
043Fm(90D00130): LDR R0, SB, 130H [data]
0440m(40090028): SUB R0, R0, 28H
0441m(E9000014): BNE 20 [0456H]
0442n .FIXUP D
0442n(8D000004): LDR SB, MT, MOD0 [ORS]
0443n(40D80138): ADD R0, SB, 138H [data]
0444n .FIXUP D
0444n(8D100002): LDR SB, MT, MOD1 [Texts]
0445n(41D80002): ADD R1, SB, VAR2
0446o .FIXUP D
0446o(8D000002): LDR SB, MT, MOD0 [ORS]
0447o(42D80130): ADD R2, SB, 130H [data]
0448p .FIXUP P
0448p(F711300F): BL MOD1 [Texts] PROC19
IF ch = "*" THENq sym := null;r comment ELSEs symt := lparen ENDu
0449q .FIXUP D
0449q(8D000003): LDR SB, MT, MOD0 [ORS]
044Aq(90D00130): LDR R0, SB, 130H [data]
044Bq(4009002A): SUB R0, R0, 2AH
044Cq(E9000005): BNE 5 [0452H]
044Dr(40000000): MOV R0, R0, 0H
044Er(81E00004): LDR R1, SP, 4H
044Fr(A0100000): STR R0, R1, 0H
0450s(F7FFFF4E): BL -178 [039FH]
0451t(E7000003): B 3 [0455H]
0452u(4000001C): MOV R0, R0, 1CH
0453u(81E00004): LDR R1, SP, 4H
0454u(A0100000): STR R0, R1, 0H
ELSIF chv = ")" THENw Texts.Read(R,x ch)y;z sym := rparen
0455v(E7000082): B 130 [04D8H]
0456w .FIXUP D
0456w(8D00000D): LDR SB, MT, MOD0 [ORS]
0457w(90D00130): LDR R0, SB, 130H [data]
0458w(40090029): SUB R0, R0, 29H
0459w(E900000B): BNE 11 [0465H]
045Ax .FIXUP D
045Ax(8D000004): LDR SB, MT, MOD0 [ORS]
045Bx(40D80138): ADD R0, SB, 138H [data]
045Cx .FIXUP D
045Cx(8D100002): LDR SB, MT, MOD1 [Texts]
045Dx(41D80002): ADD R1, SB, VAR2
045Ey .FIXUP D
045Ey(8D000002): LDR SB, MT, MOD0 [ORS]
045Fy(42D80130): ADD R2, SB, 130H [data]
0460z .FIXUP P
0460z(F7113018): BL MOD1 [Texts] PROC19
ELSIFa chb = "*" THENc Texts.Read(R,d ch)e;f sym := times
0461a(4000002C): MOV R0, R0, 2CH
0462a(81E00004): LDR R1, SP, 4H
0463a(A0100000): STR R0, R1, 0H
0464b(E7000073): B 115 [04D8H]
0465c .FIXUP D
0465c(8D000007): LDR SB, MT, MOD0 [ORS]
0466c(90D00130): LDR R0, SB, 130H [data]
0467c(4009002A): SUB R0, R0, 2AH
0468c(E900000B): BNE 11 [0474H]
0469d .FIXUP D
0469d(8D000004): LDR SB, MT, MOD0 [ORS]
046Ad(40D80138): ADD R0, SB, 138H [data]
046Bd .FIXUP D
046Bd(8D100002): LDR SB, MT, MOD1 [Texts]
046Cd(41D80002): ADD R1, SB, VAR2
046De .FIXUP D
046De(8D000002): LDR SB, MT, MOD0 [ORS]
046Ee(42D80130): ADD R2, SB, 130H [data]
046Ff .FIXUP P
046Ff(F711300F): BL MOD1 [Texts] PROC19
ELSIFg chh = "+" THENi Texts.Read(R,j ch)k;l sym := plus
0470g(40000001): MOV R0, R0, 1H
0471g(81E00004): LDR R1, SP, 4H
0472g(A0100000): STR R0, R1, 0H
0473h(E7000064): B 100 [04D8H]
0474i .FIXUP D
0474i(8D000007): LDR SB, MT, MOD0 [ORS]
0475i(90D00130): LDR R0, SB, 130H [data]
0476i(4009002B): SUB R0, R0, 2BH
0477i(E900000B): BNE 11 [0483H]
0478j .FIXUP D
0478j(8D000004): LDR SB, MT, MOD0 [ORS]
0479j(40D80138): ADD R0, SB, 138H [data]
047Aj .FIXUP D
047Aj(8D100002): LDR SB, MT, MOD1 [Texts]
047Bj(41D80002): ADD R1, SB, VAR2
047Ck .FIXUP D
047Ck(8D000002): LDR SB, MT, MOD0 [ORS]
047Dk(42D80130): ADD R2, SB, 130H [data]
047El .FIXUP P
047El(F711300F): BL MOD1 [Texts] PROC19
ELSIFm chn = "," THENo Texts.Read(R,p ch)q;r sym := comma
047Fm(40000006): MOV R0, R0, 6H
0480m(81E00004): LDR R1, SP, 4H
0481m(A0100000): STR R0, R1, 0H
0482n(E7000055): B 85 [04D8H]
0483o .FIXUP D
0483o(8D000007): LDR SB, MT, MOD0 [ORS]
0484o(90D00130): LDR R0, SB, 130H [data]
0485o(4009002C): SUB R0, R0, 2CH
0486o(E900000B): BNE 11 [0492H]
0487p .FIXUP D
0487p(8D000004): LDR SB, MT, MOD0 [ORS]
0488p(40D80138): ADD R0, SB, 138H [data]
0489p .FIXUP D
0489p(8D100002): LDR SB, MT, MOD1 [Texts]
048Ap(41D80002): ADD R1, SB, VAR2
048Bq .FIXUP D
048Bq(8D000002): LDR SB, MT, MOD0 [ORS]
048Cq(42D80130): ADD R2, SB, 130H [data]
048Dr .FIXUP P
048Dr(F711300F): BL MOD1 [Texts] PROC19
ELSIFs cht = "-" THENu Texts.Read(R,v ch)w;x sym := minus
048Es(40000028): MOV R0, R0, 28H
048Fs(81E00004): LDR R1, SP, 4H
0490s(A0100000): STR R0, R1, 0H
0491t(E7000046): B 70 [04D8H]
0492u .FIXUP D
0492u(8D000007): LDR SB, MT, MOD0 [ORS]
0493u(90D00130): LDR R0, SB, 130H [data]
0494u(4009002D): SUB R0, R0, 2DH
0495u(E900000B): BNE 11 [04A1H]
0496v .FIXUP D
0496v(8D000004): LDR SB, MT, MOD0 [ORS]
0497v(40D80138): ADD R0, SB, 138H [data]
0498v .FIXUP D
0498v(8D100002): LDR SB, MT, MOD1 [Texts]
0499v(41D80002): ADD R1, SB, VAR2
049Aw .FIXUP D
049Aw(8D000002): LDR SB, MT, MOD0 [ORS]
049Bw(42D80130): ADD R2, SB, 130H [data]
049Cx .FIXUP P
049Cx(F711300F): BL MOD1 [Texts] PROC19
ELSIFy chz = "." THENa Texts.Read(R,b ch)c;d
049Dy(40000007): MOV R0, R0, 7H
049Ey(81E00004): LDR R1, SP, 4H
049Fy(A0100000): STR R0, R1, 0H
04A0z(E7000037): B 55 [04D8H]
04A1a .FIXUP D
04A1a(8D000007): LDR SB, MT, MOD0 [ORS]
04A2a(90D00130): LDR R0, SB, 130H [data]
04A3a(4009002E): SUB R0, R0, 2EH
04A4a(E900001A): BNE 26 [04BFH]
04A5b .FIXUP D
04A5b(8D000004): LDR SB, MT, MOD0 [ORS]
04A6b(40D80138): ADD R0, SB, 138H [data]
04A7b .FIXUP D
04A7b(8D100002): LDR SB, MT, MOD1 [Texts]
04A8b(41D80002): ADD R1, SB, VAR2
04A9c .FIXUP D
04A9c(8D000002): LDR SB, MT, MOD0 [ORS]
04AAc(42D80130): ADD R2, SB, 130H [data]
04ABd .FIXUP P
04ABd(F711300F): BL MOD1 [Texts] PROC19
IF ch = "." THENe Texts.Read(R,f ch)g;h sym := upto ELSEi symj := period ENDk
04ACe .FIXUP D
04ACe(8D000003): LDR SB, MT, MOD0 [ORS]
04ADe(90D00130): LDR R0, SB, 130H [data]
04AEe(4009002E): SUB R0, R0, 2EH
04AFe(E900000B): BNE 11 [04BBH]
04B0f .FIXUP D
04B0f(8D000004): LDR SB, MT, MOD0 [ORS]
04B1f(40D80138): ADD R0, SB, 138H [data]
04B2f .FIXUP D
04B2f(8D100002): LDR SB, MT, MOD1 [Texts]
04B3f(41D80002): ADD R1, SB, VAR2
04B4g .FIXUP D
04B4g(8D000002): LDR SB, MT, MOD0 [ORS]
04B5g(42D80130): ADD R2, SB, 130H [data]
04B6h .FIXUP P
04B6h(F711300B): BL MOD1 [Texts] PROC19
04B7i(4000002B): MOV R0, R0, 2BH
04B8i(81E00004): LDR R1, SP, 4H
04B9i(A0100000): STR R0, R1, 0H
04BAj(E7000003): B 3 [04BEH]
04BBk(40000012): MOV R0, R0, 12H
04BCk(81E00004): LDR R1, SP, 4H
04BDk(A0100000): STR R0, R1, 0H
ELSIF chl = "/" THENm Texts.Read(R,n ch)o;p sym := rdiv
04BEl(E7000019): B 25 [04D8H]
04BFm .FIXUP D
04BFm(8D00000B): LDR SB, MT, MOD0 [ORS]
04C0m(90D00130): LDR R0, SB, 130H [data]
04C1m(4009002F): SUB R0, R0, 2FH
04C2m(E900000B): BNE 11 [04CEH]
04C3n .FIXUP D
04C3n(8D000004): LDR SB, MT, MOD0 [ORS]
04C4n(40D80138): ADD R0, SB, 138H [data]
04C5n .FIXUP D
04C5n(8D100002): LDR SB, MT, MOD1 [Texts]
04C6n(41D80002): ADD R1, SB, VAR2
04C7o .FIXUP D
04C7o(8D000002): LDR SB, MT, MOD0 [ORS]
04C8o(42D80130): ADD R2, SB, 130H [data]
04C9p .FIXUP P
04C9p(F7113013): BL MOD1 [Texts] PROC19
ELSEq Textsr.Read(R,s ch)t;u (* ! % ' *) sym := null
04CAq(40000002): MOV R0, R0, 2H
04CBq(81E00004): LDR R1, SP, 4H
04CCq(A0100000): STR R0, R1, 0H
04CDr(E700000A): B 10 [04D8H]
04CEs .FIXUP D
04CEs(8D000007): LDR SB, MT, MOD0 [ORS]
04CFs(40D80138): ADD R0, SB, 138H [data]
04D0s .FIXUP D
04D0s(8D100002): LDR SB, MT, MOD1 [Texts]
04D1s(41D80002): ADD R1, SB, VAR2
04D2t .FIXUP D
04D2t(8D000002): LDR SB, MT, MOD0 [ORS]
04D3t(42D80130): ADD R2, SB, 130H [data]
04D4u .FIXUP P
04D4u(F711300B): BL MOD1 [Texts] PROC19
ENDv
04D5v(40000000): MOV R0, R0, 0H
04D6v(81E00004): LDR R1, SP, 4H
04D7v(A0100000): STR R0, R1, 0H
ELSIF chw < ":" THENx Number(sym)y
04D8w(E7000089): B 137 [0562H]
04D9x .FIXUP D
04D9x(8D000007): LDR SB, MT, MOD0 [ORS]
04DAx(90D00130): LDR R0, SB, 130H [data]
04DBx(4009003A): SUB R0, R0, 3AH
04DCx(ED000003): BGE 3 [04E0H]
04DDy(80E00004): LDR R0, SP, 4H
ELSIFz cha = ":" THENb Texts.Read(R,c ch)d;e
04DEz(F7FFFCF6): BL -778 [01D5H]
04DFa(E7000082): B 130 [0562H]
04E0b .FIXUP D
04E0b(8D000007): LDR SB, MT, MOD0 [ORS]
04E1b(90D00130): LDR R0, SB, 130H [data]
04E2b(4009003A): SUB R0, R0, 3AH
04E3b(E900001A): BNE 26 [04FEH]
04E4c .FIXUP D
04E4c(8D000004): LDR SB, MT, MOD0 [ORS]
04E5c(40D80138): ADD R0, SB, 138H [data]
04E6c .FIXUP D
04E6c(8D100002): LDR SB, MT, MOD1 [Texts]
04E7c(41D80002): ADD R1, SB, VAR2
04E8d .FIXUP D
04E8d(8D000002): LDR SB, MT, MOD0 [ORS]
04E9d(42D80130): ADD R2, SB, 130H [data]
04EAe .FIXUP P
04EAe(F7113016): BL MOD1 [Texts] PROC19
IF ch = "=" THENf Texts.Read(R,g ch)h;i sym := becomes ELSEj symk := colon ENDl
04EBf .FIXUP D
04EBf(8D000003): LDR SB, MT, MOD0 [ORS]
04ECf(90D00130): LDR R0, SB, 130H [data]
04EDf(4009003D): SUB R0, R0, 3DH
04EEf(E900000B): BNE 11 [04FAH]
04EFg .FIXUP D
04EFg(8D000004): LDR SB, MT, MOD0 [ORS]
04F0g(40D80138): ADD R0, SB, 138H [data]
04F1g .FIXUP D
04F1g(8D100002): LDR SB, MT, MOD1 [Texts]
04F2g(41D80002): ADD R1, SB, VAR2
04F3h .FIXUP D
04F3h(8D000002): LDR SB, MT, MOD0 [ORS]
04F4h(42D80130): ADD R2, SB, 130H [data]
04F5i .FIXUP P
04F5i(F711300B): BL MOD1 [Texts] PROC19
04F6j(4000002A): MOV R0, R0, 2AH
04F7j(81E00004): LDR R1, SP, 4H
04F8j(A0100000): STR R0, R1, 0H
04F9k(E7000003): B 3 [04FDH]
04FAl(40000029): MOV R0, R0, 29H
04FBl(81E00004): LDR R1, SP, 4H
04FCl(A0100000): STR R0, R1, 0H
ELSIF chm = ";" THENn Texts.Read(R,o ch)p;q sym := semicolon
04FDm(E7000064): B 100 [0562H]
04FEn .FIXUP D
04FEn(8D00000B): LDR SB, MT, MOD0 [ORS]
04FFn(90D00130): LDR R0, SB, 130H [data]
0500n(4009003B): SUB R0, R0, 3BH
0501n(E900000B): BNE 11 [050DH]
0502o .FIXUP D
0502o(8D000004): LDR SB, MT, MOD0 [ORS]
0503o(40D80138): ADD R0, SB, 138H [data]
0504o .FIXUP D
0504o(8D100002): LDR SB, MT, MOD1 [Texts]
0505o(41D80002): ADD R1, SB, VAR2
0506p .FIXUP D
0506p(8D000002): LDR SB, MT, MOD0 [ORS]
0507p(42D80130): ADD R2, SB, 130H [data]
0508q .FIXUP P
0508q(F7113013): BL MOD1 [Texts] PROC19
ELSIFr chs = "<" THENt Texts.Read(R,u ch)v;w
0509r(40000034): MOV R0, R0, 34H
050Ar(81E00004): LDR R1, SP, 4H
050Br(A0100000): STR R0, R1, 0H
050Cs(E7000055): B 85 [0562H]
050Dt .FIXUP D
050Dt(8D000007): LDR SB, MT, MOD0 [ORS]
050Et(90D00130): LDR R0, SB, 130H [data]
050Ft(4009003C): SUB R0, R0, 3CH
0510t(E900001A): BNE 26 [052BH]
0511u .FIXUP D
0511u(8D000004): LDR SB, MT, MOD0 [ORS]
0512u(40D80138): ADD R0, SB, 138H [data]
0513u .FIXUP D
0513u(8D100002): LDR SB, MT, MOD1 [Texts]
0514u(41D80002): ADD R1, SB, VAR2
0515v .FIXUP D
0515v(8D000002): LDR SB, MT, MOD0 [ORS]
0516v(42D80130): ADD R2, SB, 130H [data]
0517w .FIXUP P
0517w(F711300F): BL MOD1 [Texts] PROC19
IF ch = "=" THENx Texts.Read(R,y ch)z;a sym := leq ELSEb symc := lss ENDd
0518x .FIXUP D
0518x(8D000003): LDR SB, MT, MOD0 [ORS]
0519x(90D00130): LDR R0, SB, 130H [data]
051Ax(4009003D): SUB R0, R0, 3DH
051Bx(E900000B): BNE 11 [0527H]
051Cy .FIXUP D
051Cy(8D000004): LDR SB, MT, MOD0 [ORS]
051Dy(40D80138): ADD R0, SB, 138H [data]
051Ey .FIXUP D
051Ey(8D100002): LDR SB, MT, MOD1 [Texts]
051Fy(41D80002): ADD R1, SB, VAR2
0520z .FIXUP D
0520z(8D000002): LDR SB, MT, MOD0 [ORS]
0521z(42D80130): ADD R2, SB, 130H [data]
0522a .FIXUP P
0522a(F711300B): BL MOD1 [Texts] PROC19
0523b(4000000C): MOV R0, R0, CH
0524b(81E00004): LDR R1, SP, 4H
0525b(A0100000): STR R0, R1, 0H
0526c(E7000003): B 3 [052AH]
0527d(4000000B): MOV R0, R0, BH
0528d(81E00004): LDR R1, SP, 4H
0529d(A0100000): STR R0, R1, 0H
ELSIF che = "=" THENf Texts.Read(R,g ch)h;i sym := eql
052Ae(E7000037): B 55 [0562H]
052Bf .FIXUP D
052Bf(8D00000B): LDR SB, MT, MOD0 [ORS]
052Cf(90D00130): LDR R0, SB, 130H [data]
052Df(4009003D): SUB R0, R0, 3DH
052Ef(E900000B): BNE 11 [053AH]
052Fg .FIXUP D
052Fg(8D000004): LDR SB, MT, MOD0 [ORS]
0530g(40D80138): ADD R0, SB, 138H [data]
0531g .FIXUP D
0531g(8D100002): LDR SB, MT, MOD1 [Texts]
0532g(41D80002): ADD R1, SB, VAR2
0533h .FIXUP D
0533h(8D000002): LDR SB, MT, MOD0 [ORS]
0534h(42D80130): ADD R2, SB, 130H [data]
0535i .FIXUP P
0535i(F7113013): BL MOD1 [Texts] PROC19
ELSIFj chk = ">" THENl Texts.Read(R,m ch)n;o
0536j(40000009): MOV R0, R0, 9H
0537j(81E00004): LDR R1, SP, 4H
0538j(A0100000): STR R0, R1, 0H
0539k(E7000028): B 40 [0562H]
053Al .FIXUP D
053Al(8D000007): LDR SB, MT, MOD0 [ORS]
053Bl(90D00130): LDR R0, SB, 130H [data]
053Cl(4009003E): SUB R0, R0, 3EH
053Dl(E900001A): BNE 26 [0558H]
053Em .FIXUP D
053Em(8D000004): LDR SB, MT, MOD0 [ORS]
053Fm(40D80138): ADD R0, SB, 138H [data]
0540m .FIXUP D
0540m(8D100002): LDR SB, MT, MOD1 [Texts]
0541m(41D80002): ADD R1, SB, VAR2
0542n .FIXUP D
0542n(8D000002): LDR SB, MT, MOD0 [ORS]
0543n(42D80130): ADD R2, SB, 130H [data]
0544o .FIXUP P
0544o(F711300F): BL MOD1 [Texts] PROC19
IF ch = "=" THENp Texts.Read(R,q ch)r;s sym := geq ELSEt symu := gtr ENDv
0545p .FIXUP D
0545p(8D000003): LDR SB, MT, MOD0 [ORS]
0546p(90D00130): LDR R0, SB, 130H [data]
0547p(4009003D): SUB R0, R0, 3DH
0548p(E900000B): BNE 11 [0554H]
0549q .FIXUP D
0549q(8D000004): LDR SB, MT, MOD0 [ORS]
054Aq(40D80138): ADD R0, SB, 138H [data]
054Bq .FIXUP D
054Bq(8D100002): LDR SB, MT, MOD1 [Texts]
054Cq(41D80002): ADD R1, SB, VAR2
054Dr .FIXUP D
054Dr(8D000002): LDR SB, MT, MOD0 [ORS]
054Er(42D80130): ADD R2, SB, 130H [data]
054Fs .FIXUP P
054Fs(F711300B): BL MOD1 [Texts] PROC19
0550t(4000000E): MOV R0, R0, EH
0551t(81E00004): LDR R1, SP, 4H
0552t(A0100000): STR R0, R1, 0H
0553u(E7000003): B 3 [0557H]
0554v(4000000D): MOV R0, R0, DH
0555v(81E00004): LDR R1, SP, 4H
0556v(A0100000): STR R0, R1, 0H
ELSE (* ? @ *) Textsw.Read(R,x ch)y;z sym := null
0557w(E700000A): B 10 [0562H]
0558x .FIXUP D
0558x(8D00000B): LDR SB, MT, MOD0 [ORS]
0559x(40D80138): ADD R0, SB, 138H [data]
055Ax .FIXUP D
055Ax(8D100002): LDR SB, MT, MOD1 [Texts]
055Bx(41D80002): ADD R1, SB, VAR2
055Cy .FIXUP D
055Cy(8D000002): LDR SB, MT, MOD0 [ORS]
055Dy(42D80130): ADD R2, SB, 130H [data]
055Ez .FIXUP P
055Ez(F711300F): BL MOD1 [Texts] PROC19
ENDa
055Fa(40000000): MOV R0, R0, 0H
0560a(81E00004): LDR R1, SP, 4H
0561a(A0100000): STR R0, R1, 0H
ELSIF chb < "[" THENc Identifier(sym)d
0562b(E7000067): B 103 [05CAH]
0563c .FIXUP D
0563c(8D000007): LDR SB, MT, MOD0 [ORS]
0564c(90D00130): LDR R0, SB, 130H [data]
0565c(4009005B): SUB R0, R0, 5BH
0566c(ED000003): BGE 3 [056AH]
0567d(80E00004): LDR R0, SP, 4H
ELSIFe chf < "a" THENg
0568e(F7FFFAF2): BL -1294 [005BH]
0569f(E7000060): B 96 [05CAH]
056Ag .FIXUP D
056Ag(8D000007): LDR SB, MT, MOD0 [ORS]
056Bg(90D00130): LDR R0, SB, 130H [data]
056Cg(40090061): SUB R0, R0, 61H
056Dg(ED000023): BGE 35 [0591H]
IF ch = "[" THENh sym := lbrak
056Eh .FIXUP D
056Eh(8D000004): LDR SB, MT, MOD0 [ORS]
056Fh(90D00130): LDR R0, SB, 130H [data]
0570h(4009005B): SUB R0, R0, 5BH
0571h(E9000004): BNE 4 [0576H]
ELSIFi chj = "]" THENk sym := rbrak
0572i(4000001D): MOV R0, R0, 1DH
0573i(81E00004): LDR R1, SP, 4H
0574i(A0100000): STR R0, R1, 0H
0575j(E7000013): B 19 [0589H]
0576k .FIXUP D
0576k(8D000008): LDR SB, MT, MOD0 [ORS]
0577k(90D00130): LDR R0, SB, 130H [data]
0578k(4009005D): SUB R0, R0, 5DH
0579k(E9000004): BNE 4 [057EH]
ELSIFl chm = "^" THENn sym := arrow
057Al(4000002D): MOV R0, R0, 2DH
057Bl(81E00004): LDR R1, SP, 4H
057Cl(A0100000): STR R0, R1, 0H
057Dm(E700000B): B 11 [0589H]
057En .FIXUP D
057En(8D000008): LDR SB, MT, MOD0 [ORS]
057Fn(90D00130): LDR R0, SB, 130H [data]
0580n(4009005E): SUB R0, R0, 5EH
0581n(E9000004): BNE 4 [0586H]
ELSEo (* _ ` *) symp := null
0582o(40000011): MOV R0, R0, 11H
0583o(81E00004): LDR R1, SP, 4H
0584o(A0100000): STR R0, R1, 0H
0585p(E7000003): B 3 [0589H]
ENDq ;
0586q(40000000): MOV R0, R0, 0H
0587q(81E00004): LDR R1, SP, 4H
0588q(A0100000): STR R0, R1, 0H
Texts.Read(R,r ch)s
0589r .FIXUP D
0589r(8D00000B): LDR SB, MT, MOD0 [ORS]
058Ar(40D80138): ADD R0, SB, 138H [data]
058Br .FIXUP D
058Br(8D100002): LDR SB, MT, MOD1 [Texts]
058Cr(41D80002): ADD R1, SB, VAR2
058Ds .FIXUP D
058Ds(8D000002): LDR SB, MT, MOD0 [ORS]
058Es(42D80130): ADD R2, SB, 130H [data]
ELSIFt chu < "{" THENv Identifier(sym)w ELSEx
058Ft .FIXUP P
058Ft(F7113031): BL MOD1 [Texts] PROC19
0590u(E7000039): B 57 [05CAH]
0591v .FIXUP D
0591v(8D000004): LDR SB, MT, MOD0 [ORS]
0592v(90D00130): LDR R0, SB, 130H [data]
0593v(4009007B): SUB R0, R0, 7BH
0594v(ED000003): BGE 3 [0598H]
0595w(80E00004): LDR R0, SP, 4H
0596x(F7FFFAC4): BL -1340 [005BH]
IFy ch = "{" THENz sym := lbrace
0597y(E7000032): B 50 [05CAH]
0598z .FIXUP D
0598z(8D000007): LDR SB, MT, MOD0 [ORS]
0599z(90D00130): LDR R0, SB, 130H [data]
059Az(4009007B): SUB R0, R0, 7BH
059Bz(E9000004): BNE 4 [05A0H]
ELSIFa chb = "}" THENc sym := rbrace
059Ca(4000001E): MOV R0, R0, 1EH
059Da(81E00004): LDR R1, SP, 4H
059Ea(A0100000): STR R0, R1, 0H
059Fb(E7000023): B 35 [05C3H]
05A0c .FIXUP D
05A0c(8D000008): LDR SB, MT, MOD0 [ORS]
05A1c(90D00130): LDR R0, SB, 130H [data]
05A2c(4009007D): SUB R0, R0, 7DH
05A3c(E9000004): BNE 4 [05A8H]
ELSIFd che = "|" THENf sym := bar
05A4d(4000002E): MOV R0, R0, 2EH
05A5d(81E00004): LDR R1, SP, 4H
05A6d(A0100000): STR R0, R1, 0H
05A7e(E700001B): B 27 [05C3H]
05A8f .FIXUP D
05A8f(8D000008): LDR SB, MT, MOD0 [ORS]
05A9f(90D00130): LDR R0, SB, 130H [data]
05AAf(4009007C): SUB R0, R0, 7CH
05ABf(E9000004): BNE 4 [05B0H]
ELSIFg chh = "~" THENi sym := not
05ACg(40000036): MOV R0, R0, 36H
05ADg(81E00004): LDR R1, SP, 4H
05AEg(A0100000): STR R0, R1, 0H
05AFh(E7000013): B 19 [05C3H]
05B0i .FIXUP D
05B0i(8D000008): LDR SB, MT, MOD0 [ORS]
05B1i(90D00130): LDR R0, SB, 130H [data]
05B2i(4009007E): SUB R0, R0, 7EH
05B3i(E9000004): BNE 4 [05B8H]
ELSIFj chk = 7FX THENl sym := upto
05B4j(4000001B): MOV R0, R0, 1BH
05B5j(81E00004): LDR R1, SP, 4H
05B6j(A0100000): STR R0, R1, 0H
05B7k(E700000B): B 11 [05C3H]
05B8l .FIXUP D
05B8l(8D000008): LDR SB, MT, MOD0 [ORS]
05B9l(90D00130): LDR R0, SB, 130H [data]
05BAl(4009007F): SUB R0, R0, 7FH
05BBl(E9000004): BNE 4 [05C0H]
ELSEm symn := null
05BCm(4000002B): MOV R0, R0, 2BH
05BDm(81E00004): LDR R1, SP, 4H
05BEm(A0100000): STR R0, R1, 0H
05BFn(E7000003): B 3 [05C3H]
ENDo ;
05C0o(40000000): MOV R0, R0, 0H
05C1o(81E00004): LDR R1, SP, 4H
05C2o(A0100000): STR R0, R1, 0H
Texts.Read(R,p ch)q
05C3p .FIXUP D
05C3p(8D00000B): LDR SB, MT, MOD0 [ORS]
05C4p(40D80138): ADD R0, SB, 138H [data]
05C5p .FIXUP D
05C5p(8D100002): LDR SB, MT, MOD1 [Texts]
05C6p(41D80002): ADD R1, SB, VAR2
05C7q .FIXUP D
05C7q(8D000002): LDR SB, MT, MOD0 [ORS]
05C8q(42D80130): ADD R2, SB, 130H [data]
ENDr
05C9r .FIXUP P
05C9r(F711303A): BL MOD1 [Texts] PROC19
UNTIL sym # null
ENDs Get;
05CAs(80E00004): LDR R0, SP, 4H
05CBs(80000000): LDR R0, R0, 0H
05CCs(E1FFFE23): BEQ -477 [03F0H]
05CDs(8FE00000): LDR LNK, SP, 0H
05CEs(4EE80008): ADD SP, SP, 8H
05CFs(C700000F): B LNK
PROCEDURE Init*(T: Texts.Text; pos: LONGINT);
BEGINt errpos := pos;u errcnt := 0;v Texts.OpenReader(R,w T,x pos)y;z Texts.Read(R,a ch)b
05D0t .PROC 11
05D0t(4EE9000C): SUB SP, SP, CH
05D1t(AFE00000): STR LNK, SP, 0H
05D2t(A0E00004): STR R0, SP, 4H
05D3t(A1E00008): STR R1, SP, 8H
05D4u(80E00008): LDR R0, SP, 8H
05D5u .FIXUP D
05D5u(8D00000E): LDR SB, MT, MOD0 [ORS]
05D6u(A0D00134): STR R0, SB, 134H [data]
05D7v(40000000): MOV R0, R0, 0H
05D8v(A0D0012C): STR R0, SB, 12CH
05D9w(40D80138): ADD R0, SB, 138H
05DAw .FIXUP D
05DAw(8D100005): LDR SB, MT, MOD1 [Texts]
05DBw(41D80002): ADD R1, SB, VAR2
05DCx(82E00004): LDR R2, SP, 4H
05DDy(83E00008): LDR R3, SP, 8H
05DEz .FIXUP P
05DEz(F7112015): BL MOD1 [Texts] PROC18
05DFa .FIXUP D
05DFa(8D000005): LDR SB, MT, MOD0 [ORS]
05E0a(40D80138): ADD R0, SB, 138H [data]
05E1a .FIXUP D
05E1a(8D100002): LDR SB, MT, MOD1 [Texts]
05E2a(41D80002): ADD R1, SB, VAR2
05E3b .FIXUP D
05E3b(8D000002): LDR SB, MT, MOD0 [ORS]
05E4b(42D80130): ADD R2, SB, 130H [data]
ENDc Init;
05E5c .FIXUP P
05E5c(F7113007): BL MOD1 [Texts] PROC19
05E6c(8FE00000): LDR LNK, SP, 0H
05E7c(4EE8000C): ADD SP, SP, CH
05E8c(C700000F): B LNK
PROCEDURE EnterKW(sym: INTEGER; name: ARRAY OF CHAR);
BEGINd keyTab[k]e.id := name;f keyTab[k]g.sym := sym;h INC(k)
05E9d(4EE90010): SUB SP, SP, 10H
05EAd(AFE00000): STR LNK, SP, 0H
05EBd(A0E00004): STR R0, SP, 4H
05ECd(A1E00008): STR R1, SP, 8H
05EDd(A2E0000C): STR R2, SP, CH
05EEe .FIXUP D
05EEe(8D00000B): LDR SB, MT, MOD0 [ORS]
05EFe(80D00194): LDR R0, SB, 194H [data]
05F0e(41090022): SUB R1, R0, 22H
05F1e(DA26911C): BLCC MT [trap=1, pos=9873]
05F2e(400A0010): MUL R0, R0, 10H
05F3e(00D80000): ADD R0, SB, R0
05F4f(400801C4): ADD R0, R0, 1C4H
05F5f(81E00008): LDR R1, SP, 8H
05F6f(82E0000C): LDR R2, SP, CH
05F7f(E100000B): BEQ 11 [0603H]
05F8f(42280003): ADD R2, R2, 3H
05F9f(42220002): ASR R2, R2, 2H
05FAf(43000003): MOV R3, R0, 3H
05FBf(03290003): SUB R3, R2, R3
05FCf(DE269D3C): BLGT MT [trap=3, pos=9885]
05FDf(83100000): LDR R3, R1, 0H
05FEf(41180004): ADD R1, R1, 4H
05FFf(A3000000): STR R3, R0, 0H
0600f(40080004): ADD R0, R0, 4H
0601f(42290001): SUB R2, R2, 1H
0602f(E9FFFFFA): BNE -6 [05FDH]
0603g(80D00194): LDR R0, SB, 194H
0604g(41090022): SUB R1, R0, 22H
0605g(DA26A71C): BLCC MT [trap=1, pos=9895]
0606g(400A0010): MUL R0, R0, 10H
0607g(00D80000): ADD R0, SB, R0
0608h(81E00004): LDR R1, SP, 4H
0609h(A10001C0): STR R1, R0, 1C0H
ENDi EnterKW;
060Ai(40D80194): ADD R0, SB, 194H
060Bi(81000000): LDR R1, R0, 0H
060Ci(41180001): ADD R1, R1, 1H
060Di(A1000000): STR R1, R0, 0H
060Ei(8FE00000): LDR LNK, SP, 0H
060Fi(4EE80010): ADD SP, SP, 10H
0610i(C700000F): B LNK
BEGINj Texts.OpenWriter(W)k;l k := 0;m KWX[0] := 0;n KWX[1] := 0;o
0611j .PROC 0
0611j .ENTRYPOINT
0611j(4EE90004): SUB SP, SP, 4H
0612j(AFE00000): STR LNK, SP, 0H
0613k .FIXUP D
0613k(8D000025): LDR SB, MT, MOD0 [ORS]
0614k(40D8016C): ADD R0, SB, 16CH [data]
0615k .FIXUP D
0615k(8D100002): LDR SB, MT, MOD1 [Texts]
0616k(41D80005): ADD R1, SB, VAR5
0617l .FIXUP P
0617l(F7117032): BL MOD1 [Texts] PROC23
0618m(40000000): MOV R0, R0, 0H
0619m .FIXUP D
0619m(8D000004): LDR SB, MT, MOD0 [ORS]
061Am(A0D00194): STR R0, SB, 194H [data]
061Bn(40000000): MOV R0, R0, 0H
061Cn(A0D00198): STR R0, SB, 198H
061Do(40000000): MOV R0, R0, 0H
061Eo(A0D0019C): STR R0, SB, 19CH
EnterKW(if,p "IF")q;r
061Fp(40000020): MOV R0, R0, 20H
0620q(41D804A4): ADD R1, SB, 4A4H
0621q(42000003): MOV R2, R0, 3H
0622r(F7FFFFC6): BL -58 [05E9H]
EnterKW(do,s "DO")t;u
0623s(40000031): MOV R0, R0, 31H
0624t .FIXUP D
0624t(8D00000B): LDR SB, MT, MOD0 [ORS]
0625t(41D804A8): ADD R1, SB, 4A8H ["DO"]
0626t(42000003): MOV R2, R0, 3H
0627u(F7FFFFC1): BL -63 [05E9H]
EnterKW(of,v "OF")w;x
0628v(40000030): MOV R0, R0, 30H
0629w .FIXUP D
0629w(8D000005): LDR SB, MT, MOD0 [ORS]
062Aw(41D804AC): ADD R1, SB, 4ACH ["OF"]
062Bw(42000003): MOV R2, R0, 3H
062Cx(F7FFFFBC): BL -68 [05E9H]
EnterKW(or,y "OR")z;a
062Dy(40000008): MOV R0, R0, 8H
062Ez .FIXUP D
062Ez(8D000005): LDR SB, MT, MOD0 [ORS]
062Fz(41D804B0): ADD R1, SB, 4B0H ["OR"]
0630z(42000003): MOV R2, R0, 3H
0631a(F7FFFFB7): BL -73 [05E9H]
EnterKW(to,b "TO")c;d
0632b(40000032): MOV R0, R0, 32H
0633c .FIXUP D
0633c(8D000005): LDR SB, MT, MOD0 [ORS]
0634c(41D804B4): ADD R1, SB, 4B4H ["TO"]
0635c(42000003): MOV R2, R0, 3H
0636d(F7FFFFB2): BL -78 [05E9H]
EnterKW(in,e "IN")f;g
0637e(4000000F): MOV R0, R0, FH
0638f .FIXUP D
0638f(8D000005): LDR SB, MT, MOD0 [ORS]
0639f(41D804B8): ADD R1, SB, 4B8H ["IN"]
063Af(42000003): MOV R2, R0, 3H
063Bg(F7FFFFAD): BL -83 [05E9H]
EnterKW(is,h "IS")i;j
063Ch(40000010): MOV R0, R0, 10H
063Di .FIXUP D
063Di(8D000005): LDR SB, MT, MOD0 [ORS]
063Ei(41D804BC): ADD R1, SB, 4BCH ["IS"]
063Fi(42000003): MOV R2, R0, 3H
0640j(F7FFFFA8): BL -88 [05E9H]
EnterKW(by,k "BY")l;m
0641k(40000033): MOV R0, R0, 33H
0642l .FIXUP D
0642l(8D000005): LDR SB, MT, MOD0 [ORS]
0643l(41D804C0): ADD R1, SB, 4C0H ["BY"]
0644l(42000003): MOV R2, R0, 3H
0645m(F7FFFFA3): BL -93 [05E9H]
KWX[2] := k;n
0646n .FIXUP D
0646n(8D000004): LDR SB, MT, MOD0 [ORS]
0647n(80D00194): LDR R0, SB, 194H [data]
0648n(A0D001A0): STR R0, SB, 1A0H
EnterKW(end,o "END")p;q
0649o(40000035): MOV R0, R0, 35H
064Ap(41D804C4): ADD R1, SB, 4C4H
064Bp(42000004): MOV R2, R0, 4H
064Cq(F7FFFF9C): BL -100 [05E9H]
EnterKW(nil,r "NIL")s;t
064Dr(40000019): MOV R0, R0, 19H
064Es .FIXUP D
064Es(8D000008): LDR SB, MT, MOD0 [ORS]
064Fs(41D804C8): ADD R1, SB, 4C8H ["NIL"]
0650s(42000004): MOV R2, R0, 4H
0651t(F7FFFF97): BL -105 [05E9H]
EnterKW(var,u "VAR")v;w
0652u(40000041): MOV R0, R0, 41H
0653v .FIXUP D
0653v(8D000005): LDR SB, MT, MOD0 [ORS]
0654v(41D804CC): ADD R1, SB, 4CCH ["VAR"]
0655v(42000004): MOV R2, R0, 4H
0656w(F7FFFF92): BL -110 [05E9H]
EnterKW(div,x "DIV")y;z
0657x(40000003): MOV R0, R0, 3H
0658y .FIXUP D
0658y(8D000005): LDR SB, MT, MOD0 [ORS]
0659y(41D804D0): ADD R1, SB, 4D0H ["DIV"]
065Ay(42000004): MOV R2, R0, 4H
065Bz(F7FFFF8D): BL -115 [05E9H]
EnterKW(mod,a "MOD")b;c
065Ca(40000004): MOV R0, R0, 4H
065Db .FIXUP D
065Db(8D000005): LDR SB, MT, MOD0 [ORS]
065Eb(41D804D4): ADD R1, SB, 4D4H ["MOD"]
065Fb(42000004): MOV R2, R0, 4H
0660c(F7FFFF88): BL -120 [05E9H]
EnterKW(for,d "FOR")e;f
0661d(40000025): MOV R0, R0, 25H
0662e .FIXUP D
0662e(8D000005): LDR SB, MT, MOD0 [ORS]
0663e(41D804D8): ADD R1, SB, 4D8H ["FOR"]
0664e(42000004): MOV R2, R0, 4H
0665f(F7FFFF83): BL -125 [05E9H]
KWX[3] := k;g
0666g .FIXUP D
0666g(8D000004): LDR SB, MT, MOD0 [ORS]
0667g(80D00194): LDR R0, SB, 194H [data]
0668g(A0D001A4): STR R0, SB, 1A4H
EnterKW(else,h "ELSE")i;j
0669h(40000037): MOV R0, R0, 37H
066Ai(41D804DC): ADD R1, SB, 4DCH
066Bi(42000005): MOV R2, R0, 5H
066Cj(F7FFFF7C): BL -132 [05E9H]
EnterKW(then,k "THEN")l;m
066Dk(4000002F): MOV R0, R0, 2FH
066El .FIXUP D
066El(8D000008): LDR SB, MT, MOD0 [ORS]
066Fl(41D804E4): ADD R1, SB, 4E4H ["THEN"]
0670l(42000005): MOV R2, R0, 5H
0671m(F7FFFF77): BL -137 [05E9H]
EnterKW(true,n "TRUE")o;p
0672n(40000018): MOV R0, R0, 18H
0673o .FIXUP D
0673o(8D000005): LDR SB, MT, MOD0 [ORS]
0674o(41D804EC): ADD R1, SB, 4ECH ["TRUE"]
0675o(42000005): MOV R2, R0, 5H
0676p(F7FFFF72): BL -142 [05E9H]
EnterKW(type,q "TYPE")r;s
0677q(40000040): MOV R0, R0, 40H
0678r .FIXUP D
0678r(8D000005): LDR SB, MT, MOD0 [ORS]
0679r(41D804F4): ADD R1, SB, 4F4H ["TYPE"]
067Ar(42000005): MOV R2, R0, 5H
067Bs(F7FFFF6D): BL -147 [05E9H]
EnterKW(case,t "CASE")u;v
067Ct(40000024): MOV R0, R0, 24H
067Du .FIXUP D
067Du(8D000005): LDR SB, MT, MOD0 [ORS]
067Eu(41D804FC): ADD R1, SB, 4FCH ["CASE"]
067Fu(42000005): MOV R2, R0, 5H
0680v(F7FFFF68): BL -152 [05E9H]
KWX[4] := k;w
0681w .FIXUP D
0681w(8D000004): LDR SB, MT, MOD0 [ORS]
0682w(80D00194): LDR R0, SB, 194H [data]
0683w(A0D001A8): STR R0, SB, 1A8H
EnterKW(elsif,x "ELSIF")y;z
0684x(40000038): MOV R0, R0, 38H
0685y(41D80504): ADD R1, SB, 504H
0686y(42000006): MOV R2, R0, 6H
0687z(F7FFFF61): BL -159 [05E9H]
EnterKW(false,a "FALSE")b;c
0688a(40000017): MOV R0, R0, 17H
0689b .FIXUP D
0689b(8D000008): LDR SB, MT, MOD0 [ORS]
068Ab(41D8050C): ADD R1, SB, 50CH ["FALSE"]
068Bb(42000006): MOV R2, R0, 6H
068Cc(F7FFFF5C): BL -164 [05E9H]
EnterKW(array,d "ARRAY")e;f
068Dd(4000003C): MOV R0, R0, 3CH
068Ee .FIXUP D
068Ee(8D000005): LDR SB, MT, MOD0 [ORS]
068Fe(41D80514): ADD R1, SB, 514H ["ARRAY"]
0690e(42000006): MOV R2, R0, 6H
0691f(F7FFFF57): BL -169 [05E9H]
EnterKW(begin,g "BEGIN")h;i
0692g(40000043): MOV R0, R0, 43H
0693h .FIXUP D
0693h(8D000005): LDR SB, MT, MOD0 [ORS]
0694h(41D8051C): ADD R1, SB, 51CH ["BEGIN"]
0695h(42000006): MOV R2, R0, 6H
0696i(F7FFFF52): BL -174 [05E9H]
EnterKW(const,j "CONST")k;l
0697j(4000003F): MOV R0, R0, 3FH
0698k .FIXUP D
0698k(8D000005): LDR SB, MT, MOD0 [ORS]
0699k(41D80524): ADD R1, SB, 524H ["CONST"]
069Ak(42000006): MOV R2, R0, 6H
069Bl(F7FFFF4D): BL -179 [05E9H]
EnterKW(until,m "UNTIL")n;o
069Cm(40000039): MOV R0, R0, 39H
069Dn .FIXUP D
069Dn(8D000005): LDR SB, MT, MOD0 [ORS]
069En(41D8052C): ADD R1, SB, 52CH ["UNTIL"]
069Fn(42000006): MOV R2, R0, 6H
06A0o(F7FFFF48): BL -184 [05E9H]
EnterKW(while,p "WHILE")q;r
06A1p(40000022): MOV R0, R0, 22H
06A2q .FIXUP D
06A2q(8D000005): LDR SB, MT, MOD0 [ORS]
06A3q(41D80534): ADD R1, SB, 534H ["WHILE"]
06A4q(42000006): MOV R2, R0, 6H
06A5r(F7FFFF43): BL -189 [05E9H]
KWX[5] := k;s
06A6s .FIXUP D
06A6s(8D000004): LDR SB, MT, MOD0 [ORS]
06A7s(80D00194): LDR R0, SB, 194H [data]
06A8s(A0D001AC): STR R0, SB, 1ACH
EnterKW(record,t "RECORD")u;v
06A9t(4000003D): MOV R0, R0, 3DH
06AAu(41D8053C): ADD R1, SB, 53CH
06ABu(42000007): MOV R2, R0, 7H
06ACv(F7FFFF3C): BL -196 [05E9H]
EnterKW(repeat,w "REPEAT")x;y
06ADw(40000023): MOV R0, R0, 23H
06AEx .FIXUP D
06AEx(8D000008): LDR SB, MT, MOD0 [ORS]
06AFx(41D80544): ADD R1, SB, 544H ["REPEAT"]
06B0x(42000007): MOV R2, R0, 7H
06B1y(F7FFFF37): BL -201 [05E9H]
EnterKW(return,z "RETURN")a;b
06B2z(4000003A): MOV R0, R0, 3AH
06B3a .FIXUP D
06B3a(8D000005): LDR SB, MT, MOD0 [ORS]
06B4a(41D8054C): ADD R1, SB, 54CH ["RETURN"]
06B5a(42000007): MOV R2, R0, 7H
06B6b(F7FFFF32): BL -206 [05E9H]
EnterKW(import,c "IMPORT")d;e
06B7c(40000044): MOV R0, R0, 44H
06B8d .FIXUP D
06B8d(8D000005): LDR SB, MT, MOD0 [ORS]
06B9d(41D80554): ADD R1, SB, 554H ["IMPORT"]
06BAd(42000007): MOV R2, R0, 7H
06BBe(F7FFFF2D): BL -211 [05E9H]
EnterKW(module,f "MODULE")g;h
06BCf(40000045): MOV R0, R0, 45H
06BDg .FIXUP D
06BDg(8D000005): LDR SB, MT, MOD0 [ORS]
06BEg(41D8055C): ADD R1, SB, 55CH ["MODULE"]
06BFg(42000007): MOV R2, R0, 7H
06C0h(F7FFFF28): BL -216 [05E9H]
KWX[6] := k;i
06C1i .FIXUP D
06C1i(8D000004): LDR SB, MT, MOD0 [ORS]
06C2i(80D00194): LDR R0, SB, 194H [data]
06C3i(A0D001B0): STR R0, SB, 1B0H
EnterKW(pointer,j "POINTER")k;l
06C4j(4000003E): MOV R0, R0, 3EH
06C5k(41D80564): ADD R1, SB, 564H
06C6k(42000008): MOV R2, R0, 8H
06C7l(F7FFFF21): BL -223 [05E9H]
KWX[7] := k;m KWX[8] := k;n
06C8m .FIXUP D
06C8m(8D000007): LDR SB, MT, MOD0 [ORS]
06C9m(80D00194): LDR R0, SB, 194H [data]
06CAm(A0D001B4): STR R0, SB, 1B4H
06CBn(80D00194): LDR R0, SB, 194H
06CCn(A0D001B8): STR R0, SB, 1B8H
EnterKW(procedure,o "PROCEDURE")p;q
06CDo(40000042): MOV R0, R0, 42H
06CEp(41D8056C): ADD R1, SB, 56CH
06CFp(4200000A): MOV R2, R0, AH
06D0q(F7FFFF18): BL -232 [05E9H]
KWX[9] := k
ENDr ORS.s
06D1r .FIXUP D
06D1r(8D000009): LDR SB, MT, MOD0 [ORS]
06D2r(80D00194): LDR R0, SB, 194H [data]
06D3r(A0D001BC): STR R0, SB, 1BCH
06D4s(8FE00000): LDR LNK, SP, 0H
06D5s(4EE80004): ADD SP, SP, 4H
06D6s(C700000F): B LNK