ORB

Used Exports

BUILTINS: BOOLEAN BYTE CHAR DEC INC INTEGER LONGINT NEW
Files: File Length New Old ReadByte ReadInt ReadNum ReadString Register Rider Rider.eof Set WriteByte WriteInt WriteNum WriteString
ORS: IdLen Ident Mark id

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
0000a .PROC 1
0000a .PROC 15
0000a(4EE90018): SUB SP, SP, 18H
0001a(AFE00000): STR LNK, SP, 0H
0002a(A0E00004): STR R0, SP, 4H
0003a(A1E00008): STR R1, SP, 8H
0004a(A2E0000C): STR R2, SP, CH
0005b .FIXUP D
0005b(8D000005): LDR SB, MT, MOD0 [ORB]
0006b(80D00060): LDR R0, SB, 60H [data]
0007b(A0E00014): STR R0, SP, 14H
WHILE (x.nextc # NIL)d & (ex.nextf.nameg # id)h DOi x := x.nextj ENDk ;
0008c .PROC 2
0008c(80E00014): LDR R0, SP, 14H
0009c(D10ABD4C): BLEQ MT [trap=4, pos=2749]
000Ad(80000008): LDR R0, R0, 8H
000Be(E1000014): BEQ 20 [0020H]
000Cf(80E00014): LDR R0, SP, 14H
000Df(D10ACE4C): BLEQ MT [trap=4, pos=2766]
000Eg(80000008): LDR R0, R0, 8H
000Fg(D10AD34C): BLEQ MT [trap=4, pos=2771]
0010h .PROC 3
0010h(40080014): ADD R0, R0, 14H
0011h(81E00008): LDR R1, SP, 8H
0012h(92000000): LDR R2, R0, 0H
0013h(40080001): ADD R0, R0, 1H
0014h(93100000): LDR R3, R1, 0H
0015h(41180001): ADD R1, R1, 1H
0016h(04290003): SUB R4, R2, R3
0017h(E9000002): BNE 2 [001AH]
0018h .PROC 4
0018h(44290000): SUB R4, R2, 0H
0019h(E9FFFFF8): BNE -8 [0012H]
001Ai .PROC 5
001Ai(E1000005): BEQ 5 [0020H]
001Bj .PROC 6
001Bj(80E00014): LDR R0, SP, 14H
001Cj .PROC 7
001Cj(D10AE84C): BLEQ MT [trap=4, pos=2792]
001Dk .PROC 8
001Dk(80000008): LDR R0, R0, 8H
001Ek .PROC 9
001Ek(A0E00014): STR R0, SP, 14H
001Fk .PROC 10
001Fk(E7FFFFE8): B -24 [0008H]
IF x.nextl = NIL THENm
0020l .PROC 11
0020l(80E00014): LDR R0, SP, 14H
0021l .PROC 12
0021l(D10AFC4C): BLEQ MT [trap=4, pos=2812]
0022m .PROC 13
0022m(80000008): LDR R0, R0, 8H
0023m .PROC 14
0023m(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
0024n(40E80010): ADD R0, SP, 10H
0025n .FIXUP D
0025n(8D000020): LDR SB, MT, MOD0 [ORB]
0026n(41D80000): ADD R1, SB, 0H [data]
0027n(D70B170C): BL MT [trap=0, pos=2839]
0028o(80E00010): LDR R0, SP, 10H
0029o(D10B204C): BLEQ MT [trap=4, pos=2848]
002Ap(40080014): ADD R0, R0, 14H
002Bp(81E00008): LDR R1, SP, 8H
002Cp(42000008): MOV R2, R0, 8H
002Dp(83100000): LDR R3, R1, 0H
002Ep(41180004): ADD R1, R1, 4H
002Fp(A3000000): STR R3, R0, 0H
0030p(40080004): ADD R0, R0, 4H
0031p(42290001): SUB R2, R2, 1H
0032p(E9FFFFFA): BNE -6 [002DH]
0033q(80E00010): LDR R0, SP, 10H
0034q(D10B314C): BLEQ MT [trap=4, pos=2865]
0035r(81E0000C): LDR R1, SP, CH
0036r(B1000000): STR R1, R0, 0H
0037s(80E00010): LDR R0, SP, 10H
0038s(D10B444C): BLEQ MT [trap=4, pos=2884]
0039t(41000000): MOV R1, R0, 0H
003At(A1000008): STR R1, R0, 8H
003Bu(80E00010): LDR R0, SP, 10H
003Cu(D10B544C): BLEQ MT [trap=4, pos=2900]
003Dv(41000000): MOV R1, R0, 0H
003Ev(B1000003): STR R1, R0, 3H
003Fw(80E00010): LDR R0, SP, 10H
0040w(D10B664C): BLEQ MT [trap=4, pos=2918]
0041x(41000000): MOV R1, R0, 0H
0042x(A100000C): STR R1, R0, CH
x.nexty := new;z obj := new
0043y(80E00014): LDR R0, SP, 14H
0044y(D10B7B4C): BLEQ MT [trap=4, pos=2939]
0045z(81E00010): LDR R1, SP, 10H
0046z(A1000008): STR R1, R0, 8H
ELSEa objb := x.nextc;d ORS.Mark("mult def")e
0047a(80E00010): LDR R0, SP, 10H
0048a(81E00004): LDR R1, SP, 4H
0049a(A0100000): STR R0, R1, 0H
004Ab(E7000009): B 9 [0054H]
004Bc(80E00014): LDR R0, SP, 14H
004Cc(D10BA54C): BLEQ MT [trap=4, pos=2981]
004Dd(80000008): LDR R0, R0, 8H
004Ed(81E00004): LDR R1, SP, 4H
004Fd(A0100000): STR R0, R1, 0H
0050e .FIXUP D
0050e(8D00002B): LDR SB, MT, MOD0 [ORB]
0051e(40D80198): ADD R0, SB, 198H ["mult def"]
0052e(41000009): MOV R1, R0, 9H
ENDf
0053f .FIXUP P
0053f(F7209053): BL MOD2 [ORS] PROC9
ENDg NewObj;
0054g(8FE00000): LDR LNK, SP, 0H
0055g(4EE80018): ADD SP, SP, 18H
0056g(C700000F): B LNK
PROCEDURE thisObj*(): Object;
VAR s, x: Object;
BEGINh s := topScope;i
0057h .PROC 16
0057h(4EE9000C): SUB SP, SP, CH
0058h(AFE00000): STR LNK, SP, 0H
0059i .FIXUP D
0059i(8D000009): LDR SB, MT, MOD0 [ORB]
005Ai(80D00060): LDR R0, SB, 60H [data]
005Bi(A0E00004): STR R0, SP, 4H
REPEAT x := s.nextj;k
005Cj(80E00004): LDR R0, SP, 4H
005Dj(D10C374C): BLEQ MT [trap=4, pos=3127]
005Ek(80000008): LDR R0, R0, 8H
005Fk(A0E00008): STR R0, SP, 8H
WHILE (x # NIL)l & (mx.namen # ORS.id)o DOp x := x.nextq ENDr ;
0060l(80E00008): LDR R0, SP, 8H
0061m(E1000013): BEQ 19 [0075H]
0062n(80E00008): LDR R0, SP, 8H
0063n(D10C584C): BLEQ MT [trap=4, pos=3160]
0064o(40080014): ADD R0, R0, 14H
0065o .FIXUP D
0065o(8D20000C): LDR SB, MT, MOD2 [ORS]
0066o(41D80004): ADD R1, SB, VAR4
0067o(92000000): LDR R2, R0, 0H
0068o(40080001): ADD R0, R0, 1H
0069o(93100000): LDR R3, R1, 0H
006Ao(41180001): ADD R1, R1, 1H
006Bo(04290003): SUB R4, R2, R3
006Co(E9000002): BNE 2 [006FH]
006Do(44290000): SUB R4, R2, 0H
006Eo(E9FFFFF8): BNE -8 [0067H]
006Fp(E1000005): BEQ 5 [0075H]
0070q(80E00008): LDR R0, SP, 8H
0071q(D10C714C): BLEQ MT [trap=4, pos=3185]
0072r(80000008): LDR R0, R0, 8H
0073r(A0E00008): STR R0, SP, 8H
0074r(E7FFFFEB): B -21 [0060H]
s := s.dscs
0075s(80E00004): LDR R0, SP, 4H
0076s(D10C884C): BLEQ MT [trap=4, pos=3208]
UNTILt (x # NIL)u OR (vs = NIL)w;x
0077t(8000000C): LDR R0, R0, CH
0078t(A0E00004): STR R0, SP, 4H
0079u(80E00008): LDR R0, SP, 8H
007Av(E9000002): BNE 2 [007DH]
007Bw(80E00004): LDR R0, SP, 4H
007Cx(E9FFFFDF): BNE -33 [005CH]
RETURN x
ENDy thisObj;
007Dy(80E00008): LDR R0, SP, 8H
007Ey(8FE00000): LDR LNK, SP, 0H
007Fy(4EE8000C): ADD SP, SP, CH
0080y(C700000F): B LNK
PROCEDURE thisimport*(mod: Object): Object;
VAR obj: Object;
BEGINz
0081z .PROC 17
0081z(4EE9000C): SUB SP, SP, CH
0082z(AFE00000): STR LNK, SP, 0H
0083z(A0E00004): STR R0, SP, 4H
IF mod.rdoa THENb
0084a(80E00004): LDR R0, SP, 4H
0085a(D10D214C): BLEQ MT [trap=4, pos=3361]
0086b(90000003): LDR R0, R0, 3H
0087b(E1000021): BEQ 33 [00A9H]
IF mod.namec[0] # 0X THENd
0088c(80E00004): LDR R0, SP, 4H
0089c(D10D384C): BLEQ MT [trap=4, pos=3384]
008Ad(90000014): LDR R0, R0, 14H
008Bd(E100001A): BEQ 26 [00A6H]
obj := mod.dsce;f
008Ce(80E00004): LDR R0, SP, 4H
008De(D10D5C4C): BLEQ MT [trap=4, pos=3420]
008Ef(8000000C): LDR R0, R0, CH
008Ff(A0E00008): STR R0, SP, 8H
WHILE (obj # NIL)g & (hobj.namei # ORS.id)j DOk obj := obj.nextl ENDm
0090g(80E00008): LDR R0, SP, 8H
0091h(E1000013): BEQ 19 [00A5H]
0092i(80E00008): LDR R0, SP, 8H
0093i(D10D834C): BLEQ MT [trap=4, pos=3459]
0094j(40080014): ADD R0, R0, 14H
0095j .FIXUP D
0095j(8D200030): LDR SB, MT, MOD2 [ORS]
0096j(41D80004): ADD R1, SB, VAR4
0097j(92000000): LDR R2, R0, 0H
0098j(40080001): ADD R0, R0, 1H
0099j(93100000): LDR R3, R1, 0H
009Aj(41180001): ADD R1, R1, 1H
009Bj(04290003): SUB R4, R2, R3
009Cj(E9000002): BNE 2 [009FH]
009Dj(44290000): SUB R4, R2, 0H
009Ej(E9FFFFF8): BNE -8 [0097H]
009Fk(E1000005): BEQ 5 [00A5H]
00A0l(80E00008): LDR R0, SP, 8H
00A1l(D10DA04C): BLEQ MT [trap=4, pos=3488]
00A2m(80000008): LDR R0, R0, 8H
00A3m(A0E00008): STR R0, SP, 8H
00A4m(E7FFFFEB): B -21 [0090H]
ELSE objn := NIL
00A5n(E7000002): B 2 [00A8H]
ENDo
00A6o(40000000): MOV R0, R0, 0H
00A7o(A0E00008): STR R0, SP, 8H
ELSE objp := NIL
00A8p(E7000002): B 2 [00ABH]
ENDq ;
00A9q(40000000): MOV R0, R0, 0H
00AAq(A0E00008): STR R0, SP, 8H
RETURN obj
ENDr thisimport;
00ABr(80E00008): LDR R0, SP, 8H
00ACr(8FE00000): LDR LNK, SP, 0H
00ADr(4EE8000C): ADD SP, SP, CH
00AEr(C700000F): B LNK
PROCEDURE thisfield*(rec: Type): Object;
VAR fld: Object;
BEGINs fld := rec.dsct;u
00AFs .PROC 18
00AFs(4EE9000C): SUB SP, SP, CH
00B0s(AFE00000): STR LNK, SP, 0H
00B1s(A0E00004): STR R0, SP, 4H
00B2t(80E00004): LDR R0, SP, 4H
00B3t(D10E5B4C): BLEQ MT [trap=4, pos=3675]
00B4u(80000014): LDR R0, R0, 14H
00B5u(A0E00008): STR R0, SP, 8H
WHILE (fld # NIL)v & (wfld.namex # ORS.id)y DOz fld := fld.nexta ENDb ;
00B6v(80E00008): LDR R0, SP, 8H
00B7w(E1000013): BEQ 19 [00CBH]
00B8x(80E00008): LDR R0, SP, 8H
00B9x(D10E7E4C): BLEQ MT [trap=4, pos=3710]
00BAy(40080014): ADD R0, R0, 14H
00BBy .FIXUP D
00BBy(8D200026): LDR SB, MT, MOD2 [ORS]
00BCy(41D80004): ADD R1, SB, VAR4
00BDy(92000000): LDR R2, R0, 0H
00BEy(40080001): ADD R0, R0, 1H
00BFy(93100000): LDR R3, R1, 0H
00C0y(41180001): ADD R1, R1, 1H
00C1y(04290003): SUB R4, R2, R3
00C2y(E9000002): BNE 2 [00C5H]
00C3y(44290000): SUB R4, R2, 0H
00C4y(E9FFFFF8): BNE -8 [00BDH]
00C5z(E1000005): BEQ 5 [00CBH]
00C6a(80E00008): LDR R0, SP, 8H
00C7a(D10E9B4C): BLEQ MT [trap=4, pos=3739]
00C8b(80000008): LDR R0, R0, 8H
00C9b(A0E00008): STR R0, SP, 8H
00CAb(E7FFFFEB): B -21 [00B6H]
RETURN fld
ENDc thisfield;
00CBc(80E00008): LDR R0, SP, 8H
00CCc(8FE00000): LDR LNK, SP, 0H
00CDc(4EE8000C): ADD SP, SP, CH
00CEc(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
00CFd .PROC 19
00CFd .COMMAND OpenScope
00CFd(4EE90008): SUB SP, SP, 8H
00D0d(AFE00000): STR LNK, SP, 0H
00D1e(40E80004): ADD R0, SP, 4H
00D2e .FIXUP D
00D2e(8D000017): LDR SB, MT, MOD0 [ORB]
00D3e(41D80000): ADD R1, SB, 0H [data]
00D4e(D70EFD0C): BL MT [trap=0, pos=3837]
00D5f(80E00004): LDR R0, SP, 4H
00D6f(D10F054C): BLEQ MT [trap=4, pos=3845]
00D7g(41000000): MOV R1, R0, 0H
00D8g(B1000000): STR R1, R0, 0H
00D9h(80E00004): LDR R0, SP, 4H
00DAh(D10F144C): BLEQ MT [trap=4, pos=3860]
00DBi .FIXUP D
00DBi(8D000009): LDR SB, MT, MOD0 [ORB]
00DCi(81D00060): LDR R1, SB, 60H [data]
00DDi(A100000C): STR R1, R0, CH
00DEj(80E00004): LDR R0, SP, 4H
00DFj(D10F284C): BLEQ MT [trap=4, pos=3880]
00E0k(41000000): MOV R1, R0, 0H
00E1k(A1000008): STR R1, R0, 8H
ENDl OpenScope;
00E2l(80E00004): LDR R0, SP, 4H
00E3l(A0D00060): STR R0, SB, 60H
00E4l(8FE00000): LDR LNK, SP, 0H
00E5l(4EE80008): ADD SP, SP, 8H
00E6l(C700000F): B LNK
PROCEDURE CloseScope*;
BEGINm topScope := topScope.dscn
00E7m .PROC 20
00E7m .COMMAND CloseScope
00E7m(4EE90004): SUB SP, SP, 4H
00E8m(AFE00000): STR LNK, SP, 0H
00E9n .FIXUP D
00E9n(8D00000E): LDR SB, MT, MOD0 [ORB]
00EAn(80D00060): LDR R0, SB, 60H [data]
00EBn(D10F8A4C): BLEQ MT [trap=4, pos=3978]
ENDo CloseScope;
00ECo(8000000C): LDR R0, R0, CH
00EDo(A0D00060): STR R0, SB, 60H
00EEo(8FE00000): LDR LNK, SP, 0H
00EFo(4EE80004): ADD SP, SP, 4H
00F0o(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*)
00F1p .PROC 21
00F1p(4EE90020): SUB SP, SP, 20H
00F2p(AFE00000): STR LNK, SP, 0H
00F3p(A0E00004): STR R0, SP, 4H
00F4p(A1E00008): STR R1, SP, 8H
00F5p(A2E0000C): STR R2, SP, CH
00F6p(A3E00010): STR R3, SP, 10H
00F7p(A4E00014): STR R4, SP, 14H
00F8q(40000000): MOV R0, R0, 0H
00F9q(A0E00018): STR R0, SP, 18H
00FAr(40000000): MOV R0, R0, 0H
00FBr(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 ;
00FCs(80E00018): LDR R0, SP, 18H
00FDs(4009001B): SUB R0, R0, 1BH
00FEt(ED00001A): BGE 26 [0119H]
00FFu(80E00018): LDR R0, SP, 18H
0100u(81E0000C): LDR R1, SP, CH
0101u(01090001): SUB R1, R0, R1
0102u(DA10BD1C): BLCC MT [trap=1, pos=4285]
0103u(81E00008): LDR R1, SP, 8H
0104u(00180000): ADD R0, R1, R0
0105v(90000000): LDR R0, R0, 0H
0106v(40090000): SUB R0, R0, 0H
0107w(E6000011): BLE 17 [0119H]
0108x(80E00018): LDR R0, SP, 18H
0109x(41090020): SUB R1, R0, 20H
010Ax(DA10CF1C): BLCC MT [trap=1, pos=4303]
010Bx(81E00004): LDR R1, SP, 4H
010Cx(00180000): ADD R0, R1, R0
010Dy(81E00018): LDR R1, SP, 18H
010Ey(82E0000C): LDR R2, SP, CH
010Fy(02190002): SUB R2, R1, R2
0110y(DA10DA1C): BLCC MT [trap=1, pos=4314]
0111y(82E00008): LDR R2, SP, 8H
0112y(01280001): ADD R1, R2, R1
0113z(91100000): LDR R1, R1, 0H
0114z(B1000000): STR R1, R0, 0H
0115a(80E00018): LDR R0, SP, 18H
0116a(40080001): ADD R0, R0, 1H
0117a(A0E00018): STR R0, SP, 18H
0118a(E7FFFFE3): B -29 [00FCH]
REPEAT FName[i]b:= ext[j]c;d INC(i);e INC(j) UNTILf ext[j]g = 0X;h
0119b(80E00018): LDR R0, SP, 18H
011Ab(41090020): SUB R1, R0, 20H
011Bb(DA10FC1C): BLCC MT [trap=1, pos=4348]
011Cb(81E00004): LDR R1, SP, 4H
011Db(00180000): ADD R0, R1, R0
011Ec(81E0001C): LDR R1, SP, 1CH
011Fc(82E00014): LDR R2, SP, 14H
0120c(02190002): SUB R2, R1, R2
0121c(DA11051C): BLCC MT [trap=1, pos=4357]
0122c(82E00010): LDR R2, SP, 10H
0123c(01280001): ADD R1, R2, R1
0124d(91100000): LDR R1, R1, 0H
0125d(B1000000): STR R1, R0, 0H
0126e(80E00018): LDR R0, SP, 18H
0127e(40080001): ADD R0, R0, 1H
0128e(A0E00018): STR R0, SP, 18H
0129f(80E0001C): LDR R0, SP, 1CH
012Af(40080001): ADD R0, R0, 1H
012Bf(A0E0001C): STR R0, SP, 1CH
012Cg(80E0001C): LDR R0, SP, 1CH
012Dg(81E00014): LDR R1, SP, 14H
012Eg(01090001): SUB R1, R0, R1
012Fg(DA11221C): BLCC MT [trap=1, pos=4386]
0130g(81E00010): LDR R1, SP, 10H
0131g(00180000): ADD R0, R1, R0
0132h(90000000): LDR R0, R0, 0H
0133h(E9FFFFE5): BNE -27 [0119H]
FName[i]i := 0X
0134i(80E00018): LDR R0, SP, 18H
0135i(41090020): SUB R1, R0, 20H
0136i(DA11351C): BLCC MT [trap=1, pos=4405]
0137i(81E00004): LDR R1, SP, 4H
0138i(00180000): ADD R0, R1, R0
ENDj MakeFileName;
0139j(41000000): MOV R1, R0, 0H
013Aj(B1000000): STR R1, R0, 0H
013Bj(8FE00000): LDR LNK, SP, 0H
013Cj(4EE80020): ADD SP, SP, 20H
013Dj(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*)
013Ek(4EE90020): SUB SP, SP, 20H
013Fk(AFE00000): STR LNK, SP, 0H
0140k(A0E00004): STR R0, SP, 4H
0141k(A1E00008): STR R1, SP, 8H
0142k(A2E0000C): STR R2, SP, CH
0143k(A3E00010): STR R3, SP, 10H
0144l .FIXUP D
0144l(8D00005B): LDR SB, MT, MOD0 [ORB]
0145l(80D00060): LDR R0, SB, 60H [data]
0146l(A0E0001C): STR R0, SP, 1CH
0147m(80E0001C): LDR R0, SP, 1CH
0148m(D111FB4C): BLEQ MT [trap=4, pos=4603]
0149n(80000008): LDR R0, R0, 8H
014An(A0E00018): STR R0, SP, 18H
WHILE (obj # NIL)o & (pobj.nameq # name)r DOs obj1 := obj;t obj := obj1.nextu ENDv ;
014Bo(80E00018): LDR R0, SP, 18H
014Cp(E1000014): BEQ 20 [0161H]
014Dq(80E00018): LDR R0, SP, 18H
014Eq(D112354C): BLEQ MT [trap=4, pos=4661]
014Fr(40080014): ADD R0, R0, 14H
0150r(81E00004): LDR R1, SP, 4H
0151r(92000000): LDR R2, R0, 0H
0152r(40080001): ADD R0, R0, 1H
0153r(93100000): LDR R3, R1, 0H
0154r(41180001): ADD R1, R1, 1H
0155r(04290003): SUB R4, R2, R3
0156r(E9000002): BNE 2 [0159H]
0157r(44290000): SUB R4, R2, 0H
0158r(E9FFFFF8): BNE -8 [0151H]
0159s(E1000007): BEQ 7 [0161H]
015At(80E00018): LDR R0, SP, 18H
015Bt(A0E0001C): STR R0, SP, 1CH
015Cu(80E0001C): LDR R0, SP, 1CH
015Du(D1125E4C): BLEQ MT [trap=4, pos=4702]
015Ev(80000008): LDR R0, R0, 8H
015Fv(A0E00018): STR R0, SP, 18H
0160v(E7FFFFEA): B -22 [014BH]
IF obj = NIL THENw (*insert new module*)
0161w(80E00018): LDR R0, SP, 18H
0162w(E9000042): BNE 66 [01A5H]
NEW(mod);x mod.classy := Mod;z mod.rdoa := FALSE;b
0163x(40E80014): ADD R0, SP, 14H
0164x .FIXUP D
0164x(8D000020): LDR SB, MT, MOD0 [ORB]
0165x(41D80020): ADD R1, SB, 20H [data]
0166x(D712A10C): BL MT [trap=0, pos=4769]
0167y(80E00014): LDR R0, SP, 14H
0168y(D112AB4C): BLEQ MT [trap=4, pos=4779]
0169z(41000008): MOV R1, R0, 8H
016Az(B1000000): STR R1, R0, 0H
016Ba(80E00014): LDR R0, SP, 14H
016Ca(D112BB4C): BLEQ MT [trap=4, pos=4795]
016Db(41000000): MOV R1, R0, 0H
016Eb(B1000003): STR R1, R0, 3H
mod.namec := name;d mod.orgnamee := orgname;f mod.valg := key;h
016Fc(80E00014): LDR R0, SP, 14H
0170c(D112D44C): BLEQ MT [trap=4, pos=4820]
0171d(40080014): ADD R0, R0, 14H
0172d(81E00004): LDR R1, SP, 4H
0173d(42000008): MOV R2, R0, 8H
0174d(83100000): LDR R3, R1, 0H
0175d(41180004): ADD R1, R1, 4H
0176d(A3000000): STR R3, R0, 0H
0177d(40080004): ADD R0, R0, 4H
0178d(42290001): SUB R2, R2, 1H
0179d(E9FFFFFA): BNE -6 [0174H]
017Ae(80E00014): LDR R0, SP, 14H
017Be(D112E94C): BLEQ MT [trap=4, pos=4841]
017Cf(40080038): ADD R0, R0, 38H
017Df(81E00008): LDR R1, SP, 8H
017Ef(42000008): MOV R2, R0, 8H
017Ff(83100000): LDR R3, R1, 0H
0180f(41180004): ADD R1, R1, 4H
0181f(A3000000): STR R3, R0, 0H
0182f(40080004): ADD R0, R0, 4H
0183f(42290001): SUB R2, R2, 1H
0184f(E9FFFFFA): BNE -6 [017FH]
0185g(80E00014): LDR R0, SP, 14H
0186g(D112FD4C): BLEQ MT [trap=4, pos=4861]
0187h(81E00010): LDR R1, SP, 10H
0188h(A1000034): STR R1, R0, 34H
mod.levi := nofmod;j INC(nofmod);k mod.typel := noType;m mod.dscn := NIL;o mod.nextp := NIL;q
0189i(80E00014): LDR R0, SP, 14H
018Ai(D113134C): BLEQ MT [trap=4, pos=4883]
018Bj .FIXUP D
018Bj(8D000027): LDR SB, MT, MOD0 [ORB]
018Cj(81D00090): LDR R1, SB, 90H [data]
018Dj(A1000004): STR R1, R0, 4H
018Ek(40D80090): ADD R0, SB, 90H
018Fk(81000000): LDR R1, R0, 0H
0190k(41180001): ADD R1, R1, 1H
0191k(A1000000): STR R1, R0, 0H
0192l(80E00014): LDR R0, SP, 14H
0193l(D113344C): BLEQ MT [trap=4, pos=4916]
0194m(81D00088): LDR R1, SB, 88H
0195m(A1000010): STR R1, R0, 10H
0196n(80E00014): LDR R0, SP, 14H
0197n(D113474C): BLEQ MT [trap=4, pos=4935]
0198o(41000000): MOV R1, R0, 0H
0199o(A100000C): STR R1, R0, CH
019Ap(80E00014): LDR R0, SP, 14H
019Bp(D113584C): BLEQ MT [trap=4, pos=4952]
019Cq(41000000): MOV R1, R0, 0H
019Dq(A1000008): STR R1, R0, 8H
obj1.nextr := mod;s obj := mod
019Er(80E0001C): LDR R0, SP, 1CH
019Fr(D113704C): BLEQ MT [trap=4, pos=4976]
01A0s(81E00014): LDR R1, SP, 14H
01A1s(A1000008): STR R1, R0, 8H
ELSEt (*module already present*)
01A2t(80E00014): LDR R0, SP, 14H
01A3t(A0E00018): STR R0, SP, 18H
IFu non THENv ORS.Mark("invalid import order")w ENDx
01A4u(E7000006): B 6 [01ABH]
01A5v(90E0000C): LDR R0, SP, CH
01A6v(E1000004): BEQ 4 [01ABH]
01A7w .FIXUP D
01A7w(8D00001C): LDR SB, MT, MOD0 [ORB]
01A8w(40D801A4): ADD R0, SB, 1A4H ["invalid import order"]
01A9w(41000015): MOV R1, R0, 15H
01AAx .FIXUP P
01AAx(F7209157): BL MOD2 [ORS] PROC9
END ;
RETURN obj
ENDy ThisModule;
01ABy(80E00018): LDR R0, SP, 18H
01ACy(8FE00000): LDR LNK, SP, 0H
01ADy(4EE80020): ADD SP, SP, 20H
01AEy(C700000F): B LNK
PROCEDURE Read(VAR R: Files.Rider; VAR x: INTEGER);
VAR b: BYTE;
BEGINz Files.ReadByte(R,a b)b;c
01AFz(4EE90014): SUB SP, SP, 14H
01B0z(AFE00000): STR LNK, SP, 0H
01B1z(A0E00004): STR R0, SP, 4H
01B2z(A1E00008): STR R1, SP, 8H
01B3z(A2E0000C): STR R2, SP, CH
01B4a(80E00004): LDR R0, SP, 4H
01B5a(81E00008): LDR R1, SP, 8H
01B6b(42E80010): ADD R2, SP, 10H
01B7c .FIXUP P
01B7c(F710E00D): BL MOD1 [Files] PROC14
IF b < 80H THENd x := b ELSEe xf := b - 100H ENDg
01B8d(90E00010): LDR R0, SP, 10H
01B9d(40090080): SUB R0, R0, 80H
01BAd(ED000004): BGE 4 [01BFH]
01BBe(90E00010): LDR R0, SP, 10H
01BCe(81E0000C): LDR R1, SP, CH
01BDe(A0100000): STR R0, R1, 0H
01BEf(E7000004): B 4 [01C3H]
01BFg(90E00010): LDR R0, SP, 10H
01C0g(40090100): SUB R0, R0, 100H
01C1g(81E0000C): LDR R1, SP, CH
01C2g(A0100000): STR R0, R1, 0H
ENDh Read;
01C3h(8FE00000): LDR LNK, SP, 0H
01C4h(4EE80014): ADD SP, SP, 14H
01C5h(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
01C6i(4EE90080): SUB SP, SP, 80H
01C7i(AFE00000): STR LNK, SP, 0H
01C8i(A0E00004): STR R0, SP, 4H
01C9i(A1E00008): STR R1, SP, 8H
01CAi(A2E0000C): STR R2, SP, CH
01CBi(A3E00010): STR R3, SP, 10H
01CCj(80E00004): LDR R0, SP, 4H
01CDj(81E00008): LDR R1, SP, 8H
01CEk(42E80018): ADD R2, SP, 18H
01CFl(F7FFFFDF): BL -33 [01AFH]
IF ref < 0 THENm T := typtab[-ref]n (*already read*)
01D0m(80E00018): LDR R0, SP, 18H
01D1m(40090000): SUB R0, R0, 0H
01D2m(ED00000C): BGE 12 [01DFH]
01D3n(80E00018): LDR R0, SP, 18H
01D4n(41000000): MOV R1, R0, 0H
01D5n(00190000): SUB R0, R1, R0
01D6n(41090040): SUB R1, R0, 40H
01D7n(DA15CA1C): BLCC MT [trap=1, pos=5578]
01D8n(40010002): LSL R0, R0, 2H
01D9n .FIXUP D
01D9n(8D000032): LDR SB, MT, MOD0 [ORB]
01DAn(00D80000): ADD R0, SB, R0 [global array]
ELSEo NEWp(t);q T := t;r typtab[ref]s := t;t t.mnou := thismod.levv;w
01DBo(80000098): LDR R0, R0, 98H
01DCo(81E00010): LDR R1, SP, 10H
01DDo(A0100000): STR R0, R1, 0H
01DEp(E700016E): B 366 [034DH]
01DFq(40E8003C): ADD R0, SP, 3CH
01E0q .FIXUP D
01E0q(8D000007): LDR SB, MT, MOD0 [ORB]
01E1q(41D80040): ADD R1, SB, 40H [data]
01E2q(D715ED0C): BL MT [trap=0, pos=5613]
01E3r(80E0003C): LDR R0, SP, 3CH
01E4r(81E00010): LDR R1, SP, 10H
01E5r(A0100000): STR R0, R1, 0H
01E6s(80E00018): LDR R0, SP, 18H
01E7s(41090040): SUB R1, R0, 40H
01E8s(DA16011C): BLCC MT [trap=1, pos=5633]
01E9s(40010002): LSL R0, R0, 2H
01EAs .FIXUP D
01EAs(8D00000A): LDR SB, MT, MOD0 [ORB]
01EBs(00D80000): ADD R0, SB, R0 [global array]
01ECt(81E0003C): LDR R1, SP, 3CH
01EDt(A1000098): STR R1, R0, 98H
01EEu(80E0003C): LDR R0, SP, 3CH
01EFu(D1160D4C): BLEQ MT [trap=4, pos=5645]
01F0v(81E0000C): LDR R1, SP, CH
01F1v(D1161C4C): BLEQ MT [trap=4, pos=5660]
01F2w(81100004): LDR R1, R1, 4H
01F3w(A1000008): STR R1, R0, 8H
Read(R,x form)y;z t.forma := form;b
01F4x(80E00004): LDR R0, SP, 4H
01F5x(81E00008): LDR R1, SP, 8H
01F6y(42E80020): ADD R2, SP, 20H
01F7z(F7FFFFB7): BL -73 [01AFH]
01F8a(80E0003C): LDR R0, SP, 3CH
01F9a(D116394C): BLEQ MT [trap=4, pos=5689]
01FAb(81E00020): LDR R1, SP, 20H
01FBb(A1000000): STR R1, R0, 0H
IF form = Pointer THENc InType(R,d thismod,e t.basef)g;h t.sizei := 4
01FCc(80E00020): LDR R0, SP, 20H
01FDc(40090007): SUB R0, R0, 7H
01FEc(E900000C): BNE 12 [020BH]
01FFd(80E00004): LDR R0, SP, 4H
0200d(81E00008): LDR R1, SP, 8H
0201e(82E0000C): LDR R2, SP, CH
0202f(83E0003C): LDR R3, SP, 3CH
0203f(D116794C): BLEQ MT [trap=4, pos=5753]
0204g(4338001C): ADD R3, R3, 1CH
0205h(F7FFFFC0): BL -64 [01C6H]
0206i(80E0003C): LDR R0, SP, 3CH
0207i(D116824C): BLEQ MT [trap=4, pos=5762]
ELSIFj formk = Array THENl
0208j(41000004): MOV R1, R0, 4H
0209j(A1000020): STR R1, R0, 20H
020Ak(E70000D5): B 213 [02E0H]
020Bl(80E00020): LDR R0, SP, 20H
020Cl(4009000C): SUB R0, R0, CH
020Dl(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
020Em(80E00004): LDR R0, SP, 4H
020Fm(81E00008): LDR R1, SP, 8H
0210n(82E0000C): LDR R2, SP, CH
0211o(83E0003C): LDR R3, SP, 3CH
0212o(D116C74C): BLEQ MT [trap=4, pos=5831]
0213p(4338001C): ADD R3, R3, 1CH
0214q(F7FFFFB1): BL -79 [01C6H]
0215r(80E00004): LDR R0, SP, 4H
0216r(81E00008): LDR R1, SP, 8H
0217s(82E0003C): LDR R2, SP, 3CH
0218s(D116E04C): BLEQ MT [trap=4, pos=5856]
0219t(42280010): ADD R2, R2, 10H
021Au .FIXUP P
021Au(F7115063): BL MOD1 [Files] PROC21
021Bv(80E00004): LDR R0, SP, 4H
021Cv(81E00008): LDR R1, SP, 8H
021Dw(82E0003C): LDR R2, SP, 3CH
021Ew(D116FA4C): BLEQ MT [trap=4, pos=5882]
021Fx(42280020): ADD R2, R2, 20H
ELSIFy formz = Record THENa
0220y .FIXUP P
0220y(F7115006): BL MOD1 [Files] PROC21
0221z(E70000BE): B 190 [02E0H]
0222a(80E00020): LDR R0, SP, 20H
0223a(4009000D): SUB R0, R0, DH
0224a(E9000071): BNE 113 [0296H]
InType(R,b thismod,c t.based)e;f
0225b(80E00004): LDR R0, SP, 4H
0226b(81E00008): LDR R1, SP, 8H
0227c(82E0000C): LDR R2, SP, CH
0228d(83E0003C): LDR R3, SP, 3CH
0229d(D1173C4C): BLEQ MT [trap=4, pos=5948]
022Ae(4338001C): ADD R3, R3, 1CH
022Bf(F7FFFF9A): BL -102 [01C6H]
IF t.baseg.formh = NoTyp THENi t.basej := NIL;k obj := NIL ELSEl objm := t.basen.dsco ENDp ;
022Cg(80E0003C): LDR R0, SP, 3CH
022Dg(D117504C): BLEQ MT [trap=4, pos=5968]
022Eh(8000001C): LDR R0, R0, 1CH
022Fh(D117554C): BLEQ MT [trap=4, pos=5973]
0230i(80000000): LDR R0, R0, 0H
0231i(40090009): SUB R0, R0, 9H
0232i(E9000007): BNE 7 [023AH]
0233j(80E0003C): LDR R0, SP, 3CH
0234j(D117694C): BLEQ MT [trap=4, pos=5993]
0235k(41000000): MOV R1, R0, 0H
0236k(A100001C): STR R1, R0, 1CH
0237l(40000000): MOV R0, R0, 0H
0238l(A0E00034): STR R0, SP, 34H
0239m(E7000006): B 6 [0240H]
023An(80E0003C): LDR R0, SP, 3CH
023Bn(D1178F4C): BLEQ MT [trap=4, pos=6031]
023Co(8000001C): LDR R0, R0, 1CH
023Do(D117934C): BLEQ MT [trap=4, pos=6035]
023Ep(80000014): LDR R0, R0, 14H
023Fp(A0E00034): STR R0, SP, 34H
Files.ReadNum(R,q t.lenr)s;t (*TD adr/exno*)
0240q(80E00004): LDR R0, SP, 4H
0241q(81E00008): LDR R1, SP, 8H
0242r(82E0003C): LDR R2, SP, 3CH
0243r(D117B84C): BLEQ MT [trap=4, pos=6072]
0244s(42280010): ADD R2, R2, 10H
0245t .FIXUP P
0245t(F7115025): BL MOD1 [Files] PROC21
Files.ReadNum(R,u t.nofparv)w;x (*ext level*)
0246u(80E00004): LDR R0, SP, 4H
0247u(81E00008): LDR R1, SP, 8H
0248v(82E0003C): LDR R2, SP, 3CH
0249v(D117EC4C): BLEQ MT [trap=4, pos=6124]
024Aw(4228000C): ADD R2, R2, CH
024Bx .FIXUP P
024Bx(F7115006): BL MOD1 [Files] PROC21
Files.ReadNum(R,y t.sizez)a;b
024Cy(80E00004): LDR R0, SP, 4H
024Dy(81E00008): LDR R1, SP, 8H
024Ez(82E0003C): LDR R2, SP, 3CH
024Fz(D1181D4C): BLEQ MT [trap=4, pos=6173]
0250a(42280020): ADD R2, R2, 20H
0251b .FIXUP P
0251b(F7115006): BL MOD1 [Files] PROC21
Read(R,c class)d;e
0252c(80E00004): LDR R0, SP, 4H
0253c(81E00008): LDR R1, SP, 8H
0254d(42E8001C): ADD R2, SP, 1CH
0255e(F7FFFF59): BL -167 [01AFH]
WHILE class # 0 DOf (*fields*)
0256f(80E0001C): LDR R0, SP, 1CH
0257f(E1000039): BEQ 57 [0291H]
NEW(fld);g fld.classh := class;i Files.ReadString(R,j fld.namek)l;m
0258g(40E8002C): ADD R0, SP, 2CH
0259g .FIXUP D
0259g(8D00006F): LDR SB, MT, MOD0 [ORB]
025Ag(41D80000): ADD R1, SB, 0H [data]
025Bg(D718720C): BL MT [trap=0, pos=6258]
025Ch(80E0002C): LDR R0, SP, 2CH
025Dh(D1187C4C): BLEQ MT [trap=4, pos=6268]
025Ei(81E0001C): LDR R1, SP, 1CH
025Fi(B1000000): STR R1, R0, 0H
0260j(80E00004): LDR R0, SP, 4H
0261j(81E00008): LDR R1, SP, 8H
0262k(82E0002C): LDR R2, SP, 2CH
0263k(D118A34C): BLEQ MT [trap=4, pos=6307]
0264l(42280014): ADD R2, R2, 14H
0265l(43000020): MOV R3, R0, 20H
0266m .FIXUP P
0266m(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 ;
0267n(80E0002C): LDR R0, SP, 2CH
0268n(D118BB4C): BLEQ MT [trap=4, pos=6331]
0269o(90000014): LDR R0, R0, 14H
026Ao(E100000C): BEQ 12 [0277H]
026Bp(80E0002C): LDR R0, SP, 2CH
026Cp(D118D14C): BLEQ MT [trap=4, pos=6353]
026Dq(41000001): MOV R1, R0, 1H
026Eq(B1000002): STR R1, R0, 2H
026Fr(80E00004): LDR R0, SP, 4H
0270r(81E00008): LDR R1, SP, 8H
0271s(82E0000C): LDR R2, SP, CH
0272t(83E0002C): LDR R3, SP, 2CH
0273t(D118F64C): BLEQ MT [trap=4, pos=6390]
0274u(43380010): ADD R3, R3, 10H
0275v(F7FFFF50): BL -176 [01C6H]
0276w(E7000009): B 9 [0280H]
0277x(80E0002C): LDR R0, SP, 2CH
0278x(D119054C): BLEQ MT [trap=4, pos=6405]
0279y(41000000): MOV R1, R0, 0H
027Ay(B1000002): STR R1, R0, 2H
027Bz(80E0002C): LDR R0, SP, 2CH
027Cz(D119184C): BLEQ MT [trap=4, pos=6424]
027Da .FIXUP D
027Da(8D000024): LDR SB, MT, MOD0 [ORB]
027Ea(81D00084): LDR R1, SB, 84H [data]
027Fa(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
0280b(80E00004): LDR R0, SP, 4H
0281b(81E00008): LDR R1, SP, 8H
0282c(82E0002C): LDR R2, SP, 2CH
0283c(D1194C4C): BLEQ MT [trap=4, pos=6476]
0284d(42280034): ADD R2, R2, 34H
0285e .FIXUP P
0285e(F711501F): BL MOD1 [Files] PROC21
0286f(80E0002C): LDR R0, SP, 2CH
0287f(D119574C): BLEQ MT [trap=4, pos=6487]
0288g(81E00034): LDR R1, SP, 34H
0289g(A1000008): STR R1, R0, 8H
028Ah(80E0002C): LDR R0, SP, 2CH
028Bh(A0E00034): STR R0, SP, 34H
028Ci(80E00004): LDR R0, SP, 4H
028Di(81E00008): LDR R1, SP, 8H
028Ej(42E8001C): ADD R2, SP, 1CH
ENDk ;
028Fk(F7FFFF1F): BL -225 [01AFH]
0290k(E7FFFFC5): B -59 [0256H]
t.dscl := obj
0291l(80E0003C): LDR R0, SP, 3CH
0292l(D119964C): BLEQ MT [trap=4, pos=6550]
ELSIFm formn = Proc THENo
0293m(81E00034): LDR R1, SP, 34H
0294m(A1000014): STR R1, R0, 14H
0295n(E700004A): B 74 [02E0H]
0296o(80E00020): LDR R0, SP, 20H
0297o(4009000A): SUB R0, R0, AH
0298o(E9000047): BNE 71 [02E0H]
InType(R,p thismod,q t.baser)s;t
0299p(80E00004): LDR R0, SP, 4H
029Ap(81E00008): LDR R1, SP, 8H
029Bq(82E0000C): LDR R2, SP, CH
029Cr(83E0003C): LDR R3, SP, 3CH
029Dr(D119DC4C): BLEQ MT [trap=4, pos=6620]
029Es(4338001C): ADD R3, R3, 1CH
029Ft(F7FFFF26): BL -218 [01C6H]
obj := NIL;u np := 0;v Read(R,w class)x;y
02A0u(40000000): MOV R0, R0, 0H
02A1u(A0E00034): STR R0, SP, 34H
02A2v(40000000): MOV R0, R0, 0H
02A3v(A0E00024): STR R0, SP, 24H
02A4w(80E00004): LDR R0, SP, 4H
02A5w(81E00008): LDR R1, SP, 8H
02A6x(42E8001C): ADD R2, SP, 1CH
02A7y(F7FFFF07): BL -249 [01AFH]
WHILE class # 0 DOz (*parameters*)
02A8z(80E0001C): LDR R0, SP, 1CH
02A9z(E100002A): BEQ 42 [02D4H]
NEW(par);a par.classb := class;c Read(R,d readonly)e;f par.rdog := readonly = 1;h
02AAa(40E80030): ADD R0, SP, 30H
02ABa .FIXUP D
02ABa(8D00002E): LDR SB, MT, MOD0 [ORB]
02ACa(41D80000): ADD R1, SB, 0H [data]
02ADa(D71A4A0C): BL MT [trap=0, pos=6730]
02AEb(80E00030): LDR R0, SP, 30H
02AFb(D11A544C): BLEQ MT [trap=4, pos=6740]
02B0c(81E0001C): LDR R1, SP, 1CH
02B1c(B1000000): STR R1, R0, 0H
02B2d(80E00004): LDR R0, SP, 4H
02B3d(81E00008): LDR R1, SP, 8H
02B4e(42E80028): ADD R2, SP, 28H
02B5f(F7FFFEF9): BL -263 [01AFH]
02B6g(80E00030): LDR R0, SP, 30H
02B7g(D11A794C): BLEQ MT [trap=4, pos=6777]
02B8h(81E00028): LDR R1, SP, 28H
02B9h(41190001): SUB R1, R1, 1H
02BAh(E9000002): BNE 2 [02BDH]
02BBh(41000001): MOV R1, R0, 1H
02BCh(E7000001): B 1 [02BEH]
02BDh(41000000): MOV R1, R0, 0H
02BEh(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
02BFi(80E00004): LDR R0, SP, 4H
02C0i(81E00008): LDR R1, SP, 8H
02C1j(82E0000C): LDR R2, SP, CH
02C2k(83E00030): LDR R3, SP, 30H
02C3k(D11AB14C): BLEQ MT [trap=4, pos=6833]
02C4l(43380010): ADD R3, R3, 10H
02C5m(F7FFFF00): BL -256 [01C6H]
02C6n(80E00030): LDR R0, SP, 30H
02C7n(D11ABC4C): BLEQ MT [trap=4, pos=6844]
02C8o(81E00034): LDR R1, SP, 34H
02C9o(A1000008): STR R1, R0, 8H
02CAp(80E00030): LDR R0, SP, 30H
02CBp(A0E00034): STR R0, SP, 34H
02CCq(80E00024): LDR R0, SP, 24H
02CDq(40080001): ADD R0, R0, 1H
02CEq(A0E00024): STR R0, SP, 24H
02CFr(80E00004): LDR R0, SP, 4H
02D0r(81E00008): LDR R1, SP, 8H
02D1s(42E8001C): ADD R2, SP, 1CH
ENDt ;
02D2t(F7FFFEDC): BL -292 [01AFH]
02D3t(E7FFFFD4): B -44 [02A8H]
t.dscu := obj;v t.nofparw := np;x t.sizey := 4
02D4u(80E0003C): LDR R0, SP, 3CH
02D5u(D11B044C): BLEQ MT [trap=4, pos=6916]
02D6v(81E00034): LDR R1, SP, 34H
02D7v(A1000014): STR R1, R0, 14H
02D8w(80E0003C): LDR R0, SP, 3CH
02D9w(D11B154C): BLEQ MT [trap=4, pos=6933]
02DAx(81E00024): LDR R1, SP, 24H
02DBx(A100000C): STR R1, R0, CH
02DCy(80E0003C): LDR R0, SP, 3CH
02DDy(D11B234C): BLEQ MT [trap=4, pos=6947]
ENDz ;
02DEz(41000004): MOV R1, R0, 4H
02DFz(A1000020): STR R1, R0, 20H
Files.ReadString(R,a modname)b;c
02E0a(80E00004): LDR R0, SP, 4H
02E1a(81E00008): LDR R1, SP, 8H
02E2b(42E80060): ADD R2, SP, 60H
02E3b(43000020): MOV R3, R0, 20H
02E4c .FIXUP P
02E4c(F711405F): BL MOD1 [Files] PROC20
IF modname[0] # 0X THENd (*re-import*)
02E5d(90E00060): LDR R0, SP, 60H
02E6d(E1000066): BEQ 102 [034DH]
Files.ReadInt(R,e key)f;g Files.ReadString(R,h name)i;j
02E7e(80E00004): LDR R0, SP, 4H
02E8e(81E00008): LDR R1, SP, 8H
02E9f(42E80014): ADD R2, SP, 14H
02EAg .FIXUP P
02EAg(F7111006): BL MOD1 [Files] PROC17
02EBh(80E00004): LDR R0, SP, 4H
02ECh(81E00008): LDR R1, SP, 8H
02EDi(42E80040): ADD R2, SP, 40H
02EEi(43000020): MOV R3, R0, 20H
02EFj .FIXUP P
02EFj(F7114005): BL MOD1 [Files] PROC20
mod := ThisModule(modname,k modname,l FALSE,m key)n;o
02F0k(40E80060): ADD R0, SP, 60H
02F1l(41E80060): ADD R1, SP, 60H
02F2m(42000000): MOV R2, R0, 0H
02F3n(83E00014): LDR R3, SP, 14H
02F4o(F7FFFE49): BL -439 [013EH]
02F5o(A0E00038): STR R0, SP, 38H
obj := mod.dscp;q (*search type*)
02F6p(80E00038): LDR R0, SP, 38H
02F7p(D11C104C): BLEQ MT [trap=4, pos=7184]
02F8q(8000000C): LDR R0, R0, CH
02F9q(A0E00034): STR R0, SP, 34H
WHILE (obj # NIL)r & (sobj.namet # name)u DOv obj := obj.nextw ENDx ;
02FAr(80E00034): LDR R0, SP, 34H
02FBs(E1000012): BEQ 18 [030EH]
02FCt(80E00034): LDR R0, SP, 34H
02FDt(D11C484C): BLEQ MT [trap=4, pos=7240]
02FEu(40080014): ADD R0, R0, 14H
02FFu(41E80040): ADD R1, SP, 40H
0300u(92000000): LDR R2, R0, 0H
0301u(40080001): ADD R0, R0, 1H
0302u(93100000): LDR R3, R1, 0H
0303u(41180001): ADD R1, R1, 1H
0304u(04290003): SUB R4, R2, R3
0305u(E9000002): BNE 2 [0308H]
0306u(44290000): SUB R4, R2, 0H
0307u(E9FFFFF8): BNE -8 [0300H]
0308v(E1000005): BEQ 5 [030EH]
0309w(80E00034): LDR R0, SP, 34H
030Aw(D11C634C): BLEQ MT [trap=4, pos=7267]
030Bx(80000008): LDR R0, R0, 8H
030Cx(A0E00034): STR R0, SP, 34H
030Dx(E7FFFFEC): B -20 [02FAH]
IF obj # NIL THENy T := obj.typez (*type object found in object list of mod*)
030Ey(80E00034): LDR R0, SP, 34H
030Fy(E1000006): BEQ 6 [0316H]
0310z(80E00034): LDR R0, SP, 34H
0311z(D11C914C): BLEQ MT [trap=4, pos=7313]
ELSEa (*insert new type object in object list of mod*)
0312a(80000010): LDR R0, R0, 10H
0313a(81E00010): LDR R1, SP, 10H
0314a(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
0315b(E700002E): B 46 [0344H]
0316c(40E80034): ADD R0, SP, 34H
0317c .FIXUP D
0317c(8D00006C): LDR SB, MT, MOD0 [ORB]
0318c(41D80000): ADD R1, SB, 0H [data]
0319c(D71D110C): BL MT [trap=0, pos=7441]
031Ad(80E00034): LDR R0, SP, 34H
031Bd(D11D1A4C): BLEQ MT [trap=4, pos=7450]
031Ce(40080014): ADD R0, R0, 14H
031De(41E80040): ADD R1, SP, 40H
031Ee(42000008): MOV R2, R0, 8H
031Fe(83100000): LDR R3, R1, 0H
0320e(41180004): ADD R1, R1, 4H
0321e(A3000000): STR R3, R0, 0H
0322e(40080004): ADD R0, R0, 4H
0323e(42290001): SUB R2, R2, 1H
0324e(E9FFFFFA): BNE -6 [031FH]
0325f(80E00034): LDR R0, SP, 34H
0326f(D11D2D4C): BLEQ MT [trap=4, pos=7469]
0327g(41000005): MOV R1, R0, 5H
0328g(B1000000): STR R1, R0, 0H
0329h(80E00034): LDR R0, SP, 34H
032Ah(D11D3E4C): BLEQ MT [trap=4, pos=7486]
032Bi(81E00038): LDR R1, SP, 38H
032Ci(D11D494C): BLEQ MT [trap=4, pos=7497]
032Dj(8110000C): LDR R1, R1, CH
032Ej(A1000008): STR R1, R0, 8H
032Fk(80E00038): LDR R0, SP, 38H
0330k(D11D524C): BLEQ MT [trap=4, pos=7506]
0331l(81E00034): LDR R1, SP, 34H
0332l(A100000C): STR R1, R0, CH
0333m(80E00034): LDR R0, SP, 34H
0334m(D11D634C): BLEQ MT [trap=4, pos=7523]
0335n(81E0003C): LDR R1, SP, 3CH
0336n(A1000010): STR R1, R0, 10H
t.mnoo := mod.levp;q t.typobjr := obj;s T := t
0337o(80E0003C): LDR R0, SP, 3CH
0338o(D11D794C): BLEQ MT [trap=4, pos=7545]
0339p(81E00038): LDR R1, SP, 38H
033Ap(D11D844C): BLEQ MT [trap=4, pos=7556]
033Bq(81100004): LDR R1, R1, 4H
033Cq(A1000008): STR R1, R0, 8H
033Dr(80E0003C): LDR R0, SP, 3CH
033Er(D11D8E4C): BLEQ MT [trap=4, pos=7566]
033Fs(81E00034): LDR R1, SP, 34H
0340s(A1000018): STR R1, R0, 18H
ENDt ;
0341t(80E0003C): LDR R0, SP, 3CH
0342t(81E00010): LDR R1, SP, 10H
0343t(A0100000): STR R0, R1, 0H
typtab[ref]u := T
0344u(80E00018): LDR R0, SP, 18H
0345u(41090040): SUB R1, R0, 40H
0346u(DA1DBF1C): BLCC MT [trap=1, pos=7615]
0347u(40010002): LSL R0, R0, 2H
0348u .FIXUP D
0348u(8D000031): LDR SB, MT, MOD0 [ORB]
0349u(00D80000): ADD R0, SB, R0 [global array]
ENDv
034Av(81E00010): LDR R1, SP, 10H
034Bv(81100000): LDR R1, R1, 0H
034Cv(A1000098): STR R1, R0, 98H
END
ENDw InType;
034Dw(8FE00000): LDR LNK, SP, 0H
034Ew(4EE80080): ADD SP, SP, 80H
034Fw(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
0350x .PROC 22
0350x(4EE90080): SUB SP, SP, 80H
0351x(AFE00000): STR LNK, SP, 0H
0352x(A0E00004): STR R0, SP, 4H
0353x(A1E00008): STR R1, SP, 8H
IF modid1 = "SYSTEM" THENy
0354y(80E00008): LDR R0, SP, 8H
0355y .FIXUP D
0355y(8D00000D): LDR SB, MT, MOD0 [ORB]
0356y(41D801BC): ADD R1, SB, 1BCH ["SYSTEM"]
0357y(92000000): LDR R2, R0, 0H
0358y(40080001): ADD R0, R0, 1H
0359y(93100000): LDR R3, R1, 0H
035Ay(41180001): ADD R1, R1, 1H
035By(04290003): SUB R4, R2, R3
035Cy(E9000002): BNE 2 [035FH]
035Dy(44290000): SUB R4, R2, 0H
035Ey(E9FFFFF8): BNE -8 [0357H]
035Fy(E9000018): BNE 24 [0378H]
thismod := ThisModule(modid,z modid1,a TRUE,b key)c;d DEC(nofmod);e
0360z(80E00004): LDR R0, SP, 4H
0361a(81E00008): LDR R1, SP, 8H
0362b(42000001): MOV R2, R0, 1H
0363c(83E0000C): LDR R3, SP, CH
0364d(F7FFFDD9): BL -551 [013EH]
0365d(A0E00020): STR R0, SP, 20H
0366e .FIXUP D
0366e(8D000011): LDR SB, MT, MOD0 [ORB]
0367e(40D80090): ADD R0, SB, 90H [data]
0368e(81000000): LDR R1, R0, 0H
0369e(41190001): SUB R1, R1, 1H
036Ae(A1000000): STR R1, R0, 0H
thismod.levf := 0;g thismod.dsch := system;i thismod.rdoj := TRUE
036Bf(80E00020): LDR R0, SP, 20H
036Cf(D11F394C): BLEQ MT [trap=4, pos=7993]
036Dg(41000000): MOV R1, R0, 0H
036Eg(A1000004): STR R1, R0, 4H
036Fh(80E00020): LDR R0, SP, 20H
0370h(D11F4B4C): BLEQ MT [trap=4, pos=8011]
0371i(81D00068): LDR R1, SB, 68H
0372i(A100000C): STR R1, R0, CH
0373j(80E00020): LDR R0, SP, 20H
0374j(D11F624C): BLEQ MT [trap=4, pos=8034]
ELSEk MakeFileNamel(fname,m modid1,n ".smb")o;p F := Files.Old(fname)q;r
0375k(41000001): MOV R1, R0, 1H
0376k(B1000003): STR R1, R0, 3H
0377l(E70000C0): B 192 [0438H]
0378m(40E80044): ADD R0, SP, 44H
0379n(81E00008): LDR R1, SP, 8H
037An(42000020): MOV R2, R0, 20H
037Bo .FIXUP D
037Bo(8D000015): LDR SB, MT, MOD0 [ORB]
037Co(43D801C4): ADD R3, SB, 1C4H [".smb"]
037Do(44000005): MOV R4, R0, 5H
037Ep(F7FFFD72): BL -654 [00F1H]
037Fq(40E80044): ADD R0, SP, 44H
0380q(41000020): MOV R1, R0, 20H
0381r .FIXUP P
0381r(F7102092): BL MOD1 [Files] PROC2
0382r(A0E00064): STR R0, SP, 64H
IF F # NIL THENs
0383s(80E00064): LDR R0, SP, 64H
0384s(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
0385t(40E80068): ADD R0, SP, 68H
0386t .FIXUP D
0386t(8D10000B): LDR SB, MT, MOD1 [Files]
0387t(41D80001): ADD R1, SB, VAR1
0388u(82E00064): LDR R2, SP, 64H
0389v(43000000): MOV R3, R0, 0H
038Aw .FIXUP P
038Aw(F710B009): BL MOD1 [Files] PROC11
038Bx(40E80068): ADD R0, SP, 68H
038Cx .FIXUP D
038Cx(8D100006): LDR SB, MT, MOD1 [Files]
038Dx(41D80001): ADD R1, SB, VAR1
038Ey(42E8000C): ADD R2, SP, CH
038Fz .FIXUP P
038Fz(F7111005): BL MOD1 [Files] PROC17
0390a(40E80068): ADD R0, SP, 68H
0391a .FIXUP D
0391a(8D100005): LDR SB, MT, MOD1 [Files]
0392a(41D80001): ADD R1, SB, VAR1
0393b(42E8000C): ADD R2, SP, CH
0394c .FIXUP P
0394c(F7111005): BL MOD1 [Files] PROC17
0395d(40E80068): ADD R0, SP, 68H
0396d .FIXUP D
0396d(8D100005): LDR SB, MT, MOD1 [Files]
0397d(41D80001): ADD R1, SB, VAR1
0398e(42E80024): ADD R2, SP, 24H
0399e(43000020): MOV R3, R0, 20H
039Af .FIXUP P
039Af(F7114006): BL MOD1 [Files] PROC20
thismod := ThisModule(modid,g modid1,h TRUE,i key)j;k thismod.rdol := TRUE;m
039Bg(80E00004): LDR R0, SP, 4H
039Ch(81E00008): LDR R1, SP, 8H
039Di(42000001): MOV R2, R0, 1H
039Ej(83E0000C): LDR R3, SP, CH
039Fk(F7FFFD9E): BL -610 [013EH]
03A0k(A0E00020): STR R0, SP, 20H
03A1l(80E00020): LDR R0, SP, 20H
03A2l(D120724C): BLEQ MT [trap=4, pos=8306]
03A3m(41000001): MOV R1, R0, 1H
03A4m(B1000003): STR R1, R0, 3H
Read(R,n class)o;p (*version key*)
03A5n(40E80068): ADD R0, SP, 68H
03A6n .FIXUP D
03A6n(8D100010): LDR SB, MT, MOD1 [Files]
03A7n(41D80001): ADD R1, SB, VAR1
03A8o(42E80010): ADD R2, SP, 10H
03A9p(F7FFFE05): BL -507 [01AFH]
IF class # versionkey THENq ORS.Mark("wrong version")r ENDs ;
03AAq(80E00010): LDR R0, SP, 10H
03ABq(40090001): SUB R0, R0, 1H
03ACq(E1000004): BEQ 4 [03B1H]
03ADr .FIXUP D
03ADr(8D000007): LDR SB, MT, MOD0 [ORB]
03AEr(40D801CC): ADD R0, SB, 1CCH ["wrong version"]
03AFr(4100000E): MOV R1, R0, EH
03B0s .FIXUP P
03B0s(F7209016): BL MOD2 [ORS] PROC9
Read(R,t class)u;v
03B1t(40E80068): ADD R0, SP, 68H
03B2t .FIXUP D
03B2t(8D100005): LDR SB, MT, MOD1 [Files]
03B3t(41D80001): ADD R1, SB, VAR1
03B4u(42E80010): ADD R2, SP, 10H
03B5v(F7FFFDF9): BL -519 [01AFH]
WHILE class # 0 DOw
03B6w(80E00010): LDR R0, SP, 10H
03B7w(E100007B): BEQ 123 [0433H]
NEW(obj);x obj.classy := class;z Files.ReadString(R,a obj.nameb)c;d
03B8x(40E80018): ADD R0, SP, 18H
03B9x .FIXUP D
03B9x(8D000007): LDR SB, MT, MOD0 [ORB]
03BAx(41D80000): ADD R1, SB, 0H [data]
03BBx(D7212D0C): BL MT [trap=0, pos=8493]
03BCy(80E00018): LDR R0, SP, 18H
03BDy(D121374C): BLEQ MT [trap=4, pos=8503]
03BEz(81E00010): LDR R1, SP, 10H
03BFz(B1000000): STR R1, R0, 0H
03C0a(40E80068): ADD R0, SP, 68H
03C1a .FIXUP D
03C1a(8D100008): LDR SB, MT, MOD1 [Files]
03C2a(41D80001): ADD R1, SB, VAR1
03C3b(82E00018): LDR R2, SP, 18H
03C4b(D1215E4C): BLEQ MT [trap=4, pos=8542]
03C5c(42280014): ADD R2, R2, 14H
03C6c(43000020): MOV R3, R0, 20H
03C7d .FIXUP P
03C7d(F7114017): BL MOD1 [Files] PROC20
InType(R,e thismod,f obj.typeg)h;i obj.levj := -thismod.levk;l
03C8e(40E80068): ADD R0, SP, 68H
03C9e .FIXUP D
03C9e(8D100008): LDR SB, MT, MOD1 [Files]
03CAe(41D80001): ADD R1, SB, VAR1
03CBf(82E00020): LDR R2, SP, 20H
03CCg(83E00018): LDR R3, SP, 18H
03CDg(D121864C): BLEQ MT [trap=4, pos=8582]
03CEh(43380010): ADD R3, R3, 10H
03CFi(F7FFFDF6): BL -522 [01C6H]
03D0j(80E00018): LDR R0, SP, 18H
03D1j(D121904C): BLEQ MT [trap=4, pos=8592]
03D2k(81E00020): LDR R1, SP, 20H
03D3k(D121A04C): BLEQ MT [trap=4, pos=8608]
03D4l(81100004): LDR R1, R1, 4H
03D5l(42000000): MOV R2, R0, 0H
03D6l(01290001): SUB R1, R2, R1
03D7l(A1000004): STR R1, R0, 4H
IF class = Typ THENm
03D8m(80E00010): LDR R0, SP, 10H
03D9m(40090005): SUB R0, R0, 5H
03DAm(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*)
03DBn(80E00018): LDR R0, SP, 18H
03DCn(D121D94C): BLEQ MT [trap=4, pos=8665]
03DDo(80000010): LDR R0, R0, 10H
03DEo(A0E0001C): STR R0, SP, 1CH
03DFp(80E0001C): LDR R0, SP, 1CH
03E0p(D121E34C): BLEQ MT [trap=4, pos=8675]
03E1q(81E00018): LDR R1, SP, 18H
03E2q(A1000018): STR R1, R0, 18H
03E3r(40E80068): ADD R0, SP, 68H
03E4r .FIXUP D
03E4r(8D10001B): LDR SB, MT, MOD1 [Files]
03E5r(41D80001): ADD R1, SB, VAR1
03E6s(42E80014): ADD R2, SP, 14H
03E7t(F7FFFDC7): BL -569 [01AFH]
WHILE k # 0 DOu typtab[k]v.basew := t;x Read(R,y k)z ENDa
03E8u(80E00014): LDR R0, SP, 14H
03E9u(E1000010): BEQ 16 [03FAH]
03EAv(80E00014): LDR R0, SP, 14H
03EBv(41090040): SUB R1, R0, 40H
03ECv(DA22521C): BLCC MT [trap=1, pos=8786]
03EDv(40010002): LSL R0, R0, 2H
03EEv .FIXUP D
03EEv(8D00000A): LDR SB, MT, MOD0 [ORB]
03EFv(00D80000): ADD R0, SB, R0 [global array]
03F0w(80000098): LDR R0, R0, 98H
03F1w(D122574C): BLEQ MT [trap=4, pos=8791]
03F2x(81E0001C): LDR R1, SP, 1CH
03F3x(A100001C): STR R1, R0, 1CH
03F4y(40E80068): ADD R0, SP, 68H
03F5y .FIXUP D
03F5y(8D100007): LDR SB, MT, MOD1 [Files]
03F6y(41D80001): ADD R1, SB, VAR1
03F7z(42E80014): ADD R2, SP, 14H
03F8a(F7FFFDB6): BL -586 [01AFH]
03F9a(E7FFFFEE): B -18 [03E8H]
ELSIF classb = Const THENc
03FAb(E7000028): B 40 [0423H]
03FBc(80E00010): LDR R0, SP, 10H
03FCc(40090001): SUB R0, R0, 1H
03FDc(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
03FEd(80E00018): LDR R0, SP, 18H
03FFd(D122A74C): BLEQ MT [trap=4, pos=8871]
0400e(80000010): LDR R0, R0, 10H
0401e(D122AC4C): BLEQ MT [trap=4, pos=8876]
0402f(80000000): LDR R0, R0, 0H
0403f(40090005): SUB R0, R0, 5H
0404f(E9000008): BNE 8 [040DH]
0405g(40E80068): ADD R0, SP, 68H
0406g .FIXUP D
0406g(8D100011): LDR SB, MT, MOD1 [Files]
0407g(41D80001): ADD R1, SB, VAR1
0408h(82E00018): LDR R2, SP, 18H
0409h(D122D14C): BLEQ MT [trap=4, pos=8913]
040Ai(42280034): ADD R2, R2, 34H
040Bj .FIXUP P
040Bj(F7111044): BL MOD1 [Files] PROC17
040Ck(E7000007): B 7 [0414H]
040Dl(40E80068): ADD R0, SP, 68H
040El .FIXUP D
040El(8D100008): LDR SB, MT, MOD1 [Files]
040Fl(41D80001): ADD R1, SB, VAR1
0410m(82E00018): LDR R2, SP, 18H
0411m(D122F04C): BLEQ MT [trap=4, pos=8944]
0412n(42280034): ADD R2, R2, 34H
0413o .FIXUP P
0413o(F7115008): BL MOD1 [Files] PROC21
ELSIF classp = Var THENq Files.ReadNum(R,r obj.vals)t;u obj.rdov := TRUE
0414p(E700000E): B 14 [0423H]
0415q(80E00010): LDR R0, SP, 10H
0416q(40090002): SUB R0, R0, 2H
0417q(E900000B): BNE 11 [0423H]
0418r(40E80068): ADD R0, SP, 68H
0419r .FIXUP D
0419r(8D10000B): LDR SB, MT, MOD1 [Files]
041Ar(41D80001): ADD R1, SB, VAR1
041Bs(82E00018): LDR R2, SP, 18H
041Cs(D1232F4C): BLEQ MT [trap=4, pos=9007]
041Dt(42280034): ADD R2, R2, 34H
041Eu .FIXUP P
041Eu(F711500B): BL MOD1 [Files] PROC21
041Fv(80E00018): LDR R0, SP, 18H
0420v(D123394C): BLEQ MT [trap=4, pos=9017]
ENDw ;
0421w(41000001): MOV R1, R0, 1H
0422w(B1000003): STR R1, R0, 3H
obj.nextx := thismod.dscy;z thismod.dsca := obj;b Read(R,c class)d
0423x(80E00018): LDR R0, SP, 18H
0424x(D123644C): BLEQ MT [trap=4, pos=9060]
0425y(81E00020): LDR R1, SP, 20H
0426y(D123734C): BLEQ MT [trap=4, pos=9075]
0427z(8110000C): LDR R1, R1, CH
0428z(A1000008): STR R1, R0, 8H
0429a(80E00020): LDR R0, SP, 20H
042Aa(D123804C): BLEQ MT [trap=4, pos=9088]
042Bb(81E00018): LDR R1, SP, 18H
042Cb(A100000C): STR R1, R0, CH
042Dc(40E80068): ADD R0, SP, 68H
042Ec .FIXUP D
042Ec(8D100015): LDR SB, MT, MOD1 [Files]
042Fc(41D80001): ADD R1, SB, VAR1
0430d(42E80010): ADD R2, SP, 10H
ENDe ;
0431e(F7FFFD7D): BL -643 [01AFH]
0432e(E7FFFF83): B -125 [03B6H]
ELSE ORSf.Mark("import not available")g
0433f(E7000004): B 4 [0438H]
0434g .FIXUP D
0434g(8D000006): LDR SB, MT, MOD0 [ORB]
0435g(40D801DC): ADD R0, SB, 1DCH ["import not available"]
0436g(41000015): MOV R1, R0, 15H
ENDh
0437h .FIXUP P
0437h(F7209019): BL MOD2 [ORS] PROC9
END
ENDi Import;
0438i(8FE00000): LDR LNK, SP, 0H
0439i(4EE80080): ADD SP, SP, 80H
043Ai(C700000F): B LNK
(*-------------------------------- Export ---------------------------------*)
PROCEDURE Write(VAR R: Files.Rider; x: INTEGER);
BEGINj Files.WriteByte(R,k x)l
043Bj(4EE90010): SUB SP, SP, 10H
043Cj(AFE00000): STR LNK, SP, 0H
043Dj(A0E00004): STR R0, SP, 4H
043Ej(A1E00008): STR R1, SP, 8H
043Fj(A2E0000C): STR R2, SP, CH
0440k(80E00004): LDR R0, SP, 4H
0441k(81E00008): LDR R1, SP, 8H
0442l(82E0000C): LDR R2, SP, CH
ENDm Write;
0443m .FIXUP P
0443m(F711600C): BL MOD1 [Files] PROC22
0444m(8FE00000): LDR LNK, SP, 0H
0445m(4EE80010): ADD SP, SP, 10H
0446m(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);
0447n(E700008D): B 141 [04D5H]
VAR cl: INTEGER;
BEGINo
0448o(4EE90018): SUB SP, SP, 18H
0449o(AFE00000): STR LNK, SP, 0H
044Ao(A0E00004): STR R0, SP, 4H
044Bo(A1E00008): STR R1, SP, 8H
044Co(A2E0000C): STR R2, SP, CH
044Do(A3E00010): STR R3, SP, 10H
IF n > 0 THENp
044Ep(80E00010): LDR R0, SP, 10H
044Fp(40090000): SUB R0, R0, 0H
0450p(E6000023): BLE 35 [0474H]
OutPar(R,q par.nextr,s n-1)t;u cl := par.classv;w
0451q(80E00004): LDR R0, SP, 4H
0452q(81E00008): LDR R1, SP, 8H
0453r(82E0000C): LDR R2, SP, CH
0454r(D125894C): BLEQ MT [trap=4, pos=9609]
0455s(82200008): LDR R2, R2, 8H
0456t(83E00010): LDR R3, SP, 10H
0457t(43390001): SUB R3, R3, 1H
0458u(F7FFFFEF): BL -17 [0448H]
0459v(80E0000C): LDR R0, SP, CH
045Av(D125A04C): BLEQ MT [trap=4, pos=9632]
045Bw(90000000): LDR R0, R0, 0H
045Cw(A0E00014): STR R0, SP, 14H
Write(R,x cl)y;z
045Dx(80E00004): LDR R0, SP, 4H
045Ex(81E00008): LDR R1, SP, 8H
045Fy(82E00014): LDR R2, SP, 14H
0460z(F7FFFFDA): BL -38 [043BH]
IF par.rdoa THENb Write(R,c 1)d ELSEe Writef(R,g 0)h ENDi ;
0461a(80E0000C): LDR R0, SP, CH
0462a(D125CA4C): BLEQ MT [trap=4, pos=9674]
0463b(90000003): LDR R0, R0, 3H
0464b(E1000005): BEQ 5 [046AH]
0465c(80E00004): LDR R0, SP, 4H
0466c(81E00008): LDR R1, SP, 8H
0467d(42000001): MOV R2, R0, 1H
0468e(F7FFFFD2): BL -46 [043BH]
0469f(E7000004): B 4 [046EH]
046Ag(80E00004): LDR R0, SP, 4H
046Bg(81E00008): LDR R1, SP, 8H
046Ch(42000000): MOV R2, R0, 0H
046Di(F7FFFFCD): BL -51 [043BH]
OutType(R,j par.typek)l
046Ej(80E00004): LDR R0, SP, 4H
046Fj(81E00008): LDR R1, SP, 8H
0470k(82E0000C): LDR R2, SP, CH
0471k(D1260E4C): BLEQ MT [trap=4, pos=9742]
0472l(82200010): LDR R2, R2, 10H
ENDm
0473m(F7FFFFD3): BL -45 [0447H]
ENDn OutPar;
0474n(8FE00000): LDR LNK, SP, 0H
0475n(4EE80018): ADD SP, SP, 18H
0476n(C700000F): B LNK
PROCEDURE FindHiddenPointers(VAR R: Files.Rider; typ: Type; offset: LONGINT);
VAR fld: Object; i, n: LONGINT;
BEGINo
0477o(4EE90020): SUB SP, SP, 20H
0478o(AFE00000): STR LNK, SP, 0H
0479o(A0E00004): STR R0, SP, 4H
047Ao(A1E00008): STR R1, SP, 8H
047Bo(A2E0000C): STR R2, SP, CH
047Co(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
047Dp(80E0000C): LDR R0, SP, CH
047Ep(D126BF4C): BLEQ MT [trap=4, pos=9919]
047Fq(80000000): LDR R0, R0, 0H
0480q(40090007): SUB R0, R0, 7H
0481r(E1000005): BEQ 5 [0487H]
0482s(80E0000C): LDR R0, SP, CH
0483s(D126D74C): BLEQ MT [trap=4, pos=9943]
0484t(80000000): LDR R0, R0, 0H
0485t(40090008): SUB R0, R0, 8H
0486u(E900000D): BNE 13 [0494H]
0487v(80E00004): LDR R0, SP, 4H
0488v(81E00008): LDR R1, SP, 8H
0489w(42000004): MOV R2, R0, 4H
048Ax(F7FFFFB0): BL -80 [043BH]
048By(80E00004): LDR R0, SP, 4H
048Cy(81E00008): LDR R1, SP, 8H
048Dz(42000000): MOV R2, R0, 0H
048Ea(F7FFFFAC): BL -84 [043BH]
048Fb(80E00004): LDR R0, SP, 4H
0490b(81E00008): LDR R1, SP, 8H
0491c(82E00010): LDR R2, SP, 10H
ELSIFd type.formf = Record THENg fld := typ.dsch;i
0492d .FIXUP P
0492d(F711D04F): BL MOD1 [Files] PROC29
0493e(E700003E): B 62 [04D2H]
0494f(80E0000C): LDR R0, SP, CH
0495f(D127314C): BLEQ MT [trap=4, pos=10033]
0496g(80000000): LDR R0, R0, 0H
0497g(4009000D): SUB R0, R0, DH
0498g(E9000017): BNE 23 [04B0H]
0499h(80E0000C): LDR R0, SP, CH
049Ah(D1274E4C): BLEQ MT [trap=4, pos=10062]
049Bi(80000014): LDR R0, R0, 14H
049Ci(A0E00014): STR R0, SP, 14H
WHILE fld # NIL DOj FindHiddenPointers(R,k fld.typel,m fld.valn + offset)o;p fld := fld.nextq ENDr
049Dj(80E00014): LDR R0, SP, 14H
049Ej(E1000010): BEQ 16 [04AFH]
049Fk(80E00004): LDR R0, SP, 4H
04A0k(81E00008): LDR R1, SP, 8H
04A1l(82E00014): LDR R2, SP, 14H
04A2l(D127894C): BLEQ MT [trap=4, pos=10121]
04A3m(82200010): LDR R2, R2, 10H
04A4n(83E00014): LDR R3, SP, 14H
04A5n(D127924C): BLEQ MT [trap=4, pos=10130]
04A6o(83300034): LDR R3, R3, 34H
04A7o(84E00010): LDR R4, SP, 10H
04A8o(03380004): ADD R3, R3, R4
04A9p(F7FFFFCD): BL -51 [0477H]
04AAq(80E00014): LDR R0, SP, 14H
04ABq(D127AD4C): BLEQ MT [trap=4, pos=10157]
04ACr(80000008): LDR R0, R0, 8H
04ADr(A0E00014): STR R0, SP, 14H
04AEr(E7FFFFEE): B -18 [049DH]
ELSIF typs.formt = Array THENu i := 0;v n := typ.lenw;x
04AFs(E7000022): B 34 [04D2H]
04B0t(80E0000C): LDR R0, SP, CH
04B1t(D127C64C): BLEQ MT [trap=4, pos=10182]
04B2u(80000000): LDR R0, R0, 0H
04B3u(4009000C): SUB R0, R0, CH
04B4u(E900001D): BNE 29 [04D2H]
04B5v(40000000): MOV R0, R0, 0H
04B6v(A0E00018): STR R0, SP, 18H
04B7w(80E0000C): LDR R0, SP, CH
04B8w(D127E84C): BLEQ MT [trap=4, pos=10216]
04B9x(80000010): LDR R0, R0, 10H
04BAx(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
04BBy(80E00018): LDR R0, SP, 18H
04BCy(81E0001C): LDR R1, SP, 1CH
04BDy(00090001): SUB R0, R0, R1
04BEy(ED000013): BGE 19 [04D2H]
04BFz(80E00004): LDR R0, SP, 4H
04C0z(81E00008): LDR R1, SP, 8H
04C1a(82E0000C): LDR R2, SP, CH
04C2a(D1281F4C): BLEQ MT [trap=4, pos=10271]
04C3b(8220001C): LDR R2, R2, 1CH
04C4c(83E0000C): LDR R3, SP, CH
04C5c(D128294C): BLEQ MT [trap=4, pos=10281]
04C6d(8330001C): LDR R3, R3, 1CH
04C7d(D1282E4C): BLEQ MT [trap=4, pos=10286]
04C8e(83300020): LDR R3, R3, 20H
04C9e(84E00018): LDR R4, SP, 18H
04CAe(033A0004): MUL R3, R3, R4
04CBf(84E00010): LDR R4, SP, 10H
04CCf(03380004): ADD R3, R3, R4
04CDg(F7FFFFA9): BL -87 [0477H]
04CEh(80E00018): LDR R0, SP, 18H
04CFh(40080001): ADD R0, R0, 1H
04D0h(A0E00018): STR R0, SP, 18H
04D1h(E7FFFFE9): B -23 [04BBH]
END
ENDi FindHiddenPointers;
04D2i(8FE00000): LDR LNK, SP, 0H
04D3i(4EE80020): ADD SP, SP, 20H
04D4i(C700000F): B LNK
BEGINj
04D5j(4EE9001C): SUB SP, SP, 1CH
04D6j(AFE00000): STR LNK, SP, 0H
04D7j(A0E00004): STR R0, SP, 4H
04D8j(A1E00008): STR R1, SP, 8H
04D9j(A2E0000C): STR R2, SP, CH
IF t.refk > 0 THENl (*type was already output*) Write(R,m -t.refn)o
04DAk(80E0000C): LDR R0, SP, CH
04DBk(D128844C): BLEQ MT [trap=4, pos=10372]
04DCl(80000004): LDR R0, R0, 4H
04DDl(40090000): SUB R0, R0, 0H
04DEl(E6000009): BLE 9 [04E8H]
04DFm(80E00004): LDR R0, SP, 4H
04E0m(81E00008): LDR R1, SP, 8H
04E1n(82E0000C): LDR R2, SP, CH
04E2n(D128B94C): BLEQ MT [trap=4, pos=10425]
04E3o(82200004): LDR R2, R2, 4H
04E4o(43000000): MOV R3, R0, 0H
04E5o(02390002): SUB R2, R3, R2
ELSEp objq := t.typobjr;s
04E6p(F7FFFF54): BL -172 [043BH]
04E7q(E70000FD): B 253 [05E5H]
04E8r(80E0000C): LDR R0, SP, CH
04E9r(D128D34C): BLEQ MT [trap=4, pos=10451]
04EAs(80000018): LDR R0, R0, 18H
04EBs(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 ;
04ECt(80E00010): LDR R0, SP, 10H
04EDt(E100000F): BEQ 15 [04FDH]
04EEu(80E00004): LDR R0, SP, 4H
04EFu(81E00008): LDR R1, SP, 8H
04F0v .FIXUP D
04F0v(8D0000BC): LDR SB, MT, MOD0 [ORB]
04F1v(82D00094): LDR R2, SB, 94H [data]
04F2w(F7FFFF48): BL -184 [043BH]
04F3x(80E0000C): LDR R0, SP, CH
04F4x(D129014C): BLEQ MT [trap=4, pos=10497]
04F5y .FIXUP D
04F5y(8D000005): LDR SB, MT, MOD0 [ORB]
04F6y(81D00094): LDR R1, SB, 94H [data]
04F7y(A1000004): STR R1, R0, 4H
04F8z(40D80094): ADD R0, SB, 94H
04F9z(81000000): LDR R1, R0, 0H
04FAz(41180001): ADD R1, R1, 1H
04FBz(A1000000): STR R1, R0, 0H
04FCa(E7000004): B 4 [0501H]
04FDb(80E00004): LDR R0, SP, 4H
04FEb(81E00008): LDR R1, SP, 8H
04FFc(42000000): MOV R2, R0, 0H
0500d(F7FFFF3A): BL -198 [043BH]
Write(R,e t.formf)g;h
0501e(80E00004): LDR R0, SP, 4H
0502e(81E00008): LDR R1, SP, 8H
0503f(82E0000C): LDR R2, SP, CH
0504f(D1294D4C): BLEQ MT [trap=4, pos=10573]
0505g(82200000): LDR R2, R2, 0H
0506h(F7FFFF34): BL -204 [043BH]
IF t.formi = Pointer THENj OutType(R,k t.basel)m
0507i(80E0000C): LDR R0, SP, CH
0508i(D1295F4C): BLEQ MT [trap=4, pos=10591]
0509j(80000000): LDR R0, R0, 0H
050Aj(40090007): SUB R0, R0, 7H
050Bj(E9000007): BNE 7 [0513H]
050Ck(80E00004): LDR R0, SP, 4H
050Dk(81E00008): LDR R1, SP, 8H
050El(82E0000C): LDR R2, SP, CH
050Fl(D129804C): BLEQ MT [trap=4, pos=10624]
0510m(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
0511n(F7FFFFC3): BL -61 [04D5H]
0512o(E7000093): B 147 [05A6H]
0513p(80E0000C): LDR R0, SP, CH
0514p(D129944C): BLEQ MT [trap=4, pos=10644]
0515q(80000000): LDR R0, R0, 0H
0516q(4009000C): SUB R0, R0, CH
0517q(E9000013): BNE 19 [052BH]
0518r(80E00004): LDR R0, SP, 4H
0519r(81E00008): LDR R1, SP, 8H
051As(82E0000C): LDR R2, SP, CH
051Bs(D129B34C): BLEQ MT [trap=4, pos=10675]
051Ct(8220001C): LDR R2, R2, 1CH
051Du(F7FFFFB7): BL -73 [04D5H]
051Ev(80E00004): LDR R0, SP, 4H
051Fv(81E00008): LDR R1, SP, 8H
0520w(82E0000C): LDR R2, SP, CH
0521w(D129CD4C): BLEQ MT [trap=4, pos=10701]
0522x(82200010): LDR R2, R2, 10H
0523y .FIXUP P
0523y(F711D091): BL MOD1 [Files] PROC29
0524z(80E00004): LDR R0, SP, 4H
0525z(81E00008): LDR R1, SP, 8H
0526a(82E0000C): LDR R2, SP, CH
0527a(D129E84C): BLEQ MT [trap=4, pos=10728]
0528b(82200020): LDR R2, R2, 20H
ELSIFc td.forme = Record THENf
0529c .FIXUP P
0529c(F711D006): BL MOD1 [Files] PROC29
052Ad(E700007B): B 123 [05A6H]
052Be(80E0000C): LDR R0, SP, CH
052Ce(D129FC4C): BLEQ MT [trap=4, pos=10748]
052Df(80000000): LDR R0, R0, 0H
052Ef(4009000D): SUB R0, R0, DH
052Ff(E900005E): BNE 94 [058EH]
IF t.baseg # NIL THENh OutType(R,i t.basej)k ELSEl OutTypem(R,n noType)o ENDp ;
0530g(80E0000C): LDR R0, SP, CH
0531g(D12A1C4C): BLEQ MT [trap=4, pos=10780]
0532h(8000001C): LDR R0, R0, 1CH
0533h(E1000007): BEQ 7 [053BH]
0534i(80E00004): LDR R0, SP, 4H
0535i(81E00008): LDR R1, SP, 8H
0536j(82E0000C): LDR R2, SP, CH
0537j(D12A394C): BLEQ MT [trap=4, pos=10809]
0538k(8220001C): LDR R2, R2, 1CH
0539l(F7FFFF9B): BL -101 [04D5H]
053Am(E7000005): B 5 [0540H]
053Bn(80E00004): LDR R0, SP, 4H
053Cn(81E00008): LDR R1, SP, 8H
053Do .FIXUP D
053Do(8D000048): LDR SB, MT, MOD0 [ORB]
053Eo(82D00088): LDR R2, SB, 88H [data]
053Fp(F7FFFF95): BL -107 [04D5H]
IF obj # NIL THENq Files.WriteNum(R,r obj.exnos)t ELSEu Writev(R,w 0)x ENDy ;
0540q(80E00010): LDR R0, SP, 10H
0541q(E1000007): BEQ 7 [0549H]
0542r(80E00004): LDR R0, SP, 4H
0543r(81E00008): LDR R1, SP, 8H
0544s(82E00010): LDR R2, SP, 10H
0545s(D12A8D4C): BLEQ MT [trap=4, pos=10893]
0546t(92200001): LDR R2, R2, 1H
0547u .FIXUP P
0547u(F711D01E): BL MOD1 [Files] PROC29
0548v(E7000004): B 4 [054DH]
0549w(80E00004): LDR R0, SP, 4H
054Aw(81E00008): LDR R1, SP, 8H
054Bx(42000000): MOV R2, R0, 0H
054Cy(F7FFFEEE): BL -274 [043BH]
Files.WriteNum(R,z t.nofpara)b;c Files.WriteNum(R,d t.sizee)f;g
054Dz(80E00004): LDR R0, SP, 4H
054Ez(81E00008): LDR R1, SP, 8H
054Fa(82E0000C): LDR R2, SP, CH
0550a(D12AC84C): BLEQ MT [trap=4, pos=10952]
0551b(8220000C): LDR R2, R2, CH
0552c .FIXUP P
0552c(F711D00B): BL MOD1 [Files] PROC29
0553d(80E00004): LDR R0, SP, 4H
0554d(81E00008): LDR R1, SP, 8H
0555e(82E0000C): LDR R2, SP, CH
0556e(D12AE34C): BLEQ MT [trap=4, pos=10979]
0557f(82200020): LDR R2, R2, 20H
0558g .FIXUP P
0558g(F711D006): BL MOD1 [Files] PROC29
fld := t.dsch;i
0559h(80E0000C): LDR R0, SP, CH
055Ah(D12AFA4C): BLEQ MT [trap=4, pos=11002]
055Bi(80000014): LDR R0, R0, 14H
055Ci(A0E00018): STR R0, SP, 18H
WHILE fld # NIL DOj (*fields*)
055Dj(80E00018): LDR R0, SP, 18H
055Ej(E100002A): BEQ 42 [0589H]
IF fld.expok THENl
055Fk(80E00018): LDR R0, SP, 18H
0560k(D12B384C): BLEQ MT [trap=4, pos=11064]
0561l(90000002): LDR R0, R0, 2H
0562l(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*)
0563m(80E00004): LDR R0, SP, 4H
0564m(81E00008): LDR R1, SP, 8H
0565n(42000004): MOV R2, R0, 4H
0566o(F7FFFED4): BL -300 [043BH]
0567p(80E00004): LDR R0, SP, 4H
0568p(81E00008): LDR R1, SP, 8H
0569q(82E00018): LDR R2, SP, 18H
056Aq(D12B764C): BLEQ MT [trap=4, pos=11126]
056Br(42280014): ADD R2, R2, 14H
056Cr(43000020): MOV R3, R0, 20H
056Ds .FIXUP P
056Ds(F711C015): BL MOD1 [Files] PROC28
056Et(80E00004): LDR R0, SP, 4H
056Ft(81E00008): LDR R1, SP, 8H
0570u(82E00018): LDR R2, SP, 18H
0571u(D12B8C4C): BLEQ MT [trap=4, pos=11148]
0572v(82200010): LDR R2, R2, 10H
0573w(F7FFFF61): BL -159 [04D5H]
0574x(80E00004): LDR R0, SP, 4H
0575x(81E00008): LDR R1, SP, 8H
0576y(82E00018): LDR R2, SP, 18H
0577y(D12BA84C): BLEQ MT [trap=4, pos=11176]
0578z(82200034): LDR R2, R2, 34H
ELSEa FindHiddenPointersb(R,c fld.typed,e fld.valf)g
0579a .FIXUP P
0579a(F711D00C): BL MOD1 [Files] PROC29
057Ab(E7000009): B 9 [0584H]
057Bc(80E00004): LDR R0, SP, 4H
057Cc(81E00008): LDR R1, SP, 8H
057Dd(82E00018): LDR R2, SP, 18H
057Ed(D12BE34C): BLEQ MT [trap=4, pos=11235]
057Fe(82200010): LDR R2, R2, 10H
0580f(83E00018): LDR R3, SP, 18H
0581f(D12BEC4C): BLEQ MT [trap=4, pos=11244]
0582g(83300034): LDR R3, R3, 34H
ENDh ;
0583h(F7FFFEF3): BL -269 [0477H]
fld := fld.nexti
0584i(80E00018): LDR R0, SP, 18H
0585i(D12C174C): BLEQ MT [trap=4, pos=11287]
ENDj ;
0586j(80000008): LDR R0, R0, 8H
0587j(A0E00018): STR R0, SP, 18H
0588j(E7FFFFD4): B -44 [055DH]
Write(R,k 0)l
0589k(80E00004): LDR R0, SP, 4H
058Ak(81E00008): LDR R1, SP, 8H
058Bl(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
058Cm(F7FFFEAE): BL -338 [043BH]
058Dn(E7000018): B 24 [05A6H]
058Eo(80E0000C): LDR R0, SP, CH
058Fo(D12C4C4C): BLEQ MT [trap=4, pos=11340]
0590p(80000000): LDR R0, R0, 0H
0591p(4009000A): SUB R0, R0, AH
0592p(E9000013): BNE 19 [05A6H]
0593q(80E00004): LDR R0, SP, 4H
0594q(81E00008): LDR R1, SP, 8H
0595r(82E0000C): LDR R2, SP, CH
0596r(D12C6A4C): BLEQ MT [trap=4, pos=11370]
0597s(8220001C): LDR R2, R2, 1CH
0598t(F7FFFF3C): BL -196 [04D5H]
0599u(80E00004): LDR R0, SP, 4H
059Au(81E00008): LDR R1, SP, 8H
059Bv(82E0000C): LDR R2, SP, CH
059Cv(D12C7C4C): BLEQ MT [trap=4, pos=11388]
059Dw(82200014): LDR R2, R2, 14H
059Ex(83E0000C): LDR R3, SP, CH
059Fx(D12C864C): BLEQ MT [trap=4, pos=11398]
05A0y(8330000C): LDR R3, R3, CH
05A1z(F7FFFEA6): BL -346 [0448H]
05A2a(80E00004): LDR R0, SP, 4H
05A3a(81E00008): LDR R1, SP, 8H
05A4b(42000000): MOV R2, R0, 0H
ENDc ;
05A5c(F7FFFE95): BL -363 [043BH]
IF (t.mnod > 0)e & (fobj # NIL)g THENh (*re-export, output name*)
05A6d(80E0000C): LDR R0, SP, CH
05A7d(D12CB04C): BLEQ MT [trap=4, pos=11440]
05A8e(80000008): LDR R0, R0, 8H
05A9e(40090000): SUB R0, R0, 0H
05AAf(E6000036): BLE 54 [05E1H]
05ABg(80E00010): LDR R0, SP, 10H
05ACh(E1000034): BEQ 52 [05E1H]
mod := topScope.nexti;j
05ADi .FIXUP D
05ADi(8D000070): LDR SB, MT, MOD0 [ORB]
05AEi(80D00060): LDR R0, SB, 60H [data]
05AFi(D12D014C): BLEQ MT [trap=4, pos=11521]
05B0j(80000008): LDR R0, R0, 8H
05B1j(A0E00014): STR R0, SP, 14H
WHILE (mod # NIL)k & (lmod.levm # t.mnon)o DOp mod := mod.nextq ENDr ;
05B2k(80E00014): LDR R0, SP, 14H
05B3l(E100000D): BEQ 13 [05C1H]
05B4m(80E00014): LDR R0, SP, 14H
05B5m(D12D274C): BLEQ MT [trap=4, pos=11559]
05B6n(81E0000C): LDR R1, SP, CH
05B7n(D12D2F4C): BLEQ MT [trap=4, pos=11567]
05B8o(80000004): LDR R0, R0, 4H
05B9o(81100008): LDR R1, R1, 8H
05BAo(00090001): SUB R0, R0, R1
05BBp(E1000005): BEQ 5 [05C1H]
05BCq(80E00014): LDR R0, SP, 14H
05BDq(D12D434C): BLEQ MT [trap=4, pos=11587]
05BEr(80000008): LDR R0, R0, 8H
05BFr(A0E00014): STR R0, SP, 14H
05C0r(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
05C1s(80E00014): LDR R0, SP, 14H
05C2s(E1000015): BEQ 21 [05D8H]
05C3t(80E00004): LDR R0, SP, 4H
05C4t(81E00008): LDR R1, SP, 8H
05C5u(82E00014): LDR R2, SP, 14H
05C6u(D12D814C): BLEQ MT [trap=4, pos=11649]
05C7v(42280014): ADD R2, R2, 14H
05C8v(43000020): MOV R3, R0, 20H
05C9w .FIXUP P
05C9w(F711C050): BL MOD1 [Files] PROC28
05CAx(80E00004): LDR R0, SP, 4H
05CBx(81E00008): LDR R1, SP, 8H
05CCy(82E00014): LDR R2, SP, 14H
05CDy(D12D9D4C): BLEQ MT [trap=4, pos=11677]
05CEz(82200034): LDR R2, R2, 34H
05CFa .FIXUP P
05CFa(F7119006): BL MOD1 [Files] PROC25
05D0b(80E00004): LDR R0, SP, 4H
05D1b(81E00008): LDR R1, SP, 8H
05D2c(82E00010): LDR R2, SP, 10H
05D3c(D12DBD4C): BLEQ MT [trap=4, pos=11709]
05D4d(42280014): ADD R2, R2, 14H
05D5d(43000020): MOV R3, R0, 20H
ELSEe ORSf.Mark("re-export not found")g;h Write(R,i 0)j
05D6e .FIXUP P
05D6e(F711C007): BL MOD1 [Files] PROC28
05D7f(E7000008): B 8 [05E0H]
05D8g .FIXUP D
05D8g(8D00002B): LDR SB, MT, MOD0 [ORB]
05D9g(40D801F4): ADD R0, SB, 1F4H ["re-export not found"]
05DAg(41000014): MOV R1, R0, 14H
05DBh .FIXUP P
05DBh(F7209005): BL MOD2 [ORS] PROC9
05DCi(80E00004): LDR R0, SP, 4H
05DDi(81E00008): LDR R1, SP, 8H
05DEj(42000000): MOV R2, R0, 0H
ENDk
05DFk(F7FFFE5B): BL -421 [043BH]
ELSE Writel(R,m 0)n
05E0l(E7000004): B 4 [05E5H]
05E1m(80E00004): LDR R0, SP, 4H
05E2m(81E00008): LDR R1, SP, 8H
05E3n(42000000): MOV R2, R0, 0H
ENDo
05E4o(F7FFFE56): BL -426 [043BH]
END
ENDp OutType;
05E5p(8FE00000): LDR LNK, SP, 0H
05E6p(4EE8001C): ADD SP, SP, 1CH
05E7p(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
05E8q .PROC 23
05E8q(4EE9007C): SUB SP, SP, 7CH
05E9q(AFE00000): STR LNK, SP, 0H
05EAq(A0E00004): STR R0, SP, 4H
05EBq(A1E00008): STR R1, SP, 8H
05ECq(A2E0000C): STR R2, SP, CH
05EDr(4000000E): MOV R0, R0, EH
05EEr .FIXUP D
05EEr(8D000016): LDR SB, MT, MOD0 [ORB]
05EFr(A0D00094): STR R0, SB, 94H [data]
05F0s(40E80024): ADD R0, SP, 24H
05F1t(81E00004): LDR R1, SP, 4H
05F2t(42000020): MOV R2, R0, 20H
05F3u(43D80208): ADD R3, SB, 208H
05F4u(44000005): MOV R4, R0, 5H
05F5v(F7FFFAFB): BL -1285 [00F1H]
F := Files.New(filename)w;x Files.Set(R,y F,z 0)a;b
05F6w(40E80024): ADD R0, SP, 24H
05F7w(41000020): MOV R1, R0, 20H
05F8x .FIXUP P
05F8x(F710301D): BL MOD1 [Files] PROC3
05F9x(A0E00044): STR R0, SP, 44H
05FAy(40E8004C): ADD R0, SP, 4CH
05FBy .FIXUP D
05FBy(8D10000D): LDR SB, MT, MOD1 [Files]
05FCy(41D80001): ADD R1, SB, VAR1
05FDz(82E00044): LDR R2, SP, 44H
05FEa(43000000): MOV R3, R0, 0H
05FFb .FIXUP P
05FFb(F710B007): BL MOD1 [Files] PROC11
Files.WriteInt(R,c 0)d;e (*placeholder*)
0600c(40E8004C): ADD R0, SP, 4CH
0601c .FIXUP D
0601c(8D100006): LDR SB, MT, MOD1 [Files]
0602c(41D80001): ADD R1, SB, VAR1
0603d(42000000): MOV R2, R0, 0H
0604e .FIXUP P
0604e(F7119005): BL MOD1 [Files] PROC25
Files.WriteInt(R,f 0)g;h (*placeholder for key to be inserted at the end*)
0605f(40E8004C): ADD R0, SP, 4CH
0606f .FIXUP D
0606f(8D100005): LDR SB, MT, MOD1 [Files]
0607f(41D80001): ADD R1, SB, VAR1
0608g(42000000): MOV R2, R0, 0H
0609h .FIXUP P
0609h(F7119005): BL MOD1 [Files] PROC25
Files.WriteString(R,i modid)j;k Write(R,l versionkey)m;n
060Ai(40E8004C): ADD R0, SP, 4CH
060Bi .FIXUP D
060Bi(8D100005): LDR SB, MT, MOD1 [Files]
060Ci(41D80001): ADD R1, SB, VAR1
060Dj(82E00004): LDR R2, SP, 4H
060Ej(43000020): MOV R3, R0, 20H
060Fk .FIXUP P
060Fk(F711C006): BL MOD1 [Files] PROC28
0610l(40E8004C): ADD R0, SP, 4CH
0611l .FIXUP D
0611l(8D100006): LDR SB, MT, MOD1 [Files]
0612l(41D80001): ADD R1, SB, VAR1
0613m(42000001): MOV R2, R0, 1H
0614n(F7FFFE26): BL -474 [043BH]
obj := topScope.nexto;p
0615o .FIXUP D
0615o(8D000004): LDR SB, MT, MOD0 [ORB]
0616o(80D00060): LDR R0, SB, 60H [data]
0617o(D1304A4C): BLEQ MT [trap=4, pos=12362]
0618p(80000008): LDR R0, R0, 8H
0619p(A0E0001C): STR R0, SP, 1CH
WHILE obj # NIL DOq
061Aq(80E0001C): LDR R0, SP, 1CH
061Bq(E1000097): BEQ 151 [06B3H]
IF obj.expor THENs
061Cr(80E0001C): LDR R0, SP, 1CH
061Dr(D130744C): BLEQ MT [trap=4, pos=12404]
061Es(90000002): LDR R0, R0, 2H
061Fs(E100008E): BEQ 142 [06AEH]
Write(R,t obj.classu)v;w Files.WriteString(R,x obj.namey)z;a
0620t(40E8004C): ADD R0, SP, 4CH
0621t .FIXUP D
0621t(8D10000C): LDR SB, MT, MOD1 [Files]
0622t(41D80001): ADD R1, SB, VAR1
0623u(82E0001C): LDR R2, SP, 1CH
0624u(D130944C): BLEQ MT [trap=4, pos=12436]
0625v(92200000): LDR R2, R2, 0H
0626w(F7FFFE14): BL -492 [043BH]
0627x(40E8004C): ADD R0, SP, 4CH
0628x .FIXUP D
0628x(8D100007): LDR SB, MT, MOD1 [Files]
0629x(41D80001): ADD R1, SB, VAR1
062Ay(82E0001C): LDR R2, SP, 1CH
062By(D130B44C): BLEQ MT [trap=4, pos=12468]
062Cz(42280014): ADD R2, R2, 14H
062Dz(43000020): MOV R3, R0, 20H
062Ea .FIXUP P
062Ea(F711C01F): BL MOD1 [Files] PROC28
OutType(R,b obj.typec)d;e
062Fb(40E8004C): ADD R0, SP, 4CH
0630b .FIXUP D
0630b(8D100008): LDR SB, MT, MOD1 [Files]
0631b(41D80001): ADD R1, SB, VAR1
0632c(82E0001C): LDR R2, SP, 1CH
0633c(D130D24C): BLEQ MT [trap=4, pos=12498]
0634d(82200010): LDR R2, R2, 10H
0635e(F7FFFE9F): BL -353 [04D5H]
IF obj.classf = Typ THENg
0636f(80E0001C): LDR R0, SP, 1CH
0637f(D130E94C): BLEQ MT [trap=4, pos=12521]
0638g(90000000): LDR R0, R0, 0H
0639g(40090005): SUB R0, R0, 5H
063Ag(E900003C): BNE 60 [0677H]
IF obj.typeh.formi = Record THENj
063Bh(80E0001C): LDR R0, SP, 1CH
063Ch(D1310A4C): BLEQ MT [trap=4, pos=12554]
063Di(80000010): LDR R0, R0, 10H
063Ei(D1310F4C): BLEQ MT [trap=4, pos=12559]
063Fj(80000000): LDR R0, R0, 0H
0640j(4009000D): SUB R0, R0, DH
0641j(E900002F): BNE 47 [0671H]
obj0 := topScope.nextk;l (*check whether this is base of previously declared pointer types*)
0642k .FIXUP D
0642k(8D000012): LDR SB, MT, MOD0 [ORB]
0643k(80D00060): LDR R0, SB, 60H [data]
0644k(D1313F4C): BLEQ MT [trap=4, pos=12607]
0645l(80000008): LDR R0, R0, 8H
0646l(A0E00020): STR R0, SP, 20H
WHILE obj0 # obj DOm
0647m(80E00020): LDR R0, SP, 20H
0648m(81E0001C): LDR R1, SP, 1CH
0649m(00090001): SUB R0, R0, R1
064Am(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 ;
064Bn(80E00020): LDR R0, SP, 20H
064Cn(D131C14C): BLEQ MT [trap=4, pos=12737]
064Do(80000010): LDR R0, R0, 10H
064Eo(D131C64C): BLEQ MT [trap=4, pos=12742]
064Fp(80000000): LDR R0, R0, 0H
0650p(40090007): SUB R0, R0, 7H
0651q(E900001A): BNE 26 [066CH]
0652r(80E00020): LDR R0, SP, 20H
0653r(D131DE4C): BLEQ MT [trap=4, pos=12766]
0654s(80000010): LDR R0, R0, 10H
0655s(D131E34C): BLEQ MT [trap=4, pos=12771]
0656t(81E0001C): LDR R1, SP, 1CH
0657t(D131EE4C): BLEQ MT [trap=4, pos=12782]
0658u(8000001C): LDR R0, R0, 1CH
0659u(81100010): LDR R1, R1, 10H
065Au(00090001): SUB R0, R0, R1
065Bv(E9000010): BNE 16 [066CH]
065Cw(80E00020): LDR R0, SP, 20H
065Dw(D131FC4C): BLEQ MT [trap=4, pos=12796]
065Ex(80000010): LDR R0, R0, 10H
065Fx(D132004C): BLEQ MT [trap=4, pos=12800]
0660y(80000004): LDR R0, R0, 4H
0661y(40090000): SUB R0, R0, 0H
0662z(E6000009): BLE 9 [066CH]
0663a(40E8004C): ADD R0, SP, 4CH
0664a .FIXUP D
0664a(8D100022): LDR SB, MT, MOD1 [Files]
0665a(41D80001): ADD R1, SB, VAR1
0666b(82E00020): LDR R2, SP, 20H
0667b(D1321D4C): BLEQ MT [trap=4, pos=12829]
0668c(82200010): LDR R2, R2, 10H
0669c(D132214C): BLEQ MT [trap=4, pos=12833]
066Ad(82200004): LDR R2, R2, 4H
066Be(F7FFFDCF): BL -561 [043BH]
obj0 := obj0.nextf
066Cf(80E00020): LDR R0, SP, 20H
066Df(D132484C): BLEQ MT [trap=4, pos=12872]
ENDg
066Eg(80000008): LDR R0, R0, 8H
066Fg(A0E00020): STR R0, SP, 20H
0670g(E7FFFFD6): B -42 [0647H]
END ;
Write(R,h 0)i
0671h(40E8004C): ADD R0, SP, 4CH
0672h .FIXUP D
0672h(8D10000E): LDR SB, MT, MOD1 [Files]
0673h(41D80001): ADD R1, SB, VAR1
0674i(42000000): MOV R2, R0, 0H
ELSIFj objk.classl = Const THENm
0675j(F7FFFDC5): BL -571 [043BH]
0676k(E7000037): B 55 [06AEH]
0677l(80E0001C): LDR R0, SP, 1CH
0678l(D132964C): BLEQ MT [trap=4, pos=12950]
0679m(90000000): LDR R0, R0, 0H
067Am(40090001): SUB R0, R0, 1H
067Bm(E9000026): BNE 38 [06A2H]
IF obj.typen.formo = Proc THENp Files.WriteNum(R,q obj.exnor)s
067Cn(80E0001C): LDR R0, SP, 1CH
067Dn(D132B94C): BLEQ MT [trap=4, pos=12985]
067Eo(80000010): LDR R0, R0, 10H
067Fo(D132BE4C): BLEQ MT [trap=4, pos=12990]
0680p(80000000): LDR R0, R0, 0H
0681p(4009000A): SUB R0, R0, AH
0682p(E9000008): BNE 8 [068BH]
0683q(40E8004C): ADD R0, SP, 4CH
0684q .FIXUP D
0684q(8D100012): LDR SB, MT, MOD1 [Files]
0685q(41D80001): ADD R1, SB, VAR1
0686r(82E0001C): LDR R2, SP, 1CH
0687r(D132E54C): BLEQ MT [trap=4, pos=13029]
0688s(92200001): LDR R2, R2, 1H
ELSIFt obju.typev.formw = Real THENx Files.WriteInt(R,y obj.valz)a
0689t .FIXUP P
0689t(F711D05B): BL MOD1 [Files] PROC29
068Au(E7000016): B 22 [06A1H]
068Bv(80E0001C): LDR R0, SP, 1CH
068Cv(D132FF4C): BLEQ MT [trap=4, pos=13055]
068Dw(80000010): LDR R0, R0, 10H
068Ew(D133044C): BLEQ MT [trap=4, pos=13060]
068Fx(80000000): LDR R0, R0, 0H
0690x(40090005): SUB R0, R0, 5H
0691x(E9000008): BNE 8 [069AH]
0692y(40E8004C): ADD R0, SP, 4CH
0693y .FIXUP D
0693y(8D10000F): LDR SB, MT, MOD1 [Files]
0694y(41D80001): ADD R1, SB, VAR1
0695z(82E0001C): LDR R2, SP, 1CH
0696z(D1332A4C): BLEQ MT [trap=4, pos=13098]
0697a(82200034): LDR R2, R2, 34H
ELSEb Filesc.WriteNum(R,d obj.vale)f
0698b .FIXUP P
0698b(F711900F): BL MOD1 [Files] PROC25
0699c(E7000007): B 7 [06A1H]
069Ad(40E8004C): ADD R0, SP, 4CH
069Bd .FIXUP D
069Bd(8D100008): LDR SB, MT, MOD1 [Files]
069Cd(41D80001): ADD R1, SB, VAR1
069De(82E0001C): LDR R2, SP, 1CH
069Ee(D133544C): BLEQ MT [trap=4, pos=13140]
069Ff(82200034): LDR R2, R2, 34H
ENDg
06A0g .FIXUP P
06A0g(F711D008): BL MOD1 [Files] PROC29
ELSIF objh.classi = Var THENj Files.WriteNum(R,k obj.exnol)m
06A1h(E700000C): B 12 [06AEH]
06A2i(80E0001C): LDR R0, SP, 1CH
06A3i(D1337B4C): BLEQ MT [trap=4, pos=13179]
06A4j(90000000): LDR R0, R0, 0H
06A5j(40090002): SUB R0, R0, 2H
06A6j(E9000007): BNE 7 [06AEH]
06A7k(40E8004C): ADD R0, SP, 4CH
06A8k .FIXUP D
06A8k(8D10000D): LDR SB, MT, MOD1 [Files]
06A9k(41D80001): ADD R1, SB, VAR1
06AAl(82E0001C): LDR R2, SP, 1CH
06ABl(D133A14C): BLEQ MT [trap=4, pos=13217]
06ACm(92200001): LDR R2, R2, 1H
ENDn
06ADn .FIXUP P
06ADn(F711D00D): BL MOD1 [Files] PROC29
END ;
obj := obj.nexto
06AEo(80E0001C): LDR R0, SP, 1CH
06AFo(D133D04C): BLEQ MT [trap=4, pos=13264]
ENDp ;
06B0p(80000008): LDR R0, R0, 8H
06B1p(A0E0001C): STR R0, SP, 1CH
06B2p(E7FFFF67): B -153 [061AH]
REPEAT Write(R,q 0)r UNTILs Files.Length(F)t MODu 4 =v 0;w
06B3q(40E8004C): ADD R0, SP, 4CH
06B4q .FIXUP D
06B4q(8D10000C): LDR SB, MT, MOD1 [Files]
06B5q(41D80001): ADD R1, SB, VAR1
06B6r(42000000): MOV R2, R0, 0H
06B7s(F7FFFD83): BL -637 [043BH]
06B8t(80E00044): LDR R0, SP, 44H
06B9u .FIXUP P
06B9u(F710900C): BL MOD1 [Files] PROC9
06BAv(40040003): AND R0, R0, 3H
06BBw(40090000): SUB R0, R0, 0H
06BCw(E9FFFFF6): BNE -10 [06B3H]
FOR Ref := Record+1 TOx maxTypTab-1 DO typtaby[Ref]z := NIL ENDa ;b
06BDx(4000000E): MOV R0, R0, EH
06BEy(4109003F): SUB R1, R0, 3FH
06BFy(EE00000C): BGT 12 [06CCH]
06C0y .FIXUP D
06C0y(8D00000C): LDR SB, MT, MOD0 [ORB]
06C1y(A0D00094): STR R0, SB, 94H [data]
06C2z(80D00094): LDR R0, SB, 94H
06C3z(41090040): SUB R1, R0, 40H
06C4z(DA34481C): BLCC MT [trap=1, pos=13384]
06C5z(40010002): LSL R0, R0, 2H
06C6z(00D80000): ADD R0, SB, R0
06C7a(41000000): MOV R1, R0, 0H
06C8a(A1000098): STR R1, R0, 98H
06C9b(80D00094): LDR R0, SB, 94H
06CAb(40080001): ADD R0, R0, 1H
06CBb(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) *)
06CCc(40E8004C): ADD R0, SP, 4CH
06CDc .FIXUP D
06CDc(8D10000D): LDR SB, MT, MOD1 [Files]
06CEc(41D80001): ADD R1, SB, VAR1
06CFd(82E00044): LDR R2, SP, 44H
06D0e(43000000): MOV R3, R0, 0H
06D1f .FIXUP P
06D1f(F710B018): BL MOD1 [Files] PROC11
06D2g(40000000): MOV R0, R0, 0H
06D3g(A0E00014): STR R0, SP, 14H
06D4h(40E8004C): ADD R0, SP, 4CH
06D5h .FIXUP D
06D5h(8D100008): LDR SB, MT, MOD1 [Files]
06D6h(41D80001): ADD R1, SB, VAR1
06D7i(42E80010): ADD R2, SP, 10H
06D8j .FIXUP P
06D8j(F7111007): BL MOD1 [Files] PROC17
WHILE ~R.eof DOk sum := sum + x;l Files.ReadInt(R,m x)n ENDo ;
06D9k(90E0004C): LDR R0, SP, 4CH
06DAk(E900000A): BNE 10 [06E5H]
06DBl(80E00014): LDR R0, SP, 14H
06DCl(81E00010): LDR R1, SP, 10H
06DDl(00080001): ADD R0, R0, R1
06DEl(A0E00014): STR R0, SP, 14H
06DFm(40E8004C): ADD R0, SP, 4CH
06E0m .FIXUP D
06E0m(8D10000B): LDR SB, MT, MOD1 [Files]
06E1m(41D80001): ADD R1, SB, VAR1
06E2n(42E80010): ADD R2, SP, 10H
06E3o .FIXUP P
06E3o(F711100B): BL MOD1 [Files] PROC17
06E4o(E7FFFFF4): B -12 [06D9H]
F1 := Files.Old(filename)p;q (*sum is new key*)
06E5p(40E80024): ADD R0, SP, 24H
06E6p(41000020): MOV R1, R0, 20H
06E7q .FIXUP P
06E7q(F7102004): BL MOD1 [Files] PROC2
06E8q(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 ;
06E9r(80E00048): LDR R0, SP, 48H
06EAr(E100000C): BEQ 12 [06F7H]
06EBs(40E80064): ADD R0, SP, 64H
06ECs .FIXUP D
06ECs(8D10000C): LDR SB, MT, MOD1 [Files]
06EDs(41D80001): ADD R1, SB, VAR1
06EEt(82E00048): LDR R2, SP, 48H
06EFu(43000004): MOV R3, R0, 4H
06F0v .FIXUP P
06F0v(F710B009): BL MOD1 [Files] PROC11
06F1w(40E80064): ADD R0, SP, 64H
06F2w .FIXUP D
06F2w(8D100006): LDR SB, MT, MOD1 [Files]
06F3w(41D80001): ADD R1, SB, VAR1
06F4x(42E80018): ADD R2, SP, 18H
06F5y .FIXUP P
06F5y(F7111005): BL MOD1 [Files] PROC17
06F6z(E7000003): B 3 [06FAH]
06F7a(80E00014): LDR R0, SP, 14H
06F8a(40080001): ADD R0, R0, 1H
06F9a(A0E00018): STR R0, SP, 18H
IF sum # oldkey THENb
06FAb(80E00014): LDR R0, SP, 14H
06FBb(81E00018): LDR R1, SP, 18H
06FCb(00090001): SUB R0, R0, R1
06FDb(E100001E): BEQ 30 [071CH]
IF newSF OR (cF1 = NIL)d THENe
06FEc(80E00008): LDR R0, SP, 8H
06FFc(90000000): LDR R0, R0, 0H
0700c(E9000002): BNE 2 [0703H]
0701d(80E00048): LDR R0, SP, 48H
0702e(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*)
0703f(80E00014): LDR R0, SP, 14H
0704f(81E0000C): LDR R1, SP, CH
0705f(A0100000): STR R0, R1, 0H
0706g(40000001): MOV R0, R0, 1H
0707g(81E00008): LDR R1, SP, 8H
0708g(B0100000): STR R0, R1, 0H
0709h(40E8004C): ADD R0, SP, 4CH
070Ah .FIXUP D
070Ah(8D100018): LDR SB, MT, MOD1 [Files]
070Bh(41D80001): ADD R1, SB, VAR1
070Ci(82E00044): LDR R2, SP, 44H
070Dj(43000004): MOV R3, R0, 4H
070Ek .FIXUP P
070Ek(F710B019): BL MOD1 [Files] PROC11
070Fl(40E8004C): ADD R0, SP, 4CH
0710l .FIXUP D
0710l(8D100006): LDR SB, MT, MOD1 [Files]
0711l(41D80001): ADD R1, SB, VAR1
0712m(82E00014): LDR R2, SP, 14H
0713n .FIXUP P
0713n(F7119005): BL MOD1 [Files] PROC25
0714o(80E00044): LDR R0, SP, 44H
ELSEp ORSq.Mark("new symbol file inhibited")r
0715p .FIXUP P
0715p(F7104002): BL MOD1 [Files] PROC4
0716q(E7000004): B 4 [071BH]
0717r .FIXUP D
0717r(8D000007): LDR SB, MT, MOD0 [ORB]
0718r(40D80210): ADD R0, SB, 210H ["new symbol file inhibited"]
0719r(4100001A): MOV R1, R0, 1AH
ENDs
071As .FIXUP P
071As(F7209005): BL MOD2 [ORS] PROC9
ELSE newSFt := FALSE;u key := sum
071Bt(E7000006): B 6 [0722H]
071Cu(40000000): MOV R0, R0, 0H
071Du(81E00008): LDR R1, SP, 8H
071Eu(B0100000): STR R0, R1, 0H
ENDv
071Fv(80E00014): LDR R0, SP, 14H
0720v(81E0000C): LDR R1, SP, CH
0721v(A0100000): STR R0, R1, 0H
ENDw Export;
0722w(8FE00000): LDR LNK, SP, 0H
0723w(4EE8007C): ADD SP, SP, 7CH
0724w(C700000F): B LNK
PROCEDURE Init*;
BEGINx topScope := universe;y nofmod := 1
0725x .PROC 24
0725x .COMMAND Init
0725x(4EE90004): SUB SP, SP, 4H
0726x(AFE00000): STR LNK, SP, 0H
0727y .FIXUP D
0727y(8D000010): LDR SB, MT, MOD0 [ORB]
0728y(80D00064): LDR R0, SB, 64H [data]
0729y(A0D00060): STR R0, SB, 60H
ENDz Init;
072Az(40000001): MOV R0, R0, 1H
072Bz(A0D00090): STR R0, SB, 90H
072Cz(8FE00000): LDR LNK, SP, 0H
072Dz(4EE80004): ADD SP, SP, 4H
072Ez(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
072Fa(4EE90014): SUB SP, SP, 14H
0730a(AFE00000): STR LNK, SP, 0H
0731a(A0E00004): STR R0, SP, 4H
0732a(A1E00008): STR R1, SP, 8H
0733a(A2E0000C): STR R2, SP, CH
0734b(40E80010): ADD R0, SP, 10H
0735b .FIXUP D
0735b(8D00000E): LDR SB, MT, MOD0 [ORB]
0736b(41D80040): ADD R1, SB, 40H [data]
0737b(D7374B0C): BL MT [trap=0, pos=14155]
0738c(80E00010): LDR R0, SP, 10H
0739c(D137534C): BLEQ MT [trap=4, pos=14163]
073Ad(81E00008): LDR R1, SP, 8H
073Bd(A1000000): STR R1, R0, 0H
073Ce(80E00010): LDR R0, SP, 10H
073De(D137644C): BLEQ MT [trap=4, pos=14180]
073Ef(81E0000C): LDR R1, SP, CH
073Ff(A1000020): STR R1, R0, 20H
0740g(80E00010): LDR R0, SP, 10H
0741g(D137744C): BLEQ MT [trap=4, pos=14196]
0742h(81E00004): LDR R1, SP, 4H
0743h(A1000004): STR R1, R0, 4H
0744i(80E00010): LDR R0, SP, 10H
0745i(D137844C): BLEQ MT [trap=4, pos=14212]
0746j(41000000): MOV R1, R0, 0H
0747j(A100001C): STR R1, R0, 1CH
typtab[ref]k := tp;l RETURN tp
0748k(80E00004): LDR R0, SP, 4H
0749k(41090040): SUB R1, R0, 40H
074Ak(DA379C1C): BLCC MT [trap=1, pos=14236]
074Bk(40010002): LSL R0, R0, 2H
074Ck .FIXUP D
074Ck(8D000017): LDR SB, MT, MOD0 [ORB]
074Dk(00D80000): ADD R0, SB, R0 [global array]
074El(81E00010): LDR R1, SP, 10H
074Fl(A1000098): STR R1, R0, 98H
ENDm type;
0750m(80E00010): LDR R0, SP, 10H
0751m(8FE00000): LDR LNK, SP, 0H
0752m(4EE80014): ADD SP, SP, 14H
0753m(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
0754n(4EE9001C): SUB SP, SP, 1CH
0755n(AFE00000): STR LNK, SP, 0H
0756n(A0E00004): STR R0, SP, 4H
0757n(A1E00008): STR R1, SP, 8H
0758n(A2E0000C): STR R2, SP, CH
0759n(A3E00010): STR R3, SP, 10H
075An(A4E00014): STR R4, SP, 14H
075Bo(40E80018): ADD R0, SP, 18H
075Co .FIXUP D
075Co(8D000010): LDR SB, MT, MOD0 [ORB]
075Do(41D80000): ADD R1, SB, 0H [data]
075Eo(D7382E0C): BL MT [trap=0, pos=14382]
075Fp(80E00018): LDR R0, SP, 18H
0760p(D138374C): BLEQ MT [trap=4, pos=14391]
0761q(40080014): ADD R0, R0, 14H
0762q(81E00004): LDR R1, SP, 4H
0763q(82E00008): LDR R2, SP, 8H
0764q(E100000B): BEQ 11 [0770H]
0765q(42280003): ADD R2, R2, 3H
0766q(42220002): ASR R2, R2, 2H
0767q(43000008): MOV R3, R0, 8H
0768q(03290003): SUB R3, R2, R3
0769q(DE38403C): BLGT MT [trap=3, pos=14400]
076Aq(83100000): LDR R3, R1, 0H
076Bq(41180004): ADD R1, R1, 4H
076Cq(A3000000): STR R3, R0, 0H
076Dq(40080004): ADD R0, R0, 4H
076Eq(42290001): SUB R2, R2, 1H
076Fq(E9FFFFFA): BNE -6 [076AH]
0770r(80E00018): LDR R0, SP, 18H
0771r(D1384A4C): BLEQ MT [trap=4, pos=14410]
0772s(81E0000C): LDR R1, SP, CH
0773s(B1000000): STR R1, R0, 0H
0774t(80E00018): LDR R0, SP, 18H
0775t(D1385A4C): BLEQ MT [trap=4, pos=14426]
0776u(81E00010): LDR R1, SP, 10H
0777u(A1000010): STR R1, R0, 10H
0778v(80E00018): LDR R0, SP, 18H
0779v(D1386B4C): BLEQ MT [trap=4, pos=14443]
077Aw(81E00014): LDR R1, SP, 14H
077Bw(A1000034): STR R1, R0, 34H
077Cx(80E00018): LDR R0, SP, 18H
077Dx(D138794C): BLEQ MT [trap=4, pos=14457]
077Ey(41000000): MOV R1, R0, 0H
077Fy(A100000C): STR R1, R0, CH
IF cl = Typ THENz type.typobja := obj ENDb ;
0780z(80E0000C): LDR R0, SP, CH
0781z(40090005): SUB R0, R0, 5H
0782z(E9000004): BNE 4 [0787H]
0783a(80E00010): LDR R0, SP, 10H
0784a(D138A24C): BLEQ MT [trap=4, pos=14498]
0785b(81E00018): LDR R1, SP, 18H
0786b(A1000018): STR R1, R0, 18H
obj.nextc := system;d system := obj
0787c(80E00018): LDR R0, SP, 18H
0788c(D138BC4C): BLEQ MT [trap=4, pos=14524]
0789d .FIXUP D
0789d(8D00002D): LDR SB, MT, MOD0 [ORB]
078Ad(81D00068): LDR R1, SB, 68H [data]
078Bd(A1000008): STR R1, R0, 8H
ENDe enter;
078Ce(80E00018): LDR R0, SP, 18H
078De(A0D00068): STR R0, SB, 68H
078Ee(8FE00000): LDR LNK, SP, 0H
078Fe(4EE8001C): ADD SP, SP, 1CH
0790e(C700000F): B LNK
BEGINf
0791f .PROC 0
0791f .ENTRYPOINT
0791f(4EE90004): SUB SP, SP, 4H
0792f(AFE00000): STR LNK, SP, 0H
byteType := type(Byte,g Int,h 1)i;j
0793g(40000001): MOV R0, R0, 1H
0794h(41000004): MOV R1, R0, 4H
0795i(42000001): MOV R2, R0, 1H
0796j(F7FFFF98): BL -104 [072FH]
0797j .FIXUP D
0797j(8D00000E): LDR SB, MT, MOD0 [ORB]
0798j(A0D0006C): STR R0, SB, 6CH [data]
boolType := type(Bool,k Bool,l 1)m;n
0799k(40000002): MOV R0, R0, 2H
079Al(41000002): MOV R1, R0, 2H
079Bm(42000001): MOV R2, R0, 1H
079Cn(F7FFFF92): BL -110 [072FH]
079Dn .FIXUP D
079Dn(8D000006): LDR SB, MT, MOD0 [ORB]
079En(A0D00070): STR R0, SB, 70H [data]
charType := type(Char,o Char,p1)q;r
079Fo(40000003): MOV R0, R0, 3H
07A0p(41000003): MOV R1, R0, 3H
07A1q(42000001): MOV R2, R0, 1H
07A2r(F7FFFF8C): BL -116 [072FH]
07A3r .FIXUP D
07A3r(8D000006): LDR SB, MT, MOD0 [ORB]
07A4r(A0D00074): STR R0, SB, 74H [data]
intType := type(Int,s Int,t 4)u;v
07A5s(40000004): MOV R0, R0, 4H
07A6t(41000004): MOV R1, R0, 4H
07A7u(42000004): MOV R2, R0, 4H
07A8v(F7FFFF86): BL -122 [072FH]
07A9v .FIXUP D
07A9v(8D000006): LDR SB, MT, MOD0 [ORB]
07AAv(A0D00078): STR R0, SB, 78H [data]
realType := type(Real,w Real,x 4)y;z
07ABw(40000005): MOV R0, R0, 5H
07ACx(41000005): MOV R1, R0, 5H
07ADy(42000004): MOV R2, R0, 4H
07AEz(F7FFFF80): BL -128 [072FH]
07AFz .FIXUP D
07AFz(8D000006): LDR SB, MT, MOD0 [ORB]
07B0z(A0D0007C): STR R0, SB, 7CH [data]
setType := type(Set,a Set,b4)c;d
07B1a(40000006): MOV R0, R0, 6H
07B2b(41000006): MOV R1, R0, 6H
07B3c(42000004): MOV R2, R0, 4H
07B4d(F7FFFF7A): BL -134 [072FH]
07B5d .FIXUP D
07B5d(8D000006): LDR SB, MT, MOD0 [ORB]
07B6d(A0D00080): STR R0, SB, 80H [data]
nilType := type(NilTyp,e NilTyp,f 4)g;h
07B7e(40000008): MOV R0, R0, 8H
07B8f(41000008): MOV R1, R0, 8H
07B9g(42000004): MOV R2, R0, 4H
07BAh(F7FFFF74): BL -140 [072FH]
07BBh .FIXUP D
07BBh(8D000006): LDR SB, MT, MOD0 [ORB]
07BCh(A0D00084): STR R0, SB, 84H [data]
noType := type(NoTyp,i NoTyp,j 4)k;l
07BDi(40000009): MOV R0, R0, 9H
07BEj(41000009): MOV R1, R0, 9H
07BFk(42000004): MOV R2, R0, 4H
07C0l(F7FFFF6E): BL -146 [072FH]
07C1l .FIXUP D
07C1l(8D000006): LDR SB, MT, MOD0 [ORB]
07C2l(A0D00088): STR R0, SB, 88H [data]
strType := type(String,m String,n 8)o;p
07C3m(4000000B): MOV R0, R0, BH
07C4n(4100000B): MOV R1, R0, BH
07C5o(42000008): MOV R2, R0, 8H
07C6p(F7FFFF68): BL -152 [072FH]
07C7p .FIXUP D
07C7p(8D000006): LDR SB, MT, MOD0 [ORB]
07C8p(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*)
07C9q(40000000): MOV R0, R0, 0H
07CAq(A0D00068): STR R0, SB, 68H
enter("UML",r SFunc,s intType,t 132)u;v (*functions*)
07CBr(40D8022C): ADD R0, SB, 22CH
07CCr(41000004): MOV R1, R0, 4H
07CDs(42000007): MOV R2, R0, 7H
07CEt(83D00078): LDR R3, SB, 78H
07CFu(44000084): MOV R4, R0, 84H
07D0v(F7FFFF83): BL -125 [0754H]
enter("SBC",w SFunc,x intType,y 122)z;a
07D1w .FIXUP D
07D1w(8D00000A): LDR SB, MT, MOD0 [ORB]
07D2w(40D80230): ADD R0, SB, 230H ["SBC"]
07D3w(41000004): MOV R1, R0, 4H
07D4x(42000007): MOV R2, R0, 7H
07D5y(83D00078): LDR R3, SB, 78H
07D6z(4400007A): MOV R4, R0, 7AH
07D7a(F7FFFF7C): BL -132 [0754H]
enter("ADC",b SFunc,c intType,d 112)e;f
07D8b .FIXUP D
07D8b(8D000007): LDR SB, MT, MOD0 [ORB]
07D9b(40D80234): ADD R0, SB, 234H ["ADC"]
07DAb(41000004): MOV R1, R0, 4H
07DBc(42000007): MOV R2, R0, 7H
07DCd(83D00078): LDR R3, SB, 78H
07DDe(44000070): MOV R4, R0, 70H
07DEf(F7FFFF75): BL -139 [0754H]
enter("ROR",g SFunc,h intType,i 92)j;k
07DFg .FIXUP D
07DFg(8D000007): LDR SB, MT, MOD0 [ORB]
07E0g(40D80238): ADD R0, SB, 238H ["ROR"]
07E1g(41000004): MOV R1, R0, 4H
07E2h(42000007): MOV R2, R0, 7H
07E3i(83D00078): LDR R3, SB, 78H
07E4j(4400005C): MOV R4, R0, 5CH
07E5k(F7FFFF6E): BL -146 [0754H]
enter("ASR",l SFunc,m intType,n 82)o;p
07E6l .FIXUP D
07E6l(8D000007): LDR SB, MT, MOD0 [ORB]
07E7l(40D8023C): ADD R0, SB, 23CH ["ASR"]
07E8l(41000004): MOV R1, R0, 4H
07E9m(42000007): MOV R2, R0, 7H
07EAn(83D00078): LDR R3, SB, 78H
07EBo(44000052): MOV R4, R0, 52H
07ECp(F7FFFF67): BL -153 [0754H]
enter("LSL",q SFunc,r intType,s 72)t;u
07EDq .FIXUP D
07EDq(8D000007): LDR SB, MT, MOD0 [ORB]
07EEq(40D80240): ADD R0, SB, 240H ["LSL"]
07EFq(41000004): MOV R1, R0, 4H
07F0r(42000007): MOV R2, R0, 7H
07F1s(83D00078): LDR R3, SB, 78H
07F2t(44000048): MOV R4, R0, 48H
07F3u(F7FFFF60): BL -160 [0754H]
enter("LEN",v SFunc,w intType,x 61)y;z
07F4v .FIXUP D
07F4v(8D000007): LDR SB, MT, MOD0 [ORB]
07F5v(40D80244): ADD R0, SB, 244H ["LEN"]
07F6v(41000004): MOV R1, R0, 4H
07F7w(42000007): MOV R2, R0, 7H
07F8x(83D00078): LDR R3, SB, 78H
07F9y(4400003D): MOV R4, R0, 3DH
07FAz(F7FFFF59): BL -167 [0754H]
enter("CHR",a SFunc,b charType,c 51)d;e
07FBa .FIXUP D
07FBa(8D000007): LDR SB, MT, MOD0 [ORB]
07FCa(40D80248): ADD R0, SB, 248H ["CHR"]
07FDa(41000004): MOV R1, R0, 4H
07FEb(42000007): MOV R2, R0, 7H
07FFc(83D00074): LDR R3, SB, 74H
0800d(44000033): MOV R4, R0, 33H
0801e(F7FFFF52): BL -174 [0754H]
enter("ORD",f SFunc,g intType,h 41)i;j
0802f .FIXUP D
0802f(8D000007): LDR SB, MT, MOD0 [ORB]
0803f(40D8024C): ADD R0, SB, 24CH ["ORD"]
0804f(41000004): MOV R1, R0, 4H
0805g(42000007): MOV R2, R0, 7H
0806h(83D00078): LDR R3, SB, 78H
0807i(44000029): MOV R4, R0, 29H
0808j(F7FFFF4B): BL -181 [0754H]
enter("FLT",k SFunc,l realType,m 31)n;o
0809k .FIXUP D
0809k(8D000007): LDR SB, MT, MOD0 [ORB]
080Ak(40D80250): ADD R0, SB, 250H ["FLT"]
080Bk(41000004): MOV R1, R0, 4H
080Cl(42000007): MOV R2, R0, 7H
080Dm(83D0007C): LDR R3, SB, 7CH
080En(4400001F): MOV R4, R0, 1FH
080Fo(F7FFFF44): BL -188 [0754H]
enter("FLOOR",p SFunc,q intType,r 21)s;t
0810p .FIXUP D
0810p(8D000007): LDR SB, MT, MOD0 [ORB]
0811p(40D80254): ADD R0, SB, 254H ["FLOOR"]
0812p(41000006): MOV R1, R0, 6H
0813q(42000007): MOV R2, R0, 7H
0814r(83D00078): LDR R3, SB, 78H
0815s(44000015): MOV R4, R0, 15H
0816t(F7FFFF3D): BL -195 [0754H]
enter("ODD",u SFunc,v boolType,w 11)x;y
0817u .FIXUP D
0817u(8D000007): LDR SB, MT, MOD0 [ORB]
0818u(40D8025C): ADD R0, SB, 25CH ["ODD"]
0819u(41000004): MOV R1, R0, 4H
081Av(42000007): MOV R2, R0, 7H
081Bw(83D00070): LDR R3, SB, 70H
081Cx(4400000B): MOV R4, R0, BH
081Dy(F7FFFF36): BL -202 [0754H]
enter("ABS",z SFunc,a intType,b 1)c;d
081Ez .FIXUP D
081Ez(8D000007): LDR SB, MT, MOD0 [ORB]
081Fz(40D80260): ADD R0, SB, 260H ["ABS"]
0820z(41000004): MOV R1, R0, 4H
0821a(42000007): MOV R2, R0, 7H
0822b(83D00078): LDR R3, SB, 78H
0823c(44000001): MOV R4, R0, 1H
0824d(F7FFFF2F): BL -209 [0754H]
enter("LED",e SProc,f noType,g 81)h;i (*procedures*)
0825e .FIXUP D
0825e(8D000007): LDR SB, MT, MOD0 [ORB]
0826e(40D80264): ADD R0, SB, 264H ["LED"]
0827e(41000004): MOV R1, R0, 4H
0828f(42000006): MOV R2, R0, 6H
0829g(83D00088): LDR R3, SB, 88H
082Ah(44000051): MOV R4, R0, 51H
082Bi(F7FFFF28): BL -216 [0754H]
enter("UNPK",j SProc,k noType,l 72)m;n
082Cj .FIXUP D
082Cj(8D000007): LDR SB, MT, MOD0 [ORB]
082Dj(40D80268): ADD R0, SB, 268H ["UNPK"]
082Ej(41000005): MOV R1, R0, 5H
082Fk(42000006): MOV R2, R0, 6H
0830l(83D00088): LDR R3, SB, 88H
0831m(44000048): MOV R4, R0, 48H
0832n(F7FFFF21): BL -223 [0754H]
enter("PACK",o SProc,p noType,q 62)r;s
0833o .FIXUP D
0833o(8D000007): LDR SB, MT, MOD0 [ORB]
0834o(40D80270): ADD R0, SB, 270H ["PACK"]
0835o(41000005): MOV R1, R0, 5H
0836p(42000006): MOV R2, R0, 6H
0837q(83D00088): LDR R3, SB, 88H
0838r(4400003E): MOV R4, R0, 3EH
0839s(F7FFFF1A): BL -230 [0754H]
enter("NEW",t SProc,u noType,v 51)w;x
083At .FIXUP D
083At(8D000007): LDR SB, MT, MOD0 [ORB]
083Bt(40D80278): ADD R0, SB, 278H ["NEW"]
083Ct(41000004): MOV R1, R0, 4H
083Du(42000006): MOV R2, R0, 6H
083Ev(83D00088): LDR R3, SB, 88H
083Fw(44000033): MOV R4, R0, 33H
0840x(F7FFFF13): BL -237 [0754H]
enter("ASSERT",y SProc,z noType,a 41)b;c
0841y .FIXUP D
0841y(8D000007): LDR SB, MT, MOD0 [ORB]
0842y(40D8027C): ADD R0, SB, 27CH ["ASSERT"]
0843y(41000007): MOV R1, R0, 7H
0844z(42000006): MOV R2, R0, 6H
0845a(83D00088): LDR R3, SB, 88H
0846b(44000029): MOV R4, R0, 29H
0847c(F7FFFF0C): BL -244 [0754H]
enter("EXCL",d SProc,e noType,f 32)g;h
0848d .FIXUP D
0848d(8D000007): LDR SB, MT, MOD0 [ORB]
0849d(40D80284): ADD R0, SB, 284H ["EXCL"]
084Ad(41000005): MOV R1, R0, 5H
084Be(42000006): MOV R2, R0, 6H
084Cf(83D00088): LDR R3, SB, 88H
084Dg(44000020): MOV R4, R0, 20H
084Eh(F7FFFF05): BL -251 [0754H]
enter("INCL",i SProc,j noType,k 22)l;m
084Fi .FIXUP D
084Fi(8D000007): LDR SB, MT, MOD0 [ORB]
0850i(40D8028C): ADD R0, SB, 28CH ["INCL"]
0851i(41000005): MOV R1, R0, 5H
0852j(42000006): MOV R2, R0, 6H
0853k(83D00088): LDR R3, SB, 88H
0854l(44000016): MOV R4, R0, 16H
0855m(F7FFFEFE): BL -258 [0754H]
enter("DEC",n SProc,o noType,p 11)q;r
0856n .FIXUP D
0856n(8D000007): LDR SB, MT, MOD0 [ORB]
0857n(40D80294): ADD R0, SB, 294H ["DEC"]
0858n(41000004): MOV R1, R0, 4H
0859o(42000006): MOV R2, R0, 6H
085Ap(83D00088): LDR R3, SB, 88H
085Bq(4400000B): MOV R4, R0, BH
085Cr(F7FFFEF7): BL -265 [0754H]
enter("INC",s SProc,t noType,u 1)v;w
085Ds .FIXUP D
085Ds(8D000007): LDR SB, MT, MOD0 [ORB]
085Es(40D80298): ADD R0, SB, 298H ["INC"]
085Fs(41000004): MOV R1, R0, 4H
0860t(42000006): MOV R2, R0, 6H
0861u(83D00088): LDR R3, SB, 88H
0862v(44000001): MOV R4, R0, 1H
0863w(F7FFFEF0): BL -272 [0754H]
enter("SET",x Typ,y setType,z 0)a;b (*types*)
0864x .FIXUP D
0864x(8D000007): LDR SB, MT, MOD0 [ORB]
0865x(40D8029C): ADD R0, SB, 29CH ["SET"]
0866x(41000004): MOV R1, R0, 4H
0867y(42000005): MOV R2, R0, 5H
0868z(83D00080): LDR R3, SB, 80H
0869a(44000000): MOV R4, R0, 0H
086Ab(F7FFFEE9): BL -279 [0754H]
enter("BOOLEAN",c Typ,d boolType,e 0)f;g
086Bc .FIXUP D
086Bc(8D000007): LDR SB, MT, MOD0 [ORB]
086Cc(40D802A0): ADD R0, SB, 2A0H ["BOOLEAN"]
086Dc(41000008): MOV R1, R0, 8H
086Ed(42000005): MOV R2, R0, 5H
086Fe(83D00070): LDR R3, SB, 70H
0870f(44000000): MOV R4, R0, 0H
0871g(F7FFFEE2): BL -286 [0754H]
enter("BYTE",h Typ,i byteType,j 0)k;l
0872h .FIXUP D
0872h(8D000007): LDR SB, MT, MOD0 [ORB]
0873h(40D802A8): ADD R0, SB, 2A8H ["BYTE"]
0874h(41000005): MOV R1, R0, 5H
0875i(42000005): MOV R2, R0, 5H
0876j(83D0006C): LDR R3, SB, 6CH
0877k(44000000): MOV R4, R0, 0H
0878l(F7FFFEDB): BL -293 [0754H]
enter("CHAR",m Typ,n charType,o 0)p;q
0879m .FIXUP D
0879m(8D000007): LDR SB, MT, MOD0 [ORB]
087Am(40D802B0): ADD R0, SB, 2B0H ["CHAR"]
087Bm(41000005): MOV R1, R0, 5H
087Cn(42000005): MOV R2, R0, 5H
087Do(83D00074): LDR R3, SB, 74H
087Ep(44000000): MOV R4, R0, 0H
087Fq(F7FFFED4): BL -300 [0754H]
enter("LONGREAL",r Typ,s realType,t 0)u;v
0880r .FIXUP D
0880r(8D000007): LDR SB, MT, MOD0 [ORB]
0881r(40D802B8): ADD R0, SB, 2B8H ["LONGREAL"]
0882r(41000009): MOV R1, R0, 9H
0883s(42000005): MOV R2, R0, 5H
0884t(83D0007C): LDR R3, SB, 7CH
0885u(44000000): MOV R4, R0, 0H
0886v(F7FFFECD): BL -307 [0754H]
enter("REAL",w Typ,x realType,y 0)z;a
0887w .FIXUP D
0887w(8D000007): LDR SB, MT, MOD0 [ORB]
0888w(40D802C4): ADD R0, SB, 2C4H ["REAL"]
0889w(41000005): MOV R1, R0, 5H
088Ax(42000005): MOV R2, R0, 5H
088By(83D0007C): LDR R3, SB, 7CH
088Cz(44000000): MOV R4, R0, 0H
088Da(F7FFFEC6): BL -314 [0754H]
enter("LONGINT",b Typ,c intType,d 0)e;f
088Eb .FIXUP D
088Eb(8D000007): LDR SB, MT, MOD0 [ORB]
088Fb(40D802CC): ADD R0, SB, 2CCH ["LONGINT"]
0890b(41000008): MOV R1, R0, 8H
0891c(42000005): MOV R2, R0, 5H
0892d(83D00078): LDR R3, SB, 78H
0893e(44000000): MOV R4, R0, 0H
0894f(F7FFFEBF): BL -321 [0754H]
enter("INTEGER",g Typ,h intType,i 0)j;k
0895g .FIXUP D
0895g(8D000007): LDR SB, MT, MOD0 [ORB]
0896g(40D802D4): ADD R0, SB, 2D4H ["INTEGER"]
0897g(41000008): MOV R1, R0, 8H
0898h(42000005): MOV R2, R0, 5H
0899i(83D00078): LDR R3, SB, 78H
089Aj(44000000): MOV R4, R0, 0H
089Bk(F7FFFEB8): BL -328 [0754H]
topScope := NIL;l OpenScope;m topScope.nextn := system;o universe := topScope;p
089Cl(40000000): MOV R0, R0, 0H
089Dl .FIXUP D
089Dl(8D000008): LDR SB, MT, MOD0 [ORB]
089El(A0D00060): STR R0, SB, 60H [data]
089Fm(F7FFF82F): BL -2001 [00CFH]
08A0n .FIXUP D
08A0n(8D000003): LDR SB, MT, MOD0 [ORB]
08A1n(80D00060): LDR R0, SB, 60H [data]
08A2n(D13FAA4C): BLEQ MT [trap=4, pos=16298]
08A3o(81D00068): LDR R1, SB, 68H
08A4o(A1000008): STR R1, R0, 8H
08A5p(80D00060): LDR R0, SB, 60H
08A6p(A0D00064): STR R0, SB, 64H
system := NIL;q (* initialize "unsafe" pseudo-module SYSTEM*)
08A7q(40000000): MOV R0, R0, 0H
08A8q(A0D00068): STR R0, SB, 68H
enter("H",r SFunc,s intType,t 201)u;v (*functions*)
08A9r(40D802DC): ADD R0, SB, 2DCH
08AAr(41000002): MOV R1, R0, 2H
08ABs(42000007): MOV R2, R0, 7H
08ACt(83D00078): LDR R3, SB, 78H
08ADu(440000C9): MOV R4, R0, C9H
08AEv(F7FFFEA5): BL -347 [0754H]
enter("COND",w SFunc,x boolType,y 191)z;a
08AFw .FIXUP D
08AFw(8D00000F): LDR SB, MT, MOD0 [ORB]
08B0w(40D802E0): ADD R0, SB, 2E0H ["COND"]
08B1w(41000005): MOV R1, R0, 5H
08B2x(42000007): MOV R2, R0, 7H
08B3y(83D00070): LDR R3, SB, 70H
08B4z(440000BF): MOV R4, R0, BFH
08B5a(F7FFFE9E): BL -354 [0754H]
enter("SIZE",b SFunc,c intType,d 181)e;f
08B6b .FIXUP D
08B6b(8D000007): LDR SB, MT, MOD0 [ORB]
08B7b(40D802E8): ADD R0, SB, 2E8H ["SIZE"]
08B8b(41000005): MOV R1, R0, 5H
08B9c(42000007): MOV R2, R0, 7H
08BAd(83D00078): LDR R3, SB, 78H
08BBe(440000B5): MOV R4, R0, B5H
08BCf(F7FFFE97): BL -361 [0754H]
enter("ADR",g SFunc,h intType,i 171)j;k
08BDg .FIXUP D
08BDg(8D000007): LDR SB, MT, MOD0 [ORB]
08BEg(40D802F0): ADD R0, SB, 2F0H ["ADR"]
08BFg(41000004): MOV R1, R0, 4H
08C0h(42000007): MOV R2, R0, 7H
08C1i(83D00078): LDR R3, SB, 78H
08C2j(440000AB): MOV R4, R0, ABH
08C3k(F7FFFE90): BL -368 [0754H]
enter("VAL",l SFunc,m intType,n 162)o;p
08C4l .FIXUP D
08C4l(8D000007): LDR SB, MT, MOD0 [ORB]
08C5l(40D802F4): ADD R0, SB, 2F4H ["VAL"]
08C6l(41000004): MOV R1, R0, 4H
08C7m(42000007): MOV R2, R0, 7H
08C8n(83D00078): LDR R3, SB, 78H
08C9o(440000A2): MOV R4, R0, A2H
08CAp(F7FFFE89): BL -375 [0754H]
enter("REG",q SFunc,r intType,s 151)t;u
08CBq .FIXUP D
08CBq(8D000007): LDR SB, MT, MOD0 [ORB]
08CCq(40D802F8): ADD R0, SB, 2F8H ["REG"]
08CDq(41000004): MOV R1, R0, 4H
08CEr(42000007): MOV R2, R0, 7H
08CFs(83D00078): LDR R3, SB, 78H
08D0t(44000097): MOV R4, R0, 97H
08D1u(F7FFFE82): BL -382 [0754H]
enter("BIT",v SFunc,w boolType,x 142)y;z
08D2v .FIXUP D
08D2v(8D000007): LDR SB, MT, MOD0 [ORB]
08D3v(40D802FC): ADD R0, SB, 2FCH ["BIT"]
08D4v(41000004): MOV R1, R0, 4H
08D5w(42000007): MOV R2, R0, 7H
08D6x(83D00070): LDR R3, SB, 70H
08D7y(4400008E): MOV R4, R0, 8EH
08D8z(F7FFFE7B): BL -389 [0754H]
enter("LDREG",a SProc,b noType,c 142)d;e (*procedures*)
08D9a .FIXUP D
08D9a(8D000007): LDR SB, MT, MOD0 [ORB]
08DAa(40D80300): ADD R0, SB, 300H ["LDREG"]
08DBa(41000006): MOV R1, R0, 6H
08DCb(42000006): MOV R2, R0, 6H
08DDc(83D00088): LDR R3, SB, 88H
08DEd(4400008E): MOV R4, R0, 8EH
08DFe(F7FFFE74): BL -396 [0754H]
enter("LDPSR",f SProc,g noType,h 131)i;j
08E0f .FIXUP D
08E0f(8D000007): LDR SB, MT, MOD0 [ORB]
08E1f(40D80308): ADD R0, SB, 308H ["LDPSR"]
08E2f(41000006): MOV R1, R0, 6H
08E3g(42000006): MOV R2, R0, 6H
08E4h(83D00088): LDR R3, SB, 88H
08E5i(44000083): MOV R4, R0, 83H
08E6j(F7FFFE6D): BL -403 [0754H]
enter("COPY",k SProc,l noType,m 123)n;o
08E7k .FIXUP D
08E7k(8D000007): LDR SB, MT, MOD0 [ORB]
08E8k(40D80310): ADD R0, SB, 310H ["COPY"]
08E9k(41000005): MOV R1, R0, 5H
08EAl(42000006): MOV R2, R0, 6H
08EBm(83D00088): LDR R3, SB, 88H
08ECn(4400007B): MOV R4, R0, 7BH
08EDo(F7FFFE66): BL -410 [0754H]
enter("PUT",p SProc,q noType,r 112)s;t
08EEp .FIXUP D
08EEp(8D000007): LDR SB, MT, MOD0 [ORB]
08EFp(40D80318): ADD R0, SB, 318H ["PUT"]
08F0p(41000004): MOV R1, R0, 4H
08F1q(42000006): MOV R2, R0, 6H
08F2r(83D00088): LDR R3, SB, 88H
08F3s(44000070): MOV R4, R0, 70H
08F4t(F7FFFE5F): BL -417 [0754H]
enter("GET",u SProc,v noType,w 102)x;y
08F5u .FIXUP D
08F5u(8D000007): LDR SB, MT, MOD0 [ORB]
08F6u(40D8031C): ADD R0, SB, 31CH ["GET"]
08F7u(41000004): MOV R1, R0, 4H
08F8v(42000006): MOV R2, R0, 6H
08F9w(83D00088): LDR R3, SB, 88H
08FAx(44000066): MOV R4, R0, 66H
08FBy(F7FFFE58): BL -424 [0754H]
END ORB.z
08FCz(8FE00000): LDR LNK, SP, 0H
08FDz(4EE80004): ADD SP, SP, 4H
08FEz(C700000F): B LNK