| 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 |
| 0000 | a .PROC 1 |
| 0000 | a .PROC 7 |
| 0000 | a(4EE90008): SUB SP, SP, 8H |
| 0001 | a .PROC 2 |
| 0001 | a(AFE00000): STR LNK, SP, 0H |
| 0002 | a .PROC 3 |
| 0002 | a(A0E00004): STR R0, SP, 4H |
| ENDb CopyId; |
| 0003 | b .PROC 4 |
| 0003 | b(80E00004): LDR R0, SP, 4H |
| 0004 | b .FIXUP D |
| 0004 | b(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0005 | b(41D8000C): ADD R1, SB, CH [data] |
| 0006 | b(42000008): MOV R2, R0, 8H |
| 0007 | b(83100000): LDR R3, R1, 0H |
| 0008 | b(41180004): ADD R1, R1, 4H |
| 0009 | b(A3000000): STR R3, R0, 0H |
| 000A | b(40080004): ADD R0, R0, 4H |
| 000B | b .PROC 5 |
| 000B | b(42290001): SUB R2, R2, 1H |
| 000C | b(E9FFFFFA): BNE -6 [0007H] |
| 000D | b(8FE00000): LDR LNK, SP, 0H |
| 000E | b(4EE80008): ADD SP, SP, 8H |
| 000F | b(C700000F): B LNK |
| |
| PROCEDURE Pos*(): LONGINT; |
| BEGINc RETURN Texts.Pos(R)d -e 1 |
| 0010 | c .PROC 8 |
| 0010 | c(4EE90004): SUB SP, SP, 4H |
| 0011 | c(AFE00000): STR LNK, SP, 0H |
| 0012 | d .FIXUP D |
| 0012 | d(8D00000E): LDR SB, MT, MOD0 [ORS] |
| 0013 | d(40D80138): ADD R0, SB, 138H [data] |
| 0014 | d .FIXUP D |
| 0014 | d(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0015 | d(41D80002): ADD R1, SB, VAR2 |
| 0016 | e .FIXUP P |
| 0016 | e(F7114016): BL MOD1 [Texts] PROC20 |
| ENDf Pos; |
| 0017 | f(40090001): SUB R0, R0, 1H |
| 0018 | f(8FE00000): LDR LNK, SP, 0H |
| 0019 | f(4EE80004): ADD SP, SP, 4H |
| 001A | f(C700000F): B LNK |
| |
| PROCEDURE Mark*(msg: ARRAY OF CHAR); |
| VAR p: LONGINT; |
| BEGINg p := Pos();h |
| 001B | g .PROC 9 |
| 001B | g(4EE90010): SUB SP, SP, 10H |
| 001C | g(AFE00000): STR LNK, SP, 0H |
| 001D | g(A0E00004): STR R0, SP, 4H |
| 001E | g(A1E00008): STR R1, SP, 8H |
| 001F | h(F7FFFFF0): BL -16 [0010H] |
| 0020 | h(A0E0000C): STR R0, SP, CH |
| IF (p > errpos)i & (jerrcnt < 25)k THENl |
| 0021 | i(80E0000C): LDR R0, SP, CH |
| 0022 | i .FIXUP D |
| 0022 | i(8D00000E): LDR SB, MT, MOD0 [ORS] |
| 0023 | i(81D00134): LDR R1, SB, 134H [data] |
| 0024 | i(00090001): SUB R0, R0, R1 |
| 0025 | j(E600002A): BLE 42 [0050H] |
| 0026 | k .FIXUP D |
| 0026 | k(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0027 | k(80D0012C): LDR R0, SB, 12CH [data] |
| 0028 | k(40090019): SUB R0, R0, 19H |
| 0029 | l(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 |
| 002A | m .FIXUP D |
| 002A | m(8D000004): LDR SB, MT, MOD0 [ORS] |
| 002B | m(40D8016C): ADD R0, SB, 16CH [data] |
| 002C | m .FIXUP D |
| 002C | m(8D100002): LDR SB, MT, MOD1 [Texts] |
| 002D | m(41D80005): ADD R1, SB, VAR5 |
| 002E | n .FIXUP P |
| 002E | n(F711C018): BL MOD1 [Texts] PROC28 |
| 002F | o .FIXUP D |
| 002F | o(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0030 | o(40D8016C): ADD R0, SB, 16CH [data] |
| 0031 | o .FIXUP D |
| 0031 | o(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0032 | o(41D80005): ADD R1, SB, VAR5 |
| 0033 | p .FIXUP D |
| 0033 | p(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0034 | p(42D803E0): ADD R2, SB, 3E0H [" pos "] |
| 0035 | p(43000007): MOV R3, R0, 7H |
| 0036 | q .FIXUP P |
| 0036 | q(F711D008): BL MOD1 [Texts] PROC29 |
| 0037 | r .FIXUP D |
| 0037 | r(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0038 | r(40D8016C): ADD R0, SB, 16CH [data] |
| 0039 | r .FIXUP D |
| 0039 | r(8D100002): LDR SB, MT, MOD1 [Texts] |
| 003A | r(41D80005): ADD R1, SB, VAR5 |
| 003B | s(82E0000C): LDR R2, SP, CH |
| 003C | t(43000001): MOV R3, R0, 1H |
| 003D | u .FIXUP P |
| 003D | u(F711E007): BL MOD1 [Texts] PROC30 |
| 003E | v .FIXUP D |
| 003E | v(8D000005): LDR SB, MT, MOD0 [ORS] |
| 003F | v(40D8016C): ADD R0, SB, 16CH [data] |
| 0040 | v .FIXUP D |
| 0040 | v(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0041 | v(41D80005): ADD R1, SB, VAR5 |
| 0042 | w(42000020): MOV R2, R0, 20H |
| 0043 | x .FIXUP P |
| 0043 | x(F711B006): BL MOD1 [Texts] PROC27 |
| Texts.WriteString(W,y msg)z;a Texts.Append(Oberon.Log,b W.buf)c |
| 0044 | y .FIXUP D |
| 0044 | y(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0045 | y(40D8016C): ADD R0, SB, 16CH [data] |
| 0046 | y .FIXUP D |
| 0046 | y(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0047 | y(41D80005): ADD R1, SB, VAR5 |
| 0048 | z(82E00004): LDR R2, SP, 4H |
| 0049 | z(83E00008): LDR R3, SP, 8H |
| 004A | a .FIXUP P |
| 004A | a(F711D007): BL MOD1 [Texts] PROC29 |
| 004B | b .PROC 6 |
| 004B | b .FIXUP D |
| 004B | b(8D400005): LDR SB, MT, MOD4 [Oberon] |
| 004C | b(80D0000D): LDR R0, SB, VAR13 |
| 004D | c .FIXUP D |
| 004D | c(8D000002): LDR SB, MT, MOD0 [ORS] |
| 004E | c(81D0016C): LDR R1, SB, 16CH [data] |
| ENDd ; |
| 004F | d .FIXUP P |
| 004F | d(F710E005): BL MOD1 [Texts] PROC14 |
| INC(errcnt);e errpos := p + 4 |
| 0050 | e .FIXUP D |
| 0050 | e(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0051 | e(40D8012C): ADD R0, SB, 12CH [data] |
| 0052 | e(81000000): LDR R1, R0, 0H |
| 0053 | e(41180001): ADD R1, R1, 1H |
| 0054 | e(A1000000): STR R1, R0, 0H |
| ENDf Mark; |
| 0055 | f(80E0000C): LDR R0, SP, CH |
| 0056 | f(40080004): ADD R0, R0, 4H |
| 0057 | f(A0D00134): STR R0, SB, 134H |
| 0058 | f(8FE00000): LDR LNK, SP, 0H |
| 0059 | f(4EE80010): ADD SP, SP, 10H |
| 005A | f(C700000F): B LNK |
| |
| PROCEDURE Identifier(VAR sym: INTEGER); |
| VAR i, k: INTEGER; |
| BEGINg i := 0;h |
| 005B | g(4EE90010): SUB SP, SP, 10H |
| 005C | g(AFE00000): STR LNK, SP, 0H |
| 005D | g(A0E00004): STR R0, SP, 4H |
| 005E | h(40000000): MOV R0, R0, 0H |
| 005F | h(A0E00008): STR R0, SP, 8H |
| REPEAT |
| IF i < IdLen-1 THENi id[i]j := ch;k INC(i) ENDl ; |
| 0060 | i(80E00008): LDR R0, SP, 8H |
| 0061 | i(4009001F): SUB R0, R0, 1FH |
| 0062 | i(ED00000A): BGE 10 [006DH] |
| 0063 | j(80E00008): LDR R0, SP, 8H |
| 0064 | j(41090020): SUB R1, R0, 20H |
| 0065 | j(DA0A591C): BLCC MT [trap=1, pos=2649] |
| 0066 | j .FIXUP D |
| 0066 | j(8D000016): LDR SB, MT, MOD0 [ORS] |
| 0067 | j(00D80000): ADD R0, SB, R0 [global array] |
| 0068 | k(91D00130): LDR R1, SB, 130H |
| 0069 | k(B100000C): STR R1, R0, CH |
| 006A | l(80E00008): LDR R0, SP, 8H |
| 006B | l(40080001): ADD R0, R0, 1H |
| 006C | l(A0E00008): STR R0, SP, 8H |
| Texts.Read(R,m ch)n |
| 006D | m .FIXUP D |
| 006D | m(8D000007): LDR SB, MT, MOD0 [ORS] |
| 006E | m(40D80138): ADD R0, SB, 138H [data] |
| 006F | m .FIXUP D |
| 006F | m(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0070 | m(41D80002): ADD R1, SB, VAR2 |
| 0071 | n .FIXUP D |
| 0071 | n(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0072 | n(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 |
| 0073 | o .FIXUP P |
| 0073 | o(F7113024): BL MOD1 [Texts] PROC19 |
| 0074 | p .FIXUP D |
| 0074 | p(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0075 | p(90D00130): LDR R0, SB, 130H [data] |
| 0076 | p(40090030): SUB R0, R0, 30H |
| 0077 | q(E5000014): BLT 20 [008CH] |
| 0078 | r .FIXUP D |
| 0078 | r(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0079 | r(90D00130): LDR R0, SB, 130H [data] |
| 007A | r(40090039): SUB R0, R0, 39H |
| 007B | s(E6000004): BLE 4 [0080H] |
| 007C | t .FIXUP D |
| 007C | t(8D000004): LDR SB, MT, MOD0 [ORS] |
| 007D | t(90D00130): LDR R0, SB, 130H [data] |
| 007E | t(40090041): SUB R0, R0, 41H |
| 007F | u(E500000C): BLT 12 [008CH] |
| 0080 | v .FIXUP D |
| 0080 | v(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0081 | v(90D00130): LDR R0, SB, 130H [data] |
| 0082 | v(4009005A): SUB R0, R0, 5AH |
| 0083 | w(E6000004): BLE 4 [0088H] |
| 0084 | x .FIXUP D |
| 0084 | x(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0085 | x(90D00130): LDR R0, SB, 130H [data] |
| 0086 | x(40090061): SUB R0, R0, 61H |
| 0087 | y(E5000004): BLT 4 [008CH] |
| 0088 | z .FIXUP D |
| 0088 | z(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0089 | z(90D00130): LDR R0, SB, 130H [data] |
| 008A | z(4009007A): SUB R0, R0, 7AH |
| 008B | a(E6FFFFD4): BLE -44 [0060H] |
| id[i]b := 0X;c |
| 008C | b(80E00008): LDR R0, SP, 8H |
| 008D | b(41090020): SUB R1, R0, 20H |
| 008E | b(DA0AE91C): BLCC MT [trap=1, pos=2793] |
| 008F | b .FIXUP D |
| 008F | b(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0090 | b(00D80000): ADD R0, SB, R0 [global array] |
| 0091 | c(41000000): MOV R1, R0, 0H |
| 0092 | c(B100000C): STR R1, R0, CH |
| IF i < 10 THENd k := KWX[i-1]e;f (*search for keyword*) |
| 0093 | d(80E00008): LDR R0, SP, 8H |
| 0094 | d(4009000A): SUB R0, R0, AH |
| 0095 | d(ED000040): BGE 64 [00D6H] |
| 0096 | e(80E00008): LDR R0, SP, 8H |
| 0097 | e(40090001): SUB R0, R0, 1H |
| 0098 | e(4109000A): SUB R1, R0, AH |
| 0099 | e(DA0B121C): BLCC MT [trap=1, pos=2834] |
| 009A | e(40010002): LSL R0, R0, 2H |
| 009B | e .FIXUP D |
| 009B | e(8D00000C): LDR SB, MT, MOD0 [ORS] |
| 009C | e(00D80000): ADD R0, SB, R0 [global array] |
| 009D | f(80000198): LDR R0, R0, 198H |
| 009E | f(A0E0000C): STR R0, SP, CH |
| WHILE (id # keyTab[k]g.id)h & (ik < KWX[i]j)k DOl INC(k) ENDm ; |
| 009F | g(80E0000C): LDR R0, SP, CH |
| 00A0 | g(41090022): SUB R1, R0, 22H |
| 00A1 | g(DA0B471C): BLCC MT [trap=1, pos=2887] |
| 00A2 | g(400A0010): MUL R0, R0, 10H |
| 00A3 | g .FIXUP D |
| 00A3 | g(8D000008): LDR SB, MT, MOD0 [ORS] |
| 00A4 | g(00D80000): ADD R0, SB, R0 [global array] |
| 00A5 | h(41D8000C): ADD R1, SB, CH |
| 00A6 | h(400801C4): ADD R0, R0, 1C4H |
| 00A7 | h(92100000): LDR R2, R1, 0H |
| 00A8 | h(41180001): ADD R1, R1, 1H |
| 00A9 | h(93000000): LDR R3, R0, 0H |
| 00AA | h(40080001): ADD R0, R0, 1H |
| 00AB | h(04290003): SUB R4, R2, R3 |
| 00AC | h(E9000002): BNE 2 [00AFH] |
| 00AD | h(44290000): SUB R4, R2, 0H |
| 00AE | h(E9FFFFF8): BNE -8 [00A7H] |
| 00AF | i(E100000E): BEQ 14 [00BEH] |
| 00B0 | j(80E00008): LDR R0, SP, 8H |
| 00B1 | j(4109000A): SUB R1, R0, AH |
| 00B2 | j(DA0B591C): BLCC MT [trap=1, pos=2905] |
| 00B3 | j(40010002): LSL R0, R0, 2H |
| 00B4 | j .FIXUP D |
| 00B4 | j(8D000011): LDR SB, MT, MOD0 [ORS] |
| 00B5 | j(00D80000): ADD R0, SB, R0 [global array] |
| 00B6 | k(81E0000C): LDR R1, SP, CH |
| 00B7 | k(80000198): LDR R0, R0, 198H |
| 00B8 | k(01190000): SUB R1, R1, R0 |
| 00B9 | l(ED000004): BGE 4 [00BEH] |
| 00BA | m(80E0000C): LDR R0, SP, CH |
| 00BB | m(40080001): ADD R0, R0, 1H |
| 00BC | m(A0E0000C): STR R0, SP, CH |
| 00BD | m(E7FFFFE1): B -31 [009FH] |
| IF k < KWX[i]n THENo sym := keyTab[k]p.sym ELSEq symr := ident ENDs |
| 00BE | n(80E00008): LDR R0, SP, 8H |
| 00BF | n(4109000A): SUB R1, R0, AH |
| 00C0 | n(DA0B7E1C): BLCC MT [trap=1, pos=2942] |
| 00C1 | n(40010002): LSL R0, R0, 2H |
| 00C2 | n .FIXUP D |
| 00C2 | n(8D00000E): LDR SB, MT, MOD0 [ORS] |
| 00C3 | n(00D80000): ADD R0, SB, R0 [global array] |
| 00C4 | o(81E0000C): LDR R1, SP, CH |
| 00C5 | o(80000198): LDR R0, R0, 198H |
| 00C6 | o(01190000): SUB R1, R1, R0 |
| 00C7 | o(ED00000A): BGE 10 [00D2H] |
| 00C8 | p(80E0000C): LDR R0, SP, CH |
| 00C9 | p(41090022): SUB R1, R0, 22H |
| 00CA | p(DA0B941C): BLCC MT [trap=1, pos=2964] |
| 00CB | p(400A0010): MUL R0, R0, 10H |
| 00CC | p .FIXUP D |
| 00CC | p(8D00000A): LDR SB, MT, MOD0 [ORS] |
| 00CD | p(00D80000): ADD R0, SB, R0 [global array] |
| 00CE | q(800001C0): LDR R0, R0, 1C0H |
| 00CF | q(81E00004): LDR R1, SP, 4H |
| 00D0 | q(A0100000): STR R0, R1, 0H |
| 00D1 | r(E7000003): B 3 [00D5H] |
| 00D2 | s(4000001F): MOV R0, R0, 1FH |
| 00D3 | s(81E00004): LDR R1, SP, 4H |
| 00D4 | s(A0100000): STR R0, R1, 0H |
| ELSE symt := ident |
| 00D5 | t(E7000003): B 3 [00D9H] |
| ENDu |
| 00D6 | u(4000001F): MOV R0, R0, 1FH |
| 00D7 | u(81E00004): LDR R1, SP, 4H |
| 00D8 | u(A0100000): STR R0, R1, 0H |
| ENDv Identifier; |
| 00D9 | v(8FE00000): LDR LNK, SP, 0H |
| 00DA | v(4EE80010): ADD SP, SP, 10H |
| 00DB | v(C700000F): B LNK |
| |
| PROCEDURE String; |
| VAR i: INTEGER; |
| BEGINw i := 0;x Texts.Read(R,y ch)z;a |
| 00DC | w(4EE90008): SUB SP, SP, 8H |
| 00DD | w(AFE00000): STR LNK, SP, 0H |
| 00DE | x(40000000): MOV R0, R0, 0H |
| 00DF | x(A0E00004): STR R0, SP, 4H |
| 00E0 | y .FIXUP D |
| 00E0 | y(8D000014): LDR SB, MT, MOD0 [ORS] |
| 00E1 | y(40D80138): ADD R0, SB, 138H [data] |
| 00E2 | y .FIXUP D |
| 00E2 | y(8D100002): LDR SB, MT, MOD1 [Texts] |
| 00E3 | y(41D80002): ADD R1, SB, VAR2 |
| 00E4 | z .FIXUP D |
| 00E4 | z(8D000002): LDR SB, MT, MOD0 [ORS] |
| 00E5 | z(42D80130): ADD R2, SB, 130H [data] |
| 00E6 | a .FIXUP P |
| 00E6 | a(F7113073): BL MOD1 [Texts] PROC19 |
| WHILE ~R.eot &b (cch # 22X)d DOe |
| 00E7 | b .FIXUP D |
| 00E7 | b(8D000003): LDR SB, MT, MOD0 [ORS] |
| 00E8 | b(90D00138): LDR R0, SB, 138H [data] |
| 00E9 | c(E9000022): BNE 34 [010CH] |
| 00EA | d .FIXUP D |
| 00EA | d(8D000003): LDR SB, MT, MOD0 [ORS] |
| 00EB | d(90D00130): LDR R0, SB, 130H [data] |
| 00EC | d(40090022): SUB R0, R0, 22H |
| 00ED | e(E100001E): BEQ 30 [010CH] |
| IF ch >= " " THENf |
| 00EE | f .FIXUP D |
| 00EE | f(8D000004): LDR SB, MT, MOD0 [ORS] |
| 00EF | f(90D00130): LDR R0, SB, 130H [data] |
| 00F0 | f(40090020): SUB R0, R0, 20H |
| 00F1 | f(E5000012): BLT 18 [0104H] |
| IF i < stringBufSize-1 THENg str[i]h := ch;i INC(i) ELSEj Markk("string too long")l ENDm ; |
| 00F2 | g(80E00004): LDR R0, SP, 4H |
| 00F3 | g(400900FF): SUB R0, R0, FFH |
| 00F4 | g(ED00000B): BGE 11 [0100H] |
| 00F5 | h(80E00004): LDR R0, SP, 4H |
| 00F6 | h(41090100): SUB R1, R0, 100H |
| 00F7 | h(DA0C8E1C): BLCC MT [trap=1, pos=3214] |
| 00F8 | h .FIXUP D |
| 00F8 | h(8D00000A): LDR SB, MT, MOD0 [ORS] |
| 00F9 | h(00D80000): ADD R0, SB, R0 [global array] |
| 00FA | i(91D00130): LDR R1, SB, 130H |
| 00FB | i(B100002C): STR R1, R0, 2CH |
| 00FC | j(80E00004): LDR R0, SP, 4H |
| 00FD | j(40080001): ADD R0, R0, 1H |
| 00FE | j(A0E00004): STR R0, SP, 4H |
| 00FF | k(E7000004): B 4 [0104H] |
| 0100 | l .FIXUP D |
| 0100 | l(8D000008): LDR SB, MT, MOD0 [ORS] |
| 0101 | l(40D803E8): ADD R0, SB, 3E8H ["string too long"] |
| 0102 | l(41000010): MOV R1, R0, 10H |
| 0103 | m(F7FFFF17): BL -233 [001BH] |
| END ; |
| Texts.Read(R,n ch)o |
| 0104 | n .FIXUP D |
| 0104 | n(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0105 | n(40D80138): ADD R0, SB, 138H [data] |
| 0106 | n .FIXUP D |
| 0106 | n(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0107 | n(41D80002): ADD R1, SB, VAR2 |
| 0108 | o .FIXUP D |
| 0108 | o(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0109 | o(42D80130): ADD R2, SB, 130H [data] |
| ENDp ; |
| 010A | p .FIXUP P |
| 010A | p(F7113024): BL MOD1 [Texts] PROC19 |
| 010B | p(E7FFFFDB): B -37 [00E7H] |
| str[i]q := 0X;r INC(i);s Texts.Read(R,t ch)u;v slen := i |
| 010C | q(80E00004): LDR R0, SP, 4H |
| 010D | q(41090100): SUB R1, R0, 100H |
| 010E | q(DA0CF81C): BLCC MT [trap=1, pos=3320] |
| 010F | q .FIXUP D |
| 010F | q(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0110 | q(00D80000): ADD R0, SB, R0 [global array] |
| 0111 | r(41000000): MOV R1, R0, 0H |
| 0112 | r(B100002C): STR R1, R0, 2CH |
| 0113 | s(80E00004): LDR R0, SP, 4H |
| 0114 | s(40080001): ADD R0, R0, 1H |
| 0115 | s(A0E00004): STR R0, SP, 4H |
| 0116 | t(40D80138): ADD R0, SB, 138H |
| 0117 | t .FIXUP D |
| 0117 | t(8D100008): LDR SB, MT, MOD1 [Texts] |
| 0118 | t(41D80002): ADD R1, SB, VAR2 |
| 0119 | u .FIXUP D |
| 0119 | u(8D000002): LDR SB, MT, MOD0 [ORS] |
| 011A | u(42D80130): ADD R2, SB, 130H [data] |
| 011B | v .FIXUP P |
| 011B | v(F7113011): BL MOD1 [Texts] PROC19 |
| ENDw String; |
| 011C | w(80E00004): LDR R0, SP, 4H |
| 011D | w .FIXUP D |
| 011D | w(8D000004): LDR SB, MT, MOD0 [ORS] |
| 011E | w(A0D00004): STR R0, SB, 4H [data] |
| 011F | w(8FE00000): LDR LNK, SP, 0H |
| 0120 | w(4EE80008): ADD SP, SP, 8H |
| 0121 | w(C700000F): B LNK |
| |
| PROCEDURE HexString; |
| VAR i, m, n: INTEGER; |
| BEGINx i := 0;y Texts.Read(R,z ch)a;b |
| 0122 | x(4EE90010): SUB SP, SP, 10H |
| 0123 | x(AFE00000): STR LNK, SP, 0H |
| 0124 | y(40000000): MOV R0, R0, 0H |
| 0125 | y(A0E00004): STR R0, SP, 4H |
| 0126 | z .FIXUP D |
| 0126 | z(8D000009): LDR SB, MT, MOD0 [ORS] |
| 0127 | z(40D80138): ADD R0, SB, 138H [data] |
| 0128 | z .FIXUP D |
| 0128 | z(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0129 | z(41D80002): ADD R1, SB, VAR2 |
| 012A | a .FIXUP D |
| 012A | a(8D000002): LDR SB, MT, MOD0 [ORS] |
| 012B | a(42D80130): ADD R2, SB, 130H [data] |
| 012C | b .FIXUP P |
| 012C | b(F7113011): BL MOD1 [Texts] PROC19 |
| WHILE ~R.eot &c (dch # "$")e DOf |
| 012D | c .FIXUP D |
| 012D | c(8D000003): LDR SB, MT, MOD0 [ORS] |
| 012E | c(90D00138): LDR R0, SB, 138H [data] |
| 012F | d(E900007B): BNE 123 [01ABH] |
| 0130 | e .FIXUP D |
| 0130 | e(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0131 | e(90D00130): LDR R0, SB, 130H [data] |
| 0132 | e(40090024): SUB R0, R0, 24H |
| 0133 | f(E1000077): BEQ 119 [01ABH] |
| WHILE ~R.eot &g (hch <= " ")i DOj Texts.Read(R,k ch)l ENDm ; (*skip*) |
| 0134 | g .FIXUP D |
| 0134 | g(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0135 | g(90D00138): LDR R0, SB, 138H [data] |
| 0136 | h(E900000C): BNE 12 [0143H] |
| 0137 | i .FIXUP D |
| 0137 | i(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0138 | i(90D00130): LDR R0, SB, 130H [data] |
| 0139 | i(40090020): SUB R0, R0, 20H |
| 013A | j(EE000008): BGT 8 [0143H] |
| 013B | k .FIXUP D |
| 013B | k(8D000004): LDR SB, MT, MOD0 [ORS] |
| 013C | k(40D80138): ADD R0, SB, 138H [data] |
| 013D | k .FIXUP D |
| 013D | k(8D100002): LDR SB, MT, MOD1 [Texts] |
| 013E | k(41D80002): ADD R1, SB, VAR2 |
| 013F | l .FIXUP D |
| 013F | l(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0140 | l(42D80130): ADD R2, SB, 130H [data] |
| 0141 | m .FIXUP P |
| 0141 | m(F7113015): BL MOD1 [Texts] PROC19 |
| 0142 | m(E7FFFFF1): B -15 [0134H] |
| IF ("0" <= ch)n & (och <= "9")p THENq m := ORD(ch) -r 30H |
| 0143 | n(40000030): MOV R0, R0, 30H |
| 0144 | n .FIXUP D |
| 0144 | n(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0145 | n(91D00130): LDR R1, SB, 130H [data] |
| 0146 | n(00090001): SUB R0, R0, R1 |
| 0147 | o(EE000009): BGT 9 [0151H] |
| 0148 | p .FIXUP D |
| 0148 | p(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0149 | p(90D00130): LDR R0, SB, 130H [data] |
| 014A | p(40090039): SUB R0, R0, 39H |
| 014B | q(EE000005): BGT 5 [0151H] |
| 014C | r .FIXUP D |
| 014C | r(8D000004): LDR SB, MT, MOD0 [ORS] |
| 014D | r(90D00130): LDR R0, SB, 130H [data] |
| ELSIFs (t"A" <= ch)u & (vch <= "F")w THENx m := ORD(ch) -y 37H |
| 014E | s(40090030): SUB R0, R0, 30H |
| 014F | s(A0E00008): STR R0, SP, 8H |
| 0150 | t(E7000014): B 20 [0165H] |
| 0151 | u(40000041): MOV R0, R0, 41H |
| 0152 | u .FIXUP D |
| 0152 | u(8D000006): LDR SB, MT, MOD0 [ORS] |
| 0153 | u(91D00130): LDR R1, SB, 130H [data] |
| 0154 | u(00090001): SUB R0, R0, R1 |
| 0155 | v(EE000009): BGT 9 [015FH] |
| 0156 | w .FIXUP D |
| 0156 | w(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0157 | w(90D00130): LDR R0, SB, 130H [data] |
| 0158 | w(40090046): SUB R0, R0, 46H |
| 0159 | x(EE000005): BGT 5 [015FH] |
| 015A | y .FIXUP D |
| 015A | y(8D000004): LDR SB, MT, MOD0 [ORS] |
| 015B | y(90D00130): LDR R0, SB, 130H [data] |
| ELSEz ma := 0;b Mark("hexdig expected")c |
| 015C | z(40090037): SUB R0, R0, 37H |
| 015D | z(A0E00008): STR R0, SP, 8H |
| 015E | a(E7000006): B 6 [0165H] |
| 015F | b(40000000): MOV R0, R0, 0H |
| 0160 | b(A0E00008): STR R0, SP, 8H |
| 0161 | c .FIXUP D |
| 0161 | c(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0162 | c(40D803F8): ADD R0, SB, 3F8H ["hexdig expected"] |
| 0163 | c(41000010): MOV R1, R0, 10H |
| ENDd ; |
| 0164 | d(F7FFFEB6): BL -330 [001BH] |
| Texts.Read(R,e ch)f;g |
| 0165 | e .FIXUP D |
| 0165 | e(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0166 | e(40D80138): ADD R0, SB, 138H [data] |
| 0167 | e .FIXUP D |
| 0167 | e(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0168 | e(41D80002): ADD R1, SB, VAR2 |
| 0169 | f .FIXUP D |
| 0169 | f(8D000002): LDR SB, MT, MOD0 [ORS] |
| 016A | f(42D80130): ADD R2, SB, 130H [data] |
| 016B | g .FIXUP P |
| 016B | g(F711302A): BL MOD1 [Texts] PROC19 |
| IF ("0" <= ch)h & (ich <= "9")j THENk n := ORD(ch) -l 30H |
| 016C | h(40000030): MOV R0, R0, 30H |
| 016D | h .FIXUP D |
| 016D | h(8D000004): LDR SB, MT, MOD0 [ORS] |
| 016E | h(91D00130): LDR R1, SB, 130H [data] |
| 016F | h(00090001): SUB R0, R0, R1 |
| 0170 | i(EE000009): BGT 9 [017AH] |
| 0171 | j .FIXUP D |
| 0171 | j(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0172 | j(90D00130): LDR R0, SB, 130H [data] |
| 0173 | j(40090039): SUB R0, R0, 39H |
| 0174 | k(EE000005): BGT 5 [017AH] |
| 0175 | l .FIXUP D |
| 0175 | l(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0176 | l(90D00130): LDR R0, SB, 130H [data] |
| ELSIFm (n"A" <= ch)o & (pch <= "F")q THENr n := ORD(ch) -s 37H |
| 0177 | m(40090030): SUB R0, R0, 30H |
| 0178 | m(A0E0000C): STR R0, SP, CH |
| 0179 | n(E7000014): B 20 [018EH] |
| 017A | o(40000041): MOV R0, R0, 41H |
| 017B | o .FIXUP D |
| 017B | o(8D000006): LDR SB, MT, MOD0 [ORS] |
| 017C | o(91D00130): LDR R1, SB, 130H [data] |
| 017D | o(00090001): SUB R0, R0, R1 |
| 017E | p(EE000009): BGT 9 [0188H] |
| 017F | q .FIXUP D |
| 017F | q(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0180 | q(90D00130): LDR R0, SB, 130H [data] |
| 0181 | q(40090046): SUB R0, R0, 46H |
| 0182 | r(EE000005): BGT 5 [0188H] |
| 0183 | s .FIXUP D |
| 0183 | s(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0184 | s(90D00130): LDR R0, SB, 130H [data] |
| ELSEt nu := 0;v Mark("hexdig expected")w |
| 0185 | t(40090037): SUB R0, R0, 37H |
| 0186 | t(A0E0000C): STR R0, SP, CH |
| 0187 | u(E7000006): B 6 [018EH] |
| 0188 | v(40000000): MOV R0, R0, 0H |
| 0189 | v(A0E0000C): STR R0, SP, CH |
| 018A | w .FIXUP D |
| 018A | w(8D000007): LDR SB, MT, MOD0 [ORS] |
| 018B | w(40D80408): ADD R0, SB, 408H ["hexdig expected"] |
| 018C | w(41000010): MOV R1, R0, 10H |
| ENDx ; |
| 018D | x(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 ; |
| 018E | y(80E00004): LDR R0, SP, 4H |
| 018F | y(40090100): SUB R0, R0, 100H |
| 0190 | y(ED00000E): BGE 14 [019FH] |
| 0191 | z(80E00004): LDR R0, SP, 4H |
| 0192 | z(41090100): SUB R1, R0, 100H |
| 0193 | z(DA0F8E1C): BLCC MT [trap=1, pos=3982] |
| 0194 | z .FIXUP D |
| 0194 | z(8D00000A): LDR SB, MT, MOD0 [ORS] |
| 0195 | z(00D80000): ADD R0, SB, R0 [global array] |
| 0196 | a(81E00008): LDR R1, SP, 8H |
| 0197 | a(41110004): LSL R1, R1, 4H |
| 0198 | b(82E0000C): LDR R2, SP, CH |
| 0199 | b(01180002): ADD R1, R1, R2 |
| 019A | c(B100002C): STR R1, R0, 2CH |
| 019B | d(80E00004): LDR R0, SP, 4H |
| 019C | d(40080001): ADD R0, R0, 1H |
| 019D | d(A0E00004): STR R0, SP, 4H |
| 019E | e(E7000004): B 4 [01A3H] |
| 019F | f .FIXUP D |
| 019F | f(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 01A0 | f(40D80418): ADD R0, SB, 418H ["string too long"] |
| 01A1 | f(41000010): MOV R1, R0, 10H |
| 01A2 | g(F7FFFE78): BL -392 [001BH] |
| Texts.Read(R,h ch)i |
| 01A3 | h .FIXUP D |
| 01A3 | h(8D000004): LDR SB, MT, MOD0 [ORS] |
| 01A4 | h(40D80138): ADD R0, SB, 138H [data] |
| 01A5 | h .FIXUP D |
| 01A5 | h(8D100002): LDR SB, MT, MOD1 [Texts] |
| 01A6 | h(41D80002): ADD R1, SB, VAR2 |
| 01A7 | i .FIXUP D |
| 01A7 | i(8D000002): LDR SB, MT, MOD0 [ORS] |
| 01A8 | i(42D80130): ADD R2, SB, 130H [data] |
| ENDj ; |
| 01A9 | j .FIXUP P |
| 01A9 | j(F711303E): BL MOD1 [Texts] PROC19 |
| 01AA | j(E7FFFF82): B -126 [012DH] |
| Texts.Read(R,k ch)l;m slen := i (*no 0X appended!*) |
| 01AB | k .FIXUP D |
| 01AB | k(8D000004): LDR SB, MT, MOD0 [ORS] |
| 01AC | k(40D80138): ADD R0, SB, 138H [data] |
| 01AD | k .FIXUP D |
| 01AD | k(8D100002): LDR SB, MT, MOD1 [Texts] |
| 01AE | k(41D80002): ADD R1, SB, VAR2 |
| 01AF | l .FIXUP D |
| 01AF | l(8D000002): LDR SB, MT, MOD0 [ORS] |
| 01B0 | l(42D80130): ADD R2, SB, 130H [data] |
| 01B1 | m .FIXUP P |
| 01B1 | m(F7113008): BL MOD1 [Texts] PROC19 |
| ENDn HexString; |
| 01B2 | n(80E00004): LDR R0, SP, 4H |
| 01B3 | n .FIXUP D |
| 01B3 | n(8D000004): LDR SB, MT, MOD0 [ORS] |
| 01B4 | n(A0D00004): STR R0, SB, 4H [data] |
| 01B5 | n(8FE00000): LDR LNK, SP, 0H |
| 01B6 | n(4EE80010): ADD SP, SP, 10H |
| 01B7 | n(C700000F): B LNK |
| |
| PROCEDURE Ten(e: LONGINT): REAL; |
| VAR x, t: REAL; |
| BEGINo x := 1.0;p t := 10.0;q |
| 01B8 | o(4EE90010): SUB SP, SP, 10H |
| 01B9 | o(AFE00000): STR LNK, SP, 0H |
| 01BA | o(A0E00004): STR R0, SP, 4H |
| 01BB | p(60003F80): MOV' R0, R0, 3F80H |
| 01BC | p(A0E00008): STR R0, SP, 8H |
| 01BD | q(60004120): MOV' R0, R0, 4120H |
| 01BE | q(A0E0000C): STR R0, SP, CH |
| WHILE e > 0 DOr |
| 01BF | r(80E00004): LDR R0, SP, 4H |
| 01C0 | r(40090000): SUB R0, R0, 0H |
| 01C1 | r(E600000F): BLE 15 [01D1H] |
| IF ODD(e) THENs x := t * x ENDt ; |
| 01C2 | s(80E00004): LDR R0, SP, 4H |
| 01C3 | s(40040001): AND R0, R0, 1H |
| 01C4 | s(E1000004): BEQ 4 [01C9H] |
| 01C5 | t(80E0000C): LDR R0, SP, CH |
| 01C6 | t(81E00008): LDR R1, SP, 8H |
| 01C7 | t(000E0001): FML R0, R0, R1 |
| 01C8 | t(A0E00008): STR R0, SP, 8H |
| t := t * t;u e := e DIV 2 |
| 01C9 | u(80E0000C): LDR R0, SP, CH |
| 01CA | u(81E0000C): LDR R1, SP, CH |
| 01CB | u(000E0001): FML R0, R0, R1 |
| 01CC | u(A0E0000C): STR R0, SP, CH |
| ENDv ; |
| 01CD | v(80E00004): LDR R0, SP, 4H |
| 01CE | v(40020001): ASR R0, R0, 1H |
| 01CF | v(A0E00004): STR R0, SP, 4H |
| 01D0 | v(E7FFFFEE): B -18 [01BFH] |
| RETURN x |
| ENDw Ten; |
| 01D1 | w(80E00008): LDR R0, SP, 8H |
| 01D2 | w(8FE00000): LDR LNK, SP, 0H |
| 01D3 | w(4EE80010): ADD SP, SP, 10H |
| 01D4 | w(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 |
| 01D5 | x(4EE90068): SUB SP, SP, 68H |
| 01D6 | x(AFE00000): STR LNK, SP, 0H |
| 01D7 | x(A0E00004): STR R0, SP, 4H |
| 01D8 | y(40000000): MOV R0, R0, 0H |
| 01D9 | y .FIXUP D |
| 01D9 | y(8D000026): LDR SB, MT, MOD0 [ORS] |
| 01DA | y(A0D00000): STR R0, SB, 0H [data] |
| 01DB | z(40000000): MOV R0, R0, 0H |
| 01DC | z(A0E00008): STR R0, SP, 8H |
| 01DD | a(40000000): MOV R0, R0, 0H |
| 01DE | a(A0E00014): STR R0, SP, 14H |
| 01DF | b(40000000): MOV R0, R0, 0H |
| 01E0 | b(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 ; |
| 01E1 | c(80E00014): LDR R0, SP, 14H |
| 01E2 | c(40090010): SUB R0, R0, 10H |
| 01E3 | c(ED00000D): BGE 13 [01F1H] |
| 01E4 | d(80E00014): LDR R0, SP, 14H |
| 01E5 | d(41090010): SUB R1, R0, 10H |
| 01E6 | d(DA12021C): BLCC MT [trap=1, pos=4610] |
| 01E7 | d(40010002): LSL R0, R0, 2H |
| 01E8 | d(00E80000): ADD R0, SP, R0 |
| 01E9 | e .FIXUP D |
| 01E9 | e(8D000010): LDR SB, MT, MOD0 [ORS] |
| 01EA | e(91D00130): LDR R1, SB, 130H [data] |
| 01EB | f(41190030): SUB R1, R1, 30H |
| 01EC | f(A1000024): STR R1, R0, 24H |
| 01ED | g(80E00014): LDR R0, SP, 14H |
| 01EE | g(40080001): ADD R0, R0, 1H |
| 01EF | g(A0E00014): STR R0, SP, 14H |
| 01F0 | h(E7000006): B 6 [01F7H] |
| 01F1 | i .FIXUP D |
| 01F1 | i(8D000008): LDR SB, MT, MOD0 [ORS] |
| 01F2 | i(40D80428): ADD R0, SB, 428H ["too many digits"] |
| 01F3 | i(41000010): MOV R1, R0, 10H |
| 01F4 | j(F7FFFE26): BL -474 [001BH] |
| 01F5 | k(40000000): MOV R0, R0, 0H |
| 01F6 | k(A0E00014): STR R0, SP, 14H |
| Texts.Read(R,l ch)m |
| 01F7 | l .FIXUP D |
| 01F7 | l(8D000006): LDR SB, MT, MOD0 [ORS] |
| 01F8 | l(40D80138): ADD R0, SB, 138H [data] |
| 01F9 | l .FIXUP D |
| 01F9 | l(8D100002): LDR SB, MT, MOD1 [Texts] |
| 01FA | l(41D80002): ADD R1, SB, VAR2 |
| 01FB | m .FIXUP D |
| 01FB | m(8D000002): LDR SB, MT, MOD0 [ORS] |
| 01FC | m(42D80130): ADD R2, SB, 130H [data] |
| UNTILn (ch < "0")o OR (pch > "9")q & (rch < "A")s OR (tch > "F")u;v |
| 01FD | n .FIXUP P |
| 01FD | n(F711304C): BL MOD1 [Texts] PROC19 |
| 01FE | o .FIXUP D |
| 01FE | o(8D000003): LDR SB, MT, MOD0 [ORS] |
| 01FF | o(90D00130): LDR R0, SB, 130H [data] |
| 0200 | o(40090030): SUB R0, R0, 30H |
| 0201 | p(E500000C): BLT 12 [020EH] |
| 0202 | q .FIXUP D |
| 0202 | q(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0203 | q(90D00130): LDR R0, SB, 130H [data] |
| 0204 | q(40090039): SUB R0, R0, 39H |
| 0205 | r(E6000004): BLE 4 [020AH] |
| 0206 | s .FIXUP D |
| 0206 | s(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0207 | s(90D00130): LDR R0, SB, 130H [data] |
| 0208 | s(40090041): SUB R0, R0, 41H |
| 0209 | t(E5000004): BLT 4 [020EH] |
| 020A | u .FIXUP D |
| 020A | u(8D000004): LDR SB, MT, MOD0 [ORS] |
| 020B | u(90D00130): LDR R0, SB, 130H [data] |
| 020C | u(40090046): SUB R0, R0, 46H |
| 020D | v(E6FFFFD3): BLE -45 [01E1H] |
| IF (ch = "H")w OR (xch = "R")y OR (zch = "X")a THENb (*hex*) |
| 020E | w .FIXUP D |
| 020E | w(8D000004): LDR SB, MT, MOD0 [ORS] |
| 020F | w(90D00130): LDR R0, SB, 130H [data] |
| 0210 | w(40090048): SUB R0, R0, 48H |
| 0211 | x(E1000008): BEQ 8 [021AH] |
| 0212 | y .FIXUP D |
| 0212 | y(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0213 | y(90D00130): LDR R0, SB, 130H [data] |
| 0214 | y(40090052): SUB R0, R0, 52H |
| 0215 | z(E1000004): BEQ 4 [021AH] |
| 0216 | a .FIXUP D |
| 0216 | a(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0217 | a(90D00130): LDR R0, SB, 130H [data] |
| 0218 | a(40090058): SUB R0, R0, 58H |
| 0219 | b(E9000048): BNE 72 [0262H] |
| REPEAT h := d[i]c;d |
| 021A | c(80E00008): LDR R0, SP, 8H |
| 021B | c(41090010): SUB R1, R0, 10H |
| 021C | c(DA12EE1C): BLCC MT [trap=1, pos=4846] |
| 021D | c(40010002): LSL R0, R0, 2H |
| 021E | c(00E80000): ADD R0, SP, R0 |
| 021F | d(80000024): LDR R0, R0, 24H |
| 0220 | d(A0E0001C): STR R0, SP, 1CH |
| IF h >= 10 THENe h := h-7 ENDf ; |
| 0221 | e(80E0001C): LDR R0, SP, 1CH |
| 0222 | e(4009000A): SUB R0, R0, AH |
| 0223 | e(E5000003): BLT 3 [0227H] |
| 0224 | f(80E0001C): LDR R0, SP, 1CH |
| 0225 | f(40090007): SUB R0, R0, 7H |
| 0226 | f(A0E0001C): STR R0, SP, 1CH |
| k := k*10H +g h;h INC(i) (*no overflow check*) |
| 0227 | g(80E0000C): LDR R0, SP, CH |
| 0228 | g(40010004): LSL R0, R0, 4H |
| 0229 | h(81E0001C): LDR R1, SP, 1CH |
| 022A | h(00080001): ADD R0, R0, R1 |
| 022B | h(A0E0000C): STR R0, SP, CH |
| UNTILi i = n;j |
| 022C | i(80E00008): LDR R0, SP, 8H |
| 022D | i(40080001): ADD R0, R0, 1H |
| 022E | i(A0E00008): STR R0, SP, 8H |
| 022F | j(80E00008): LDR R0, SP, 8H |
| 0230 | j(81E00014): LDR R1, SP, 14H |
| 0231 | j(00090001): SUB R0, R0, R1 |
| 0232 | j(E9FFFFE7): BNE -25 [021AH] |
| IF ch = "X" THENk sym := char;l |
| 0233 | k .FIXUP D |
| 0233 | k(8D00001D): LDR SB, MT, MOD0 [ORS] |
| 0234 | k(90D00130): LDR R0, SB, 130H [data] |
| 0235 | k(40090058): SUB R0, R0, 58H |
| 0236 | k(E9000012): BNE 18 [0249H] |
| 0237 | l(40000014): MOV R0, R0, 14H |
| 0238 | l(81E00004): LDR R1, SP, 4H |
| 0239 | l(A0100000): STR R0, R1, 0H |
| IF k < 100H THENm ival := k ELSEn Marko("illegal value")p;q ival := 0 ENDr |
| 023A | m(80E0000C): LDR R0, SP, CH |
| 023B | m(40090100): SUB R0, R0, 100H |
| 023C | m(ED000004): BGE 4 [0241H] |
| 023D | n(80E0000C): LDR R0, SP, CH |
| 023E | n .FIXUP D |
| 023E | n(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 023F | n(A0D00000): STR R0, SB, 0H [data] |
| 0240 | o(E7000007): B 7 [0248H] |
| 0241 | p .FIXUP D |
| 0241 | p(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0242 | p(40D80438): ADD R0, SB, 438H ["illegal value"] |
| 0243 | p(4100000E): MOV R1, R0, EH |
| 0244 | q(F7FFFDD6): BL -554 [001BH] |
| 0245 | r(40000000): MOV R0, R0, 0H |
| 0246 | r .FIXUP D |
| 0246 | r(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0247 | r(A0D00000): STR R0, SB, 0H [data] |
| ELSIF chs = "R" THENt sym := real;u rval := SYSTEM.VAL(REAL, k) |
| 0248 | s(E7000011): B 17 [025AH] |
| 0249 | t .FIXUP D |
| 0249 | t(8D000003): LDR SB, MT, MOD0 [ORS] |
| 024A | t(90D00130): LDR R0, SB, 130H [data] |
| 024B | t(40090052): SUB R0, R0, 52H |
| 024C | t(E9000007): BNE 7 [0254H] |
| 024D | u(40000016): MOV R0, R0, 16H |
| 024E | u(81E00004): LDR R1, SP, 4H |
| 024F | u(A0100000): STR R0, R1, 0H |
| ELSEv symw := int;x ival := k |
| 0250 | v(80E0000C): LDR R0, SP, CH |
| 0251 | v .FIXUP D |
| 0251 | v(8D000008): LDR SB, MT, MOD0 [ORS] |
| 0252 | v(A0D00008): STR R0, SB, 8H [data] |
| 0253 | w(E7000006): B 6 [025AH] |
| 0254 | x(40000015): MOV R0, R0, 15H |
| 0255 | x(81E00004): LDR R1, SP, 4H |
| 0256 | x(A0100000): STR R0, R1, 0H |
| ENDy ; |
| 0257 | y(80E0000C): LDR R0, SP, CH |
| 0258 | y .FIXUP D |
| 0258 | y(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0259 | y(A0D00000): STR R0, SB, 0H [data] |
| Texts.Read(R,z ch)a |
| 025A | z .FIXUP D |
| 025A | z(8D000002): LDR SB, MT, MOD0 [ORS] |
| 025B | z(40D80138): ADD R0, SB, 138H [data] |
| 025C | z .FIXUP D |
| 025C | z(8D100002): LDR SB, MT, MOD1 [Texts] |
| 025D | z(41D80002): ADD R1, SB, VAR2 |
| 025E | a .FIXUP D |
| 025E | a(8D000002): LDR SB, MT, MOD0 [ORS] |
| 025F | a(42D80130): ADD R2, SB, 130H [data] |
| ELSIFb chc = "." THENd |
| 0260 | b .FIXUP P |
| 0260 | b(F7113063): BL MOD1 [Texts] PROC19 |
| 0261 | c(E700013A): B 314 [039CH] |
| 0262 | d .FIXUP D |
| 0262 | d(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0263 | d(90D00130): LDR R0, SB, 130H [data] |
| 0264 | d(4009002E): SUB R0, R0, 2EH |
| 0265 | d(E90000FE): BNE 254 [0364H] |
| Texts.Read(R,e ch)f;g |
| 0266 | e .FIXUP D |
| 0266 | e(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0267 | e(40D80138): ADD R0, SB, 138H [data] |
| 0268 | e .FIXUP D |
| 0268 | e(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0269 | e(41D80002): ADD R1, SB, VAR2 |
| 026A | f .FIXUP D |
| 026A | f(8D000002): LDR SB, MT, MOD0 [ORS] |
| 026B | f(42D80130): ADD R2, SB, 130H [data] |
| 026C | g .FIXUP P |
| 026C | g(F711300C): BL MOD1 [Texts] PROC19 |
| IF ch = "." THENh (*double dot*) ch := 7FX;i (*decimal integer*) |
| 026D | h .FIXUP D |
| 026D | h(8D000003): LDR SB, MT, MOD0 [ORS] |
| 026E | h(90D00130): LDR R0, SB, 130H [data] |
| 026F | h(4009002E): SUB R0, R0, 2EH |
| 0270 | h(E900003C): BNE 60 [02ADH] |
| 0271 | i(4000007F): MOV R0, R0, 7FH |
| 0272 | i .FIXUP D |
| 0272 | i(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0273 | i(B0D00130): STR R0, SB, 130H [data] |
| REPEAT |
| IF d[i]j < 10 THENk |
| 0274 | j(80E00008): LDR R0, SP, 8H |
| 0275 | j(41090010): SUB R1, R0, 10H |
| 0276 | j(DA14EF1C): BLCC MT [trap=1, pos=5359] |
| 0277 | j(40010002): LSL R0, R0, 2H |
| 0278 | j(00E80000): ADD R0, SP, R0 |
| 0279 | k(80000024): LDR R0, R0, 24H |
| 027A | k(4009000A): SUB R0, R0, AH |
| 027B | k(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 |
| 027C | l(80E00008): LDR R0, SP, 8H |
| 027D | l(41090010): SUB R1, R0, 10H |
| 027E | l(DA15171C): BLCC MT [trap=1, pos=5399] |
| 027F | l(40010002): LSL R0, R0, 2H |
| 0280 | l(00E80000): ADD R0, SP, R0 |
| 0281 | m(61007FFF): MOV' R1, R0, 7FFFH |
| 0282 | m(4116FFFF): IOR R1, R1, FFFFFFFFH |
| 0283 | m(80000024): LDR R0, R0, 24H |
| 0284 | m(00190000): SUB R0, R1, R0 |
| 0285 | n(400B000A): DIV R0, R0, AH |
| 0286 | n(81E0000C): LDR R1, SP, CH |
| 0287 | n(01190000): SUB R1, R1, R0 |
| 0288 | n(EE00000B): BGT 11 [0294H] |
| 0289 | o(80E0000C): LDR R0, SP, CH |
| 028A | o(400A000A): MUL R0, R0, AH |
| 028B | p(81E00008): LDR R1, SP, 8H |
| 028C | p(42190010): SUB R2, R1, 10H |
| 028D | p(DA15361C): BLCC MT [trap=1, pos=5430] |
| 028E | p(41110002): LSL R1, R1, 2H |
| 028F | p(01E80001): ADD R1, SP, R1 |
| 0290 | q(81100024): LDR R1, R1, 24H |
| 0291 | q(00080001): ADD R0, R0, R1 |
| 0292 | q(A0E0000C): STR R0, SP, CH |
| 0293 | r(E7000006): B 6 [029AH] |
| 0294 | s .FIXUP D |
| 0294 | s(8D000022): LDR SB, MT, MOD0 [ORS] |
| 0295 | s(40D80448): ADD R0, SB, 448H ["too large"] |
| 0296 | s(4100000A): MOV R1, R0, AH |
| 0297 | t(F7FFFD83): BL -637 [001BH] |
| 0298 | u(40000000): MOV R0, R0, 0H |
| 0299 | u(A0E0000C): STR R0, SP, CH |
| ELSE Markv("bad integer")w |
| 029A | v(E7000004): B 4 [029FH] |
| 029B | w .FIXUP D |
| 029B | w(8D000007): LDR SB, MT, MOD0 [ORS] |
| 029C | w(40D80454): ADD R0, SB, 454H ["bad integer"] |
| 029D | w(4100000C): MOV R1, R0, CH |
| ENDx ; |
| 029E | x(F7FFFD7C): BL -644 [001BH] |
| INC(i) |
| UNTILy i = n;z |
| 029F | y(80E00008): LDR R0, SP, 8H |
| 02A0 | y(40080001): ADD R0, R0, 1H |
| 02A1 | y(A0E00008): STR R0, SP, 8H |
| 02A2 | z(80E00008): LDR R0, SP, 8H |
| 02A3 | z(81E00014): LDR R1, SP, 14H |
| 02A4 | z(00090001): SUB R0, R0, R1 |
| 02A5 | z(E9FFFFCE): BNE -50 [0274H] |
| sym := int;a ival := k |
| 02A6 | a(40000015): MOV R0, R0, 15H |
| 02A7 | a(81E00004): LDR R1, SP, 4H |
| 02A8 | a(A0100000): STR R0, R1, 0H |
| ELSEb (*real number*) xc := 0.0;d e := 0;e |
| 02A9 | b(80E0000C): LDR R0, SP, CH |
| 02AA | b .FIXUP D |
| 02AA | b(8D00000F): LDR SB, MT, MOD0 [ORS] |
| 02AB | b(A0D00000): STR R0, SB, 0H [data] |
| 02AC | c(E70000B6): B 182 [0363H] |
| 02AD | d(40000000): MOV R0, R0, 0H |
| 02AE | d(A0E00020): STR R0, SP, 20H |
| 02AF | e(40000000): MOV R0, R0, 0H |
| 02B0 | e(A0E00010): STR R0, SP, 10H |
| REPEAT (*integer part*) x := x * 10.0 +f FLT(d[i]g);h INC(i) UNTILi i = n;j |
| 02B1 | f(80E00020): LDR R0, SP, 20H |
| 02B2 | f(61004120): MOV' R1, R0, 4120H |
| 02B3 | f(000E0001): FML R0, R0, R1 |
| 02B4 | g(81E00008): LDR R1, SP, 8H |
| 02B5 | g(42190010): SUB R2, R1, 10H |
| 02B6 | g(DA16371C): BLCC MT [trap=1, pos=5687] |
| 02B7 | g(41110002): LSL R1, R1, 2H |
| 02B8 | g(01E80001): ADD R1, SP, R1 |
| 02B9 | h(81100024): LDR R1, R1, 24H |
| 02BA | h(62004B00): MOV' R2, R0, 4B00H |
| 02BB | h(211C0002): FAD' R1, R1, R2 |
| 02BC | h(000C0001): FAD R0, R0, R1 |
| 02BD | h(A0E00020): STR R0, SP, 20H |
| 02BE | i(80E00008): LDR R0, SP, 8H |
| 02BF | i(40080001): ADD R0, R0, 1H |
| 02C0 | i(A0E00008): STR R0, SP, 8H |
| 02C1 | j(80E00008): LDR R0, SP, 8H |
| 02C2 | j(81E00014): LDR R1, SP, 14H |
| 02C3 | j(00090001): SUB R0, R0, R1 |
| 02C4 | j(E9FFFFEC): BNE -20 [02B1H] |
| WHILE (ch >= "0")k & (lch <= "9")m DOn (*fraction*) |
| 02C5 | k .FIXUP D |
| 02C5 | k(8D00001B): LDR SB, MT, MOD0 [ORS] |
| 02C6 | k(90D00130): LDR R0, SB, 130H [data] |
| 02C7 | k(40090030): SUB R0, R0, 30H |
| 02C8 | l(E5000018): BLT 24 [02E1H] |
| 02C9 | m .FIXUP D |
| 02C9 | m(8D000004): LDR SB, MT, MOD0 [ORS] |
| 02CA | m(90D00130): LDR R0, SB, 130H [data] |
| 02CB | m(40090039): SUB R0, R0, 39H |
| 02CC | n(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 |
| 02CD | o(80E00020): LDR R0, SP, 20H |
| 02CE | o(61004120): MOV' R1, R0, 4120H |
| 02CF | o(000E0001): FML R0, R0, R1 |
| 02D0 | p .FIXUP D |
| 02D0 | p(8D000007): LDR SB, MT, MOD0 [ORS] |
| 02D1 | p(91D00130): LDR R1, SB, 130H [data] |
| 02D2 | q(41190030): SUB R1, R1, 30H |
| 02D3 | r(62004B00): MOV' R2, R0, 4B00H |
| 02D4 | r(211C0002): FAD' R1, R1, R2 |
| 02D5 | r(000C0001): FAD R0, R0, R1 |
| 02D6 | r(A0E00020): STR R0, SP, 20H |
| 02D7 | s(80E00010): LDR R0, SP, 10H |
| 02D8 | s(40090001): SUB R0, R0, 1H |
| 02D9 | s(A0E00010): STR R0, SP, 10H |
| 02DA | t(40D80138): ADD R0, SB, 138H |
| 02DB | t .FIXUP D |
| 02DB | t(8D10000B): LDR SB, MT, MOD1 [Texts] |
| 02DC | t(41D80002): ADD R1, SB, VAR2 |
| 02DD | u .FIXUP D |
| 02DD | u(8D000002): LDR SB, MT, MOD0 [ORS] |
| 02DE | u(42D80130): ADD R2, SB, 130H [data] |
| ENDv ; |
| 02DF | v .FIXUP P |
| 02DF | v(F7113073): BL MOD1 [Texts] PROC19 |
| 02E0 | v(E7FFFFE4): B -28 [02C5H] |
| IF (ch = "E")w OR (xch = "D")y THENz (*scale factor*) |
| 02E1 | w .FIXUP D |
| 02E1 | w(8D000004): LDR SB, MT, MOD0 [ORS] |
| 02E2 | w(90D00130): LDR R0, SB, 130H [data] |
| 02E3 | w(40090045): SUB R0, R0, 45H |
| 02E4 | x(E1000004): BEQ 4 [02E9H] |
| 02E5 | y .FIXUP D |
| 02E5 | y(8D000004): LDR SB, MT, MOD0 [ORS] |
| 02E6 | y(90D00130): LDR R0, SB, 130H [data] |
| 02E7 | y(40090044): SUB R0, R0, 44H |
| 02E8 | z(E9000051): BNE 81 [033AH] |
| Texts.Read(R,a ch)b;c s := 0;d |
| 02E9 | a .FIXUP D |
| 02E9 | a(8D000004): LDR SB, MT, MOD0 [ORS] |
| 02EA | a(40D80138): ADD R0, SB, 138H [data] |
| 02EB | a .FIXUP D |
| 02EB | a(8D100002): LDR SB, MT, MOD1 [Texts] |
| 02EC | a(41D80002): ADD R1, SB, VAR2 |
| 02ED | b .FIXUP D |
| 02ED | b(8D000002): LDR SB, MT, MOD0 [ORS] |
| 02EE | b(42D80130): ADD R2, SB, 130H [data] |
| 02EF | c .FIXUP P |
| 02EF | c(F7113010): BL MOD1 [Texts] PROC19 |
| 02F0 | d(40000000): MOV R0, R0, 0H |
| 02F1 | d(A0E00018): STR R0, SP, 18H |
| IF ch = "-" THENe negE := TRUE;f Texts.Read(R,g ch)h |
| 02F2 | e .FIXUP D |
| 02F2 | e(8D000005): LDR SB, MT, MOD0 [ORS] |
| 02F3 | e(90D00130): LDR R0, SB, 130H [data] |
| 02F4 | e(4009002D): SUB R0, R0, 2DH |
| 02F5 | e(E900000A): BNE 10 [0300H] |
| 02F6 | f(40000001): MOV R0, R0, 1H |
| 02F7 | f(B0E00064): STR R0, SP, 64H |
| 02F8 | g .FIXUP D |
| 02F8 | g(8D000006): LDR SB, MT, MOD0 [ORS] |
| 02F9 | g(40D80138): ADD R0, SB, 138H [data] |
| 02FA | g .FIXUP D |
| 02FA | g(8D100002): LDR SB, MT, MOD1 [Texts] |
| 02FB | g(41D80002): ADD R1, SB, VAR2 |
| 02FC | h .FIXUP D |
| 02FC | h(8D000002): LDR SB, MT, MOD0 [ORS] |
| 02FD | h(42D80130): ADD R2, SB, 130H [data] |
| ELSEi negEj := FALSE;k |
| 02FE | i .FIXUP P |
| 02FE | i(F711300F): BL MOD1 [Texts] PROC19 |
| 02FF | j(E700000D): B 13 [030DH] |
| 0300 | k(40000000): MOV R0, R0, 0H |
| 0301 | k(B0E00064): STR R0, SP, 64H |
| IF ch = "+" THENl Texts.Read(R,m ch)n ENDo |
| 0302 | l .FIXUP D |
| 0302 | l(8D000006): LDR SB, MT, MOD0 [ORS] |
| 0303 | l(90D00130): LDR R0, SB, 130H [data] |
| 0304 | l(4009002B): SUB R0, R0, 2BH |
| 0305 | l(E9000007): BNE 7 [030DH] |
| 0306 | m .FIXUP D |
| 0306 | m(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0307 | m(40D80138): ADD R0, SB, 138H [data] |
| 0308 | m .FIXUP D |
| 0308 | m(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0309 | m(41D80002): ADD R1, SB, VAR2 |
| 030A | n .FIXUP D |
| 030A | n(8D000002): LDR SB, MT, MOD0 [ORS] |
| 030B | n(42D80130): ADD R2, SB, 130H [data] |
| 030C | o .FIXUP P |
| 030C | o(F711300E): BL MOD1 [Texts] PROC19 |
| END ; |
| IF (ch >= "0")p & (qch <= "9")r THENs |
| 030D | p .FIXUP D |
| 030D | p(8D000003): LDR SB, MT, MOD0 [ORS] |
| 030E | p(90D00130): LDR R0, SB, 130H [data] |
| 030F | p(40090030): SUB R0, R0, 30H |
| 0310 | q(E5000025): BLT 37 [0336H] |
| 0311 | r .FIXUP D |
| 0311 | r(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0312 | r(90D00130): LDR R0, SB, 130H [data] |
| 0313 | r(40090039): SUB R0, R0, 39H |
| 0314 | s(EE000021): BGT 33 [0336H] |
| REPEAT s := s*10 +t ORD(ch)-u30H;v Texts.Read(R,w ch)x |
| 0315 | t(80E00018): LDR R0, SP, 18H |
| 0316 | t(400A000A): MUL R0, R0, AH |
| 0317 | u .FIXUP D |
| 0317 | u(8D000006): LDR SB, MT, MOD0 [ORS] |
| 0318 | u(91D00130): LDR R1, SB, 130H [data] |
| 0319 | u(00080001): ADD R0, R0, R1 |
| 031A | v(40090030): SUB R0, R0, 30H |
| 031B | v(A0E00018): STR R0, SP, 18H |
| 031C | w(40D80138): ADD R0, SB, 138H |
| 031D | w .FIXUP D |
| 031D | w(8D100006): LDR SB, MT, MOD1 [Texts] |
| 031E | w(41D80002): ADD R1, SB, VAR2 |
| 031F | x .FIXUP D |
| 031F | x(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0320 | x(42D80130): ADD R2, SB, 130H [data] |
| UNTILy (ch < "0")z OR (ach >"9")b;c |
| 0321 | y .FIXUP P |
| 0321 | y(F7113015): BL MOD1 [Texts] PROC19 |
| 0322 | z .FIXUP D |
| 0322 | z(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0323 | z(90D00130): LDR R0, SB, 130H [data] |
| 0324 | z(40090030): SUB R0, R0, 30H |
| 0325 | a(E5000004): BLT 4 [032AH] |
| 0326 | b .FIXUP D |
| 0326 | b(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0327 | b(90D00130): LDR R0, SB, 130H [data] |
| 0328 | b(40090039): SUB R0, R0, 39H |
| 0329 | c(E6FFFFEB): BLE -21 [0315H] |
| IF negE THENd e := e-s ELSEe ef := e+s ENDg |
| 032A | d(90E00064): LDR R0, SP, 64H |
| 032B | d(E1000005): BEQ 5 [0331H] |
| 032C | e(80E00010): LDR R0, SP, 10H |
| 032D | e(81E00018): LDR R1, SP, 18H |
| 032E | e(00090001): SUB R0, R0, R1 |
| 032F | e(A0E00010): STR R0, SP, 10H |
| 0330 | f(E7000004): B 4 [0335H] |
| 0331 | g(80E00010): LDR R0, SP, 10H |
| 0332 | g(81E00018): LDR R1, SP, 18H |
| 0333 | g(00080001): ADD R0, R0, R1 |
| 0334 | g(A0E00010): STR R0, SP, 10H |
| ELSE Markh("digit?")i |
| 0335 | h(E7000004): B 4 [033AH] |
| 0336 | i .FIXUP D |
| 0336 | i(8D000010): LDR SB, MT, MOD0 [ORS] |
| 0337 | i(40D80460): ADD R0, SB, 460H ["digit?"] |
| 0338 | i(41000007): MOV R1, R0, 7H |
| ENDj |
| 0339 | j(F7FFFCE1): BL -799 [001BH] |
| END ; |
| IF e < 0 THENk |
| 033A | k(80E00010): LDR R0, SP, 10H |
| 033B | k(40090000): SUB R0, R0, 0H |
| 033C | k(ED00000E): BGE 14 [034BH] |
| IF e >= -maxExp THENl x := x / Ten(-e)m ELSEn xo := 0.0 ENDp |
| 033D | l(80E00010): LDR R0, SP, 10H |
| 033E | l(5009FFDA): SUB R0, R0, FFFFFFDAH |
| 033F | l(E5000008): BLT 8 [0348H] |
| 0340 | m(80E00010): LDR R0, SP, 10H |
| 0341 | m(41000000): MOV R1, R0, 0H |
| 0342 | m(00190000): SUB R0, R1, R0 |
| 0343 | n(F7FFFE74): BL -396 [01B8H] |
| 0344 | n(81E00020): LDR R1, SP, 20H |
| 0345 | n(001F0000): FDV R0, R1, R0 |
| 0346 | n(A0E00020): STR R0, SP, 20H |
| 0347 | o(E7000002): B 2 [034AH] |
| 0348 | p(40000000): MOV R0, R0, 0H |
| 0349 | p(A0E00020): STR R0, SP, 20H |
| ELSIF eq > 0 THENr |
| 034A | q(E7000012): B 18 [035DH] |
| 034B | r(80E00010): LDR R0, SP, 10H |
| 034C | r(40090000): SUB R0, R0, 0H |
| 034D | r(E600000F): BLE 15 [035DH] |
| IF e <= maxExp THENs x := Ten(e)t *u x ELSEv xw := 0.0;x Mark("too large")y ENDz |
| 034E | s(80E00010): LDR R0, SP, 10H |
| 034F | s(40090026): SUB R0, R0, 26H |
| 0350 | s(EE000006): BGT 6 [0357H] |
| 0351 | t(80E00010): LDR R0, SP, 10H |
| 0352 | u(F7FFFE65): BL -411 [01B8H] |
| 0353 | v(81E00020): LDR R1, SP, 20H |
| 0354 | v(000E0001): FML R0, R0, R1 |
| 0355 | v(A0E00020): STR R0, SP, 20H |
| 0356 | w(E7000006): B 6 [035DH] |
| 0357 | x(40000000): MOV R0, R0, 0H |
| 0358 | x(A0E00020): STR R0, SP, 20H |
| 0359 | y .FIXUP D |
| 0359 | y(8D000023): LDR SB, MT, MOD0 [ORS] |
| 035A | y(40D80468): ADD R0, SB, 468H ["too large"] |
| 035B | y(4100000A): MOV R1, R0, AH |
| 035C | z(F7FFFCBE): BL -834 [001BH] |
| END ; |
| sym := real;a rval := x |
| 035D | a(40000016): MOV R0, R0, 16H |
| 035E | a(81E00004): LDR R1, SP, 4H |
| 035F | a(A0100000): STR R0, R1, 0H |
| ENDb |
| 0360 | b(80E00020): LDR R0, SP, 20H |
| 0361 | b .FIXUP D |
| 0361 | b(8D000008): LDR SB, MT, MOD0 [ORS] |
| 0362 | b(A0D00008): STR R0, SB, 8H [data] |
| ELSE (*decimal integer*) |
| REPEATc |
| 0363 | c(E7000038): B 56 [039CH] |
| IF d[i]d < 10 THENe |
| 0364 | d(80E00008): LDR R0, SP, 8H |
| 0365 | d(41090010): SUB R1, R0, 10H |
| 0366 | d(DA1A121C): BLCC MT [trap=1, pos=6674] |
| 0367 | d(40010002): LSL R0, R0, 2H |
| 0368 | d(00E80000): ADD R0, SP, R0 |
| 0369 | e(80000024): LDR R0, R0, 24H |
| 036A | e(4009000A): SUB R0, R0, AH |
| 036B | e(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 |
| 036C | f(80E00008): LDR R0, SP, 8H |
| 036D | f(41090010): SUB R1, R0, 10H |
| 036E | f(DA1A381C): BLCC MT [trap=1, pos=6712] |
| 036F | f(40010002): LSL R0, R0, 2H |
| 0370 | f(00E80000): ADD R0, SP, R0 |
| 0371 | g(61007FFF): MOV' R1, R0, 7FFFH |
| 0372 | g(4116FFFF): IOR R1, R1, FFFFFFFFH |
| 0373 | g(80000024): LDR R0, R0, 24H |
| 0374 | g(00190000): SUB R0, R1, R0 |
| 0375 | h(400B000A): DIV R0, R0, AH |
| 0376 | h(81E0000C): LDR R1, SP, CH |
| 0377 | h(01190000): SUB R1, R1, R0 |
| 0378 | h(EE00000B): BGT 11 [0384H] |
| 0379 | i(80E0000C): LDR R0, SP, CH |
| 037A | i(400A000A): MUL R0, R0, AH |
| 037B | j(81E00008): LDR R1, SP, 8H |
| 037C | j(42190010): SUB R2, R1, 10H |
| 037D | j(DA1A561C): BLCC MT [trap=1, pos=6742] |
| 037E | j(41110002): LSL R1, R1, 2H |
| 037F | j(01E80001): ADD R1, SP, R1 |
| 0380 | k(81100024): LDR R1, R1, 24H |
| 0381 | k(00080001): ADD R0, R0, R1 |
| 0382 | k(A0E0000C): STR R0, SP, CH |
| 0383 | l(E7000006): B 6 [038AH] |
| 0384 | m .FIXUP D |
| 0384 | m(8D000023): LDR SB, MT, MOD0 [ORS] |
| 0385 | m(40D80474): ADD R0, SB, 474H ["too large"] |
| 0386 | m(4100000A): MOV R1, R0, AH |
| 0387 | n(F7FFFC93): BL -877 [001BH] |
| 0388 | o(40000000): MOV R0, R0, 0H |
| 0389 | o(A0E0000C): STR R0, SP, CH |
| ELSE Markp("bad integer")q |
| 038A | p(E7000004): B 4 [038FH] |
| 038B | q .FIXUP D |
| 038B | q(8D000007): LDR SB, MT, MOD0 [ORS] |
| 038C | q(40D80480): ADD R0, SB, 480H ["bad integer"] |
| 038D | q(4100000C): MOV R1, R0, CH |
| ENDr ; |
| 038E | r(F7FFFC8C): BL -884 [001BH] |
| INC(i) |
| UNTILs i = n;t |
| 038F | s(80E00008): LDR R0, SP, 8H |
| 0390 | s(40080001): ADD R0, R0, 1H |
| 0391 | s(A0E00008): STR R0, SP, 8H |
| 0392 | t(80E00008): LDR R0, SP, 8H |
| 0393 | t(81E00014): LDR R1, SP, 14H |
| 0394 | t(00090001): SUB R0, R0, R1 |
| 0395 | t(E9FFFFCE): BNE -50 [0364H] |
| sym := int;u ival := k |
| 0396 | u(40000015): MOV R0, R0, 15H |
| 0397 | u(81E00004): LDR R1, SP, 4H |
| 0398 | u(A0100000): STR R0, R1, 0H |
| ENDv |
| 0399 | v(80E0000C): LDR R0, SP, CH |
| 039A | v .FIXUP D |
| 039A | v(8D00000F): LDR SB, MT, MOD0 [ORS] |
| 039B | v(A0D00000): STR R0, SB, 0H [data] |
| ENDw Number; |
| 039C | w(8FE00000): LDR LNK, SP, 0H |
| 039D | w(4EE80068): ADD SP, SP, 68H |
| 039E | w(C700000F): B LNK |
| |
| PROCEDURE comment; |
| BEGINx Texts.Read(R,y ch)z;a |
| 039F | x(4EE90004): SUB SP, SP, 4H |
| 03A0 | x(AFE00000): STR LNK, SP, 0H |
| 03A1 | y .FIXUP D |
| 03A1 | y(8D000007): LDR SB, MT, MOD0 [ORS] |
| 03A2 | y(40D80138): ADD R0, SB, 138H [data] |
| 03A3 | y .FIXUP D |
| 03A3 | y(8D100002): LDR SB, MT, MOD1 [Texts] |
| 03A4 | y(41D80002): ADD R1, SB, VAR2 |
| 03A5 | z .FIXUP D |
| 03A5 | z(8D000002): LDR SB, MT, MOD0 [ORS] |
| 03A6 | z(42D80130): ADD R2, SB, 130H [data] |
| 03A7 | a .FIXUP P |
| 03A7 | a(F7113086): BL MOD1 [Texts] PROC19 |
| REPEAT |
| WHILE ~R.eot &b (cch # "*")d DOe |
| 03A8 | b .FIXUP D |
| 03A8 | b(8D000003): LDR SB, MT, MOD0 [ORS] |
| 03A9 | b(90D00138): LDR R0, SB, 138H [data] |
| 03AA | c(E900001D): BNE 29 [03C8H] |
| 03AB | d .FIXUP D |
| 03AB | d(8D000003): LDR SB, MT, MOD0 [ORS] |
| 03AC | d(90D00130): LDR R0, SB, 130H [data] |
| 03AD | d(4009002A): SUB R0, R0, 2AH |
| 03AE | e(E1000019): BEQ 25 [03C8H] |
| IF ch = "(" THENf Texts.Read(R,g ch)h;i |
| 03AF | f .FIXUP D |
| 03AF | f(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03B0 | f(90D00130): LDR R0, SB, 130H [data] |
| 03B1 | f(40090028): SUB R0, R0, 28H |
| 03B2 | f(E900000D): BNE 13 [03C0H] |
| 03B3 | g .FIXUP D |
| 03B3 | g(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03B4 | g(40D80138): ADD R0, SB, 138H [data] |
| 03B5 | g .FIXUP D |
| 03B5 | g(8D100002): LDR SB, MT, MOD1 [Texts] |
| 03B6 | g(41D80002): ADD R1, SB, VAR2 |
| 03B7 | h .FIXUP D |
| 03B7 | h(8D000002): LDR SB, MT, MOD0 [ORS] |
| 03B8 | h(42D80130): ADD R2, SB, 130H [data] |
| 03B9 | i .FIXUP P |
| 03B9 | i(F7113012): BL MOD1 [Texts] PROC19 |
| IF ch = "*" THENj comment ENDk |
| 03BA | j .FIXUP D |
| 03BA | j(8D000003): LDR SB, MT, MOD0 [ORS] |
| 03BB | j(90D00130): LDR R0, SB, 130H [data] |
| 03BC | j(4009002A): SUB R0, R0, 2AH |
| 03BD | j(E9000001): BNE 1 [03BFH] |
| 03BE | k(F7FFFFE0): BL -32 [039FH] |
| ELSE Textsl.Read(R,m ch)n |
| 03BF | l(E7000007): B 7 [03C7H] |
| 03C0 | m .FIXUP D |
| 03C0 | m(8D000006): LDR SB, MT, MOD0 [ORS] |
| 03C1 | m(40D80138): ADD R0, SB, 138H [data] |
| 03C2 | m .FIXUP D |
| 03C2 | m(8D100002): LDR SB, MT, MOD1 [Texts] |
| 03C3 | m(41D80002): ADD R1, SB, VAR2 |
| 03C4 | n .FIXUP D |
| 03C4 | n(8D000002): LDR SB, MT, MOD0 [ORS] |
| 03C5 | n(42D80130): ADD R2, SB, 130H [data] |
| ENDo |
| 03C6 | o .FIXUP P |
| 03C6 | o(F711300D): BL MOD1 [Texts] PROC19 |
| ENDp ; |
| 03C7 | p(E7FFFFE0): B -32 [03A8H] |
| WHILE ch = "*" DOq Texts.Read(R,r ch)s ENDt |
| 03C8 | q .FIXUP D |
| 03C8 | q(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03C9 | q(90D00130): LDR R0, SB, 130H [data] |
| 03CA | q(4009002A): SUB R0, R0, 2AH |
| 03CB | q(E9000008): BNE 8 [03D4H] |
| 03CC | r .FIXUP D |
| 03CC | r(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03CD | r(40D80138): ADD R0, SB, 138H [data] |
| 03CE | r .FIXUP D |
| 03CE | r(8D100002): LDR SB, MT, MOD1 [Texts] |
| 03CF | r(41D80002): ADD R1, SB, VAR2 |
| 03D0 | s .FIXUP D |
| 03D0 | s(8D000002): LDR SB, MT, MOD0 [ORS] |
| 03D1 | s(42D80130): ADD R2, SB, 130H [data] |
| 03D2 | t .FIXUP P |
| 03D2 | t(F711300C): BL MOD1 [Texts] PROC19 |
| 03D3 | t(E7FFFFF4): B -12 [03C8H] |
| UNTIL (ch = ")")u OR Rv.eot;w |
| 03D4 | u .FIXUP D |
| 03D4 | u(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03D5 | u(90D00130): LDR R0, SB, 130H [data] |
| 03D6 | u(40090029): SUB R0, R0, 29H |
| 03D7 | v(E1000003): BEQ 3 [03DBH] |
| 03D8 | w .FIXUP D |
| 03D8 | w(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03D9 | w(90D00138): LDR R0, SB, 138H [data] |
| 03DA | w(E1FFFFCD): BEQ -51 [03A8H] |
| IF ~R.eot THENx Texts.Read(R,y ch)z ELSEa Markb("unterminated comment")c ENDd |
| 03DB | x .FIXUP D |
| 03DB | x(8D000003): LDR SB, MT, MOD0 [ORS] |
| 03DC | x(90D00138): LDR R0, SB, 138H [data] |
| 03DD | x(E9000008): BNE 8 [03E6H] |
| 03DE | y .FIXUP D |
| 03DE | y(8D000003): LDR SB, MT, MOD0 [ORS] |
| 03DF | y(40D80138): ADD R0, SB, 138H [data] |
| 03E0 | y .FIXUP D |
| 03E0 | y(8D100002): LDR SB, MT, MOD1 [Texts] |
| 03E1 | y(41D80002): ADD R1, SB, VAR2 |
| 03E2 | z .FIXUP D |
| 03E2 | z(8D000002): LDR SB, MT, MOD0 [ORS] |
| 03E3 | z(42D80130): ADD R2, SB, 130H [data] |
| 03E4 | a .FIXUP P |
| 03E4 | a(F7113012): BL MOD1 [Texts] PROC19 |
| 03E5 | b(E7000004): B 4 [03EAH] |
| 03E6 | c .FIXUP D |
| 03E6 | c(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03E7 | c(40D8048C): ADD R0, SB, 48CH ["unterminated comment"] |
| 03E8 | c(41000015): MOV R1, R0, 15H |
| 03E9 | d(F7FFFC31): BL -975 [001BH] |
| ENDe comment; |
| 03EA | e(8FE00000): LDR LNK, SP, 0H |
| 03EB | e(4EE80004): ADD SP, SP, 4H |
| 03EC | e(C700000F): B LNK |
| |
| PROCEDURE Get*(VAR sym: INTEGER); |
| BEGINf |
| 03ED | f .PROC 10 |
| 03ED | f(4EE90008): SUB SP, SP, 8H |
| 03EE | f(AFE00000): STR LNK, SP, 0H |
| 03EF | f(A0E00004): STR R0, SP, 4H |
| REPEAT |
| WHILE ~R.eot &g (hch <= " ")i DOj Texts.Read(R,k ch)l ENDm; |
| 03F0 | g .FIXUP D |
| 03F0 | g(8D00000A): LDR SB, MT, MOD0 [ORS] |
| 03F1 | g(90D00138): LDR R0, SB, 138H [data] |
| 03F2 | h(E900000C): BNE 12 [03FFH] |
| 03F3 | i .FIXUP D |
| 03F3 | i(8D000003): LDR SB, MT, MOD0 [ORS] |
| 03F4 | i(90D00130): LDR R0, SB, 130H [data] |
| 03F5 | i(40090020): SUB R0, R0, 20H |
| 03F6 | j(EE000008): BGT 8 [03FFH] |
| 03F7 | k .FIXUP D |
| 03F7 | k(8D000004): LDR SB, MT, MOD0 [ORS] |
| 03F8 | k(40D80138): ADD R0, SB, 138H [data] |
| 03F9 | k .FIXUP D |
| 03F9 | k(8D100002): LDR SB, MT, MOD1 [Texts] |
| 03FA | k(41D80002): ADD R1, SB, VAR2 |
| 03FB | l .FIXUP D |
| 03FB | l(8D000002): LDR SB, MT, MOD0 [ORS] |
| 03FC | l(42D80130): ADD R2, SB, 130H [data] |
| 03FD | m .FIXUP P |
| 03FD | m(F7113019): BL MOD1 [Texts] PROC19 |
| 03FE | m(E7FFFFF1): B -15 [03F0H] |
| IF R.eot THENn sym := eot |
| 03FF | n .FIXUP D |
| 03FF | n(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0400 | n(90D00138): LDR R0, SB, 138H [data] |
| 0401 | n(E1000004): BEQ 4 [0406H] |
| ELSIFo chp < "A" THENq |
| 0402 | o(40000046): MOV R0, R0, 46H |
| 0403 | o(81E00004): LDR R1, SP, 4H |
| 0404 | o(A0100000): STR R0, R1, 0H |
| 0405 | p(E70001C4): B 452 [05CAH] |
| 0406 | q .FIXUP D |
| 0406 | q(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0407 | q(90D00130): LDR R0, SB, 130H [data] |
| 0408 | q(40090041): SUB R0, R0, 41H |
| 0409 | q(ED000159): BGE 345 [0563H] |
| IF ch < "0" THENr |
| 040A | r .FIXUP D |
| 040A | r(8D000004): LDR SB, MT, MOD0 [ORS] |
| 040B | r(90D00130): LDR R0, SB, 130H [data] |
| 040C | r(40090030): SUB R0, R0, 30H |
| 040D | r(ED0000CB): BGE 203 [04D9H] |
| IF ch = 22X THENs String;t sym := string |
| 040E | s .FIXUP D |
| 040E | s(8D000004): LDR SB, MT, MOD0 [ORS] |
| 040F | s(90D00130): LDR R0, SB, 130H [data] |
| 0410 | s(40090022): SUB R0, R0, 22H |
| 0411 | s(E9000005): BNE 5 [0417H] |
| 0412 | t(F7FFFCC9): BL -823 [00DCH] |
| ELSIFu chv = "#" THENw Texts.Read(R,x ch)y;z sym := neq |
| 0413 | u(4000001A): MOV R0, R0, 1AH |
| 0414 | u(81E00004): LDR R1, SP, 4H |
| 0415 | u(A0100000): STR R0, R1, 0H |
| 0416 | v(E70000C1): B 193 [04D8H] |
| 0417 | w .FIXUP D |
| 0417 | w(8D000009): LDR SB, MT, MOD0 [ORS] |
| 0418 | w(90D00130): LDR R0, SB, 130H [data] |
| 0419 | w(40090023): SUB R0, R0, 23H |
| 041A | w(E900000B): BNE 11 [0426H] |
| 041B | x .FIXUP D |
| 041B | x(8D000004): LDR SB, MT, MOD0 [ORS] |
| 041C | x(40D80138): ADD R0, SB, 138H [data] |
| 041D | x .FIXUP D |
| 041D | x(8D100002): LDR SB, MT, MOD1 [Texts] |
| 041E | x(41D80002): ADD R1, SB, VAR2 |
| 041F | y .FIXUP D |
| 041F | y(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0420 | y(42D80130): ADD R2, SB, 130H [data] |
| 0421 | z .FIXUP P |
| 0421 | z(F7113024): BL MOD1 [Texts] PROC19 |
| ELSIFa chb = "$" THENc HexString;d sym := string |
| 0422 | a(4000000A): MOV R0, R0, AH |
| 0423 | a(81E00004): LDR R1, SP, 4H |
| 0424 | a(A0100000): STR R0, R1, 0H |
| 0425 | b(E70000B2): B 178 [04D8H] |
| 0426 | c .FIXUP D |
| 0426 | c(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0427 | c(90D00130): LDR R0, SB, 130H [data] |
| 0428 | c(40090024): SUB R0, R0, 24H |
| 0429 | c(E9000005): BNE 5 [042FH] |
| 042A | d(F7FFFCF7): BL -777 [0122H] |
| ELSIFe chf = "&" THENg Texts.Read(R,h ch)i;j sym := and |
| 042B | e(4000001A): MOV R0, R0, 1AH |
| 042C | e(81E00004): LDR R1, SP, 4H |
| 042D | e(A0100000): STR R0, R1, 0H |
| 042E | f(E70000A9): B 169 [04D8H] |
| 042F | g .FIXUP D |
| 042F | g(8D000009): LDR SB, MT, MOD0 [ORS] |
| 0430 | g(90D00130): LDR R0, SB, 130H [data] |
| 0431 | g(40090026): SUB R0, R0, 26H |
| 0432 | g(E900000B): BNE 11 [043EH] |
| 0433 | h .FIXUP D |
| 0433 | h(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0434 | h(40D80138): ADD R0, SB, 138H [data] |
| 0435 | h .FIXUP D |
| 0435 | h(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0436 | h(41D80002): ADD R1, SB, VAR2 |
| 0437 | i .FIXUP D |
| 0437 | i(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0438 | i(42D80130): ADD R2, SB, 130H [data] |
| 0439 | j .FIXUP P |
| 0439 | j(F7113018): BL MOD1 [Texts] PROC19 |
| ELSIFk chl = "(" THENm Texts.Read(R,n ch)o;p |
| 043A | k(40000005): MOV R0, R0, 5H |
| 043B | k(81E00004): LDR R1, SP, 4H |
| 043C | k(A0100000): STR R0, R1, 0H |
| 043D | l(E700009A): B 154 [04D8H] |
| 043E | m .FIXUP D |
| 043E | m(8D000007): LDR SB, MT, MOD0 [ORS] |
| 043F | m(90D00130): LDR R0, SB, 130H [data] |
| 0440 | m(40090028): SUB R0, R0, 28H |
| 0441 | m(E9000014): BNE 20 [0456H] |
| 0442 | n .FIXUP D |
| 0442 | n(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0443 | n(40D80138): ADD R0, SB, 138H [data] |
| 0444 | n .FIXUP D |
| 0444 | n(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0445 | n(41D80002): ADD R1, SB, VAR2 |
| 0446 | o .FIXUP D |
| 0446 | o(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0447 | o(42D80130): ADD R2, SB, 130H [data] |
| 0448 | p .FIXUP P |
| 0448 | p(F711300F): BL MOD1 [Texts] PROC19 |
| IF ch = "*" THENq sym := null;r comment ELSEs symt := lparen ENDu |
| 0449 | q .FIXUP D |
| 0449 | q(8D000003): LDR SB, MT, MOD0 [ORS] |
| 044A | q(90D00130): LDR R0, SB, 130H [data] |
| 044B | q(4009002A): SUB R0, R0, 2AH |
| 044C | q(E9000005): BNE 5 [0452H] |
| 044D | r(40000000): MOV R0, R0, 0H |
| 044E | r(81E00004): LDR R1, SP, 4H |
| 044F | r(A0100000): STR R0, R1, 0H |
| 0450 | s(F7FFFF4E): BL -178 [039FH] |
| 0451 | t(E7000003): B 3 [0455H] |
| 0452 | u(4000001C): MOV R0, R0, 1CH |
| 0453 | u(81E00004): LDR R1, SP, 4H |
| 0454 | u(A0100000): STR R0, R1, 0H |
| ELSIF chv = ")" THENw Texts.Read(R,x ch)y;z sym := rparen |
| 0455 | v(E7000082): B 130 [04D8H] |
| 0456 | w .FIXUP D |
| 0456 | w(8D00000D): LDR SB, MT, MOD0 [ORS] |
| 0457 | w(90D00130): LDR R0, SB, 130H [data] |
| 0458 | w(40090029): SUB R0, R0, 29H |
| 0459 | w(E900000B): BNE 11 [0465H] |
| 045A | x .FIXUP D |
| 045A | x(8D000004): LDR SB, MT, MOD0 [ORS] |
| 045B | x(40D80138): ADD R0, SB, 138H [data] |
| 045C | x .FIXUP D |
| 045C | x(8D100002): LDR SB, MT, MOD1 [Texts] |
| 045D | x(41D80002): ADD R1, SB, VAR2 |
| 045E | y .FIXUP D |
| 045E | y(8D000002): LDR SB, MT, MOD0 [ORS] |
| 045F | y(42D80130): ADD R2, SB, 130H [data] |
| 0460 | z .FIXUP P |
| 0460 | z(F7113018): BL MOD1 [Texts] PROC19 |
| ELSIFa chb = "*" THENc Texts.Read(R,d ch)e;f sym := times |
| 0461 | a(4000002C): MOV R0, R0, 2CH |
| 0462 | a(81E00004): LDR R1, SP, 4H |
| 0463 | a(A0100000): STR R0, R1, 0H |
| 0464 | b(E7000073): B 115 [04D8H] |
| 0465 | c .FIXUP D |
| 0465 | c(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0466 | c(90D00130): LDR R0, SB, 130H [data] |
| 0467 | c(4009002A): SUB R0, R0, 2AH |
| 0468 | c(E900000B): BNE 11 [0474H] |
| 0469 | d .FIXUP D |
| 0469 | d(8D000004): LDR SB, MT, MOD0 [ORS] |
| 046A | d(40D80138): ADD R0, SB, 138H [data] |
| 046B | d .FIXUP D |
| 046B | d(8D100002): LDR SB, MT, MOD1 [Texts] |
| 046C | d(41D80002): ADD R1, SB, VAR2 |
| 046D | e .FIXUP D |
| 046D | e(8D000002): LDR SB, MT, MOD0 [ORS] |
| 046E | e(42D80130): ADD R2, SB, 130H [data] |
| 046F | f .FIXUP P |
| 046F | f(F711300F): BL MOD1 [Texts] PROC19 |
| ELSIFg chh = "+" THENi Texts.Read(R,j ch)k;l sym := plus |
| 0470 | g(40000001): MOV R0, R0, 1H |
| 0471 | g(81E00004): LDR R1, SP, 4H |
| 0472 | g(A0100000): STR R0, R1, 0H |
| 0473 | h(E7000064): B 100 [04D8H] |
| 0474 | i .FIXUP D |
| 0474 | i(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0475 | i(90D00130): LDR R0, SB, 130H [data] |
| 0476 | i(4009002B): SUB R0, R0, 2BH |
| 0477 | i(E900000B): BNE 11 [0483H] |
| 0478 | j .FIXUP D |
| 0478 | j(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0479 | j(40D80138): ADD R0, SB, 138H [data] |
| 047A | j .FIXUP D |
| 047A | j(8D100002): LDR SB, MT, MOD1 [Texts] |
| 047B | j(41D80002): ADD R1, SB, VAR2 |
| 047C | k .FIXUP D |
| 047C | k(8D000002): LDR SB, MT, MOD0 [ORS] |
| 047D | k(42D80130): ADD R2, SB, 130H [data] |
| 047E | l .FIXUP P |
| 047E | l(F711300F): BL MOD1 [Texts] PROC19 |
| ELSIFm chn = "," THENo Texts.Read(R,p ch)q;r sym := comma |
| 047F | m(40000006): MOV R0, R0, 6H |
| 0480 | m(81E00004): LDR R1, SP, 4H |
| 0481 | m(A0100000): STR R0, R1, 0H |
| 0482 | n(E7000055): B 85 [04D8H] |
| 0483 | o .FIXUP D |
| 0483 | o(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0484 | o(90D00130): LDR R0, SB, 130H [data] |
| 0485 | o(4009002C): SUB R0, R0, 2CH |
| 0486 | o(E900000B): BNE 11 [0492H] |
| 0487 | p .FIXUP D |
| 0487 | p(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0488 | p(40D80138): ADD R0, SB, 138H [data] |
| 0489 | p .FIXUP D |
| 0489 | p(8D100002): LDR SB, MT, MOD1 [Texts] |
| 048A | p(41D80002): ADD R1, SB, VAR2 |
| 048B | q .FIXUP D |
| 048B | q(8D000002): LDR SB, MT, MOD0 [ORS] |
| 048C | q(42D80130): ADD R2, SB, 130H [data] |
| 048D | r .FIXUP P |
| 048D | r(F711300F): BL MOD1 [Texts] PROC19 |
| ELSIFs cht = "-" THENu Texts.Read(R,v ch)w;x sym := minus |
| 048E | s(40000028): MOV R0, R0, 28H |
| 048F | s(81E00004): LDR R1, SP, 4H |
| 0490 | s(A0100000): STR R0, R1, 0H |
| 0491 | t(E7000046): B 70 [04D8H] |
| 0492 | u .FIXUP D |
| 0492 | u(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0493 | u(90D00130): LDR R0, SB, 130H [data] |
| 0494 | u(4009002D): SUB R0, R0, 2DH |
| 0495 | u(E900000B): BNE 11 [04A1H] |
| 0496 | v .FIXUP D |
| 0496 | v(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0497 | v(40D80138): ADD R0, SB, 138H [data] |
| 0498 | v .FIXUP D |
| 0498 | v(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0499 | v(41D80002): ADD R1, SB, VAR2 |
| 049A | w .FIXUP D |
| 049A | w(8D000002): LDR SB, MT, MOD0 [ORS] |
| 049B | w(42D80130): ADD R2, SB, 130H [data] |
| 049C | x .FIXUP P |
| 049C | x(F711300F): BL MOD1 [Texts] PROC19 |
| ELSIFy chz = "." THENa Texts.Read(R,b ch)c;d |
| 049D | y(40000007): MOV R0, R0, 7H |
| 049E | y(81E00004): LDR R1, SP, 4H |
| 049F | y(A0100000): STR R0, R1, 0H |
| 04A0 | z(E7000037): B 55 [04D8H] |
| 04A1 | a .FIXUP D |
| 04A1 | a(8D000007): LDR SB, MT, MOD0 [ORS] |
| 04A2 | a(90D00130): LDR R0, SB, 130H [data] |
| 04A3 | a(4009002E): SUB R0, R0, 2EH |
| 04A4 | a(E900001A): BNE 26 [04BFH] |
| 04A5 | b .FIXUP D |
| 04A5 | b(8D000004): LDR SB, MT, MOD0 [ORS] |
| 04A6 | b(40D80138): ADD R0, SB, 138H [data] |
| 04A7 | b .FIXUP D |
| 04A7 | b(8D100002): LDR SB, MT, MOD1 [Texts] |
| 04A8 | b(41D80002): ADD R1, SB, VAR2 |
| 04A9 | c .FIXUP D |
| 04A9 | c(8D000002): LDR SB, MT, MOD0 [ORS] |
| 04AA | c(42D80130): ADD R2, SB, 130H [data] |
| 04AB | d .FIXUP P |
| 04AB | d(F711300F): BL MOD1 [Texts] PROC19 |
| IF ch = "." THENe Texts.Read(R,f ch)g;h sym := upto ELSEi symj := period ENDk |
| 04AC | e .FIXUP D |
| 04AC | e(8D000003): LDR SB, MT, MOD0 [ORS] |
| 04AD | e(90D00130): LDR R0, SB, 130H [data] |
| 04AE | e(4009002E): SUB R0, R0, 2EH |
| 04AF | e(E900000B): BNE 11 [04BBH] |
| 04B0 | f .FIXUP D |
| 04B0 | f(8D000004): LDR SB, MT, MOD0 [ORS] |
| 04B1 | f(40D80138): ADD R0, SB, 138H [data] |
| 04B2 | f .FIXUP D |
| 04B2 | f(8D100002): LDR SB, MT, MOD1 [Texts] |
| 04B3 | f(41D80002): ADD R1, SB, VAR2 |
| 04B4 | g .FIXUP D |
| 04B4 | g(8D000002): LDR SB, MT, MOD0 [ORS] |
| 04B5 | g(42D80130): ADD R2, SB, 130H [data] |
| 04B6 | h .FIXUP P |
| 04B6 | h(F711300B): BL MOD1 [Texts] PROC19 |
| 04B7 | i(4000002B): MOV R0, R0, 2BH |
| 04B8 | i(81E00004): LDR R1, SP, 4H |
| 04B9 | i(A0100000): STR R0, R1, 0H |
| 04BA | j(E7000003): B 3 [04BEH] |
| 04BB | k(40000012): MOV R0, R0, 12H |
| 04BC | k(81E00004): LDR R1, SP, 4H |
| 04BD | k(A0100000): STR R0, R1, 0H |
| ELSIF chl = "/" THENm Texts.Read(R,n ch)o;p sym := rdiv |
| 04BE | l(E7000019): B 25 [04D8H] |
| 04BF | m .FIXUP D |
| 04BF | m(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 04C0 | m(90D00130): LDR R0, SB, 130H [data] |
| 04C1 | m(4009002F): SUB R0, R0, 2FH |
| 04C2 | m(E900000B): BNE 11 [04CEH] |
| 04C3 | n .FIXUP D |
| 04C3 | n(8D000004): LDR SB, MT, MOD0 [ORS] |
| 04C4 | n(40D80138): ADD R0, SB, 138H [data] |
| 04C5 | n .FIXUP D |
| 04C5 | n(8D100002): LDR SB, MT, MOD1 [Texts] |
| 04C6 | n(41D80002): ADD R1, SB, VAR2 |
| 04C7 | o .FIXUP D |
| 04C7 | o(8D000002): LDR SB, MT, MOD0 [ORS] |
| 04C8 | o(42D80130): ADD R2, SB, 130H [data] |
| 04C9 | p .FIXUP P |
| 04C9 | p(F7113013): BL MOD1 [Texts] PROC19 |
| ELSEq Textsr.Read(R,s ch)t;u (* ! % ' *) sym := null |
| 04CA | q(40000002): MOV R0, R0, 2H |
| 04CB | q(81E00004): LDR R1, SP, 4H |
| 04CC | q(A0100000): STR R0, R1, 0H |
| 04CD | r(E700000A): B 10 [04D8H] |
| 04CE | s .FIXUP D |
| 04CE | s(8D000007): LDR SB, MT, MOD0 [ORS] |
| 04CF | s(40D80138): ADD R0, SB, 138H [data] |
| 04D0 | s .FIXUP D |
| 04D0 | s(8D100002): LDR SB, MT, MOD1 [Texts] |
| 04D1 | s(41D80002): ADD R1, SB, VAR2 |
| 04D2 | t .FIXUP D |
| 04D2 | t(8D000002): LDR SB, MT, MOD0 [ORS] |
| 04D3 | t(42D80130): ADD R2, SB, 130H [data] |
| 04D4 | u .FIXUP P |
| 04D4 | u(F711300B): BL MOD1 [Texts] PROC19 |
| ENDv |
| 04D5 | v(40000000): MOV R0, R0, 0H |
| 04D6 | v(81E00004): LDR R1, SP, 4H |
| 04D7 | v(A0100000): STR R0, R1, 0H |
| ELSIF chw < ":" THENx Number(sym)y |
| 04D8 | w(E7000089): B 137 [0562H] |
| 04D9 | x .FIXUP D |
| 04D9 | x(8D000007): LDR SB, MT, MOD0 [ORS] |
| 04DA | x(90D00130): LDR R0, SB, 130H [data] |
| 04DB | x(4009003A): SUB R0, R0, 3AH |
| 04DC | x(ED000003): BGE 3 [04E0H] |
| 04DD | y(80E00004): LDR R0, SP, 4H |
| ELSIFz cha = ":" THENb Texts.Read(R,c ch)d;e |
| 04DE | z(F7FFFCF6): BL -778 [01D5H] |
| 04DF | a(E7000082): B 130 [0562H] |
| 04E0 | b .FIXUP D |
| 04E0 | b(8D000007): LDR SB, MT, MOD0 [ORS] |
| 04E1 | b(90D00130): LDR R0, SB, 130H [data] |
| 04E2 | b(4009003A): SUB R0, R0, 3AH |
| 04E3 | b(E900001A): BNE 26 [04FEH] |
| 04E4 | c .FIXUP D |
| 04E4 | c(8D000004): LDR SB, MT, MOD0 [ORS] |
| 04E5 | c(40D80138): ADD R0, SB, 138H [data] |
| 04E6 | c .FIXUP D |
| 04E6 | c(8D100002): LDR SB, MT, MOD1 [Texts] |
| 04E7 | c(41D80002): ADD R1, SB, VAR2 |
| 04E8 | d .FIXUP D |
| 04E8 | d(8D000002): LDR SB, MT, MOD0 [ORS] |
| 04E9 | d(42D80130): ADD R2, SB, 130H [data] |
| 04EA | e .FIXUP P |
| 04EA | e(F7113016): BL MOD1 [Texts] PROC19 |
| IF ch = "=" THENf Texts.Read(R,g ch)h;i sym := becomes ELSEj symk := colon ENDl |
| 04EB | f .FIXUP D |
| 04EB | f(8D000003): LDR SB, MT, MOD0 [ORS] |
| 04EC | f(90D00130): LDR R0, SB, 130H [data] |
| 04ED | f(4009003D): SUB R0, R0, 3DH |
| 04EE | f(E900000B): BNE 11 [04FAH] |
| 04EF | g .FIXUP D |
| 04EF | g(8D000004): LDR SB, MT, MOD0 [ORS] |
| 04F0 | g(40D80138): ADD R0, SB, 138H [data] |
| 04F1 | g .FIXUP D |
| 04F1 | g(8D100002): LDR SB, MT, MOD1 [Texts] |
| 04F2 | g(41D80002): ADD R1, SB, VAR2 |
| 04F3 | h .FIXUP D |
| 04F3 | h(8D000002): LDR SB, MT, MOD0 [ORS] |
| 04F4 | h(42D80130): ADD R2, SB, 130H [data] |
| 04F5 | i .FIXUP P |
| 04F5 | i(F711300B): BL MOD1 [Texts] PROC19 |
| 04F6 | j(4000002A): MOV R0, R0, 2AH |
| 04F7 | j(81E00004): LDR R1, SP, 4H |
| 04F8 | j(A0100000): STR R0, R1, 0H |
| 04F9 | k(E7000003): B 3 [04FDH] |
| 04FA | l(40000029): MOV R0, R0, 29H |
| 04FB | l(81E00004): LDR R1, SP, 4H |
| 04FC | l(A0100000): STR R0, R1, 0H |
| ELSIF chm = ";" THENn Texts.Read(R,o ch)p;q sym := semicolon |
| 04FD | m(E7000064): B 100 [0562H] |
| 04FE | n .FIXUP D |
| 04FE | n(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 04FF | n(90D00130): LDR R0, SB, 130H [data] |
| 0500 | n(4009003B): SUB R0, R0, 3BH |
| 0501 | n(E900000B): BNE 11 [050DH] |
| 0502 | o .FIXUP D |
| 0502 | o(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0503 | o(40D80138): ADD R0, SB, 138H [data] |
| 0504 | o .FIXUP D |
| 0504 | o(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0505 | o(41D80002): ADD R1, SB, VAR2 |
| 0506 | p .FIXUP D |
| 0506 | p(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0507 | p(42D80130): ADD R2, SB, 130H [data] |
| 0508 | q .FIXUP P |
| 0508 | q(F7113013): BL MOD1 [Texts] PROC19 |
| ELSIFr chs = "<" THENt Texts.Read(R,u ch)v;w |
| 0509 | r(40000034): MOV R0, R0, 34H |
| 050A | r(81E00004): LDR R1, SP, 4H |
| 050B | r(A0100000): STR R0, R1, 0H |
| 050C | s(E7000055): B 85 [0562H] |
| 050D | t .FIXUP D |
| 050D | t(8D000007): LDR SB, MT, MOD0 [ORS] |
| 050E | t(90D00130): LDR R0, SB, 130H [data] |
| 050F | t(4009003C): SUB R0, R0, 3CH |
| 0510 | t(E900001A): BNE 26 [052BH] |
| 0511 | u .FIXUP D |
| 0511 | u(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0512 | u(40D80138): ADD R0, SB, 138H [data] |
| 0513 | u .FIXUP D |
| 0513 | u(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0514 | u(41D80002): ADD R1, SB, VAR2 |
| 0515 | v .FIXUP D |
| 0515 | v(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0516 | v(42D80130): ADD R2, SB, 130H [data] |
| 0517 | w .FIXUP P |
| 0517 | w(F711300F): BL MOD1 [Texts] PROC19 |
| IF ch = "=" THENx Texts.Read(R,y ch)z;a sym := leq ELSEb symc := lss ENDd |
| 0518 | x .FIXUP D |
| 0518 | x(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0519 | x(90D00130): LDR R0, SB, 130H [data] |
| 051A | x(4009003D): SUB R0, R0, 3DH |
| 051B | x(E900000B): BNE 11 [0527H] |
| 051C | y .FIXUP D |
| 051C | y(8D000004): LDR SB, MT, MOD0 [ORS] |
| 051D | y(40D80138): ADD R0, SB, 138H [data] |
| 051E | y .FIXUP D |
| 051E | y(8D100002): LDR SB, MT, MOD1 [Texts] |
| 051F | y(41D80002): ADD R1, SB, VAR2 |
| 0520 | z .FIXUP D |
| 0520 | z(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0521 | z(42D80130): ADD R2, SB, 130H [data] |
| 0522 | a .FIXUP P |
| 0522 | a(F711300B): BL MOD1 [Texts] PROC19 |
| 0523 | b(4000000C): MOV R0, R0, CH |
| 0524 | b(81E00004): LDR R1, SP, 4H |
| 0525 | b(A0100000): STR R0, R1, 0H |
| 0526 | c(E7000003): B 3 [052AH] |
| 0527 | d(4000000B): MOV R0, R0, BH |
| 0528 | d(81E00004): LDR R1, SP, 4H |
| 0529 | d(A0100000): STR R0, R1, 0H |
| ELSIF che = "=" THENf Texts.Read(R,g ch)h;i sym := eql |
| 052A | e(E7000037): B 55 [0562H] |
| 052B | f .FIXUP D |
| 052B | f(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 052C | f(90D00130): LDR R0, SB, 130H [data] |
| 052D | f(4009003D): SUB R0, R0, 3DH |
| 052E | f(E900000B): BNE 11 [053AH] |
| 052F | g .FIXUP D |
| 052F | g(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0530 | g(40D80138): ADD R0, SB, 138H [data] |
| 0531 | g .FIXUP D |
| 0531 | g(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0532 | g(41D80002): ADD R1, SB, VAR2 |
| 0533 | h .FIXUP D |
| 0533 | h(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0534 | h(42D80130): ADD R2, SB, 130H [data] |
| 0535 | i .FIXUP P |
| 0535 | i(F7113013): BL MOD1 [Texts] PROC19 |
| ELSIFj chk = ">" THENl Texts.Read(R,m ch)n;o |
| 0536 | j(40000009): MOV R0, R0, 9H |
| 0537 | j(81E00004): LDR R1, SP, 4H |
| 0538 | j(A0100000): STR R0, R1, 0H |
| 0539 | k(E7000028): B 40 [0562H] |
| 053A | l .FIXUP D |
| 053A | l(8D000007): LDR SB, MT, MOD0 [ORS] |
| 053B | l(90D00130): LDR R0, SB, 130H [data] |
| 053C | l(4009003E): SUB R0, R0, 3EH |
| 053D | l(E900001A): BNE 26 [0558H] |
| 053E | m .FIXUP D |
| 053E | m(8D000004): LDR SB, MT, MOD0 [ORS] |
| 053F | m(40D80138): ADD R0, SB, 138H [data] |
| 0540 | m .FIXUP D |
| 0540 | m(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0541 | m(41D80002): ADD R1, SB, VAR2 |
| 0542 | n .FIXUP D |
| 0542 | n(8D000002): LDR SB, MT, MOD0 [ORS] |
| 0543 | n(42D80130): ADD R2, SB, 130H [data] |
| 0544 | o .FIXUP P |
| 0544 | o(F711300F): BL MOD1 [Texts] PROC19 |
| IF ch = "=" THENp Texts.Read(R,q ch)r;s sym := geq ELSEt symu := gtr ENDv |
| 0545 | p .FIXUP D |
| 0545 | p(8D000003): LDR SB, MT, MOD0 [ORS] |
| 0546 | p(90D00130): LDR R0, SB, 130H [data] |
| 0547 | p(4009003D): SUB R0, R0, 3DH |
| 0548 | p(E900000B): BNE 11 [0554H] |
| 0549 | q .FIXUP D |
| 0549 | q(8D000004): LDR SB, MT, MOD0 [ORS] |
| 054A | q(40D80138): ADD R0, SB, 138H [data] |
| 054B | q .FIXUP D |
| 054B | q(8D100002): LDR SB, MT, MOD1 [Texts] |
| 054C | q(41D80002): ADD R1, SB, VAR2 |
| 054D | r .FIXUP D |
| 054D | r(8D000002): LDR SB, MT, MOD0 [ORS] |
| 054E | r(42D80130): ADD R2, SB, 130H [data] |
| 054F | s .FIXUP P |
| 054F | s(F711300B): BL MOD1 [Texts] PROC19 |
| 0550 | t(4000000E): MOV R0, R0, EH |
| 0551 | t(81E00004): LDR R1, SP, 4H |
| 0552 | t(A0100000): STR R0, R1, 0H |
| 0553 | u(E7000003): B 3 [0557H] |
| 0554 | v(4000000D): MOV R0, R0, DH |
| 0555 | v(81E00004): LDR R1, SP, 4H |
| 0556 | v(A0100000): STR R0, R1, 0H |
| ELSE (* ? @ *) Textsw.Read(R,x ch)y;z sym := null |
| 0557 | w(E700000A): B 10 [0562H] |
| 0558 | x .FIXUP D |
| 0558 | x(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 0559 | x(40D80138): ADD R0, SB, 138H [data] |
| 055A | x .FIXUP D |
| 055A | x(8D100002): LDR SB, MT, MOD1 [Texts] |
| 055B | x(41D80002): ADD R1, SB, VAR2 |
| 055C | y .FIXUP D |
| 055C | y(8D000002): LDR SB, MT, MOD0 [ORS] |
| 055D | y(42D80130): ADD R2, SB, 130H [data] |
| 055E | z .FIXUP P |
| 055E | z(F711300F): BL MOD1 [Texts] PROC19 |
| ENDa |
| 055F | a(40000000): MOV R0, R0, 0H |
| 0560 | a(81E00004): LDR R1, SP, 4H |
| 0561 | a(A0100000): STR R0, R1, 0H |
| ELSIF chb < "[" THENc Identifier(sym)d |
| 0562 | b(E7000067): B 103 [05CAH] |
| 0563 | c .FIXUP D |
| 0563 | c(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0564 | c(90D00130): LDR R0, SB, 130H [data] |
| 0565 | c(4009005B): SUB R0, R0, 5BH |
| 0566 | c(ED000003): BGE 3 [056AH] |
| 0567 | d(80E00004): LDR R0, SP, 4H |
| ELSIFe chf < "a" THENg |
| 0568 | e(F7FFFAF2): BL -1294 [005BH] |
| 0569 | f(E7000060): B 96 [05CAH] |
| 056A | g .FIXUP D |
| 056A | g(8D000007): LDR SB, MT, MOD0 [ORS] |
| 056B | g(90D00130): LDR R0, SB, 130H [data] |
| 056C | g(40090061): SUB R0, R0, 61H |
| 056D | g(ED000023): BGE 35 [0591H] |
| IF ch = "[" THENh sym := lbrak |
| 056E | h .FIXUP D |
| 056E | h(8D000004): LDR SB, MT, MOD0 [ORS] |
| 056F | h(90D00130): LDR R0, SB, 130H [data] |
| 0570 | h(4009005B): SUB R0, R0, 5BH |
| 0571 | h(E9000004): BNE 4 [0576H] |
| ELSIFi chj = "]" THENk sym := rbrak |
| 0572 | i(4000001D): MOV R0, R0, 1DH |
| 0573 | i(81E00004): LDR R1, SP, 4H |
| 0574 | i(A0100000): STR R0, R1, 0H |
| 0575 | j(E7000013): B 19 [0589H] |
| 0576 | k .FIXUP D |
| 0576 | k(8D000008): LDR SB, MT, MOD0 [ORS] |
| 0577 | k(90D00130): LDR R0, SB, 130H [data] |
| 0578 | k(4009005D): SUB R0, R0, 5DH |
| 0579 | k(E9000004): BNE 4 [057EH] |
| ELSIFl chm = "^" THENn sym := arrow |
| 057A | l(4000002D): MOV R0, R0, 2DH |
| 057B | l(81E00004): LDR R1, SP, 4H |
| 057C | l(A0100000): STR R0, R1, 0H |
| 057D | m(E700000B): B 11 [0589H] |
| 057E | n .FIXUP D |
| 057E | n(8D000008): LDR SB, MT, MOD0 [ORS] |
| 057F | n(90D00130): LDR R0, SB, 130H [data] |
| 0580 | n(4009005E): SUB R0, R0, 5EH |
| 0581 | n(E9000004): BNE 4 [0586H] |
| ELSEo (* _ ` *) symp := null |
| 0582 | o(40000011): MOV R0, R0, 11H |
| 0583 | o(81E00004): LDR R1, SP, 4H |
| 0584 | o(A0100000): STR R0, R1, 0H |
| 0585 | p(E7000003): B 3 [0589H] |
| ENDq ; |
| 0586 | q(40000000): MOV R0, R0, 0H |
| 0587 | q(81E00004): LDR R1, SP, 4H |
| 0588 | q(A0100000): STR R0, R1, 0H |
| Texts.Read(R,r ch)s |
| 0589 | r .FIXUP D |
| 0589 | r(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 058A | r(40D80138): ADD R0, SB, 138H [data] |
| 058B | r .FIXUP D |
| 058B | r(8D100002): LDR SB, MT, MOD1 [Texts] |
| 058C | r(41D80002): ADD R1, SB, VAR2 |
| 058D | s .FIXUP D |
| 058D | s(8D000002): LDR SB, MT, MOD0 [ORS] |
| 058E | s(42D80130): ADD R2, SB, 130H [data] |
| ELSIFt chu < "{" THENv Identifier(sym)w ELSEx |
| 058F | t .FIXUP P |
| 058F | t(F7113031): BL MOD1 [Texts] PROC19 |
| 0590 | u(E7000039): B 57 [05CAH] |
| 0591 | v .FIXUP D |
| 0591 | v(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0592 | v(90D00130): LDR R0, SB, 130H [data] |
| 0593 | v(4009007B): SUB R0, R0, 7BH |
| 0594 | v(ED000003): BGE 3 [0598H] |
| 0595 | w(80E00004): LDR R0, SP, 4H |
| 0596 | x(F7FFFAC4): BL -1340 [005BH] |
| IFy ch = "{" THENz sym := lbrace |
| 0597 | y(E7000032): B 50 [05CAH] |
| 0598 | z .FIXUP D |
| 0598 | z(8D000007): LDR SB, MT, MOD0 [ORS] |
| 0599 | z(90D00130): LDR R0, SB, 130H [data] |
| 059A | z(4009007B): SUB R0, R0, 7BH |
| 059B | z(E9000004): BNE 4 [05A0H] |
| ELSIFa chb = "}" THENc sym := rbrace |
| 059C | a(4000001E): MOV R0, R0, 1EH |
| 059D | a(81E00004): LDR R1, SP, 4H |
| 059E | a(A0100000): STR R0, R1, 0H |
| 059F | b(E7000023): B 35 [05C3H] |
| 05A0 | c .FIXUP D |
| 05A0 | c(8D000008): LDR SB, MT, MOD0 [ORS] |
| 05A1 | c(90D00130): LDR R0, SB, 130H [data] |
| 05A2 | c(4009007D): SUB R0, R0, 7DH |
| 05A3 | c(E9000004): BNE 4 [05A8H] |
| ELSIFd che = "|" THENf sym := bar |
| 05A4 | d(4000002E): MOV R0, R0, 2EH |
| 05A5 | d(81E00004): LDR R1, SP, 4H |
| 05A6 | d(A0100000): STR R0, R1, 0H |
| 05A7 | e(E700001B): B 27 [05C3H] |
| 05A8 | f .FIXUP D |
| 05A8 | f(8D000008): LDR SB, MT, MOD0 [ORS] |
| 05A9 | f(90D00130): LDR R0, SB, 130H [data] |
| 05AA | f(4009007C): SUB R0, R0, 7CH |
| 05AB | f(E9000004): BNE 4 [05B0H] |
| ELSIFg chh = "~" THENi sym := not |
| 05AC | g(40000036): MOV R0, R0, 36H |
| 05AD | g(81E00004): LDR R1, SP, 4H |
| 05AE | g(A0100000): STR R0, R1, 0H |
| 05AF | h(E7000013): B 19 [05C3H] |
| 05B0 | i .FIXUP D |
| 05B0 | i(8D000008): LDR SB, MT, MOD0 [ORS] |
| 05B1 | i(90D00130): LDR R0, SB, 130H [data] |
| 05B2 | i(4009007E): SUB R0, R0, 7EH |
| 05B3 | i(E9000004): BNE 4 [05B8H] |
| ELSIFj chk = 7FX THENl sym := upto |
| 05B4 | j(4000001B): MOV R0, R0, 1BH |
| 05B5 | j(81E00004): LDR R1, SP, 4H |
| 05B6 | j(A0100000): STR R0, R1, 0H |
| 05B7 | k(E700000B): B 11 [05C3H] |
| 05B8 | l .FIXUP D |
| 05B8 | l(8D000008): LDR SB, MT, MOD0 [ORS] |
| 05B9 | l(90D00130): LDR R0, SB, 130H [data] |
| 05BA | l(4009007F): SUB R0, R0, 7FH |
| 05BB | l(E9000004): BNE 4 [05C0H] |
| ELSEm symn := null |
| 05BC | m(4000002B): MOV R0, R0, 2BH |
| 05BD | m(81E00004): LDR R1, SP, 4H |
| 05BE | m(A0100000): STR R0, R1, 0H |
| 05BF | n(E7000003): B 3 [05C3H] |
| ENDo ; |
| 05C0 | o(40000000): MOV R0, R0, 0H |
| 05C1 | o(81E00004): LDR R1, SP, 4H |
| 05C2 | o(A0100000): STR R0, R1, 0H |
| Texts.Read(R,p ch)q |
| 05C3 | p .FIXUP D |
| 05C3 | p(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 05C4 | p(40D80138): ADD R0, SB, 138H [data] |
| 05C5 | p .FIXUP D |
| 05C5 | p(8D100002): LDR SB, MT, MOD1 [Texts] |
| 05C6 | p(41D80002): ADD R1, SB, VAR2 |
| 05C7 | q .FIXUP D |
| 05C7 | q(8D000002): LDR SB, MT, MOD0 [ORS] |
| 05C8 | q(42D80130): ADD R2, SB, 130H [data] |
| ENDr |
| 05C9 | r .FIXUP P |
| 05C9 | r(F711303A): BL MOD1 [Texts] PROC19 |
| UNTIL sym # null |
| ENDs Get; |
| 05CA | s(80E00004): LDR R0, SP, 4H |
| 05CB | s(80000000): LDR R0, R0, 0H |
| 05CC | s(E1FFFE23): BEQ -477 [03F0H] |
| 05CD | s(8FE00000): LDR LNK, SP, 0H |
| 05CE | s(4EE80008): ADD SP, SP, 8H |
| 05CF | s(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 |
| 05D0 | t .PROC 11 |
| 05D0 | t(4EE9000C): SUB SP, SP, CH |
| 05D1 | t(AFE00000): STR LNK, SP, 0H |
| 05D2 | t(A0E00004): STR R0, SP, 4H |
| 05D3 | t(A1E00008): STR R1, SP, 8H |
| 05D4 | u(80E00008): LDR R0, SP, 8H |
| 05D5 | u .FIXUP D |
| 05D5 | u(8D00000E): LDR SB, MT, MOD0 [ORS] |
| 05D6 | u(A0D00134): STR R0, SB, 134H [data] |
| 05D7 | v(40000000): MOV R0, R0, 0H |
| 05D8 | v(A0D0012C): STR R0, SB, 12CH |
| 05D9 | w(40D80138): ADD R0, SB, 138H |
| 05DA | w .FIXUP D |
| 05DA | w(8D100005): LDR SB, MT, MOD1 [Texts] |
| 05DB | w(41D80002): ADD R1, SB, VAR2 |
| 05DC | x(82E00004): LDR R2, SP, 4H |
| 05DD | y(83E00008): LDR R3, SP, 8H |
| 05DE | z .FIXUP P |
| 05DE | z(F7112015): BL MOD1 [Texts] PROC18 |
| 05DF | a .FIXUP D |
| 05DF | a(8D000005): LDR SB, MT, MOD0 [ORS] |
| 05E0 | a(40D80138): ADD R0, SB, 138H [data] |
| 05E1 | a .FIXUP D |
| 05E1 | a(8D100002): LDR SB, MT, MOD1 [Texts] |
| 05E2 | a(41D80002): ADD R1, SB, VAR2 |
| 05E3 | b .FIXUP D |
| 05E3 | b(8D000002): LDR SB, MT, MOD0 [ORS] |
| 05E4 | b(42D80130): ADD R2, SB, 130H [data] |
| ENDc Init; |
| 05E5 | c .FIXUP P |
| 05E5 | c(F7113007): BL MOD1 [Texts] PROC19 |
| 05E6 | c(8FE00000): LDR LNK, SP, 0H |
| 05E7 | c(4EE8000C): ADD SP, SP, CH |
| 05E8 | c(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) |
| 05E9 | d(4EE90010): SUB SP, SP, 10H |
| 05EA | d(AFE00000): STR LNK, SP, 0H |
| 05EB | d(A0E00004): STR R0, SP, 4H |
| 05EC | d(A1E00008): STR R1, SP, 8H |
| 05ED | d(A2E0000C): STR R2, SP, CH |
| 05EE | e .FIXUP D |
| 05EE | e(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 05EF | e(80D00194): LDR R0, SB, 194H [data] |
| 05F0 | e(41090022): SUB R1, R0, 22H |
| 05F1 | e(DA26911C): BLCC MT [trap=1, pos=9873] |
| 05F2 | e(400A0010): MUL R0, R0, 10H |
| 05F3 | e(00D80000): ADD R0, SB, R0 |
| 05F4 | f(400801C4): ADD R0, R0, 1C4H |
| 05F5 | f(81E00008): LDR R1, SP, 8H |
| 05F6 | f(82E0000C): LDR R2, SP, CH |
| 05F7 | f(E100000B): BEQ 11 [0603H] |
| 05F8 | f(42280003): ADD R2, R2, 3H |
| 05F9 | f(42220002): ASR R2, R2, 2H |
| 05FA | f(43000003): MOV R3, R0, 3H |
| 05FB | f(03290003): SUB R3, R2, R3 |
| 05FC | f(DE269D3C): BLGT MT [trap=3, pos=9885] |
| 05FD | f(83100000): LDR R3, R1, 0H |
| 05FE | f(41180004): ADD R1, R1, 4H |
| 05FF | f(A3000000): STR R3, R0, 0H |
| 0600 | f(40080004): ADD R0, R0, 4H |
| 0601 | f(42290001): SUB R2, R2, 1H |
| 0602 | f(E9FFFFFA): BNE -6 [05FDH] |
| 0603 | g(80D00194): LDR R0, SB, 194H |
| 0604 | g(41090022): SUB R1, R0, 22H |
| 0605 | g(DA26A71C): BLCC MT [trap=1, pos=9895] |
| 0606 | g(400A0010): MUL R0, R0, 10H |
| 0607 | g(00D80000): ADD R0, SB, R0 |
| 0608 | h(81E00004): LDR R1, SP, 4H |
| 0609 | h(A10001C0): STR R1, R0, 1C0H |
| ENDi EnterKW; |
| 060A | i(40D80194): ADD R0, SB, 194H |
| 060B | i(81000000): LDR R1, R0, 0H |
| 060C | i(41180001): ADD R1, R1, 1H |
| 060D | i(A1000000): STR R1, R0, 0H |
| 060E | i(8FE00000): LDR LNK, SP, 0H |
| 060F | i(4EE80010): ADD SP, SP, 10H |
| 0610 | i(C700000F): B LNK |
| |
| BEGINj Texts.OpenWriter(W)k;l k := 0;m KWX[0] := 0;n KWX[1] := 0;o |
| 0611 | j .PROC 0 |
| 0611 | j .ENTRYPOINT |
| 0611 | j(4EE90004): SUB SP, SP, 4H |
| 0612 | j(AFE00000): STR LNK, SP, 0H |
| 0613 | k .FIXUP D |
| 0613 | k(8D000025): LDR SB, MT, MOD0 [ORS] |
| 0614 | k(40D8016C): ADD R0, SB, 16CH [data] |
| 0615 | k .FIXUP D |
| 0615 | k(8D100002): LDR SB, MT, MOD1 [Texts] |
| 0616 | k(41D80005): ADD R1, SB, VAR5 |
| 0617 | l .FIXUP P |
| 0617 | l(F7117032): BL MOD1 [Texts] PROC23 |
| 0618 | m(40000000): MOV R0, R0, 0H |
| 0619 | m .FIXUP D |
| 0619 | m(8D000004): LDR SB, MT, MOD0 [ORS] |
| 061A | m(A0D00194): STR R0, SB, 194H [data] |
| 061B | n(40000000): MOV R0, R0, 0H |
| 061C | n(A0D00198): STR R0, SB, 198H |
| 061D | o(40000000): MOV R0, R0, 0H |
| 061E | o(A0D0019C): STR R0, SB, 19CH |
| EnterKW(if,p "IF")q;r |
| 061F | p(40000020): MOV R0, R0, 20H |
| 0620 | q(41D804A4): ADD R1, SB, 4A4H |
| 0621 | q(42000003): MOV R2, R0, 3H |
| 0622 | r(F7FFFFC6): BL -58 [05E9H] |
| EnterKW(do,s "DO")t;u |
| 0623 | s(40000031): MOV R0, R0, 31H |
| 0624 | t .FIXUP D |
| 0624 | t(8D00000B): LDR SB, MT, MOD0 [ORS] |
| 0625 | t(41D804A8): ADD R1, SB, 4A8H ["DO"] |
| 0626 | t(42000003): MOV R2, R0, 3H |
| 0627 | u(F7FFFFC1): BL -63 [05E9H] |
| EnterKW(of,v "OF")w;x |
| 0628 | v(40000030): MOV R0, R0, 30H |
| 0629 | w .FIXUP D |
| 0629 | w(8D000005): LDR SB, MT, MOD0 [ORS] |
| 062A | w(41D804AC): ADD R1, SB, 4ACH ["OF"] |
| 062B | w(42000003): MOV R2, R0, 3H |
| 062C | x(F7FFFFBC): BL -68 [05E9H] |
| EnterKW(or,y "OR")z;a |
| 062D | y(40000008): MOV R0, R0, 8H |
| 062E | z .FIXUP D |
| 062E | z(8D000005): LDR SB, MT, MOD0 [ORS] |
| 062F | z(41D804B0): ADD R1, SB, 4B0H ["OR"] |
| 0630 | z(42000003): MOV R2, R0, 3H |
| 0631 | a(F7FFFFB7): BL -73 [05E9H] |
| EnterKW(to,b "TO")c;d |
| 0632 | b(40000032): MOV R0, R0, 32H |
| 0633 | c .FIXUP D |
| 0633 | c(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0634 | c(41D804B4): ADD R1, SB, 4B4H ["TO"] |
| 0635 | c(42000003): MOV R2, R0, 3H |
| 0636 | d(F7FFFFB2): BL -78 [05E9H] |
| EnterKW(in,e "IN")f;g |
| 0637 | e(4000000F): MOV R0, R0, FH |
| 0638 | f .FIXUP D |
| 0638 | f(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0639 | f(41D804B8): ADD R1, SB, 4B8H ["IN"] |
| 063A | f(42000003): MOV R2, R0, 3H |
| 063B | g(F7FFFFAD): BL -83 [05E9H] |
| EnterKW(is,h "IS")i;j |
| 063C | h(40000010): MOV R0, R0, 10H |
| 063D | i .FIXUP D |
| 063D | i(8D000005): LDR SB, MT, MOD0 [ORS] |
| 063E | i(41D804BC): ADD R1, SB, 4BCH ["IS"] |
| 063F | i(42000003): MOV R2, R0, 3H |
| 0640 | j(F7FFFFA8): BL -88 [05E9H] |
| EnterKW(by,k "BY")l;m |
| 0641 | k(40000033): MOV R0, R0, 33H |
| 0642 | l .FIXUP D |
| 0642 | l(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0643 | l(41D804C0): ADD R1, SB, 4C0H ["BY"] |
| 0644 | l(42000003): MOV R2, R0, 3H |
| 0645 | m(F7FFFFA3): BL -93 [05E9H] |
| KWX[2] := k;n |
| 0646 | n .FIXUP D |
| 0646 | n(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0647 | n(80D00194): LDR R0, SB, 194H [data] |
| 0648 | n(A0D001A0): STR R0, SB, 1A0H |
| EnterKW(end,o "END")p;q |
| 0649 | o(40000035): MOV R0, R0, 35H |
| 064A | p(41D804C4): ADD R1, SB, 4C4H |
| 064B | p(42000004): MOV R2, R0, 4H |
| 064C | q(F7FFFF9C): BL -100 [05E9H] |
| EnterKW(nil,r "NIL")s;t |
| 064D | r(40000019): MOV R0, R0, 19H |
| 064E | s .FIXUP D |
| 064E | s(8D000008): LDR SB, MT, MOD0 [ORS] |
| 064F | s(41D804C8): ADD R1, SB, 4C8H ["NIL"] |
| 0650 | s(42000004): MOV R2, R0, 4H |
| 0651 | t(F7FFFF97): BL -105 [05E9H] |
| EnterKW(var,u "VAR")v;w |
| 0652 | u(40000041): MOV R0, R0, 41H |
| 0653 | v .FIXUP D |
| 0653 | v(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0654 | v(41D804CC): ADD R1, SB, 4CCH ["VAR"] |
| 0655 | v(42000004): MOV R2, R0, 4H |
| 0656 | w(F7FFFF92): BL -110 [05E9H] |
| EnterKW(div,x "DIV")y;z |
| 0657 | x(40000003): MOV R0, R0, 3H |
| 0658 | y .FIXUP D |
| 0658 | y(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0659 | y(41D804D0): ADD R1, SB, 4D0H ["DIV"] |
| 065A | y(42000004): MOV R2, R0, 4H |
| 065B | z(F7FFFF8D): BL -115 [05E9H] |
| EnterKW(mod,a "MOD")b;c |
| 065C | a(40000004): MOV R0, R0, 4H |
| 065D | b .FIXUP D |
| 065D | b(8D000005): LDR SB, MT, MOD0 [ORS] |
| 065E | b(41D804D4): ADD R1, SB, 4D4H ["MOD"] |
| 065F | b(42000004): MOV R2, R0, 4H |
| 0660 | c(F7FFFF88): BL -120 [05E9H] |
| EnterKW(for,d "FOR")e;f |
| 0661 | d(40000025): MOV R0, R0, 25H |
| 0662 | e .FIXUP D |
| 0662 | e(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0663 | e(41D804D8): ADD R1, SB, 4D8H ["FOR"] |
| 0664 | e(42000004): MOV R2, R0, 4H |
| 0665 | f(F7FFFF83): BL -125 [05E9H] |
| KWX[3] := k;g |
| 0666 | g .FIXUP D |
| 0666 | g(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0667 | g(80D00194): LDR R0, SB, 194H [data] |
| 0668 | g(A0D001A4): STR R0, SB, 1A4H |
| EnterKW(else,h "ELSE")i;j |
| 0669 | h(40000037): MOV R0, R0, 37H |
| 066A | i(41D804DC): ADD R1, SB, 4DCH |
| 066B | i(42000005): MOV R2, R0, 5H |
| 066C | j(F7FFFF7C): BL -132 [05E9H] |
| EnterKW(then,k "THEN")l;m |
| 066D | k(4000002F): MOV R0, R0, 2FH |
| 066E | l .FIXUP D |
| 066E | l(8D000008): LDR SB, MT, MOD0 [ORS] |
| 066F | l(41D804E4): ADD R1, SB, 4E4H ["THEN"] |
| 0670 | l(42000005): MOV R2, R0, 5H |
| 0671 | m(F7FFFF77): BL -137 [05E9H] |
| EnterKW(true,n "TRUE")o;p |
| 0672 | n(40000018): MOV R0, R0, 18H |
| 0673 | o .FIXUP D |
| 0673 | o(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0674 | o(41D804EC): ADD R1, SB, 4ECH ["TRUE"] |
| 0675 | o(42000005): MOV R2, R0, 5H |
| 0676 | p(F7FFFF72): BL -142 [05E9H] |
| EnterKW(type,q "TYPE")r;s |
| 0677 | q(40000040): MOV R0, R0, 40H |
| 0678 | r .FIXUP D |
| 0678 | r(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0679 | r(41D804F4): ADD R1, SB, 4F4H ["TYPE"] |
| 067A | r(42000005): MOV R2, R0, 5H |
| 067B | s(F7FFFF6D): BL -147 [05E9H] |
| EnterKW(case,t "CASE")u;v |
| 067C | t(40000024): MOV R0, R0, 24H |
| 067D | u .FIXUP D |
| 067D | u(8D000005): LDR SB, MT, MOD0 [ORS] |
| 067E | u(41D804FC): ADD R1, SB, 4FCH ["CASE"] |
| 067F | u(42000005): MOV R2, R0, 5H |
| 0680 | v(F7FFFF68): BL -152 [05E9H] |
| KWX[4] := k;w |
| 0681 | w .FIXUP D |
| 0681 | w(8D000004): LDR SB, MT, MOD0 [ORS] |
| 0682 | w(80D00194): LDR R0, SB, 194H [data] |
| 0683 | w(A0D001A8): STR R0, SB, 1A8H |
| EnterKW(elsif,x "ELSIF")y;z |
| 0684 | x(40000038): MOV R0, R0, 38H |
| 0685 | y(41D80504): ADD R1, SB, 504H |
| 0686 | y(42000006): MOV R2, R0, 6H |
| 0687 | z(F7FFFF61): BL -159 [05E9H] |
| EnterKW(false,a "FALSE")b;c |
| 0688 | a(40000017): MOV R0, R0, 17H |
| 0689 | b .FIXUP D |
| 0689 | b(8D000008): LDR SB, MT, MOD0 [ORS] |
| 068A | b(41D8050C): ADD R1, SB, 50CH ["FALSE"] |
| 068B | b(42000006): MOV R2, R0, 6H |
| 068C | c(F7FFFF5C): BL -164 [05E9H] |
| EnterKW(array,d "ARRAY")e;f |
| 068D | d(4000003C): MOV R0, R0, 3CH |
| 068E | e .FIXUP D |
| 068E | e(8D000005): LDR SB, MT, MOD0 [ORS] |
| 068F | e(41D80514): ADD R1, SB, 514H ["ARRAY"] |
| 0690 | e(42000006): MOV R2, R0, 6H |
| 0691 | f(F7FFFF57): BL -169 [05E9H] |
| EnterKW(begin,g "BEGIN")h;i |
| 0692 | g(40000043): MOV R0, R0, 43H |
| 0693 | h .FIXUP D |
| 0693 | h(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0694 | h(41D8051C): ADD R1, SB, 51CH ["BEGIN"] |
| 0695 | h(42000006): MOV R2, R0, 6H |
| 0696 | i(F7FFFF52): BL -174 [05E9H] |
| EnterKW(const,j "CONST")k;l |
| 0697 | j(4000003F): MOV R0, R0, 3FH |
| 0698 | k .FIXUP D |
| 0698 | k(8D000005): LDR SB, MT, MOD0 [ORS] |
| 0699 | k(41D80524): ADD R1, SB, 524H ["CONST"] |
| 069A | k(42000006): MOV R2, R0, 6H |
| 069B | l(F7FFFF4D): BL -179 [05E9H] |
| EnterKW(until,m "UNTIL")n;o |
| 069C | m(40000039): MOV R0, R0, 39H |
| 069D | n .FIXUP D |
| 069D | n(8D000005): LDR SB, MT, MOD0 [ORS] |
| 069E | n(41D8052C): ADD R1, SB, 52CH ["UNTIL"] |
| 069F | n(42000006): MOV R2, R0, 6H |
| 06A0 | o(F7FFFF48): BL -184 [05E9H] |
| EnterKW(while,p "WHILE")q;r |
| 06A1 | p(40000022): MOV R0, R0, 22H |
| 06A2 | q .FIXUP D |
| 06A2 | q(8D000005): LDR SB, MT, MOD0 [ORS] |
| 06A3 | q(41D80534): ADD R1, SB, 534H ["WHILE"] |
| 06A4 | q(42000006): MOV R2, R0, 6H |
| 06A5 | r(F7FFFF43): BL -189 [05E9H] |
| KWX[5] := k;s |
| 06A6 | s .FIXUP D |
| 06A6 | s(8D000004): LDR SB, MT, MOD0 [ORS] |
| 06A7 | s(80D00194): LDR R0, SB, 194H [data] |
| 06A8 | s(A0D001AC): STR R0, SB, 1ACH |
| EnterKW(record,t "RECORD")u;v |
| 06A9 | t(4000003D): MOV R0, R0, 3DH |
| 06AA | u(41D8053C): ADD R1, SB, 53CH |
| 06AB | u(42000007): MOV R2, R0, 7H |
| 06AC | v(F7FFFF3C): BL -196 [05E9H] |
| EnterKW(repeat,w "REPEAT")x;y |
| 06AD | w(40000023): MOV R0, R0, 23H |
| 06AE | x .FIXUP D |
| 06AE | x(8D000008): LDR SB, MT, MOD0 [ORS] |
| 06AF | x(41D80544): ADD R1, SB, 544H ["REPEAT"] |
| 06B0 | x(42000007): MOV R2, R0, 7H |
| 06B1 | y(F7FFFF37): BL -201 [05E9H] |
| EnterKW(return,z "RETURN")a;b |
| 06B2 | z(4000003A): MOV R0, R0, 3AH |
| 06B3 | a .FIXUP D |
| 06B3 | a(8D000005): LDR SB, MT, MOD0 [ORS] |
| 06B4 | a(41D8054C): ADD R1, SB, 54CH ["RETURN"] |
| 06B5 | a(42000007): MOV R2, R0, 7H |
| 06B6 | b(F7FFFF32): BL -206 [05E9H] |
| EnterKW(import,c "IMPORT")d;e |
| 06B7 | c(40000044): MOV R0, R0, 44H |
| 06B8 | d .FIXUP D |
| 06B8 | d(8D000005): LDR SB, MT, MOD0 [ORS] |
| 06B9 | d(41D80554): ADD R1, SB, 554H ["IMPORT"] |
| 06BA | d(42000007): MOV R2, R0, 7H |
| 06BB | e(F7FFFF2D): BL -211 [05E9H] |
| EnterKW(module,f "MODULE")g;h |
| 06BC | f(40000045): MOV R0, R0, 45H |
| 06BD | g .FIXUP D |
| 06BD | g(8D000005): LDR SB, MT, MOD0 [ORS] |
| 06BE | g(41D8055C): ADD R1, SB, 55CH ["MODULE"] |
| 06BF | g(42000007): MOV R2, R0, 7H |
| 06C0 | h(F7FFFF28): BL -216 [05E9H] |
| KWX[6] := k;i |
| 06C1 | i .FIXUP D |
| 06C1 | i(8D000004): LDR SB, MT, MOD0 [ORS] |
| 06C2 | i(80D00194): LDR R0, SB, 194H [data] |
| 06C3 | i(A0D001B0): STR R0, SB, 1B0H |
| EnterKW(pointer,j "POINTER")k;l |
| 06C4 | j(4000003E): MOV R0, R0, 3EH |
| 06C5 | k(41D80564): ADD R1, SB, 564H |
| 06C6 | k(42000008): MOV R2, R0, 8H |
| 06C7 | l(F7FFFF21): BL -223 [05E9H] |
| KWX[7] := k;m KWX[8] := k;n |
| 06C8 | m .FIXUP D |
| 06C8 | m(8D000007): LDR SB, MT, MOD0 [ORS] |
| 06C9 | m(80D00194): LDR R0, SB, 194H [data] |
| 06CA | m(A0D001B4): STR R0, SB, 1B4H |
| 06CB | n(80D00194): LDR R0, SB, 194H |
| 06CC | n(A0D001B8): STR R0, SB, 1B8H |
| EnterKW(procedure,o "PROCEDURE")p;q |
| 06CD | o(40000042): MOV R0, R0, 42H |
| 06CE | p(41D8056C): ADD R1, SB, 56CH |
| 06CF | p(4200000A): MOV R2, R0, AH |
| 06D0 | q(F7FFFF18): BL -232 [05E9H] |
| KWX[9] := k |
| ENDr ORS.s |
| 06D1 | r .FIXUP D |
| 06D1 | r(8D000009): LDR SB, MT, MOD0 [ORS] |
| 06D2 | r(80D00194): LDR R0, SB, 194H [data] |
| 06D3 | r(A0D001BC): STR R0, SB, 1BCH |
| 06D4 | s(8FE00000): LDR LNK, SP, 0H |
| 06D5 | s(4EE80004): ADD SP, SP, 4H |
| 06D6 | s(C700000F): B LNK |