| MODULE ORB; (*NW 25.6.2014 / 19.4.2017 in Oberon-07*) |
| .MODULE ORB (KEY 8A2CD362, VERSION 1, SIZE 000028F0) |
| .IMPORT Files (KEY 73F5D686) |
| .IMPORT ORS (KEY 76547166) |
| .IMPORT Texts (KEY 0B9E9984) |
| .TYPEDESC 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 00000010 0000000C 00000008 FFFFFFFF 00000080 00020009 FFFFFFFF FFFFFFFF 00000010 0000000C 00000008 FFFFFFFF 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 0000001C 00000018 00000014 FFFFFFFF |
| .DATA 138H |
| .STRING 198H "mult def" |
| .STRING 1A4H "invalid import order" |
| .STRING 1BCH "SYSTEM" |
| .STRING 1C4H ".smb" |
| .STRING 1CCH "wrong version" |
| .STRING 1DCH "import not available" |
| .STRING 1F4H "re-export not found" |
| .STRING 208H ".smb" |
| .STRING 210H "new symbol file inhibited" |
| .STRING 22CH "UML" |
| .STRING 230H "SBC" |
| .STRING 234H "ADC" |
| .STRING 238H "ROR" |
| .STRING 23CH "ASR" |
| .STRING 240H "LSL" |
| .STRING 244H "LEN" |
| .STRING 248H "CHR" |
| .STRING 24CH "ORD" |
| .STRING 250H "FLT" |
| .STRING 254H "FLOOR" |
| .STRING 25CH "ODD" |
| .STRING 260H "ABS" |
| .STRING 264H "LED" |
| .STRING 268H "UNPK" |
| .STRING 270H "PACK" |
| .STRING 278H "NEW" |
| .STRING 27CH "ASSERT" |
| .STRING 284H "EXCL" |
| .STRING 28CH "INCL" |
| .STRING 294H "DEC" |
| .STRING 298H "INC" |
| .STRING 29CH "SET" |
| .STRING 2A0H "BOOLEAN" |
| .STRING 2A8H "BYTE" |
| .STRING 2B0H "CHAR" |
| .STRING 2B8H "LONGREAL" |
| .STRING 2C4H "REAL" |
| .STRING 2CCH "LONGINT" |
| .STRING 2D4H "INTEGER" |
| .STRING 2DCH "H" |
| .STRING 2E0H "COND" |
| .STRING 2E8H "SIZE" |
| .STRING 2F0H "ADR" |
| .STRING 2F4H "VAL" |
| .STRING 2F8H "REG" |
| .STRING 2FCH "BIT" |
| .STRING 300H "LDREG" |
| .STRING 308H "LDPSR" |
| .STRING 310H "COPY" |
| .STRING 318H "PUT" |
| .STRING 31CH "GET" |
| .POINTER_REFERENCES 60H 64H 68H 6CH 70H 74H 78H 7CH 80H 84H 88H 8CH 98H 9CH A0H A4H A8H ACH B0H B4H B8H BCH C0H C4H C8H CCH D0H D4H D8H DCH E0H E4H E8H ECH F0H F4H F8H FCH 100H 104H 108H 10CH 110H 114H 118H 11CH 120H 124H 128H 12CH 130H 134H 138H 13CH 140H 144H 148H 14CH 150H 154H 158H 15CH 160H 164H 168H 16CH 170H 174H 178H 17CH 180H 184H 188H 18CH 190H 194H |
| .FIXUP T 9H |
| IMPORT Files, ORS; |
| (*Definition of data types Object and Type, which together form the data structure |
| called "symbol table". Contains procedures for creation of Objects, and for search: |
| NewObj, this, thisimport, thisfield (and OpenScope, CloseScope). |
| Handling of import and export, i.e. reading and writing of "symbol files" is done by procedures |
| Import and Export. This module contains the list of standard identifiers, with which |
| the symbol table (universe), and that of the pseudo-module SYSTEM are initialized. *) |
| |
| CONST versionkey* = 1; maxTypTab = 64; |
| (* class values*) Head* = 0; |
| Const* = 1; Var* = 2; Par* = 3; Fld* = 4; Typ* = 5; |
| SProc* = 6; SFunc* = 7; Mod* = 8; |
| |
| (* form values*) |
| Byte* = 1; Bool* = 2; Char* = 3; Int* = 4; Real* = 5; Set* = 6; |
| Pointer* = 7; NilTyp* = 8; NoTyp* = 9; Proc* = 10; |
| String* = 11; Array* = 12; Record* = 13; |
| |
| TYPE Object* = POINTER TO ObjDesc; |
| Module* = POINTER TO ModDesc; |
| Type* = POINTER TO TypeDesc; |
| |
| ObjDesc*= RECORD |
| class*, exno*: BYTE; |
| expo*, rdo*: BOOLEAN; (*exported / read-only*) |
| lev*: INTEGER; |
| next*, dsc*: Object; |
| type*: Type; |
| name*: ORS.Ident; |
| val*: LONGINT |
| END ; |
| |
| ModDesc* = RECORD (ObjDesc) orgname*: ORS.Ident END ; |
| |
| TypeDesc* = RECORD |
| form*, ref*, mno*: INTEGER; (*ref is only used for import/export*) |
| nofpar*: INTEGER; (*for procedures, extension level for records*) |
| len*: LONGINT; (*for arrays, len < 0 => open array; for records: adr of descriptor*) |
| dsc*, typobj*: Object; |
| base*: Type; (*for arrays, records, pointers*) |
| size*: LONGINT; (*in bytes; always multiple of 4, except for Byte, Bool and Char*) |
| END ; |
| |
| (* Object classes and the meaning of "val": |
| class val |
| ---------- |
| Var address |
| Par address |
| Const value |
| Fld offset |
| Typ type descriptor (TD) address |
| SProc inline code number |
| SFunc inline code number |
| Mod key |
| |
| Type forms and the meaning of "dsc" and "base": |
| form dsc base |
| ------------------------ |
| Pointer - type of dereferenced object |
| Proc params result type |
| Array - type of elements |
| Record fields extension *) |
| |
| VAR topScope*, universe, system*: Object; |
| byteType*, boolType*, charType*: Type; |
| intType*, realType*, setType*, nilType*, noType*, strType*: Type; |
| nofmod, Ref: INTEGER; |
| typtab: ARRAY maxTypTab OF Type; |
| |
| PROCEDURE NewObj*(VAR obj: Object; id: ORS.Ident; class: INTEGER); (*insert new Object with name id*) |
| VAR new, x: Object; |
| BEGINa x := topScope;b |
0000 | a .PROC 1 |
0000 | a .PROC 15 |
0000 | a(4EE90018): SUB SP, SP, 18H |
0001 | a(AFE00000): STR LNK, SP, 0H |
0002 | a(A0E00004): STR R0, SP, 4H |
0003 | a(A1E00008): STR R1, SP, 8H |
0004 | a(A2E0000C): STR R2, SP, CH |
0005 | b .FIXUP D |
0005 | b(8D000005): LDR SB, MT, MOD0 [ORB] |
0006 | b(80D00060): LDR R0, SB, 60H [data] |
0007 | b(A0E00014): STR R0, SP, 14H |
| WHILE (x.nextc # NIL)d & (ex.nextf.nameg # id)h DOi x := x.nextj ENDk ; |
0008 | c .PROC 2 |
0008 | c(80E00014): LDR R0, SP, 14H |
0009 | c(D10ABD4C): BLEQ MT [trap=4, pos=2749] |
000A | d(80000008): LDR R0, R0, 8H |
000B | e(E1000014): BEQ 20 [0020H] |
000C | f(80E00014): LDR R0, SP, 14H |
000D | f(D10ACE4C): BLEQ MT [trap=4, pos=2766] |
000E | g(80000008): LDR R0, R0, 8H |
000F | g(D10AD34C): BLEQ MT [trap=4, pos=2771] |
0010 | h .PROC 3 |
0010 | h(40080014): ADD R0, R0, 14H |
0011 | h(81E00008): LDR R1, SP, 8H |
0012 | h(92000000): LDR R2, R0, 0H |
0013 | h(40080001): ADD R0, R0, 1H |
0014 | h(93100000): LDR R3, R1, 0H |
0015 | h(41180001): ADD R1, R1, 1H |
0016 | h(04290003): SUB R4, R2, R3 |
0017 | h(E9000002): BNE 2 [001AH] |
0018 | h .PROC 4 |
0018 | h(44290000): SUB R4, R2, 0H |
0019 | h(E9FFFFF8): BNE -8 [0012H] |
001A | i .PROC 5 |
001A | i(E1000005): BEQ 5 [0020H] |
001B | j .PROC 6 |
001B | j(80E00014): LDR R0, SP, 14H |
001C | j .PROC 7 |
001C | j(D10AE84C): BLEQ MT [trap=4, pos=2792] |
001D | k .PROC 8 |
001D | k(80000008): LDR R0, R0, 8H |
001E | k .PROC 9 |
001E | k(A0E00014): STR R0, SP, 14H |
001F | k .PROC 10 |
001F | k(E7FFFFE8): B -24 [0008H] |
| IF x.nextl = NIL THENm |
0020 | l .PROC 11 |
0020 | l(80E00014): LDR R0, SP, 14H |
0021 | l .PROC 12 |
0021 | l(D10AFC4C): BLEQ MT [trap=4, pos=2812] |
0022 | m .PROC 13 |
0022 | m(80000008): LDR R0, R0, 8H |
0023 | m .PROC 14 |
0023 | m(E9000027): BNE 39 [004BH] |
| NEW(new);n new.nameo := id;p new.classq := class;r new.nexts := NIL;t new.rdou := FALSE;v new.dscw := NIL;x |
0024 | n(40E80010): ADD R0, SP, 10H |
0025 | n .FIXUP D |
0025 | n(8D000020): LDR SB, MT, MOD0 [ORB] |
0026 | n(41D80000): ADD R1, SB, 0H [data] |
0027 | n(D70B170C): BL MT [trap=0, pos=2839] |
0028 | o(80E00010): LDR R0, SP, 10H |
0029 | o(D10B204C): BLEQ MT [trap=4, pos=2848] |
002A | p(40080014): ADD R0, R0, 14H |
002B | p(81E00008): LDR R1, SP, 8H |
002C | p(42000008): MOV R2, R0, 8H |
002D | p(83100000): LDR R3, R1, 0H |
002E | p(41180004): ADD R1, R1, 4H |
002F | p(A3000000): STR R3, R0, 0H |
0030 | p(40080004): ADD R0, R0, 4H |
0031 | p(42290001): SUB R2, R2, 1H |
0032 | p(E9FFFFFA): BNE -6 [002DH] |
0033 | q(80E00010): LDR R0, SP, 10H |
0034 | q(D10B314C): BLEQ MT [trap=4, pos=2865] |
0035 | r(81E0000C): LDR R1, SP, CH |
0036 | r(B1000000): STR R1, R0, 0H |
0037 | s(80E00010): LDR R0, SP, 10H |
0038 | s(D10B444C): BLEQ MT [trap=4, pos=2884] |
0039 | t(41000000): MOV R1, R0, 0H |
003A | t(A1000008): STR R1, R0, 8H |
003B | u(80E00010): LDR R0, SP, 10H |
003C | u(D10B544C): BLEQ MT [trap=4, pos=2900] |
003D | v(41000000): MOV R1, R0, 0H |
003E | v(B1000003): STR R1, R0, 3H |
003F | w(80E00010): LDR R0, SP, 10H |
0040 | w(D10B664C): BLEQ MT [trap=4, pos=2918] |
0041 | x(41000000): MOV R1, R0, 0H |
0042 | x(A100000C): STR R1, R0, CH |
| x.nexty := new;z obj := new |
0043 | y(80E00014): LDR R0, SP, 14H |
0044 | y(D10B7B4C): BLEQ MT [trap=4, pos=2939] |
0045 | z(81E00010): LDR R1, SP, 10H |
0046 | z(A1000008): STR R1, R0, 8H |
| ELSEa objb := x.nextc;d ORS.Mark("mult def")e |
0047 | a(80E00010): LDR R0, SP, 10H |
0048 | a(81E00004): LDR R1, SP, 4H |
0049 | a(A0100000): STR R0, R1, 0H |
004A | b(E7000009): B 9 [0054H] |
004B | c(80E00014): LDR R0, SP, 14H |
004C | c(D10BA54C): BLEQ MT [trap=4, pos=2981] |
004D | d(80000008): LDR R0, R0, 8H |
004E | d(81E00004): LDR R1, SP, 4H |
004F | d(A0100000): STR R0, R1, 0H |
0050 | e .FIXUP D |
0050 | e(8D00002B): LDR SB, MT, MOD0 [ORB] |
0051 | e(40D80198): ADD R0, SB, 198H ["mult def"] |
0052 | e(41000009): MOV R1, R0, 9H |
| ENDf |
0053 | f .FIXUP P |
0053 | f(F7209053): BL MOD2 [ORS] PROC9 |
| ENDg NewObj; |
0054 | g(8FE00000): LDR LNK, SP, 0H |
0055 | g(4EE80018): ADD SP, SP, 18H |
0056 | g(C700000F): B LNK |
| |
| PROCEDURE thisObj*(): Object; |
| VAR s, x: Object; |
| BEGINh s := topScope;i |
0057 | h .PROC 16 |
0057 | h(4EE9000C): SUB SP, SP, CH |
0058 | h(AFE00000): STR LNK, SP, 0H |
0059 | i .FIXUP D |
0059 | i(8D000009): LDR SB, MT, MOD0 [ORB] |
005A | i(80D00060): LDR R0, SB, 60H [data] |
005B | i(A0E00004): STR R0, SP, 4H |
| REPEAT x := s.nextj;k |
005C | j(80E00004): LDR R0, SP, 4H |
005D | j(D10C374C): BLEQ MT [trap=4, pos=3127] |
005E | k(80000008): LDR R0, R0, 8H |
005F | k(A0E00008): STR R0, SP, 8H |
| WHILE (x # NIL)l & (mx.namen # ORS.id)o DOp x := x.nextq ENDr ; |
0060 | l(80E00008): LDR R0, SP, 8H |
0061 | m(E1000013): BEQ 19 [0075H] |
0062 | n(80E00008): LDR R0, SP, 8H |
0063 | n(D10C584C): BLEQ MT [trap=4, pos=3160] |
0064 | o(40080014): ADD R0, R0, 14H |
0065 | o .FIXUP D |
0065 | o(8D20000C): LDR SB, MT, MOD2 [ORS] |
0066 | o(41D80004): ADD R1, SB, VAR4 |
0067 | o(92000000): LDR R2, R0, 0H |
0068 | o(40080001): ADD R0, R0, 1H |
0069 | o(93100000): LDR R3, R1, 0H |
006A | o(41180001): ADD R1, R1, 1H |
006B | o(04290003): SUB R4, R2, R3 |
006C | o(E9000002): BNE 2 [006FH] |
006D | o(44290000): SUB R4, R2, 0H |
006E | o(E9FFFFF8): BNE -8 [0067H] |
006F | p(E1000005): BEQ 5 [0075H] |
0070 | q(80E00008): LDR R0, SP, 8H |
0071 | q(D10C714C): BLEQ MT [trap=4, pos=3185] |
0072 | r(80000008): LDR R0, R0, 8H |
0073 | r(A0E00008): STR R0, SP, 8H |
0074 | r(E7FFFFEB): B -21 [0060H] |
| s := s.dscs |
0075 | s(80E00004): LDR R0, SP, 4H |
0076 | s(D10C884C): BLEQ MT [trap=4, pos=3208] |
| UNTILt (x # NIL)u OR (vs = NIL)w;x |
0077 | t(8000000C): LDR R0, R0, CH |
0078 | t(A0E00004): STR R0, SP, 4H |
0079 | u(80E00008): LDR R0, SP, 8H |
007A | v(E9000002): BNE 2 [007DH] |
007B | w(80E00004): LDR R0, SP, 4H |
007C | x(E9FFFFDF): BNE -33 [005CH] |
| RETURN x |
| ENDy thisObj; |
007D | y(80E00008): LDR R0, SP, 8H |
007E | y(8FE00000): LDR LNK, SP, 0H |
007F | y(4EE8000C): ADD SP, SP, CH |
0080 | y(C700000F): B LNK |
| |
| PROCEDURE thisimport*(mod: Object): Object; |
| VAR obj: Object; |
| BEGINz |
0081 | z .PROC 17 |
0081 | z(4EE9000C): SUB SP, SP, CH |
0082 | z(AFE00000): STR LNK, SP, 0H |
0083 | z(A0E00004): STR R0, SP, 4H |
| IF mod.rdoa THENb |
0084 | a(80E00004): LDR R0, SP, 4H |
0085 | a(D10D214C): BLEQ MT [trap=4, pos=3361] |
0086 | b(90000003): LDR R0, R0, 3H |
0087 | b(E1000021): BEQ 33 [00A9H] |
| IF mod.namec[0] # 0X THENd |
0088 | c(80E00004): LDR R0, SP, 4H |
0089 | c(D10D384C): BLEQ MT [trap=4, pos=3384] |
008A | d(90000014): LDR R0, R0, 14H |
008B | d(E100001A): BEQ 26 [00A6H] |
| obj := mod.dsce;f |
008C | e(80E00004): LDR R0, SP, 4H |
008D | e(D10D5C4C): BLEQ MT [trap=4, pos=3420] |
008E | f(8000000C): LDR R0, R0, CH |
008F | f(A0E00008): STR R0, SP, 8H |
| WHILE (obj # NIL)g & (hobj.namei # ORS.id)j DOk obj := obj.nextl ENDm |
0090 | g(80E00008): LDR R0, SP, 8H |
0091 | h(E1000013): BEQ 19 [00A5H] |
0092 | i(80E00008): LDR R0, SP, 8H |
0093 | i(D10D834C): BLEQ MT [trap=4, pos=3459] |
0094 | j(40080014): ADD R0, R0, 14H |
0095 | j .FIXUP D |
0095 | j(8D200030): LDR SB, MT, MOD2 [ORS] |
0096 | j(41D80004): ADD R1, SB, VAR4 |
0097 | j(92000000): LDR R2, R0, 0H |
0098 | j(40080001): ADD R0, R0, 1H |
0099 | j(93100000): LDR R3, R1, 0H |
009A | j(41180001): ADD R1, R1, 1H |
009B | j(04290003): SUB R4, R2, R3 |
009C | j(E9000002): BNE 2 [009FH] |
009D | j(44290000): SUB R4, R2, 0H |
009E | j(E9FFFFF8): BNE -8 [0097H] |
009F | k(E1000005): BEQ 5 [00A5H] |
00A0 | l(80E00008): LDR R0, SP, 8H |
00A1 | l(D10DA04C): BLEQ MT [trap=4, pos=3488] |
00A2 | m(80000008): LDR R0, R0, 8H |
00A3 | m(A0E00008): STR R0, SP, 8H |
00A4 | m(E7FFFFEB): B -21 [0090H] |
| ELSE objn := NIL |
00A5 | n(E7000002): B 2 [00A8H] |
| ENDo |
00A6 | o(40000000): MOV R0, R0, 0H |
00A7 | o(A0E00008): STR R0, SP, 8H |
| ELSE objp := NIL |
00A8 | p(E7000002): B 2 [00ABH] |
| ENDq ; |
00A9 | q(40000000): MOV R0, R0, 0H |
00AA | q(A0E00008): STR R0, SP, 8H |
| RETURN obj |
| ENDr thisimport; |
00AB | r(80E00008): LDR R0, SP, 8H |
00AC | r(8FE00000): LDR LNK, SP, 0H |
00AD | r(4EE8000C): ADD SP, SP, CH |
00AE | r(C700000F): B LNK |
| |
| PROCEDURE thisfield*(rec: Type): Object; |
| VAR fld: Object; |
| BEGINs fld := rec.dsct;u |
00AF | s .PROC 18 |
00AF | s(4EE9000C): SUB SP, SP, CH |
00B0 | s(AFE00000): STR LNK, SP, 0H |
00B1 | s(A0E00004): STR R0, SP, 4H |
00B2 | t(80E00004): LDR R0, SP, 4H |
00B3 | t(D10E5B4C): BLEQ MT [trap=4, pos=3675] |
00B4 | u(80000014): LDR R0, R0, 14H |
00B5 | u(A0E00008): STR R0, SP, 8H |
| WHILE (fld # NIL)v & (wfld.namex # ORS.id)y DOz fld := fld.nexta ENDb ; |
00B6 | v(80E00008): LDR R0, SP, 8H |
00B7 | w(E1000013): BEQ 19 [00CBH] |
00B8 | x(80E00008): LDR R0, SP, 8H |
00B9 | x(D10E7E4C): BLEQ MT [trap=4, pos=3710] |
00BA | y(40080014): ADD R0, R0, 14H |
00BB | y .FIXUP D |
00BB | y(8D200026): LDR SB, MT, MOD2 [ORS] |
00BC | y(41D80004): ADD R1, SB, VAR4 |
00BD | y(92000000): LDR R2, R0, 0H |
00BE | y(40080001): ADD R0, R0, 1H |
00BF | y(93100000): LDR R3, R1, 0H |
00C0 | y(41180001): ADD R1, R1, 1H |
00C1 | y(04290003): SUB R4, R2, R3 |
00C2 | y(E9000002): BNE 2 [00C5H] |
00C3 | y(44290000): SUB R4, R2, 0H |
00C4 | y(E9FFFFF8): BNE -8 [00BDH] |
00C5 | z(E1000005): BEQ 5 [00CBH] |
00C6 | a(80E00008): LDR R0, SP, 8H |
00C7 | a(D10E9B4C): BLEQ MT [trap=4, pos=3739] |
00C8 | b(80000008): LDR R0, R0, 8H |
00C9 | b(A0E00008): STR R0, SP, 8H |
00CA | b(E7FFFFEB): B -21 [00B6H] |
| RETURN fld |
| ENDc thisfield; |
00CB | c(80E00008): LDR R0, SP, 8H |
00CC | c(8FE00000): LDR LNK, SP, 0H |
00CD | c(4EE8000C): ADD SP, SP, CH |
00CE | c(C700000F): B LNK |
| |
| PROCEDURE OpenScope*; |
| VAR s: Object; |
| BEGINd NEW(s);e s.classf := Head;g s.dsch := topScope;i s.nextj := NIL;k topScope := s |
00CF | d .PROC 19 |
00CF | d .COMMAND OpenScope |
00CF | d(4EE90008): SUB SP, SP, 8H |
00D0 | d(AFE00000): STR LNK, SP, 0H |
00D1 | e(40E80004): ADD R0, SP, 4H |
00D2 | e .FIXUP D |
00D2 | e(8D000017): LDR SB, MT, MOD0 [ORB] |
00D3 | e(41D80000): ADD R1, SB, 0H [data] |
00D4 | e(D70EFD0C): BL MT [trap=0, pos=3837] |
00D5 | f(80E00004): LDR R0, SP, 4H |
00D6 | f(D10F054C): BLEQ MT [trap=4, pos=3845] |
00D7 | g(41000000): MOV R1, R0, 0H |
00D8 | g(B1000000): STR R1, R0, 0H |
00D9 | h(80E00004): LDR R0, SP, 4H |
00DA | h(D10F144C): BLEQ MT [trap=4, pos=3860] |
00DB | i .FIXUP D |
00DB | i(8D000009): LDR SB, MT, MOD0 [ORB] |
00DC | i(81D00060): LDR R1, SB, 60H [data] |
00DD | i(A100000C): STR R1, R0, CH |
00DE | j(80E00004): LDR R0, SP, 4H |
00DF | j(D10F284C): BLEQ MT [trap=4, pos=3880] |
00E0 | k(41000000): MOV R1, R0, 0H |
00E1 | k(A1000008): STR R1, R0, 8H |
| ENDl OpenScope; |
00E2 | l(80E00004): LDR R0, SP, 4H |
00E3 | l(A0D00060): STR R0, SB, 60H |
00E4 | l(8FE00000): LDR LNK, SP, 0H |
00E5 | l(4EE80008): ADD SP, SP, 8H |
00E6 | l(C700000F): B LNK |
| |
| PROCEDURE CloseScope*; |
| BEGINm topScope := topScope.dscn |
00E7 | m .PROC 20 |
00E7 | m .COMMAND CloseScope |
00E7 | m(4EE90004): SUB SP, SP, 4H |
00E8 | m(AFE00000): STR LNK, SP, 0H |
00E9 | n .FIXUP D |
00E9 | n(8D00000E): LDR SB, MT, MOD0 [ORB] |
00EA | n(80D00060): LDR R0, SB, 60H [data] |
00EB | n(D10F8A4C): BLEQ MT [trap=4, pos=3978] |
| ENDo CloseScope; |
00EC | o(8000000C): LDR R0, R0, CH |
00ED | o(A0D00060): STR R0, SB, 60H |
00EE | o(8FE00000): LDR LNK, SP, 0H |
00EF | o(4EE80004): ADD SP, SP, 4H |
00F0 | o(C700000F): B LNK |
| |
| (*------------------------------- Import ---------------------------------*) |
| |
| PROCEDURE MakeFileName*(VAR FName: ORS.Ident; name, ext: ARRAY OF CHAR); |
| VAR i, j: INTEGER; |
| BEGINp i := 0;q j := 0;r (*assume name suffix less than 4 characters*) |
00F1 | p .PROC 21 |
00F1 | p(4EE90020): SUB SP, SP, 20H |
00F2 | p(AFE00000): STR LNK, SP, 0H |
00F3 | p(A0E00004): STR R0, SP, 4H |
00F4 | p(A1E00008): STR R1, SP, 8H |
00F5 | p(A2E0000C): STR R2, SP, CH |
00F6 | p(A3E00010): STR R3, SP, 10H |
00F7 | p(A4E00014): STR R4, SP, 14H |
00F8 | q(40000000): MOV R0, R0, 0H |
00F9 | q(A0E00018): STR R0, SP, 18H |
00FA | r(40000000): MOV R0, R0, 0H |
00FB | r(A0E0001C): STR R0, SP, 1CH |
| WHILE (i < ORS.IdLen-5)s & (tname[i]u > 0X)v DOw FName[i]x := name[i]y;z INC(i) ENDa ; |
00FC | s(80E00018): LDR R0, SP, 18H |
00FD | s(4009001B): SUB R0, R0, 1BH |
00FE | t(ED00001A): BGE 26 [0119H] |
00FF | u(80E00018): LDR R0, SP, 18H |
0100 | u(81E0000C): LDR R1, SP, CH |
0101 | u(01090001): SUB R1, R0, R1 |
0102 | u(DA10BD1C): BLCC MT [trap=1, pos=4285] |
0103 | u(81E00008): LDR R1, SP, 8H |
0104 | u(00180000): ADD R0, R1, R0 |
0105 | v(90000000): LDR R0, R0, 0H |
0106 | v(40090000): SUB R0, R0, 0H |
0107 | w(E6000011): BLE 17 [0119H] |
0108 | x(80E00018): LDR R0, SP, 18H |
0109 | x(41090020): SUB R1, R0, 20H |
010A | x(DA10CF1C): BLCC MT [trap=1, pos=4303] |
010B | x(81E00004): LDR R1, SP, 4H |
010C | x(00180000): ADD R0, R1, R0 |
010D | y(81E00018): LDR R1, SP, 18H |
010E | y(82E0000C): LDR R2, SP, CH |
010F | y(02190002): SUB R2, R1, R2 |
0110 | y(DA10DA1C): BLCC MT [trap=1, pos=4314] |
0111 | y(82E00008): LDR R2, SP, 8H |
0112 | y(01280001): ADD R1, R2, R1 |
0113 | z(91100000): LDR R1, R1, 0H |
0114 | z(B1000000): STR R1, R0, 0H |
0115 | a(80E00018): LDR R0, SP, 18H |
0116 | a(40080001): ADD R0, R0, 1H |
0117 | a(A0E00018): STR R0, SP, 18H |
0118 | a(E7FFFFE3): B -29 [00FCH] |
| REPEAT FName[i]b:= ext[j]c;d INC(i);e INC(j) UNTILf ext[j]g = 0X;h |
0119 | b(80E00018): LDR R0, SP, 18H |
011A | b(41090020): SUB R1, R0, 20H |
011B | b(DA10FC1C): BLCC MT [trap=1, pos=4348] |
011C | b(81E00004): LDR R1, SP, 4H |
011D | b(00180000): ADD R0, R1, R0 |
011E | c(81E0001C): LDR R1, SP, 1CH |
011F | c(82E00014): LDR R2, SP, 14H |
0120 | c(02190002): SUB R2, R1, R2 |
0121 | c(DA11051C): BLCC MT [trap=1, pos=4357] |
0122 | c(82E00010): LDR R2, SP, 10H |
0123 | c(01280001): ADD R1, R2, R1 |
0124 | d(91100000): LDR R1, R1, 0H |
0125 | d(B1000000): STR R1, R0, 0H |
0126 | e(80E00018): LDR R0, SP, 18H |
0127 | e(40080001): ADD R0, R0, 1H |
0128 | e(A0E00018): STR R0, SP, 18H |
0129 | f(80E0001C): LDR R0, SP, 1CH |
012A | f(40080001): ADD R0, R0, 1H |
012B | f(A0E0001C): STR R0, SP, 1CH |
012C | g(80E0001C): LDR R0, SP, 1CH |
012D | g(81E00014): LDR R1, SP, 14H |
012E | g(01090001): SUB R1, R0, R1 |
012F | g(DA11221C): BLCC MT [trap=1, pos=4386] |
0130 | g(81E00010): LDR R1, SP, 10H |
0131 | g(00180000): ADD R0, R1, R0 |
0132 | h(90000000): LDR R0, R0, 0H |
0133 | h(E9FFFFE5): BNE -27 [0119H] |
| FName[i]i := 0X |
0134 | i(80E00018): LDR R0, SP, 18H |
0135 | i(41090020): SUB R1, R0, 20H |
0136 | i(DA11351C): BLCC MT [trap=1, pos=4405] |
0137 | i(81E00004): LDR R1, SP, 4H |
0138 | i(00180000): ADD R0, R1, R0 |
| ENDj MakeFileName; |
0139 | j(41000000): MOV R1, R0, 0H |
013A | j(B1000000): STR R1, R0, 0H |
013B | j(8FE00000): LDR LNK, SP, 0H |
013C | j(4EE80020): ADD SP, SP, 20H |
013D | j(C700000F): B LNK |
| |
| PROCEDURE ThisModule(name, orgname: ORS.Ident; non: BOOLEAN; key: LONGINT): Object; |
| VAR mod: Module; obj, obj1: Object; |
| BEGINk obj1 := topScope;l obj := obj1.nextm;n (*search for module*) |
013E | k(4EE90020): SUB SP, SP, 20H |
013F | k(AFE00000): STR LNK, SP, 0H |
0140 | k(A0E00004): STR R0, SP, 4H |
0141 | k(A1E00008): STR R1, SP, 8H |
0142 | k(A2E0000C): STR R2, SP, CH |
0143 | k(A3E00010): STR R3, SP, 10H |
0144 | l .FIXUP D |
0144 | l(8D00005B): LDR SB, MT, MOD0 [ORB] |
0145 | l(80D00060): LDR R0, SB, 60H [data] |
0146 | l(A0E0001C): STR R0, SP, 1CH |
0147 | m(80E0001C): LDR R0, SP, 1CH |
0148 | m(D111FB4C): BLEQ MT [trap=4, pos=4603] |
0149 | n(80000008): LDR R0, R0, 8H |
014A | n(A0E00018): STR R0, SP, 18H |
| WHILE (obj # NIL)o & (pobj.nameq # name)r DOs obj1 := obj;t obj := obj1.nextu ENDv ; |
014B | o(80E00018): LDR R0, SP, 18H |
014C | p(E1000014): BEQ 20 [0161H] |
014D | q(80E00018): LDR R0, SP, 18H |
014E | q(D112354C): BLEQ MT [trap=4, pos=4661] |
014F | r(40080014): ADD R0, R0, 14H |
0150 | r(81E00004): LDR R1, SP, 4H |
0151 | r(92000000): LDR R2, R0, 0H |
0152 | r(40080001): ADD R0, R0, 1H |
0153 | r(93100000): LDR R3, R1, 0H |
0154 | r(41180001): ADD R1, R1, 1H |
0155 | r(04290003): SUB R4, R2, R3 |
0156 | r(E9000002): BNE 2 [0159H] |
0157 | r(44290000): SUB R4, R2, 0H |
0158 | r(E9FFFFF8): BNE -8 [0151H] |
0159 | s(E1000007): BEQ 7 [0161H] |
015A | t(80E00018): LDR R0, SP, 18H |
015B | t(A0E0001C): STR R0, SP, 1CH |
015C | u(80E0001C): LDR R0, SP, 1CH |
015D | u(D1125E4C): BLEQ MT [trap=4, pos=4702] |
015E | v(80000008): LDR R0, R0, 8H |
015F | v(A0E00018): STR R0, SP, 18H |
0160 | v(E7FFFFEA): B -22 [014BH] |
| IF obj = NIL THENw (*insert new module*) |
0161 | w(80E00018): LDR R0, SP, 18H |
0162 | w(E9000042): BNE 66 [01A5H] |
| NEW(mod);x mod.classy := Mod;z mod.rdoa := FALSE;b |
0163 | x(40E80014): ADD R0, SP, 14H |
0164 | x .FIXUP D |
0164 | x(8D000020): LDR SB, MT, MOD0 [ORB] |
0165 | x(41D80020): ADD R1, SB, 20H [data] |
0166 | x(D712A10C): BL MT [trap=0, pos=4769] |
0167 | y(80E00014): LDR R0, SP, 14H |
0168 | y(D112AB4C): BLEQ MT [trap=4, pos=4779] |
0169 | z(41000008): MOV R1, R0, 8H |
016A | z(B1000000): STR R1, R0, 0H |
016B | a(80E00014): LDR R0, SP, 14H |
016C | a(D112BB4C): BLEQ MT [trap=4, pos=4795] |
016D | b(41000000): MOV R1, R0, 0H |
016E | b(B1000003): STR R1, R0, 3H |
| mod.namec := name;d mod.orgnamee := orgname;f mod.valg := key;h |
016F | c(80E00014): LDR R0, SP, 14H |
0170 | c(D112D44C): BLEQ MT [trap=4, pos=4820] |
0171 | d(40080014): ADD R0, R0, 14H |
0172 | d(81E00004): LDR R1, SP, 4H |
0173 | d(42000008): MOV R2, R0, 8H |
0174 | d(83100000): LDR R3, R1, 0H |
0175 | d(41180004): ADD R1, R1, 4H |
0176 | d(A3000000): STR R3, R0, 0H |
0177 | d(40080004): ADD R0, R0, 4H |
0178 | d(42290001): SUB R2, R2, 1H |
0179 | d(E9FFFFFA): BNE -6 [0174H] |
017A | e(80E00014): LDR R0, SP, 14H |
017B | e(D112E94C): BLEQ MT [trap=4, pos=4841] |
017C | f(40080038): ADD R0, R0, 38H |
017D | f(81E00008): LDR R1, SP, 8H |
017E | f(42000008): MOV R2, R0, 8H |
017F | f(83100000): LDR R3, R1, 0H |
0180 | f(41180004): ADD R1, R1, 4H |
0181 | f(A3000000): STR R3, R0, 0H |
0182 | f(40080004): ADD R0, R0, 4H |
0183 | f(42290001): SUB R2, R2, 1H |
0184 | f(E9FFFFFA): BNE -6 [017FH] |
0185 | g(80E00014): LDR R0, SP, 14H |
0186 | g(D112FD4C): BLEQ MT [trap=4, pos=4861] |
0187 | h(81E00010): LDR R1, SP, 10H |
0188 | h(A1000034): STR R1, R0, 34H |
| mod.levi := nofmod;j INC(nofmod);k mod.typel := noType;m mod.dscn := NIL;o mod.nextp := NIL;q |
0189 | i(80E00014): LDR R0, SP, 14H |
018A | i(D113134C): BLEQ MT [trap=4, pos=4883] |
018B | j .FIXUP D |
018B | j(8D000027): LDR SB, MT, MOD0 [ORB] |
018C | j(81D00090): LDR R1, SB, 90H [data] |
018D | j(A1000004): STR R1, R0, 4H |
018E | k(40D80090): ADD R0, SB, 90H |
018F | k(81000000): LDR R1, R0, 0H |
0190 | k(41180001): ADD R1, R1, 1H |
0191 | k(A1000000): STR R1, R0, 0H |
0192 | l(80E00014): LDR R0, SP, 14H |
0193 | l(D113344C): BLEQ MT [trap=4, pos=4916] |
0194 | m(81D00088): LDR R1, SB, 88H |
0195 | m(A1000010): STR R1, R0, 10H |
0196 | n(80E00014): LDR R0, SP, 14H |
0197 | n(D113474C): BLEQ MT [trap=4, pos=4935] |
0198 | o(41000000): MOV R1, R0, 0H |
0199 | o(A100000C): STR R1, R0, CH |
019A | p(80E00014): LDR R0, SP, 14H |
019B | p(D113584C): BLEQ MT [trap=4, pos=4952] |
019C | q(41000000): MOV R1, R0, 0H |
019D | q(A1000008): STR R1, R0, 8H |
| obj1.nextr := mod;s obj := mod |
019E | r(80E0001C): LDR R0, SP, 1CH |
019F | r(D113704C): BLEQ MT [trap=4, pos=4976] |
01A0 | s(81E00014): LDR R1, SP, 14H |
01A1 | s(A1000008): STR R1, R0, 8H |
| ELSEt (*module already present*) |
01A2 | t(80E00014): LDR R0, SP, 14H |
01A3 | t(A0E00018): STR R0, SP, 18H |
| IFu non THENv ORS.Mark("invalid import order")w ENDx |
01A4 | u(E7000006): B 6 [01ABH] |
01A5 | v(90E0000C): LDR R0, SP, CH |
01A6 | v(E1000004): BEQ 4 [01ABH] |
01A7 | w .FIXUP D |
01A7 | w(8D00001C): LDR SB, MT, MOD0 [ORB] |
01A8 | w(40D801A4): ADD R0, SB, 1A4H ["invalid import order"] |
01A9 | w(41000015): MOV R1, R0, 15H |
01AA | x .FIXUP P |
01AA | x(F7209157): BL MOD2 [ORS] PROC9 |
| END ; |
| RETURN obj |
| ENDy ThisModule; |
01AB | y(80E00018): LDR R0, SP, 18H |
01AC | y(8FE00000): LDR LNK, SP, 0H |
01AD | y(4EE80020): ADD SP, SP, 20H |
01AE | y(C700000F): B LNK |
| |
| PROCEDURE Read(VAR R: Files.Rider; VAR x: INTEGER); |
| VAR b: BYTE; |
| BEGINz Files.ReadByte(R,a b)b;c |
01AF | z(4EE90014): SUB SP, SP, 14H |
01B0 | z(AFE00000): STR LNK, SP, 0H |
01B1 | z(A0E00004): STR R0, SP, 4H |
01B2 | z(A1E00008): STR R1, SP, 8H |
01B3 | z(A2E0000C): STR R2, SP, CH |
01B4 | a(80E00004): LDR R0, SP, 4H |
01B5 | a(81E00008): LDR R1, SP, 8H |
01B6 | b(42E80010): ADD R2, SP, 10H |
01B7 | c .FIXUP P |
01B7 | c(F710E00D): BL MOD1 [Files] PROC14 |
| IF b < 80H THENd x := b ELSEe xf := b - 100H ENDg |
01B8 | d(90E00010): LDR R0, SP, 10H |
01B9 | d(40090080): SUB R0, R0, 80H |
01BA | d(ED000004): BGE 4 [01BFH] |
01BB | e(90E00010): LDR R0, SP, 10H |
01BC | e(81E0000C): LDR R1, SP, CH |
01BD | e(A0100000): STR R0, R1, 0H |
01BE | f(E7000004): B 4 [01C3H] |
01BF | g(90E00010): LDR R0, SP, 10H |
01C0 | g(40090100): SUB R0, R0, 100H |
01C1 | g(81E0000C): LDR R1, SP, CH |
01C2 | g(A0100000): STR R0, R1, 0H |
| ENDh Read; |
01C3 | h(8FE00000): LDR LNK, SP, 0H |
01C4 | h(4EE80014): ADD SP, SP, 14H |
01C5 | h(C700000F): B LNK |
| |
| PROCEDURE InType(VAR R: Files.Rider; thismod: Object; VAR T: Type); |
| VAR key: LONGINT; |
| ref, class, form, np, readonly: INTEGER; |
| fld, par, obj, mod: Object; |
| t: Type; |
| name, modname: ORS.Ident; |
| BEGINi Read(R,j ref)k;l |
01C6 | i(4EE90080): SUB SP, SP, 80H |
01C7 | i(AFE00000): STR LNK, SP, 0H |
01C8 | i(A0E00004): STR R0, SP, 4H |
01C9 | i(A1E00008): STR R1, SP, 8H |
01CA | i(A2E0000C): STR R2, SP, CH |
01CB | i(A3E00010): STR R3, SP, 10H |
01CC | j(80E00004): LDR R0, SP, 4H |
01CD | j(81E00008): LDR R1, SP, 8H |
01CE | k(42E80018): ADD R2, SP, 18H |
01CF | l(F7FFFFDF): BL -33 [01AFH] |
| IF ref < 0 THENm T := typtab[-ref]n (*already read*) |
01D0 | m(80E00018): LDR R0, SP, 18H |
01D1 | m(40090000): SUB R0, R0, 0H |
01D2 | m(ED00000C): BGE 12 [01DFH] |
01D3 | n(80E00018): LDR R0, SP, 18H |
01D4 | n(41000000): MOV R1, R0, 0H |
01D5 | n(00190000): SUB R0, R1, R0 |
01D6 | n(41090040): SUB R1, R0, 40H |
01D7 | n(DA15CA1C): BLCC MT [trap=1, pos=5578] |
01D8 | n(40010002): LSL R0, R0, 2H |
01D9 | n .FIXUP D |
01D9 | n(8D000032): LDR SB, MT, MOD0 [ORB] |
01DA | n(00D80000): ADD R0, SB, R0 [global array] |
| ELSEo NEWp(t);q T := t;r typtab[ref]s := t;t t.mnou := thismod.levv;w |
01DB | o(80000098): LDR R0, R0, 98H |
01DC | o(81E00010): LDR R1, SP, 10H |
01DD | o(A0100000): STR R0, R1, 0H |
01DE | p(E700016E): B 366 [034DH] |
01DF | q(40E8003C): ADD R0, SP, 3CH |
01E0 | q .FIXUP D |
01E0 | q(8D000007): LDR SB, MT, MOD0 [ORB] |
01E1 | q(41D80040): ADD R1, SB, 40H [data] |
01E2 | q(D715ED0C): BL MT [trap=0, pos=5613] |
01E3 | r(80E0003C): LDR R0, SP, 3CH |
01E4 | r(81E00010): LDR R1, SP, 10H |
01E5 | r(A0100000): STR R0, R1, 0H |
01E6 | s(80E00018): LDR R0, SP, 18H |
01E7 | s(41090040): SUB R1, R0, 40H |
01E8 | s(DA16011C): BLCC MT [trap=1, pos=5633] |
01E9 | s(40010002): LSL R0, R0, 2H |
01EA | s .FIXUP D |
01EA | s(8D00000A): LDR SB, MT, MOD0 [ORB] |
01EB | s(00D80000): ADD R0, SB, R0 [global array] |
01EC | t(81E0003C): LDR R1, SP, 3CH |
01ED | t(A1000098): STR R1, R0, 98H |
01EE | u(80E0003C): LDR R0, SP, 3CH |
01EF | u(D1160D4C): BLEQ MT [trap=4, pos=5645] |
01F0 | v(81E0000C): LDR R1, SP, CH |
01F1 | v(D1161C4C): BLEQ MT [trap=4, pos=5660] |
01F2 | w(81100004): LDR R1, R1, 4H |
01F3 | w(A1000008): STR R1, R0, 8H |
| Read(R,x form)y;z t.forma := form;b |
01F4 | x(80E00004): LDR R0, SP, 4H |
01F5 | x(81E00008): LDR R1, SP, 8H |
01F6 | y(42E80020): ADD R2, SP, 20H |
01F7 | z(F7FFFFB7): BL -73 [01AFH] |
01F8 | a(80E0003C): LDR R0, SP, 3CH |
01F9 | a(D116394C): BLEQ MT [trap=4, pos=5689] |
01FA | b(81E00020): LDR R1, SP, 20H |
01FB | b(A1000000): STR R1, R0, 0H |
| IF form = Pointer THENc InType(R,d thismod,e t.basef)g;h t.sizei := 4 |
01FC | c(80E00020): LDR R0, SP, 20H |
01FD | c(40090007): SUB R0, R0, 7H |
01FE | c(E900000C): BNE 12 [020BH] |
01FF | d(80E00004): LDR R0, SP, 4H |
0200 | d(81E00008): LDR R1, SP, 8H |
0201 | e(82E0000C): LDR R2, SP, CH |
0202 | f(83E0003C): LDR R3, SP, 3CH |
0203 | f(D116794C): BLEQ MT [trap=4, pos=5753] |
0204 | g(4338001C): ADD R3, R3, 1CH |
0205 | h(F7FFFFC0): BL -64 [01C6H] |
0206 | i(80E0003C): LDR R0, SP, 3CH |
0207 | i(D116824C): BLEQ MT [trap=4, pos=5762] |
| ELSIFj formk = Array THENl |
0208 | j(41000004): MOV R1, R0, 4H |
0209 | j(A1000020): STR R1, R0, 20H |
020A | k(E70000D5): B 213 [02E0H] |
020B | l(80E00020): LDR R0, SP, 20H |
020C | l(4009000C): SUB R0, R0, CH |
020D | l(E9000014): BNE 20 [0222H] |
| InType(R,m thismod,n t.baseo)p;q Files.ReadNum(R,r t.lens)t;u Files.ReadNum(R,v t.sizew)x |
020E | m(80E00004): LDR R0, SP, 4H |
020F | m(81E00008): LDR R1, SP, 8H |
0210 | n(82E0000C): LDR R2, SP, CH |
0211 | o(83E0003C): LDR R3, SP, 3CH |
0212 | o(D116C74C): BLEQ MT [trap=4, pos=5831] |
0213 | p(4338001C): ADD R3, R3, 1CH |
0214 | q(F7FFFFB1): BL -79 [01C6H] |
0215 | r(80E00004): LDR R0, SP, 4H |
0216 | r(81E00008): LDR R1, SP, 8H |
0217 | s(82E0003C): LDR R2, SP, 3CH |
0218 | s(D116E04C): BLEQ MT [trap=4, pos=5856] |
0219 | t(42280010): ADD R2, R2, 10H |
021A | u .FIXUP P |
021A | u(F7115063): BL MOD1 [Files] PROC21 |
021B | v(80E00004): LDR R0, SP, 4H |
021C | v(81E00008): LDR R1, SP, 8H |
021D | w(82E0003C): LDR R2, SP, 3CH |
021E | w(D116FA4C): BLEQ MT [trap=4, pos=5882] |
021F | x(42280020): ADD R2, R2, 20H |
| ELSIFy formz = Record THENa |
0220 | y .FIXUP P |
0220 | y(F7115006): BL MOD1 [Files] PROC21 |
0221 | z(E70000BE): B 190 [02E0H] |
0222 | a(80E00020): LDR R0, SP, 20H |
0223 | a(4009000D): SUB R0, R0, DH |
0224 | a(E9000071): BNE 113 [0296H] |
| InType(R,b thismod,c t.based)e;f |
0225 | b(80E00004): LDR R0, SP, 4H |
0226 | b(81E00008): LDR R1, SP, 8H |
0227 | c(82E0000C): LDR R2, SP, CH |
0228 | d(83E0003C): LDR R3, SP, 3CH |
0229 | d(D1173C4C): BLEQ MT [trap=4, pos=5948] |
022A | e(4338001C): ADD R3, R3, 1CH |
022B | f(F7FFFF9A): BL -102 [01C6H] |
| IF t.baseg.formh = NoTyp THENi t.basej := NIL;k obj := NIL ELSEl objm := t.basen.dsco ENDp ; |
022C | g(80E0003C): LDR R0, SP, 3CH |
022D | g(D117504C): BLEQ MT [trap=4, pos=5968] |
022E | h(8000001C): LDR R0, R0, 1CH |
022F | h(D117554C): BLEQ MT [trap=4, pos=5973] |
0230 | i(80000000): LDR R0, R0, 0H |
0231 | i(40090009): SUB R0, R0, 9H |
0232 | i(E9000007): BNE 7 [023AH] |
0233 | j(80E0003C): LDR R0, SP, 3CH |
0234 | j(D117694C): BLEQ MT [trap=4, pos=5993] |
0235 | k(41000000): MOV R1, R0, 0H |
0236 | k(A100001C): STR R1, R0, 1CH |
0237 | l(40000000): MOV R0, R0, 0H |
0238 | l(A0E00034): STR R0, SP, 34H |
0239 | m(E7000006): B 6 [0240H] |
023A | n(80E0003C): LDR R0, SP, 3CH |
023B | n(D1178F4C): BLEQ MT [trap=4, pos=6031] |
023C | o(8000001C): LDR R0, R0, 1CH |
023D | o(D117934C): BLEQ MT [trap=4, pos=6035] |
023E | p(80000014): LDR R0, R0, 14H |
023F | p(A0E00034): STR R0, SP, 34H |
| Files.ReadNum(R,q t.lenr)s;t (*TD adr/exno*) |
0240 | q(80E00004): LDR R0, SP, 4H |
0241 | q(81E00008): LDR R1, SP, 8H |
0242 | r(82E0003C): LDR R2, SP, 3CH |
0243 | r(D117B84C): BLEQ MT [trap=4, pos=6072] |
0244 | s(42280010): ADD R2, R2, 10H |
0245 | t .FIXUP P |
0245 | t(F7115025): BL MOD1 [Files] PROC21 |
| Files.ReadNum(R,u t.nofparv)w;x (*ext level*) |
0246 | u(80E00004): LDR R0, SP, 4H |
0247 | u(81E00008): LDR R1, SP, 8H |
0248 | v(82E0003C): LDR R2, SP, 3CH |
0249 | v(D117EC4C): BLEQ MT [trap=4, pos=6124] |
024A | w(4228000C): ADD R2, R2, CH |
024B | x .FIXUP P |
024B | x(F7115006): BL MOD1 [Files] PROC21 |
| Files.ReadNum(R,y t.sizez)a;b |
024C | y(80E00004): LDR R0, SP, 4H |
024D | y(81E00008): LDR R1, SP, 8H |
024E | z(82E0003C): LDR R2, SP, 3CH |
024F | z(D1181D4C): BLEQ MT [trap=4, pos=6173] |
0250 | a(42280020): ADD R2, R2, 20H |
0251 | b .FIXUP P |
0251 | b(F7115006): BL MOD1 [Files] PROC21 |
| Read(R,c class)d;e |
0252 | c(80E00004): LDR R0, SP, 4H |
0253 | c(81E00008): LDR R1, SP, 8H |
0254 | d(42E8001C): ADD R2, SP, 1CH |
0255 | e(F7FFFF59): BL -167 [01AFH] |
| WHILE class # 0 DOf (*fields*) |
0256 | f(80E0001C): LDR R0, SP, 1CH |
0257 | f(E1000039): BEQ 57 [0291H] |
| NEW(fld);g fld.classh := class;i Files.ReadString(R,j fld.namek)l;m |
0258 | g(40E8002C): ADD R0, SP, 2CH |
0259 | g .FIXUP D |
0259 | g(8D00006F): LDR SB, MT, MOD0 [ORB] |
025A | g(41D80000): ADD R1, SB, 0H [data] |
025B | g(D718720C): BL MT [trap=0, pos=6258] |
025C | h(80E0002C): LDR R0, SP, 2CH |
025D | h(D1187C4C): BLEQ MT [trap=4, pos=6268] |
025E | i(81E0001C): LDR R1, SP, 1CH |
025F | i(B1000000): STR R1, R0, 0H |
0260 | j(80E00004): LDR R0, SP, 4H |
0261 | j(81E00008): LDR R1, SP, 8H |
0262 | k(82E0002C): LDR R2, SP, 2CH |
0263 | k(D118A34C): BLEQ MT [trap=4, pos=6307] |
0264 | l(42280014): ADD R2, R2, 14H |
0265 | l(43000020): MOV R3, R0, 20H |
0266 | m .FIXUP P |
0266 | m(F7114015): BL MOD1 [Files] PROC20 |
| IF fld.namen[0] # 0X THENo fld.expop := TRUE;q InType(R,r thismod,s fld.typet)u ELSEv fldw.expox := FALSE;y fld.typez := nilType ENDa ; |
0267 | n(80E0002C): LDR R0, SP, 2CH |
0268 | n(D118BB4C): BLEQ MT [trap=4, pos=6331] |
0269 | o(90000014): LDR R0, R0, 14H |
026A | o(E100000C): BEQ 12 [0277H] |
026B | p(80E0002C): LDR R0, SP, 2CH |
026C | p(D118D14C): BLEQ MT [trap=4, pos=6353] |
026D | q(41000001): MOV R1, R0, 1H |
026E | q(B1000002): STR R1, R0, 2H |
026F | r(80E00004): LDR R0, SP, 4H |
0270 | r(81E00008): LDR R1, SP, 8H |
0271 | s(82E0000C): LDR R2, SP, CH |
0272 | t(83E0002C): LDR R3, SP, 2CH |
0273 | t(D118F64C): BLEQ MT [trap=4, pos=6390] |
0274 | u(43380010): ADD R3, R3, 10H |
0275 | v(F7FFFF50): BL -176 [01C6H] |
0276 | w(E7000009): B 9 [0280H] |
0277 | x(80E0002C): LDR R0, SP, 2CH |
0278 | x(D119054C): BLEQ MT [trap=4, pos=6405] |
0279 | y(41000000): MOV R1, R0, 0H |
027A | y(B1000002): STR R1, R0, 2H |
027B | z(80E0002C): LDR R0, SP, 2CH |
027C | z(D119184C): BLEQ MT [trap=4, pos=6424] |
027D | a .FIXUP D |
027D | a(8D000024): LDR SB, MT, MOD0 [ORB] |
027E | a(81D00084): LDR R1, SB, 84H [data] |
027F | a(A1000010): STR R1, R0, 10H |
| Files.ReadNum(R,b fld.valc)d;e fld.nextf := obj;g obj := fld;h Read(R,i class)j |
0280 | b(80E00004): LDR R0, SP, 4H |
0281 | b(81E00008): LDR R1, SP, 8H |
0282 | c(82E0002C): LDR R2, SP, 2CH |
0283 | c(D1194C4C): BLEQ MT [trap=4, pos=6476] |
0284 | d(42280034): ADD R2, R2, 34H |
0285 | e .FIXUP P |
0285 | e(F711501F): BL MOD1 [Files] PROC21 |
0286 | f(80E0002C): LDR R0, SP, 2CH |
0287 | f(D119574C): BLEQ MT [trap=4, pos=6487] |
0288 | g(81E00034): LDR R1, SP, 34H |
0289 | g(A1000008): STR R1, R0, 8H |
028A | h(80E0002C): LDR R0, SP, 2CH |
028B | h(A0E00034): STR R0, SP, 34H |
028C | i(80E00004): LDR R0, SP, 4H |
028D | i(81E00008): LDR R1, SP, 8H |
028E | j(42E8001C): ADD R2, SP, 1CH |
| ENDk ; |
028F | k(F7FFFF1F): BL -225 [01AFH] |
0290 | k(E7FFFFC5): B -59 [0256H] |
| t.dscl := obj |
0291 | l(80E0003C): LDR R0, SP, 3CH |
0292 | l(D119964C): BLEQ MT [trap=4, pos=6550] |
| ELSIFm formn = Proc THENo |
0293 | m(81E00034): LDR R1, SP, 34H |
0294 | m(A1000014): STR R1, R0, 14H |
0295 | n(E700004A): B 74 [02E0H] |
0296 | o(80E00020): LDR R0, SP, 20H |
0297 | o(4009000A): SUB R0, R0, AH |
0298 | o(E9000047): BNE 71 [02E0H] |
| InType(R,p thismod,q t.baser)s;t |
0299 | p(80E00004): LDR R0, SP, 4H |
029A | p(81E00008): LDR R1, SP, 8H |
029B | q(82E0000C): LDR R2, SP, CH |
029C | r(83E0003C): LDR R3, SP, 3CH |
029D | r(D119DC4C): BLEQ MT [trap=4, pos=6620] |
029E | s(4338001C): ADD R3, R3, 1CH |
029F | t(F7FFFF26): BL -218 [01C6H] |
| obj := NIL;u np := 0;v Read(R,w class)x;y |
02A0 | u(40000000): MOV R0, R0, 0H |
02A1 | u(A0E00034): STR R0, SP, 34H |
02A2 | v(40000000): MOV R0, R0, 0H |
02A3 | v(A0E00024): STR R0, SP, 24H |
02A4 | w(80E00004): LDR R0, SP, 4H |
02A5 | w(81E00008): LDR R1, SP, 8H |
02A6 | x(42E8001C): ADD R2, SP, 1CH |
02A7 | y(F7FFFF07): BL -249 [01AFH] |
| WHILE class # 0 DOz (*parameters*) |
02A8 | z(80E0001C): LDR R0, SP, 1CH |
02A9 | z(E100002A): BEQ 42 [02D4H] |
| NEW(par);a par.classb := class;c Read(R,d readonly)e;f par.rdog := readonly = 1;h |
02AA | a(40E80030): ADD R0, SP, 30H |
02AB | a .FIXUP D |
02AB | a(8D00002E): LDR SB, MT, MOD0 [ORB] |
02AC | a(41D80000): ADD R1, SB, 0H [data] |
02AD | a(D71A4A0C): BL MT [trap=0, pos=6730] |
02AE | b(80E00030): LDR R0, SP, 30H |
02AF | b(D11A544C): BLEQ MT [trap=4, pos=6740] |
02B0 | c(81E0001C): LDR R1, SP, 1CH |
02B1 | c(B1000000): STR R1, R0, 0H |
02B2 | d(80E00004): LDR R0, SP, 4H |
02B3 | d(81E00008): LDR R1, SP, 8H |
02B4 | e(42E80028): ADD R2, SP, 28H |
02B5 | f(F7FFFEF9): BL -263 [01AFH] |
02B6 | g(80E00030): LDR R0, SP, 30H |
02B7 | g(D11A794C): BLEQ MT [trap=4, pos=6777] |
02B8 | h(81E00028): LDR R1, SP, 28H |
02B9 | h(41190001): SUB R1, R1, 1H |
02BA | h(E9000002): BNE 2 [02BDH] |
02BB | h(41000001): MOV R1, R0, 1H |
02BC | h(E7000001): B 1 [02BEH] |
02BD | h(41000000): MOV R1, R0, 0H |
02BE | h(B1000003): STR R1, R0, 3H |
| InType(R,i thismod,j par.typek)l;m par.nextn := obj;o obj := par;p INC(np);q Read(R,r class)s |
02BF | i(80E00004): LDR R0, SP, 4H |
02C0 | i(81E00008): LDR R1, SP, 8H |
02C1 | j(82E0000C): LDR R2, SP, CH |
02C2 | k(83E00030): LDR R3, SP, 30H |
02C3 | k(D11AB14C): BLEQ MT [trap=4, pos=6833] |
02C4 | l(43380010): ADD R3, R3, 10H |
02C5 | m(F7FFFF00): BL -256 [01C6H] |
02C6 | n(80E00030): LDR R0, SP, 30H |
02C7 | n(D11ABC4C): BLEQ MT [trap=4, pos=6844] |
02C8 | o(81E00034): LDR R1, SP, 34H |
02C9 | o(A1000008): STR R1, R0, 8H |
02CA | p(80E00030): LDR R0, SP, 30H |
02CB | p(A0E00034): STR R0, SP, 34H |
02CC | q(80E00024): LDR R0, SP, 24H |
02CD | q(40080001): ADD R0, R0, 1H |
02CE | q(A0E00024): STR R0, SP, 24H |
02CF | r(80E00004): LDR R0, SP, 4H |
02D0 | r(81E00008): LDR R1, SP, 8H |
02D1 | s(42E8001C): ADD R2, SP, 1CH |
| ENDt ; |
02D2 | t(F7FFFEDC): BL -292 [01AFH] |
02D3 | t(E7FFFFD4): B -44 [02A8H] |
| t.dscu := obj;v t.nofparw := np;x t.sizey := 4 |
02D4 | u(80E0003C): LDR R0, SP, 3CH |
02D5 | u(D11B044C): BLEQ MT [trap=4, pos=6916] |
02D6 | v(81E00034): LDR R1, SP, 34H |
02D7 | v(A1000014): STR R1, R0, 14H |
02D8 | w(80E0003C): LDR R0, SP, 3CH |
02D9 | w(D11B154C): BLEQ MT [trap=4, pos=6933] |
02DA | x(81E00024): LDR R1, SP, 24H |
02DB | x(A100000C): STR R1, R0, CH |
02DC | y(80E0003C): LDR R0, SP, 3CH |
02DD | y(D11B234C): BLEQ MT [trap=4, pos=6947] |
| ENDz ; |
02DE | z(41000004): MOV R1, R0, 4H |
02DF | z(A1000020): STR R1, R0, 20H |
| Files.ReadString(R,a modname)b;c |
02E0 | a(80E00004): LDR R0, SP, 4H |
02E1 | a(81E00008): LDR R1, SP, 8H |
02E2 | b(42E80060): ADD R2, SP, 60H |
02E3 | b(43000020): MOV R3, R0, 20H |
02E4 | c .FIXUP P |
02E4 | c(F711405F): BL MOD1 [Files] PROC20 |
| IF modname[0] # 0X THENd (*re-import*) |
02E5 | d(90E00060): LDR R0, SP, 60H |
02E6 | d(E1000066): BEQ 102 [034DH] |
| Files.ReadInt(R,e key)f;g Files.ReadString(R,h name)i;j |
02E7 | e(80E00004): LDR R0, SP, 4H |
02E8 | e(81E00008): LDR R1, SP, 8H |
02E9 | f(42E80014): ADD R2, SP, 14H |
02EA | g .FIXUP P |
02EA | g(F7111006): BL MOD1 [Files] PROC17 |
02EB | h(80E00004): LDR R0, SP, 4H |
02EC | h(81E00008): LDR R1, SP, 8H |
02ED | i(42E80040): ADD R2, SP, 40H |
02EE | i(43000020): MOV R3, R0, 20H |
02EF | j .FIXUP P |
02EF | j(F7114005): BL MOD1 [Files] PROC20 |
| mod := ThisModule(modname,k modname,l FALSE,m key)n;o |
02F0 | k(40E80060): ADD R0, SP, 60H |
02F1 | l(41E80060): ADD R1, SP, 60H |
02F2 | m(42000000): MOV R2, R0, 0H |
02F3 | n(83E00014): LDR R3, SP, 14H |
02F4 | o(F7FFFE49): BL -439 [013EH] |
02F5 | o(A0E00038): STR R0, SP, 38H |
| obj := mod.dscp;q (*search type*) |
02F6 | p(80E00038): LDR R0, SP, 38H |
02F7 | p(D11C104C): BLEQ MT [trap=4, pos=7184] |
02F8 | q(8000000C): LDR R0, R0, CH |
02F9 | q(A0E00034): STR R0, SP, 34H |
| WHILE (obj # NIL)r & (sobj.namet # name)u DOv obj := obj.nextw ENDx ; |
02FA | r(80E00034): LDR R0, SP, 34H |
02FB | s(E1000012): BEQ 18 [030EH] |
02FC | t(80E00034): LDR R0, SP, 34H |
02FD | t(D11C484C): BLEQ MT [trap=4, pos=7240] |
02FE | u(40080014): ADD R0, R0, 14H |
02FF | u(41E80040): ADD R1, SP, 40H |
0300 | u(92000000): LDR R2, R0, 0H |
0301 | u(40080001): ADD R0, R0, 1H |
0302 | u(93100000): LDR R3, R1, 0H |
0303 | u(41180001): ADD R1, R1, 1H |
0304 | u(04290003): SUB R4, R2, R3 |
0305 | u(E9000002): BNE 2 [0308H] |
0306 | u(44290000): SUB R4, R2, 0H |
0307 | u(E9FFFFF8): BNE -8 [0300H] |
0308 | v(E1000005): BEQ 5 [030EH] |
0309 | w(80E00034): LDR R0, SP, 34H |
030A | w(D11C634C): BLEQ MT [trap=4, pos=7267] |
030B | x(80000008): LDR R0, R0, 8H |
030C | x(A0E00034): STR R0, SP, 34H |
030D | x(E7FFFFEC): B -20 [02FAH] |
| IF obj # NIL THENy T := obj.typez (*type object found in object list of mod*) |
030E | y(80E00034): LDR R0, SP, 34H |
030F | y(E1000006): BEQ 6 [0316H] |
0310 | z(80E00034): LDR R0, SP, 34H |
0311 | z(D11C914C): BLEQ MT [trap=4, pos=7313] |
| ELSEa (*insert new type object in object list of mod*) |
0312 | a(80000010): LDR R0, R0, 10H |
0313 | a(81E00010): LDR R1, SP, 10H |
0314 | a(A0100000): STR R0, R1, 0H |
| NEWb(obj);c obj.named := name;e obj.classf := Typ;g obj.nexth := mod.dsci;j mod.dsck := obj;l obj.typem := t;n |
0315 | b(E700002E): B 46 [0344H] |
0316 | c(40E80034): ADD R0, SP, 34H |
0317 | c .FIXUP D |
0317 | c(8D00006C): LDR SB, MT, MOD0 [ORB] |
0318 | c(41D80000): ADD R1, SB, 0H [data] |
0319 | c(D71D110C): BL MT [trap=0, pos=7441] |
031A | d(80E00034): LDR R0, SP, 34H |
031B | d(D11D1A4C): BLEQ MT [trap=4, pos=7450] |
031C | e(40080014): ADD R0, R0, 14H |
031D | e(41E80040): ADD R1, SP, 40H |
031E | e(42000008): MOV R2, R0, 8H |
031F | e(83100000): LDR R3, R1, 0H |
0320 | e(41180004): ADD R1, R1, 4H |
0321 | e(A3000000): STR R3, R0, 0H |
0322 | e(40080004): ADD R0, R0, 4H |
0323 | e(42290001): SUB R2, R2, 1H |
0324 | e(E9FFFFFA): BNE -6 [031FH] |
0325 | f(80E00034): LDR R0, SP, 34H |
0326 | f(D11D2D4C): BLEQ MT [trap=4, pos=7469] |
0327 | g(41000005): MOV R1, R0, 5H |
0328 | g(B1000000): STR R1, R0, 0H |
0329 | h(80E00034): LDR R0, SP, 34H |
032A | h(D11D3E4C): BLEQ MT [trap=4, pos=7486] |
032B | i(81E00038): LDR R1, SP, 38H |
032C | i(D11D494C): BLEQ MT [trap=4, pos=7497] |
032D | j(8110000C): LDR R1, R1, CH |
032E | j(A1000008): STR R1, R0, 8H |
032F | k(80E00038): LDR R0, SP, 38H |
0330 | k(D11D524C): BLEQ MT [trap=4, pos=7506] |
0331 | l(81E00034): LDR R1, SP, 34H |
0332 | l(A100000C): STR R1, R0, CH |
0333 | m(80E00034): LDR R0, SP, 34H |
0334 | m(D11D634C): BLEQ MT [trap=4, pos=7523] |
0335 | n(81E0003C): LDR R1, SP, 3CH |
0336 | n(A1000010): STR R1, R0, 10H |
| t.mnoo := mod.levp;q t.typobjr := obj;s T := t |
0337 | o(80E0003C): LDR R0, SP, 3CH |
0338 | o(D11D794C): BLEQ MT [trap=4, pos=7545] |
0339 | p(81E00038): LDR R1, SP, 38H |
033A | p(D11D844C): BLEQ MT [trap=4, pos=7556] |
033B | q(81100004): LDR R1, R1, 4H |
033C | q(A1000008): STR R1, R0, 8H |
033D | r(80E0003C): LDR R0, SP, 3CH |
033E | r(D11D8E4C): BLEQ MT [trap=4, pos=7566] |
033F | s(81E00034): LDR R1, SP, 34H |
0340 | s(A1000018): STR R1, R0, 18H |
| ENDt ; |
0341 | t(80E0003C): LDR R0, SP, 3CH |
0342 | t(81E00010): LDR R1, SP, 10H |
0343 | t(A0100000): STR R0, R1, 0H |
| typtab[ref]u := T |
0344 | u(80E00018): LDR R0, SP, 18H |
0345 | u(41090040): SUB R1, R0, 40H |
0346 | u(DA1DBF1C): BLCC MT [trap=1, pos=7615] |
0347 | u(40010002): LSL R0, R0, 2H |
0348 | u .FIXUP D |
0348 | u(8D000031): LDR SB, MT, MOD0 [ORB] |
0349 | u(00D80000): ADD R0, SB, R0 [global array] |
| ENDv |
034A | v(81E00010): LDR R1, SP, 10H |
034B | v(81100000): LDR R1, R1, 0H |
034C | v(A1000098): STR R1, R0, 98H |
| END |
| ENDw InType; |
034D | w(8FE00000): LDR LNK, SP, 0H |
034E | w(4EE80080): ADD SP, SP, 80H |
034F | w(C700000F): B LNK |
| |
| PROCEDURE Import*(VAR modid, modid1: ORS.Ident); |
| VAR key: LONGINT; class, k: INTEGER; |
| obj: Object; t: Type; |
| thismod: Object; |
| modname, fname: ORS.Ident; |
| F: Files.File; R: Files.Rider; |
| BEGINx |
0350 | x .PROC 22 |
0350 | x(4EE90080): SUB SP, SP, 80H |
0351 | x(AFE00000): STR LNK, SP, 0H |
0352 | x(A0E00004): STR R0, SP, 4H |
0353 | x(A1E00008): STR R1, SP, 8H |
| IF modid1 = "SYSTEM" THENy |
0354 | y(80E00008): LDR R0, SP, 8H |
0355 | y .FIXUP D |
0355 | y(8D00000D): LDR SB, MT, MOD0 [ORB] |
0356 | y(41D801BC): ADD R1, SB, 1BCH ["SYSTEM"] |
0357 | y(92000000): LDR R2, R0, 0H |
0358 | y(40080001): ADD R0, R0, 1H |
0359 | y(93100000): LDR R3, R1, 0H |
035A | y(41180001): ADD R1, R1, 1H |
035B | y(04290003): SUB R4, R2, R3 |
035C | y(E9000002): BNE 2 [035FH] |
035D | y(44290000): SUB R4, R2, 0H |
035E | y(E9FFFFF8): BNE -8 [0357H] |
035F | y(E9000018): BNE 24 [0378H] |
| thismod := ThisModule(modid,z modid1,a TRUE,b key)c;d DEC(nofmod);e |
0360 | z(80E00004): LDR R0, SP, 4H |
0361 | a(81E00008): LDR R1, SP, 8H |
0362 | b(42000001): MOV R2, R0, 1H |
0363 | c(83E0000C): LDR R3, SP, CH |
0364 | d(F7FFFDD9): BL -551 [013EH] |
0365 | d(A0E00020): STR R0, SP, 20H |
0366 | e .FIXUP D |
0366 | e(8D000011): LDR SB, MT, MOD0 [ORB] |
0367 | e(40D80090): ADD R0, SB, 90H [data] |
0368 | e(81000000): LDR R1, R0, 0H |
0369 | e(41190001): SUB R1, R1, 1H |
036A | e(A1000000): STR R1, R0, 0H |
| thismod.levf := 0;g thismod.dsch := system;i thismod.rdoj := TRUE |
036B | f(80E00020): LDR R0, SP, 20H |
036C | f(D11F394C): BLEQ MT [trap=4, pos=7993] |
036D | g(41000000): MOV R1, R0, 0H |
036E | g(A1000004): STR R1, R0, 4H |
036F | h(80E00020): LDR R0, SP, 20H |
0370 | h(D11F4B4C): BLEQ MT [trap=4, pos=8011] |
0371 | i(81D00068): LDR R1, SB, 68H |
0372 | i(A100000C): STR R1, R0, CH |
0373 | j(80E00020): LDR R0, SP, 20H |
0374 | j(D11F624C): BLEQ MT [trap=4, pos=8034] |
| ELSEk MakeFileNamel(fname,m modid1,n ".smb")o;p F := Files.Old(fname)q;r |
0375 | k(41000001): MOV R1, R0, 1H |
0376 | k(B1000003): STR R1, R0, 3H |
0377 | l(E70000C0): B 192 [0438H] |
0378 | m(40E80044): ADD R0, SP, 44H |
0379 | n(81E00008): LDR R1, SP, 8H |
037A | n(42000020): MOV R2, R0, 20H |
037B | o .FIXUP D |
037B | o(8D000015): LDR SB, MT, MOD0 [ORB] |
037C | o(43D801C4): ADD R3, SB, 1C4H [".smb"] |
037D | o(44000005): MOV R4, R0, 5H |
037E | p(F7FFFD72): BL -654 [00F1H] |
037F | q(40E80044): ADD R0, SP, 44H |
0380 | q(41000020): MOV R1, R0, 20H |
0381 | r .FIXUP P |
0381 | r(F7102092): BL MOD1 [Files] PROC2 |
0382 | r(A0E00064): STR R0, SP, 64H |
| IF F # NIL THENs |
0383 | s(80E00064): LDR R0, SP, 64H |
0384 | s(E10000AF): BEQ 175 [0434H] |
| Files.Set(R,t F,u 0)v;w Files.ReadInt(R,x key)y;z Files.ReadInt(R,a key)b;c Files.ReadString(R,d modname)e;f |
0385 | t(40E80068): ADD R0, SP, 68H |
0386 | t .FIXUP D |
0386 | t(8D10000B): LDR SB, MT, MOD1 [Files] |
0387 | t(41D80001): ADD R1, SB, VAR1 |
0388 | u(82E00064): LDR R2, SP, 64H |
0389 | v(43000000): MOV R3, R0, 0H |
038A | w .FIXUP P |
038A | w(F710B009): BL MOD1 [Files] PROC11 |
038B | x(40E80068): ADD R0, SP, 68H |
038C | x .FIXUP D |
038C | x(8D100006): LDR SB, MT, MOD1 [Files] |
038D | x(41D80001): ADD R1, SB, VAR1 |
038E | y(42E8000C): ADD R2, SP, CH |
038F | z .FIXUP P |
038F | z(F7111005): BL MOD1 [Files] PROC17 |
0390 | a(40E80068): ADD R0, SP, 68H |
0391 | a .FIXUP D |
0391 | a(8D100005): LDR SB, MT, MOD1 [Files] |
0392 | a(41D80001): ADD R1, SB, VAR1 |
0393 | b(42E8000C): ADD R2, SP, CH |
0394 | c .FIXUP P |
0394 | c(F7111005): BL MOD1 [Files] PROC17 |
0395 | d(40E80068): ADD R0, SP, 68H |
0396 | d .FIXUP D |
0396 | d(8D100005): LDR SB, MT, MOD1 [Files] |
0397 | d(41D80001): ADD R1, SB, VAR1 |
0398 | e(42E80024): ADD R2, SP, 24H |
0399 | e(43000020): MOV R3, R0, 20H |
039A | f .FIXUP P |
039A | f(F7114006): BL MOD1 [Files] PROC20 |
| thismod := ThisModule(modid,g modid1,h TRUE,i key)j;k thismod.rdol := TRUE;m |
039B | g(80E00004): LDR R0, SP, 4H |
039C | h(81E00008): LDR R1, SP, 8H |
039D | i(42000001): MOV R2, R0, 1H |
039E | j(83E0000C): LDR R3, SP, CH |
039F | k(F7FFFD9E): BL -610 [013EH] |
03A0 | k(A0E00020): STR R0, SP, 20H |
03A1 | l(80E00020): LDR R0, SP, 20H |
03A2 | l(D120724C): BLEQ MT [trap=4, pos=8306] |
03A3 | m(41000001): MOV R1, R0, 1H |
03A4 | m(B1000003): STR R1, R0, 3H |
| Read(R,n class)o;p (*version key*) |
03A5 | n(40E80068): ADD R0, SP, 68H |
03A6 | n .FIXUP D |
03A6 | n(8D100010): LDR SB, MT, MOD1 [Files] |
03A7 | n(41D80001): ADD R1, SB, VAR1 |
03A8 | o(42E80010): ADD R2, SP, 10H |
03A9 | p(F7FFFE05): BL -507 [01AFH] |
| IF class # versionkey THENq ORS.Mark("wrong version")r ENDs ; |
03AA | q(80E00010): LDR R0, SP, 10H |
03AB | q(40090001): SUB R0, R0, 1H |
03AC | q(E1000004): BEQ 4 [03B1H] |
03AD | r .FIXUP D |
03AD | r(8D000007): LDR SB, MT, MOD0 [ORB] |
03AE | r(40D801CC): ADD R0, SB, 1CCH ["wrong version"] |
03AF | r(4100000E): MOV R1, R0, EH |
03B0 | s .FIXUP P |
03B0 | s(F7209016): BL MOD2 [ORS] PROC9 |
| Read(R,t class)u;v |
03B1 | t(40E80068): ADD R0, SP, 68H |
03B2 | t .FIXUP D |
03B2 | t(8D100005): LDR SB, MT, MOD1 [Files] |
03B3 | t(41D80001): ADD R1, SB, VAR1 |
03B4 | u(42E80010): ADD R2, SP, 10H |
03B5 | v(F7FFFDF9): BL -519 [01AFH] |
| WHILE class # 0 DOw |
03B6 | w(80E00010): LDR R0, SP, 10H |
03B7 | w(E100007B): BEQ 123 [0433H] |
| NEW(obj);x obj.classy := class;z Files.ReadString(R,a obj.nameb)c;d |
03B8 | x(40E80018): ADD R0, SP, 18H |
03B9 | x .FIXUP D |
03B9 | x(8D000007): LDR SB, MT, MOD0 [ORB] |
03BA | x(41D80000): ADD R1, SB, 0H [data] |
03BB | x(D7212D0C): BL MT [trap=0, pos=8493] |
03BC | y(80E00018): LDR R0, SP, 18H |
03BD | y(D121374C): BLEQ MT [trap=4, pos=8503] |
03BE | z(81E00010): LDR R1, SP, 10H |
03BF | z(B1000000): STR R1, R0, 0H |
03C0 | a(40E80068): ADD R0, SP, 68H |
03C1 | a .FIXUP D |
03C1 | a(8D100008): LDR SB, MT, MOD1 [Files] |
03C2 | a(41D80001): ADD R1, SB, VAR1 |
03C3 | b(82E00018): LDR R2, SP, 18H |
03C4 | b(D1215E4C): BLEQ MT [trap=4, pos=8542] |
03C5 | c(42280014): ADD R2, R2, 14H |
03C6 | c(43000020): MOV R3, R0, 20H |
03C7 | d .FIXUP P |
03C7 | d(F7114017): BL MOD1 [Files] PROC20 |
| InType(R,e thismod,f obj.typeg)h;i obj.levj := -thismod.levk;l |
03C8 | e(40E80068): ADD R0, SP, 68H |
03C9 | e .FIXUP D |
03C9 | e(8D100008): LDR SB, MT, MOD1 [Files] |
03CA | e(41D80001): ADD R1, SB, VAR1 |
03CB | f(82E00020): LDR R2, SP, 20H |
03CC | g(83E00018): LDR R3, SP, 18H |
03CD | g(D121864C): BLEQ MT [trap=4, pos=8582] |
03CE | h(43380010): ADD R3, R3, 10H |
03CF | i(F7FFFDF6): BL -522 [01C6H] |
03D0 | j(80E00018): LDR R0, SP, 18H |
03D1 | j(D121904C): BLEQ MT [trap=4, pos=8592] |
03D2 | k(81E00020): LDR R1, SP, 20H |
03D3 | k(D121A04C): BLEQ MT [trap=4, pos=8608] |
03D4 | l(81100004): LDR R1, R1, 4H |
03D5 | l(42000000): MOV R2, R0, 0H |
03D6 | l(01290001): SUB R1, R2, R1 |
03D7 | l(A1000004): STR R1, R0, 4H |
| IF class = Typ THENm |
03D8 | m(80E00010): LDR R0, SP, 10H |
03D9 | m(40090005): SUB R0, R0, 5H |
03DA | m(E9000020): BNE 32 [03FBH] |
| t := obj.typen;o t.typobjp := obj;q Read(R,r k)s;t (*fixup bases of previously declared pointer types*) |
03DB | n(80E00018): LDR R0, SP, 18H |
03DC | n(D121D94C): BLEQ MT [trap=4, pos=8665] |
03DD | o(80000010): LDR R0, R0, 10H |
03DE | o(A0E0001C): STR R0, SP, 1CH |
03DF | p(80E0001C): LDR R0, SP, 1CH |
03E0 | p(D121E34C): BLEQ MT [trap=4, pos=8675] |
03E1 | q(81E00018): LDR R1, SP, 18H |
03E2 | q(A1000018): STR R1, R0, 18H |
03E3 | r(40E80068): ADD R0, SP, 68H |
03E4 | r .FIXUP D |
03E4 | r(8D10001B): LDR SB, MT, MOD1 [Files] |
03E5 | r(41D80001): ADD R1, SB, VAR1 |
03E6 | s(42E80014): ADD R2, SP, 14H |
03E7 | t(F7FFFDC7): BL -569 [01AFH] |
| WHILE k # 0 DOu typtab[k]v.basew := t;x Read(R,y k)z ENDa |
03E8 | u(80E00014): LDR R0, SP, 14H |
03E9 | u(E1000010): BEQ 16 [03FAH] |
03EA | v(80E00014): LDR R0, SP, 14H |
03EB | v(41090040): SUB R1, R0, 40H |
03EC | v(DA22521C): BLCC MT [trap=1, pos=8786] |
03ED | v(40010002): LSL R0, R0, 2H |
03EE | v .FIXUP D |
03EE | v(8D00000A): LDR SB, MT, MOD0 [ORB] |
03EF | v(00D80000): ADD R0, SB, R0 [global array] |
03F0 | w(80000098): LDR R0, R0, 98H |
03F1 | w(D122574C): BLEQ MT [trap=4, pos=8791] |
03F2 | x(81E0001C): LDR R1, SP, 1CH |
03F3 | x(A100001C): STR R1, R0, 1CH |
03F4 | y(40E80068): ADD R0, SP, 68H |
03F5 | y .FIXUP D |
03F5 | y(8D100007): LDR SB, MT, MOD1 [Files] |
03F6 | y(41D80001): ADD R1, SB, VAR1 |
03F7 | z(42E80014): ADD R2, SP, 14H |
03F8 | a(F7FFFDB6): BL -586 [01AFH] |
03F9 | a(E7FFFFEE): B -18 [03E8H] |
| ELSIF classb = Const THENc |
03FA | b(E7000028): B 40 [0423H] |
03FB | c(80E00010): LDR R0, SP, 10H |
03FC | c(40090001): SUB R0, R0, 1H |
03FD | c(E9000017): BNE 23 [0415H] |
| IF obj.typed.forme = Real THENf Files.ReadInt(R,g obj.valh)i ELSEj Filesk.ReadNum(R,l obj.valm)n ENDo |
03FE | d(80E00018): LDR R0, SP, 18H |
03FF | d(D122A74C): BLEQ MT [trap=4, pos=8871] |
0400 | e(80000010): LDR R0, R0, 10H |
0401 | e(D122AC4C): BLEQ MT [trap=4, pos=8876] |
0402 | f(80000000): LDR R0, R0, 0H |
0403 | f(40090005): SUB R0, R0, 5H |
0404 | f(E9000008): BNE 8 [040DH] |
0405 | g(40E80068): ADD R0, SP, 68H |
0406 | g .FIXUP D |
0406 | g(8D100011): LDR SB, MT, MOD1 [Files] |
0407 | g(41D80001): ADD R1, SB, VAR1 |
0408 | h(82E00018): LDR R2, SP, 18H |
0409 | h(D122D14C): BLEQ MT [trap=4, pos=8913] |
040A | i(42280034): ADD R2, R2, 34H |
040B | j .FIXUP P |
040B | j(F7111044): BL MOD1 [Files] PROC17 |
040C | k(E7000007): B 7 [0414H] |
040D | l(40E80068): ADD R0, SP, 68H |
040E | l .FIXUP D |
040E | l(8D100008): LDR SB, MT, MOD1 [Files] |
040F | l(41D80001): ADD R1, SB, VAR1 |
0410 | m(82E00018): LDR R2, SP, 18H |
0411 | m(D122F04C): BLEQ MT [trap=4, pos=8944] |
0412 | n(42280034): ADD R2, R2, 34H |
0413 | o .FIXUP P |
0413 | o(F7115008): BL MOD1 [Files] PROC21 |
| ELSIF classp = Var THENq Files.ReadNum(R,r obj.vals)t;u obj.rdov := TRUE |
0414 | p(E700000E): B 14 [0423H] |
0415 | q(80E00010): LDR R0, SP, 10H |
0416 | q(40090002): SUB R0, R0, 2H |
0417 | q(E900000B): BNE 11 [0423H] |
0418 | r(40E80068): ADD R0, SP, 68H |
0419 | r .FIXUP D |
0419 | r(8D10000B): LDR SB, MT, MOD1 [Files] |
041A | r(41D80001): ADD R1, SB, VAR1 |
041B | s(82E00018): LDR R2, SP, 18H |
041C | s(D1232F4C): BLEQ MT [trap=4, pos=9007] |
041D | t(42280034): ADD R2, R2, 34H |
041E | u .FIXUP P |
041E | u(F711500B): BL MOD1 [Files] PROC21 |
041F | v(80E00018): LDR R0, SP, 18H |
0420 | v(D123394C): BLEQ MT [trap=4, pos=9017] |
| ENDw ; |
0421 | w(41000001): MOV R1, R0, 1H |
0422 | w(B1000003): STR R1, R0, 3H |
| obj.nextx := thismod.dscy;z thismod.dsca := obj;b Read(R,c class)d |
0423 | x(80E00018): LDR R0, SP, 18H |
0424 | x(D123644C): BLEQ MT [trap=4, pos=9060] |
0425 | y(81E00020): LDR R1, SP, 20H |
0426 | y(D123734C): BLEQ MT [trap=4, pos=9075] |
0427 | z(8110000C): LDR R1, R1, CH |
0428 | z(A1000008): STR R1, R0, 8H |
0429 | a(80E00020): LDR R0, SP, 20H |
042A | a(D123804C): BLEQ MT [trap=4, pos=9088] |
042B | b(81E00018): LDR R1, SP, 18H |
042C | b(A100000C): STR R1, R0, CH |
042D | c(40E80068): ADD R0, SP, 68H |
042E | c .FIXUP D |
042E | c(8D100015): LDR SB, MT, MOD1 [Files] |
042F | c(41D80001): ADD R1, SB, VAR1 |
0430 | d(42E80010): ADD R2, SP, 10H |
| ENDe ; |
0431 | e(F7FFFD7D): BL -643 [01AFH] |
0432 | e(E7FFFF83): B -125 [03B6H] |
| ELSE ORSf.Mark("import not available")g |
0433 | f(E7000004): B 4 [0438H] |
0434 | g .FIXUP D |
0434 | g(8D000006): LDR SB, MT, MOD0 [ORB] |
0435 | g(40D801DC): ADD R0, SB, 1DCH ["import not available"] |
0436 | g(41000015): MOV R1, R0, 15H |
| ENDh |
0437 | h .FIXUP P |
0437 | h(F7209019): BL MOD2 [ORS] PROC9 |
| END |
| ENDi Import; |
0438 | i(8FE00000): LDR LNK, SP, 0H |
0439 | i(4EE80080): ADD SP, SP, 80H |
043A | i(C700000F): B LNK |
| |
| (*-------------------------------- Export ---------------------------------*) |
| |
| PROCEDURE Write(VAR R: Files.Rider; x: INTEGER); |
| BEGINj Files.WriteByte(R,k x)l |
043B | j(4EE90010): SUB SP, SP, 10H |
043C | j(AFE00000): STR LNK, SP, 0H |
043D | j(A0E00004): STR R0, SP, 4H |
043E | j(A1E00008): STR R1, SP, 8H |
043F | j(A2E0000C): STR R2, SP, CH |
0440 | k(80E00004): LDR R0, SP, 4H |
0441 | k(81E00008): LDR R1, SP, 8H |
0442 | l(82E0000C): LDR R2, SP, CH |
| ENDm Write; |
0443 | m .FIXUP P |
0443 | m(F711600C): BL MOD1 [Files] PROC22 |
0444 | m(8FE00000): LDR LNK, SP, 0H |
0445 | m(4EE80010): ADD SP, SP, 10H |
0446 | m(C700000F): B LNK |
| |
| PROCEDURE OutType(VAR R: Files.Rider; t: Type); |
| VAR obj, mod, fld: Object; |
| |
| PROCEDUREn OutPar(VAR R: Files.Rider; par: Object; n: INTEGER); |
0447 | n(E700008D): B 141 [04D5H] |
| VAR cl: INTEGER; |
| BEGINo |
0448 | o(4EE90018): SUB SP, SP, 18H |
0449 | o(AFE00000): STR LNK, SP, 0H |
044A | o(A0E00004): STR R0, SP, 4H |
044B | o(A1E00008): STR R1, SP, 8H |
044C | o(A2E0000C): STR R2, SP, CH |
044D | o(A3E00010): STR R3, SP, 10H |
| IF n > 0 THENp |
044E | p(80E00010): LDR R0, SP, 10H |
044F | p(40090000): SUB R0, R0, 0H |
0450 | p(E6000023): BLE 35 [0474H] |
| OutPar(R,q par.nextr,s n-1)t;u cl := par.classv;w |
0451 | q(80E00004): LDR R0, SP, 4H |
0452 | q(81E00008): LDR R1, SP, 8H |
0453 | r(82E0000C): LDR R2, SP, CH |
0454 | r(D125894C): BLEQ MT [trap=4, pos=9609] |
0455 | s(82200008): LDR R2, R2, 8H |
0456 | t(83E00010): LDR R3, SP, 10H |
0457 | t(43390001): SUB R3, R3, 1H |
0458 | u(F7FFFFEF): BL -17 [0448H] |
0459 | v(80E0000C): LDR R0, SP, CH |
045A | v(D125A04C): BLEQ MT [trap=4, pos=9632] |
045B | w(90000000): LDR R0, R0, 0H |
045C | w(A0E00014): STR R0, SP, 14H |
| Write(R,x cl)y;z |
045D | x(80E00004): LDR R0, SP, 4H |
045E | x(81E00008): LDR R1, SP, 8H |
045F | y(82E00014): LDR R2, SP, 14H |
0460 | z(F7FFFFDA): BL -38 [043BH] |
| IF par.rdoa THENb Write(R,c 1)d ELSEe Writef(R,g 0)h ENDi ; |
0461 | a(80E0000C): LDR R0, SP, CH |
0462 | a(D125CA4C): BLEQ MT [trap=4, pos=9674] |
0463 | b(90000003): LDR R0, R0, 3H |
0464 | b(E1000005): BEQ 5 [046AH] |
0465 | c(80E00004): LDR R0, SP, 4H |
0466 | c(81E00008): LDR R1, SP, 8H |
0467 | d(42000001): MOV R2, R0, 1H |
0468 | e(F7FFFFD2): BL -46 [043BH] |
0469 | f(E7000004): B 4 [046EH] |
046A | g(80E00004): LDR R0, SP, 4H |
046B | g(81E00008): LDR R1, SP, 8H |
046C | h(42000000): MOV R2, R0, 0H |
046D | i(F7FFFFCD): BL -51 [043BH] |
| OutType(R,j par.typek)l |
046E | j(80E00004): LDR R0, SP, 4H |
046F | j(81E00008): LDR R1, SP, 8H |
0470 | k(82E0000C): LDR R2, SP, CH |
0471 | k(D1260E4C): BLEQ MT [trap=4, pos=9742] |
0472 | l(82200010): LDR R2, R2, 10H |
| ENDm |
0473 | m(F7FFFFD3): BL -45 [0447H] |
| ENDn OutPar; |
0474 | n(8FE00000): LDR LNK, SP, 0H |
0475 | n(4EE80018): ADD SP, SP, 18H |
0476 | n(C700000F): B LNK |
| |
| PROCEDURE FindHiddenPointers(VAR R: Files.Rider; typ: Type; offset: LONGINT); |
| VAR fld: Object; i, n: LONGINT; |
| BEGINo |
0477 | o(4EE90020): SUB SP, SP, 20H |
0478 | o(AFE00000): STR LNK, SP, 0H |
0479 | o(A0E00004): STR R0, SP, 4H |
047A | o(A1E00008): STR R1, SP, 8H |
047B | o(A2E0000C): STR R2, SP, CH |
047C | o(A3E00010): STR R3, SP, 10H |
| IF (typ.formp = Pointer)q OR (rtyp.forms = NilTyp)t THENu Write(R,v Fld)w;x Write(R,y 0)z;a Files.WriteNum(R,b offset)c |
047D | p(80E0000C): LDR R0, SP, CH |
047E | p(D126BF4C): BLEQ MT [trap=4, pos=9919] |
047F | q(80000000): LDR R0, R0, 0H |
0480 | q(40090007): SUB R0, R0, 7H |
0481 | r(E1000005): BEQ 5 [0487H] |
0482 | s(80E0000C): LDR R0, SP, CH |
0483 | s(D126D74C): BLEQ MT [trap=4, pos=9943] |
0484 | t(80000000): LDR R0, R0, 0H |
0485 | t(40090008): SUB R0, R0, 8H |
0486 | u(E900000D): BNE 13 [0494H] |
0487 | v(80E00004): LDR R0, SP, 4H |
0488 | v(81E00008): LDR R1, SP, 8H |
0489 | w(42000004): MOV R2, R0, 4H |
048A | x(F7FFFFB0): BL -80 [043BH] |
048B | y(80E00004): LDR R0, SP, 4H |
048C | y(81E00008): LDR R1, SP, 8H |
048D | z(42000000): MOV R2, R0, 0H |
048E | a(F7FFFFAC): BL -84 [043BH] |
048F | b(80E00004): LDR R0, SP, 4H |
0490 | b(81E00008): LDR R1, SP, 8H |
0491 | c(82E00010): LDR R2, SP, 10H |
| ELSIFd type.formf = Record THENg fld := typ.dsch;i |
0492 | d .FIXUP P |
0492 | d(F711D04F): BL MOD1 [Files] PROC29 |
0493 | e(E700003E): B 62 [04D2H] |
0494 | f(80E0000C): LDR R0, SP, CH |
0495 | f(D127314C): BLEQ MT [trap=4, pos=10033] |
0496 | g(80000000): LDR R0, R0, 0H |
0497 | g(4009000D): SUB R0, R0, DH |
0498 | g(E9000017): BNE 23 [04B0H] |
0499 | h(80E0000C): LDR R0, SP, CH |
049A | h(D1274E4C): BLEQ MT [trap=4, pos=10062] |
049B | i(80000014): LDR R0, R0, 14H |
049C | i(A0E00014): STR R0, SP, 14H |
| WHILE fld # NIL DOj FindHiddenPointers(R,k fld.typel,m fld.valn + offset)o;p fld := fld.nextq ENDr |
049D | j(80E00014): LDR R0, SP, 14H |
049E | j(E1000010): BEQ 16 [04AFH] |
049F | k(80E00004): LDR R0, SP, 4H |
04A0 | k(81E00008): LDR R1, SP, 8H |
04A1 | l(82E00014): LDR R2, SP, 14H |
04A2 | l(D127894C): BLEQ MT [trap=4, pos=10121] |
04A3 | m(82200010): LDR R2, R2, 10H |
04A4 | n(83E00014): LDR R3, SP, 14H |
04A5 | n(D127924C): BLEQ MT [trap=4, pos=10130] |
04A6 | o(83300034): LDR R3, R3, 34H |
04A7 | o(84E00010): LDR R4, SP, 10H |
04A8 | o(03380004): ADD R3, R3, R4 |
04A9 | p(F7FFFFCD): BL -51 [0477H] |
04AA | q(80E00014): LDR R0, SP, 14H |
04AB | q(D127AD4C): BLEQ MT [trap=4, pos=10157] |
04AC | r(80000008): LDR R0, R0, 8H |
04AD | r(A0E00014): STR R0, SP, 14H |
04AE | r(E7FFFFEE): B -18 [049DH] |
| ELSIF typs.formt = Array THENu i := 0;v n := typ.lenw;x |
04AF | s(E7000022): B 34 [04D2H] |
04B0 | t(80E0000C): LDR R0, SP, CH |
04B1 | t(D127C64C): BLEQ MT [trap=4, pos=10182] |
04B2 | u(80000000): LDR R0, R0, 0H |
04B3 | u(4009000C): SUB R0, R0, CH |
04B4 | u(E900001D): BNE 29 [04D2H] |
04B5 | v(40000000): MOV R0, R0, 0H |
04B6 | v(A0E00018): STR R0, SP, 18H |
04B7 | w(80E0000C): LDR R0, SP, CH |
04B8 | w(D127E84C): BLEQ MT [trap=4, pos=10216] |
04B9 | x(80000010): LDR R0, R0, 10H |
04BA | x(A0E0001C): STR R0, SP, 1CH |
| WHILE i < n DOy FindHiddenPointers(R,z typ.basea,b typ.basec.sized * i +e offset)f;g INC(i) ENDh |
04BB | y(80E00018): LDR R0, SP, 18H |
04BC | y(81E0001C): LDR R1, SP, 1CH |
04BD | y(00090001): SUB R0, R0, R1 |
04BE | y(ED000013): BGE 19 [04D2H] |
04BF | z(80E00004): LDR R0, SP, 4H |
04C0 | z(81E00008): LDR R1, SP, 8H |
04C1 | a(82E0000C): LDR R2, SP, CH |
04C2 | a(D1281F4C): BLEQ MT [trap=4, pos=10271] |
04C3 | b(8220001C): LDR R2, R2, 1CH |
04C4 | c(83E0000C): LDR R3, SP, CH |
04C5 | c(D128294C): BLEQ MT [trap=4, pos=10281] |
04C6 | d(8330001C): LDR R3, R3, 1CH |
04C7 | d(D1282E4C): BLEQ MT [trap=4, pos=10286] |
04C8 | e(83300020): LDR R3, R3, 20H |
04C9 | e(84E00018): LDR R4, SP, 18H |
04CA | e(033A0004): MUL R3, R3, R4 |
04CB | f(84E00010): LDR R4, SP, 10H |
04CC | f(03380004): ADD R3, R3, R4 |
04CD | g(F7FFFFA9): BL -87 [0477H] |
04CE | h(80E00018): LDR R0, SP, 18H |
04CF | h(40080001): ADD R0, R0, 1H |
04D0 | h(A0E00018): STR R0, SP, 18H |
04D1 | h(E7FFFFE9): B -23 [04BBH] |
| END |
| ENDi FindHiddenPointers; |
04D2 | i(8FE00000): LDR LNK, SP, 0H |
04D3 | i(4EE80020): ADD SP, SP, 20H |
04D4 | i(C700000F): B LNK |
| |
| BEGINj |
04D5 | j(4EE9001C): SUB SP, SP, 1CH |
04D6 | j(AFE00000): STR LNK, SP, 0H |
04D7 | j(A0E00004): STR R0, SP, 4H |
04D8 | j(A1E00008): STR R1, SP, 8H |
04D9 | j(A2E0000C): STR R2, SP, CH |
| IF t.refk > 0 THENl (*type was already output*) Write(R,m -t.refn)o |
04DA | k(80E0000C): LDR R0, SP, CH |
04DB | k(D128844C): BLEQ MT [trap=4, pos=10372] |
04DC | l(80000004): LDR R0, R0, 4H |
04DD | l(40090000): SUB R0, R0, 0H |
04DE | l(E6000009): BLE 9 [04E8H] |
04DF | m(80E00004): LDR R0, SP, 4H |
04E0 | m(81E00008): LDR R1, SP, 8H |
04E1 | n(82E0000C): LDR R2, SP, CH |
04E2 | n(D128B94C): BLEQ MT [trap=4, pos=10425] |
04E3 | o(82200004): LDR R2, R2, 4H |
04E4 | o(43000000): MOV R3, R0, 0H |
04E5 | o(02390002): SUB R2, R3, R2 |
| ELSEp objq := t.typobjr;s |
04E6 | p(F7FFFF54): BL -172 [043BH] |
04E7 | q(E70000FD): B 253 [05E5H] |
04E8 | r(80E0000C): LDR R0, SP, CH |
04E9 | r(D128D34C): BLEQ MT [trap=4, pos=10451] |
04EA | s(80000018): LDR R0, R0, 18H |
04EB | s(A0E00010): STR R0, SP, 10H |
| IF obj # NIL THENt Write(R,u Ref)v;w t.refx := Ref;y INC(Ref) ELSEz (*anonymous*) Writea(R,b 0)c ENDd ; |
04EC | t(80E00010): LDR R0, SP, 10H |
04ED | t(E100000F): BEQ 15 [04FDH] |
04EE | u(80E00004): LDR R0, SP, 4H |
04EF | u(81E00008): LDR R1, SP, 8H |
04F0 | v .FIXUP D |
04F0 | v(8D0000BC): LDR SB, MT, MOD0 [ORB] |
04F1 | v(82D00094): LDR R2, SB, 94H [data] |
04F2 | w(F7FFFF48): BL -184 [043BH] |
04F3 | x(80E0000C): LDR R0, SP, CH |
04F4 | x(D129014C): BLEQ MT [trap=4, pos=10497] |
04F5 | y .FIXUP D |
04F5 | y(8D000005): LDR SB, MT, MOD0 [ORB] |
04F6 | y(81D00094): LDR R1, SB, 94H [data] |
04F7 | y(A1000004): STR R1, R0, 4H |
04F8 | z(40D80094): ADD R0, SB, 94H |
04F9 | z(81000000): LDR R1, R0, 0H |
04FA | z(41180001): ADD R1, R1, 1H |
04FB | z(A1000000): STR R1, R0, 0H |
04FC | a(E7000004): B 4 [0501H] |
04FD | b(80E00004): LDR R0, SP, 4H |
04FE | b(81E00008): LDR R1, SP, 8H |
04FF | c(42000000): MOV R2, R0, 0H |
0500 | d(F7FFFF3A): BL -198 [043BH] |
| Write(R,e t.formf)g;h |
0501 | e(80E00004): LDR R0, SP, 4H |
0502 | e(81E00008): LDR R1, SP, 8H |
0503 | f(82E0000C): LDR R2, SP, CH |
0504 | f(D1294D4C): BLEQ MT [trap=4, pos=10573] |
0505 | g(82200000): LDR R2, R2, 0H |
0506 | h(F7FFFF34): BL -204 [043BH] |
| IF t.formi = Pointer THENj OutType(R,k t.basel)m |
0507 | i(80E0000C): LDR R0, SP, CH |
0508 | i(D1295F4C): BLEQ MT [trap=4, pos=10591] |
0509 | j(80000000): LDR R0, R0, 0H |
050A | j(40090007): SUB R0, R0, 7H |
050B | j(E9000007): BNE 7 [0513H] |
050C | k(80E00004): LDR R0, SP, 4H |
050D | k(81E00008): LDR R1, SP, 8H |
050E | l(82E0000C): LDR R2, SP, CH |
050F | l(D129804C): BLEQ MT [trap=4, pos=10624] |
0510 | m(8220001C): LDR R2, R2, 1CH |
| ELSIFn to.formp = Array THENq OutType(R,r t.bases)t;u Files.WriteNum(R,v t.lenw)x;y Files.WriteNum(R,z t.sizea)b |
0511 | n(F7FFFFC3): BL -61 [04D5H] |
0512 | o(E7000093): B 147 [05A6H] |
0513 | p(80E0000C): LDR R0, SP, CH |
0514 | p(D129944C): BLEQ MT [trap=4, pos=10644] |
0515 | q(80000000): LDR R0, R0, 0H |
0516 | q(4009000C): SUB R0, R0, CH |
0517 | q(E9000013): BNE 19 [052BH] |
0518 | r(80E00004): LDR R0, SP, 4H |
0519 | r(81E00008): LDR R1, SP, 8H |
051A | s(82E0000C): LDR R2, SP, CH |
051B | s(D129B34C): BLEQ MT [trap=4, pos=10675] |
051C | t(8220001C): LDR R2, R2, 1CH |
051D | u(F7FFFFB7): BL -73 [04D5H] |
051E | v(80E00004): LDR R0, SP, 4H |
051F | v(81E00008): LDR R1, SP, 8H |
0520 | w(82E0000C): LDR R2, SP, CH |
0521 | w(D129CD4C): BLEQ MT [trap=4, pos=10701] |
0522 | x(82200010): LDR R2, R2, 10H |
0523 | y .FIXUP P |
0523 | y(F711D091): BL MOD1 [Files] PROC29 |
0524 | z(80E00004): LDR R0, SP, 4H |
0525 | z(81E00008): LDR R1, SP, 8H |
0526 | a(82E0000C): LDR R2, SP, CH |
0527 | a(D129E84C): BLEQ MT [trap=4, pos=10728] |
0528 | b(82200020): LDR R2, R2, 20H |
| ELSIFc td.forme = Record THENf |
0529 | c .FIXUP P |
0529 | c(F711D006): BL MOD1 [Files] PROC29 |
052A | d(E700007B): B 123 [05A6H] |
052B | e(80E0000C): LDR R0, SP, CH |
052C | e(D129FC4C): BLEQ MT [trap=4, pos=10748] |
052D | f(80000000): LDR R0, R0, 0H |
052E | f(4009000D): SUB R0, R0, DH |
052F | f(E900005E): BNE 94 [058EH] |
| IF t.baseg # NIL THENh OutType(R,i t.basej)k ELSEl OutTypem(R,n noType)o ENDp ; |
0530 | g(80E0000C): LDR R0, SP, CH |
0531 | g(D12A1C4C): BLEQ MT [trap=4, pos=10780] |
0532 | h(8000001C): LDR R0, R0, 1CH |
0533 | h(E1000007): BEQ 7 [053BH] |
0534 | i(80E00004): LDR R0, SP, 4H |
0535 | i(81E00008): LDR R1, SP, 8H |
0536 | j(82E0000C): LDR R2, SP, CH |
0537 | j(D12A394C): BLEQ MT [trap=4, pos=10809] |
0538 | k(8220001C): LDR R2, R2, 1CH |
0539 | l(F7FFFF9B): BL -101 [04D5H] |
053A | m(E7000005): B 5 [0540H] |
053B | n(80E00004): LDR R0, SP, 4H |
053C | n(81E00008): LDR R1, SP, 8H |
053D | o .FIXUP D |
053D | o(8D000048): LDR SB, MT, MOD0 [ORB] |
053E | o(82D00088): LDR R2, SB, 88H [data] |
053F | p(F7FFFF95): BL -107 [04D5H] |
| IF obj # NIL THENq Files.WriteNum(R,r obj.exnos)t ELSEu Writev(R,w 0)x ENDy ; |
0540 | q(80E00010): LDR R0, SP, 10H |
0541 | q(E1000007): BEQ 7 [0549H] |
0542 | r(80E00004): LDR R0, SP, 4H |
0543 | r(81E00008): LDR R1, SP, 8H |
0544 | s(82E00010): LDR R2, SP, 10H |
0545 | s(D12A8D4C): BLEQ MT [trap=4, pos=10893] |
0546 | t(92200001): LDR R2, R2, 1H |
0547 | u .FIXUP P |
0547 | u(F711D01E): BL MOD1 [Files] PROC29 |
0548 | v(E7000004): B 4 [054DH] |
0549 | w(80E00004): LDR R0, SP, 4H |
054A | w(81E00008): LDR R1, SP, 8H |
054B | x(42000000): MOV R2, R0, 0H |
054C | y(F7FFFEEE): BL -274 [043BH] |
| Files.WriteNum(R,z t.nofpara)b;c Files.WriteNum(R,d t.sizee)f;g |
054D | z(80E00004): LDR R0, SP, 4H |
054E | z(81E00008): LDR R1, SP, 8H |
054F | a(82E0000C): LDR R2, SP, CH |
0550 | a(D12AC84C): BLEQ MT [trap=4, pos=10952] |
0551 | b(8220000C): LDR R2, R2, CH |
0552 | c .FIXUP P |
0552 | c(F711D00B): BL MOD1 [Files] PROC29 |
0553 | d(80E00004): LDR R0, SP, 4H |
0554 | d(81E00008): LDR R1, SP, 8H |
0555 | e(82E0000C): LDR R2, SP, CH |
0556 | e(D12AE34C): BLEQ MT [trap=4, pos=10979] |
0557 | f(82200020): LDR R2, R2, 20H |
0558 | g .FIXUP P |
0558 | g(F711D006): BL MOD1 [Files] PROC29 |
| fld := t.dsch;i |
0559 | h(80E0000C): LDR R0, SP, CH |
055A | h(D12AFA4C): BLEQ MT [trap=4, pos=11002] |
055B | i(80000014): LDR R0, R0, 14H |
055C | i(A0E00018): STR R0, SP, 18H |
| WHILE fld # NIL DOj (*fields*) |
055D | j(80E00018): LDR R0, SP, 18H |
055E | j(E100002A): BEQ 42 [0589H] |
| IF fld.expok THENl |
055F | k(80E00018): LDR R0, SP, 18H |
0560 | k(D12B384C): BLEQ MT [trap=4, pos=11064] |
0561 | l(90000002): LDR R0, R0, 2H |
0562 | l(E1000018): BEQ 24 [057BH] |
| Write(R,m Fld)n;o Files.WriteString(R,p fld.nameq)r;s OutType(R,t fld.typeu)v;w Files.WriteNum(R,x fld.valy)z (*offset*) |
0563 | m(80E00004): LDR R0, SP, 4H |
0564 | m(81E00008): LDR R1, SP, 8H |
0565 | n(42000004): MOV R2, R0, 4H |
0566 | o(F7FFFED4): BL -300 [043BH] |
0567 | p(80E00004): LDR R0, SP, 4H |
0568 | p(81E00008): LDR R1, SP, 8H |
0569 | q(82E00018): LDR R2, SP, 18H |
056A | q(D12B764C): BLEQ MT [trap=4, pos=11126] |
056B | r(42280014): ADD R2, R2, 14H |
056C | r(43000020): MOV R3, R0, 20H |
056D | s .FIXUP P |
056D | s(F711C015): BL MOD1 [Files] PROC28 |
056E | t(80E00004): LDR R0, SP, 4H |
056F | t(81E00008): LDR R1, SP, 8H |
0570 | u(82E00018): LDR R2, SP, 18H |
0571 | u(D12B8C4C): BLEQ MT [trap=4, pos=11148] |
0572 | v(82200010): LDR R2, R2, 10H |
0573 | w(F7FFFF61): BL -159 [04D5H] |
0574 | x(80E00004): LDR R0, SP, 4H |
0575 | x(81E00008): LDR R1, SP, 8H |
0576 | y(82E00018): LDR R2, SP, 18H |
0577 | y(D12BA84C): BLEQ MT [trap=4, pos=11176] |
0578 | z(82200034): LDR R2, R2, 34H |
| ELSEa FindHiddenPointersb(R,c fld.typed,e fld.valf)g |
0579 | a .FIXUP P |
0579 | a(F711D00C): BL MOD1 [Files] PROC29 |
057A | b(E7000009): B 9 [0584H] |
057B | c(80E00004): LDR R0, SP, 4H |
057C | c(81E00008): LDR R1, SP, 8H |
057D | d(82E00018): LDR R2, SP, 18H |
057E | d(D12BE34C): BLEQ MT [trap=4, pos=11235] |
057F | e(82200010): LDR R2, R2, 10H |
0580 | f(83E00018): LDR R3, SP, 18H |
0581 | f(D12BEC4C): BLEQ MT [trap=4, pos=11244] |
0582 | g(83300034): LDR R3, R3, 34H |
| ENDh ; |
0583 | h(F7FFFEF3): BL -269 [0477H] |
| fld := fld.nexti |
0584 | i(80E00018): LDR R0, SP, 18H |
0585 | i(D12C174C): BLEQ MT [trap=4, pos=11287] |
| ENDj ; |
0586 | j(80000008): LDR R0, R0, 8H |
0587 | j(A0E00018): STR R0, SP, 18H |
0588 | j(E7FFFFD4): B -44 [055DH] |
| Write(R,k 0)l |
0589 | k(80E00004): LDR R0, SP, 4H |
058A | k(81E00008): LDR R1, SP, 8H |
058B | l(42000000): MOV R2, R0, 0H |
| ELSIFm tn.formo = Proc THENp OutType(R,q t.baser)s;t OutPar(R,u t.dscv,w t.nofparx)y;z Write(R,a 0)b |
058C | m(F7FFFEAE): BL -338 [043BH] |
058D | n(E7000018): B 24 [05A6H] |
058E | o(80E0000C): LDR R0, SP, CH |
058F | o(D12C4C4C): BLEQ MT [trap=4, pos=11340] |
0590 | p(80000000): LDR R0, R0, 0H |
0591 | p(4009000A): SUB R0, R0, AH |
0592 | p(E9000013): BNE 19 [05A6H] |
0593 | q(80E00004): LDR R0, SP, 4H |
0594 | q(81E00008): LDR R1, SP, 8H |
0595 | r(82E0000C): LDR R2, SP, CH |
0596 | r(D12C6A4C): BLEQ MT [trap=4, pos=11370] |
0597 | s(8220001C): LDR R2, R2, 1CH |
0598 | t(F7FFFF3C): BL -196 [04D5H] |
0599 | u(80E00004): LDR R0, SP, 4H |
059A | u(81E00008): LDR R1, SP, 8H |
059B | v(82E0000C): LDR R2, SP, CH |
059C | v(D12C7C4C): BLEQ MT [trap=4, pos=11388] |
059D | w(82200014): LDR R2, R2, 14H |
059E | x(83E0000C): LDR R3, SP, CH |
059F | x(D12C864C): BLEQ MT [trap=4, pos=11398] |
05A0 | y(8330000C): LDR R3, R3, CH |
05A1 | z(F7FFFEA6): BL -346 [0448H] |
05A2 | a(80E00004): LDR R0, SP, 4H |
05A3 | a(81E00008): LDR R1, SP, 8H |
05A4 | b(42000000): MOV R2, R0, 0H |
| ENDc ; |
05A5 | c(F7FFFE95): BL -363 [043BH] |
| IF (t.mnod > 0)e & (fobj # NIL)g THENh (*re-export, output name*) |
05A6 | d(80E0000C): LDR R0, SP, CH |
05A7 | d(D12CB04C): BLEQ MT [trap=4, pos=11440] |
05A8 | e(80000008): LDR R0, R0, 8H |
05A9 | e(40090000): SUB R0, R0, 0H |
05AA | f(E6000036): BLE 54 [05E1H] |
05AB | g(80E00010): LDR R0, SP, 10H |
05AC | h(E1000034): BEQ 52 [05E1H] |
| mod := topScope.nexti;j |
05AD | i .FIXUP D |
05AD | i(8D000070): LDR SB, MT, MOD0 [ORB] |
05AE | i(80D00060): LDR R0, SB, 60H [data] |
05AF | i(D12D014C): BLEQ MT [trap=4, pos=11521] |
05B0 | j(80000008): LDR R0, R0, 8H |
05B1 | j(A0E00014): STR R0, SP, 14H |
| WHILE (mod # NIL)k & (lmod.levm # t.mnon)o DOp mod := mod.nextq ENDr ; |
05B2 | k(80E00014): LDR R0, SP, 14H |
05B3 | l(E100000D): BEQ 13 [05C1H] |
05B4 | m(80E00014): LDR R0, SP, 14H |
05B5 | m(D12D274C): BLEQ MT [trap=4, pos=11559] |
05B6 | n(81E0000C): LDR R1, SP, CH |
05B7 | n(D12D2F4C): BLEQ MT [trap=4, pos=11567] |
05B8 | o(80000004): LDR R0, R0, 4H |
05B9 | o(81100008): LDR R1, R1, 8H |
05BA | o(00090001): SUB R0, R0, R1 |
05BB | p(E1000005): BEQ 5 [05C1H] |
05BC | q(80E00014): LDR R0, SP, 14H |
05BD | q(D12D434C): BLEQ MT [trap=4, pos=11587] |
05BE | r(80000008): LDR R0, R0, 8H |
05BF | r(A0E00014): STR R0, SP, 14H |
05C0 | r(E7FFFFF1): B -15 [05B2H] |
| IF mod # NIL THENs Files.WriteString(R,t mod.nameu)v;w Files.WriteInt(R,x mod.valy)z;a Files.WriteString(R,b obj.namec)d |
05C1 | s(80E00014): LDR R0, SP, 14H |
05C2 | s(E1000015): BEQ 21 [05D8H] |
05C3 | t(80E00004): LDR R0, SP, 4H |
05C4 | t(81E00008): LDR R1, SP, 8H |
05C5 | u(82E00014): LDR R2, SP, 14H |
05C6 | u(D12D814C): BLEQ MT [trap=4, pos=11649] |
05C7 | v(42280014): ADD R2, R2, 14H |
05C8 | v(43000020): MOV R3, R0, 20H |
05C9 | w .FIXUP P |
05C9 | w(F711C050): BL MOD1 [Files] PROC28 |
05CA | x(80E00004): LDR R0, SP, 4H |
05CB | x(81E00008): LDR R1, SP, 8H |
05CC | y(82E00014): LDR R2, SP, 14H |
05CD | y(D12D9D4C): BLEQ MT [trap=4, pos=11677] |
05CE | z(82200034): LDR R2, R2, 34H |
05CF | a .FIXUP P |
05CF | a(F7119006): BL MOD1 [Files] PROC25 |
05D0 | b(80E00004): LDR R0, SP, 4H |
05D1 | b(81E00008): LDR R1, SP, 8H |
05D2 | c(82E00010): LDR R2, SP, 10H |
05D3 | c(D12DBD4C): BLEQ MT [trap=4, pos=11709] |
05D4 | d(42280014): ADD R2, R2, 14H |
05D5 | d(43000020): MOV R3, R0, 20H |
| ELSEe ORSf.Mark("re-export not found")g;h Write(R,i 0)j |
05D6 | e .FIXUP P |
05D6 | e(F711C007): BL MOD1 [Files] PROC28 |
05D7 | f(E7000008): B 8 [05E0H] |
05D8 | g .FIXUP D |
05D8 | g(8D00002B): LDR SB, MT, MOD0 [ORB] |
05D9 | g(40D801F4): ADD R0, SB, 1F4H ["re-export not found"] |
05DA | g(41000014): MOV R1, R0, 14H |
05DB | h .FIXUP P |
05DB | h(F7209005): BL MOD2 [ORS] PROC9 |
05DC | i(80E00004): LDR R0, SP, 4H |
05DD | i(81E00008): LDR R1, SP, 8H |
05DE | j(42000000): MOV R2, R0, 0H |
| ENDk |
05DF | k(F7FFFE5B): BL -421 [043BH] |
| ELSE Writel(R,m 0)n |
05E0 | l(E7000004): B 4 [05E5H] |
05E1 | m(80E00004): LDR R0, SP, 4H |
05E2 | m(81E00008): LDR R1, SP, 8H |
05E3 | n(42000000): MOV R2, R0, 0H |
| ENDo |
05E4 | o(F7FFFE56): BL -426 [043BH] |
| END |
| ENDp OutType; |
05E5 | p(8FE00000): LDR LNK, SP, 0H |
05E6 | p(4EE8001C): ADD SP, SP, 1CH |
05E7 | p(C700000F): B LNK |
| |
| PROCEDURE Export*(VAR modid: ORS.Ident; VAR newSF: BOOLEAN; VAR key: LONGINT); |
| VAR x, sum, oldkey: LONGINT; |
| obj, obj0: Object; |
| filename: ORS.Ident; |
| F, F1: Files.File; R, R1: Files.Rider; |
| BEGINq Ref := Record + 1;r MakeFileName(filename,s modid,t ".smb")u;v |
05E8 | q .PROC 23 |
05E8 | q(4EE9007C): SUB SP, SP, 7CH |
05E9 | q(AFE00000): STR LNK, SP, 0H |
05EA | q(A0E00004): STR R0, SP, 4H |
05EB | q(A1E00008): STR R1, SP, 8H |
05EC | q(A2E0000C): STR R2, SP, CH |
05ED | r(4000000E): MOV R0, R0, EH |
05EE | r .FIXUP D |
05EE | r(8D000016): LDR SB, MT, MOD0 [ORB] |
05EF | r(A0D00094): STR R0, SB, 94H [data] |
05F0 | s(40E80024): ADD R0, SP, 24H |
05F1 | t(81E00004): LDR R1, SP, 4H |
05F2 | t(42000020): MOV R2, R0, 20H |
05F3 | u(43D80208): ADD R3, SB, 208H |
05F4 | u(44000005): MOV R4, R0, 5H |
05F5 | v(F7FFFAFB): BL -1285 [00F1H] |
| F := Files.New(filename)w;x Files.Set(R,y F,z 0)a;b |
05F6 | w(40E80024): ADD R0, SP, 24H |
05F7 | w(41000020): MOV R1, R0, 20H |
05F8 | x .FIXUP P |
05F8 | x(F710301D): BL MOD1 [Files] PROC3 |
05F9 | x(A0E00044): STR R0, SP, 44H |
05FA | y(40E8004C): ADD R0, SP, 4CH |
05FB | y .FIXUP D |
05FB | y(8D10000D): LDR SB, MT, MOD1 [Files] |
05FC | y(41D80001): ADD R1, SB, VAR1 |
05FD | z(82E00044): LDR R2, SP, 44H |
05FE | a(43000000): MOV R3, R0, 0H |
05FF | b .FIXUP P |
05FF | b(F710B007): BL MOD1 [Files] PROC11 |
| Files.WriteInt(R,c 0)d;e (*placeholder*) |
0600 | c(40E8004C): ADD R0, SP, 4CH |
0601 | c .FIXUP D |
0601 | c(8D100006): LDR SB, MT, MOD1 [Files] |
0602 | c(41D80001): ADD R1, SB, VAR1 |
0603 | d(42000000): MOV R2, R0, 0H |
0604 | e .FIXUP P |
0604 | e(F7119005): BL MOD1 [Files] PROC25 |
| Files.WriteInt(R,f 0)g;h (*placeholder for key to be inserted at the end*) |
0605 | f(40E8004C): ADD R0, SP, 4CH |
0606 | f .FIXUP D |
0606 | f(8D100005): LDR SB, MT, MOD1 [Files] |
0607 | f(41D80001): ADD R1, SB, VAR1 |
0608 | g(42000000): MOV R2, R0, 0H |
0609 | h .FIXUP P |
0609 | h(F7119005): BL MOD1 [Files] PROC25 |
| Files.WriteString(R,i modid)j;k Write(R,l versionkey)m;n |
060A | i(40E8004C): ADD R0, SP, 4CH |
060B | i .FIXUP D |
060B | i(8D100005): LDR SB, MT, MOD1 [Files] |
060C | i(41D80001): ADD R1, SB, VAR1 |
060D | j(82E00004): LDR R2, SP, 4H |
060E | j(43000020): MOV R3, R0, 20H |
060F | k .FIXUP P |
060F | k(F711C006): BL MOD1 [Files] PROC28 |
0610 | l(40E8004C): ADD R0, SP, 4CH |
0611 | l .FIXUP D |
0611 | l(8D100006): LDR SB, MT, MOD1 [Files] |
0612 | l(41D80001): ADD R1, SB, VAR1 |
0613 | m(42000001): MOV R2, R0, 1H |
0614 | n(F7FFFE26): BL -474 [043BH] |
| obj := topScope.nexto;p |
0615 | o .FIXUP D |
0615 | o(8D000004): LDR SB, MT, MOD0 [ORB] |
0616 | o(80D00060): LDR R0, SB, 60H [data] |
0617 | o(D1304A4C): BLEQ MT [trap=4, pos=12362] |
0618 | p(80000008): LDR R0, R0, 8H |
0619 | p(A0E0001C): STR R0, SP, 1CH |
| WHILE obj # NIL DOq |
061A | q(80E0001C): LDR R0, SP, 1CH |
061B | q(E1000097): BEQ 151 [06B3H] |
| IF obj.expor THENs |
061C | r(80E0001C): LDR R0, SP, 1CH |
061D | r(D130744C): BLEQ MT [trap=4, pos=12404] |
061E | s(90000002): LDR R0, R0, 2H |
061F | s(E100008E): BEQ 142 [06AEH] |
| Write(R,t obj.classu)v;w Files.WriteString(R,x obj.namey)z;a |
0620 | t(40E8004C): ADD R0, SP, 4CH |
0621 | t .FIXUP D |
0621 | t(8D10000C): LDR SB, MT, MOD1 [Files] |
0622 | t(41D80001): ADD R1, SB, VAR1 |
0623 | u(82E0001C): LDR R2, SP, 1CH |
0624 | u(D130944C): BLEQ MT [trap=4, pos=12436] |
0625 | v(92200000): LDR R2, R2, 0H |
0626 | w(F7FFFE14): BL -492 [043BH] |
0627 | x(40E8004C): ADD R0, SP, 4CH |
0628 | x .FIXUP D |
0628 | x(8D100007): LDR SB, MT, MOD1 [Files] |
0629 | x(41D80001): ADD R1, SB, VAR1 |
062A | y(82E0001C): LDR R2, SP, 1CH |
062B | y(D130B44C): BLEQ MT [trap=4, pos=12468] |
062C | z(42280014): ADD R2, R2, 14H |
062D | z(43000020): MOV R3, R0, 20H |
062E | a .FIXUP P |
062E | a(F711C01F): BL MOD1 [Files] PROC28 |
| OutType(R,b obj.typec)d;e |
062F | b(40E8004C): ADD R0, SP, 4CH |
0630 | b .FIXUP D |
0630 | b(8D100008): LDR SB, MT, MOD1 [Files] |
0631 | b(41D80001): ADD R1, SB, VAR1 |
0632 | c(82E0001C): LDR R2, SP, 1CH |
0633 | c(D130D24C): BLEQ MT [trap=4, pos=12498] |
0634 | d(82200010): LDR R2, R2, 10H |
0635 | e(F7FFFE9F): BL -353 [04D5H] |
| IF obj.classf = Typ THENg |
0636 | f(80E0001C): LDR R0, SP, 1CH |
0637 | f(D130E94C): BLEQ MT [trap=4, pos=12521] |
0638 | g(90000000): LDR R0, R0, 0H |
0639 | g(40090005): SUB R0, R0, 5H |
063A | g(E900003C): BNE 60 [0677H] |
| IF obj.typeh.formi = Record THENj |
063B | h(80E0001C): LDR R0, SP, 1CH |
063C | h(D1310A4C): BLEQ MT [trap=4, pos=12554] |
063D | i(80000010): LDR R0, R0, 10H |
063E | i(D1310F4C): BLEQ MT [trap=4, pos=12559] |
063F | j(80000000): LDR R0, R0, 0H |
0640 | j(4009000D): SUB R0, R0, DH |
0641 | j(E900002F): BNE 47 [0671H] |
| obj0 := topScope.nextk;l (*check whether this is base of previously declared pointer types*) |
0642 | k .FIXUP D |
0642 | k(8D000012): LDR SB, MT, MOD0 [ORB] |
0643 | k(80D00060): LDR R0, SB, 60H [data] |
0644 | k(D1313F4C): BLEQ MT [trap=4, pos=12607] |
0645 | l(80000008): LDR R0, R0, 8H |
0646 | l(A0E00020): STR R0, SP, 20H |
| WHILE obj0 # obj DOm |
0647 | m(80E00020): LDR R0, SP, 20H |
0648 | m(81E0001C): LDR R1, SP, 1CH |
0649 | m(00090001): SUB R0, R0, R1 |
064A | m(E1000026): BEQ 38 [0671H] |
| IF (obj0.typen.formo = Pointer)p & (qobj0.typer.bases = obj.typet)u & (vobj0.typew.refx > 0)y THENz Write(R,a obj0.typeb.refc)d ENDe ; |
064B | n(80E00020): LDR R0, SP, 20H |
064C | n(D131C14C): BLEQ MT [trap=4, pos=12737] |
064D | o(80000010): LDR R0, R0, 10H |
064E | o(D131C64C): BLEQ MT [trap=4, pos=12742] |
064F | p(80000000): LDR R0, R0, 0H |
0650 | p(40090007): SUB R0, R0, 7H |
0651 | q(E900001A): BNE 26 [066CH] |
0652 | r(80E00020): LDR R0, SP, 20H |
0653 | r(D131DE4C): BLEQ MT [trap=4, pos=12766] |
0654 | s(80000010): LDR R0, R0, 10H |
0655 | s(D131E34C): BLEQ MT [trap=4, pos=12771] |
0656 | t(81E0001C): LDR R1, SP, 1CH |
0657 | t(D131EE4C): BLEQ MT [trap=4, pos=12782] |
0658 | u(8000001C): LDR R0, R0, 1CH |
0659 | u(81100010): LDR R1, R1, 10H |
065A | u(00090001): SUB R0, R0, R1 |
065B | v(E9000010): BNE 16 [066CH] |
065C | w(80E00020): LDR R0, SP, 20H |
065D | w(D131FC4C): BLEQ MT [trap=4, pos=12796] |
065E | x(80000010): LDR R0, R0, 10H |
065F | x(D132004C): BLEQ MT [trap=4, pos=12800] |
0660 | y(80000004): LDR R0, R0, 4H |
0661 | y(40090000): SUB R0, R0, 0H |
0662 | z(E6000009): BLE 9 [066CH] |
0663 | a(40E8004C): ADD R0, SP, 4CH |
0664 | a .FIXUP D |
0664 | a(8D100022): LDR SB, MT, MOD1 [Files] |
0665 | a(41D80001): ADD R1, SB, VAR1 |
0666 | b(82E00020): LDR R2, SP, 20H |
0667 | b(D1321D4C): BLEQ MT [trap=4, pos=12829] |
0668 | c(82200010): LDR R2, R2, 10H |
0669 | c(D132214C): BLEQ MT [trap=4, pos=12833] |
066A | d(82200004): LDR R2, R2, 4H |
066B | e(F7FFFDCF): BL -561 [043BH] |
| obj0 := obj0.nextf |
066C | f(80E00020): LDR R0, SP, 20H |
066D | f(D132484C): BLEQ MT [trap=4, pos=12872] |
| ENDg |
066E | g(80000008): LDR R0, R0, 8H |
066F | g(A0E00020): STR R0, SP, 20H |
0670 | g(E7FFFFD6): B -42 [0647H] |
| END ; |
| Write(R,h 0)i |
0671 | h(40E8004C): ADD R0, SP, 4CH |
0672 | h .FIXUP D |
0672 | h(8D10000E): LDR SB, MT, MOD1 [Files] |
0673 | h(41D80001): ADD R1, SB, VAR1 |
0674 | i(42000000): MOV R2, R0, 0H |
| ELSIFj objk.classl = Const THENm |
0675 | j(F7FFFDC5): BL -571 [043BH] |
0676 | k(E7000037): B 55 [06AEH] |
0677 | l(80E0001C): LDR R0, SP, 1CH |
0678 | l(D132964C): BLEQ MT [trap=4, pos=12950] |
0679 | m(90000000): LDR R0, R0, 0H |
067A | m(40090001): SUB R0, R0, 1H |
067B | m(E9000026): BNE 38 [06A2H] |
| IF obj.typen.formo = Proc THENp Files.WriteNum(R,q obj.exnor)s |
067C | n(80E0001C): LDR R0, SP, 1CH |
067D | n(D132B94C): BLEQ MT [trap=4, pos=12985] |
067E | o(80000010): LDR R0, R0, 10H |
067F | o(D132BE4C): BLEQ MT [trap=4, pos=12990] |
0680 | p(80000000): LDR R0, R0, 0H |
0681 | p(4009000A): SUB R0, R0, AH |
0682 | p(E9000008): BNE 8 [068BH] |
0683 | q(40E8004C): ADD R0, SP, 4CH |
0684 | q .FIXUP D |
0684 | q(8D100012): LDR SB, MT, MOD1 [Files] |
0685 | q(41D80001): ADD R1, SB, VAR1 |
0686 | r(82E0001C): LDR R2, SP, 1CH |
0687 | r(D132E54C): BLEQ MT [trap=4, pos=13029] |
0688 | s(92200001): LDR R2, R2, 1H |
| ELSIFt obju.typev.formw = Real THENx Files.WriteInt(R,y obj.valz)a |
0689 | t .FIXUP P |
0689 | t(F711D05B): BL MOD1 [Files] PROC29 |
068A | u(E7000016): B 22 [06A1H] |
068B | v(80E0001C): LDR R0, SP, 1CH |
068C | v(D132FF4C): BLEQ MT [trap=4, pos=13055] |
068D | w(80000010): LDR R0, R0, 10H |
068E | w(D133044C): BLEQ MT [trap=4, pos=13060] |
068F | x(80000000): LDR R0, R0, 0H |
0690 | x(40090005): SUB R0, R0, 5H |
0691 | x(E9000008): BNE 8 [069AH] |
0692 | y(40E8004C): ADD R0, SP, 4CH |
0693 | y .FIXUP D |
0693 | y(8D10000F): LDR SB, MT, MOD1 [Files] |
0694 | y(41D80001): ADD R1, SB, VAR1 |
0695 | z(82E0001C): LDR R2, SP, 1CH |
0696 | z(D1332A4C): BLEQ MT [trap=4, pos=13098] |
0697 | a(82200034): LDR R2, R2, 34H |
| ELSEb Filesc.WriteNum(R,d obj.vale)f |
0698 | b .FIXUP P |
0698 | b(F711900F): BL MOD1 [Files] PROC25 |
0699 | c(E7000007): B 7 [06A1H] |
069A | d(40E8004C): ADD R0, SP, 4CH |
069B | d .FIXUP D |
069B | d(8D100008): LDR SB, MT, MOD1 [Files] |
069C | d(41D80001): ADD R1, SB, VAR1 |
069D | e(82E0001C): LDR R2, SP, 1CH |
069E | e(D133544C): BLEQ MT [trap=4, pos=13140] |
069F | f(82200034): LDR R2, R2, 34H |
| ENDg |
06A0 | g .FIXUP P |
06A0 | g(F711D008): BL MOD1 [Files] PROC29 |
| ELSIF objh.classi = Var THENj Files.WriteNum(R,k obj.exnol)m |
06A1 | h(E700000C): B 12 [06AEH] |
06A2 | i(80E0001C): LDR R0, SP, 1CH |
06A3 | i(D1337B4C): BLEQ MT [trap=4, pos=13179] |
06A4 | j(90000000): LDR R0, R0, 0H |
06A5 | j(40090002): SUB R0, R0, 2H |
06A6 | j(E9000007): BNE 7 [06AEH] |
06A7 | k(40E8004C): ADD R0, SP, 4CH |
06A8 | k .FIXUP D |
06A8 | k(8D10000D): LDR SB, MT, MOD1 [Files] |
06A9 | k(41D80001): ADD R1, SB, VAR1 |
06AA | l(82E0001C): LDR R2, SP, 1CH |
06AB | l(D133A14C): BLEQ MT [trap=4, pos=13217] |
06AC | m(92200001): LDR R2, R2, 1H |
| ENDn |
06AD | n .FIXUP P |
06AD | n(F711D00D): BL MOD1 [Files] PROC29 |
| END ; |
| obj := obj.nexto |
06AE | o(80E0001C): LDR R0, SP, 1CH |
06AF | o(D133D04C): BLEQ MT [trap=4, pos=13264] |
| ENDp ; |
06B0 | p(80000008): LDR R0, R0, 8H |
06B1 | p(A0E0001C): STR R0, SP, 1CH |
06B2 | p(E7FFFF67): B -153 [061AH] |
| REPEAT Write(R,q 0)r UNTILs Files.Length(F)t MODu 4 =v 0;w |
06B3 | q(40E8004C): ADD R0, SP, 4CH |
06B4 | q .FIXUP D |
06B4 | q(8D10000C): LDR SB, MT, MOD1 [Files] |
06B5 | q(41D80001): ADD R1, SB, VAR1 |
06B6 | r(42000000): MOV R2, R0, 0H |
06B7 | s(F7FFFD83): BL -637 [043BH] |
06B8 | t(80E00044): LDR R0, SP, 44H |
06B9 | u .FIXUP P |
06B9 | u(F710900C): BL MOD1 [Files] PROC9 |
06BA | v(40040003): AND R0, R0, 3H |
06BB | w(40090000): SUB R0, R0, 0H |
06BC | w(E9FFFFF6): BNE -10 [06B3H] |
| FOR Ref := Record+1 TOx maxTypTab-1 DO typtaby[Ref]z := NIL ENDa ;b |
06BD | x(4000000E): MOV R0, R0, EH |
06BE | y(4109003F): SUB R1, R0, 3FH |
06BF | y(EE00000C): BGT 12 [06CCH] |
06C0 | y .FIXUP D |
06C0 | y(8D00000C): LDR SB, MT, MOD0 [ORB] |
06C1 | y(A0D00094): STR R0, SB, 94H [data] |
06C2 | z(80D00094): LDR R0, SB, 94H |
06C3 | z(41090040): SUB R1, R0, 40H |
06C4 | z(DA34481C): BLCC MT [trap=1, pos=13384] |
06C5 | z(40010002): LSL R0, R0, 2H |
06C6 | z(00D80000): ADD R0, SB, R0 |
06C7 | a(41000000): MOV R1, R0, 0H |
06C8 | a(A1000098): STR R1, R0, 98H |
06C9 | b(80D00094): LDR R0, SB, 94H |
06CA | b(40080001): ADD R0, R0, 1H |
06CB | b(E7FFFFF2): B -14 [06BEH] |
| Files.Set(R,c F,d 0)e;f sum := 0;g Files.ReadInt(R,h x)i;j (* compute key (checksum) *) |
06CC | c(40E8004C): ADD R0, SP, 4CH |
06CD | c .FIXUP D |
06CD | c(8D10000D): LDR SB, MT, MOD1 [Files] |
06CE | c(41D80001): ADD R1, SB, VAR1 |
06CF | d(82E00044): LDR R2, SP, 44H |
06D0 | e(43000000): MOV R3, R0, 0H |
06D1 | f .FIXUP P |
06D1 | f(F710B018): BL MOD1 [Files] PROC11 |
06D2 | g(40000000): MOV R0, R0, 0H |
06D3 | g(A0E00014): STR R0, SP, 14H |
06D4 | h(40E8004C): ADD R0, SP, 4CH |
06D5 | h .FIXUP D |
06D5 | h(8D100008): LDR SB, MT, MOD1 [Files] |
06D6 | h(41D80001): ADD R1, SB, VAR1 |
06D7 | i(42E80010): ADD R2, SP, 10H |
06D8 | j .FIXUP P |
06D8 | j(F7111007): BL MOD1 [Files] PROC17 |
| WHILE ~R.eof DOk sum := sum + x;l Files.ReadInt(R,m x)n ENDo ; |
06D9 | k(90E0004C): LDR R0, SP, 4CH |
06DA | k(E900000A): BNE 10 [06E5H] |
06DB | l(80E00014): LDR R0, SP, 14H |
06DC | l(81E00010): LDR R1, SP, 10H |
06DD | l(00080001): ADD R0, R0, R1 |
06DE | l(A0E00014): STR R0, SP, 14H |
06DF | m(40E8004C): ADD R0, SP, 4CH |
06E0 | m .FIXUP D |
06E0 | m(8D10000B): LDR SB, MT, MOD1 [Files] |
06E1 | m(41D80001): ADD R1, SB, VAR1 |
06E2 | n(42E80010): ADD R2, SP, 10H |
06E3 | o .FIXUP P |
06E3 | o(F711100B): BL MOD1 [Files] PROC17 |
06E4 | o(E7FFFFF4): B -12 [06D9H] |
| F1 := Files.Old(filename)p;q (*sum is new key*) |
06E5 | p(40E80024): ADD R0, SP, 24H |
06E6 | p(41000020): MOV R1, R0, 20H |
06E7 | q .FIXUP P |
06E7 | q(F7102004): BL MOD1 [Files] PROC2 |
06E8 | q(A0E00048): STR R0, SP, 48H |
| IF F1 # NIL THENr Files.Set(R1,s F1,t 4)u;v Files.ReadInt(R1,w oldkey)x ELSEy oldkeyz := sum+1 ENDa ; |
06E9 | r(80E00048): LDR R0, SP, 48H |
06EA | r(E100000C): BEQ 12 [06F7H] |
06EB | s(40E80064): ADD R0, SP, 64H |
06EC | s .FIXUP D |
06EC | s(8D10000C): LDR SB, MT, MOD1 [Files] |
06ED | s(41D80001): ADD R1, SB, VAR1 |
06EE | t(82E00048): LDR R2, SP, 48H |
06EF | u(43000004): MOV R3, R0, 4H |
06F0 | v .FIXUP P |
06F0 | v(F710B009): BL MOD1 [Files] PROC11 |
06F1 | w(40E80064): ADD R0, SP, 64H |
06F2 | w .FIXUP D |
06F2 | w(8D100006): LDR SB, MT, MOD1 [Files] |
06F3 | w(41D80001): ADD R1, SB, VAR1 |
06F4 | x(42E80018): ADD R2, SP, 18H |
06F5 | y .FIXUP P |
06F5 | y(F7111005): BL MOD1 [Files] PROC17 |
06F6 | z(E7000003): B 3 [06FAH] |
06F7 | a(80E00014): LDR R0, SP, 14H |
06F8 | a(40080001): ADD R0, R0, 1H |
06F9 | a(A0E00018): STR R0, SP, 18H |
| IF sum # oldkey THENb |
06FA | b(80E00014): LDR R0, SP, 14H |
06FB | b(81E00018): LDR R1, SP, 18H |
06FC | b(00090001): SUB R0, R0, R1 |
06FD | b(E100001E): BEQ 30 [071CH] |
| IF newSF OR (cF1 = NIL)d THENe |
06FE | c(80E00008): LDR R0, SP, 8H |
06FF | c(90000000): LDR R0, R0, 0H |
0700 | c(E9000002): BNE 2 [0703H] |
0701 | d(80E00048): LDR R0, SP, 48H |
0702 | e(E9000014): BNE 20 [0717H] |
| key := sum;f newSF := TRUE;g Files.Set(R,h F,i 4)j;k Files.WriteInt(R,l sum)m;n Files.Register(F)o (*insert checksum*) |
0703 | f(80E00014): LDR R0, SP, 14H |
0704 | f(81E0000C): LDR R1, SP, CH |
0705 | f(A0100000): STR R0, R1, 0H |
0706 | g(40000001): MOV R0, R0, 1H |
0707 | g(81E00008): LDR R1, SP, 8H |
0708 | g(B0100000): STR R0, R1, 0H |
0709 | h(40E8004C): ADD R0, SP, 4CH |
070A | h .FIXUP D |
070A | h(8D100018): LDR SB, MT, MOD1 [Files] |
070B | h(41D80001): ADD R1, SB, VAR1 |
070C | i(82E00044): LDR R2, SP, 44H |
070D | j(43000004): MOV R3, R0, 4H |
070E | k .FIXUP P |
070E | k(F710B019): BL MOD1 [Files] PROC11 |
070F | l(40E8004C): ADD R0, SP, 4CH |
0710 | l .FIXUP D |
0710 | l(8D100006): LDR SB, MT, MOD1 [Files] |
0711 | l(41D80001): ADD R1, SB, VAR1 |
0712 | m(82E00014): LDR R2, SP, 14H |
0713 | n .FIXUP P |
0713 | n(F7119005): BL MOD1 [Files] PROC25 |
0714 | o(80E00044): LDR R0, SP, 44H |
| ELSEp ORSq.Mark("new symbol file inhibited")r |
0715 | p .FIXUP P |
0715 | p(F7104002): BL MOD1 [Files] PROC4 |
0716 | q(E7000004): B 4 [071BH] |
0717 | r .FIXUP D |
0717 | r(8D000007): LDR SB, MT, MOD0 [ORB] |
0718 | r(40D80210): ADD R0, SB, 210H ["new symbol file inhibited"] |
0719 | r(4100001A): MOV R1, R0, 1AH |
| ENDs |
071A | s .FIXUP P |
071A | s(F7209005): BL MOD2 [ORS] PROC9 |
| ELSE newSFt := FALSE;u key := sum |
071B | t(E7000006): B 6 [0722H] |
071C | u(40000000): MOV R0, R0, 0H |
071D | u(81E00008): LDR R1, SP, 8H |
071E | u(B0100000): STR R0, R1, 0H |
| ENDv |
071F | v(80E00014): LDR R0, SP, 14H |
0720 | v(81E0000C): LDR R1, SP, CH |
0721 | v(A0100000): STR R0, R1, 0H |
| ENDw Export; |
0722 | w(8FE00000): LDR LNK, SP, 0H |
0723 | w(4EE8007C): ADD SP, SP, 7CH |
0724 | w(C700000F): B LNK |
| |
| PROCEDURE Init*; |
| BEGINx topScope := universe;y nofmod := 1 |
0725 | x .PROC 24 |
0725 | x .COMMAND Init |
0725 | x(4EE90004): SUB SP, SP, 4H |
0726 | x(AFE00000): STR LNK, SP, 0H |
0727 | y .FIXUP D |
0727 | y(8D000010): LDR SB, MT, MOD0 [ORB] |
0728 | y(80D00064): LDR R0, SB, 64H [data] |
0729 | y(A0D00060): STR R0, SB, 60H |
| ENDz Init; |
072A | z(40000001): MOV R0, R0, 1H |
072B | z(A0D00090): STR R0, SB, 90H |
072C | z(8FE00000): LDR LNK, SP, 0H |
072D | z(4EE80004): ADD SP, SP, 4H |
072E | z(C700000F): B LNK |
| |
| PROCEDURE type(ref, form: INTEGER; size: LONGINT): Type; |
| VAR tp: Type; |
| BEGINa NEW(tp);b tp.formc := form;d tp.sizee := size;f tp.refg := ref;h tp.basei := NIL;j |
072F | a(4EE90014): SUB SP, SP, 14H |
0730 | a(AFE00000): STR LNK, SP, 0H |
0731 | a(A0E00004): STR R0, SP, 4H |
0732 | a(A1E00008): STR R1, SP, 8H |
0733 | a(A2E0000C): STR R2, SP, CH |
0734 | b(40E80010): ADD R0, SP, 10H |
0735 | b .FIXUP D |
0735 | b(8D00000E): LDR SB, MT, MOD0 [ORB] |
0736 | b(41D80040): ADD R1, SB, 40H [data] |
0737 | b(D7374B0C): BL MT [trap=0, pos=14155] |
0738 | c(80E00010): LDR R0, SP, 10H |
0739 | c(D137534C): BLEQ MT [trap=4, pos=14163] |
073A | d(81E00008): LDR R1, SP, 8H |
073B | d(A1000000): STR R1, R0, 0H |
073C | e(80E00010): LDR R0, SP, 10H |
073D | e(D137644C): BLEQ MT [trap=4, pos=14180] |
073E | f(81E0000C): LDR R1, SP, CH |
073F | f(A1000020): STR R1, R0, 20H |
0740 | g(80E00010): LDR R0, SP, 10H |
0741 | g(D137744C): BLEQ MT [trap=4, pos=14196] |
0742 | h(81E00004): LDR R1, SP, 4H |
0743 | h(A1000004): STR R1, R0, 4H |
0744 | i(80E00010): LDR R0, SP, 10H |
0745 | i(D137844C): BLEQ MT [trap=4, pos=14212] |
0746 | j(41000000): MOV R1, R0, 0H |
0747 | j(A100001C): STR R1, R0, 1CH |
| typtab[ref]k := tp;l RETURN tp |
0748 | k(80E00004): LDR R0, SP, 4H |
0749 | k(41090040): SUB R1, R0, 40H |
074A | k(DA379C1C): BLCC MT [trap=1, pos=14236] |
074B | k(40010002): LSL R0, R0, 2H |
074C | k .FIXUP D |
074C | k(8D000017): LDR SB, MT, MOD0 [ORB] |
074D | k(00D80000): ADD R0, SB, R0 [global array] |
074E | l(81E00010): LDR R1, SP, 10H |
074F | l(A1000098): STR R1, R0, 98H |
| ENDm type; |
0750 | m(80E00010): LDR R0, SP, 10H |
0751 | m(8FE00000): LDR LNK, SP, 0H |
0752 | m(4EE80014): ADD SP, SP, 14H |
0753 | m(C700000F): B LNK |
| |
| PROCEDURE enter(name: ARRAY OF CHAR; cl: INTEGER; type: Type; n: LONGINT); |
| VAR obj: Object; |
| BEGINn NEW(obj);o obj.namep := name;q obj.classr := cl;s obj.typet := type;u obj.valv := n;w obj.dscx := NIL;y |
0754 | n(4EE9001C): SUB SP, SP, 1CH |
0755 | n(AFE00000): STR LNK, SP, 0H |
0756 | n(A0E00004): STR R0, SP, 4H |
0757 | n(A1E00008): STR R1, SP, 8H |
0758 | n(A2E0000C): STR R2, SP, CH |
0759 | n(A3E00010): STR R3, SP, 10H |
075A | n(A4E00014): STR R4, SP, 14H |
075B | o(40E80018): ADD R0, SP, 18H |
075C | o .FIXUP D |
075C | o(8D000010): LDR SB, MT, MOD0 [ORB] |
075D | o(41D80000): ADD R1, SB, 0H [data] |
075E | o(D7382E0C): BL MT [trap=0, pos=14382] |
075F | p(80E00018): LDR R0, SP, 18H |
0760 | p(D138374C): BLEQ MT [trap=4, pos=14391] |
0761 | q(40080014): ADD R0, R0, 14H |
0762 | q(81E00004): LDR R1, SP, 4H |
0763 | q(82E00008): LDR R2, SP, 8H |
0764 | q(E100000B): BEQ 11 [0770H] |
0765 | q(42280003): ADD R2, R2, 3H |
0766 | q(42220002): ASR R2, R2, 2H |
0767 | q(43000008): MOV R3, R0, 8H |
0768 | q(03290003): SUB R3, R2, R3 |
0769 | q(DE38403C): BLGT MT [trap=3, pos=14400] |
076A | q(83100000): LDR R3, R1, 0H |
076B | q(41180004): ADD R1, R1, 4H |
076C | q(A3000000): STR R3, R0, 0H |
076D | q(40080004): ADD R0, R0, 4H |
076E | q(42290001): SUB R2, R2, 1H |
076F | q(E9FFFFFA): BNE -6 [076AH] |
0770 | r(80E00018): LDR R0, SP, 18H |
0771 | r(D1384A4C): BLEQ MT [trap=4, pos=14410] |
0772 | s(81E0000C): LDR R1, SP, CH |
0773 | s(B1000000): STR R1, R0, 0H |
0774 | t(80E00018): LDR R0, SP, 18H |
0775 | t(D1385A4C): BLEQ MT [trap=4, pos=14426] |
0776 | u(81E00010): LDR R1, SP, 10H |
0777 | u(A1000010): STR R1, R0, 10H |
0778 | v(80E00018): LDR R0, SP, 18H |
0779 | v(D1386B4C): BLEQ MT [trap=4, pos=14443] |
077A | w(81E00014): LDR R1, SP, 14H |
077B | w(A1000034): STR R1, R0, 34H |
077C | x(80E00018): LDR R0, SP, 18H |
077D | x(D138794C): BLEQ MT [trap=4, pos=14457] |
077E | y(41000000): MOV R1, R0, 0H |
077F | y(A100000C): STR R1, R0, CH |
| IF cl = Typ THENz type.typobja := obj ENDb ; |
0780 | z(80E0000C): LDR R0, SP, CH |
0781 | z(40090005): SUB R0, R0, 5H |
0782 | z(E9000004): BNE 4 [0787H] |
0783 | a(80E00010): LDR R0, SP, 10H |
0784 | a(D138A24C): BLEQ MT [trap=4, pos=14498] |
0785 | b(81E00018): LDR R1, SP, 18H |
0786 | b(A1000018): STR R1, R0, 18H |
| obj.nextc := system;d system := obj |
0787 | c(80E00018): LDR R0, SP, 18H |
0788 | c(D138BC4C): BLEQ MT [trap=4, pos=14524] |
0789 | d .FIXUP D |
0789 | d(8D00002D): LDR SB, MT, MOD0 [ORB] |
078A | d(81D00068): LDR R1, SB, 68H [data] |
078B | d(A1000008): STR R1, R0, 8H |
| ENDe enter; |
078C | e(80E00018): LDR R0, SP, 18H |
078D | e(A0D00068): STR R0, SB, 68H |
078E | e(8FE00000): LDR LNK, SP, 0H |
078F | e(4EE8001C): ADD SP, SP, 1CH |
0790 | e(C700000F): B LNK |
| |
| BEGINf |
0791 | f .PROC 0 |
0791 | f .ENTRYPOINT |
0791 | f(4EE90004): SUB SP, SP, 4H |
0792 | f(AFE00000): STR LNK, SP, 0H |
| byteType := type(Byte,g Int,h 1)i;j |
0793 | g(40000001): MOV R0, R0, 1H |
0794 | h(41000004): MOV R1, R0, 4H |
0795 | i(42000001): MOV R2, R0, 1H |
0796 | j(F7FFFF98): BL -104 [072FH] |
0797 | j .FIXUP D |
0797 | j(8D00000E): LDR SB, MT, MOD0 [ORB] |
0798 | j(A0D0006C): STR R0, SB, 6CH [data] |
| boolType := type(Bool,k Bool,l 1)m;n |
0799 | k(40000002): MOV R0, R0, 2H |
079A | l(41000002): MOV R1, R0, 2H |
079B | m(42000001): MOV R2, R0, 1H |
079C | n(F7FFFF92): BL -110 [072FH] |
079D | n .FIXUP D |
079D | n(8D000006): LDR SB, MT, MOD0 [ORB] |
079E | n(A0D00070): STR R0, SB, 70H [data] |
| charType := type(Char,o Char,p1)q;r |
079F | o(40000003): MOV R0, R0, 3H |
07A0 | p(41000003): MOV R1, R0, 3H |
07A1 | q(42000001): MOV R2, R0, 1H |
07A2 | r(F7FFFF8C): BL -116 [072FH] |
07A3 | r .FIXUP D |
07A3 | r(8D000006): LDR SB, MT, MOD0 [ORB] |
07A4 | r(A0D00074): STR R0, SB, 74H [data] |
| intType := type(Int,s Int,t 4)u;v |
07A5 | s(40000004): MOV R0, R0, 4H |
07A6 | t(41000004): MOV R1, R0, 4H |
07A7 | u(42000004): MOV R2, R0, 4H |
07A8 | v(F7FFFF86): BL -122 [072FH] |
07A9 | v .FIXUP D |
07A9 | v(8D000006): LDR SB, MT, MOD0 [ORB] |
07AA | v(A0D00078): STR R0, SB, 78H [data] |
| realType := type(Real,w Real,x 4)y;z |
07AB | w(40000005): MOV R0, R0, 5H |
07AC | x(41000005): MOV R1, R0, 5H |
07AD | y(42000004): MOV R2, R0, 4H |
07AE | z(F7FFFF80): BL -128 [072FH] |
07AF | z .FIXUP D |
07AF | z(8D000006): LDR SB, MT, MOD0 [ORB] |
07B0 | z(A0D0007C): STR R0, SB, 7CH [data] |
| setType := type(Set,a Set,b4)c;d |
07B1 | a(40000006): MOV R0, R0, 6H |
07B2 | b(41000006): MOV R1, R0, 6H |
07B3 | c(42000004): MOV R2, R0, 4H |
07B4 | d(F7FFFF7A): BL -134 [072FH] |
07B5 | d .FIXUP D |
07B5 | d(8D000006): LDR SB, MT, MOD0 [ORB] |
07B6 | d(A0D00080): STR R0, SB, 80H [data] |
| nilType := type(NilTyp,e NilTyp,f 4)g;h |
07B7 | e(40000008): MOV R0, R0, 8H |
07B8 | f(41000008): MOV R1, R0, 8H |
07B9 | g(42000004): MOV R2, R0, 4H |
07BA | h(F7FFFF74): BL -140 [072FH] |
07BB | h .FIXUP D |
07BB | h(8D000006): LDR SB, MT, MOD0 [ORB] |
07BC | h(A0D00084): STR R0, SB, 84H [data] |
| noType := type(NoTyp,i NoTyp,j 4)k;l |
07BD | i(40000009): MOV R0, R0, 9H |
07BE | j(41000009): MOV R1, R0, 9H |
07BF | k(42000004): MOV R2, R0, 4H |
07C0 | l(F7FFFF6E): BL -146 [072FH] |
07C1 | l .FIXUP D |
07C1 | l(8D000006): LDR SB, MT, MOD0 [ORB] |
07C2 | l(A0D00088): STR R0, SB, 88H [data] |
| strType := type(String,m String,n 8)o;p |
07C3 | m(4000000B): MOV R0, R0, BH |
07C4 | n(4100000B): MOV R1, R0, BH |
07C5 | o(42000008): MOV R2, R0, 8H |
07C6 | p(F7FFFF68): BL -152 [072FH] |
07C7 | p .FIXUP D |
07C7 | p(8D000006): LDR SB, MT, MOD0 [ORB] |
07C8 | p(A0D0008C): STR R0, SB, 8CH [data] |
| |
| (*initialize universe with data types and in-line procedures; |
| LONGINT is synonym to INTEGER, LONGREAL to REAL. |
| LED, ADC, SBC; LDPSR, LDREG, REG, COND are not in language definition*) |
| system := NIL;q (*n = procno*10 + nofpar*) |
07C9 | q(40000000): MOV R0, R0, 0H |
07CA | q(A0D00068): STR R0, SB, 68H |
| enter("UML",r SFunc,s intType,t 132)u;v (*functions*) |
07CB | r(40D8022C): ADD R0, SB, 22CH |
07CC | r(41000004): MOV R1, R0, 4H |
07CD | s(42000007): MOV R2, R0, 7H |
07CE | t(83D00078): LDR R3, SB, 78H |
07CF | u(44000084): MOV R4, R0, 84H |
07D0 | v(F7FFFF83): BL -125 [0754H] |
| enter("SBC",w SFunc,x intType,y 122)z;a |
07D1 | w .FIXUP D |
07D1 | w(8D00000A): LDR SB, MT, MOD0 [ORB] |
07D2 | w(40D80230): ADD R0, SB, 230H ["SBC"] |
07D3 | w(41000004): MOV R1, R0, 4H |
07D4 | x(42000007): MOV R2, R0, 7H |
07D5 | y(83D00078): LDR R3, SB, 78H |
07D6 | z(4400007A): MOV R4, R0, 7AH |
07D7 | a(F7FFFF7C): BL -132 [0754H] |
| enter("ADC",b SFunc,c intType,d 112)e;f |
07D8 | b .FIXUP D |
07D8 | b(8D000007): LDR SB, MT, MOD0 [ORB] |
07D9 | b(40D80234): ADD R0, SB, 234H ["ADC"] |
07DA | b(41000004): MOV R1, R0, 4H |
07DB | c(42000007): MOV R2, R0, 7H |
07DC | d(83D00078): LDR R3, SB, 78H |
07DD | e(44000070): MOV R4, R0, 70H |
07DE | f(F7FFFF75): BL -139 [0754H] |
| enter("ROR",g SFunc,h intType,i 92)j;k |
07DF | g .FIXUP D |
07DF | g(8D000007): LDR SB, MT, MOD0 [ORB] |
07E0 | g(40D80238): ADD R0, SB, 238H ["ROR"] |
07E1 | g(41000004): MOV R1, R0, 4H |
07E2 | h(42000007): MOV R2, R0, 7H |
07E3 | i(83D00078): LDR R3, SB, 78H |
07E4 | j(4400005C): MOV R4, R0, 5CH |
07E5 | k(F7FFFF6E): BL -146 [0754H] |
| enter("ASR",l SFunc,m intType,n 82)o;p |
07E6 | l .FIXUP D |
07E6 | l(8D000007): LDR SB, MT, MOD0 [ORB] |
07E7 | l(40D8023C): ADD R0, SB, 23CH ["ASR"] |
07E8 | l(41000004): MOV R1, R0, 4H |
07E9 | m(42000007): MOV R2, R0, 7H |
07EA | n(83D00078): LDR R3, SB, 78H |
07EB | o(44000052): MOV R4, R0, 52H |
07EC | p(F7FFFF67): BL -153 [0754H] |
| enter("LSL",q SFunc,r intType,s 72)t;u |
07ED | q .FIXUP D |
07ED | q(8D000007): LDR SB, MT, MOD0 [ORB] |
07EE | q(40D80240): ADD R0, SB, 240H ["LSL"] |
07EF | q(41000004): MOV R1, R0, 4H |
07F0 | r(42000007): MOV R2, R0, 7H |
07F1 | s(83D00078): LDR R3, SB, 78H |
07F2 | t(44000048): MOV R4, R0, 48H |
07F3 | u(F7FFFF60): BL -160 [0754H] |
| enter("LEN",v SFunc,w intType,x 61)y;z |
07F4 | v .FIXUP D |
07F4 | v(8D000007): LDR SB, MT, MOD0 [ORB] |
07F5 | v(40D80244): ADD R0, SB, 244H ["LEN"] |
07F6 | v(41000004): MOV R1, R0, 4H |
07F7 | w(42000007): MOV R2, R0, 7H |
07F8 | x(83D00078): LDR R3, SB, 78H |
07F9 | y(4400003D): MOV R4, R0, 3DH |
07FA | z(F7FFFF59): BL -167 [0754H] |
| enter("CHR",a SFunc,b charType,c 51)d;e |
07FB | a .FIXUP D |
07FB | a(8D000007): LDR SB, MT, MOD0 [ORB] |
07FC | a(40D80248): ADD R0, SB, 248H ["CHR"] |
07FD | a(41000004): MOV R1, R0, 4H |
07FE | b(42000007): MOV R2, R0, 7H |
07FF | c(83D00074): LDR R3, SB, 74H |
0800 | d(44000033): MOV R4, R0, 33H |
0801 | e(F7FFFF52): BL -174 [0754H] |
| enter("ORD",f SFunc,g intType,h 41)i;j |
0802 | f .FIXUP D |
0802 | f(8D000007): LDR SB, MT, MOD0 [ORB] |
0803 | f(40D8024C): ADD R0, SB, 24CH ["ORD"] |
0804 | f(41000004): MOV R1, R0, 4H |
0805 | g(42000007): MOV R2, R0, 7H |
0806 | h(83D00078): LDR R3, SB, 78H |
0807 | i(44000029): MOV R4, R0, 29H |
0808 | j(F7FFFF4B): BL -181 [0754H] |
| enter("FLT",k SFunc,l realType,m 31)n;o |
0809 | k .FIXUP D |
0809 | k(8D000007): LDR SB, MT, MOD0 [ORB] |
080A | k(40D80250): ADD R0, SB, 250H ["FLT"] |
080B | k(41000004): MOV R1, R0, 4H |
080C | l(42000007): MOV R2, R0, 7H |
080D | m(83D0007C): LDR R3, SB, 7CH |
080E | n(4400001F): MOV R4, R0, 1FH |
080F | o(F7FFFF44): BL -188 [0754H] |
| enter("FLOOR",p SFunc,q intType,r 21)s;t |
0810 | p .FIXUP D |
0810 | p(8D000007): LDR SB, MT, MOD0 [ORB] |
0811 | p(40D80254): ADD R0, SB, 254H ["FLOOR"] |
0812 | p(41000006): MOV R1, R0, 6H |
0813 | q(42000007): MOV R2, R0, 7H |
0814 | r(83D00078): LDR R3, SB, 78H |
0815 | s(44000015): MOV R4, R0, 15H |
0816 | t(F7FFFF3D): BL -195 [0754H] |
| enter("ODD",u SFunc,v boolType,w 11)x;y |
0817 | u .FIXUP D |
0817 | u(8D000007): LDR SB, MT, MOD0 [ORB] |
0818 | u(40D8025C): ADD R0, SB, 25CH ["ODD"] |
0819 | u(41000004): MOV R1, R0, 4H |
081A | v(42000007): MOV R2, R0, 7H |
081B | w(83D00070): LDR R3, SB, 70H |
081C | x(4400000B): MOV R4, R0, BH |
081D | y(F7FFFF36): BL -202 [0754H] |
| enter("ABS",z SFunc,a intType,b 1)c;d |
081E | z .FIXUP D |
081E | z(8D000007): LDR SB, MT, MOD0 [ORB] |
081F | z(40D80260): ADD R0, SB, 260H ["ABS"] |
0820 | z(41000004): MOV R1, R0, 4H |
0821 | a(42000007): MOV R2, R0, 7H |
0822 | b(83D00078): LDR R3, SB, 78H |
0823 | c(44000001): MOV R4, R0, 1H |
0824 | d(F7FFFF2F): BL -209 [0754H] |
| enter("LED",e SProc,f noType,g 81)h;i (*procedures*) |
0825 | e .FIXUP D |
0825 | e(8D000007): LDR SB, MT, MOD0 [ORB] |
0826 | e(40D80264): ADD R0, SB, 264H ["LED"] |
0827 | e(41000004): MOV R1, R0, 4H |
0828 | f(42000006): MOV R2, R0, 6H |
0829 | g(83D00088): LDR R3, SB, 88H |
082A | h(44000051): MOV R4, R0, 51H |
082B | i(F7FFFF28): BL -216 [0754H] |
| enter("UNPK",j SProc,k noType,l 72)m;n |
082C | j .FIXUP D |
082C | j(8D000007): LDR SB, MT, MOD0 [ORB] |
082D | j(40D80268): ADD R0, SB, 268H ["UNPK"] |
082E | j(41000005): MOV R1, R0, 5H |
082F | k(42000006): MOV R2, R0, 6H |
0830 | l(83D00088): LDR R3, SB, 88H |
0831 | m(44000048): MOV R4, R0, 48H |
0832 | n(F7FFFF21): BL -223 [0754H] |
| enter("PACK",o SProc,p noType,q 62)r;s |
0833 | o .FIXUP D |
0833 | o(8D000007): LDR SB, MT, MOD0 [ORB] |
0834 | o(40D80270): ADD R0, SB, 270H ["PACK"] |
0835 | o(41000005): MOV R1, R0, 5H |
0836 | p(42000006): MOV R2, R0, 6H |
0837 | q(83D00088): LDR R3, SB, 88H |
0838 | r(4400003E): MOV R4, R0, 3EH |
0839 | s(F7FFFF1A): BL -230 [0754H] |
| enter("NEW",t SProc,u noType,v 51)w;x |
083A | t .FIXUP D |
083A | t(8D000007): LDR SB, MT, MOD0 [ORB] |
083B | t(40D80278): ADD R0, SB, 278H ["NEW"] |
083C | t(41000004): MOV R1, R0, 4H |
083D | u(42000006): MOV R2, R0, 6H |
083E | v(83D00088): LDR R3, SB, 88H |
083F | w(44000033): MOV R4, R0, 33H |
0840 | x(F7FFFF13): BL -237 [0754H] |
| enter("ASSERT",y SProc,z noType,a 41)b;c |
0841 | y .FIXUP D |
0841 | y(8D000007): LDR SB, MT, MOD0 [ORB] |
0842 | y(40D8027C): ADD R0, SB, 27CH ["ASSERT"] |
0843 | y(41000007): MOV R1, R0, 7H |
0844 | z(42000006): MOV R2, R0, 6H |
0845 | a(83D00088): LDR R3, SB, 88H |
0846 | b(44000029): MOV R4, R0, 29H |
0847 | c(F7FFFF0C): BL -244 [0754H] |
| enter("EXCL",d SProc,e noType,f 32)g;h |
0848 | d .FIXUP D |
0848 | d(8D000007): LDR SB, MT, MOD0 [ORB] |
0849 | d(40D80284): ADD R0, SB, 284H ["EXCL"] |
084A | d(41000005): MOV R1, R0, 5H |
084B | e(42000006): MOV R2, R0, 6H |
084C | f(83D00088): LDR R3, SB, 88H |
084D | g(44000020): MOV R4, R0, 20H |
084E | h(F7FFFF05): BL -251 [0754H] |
| enter("INCL",i SProc,j noType,k 22)l;m |
084F | i .FIXUP D |
084F | i(8D000007): LDR SB, MT, MOD0 [ORB] |
0850 | i(40D8028C): ADD R0, SB, 28CH ["INCL"] |
0851 | i(41000005): MOV R1, R0, 5H |
0852 | j(42000006): MOV R2, R0, 6H |
0853 | k(83D00088): LDR R3, SB, 88H |
0854 | l(44000016): MOV R4, R0, 16H |
0855 | m(F7FFFEFE): BL -258 [0754H] |
| enter("DEC",n SProc,o noType,p 11)q;r |
0856 | n .FIXUP D |
0856 | n(8D000007): LDR SB, MT, MOD0 [ORB] |
0857 | n(40D80294): ADD R0, SB, 294H ["DEC"] |
0858 | n(41000004): MOV R1, R0, 4H |
0859 | o(42000006): MOV R2, R0, 6H |
085A | p(83D00088): LDR R3, SB, 88H |
085B | q(4400000B): MOV R4, R0, BH |
085C | r(F7FFFEF7): BL -265 [0754H] |
| enter("INC",s SProc,t noType,u 1)v;w |
085D | s .FIXUP D |
085D | s(8D000007): LDR SB, MT, MOD0 [ORB] |
085E | s(40D80298): ADD R0, SB, 298H ["INC"] |
085F | s(41000004): MOV R1, R0, 4H |
0860 | t(42000006): MOV R2, R0, 6H |
0861 | u(83D00088): LDR R3, SB, 88H |
0862 | v(44000001): MOV R4, R0, 1H |
0863 | w(F7FFFEF0): BL -272 [0754H] |
| enter("SET",x Typ,y setType,z 0)a;b (*types*) |
0864 | x .FIXUP D |
0864 | x(8D000007): LDR SB, MT, MOD0 [ORB] |
0865 | x(40D8029C): ADD R0, SB, 29CH ["SET"] |
0866 | x(41000004): MOV R1, R0, 4H |
0867 | y(42000005): MOV R2, R0, 5H |
0868 | z(83D00080): LDR R3, SB, 80H |
0869 | a(44000000): MOV R4, R0, 0H |
086A | b(F7FFFEE9): BL -279 [0754H] |
| enter("BOOLEAN",c Typ,d boolType,e 0)f;g |
086B | c .FIXUP D |
086B | c(8D000007): LDR SB, MT, MOD0 [ORB] |
086C | c(40D802A0): ADD R0, SB, 2A0H ["BOOLEAN"] |
086D | c(41000008): MOV R1, R0, 8H |
086E | d(42000005): MOV R2, R0, 5H |
086F | e(83D00070): LDR R3, SB, 70H |
0870 | f(44000000): MOV R4, R0, 0H |
0871 | g(F7FFFEE2): BL -286 [0754H] |
| enter("BYTE",h Typ,i byteType,j 0)k;l |
0872 | h .FIXUP D |
0872 | h(8D000007): LDR SB, MT, MOD0 [ORB] |
0873 | h(40D802A8): ADD R0, SB, 2A8H ["BYTE"] |
0874 | h(41000005): MOV R1, R0, 5H |
0875 | i(42000005): MOV R2, R0, 5H |
0876 | j(83D0006C): LDR R3, SB, 6CH |
0877 | k(44000000): MOV R4, R0, 0H |
0878 | l(F7FFFEDB): BL -293 [0754H] |
| enter("CHAR",m Typ,n charType,o 0)p;q |
0879 | m .FIXUP D |
0879 | m(8D000007): LDR SB, MT, MOD0 [ORB] |
087A | m(40D802B0): ADD R0, SB, 2B0H ["CHAR"] |
087B | m(41000005): MOV R1, R0, 5H |
087C | n(42000005): MOV R2, R0, 5H |
087D | o(83D00074): LDR R3, SB, 74H |
087E | p(44000000): MOV R4, R0, 0H |
087F | q(F7FFFED4): BL -300 [0754H] |
| enter("LONGREAL",r Typ,s realType,t 0)u;v |
0880 | r .FIXUP D |
0880 | r(8D000007): LDR SB, MT, MOD0 [ORB] |
0881 | r(40D802B8): ADD R0, SB, 2B8H ["LONGREAL"] |
0882 | r(41000009): MOV R1, R0, 9H |
0883 | s(42000005): MOV R2, R0, 5H |
0884 | t(83D0007C): LDR R3, SB, 7CH |
0885 | u(44000000): MOV R4, R0, 0H |
0886 | v(F7FFFECD): BL -307 [0754H] |
| enter("REAL",w Typ,x realType,y 0)z;a |
0887 | w .FIXUP D |
0887 | w(8D000007): LDR SB, MT, MOD0 [ORB] |
0888 | w(40D802C4): ADD R0, SB, 2C4H ["REAL"] |
0889 | w(41000005): MOV R1, R0, 5H |
088A | x(42000005): MOV R2, R0, 5H |
088B | y(83D0007C): LDR R3, SB, 7CH |
088C | z(44000000): MOV R4, R0, 0H |
088D | a(F7FFFEC6): BL -314 [0754H] |
| enter("LONGINT",b Typ,c intType,d 0)e;f |
088E | b .FIXUP D |
088E | b(8D000007): LDR SB, MT, MOD0 [ORB] |
088F | b(40D802CC): ADD R0, SB, 2CCH ["LONGINT"] |
0890 | b(41000008): MOV R1, R0, 8H |
0891 | c(42000005): MOV R2, R0, 5H |
0892 | d(83D00078): LDR R3, SB, 78H |
0893 | e(44000000): MOV R4, R0, 0H |
0894 | f(F7FFFEBF): BL -321 [0754H] |
| enter("INTEGER",g Typ,h intType,i 0)j;k |
0895 | g .FIXUP D |
0895 | g(8D000007): LDR SB, MT, MOD0 [ORB] |
0896 | g(40D802D4): ADD R0, SB, 2D4H ["INTEGER"] |
0897 | g(41000008): MOV R1, R0, 8H |
0898 | h(42000005): MOV R2, R0, 5H |
0899 | i(83D00078): LDR R3, SB, 78H |
089A | j(44000000): MOV R4, R0, 0H |
089B | k(F7FFFEB8): BL -328 [0754H] |
| topScope := NIL;l OpenScope;m topScope.nextn := system;o universe := topScope;p |
089C | l(40000000): MOV R0, R0, 0H |
089D | l .FIXUP D |
089D | l(8D000008): LDR SB, MT, MOD0 [ORB] |
089E | l(A0D00060): STR R0, SB, 60H [data] |
089F | m(F7FFF82F): BL -2001 [00CFH] |
08A0 | n .FIXUP D |
08A0 | n(8D000003): LDR SB, MT, MOD0 [ORB] |
08A1 | n(80D00060): LDR R0, SB, 60H [data] |
08A2 | n(D13FAA4C): BLEQ MT [trap=4, pos=16298] |
08A3 | o(81D00068): LDR R1, SB, 68H |
08A4 | o(A1000008): STR R1, R0, 8H |
08A5 | p(80D00060): LDR R0, SB, 60H |
08A6 | p(A0D00064): STR R0, SB, 64H |
| |
| system := NIL;q (* initialize "unsafe" pseudo-module SYSTEM*) |
08A7 | q(40000000): MOV R0, R0, 0H |
08A8 | q(A0D00068): STR R0, SB, 68H |
| enter("H",r SFunc,s intType,t 201)u;v (*functions*) |
08A9 | r(40D802DC): ADD R0, SB, 2DCH |
08AA | r(41000002): MOV R1, R0, 2H |
08AB | s(42000007): MOV R2, R0, 7H |
08AC | t(83D00078): LDR R3, SB, 78H |
08AD | u(440000C9): MOV R4, R0, C9H |
08AE | v(F7FFFEA5): BL -347 [0754H] |
| enter("COND",w SFunc,x boolType,y 191)z;a |
08AF | w .FIXUP D |
08AF | w(8D00000F): LDR SB, MT, MOD0 [ORB] |
08B0 | w(40D802E0): ADD R0, SB, 2E0H ["COND"] |
08B1 | w(41000005): MOV R1, R0, 5H |
08B2 | x(42000007): MOV R2, R0, 7H |
08B3 | y(83D00070): LDR R3, SB, 70H |
08B4 | z(440000BF): MOV R4, R0, BFH |
08B5 | a(F7FFFE9E): BL -354 [0754H] |
| enter("SIZE",b SFunc,c intType,d 181)e;f |
08B6 | b .FIXUP D |
08B6 | b(8D000007): LDR SB, MT, MOD0 [ORB] |
08B7 | b(40D802E8): ADD R0, SB, 2E8H ["SIZE"] |
08B8 | b(41000005): MOV R1, R0, 5H |
08B9 | c(42000007): MOV R2, R0, 7H |
08BA | d(83D00078): LDR R3, SB, 78H |
08BB | e(440000B5): MOV R4, R0, B5H |
08BC | f(F7FFFE97): BL -361 [0754H] |
| enter("ADR",g SFunc,h intType,i 171)j;k |
08BD | g .FIXUP D |
08BD | g(8D000007): LDR SB, MT, MOD0 [ORB] |
08BE | g(40D802F0): ADD R0, SB, 2F0H ["ADR"] |
08BF | g(41000004): MOV R1, R0, 4H |
08C0 | h(42000007): MOV R2, R0, 7H |
08C1 | i(83D00078): LDR R3, SB, 78H |
08C2 | j(440000AB): MOV R4, R0, ABH |
08C3 | k(F7FFFE90): BL -368 [0754H] |
| enter("VAL",l SFunc,m intType,n 162)o;p |
08C4 | l .FIXUP D |
08C4 | l(8D000007): LDR SB, MT, MOD0 [ORB] |
08C5 | l(40D802F4): ADD R0, SB, 2F4H ["VAL"] |
08C6 | l(41000004): MOV R1, R0, 4H |
08C7 | m(42000007): MOV R2, R0, 7H |
08C8 | n(83D00078): LDR R3, SB, 78H |
08C9 | o(440000A2): MOV R4, R0, A2H |
08CA | p(F7FFFE89): BL -375 [0754H] |
| enter("REG",q SFunc,r intType,s 151)t;u |
08CB | q .FIXUP D |
08CB | q(8D000007): LDR SB, MT, MOD0 [ORB] |
08CC | q(40D802F8): ADD R0, SB, 2F8H ["REG"] |
08CD | q(41000004): MOV R1, R0, 4H |
08CE | r(42000007): MOV R2, R0, 7H |
08CF | s(83D00078): LDR R3, SB, 78H |
08D0 | t(44000097): MOV R4, R0, 97H |
08D1 | u(F7FFFE82): BL -382 [0754H] |
| enter("BIT",v SFunc,w boolType,x 142)y;z |
08D2 | v .FIXUP D |
08D2 | v(8D000007): LDR SB, MT, MOD0 [ORB] |
08D3 | v(40D802FC): ADD R0, SB, 2FCH ["BIT"] |
08D4 | v(41000004): MOV R1, R0, 4H |
08D5 | w(42000007): MOV R2, R0, 7H |
08D6 | x(83D00070): LDR R3, SB, 70H |
08D7 | y(4400008E): MOV R4, R0, 8EH |
08D8 | z(F7FFFE7B): BL -389 [0754H] |
| enter("LDREG",a SProc,b noType,c 142)d;e (*procedures*) |
08D9 | a .FIXUP D |
08D9 | a(8D000007): LDR SB, MT, MOD0 [ORB] |
08DA | a(40D80300): ADD R0, SB, 300H ["LDREG"] |
08DB | a(41000006): MOV R1, R0, 6H |
08DC | b(42000006): MOV R2, R0, 6H |
08DD | c(83D00088): LDR R3, SB, 88H |
08DE | d(4400008E): MOV R4, R0, 8EH |
08DF | e(F7FFFE74): BL -396 [0754H] |
| enter("LDPSR",f SProc,g noType,h 131)i;j |
08E0 | f .FIXUP D |
08E0 | f(8D000007): LDR SB, MT, MOD0 [ORB] |
08E1 | f(40D80308): ADD R0, SB, 308H ["LDPSR"] |
08E2 | f(41000006): MOV R1, R0, 6H |
08E3 | g(42000006): MOV R2, R0, 6H |
08E4 | h(83D00088): LDR R3, SB, 88H |
08E5 | i(44000083): MOV R4, R0, 83H |
08E6 | j(F7FFFE6D): BL -403 [0754H] |
| enter("COPY",k SProc,l noType,m 123)n;o |
08E7 | k .FIXUP D |
08E7 | k(8D000007): LDR SB, MT, MOD0 [ORB] |
08E8 | k(40D80310): ADD R0, SB, 310H ["COPY"] |
08E9 | k(41000005): MOV R1, R0, 5H |
08EA | l(42000006): MOV R2, R0, 6H |
08EB | m(83D00088): LDR R3, SB, 88H |
08EC | n(4400007B): MOV R4, R0, 7BH |
08ED | o(F7FFFE66): BL -410 [0754H] |
| enter("PUT",p SProc,q noType,r 112)s;t |
08EE | p .FIXUP D |
08EE | p(8D000007): LDR SB, MT, MOD0 [ORB] |
08EF | p(40D80318): ADD R0, SB, 318H ["PUT"] |
08F0 | p(41000004): MOV R1, R0, 4H |
08F1 | q(42000006): MOV R2, R0, 6H |
08F2 | r(83D00088): LDR R3, SB, 88H |
08F3 | s(44000070): MOV R4, R0, 70H |
08F4 | t(F7FFFE5F): BL -417 [0754H] |
| enter("GET",u SProc,v noType,w 102)x;y |
08F5 | u .FIXUP D |
08F5 | u(8D000007): LDR SB, MT, MOD0 [ORB] |
08F6 | u(40D8031C): ADD R0, SB, 31CH ["GET"] |
08F7 | u(41000004): MOV R1, R0, 4H |
08F8 | v(42000006): MOV R2, R0, 6H |
08F9 | w(83D00088): LDR R3, SB, 88H |
08FA | x(44000066): MOV R4, R0, 66H |
08FB | y(F7FFFE58): BL -424 [0754H] |
| END ORB.z |
08FC | z(8FE00000): LDR LNK, SP, 0H |
08FD | z(4EE80004): ADD SP, SP, 4H |
08FE | z(C700000F): B LNK |