| MODULE Graphics; (*NW 21.12.89 / 18.11.201 / 8.4.2016*) |
| .MODULE Graphics (KEY F7357DD9, VERSION 1, SIZE 00003C0C) |
| .IMPORT Files (KEY 73F5D686) |
| .IMPORT Modules (KEY 41C6A19A) |
| .IMPORT Fonts (KEY F4C9F557) |
| .IMPORT Texts (KEY 0B9E9984) |
| .IMPORT Oberon (KEY A89CCEE2) |
| .IMPORT Display (KEY 4C08D3EA) |
| .IMPORT Viewers (KEY 25ABF199) |
| .TYPEDESC 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 00000018 00000014 FFFFFFFF 00000020 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000020 0003000D FFFFFFFF FFFFFFFF FFFFFFFF 00000020 00044005 FFFFFFFF FFFFFFFF FFFFFFFF 00000020 00058005 FFFFFFFF FFFFFFFF 00000000 FFFFFFFF 00000020 FFFFFFFF FFFFFFFF FFFFFFFF 00000008 00000004 FFFFFFFF 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 00000034 00000030 0000002C 00000028 FFFFFFFF 00000040 FFFFFFFF FFFFFFFF FFFFFFFF 00000024 00000020 FFFFFFFF 00000020 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000080 FFFFFFFF FFFFFFFF FFFFFFFF 00000034 00000038 0000003C 00000040 0000000C 00000010 00000014 00000018 0000001C 00000020 00000024 00000028 0000002C 00000030 FFFFFFFF 00000080 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000040 0014003A FFFFFFFF FFFFFFFF 00000018 00000014 FFFFFFFF 00000040 0015C007 FFFFFFFF FFFFFFFF 00000018 00000014 FFFFFFFF 00000040 00178007 FFFFFFFF FFFFFFFF 0000001C 00000018 00000014 FFFFFFFF |
| .DATA 9CH |
| .STRING 234H " unknown" |
| .STRING 240H " not available" |
| .STRING 250H "loading " |
| .STRING 25CH " not found" |
| .STRING 268H "" |
| .POINTER_REFERENCES 1A0H 1A4H 1A8H 1ACH 1B0H 1B8H 1BCH 1C0H 1E0H 1D4H 1E4H 1E8H 208H 1FCH 20CH 210H 230H 224H |
| .FIXUP T 5FH |
| IMPORT SYSTEM, Files, Modules, Fonts, (*Printer,*) Texts, Oberon; |
| |
| CONST NameLen* = 32; GraphFileId = 0FAX; LibFileId = 0FBX; |
| |
| TYPE |
| Graph* = POINTER TO GraphDesc; |
| Object* = POINTER TO ObjectDesc; |
| Method* = POINTER TO MethodDesc; |
| |
| Line* = POINTER TO LineDesc; |
| Caption* = POINTER TO CaptionDesc; |
| Macro* = POINTER TO MacroDesc; |
| |
| ObjectDesc* = RECORD |
| x*, y*, w*, h*: INTEGER; |
| col*: BYTE; |
| selected*, marked*: BOOLEAN; |
| do*: Method; |
| next: Object |
| END ; |
| |
| Msg* = RECORD END ; |
| WidMsg* = RECORD (Msg) w*: INTEGER END ; |
| ColorMsg* = RECORD (Msg) col*: INTEGER END ; |
| FontMsg* = RECORD (Msg) fnt*: Fonts.Font END ; |
| Name* = ARRAY NameLen OF CHAR; |
| |
| GraphDesc* = RECORD |
| time*: LONGINT; |
| sel*, first: Object; |
| changed*: BOOLEAN |
| END ; |
| |
| MacHead* = POINTER TO MacHeadDesc; |
| MacExt* = POINTER TO MacExtDesc; |
| Library* = POINTER TO LibraryDesc; |
| |
| MacHeadDesc* = RECORD |
| name*: Name; |
| w*, h*: INTEGER; |
| ext*: MacExt; |
| lib*: Library; |
| first: Object; |
| next: MacHead |
| END ; |
| |
| LibraryDesc* = RECORD |
| name*: Name; |
| first: MacHead; |
| next: Library |
| END ; |
| |
| MacExtDesc* = RECORD END ; |
| |
| Context* = RECORD |
| nofonts, noflibs, nofclasses: INTEGER; |
| font: ARRAY 10 OF Fonts.Font; |
| lib: ARRAY 4 OF Library; |
| class: ARRAY 6 OF Modules.Command |
| END; |
| |
| MethodDesc* = RECORD |
| module*, allocator*: Name; |
| new*: Modules.Command; |
| copy*: PROCEDURE (from, to: Object); |
| draw*, change*: PROCEDURE (obj: Object; VAR msg: Msg); |
| selectable*: PROCEDURE (obj: Object; x, y: INTEGER): BOOLEAN; |
| read*: PROCEDURE (obj: Object; VAR R: Files.Rider; VAR C: Context); |
| write*: PROCEDURE (obj: Object; cno: INTEGER; VAR R: Files.Rider; VAR C: Context); |
| print*: PROCEDURE (obj: Object; x, y: INTEGER) |
| END ; |
| |
| LineDesc* = RECORD (ObjectDesc) |
| unused*: INTEGER |
| END ; |
| |
| CaptionDesc* = RECORD (ObjectDesc) |
| pos*, len*: INTEGER |
| END ; |
| |
| MacroDesc* = RECORD (ObjectDesc) |
| mac*: MacHead |
| END ; |
| |
| VAR width*, res*: INTEGER; |
| new: Object; |
| T*: Texts.Text; (*captions*) |
| LineMethod*, CapMethod*, MacMethod* : Method; |
| GetLib0: PROCEDURE (name: ARRAY OF CHAR; replace: BOOLEAN; VAR Lib: Library); |
| |
| FirstLib: Library; |
| W, TW, XW: Texts.Writer; |
| |
| PROCEDURE New*(obj: Object); |
| BEGINa new := obj |
0000 | a .PROC 1 |
0000 | a .PROC 21 |
0000 | a(4EE90008): SUB SP, SP, 8H |
0001 | a(AFE00000): STR LNK, SP, 0H |
0002 | a(A0E00004): STR R0, SP, 4H |
| ENDb New; |
0003 | b(80E00004): LDR R0, SP, 4H |
0004 | b .FIXUP D |
0004 | b(8D000004): LDR SB, MT, MOD0 [Graphics] |
0005 | b(A0D001A0): STR R0, SB, 1A0H [data] |
0006 | b(8FE00000): LDR LNK, SP, 0H |
0007 | b .PROC 2 |
0007 | b(4EE80008): ADD SP, SP, 8H |
0008 | b(C700000F): B LNK |
| |
| PROCEDURE Add*(G: Graph; obj: Object); |
| BEGINc obj.markedd := FALSE;e obj.selectedf := TRUE;g obj.nexth := G.firsti;j |
0009 | c .PROC 22 |
0009 | c(4EE9000C): SUB SP, SP, CH |
000A | c(AFE00000): STR LNK, SP, 0H |
000B | c(A0E00004): STR R0, SP, 4H |
000C | c .PROC 3 |
000C | c(A1E00008): STR R1, SP, 8H |
000D | d(80E00008): LDR R0, SP, 8H |
000E | d(D10A554C): BLEQ MT [trap=4, pos=2645] |
000F | e(41000000): MOV R1, R0, 0H |
0010 | e(B1000012): STR R1, R0, 12H |
0011 | f .PROC 4 |
0011 | f(80E00008): LDR R0, SP, 8H |
0012 | f(D10A6C4C): BLEQ MT [trap=4, pos=2668] |
0013 | g(41000001): MOV R1, R0, 1H |
0014 | g(B1000011): STR R1, R0, 11H |
0015 | h(80E00008): LDR R0, SP, 8H |
0016 | h .PROC 5 |
0016 | h(D10A7E4C): BLEQ MT [trap=4, pos=2686] |
0017 | i(81E00004): LDR R1, SP, 4H |
0018 | i(D10A894C): BLEQ MT [trap=4, pos=2697] |
0019 | j(81100008): LDR R1, R1, 8H |
001A | j(A1000018): STR R1, R0, 18H |
| G.firstk := obj;l G.selm := obj;n G.timeo := Oberon.Time()p;q G.changedr := TRUE |
001B | k(80E00004): LDR R0, SP, 4H |
001C | k .PROC 6 |
001C | k(D10A964C): BLEQ MT [trap=4, pos=2710] |
001D | l(81E00008): LDR R1, SP, 8H |
001E | l(A1000008): STR R1, R0, 8H |
001F | m(80E00004): LDR R0, SP, 4H |
0020 | m(D10AA44C): BLEQ MT [trap=4, pos=2724] |
0021 | n(81E00008): LDR R1, SP, 8H |
0022 | n(A1000004): STR R1, R0, 4H |
0023 | o .PROC 7 |
0023 | o(80E00004): LDR R0, SP, 4H |
0024 | o(D10AB34C): BLEQ MT [trap=4, pos=2739] |
0025 | p(4EE90004): SUB SP, SP, 4H |
0026 | p(A0E00000): STR R0, SP, 0H |
0027 | q .FIXUP P |
0027 | q(F7516027): BL MOD5 [Oberon] PROC22 |
0028 | q(01000000): MOV R1, R0, R0 |
0029 | q(80E00000): LDR R0, SP, 0H |
002A | q(4EE80004): ADD SP, SP, 4H |
002B | q(A1000000): STR R1, R0, 0H |
002C | r .PROC 8 |
002C | r(80E00004): LDR R0, SP, 4H |
002D | r(D10ACF4C): BLEQ MT [trap=4, pos=2767] |
| ENDs Add; |
002E | s(41000001): MOV R1, R0, 1H |
002F | s(B100000C): STR R1, R0, CH |
0030 | s(8FE00000): LDR LNK, SP, 0H |
0031 | s(4EE8000C): ADD SP, SP, CH |
0032 | s(C700000F): B LNK |
| |
| PROCEDURE ThisObj*(G: Graph; x, y: INTEGER): Object; |
| VAR obj: Object; |
| BEGINt obj := G.firstu;v |
0033 | t .PROC 9 |
0033 | t .PROC 23 |
0033 | t(4EE90014): SUB SP, SP, 14H |
0034 | t(AFE00000): STR LNK, SP, 0H |
0035 | t(A0E00004): STR R0, SP, 4H |
0036 | t(A1E00008): STR R1, SP, 8H |
0037 | t(A2E0000C): STR R2, SP, CH |
0038 | u .PROC 10 |
0038 | u(80E00004): LDR R0, SP, 4H |
0039 | u(D10B464C): BLEQ MT [trap=4, pos=2886] |
003A | v(80000008): LDR R0, R0, 8H |
003B | v(A0E00010): STR R0, SP, 10H |
| WHILE (obj # NIL)w & ~xobj.doy.selectablez(obja,b x ,cy)d DOe obj := obj.nextf ENDg ; |
003C | w(80E00010): LDR R0, SP, 10H |
003D | x(E1000015): BEQ 21 [0053H] |
003E | y(80E00010): LDR R0, SP, 10H |
003F | y(D10B674C): BLEQ MT [trap=4, pos=2919] |
0040 | z(80000014): LDR R0, R0, 14H |
0041 | z(D10B724C): BLEQ MT [trap=4, pos=2930] |
0042 | a(80000050): LDR R0, R0, 50H |
0043 | a(4EE90004): SUB SP, SP, 4H |
0044 | a(A0E00000): STR R0, SP, 0H |
0045 | b(80E00014): LDR R0, SP, 14H |
0046 | c(81E0000C): LDR R1, SP, CH |
0047 | d(82E00010): LDR R2, SP, 10H |
0048 | e(83E00000): LDR R3, SP, 0H |
0049 | e(4EE80004): ADD SP, SP, 4H |
004A | e(D10B805C): BLEQ MT [trap=5, pos=2944] |
004B | e .PROC 11 |
004B | e(D7000003): BL R3 |
004C | e(40090000): SUB R0, R0, 0H |
004D | e(E9000005): BNE 5 [0053H] |
004E | f(80E00010): LDR R0, SP, 10H |
004F | f(D10B904C): BLEQ MT [trap=4, pos=2960] |
0050 | g .PROC 12 |
0050 | g(80000018): LDR R0, R0, 18H |
0051 | g(A0E00010): STR R0, SP, 10H |
0052 | g(E7FFFFE9): B -23 [003CH] |
| RETURN obj |
| ENDh ThisObj; |
0053 | h(80E00010): LDR R0, SP, 10H |
0054 | h(8FE00000): LDR LNK, SP, 0H |
0055 | h(4EE80014): ADD SP, SP, 14H |
0056 | h(C700000F): B LNK |
| |
| PROCEDURE SelectObj*(G: Graph; obj: Object); |
| BEGINi |
0057 | i .PROC 13 |
0057 | i .PROC 24 |
0057 | i(4EE9000C): SUB SP, SP, CH |
0058 | i(AFE00000): STR LNK, SP, 0H |
0059 | i(A0E00004): STR R0, SP, 4H |
005A | i(A1E00008): STR R1, SP, 8H |
| IF obj # NIL THENj obj.selectedk := TRUE;l G.selm := obj;n G.timeo := Oberon.Time()p ENDq |
005B | j(80E00008): LDR R0, SP, 8H |
005C | j(E1000011): BEQ 17 [006EH] |
005D | k(80E00008): LDR R0, SP, 8H |
005E | k .PROC 14 |
005E | k(D10C0F4C): BLEQ MT [trap=4, pos=3087] |
005F | l(41000001): MOV R1, R0, 1H |
0060 | l(B1000011): STR R1, R0, 11H |
0061 | m(80E00004): LDR R0, SP, 4H |
0062 | m(D10C1E4C): BLEQ MT [trap=4, pos=3102] |
0063 | n(81E00008): LDR R1, SP, 8H |
0064 | n(A1000004): STR R1, R0, 4H |
0065 | o(80E00004): LDR R0, SP, 4H |
0066 | o .PROC 15 |
0066 | o(D10C2D4C): BLEQ MT [trap=4, pos=3117] |
0067 | p .PROC 16 |
0067 | p(4EE90004): SUB SP, SP, 4H |
0068 | p(A0E00000): STR R0, SP, 0H |
0069 | q .PROC 17 |
0069 | q .FIXUP P |
0069 | q(F7516042): BL MOD5 [Oberon] PROC22 |
006A | q .PROC 18 |
006A | q(01000000): MOV R1, R0, R0 |
006B | q .PROC 19 |
006B | q(80E00000): LDR R0, SP, 0H |
006C | q .PROC 20 |
006C | q(4EE80004): ADD SP, SP, 4H |
006D | q(A1000000): STR R1, R0, 0H |
| ENDr SelectObj; |
006E | r(8FE00000): LDR LNK, SP, 0H |
006F | r(4EE8000C): ADD SP, SP, CH |
0070 | r(C700000F): B LNK |
| |
| PROCEDURE SelectArea*(G: Graph; x0, y0, x1, y1: INTEGER); |
| VAR obj: Object; t: INTEGER; |
| BEGINs obj := G.firstt;u |
0071 | s .PROC 25 |
0071 | s(4EE90020): SUB SP, SP, 20H |
0072 | s(AFE00000): STR LNK, SP, 0H |
0073 | s(A0E00004): STR R0, SP, 4H |
0074 | s(A1E00008): STR R1, SP, 8H |
0075 | s(A2E0000C): STR R2, SP, CH |
0076 | s(A3E00010): STR R3, SP, 10H |
0077 | s(A4E00014): STR R4, SP, 14H |
0078 | t(80E00004): LDR R0, SP, 4H |
0079 | t(D10CC84C): BLEQ MT [trap=4, pos=3272] |
007A | u(80000008): LDR R0, R0, 8H |
007B | u(A0E00018): STR R0, SP, 18H |
| IF x1 < x0 THENv t := x0;w x0 := x1;x x1 := t ENDy ; |
007C | v(80E00010): LDR R0, SP, 10H |
007D | v(81E00008): LDR R1, SP, 8H |
007E | v(00090001): SUB R0, R0, R1 |
007F | v(ED000006): BGE 6 [0086H] |
0080 | w(80E00008): LDR R0, SP, 8H |
0081 | w(A0E0001C): STR R0, SP, 1CH |
0082 | x(80E00010): LDR R0, SP, 10H |
0083 | x(A0E00008): STR R0, SP, 8H |
0084 | y(80E0001C): LDR R0, SP, 1CH |
0085 | y(A0E00010): STR R0, SP, 10H |
| IF y1 < y0 THENz t := y0;a y0 := y1;b y1 := t ENDc ; |
0086 | z(80E00014): LDR R0, SP, 14H |
0087 | z(81E0000C): LDR R1, SP, CH |
0088 | z(00090001): SUB R0, R0, R1 |
0089 | z(ED000006): BGE 6 [0090H] |
008A | a(80E0000C): LDR R0, SP, CH |
008B | a(A0E0001C): STR R0, SP, 1CH |
008C | b(80E00014): LDR R0, SP, 14H |
008D | b(A0E0000C): STR R0, SP, CH |
008E | c(80E0001C): LDR R0, SP, 1CH |
008F | c(A0E00014): STR R0, SP, 14H |
| WHILE obj # NIL DOd |
0090 | d(80E00018): LDR R0, SP, 18H |
0091 | d(E100002D): BEQ 45 [00BFH] |
| IF (x0 <= obj.xe)f & (gobj.xh + obj.wi <=j x1)k & (ly0 <= obj.ym)n & (oobj.yp + obj.hq <=r y1)s THENt |
0092 | e(80E00018): LDR R0, SP, 18H |
0093 | e(D10D604C): BLEQ MT [trap=4, pos=3424] |
0094 | f(81E00008): LDR R1, SP, 8H |
0095 | f(80000000): LDR R0, R0, 0H |
0096 | f(01190000): SUB R1, R1, R0 |
0097 | g(EE000022): BGT 34 [00BAH] |
0098 | h(80E00018): LDR R0, SP, 18H |
0099 | h(D10D6A4C): BLEQ MT [trap=4, pos=3434] |
009A | i(81E00018): LDR R1, SP, 18H |
009B | i(D10D724C): BLEQ MT [trap=4, pos=3442] |
009C | j(80000000): LDR R0, R0, 0H |
009D | j(81100008): LDR R1, R1, 8H |
009E | j(00080001): ADD R0, R0, R1 |
009F | k(81E00010): LDR R1, SP, 10H |
00A0 | k(00090001): SUB R0, R0, R1 |
00A1 | l(EE000018): BGT 24 [00BAH] |
00A2 | m(80E00018): LDR R0, SP, 18H |
00A3 | m(D10D884C): BLEQ MT [trap=4, pos=3464] |
00A4 | n(81E0000C): LDR R1, SP, CH |
00A5 | n(80000004): LDR R0, R0, 4H |
00A6 | n(01190000): SUB R1, R1, R0 |
00A7 | o(EE000012): BGT 18 [00BAH] |
00A8 | p(80E00018): LDR R0, SP, 18H |
00A9 | p(D10D924C): BLEQ MT [trap=4, pos=3474] |
00AA | q(81E00018): LDR R1, SP, 18H |
00AB | q(D10D9A4C): BLEQ MT [trap=4, pos=3482] |
00AC | r(80000004): LDR R0, R0, 4H |
00AD | r(8110000C): LDR R1, R1, CH |
00AE | r(00080001): ADD R0, R0, R1 |
00AF | s(81E00014): LDR R1, SP, 14H |
00B0 | s(00090001): SUB R0, R0, R1 |
00B1 | t(EE000008): BGT 8 [00BAH] |
| obj.selectedu := TRUE;v G.selw := obj |
00B2 | u(80E00018): LDR R0, SP, 18H |
00B3 | u(D10DBB4C): BLEQ MT [trap=4, pos=3515] |
00B4 | v(41000001): MOV R1, R0, 1H |
00B5 | v(B1000011): STR R1, R0, 11H |
00B6 | w(80E00004): LDR R0, SP, 4H |
00B7 | w(D10DCA4C): BLEQ MT [trap=4, pos=3530] |
| ENDx ; |
00B8 | x(81E00018): LDR R1, SP, 18H |
00B9 | x(A1000004): STR R1, R0, 4H |
| obj := obj.nexty |
00BA | y(80E00018): LDR R0, SP, 18H |
00BB | y(D10DF34C): BLEQ MT [trap=4, pos=3571] |
| ENDz ; |
00BC | z(80000018): LDR R0, R0, 18H |
00BD | z(A0E00018): STR R0, SP, 18H |
00BE | z(E7FFFFD1): B -47 [0090H] |
| IF G.sela # NIL THENb G.timec := Oberon.Time()d ENDe |
00BF | a(80E00004): LDR R0, SP, 4H |
00C0 | a(D10E0A4C): BLEQ MT [trap=4, pos=3594] |
00C1 | b(80000004): LDR R0, R0, 4H |
00C2 | b(E1000009): BEQ 9 [00CCH] |
00C3 | c(80E00004): LDR R0, SP, 4H |
00C4 | c(D10E1C4C): BLEQ MT [trap=4, pos=3612] |
00C5 | d(4EE90004): SUB SP, SP, 4H |
00C6 | d(A0E00000): STR R0, SP, 0H |
00C7 | e .FIXUP P |
00C7 | e(F751605E): BL MOD5 [Oberon] PROC22 |
00C8 | e(01000000): MOV R1, R0, R0 |
00C9 | e(80E00000): LDR R0, SP, 0H |
00CA | e(4EE80004): ADD SP, SP, 4H |
00CB | e(A1000000): STR R1, R0, 0H |
| ENDf SelectArea; |
00CC | f(8FE00000): LDR LNK, SP, 0H |
00CD | f(4EE80020): ADD SP, SP, 20H |
00CE | f(C700000F): B LNK |
| |
| PROCEDURE Draw*(G: Graph; VAR M: Msg); |
| VAR obj: Object; |
| BEGINg obj := G.firsth;i |
00CF | g .PROC 26 |
00CF | g(4EE90014): SUB SP, SP, 14H |
00D0 | g(AFE00000): STR LNK, SP, 0H |
00D1 | g(A0E00004): STR R0, SP, 4H |
00D2 | g(A1E00008): STR R1, SP, 8H |
00D3 | g(A2E0000C): STR R2, SP, CH |
00D4 | h(80E00004): LDR R0, SP, 4H |
00D5 | h(D10E994C): BLEQ MT [trap=4, pos=3737] |
00D6 | i(80000008): LDR R0, R0, 8H |
00D7 | i(A0E00010): STR R0, SP, 10H |
| WHILE obj # NIL DOj obj.dok.drawl(objm,n M)o;p obj := obj.nextq ENDr |
00D8 | j(80E00010): LDR R0, SP, 10H |
00D9 | j(E1000013): BEQ 19 [00EDH] |
00DA | k(80E00010): LDR R0, SP, 10H |
00DB | k(D10EB84C): BLEQ MT [trap=4, pos=3768] |
00DC | l(80000014): LDR R0, R0, 14H |
00DD | l(D10EBD4C): BLEQ MT [trap=4, pos=3773] |
00DE | m(80000048): LDR R0, R0, 48H |
00DF | m(4EE90004): SUB SP, SP, 4H |
00E0 | m(A0E00000): STR R0, SP, 0H |
00E1 | n(80E00014): LDR R0, SP, 14H |
00E2 | o(81E0000C): LDR R1, SP, CH |
00E3 | o(82E00010): LDR R2, SP, 10H |
00E4 | p(83E00000): LDR R3, SP, 0H |
00E5 | p(4EE80004): ADD SP, SP, 4H |
00E6 | p(D10EC65C): BLEQ MT [trap=5, pos=3782] |
00E7 | p(D7000003): BL R3 |
00E8 | q(80E00010): LDR R0, SP, 10H |
00E9 | q(D10ED64C): BLEQ MT [trap=4, pos=3798] |
00EA | r(80000018): LDR R0, R0, 18H |
00EB | r(A0E00010): STR R0, SP, 10H |
00EC | r(E7FFFFEB): B -21 [00D8H] |
| ENDs Draw; |
00ED | s(8FE00000): LDR LNK, SP, 0H |
00EE | s(4EE80014): ADD SP, SP, 14H |
00EF | s(C700000F): B LNK |
| |
| PROCEDURE List*(G: Graph); |
| VAR obj: Object; tag: INTEGER; |
| BEGINt obj := G.firstu;v |
00F0 | t .PROC 27 |
00F0 | t(4EE90010): SUB SP, SP, 10H |
00F1 | t(AFE00000): STR LNK, SP, 0H |
00F2 | t(A0E00004): STR R0, SP, 4H |
00F3 | u(80E00004): LDR R0, SP, 4H |
00F4 | u(D10F3E4C): BLEQ MT [trap=4, pos=3902] |
00F5 | v(80000008): LDR R0, R0, 8H |
00F6 | v(A0E00008): STR R0, SP, 8H |
| WHILE obj # NIL DOw |
00F7 | w(80E00008): LDR R0, SP, 8H |
00F8 | w(E100005A): BEQ 90 [0153H] |
| Texts.Write(XW,x 9X)y;z Texts.WriteHex(XW,a ORD(obj))b;c Texts.Write(XW,d 9X)e;f |
00F9 | x .FIXUP D |
00F9 | x(8D0000F5): LDR SB, MT, MOD0 [Graphics] |
00FA | x(40D8020C): ADD R0, SB, 20CH [data] |
00FB | x .FIXUP D |
00FB | x(8D400002): LDR SB, MT, MOD4 [Texts] |
00FC | x(41D80005): ADD R1, SB, VAR5 |
00FD | y(42000009): MOV R2, R0, 9H |
00FE | z .FIXUP P |
00FE | z(F741B037): BL MOD4 [Texts] PROC27 |
00FF | a .FIXUP D |
00FF | a(8D000004): LDR SB, MT, MOD0 [Graphics] |
0100 | a(40D8020C): ADD R0, SB, 20CH [data] |
0101 | a .FIXUP D |
0101 | a(8D400002): LDR SB, MT, MOD4 [Texts] |
0102 | a(41D80005): ADD R1, SB, VAR5 |
0103 | b(82E00008): LDR R2, SP, 8H |
0104 | c .FIXUP P |
0104 | c(F741F006): BL MOD4 [Texts] PROC31 |
0105 | d .FIXUP D |
0105 | d(8D000004): LDR SB, MT, MOD0 [Graphics] |
0106 | d(40D8020C): ADD R0, SB, 20CH [data] |
0107 | d .FIXUP D |
0107 | d(8D400002): LDR SB, MT, MOD4 [Texts] |
0108 | d(41D80005): ADD R1, SB, VAR5 |
0109 | e(42000009): MOV R2, R0, 9H |
010A | f .FIXUP P |
010A | f(F741B006): BL MOD4 [Texts] PROC27 |
| Texts.WriteInt(XW,g obj.xh,i 5)j;k Texts.WriteInt(XW,l obj.ym,n 5)o;p Texts.WriteInt(XW,q obj.wr,s 5)t;u Texts.WriteInt(XW,v obj.hw,x 5)y;z |
010B | g .FIXUP D |
010B | g(8D000004): LDR SB, MT, MOD0 [Graphics] |
010C | g(40D8020C): ADD R0, SB, 20CH [data] |
010D | g .FIXUP D |
010D | g(8D400002): LDR SB, MT, MOD4 [Texts] |
010E | g(41D80005): ADD R1, SB, VAR5 |
010F | h(82E00008): LDR R2, SP, 8H |
0110 | h(D10FC34C): BLEQ MT [trap=4, pos=4035] |
0111 | i(82200000): LDR R2, R2, 0H |
0112 | j(43000005): MOV R3, R0, 5H |
0113 | k .FIXUP P |
0113 | k(F741E009): BL MOD4 [Texts] PROC30 |
0114 | l .FIXUP D |
0114 | l(8D000007): LDR SB, MT, MOD0 [Graphics] |
0115 | l(40D8020C): ADD R0, SB, 20CH [data] |
0116 | l .FIXUP D |
0116 | l(8D400002): LDR SB, MT, MOD4 [Texts] |
0117 | l(41D80005): ADD R1, SB, VAR5 |
0118 | m(82E00008): LDR R2, SP, 8H |
0119 | m(D10FE14C): BLEQ MT [trap=4, pos=4065] |
011A | n(82200004): LDR R2, R2, 4H |
011B | o(43000005): MOV R3, R0, 5H |
011C | p .FIXUP P |
011C | p(F741E009): BL MOD4 [Texts] PROC30 |
011D | q .FIXUP D |
011D | q(8D000007): LDR SB, MT, MOD0 [Graphics] |
011E | q(40D8020C): ADD R0, SB, 20CH [data] |
011F | q .FIXUP D |
011F | q(8D400002): LDR SB, MT, MOD4 [Texts] |
0120 | q(41D80005): ADD R1, SB, VAR5 |
0121 | r(82E00008): LDR R2, SP, 8H |
0122 | r(D10FFF4C): BLEQ MT [trap=4, pos=4095] |
0123 | s(82200008): LDR R2, R2, 8H |
0124 | t(43000005): MOV R3, R0, 5H |
0125 | u .FIXUP P |
0125 | u(F741E009): BL MOD4 [Texts] PROC30 |
0126 | v .FIXUP D |
0126 | v(8D000007): LDR SB, MT, MOD0 [Graphics] |
0127 | v(40D8020C): ADD R0, SB, 20CH [data] |
0128 | v .FIXUP D |
0128 | v(8D400002): LDR SB, MT, MOD4 [Texts] |
0129 | v(41D80005): ADD R1, SB, VAR5 |
012A | w(82E00008): LDR R2, SP, 8H |
012B | w(D1101D4C): BLEQ MT [trap=4, pos=4125] |
012C | x(8220000C): LDR R2, R2, CH |
012D | y(43000005): MOV R3, R0, 5H |
012E | z .FIXUP P |
012E | z(F741E009): BL MOD4 [Texts] PROC30 |
| Texts.Write(XW,a "/")b;c SYSTEM.GET(ORD(obj)-d8,e tag);f Texts.WriteHex(XW,g tag)h;i |
012F | a .FIXUP D |
012F | a(8D000007): LDR SB, MT, MOD0 [Graphics] |
0130 | a(40D8020C): ADD R0, SB, 20CH [data] |
0131 | a .FIXUP D |
0131 | a(8D400002): LDR SB, MT, MOD4 [Texts] |
0132 | a(41D80005): ADD R1, SB, VAR5 |
0133 | b(4200002F): MOV R2, R0, 2FH |
0134 | c .FIXUP P |
0134 | c(F741B006): BL MOD4 [Texts] PROC27 |
0135 | d(80E00008): LDR R0, SP, 8H |
0136 | e(40090008): SUB R0, R0, 8H |
0137 | f(80000000): LDR R0, R0, 0H |
0138 | f(A0E0000C): STR R0, SP, CH |
0139 | g .FIXUP D |
0139 | g(8D000008): LDR SB, MT, MOD0 [Graphics] |
013A | g(40D8020C): ADD R0, SB, 20CH [data] |
013B | g .FIXUP D |
013B | g(8D400002): LDR SB, MT, MOD4 [Texts] |
013C | g(41D80005): ADD R1, SB, VAR5 |
013D | h(82E0000C): LDR R2, SP, CH |
013E | i .FIXUP P |
013E | i(F741F00A): BL MOD4 [Texts] PROC31 |
| SYSTEM.GET(ORD(obj)-j4,k tag);l Texts.WriteHex(XW,m tag)n;o Texts.WriteLn(XW)p;q obj := obj.nextr |
013F | j(80E00008): LDR R0, SP, 8H |
0140 | k(40090004): SUB R0, R0, 4H |
0141 | l(80000000): LDR R0, R0, 0H |
0142 | l(A0E0000C): STR R0, SP, CH |
0143 | m .FIXUP D |
0143 | m(8D000008): LDR SB, MT, MOD0 [Graphics] |
0144 | m(40D8020C): ADD R0, SB, 20CH [data] |
0145 | m .FIXUP D |
0145 | m(8D400002): LDR SB, MT, MOD4 [Texts] |
0146 | m(41D80005): ADD R1, SB, VAR5 |
0147 | n(82E0000C): LDR R2, SP, CH |
0148 | o .FIXUP P |
0148 | o(F741F00A): BL MOD4 [Texts] PROC31 |
0149 | p .FIXUP D |
0149 | p(8D000004): LDR SB, MT, MOD0 [Graphics] |
014A | p(40D8020C): ADD R0, SB, 20CH [data] |
014B | p .FIXUP D |
014B | p(8D400002): LDR SB, MT, MOD4 [Texts] |
014C | p(41D80005): ADD R1, SB, VAR5 |
014D | q .FIXUP P |
014D | q(F741C005): BL MOD4 [Texts] PROC28 |
014E | r(80E00008): LDR R0, SP, 8H |
014F | r(D110D34C): BLEQ MT [trap=4, pos=4307] |
| ENDs ; |
0150 | s(80000018): LDR R0, R0, 18H |
0151 | s(A0E00008): STR R0, SP, 8H |
0152 | s(E7FFFFA4): B -92 [00F7H] |
| Texts.Append(Oberon.Log,t XW.buf)u |
0153 | t .FIXUP D |
0153 | t(8D500008): LDR SB, MT, MOD5 [Oberon] |
0154 | t(80D0000D): LDR R0, SB, VAR13 |
0155 | u .FIXUP D |
0155 | u(8D000002): LDR SB, MT, MOD0 [Graphics] |
0156 | u(81D0020C): LDR R1, SB, 20CH [data] |
| ENDv List; |
0157 | v .FIXUP P |
0157 | v(F740E00A): BL MOD4 [Texts] PROC14 |
0158 | v(8FE00000): LDR LNK, SP, 0H |
0159 | v(4EE80010): ADD SP, SP, 10H |
015A | v(C700000F): B LNK |
| |
| (*----------------procedures operating on selection -------------------*) |
| |
| PROCEDURE Deselect*(G: Graph); |
| VAR obj: Object; |
| BEGINw obj := G.firstx;y G.selz := NIL;a G.timeb := 0;c |
015B | w .PROC 28 |
015B | w(4EE9000C): SUB SP, SP, CH |
015C | w(AFE00000): STR LNK, SP, 0H |
015D | w(A0E00004): STR R0, SP, 4H |
015E | x(80E00004): LDR R0, SP, 4H |
015F | x(D111A94C): BLEQ MT [trap=4, pos=4521] |
0160 | y(80000008): LDR R0, R0, 8H |
0161 | y(A0E00008): STR R0, SP, 8H |
0162 | z(80E00004): LDR R0, SP, 4H |
0163 | z(D111B04C): BLEQ MT [trap=4, pos=4528] |
0164 | a(41000000): MOV R1, R0, 0H |
0165 | a(A1000004): STR R1, R0, 4H |
0166 | b(80E00004): LDR R0, SP, 4H |
0167 | b(D111BF4C): BLEQ MT [trap=4, pos=4543] |
0168 | c(41000000): MOV R1, R0, 0H |
0169 | c(A1000000): STR R1, R0, 0H |
| WHILE obj # NIL DOd obj.selectede := FALSE;f obj := obj.nextg ENDh |
016A | d(80E00008): LDR R0, SP, 8H |
016B | d(E1000009): BEQ 9 [0175H] |
016C | e(80E00008): LDR R0, SP, 8H |
016D | e(D111E94C): BLEQ MT [trap=4, pos=4585] |
016E | f(41000000): MOV R1, R0, 0H |
016F | f(B1000011): STR R1, R0, 11H |
0170 | g(80E00008): LDR R0, SP, 8H |
0171 | g(D112034C): BLEQ MT [trap=4, pos=4611] |
0172 | h(80000018): LDR R0, R0, 18H |
0173 | h(A0E00008): STR R0, SP, 8H |
0174 | h(E7FFFFF5): B -11 [016AH] |
| ENDi Deselect; |
0175 | i(8FE00000): LDR LNK, SP, 0H |
0176 | i(4EE8000C): ADD SP, SP, CH |
0177 | i(C700000F): B LNK |
| |
| PROCEDURE DrawSel*(G: Graph; VAR M: Msg); |
| VAR obj: Object; |
| BEGINj obj := G.firstk;l |
0178 | j .PROC 29 |
0178 | j(4EE90014): SUB SP, SP, 14H |
0179 | j(AFE00000): STR LNK, SP, 0H |
017A | j(A0E00004): STR R0, SP, 4H |
017B | j(A1E00008): STR R1, SP, 8H |
017C | j(A2E0000C): STR R2, SP, CH |
017D | k(80E00004): LDR R0, SP, 4H |
017E | k(D112704C): BLEQ MT [trap=4, pos=4720] |
017F | l(80000008): LDR R0, R0, 8H |
0180 | l(A0E00010): STR R0, SP, 10H |
| WHILE obj # NIL DOm |
0181 | m(80E00010): LDR R0, SP, 10H |
0182 | m(E1000017): BEQ 23 [019AH] |
| IF obj.selectedn THENo obj.dop.drawq(objr,s M)t ENDu ; |
0183 | n(80E00010): LDR R0, SP, 10H |
0184 | n(D1129E4C): BLEQ MT [trap=4, pos=4766] |
0185 | o(90000011): LDR R0, R0, 11H |
0186 | o(E100000E): BEQ 14 [0195H] |
0187 | p(80E00010): LDR R0, SP, 10H |
0188 | p(D112AA4C): BLEQ MT [trap=4, pos=4778] |
0189 | q(80000014): LDR R0, R0, 14H |
018A | q(D112AF4C): BLEQ MT [trap=4, pos=4783] |
018B | r(80000048): LDR R0, R0, 48H |
018C | r(4EE90004): SUB SP, SP, 4H |
018D | r(A0E00000): STR R0, SP, 0H |
018E | s(80E00014): LDR R0, SP, 14H |
018F | t(81E0000C): LDR R1, SP, CH |
0190 | t(82E00010): LDR R2, SP, 10H |
0191 | u(83E00000): LDR R3, SP, 0H |
0192 | u(4EE80004): ADD SP, SP, 4H |
0193 | u(D112BB5C): BLEQ MT [trap=5, pos=4795] |
0194 | u(D7000003): BL R3 |
| obj := obj.nextv |
0195 | v(80E00010): LDR R0, SP, 10H |
0196 | v(D112D34C): BLEQ MT [trap=4, pos=4819] |
| ENDw |
0197 | w(80000018): LDR R0, R0, 18H |
0198 | w(A0E00010): STR R0, SP, 10H |
0199 | w(E7FFFFE7): B -25 [0181H] |
| ENDx DrawSel; |
019A | x(8FE00000): LDR LNK, SP, 0H |
019B | x(4EE80014): ADD SP, SP, 14H |
019C | x(C700000F): B LNK |
| |
| PROCEDURE Change*(G: Graph; VAR M: Msg); |
| VAR obj: Object; |
| BEGINy obj := G.firstz;a G.changedb := TRUE;c |
019D | y .PROC 30 |
019D | y(4EE90014): SUB SP, SP, 14H |
019E | y(AFE00000): STR LNK, SP, 0H |
019F | y(A0E00004): STR R0, SP, 4H |
01A0 | y(A1E00008): STR R1, SP, 8H |
01A1 | y(A2E0000C): STR R2, SP, CH |
01A2 | z(80E00004): LDR R0, SP, 4H |
01A3 | z(D113424C): BLEQ MT [trap=4, pos=4930] |
01A4 | a(80000008): LDR R0, R0, 8H |
01A5 | a(A0E00010): STR R0, SP, 10H |
01A6 | b(80E00004): LDR R0, SP, 4H |
01A7 | b(D1134D4C): BLEQ MT [trap=4, pos=4941] |
01A8 | c(41000001): MOV R1, R0, 1H |
01A9 | c(B100000C): STR R1, R0, CH |
| WHILE obj # NIL DOd |
01AA | d(80E00010): LDR R0, SP, 10H |
01AB | d(E1000017): BEQ 23 [01C3H] |
| IF obj.selectede THENf obj.dog.changeh(obji,j M)k ENDl ; |
01AC | e(80E00010): LDR R0, SP, 10H |
01AD | e(D113834C): BLEQ MT [trap=4, pos=4995] |
01AE | f(90000011): LDR R0, R0, 11H |
01AF | f(E100000E): BEQ 14 [01BEH] |
01B0 | g(80E00010): LDR R0, SP, 10H |
01B1 | g(D1138F4C): BLEQ MT [trap=4, pos=5007] |
01B2 | h(80000014): LDR R0, R0, 14H |
01B3 | h(D113964C): BLEQ MT [trap=4, pos=5014] |
01B4 | i(8000004C): LDR R0, R0, 4CH |
01B5 | i(4EE90004): SUB SP, SP, 4H |
01B6 | i(A0E00000): STR R0, SP, 0H |
01B7 | j(80E00014): LDR R0, SP, 14H |
01B8 | k(81E0000C): LDR R1, SP, CH |
01B9 | k(82E00010): LDR R2, SP, 10H |
01BA | l(83E00000): LDR R3, SP, 0H |
01BB | l(4EE80004): ADD SP, SP, 4H |
01BC | l(D113A25C): BLEQ MT [trap=5, pos=5026] |
01BD | l(D7000003): BL R3 |
| obj := obj.nextm |
01BE | m(80E00010): LDR R0, SP, 10H |
01BF | m(D113BA4C): BLEQ MT [trap=4, pos=5050] |
| ENDn |
01C0 | n(80000018): LDR R0, R0, 18H |
01C1 | n(A0E00010): STR R0, SP, 10H |
01C2 | n(E7FFFFE7): B -25 [01AAH] |
| ENDo Change; |
01C3 | o(8FE00000): LDR LNK, SP, 0H |
01C4 | o(4EE80014): ADD SP, SP, 14H |
01C5 | o(C700000F): B LNK |
| |
| PROCEDURE Move*(G: Graph; dx, dy: INTEGER); |
| VAR obj, ob0: Object; x0, x1, y0, y1: INTEGER; |
| BEGINp obj := G.firstq;r G.changeds := TRUE;t |
01C6 | p .PROC 31 |
01C6 | p(4EE90028): SUB SP, SP, 28H |
01C7 | p(AFE00000): STR LNK, SP, 0H |
01C8 | p(A0E00004): STR R0, SP, 4H |
01C9 | p(A1E00008): STR R1, SP, 8H |
01CA | p(A2E0000C): STR R2, SP, CH |
01CB | q(80E00004): LDR R0, SP, 4H |
01CC | q(D114494C): BLEQ MT [trap=4, pos=5193] |
01CD | r(80000008): LDR R0, R0, 8H |
01CE | r(A0E00010): STR R0, SP, 10H |
01CF | s(80E00004): LDR R0, SP, 4H |
01D0 | s(D114544C): BLEQ MT [trap=4, pos=5204] |
01D1 | t(41000001): MOV R1, R0, 1H |
01D2 | t(B100000C): STR R1, R0, CH |
| WHILE obj # NIL DOu |
01D3 | u(80E00010): LDR R0, SP, 10H |
01D4 | u(E10000FB): BEQ 251 [02D0H] |
| IF obj.selectedv & ~w(obj IS Caption)x THENy |
01D5 | v(80E00010): LDR R0, SP, 10H |
01D6 | v(D1148A4C): BLEQ MT [trap=4, pos=5258] |
01D7 | w(90000011): LDR R0, R0, 11H |
01D8 | w(E10000F2): BEQ 242 [02CBH] |
01D9 | x(80E00010): LDR R0, SP, 10H |
01DA | x(E1000005): BEQ 5 [01E0H] |
01DB | x(810FFFF8): LDR R1, R0, FFFFFFF8H |
01DC | x(81100004): LDR R1, R1, 4H |
01DD | x .FIXUP D |
01DD | x(8D000088): LDR SB, MT, MOD0 [Graphics] |
01DE | x(42D8015C): ADD R2, SB, 15CH [data] |
01DF | x(02290001): SUB R2, R2, R1 |
01E0 | y(E10000EA): BEQ 234 [02CBH] |
| x0 := obj.xz;a x1 := obj.wb + x0;c y0 := obj.yd;e y1 := obj.hf + y0;g |
01E1 | z(80E00010): LDR R0, SP, 10H |
01E2 | z(D114B74C): BLEQ MT [trap=4, pos=5303] |
01E3 | a(80000000): LDR R0, R0, 0H |
01E4 | a(A0E00018): STR R0, SP, 18H |
01E5 | b(80E00010): LDR R0, SP, 10H |
01E6 | b(D114C44C): BLEQ MT [trap=4, pos=5316] |
01E7 | c(80000008): LDR R0, R0, 8H |
01E8 | c(81E00018): LDR R1, SP, 18H |
01E9 | c(00080001): ADD R0, R0, R1 |
01EA | c(A0E0001C): STR R0, SP, 1CH |
01EB | d(80E00010): LDR R0, SP, 10H |
01EC | d(D114D64C): BLEQ MT [trap=4, pos=5334] |
01ED | e(80000004): LDR R0, R0, 4H |
01EE | e(A0E00020): STR R0, SP, 20H |
01EF | f(80E00010): LDR R0, SP, 10H |
01F0 | f(D114E34C): BLEQ MT [trap=4, pos=5347] |
01F1 | g(8000000C): LDR R0, R0, CH |
01F2 | g(81E00020): LDR R1, SP, 20H |
01F3 | g(00080001): ADD R0, R0, R1 |
01F4 | g(A0E00024): STR R0, SP, 24H |
| IF dx = 0 THENh (*vertical move*) |
01F5 | h(80E00008): LDR R0, SP, 8H |
01F6 | h(E900006A): BNE 106 [0261H] |
| ob0 := G.firsti;j |
01F7 | i(80E00004): LDR R0, SP, 4H |
01F8 | i(D1152B4C): BLEQ MT [trap=4, pos=5419] |
01F9 | j(80000008): LDR R0, R0, 8H |
01FA | j(A0E00014): STR R0, SP, 14H |
| WHILE ob0 # NIL DOk |
01FB | k(80E00014): LDR R0, SP, 14H |
01FC | k(E1000063): BEQ 99 [0260H] |
| IF ~ob0.selectedl &m (nob0 IS Line)o & (px0 <= ob0.xq)r & (sob0.xt <= x1)u & (vob0.ww < ob0.hx)y THENz |
01FD | l(80E00014): LDR R0, SP, 14H |
01FE | l(D115664C): BLEQ MT [trap=4, pos=5478] |
01FF | m(90000011): LDR R0, R0, 11H |
0200 | n(E900005A): BNE 90 [025BH] |
0201 | o(80E00014): LDR R0, SP, 14H |
0202 | o(E1000005): BEQ 5 [0208H] |
0203 | o(810FFFF8): LDR R1, R0, FFFFFFF8H |
0204 | o(81100004): LDR R1, R1, 4H |
0205 | o .FIXUP D |
0205 | o(8D000028): LDR SB, MT, MOD0 [Graphics] |
0206 | o(42D80140): ADD R2, SB, 140H [data] |
0207 | o(02290001): SUB R2, R2, R1 |
0208 | p(E9000052): BNE 82 [025BH] |
0209 | q(80E00014): LDR R0, SP, 14H |
020A | q(D115854C): BLEQ MT [trap=4, pos=5509] |
020B | r(81E00018): LDR R1, SP, 18H |
020C | r(80000000): LDR R0, R0, 0H |
020D | r(01190000): SUB R1, R1, R0 |
020E | s(EE00004C): BGT 76 [025BH] |
020F | t(80E00014): LDR R0, SP, 14H |
0210 | t(D1158F4C): BLEQ MT [trap=4, pos=5519] |
0211 | u(80000000): LDR R0, R0, 0H |
0212 | u(81E0001C): LDR R1, SP, 1CH |
0213 | u(00090001): SUB R0, R0, R1 |
0214 | v(EE000046): BGT 70 [025BH] |
0215 | w(80E00014): LDR R0, SP, 14H |
0216 | w(D1159F4C): BLEQ MT [trap=4, pos=5535] |
0217 | x(81E00014): LDR R1, SP, 14H |
0218 | x(D115A74C): BLEQ MT [trap=4, pos=5543] |
0219 | y(80000008): LDR R0, R0, 8H |
021A | y(8110000C): LDR R1, R1, CH |
021B | y(00090001): SUB R0, R0, R1 |
021C | z(ED00003E): BGE 62 [025BH] |
| IF (y0 <= ob0.ya)b & (cob0.yd <= y1)e THENf |
021D | a(80E00014): LDR R0, SP, 14H |
021E | a(D115CB4C): BLEQ MT [trap=4, pos=5579] |
021F | b(81E00020): LDR R1, SP, 20H |
0220 | b(80000004): LDR R0, R0, 4H |
0221 | b(01190000): SUB R1, R1, R0 |
0222 | c(EE000019): BGT 25 [023CH] |
0223 | d(80E00014): LDR R0, SP, 14H |
0224 | d(D115D54C): BLEQ MT [trap=4, pos=5589] |
0225 | e(80000004): LDR R0, R0, 4H |
0226 | e(81E00024): LDR R1, SP, 24H |
0227 | e(00090001): SUB R0, R0, R1 |
0228 | f(EE000013): BGT 19 [023CH] |
| INC(ob0.yg, dy);h DEC(ob0.hi, dy);j ob0.markedk := TRUE |
0229 | g(80E00014): LDR R0, SP, 14H |
022A | g(D115FB4C): BLEQ MT [trap=4, pos=5627] |
022B | h(40080004): ADD R0, R0, 4H |
022C | h(81000000): LDR R1, R0, 0H |
022D | h(82E0000C): LDR R2, SP, CH |
022E | h(01180002): ADD R1, R1, R2 |
022F | h(A1000000): STR R1, R0, 0H |
0230 | i(80E00014): LDR R0, SP, 14H |
0231 | i(D1160B4C): BLEQ MT [trap=4, pos=5643] |
0232 | j(4008000C): ADD R0, R0, CH |
0233 | j(81000000): LDR R1, R0, 0H |
0234 | j(82E0000C): LDR R2, SP, CH |
0235 | j(01190002): SUB R1, R1, R2 |
0236 | j(A1000000): STR R1, R0, 0H |
0237 | k(80E00014): LDR R0, SP, 14H |
0238 | k(D1161C4C): BLEQ MT [trap=4, pos=5660] |
| ELSIFl (my0 <= ob0.yn + ob0.ho)p & (qob0.yr + ob0.hs <=t y1)u THENv |
0239 | l(41000001): MOV R1, R0, 1H |
023A | l(B1000012): STR R1, R0, 12H |
023B | m(E700001F): B 31 [025BH] |
023C | n(80E00014): LDR R0, SP, 14H |
023D | n(D116454C): BLEQ MT [trap=4, pos=5701] |
023E | o(81E00014): LDR R1, SP, 14H |
023F | o(D1164D4C): BLEQ MT [trap=4, pos=5709] |
0240 | p(80000004): LDR R0, R0, 4H |
0241 | p(8110000C): LDR R1, R1, CH |
0242 | p(00080001): ADD R0, R0, R1 |
0243 | p(81E00020): LDR R1, SP, 20H |
0244 | p(01190000): SUB R1, R1, R0 |
0245 | q(EE000015): BGT 21 [025BH] |
0246 | r(80E00014): LDR R0, SP, 14H |
0247 | r(D116574C): BLEQ MT [trap=4, pos=5719] |
0248 | s(81E00014): LDR R1, SP, 14H |
0249 | s(D1165F4C): BLEQ MT [trap=4, pos=5727] |
024A | t(80000004): LDR R0, R0, 4H |
024B | t(8110000C): LDR R1, R1, CH |
024C | t(00080001): ADD R0, R0, R1 |
024D | u(81E00024): LDR R1, SP, 24H |
024E | u(00090001): SUB R0, R0, R1 |
024F | v(EE00000B): BGT 11 [025BH] |
| INC(ob0.hw, dy);x ob0.markedy := TRUE |
0250 | w(80E00014): LDR R0, SP, 14H |
0251 | w(D116854C): BLEQ MT [trap=4, pos=5765] |
0252 | x(4008000C): ADD R0, R0, CH |
0253 | x(81000000): LDR R1, R0, 0H |
0254 | x(82E0000C): LDR R2, SP, CH |
0255 | x(01180002): ADD R1, R1, R2 |
0256 | x(A1000000): STR R1, R0, 0H |
0257 | y(80E00014): LDR R0, SP, 14H |
0258 | y(D116964C): BLEQ MT [trap=4, pos=5782] |
| ENDz |
0259 | z(41000001): MOV R1, R0, 1H |
025A | z(B1000012): STR R1, R0, 12H |
| END ; |
| ob0 := ob0.nexta |
025B | a(80E00014): LDR R0, SP, 14H |
025C | a(D116DE4C): BLEQ MT [trap=4, pos=5854] |
| ENDb |
025D | b(80000018): LDR R0, R0, 18H |
025E | b(A0E00014): STR R0, SP, 14H |
025F | b(E7FFFF9B): B -101 [01FBH] |
| ELSIF dyc = 0 THENd (*horizontal move*) |
0260 | c(E700006A): B 106 [02CBH] |
0261 | d(80E0000C): LDR R0, SP, CH |
0262 | d(E9000068): BNE 104 [02CBH] |
| ob0 := G.firste;f |
0263 | e(80E00004): LDR R0, SP, 4H |
0264 | e(D117334C): BLEQ MT [trap=4, pos=5939] |
0265 | f(80000008): LDR R0, R0, 8H |
0266 | f(A0E00014): STR R0, SP, 14H |
| WHILE ob0 # NIL DOg |
0267 | g(80E00014): LDR R0, SP, 14H |
0268 | g(E1000062): BEQ 98 [02CBH] |
| IF ~ob0.selectedh &i (job0 IS Line)k & (ly0 <= ob0.ym)n & (oob0.yp <= y1)q & (rob0.hs < ob0.wt)u THENv |
0269 | h(80E00014): LDR R0, SP, 14H |
026A | h(D1176E4C): BLEQ MT [trap=4, pos=5998] |
026B | i(90000011): LDR R0, R0, 11H |
026C | j(E9000059): BNE 89 [02C6H] |
026D | k(80E00014): LDR R0, SP, 14H |
026E | k(E1000005): BEQ 5 [0274H] |
026F | k(810FFFF8): LDR R1, R0, FFFFFFF8H |
0270 | k(81100004): LDR R1, R1, 4H |
0271 | k .FIXUP D |
0271 | k(8D00006C): LDR SB, MT, MOD0 [Graphics] |
0272 | k(42D80140): ADD R2, SB, 140H [data] |
0273 | k(02290001): SUB R2, R2, R1 |
0274 | l(E9000051): BNE 81 [02C6H] |
0275 | m(80E00014): LDR R0, SP, 14H |
0276 | m(D1178D4C): BLEQ MT [trap=4, pos=6029] |
0277 | n(81E00020): LDR R1, SP, 20H |
0278 | n(80000004): LDR R0, R0, 4H |
0279 | n(01190000): SUB R1, R1, R0 |
027A | o(EE00004B): BGT 75 [02C6H] |
027B | p(80E00014): LDR R0, SP, 14H |
027C | p(D117974C): BLEQ MT [trap=4, pos=6039] |
027D | q(80000004): LDR R0, R0, 4H |
027E | q(81E00024): LDR R1, SP, 24H |
027F | q(00090001): SUB R0, R0, R1 |
0280 | r(EE000045): BGT 69 [02C6H] |
0281 | s(80E00014): LDR R0, SP, 14H |
0282 | s(D117A74C): BLEQ MT [trap=4, pos=6055] |
0283 | t(81E00014): LDR R1, SP, 14H |
0284 | t(D117AF4C): BLEQ MT [trap=4, pos=6063] |
0285 | u(8000000C): LDR R0, R0, CH |
0286 | u(81100008): LDR R1, R1, 8H |
0287 | u(00090001): SUB R0, R0, R1 |
0288 | v(ED00003D): BGE 61 [02C6H] |
| IF (x0 <= ob0.xw)x & (yob0.xz <= x1)a THENb |
0289 | w(80E00014): LDR R0, SP, 14H |
028A | w(D117D34C): BLEQ MT [trap=4, pos=6099] |
028B | x(81E00018): LDR R1, SP, 18H |
028C | x(80000000): LDR R0, R0, 0H |
028D | x(01190000): SUB R1, R1, R0 |
028E | y(EE000018): BGT 24 [02A7H] |
028F | z(80E00014): LDR R0, SP, 14H |
0290 | z(D117DD4C): BLEQ MT [trap=4, pos=6109] |
0291 | a(80000000): LDR R0, R0, 0H |
0292 | a(81E0001C): LDR R1, SP, 1CH |
0293 | a(00090001): SUB R0, R0, R1 |
0294 | b(EE000012): BGT 18 [02A7H] |
| INC(ob0.xc, dx);d DEC(ob0.we, dx);f ob0.markedg := TRUE |
0295 | c(80E00014): LDR R0, SP, 14H |
0296 | c(D118034C): BLEQ MT [trap=4, pos=6147] |
0297 | d(81000000): LDR R1, R0, 0H |
0298 | d(82E00008): LDR R2, SP, 8H |
0299 | d(01180002): ADD R1, R1, R2 |
029A | d(A1000000): STR R1, R0, 0H |
029B | e(80E00014): LDR R0, SP, 14H |
029C | e(D118134C): BLEQ MT [trap=4, pos=6163] |
029D | f(40080008): ADD R0, R0, 8H |
029E | f(81000000): LDR R1, R0, 0H |
029F | f(82E00008): LDR R2, SP, 8H |
02A0 | f(01190002): SUB R1, R1, R2 |
02A1 | f(A1000000): STR R1, R0, 0H |
02A2 | g(80E00014): LDR R0, SP, 14H |
02A3 | g(D118244C): BLEQ MT [trap=4, pos=6180] |
| ELSIFh (ix0 <= ob0.xj + ob0.wk)l & (mob0.xn + ob0.wo <=p x1)q THENr |
02A4 | h(41000001): MOV R1, R0, 1H |
02A5 | h(B1000012): STR R1, R0, 12H |
02A6 | i(E700001F): B 31 [02C6H] |
02A7 | j(80E00014): LDR R0, SP, 14H |
02A8 | j(D1184D4C): BLEQ MT [trap=4, pos=6221] |
02A9 | k(81E00014): LDR R1, SP, 14H |
02AA | k(D118554C): BLEQ MT [trap=4, pos=6229] |
02AB | l(80000000): LDR R0, R0, 0H |
02AC | l(81100008): LDR R1, R1, 8H |
02AD | l(00080001): ADD R0, R0, R1 |
02AE | l(81E00018): LDR R1, SP, 18H |
02AF | l(01190000): SUB R1, R1, R0 |
02B0 | m(EE000015): BGT 21 [02C6H] |
02B1 | n(80E00014): LDR R0, SP, 14H |
02B2 | n(D1185F4C): BLEQ MT [trap=4, pos=6239] |
02B3 | o(81E00014): LDR R1, SP, 14H |
02B4 | o(D118674C): BLEQ MT [trap=4, pos=6247] |
02B5 | p(80000000): LDR R0, R0, 0H |
02B6 | p(81100008): LDR R1, R1, 8H |
02B7 | p(00080001): ADD R0, R0, R1 |
02B8 | q(81E0001C): LDR R1, SP, 1CH |
02B9 | q(00090001): SUB R0, R0, R1 |
02BA | r(EE00000B): BGT 11 [02C6H] |
| INC(ob0.ws, dx);t ob0.markedu := TRUE |
02BB | s(80E00014): LDR R0, SP, 14H |
02BC | s(D1188D4C): BLEQ MT [trap=4, pos=6285] |
02BD | t(40080008): ADD R0, R0, 8H |
02BE | t(81000000): LDR R1, R0, 0H |
02BF | t(82E00008): LDR R2, SP, 8H |
02C0 | t(01180002): ADD R1, R1, R2 |
02C1 | t(A1000000): STR R1, R0, 0H |
02C2 | u(80E00014): LDR R0, SP, 14H |
02C3 | u(D1189E4C): BLEQ MT [trap=4, pos=6302] |
| ENDv |
02C4 | v(41000001): MOV R1, R0, 1H |
02C5 | v(B1000012): STR R1, R0, 12H |
| END ; |
| ob0 := ob0.nextw |
02C6 | w(80E00014): LDR R0, SP, 14H |
02C7 | w(D118E64C): BLEQ MT [trap=4, pos=6374] |
| ENDx |
02C8 | x(80000018): LDR R0, R0, 18H |
02C9 | x(A0E00014): STR R0, SP, 14H |
02CA | x(E7FFFF9C): B -100 [0267H] |
| END |
| END ; |
| obj := obj.nexty |
02CB | y(80E00010): LDR R0, SP, 10H |
02CC | y(D119224C): BLEQ MT [trap=4, pos=6434] |
| ENDz ; |
02CD | z(80000018): LDR R0, R0, 18H |
02CE | z(A0E00010): STR R0, SP, 10H |
02CF | z(E7FFFF03): B -253 [01D3H] |
| obj := G.firsta;b (*now move*) |
02D0 | a(80E00004): LDR R0, SP, 4H |
02D1 | a(D1193F4C): BLEQ MT [trap=4, pos=6463] |
02D2 | b(80000008): LDR R0, R0, 8H |
02D3 | b(A0E00010): STR R0, SP, 10H |
| WHILE obj # NIL DOc |
02D4 | c(80E00010): LDR R0, SP, 10H |
02D5 | c(E100001A): BEQ 26 [02F0H] |
| IF obj.selectedd THENe INC(obj.xf, dx);g INC(obj.yh, dy) ENDi ; |
02D6 | d(80E00010): LDR R0, SP, 10H |
02D7 | d(D1197A4C): BLEQ MT [trap=4, pos=6522] |
02D8 | e(90000011): LDR R0, R0, 11H |
02D9 | e(E100000D): BEQ 13 [02E7H] |
02DA | f(80E00010): LDR R0, SP, 10H |
02DB | f(D119894C): BLEQ MT [trap=4, pos=6537] |
02DC | g(81000000): LDR R1, R0, 0H |
02DD | g(82E00008): LDR R2, SP, 8H |
02DE | g(01180002): ADD R1, R1, R2 |
02DF | g(A1000000): STR R1, R0, 0H |
02E0 | h(80E00010): LDR R0, SP, 10H |
02E1 | h(D119994C): BLEQ MT [trap=4, pos=6553] |
02E2 | i(40080004): ADD R0, R0, 4H |
02E3 | i(81000000): LDR R1, R0, 0H |
02E4 | i(82E0000C): LDR R2, SP, CH |
02E5 | i(01180002): ADD R1, R1, R2 |
02E6 | i(A1000000): STR R1, R0, 0H |
| obj.markedj := FALSE;k obj := obj.nextl |
02E7 | j(80E00010): LDR R0, SP, 10H |
02E8 | j(D119B54C): BLEQ MT [trap=4, pos=6581] |
02E9 | k(41000000): MOV R1, R0, 0H |
02EA | k(B1000012): STR R1, R0, 12H |
02EB | l(80E00010): LDR R0, SP, 10H |
02EC | l(D119CF4C): BLEQ MT [trap=4, pos=6607] |
| ENDm |
02ED | m(80000018): LDR R0, R0, 18H |
02EE | m(A0E00010): STR R0, SP, 10H |
02EF | m(E7FFFFE4): B -28 [02D4H] |
| ENDn Move; |
02F0 | n(8FE00000): LDR LNK, SP, 0H |
02F1 | n(4EE80028): ADD SP, SP, 28H |
02F2 | n(C700000F): B LNK |
| |
| PROCEDURE Copy*(Gs, Gd: Graph; dx, dy: INTEGER); |
| VAR obj: Object; |
| BEGINo obj := Gs.firstp;q Gd.changedr := TRUE;s |
02F3 | o .PROC 32 |
02F3 | o(4EE90018): SUB SP, SP, 18H |
02F4 | o(AFE00000): STR LNK, SP, 0H |
02F5 | o(A0E00004): STR R0, SP, 4H |
02F6 | o(A1E00008): STR R1, SP, 8H |
02F7 | o(A2E0000C): STR R2, SP, CH |
02F8 | o(A3E00010): STR R3, SP, 10H |
02F9 | p(80E00004): LDR R0, SP, 4H |
02FA | p(D11A444C): BLEQ MT [trap=4, pos=6724] |
02FB | q(80000008): LDR R0, R0, 8H |
02FC | q(A0E00014): STR R0, SP, 14H |
02FD | r(80E00008): LDR R0, SP, 8H |
02FE | r(D11A504C): BLEQ MT [trap=4, pos=6736] |
02FF | s(41000001): MOV R1, R0, 1H |
0300 | s(B100000C): STR R1, R0, CH |
| WHILE obj # NIL DOt |
0301 | t(80E00014): LDR R0, SP, 14H |
0302 | t(E1000037): BEQ 55 [033AH] |
| IF obj.selectedu THENv |
0303 | u(80E00014): LDR R0, SP, 14H |
0304 | u(D11A864C): BLEQ MT [trap=4, pos=6790] |
0305 | v(90000011): LDR R0, R0, 11H |
0306 | v(E100002E): BEQ 46 [0335H] |
| obj.dow.newx;y obj.doz.copya(objb,c new)d;e INC(new.xf, dx);g INC(new.yh, dy);i |
0307 | w(80E00014): LDR R0, SP, 14H |
0308 | w(D11A9A4C): BLEQ MT [trap=4, pos=6810] |
0309 | x(80000014): LDR R0, R0, 14H |
030A | x(D11A9E4C): BLEQ MT [trap=4, pos=6814] |
030B | y(80000040): LDR R0, R0, 40H |
030C | y(4EE90004): SUB SP, SP, 4H |
030D | y(A0E00000): STR R0, SP, 0H |
030E | y(80E00000): LDR R0, SP, 0H |
030F | y(4EE80004): ADD SP, SP, 4H |
0310 | y(D11A9F5C): BLEQ MT [trap=5, pos=6815] |
0311 | y(D7000000): BL R0 |
0312 | z(80E00014): LDR R0, SP, 14H |
0313 | z(D11AA64C): BLEQ MT [trap=4, pos=6822] |
0314 | a(80000014): LDR R0, R0, 14H |
0315 | a(D11AAB4C): BLEQ MT [trap=4, pos=6827] |
0316 | b(80000044): LDR R0, R0, 44H |
0317 | b(4EE90004): SUB SP, SP, 4H |
0318 | b(A0E00000): STR R0, SP, 0H |
0319 | c(80E00018): LDR R0, SP, 18H |
031A | d .FIXUP D |
031A | d(8D0000A9): LDR SB, MT, MOD0 [Graphics] |
031B | d(81D001A0): LDR R1, SB, 1A0H [data] |
031C | e(82E00000): LDR R2, SP, 0H |
031D | e(4EE80004): ADD SP, SP, 4H |
031E | e(D11AB65C): BLEQ MT [trap=5, pos=6838] |
031F | e(D7000002): BL R2 |
0320 | f .FIXUP D |
0320 | f(8D000006): LDR SB, MT, MOD0 [Graphics] |
0321 | f(80D001A0): LDR R0, SB, 1A0H [data] |
0322 | f(D11AC04C): BLEQ MT [trap=4, pos=6848] |
0323 | g(81000000): LDR R1, R0, 0H |
0324 | g(82E0000C): LDR R2, SP, CH |
0325 | g(01180002): ADD R1, R1, R2 |
0326 | g(A1000000): STR R1, R0, 0H |
0327 | h(80D001A0): LDR R0, SB, 1A0H |
0328 | h(D11AD04C): BLEQ MT [trap=4, pos=6864] |
0329 | i(40080004): ADD R0, R0, 4H |
032A | i(81000000): LDR R1, R0, 0H |
032B | i(82E00010): LDR R2, SP, 10H |
032C | i(01180002): ADD R1, R1, R2 |
032D | i(A1000000): STR R1, R0, 0H |
| obj.selectedj := FALSE;k Add(Gd,l new)m |
032E | j(80E00014): LDR R0, SP, 14H |
032F | j(D11AEB4C): BLEQ MT [trap=4, pos=6891] |
0330 | k(41000000): MOV R1, R0, 0H |
0331 | k(B1000011): STR R1, R0, 11H |
0332 | l(80E00008): LDR R0, SP, 8H |
0333 | m(81D001A0): LDR R1, SB, 1A0H |
| ENDn ; |
0334 | n(F7FFFCD4): BL -812 [0009H] |
| obj := obj.nexto |
0335 | o(80E00014): LDR R0, SP, 14H |
0336 | o(D11B244C): BLEQ MT [trap=4, pos=6948] |
| ENDp ; |
0337 | p(80000018): LDR R0, R0, 18H |
0338 | p(A0E00014): STR R0, SP, 14H |
0339 | p(E7FFFFC7): B -57 [0301H] |
| new := NIL |
| ENDq Copy; |
033A | q(40000000): MOV R0, R0, 0H |
033B | q .FIXUP D |
033B | q(8D00001B): LDR SB, MT, MOD0 [Graphics] |
033C | q(A0D001A0): STR R0, SB, 1A0H [data] |
033D | q(8FE00000): LDR LNK, SP, 0H |
033E | q(4EE80018): ADD SP, SP, 18H |
033F | q(C700000F): B LNK |
| |
| PROCEDURE Delete*(G: Graph); |
| VAR obj, pred: Object; |
| BEGINr G.sels := NIL;t G.changedu := TRUE;v obj := G.firstw;x |
0340 | r .PROC 33 |
0340 | r(4EE90010): SUB SP, SP, 10H |
0341 | r(AFE00000): STR LNK, SP, 0H |
0342 | r(A0E00004): STR R0, SP, 4H |
0343 | s(80E00004): LDR R0, SP, 4H |
0344 | s(D11B924C): BLEQ MT [trap=4, pos=7058] |
0345 | t(41000000): MOV R1, R0, 0H |
0346 | t(A1000004): STR R1, R0, 4H |
0347 | u(80E00004): LDR R0, SP, 4H |
0348 | u(D11BA44C): BLEQ MT [trap=4, pos=7076] |
0349 | v(41000001): MOV R1, R0, 1H |
034A | v(B100000C): STR R1, R0, CH |
034B | w(80E00004): LDR R0, SP, 4H |
034C | w(D11BBC4C): BLEQ MT [trap=4, pos=7100] |
034D | x(80000008): LDR R0, R0, 8H |
034E | x(A0E00008): STR R0, SP, 8H |
| WHILE (obj # NIL)y & objz.selecteda DOb obj := obj.nextc ENDd ; |
034F | y(80E00008): LDR R0, SP, 8H |
0350 | z(E1000009): BEQ 9 [035AH] |
0351 | a(80E00008): LDR R0, SP, 8H |
0352 | a(D11BE24C): BLEQ MT [trap=4, pos=7138] |
0353 | b(90000011): LDR R0, R0, 11H |
0354 | b(E1000005): BEQ 5 [035AH] |
0355 | c(80E00008): LDR R0, SP, 8H |
0356 | c(D11BF54C): BLEQ MT [trap=4, pos=7157] |
0357 | d(80000018): LDR R0, R0, 18H |
0358 | d(A0E00008): STR R0, SP, 8H |
0359 | d(E7FFFFF5): B -11 [034FH] |
| G.firste := obj;f |
035A | e(80E00004): LDR R0, SP, 4H |
035B | e(D11C074C): BLEQ MT [trap=4, pos=7175] |
035C | f(81E00008): LDR R1, SP, 8H |
035D | f(A1000008): STR R1, R0, 8H |
| IF obj # NIL THENg |
035E | g(80E00008): LDR R0, SP, 8H |
035F | g(E100001A): BEQ 26 [037AH] |
| pred := obj;h obj := obj.nexti;j |
0360 | h(80E00008): LDR R0, SP, 8H |
0361 | h(A0E0000C): STR R0, SP, CH |
0362 | i(80E00008): LDR R0, SP, 8H |
0363 | i(D11C484C): BLEQ MT [trap=4, pos=7240] |
0364 | j(80000018): LDR R0, R0, 18H |
0365 | j(A0E00008): STR R0, SP, 8H |
| WHILE obj # NIL DOk |
0366 | k(80E00008): LDR R0, SP, 8H |
0367 | k(E1000012): BEQ 18 [037AH] |
| IF obj.selectedl THENm pred.nextn := obj.nexto ELSEp predq := obj ENDr ; |
0368 | l(80E00008): LDR R0, SP, 8H |
0369 | l(D11C7A4C): BLEQ MT [trap=4, pos=7290] |
036A | m(90000011): LDR R0, R0, 11H |
036B | m(E1000007): BEQ 7 [0373H] |
036C | n(80E0000C): LDR R0, SP, CH |
036D | n(D11C894C): BLEQ MT [trap=4, pos=7305] |
036E | o(81E00008): LDR R1, SP, 8H |
036F | o(D11C954C): BLEQ MT [trap=4, pos=7317] |
0370 | p(81100018): LDR R1, R1, 18H |
0371 | p(A1000018): STR R1, R0, 18H |
0372 | q(E7000002): B 2 [0375H] |
0373 | r(80E00008): LDR R0, SP, 8H |
0374 | r(A0E0000C): STR R0, SP, CH |
| obj := obj.nexts |
0375 | s(80E00008): LDR R0, SP, 8H |
0376 | s(D11CC44C): BLEQ MT [trap=4, pos=7364] |
| ENDt |
0377 | t(80000018): LDR R0, R0, 18H |
0378 | t(A0E00008): STR R0, SP, 8H |
0379 | t(E7FFFFEC): B -20 [0366H] |
| END |
| ENDu Delete; |
037A | u(8FE00000): LDR LNK, SP, 0H |
037B | u(4EE80010): ADD SP, SP, 10H |
037C | u(C700000F): B LNK |
| |
| (* ---------------------- Storing ----------------------- *) |
| |
| PROCEDURE WMsg(s0, s1: ARRAY OF CHAR); |
| BEGINv Texts.WriteString(W,w s0)x;y Texts.WriteString(W,z s1)a;b |
037D | v(4EE90014): SUB SP, SP, 14H |
037E | v(AFE00000): STR LNK, SP, 0H |
037F | v(A0E00004): STR R0, SP, 4H |
0380 | v(A1E00008): STR R1, SP, 8H |
0381 | v(A2E0000C): STR R2, SP, CH |
0382 | v(A3E00010): STR R3, SP, 10H |
0383 | w .FIXUP D |
0383 | w(8D000048): LDR SB, MT, MOD0 [Graphics] |
0384 | w(40D801BC): ADD R0, SB, 1BCH [data] |
0385 | w .FIXUP D |
0385 | w(8D400002): LDR SB, MT, MOD4 [Texts] |
0386 | w(41D80005): ADD R1, SB, VAR5 |
0387 | x(82E00004): LDR R2, SP, 4H |
0388 | x(83E00008): LDR R3, SP, 8H |
0389 | y .FIXUP P |
0389 | y(F741D232): BL MOD4 [Texts] PROC29 |
038A | z .FIXUP D |
038A | z(8D000005): LDR SB, MT, MOD0 [Graphics] |
038B | z(40D801BC): ADD R0, SB, 1BCH [data] |
038C | z .FIXUP D |
038C | z(8D400002): LDR SB, MT, MOD4 [Texts] |
038D | z(41D80005): ADD R1, SB, VAR5 |
038E | a(82E0000C): LDR R2, SP, CH |
038F | a(83E00010): LDR R3, SP, 10H |
0390 | b .FIXUP P |
0390 | b(F741D007): BL MOD4 [Texts] PROC29 |
| Texts.WriteLn(W)c;d Texts.Append(Oberon.Log,e W.buf)f |
0391 | c .FIXUP D |
0391 | c(8D000005): LDR SB, MT, MOD0 [Graphics] |
0392 | c(40D801BC): ADD R0, SB, 1BCH [data] |
0393 | c .FIXUP D |
0393 | c(8D400002): LDR SB, MT, MOD4 [Texts] |
0394 | c(41D80005): ADD R1, SB, VAR5 |
0395 | d .FIXUP P |
0395 | d(F741C005): BL MOD4 [Texts] PROC28 |
0396 | e .FIXUP D |
0396 | e(8D500003): LDR SB, MT, MOD5 [Oberon] |
0397 | e(80D0000D): LDR R0, SB, VAR13 |
0398 | f .FIXUP D |
0398 | f(8D000002): LDR SB, MT, MOD0 [Graphics] |
0399 | f(81D001BC): LDR R1, SB, 1BCH [data] |
| ENDg WMsg; |
039A | g .FIXUP P |
039A | g(F740E005): BL MOD4 [Texts] PROC14 |
039B | g(8FE00000): LDR LNK, SP, 0H |
039C | g(4EE80014): ADD SP, SP, 14H |
039D | g(C700000F): B LNK |
| |
| PROCEDURE InitContext(VAR C: Context); |
| BEGINh C.nofonts := 0;i C.noflibs := 0;j C.nofclasses := 4;k |
039E | h(4EE9000C): SUB SP, SP, CH |
039F | h(AFE00000): STR LNK, SP, 0H |
03A0 | h(A0E00004): STR R0, SP, 4H |
03A1 | h(A1E00008): STR R1, SP, 8H |
03A2 | i(40000000): MOV R0, R0, 0H |
03A3 | i(81E00004): LDR R1, SP, 4H |
03A4 | i(A0100000): STR R0, R1, 0H |
03A5 | j(40000000): MOV R0, R0, 0H |
03A6 | j(81E00004): LDR R1, SP, 4H |
03A7 | j(A0100004): STR R0, R1, 4H |
03A8 | k(40000004): MOV R0, R0, 4H |
03A9 | k(81E00004): LDR R1, SP, 4H |
03AA | k(A0100008): STR R0, R1, 8H |
| C.class[1] := LineMethod.newl;m C.class[2] := CapMethod.newn;o C.class[3] := MacMethod.newp |
03AB | l .FIXUP D |
03AB | l(8D000013): LDR SB, MT, MOD0 [Graphics] |
03AC | l(80D001A8): LDR R0, SB, 1A8H [data] |
03AD | l(D11E524C): BLEQ MT [trap=4, pos=7762] |
03AE | m(80000040): LDR R0, R0, 40H |
03AF | m(81E00004): LDR R1, SP, 4H |
03B0 | m(A0100048): STR R0, R1, 48H |
03B1 | n(80D001AC): LDR R0, SB, 1ACH |
03B2 | n(D11E6F4C): BLEQ MT [trap=4, pos=7791] |
03B3 | o(80000040): LDR R0, R0, 40H |
03B4 | o(81E00004): LDR R1, SP, 4H |
03B5 | o(A010004C): STR R0, R1, 4CH |
03B6 | p(80D001B0): LDR R0, SB, 1B0H |
03B7 | p(D11E8C4C): BLEQ MT [trap=4, pos=7820] |
| ENDq InitContext; |
03B8 | q(80000040): LDR R0, R0, 40H |
03B9 | q(81E00004): LDR R1, SP, 4H |
03BA | q(A0100050): STR R0, R1, 50H |
03BB | q(8FE00000): LDR LNK, SP, 0H |
03BC | q(4EE8000C): ADD SP, SP, CH |
03BD | q(C700000F): B LNK |
| |
| PROCEDURE FontNo*(VAR W: Files.Rider; VAR C: Context; fnt: Fonts.Font): INTEGER; |
| VAR fno: INTEGER; |
| BEGINr fno := 0;s |
03BE | r .PROC 34 |
03BE | r(4EE9001C): SUB SP, SP, 1CH |
03BF | r(AFE00000): STR LNK, SP, 0H |
03C0 | r(A0E00004): STR R0, SP, 4H |
03C1 | r(A1E00008): STR R1, SP, 8H |
03C2 | r(A2E0000C): STR R2, SP, CH |
03C3 | r(A3E00010): STR R3, SP, 10H |
03C4 | r(A4E00014): STR R4, SP, 14H |
03C5 | s(40000000): MOV R0, R0, 0H |
03C6 | s(A0E00018): STR R0, SP, 18H |
| WHILE (fno < C.nofonts)t & (uC.font[fno]v # fnt)w DOx INC(fno) ENDy ; |
03C7 | t(80E00018): LDR R0, SP, 18H |
03C8 | t(81E0000C): LDR R1, SP, CH |
03C9 | t(81100000): LDR R1, R1, 0H |
03CA | t(00090001): SUB R0, R0, R1 |
03CB | u(ED00000E): BGE 14 [03DAH] |
03CC | v(80E00018): LDR R0, SP, 18H |
03CD | v(4109000A): SUB R1, R0, AH |
03CE | v(DA1F461C): BLCC MT [trap=1, pos=8006] |
03CF | v(40010002): LSL R0, R0, 2H |
03D0 | v(81E0000C): LDR R1, SP, CH |
03D1 | v(00180000): ADD R0, R1, R0 |
03D2 | w(8000000C): LDR R0, R0, CH |
03D3 | w(81E00014): LDR R1, SP, 14H |
03D4 | w(00090001): SUB R0, R0, R1 |
03D5 | x(E1000004): BEQ 4 [03DAH] |
03D6 | y(80E00018): LDR R0, SP, 18H |
03D7 | y(40080001): ADD R0, R0, 1H |
03D8 | y(A0E00018): STR R0, SP, 18H |
03D9 | y(E7FFFFED): B -19 [03C7H] |
| IF fno = C.nofonts THENz |
03DA | z(80E00018): LDR R0, SP, 18H |
03DB | z(81E0000C): LDR R1, SP, CH |
03DC | z(81100000): LDR R1, R1, 0H |
03DD | z(00090001): SUB R0, R0, R1 |
03DE | z(E900001E): BNE 30 [03FDH] |
| Files.WriteByte(W,a 0)b;c Files.WriteByte(W,d 0)e;f Files.WriteByte(W,g fno)h;i |
03DF | a(80E00004): LDR R0, SP, 4H |
03E0 | a(81E00008): LDR R1, SP, 8H |
03E1 | b(42000000): MOV R2, R0, 0H |
03E2 | c .FIXUP P |
03E2 | c(F7116048): BL MOD1 [Files] PROC22 |
03E3 | d(80E00004): LDR R0, SP, 4H |
03E4 | d(81E00008): LDR R1, SP, 8H |
03E5 | e(42000000): MOV R2, R0, 0H |
03E6 | f .FIXUP P |
03E6 | f(F7116004): BL MOD1 [Files] PROC22 |
03E7 | g(80E00004): LDR R0, SP, 4H |
03E8 | g(81E00008): LDR R1, SP, 8H |
03E9 | h(82E00018): LDR R2, SP, 18H |
03EA | i .FIXUP P |
03EA | i(F7116004): BL MOD1 [Files] PROC22 |
| Files.WriteString(W,j fnt.namek)l;m C.font[fno]n := fnt;o INC(C.nofonts) |
03EB | j(80E00004): LDR R0, SP, 4H |
03EC | j(81E00008): LDR R1, SP, 8H |
03ED | k(82E00014): LDR R2, SP, 14H |
03EE | k(D11FEC4C): BLEQ MT [trap=4, pos=8172] |
03EF | l(43000020): MOV R3, R0, 20H |
03F0 | m .FIXUP P |
03F0 | m(F711C006): BL MOD1 [Files] PROC28 |
03F1 | n(80E00018): LDR R0, SP, 18H |
03F2 | n(4109000A): SUB R1, R0, AH |
03F3 | n(DA1FFA1C): BLCC MT [trap=1, pos=8186] |
03F4 | n(40010002): LSL R0, R0, 2H |
03F5 | n(81E0000C): LDR R1, SP, CH |
03F6 | n(00180000): ADD R0, R1, R0 |
03F7 | o(81E00014): LDR R1, SP, 14H |
03F8 | o(A100000C): STR R1, R0, CH |
| ENDp ; |
03F9 | p(80E0000C): LDR R0, SP, CH |
03FA | p(81000000): LDR R1, R0, 0H |
03FB | p(41180001): ADD R1, R1, 1H |
03FC | p(A1000000): STR R1, R0, 0H |
| RETURN fno |
| ENDq FontNo; |
03FD | q(80E00018): LDR R0, SP, 18H |
03FE | q(8FE00000): LDR LNK, SP, 0H |
03FF | q(4EE8001C): ADD SP, SP, 1CH |
0400 | q(C700000F): B LNK |
| |
| PROCEDURE StoreElems(VAR W: Files.Rider; VAR C: Context; obj: Object); |
| VAR cno: INTEGER; |
| BEGINr |
0401 | r(4EE9001C): SUB SP, SP, 1CH |
0402 | r(AFE00000): STR LNK, SP, 0H |
0403 | r(A0E00004): STR R0, SP, 4H |
0404 | r(A1E00008): STR R1, SP, 8H |
0405 | r(A2E0000C): STR R2, SP, CH |
0406 | r(A3E00010): STR R3, SP, 10H |
0407 | r(A4E00014): STR R4, SP, 14H |
| WHILE obj # NIL DOs |
0408 | s(80E00014): LDR R0, SP, 14H |
0409 | s(E1000062): BEQ 98 [046CH] |
| cno := 1;t |
040A | t(40000001): MOV R0, R0, 1H |
040B | t(A0E00018): STR R0, SP, 18H |
| WHILE (cno < C.nofclasses)u & (vobj.dow.newx # C.class[cno]y)z DOa INC(cno) ENDb ; |
040C | u(80E00018): LDR R0, SP, 18H |
040D | u(81E0000C): LDR R1, SP, CH |
040E | u(81100008): LDR R1, R1, 8H |
040F | u(00090001): SUB R0, R0, R1 |
0410 | v(ED000012): BGE 18 [0423H] |
0411 | w(80E00014): LDR R0, SP, 14H |
0412 | w(D120F24C): BLEQ MT [trap=4, pos=8434] |
0413 | x(80000014): LDR R0, R0, 14H |
0414 | x(D120F64C): BLEQ MT [trap=4, pos=8438] |
0415 | y(81E00018): LDR R1, SP, 18H |
0416 | y(42190006): SUB R2, R1, 6H |
0417 | y(DA21051C): BLCC MT [trap=1, pos=8453] |
0418 | y(41110002): LSL R1, R1, 2H |
0419 | y(82E0000C): LDR R2, SP, CH |
041A | y(01280001): ADD R1, R2, R1 |
041B | z(80000040): LDR R0, R0, 40H |
041C | z(81100044): LDR R1, R1, 44H |
041D | z(00090001): SUB R0, R0, R1 |
041E | a(E1000004): BEQ 4 [0423H] |
041F | b(80E00018): LDR R0, SP, 18H |
0420 | b(40080001): ADD R0, R0, 1H |
0421 | b(A0E00018): STR R0, SP, 18H |
0422 | b(E7FFFFE9): B -23 [040CH] |
| IF cno = C.nofclasses THENc |
0423 | c(80E00018): LDR R0, SP, 18H |
0424 | c(81E0000C): LDR R1, SP, CH |
0425 | c(81100008): LDR R1, R1, 8H |
0426 | c(00090001): SUB R0, R0, R1 |
0427 | c(E900002E): BNE 46 [0456H] |
| Files.WriteByte(W,d 0)e;f Files.WriteByte(W,g 2)h;i Files.WriteByte(W,j cno)k;l |
0428 | d(80E00004): LDR R0, SP, 4H |
0429 | d(81E00008): LDR R1, SP, 8H |
042A | e(42000000): MOV R2, R0, 0H |
042B | f .FIXUP P |
042B | f(F711603B): BL MOD1 [Files] PROC22 |
042C | g(80E00004): LDR R0, SP, 4H |
042D | g(81E00008): LDR R1, SP, 8H |
042E | h(42000002): MOV R2, R0, 2H |
042F | i .FIXUP P |
042F | i(F7116004): BL MOD1 [Files] PROC22 |
0430 | j(80E00004): LDR R0, SP, 4H |
0431 | j(81E00008): LDR R1, SP, 8H |
0432 | k(82E00018): LDR R2, SP, 18H |
0433 | l .FIXUP P |
0433 | l(F7116004): BL MOD1 [Files] PROC22 |
| Files.WriteString(W,m obj.don.moduleo)p;q Files.WriteString(W,r obj.dos.allocatort)u;v |
0434 | m(80E00004): LDR R0, SP, 4H |
0435 | m(81E00008): LDR R1, SP, 8H |
0436 | n(82E00014): LDR R2, SP, 14H |
0437 | n(D121AC4C): BLEQ MT [trap=4, pos=8620] |
0438 | o(82200014): LDR R2, R2, 14H |
0439 | o(D121B34C): BLEQ MT [trap=4, pos=8627] |
043A | p(43000020): MOV R3, R0, 20H |
043B | q .FIXUP P |
043B | q(F711C008): BL MOD1 [Files] PROC28 |
043C | r(80E00004): LDR R0, SP, 4H |
043D | r(81E00008): LDR R1, SP, 8H |
043E | s(82E00014): LDR R2, SP, 14H |
043F | s(D121D14C): BLEQ MT [trap=4, pos=8657] |
0440 | t(82200014): LDR R2, R2, 14H |
0441 | t(D121DB4C): BLEQ MT [trap=4, pos=8667] |
0442 | u(42280020): ADD R2, R2, 20H |
0443 | u(43000020): MOV R3, R0, 20H |
0444 | v .FIXUP P |
0444 | v(F711C009): BL MOD1 [Files] PROC28 |
| C.class[cno]w := obj.dox.newy;z INC(C.nofclasses) |
0445 | w(80E00018): LDR R0, SP, 18H |
0446 | w(41090006): SUB R1, R0, 6H |
0447 | w(DA21F21C): BLCC MT [trap=1, pos=8690] |
0448 | w(40010002): LSL R0, R0, 2H |
0449 | w(81E0000C): LDR R1, SP, CH |
044A | w(00180000): ADD R0, R1, R0 |
044B | x(81E00014): LDR R1, SP, 14H |
044C | x(D121FC4C): BLEQ MT [trap=4, pos=8700] |
044D | y(81100014): LDR R1, R1, 14H |
044E | y(D122004C): BLEQ MT [trap=4, pos=8704] |
044F | z(81100040): LDR R1, R1, 40H |
0450 | z(A1000044): STR R1, R0, 44H |
| ENDa ; |
0451 | a(80E0000C): LDR R0, SP, CH |
0452 | a(40080008): ADD R0, R0, 8H |
0453 | a(81000000): LDR R1, R0, 0H |
0454 | a(41180001): ADD R1, R1, 1H |
0455 | a(A1000000): STR R1, R0, 0H |
| obj.dob.writec(objd,e cno,f W,g C)h;i obj := obj.nextj |
0456 | b(80E00014): LDR R0, SP, 14H |
0457 | b(D1222C4C): BLEQ MT [trap=4, pos=8748] |
0458 | c(80000014): LDR R0, R0, 14H |
0459 | c(D122324C): BLEQ MT [trap=4, pos=8754] |
045A | d(80000058): LDR R0, R0, 58H |
045B | d(4EE90004): SUB SP, SP, 4H |
045C | d(A0E00000): STR R0, SP, 0H |
045D | e(80E00018): LDR R0, SP, 18H |
045E | f(81E0001C): LDR R1, SP, 1CH |
045F | g(82E00008): LDR R2, SP, 8H |
0460 | g(83E0000C): LDR R3, SP, CH |
0461 | h(84E00010): LDR R4, SP, 10H |
0462 | h(85E00014): LDR R5, SP, 14H |
0463 | i(86E00000): LDR R6, SP, 0H |
0464 | i(4EE80004): ADD SP, SP, 4H |
0465 | i(D122435C): BLEQ MT [trap=5, pos=8771] |
0466 | i(D7000006): BL R6 |
0467 | j(80E00014): LDR R0, SP, 14H |
0468 | j(D122534C): BLEQ MT [trap=4, pos=8787] |
| ENDk ; |
0469 | k(80000018): LDR R0, R0, 18H |
046A | k(A0E00014): STR R0, SP, 14H |
046B | k(E7FFFF9C): B -100 [0408H] |
| Files.WriteByte(W,l 255)m |
046C | l(80E00004): LDR R0, SP, 4H |
046D | l(81E00008): LDR R1, SP, 8H |
046E | m(420000FF): MOV R2, R0, FFH |
| ENDn StoreElems; |
046F | n .FIXUP P |
046F | n(F711602B): BL MOD1 [Files] PROC22 |
0470 | n(8FE00000): LDR LNK, SP, 0H |
0471 | n(4EE8001C): ADD SP, SP, 1CH |
0472 | n(C700000F): B LNK |
| |
| PROCEDURE Store*(G: Graph; VAR W: Files.Rider); |
| VAR C: Context; |
| BEGINo InitContext(C)p;q StoreElems(W,r C,s G.firstt)u;v G.changedw := FALSE |
0473 | o .PROC 35 |
0473 | o(4EE9006C): SUB SP, SP, 6CH |
0474 | o(AFE00000): STR LNK, SP, 0H |
0475 | o(A0E00004): STR R0, SP, 4H |
0476 | o(A1E00008): STR R1, SP, 8H |
0477 | o(A2E0000C): STR R2, SP, CH |
0478 | p(40E80010): ADD R0, SP, 10H |
0479 | p .FIXUP D |
0479 | p(8D0000CE): LDR SB, MT, MOD0 [Graphics] |
047A | p(41D800E0): ADD R1, SB, E0H [data] |
047B | q(F7FFFF22): BL -222 [039EH] |
047C | r(80E00008): LDR R0, SP, 8H |
047D | r(81E0000C): LDR R1, SP, CH |
047E | s(42E80010): ADD R2, SP, 10H |
047F | s .FIXUP D |
047F | s(8D000006): LDR SB, MT, MOD0 [Graphics] |
0480 | s(43D800E0): ADD R3, SB, E0H [data] |
0481 | t(84E00004): LDR R4, SP, 4H |
0482 | t(D123034C): BLEQ MT [trap=4, pos=8963] |
0483 | u(84400008): LDR R4, R4, 8H |
0484 | v(F7FFFF7C): BL -132 [0401H] |
0485 | w(80E00004): LDR R0, SP, 4H |
0486 | w(D1230F4C): BLEQ MT [trap=4, pos=8975] |
| ENDx Store; |
0487 | x(41000000): MOV R1, R0, 0H |
0488 | x(B100000C): STR R1, R0, CH |
0489 | x(8FE00000): LDR LNK, SP, 0H |
048A | x(4EE8006C): ADD SP, SP, 6CH |
048B | x(C700000F): B LNK |
| |
| PROCEDURE WriteObj*(VAR W: Files.Rider; cno: INTEGER; obj: Object); |
| BEGINy Files.WriteByte(W,z cno)a;b Files.WriteInt(W,c obj.yd * 10000H +e obj.xf)g;h |
048C | y .PROC 36 |
048C | y(4EE90014): SUB SP, SP, 14H |
048D | y(AFE00000): STR LNK, SP, 0H |
048E | y(A0E00004): STR R0, SP, 4H |
048F | y(A1E00008): STR R1, SP, 8H |
0490 | y(A2E0000C): STR R2, SP, CH |
0491 | y(A3E00010): STR R3, SP, 10H |
0492 | z(80E00004): LDR R0, SP, 4H |
0493 | z(81E00008): LDR R1, SP, 8H |
0494 | a(82E0000C): LDR R2, SP, CH |
0495 | b .FIXUP P |
0495 | b(F7116026): BL MOD1 [Files] PROC22 |
0496 | c(80E00004): LDR R0, SP, 4H |
0497 | c(81E00008): LDR R1, SP, 8H |
0498 | d(82E00010): LDR R2, SP, 10H |
0499 | d(D123A54C): BLEQ MT [trap=4, pos=9125] |
049A | e(82200004): LDR R2, R2, 4H |
049B | e(42210010): LSL R2, R2, 10H |
049C | f(83E00010): LDR R3, SP, 10H |
049D | f(D123B64C): BLEQ MT [trap=4, pos=9142] |
049E | g(83300000): LDR R3, R3, 0H |
049F | g(02280003): ADD R2, R2, R3 |
04A0 | h .FIXUP P |
04A0 | h(F711900B): BL MOD1 [Files] PROC25 |
| Files.WriteInt(W,i obj.hj * 10000H +k obj.wl)m;n Files.WriteByte(W,o obj.colp)q |
04A1 | i(80E00004): LDR R0, SP, 4H |
04A2 | i(81E00008): LDR R1, SP, 8H |
04A3 | j(82E00010): LDR R2, SP, 10H |
04A4 | j(D123D44C): BLEQ MT [trap=4, pos=9172] |
04A5 | k(8220000C): LDR R2, R2, CH |
04A6 | k(42210010): LSL R2, R2, 10H |
04A7 | l(83E00010): LDR R3, SP, 10H |
04A8 | l(D123E54C): BLEQ MT [trap=4, pos=9189] |
04A9 | m(83300008): LDR R3, R3, 8H |
04AA | m(02280003): ADD R2, R2, R3 |
04AB | n .FIXUP P |
04AB | n(F711900B): BL MOD1 [Files] PROC25 |
04AC | o(80E00004): LDR R0, SP, 4H |
04AD | o(81E00008): LDR R1, SP, 8H |
04AE | p(82E00010): LDR R2, SP, 10H |
04AF | p(D124024C): BLEQ MT [trap=4, pos=9218] |
04B0 | q(92200010): LDR R2, R2, 10H |
| ENDr WriteObj; |
04B1 | r .FIXUP P |
04B1 | r(F7116006): BL MOD1 [Files] PROC22 |
04B2 | r(8FE00000): LDR LNK, SP, 0H |
04B3 | r(4EE80014): ADD SP, SP, 14H |
04B4 | r(C700000F): B LNK |
| |
| PROCEDURE WriteFile*(G: Graph; name: ARRAY OF CHAR); |
| VAR F: Files.File; W: Files.Rider; C: Context; |
| BEGINs F := Files.New(name)t;u Files.Set(W,v F,w 0)x;y Files.Write(W,z GraphFileId)a;b |
04B5 | s .PROC 37 |
04B5 | s(4EE90088): SUB SP, SP, 88H |
04B6 | s(AFE00000): STR LNK, SP, 0H |
04B7 | s(A0E00004): STR R0, SP, 4H |
04B8 | s(A1E00008): STR R1, SP, 8H |
04B9 | s(A2E0000C): STR R2, SP, CH |
04BA | t(80E00008): LDR R0, SP, 8H |
04BB | t(81E0000C): LDR R1, SP, CH |
04BC | u .FIXUP P |
04BC | u(F710300B): BL MOD1 [Files] PROC3 |
04BD | u(A0E00010): STR R0, SP, 10H |
04BE | v(40E80014): ADD R0, SP, 14H |
04BF | v .FIXUP D |
04BF | v(8D100040): LDR SB, MT, MOD1 [Files] |
04C0 | v(41D80001): ADD R1, SB, VAR1 |
04C1 | w(82E00010): LDR R2, SP, 10H |
04C2 | x(43000000): MOV R3, R0, 0H |
04C3 | y .FIXUP P |
04C3 | y(F710B007): BL MOD1 [Files] PROC11 |
04C4 | z(40E80014): ADD R0, SP, 14H |
04C5 | z .FIXUP D |
04C5 | z(8D100006): LDR SB, MT, MOD1 [Files] |
04C6 | z(41D80001): ADD R1, SB, VAR1 |
04C7 | a(420000FA): MOV R2, R0, FAH |
04C8 | b .FIXUP P |
04C8 | b(F7118005): BL MOD1 [Files] PROC24 |
| InitContext(C)c;d StoreElems(W,e C,f G.firstg)h;i Files.Register(F)j |
04C9 | c(40E8002C): ADD R0, SP, 2CH |
04CA | c .FIXUP D |
04CA | c(8D000005): LDR SB, MT, MOD0 [Graphics] |
04CB | c(41D800E0): ADD R1, SB, E0H [data] |
04CC | d(F7FFFED1): BL -303 [039EH] |
04CD | e(40E80014): ADD R0, SP, 14H |
04CE | e .FIXUP D |
04CE | e(8D100004): LDR SB, MT, MOD1 [Files] |
04CF | e(41D80001): ADD R1, SB, VAR1 |
04D0 | f(42E8002C): ADD R2, SP, 2CH |
04D1 | f .FIXUP D |
04D1 | f(8D000003): LDR SB, MT, MOD0 [Graphics] |
04D2 | f(43D800E0): ADD R3, SB, E0H [data] |
04D3 | g(84E00004): LDR R4, SP, 4H |
04D4 | g(D124FA4C): BLEQ MT [trap=4, pos=9466] |
04D5 | h(84400008): LDR R4, R4, 8H |
04D6 | i(F7FFFF2A): BL -214 [0401H] |
04D7 | j(80E00010): LDR R0, SP, 10H |
| ENDk WriteFile; |
04D8 | k .FIXUP P |
04D8 | k(F7104010): BL MOD1 [Files] PROC4 |
04D9 | k(8FE00000): LDR LNK, SP, 0H |
04DA | k(4EE80088): ADD SP, SP, 88H |
04DB | k(C700000F): B LNK |
| |
| PROCEDURE Print*(G: Graph; x0, y0: INTEGER); |
| VAR obj: Object; |
| BEGINl obj := G.firstm;n |
04DC | l .PROC 38 |
04DC | l(4EE90014): SUB SP, SP, 14H |
04DD | l(AFE00000): STR LNK, SP, 0H |
04DE | l(A0E00004): STR R0, SP, 4H |
04DF | l(A1E00008): STR R1, SP, 8H |
04E0 | l(A2E0000C): STR R2, SP, CH |
04E1 | m(80E00004): LDR R0, SP, 4H |
04E2 | m(D1257B4C): BLEQ MT [trap=4, pos=9595] |
04E3 | n(80000008): LDR R0, R0, 8H |
04E4 | n(A0E00010): STR R0, SP, 10H |
| WHILE obj # NIL DOo obj.dop.printq(objr,s x0,t y0)u;v obj := obj.nextw ENDx |
04E5 | o(80E00010): LDR R0, SP, 10H |
04E6 | o(E1000013): BEQ 19 [04FAH] |
04E7 | p(80E00010): LDR R0, SP, 10H |
04E8 | p(D1259A4C): BLEQ MT [trap=4, pos=9626] |
04E9 | q(80000014): LDR R0, R0, 14H |
04EA | q(D125A04C): BLEQ MT [trap=4, pos=9632] |
04EB | r(8000005C): LDR R0, R0, 5CH |
04EC | r(4EE90004): SUB SP, SP, 4H |
04ED | r(A0E00000): STR R0, SP, 0H |
04EE | s(80E00014): LDR R0, SP, 14H |
04EF | t(81E0000C): LDR R1, SP, CH |
04F0 | u(82E00010): LDR R2, SP, 10H |
04F1 | v(83E00000): LDR R3, SP, 0H |
04F2 | v(4EE80004): ADD SP, SP, 4H |
04F3 | v(D125AE5C): BLEQ MT [trap=5, pos=9646] |
04F4 | v(D7000003): BL R3 |
04F5 | w(80E00010): LDR R0, SP, 10H |
04F6 | w(D125BE4C): BLEQ MT [trap=4, pos=9662] |
04F7 | x(80000018): LDR R0, R0, 18H |
04F8 | x(A0E00010): STR R0, SP, 10H |
04F9 | x(E7FFFFEB): B -21 [04E5H] |
| ENDy Print; |
04FA | y(8FE00000): LDR LNK, SP, 0H |
04FB | y(4EE80014): ADD SP, SP, 14H |
04FC | y(C700000F): B LNK |
| |
| (* ---------------------- Loading ------------------------ *) |
| |
| PROCEDURE GetClass*(module, allocator: ARRAY OF CHAR; VAR com: Modules.Command); |
| VAR mod: Modules.Module; |
| BEGINz Modules.Load(module,a mod)b;c |
04FD | z .PROC 39 |
04FD | z(4EE9001C): SUB SP, SP, 1CH |
04FE | z(AFE00000): STR LNK, SP, 0H |
04FF | z(A0E00004): STR R0, SP, 4H |
0500 | z(A1E00008): STR R1, SP, 8H |
0501 | z(A2E0000C): STR R2, SP, CH |
0502 | z(A3E00010): STR R3, SP, 10H |
0503 | z(A4E00014): STR R4, SP, 14H |
0504 | a(80E00004): LDR R0, SP, 4H |
0505 | a(81E00008): LDR R1, SP, 8H |
0506 | b(42E80018): ADD R2, SP, 18H |
0507 | c .FIXUP P |
0507 | c(F720802F): BL MOD2 [Modules] PROC8 |
| IF mod # NIL THENd |
0508 | d(80E00018): LDR R0, SP, 18H |
0509 | d(E1000010): BEQ 16 [051AH] |
| com := Modules.ThisCommand(mod,e allocator)f;g |
050A | e(80E00018): LDR R0, SP, 18H |
050B | f(81E0000C): LDR R1, SP, CH |
050C | f(82E00010): LDR R2, SP, 10H |
050D | g .FIXUP P |
050D | g(F7209006): BL MOD2 [Modules] PROC9 |
050E | g(81E00014): LDR R1, SP, 14H |
050F | g(A0100000): STR R0, R1, 0H |
| IF com = NIL THENh WMsg(allocator,i " unknown")j ENDk |
0510 | h(80E00014): LDR R0, SP, 14H |
0511 | h(80000000): LDR R0, R0, 0H |
0512 | h(E9000006): BNE 6 [0519H] |
0513 | i(80E0000C): LDR R0, SP, CH |
0514 | i(81E00010): LDR R1, SP, 10H |
0515 | j .FIXUP D |
0515 | j(8D000044): LDR SB, MT, MOD0 [Graphics] |
0516 | j(42D80234): ADD R2, SB, 234H [" unknown"] |
0517 | j(43000009): MOV R3, R0, 9H |
0518 | k(F7FFFE64): BL -412 [037DH] |
| ELSE WMsgl(module,m " not available")n;o com := NIL |
0519 | l(E7000009): B 9 [0523H] |
051A | m(80E00004): LDR R0, SP, 4H |
051B | m(81E00008): LDR R1, SP, 8H |
051C | n .FIXUP D |
051C | n(8D000007): LDR SB, MT, MOD0 [Graphics] |
051D | n(42D80240): ADD R2, SB, 240H [" not available"] |
051E | n(4300000F): MOV R3, R0, FH |
051F | o(F7FFFE5D): BL -419 [037DH] |
| ENDp |
0520 | p(40000000): MOV R0, R0, 0H |
0521 | p(81E00014): LDR R1, SP, 14H |
0522 | p(A0100000): STR R0, R1, 0H |
| ENDq GetClass; |
0523 | q(8FE00000): LDR LNK, SP, 0H |
0524 | q(4EE8001C): ADD SP, SP, 1CH |
0525 | q(C700000F): B LNK |
| |
| PROCEDURE Font*(VAR R: Files.Rider; VAR C: Context): Fonts.Font; |
| VAR fno: BYTE; |
| BEGINr Files.ReadByte(R,s fno)t;u RETURN C.font[fno]v |
0526 | r .PROC 40 |
0526 | r(4EE90018): SUB SP, SP, 18H |
0527 | r(AFE00000): STR LNK, SP, 0H |
0528 | r(A0E00004): STR R0, SP, 4H |
0529 | r(A1E00008): STR R1, SP, 8H |
052A | r(A2E0000C): STR R2, SP, CH |
052B | r(A3E00010): STR R3, SP, 10H |
052C | s(80E00004): LDR R0, SP, 4H |
052D | s(81E00008): LDR R1, SP, 8H |
052E | t(42E80014): ADD R2, SP, 14H |
052F | u .FIXUP P |
052F | u(F710E022): BL MOD1 [Files] PROC14 |
0530 | v(90E00014): LDR R0, SP, 14H |
0531 | v(4109000A): SUB R1, R0, AH |
0532 | v(DA27FA1C): BLCC MT [trap=1, pos=10234] |
0533 | v(40010002): LSL R0, R0, 2H |
0534 | v(81E0000C): LDR R1, SP, CH |
0535 | v(00180000): ADD R0, R1, R0 |
| ENDw Font; |
0536 | w(8000000C): LDR R0, R0, CH |
0537 | w(8FE00000): LDR LNK, SP, 0H |
0538 | w(4EE80018): ADD SP, SP, 18H |
0539 | w(C700000F): B LNK |
| |
| PROCEDURE ReadObj(VAR R: Files.Rider; obj: Object); |
| VAR xy, wh: INTEGER; dmy: BYTE; |
| BEGINx Files.ReadInt(R,y xy)z;a obj.yb := xy DIV 10000H;c obj.xd := xy * 10000H DIVe 10000H;f |
053A | x(4EE9001C): SUB SP, SP, 1CH |
053B | x(AFE00000): STR LNK, SP, 0H |
053C | x(A0E00004): STR R0, SP, 4H |
053D | x(A1E00008): STR R1, SP, 8H |
053E | x(A2E0000C): STR R2, SP, CH |
053F | y(80E00004): LDR R0, SP, 4H |
0540 | y(81E00008): LDR R1, SP, 8H |
0541 | z(42E80010): ADD R2, SP, 10H |
0542 | a .FIXUP P |
0542 | a(F7111013): BL MOD1 [Files] PROC17 |
0543 | b(80E0000C): LDR R0, SP, CH |
0544 | b(D128854C): BLEQ MT [trap=4, pos=10373] |
0545 | c(81E00010): LDR R1, SP, 10H |
0546 | c(41120010): ASR R1, R1, 10H |
0547 | c(A1000004): STR R1, R0, 4H |
0548 | d(80E0000C): LDR R0, SP, CH |
0549 | d(D1289D4C): BLEQ MT [trap=4, pos=10397] |
054A | e(81E00010): LDR R1, SP, 10H |
054B | e(41110010): LSL R1, R1, 10H |
054C | f(41120010): ASR R1, R1, 10H |
054D | f(A1000000): STR R1, R0, 0H |
| Files.ReadInt(R,g wh)h;i obj.hj := wh DIV 10000H;k obj.wl := wh * 10000H DIVm 10000H;n |
054E | g(80E00004): LDR R0, SP, 4H |
054F | g(81E00008): LDR R1, SP, 8H |
0550 | h(42E80014): ADD R2, SP, 14H |
0551 | i .FIXUP P |
0551 | i(F711100F): BL MOD1 [Files] PROC17 |
0552 | j(80E0000C): LDR R0, SP, CH |
0553 | j(D128D84C): BLEQ MT [trap=4, pos=10456] |
0554 | k(81E00014): LDR R1, SP, 14H |
0555 | k(41120010): ASR R1, R1, 10H |
0556 | k(A100000C): STR R1, R0, CH |
0557 | l(80E0000C): LDR R0, SP, CH |
0558 | l(D128F04C): BLEQ MT [trap=4, pos=10480] |
0559 | m(81E00014): LDR R1, SP, 14H |
055A | m(41110010): LSL R1, R1, 10H |
055B | n(41120010): ASR R1, R1, 10H |
055C | n(A1000008): STR R1, R0, 8H |
| Files.ReadByte(R,o obj.colp)q |
055D | o(80E00004): LDR R0, SP, 4H |
055E | o(81E00008): LDR R1, SP, 8H |
055F | p(82E0000C): LDR R2, SP, CH |
0560 | p(D129294C): BLEQ MT [trap=4, pos=10537] |
0561 | q(42280010): ADD R2, R2, 10H |
| ENDr ReadObj; |
0562 | r .FIXUP P |
0562 | r(F710E011): BL MOD1 [Files] PROC14 |
0563 | r(8FE00000): LDR LNK, SP, 0H |
0564 | r(4EE8001C): ADD SP, SP, 1CH |
0565 | r(C700000F): B LNK |
| |
| PROCEDURE LoadElems(VAR R: Files.Rider; VAR C: Context; VAR fobj: Object); |
| VAR cno, m, n, len: BYTE; pos: INTEGER; |
| obj: Object; |
| fnt: Fonts.Font; |
| name, name1: ARRAY 32 OF CHAR; |
| BEGINs obj := NIL;t Files.ReadByte(R,u cno)v;w |
0566 | s(4EE90068): SUB SP, SP, 68H |
0567 | s(AFE00000): STR LNK, SP, 0H |
0568 | s(A0E00004): STR R0, SP, 4H |
0569 | s(A1E00008): STR R1, SP, 8H |
056A | s(A2E0000C): STR R2, SP, CH |
056B | s(A3E00010): STR R3, SP, 10H |
056C | s(A4E00014): STR R4, SP, 14H |
056D | t(40000000): MOV R0, R0, 0H |
056E | t(A0E00020): STR R0, SP, 20H |
056F | u(80E00004): LDR R0, SP, 4H |
0570 | u(81E00008): LDR R1, SP, 8H |
0571 | v(42E80018): ADD R2, SP, 18H |
0572 | w .FIXUP P |
0572 | w(F710E010): BL MOD1 [Files] PROC14 |
| WHILE ~R.eof &x (ycno < 255)z DOa |
0573 | x(80E00004): LDR R0, SP, 4H |
0574 | x(90000000): LDR R0, R0, 0H |
0575 | y(E90000A4): BNE 164 [061AH] |
0576 | z(90E00018): LDR R0, SP, 18H |
0577 | z(400900FF): SUB R0, R0, FFH |
0578 | a(ED0000A1): BGE 161 [061AH] |
| IF cno = 0 THENb |
0579 | b(90E00018): LDR R0, SP, 18H |
057A | b(E9000043): BNE 67 [05BEH] |
| Files.ReadByte(R,c m)d;e Files.ReadByte(R,f n)g;h Files.ReadString(R,i name)j;k |
057B | c(80E00004): LDR R0, SP, 4H |
057C | c(81E00008): LDR R1, SP, 8H |
057D | d(42E80019): ADD R2, SP, 19H |
057E | e .FIXUP P |
057E | e(F710E00C): BL MOD1 [Files] PROC14 |
057F | f(80E00004): LDR R0, SP, 4H |
0580 | f(81E00008): LDR R1, SP, 8H |
0581 | g(42E8001A): ADD R2, SP, 1AH |
0582 | h .FIXUP P |
0582 | h(F710E004): BL MOD1 [Files] PROC14 |
0583 | i(80E00004): LDR R0, SP, 4H |
0584 | i(81E00008): LDR R1, SP, 8H |
0585 | j(42E80028): ADD R2, SP, 28H |
0586 | j(43000020): MOV R3, R0, 20H |
0587 | k .FIXUP P |
0587 | k(F7114005): BL MOD1 [Files] PROC20 |
| IF m = 0 THENl fnt := Fonts.This(name)m;n C.font[n]o := fnt |
0588 | l(90E00019): LDR R0, SP, 19H |
0589 | l(E900000D): BNE 13 [0597H] |
058A | m(40E80028): ADD R0, SP, 28H |
058B | m(41000020): MOV R1, R0, 20H |
058C | n .FIXUP P |
058C | n(F7305005): BL MOD3 [Fonts] PROC5 |
058D | n(A0E00024): STR R0, SP, 24H |
058E | o(90E0001A): LDR R0, SP, 1AH |
058F | o(4109000A): SUB R1, R0, AH |
0590 | o(DA2AEE1C): BLCC MT [trap=1, pos=10990] |
0591 | o(40010002): LSL R0, R0, 2H |
0592 | o(81E0000C): LDR R1, SP, CH |
0593 | o(00180000): ADD R0, R1, R0 |
| ELSIFp mq = 1 THENr GetLib0(name,s FALSE,t C.lib[n]u)v |
0594 | p(81E00024): LDR R1, SP, 24H |
0595 | p(A100000C): STR R1, R0, CH |
0596 | q(E7000026): B 38 [05BDH] |
0597 | r(90E00019): LDR R0, SP, 19H |
0598 | r(40090001): SUB R0, R0, 1H |
0599 | r(E900000F): BNE 15 [05A9H] |
059A | s(40E80028): ADD R0, SP, 28H |
059B | s(41000020): MOV R1, R0, 20H |
059C | t(42000000): MOV R2, R0, 0H |
059D | u(93E0001A): LDR R3, SP, 1AH |
059E | u(44390004): SUB R4, R3, 4H |
059F | u(DA2B2C1C): BLCC MT [trap=1, pos=11052] |
05A0 | u(43310002): LSL R3, R3, 2H |
05A1 | u(84E0000C): LDR R4, SP, CH |
05A2 | u(03480003): ADD R3, R4, R3 |
05A3 | v(43380034): ADD R3, R3, 34H |
| ELSIFw mx = 2 THENy Files.ReadString(R,z name1)a;b GetClass(name,c name1,d C.class[n]e)f |
05A4 | w .FIXUP D |
05A4 | w(8D000088): LDR SB, MT, MOD0 [Graphics] |
05A5 | w(84D001B4): LDR R4, SB, 1B4H [data] |
05A6 | w(D12B3B5C): BLEQ MT [trap=5, pos=11067] |
05A7 | w(D7000004): BL R4 |
05A8 | x(E7000014): B 20 [05BDH] |
05A9 | y(90E00019): LDR R0, SP, 19H |
05AA | y(40090002): SUB R0, R0, 2H |
05AB | y(E9000011): BNE 17 [05BDH] |
05AC | z(80E00004): LDR R0, SP, 4H |
05AD | z(81E00008): LDR R1, SP, 8H |
05AE | a(42E80048): ADD R2, SP, 48H |
05AF | a(43000020): MOV R3, R0, 20H |
05B0 | b .FIXUP P |
05B0 | b(F7114024): BL MOD1 [Files] PROC20 |
05B1 | c(40E80028): ADD R0, SP, 28H |
05B2 | c(41000020): MOV R1, R0, 20H |
05B3 | d(42E80048): ADD R2, SP, 48H |
05B4 | d(43000020): MOV R3, R0, 20H |
05B5 | e(94E0001A): LDR R4, SP, 1AH |
05B6 | e(45490006): SUB R5, R4, 6H |
05B7 | e(DA2B831C): BLCC MT [trap=1, pos=11139] |
05B8 | e(44410002): LSL R4, R4, 2H |
05B9 | e(85E0000C): LDR R5, SP, CH |
05BA | e(04580004): ADD R4, R5, R4 |
05BB | f(44480044): ADD R4, R4, 44H |
| ENDg |
05BC | g(F7FFFF40): BL -192 [04FDH] |
| ELSIF Ch.class[cno]i # NIL THENj |
05BD | h(E7000057): B 87 [0615H] |
05BE | i(90E00018): LDR R0, SP, 18H |
05BF | i(41090006): SUB R1, R0, 6H |
05C0 | i(DA2BA91C): BLCC MT [trap=1, pos=11177] |
05C1 | i(40010002): LSL R0, R0, 2H |
05C2 | i(81E0000C): LDR R1, SP, CH |
05C3 | i(00180000): ADD R0, R1, R0 |
05C4 | j(80000044): LDR R0, R0, 44H |
05C5 | j(E1000032): BEQ 50 [05F8H] |
| C.class[cno]k;l |
05C6 | k(90E00018): LDR R0, SP, 18H |
05C7 | k(41090006): SUB R1, R0, 6H |
05C8 | k(DA2BC91C): BLCC MT [trap=1, pos=11209] |
05C9 | k(40010002): LSL R0, R0, 2H |
05CA | k(81E0000C): LDR R1, SP, CH |
05CB | k(00180000): ADD R0, R1, R0 |
05CC | l(80000044): LDR R0, R0, 44H |
05CD | l(4EE90004): SUB SP, SP, 4H |
05CE | l(A0E00000): STR R0, SP, 0H |
05CF | l(80E00000): LDR R0, SP, 0H |
05D0 | l(4EE80004): ADD SP, SP, 4H |
05D1 | l(D12BCA5C): BLEQ MT [trap=5, pos=11210] |
05D2 | l(D7000000): BL R0 |
| ReadObj(R,m new)n;o |
05D3 | m(80E00004): LDR R0, SP, 4H |
05D4 | m(81E00008): LDR R1, SP, 8H |
05D5 | n .FIXUP D |
05D5 | n(8D000031): LDR SB, MT, MOD0 [Graphics] |
05D6 | n(82D001A0): LDR R2, SB, 1A0H [data] |
05D7 | o(F7FFFF62): BL -158 [053AH] |
| new.selectedp := FALSE;q new.markedr := FALSE;s new.nextt := obj;u obj := new;v |
05D8 | p .FIXUP D |
05D8 | p(8D000003): LDR SB, MT, MOD0 [Graphics] |
05D9 | p(80D001A0): LDR R0, SB, 1A0H [data] |
05DA | p(D12BF84C): BLEQ MT [trap=4, pos=11256] |
05DB | q(41000000): MOV R1, R0, 0H |
05DC | q(B1000011): STR R1, R0, 11H |
05DD | r(80D001A0): LDR R0, SB, 1A0H |
05DE | r(D12C0D4C): BLEQ MT [trap=4, pos=11277] |
05DF | s(41000000): MOV R1, R0, 0H |
05E0 | s(B1000012): STR R1, R0, 12H |
05E1 | t(80D001A0): LDR R0, SB, 1A0H |
05E2 | t(D12C204C): BLEQ MT [trap=4, pos=11296] |
05E3 | u(81E00020): LDR R1, SP, 20H |
05E4 | u(A1000018): STR R1, R0, 18H |
05E5 | v(80D001A0): LDR R0, SB, 1A0H |
05E6 | v(A0E00020): STR R0, SP, 20H |
| new.dow.readx(newy,z R,a C)b |
05E7 | w(80D001A0): LDR R0, SB, 1A0H |
05E8 | w(D12C434C): BLEQ MT [trap=4, pos=11331] |
05E9 | x(80000014): LDR R0, R0, 14H |
05EA | x(D12C484C): BLEQ MT [trap=4, pos=11336] |
05EB | y(80000054): LDR R0, R0, 54H |
05EC | y(4EE90004): SUB SP, SP, 4H |
05ED | y(A0E00000): STR R0, SP, 0H |
05EE | z(80D001A0): LDR R0, SB, 1A0H |
05EF | a(81E00008): LDR R1, SP, 8H |
05F0 | a(82E0000C): LDR R2, SP, CH |
05F1 | b(83E00010): LDR R3, SP, 10H |
05F2 | b(84E00014): LDR R4, SP, 14H |
| ELSEc ReadObjd(R,e new)f;g Files.ReadByte(R,h len)i;j pos := Files.Pos(R)k;l Files.Set(R,m Files.Base(Rn)o,p pos + len)q |
05F3 | c(85E00000): LDR R5, SP, 0H |
05F4 | c(4EE80004): ADD SP, SP, 4H |
05F5 | c(D12C5E5C): BLEQ MT [trap=5, pos=11358] |
05F6 | c(D7000005): BL R5 |
05F7 | d(E700001D): B 29 [0615H] |
05F8 | e(80E00004): LDR R0, SP, 4H |
05F9 | e(81E00008): LDR R1, SP, 8H |
05FA | f .FIXUP D |
05FA | f(8D000022): LDR SB, MT, MOD0 [Graphics] |
05FB | f(82D001A0): LDR R2, SB, 1A0H [data] |
05FC | g(F7FFFF3D): BL -195 [053AH] |
05FD | h(80E00004): LDR R0, SP, 4H |
05FE | h(81E00008): LDR R1, SP, 8H |
05FF | i(42E8001B): ADD R2, SP, 1BH |
0600 | j .FIXUP P |
0600 | j(F710E050): BL MOD1 [Files] PROC14 |
0601 | k(80E00004): LDR R0, SP, 4H |
0602 | k(81E00008): LDR R1, SP, 8H |
0603 | l .FIXUP P |
0603 | l(F710C003): BL MOD1 [Files] PROC12 |
0604 | l(A0E0001C): STR R0, SP, 1CH |
0605 | m(80E00004): LDR R0, SP, 4H |
0606 | m(81E00008): LDR R1, SP, 8H |
0607 | n(4EE90008): SUB SP, SP, 8H |
0608 | n(A0E00004): STR R0, SP, 4H |
0609 | n(A1E00000): STR R1, SP, 0H |
060A | o(80E0000C): LDR R0, SP, CH |
060B | o(81E00010): LDR R1, SP, 10H |
060C | p .FIXUP P |
060C | p(F710D009): BL MOD1 [Files] PROC13 |
060D | p(02000000): MOV R2, R0, R0 |
060E | p(81E00000): LDR R1, SP, 0H |
060F | p(80E00004): LDR R0, SP, 4H |
0610 | p(4EE80008): ADD SP, SP, 8H |
0611 | q(83E0001C): LDR R3, SP, 1CH |
0612 | q(94E0001B): LDR R4, SP, 1BH |
0613 | q(03380004): ADD R3, R3, R4 |
| ENDr ; |
0614 | r .FIXUP P |
0614 | r(F710B008): BL MOD1 [Files] PROC11 |
| Files.ReadByte(R,s cno)t |
0615 | s(80E00004): LDR R0, SP, 4H |
0616 | s(81E00008): LDR R1, SP, 8H |
0617 | t(42E80018): ADD R2, SP, 18H |
| ENDu ; |
0618 | u .FIXUP P |
0618 | u(F710E004): BL MOD1 [Files] PROC14 |
0619 | u(E7FFFF59): B -167 [0573H] |
| new := NIL;v fobj := obj |
061A | v(40000000): MOV R0, R0, 0H |
061B | v .FIXUP D |
061B | v(8D000021): LDR SB, MT, MOD0 [Graphics] |
061C | v(A0D001A0): STR R0, SB, 1A0H [data] |
| ENDw LoadElems; |
061D | w(80E00020): LDR R0, SP, 20H |
061E | w(81E00014): LDR R1, SP, 14H |
061F | w(A0100000): STR R0, R1, 0H |
0620 | w(8FE00000): LDR LNK, SP, 0H |
0621 | w(4EE80068): ADD SP, SP, 68H |
0622 | w(C700000F): B LNK |
| |
| PROCEDURE Load*(G: Graph; VAR R: Files.Rider); |
| VAR C: Context; |
| BEGINx G.sely := NIL;z InitContext(C)a;b LoadElems(R,c C,d G.firste)f |
0623 | x .PROC 41 |
0623 | x(4EE9006C): SUB SP, SP, 6CH |
0624 | x(AFE00000): STR LNK, SP, 0H |
0625 | x(A0E00004): STR R0, SP, 4H |
0626 | x(A1E00008): STR R1, SP, 8H |
0627 | x(A2E0000C): STR R2, SP, CH |
0628 | y(80E00004): LDR R0, SP, 4H |
0629 | y(D12D774C): BLEQ MT [trap=4, pos=11639] |
062A | z(41000000): MOV R1, R0, 0H |
062B | z(A1000004): STR R1, R0, 4H |
062C | a(40E80010): ADD R0, SP, 10H |
062D | a .FIXUP D |
062D | a(8D000012): LDR SB, MT, MOD0 [Graphics] |
062E | a(41D800E0): ADD R1, SB, E0H [data] |
062F | b(F7FFFD6E): BL -658 [039EH] |
0630 | c(80E00008): LDR R0, SP, 8H |
0631 | c(81E0000C): LDR R1, SP, CH |
0632 | d(42E80010): ADD R2, SP, 10H |
0633 | d .FIXUP D |
0633 | d(8D000006): LDR SB, MT, MOD0 [Graphics] |
0634 | d(43D800E0): ADD R3, SB, E0H [data] |
0635 | e(84E00004): LDR R4, SP, 4H |
0636 | e(D12DA74C): BLEQ MT [trap=4, pos=11687] |
0637 | f(44480008): ADD R4, R4, 8H |
| ENDg Load; |
0638 | g(F7FFFF2D): BL -211 [0566H] |
0639 | g(8FE00000): LDR LNK, SP, 0H |
063A | g(4EE8006C): ADD SP, SP, 6CH |
063B | g(C700000F): B LNK |
| |
| PROCEDURE Open*(G: Graph; name: ARRAY OF CHAR); |
| VAR tag: CHAR; |
| F: Files.File; R: Files.Rider; C: Context; |
| BEGINh G.firsti := NIL;j G.selk := NIL;l G.timem := 0;n G.changedo := FALSE;p F := Files.Old(name)q;r |
063C | h .PROC 42 |
063C | h(4EE9008C): SUB SP, SP, 8CH |
063D | h(AFE00000): STR LNK, SP, 0H |
063E | h(A0E00004): STR R0, SP, 4H |
063F | h(A1E00008): STR R1, SP, 8H |
0640 | h(A2E0000C): STR R2, SP, CH |
0641 | i(80E00004): LDR R0, SP, 4H |
0642 | i(D12E3B4C): BLEQ MT [trap=4, pos=11835] |
0643 | j(41000000): MOV R1, R0, 0H |
0644 | j(A1000008): STR R1, R0, 8H |
0645 | k(80E00004): LDR R0, SP, 4H |
0646 | k(D12E494C): BLEQ MT [trap=4, pos=11849] |
0647 | l(41000000): MOV R1, R0, 0H |
0648 | l(A1000004): STR R1, R0, 4H |
0649 | m(80E00004): LDR R0, SP, 4H |
064A | m(D12E584C): BLEQ MT [trap=4, pos=11864] |
064B | n(41000000): MOV R1, R0, 0H |
064C | n(A1000000): STR R1, R0, 0H |
064D | o(80E00004): LDR R0, SP, 4H |
064E | o(D12E684C): BLEQ MT [trap=4, pos=11880] |
064F | p(41000000): MOV R1, R0, 0H |
0650 | p(B100000C): STR R1, R0, CH |
0651 | q(80E00008): LDR R0, SP, 8H |
0652 | q(81E0000C): LDR R1, SP, CH |
0653 | r .FIXUP P |
0653 | r(F710203B): BL MOD1 [Files] PROC2 |
0654 | r(A0E00014): STR R0, SP, 14H |
| IF F # NIL THENs |
0655 | s(80E00014): LDR R0, SP, 14H |
0656 | s(E1000024): BEQ 36 [067BH] |
| Files.Set(R,t F,u 0)v;w Files.Read(R,x tag)y;z |
0657 | t(40E80018): ADD R0, SP, 18H |
0658 | t .FIXUP D |
0658 | t(8D100025): LDR SB, MT, MOD1 [Files] |
0659 | t(41D80001): ADD R1, SB, VAR1 |
065A | u(82E00014): LDR R2, SP, 14H |
065B | v(43000000): MOV R3, R0, 0H |
065C | w .FIXUP P |
065C | w(F710B009): BL MOD1 [Files] PROC11 |
065D | x(40E80018): ADD R0, SP, 18H |
065E | x .FIXUP D |
065E | x(8D100006): LDR SB, MT, MOD1 [Files] |
065F | x(41D80001): ADD R1, SB, VAR1 |
0660 | y(42E80010): ADD R2, SP, 10H |
0661 | z .FIXUP P |
0661 | z(F7110005): BL MOD1 [Files] PROC16 |
| IF tag = GraphFileId THENa InitContext(C)b;c LoadElems(R,d C,e G.firstf)g;h res := 0 ELSEi resj := 1 ENDk |
0662 | a(90E00010): LDR R0, SP, 10H |
0663 | a(400900FA): SUB R0, R0, FAH |
0664 | a(E9000012): BNE 18 [0677H] |
0665 | b(40E80030): ADD R0, SP, 30H |
0666 | b .FIXUP D |
0666 | b(8D000008): LDR SB, MT, MOD0 [Graphics] |
0667 | b(41D800E0): ADD R1, SB, E0H [data] |
0668 | c(F7FFFD35): BL -715 [039EH] |
0669 | d(40E80018): ADD R0, SP, 18H |
066A | d .FIXUP D |
066A | d(8D100004): LDR SB, MT, MOD1 [Files] |
066B | d(41D80001): ADD R1, SB, VAR1 |
066C | e(42E80030): ADD R2, SP, 30H |
066D | e .FIXUP D |
066D | e(8D000003): LDR SB, MT, MOD0 [Graphics] |
066E | e(43D800E0): ADD R3, SB, E0H [data] |
066F | f(84E00004): LDR R4, SP, 4H |
0670 | f(D12F124C): BLEQ MT [trap=4, pos=12050] |
0671 | g(44480008): ADD R4, R4, 8H |
0672 | h(F7FFFEF3): BL -269 [0566H] |
0673 | i(40000000): MOV R0, R0, 0H |
0674 | i .FIXUP D |
0674 | i(8D000007): LDR SB, MT, MOD0 [Graphics] |
0675 | i(A0D0019C): STR R0, SB, 19CH [data] |
0676 | j(E7000003): B 3 [067AH] |
0677 | k(40000001): MOV R0, R0, 1H |
0678 | k .FIXUP D |
0678 | k(8D000004): LDR SB, MT, MOD0 [Graphics] |
0679 | k(A0D0019C): STR R0, SB, 19CH [data] |
| ELSE resl := 2 |
067A | l(E7000003): B 3 [067EH] |
| ENDm |
067B | m(40000002): MOV R0, R0, 2H |
067C | m .FIXUP D |
067C | m(8D000004): LDR SB, MT, MOD0 [Graphics] |
067D | m(A0D0019C): STR R0, SB, 19CH [data] |
| ENDn Open; |
067E | n(8FE00000): LDR LNK, SP, 0H |
067F | n(4EE8008C): ADD SP, SP, 8CH |
0680 | n(C700000F): B LNK |
| |
| PROCEDURE SetWidth*(w: INTEGER); |
| BEGINo width := w |
0681 | o .PROC 43 |
0681 | o(4EE90008): SUB SP, SP, 8H |
0682 | o(AFE00000): STR LNK, SP, 0H |
0683 | o(A0E00004): STR R0, SP, 4H |
| ENDp SetWidth; |
0684 | p(80E00004): LDR R0, SP, 4H |
0685 | p .FIXUP D |
0685 | p(8D000009): LDR SB, MT, MOD0 [Graphics] |
0686 | p(A0D00198): STR R0, SB, 198H [data] |
0687 | p(8FE00000): LDR LNK, SP, 0H |
0688 | p(4EE80008): ADD SP, SP, 8H |
0689 | p(C700000F): B LNK |
| |
| (* --------------------- Macros / Libraries ----------------------- *) |
| |
| PROCEDURE GetLib*(name: ARRAY OF CHAR; replace: BOOLEAN; VAR Lib: Library); |
| VAR i, wh: INTEGER; ch: CHAR; |
| L: Library; mh: MacHead; obj: Object; |
| F: Files.File; R: Files.Rider; C: Context; |
| Lname, Fname: ARRAY 32 OF CHAR; |
| BEGINq L := FirstLib;r i := 0;s |
068A | q .PROC 44 |
068A | q(4EE900E4): SUB SP, SP, E4H |
068B | q(AFE00000): STR LNK, SP, 0H |
068C | q(A0E00004): STR R0, SP, 4H |
068D | q(A1E00008): STR R1, SP, 8H |
068E | q(A2E0000C): STR R2, SP, CH |
068F | q(A3E00010): STR R3, SP, 10H |
0690 | r .FIXUP D |
0690 | r(8D00000B): LDR SB, MT, MOD0 [Graphics] |
0691 | r(80D001B8): LDR R0, SB, 1B8H [data] |
0692 | r(A0E00020): STR R0, SP, 20H |
0693 | s(40000000): MOV R0, R0, 0H |
0694 | s(A0E00014): STR R0, SP, 14H |
| WHILE (L # NIL)t & (uL.namev # name)w DOx L := L.nexty ENDz ; |
0695 | t(80E00020): LDR R0, SP, 20H |
0696 | u(E1000011): BEQ 17 [06A8H] |
0697 | v(80E00020): LDR R0, SP, 20H |
0698 | v(D131174C): BLEQ MT [trap=4, pos=12567] |
0699 | w(81E00004): LDR R1, SP, 4H |
069A | w(92000000): LDR R2, R0, 0H |
069B | w(40080001): ADD R0, R0, 1H |
069C | w(93100000): LDR R3, R1, 0H |
069D | w(41180001): ADD R1, R1, 1H |
069E | w(04290003): SUB R4, R2, R3 |
069F | w(E9000002): BNE 2 [06A2H] |
06A0 | w(44290000): SUB R4, R2, 0H |
06A1 | w(E9FFFFF8): BNE -8 [069AH] |
06A2 | x(E1000005): BEQ 5 [06A8H] |
06A3 | y(80E00020): LDR R0, SP, 20H |
06A4 | y(D1312E4C): BLEQ MT [trap=4, pos=12590] |
06A5 | z(80000024): LDR R0, R0, 24H |
06A6 | z(A0E00020): STR R0, SP, 20H |
06A7 | z(E7FFFFED): B -19 [0695H] |
| IF L = NIL THENa |
06A8 | a(80E00020): LDR R0, SP, 20H |
06A9 | a(E90000C2): BNE 194 [076CH] |
| (*load library from file*) i := 0;b |
06AA | b(40000000): MOV R0, R0, 0H |
06AB | b(A0E00014): STR R0, SP, 14H |
| WHILE name[i]c > 0X DOd Fname[i]e := name[i]f;g INC(i) ENDh ; |
06AC | c(80E00014): LDR R0, SP, 14H |
06AD | c(81E00008): LDR R1, SP, 8H |
06AE | c(01090001): SUB R1, R0, R1 |
06AF | c(DA31851C): BLCC MT [trap=1, pos=12677] |
06B0 | c(81E00004): LDR R1, SP, 4H |
06B1 | c(00180000): ADD R0, R1, R0 |
06B2 | d(90000000): LDR R0, R0, 0H |
06B3 | d(40090000): SUB R0, R0, 0H |
06B4 | d(E6000010): BLE 16 [06C5H] |
06B5 | e(80E00014): LDR R0, SP, 14H |
06B6 | e(41090020): SUB R1, R0, 20H |
06B7 | e(DA31961C): BLCC MT [trap=1, pos=12694] |
06B8 | e(00E80000): ADD R0, SP, R0 |
06B9 | f(81E00014): LDR R1, SP, 14H |
06BA | f(82E00008): LDR R2, SP, 8H |
06BB | f(02190002): SUB R2, R1, R2 |
06BC | f(DA31A11C): BLCC MT [trap=1, pos=12705] |
06BD | f(82E00004): LDR R2, SP, 4H |
06BE | f(01280001): ADD R1, R2, R1 |
06BF | g(91100000): LDR R1, R1, 0H |
06C0 | g(B10000C4): STR R1, R0, C4H |
06C1 | h(80E00014): LDR R0, SP, 14H |
06C2 | h(40080001): ADD R0, R0, 1H |
06C3 | h(A0E00014): STR R0, SP, 14H |
06C4 | h(E7FFFFE7): B -25 [06ACH] |
| Fname[i]i := ".";j Fname[i+1]k := "L";l Fname[i+2]m := "i";n Fname[i+3]o := "b";p Fname[i+4]q := 0X;r |
06C5 | i(80E00014): LDR R0, SP, 14H |
06C6 | i(41090020): SUB R1, R0, 20H |
06C7 | i(DA31BE1C): BLCC MT [trap=1, pos=12734] |
06C8 | i(00E80000): ADD R0, SP, R0 |
06C9 | j(4100002E): MOV R1, R0, 2EH |
06CA | j(B10000C4): STR R1, R0, C4H |
06CB | k(80E00014): LDR R0, SP, 14H |
06CC | k(40080001): ADD R0, R0, 1H |
06CD | k(41090020): SUB R1, R0, 20H |
06CE | k(DA31D11C): BLCC MT [trap=1, pos=12753] |
06CF | k(00E80000): ADD R0, SP, R0 |
06D0 | l(4100004C): MOV R1, R0, 4CH |
06D1 | l(B10000C4): STR R1, R0, C4H |
06D2 | m(80E00014): LDR R0, SP, 14H |
06D3 | m(40080002): ADD R0, R0, 2H |
06D4 | m(41090020): SUB R1, R0, 20H |
06D5 | m(DA31E41C): BLCC MT [trap=1, pos=12772] |
06D6 | m(00E80000): ADD R0, SP, R0 |
06D7 | n(41000069): MOV R1, R0, 69H |
06D8 | n(B10000C4): STR R1, R0, C4H |
06D9 | o(80E00014): LDR R0, SP, 14H |
06DA | o(40080003): ADD R0, R0, 3H |
06DB | o(41090020): SUB R1, R0, 20H |
06DC | o(DA31F71C): BLCC MT [trap=1, pos=12791] |
06DD | o(00E80000): ADD R0, SP, R0 |
06DE | p(41000062): MOV R1, R0, 62H |
06DF | p(B10000C4): STR R1, R0, C4H |
06E0 | q(80E00014): LDR R0, SP, 14H |
06E1 | q(40080004): ADD R0, R0, 4H |
06E2 | q(41090020): SUB R1, R0, 20H |
06E3 | q(DA320A1C): BLCC MT [trap=1, pos=12810] |
06E4 | q(00E80000): ADD R0, SP, R0 |
06E5 | r(41000000): MOV R1, R0, 0H |
06E6 | r(B10000C4): STR R1, R0, C4H |
| F := Files.Old(Fname)s;t |
06E7 | s(40E800C4): ADD R0, SP, C4H |
06E8 | s(41000020): MOV R1, R0, 20H |
06E9 | t .FIXUP P |
06E9 | t(F7102088): BL MOD1 [Files] PROC2 |
06EA | t(A0E0002C): STR R0, SP, 2CH |
| IF F # NIL THENu |
06EB | u(80E0002C): LDR R0, SP, 2CH |
06EC | u(E100007D): BEQ 125 [076AH] |
| WMsg("loading ",v Fname)w;x Files.Set(R,y F,z 0)a;b Files.Read(R,c ch)d;e |
06ED | v .FIXUP D |
06ED | v(8D00005D): LDR SB, MT, MOD0 [Graphics] |
06EE | v(40D80250): ADD R0, SB, 250H ["loading "] |
06EF | v(41000009): MOV R1, R0, 9H |
06F0 | w(42E800C4): ADD R2, SP, C4H |
06F1 | w(43000020): MOV R3, R0, 20H |
06F2 | x(F7FFFC8A): BL -886 [037DH] |
06F3 | y(40E80030): ADD R0, SP, 30H |
06F4 | y .FIXUP D |
06F4 | y(8D100007): LDR SB, MT, MOD1 [Files] |
06F5 | y(41D80001): ADD R1, SB, VAR1 |
06F6 | z(82E0002C): LDR R2, SP, 2CH |
06F7 | a(43000000): MOV R3, R0, 0H |
06F8 | b .FIXUP P |
06F8 | b(F710B00F): BL MOD1 [Files] PROC11 |
06F9 | c(40E80030): ADD R0, SP, 30H |
06FA | c .FIXUP D |
06FA | c(8D100006): LDR SB, MT, MOD1 [Files] |
06FB | c(41D80001): ADD R1, SB, VAR1 |
06FC | d(42E8001C): ADD R2, SP, 1CH |
06FD | e .FIXUP P |
06FD | e(F7110005): BL MOD1 [Files] PROC16 |
| IF ch = LibFileId THENf |
06FE | f(90E0001C): LDR R0, SP, 1CH |
06FF | f(400900FB): SUB R0, R0, FBH |
0700 | f(E9000066): BNE 102 [0767H] |
| IF L = NIL THENg NEW(L);h L.namei := name;j L.nextk := FirstLib;l FirstLib := L ENDm ; |
0701 | g(80E00020): LDR R0, SP, 20H |
0702 | g(E900001B): BNE 27 [071EH] |
0703 | h(40E80020): ADD R0, SP, 20H |
0704 | h .FIXUP D |
0704 | h(8D00000A): LDR SB, MT, MOD0 [Graphics] |
0705 | h(41D800B0): ADD R1, SB, B0H [data] |
0706 | h(D732CE0C): BL MT [trap=0, pos=13006] |
0707 | i(80E00020): LDR R0, SP, 20H |
0708 | i(D132D54C): BLEQ MT [trap=4, pos=13013] |
0709 | j(81E00004): LDR R1, SP, 4H |
070A | j(82E00008): LDR R2, SP, 8H |
070B | j(E100000B): BEQ 11 [0717H] |
070C | j(42280003): ADD R2, R2, 3H |
070D | j(42220002): ASR R2, R2, 2H |
070E | j(43000008): MOV R3, R0, 8H |
070F | j(03290003): SUB R3, R2, R3 |
0710 | j(DE32DE3C): BLGT MT [trap=3, pos=13022] |
0711 | j(83100000): LDR R3, R1, 0H |
0712 | j(41180004): ADD R1, R1, 4H |
0713 | j(A3000000): STR R3, R0, 0H |
0714 | j(40080004): ADD R0, R0, 4H |
0715 | j(42290001): SUB R2, R2, 1H |
0716 | j(E9FFFFFA): BNE -6 [0711H] |
0717 | k(80E00020): LDR R0, SP, 20H |
0718 | k(D132E54C): BLEQ MT [trap=4, pos=13029] |
0719 | l .FIXUP D |
0719 | l(8D000015): LDR SB, MT, MOD0 [Graphics] |
071A | l(81D001B8): LDR R1, SB, 1B8H [data] |
071B | l(A1000024): STR R1, R0, 24H |
071C | m(80E00020): LDR R0, SP, 20H |
071D | m(A0D001B8): STR R0, SB, 1B8H |
| L.firstn := NIL;o InitContext(C)p;q |
071E | n(80E00020): LDR R0, SP, 20H |
071F | n(D133184C): BLEQ MT [trap=4, pos=13080] |
0720 | o(41000000): MOV R1, R0, 0H |
0721 | o(A1000020): STR R1, R0, 20H |
0722 | p(40E80048): ADD R0, SP, 48H |
0723 | p .FIXUP D |
0723 | p(8D00000A): LDR SB, MT, MOD0 [Graphics] |
0724 | p(41D800E0): ADD R1, SB, E0H [data] |
0725 | q(F7FFFC78): BL -904 [039EH] |
| LoadElems(R,r C,s obj)t;u |
0726 | r(40E80030): ADD R0, SP, 30H |
0727 | r .FIXUP D |
0727 | r(8D100004): LDR SB, MT, MOD1 [Files] |
0728 | r(41D80001): ADD R1, SB, VAR1 |
0729 | s(42E80048): ADD R2, SP, 48H |
072A | s .FIXUP D |
072A | s(8D000003): LDR SB, MT, MOD0 [Graphics] |
072B | s(43D800E0): ADD R3, SB, E0H [data] |
072C | t(44E80028): ADD R4, SP, 28H |
072D | u(F7FFFE38): BL -456 [0566H] |
| WHILE obj # NIL DOv |
072E | v(80E00028): LDR R0, SP, 28H |
072F | v(E1000036): BEQ 54 [0766H] |
| NEW(mh);w mh.firstx := obj;y |
0730 | w(40E80024): ADD R0, SP, 24H |
0731 | w .FIXUP D |
0731 | w(8D000007): LDR SB, MT, MOD0 [Graphics] |
0732 | w(41D8008C): ADD R1, SB, 8CH [data] |
0733 | w(D733830C): BL MT [trap=0, pos=13187] |
0734 | x(80E00024): LDR R0, SP, 24H |
0735 | x(D1338C4C): BLEQ MT [trap=4, pos=13196] |
0736 | y(81E00028): LDR R1, SP, 28H |
0737 | y(A1000030): STR R1, R0, 30H |
| Files.ReadInt(R,z wh)a;b mh.hc := wh DIV 10000H MODd 10000H;e mh.wf := wh MOD 10000H;g |
0738 | z(40E80030): ADD R0, SP, 30H |
0739 | z .FIXUP D |
0739 | z(8D100008): LDR SB, MT, MOD1 [Files] |
073A | z(41D80001): ADD R1, SB, VAR1 |
073B | a(42E80018): ADD R2, SP, 18H |
073C | b .FIXUP P |
073C | b(F711103F): BL MOD1 [Files] PROC17 |
073D | c(80E00024): LDR R0, SP, 24H |
073E | c(D133BB4C): BLEQ MT [trap=4, pos=13243] |
073F | d(81E00018): LDR R1, SP, 18H |
0740 | d(41120010): ASR R1, R1, 10H |
0741 | e(4114FFFF): AND R1, R1, FFFFFFFFH |
0742 | e(A1000024): STR R1, R0, 24H |
0743 | f(80E00024): LDR R0, SP, 24H |
0744 | f(D133DD4C): BLEQ MT [trap=4, pos=13277] |
0745 | g(81E00018): LDR R1, SP, 18H |
0746 | g(4114FFFF): AND R1, R1, FFFFFFFFH |
0747 | g(A1000020): STR R1, R0, 20H |
| Files.ReadString(R,h mh.namei)j;k |
0748 | h(40E80030): ADD R0, SP, 30H |
0749 | h .FIXUP D |
0749 | h(8D100010): LDR SB, MT, MOD1 [Files] |
074A | h(41D80001): ADD R1, SB, VAR1 |
074B | i(82E00024): LDR R2, SP, 24H |
074C | i(D134174C): BLEQ MT [trap=4, pos=13335] |
074D | j(43000020): MOV R3, R0, 20H |
074E | k .FIXUP P |
074E | k(F7114012): BL MOD1 [Files] PROC20 |
| mh.libl := L;m mh.nextn := L.firsto;p L.firstq := mh;r LoadElems(R,s C,t obj)u |
074F | l(80E00024): LDR R0, SP, 24H |
0750 | l(D1342C4C): BLEQ MT [trap=4, pos=13356] |
0751 | m(81E00020): LDR R1, SP, 20H |
0752 | m(A100002C): STR R1, R0, 2CH |
0753 | n(80E00024): LDR R0, SP, 24H |
0754 | n(D1343A4C): BLEQ MT [trap=4, pos=13370] |
0755 | o(81E00020): LDR R1, SP, 20H |
0756 | o(D134454C): BLEQ MT [trap=4, pos=13381] |
0757 | p(81100020): LDR R1, R1, 20H |
0758 | p(A1000034): STR R1, R0, 34H |
0759 | q(80E00020): LDR R0, SP, 20H |
075A | q(D1344E4C): BLEQ MT [trap=4, pos=13390] |
075B | r(81E00024): LDR R1, SP, 24H |
075C | r(A1000020): STR R1, R0, 20H |
075D | s(40E80030): ADD R0, SP, 30H |
075E | s .FIXUP D |
075E | s(8D100015): LDR SB, MT, MOD1 [Files] |
075F | s(41D80001): ADD R1, SB, VAR1 |
0760 | t(42E80048): ADD R2, SP, 48H |
0761 | t .FIXUP D |
0761 | t(8D000003): LDR SB, MT, MOD0 [Graphics] |
0762 | t(43D800E0): ADD R3, SB, E0H [data] |
0763 | u(44E80028): ADD R4, SP, 28H |
| ENDv ; |
0764 | v(F7FFFE01): BL -511 [0566H] |
0765 | v(E7FFFFC8): B -56 [072EH] |
| ELSE Lw := NIL |
0766 | w(E7000002): B 2 [0769H] |
| ENDx |
0767 | x(40000000): MOV R0, R0, 0H |
0768 | x(A0E00020): STR R0, SP, 20H |
| ELSE Ly := NIL |
0769 | y(E7000002): B 2 [076CH] |
| ENDz |
076A | z(40000000): MOV R0, R0, 0H |
076B | z(A0E00020): STR R0, SP, 20H |
| END ; |
| Lib := L |
| ENDa GetLib; |
076C | a(80E00020): LDR R0, SP, 20H |
076D | a(81E00010): LDR R1, SP, 10H |
076E | a(A0100000): STR R0, R1, 0H |
076F | a(8FE00000): LDR LNK, SP, 0H |
0770 | a(4EE800E4): ADD SP, SP, E4H |
0771 | a(C700000F): B LNK |
| |
| PROCEDURE NewLib*(Lname: ARRAY OF CHAR): Library; |
| VAR L: Library; |
| BEGINb NEW(L);c L.named := Lname;e L.firstf := NIL;g |
0772 | b .PROC 45 |
0772 | b(4EE90010): SUB SP, SP, 10H |
0773 | b(AFE00000): STR LNK, SP, 0H |
0774 | b(A0E00004): STR R0, SP, 4H |
0775 | b(A1E00008): STR R1, SP, 8H |
0776 | c(40E8000C): ADD R0, SP, CH |
0777 | c .FIXUP D |
0777 | c(8D000016): LDR SB, MT, MOD0 [Graphics] |
0778 | c(41D800B0): ADD R1, SB, B0H [data] |
0779 | c(D735380C): BL MT [trap=0, pos=13624] |
077A | d(80E0000C): LDR R0, SP, CH |
077B | d(D1353F4C): BLEQ MT [trap=4, pos=13631] |
077C | e(81E00004): LDR R1, SP, 4H |
077D | e(82E00008): LDR R2, SP, 8H |
077E | e(E100000B): BEQ 11 [078AH] |
077F | e(42280003): ADD R2, R2, 3H |
0780 | e(42220002): ASR R2, R2, 2H |
0781 | e(43000008): MOV R3, R0, 8H |
0782 | e(03290003): SUB R3, R2, R3 |
0783 | e(DE35493C): BLGT MT [trap=3, pos=13641] |
0784 | e(83100000): LDR R3, R1, 0H |
0785 | e(41180004): ADD R1, R1, 4H |
0786 | e(A3000000): STR R3, R0, 0H |
0787 | e(40080004): ADD R0, R0, 4H |
0788 | e(42290001): SUB R2, R2, 1H |
0789 | e(E9FFFFFA): BNE -6 [0784H] |
078A | f(80E0000C): LDR R0, SP, CH |
078B | f(D135514C): BLEQ MT [trap=4, pos=13649] |
078C | g(41000000): MOV R1, R0, 0H |
078D | g(A1000020): STR R1, R0, 20H |
| L.nexth := FirstLib;i FirstLib := L;j RETURN L |
078E | h(80E0000C): LDR R0, SP, CH |
078F | h(D135644C): BLEQ MT [trap=4, pos=13668] |
0790 | i .FIXUP D |
0790 | i(8D000019): LDR SB, MT, MOD0 [Graphics] |
0791 | i(81D001B8): LDR R1, SB, 1B8H [data] |
0792 | i(A1000024): STR R1, R0, 24H |
0793 | j(80E0000C): LDR R0, SP, CH |
0794 | j(A0D001B8): STR R0, SB, 1B8H |
| ENDk NewLib; |
0795 | k(80E0000C): LDR R0, SP, CH |
0796 | k(8FE00000): LDR LNK, SP, 0H |
0797 | k(4EE80010): ADD SP, SP, 10H |
0798 | k(C700000F): B LNK |
| |
| PROCEDURE StoreLib*(L: Library; Fname: ARRAY OF CHAR); |
| VAR i: INTEGER; |
| mh: MacHead; |
| F: Files.File; W: Files.Rider; |
| C: Context; |
| Gname: ARRAY 32 OF CHAR; |
| BEGINl L := FirstLib;m |
0799 | l .PROC 46 |
0799 | l(4EE900B0): SUB SP, SP, B0H |
079A | l(AFE00000): STR LNK, SP, 0H |
079B | l(A0E00004): STR R0, SP, 4H |
079C | l(A1E00008): STR R1, SP, 8H |
079D | l(A2E0000C): STR R2, SP, CH |
079E | m .FIXUP D |
079E | m(8D00000E): LDR SB, MT, MOD0 [Graphics] |
079F | m(80D001B8): LDR R0, SB, 1B8H [data] |
07A0 | m(A0E00004): STR R0, SP, 4H |
| WHILE (L # NIL)n & (oL.namep # Fname)q DOr L := L.nexts ENDt ; |
07A1 | n(80E00004): LDR R0, SP, 4H |
07A2 | o(E1000011): BEQ 17 [07B4H] |
07A3 | p(80E00004): LDR R0, SP, 4H |
07A4 | p(D136834C): BLEQ MT [trap=4, pos=13955] |
07A5 | q(81E00008): LDR R1, SP, 8H |
07A6 | q(92000000): LDR R2, R0, 0H |
07A7 | q(40080001): ADD R0, R0, 1H |
07A8 | q(93100000): LDR R3, R1, 0H |
07A9 | q(41180001): ADD R1, R1, 1H |
07AA | q(04290003): SUB R4, R2, R3 |
07AB | q(E9000002): BNE 2 [07AEH] |
07AC | q(44290000): SUB R4, R2, 0H |
07AD | q(E9FFFFF8): BNE -8 [07A6H] |
07AE | r(E1000005): BEQ 5 [07B4H] |
07AF | s(80E00004): LDR R0, SP, 4H |
07B0 | s(D1369B4C): BLEQ MT [trap=4, pos=13979] |
07B1 | t(80000024): LDR R0, R0, 24H |
07B2 | t(A0E00004): STR R0, SP, 4H |
07B3 | t(E7FFFFED): B -19 [07A1H] |
| IF L # NIL THENu i := 0;v |
07B4 | u(80E00004): LDR R0, SP, 4H |
07B5 | u(E1000080): BEQ 128 [0836H] |
07B6 | v(40000000): MOV R0, R0, 0H |
07B7 | v(A0E00010): STR R0, SP, 10H |
| WHILE Fname[i]w > 0X DOx Gname[i]y := Fname[i]z;a INC(i) ENDb ; |
07B8 | w(80E00010): LDR R0, SP, 10H |
07B9 | w(81E0000C): LDR R1, SP, CH |
07BA | w(01090001): SUB R1, R0, R1 |
07BB | w(DA36D21C): BLCC MT [trap=1, pos=14034] |
07BC | w(81E00008): LDR R1, SP, 8H |
07BD | w(00180000): ADD R0, R1, R0 |
07BE | x(90000000): LDR R0, R0, 0H |
07BF | x(40090000): SUB R0, R0, 0H |
07C0 | x(E6000010): BLE 16 [07D1H] |
07C1 | y(80E00010): LDR R0, SP, 10H |
07C2 | y(41090020): SUB R1, R0, 20H |
07C3 | y(DA36E31C): BLCC MT [trap=1, pos=14051] |
07C4 | y(00E80000): ADD R0, SP, R0 |
07C5 | z(81E00010): LDR R1, SP, 10H |
07C6 | z(82E0000C): LDR R2, SP, CH |
07C7 | z(02190002): SUB R2, R1, R2 |
07C8 | z(DA36EF1C): BLCC MT [trap=1, pos=14063] |
07C9 | z(82E00008): LDR R2, SP, 8H |
07CA | z(01280001): ADD R1, R2, R1 |
07CB | a(91100000): LDR R1, R1, 0H |
07CC | a(B1000090): STR R1, R0, 90H |
07CD | b(80E00010): LDR R0, SP, 10H |
07CE | b(40080001): ADD R0, R0, 1H |
07CF | b(A0E00010): STR R0, SP, 10H |
07D0 | b(E7FFFFE7): B -25 [07B8H] |
| Gname[i]c := ".";d Gname[i+1]e := "L";f Gname[i+2]g := "i";h Gname[i+3]i := "b";j Gname[i+4]k := 0X;l |
07D1 | c(80E00010): LDR R0, SP, 10H |
07D2 | c(41090020): SUB R1, R0, 20H |
07D3 | c(DA370C1C): BLCC MT [trap=1, pos=14092] |
07D4 | c(00E80000): ADD R0, SP, R0 |
07D5 | d(4100002E): MOV R1, R0, 2EH |
07D6 | d(B1000090): STR R1, R0, 90H |
07D7 | e(80E00010): LDR R0, SP, 10H |
07D8 | e(40080001): ADD R0, R0, 1H |
07D9 | e(41090020): SUB R1, R0, 20H |
07DA | e(DA371F1C): BLCC MT [trap=1, pos=14111] |
07DB | e(00E80000): ADD R0, SP, R0 |
07DC | f(4100004C): MOV R1, R0, 4CH |
07DD | f(B1000090): STR R1, R0, 90H |
07DE | g(80E00010): LDR R0, SP, 10H |
07DF | g(40080002): ADD R0, R0, 2H |
07E0 | g(41090020): SUB R1, R0, 20H |
07E1 | g(DA37321C): BLCC MT [trap=1, pos=14130] |
07E2 | g(00E80000): ADD R0, SP, R0 |
07E3 | h(41000069): MOV R1, R0, 69H |
07E4 | h(B1000090): STR R1, R0, 90H |
07E5 | i(80E00010): LDR R0, SP, 10H |
07E6 | i(40080003): ADD R0, R0, 3H |
07E7 | i(41090020): SUB R1, R0, 20H |
07E8 | i(DA37451C): BLCC MT [trap=1, pos=14149] |
07E9 | i(00E80000): ADD R0, SP, R0 |
07EA | j(41000062): MOV R1, R0, 62H |
07EB | j(B1000090): STR R1, R0, 90H |
07EC | k(80E00010): LDR R0, SP, 10H |
07ED | k(40080004): ADD R0, R0, 4H |
07EE | k(41090020): SUB R1, R0, 20H |
07EF | k(DA37581C): BLCC MT [trap=1, pos=14168] |
07F0 | k(00E80000): ADD R0, SP, R0 |
07F1 | l(41000000): MOV R1, R0, 0H |
07F2 | l(B1000090): STR R1, R0, 90H |
| F := Files.New(Gname)m;n Files.Set(W,o F,p 0)q;r Files.Write(W,s LibFileId)t;u |
07F3 | m(40E80090): ADD R0, SP, 90H |
07F4 | m(41000020): MOV R1, R0, 20H |
07F5 | n .FIXUP P |
07F5 | n(F71030A7): BL MOD1 [Files] PROC3 |
07F6 | n(A0E00018): STR R0, SP, 18H |
07F7 | o(40E8001C): ADD R0, SP, 1CH |
07F8 | o .FIXUP D |
07F8 | o(8D10005A): LDR SB, MT, MOD1 [Files] |
07F9 | o(41D80001): ADD R1, SB, VAR1 |
07FA | p(82E00018): LDR R2, SP, 18H |
07FB | q(43000000): MOV R3, R0, 0H |
07FC | r .FIXUP P |
07FC | r(F710B007): BL MOD1 [Files] PROC11 |
07FD | s(40E8001C): ADD R0, SP, 1CH |
07FE | s .FIXUP D |
07FE | s(8D100006): LDR SB, MT, MOD1 [Files] |
07FF | s(41D80001): ADD R1, SB, VAR1 |
0800 | t(420000FB): MOV R2, R0, FBH |
0801 | u .FIXUP P |
0801 | u(F7118005): BL MOD1 [Files] PROC24 |
| InitContext(C)v;w mh := L.firstx;y |
0802 | v(40E80034): ADD R0, SP, 34H |
0803 | v .FIXUP D |
0803 | v(8D000005): LDR SB, MT, MOD0 [Graphics] |
0804 | v(41D800E0): ADD R1, SB, E0H [data] |
0805 | w(F7FFFB98): BL -1128 [039EH] |
0806 | x(80E00004): LDR R0, SP, 4H |
0807 | x(D137CF4C): BLEQ MT [trap=4, pos=14287] |
0808 | y(80000020): LDR R0, R0, 20H |
0809 | y(A0E00014): STR R0, SP, 14H |
| WHILE mh # NIL DOz |
080A | z(80E00014): LDR R0, SP, 14H |
080B | z(E1000022): BEQ 34 [082EH] |
| StoreElems(W,a C,b mh.firstc)d;e Files.WriteInt(W,f mh.hg * 10000H +h mh.wi)j;k |
080C | a(40E8001C): ADD R0, SP, 1CH |
080D | a .FIXUP D |
080D | a(8D10000A): LDR SB, MT, MOD1 [Files] |
080E | a(41D80001): ADD R1, SB, VAR1 |
080F | b(42E80034): ADD R2, SP, 34H |
0810 | b .FIXUP D |
0810 | b(8D000003): LDR SB, MT, MOD0 [Graphics] |
0811 | b(43D800E0): ADD R3, SB, E0H [data] |
0812 | c(84E00014): LDR R4, SP, 14H |
0813 | c(D1380A4C): BLEQ MT [trap=4, pos=14346] |
0814 | d(84400030): LDR R4, R4, 30H |
0815 | e(F7FFFBEB): BL -1045 [0401H] |
0816 | f(40E8001C): ADD R0, SP, 1CH |
0817 | f .FIXUP D |
0817 | f(8D100007): LDR SB, MT, MOD1 [Files] |
0818 | f(41D80001): ADD R1, SB, VAR1 |
0819 | g(82E00014): LDR R2, SP, 14H |
081A | g(D138234C): BLEQ MT [trap=4, pos=14371] |
081B | h(82200024): LDR R2, R2, 24H |
081C | h(42210010): LSL R2, R2, 10H |
081D | i(83E00014): LDR R3, SP, 14H |
081E | i(D138334C): BLEQ MT [trap=4, pos=14387] |
081F | j(83300020): LDR R3, R3, 20H |
0820 | j(02280003): ADD R2, R2, R3 |
0821 | k .FIXUP P |
0821 | k(F7119020): BL MOD1 [Files] PROC25 |
| Files.WriteString(W,l mh.namem)n;o mh := mh.nextp |
0822 | l(40E8001C): ADD R0, SP, 1CH |
0823 | l .FIXUP D |
0823 | l(8D10000C): LDR SB, MT, MOD1 [Files] |
0824 | l(41D80001): ADD R1, SB, VAR1 |
0825 | m(82E00014): LDR R2, SP, 14H |
0826 | m(D1385A4C): BLEQ MT [trap=4, pos=14426] |
0827 | n(43000020): MOV R3, R0, 20H |
0828 | o .FIXUP P |
0828 | o(F711C007): BL MOD1 [Files] PROC28 |
0829 | p(80E00014): LDR R0, SP, 14H |
082A | p(D1386A4C): BLEQ MT [trap=4, pos=14442] |
| ENDq ; |
082B | q(80000034): LDR R0, R0, 34H |
082C | q(A0E00014): STR R0, SP, 14H |
082D | q(E7FFFFDC): B -36 [080AH] |
| Files.WriteByte(W,r 255)s;t Files.Register(F)u |
082E | r(40E8001C): ADD R0, SP, 1CH |
082F | r .FIXUP D |
082F | r(8D10000C): LDR SB, MT, MOD1 [Files] |
0830 | r(41D80001): ADD R1, SB, VAR1 |
0831 | s(420000FF): MOV R2, R0, FFH |
0832 | t .FIXUP P |
0832 | t(F711600A): BL MOD1 [Files] PROC22 |
0833 | u(80E00018): LDR R0, SP, 18H |
| ELSEv Textsw.WriteString(TW,x Fname)y;z Texts.WriteString(TW,a " not found")b;c |
0834 | v .FIXUP P |
0834 | v(F7104002): BL MOD1 [Files] PROC4 |
0835 | w(E7000019): B 25 [084FH] |
0836 | x .FIXUP D |
0836 | x(8D000007): LDR SB, MT, MOD0 [Graphics] |
0837 | x(40D801E4): ADD R0, SB, 1E4H [data] |
0838 | x .FIXUP D |
0838 | x(8D400002): LDR SB, MT, MOD4 [Texts] |
0839 | x(41D80005): ADD R1, SB, VAR5 |
083A | y(82E00008): LDR R2, SP, 8H |
083B | y(83E0000C): LDR R3, SP, CH |
083C | z .FIXUP P |
083C | z(F741D008): BL MOD4 [Texts] PROC29 |
083D | a .FIXUP D |
083D | a(8D000005): LDR SB, MT, MOD0 [Graphics] |
083E | a(40D801E4): ADD R0, SB, 1E4H [data] |
083F | a .FIXUP D |
083F | a(8D400002): LDR SB, MT, MOD4 [Texts] |
0840 | a(41D80005): ADD R1, SB, VAR5 |
0841 | b .FIXUP D |
0841 | b(8D000002): LDR SB, MT, MOD0 [Graphics] |
0842 | b(42D8025C): ADD R2, SB, 25CH [" not found"] |
0843 | b(4300000B): MOV R3, R0, BH |
0844 | c .FIXUP P |
0844 | c(F741D008): BL MOD4 [Texts] PROC29 |
| Texts.WriteLn(TW)d;e Texts.Append(Oberon.Log,f TW.buf)g |
0845 | d .FIXUP D |
0845 | d(8D000004): LDR SB, MT, MOD0 [Graphics] |
0846 | d(40D801E4): ADD R0, SB, 1E4H [data] |
0847 | d .FIXUP D |
0847 | d(8D400002): LDR SB, MT, MOD4 [Texts] |
0848 | d(41D80005): ADD R1, SB, VAR5 |
0849 | e .FIXUP P |
0849 | e(F741C005): BL MOD4 [Texts] PROC28 |
084A | f .FIXUP D |
084A | f(8D500003): LDR SB, MT, MOD5 [Oberon] |
084B | f(80D0000D): LDR R0, SB, VAR13 |
084C | g .FIXUP D |
084C | g(8D000002): LDR SB, MT, MOD0 [Graphics] |
084D | g(81D001E4): LDR R1, SB, 1E4H [data] |
| ENDh |
084E | h .FIXUP P |
084E | h(F740E005): BL MOD4 [Texts] PROC14 |
| ENDi StoreLib; |
084F | i(8FE00000): LDR LNK, SP, 0H |
0850 | i(4EE800B0): ADD SP, SP, B0H |
0851 | i(C700000F): B LNK |
| |
| PROCEDURE RemoveLibraries*; |
| BEGINj FirstLib := NIL |
0852 | j .PROC 47 |
0852 | j .COMMAND RemoveLibraries |
0852 | j(4EE90004): SUB SP, SP, 4H |
0853 | j(AFE00000): STR LNK, SP, 0H |
| ENDk RemoveLibraries; |
0854 | k(40000000): MOV R0, R0, 0H |
0855 | k .FIXUP D |
0855 | k(8D000009): LDR SB, MT, MOD0 [Graphics] |
0856 | k(A0D001B8): STR R0, SB, 1B8H [data] |
0857 | k(8FE00000): LDR LNK, SP, 0H |
0858 | k(4EE80004): ADD SP, SP, 4H |
0859 | k(C700000F): B LNK |
| |
| PROCEDURE ThisMac*(L: Library; Mname: ARRAY OF CHAR): MacHead; |
| VAR mh: MacHead; |
| BEGINl mh := L.firstm;n |
085A | l .PROC 48 |
085A | l(4EE90014): SUB SP, SP, 14H |
085B | l(AFE00000): STR LNK, SP, 0H |
085C | l(A0E00004): STR R0, SP, 4H |
085D | l(A1E00008): STR R1, SP, 8H |
085E | l(A2E0000C): STR R2, SP, CH |
085F | m(80E00004): LDR R0, SP, 4H |
0860 | m(D13A004C): BLEQ MT [trap=4, pos=14848] |
0861 | n(80000020): LDR R0, R0, 20H |
0862 | n(A0E00010): STR R0, SP, 10H |
| WHILE (mh # NIL)o & (pmh.nameq # Mname)r DOs mh := mh.nextt ENDu ; |
0863 | o(80E00010): LDR R0, SP, 10H |
0864 | p(E1000011): BEQ 17 [0876H] |
0865 | q(80E00010): LDR R0, SP, 10H |
0866 | q(D13A214C): BLEQ MT [trap=4, pos=14881] |
0867 | r(81E00008): LDR R1, SP, 8H |
0868 | r(92000000): LDR R2, R0, 0H |
0869 | r(40080001): ADD R0, R0, 1H |
086A | r(93100000): LDR R3, R1, 0H |
086B | r(41180001): ADD R1, R1, 1H |
086C | r(04290003): SUB R4, R2, R3 |
086D | r(E9000002): BNE 2 [0870H] |
086E | r(44290000): SUB R4, R2, 0H |
086F | r(E9FFFFF8): BNE -8 [0868H] |
0870 | s(E1000005): BEQ 5 [0876H] |
0871 | t(80E00010): LDR R0, SP, 10H |
0872 | t(D13A3B4C): BLEQ MT [trap=4, pos=14907] |
0873 | u(80000034): LDR R0, R0, 34H |
0874 | u(A0E00010): STR R0, SP, 10H |
0875 | u(E7FFFFED): B -19 [0863H] |
| RETURN mh |
| ENDv ThisMac; |
0876 | v(80E00010): LDR R0, SP, 10H |
0877 | v(8FE00000): LDR LNK, SP, 0H |
0878 | v(4EE80014): ADD SP, SP, 14H |
0879 | v(C700000F): B LNK |
| |
| PROCEDURE DrawMac*(mh: MacHead; VAR M: Msg); |
| VAR elem: Object; |
| BEGINw elem := mh.firstx;y |
087A | w .PROC 49 |
087A | w(4EE90014): SUB SP, SP, 14H |
087B | w(AFE00000): STR LNK, SP, 0H |
087C | w(A0E00004): STR R0, SP, 4H |
087D | w(A1E00008): STR R1, SP, 8H |
087E | w(A2E0000C): STR R2, SP, CH |
087F | x(80E00004): LDR R0, SP, 4H |
0880 | x(D13ABD4C): BLEQ MT [trap=4, pos=15037] |
0881 | y(80000030): LDR R0, R0, 30H |
0882 | y(A0E00010): STR R0, SP, 10H |
| WHILE elem # NIL DOz elem.doa.drawb(elemc,d M)e;f elem := elem.nextg ENDh |
0883 | z(80E00010): LDR R0, SP, 10H |
0884 | z(E1000013): BEQ 19 [0898H] |
0885 | a(80E00010): LDR R0, SP, 10H |
0886 | a(D13ADE4C): BLEQ MT [trap=4, pos=15070] |
0887 | b(80000014): LDR R0, R0, 14H |
0888 | b(D13AE34C): BLEQ MT [trap=4, pos=15075] |
0889 | c(80000048): LDR R0, R0, 48H |
088A | c(4EE90004): SUB SP, SP, 4H |
088B | c(A0E00000): STR R0, SP, 0H |
088C | d(80E00014): LDR R0, SP, 14H |
088D | e(81E0000C): LDR R1, SP, CH |
088E | e(82E00010): LDR R2, SP, 10H |
088F | f(83E00000): LDR R3, SP, 0H |
0890 | f(4EE80004): ADD SP, SP, 4H |
0891 | f(D13AED5C): BLEQ MT [trap=5, pos=15085] |
0892 | f(D7000003): BL R3 |
0893 | g(80E00010): LDR R0, SP, 10H |
0894 | g(D13AFF4C): BLEQ MT [trap=4, pos=15103] |
0895 | h(80000018): LDR R0, R0, 18H |
0896 | h(A0E00010): STR R0, SP, 10H |
0897 | h(E7FFFFEB): B -21 [0883H] |
| ENDi DrawMac; |
0898 | i(8FE00000): LDR LNK, SP, 0H |
0899 | i(4EE80014): ADD SP, SP, 14H |
089A | i(C700000F): B LNK |
| |
| (* -------------------- Procedures for designing macros---------------------*) |
| |
| PROCEDURE OpenMac*(mh: MacHead; G: Graph; x, y: INTEGER); |
| VAR obj: Object; |
| BEGINj obj := mh.firstk;l |
089B | j .PROC 50 |
089B | j(4EE90018): SUB SP, SP, 18H |
089C | j(AFE00000): STR LNK, SP, 0H |
089D | j(A0E00004): STR R0, SP, 4H |
089E | j(A1E00008): STR R1, SP, 8H |
089F | j(A2E0000C): STR R2, SP, CH |
08A0 | j(A3E00010): STR R3, SP, 10H |
08A1 | k(80E00004): LDR R0, SP, 4H |
08A2 | k(D13BCE4C): BLEQ MT [trap=4, pos=15310] |
08A3 | l(80000030): LDR R0, R0, 30H |
08A4 | l(A0E00014): STR R0, SP, 14H |
| WHILE obj # NIL DOm |
08A5 | m(80E00014): LDR R0, SP, 14H |
08A6 | m(E1000033): BEQ 51 [08DAH] |
| obj.don.newo;p obj.doq.copyr(objs,t new)u;v INC(new.xw, x);x INC(new.yy, y);z new.selecteda := TRUE;b |
08A7 | n(80E00014): LDR R0, SP, 14H |
08A8 | n(D13BF34C): BLEQ MT [trap=4, pos=15347] |
08A9 | o(80000014): LDR R0, R0, 14H |
08AA | o(D13BF74C): BLEQ MT [trap=4, pos=15351] |
08AB | p(80000040): LDR R0, R0, 40H |
08AC | p(4EE90004): SUB SP, SP, 4H |
08AD | p(A0E00000): STR R0, SP, 0H |
08AE | p(80E00000): LDR R0, SP, 0H |
08AF | p(4EE80004): ADD SP, SP, 4H |
08B0 | p(D13BF85C): BLEQ MT [trap=5, pos=15352] |
08B1 | p(D7000000): BL R0 |
08B2 | q(80E00014): LDR R0, SP, 14H |
08B3 | q(D13BFF4C): BLEQ MT [trap=4, pos=15359] |
08B4 | r(80000014): LDR R0, R0, 14H |
08B5 | r(D13C044C): BLEQ MT [trap=4, pos=15364] |
08B6 | s(80000044): LDR R0, R0, 44H |
08B7 | s(4EE90004): SUB SP, SP, 4H |
08B8 | s(A0E00000): STR R0, SP, 0H |
08B9 | t(80E00018): LDR R0, SP, 18H |
08BA | u .FIXUP D |
08BA | u(8D000065): LDR SB, MT, MOD0 [Graphics] |
08BB | u(81D001A0): LDR R1, SB, 1A0H [data] |
08BC | v(82E00000): LDR R2, SP, 0H |
08BD | v(4EE80004): ADD SP, SP, 4H |
08BE | v(D13C0F5C): BLEQ MT [trap=5, pos=15375] |
08BF | v(D7000002): BL R2 |
08C0 | w .FIXUP D |
08C0 | w(8D000006): LDR SB, MT, MOD0 [Graphics] |
08C1 | w(80D001A0): LDR R0, SB, 1A0H [data] |
08C2 | w(D13C194C): BLEQ MT [trap=4, pos=15385] |
08C3 | x(81000000): LDR R1, R0, 0H |
08C4 | x(82E0000C): LDR R2, SP, CH |
08C5 | x(01180002): ADD R1, R1, R2 |
08C6 | x(A1000000): STR R1, R0, 0H |
08C7 | y(80D001A0): LDR R0, SB, 1A0H |
08C8 | y(D13C284C): BLEQ MT [trap=4, pos=15400] |
08C9 | z(40080004): ADD R0, R0, 4H |
08CA | z(81000000): LDR R1, R0, 0H |
08CB | z(82E00010): LDR R2, SP, 10H |
08CC | z(01180002): ADD R1, R1, R2 |
08CD | z(A1000000): STR R1, R0, 0H |
08CE | a(80D001A0): LDR R0, SB, 1A0H |
08CF | a(D13C3A4C): BLEQ MT [trap=4, pos=15418] |
08D0 | b(41000001): MOV R1, R0, 1H |
08D1 | b(B1000011): STR R1, R0, 11H |
| Add(G,c new)d;e obj := obj.nextf |
08D2 | c(80E00008): LDR R0, SP, 8H |
08D3 | d(81D001A0): LDR R1, SB, 1A0H |
08D4 | e(F7FFF734): BL -2252 [0009H] |
08D5 | f(80E00014): LDR R0, SP, 14H |
08D6 | f(D13C664C): BLEQ MT [trap=4, pos=15462] |
| ENDg ; |
08D7 | g(80000018): LDR R0, R0, 18H |
08D8 | g(A0E00014): STR R0, SP, 14H |
08D9 | g(E7FFFFCB): B -53 [08A5H] |
| new := NIL |
| ENDh OpenMac; |
08DA | h(40000000): MOV R0, R0, 0H |
08DB | h .FIXUP D |
08DB | h(8D00001B): LDR SB, MT, MOD0 [Graphics] |
08DC | h(A0D001A0): STR R0, SB, 1A0H [data] |
08DD | h(8FE00000): LDR LNK, SP, 0H |
08DE | h(4EE80018): ADD SP, SP, 18H |
08DF | h(C700000F): B LNK |
| |
| PROCEDURE MakeMac*(G: Graph; VAR head: MacHead); |
| VAR x0, y0, x1, y1: INTEGER; |
| obj, last: Object; |
| mh: MacHead; |
| BEGINi obj := G.firstj;k last := NIL;l x0 := 1024;m x1 := 0;n y0 := 1024;o y1 := 0;p |
08E0 | i .PROC 51 |
08E0 | i(4EE90028): SUB SP, SP, 28H |
08E1 | i(AFE00000): STR LNK, SP, 0H |
08E2 | i(A0E00004): STR R0, SP, 4H |
08E3 | i(A1E00008): STR R1, SP, 8H |
08E4 | j(80E00004): LDR R0, SP, 4H |
08E5 | j(D13D264C): BLEQ MT [trap=4, pos=15654] |
08E6 | k(80000008): LDR R0, R0, 8H |
08E7 | k(A0E0001C): STR R0, SP, 1CH |
08E8 | l(40000000): MOV R0, R0, 0H |
08E9 | l(A0E00020): STR R0, SP, 20H |
08EA | m(40000400): MOV R0, R0, 400H |
08EB | m(A0E0000C): STR R0, SP, CH |
08EC | n(40000000): MOV R0, R0, 0H |
08ED | n(A0E00014): STR R0, SP, 14H |
08EE | o(40000400): MOV R0, R0, 400H |
08EF | o(A0E00010): STR R0, SP, 10H |
08F0 | p(40000000): MOV R0, R0, 0H |
08F1 | p(A0E00018): STR R0, SP, 18H |
| WHILE obj # NIL DOq |
08F2 | q(80E0001C): LDR R0, SP, 1CH |
08F3 | q(E1000065): BEQ 101 [0959H] |
| IF obj.selectedr THENs |
08F4 | r(80E0001C): LDR R0, SP, 1CH |
08F5 | r(D13D8F4C): BLEQ MT [trap=4, pos=15759] |
08F6 | s(90000011): LDR R0, R0, 11H |
08F7 | s(E100005C): BEQ 92 [0954H] |
| obj.dot.newu;v obj.dow.copyx(objy,z new)a;b new.nextc := last;d new.selectede := FALSE;f last := new;g |
08F8 | t(80E0001C): LDR R0, SP, 1CH |
08F9 | t(D13DA54C): BLEQ MT [trap=4, pos=15781] |
08FA | u(80000014): LDR R0, R0, 14H |
08FB | u(D13DA94C): BLEQ MT [trap=4, pos=15785] |
08FC | v(80000040): LDR R0, R0, 40H |
08FD | v(4EE90004): SUB SP, SP, 4H |
08FE | v(A0E00000): STR R0, SP, 0H |
08FF | v(80E00000): LDR R0, SP, 0H |
0900 | v(4EE80004): ADD SP, SP, 4H |
0901 | v(D13DAA5C): BLEQ MT [trap=5, pos=15786] |
0902 | v(D7000000): BL R0 |
0903 | w(80E0001C): LDR R0, SP, 1CH |
0904 | w(D13DB14C): BLEQ MT [trap=4, pos=15793] |
0905 | x(80000014): LDR R0, R0, 14H |
0906 | x(D13DB64C): BLEQ MT [trap=4, pos=15798] |
0907 | y(80000044): LDR R0, R0, 44H |
0908 | y(4EE90004): SUB SP, SP, 4H |
0909 | y(A0E00000): STR R0, SP, 0H |
090A | z(80E00020): LDR R0, SP, 20H |
090B | a .FIXUP D |
090B | a(8D000030): LDR SB, MT, MOD0 [Graphics] |
090C | a(81D001A0): LDR R1, SB, 1A0H [data] |
090D | b(82E00000): LDR R2, SP, 0H |
090E | b(4EE80004): ADD SP, SP, 4H |
090F | b(D13DC15C): BLEQ MT [trap=5, pos=15809] |
0910 | b(D7000002): BL R2 |
0911 | c .FIXUP D |
0911 | c(8D000006): LDR SB, MT, MOD0 [Graphics] |
0912 | c(80D001A0): LDR R0, SB, 1A0H [data] |
0913 | c(D13DCA4C): BLEQ MT [trap=4, pos=15818] |
0914 | d(81E00020): LDR R1, SP, 20H |
0915 | d(A1000018): STR R1, R0, 18H |
0916 | e(80D001A0): LDR R0, SB, 1A0H |
0917 | e(D13DE04C): BLEQ MT [trap=4, pos=15840] |
0918 | f(41000000): MOV R1, R0, 0H |
0919 | f(B1000011): STR R1, R0, 11H |
091A | g(80D001A0): LDR R0, SB, 1A0H |
091B | g(A0E00020): STR R0, SP, 20H |
| IF obj.xh < x0 THENi x0 := obj.xj ENDk ; |
091C | h(80E0001C): LDR R0, SP, 1CH |
091D | h(D13E0A4C): BLEQ MT [trap=4, pos=15882] |
091E | i(80000000): LDR R0, R0, 0H |
091F | i(81E0000C): LDR R1, SP, CH |
0920 | i(00090001): SUB R0, R0, R1 |
0921 | i(ED000004): BGE 4 [0926H] |
0922 | j(80E0001C): LDR R0, SP, 1CH |
0923 | j(D13E204C): BLEQ MT [trap=4, pos=15904] |
0924 | k(80000000): LDR R0, R0, 0H |
0925 | k(A0E0000C): STR R0, SP, CH |
| IF obj.xl + obj.wm >n x1 THENo x1 := obj.xp + obj.wq ENDr ; |
0926 | l(80E0001C): LDR R0, SP, 1CH |
0927 | l(D13E394C): BLEQ MT [trap=4, pos=15929] |
0928 | m(81E0001C): LDR R1, SP, 1CH |
0929 | m(D13E414C): BLEQ MT [trap=4, pos=15937] |
092A | n(80000000): LDR R0, R0, 0H |
092B | n(81100008): LDR R1, R1, 8H |
092C | n(00080001): ADD R0, R0, R1 |
092D | o(81E00014): LDR R1, SP, 14H |
092E | o(00090001): SUB R0, R0, R1 |
092F | o(E6000008): BLE 8 [0938H] |
0930 | p(80E0001C): LDR R0, SP, 1CH |
0931 | p(D13E574C): BLEQ MT [trap=4, pos=15959] |
0932 | q(81E0001C): LDR R1, SP, 1CH |
0933 | q(D13E5F4C): BLEQ MT [trap=4, pos=15967] |
0934 | r(80000000): LDR R0, R0, 0H |
0935 | r(81100008): LDR R1, R1, 8H |
0936 | r(00080001): ADD R0, R0, R1 |
0937 | r(A0E00014): STR R0, SP, 14H |
| IF obj.ys < y0 THENt y0 := obj.yu ENDv ; |
0938 | s(80E0001C): LDR R0, SP, 1CH |
0939 | s(D13E784C): BLEQ MT [trap=4, pos=15992] |
093A | t(80000004): LDR R0, R0, 4H |
093B | t(81E00010): LDR R1, SP, 10H |
093C | t(00090001): SUB R0, R0, R1 |
093D | t(ED000004): BGE 4 [0942H] |
093E | u(80E0001C): LDR R0, SP, 1CH |
093F | u(D13E8E4C): BLEQ MT [trap=4, pos=16014] |
0940 | v(80000004): LDR R0, R0, 4H |
0941 | v(A0E00010): STR R0, SP, 10H |
| IF obj.yw + obj.hx >y y1 THENz y1 := obj.ya + obj.hb ENDc |
0942 | w(80E0001C): LDR R0, SP, 1CH |
0943 | w(D13EA74C): BLEQ MT [trap=4, pos=16039] |
0944 | x(81E0001C): LDR R1, SP, 1CH |
0945 | x(D13EAF4C): BLEQ MT [trap=4, pos=16047] |
0946 | y(80000004): LDR R0, R0, 4H |
0947 | y(8110000C): LDR R1, R1, CH |
0948 | y(00080001): ADD R0, R0, R1 |
0949 | z(81E00018): LDR R1, SP, 18H |
094A | z(00090001): SUB R0, R0, R1 |
094B | z(E6000008): BLE 8 [0954H] |
094C | a(80E0001C): LDR R0, SP, 1CH |
094D | a(D13EC54C): BLEQ MT [trap=4, pos=16069] |
094E | b(81E0001C): LDR R1, SP, 1CH |
094F | b(D13ECD4C): BLEQ MT [trap=4, pos=16077] |
0950 | c(80000004): LDR R0, R0, 4H |
0951 | c(8110000C): LDR R1, R1, CH |
0952 | c(00080001): ADD R0, R0, R1 |
0953 | c(A0E00018): STR R0, SP, 18H |
| END ; |
| obj := obj.nextd |
0954 | d(80E0001C): LDR R0, SP, 1CH |
0955 | d(D13EF74C): BLEQ MT [trap=4, pos=16119] |
| ENDe ; |
0956 | e(80000018): LDR R0, R0, 18H |
0957 | e(A0E0001C): STR R0, SP, 1CH |
0958 | e(E7FFFF99): B -103 [08F2H] |
| obj := last;f |
0959 | f(80E00020): LDR R0, SP, 20H |
095A | f(A0E0001C): STR R0, SP, 1CH |
| WHILE obj # NIL DOg |
095B | g(80E0001C): LDR R0, SP, 1CH |
095C | g(E1000015): BEQ 21 [0972H] |
| obj.xh := obj.xi - x0;j obj.yk := obj.yl - y0;m obj := obj.nextn |
095D | h(80E0001C): LDR R0, SP, 1CH |
095E | h(D13F3D4C): BLEQ MT [trap=4, pos=16189] |
095F | i(81E0001C): LDR R1, SP, 1CH |
0960 | i(D13F464C): BLEQ MT [trap=4, pos=16198] |
0961 | j(81100000): LDR R1, R1, 0H |
0962 | j(82E0000C): LDR R2, SP, CH |
0963 | j(01190002): SUB R1, R1, R2 |
0964 | j(A1000000): STR R1, R0, 0H |
0965 | k(80E0001C): LDR R0, SP, 1CH |
0966 | k(D13F524C): BLEQ MT [trap=4, pos=16210] |
0967 | l(81E0001C): LDR R1, SP, 1CH |
0968 | l(D13F5B4C): BLEQ MT [trap=4, pos=16219] |
0969 | m(81100004): LDR R1, R1, 4H |
096A | m(82E00010): LDR R2, SP, 10H |
096B | m(01190002): SUB R1, R1, R2 |
096C | m(A1000004): STR R1, R0, 4H |
096D | n(80E0001C): LDR R0, SP, 1CH |
096E | n(D13F714C): BLEQ MT [trap=4, pos=16241] |
| ENDo ; |
096F | o(80000018): LDR R0, R0, 18H |
0970 | o(A0E0001C): STR R0, SP, 1CH |
0971 | o(E7FFFFE9): B -23 [095BH] |
| NEW(mh);p mh.wq := x1 - x0;r mh.hs := y1 - y0;t mh.firstu := last;v mh.extw := NIL;x |
0972 | p(40E80024): ADD R0, SP, 24H |
0973 | p .FIXUP D |
0973 | p(8D000062): LDR SB, MT, MOD0 [Graphics] |
0974 | p(41D8008C): ADD R1, SB, 8CH [data] |
0975 | p(D73F8C0C): BL MT [trap=0, pos=16268] |
0976 | q(80E00024): LDR R0, SP, 24H |
0977 | q(D13F914C): BLEQ MT [trap=4, pos=16273] |
0978 | r(81E00014): LDR R1, SP, 14H |
0979 | r(82E0000C): LDR R2, SP, CH |
097A | r(01190002): SUB R1, R1, R2 |
097B | r(A1000020): STR R1, R0, 20H |
097C | s(80E00024): LDR R0, SP, 24H |
097D | s(D13FA24C): BLEQ MT [trap=4, pos=16290] |
097E | t(81E00018): LDR R1, SP, 18H |
097F | t(82E00010): LDR R2, SP, 10H |
0980 | t(01190002): SUB R1, R1, R2 |
0981 | t(A1000024): STR R1, R0, 24H |
0982 | u(80E00024): LDR R0, SP, 24H |
0983 | u(D13FB74C): BLEQ MT [trap=4, pos=16311] |
0984 | v(81E00020): LDR R1, SP, 20H |
0985 | v(A1000030): STR R1, R0, 30H |
0986 | w(80E00024): LDR R0, SP, 24H |
0987 | w(D13FC74C): BLEQ MT [trap=4, pos=16327] |
0988 | x(41000000): MOV R1, R0, 0H |
0989 | x(A1000028): STR R1, R0, 28H |
| new := NIL;y head := mh |
098A | y(40000000): MOV R0, R0, 0H |
098B | y .FIXUP D |
098B | y(8D000018): LDR SB, MT, MOD0 [Graphics] |
098C | y(A0D001A0): STR R0, SB, 1A0H [data] |
| ENDz MakeMac; |
098D | z(80E00024): LDR R0, SP, 24H |
098E | z(81E00008): LDR R1, SP, 8H |
098F | z(A0100000): STR R0, R1, 0H |
0990 | z(8FE00000): LDR LNK, SP, 0H |
0991 | z(4EE80028): ADD SP, SP, 28H |
0992 | z(C700000F): B LNK |
| |
| PROCEDURE InsertMac*(mh: MacHead; L: Library; VAR new: BOOLEAN); |
| VAR mh1: MacHead; |
| BEGINa mh.libb := L;c mh1 := L.firstd;e |
0993 | a .PROC 52 |
0993 | a(4EE90014): SUB SP, SP, 14H |
0994 | a(AFE00000): STR LNK, SP, 0H |
0995 | a(A0E00004): STR R0, SP, 4H |
0996 | a(A1E00008): STR R1, SP, 8H |
0997 | a(A2E0000C): STR R2, SP, CH |
0998 | b(80E00004): LDR R0, SP, 4H |
0999 | b(D140644C): BLEQ MT [trap=4, pos=16484] |
099A | c(81E00008): LDR R1, SP, 8H |
099B | c(A100002C): STR R1, R0, 2CH |
099C | d(80E00008): LDR R0, SP, 8H |
099D | d(D140794C): BLEQ MT [trap=4, pos=16505] |
099E | e(80000020): LDR R0, R0, 20H |
099F | e(A0E00010): STR R0, SP, 10H |
| WHILE (mh1 # NIL)f & (gmh1.nameh # mh.namei)j DOk mh1 := mh1.nextl ENDm ; |
09A0 | f(80E00010): LDR R0, SP, 10H |
09A1 | g(E1000012): BEQ 18 [09B4H] |
09A2 | h(80E00010): LDR R0, SP, 10H |
09A3 | h(D1409C4C): BLEQ MT [trap=4, pos=16540] |
09A4 | i(81E00004): LDR R1, SP, 4H |
09A5 | i(D140A64C): BLEQ MT [trap=4, pos=16550] |
09A6 | j(92000000): LDR R2, R0, 0H |
09A7 | j(40080001): ADD R0, R0, 1H |
09A8 | j(93100000): LDR R3, R1, 0H |
09A9 | j(41180001): ADD R1, R1, 1H |
09AA | j(04290003): SUB R4, R2, R3 |
09AB | j(E9000002): BNE 2 [09AEH] |
09AC | j(44290000): SUB R4, R2, 0H |
09AD | j(E9FFFFF8): BNE -8 [09A6H] |
09AE | k(E1000005): BEQ 5 [09B4H] |
09AF | l(80E00010): LDR R0, SP, 10H |
09B0 | l(D140BA4C): BLEQ MT [trap=4, pos=16570] |
09B1 | m(80000034): LDR R0, R0, 34H |
09B2 | m(A0E00010): STR R0, SP, 10H |
09B3 | m(E7FFFFEC): B -20 [09A0H] |
| IF mh1 = NIL THENn |
09B4 | n(80E00010): LDR R0, SP, 10H |
09B5 | n(E900000E): BNE 14 [09C4H] |
| new := TRUE;o mh.nextp := L.firstq;r L.firsts := mh |
09B6 | o(40000001): MOV R0, R0, 1H |
09B7 | o(81E0000C): LDR R1, SP, CH |
09B8 | o(B0100000): STR R0, R1, 0H |
09B9 | p(80E00004): LDR R0, SP, 4H |
09BA | p(D140F14C): BLEQ MT [trap=4, pos=16625] |
09BB | q(81E00008): LDR R1, SP, 8H |
09BC | q(D140FC4C): BLEQ MT [trap=4, pos=16636] |
09BD | r(81100020): LDR R1, R1, 20H |
09BE | r(A1000034): STR R1, R0, 34H |
09BF | s(80E00008): LDR R0, SP, 8H |
09C0 | s(D141054C): BLEQ MT [trap=4, pos=16645] |
| ELSEt |
09C1 | t(81E00004): LDR R1, SP, 4H |
09C2 | t(A1000020): STR R1, R0, 20H |
| newu := FALSE;v mh1.ww := mh.wx;y mh1.hz := mh.ha;b mh1.firstc := mh.firstd |
09C3 | u(E7000015): B 21 [09D9H] |
09C4 | v(40000000): MOV R0, R0, 0H |
09C5 | v(81E0000C): LDR R1, SP, CH |
09C6 | v(B0100000): STR R0, R1, 0H |
09C7 | w(80E00010): LDR R0, SP, 10H |
09C8 | w(D1412E4C): BLEQ MT [trap=4, pos=16686] |
09C9 | x(81E00004): LDR R1, SP, 4H |
09CA | x(D141364C): BLEQ MT [trap=4, pos=16694] |
09CB | y(81100020): LDR R1, R1, 20H |
09CC | y(A1000020): STR R1, R0, 20H |
09CD | z(80E00010): LDR R0, SP, 10H |
09CE | z(D1413D4C): BLEQ MT [trap=4, pos=16701] |
09CF | a(81E00004): LDR R1, SP, 4H |
09D0 | a(D141454C): BLEQ MT [trap=4, pos=16709] |
09D1 | b(81100024): LDR R1, R1, 24H |
09D2 | b(A1000024): STR R1, R0, 24H |
09D3 | c(80E00010): LDR R0, SP, 10H |
09D4 | c(D141504C): BLEQ MT [trap=4, pos=16720] |
09D5 | d(81E00004): LDR R1, SP, 4H |
09D6 | d(D1415C4C): BLEQ MT [trap=4, pos=16732] |
| ENDe |
09D7 | e(81100030): LDR R1, R1, 30H |
09D8 | e(A1000030): STR R1, R0, 30H |
| ENDf InsertMac; |
09D9 | f(8FE00000): LDR LNK, SP, 0H |
09DA | f(4EE80014): ADD SP, SP, 14H |
09DB | f(C700000F): B LNK |
| |
| (* ---------------------------- Line Methods -----------------------------*) |
| |
| PROCEDURE NewLine; |
| VAR line: Line; |
| BEGINg NEW(line);h new := line;i line.doj := LineMethod |
09DC | g(4EE90008): SUB SP, SP, 8H |
09DD | g(AFE00000): STR LNK, SP, 0H |
09DE | h(40E80004): ADD R0, SP, 4H |
09DF | h .FIXUP D |
09DF | h(8D000054): LDR SB, MT, MOD0 [Graphics] |
09E0 | h(41D80140): ADD R1, SB, 140H [data] |
09E1 | h(D742020C): BL MT [trap=0, pos=16898] |
09E2 | i(80E00004): LDR R0, SP, 4H |
09E3 | i .FIXUP D |
09E3 | i(8D000004): LDR SB, MT, MOD0 [Graphics] |
09E4 | i(A0D001A0): STR R0, SB, 1A0H [data] |
09E5 | j(80E00004): LDR R0, SP, 4H |
09E6 | j(D142174C): BLEQ MT [trap=4, pos=16919] |
| ENDk NewLine; |
09E7 | k(81D001A8): LDR R1, SB, 1A8H |
09E8 | k(A1000014): STR R1, R0, 14H |
09E9 | k(8FE00000): LDR LNK, SP, 0H |
09EA | k(4EE80008): ADD SP, SP, 8H |
09EB | k(C700000F): B LNK |
| |
| PROCEDURE CopyLine(src, dst: Object); |
| BEGINl dst.xm := src.xn;o dst.yp := src.yq;r dst.ws := src.wt;u dst.hv := src.hw;x dst.coly := src.colz |
09EC | l(4EE9000C): SUB SP, SP, CH |
09ED | l(AFE00000): STR LNK, SP, 0H |
09EE | l(A0E00004): STR R0, SP, 4H |
09EF | l(A1E00008): STR R1, SP, 8H |
09F0 | m(80E00008): LDR R0, SP, 8H |
09F1 | m(D1426B4C): BLEQ MT [trap=4, pos=17003] |
09F2 | n(81E00004): LDR R1, SP, 4H |
09F3 | n(D142744C): BLEQ MT [trap=4, pos=17012] |
09F4 | o(81100000): LDR R1, R1, 0H |
09F5 | o(A1000000): STR R1, R0, 0H |
09F6 | p(80E00008): LDR R0, SP, 8H |
09F7 | p(D1427B4C): BLEQ MT [trap=4, pos=17019] |
09F8 | q(81E00004): LDR R1, SP, 4H |
09F9 | q(D142844C): BLEQ MT [trap=4, pos=17028] |
09FA | r(81100004): LDR R1, R1, 4H |
09FB | r(A1000004): STR R1, R0, 4H |
09FC | s(80E00008): LDR R0, SP, 8H |
09FD | s(D1428B4C): BLEQ MT [trap=4, pos=17035] |
09FE | t(81E00004): LDR R1, SP, 4H |
09FF | t(D142944C): BLEQ MT [trap=4, pos=17044] |
0A00 | u(81100008): LDR R1, R1, 8H |
0A01 | u(A1000008): STR R1, R0, 8H |
0A02 | v(80E00008): LDR R0, SP, 8H |
0A03 | v(D1429B4C): BLEQ MT [trap=4, pos=17051] |
0A04 | w(81E00004): LDR R1, SP, 4H |
0A05 | w(D142A44C): BLEQ MT [trap=4, pos=17060] |
0A06 | x(8110000C): LDR R1, R1, CH |
0A07 | x(A100000C): STR R1, R0, CH |
0A08 | y(80E00008): LDR R0, SP, 8H |
0A09 | y(D142AD4C): BLEQ MT [trap=4, pos=17069] |
0A0A | z(81E00004): LDR R1, SP, 4H |
0A0B | z(D142B84C): BLEQ MT [trap=4, pos=17080] |
| ENDa CopyLine; |
0A0C | a(91100010): LDR R1, R1, 10H |
0A0D | a(B1000010): STR R1, R0, 10H |
0A0E | a(8FE00000): LDR LNK, SP, 0H |
0A0F | a(4EE8000C): ADD SP, SP, CH |
0A10 | a(C700000F): B LNK |
| |
| PROCEDURE ChangeLine(obj: Object; VAR M: Msg); |
| BEGINb |
0A11 | b(4EE90010): SUB SP, SP, 10H |
0A12 | b(AFE00000): STR LNK, SP, 0H |
0A13 | b(A0E00004): STR R0, SP, 4H |
0A14 | b(A1E00008): STR R1, SP, 8H |
0A15 | b(A2E0000C): STR R2, SP, CH |
| CASE M OF |
| WidMsg:c |
0A16 | c(80E0000C): LDR R0, SP, CH |
0A17 | c(80000004): LDR R0, R0, 4H |
0A18 | c .FIXUP D |
0A18 | c(8D000035): LDR SB, MT, MOD0 [Graphics] |
0A19 | c(41D80030): ADD R1, SB, 30H [data] |
0A1A | c(01190000): SUB R1, R1, R0 |
0A1B | c(E900001E): BNE 30 [0A3AH] |
| IF obj.wd < obj.he THENf |
0A1C | d(80E00004): LDR R0, SP, 4H |
0A1D | d(D1432B4C): BLEQ MT [trap=4, pos=17195] |
0A1E | e(81E00004): LDR R1, SP, 4H |
0A1F | e(D143334C): BLEQ MT [trap=4, pos=17203] |
0A20 | f(80000008): LDR R0, R0, 8H |
0A21 | f(8110000C): LDR R1, R1, CH |
0A22 | f(00090001): SUB R0, R0, R1 |
0A23 | f(ED00000B): BGE 11 [0A2FH] |
| IF obj.wg <= 7 THENh obj.wi := M.w ENDj |
0A24 | g(80E00004): LDR R0, SP, 4H |
0A25 | g(D143494C): BLEQ MT [trap=4, pos=17225] |
0A26 | h(80000008): LDR R0, R0, 8H |
0A27 | h(40090007): SUB R0, R0, 7H |
0A28 | h(EE000005): BGT 5 [0A2EH] |
0A29 | i(80E00004): LDR R0, SP, 4H |
0A2A | i(D143594C): BLEQ MT [trap=4, pos=17241] |
0A2B | j(81E00008): LDR R1, SP, 8H |
0A2C | j(81100000): LDR R1, R1, 0H |
0A2D | j(A1000008): STR R1, R0, 8H |
| ELSIF objk.hl <= 7 THENm obj.hn := M.w |
0A2E | k(E700000A): B 10 [0A39H] |
0A2F | l(80E00004): LDR R0, SP, 4H |
0A30 | l(D143764C): BLEQ MT [trap=4, pos=17270] |
0A31 | m(8000000C): LDR R0, R0, CH |
0A32 | m(40090007): SUB R0, R0, 7H |
0A33 | m(EE000005): BGT 5 [0A39H] |
0A34 | n(80E00004): LDR R0, SP, 4H |
0A35 | n(D143864C): BLEQ MT [trap=4, pos=17286] |
| ENDo | |
0A36 | o(81E00008): LDR R1, SP, 8H |
0A37 | o(81100000): LDR R1, R1, 0H |
0A38 | o(A100000C): STR R1, R0, CH |
| ColorMsgp:q obj.colr := M.col |
0A39 | p(E700000B): B 11 [0A45H] |
0A3A | q(80E0000C): LDR R0, SP, CH |
0A3B | q(80000004): LDR R0, R0, 4H |
0A3C | q .FIXUP D |
0A3C | q(8D000024): LDR SB, MT, MOD0 [Graphics] |
0A3D | q(41D80044): ADD R1, SB, 44H [data] |
0A3E | q(01190000): SUB R1, R1, R0 |
0A3F | q(E9000005): BNE 5 [0A45H] |
0A40 | r(80E00004): LDR R0, SP, 4H |
0A41 | r(D143AF4C): BLEQ MT [trap=4, pos=17327] |
| ENDs |
0A42 | s(81E00008): LDR R1, SP, 8H |
0A43 | s(81100000): LDR R1, R1, 0H |
0A44 | s(B1000010): STR R1, R0, 10H |
| ENDt ChangeLine; |
0A45 | t(8FE00000): LDR LNK, SP, 0H |
0A46 | t(4EE80010): ADD SP, SP, 10H |
0A47 | t(C700000F): B LNK |
| |
| PROCEDURE LineSelectable(obj: Object; x, y: INTEGER): BOOLEAN; |
| BEGINu |
0A48 | u(4EE90010): SUB SP, SP, 10H |
0A49 | u(AFE00000): STR LNK, SP, 0H |
0A4A | u(A0E00004): STR R0, SP, 4H |
0A4B | u(A1E00008): STR R1, SP, 8H |
0A4C | u(A2E0000C): STR R2, SP, CH |
| RETURN (obj.xv <= x)w & (xx < obj.xy + obj.wz)a & (bobj.yc <= y)d & (ey < obj.yf + obj.hg)h |
0A4D | v(80E00004): LDR R0, SP, 4H |
0A4E | v(D1442E4C): BLEQ MT [trap=4, pos=17454] |
0A4F | w(80000000): LDR R0, R0, 0H |
0A50 | w(81E00008): LDR R1, SP, 8H |
0A51 | w(00090001): SUB R0, R0, R1 |
0A52 | x(EE00001C): BGT 28 [0A6FH] |
0A53 | y(80E00004): LDR R0, SP, 4H |
0A54 | y(D144414C): BLEQ MT [trap=4, pos=17473] |
0A55 | z(81E00004): LDR R1, SP, 4H |
0A56 | z(D144494C): BLEQ MT [trap=4, pos=17481] |
0A57 | a(80000000): LDR R0, R0, 0H |
0A58 | a(81100008): LDR R1, R1, 8H |
0A59 | a(00080001): ADD R0, R0, R1 |
0A5A | a(81E00008): LDR R1, SP, 8H |
0A5B | a(01190000): SUB R1, R1, R0 |
0A5C | b(ED000012): BGE 18 [0A6FH] |
0A5D | c(80E00004): LDR R0, SP, 4H |
0A5E | c(D144534C): BLEQ MT [trap=4, pos=17491] |
0A5F | d(80000004): LDR R0, R0, 4H |
0A60 | d(81E0000C): LDR R1, SP, CH |
0A61 | d(00090001): SUB R0, R0, R1 |
0A62 | e(EE00000C): BGT 12 [0A6FH] |
0A63 | f(80E00004): LDR R0, SP, 4H |
0A64 | f(D144664C): BLEQ MT [trap=4, pos=17510] |
0A65 | g(81E00004): LDR R1, SP, 4H |
0A66 | g(D1446E4C): BLEQ MT [trap=4, pos=17518] |
0A67 | h(80000004): LDR R0, R0, 4H |
0A68 | h(8110000C): LDR R1, R1, CH |
0A69 | h(00080001): ADD R0, R0, R1 |
0A6A | h(81E0000C): LDR R1, SP, CH |
0A6B | h(01190000): SUB R1, R1, R0 |
| ENDi LineSelectable; |
0A6C | i(ED000002): BGE 2 [0A6FH] |
0A6D | i(40000001): MOV R0, R0, 1H |
0A6E | i(E7000001): B 1 [0A70H] |
0A6F | i(40000000): MOV R0, R0, 0H |
0A70 | i(8FE00000): LDR LNK, SP, 0H |
0A71 | i(4EE80010): ADD SP, SP, 10H |
0A72 | i(C700000F): B LNK |
| |
| PROCEDURE ReadLine(obj: Object; VAR R: Files.Rider; VAR C: Context); |
| BEGINj |
0A73 | j(4EE90018): SUB SP, SP, 18H |
0A74 | j(AFE00000): STR LNK, SP, 0H |
0A75 | j(A0E00004): STR R0, SP, 4H |
0A76 | j(A1E00008): STR R1, SP, 8H |
0A77 | j(A2E0000C): STR R2, SP, CH |
0A78 | j(A3E00010): STR R3, SP, 10H |
0A79 | j(A4E00014): STR R4, SP, 14H |
| ENDk ReadLine; |
0A7A | k(8FE00000): LDR LNK, SP, 0H |
0A7B | k(4EE80018): ADD SP, SP, 18H |
0A7C | k(C700000F): B LNK |
| |
| PROCEDURE WriteLine(obj: Object; cno: INTEGER; VAR W: Files.Rider; VAR C: Context); |
| BEGINl WriteObj(W,m cno,n obj)o |
0A7D | l(4EE9001C): SUB SP, SP, 1CH |
0A7E | l(AFE00000): STR LNK, SP, 0H |
0A7F | l(A0E00004): STR R0, SP, 4H |
0A80 | l(A1E00008): STR R1, SP, 8H |
0A81 | l(A2E0000C): STR R2, SP, CH |
0A82 | l(A3E00010): STR R3, SP, 10H |
0A83 | l(A4E00014): STR R4, SP, 14H |
0A84 | l(A5E00018): STR R5, SP, 18H |
0A85 | m(80E0000C): LDR R0, SP, CH |
0A86 | m(81E00010): LDR R1, SP, 10H |
0A87 | n(82E00008): LDR R2, SP, 8H |
0A88 | o(83E00004): LDR R3, SP, 4H |
| ENDp WriteLine; |
0A89 | p(F7FFFA02): BL -1534 [048CH] |
0A8A | p(8FE00000): LDR LNK, SP, 0H |
0A8B | p(4EE8001C): ADD SP, SP, 1CH |
0A8C | p(C700000F): B LNK |
| |
| (*PROCEDURE PrintLine(obj: Object; x, y: INTEGER); |
| VAR w, h: INTEGER; |
| BEGIN w := obj.w * 2; h := obj.h * 2; |
| IF w < h THEN h := 2*h ELSE w := 2*w END ; |
| Printer.ReplConst(obj.x * 4 + x, obj.y *4 + y, w, h) |
| END PrintLine; *) |
| |
| (* ---------------------- Caption Methods ------------------------ *) |
| |
| PROCEDURE NewCaption; |
| VAR cap: Caption; |
| BEGINq NEW(cap);r new := cap;s cap.dot := CapMethod |
0A8D | q(4EE90008): SUB SP, SP, 8H |
0A8E | q(AFE00000): STR LNK, SP, 0H |
0A8F | r(40E80004): ADD R0, SP, 4H |
0A90 | r .FIXUP D |
0A90 | r(8D000054): LDR SB, MT, MOD0 [Graphics] |
0A91 | r(41D8015C): ADD R1, SB, 15CH [data] |
0A92 | r(D746E40C): BL MT [trap=0, pos=18148] |
0A93 | s(80E00004): LDR R0, SP, 4H |
0A94 | s .FIXUP D |
0A94 | s(8D000004): LDR SB, MT, MOD0 [Graphics] |
0A95 | s(A0D001A0): STR R0, SB, 1A0H [data] |
0A96 | t(80E00004): LDR R0, SP, 4H |
0A97 | t(D146F74C): BLEQ MT [trap=4, pos=18167] |
| ENDu NewCaption; |
0A98 | u(81D001AC): LDR R1, SB, 1ACH |
0A99 | u(A1000014): STR R1, R0, 14H |
0A9A | u(8FE00000): LDR LNK, SP, 0H |
0A9B | u(4EE80008): ADD SP, SP, 8H |
0A9C | u(C700000F): B LNK |
| |
| PROCEDURE CopyCaption(src, dst: Object); |
| VAR ch: CHAR; R: Texts.Reader; |
| BEGINv |
0A9D | v(4EE90044): SUB SP, SP, 44H |
0A9E | v(AFE00000): STR LNK, SP, 0H |
0A9F | v(A0E00004): STR R0, SP, 4H |
0AA0 | v(A1E00008): STR R1, SP, 8H |
| dst.xw := src.xx;y dst.yz := src.ya;b dst.wc := src.wd;e dst.hf := src.hg;h dst.coli := src.colj;k |
0AA1 | w(80E00008): LDR R0, SP, 8H |
0AA2 | w(D147774C): BLEQ MT [trap=4, pos=18295] |
0AA3 | x(81E00004): LDR R1, SP, 4H |
0AA4 | x(D147804C): BLEQ MT [trap=4, pos=18304] |
0AA5 | y(81100000): LDR R1, R1, 0H |
0AA6 | y(A1000000): STR R1, R0, 0H |
0AA7 | z(80E00008): LDR R0, SP, 8H |
0AA8 | z(D147874C): BLEQ MT [trap=4, pos=18311] |
0AA9 | a(81E00004): LDR R1, SP, 4H |
0AAA | a(D147904C): BLEQ MT [trap=4, pos=18320] |
0AAB | b(81100004): LDR R1, R1, 4H |
0AAC | b(A1000004): STR R1, R0, 4H |
0AAD | c(80E00008): LDR R0, SP, 8H |
0AAE | c(D147974C): BLEQ MT [trap=4, pos=18327] |
0AAF | d(81E00004): LDR R1, SP, 4H |
0AB0 | d(D147A04C): BLEQ MT [trap=4, pos=18336] |
0AB1 | e(81100008): LDR R1, R1, 8H |
0AB2 | e(A1000008): STR R1, R0, 8H |
0AB3 | f(80E00008): LDR R0, SP, 8H |
0AB4 | f(D147A74C): BLEQ MT [trap=4, pos=18343] |
0AB5 | g(81E00004): LDR R1, SP, 4H |
0AB6 | g(D147B04C): BLEQ MT [trap=4, pos=18352] |
0AB7 | h(8110000C): LDR R1, R1, CH |
0AB8 | h(A100000C): STR R1, R0, CH |
0AB9 | i(80E00008): LDR R0, SP, 8H |
0ABA | i(D147B94C): BLEQ MT [trap=4, pos=18361] |
0ABB | j(81E00004): LDR R1, SP, 4H |
0ABC | j(D147C44C): BLEQ MT [trap=4, pos=18372] |
0ABD | k(91100010): LDR R1, R1, 10H |
0ABE | k(B1000010): STR R1, R0, 10H |
| dst(Caption)l.pos := T.lenm + 1;n dst(Caption)o.len := src(Caption)p.len;q |
0ABF | l(80E00008): LDR R0, SP, 8H |
0AC0 | l(E1000005): BEQ 5 [0AC6H] |
0AC1 | l(810FFFF8): LDR R1, R0, FFFFFFF8H |
0AC2 | l(81100004): LDR R1, R1, 4H |
0AC3 | l .FIXUP D |
0AC3 | l(8D00002F): LDR SB, MT, MOD0 [Graphics] |
0AC4 | l(42D8015C): ADD R2, SB, 15CH [data] |
0AC5 | l(02290001): SUB R2, R2, R1 |
0AC6 | l(D947D62C): BLNE MT [trap=2, pos=18390] |
0AC7 | m(81D001A4): LDR R1, SB, 1A4H |
0AC8 | m(D147E34C): BLEQ MT [trap=4, pos=18403] |
0AC9 | n(81100000): LDR R1, R1, 0H |
0ACA | n(41180001): ADD R1, R1, 1H |
0ACB | n(A100001C): STR R1, R0, 1CH |
0ACC | o(80E00008): LDR R0, SP, 8H |
0ACD | o(E1000004): BEQ 4 [0AD2H] |
0ACE | o(810FFFF8): LDR R1, R0, FFFFFFF8H |
0ACF | o(81100004): LDR R1, R1, 4H |
0AD0 | o(42D8015C): ADD R2, SB, 15CH |
0AD1 | o(02290001): SUB R2, R2, R1 |
0AD2 | o(D947F52C): BLNE MT [trap=2, pos=18421] |
0AD3 | p(81E00004): LDR R1, SP, 4H |
0AD4 | p(E1000004): BEQ 4 [0AD9H] |
0AD5 | p(821FFFF8): LDR R2, R1, FFFFFFF8H |
0AD6 | p(82200004): LDR R2, R2, 4H |
0AD7 | p(43D8015C): ADD R3, SB, 15CH |
0AD8 | p(03390002): SUB R3, R3, R2 |
0AD9 | p(D948092C): BLNE MT [trap=2, pos=18441] |
0ADA | q(81100020): LDR R1, R1, 20H |
0ADB | q(A1000020): STR R1, R0, 20H |
| Texts.Write(TW,r 0DX)s;t Texts.OpenReader(R,u T,v src(Caption)w.pos)x;y |
0ADC | r(40D801E4): ADD R0, SB, 1E4H |
0ADD | r .FIXUP D |
0ADD | r(8D40001A): LDR SB, MT, MOD4 [Texts] |
0ADE | r(41D80005): ADD R1, SB, VAR5 |
0ADF | s(4200000D): MOV R2, R0, DH |
0AE0 | t .FIXUP P |
0AE0 | t(F741B292): BL MOD4 [Texts] PROC27 |
0AE1 | u(40E80010): ADD R0, SP, 10H |
0AE2 | u .FIXUP D |
0AE2 | u(8D400005): LDR SB, MT, MOD4 [Texts] |
0AE3 | u(41D80002): ADD R1, SB, VAR2 |
0AE4 | v .FIXUP D |
0AE4 | v(8D000002): LDR SB, MT, MOD0 [Graphics] |
0AE5 | v(82D001A4): LDR R2, SB, 1A4H [data] |
0AE6 | w(83E00004): LDR R3, SP, 4H |
0AE7 | w(E1000004): BEQ 4 [0AECH] |
0AE8 | w(843FFFF8): LDR R4, R3, FFFFFFF8H |
0AE9 | w(84400004): LDR R4, R4, 4H |
0AEA | w(45D8015C): ADD R5, SB, 15CH |
0AEB | w(05590004): SUB R5, R5, R4 |
0AEC | w(D9484C2C): BLNE MT [trap=2, pos=18508] |
0AED | x(8330001C): LDR R3, R3, 1CH |
0AEE | y .FIXUP P |
0AEE | y(F741200E): BL MOD4 [Texts] PROC18 |
| Texts.Read(R,z ch)a;b TW.fnt := R.fnt;c |
0AEF | z(40E80010): ADD R0, SP, 10H |
0AF0 | z .FIXUP D |
0AF0 | z(8D40000C): LDR SB, MT, MOD4 [Texts] |
0AF1 | z(41D80002): ADD R1, SB, VAR2 |
0AF2 | a(42E8000C): ADD R2, SP, CH |
0AF3 | b .FIXUP P |
0AF3 | b(F7413005): BL MOD4 [Texts] PROC19 |
0AF4 | c(80E00014): LDR R0, SP, 14H |
0AF5 | c .FIXUP D |
0AF5 | c(8D000005): LDR SB, MT, MOD0 [Graphics] |
0AF6 | c(A0D001E8): STR R0, SB, 1E8H [data] |
| WHILE ch > 0DX DOd Texts.Write(TW,e ch)f;g Texts.Read(R,h ch)i ENDj ; |
0AF7 | d(90E0000C): LDR R0, SP, CH |
0AF8 | d(4009000D): SUB R0, R0, DH |
0AF9 | d(E600000C): BLE 12 [0B06H] |
0AFA | e .FIXUP D |
0AFA | e(8D000005): LDR SB, MT, MOD0 [Graphics] |
0AFB | e(40D801E4): ADD R0, SB, 1E4H [data] |
0AFC | e .FIXUP D |
0AFC | e(8D400002): LDR SB, MT, MOD4 [Texts] |
0AFD | e(41D80005): ADD R1, SB, VAR5 |
0AFE | f(92E0000C): LDR R2, SP, CH |
0AFF | g .FIXUP P |
0AFF | g(F741B00C): BL MOD4 [Texts] PROC27 |
0B00 | h(40E80010): ADD R0, SP, 10H |
0B01 | h .FIXUP D |
0B01 | h(8D400005): LDR SB, MT, MOD4 [Texts] |
0B02 | h(41D80002): ADD R1, SB, VAR2 |
0B03 | i(42E8000C): ADD R2, SP, CH |
0B04 | j .FIXUP P |
0B04 | j(F7413005): BL MOD4 [Texts] PROC19 |
0B05 | j(E7FFFFF1): B -15 [0AF7H] |
| Texts.Append(T,k TW.buf)l |
0B06 | k .FIXUP D |
0B06 | k(8D000005): LDR SB, MT, MOD0 [Graphics] |
0B07 | k(80D001A4): LDR R0, SB, 1A4H [data] |
0B08 | l(81D001E4): LDR R1, SB, 1E4H |
| ENDm CopyCaption; |
0B09 | m .FIXUP P |
0B09 | m(F740E005): BL MOD4 [Texts] PROC14 |
0B0A | m(8FE00000): LDR LNK, SP, 0H |
0B0B | m(4EE80044): ADD SP, SP, 44H |
0B0C | m(C700000F): B LNK |
| |
| PROCEDURE ChangeCaption(obj: Object; VAR M: Msg); |
| VAR dx, x1, dy, y1, w, w1, h1, len: INTEGER; |
| pos: LONGINT; |
| ch: CHAR; patadr: INTEGER; fnt: Fonts.Font; |
| R: Texts.Reader; |
| BEGINn |
0B0D | n(4EE90074): SUB SP, SP, 74H |
0B0E | n(AFE00000): STR LNK, SP, 0H |
0B0F | n(A0E00004): STR R0, SP, 4H |
0B10 | n(A1E00008): STR R1, SP, 8H |
0B11 | n(A2E0000C): STR R2, SP, CH |
| CASE M OF |
| FontMsg:o fnt := M(FontMsg).fnt;p w := 0;q len := 0;r pos := obj(Caption)s.pos;t |
0B12 | o(80E0000C): LDR R0, SP, CH |
0B13 | o(80000004): LDR R0, R0, 4H |
0B14 | o .FIXUP D |
0B14 | o(8D00000E): LDR SB, MT, MOD0 [Graphics] |
0B15 | o(41D80058): ADD R1, SB, 58H [data] |
0B16 | o(01190000): SUB R1, R1, R0 |
0B17 | o(E900005B): BNE 91 [0B73H] |
0B18 | p(80E00008): LDR R0, SP, 8H |
0B19 | p(80000000): LDR R0, R0, 0H |
0B1A | p(A0E0003C): STR R0, SP, 3CH |
0B1B | q(40000000): MOV R0, R0, 0H |
0B1C | q(A0E00020): STR R0, SP, 20H |
0B1D | r(40000000): MOV R0, R0, 0H |
0B1E | r(A0E0002C): STR R0, SP, 2CH |
0B1F | s(80E00004): LDR R0, SP, 4H |
0B20 | s(E1000005): BEQ 5 [0B26H] |
0B21 | s(810FFFF8): LDR R1, R0, FFFFFFF8H |
0B22 | s(81100004): LDR R1, R1, 4H |
0B23 | s .FIXUP D |
0B23 | s(8D00000F): LDR SB, MT, MOD0 [Graphics] |
0B24 | s(42D8015C): ADD R2, SB, 15CH [data] |
0B25 | s(02290001): SUB R2, R2, R1 |
0B26 | s(D94A102C): BLNE MT [trap=2, pos=18960] |
0B27 | t(8000001C): LDR R0, R0, 1CH |
0B28 | t(A0E00030): STR R0, SP, 30H |
| Texts.OpenReader(R,u T,v pos)w;x Texts.Read(R,y ch)z;a dy := R.fnt.minYb;c |
0B29 | u(40E80040): ADD R0, SP, 40H |
0B2A | u .FIXUP D |
0B2A | u(8D400007): LDR SB, MT, MOD4 [Texts] |
0B2B | u(41D80002): ADD R1, SB, VAR2 |
0B2C | v .FIXUP D |
0B2C | v(8D000002): LDR SB, MT, MOD0 [Graphics] |
0B2D | v(82D001A4): LDR R2, SB, 1A4H [data] |
0B2E | w(83E00030): LDR R3, SP, 30H |
0B2F | x .FIXUP P |
0B2F | x(F7412026): BL MOD4 [Texts] PROC18 |
0B30 | y(40E80040): ADD R0, SP, 40H |
0B31 | y .FIXUP D |
0B31 | y(8D400005): LDR SB, MT, MOD4 [Texts] |
0B32 | y(41D80002): ADD R1, SB, VAR2 |
0B33 | z(42E80034): ADD R2, SP, 34H |
0B34 | a .FIXUP P |
0B34 | a(F7413005): BL MOD4 [Texts] PROC19 |
0B35 | b(80E00044): LDR R0, SP, 44H |
0B36 | b(D14A5C4C): BLEQ MT [trap=4, pos=19036] |
0B37 | c(8000002C): LDR R0, R0, 2CH |
0B38 | c(A0E00018): STR R0, SP, 18H |
| WHILE ch > 0DX DOd |
0B39 | d(90E00034): LDR R0, SP, 34H |
0B3A | d(4009000D): SUB R0, R0, DH |
0B3B | d(E6000016): BLE 22 [0B52H] |
| Fonts.GetPat(fnt,e ch,f dx,g x1,h y1,i w1,j h1,k patadr)l;m |
0B3C | e(80E0003C): LDR R0, SP, 3CH |
0B3D | f(91E00034): LDR R1, SP, 34H |
0B3E | g(42E80010): ADD R2, SP, 10H |
0B3F | h(43E80014): ADD R3, SP, 14H |
0B40 | i(44E8001C): ADD R4, SP, 1CH |
0B41 | j(45E80024): ADD R5, SP, 24H |
0B42 | k(46E80028): ADD R6, SP, 28H |
0B43 | l(47E80038): ADD R7, SP, 38H |
0B44 | m .FIXUP P |
0B44 | m(F7304010): BL MOD3 [Fonts] PROC4 |
| INC(w, dx);n INC(len);o Texts.Read(R,p ch)q |
0B45 | n(80E00020): LDR R0, SP, 20H |
0B46 | n(81E00010): LDR R1, SP, 10H |
0B47 | n(00080001): ADD R0, R0, R1 |
0B48 | n(A0E00020): STR R0, SP, 20H |
0B49 | o(80E0002C): LDR R0, SP, 2CH |
0B4A | o(40080001): ADD R0, R0, 1H |
0B4B | o(A0E0002C): STR R0, SP, 2CH |
0B4C | p(40E80040): ADD R0, SP, 40H |
0B4D | p .FIXUP D |
0B4D | p(8D40001C): LDR SB, MT, MOD4 [Texts] |
0B4E | p(41D80002): ADD R1, SB, VAR2 |
0B4F | q(42E80034): ADD R2, SP, 34H |
| ENDr ; |
0B50 | r .FIXUP P |
0B50 | r(F741300C): BL MOD4 [Texts] PROC19 |
0B51 | r(E7FFFFE7): B -25 [0B39H] |
| INC(obj.ys, fnt.minYt-dy)u;v obj.ww := w;x obj.hy := fnt.heightz;a |
0B52 | s(80E00004): LDR R0, SP, 4H |
0B53 | s(D14AFC4C): BLEQ MT [trap=4, pos=19196] |
0B54 | t(81E0003C): LDR R1, SP, 3CH |
0B55 | t(D14B064C): BLEQ MT [trap=4, pos=19206] |
0B56 | u(8110002C): LDR R1, R1, 2CH |
0B57 | u(82E00018): LDR R2, SP, 18H |
0B58 | u(01190002): SUB R1, R1, R2 |
0B59 | v(40080004): ADD R0, R0, 4H |
0B5A | v(82000000): LDR R2, R0, 0H |
0B5B | v(02280001): ADD R2, R2, R1 |
0B5C | v(A2000000): STR R2, R0, 0H |
0B5D | w(80E00004): LDR R0, SP, 4H |
0B5E | w(D14B114C): BLEQ MT [trap=4, pos=19217] |
0B5F | x(81E00020): LDR R1, SP, 20H |
0B60 | x(A1000008): STR R1, R0, 8H |
0B61 | y(80E00004): LDR R0, SP, 4H |
0B62 | y(D14B1D4C): BLEQ MT [trap=4, pos=19229] |
0B63 | z(81E0003C): LDR R1, SP, 3CH |
0B64 | z(D14B2B4C): BLEQ MT [trap=4, pos=19243] |
0B65 | a(81100020): LDR R1, R1, 20H |
0B66 | a(A100000C): STR R1, R0, CH |
| Texts.ChangeLooks(T,b pos,c pos+len,d {0},e fnt,f 0 ,g 0)h |i |
0B67 | b .FIXUP D |
0B67 | b(8D00001A): LDR SB, MT, MOD0 [Graphics] |
0B68 | b(80D001A4): LDR R0, SB, 1A4H [data] |
0B69 | c(81E00030): LDR R1, SP, 30H |
0B6A | d(82E00030): LDR R2, SP, 30H |
0B6B | d(83E0002C): LDR R3, SP, 2CH |
0B6C | d(02280003): ADD R2, R2, R3 |
0B6D | e(43000001): MOV R3, R0, 1H |
0B6E | f(84E0003C): LDR R4, SP, 3CH |
0B6F | g(45000000): MOV R5, R0, 0H |
0B70 | h(46000000): MOV R6, R0, 0H |
0B71 | i .FIXUP P |
0B71 | i(F7410021): BL MOD4 [Texts] PROC16 |
| ColorMsgj:k obj.coll := M(ColorMsg).col |
0B72 | j(E700000B): B 11 [0B7EH] |
0B73 | k(80E0000C): LDR R0, SP, CH |
0B74 | k(80000004): LDR R0, R0, 4H |
0B75 | k .FIXUP D |
0B75 | k(8D00000E): LDR SB, MT, MOD0 [Graphics] |
0B76 | k(41D80044): ADD R1, SB, 44H [data] |
0B77 | k(01190000): SUB R1, R1, R0 |
0B78 | k(E9000005): BNE 5 [0B7EH] |
0B79 | l(80E00004): LDR R0, SP, 4H |
0B7A | l(D14B7E4C): BLEQ MT [trap=4, pos=19326] |
| ENDm |
0B7B | m(81E00008): LDR R1, SP, 8H |
0B7C | m(81100000): LDR R1, R1, 0H |
0B7D | m(B1000010): STR R1, R0, 10H |
| ENDn ChangeCaption; |
0B7E | n(8FE00000): LDR LNK, SP, 0H |
0B7F | n(4EE80074): ADD SP, SP, 74H |
0B80 | n(C700000F): B LNK |
| |
| PROCEDURE CaptionSelectable(obj: Object; x, y: INTEGER): BOOLEAN; |
| BEGINo |
0B81 | o(4EE90010): SUB SP, SP, 10H |
0B82 | o(AFE00000): STR LNK, SP, 0H |
0B83 | o(A0E00004): STR R0, SP, 4H |
0B84 | o(A1E00008): STR R1, SP, 8H |
0B85 | o(A2E0000C): STR R2, SP, CH |
| RETURN (obj.xp <= x)q & (rx < obj.xs + obj.wt)u & (vobj.yw <= y)x & (yy < obj.yz + obj.ha)b |
0B86 | p(80E00004): LDR R0, SP, 4H |
0B87 | p(D14C0D4C): BLEQ MT [trap=4, pos=19469] |
0B88 | q(80000000): LDR R0, R0, 0H |
0B89 | q(81E00008): LDR R1, SP, 8H |
0B8A | q(00090001): SUB R0, R0, R1 |
0B8B | r(EE00001C): BGT 28 [0BA8H] |
0B8C | s(80E00004): LDR R0, SP, 4H |
0B8D | s(D14C204C): BLEQ MT [trap=4, pos=19488] |
0B8E | t(81E00004): LDR R1, SP, 4H |
0B8F | t(D14C284C): BLEQ MT [trap=4, pos=19496] |
0B90 | u(80000000): LDR R0, R0, 0H |
0B91 | u(81100008): LDR R1, R1, 8H |
0B92 | u(00080001): ADD R0, R0, R1 |
0B93 | u(81E00008): LDR R1, SP, 8H |
0B94 | u(01190000): SUB R1, R1, R0 |
0B95 | v(ED000012): BGE 18 [0BA8H] |
0B96 | w(80E00004): LDR R0, SP, 4H |
0B97 | w(D14C324C): BLEQ MT [trap=4, pos=19506] |
0B98 | x(80000004): LDR R0, R0, 4H |
0B99 | x(81E0000C): LDR R1, SP, CH |
0B9A | x(00090001): SUB R0, R0, R1 |
0B9B | y(EE00000C): BGT 12 [0BA8H] |
0B9C | z(80E00004): LDR R0, SP, 4H |
0B9D | z(D14C454C): BLEQ MT [trap=4, pos=19525] |
0B9E | a(81E00004): LDR R1, SP, 4H |
0B9F | a(D14C4D4C): BLEQ MT [trap=4, pos=19533] |
0BA0 | b(80000004): LDR R0, R0, 4H |
0BA1 | b(8110000C): LDR R1, R1, CH |
0BA2 | b(00080001): ADD R0, R0, R1 |
0BA3 | b(81E0000C): LDR R1, SP, CH |
0BA4 | b(01190000): SUB R1, R1, R0 |
| ENDc CaptionSelectable; |
0BA5 | c(ED000002): BGE 2 [0BA8H] |
0BA6 | c(40000001): MOV R0, R0, 1H |
0BA7 | c(E7000001): B 1 [0BA9H] |
0BA8 | c(40000000): MOV R0, R0, 0H |
0BA9 | c(8FE00000): LDR LNK, SP, 0H |
0BAA | c(4EE80010): ADD SP, SP, 10H |
0BAB | c(C700000F): B LNK |
| |
| PROCEDURE ReadCaption(obj: Object; VAR R: Files.Rider; VAR C: Context); |
| VAR ch: CHAR; fno: BYTE; len: INTEGER; |
| BEGINd obj(Caption)e.pos := T.lenf + 1;g Texts.Write(TW,h 0DX)i;j |
0BAC | d(4EE90020): SUB SP, SP, 20H |
0BAD | d(AFE00000): STR LNK, SP, 0H |
0BAE | d(A0E00004): STR R0, SP, 4H |
0BAF | d(A1E00008): STR R1, SP, 8H |
0BB0 | d(A2E0000C): STR R2, SP, CH |
0BB1 | d(A3E00010): STR R3, SP, 10H |
0BB2 | d(A4E00014): STR R4, SP, 14H |
0BB3 | e(80E00004): LDR R0, SP, 4H |
0BB4 | e(E1000005): BEQ 5 [0BBAH] |
0BB5 | e(810FFFF8): LDR R1, R0, FFFFFFF8H |
0BB6 | e(81100004): LDR R1, R1, 4H |
0BB7 | e .FIXUP D |
0BB7 | e(8D000042): LDR SB, MT, MOD0 [Graphics] |
0BB8 | e(42D8015C): ADD R2, SB, 15CH [data] |
0BB9 | e(02290001): SUB R2, R2, R1 |
0BBA | e(D94CF22C): BLNE MT [trap=2, pos=19698] |
0BBB | f(81D001A4): LDR R1, SB, 1A4H |
0BBC | f(D14CFF4C): BLEQ MT [trap=4, pos=19711] |
0BBD | g(81100000): LDR R1, R1, 0H |
0BBE | g(41180001): ADD R1, R1, 1H |
0BBF | g(A100001C): STR R1, R0, 1CH |
0BC0 | h(40D801E4): ADD R0, SB, 1E4H |
0BC1 | h .FIXUP D |
0BC1 | h(8D40000A): LDR SB, MT, MOD4 [Texts] |
0BC2 | h(41D80005): ADD R1, SB, VAR5 |
0BC3 | i(4200000D): MOV R2, R0, DH |
0BC4 | j .FIXUP P |
0BC4 | j(F741B053): BL MOD4 [Texts] PROC27 |
| Files.ReadByte(R,k fno)l;m TW.fnt := C.font[fno]n;o len := 0;p Files.Read(R,q ch)r;s |
0BC5 | k(80E00008): LDR R0, SP, 8H |
0BC6 | k(81E0000C): LDR R1, SP, CH |
0BC7 | l(42E80019): ADD R2, SP, 19H |
0BC8 | m .FIXUP P |
0BC8 | m(F710E004): BL MOD1 [Files] PROC14 |
0BC9 | n(90E00019): LDR R0, SP, 19H |
0BCA | n(4109000A): SUB R1, R0, AH |
0BCB | n(DA4D4C1C): BLCC MT [trap=1, pos=19788] |
0BCC | n(40010002): LSL R0, R0, 2H |
0BCD | n(81E00010): LDR R1, SP, 10H |
0BCE | n(00180000): ADD R0, R1, R0 |
0BCF | o(8000000C): LDR R0, R0, CH |
0BD0 | o .FIXUP D |
0BD0 | o(8D00000F): LDR SB, MT, MOD0 [Graphics] |
0BD1 | o(A0D001E8): STR R0, SB, 1E8H [data] |
0BD2 | p(40000000): MOV R0, R0, 0H |
0BD3 | p(A0E0001C): STR R0, SP, 1CH |
0BD4 | q(80E00008): LDR R0, SP, 8H |
0BD5 | q(81E0000C): LDR R1, SP, CH |
0BD6 | r(42E80018): ADD R2, SP, 18H |
0BD7 | s .FIXUP P |
0BD7 | s(F711000F): BL MOD1 [Files] PROC16 |
| WHILE ch > 0DX DOt Texts.Write(TW,u ch)v;w INC(len);x Files.Read(R,y ch)z ENDa ; |
0BD8 | t(90E00018): LDR R0, SP, 18H |
0BD9 | t(4009000D): SUB R0, R0, DH |
0BDA | t(E600000E): BLE 14 [0BE9H] |
0BDB | u .FIXUP D |
0BDB | u(8D00000B): LDR SB, MT, MOD0 [Graphics] |
0BDC | u(40D801E4): ADD R0, SB, 1E4H [data] |
0BDD | u .FIXUP D |
0BDD | u(8D400002): LDR SB, MT, MOD4 [Texts] |
0BDE | u(41D80005): ADD R1, SB, VAR5 |
0BDF | v(92E00018): LDR R2, SP, 18H |
0BE0 | w .FIXUP P |
0BE0 | w(F741B009): BL MOD4 [Texts] PROC27 |
0BE1 | x(80E0001C): LDR R0, SP, 1CH |
0BE2 | x(40080001): ADD R0, R0, 1H |
0BE3 | x(A0E0001C): STR R0, SP, 1CH |
0BE4 | y(80E00008): LDR R0, SP, 8H |
0BE5 | y(81E0000C): LDR R1, SP, CH |
0BE6 | z(42E80018): ADD R2, SP, 18H |
0BE7 | a .FIXUP P |
0BE7 | a(F7110007): BL MOD1 [Files] PROC16 |
0BE8 | a(E7FFFFEF): B -17 [0BD8H] |
| obj(Caption)b.len := len;c Texts.Append(T,d TW.buf)e |
0BE9 | b(80E00004): LDR R0, SP, 4H |
0BEA | b(E1000005): BEQ 5 [0BF0H] |
0BEB | b(810FFFF8): LDR R1, R0, FFFFFFF8H |
0BEC | b(81100004): LDR R1, R1, 4H |
0BED | b .FIXUP D |
0BED | b(8D000010): LDR SB, MT, MOD0 [Graphics] |
0BEE | b(42D8015C): ADD R2, SB, 15CH [data] |
0BEF | b(02290001): SUB R2, R2, R1 |
0BF0 | b(D94DC82C): BLNE MT [trap=2, pos=19912] |
0BF1 | c(81E0001C): LDR R1, SP, 1CH |
0BF2 | c(A1000020): STR R1, R0, 20H |
0BF3 | d(80D001A4): LDR R0, SB, 1A4H |
0BF4 | e(81D001E4): LDR R1, SB, 1E4H |
| ENDf ReadCaption; |
0BF5 | f .FIXUP P |
0BF5 | f(F740E00E): BL MOD4 [Texts] PROC14 |
0BF6 | f(8FE00000): LDR LNK, SP, 0H |
0BF7 | f(4EE80020): ADD SP, SP, 20H |
0BF8 | f(C700000F): B LNK |
| |
| PROCEDURE WriteCaption(obj: Object; cno: INTEGER; VAR W: Files.Rider; VAR C: Context); |
| VAR ch: CHAR; fno: BYTE; |
| TR: Texts.Reader; |
| BEGINg |
0BF9 | g(4EE90054): SUB SP, SP, 54H |
0BFA | g(AFE00000): STR LNK, SP, 0H |
0BFB | g(A0E00004): STR R0, SP, 4H |
0BFC | g(A1E00008): STR R1, SP, 8H |
0BFD | g(A2E0000C): STR R2, SP, CH |
0BFE | g(A3E00010): STR R3, SP, 10H |
0BFF | g(A4E00014): STR R4, SP, 14H |
0C00 | g(A5E00018): STR R5, SP, 18H |
| IF obj(Caption)h.len > 0 THENi |
0C01 | h(80E00004): LDR R0, SP, 4H |
0C02 | h(E1000005): BEQ 5 [0C08H] |
0C03 | h(810FFFF8): LDR R1, R0, FFFFFFF8H |
0C04 | h(81100004): LDR R1, R1, 4H |
0C05 | h .FIXUP D |
0C05 | h(8D000018): LDR SB, MT, MOD0 [Graphics] |
0C06 | h(42D8015C): ADD R2, SB, 15CH [data] |
0C07 | h(02290001): SUB R2, R2, R1 |
0C08 | h(D94EAA2C): BLNE MT [trap=2, pos=20138] |
0C09 | i(80000020): LDR R0, R0, 20H |
0C0A | i(40090000): SUB R0, R0, 0H |
0C0B | i(E6000034): BLE 52 [0C40H] |
| Texts.OpenReader(TR,j T,k obj(Caption)l.pos)m;n Texts.Read(TR,o ch)p;q |
0C0C | j(40E80020): ADD R0, SP, 20H |
0C0D | j .FIXUP D |
0C0D | j(8D400008): LDR SB, MT, MOD4 [Texts] |
0C0E | j(41D80002): ADD R1, SB, VAR2 |
0C0F | k .FIXUP D |
0C0F | k(8D000002): LDR SB, MT, MOD0 [Graphics] |
0C10 | k(82D001A4): LDR R2, SB, 1A4H [data] |
0C11 | l(83E00004): LDR R3, SP, 4H |
0C12 | l(E1000004): BEQ 4 [0C17H] |
0C13 | l(843FFFF8): LDR R4, R3, FFFFFFF8H |
0C14 | l(84400004): LDR R4, R4, 4H |
0C15 | l(45D8015C): ADD R5, SB, 15CH |
0C16 | l(05590004): SUB R5, R5, R4 |
0C17 | l(D94EE22C): BLNE MT [trap=2, pos=20194] |
0C18 | m(8330001C): LDR R3, R3, 1CH |
0C19 | n .FIXUP P |
0C19 | n(F7412024): BL MOD4 [Texts] PROC18 |
0C1A | o(40E80020): ADD R0, SP, 20H |
0C1B | o .FIXUP D |
0C1B | o(8D40000C): LDR SB, MT, MOD4 [Texts] |
0C1C | o(41D80002): ADD R1, SB, VAR2 |
0C1D | p(42E8001C): ADD R2, SP, 1CH |
0C1E | q .FIXUP P |
0C1E | q(F7413005): BL MOD4 [Texts] PROC19 |
| fno := FontNo(W,r C,s TR.fnt)t;u |
0C1F | r(80E0000C): LDR R0, SP, CH |
0C20 | r(81E00010): LDR R1, SP, 10H |
0C21 | s(82E00014): LDR R2, SP, 14H |
0C22 | s(83E00018): LDR R3, SP, 18H |
0C23 | t(84E00024): LDR R4, SP, 24H |
0C24 | u(F7FFF799): BL -2151 [03BEH] |
0C25 | u(B0E0001D): STR R0, SP, 1DH |
| WriteObj(W,v cno,w obj)x;y Files.WriteByte(W,z fno)a;b |
0C26 | v(80E0000C): LDR R0, SP, CH |
0C27 | v(81E00010): LDR R1, SP, 10H |
0C28 | w(82E00008): LDR R2, SP, 8H |
0C29 | x(83E00004): LDR R3, SP, 4H |
0C2A | y(F7FFF861): BL -1951 [048CH] |
0C2B | z(80E0000C): LDR R0, SP, CH |
0C2C | z(81E00010): LDR R1, SP, 10H |
0C2D | a(92E0001D): LDR R2, SP, 1DH |
0C2E | b .FIXUP P |
0C2E | b(F7116010): BL MOD1 [Files] PROC22 |
| WHILE ch > 0DX DOc Files.Write(W,d ch)e;f Texts.Read(TR,g ch)h ENDi ; |
0C2F | c(90E0001C): LDR R0, SP, 1CH |
0C30 | c(4009000D): SUB R0, R0, DH |
0C31 | c(E600000A): BLE 10 [0C3CH] |
0C32 | d(80E0000C): LDR R0, SP, CH |
0C33 | d(81E00010): LDR R1, SP, 10H |
0C34 | e(92E0001C): LDR R2, SP, 1CH |
0C35 | f .FIXUP P |
0C35 | f(F7118007): BL MOD1 [Files] PROC24 |
0C36 | g(40E80020): ADD R0, SP, 20H |
0C37 | g .FIXUP D |
0C37 | g(8D40001C): LDR SB, MT, MOD4 [Texts] |
0C38 | g(41D80002): ADD R1, SB, VAR2 |
0C39 | h(42E8001C): ADD R2, SP, 1CH |
0C3A | i .FIXUP P |
0C3A | i(F7413005): BL MOD4 [Texts] PROC19 |
0C3B | i(E7FFFFF3): B -13 [0C2FH] |
| Files.Write(W,j 0X)k |
0C3C | j(80E0000C): LDR R0, SP, CH |
0C3D | j(81E00010): LDR R1, SP, 10H |
0C3E | k(42000000): MOV R2, R0, 0H |
| ENDl |
0C3F | l .FIXUP P |
0C3F | l(F7118005): BL MOD1 [Files] PROC24 |
| ENDm WriteCaption; |
0C40 | m(8FE00000): LDR LNK, SP, 0H |
0C41 | m(4EE80054): ADD SP, SP, 54H |
0C42 | m(C700000F): B LNK |
| |
| (* PROCEDURE PrintCaption(obj: Object; x, y: INTEGER); |
| VAR fnt: Fonts.Font; |
| i: INTEGER; ch: CHAR; |
| R: Texts.Reader; |
| s: ARRAY 128 OF CHAR; |
| BEGIN |
| IF obj(Caption).len > 0 THEN |
| Texts.OpenReader(R, T, obj(Caption).pos); Texts.Read(R, ch); |
| fnt := R.fnt; DEC(y, fnt.minY*4); i := 0; |
| WHILE ch >= " " DO s[i] := ch; INC(i); Texts.Read(R, ch) END ; |
| s[i] := 0X; |
| IF i > 0 THEN Printer.String(obj.x*4 + x, obj.y*4 + y, s, fnt.name) END |
| END |
| END PrintCaption; *) |
| |
| (* ---------------------- Macro Methods ------------------------ *) |
| |
| PROCEDURE NewMacro; |
| VAR mac: Macro; |
| BEGINn NEW(mac);o new := mac;p mac.doq := MacMethod |
0C43 | n(4EE90008): SUB SP, SP, 8H |
0C44 | n(AFE00000): STR LNK, SP, 0H |
0C45 | o(40E80004): ADD R0, SP, 4H |
0C46 | o .FIXUP D |
0C46 | o(8D00000F): LDR SB, MT, MOD0 [Graphics] |
0C47 | o(41D80178): ADD R1, SB, 178H [data] |
0C48 | o(D752550C): BL MT [trap=0, pos=21077] |
0C49 | p(80E00004): LDR R0, SP, 4H |
0C4A | p .FIXUP D |
0C4A | p(8D000004): LDR SB, MT, MOD0 [Graphics] |
0C4B | p(A0D001A0): STR R0, SB, 1A0H [data] |
0C4C | q(80E00004): LDR R0, SP, 4H |
0C4D | q(D152684C): BLEQ MT [trap=4, pos=21096] |
| ENDr NewMacro; |
0C4E | r(81D001B0): LDR R1, SB, 1B0H |
0C4F | r(A1000014): STR R1, R0, 14H |
0C50 | r(8FE00000): LDR LNK, SP, 0H |
0C51 | r(4EE80008): ADD SP, SP, 8H |
0C52 | r(C700000F): B LNK |
| |
| PROCEDURE CopyMacro(src, dst: Object); |
| BEGINs dst.xt := src.xu;v dst.yw := src.yx;y dst.wz := src.wa;b dst.hc := src.hd;e |
0C53 | s(4EE9000C): SUB SP, SP, CH |
0C54 | s(AFE00000): STR LNK, SP, 0H |
0C55 | s(A0E00004): STR R0, SP, 4H |
0C56 | s(A1E00008): STR R1, SP, 8H |
0C57 | t(80E00008): LDR R0, SP, 8H |
0C58 | t(D152BD4C): BLEQ MT [trap=4, pos=21181] |
0C59 | u(81E00004): LDR R1, SP, 4H |
0C5A | u(D152C64C): BLEQ MT [trap=4, pos=21190] |
0C5B | v(81100000): LDR R1, R1, 0H |
0C5C | v(A1000000): STR R1, R0, 0H |
0C5D | w(80E00008): LDR R0, SP, 8H |
0C5E | w(D152CD4C): BLEQ MT [trap=4, pos=21197] |
0C5F | x(81E00004): LDR R1, SP, 4H |
0C60 | x(D152D64C): BLEQ MT [trap=4, pos=21206] |
0C61 | y(81100004): LDR R1, R1, 4H |
0C62 | y(A1000004): STR R1, R0, 4H |
0C63 | z(80E00008): LDR R0, SP, 8H |
0C64 | z(D152DD4C): BLEQ MT [trap=4, pos=21213] |
0C65 | a(81E00004): LDR R1, SP, 4H |
0C66 | a(D152E64C): BLEQ MT [trap=4, pos=21222] |
0C67 | b(81100008): LDR R1, R1, 8H |
0C68 | b(A1000008): STR R1, R0, 8H |
0C69 | c(80E00008): LDR R0, SP, 8H |
0C6A | c(D152ED4C): BLEQ MT [trap=4, pos=21229] |
0C6B | d(81E00004): LDR R1, SP, 4H |
0C6C | d(D152F64C): BLEQ MT [trap=4, pos=21238] |
0C6D | e(8110000C): LDR R1, R1, CH |
0C6E | e(A100000C): STR R1, R0, CH |
| dst.colf := src.colg;h dst(Macro)i.mac := src(Macro)j.mac |
0C6F | f(80E00008): LDR R0, SP, 8H |
0C70 | f(D153034C): BLEQ MT [trap=4, pos=21251] |
0C71 | g(81E00004): LDR R1, SP, 4H |
0C72 | g(D1530E4C): BLEQ MT [trap=4, pos=21262] |
0C73 | h(91100010): LDR R1, R1, 10H |
0C74 | h(B1000010): STR R1, R0, 10H |
0C75 | i(80E00008): LDR R0, SP, 8H |
0C76 | i(E1000005): BEQ 5 [0C7CH] |
0C77 | i(810FFFF8): LDR R1, R0, FFFFFFF8H |
0C78 | i(81100004): LDR R1, R1, 4H |
0C79 | i .FIXUP D |
0C79 | i(8D00002F): LDR SB, MT, MOD0 [Graphics] |
0C7A | i(42D80178): ADD R2, SB, 178H [data] |
0C7B | i(02290001): SUB R2, R2, R1 |
0C7C | i(D9531A2C): BLNE MT [trap=2, pos=21274] |
0C7D | j(81E00004): LDR R1, SP, 4H |
0C7E | j(E1000004): BEQ 4 [0C83H] |
0C7F | j(821FFFF8): LDR R2, R1, FFFFFFF8H |
0C80 | j(82200004): LDR R2, R2, 4H |
0C81 | j(43D80178): ADD R3, SB, 178H |
0C82 | j(03390002): SUB R3, R3, R2 |
0C83 | j(D9532C2C): BLNE MT [trap=2, pos=21292] |
| ENDk CopyMacro; |
0C84 | k(8110001C): LDR R1, R1, 1CH |
0C85 | k(A100001C): STR R1, R0, 1CH |
0C86 | k(8FE00000): LDR LNK, SP, 0H |
0C87 | k(4EE8000C): ADD SP, SP, CH |
0C88 | k(C700000F): B LNK |
| |
| PROCEDURE ChangeMacro(obj: Object; VAR M: Msg); |
| BEGINl |
0C89 | l(4EE90010): SUB SP, SP, 10H |
0C8A | l(AFE00000): STR LNK, SP, 0H |
0C8B | l(A0E00004): STR R0, SP, 4H |
0C8C | l(A1E00008): STR R1, SP, 8H |
0C8D | l(A2E0000C): STR R2, SP, CH |
| CASE M OF ColorMsg:m obj.coln := M.col ENDo |
0C8E | m(80E0000C): LDR R0, SP, CH |
0C8F | m(80000004): LDR R0, R0, 4H |
0C90 | m .FIXUP D |
0C90 | m(8D000017): LDR SB, MT, MOD0 [Graphics] |
0C91 | m(41D80044): ADD R1, SB, 44H [data] |
0C92 | m(01190000): SUB R1, R1, R0 |
0C93 | m(E9000005): BNE 5 [0C99H] |
0C94 | n(80E00004): LDR R0, SP, 4H |
0C95 | n(D1539C4C): BLEQ MT [trap=4, pos=21404] |
0C96 | o(81E00008): LDR R1, SP, 8H |
0C97 | o(81100000): LDR R1, R1, 0H |
0C98 | o(B1000010): STR R1, R0, 10H |
| ENDp ChangeMacro; |
0C99 | p(8FE00000): LDR LNK, SP, 0H |
0C9A | p(4EE80010): ADD SP, SP, 10H |
0C9B | p(C700000F): B LNK |
| |
| PROCEDURE MacroSelectable(obj: Object; x, y: INTEGER): BOOLEAN; |
| BEGINq |
0C9C | q(4EE90010): SUB SP, SP, 10H |
0C9D | q(AFE00000): STR LNK, SP, 0H |
0C9E | q(A0E00004): STR R0, SP, 4H |
0C9F | q(A1E00008): STR R1, SP, 8H |
0CA0 | q(A2E0000C): STR R2, SP, CH |
| RETURN (obj.xr <= x)s & (tx <= obj.xu + 8)v & (wobj.yx <= y)y & (zy <= obj.ya + 8)b |
0CA1 | r(80E00004): LDR R0, SP, 4H |
0CA2 | r(D154194C): BLEQ MT [trap=4, pos=21529] |
0CA3 | s(80000000): LDR R0, R0, 0H |
0CA4 | s(81E00008): LDR R1, SP, 8H |
0CA5 | s(00090001): SUB R0, R0, R1 |
0CA6 | t(EE000016): BGT 22 [0CBDH] |
0CA7 | u(80E00004): LDR R0, SP, 4H |
0CA8 | u(D1542D4C): BLEQ MT [trap=4, pos=21549] |
0CA9 | v(80000000): LDR R0, R0, 0H |
0CAA | v(40080008): ADD R0, R0, 8H |
0CAB | v(81E00008): LDR R1, SP, 8H |
0CAC | v(01190000): SUB R1, R1, R0 |
0CAD | w(EE00000F): BGT 15 [0CBDH] |
0CAE | x(80E00004): LDR R0, SP, 4H |
0CAF | x(D1543B4C): BLEQ MT [trap=4, pos=21563] |
0CB0 | y(80000004): LDR R0, R0, 4H |
0CB1 | y(81E0000C): LDR R1, SP, CH |
0CB2 | y(00090001): SUB R0, R0, R1 |
0CB3 | z(EE000009): BGT 9 [0CBDH] |
0CB4 | a(80E00004): LDR R0, SP, 4H |
0CB5 | a(D1544F4C): BLEQ MT [trap=4, pos=21583] |
0CB6 | b(80000004): LDR R0, R0, 4H |
0CB7 | b(40080008): ADD R0, R0, 8H |
0CB8 | b(81E0000C): LDR R1, SP, CH |
0CB9 | b(01190000): SUB R1, R1, R0 |
| ENDc MacroSelectable; |
0CBA | c(EE000002): BGT 2 [0CBDH] |
0CBB | c(40000001): MOV R0, R0, 1H |
0CBC | c(E7000001): B 1 [0CBEH] |
0CBD | c(40000000): MOV R0, R0, 0H |
0CBE | c(8FE00000): LDR LNK, SP, 0H |
0CBF | c(4EE80010): ADD SP, SP, 10H |
0CC0 | c(C700000F): B LNK |
| |
| PROCEDURE ReadMacro(obj: Object; VAR R: Files.Rider; VAR C: Context); |
| VAR lno: BYTE; name: ARRAY 32 OF CHAR; |
| BEGINd Files.ReadByte(R,e lno)f;g |
0CC1 | d(4EE9003C): SUB SP, SP, 3CH |
0CC2 | d(AFE00000): STR LNK, SP, 0H |
0CC3 | d(A0E00004): STR R0, SP, 4H |
0CC4 | d(A1E00008): STR R1, SP, 8H |
0CC5 | d(A2E0000C): STR R2, SP, CH |
0CC6 | d(A3E00010): STR R3, SP, 10H |
0CC7 | d(A4E00014): STR R4, SP, 14H |
0CC8 | e(80E00008): LDR R0, SP, 8H |
0CC9 | e(81E0000C): LDR R1, SP, CH |
0CCA | f(42E80018): ADD R2, SP, 18H |
0CCB | g .FIXUP P |
0CCB | g(F710E08C): BL MOD1 [Files] PROC14 |
| Files.ReadString(R,h name)i;j obj(Macro)k.mac := ThisMac(Cl.lib[lno]m,n name)o |
0CCC | h(80E00008): LDR R0, SP, 8H |
0CCD | h(81E0000C): LDR R1, SP, CH |
0CCE | i(42E8001C): ADD R2, SP, 1CH |
0CCF | i(43000020): MOV R3, R0, 20H |
0CD0 | j .FIXUP P |
0CD0 | j(F7114005): BL MOD1 [Files] PROC20 |
0CD1 | k(80E00004): LDR R0, SP, 4H |
0CD2 | k(E1000005): BEQ 5 [0CD8H] |
0CD3 | k(810FFFF8): LDR R1, R0, FFFFFFF8H |
0CD4 | k(81100004): LDR R1, R1, 4H |
0CD5 | k .FIXUP D |
0CD5 | k(8D000045): LDR SB, MT, MOD0 [Graphics] |
0CD6 | k(42D80178): ADD R2, SB, 178H [data] |
0CD7 | k(02290001): SUB R2, R2, R1 |
0CD8 | k(D955292C): BLNE MT [trap=2, pos=21801] |
0CD9 | l(4EE90004): SUB SP, SP, 4H |
0CDA | l(A0E00000): STR R0, SP, 0H |
0CDB | m(90E0001C): LDR R0, SP, 1CH |
0CDC | m(41090004): SUB R1, R0, 4H |
0CDD | m(DA55431C): BLCC MT [trap=1, pos=21827] |
0CDE | m(40010002): LSL R0, R0, 2H |
0CDF | m(81E00014): LDR R1, SP, 14H |
0CE0 | m(00180000): ADD R0, R1, R0 |
0CE1 | n(80000034): LDR R0, R0, 34H |
0CE2 | o(41E80020): ADD R1, SP, 20H |
0CE3 | o(42000020): MOV R2, R0, 20H |
| ENDp ReadMacro; |
0CE4 | p(F7FFFB75): BL -1163 [085AH] |
0CE5 | p(01000000): MOV R1, R0, R0 |
0CE6 | p(80E00000): LDR R0, SP, 0H |
0CE7 | p(4EE80004): ADD SP, SP, 4H |
0CE8 | p(A100001C): STR R1, R0, 1CH |
0CE9 | p(8FE00000): LDR LNK, SP, 0H |
0CEA | p(4EE8003C): ADD SP, SP, 3CH |
0CEB | p(C700000F): B LNK |
| |
| PROCEDURE WriteMacro(obj: Object; cno: INTEGER; VAR W1: Files.Rider; VAR C: Context); |
| VAR lno: INTEGER; |
| BEGINq lno := 0;r |
0CEC | q(4EE90020): SUB SP, SP, 20H |
0CED | q(AFE00000): STR LNK, SP, 0H |
0CEE | q(A0E00004): STR R0, SP, 4H |
0CEF | q(A1E00008): STR R1, SP, 8H |
0CF0 | q(A2E0000C): STR R2, SP, CH |
0CF1 | q(A3E00010): STR R3, SP, 10H |
0CF2 | q(A4E00014): STR R4, SP, 14H |
0CF3 | q(A5E00018): STR R5, SP, 18H |
0CF4 | r(40000000): MOV R0, R0, 0H |
0CF5 | r(A0E0001C): STR R0, SP, 1CH |
| WHILE (lno < C.noflibs)s & (tobj(Macro)u.mac.libv # C.lib[lno]w)x DOy INC(lno) ENDz ; |
0CF6 | s(80E0001C): LDR R0, SP, 1CH |
0CF7 | s(81E00014): LDR R1, SP, 14H |
0CF8 | s(81100004): LDR R1, R1, 4H |
0CF9 | s(00090001): SUB R0, R0, R1 |
0CFA | t(ED000018): BGE 24 [0D13H] |
0CFB | u(80E00004): LDR R0, SP, 4H |
0CFC | u(E1000005): BEQ 5 [0D02H] |
0CFD | u(810FFFF8): LDR R1, R0, FFFFFFF8H |
0CFE | u(81100004): LDR R1, R1, 4H |
0CFF | u .FIXUP D |
0CFF | u(8D00002A): LDR SB, MT, MOD0 [Graphics] |
0D00 | u(42D80178): ADD R2, SB, 178H [data] |
0D01 | u(02290001): SUB R2, R2, R1 |
0D02 | u(D956062C): BLNE MT [trap=2, pos=22022] |
0D03 | v(8000001C): LDR R0, R0, 1CH |
0D04 | v(D1560E4C): BLEQ MT [trap=4, pos=22030] |
0D05 | w(81E0001C): LDR R1, SP, 1CH |
0D06 | w(42190004): SUB R2, R1, 4H |
0D07 | w(DA561B1C): BLCC MT [trap=1, pos=22043] |
0D08 | w(41110002): LSL R1, R1, 2H |
0D09 | w(82E00014): LDR R2, SP, 14H |
0D0A | w(01280001): ADD R1, R2, R1 |
0D0B | x(8000002C): LDR R0, R0, 2CH |
0D0C | x(81100034): LDR R1, R1, 34H |
0D0D | x(00090001): SUB R0, R0, R1 |
0D0E | y(E1000004): BEQ 4 [0D13H] |
0D0F | z(80E0001C): LDR R0, SP, 1CH |
0D10 | z(40080001): ADD R0, R0, 1H |
0D11 | z(A0E0001C): STR R0, SP, 1CH |
0D12 | z(E7FFFFE3): B -29 [0CF6H] |
| IF lno = C.noflibs THENa |
0D13 | a(80E0001C): LDR R0, SP, 1CH |
0D14 | a(81E00014): LDR R1, SP, 14H |
0D15 | a(81100004): LDR R1, R1, 4H |
0D16 | a(00090001): SUB R0, R0, R1 |
0D17 | a(E9000033): BNE 51 [0D4BH] |
| Files.WriteByte(W1,b 0)c;d Files.WriteByte(W1,e 1)f;g Files.WriteByte(W1,h lno)i;j |
0D18 | b(80E0000C): LDR R0, SP, CH |
0D19 | b(81E00010): LDR R1, SP, 10H |
0D1A | c(42000000): MOV R2, R0, 0H |
0D1B | d .FIXUP P |
0D1B | d(F711604B): BL MOD1 [Files] PROC22 |
0D1C | e(80E0000C): LDR R0, SP, CH |
0D1D | e(81E00010): LDR R1, SP, 10H |
0D1E | f(42000001): MOV R2, R0, 1H |
0D1F | g .FIXUP P |
0D1F | g(F7116004): BL MOD1 [Files] PROC22 |
0D20 | h(80E0000C): LDR R0, SP, CH |
0D21 | h(81E00010): LDR R1, SP, 10H |
0D22 | i(82E0001C): LDR R2, SP, 1CH |
0D23 | j .FIXUP P |
0D23 | j(F7116004): BL MOD1 [Files] PROC22 |
| Files.WriteString(W1,k obj(Macro)l.mac.libm.namen)o;p C.lib[lno]q := obj(Macro)r.mac.libs;t INC(C.noflibs) |
0D24 | k(80E0000C): LDR R0, SP, CH |
0D25 | k(81E00010): LDR R1, SP, 10H |
0D26 | l(82E00004): LDR R2, SP, 4H |
0D27 | l(E1000005): BEQ 5 [0D2DH] |
0D28 | l(832FFFF8): LDR R3, R2, FFFFFFF8H |
0D29 | l(83300004): LDR R3, R3, 4H |
0D2A | l .FIXUP D |
0D2A | l(8D00002B): LDR SB, MT, MOD0 [Graphics] |
0D2B | l(44D80178): ADD R4, SB, 178H [data] |
0D2C | l(04490003): SUB R4, R4, R3 |
0D2D | l(D956C12C): BLNE MT [trap=2, pos=22209] |
0D2E | m(8220001C): LDR R2, R2, 1CH |
0D2F | m(D156C94C): BLEQ MT [trap=4, pos=22217] |
0D30 | n(8220002C): LDR R2, R2, 2CH |
0D31 | n(D156CE4C): BLEQ MT [trap=4, pos=22222] |
0D32 | o(43000020): MOV R3, R0, 20H |
0D33 | p .FIXUP P |
0D33 | p(F711C010): BL MOD1 [Files] PROC28 |
0D34 | q(80E0001C): LDR R0, SP, 1CH |
0D35 | q(41090004): SUB R1, R0, 4H |
0D36 | q(DA56DB1C): BLCC MT [trap=1, pos=22235] |
0D37 | q(40010002): LSL R0, R0, 2H |
0D38 | q(81E00014): LDR R1, SP, 14H |
0D39 | q(00180000): ADD R0, R1, R0 |
0D3A | r(81E00004): LDR R1, SP, 4H |
0D3B | r(E1000005): BEQ 5 [0D41H] |
0D3C | r(821FFFF8): LDR R2, R1, FFFFFFF8H |
0D3D | r(82200004): LDR R2, R2, 4H |
0D3E | r .FIXUP D |
0D3E | r(8D000014): LDR SB, MT, MOD0 [Graphics] |
0D3F | r(43D80178): ADD R3, SB, 178H [data] |
0D40 | r(03390002): SUB R3, R3, R2 |
0D41 | r(D956E92C): BLNE MT [trap=2, pos=22249] |
0D42 | s(8110001C): LDR R1, R1, 1CH |
0D43 | s(D156F14C): BLEQ MT [trap=4, pos=22257] |
0D44 | t(8110002C): LDR R1, R1, 2CH |
0D45 | t(A1000034): STR R1, R0, 34H |
| ENDu ; |
0D46 | u(80E00014): LDR R0, SP, 14H |
0D47 | u(40080004): ADD R0, R0, 4H |
0D48 | u(81000000): LDR R1, R0, 0H |
0D49 | u(41180001): ADD R1, R1, 1H |
0D4A | u(A1000000): STR R1, R0, 0H |
| WriteObj(W1,v cno,w obj)x;y Files.WriteByte(W1,z lno)a;b Files.WriteString(W1,c obj(Macro)d.mac.namee)f |
0D4B | v(80E0000C): LDR R0, SP, CH |
0D4C | v(81E00010): LDR R1, SP, 10H |
0D4D | w(82E00008): LDR R2, SP, 8H |
0D4E | x(83E00004): LDR R3, SP, 4H |
0D4F | y(F7FFF73C): BL -2244 [048CH] |
0D50 | z(80E0000C): LDR R0, SP, CH |
0D51 | z(81E00010): LDR R1, SP, 10H |
0D52 | a(82E0001C): LDR R2, SP, 1CH |
0D53 | b .FIXUP P |
0D53 | b(F7116020): BL MOD1 [Files] PROC22 |
0D54 | c(80E0000C): LDR R0, SP, CH |
0D55 | c(81E00010): LDR R1, SP, 10H |
0D56 | d(82E00004): LDR R2, SP, 4H |
0D57 | d(E1000005): BEQ 5 [0D5DH] |
0D58 | d(832FFFF8): LDR R3, R2, FFFFFFF8H |
0D59 | d(83300004): LDR R3, R3, 4H |
0D5A | d .FIXUP D |
0D5A | d(8D00001C): LDR SB, MT, MOD0 [Graphics] |
0D5B | d(44D80178): ADD R4, SB, 178H [data] |
0D5C | d(04490003): SUB R4, R4, R3 |
0D5D | d(D957622C): BLNE MT [trap=2, pos=22370] |
0D5E | e(8220001C): LDR R2, R2, 1CH |
0D5F | e(D1576B4C): BLEQ MT [trap=4, pos=22379] |
0D60 | f(43000020): MOV R3, R0, 20H |
| ENDg WriteMacro; |
0D61 | g .FIXUP P |
0D61 | g(F711C00E): BL MOD1 [Files] PROC28 |
0D62 | g(8FE00000): LDR LNK, SP, 0H |
0D63 | g(4EE80020): ADD SP, SP, 20H |
0D64 | g(C700000F): B LNK |
| |
| (* PROCEDURE PrintMacro(obj: Object; x, y: INTEGER); |
| VAR elem: Object; mh: MacHead; |
| BEGIN mh := obj(Macro).mac; |
| IF mh # NIL THEN elem := mh.first; |
| WHILE elem # NIL DO elem.do.print(elem, obj.x*4 + x, obj.y*4 + y); elem := elem.next END |
| END |
| END PrintMacro; *) |
| |
| PROCEDURE Notify(T: Texts.Text; op: INTEGER; beg, end: LONGINT); |
| BEGINh |
0D65 | h(4EE90014): SUB SP, SP, 14H |
0D66 | h(AFE00000): STR LNK, SP, 0H |
0D67 | h(A0E00004): STR R0, SP, 4H |
0D68 | h(A1E00008): STR R1, SP, 8H |
0D69 | h(A2E0000C): STR R2, SP, CH |
0D6A | h(A3E00010): STR R3, SP, 10H |
| ENDi Notify; |
0D6B | i(8FE00000): LDR LNK, SP, 0H |
0D6C | i(4EE80014): ADD SP, SP, 14H |
0D6D | i(C700000F): B LNK |
| |
| PROCEDURE InstallDrawMethods*(drawLine, drawCaption, drawMacro: PROCEDURE (obj: Object; VAR msg: Msg)); |
| BEGINj LineMethod.drawk := drawLine;l CapMethod.drawm := drawCaption;n MacMethod.drawo := drawMacro |
0D6E | j .PROC 53 |
0D6E | j(4EE90010): SUB SP, SP, 10H |
0D6F | j(AFE00000): STR LNK, SP, 0H |
0D70 | j(A0E00004): STR R0, SP, 4H |
0D71 | j(A1E00008): STR R1, SP, 8H |
0D72 | j(A2E0000C): STR R2, SP, CH |
0D73 | k .FIXUP D |
0D73 | k(8D000019): LDR SB, MT, MOD0 [Graphics] |
0D74 | k(80D001A8): LDR R0, SB, 1A8H [data] |
0D75 | k(D159764C): BLEQ MT [trap=4, pos=22902] |
0D76 | l(81E00004): LDR R1, SP, 4H |
0D77 | l(A1000048): STR R1, R0, 48H |
0D78 | m(80D001AC): LDR R0, SB, 1ACH |
0D79 | m(D159924C): BLEQ MT [trap=4, pos=22930] |
0D7A | n(81E00008): LDR R1, SP, 8H |
0D7B | n(A1000048): STR R1, R0, 48H |
0D7C | o(80D001B0): LDR R0, SB, 1B0H |
0D7D | o(D159B14C): BLEQ MT [trap=4, pos=22961] |
| ENDp InstallDrawMethods; |
0D7E | p(81E0000C): LDR R1, SP, CH |
0D7F | p(A1000048): STR R1, R0, 48H |
0D80 | p(8FE00000): LDR LNK, SP, 0H |
0D81 | p(4EE80010): ADD SP, SP, 10H |
0D82 | p(C700000F): B LNK |
| |
| BEGINq Texts.OpenWriter(W)r;s Texts.OpenWriter(TW)t;u Texts.OpenWriter(XW)v;w |
0D83 | q .PROC 0 |
0D83 | q .ENTRYPOINT |
0D83 | q(4EE90004): SUB SP, SP, 4H |
0D84 | q(AFE00000): STR LNK, SP, 0H |
0D85 | r .FIXUP D |
0D85 | r(8D000012): LDR SB, MT, MOD0 [Graphics] |
0D86 | r(40D801BC): ADD R0, SB, 1BCH [data] |
0D87 | r .FIXUP D |
0D87 | r(8D400002): LDR SB, MT, MOD4 [Texts] |
0D88 | r(41D80005): ADD R1, SB, VAR5 |
0D89 | s .FIXUP P |
0D89 | s(F7417028): BL MOD4 [Texts] PROC23 |
0D8A | t .FIXUP D |
0D8A | t(8D000003): LDR SB, MT, MOD0 [Graphics] |
0D8B | t(40D801E4): ADD R0, SB, 1E4H [data] |
0D8C | t .FIXUP D |
0D8C | t(8D400002): LDR SB, MT, MOD4 [Texts] |
0D8D | t(41D80005): ADD R1, SB, VAR5 |
0D8E | u .FIXUP P |
0D8E | u(F7417005): BL MOD4 [Texts] PROC23 |
0D8F | v .FIXUP D |
0D8F | v(8D000003): LDR SB, MT, MOD0 [Graphics] |
0D90 | v(40D8020C): ADD R0, SB, 20CH [data] |
0D91 | v .FIXUP D |
0D91 | v(8D400002): LDR SB, MT, MOD4 [Texts] |
0D92 | v(41D80005): ADD R1, SB, VAR5 |
0D93 | w .FIXUP P |
0D93 | w(F7417005): BL MOD4 [Texts] PROC23 |
| width := 1;x GetLib0 := GetLib;y |
0D94 | x(40000001): MOV R0, R0, 1H |
0D95 | x .FIXUP D |
0D95 | x(8D000004): LDR SB, MT, MOD0 [Graphics] |
0D96 | x(A0D00198): STR R0, SB, 198H [data] |
0D97 | y(F7000000): BL 0 [0D98H] |
0D98 | y(40F91C38): SUB R0, LNK, 1C38H |
0D99 | y(A0D001B4): STR R0, SB, 1B4H |
| NEW(T);z Texts.Open(T,a "")b;c T.notifyd := Notify;e |
0D9A | z(40D801A4): ADD R0, SB, 1A4H |
0D9B | z .FIXUP D |
0D9B | z(8D400006): LDR SB, MT, MOD4 [Texts] |
0D9C | z(41D80001): ADD R1, SB, VAR1 |
0D9D | z(D75A4C0C): BL MT [trap=0, pos=23116] |
0D9E | a .FIXUP D |
0D9E | a(8D000003): LDR SB, MT, MOD0 [Graphics] |
0D9F | a(80D001A4): LDR R0, SB, 1A4H [data] |
0DA0 | b(41D80268): ADD R1, SB, 268H |
0DA1 | b(42000001): MOV R2, R0, 1H |
0DA2 | c .FIXUP P |
0DA2 | c(F740700F): BL MOD4 [Texts] PROC7 |
0DA3 | d .FIXUP D |
0DA3 | d(8D000005): LDR SB, MT, MOD0 [Graphics] |
0DA4 | d(80D001A4): LDR R0, SB, 1A4H [data] |
0DA5 | d(D15A684C): BLEQ MT [trap=4, pos=23144] |
0DA6 | e(F7000000): BL 0 [0DA7H] |
0DA7 | e(41F90108): SUB R1, LNK, 108H |
0DA8 | e(A1000008): STR R1, R0, 8H |
| NEW(LineMethod);f LineMethod.newg := NewLine;h LineMethod.copyi := CopyLine;j |
0DA9 | f(40D801A8): ADD R0, SB, 1A8H |
0DAA | f(41D8012C): ADD R1, SB, 12CH |
0DAB | f(D75A860C): BL MT [trap=0, pos=23174] |
0DAC | g .FIXUP D |
0DAC | g(8D000009): LDR SB, MT, MOD0 [Graphics] |
0DAD | g(80D001A8): LDR R0, SB, 1A8H [data] |
0DAE | g(D15A954C): BLEQ MT [trap=4, pos=23189] |
0DAF | h(F7000000): BL 0 [0DB0H] |
0DB0 | h(41F90F50): SUB R1, LNK, F50H |
0DB1 | h(A1000040): STR R1, R0, 40H |
0DB2 | i(80D001A8): LDR R0, SB, 1A8H |
0DB3 | i(D15AB14C): BLEQ MT [trap=4, pos=23217] |
0DB4 | j(F7000000): BL 0 [0DB5H] |
0DB5 | j(41F90F24): SUB R1, LNK, F24H |
0DB6 | j(A1000044): STR R1, R0, 44H |
| LineMethod.selectablek := LineSelectable;l LineMethod.changem := ChangeLine;n |
0DB7 | k(80D001A8): LDR R0, SB, 1A8H |
0DB8 | k(D15AD64C): BLEQ MT [trap=4, pos=23254] |
0DB9 | l(F7000000): BL 0 [0DBAH] |
0DBA | l(41F90DC8): SUB R1, LNK, DC8H |
0DBB | l(A1000050): STR R1, R0, 50H |
0DBC | m(80D001A8): LDR R0, SB, 1A8H |
0DBD | m(D15AFB4C): BLEQ MT [trap=4, pos=23291] |
0DBE | n(F7000000): BL 0 [0DBFH] |
0DBF | n(41F90EB8): SUB R1, LNK, EB8H |
0DC0 | n(A100004C): STR R1, R0, 4CH |
| LineMethod.reado := ReadLine;p LineMethod.writeq := WriteLine;r (*LineMethod.print := PrintLine;*) |
0DC1 | o(80D001A8): LDR R0, SB, 1A8H |
0DC2 | o(D15B1C4C): BLEQ MT [trap=4, pos=23324] |
0DC3 | p(F7000000): BL 0 [0DC4H] |
0DC4 | p(41F90D44): SUB R1, LNK, D44H |
0DC5 | p(A1000054): STR R1, R0, 54H |
0DC6 | q(80D001A8): LDR R0, SB, 1A8H |
0DC7 | q(D15B3A4C): BLEQ MT [trap=4, pos=23354] |
0DC8 | r(F7000000): BL 0 [0DC9H] |
0DC9 | r(41F90D30): SUB R1, LNK, D30H |
0DCA | r(A1000058): STR R1, R0, 58H |
| NEW(CapMethod);s CapMethod.newt := NewCaption;u CapMethod.copyv := CopyCaption;w |
0DCB | s(40D801AC): ADD R0, SB, 1ACH |
0DCC | s(41D8012C): ADD R1, SB, 12CH |
0DCD | s(D75B7D0C): BL MT [trap=0, pos=23421] |
0DCE | t .FIXUP D |
0DCE | t(8D000022): LDR SB, MT, MOD0 [Graphics] |
0DCF | t(80D001AC): LDR R0, SB, 1ACH [data] |
0DD0 | t(D15B8B4C): BLEQ MT [trap=4, pos=23435] |
0DD1 | u(F7000000): BL 0 [0DD2H] |
0DD2 | u(41F90D14): SUB R1, LNK, D14H |
0DD3 | u(A1000040): STR R1, R0, 40H |
0DD4 | v(80D001AC): LDR R0, SB, 1ACH |
0DD5 | v(D15BA94C): BLEQ MT [trap=4, pos=23465] |
0DD6 | w(F7000000): BL 0 [0DD7H] |
0DD7 | w(41F90CE8): SUB R1, LNK, CE8H |
0DD8 | w(A1000044): STR R1, R0, 44H |
| CapMethod.selectablex := CaptionSelectable;y CapMethod.changez := ChangeCaption;a |
0DD9 | x(80D001AC): LDR R0, SB, 1ACH |
0DDA | x(D15BD04C): BLEQ MT [trap=4, pos=23504] |
0DDB | y(F7000000): BL 0 [0DDCH] |
0DDC | y(41F9096C): SUB R1, LNK, 96CH |
0DDD | y(A1000050): STR R1, R0, 50H |
0DDE | z(80D001AC): LDR R0, SB, 1ACH |
0DDF | z(D15BF74C): BLEQ MT [trap=4, pos=23543] |
0DE0 | a(F7000000): BL 0 [0DE1H] |
0DE1 | a(41F90B50): SUB R1, LNK, B50H |
0DE2 | a(A100004C): STR R1, R0, 4CH |
| CapMethod.readb := ReadCaption;c CapMethod.writed := WriteCaption;e (*CapMethod.print := PrintCaption;*) |
0DE3 | b(80D001AC): LDR R0, SB, 1ACH |
0DE4 | b(D15C1A4C): BLEQ MT [trap=4, pos=23578] |
0DE5 | c(F7000000): BL 0 [0DE6H] |
0DE6 | c(41F908E8): SUB R1, LNK, 8E8H |
0DE7 | c(A1000054): STR R1, R0, 54H |
0DE8 | d(80D001AC): LDR R0, SB, 1ACH |
0DE9 | d(D15C3A4C): BLEQ MT [trap=4, pos=23610] |
0DEA | e(F7000000): BL 0 [0DEBH] |
0DEB | e(41F907C8): SUB R1, LNK, 7C8H |
0DEC | e(A1000058): STR R1, R0, 58H |
| NEW(MacMethod);f MacMethod.newg := NewMacro;h MacMethod.copyi := CopyMacro;j |
0DED | f(40D801B0): ADD R0, SB, 1B0H |
0DEE | f(41D8012C): ADD R1, SB, 12CH |
0DEF | f(D75C820C): BL MT [trap=0, pos=23682] |
0DF0 | g .FIXUP D |
0DF0 | g(8D000022): LDR SB, MT, MOD0 [Graphics] |
0DF1 | g(80D001B0): LDR R0, SB, 1B0H [data] |
0DF2 | g(D15C904C): BLEQ MT [trap=4, pos=23696] |
0DF3 | h(F7000000): BL 0 [0DF4H] |
0DF4 | h(41F906C4): SUB R1, LNK, 6C4H |
0DF5 | h(A1000040): STR R1, R0, 40H |
0DF6 | i(80D001B0): LDR R0, SB, 1B0H |
0DF7 | i(D15CAC4C): BLEQ MT [trap=4, pos=23724] |
0DF8 | j(F7000000): BL 0 [0DF9H] |
0DF9 | j(41F90698): SUB R1, LNK, 698H |
0DFA | j(A1000044): STR R1, R0, 44H |
| MacMethod.selectablek := MacroSelectable;l MacMethod.changem := ChangeMacro;n |
0DFB | k(80D001B0): LDR R0, SB, 1B0H |
0DFC | k(D15CD14C): BLEQ MT [trap=4, pos=23761] |
0DFD | l(F7000000): BL 0 [0DFEH] |
0DFE | l(41F90588): SUB R1, LNK, 588H |
0DFF | l(A1000050): STR R1, R0, 50H |
0E00 | m(80D001B0): LDR R0, SB, 1B0H |
0E01 | m(D15CF64C): BLEQ MT [trap=4, pos=23798] |
0E02 | n(F7000000): BL 0 [0E03H] |
0E03 | n(41F905E8): SUB R1, LNK, 5E8H |
0E04 | n(A100004C): STR R1, R0, 4CH |
| MacMethod.reado := ReadMacro;p MacMethod.writeq := WriteMacro;r (*MacMethod.print := PrintMacro*) |
0E05 | o(80D001B0): LDR R0, SB, 1B0H |
0E06 | o(D15D174C): BLEQ MT [trap=4, pos=23831] |
0E07 | p(F7000000): BL 0 [0E08H] |
0E08 | p(41F9051C): SUB R1, LNK, 51CH |
0E09 | p(A1000054): STR R1, R0, 54H |
0E0A | q(80D001B0): LDR R0, SB, 1B0H |
0E0B | q(D15D354C): BLEQ MT [trap=4, pos=23861] |
0E0C | r(F7000000): BL 0 [0E0DH] |
0E0D | r(41F90484): SUB R1, LNK, 484H |
0E0E | r(A1000058): STR R1, R0, 58H |
| END Graphics.s |
0E0F | s(8FE00000): LDR LNK, SP, 0H |
0E10 | s(4EE80004): ADD SP, SP, 4H |
0E11 | s(C700000F): B LNK |