| MODULE Fonts; (*JG 18.11.90; PDR 8.6.12; NW 25.3.2013*) |
| | .MODULE Fonts (KEY F4C9F557, VERSION 1, SIZE 00000A58) |
| | .IMPORT Files (KEY 73F5D686) |
| | .TYPEDESC 00000C00 FFFFFFFF FFFFFFFF FFFFFFFF 00000034 FFFFFFFF 00001600 00018007 FFFFFFFF FFFFFFFF 00000034 FFFFFFFF |
| | .DATA 8H |
| | .STRING 38H "Oberon10.Scn.Fnt" |
| | .POINTER_REFERENCES 30H 34H |
| | .FIXUP T 7H |
| IMPORT SYSTEM, Files; |
| |
| CONST FontFileId = 0DBH; |
| |
| TYPE Font* = POINTER TO FontDesc; |
| FontDesc* = RECORD |
| name*: ARRAY 32 OF CHAR; |
| height*, minX*, maxX*, minY*, maxY*: INTEGER; |
| next*: Font; |
| T: ARRAY 128 OF INTEGER; |
| raster: ARRAY 2360 OF BYTE |
| END ; |
| |
| LargeFontDesc = RECORD (FontDesc) ext: ARRAY 2560 OF BYTE END ; |
| LargeFont = POINTER TO LargeFontDesc; |
| |
| (* raster sizes: Syntax8 1367, Syntax10 1628, Syntax12 1688, Syntax14 1843, Syntax14b 1983, |
| Syntax16 2271, Syntax20 3034, Syntac24 4274, Syntax24b 4302 *) |
| |
| VAR Default*, root*: Font; |
| |
| PROCEDURE GetPat*(fnt: Font; ch: CHAR; VAR dx, x, y, w, h, patadr: INTEGER); |
| VAR pa: INTEGER; dxb, xb, yb, wb, hb: BYTE; |
| BEGINa pa := fnt.Tb[ORD(ch) MODc 80H]d;e patadr := pa;f |
| 0000 | a .PROC 1 |
| 0000 | a .PROC 4 |
| 0000 | a(4EE90030): SUB SP, SP, 30H |
| 0001 | a(AFE00000): STR LNK, SP, 0H |
| 0002 | a(A0E00004): STR R0, SP, 4H |
| 0003 | a(A1E00008): STR R1, SP, 8H |
| 0004 | a(A2E0000C): STR R2, SP, CH |
| 0005 | a(A3E00010): STR R3, SP, 10H |
| 0006 | a(A4E00014): STR R4, SP, 14H |
| 0007 | a(A5E00018): STR R5, SP, 18H |
| 0008 | a(A6E0001C): STR R6, SP, 1CH |
| 0009 | a(A7E00020): STR R7, SP, 20H |
| 000A | b(80E00004): LDR R0, SP, 4H |
| 000B | b(D103164C): BLEQ MT [trap=4, pos=790] |
| 000C | c .PROC 2 |
| 000C | c(91E00008): LDR R1, SP, 8H |
| 000D | d .PROC 3 |
| 000D | d(4114007F): AND R1, R1, 7FH |
| 000E | d(42190080): SUB R2, R1, 80H |
| 000F | d(DA03271C): BLCC MT [trap=1, pos=807] |
| 0010 | d(41110002): LSL R1, R1, 2H |
| 0011 | d(00080001): ADD R0, R0, R1 |
| 0012 | e(80000038): LDR R0, R0, 38H |
| 0013 | e(A0E00024): STR R0, SP, 24H |
| 0014 | f(80E00024): LDR R0, SP, 24H |
| 0015 | f(81E00020): LDR R1, SP, 20H |
| 0016 | f(A0100000): STR R0, R1, 0H |
| SYSTEM.GET(pa-3,g dxb);h SYSTEM.GET(pa-2,i xb);j SYSTEM.GET(pa-1,k yb);l SYSTEM.GET(pa, wb);m SYSTEM.GET(pa+1,n hb);o |
| 0017 | g(80E00024): LDR R0, SP, 24H |
| 0018 | g(40090003): SUB R0, R0, 3H |
| 0019 | h(90000000): LDR R0, R0, 0H |
| 001A | h(B0E00028): STR R0, SP, 28H |
| 001B | i(80E00024): LDR R0, SP, 24H |
| 001C | i(40090002): SUB R0, R0, 2H |
| 001D | j(90000000): LDR R0, R0, 0H |
| 001E | j(B0E00029): STR R0, SP, 29H |
| 001F | k(80E00024): LDR R0, SP, 24H |
| 0020 | k(40090001): SUB R0, R0, 1H |
| 0021 | l(90000000): LDR R0, R0, 0H |
| 0022 | l(B0E0002A): STR R0, SP, 2AH |
| 0023 | m(80E00024): LDR R0, SP, 24H |
| 0024 | m(90000000): LDR R0, R0, 0H |
| 0025 | m(B0E0002B): STR R0, SP, 2BH |
| 0026 | n(80E00024): LDR R0, SP, 24H |
| 0027 | n(40080001): ADD R0, R0, 1H |
| 0028 | o(90000000): LDR R0, R0, 0H |
| 0029 | o(B0E0002C): STR R0, SP, 2CH |
| dx := dxb;p x := xb;q y := yb;r w := wb;s h := hb;t |
| 002A | p(90E00028): LDR R0, SP, 28H |
| 002B | p(81E0000C): LDR R1, SP, CH |
| 002C | p(A0100000): STR R0, R1, 0H |
| 002D | q(90E00029): LDR R0, SP, 29H |
| 002E | q(81E00010): LDR R1, SP, 10H |
| 002F | q(A0100000): STR R0, R1, 0H |
| 0030 | r(90E0002A): LDR R0, SP, 2AH |
| 0031 | r(81E00014): LDR R1, SP, 14H |
| 0032 | r(A0100000): STR R0, R1, 0H |
| 0033 | s(90E0002B): LDR R0, SP, 2BH |
| 0034 | s(81E00018): LDR R1, SP, 18H |
| 0035 | s(A0100000): STR R0, R1, 0H |
| 0036 | t(90E0002C): LDR R0, SP, 2CH |
| 0037 | t(81E0001C): LDR R1, SP, 1CH |
| 0038 | t(A0100000): STR R0, R1, 0H |
| IF yb < 128 THENu y := yb ELSEv yw := yb - 256 ENDx |
| 0039 | u(90E0002A): LDR R0, SP, 2AH |
| 003A | u(40090080): SUB R0, R0, 80H |
| 003B | u(ED000004): BGE 4 [0040H] |
| 003C | v(90E0002A): LDR R0, SP, 2AH |
| 003D | v(81E00014): LDR R1, SP, 14H |
| 003E | v(A0100000): STR R0, R1, 0H |
| 003F | w(E7000004): B 4 [0044H] |
| 0040 | x(90E0002A): LDR R0, SP, 2AH |
| 0041 | x(40090100): SUB R0, R0, 100H |
| 0042 | x(81E00014): LDR R1, SP, 14H |
| 0043 | x(A0100000): STR R0, R1, 0H |
| ENDy GetPat; |
| 0044 | y(8FE00000): LDR LNK, SP, 0H |
| 0045 | y(4EE80030): ADD SP, SP, 30H |
| 0046 | y(C700000F): B LNK |
| |
| PROCEDURE This*(name: ARRAY OF CHAR): Font; |
| |
| TYPE RunRec = RECORD beg, end: BYTE END ; |
| BoxRec = RECORD dx, x, y, w, h: BYTE END ; |
| |
| VAR F: Font; LF: LargeFont; |
| f: Files.File; R: Files.Rider; |
| NofRuns, NofBoxes: BYTE; |
| NofBytes: INTEGER; |
| height, minX, maxX, minY, maxY: BYTE; |
| i, j, k, m, n: INTEGER; |
| a, a0: INTEGER; |
| b, beg, end: BYTE; |
| run: ARRAY 16 OF RunRec; |
| box: ARRAY 512 OF BoxRec; |
| |
| PROCEDUREz RdInt16(VAR R: Files.Rider; VAR b0: BYTE); |
| 0047 | z(E7000010): B 16 [0058H] |
| VAR b1: BYTE; |
| BEGINa Files.ReadByte(R,b b0)c;d Files.ReadByte(R,e b1)f |
| 0048 | a(4EE90014): SUB SP, SP, 14H |
| 0049 | a(AFE00000): STR LNK, SP, 0H |
| 004A | a(A0E00004): STR R0, SP, 4H |
| 004B | a(A1E00008): STR R1, SP, 8H |
| 004C | a(A2E0000C): STR R2, SP, CH |
| 004D | b(80E00004): LDR R0, SP, 4H |
| 004E | b(81E00008): LDR R1, SP, 8H |
| 004F | c(82E0000C): LDR R2, SP, CH |
| 0050 | d .FIXUP P |
| 0050 | d(F710E050): BL MOD1 [Files] PROC14 |
| 0051 | e(80E00004): LDR R0, SP, 4H |
| 0052 | e(81E00008): LDR R1, SP, 8H |
| 0053 | f(42E80010): ADD R2, SP, 10H |
| ENDg RdInt16; |
| 0054 | g .FIXUP P |
| 0054 | g(F710E004): BL MOD1 [Files] PROC14 |
| 0055 | g(8FE00000): LDR LNK, SP, 0H |
| 0056 | g(4EE80014): ADD SP, SP, 14H |
| 0057 | g(C700000F): B LNK |
| |
| BEGINh F := root;i |
| 0058 | h .PROC 5 |
| 0058 | h(4EE910A0): SUB SP, SP, 10A0H |
| 0059 | h(AFE00000): STR LNK, SP, 0H |
| 005A | h(A0E00004): STR R0, SP, 4H |
| 005B | h(A1E00008): STR R1, SP, 8H |
| 005C | i .FIXUP D |
| 005C | i(8D00005C): LDR SB, MT, MOD0 [Fonts] |
| 005D | i(80D00034): LDR R0, SB, 34H [data] |
| 005E | i(A0E0000C): STR R0, SP, CH |
| WHILE (F # NIL)j & (kname # F.namel)m DOn F := F.nexto ENDp; |
| 005F | j(80E0000C): LDR R0, SP, CH |
| 0060 | k(E1000011): BEQ 17 [0072H] |
| 0061 | l(80E0000C): LDR R0, SP, CH |
| 0062 | l(D106864C): BLEQ MT [trap=4, pos=1670] |
| 0063 | m(81E00004): LDR R1, SP, 4H |
| 0064 | m(92100000): LDR R2, R1, 0H |
| 0065 | m(41180001): ADD R1, R1, 1H |
| 0066 | m(93000000): LDR R3, R0, 0H |
| 0067 | m(40080001): ADD R0, R0, 1H |
| 0068 | m(04290003): SUB R4, R2, R3 |
| 0069 | m(E9000002): BNE 2 [006CH] |
| 006A | m(44290000): SUB R4, R2, 0H |
| 006B | m(E9FFFFF8): BNE -8 [0064H] |
| 006C | n(E1000005): BEQ 5 [0072H] |
| 006D | o(80E0000C): LDR R0, SP, CH |
| 006E | o(D106964C): BLEQ MT [trap=4, pos=1686] |
| 006F | p(80000034): LDR R0, R0, 34H |
| 0070 | p(A0E0000C): STR R0, SP, CH |
| 0071 | p(E7FFFFED): B -19 [005FH] |
| IF F = NIL THENq |
| 0072 | q(80E0000C): LDR R0, SP, CH |
| 0073 | q(E90001DB): BNE 475 [024FH] |
| f := Files.Old(name)r;s |
| 0074 | r(80E00004): LDR R0, SP, 4H |
| 0075 | r(81E00008): LDR R1, SP, 8H |
| 0076 | s .FIXUP P |
| 0076 | s(F7102022): BL MOD1 [Files] PROC2 |
| 0077 | s(A0E00014): STR R0, SP, 14H |
| IF f # NIL THENt |
| 0078 | t(80E00014): LDR R0, SP, 14H |
| 0079 | t(E10001D2): BEQ 466 [024CH] |
| Files.Set(R,u f,v 0)w;x Files.ReadByte(R,y b)z;a |
| 007A | u(40E80018): ADD R0, SP, 18H |
| 007B | u .FIXUP D |
| 007B | u(8D10001F): LDR SB, MT, MOD1 [Files] |
| 007C | u(41D80001): ADD R1, SB, VAR1 |
| 007D | v(82E00014): LDR R2, SP, 14H |
| 007E | w(43000000): MOV R3, R0, 0H |
| 007F | x .FIXUP P |
| 007F | x(F710B009): BL MOD1 [Files] PROC11 |
| 0080 | y(40E80018): ADD R0, SP, 18H |
| 0081 | y .FIXUP D |
| 0081 | y(8D100006): LDR SB, MT, MOD1 [Files] |
| 0082 | y(41D80001): ADD R1, SB, VAR1 |
| 0083 | z(42E8005C): ADD R2, SP, 5CH |
| 0084 | a .FIXUP P |
| 0084 | a(F710E005): BL MOD1 [Files] PROC14 |
| IF b = FontFileId THENb |
| 0085 | b(90E0005C): LDR R0, SP, 5CH |
| 0086 | b(400900DB): SUB R0, R0, DBH |
| 0087 | b(E90001C0): BNE 448 [0248H] |
| Files.ReadByte(R,c b)d;e (*abstraction*) |
| 0088 | c(40E80018): ADD R0, SP, 18H |
| 0089 | c .FIXUP D |
| 0089 | c(8D100008): LDR SB, MT, MOD1 [Files] |
| 008A | c(41D80001): ADD R1, SB, VAR1 |
| 008B | d(42E8005C): ADD R2, SP, 5CH |
| 008C | e .FIXUP P |
| 008C | e(F710E008): BL MOD1 [Files] PROC14 |
| Files.ReadByte(R,f b)g;h (*family*) |
| 008D | f(40E80018): ADD R0, SP, 18H |
| 008E | f .FIXUP D |
| 008E | f(8D100005): LDR SB, MT, MOD1 [Files] |
| 008F | f(41D80001): ADD R1, SB, VAR1 |
| 0090 | g(42E8005C): ADD R2, SP, 5CH |
| 0091 | h .FIXUP P |
| 0091 | h(F710E005): BL MOD1 [Files] PROC14 |
| Files.ReadByte(R,i b)j;k (*variant*) |
| 0092 | i(40E80018): ADD R0, SP, 18H |
| 0093 | i .FIXUP D |
| 0093 | i(8D100005): LDR SB, MT, MOD1 [Files] |
| 0094 | i(41D80001): ADD R1, SB, VAR1 |
| 0095 | j(42E8005C): ADD R2, SP, 5CH |
| 0096 | k .FIXUP P |
| 0096 | k(F710E005): BL MOD1 [Files] PROC14 |
| NEW(F);l F.namem := name;n |
| 0097 | l(40E8000C): ADD R0, SP, CH |
| 0098 | l .FIXUP D |
| 0098 | l(8D000005): LDR SB, MT, MOD0 [Fonts] |
| 0099 | l(41D80000): ADD R1, SB, 0H [data] |
| 009A | l(D707B90C): BL MT [trap=0, pos=1977] |
| 009B | m(80E0000C): LDR R0, SP, CH |
| 009C | m(D107C04C): BLEQ MT [trap=4, pos=1984] |
| 009D | n(81E00004): LDR R1, SP, 4H |
| 009E | n(82E00008): LDR R2, SP, 8H |
| 009F | n(E100000B): BEQ 11 [00ABH] |
| 00A0 | n(42280003): ADD R2, R2, 3H |
| 00A1 | n(42220002): ASR R2, R2, 2H |
| 00A2 | n(43000008): MOV R3, R0, 8H |
| 00A3 | n(03290003): SUB R3, R2, R3 |
| 00A4 | n(DE07C93C): BLGT MT [trap=3, pos=1993] |
| 00A5 | n(83100000): LDR R3, R1, 0H |
| 00A6 | n(41180004): ADD R1, R1, 4H |
| 00A7 | n(A3000000): STR R3, R0, 0H |
| 00A8 | n(40080004): ADD R0, R0, 4H |
| 00A9 | n(42290001): SUB R2, R2, 1H |
| 00AA | n(E9FFFFFA): BNE -6 [00A5H] |
| RdInt16(R,o height)p;q RdInt16(R,r minX)s;t RdInt16(R,u maxX)v;w RdInt16(R,x minY)y;z RdInt16(R,a maxY)b;c RdInt16(R,d NofRuns)e;f |
| 00AB | o(40E80018): ADD R0, SP, 18H |
| 00AC | o .FIXUP D |
| 00AC | o(8D100014): LDR SB, MT, MOD1 [Files] |
| 00AD | o(41D80001): ADD R1, SB, VAR1 |
| 00AE | p(42E80038): ADD R2, SP, 38H |
| 00AF | q(F7FFFF98): BL -104 [0048H] |
| 00B0 | r(40E80018): ADD R0, SP, 18H |
| 00B1 | r .FIXUP D |
| 00B1 | r(8D100005): LDR SB, MT, MOD1 [Files] |
| 00B2 | r(41D80001): ADD R1, SB, VAR1 |
| 00B3 | s(42E80039): ADD R2, SP, 39H |
| 00B4 | t(F7FFFF93): BL -109 [0048H] |
| 00B5 | u(40E80018): ADD R0, SP, 18H |
| 00B6 | u .FIXUP D |
| 00B6 | u(8D100005): LDR SB, MT, MOD1 [Files] |
| 00B7 | u(41D80001): ADD R1, SB, VAR1 |
| 00B8 | v(42E8003A): ADD R2, SP, 3AH |
| 00B9 | w(F7FFFF8E): BL -114 [0048H] |
| 00BA | x(40E80018): ADD R0, SP, 18H |
| 00BB | x .FIXUP D |
| 00BB | x(8D100005): LDR SB, MT, MOD1 [Files] |
| 00BC | x(41D80001): ADD R1, SB, VAR1 |
| 00BD | y(42E8003B): ADD R2, SP, 3BH |
| 00BE | z(F7FFFF89): BL -119 [0048H] |
| 00BF | a(40E80018): ADD R0, SP, 18H |
| 00C0 | a .FIXUP D |
| 00C0 | a(8D100005): LDR SB, MT, MOD1 [Files] |
| 00C1 | a(41D80001): ADD R1, SB, VAR1 |
| 00C2 | b(42E8003C): ADD R2, SP, 3CH |
| 00C3 | c(F7FFFF84): BL -124 [0048H] |
| 00C4 | d(40E80018): ADD R0, SP, 18H |
| 00C5 | d .FIXUP D |
| 00C5 | d(8D100005): LDR SB, MT, MOD1 [Files] |
| 00C6 | d(41D80001): ADD R1, SB, VAR1 |
| 00C7 | e(42E80030): ADD R2, SP, 30H |
| 00C8 | f(F7FFFF7F): BL -129 [0048H] |
| NofBoxes := 0;g k := 0;h |
| 00C9 | g(40000000): MOV R0, R0, 0H |
| 00CA | g(B0E00031): STR R0, SP, 31H |
| 00CB | h(40000000): MOV R0, R0, 0H |
| 00CC | h(A0E00048): STR R0, SP, 48H |
| WHILE k # NofRuns DOi |
| 00CD | i(80E00048): LDR R0, SP, 48H |
| 00CE | i(91E00030): LDR R1, SP, 30H |
| 00CF | i(00090001): SUB R0, R0, R1 |
| 00D0 | i(E1000022): BEQ 34 [00F3H] |
| RdInt16(R,j beg)k;l |
| 00D1 | j(40E80018): ADD R0, SP, 18H |
| 00D2 | j .FIXUP D |
| 00D2 | j(8D10000D): LDR SB, MT, MOD1 [Files] |
| 00D3 | j(41D80001): ADD R1, SB, VAR1 |
| 00D4 | k(42E8005D): ADD R2, SP, 5DH |
| 00D5 | l(F7FFFF72): BL -142 [0048H] |
| run[k]m.beg := beg;n RdInt16(R,o end)p;q |
| 00D6 | m(80E00048): LDR R0, SP, 48H |
| 00D7 | m(41090010): SUB R1, R0, 10H |
| 00D8 | m(DA08AA1C): BLCC MT [trap=1, pos=2218] |
| 00D9 | m(40010002): LSL R0, R0, 2H |
| 00DA | m(00E80000): ADD R0, SP, R0 |
| 00DB | n(91E0005D): LDR R1, SP, 5DH |
| 00DC | n(B1000060): STR R1, R0, 60H |
| 00DD | o(40E80018): ADD R0, SP, 18H |
| 00DE | o .FIXUP D |
| 00DE | o(8D10000C): LDR SB, MT, MOD1 [Files] |
| 00DF | o(41D80001): ADD R1, SB, VAR1 |
| 00E0 | p(42E8005E): ADD R2, SP, 5EH |
| 00E1 | q(F7FFFF66): BL -154 [0048H] |
| run[k]r.end := end;s NofBoxes := NofBoxes + end -t beg;u INC(k) |
| 00E2 | r(80E00048): LDR R0, SP, 48H |
| 00E3 | r(41090010): SUB R1, R0, 10H |
| 00E4 | r(DA08D81C): BLCC MT [trap=1, pos=2264] |
| 00E5 | r(40010002): LSL R0, R0, 2H |
| 00E6 | r(00E80000): ADD R0, SP, R0 |
| 00E7 | s(91E0005E): LDR R1, SP, 5EH |
| 00E8 | s(B1000061): STR R1, R0, 61H |
| 00E9 | t(90E00031): LDR R0, SP, 31H |
| 00EA | t(91E0005E): LDR R1, SP, 5EH |
| 00EB | t(00080001): ADD R0, R0, R1 |
| 00EC | u(91E0005D): LDR R1, SP, 5DH |
| 00ED | u(00090001): SUB R0, R0, R1 |
| 00EE | u(B0E00031): STR R0, SP, 31H |
| ENDv; |
| 00EF | v(80E00048): LDR R0, SP, 48H |
| 00F0 | v(40080001): ADD R0, R0, 1H |
| 00F1 | v(A0E00048): STR R0, SP, 48H |
| 00F2 | v(E7FFFFDA): B -38 [00CDH] |
| NofBytes := 5;w j := 0;x |
| 00F3 | w(40000005): MOV R0, R0, 5H |
| 00F4 | w(A0E00034): STR R0, SP, 34H |
| 00F5 | x(40000000): MOV R0, R0, 0H |
| 00F6 | x(A0E00044): STR R0, SP, 44H |
| WHILE j # NofBoxes DOy |
| 00F7 | y(80E00044): LDR R0, SP, 44H |
| 00F8 | y(91E00031): LDR R1, SP, 31H |
| 00F9 | y(00090001): SUB R0, R0, R1 |
| 00FA | y(E1000049): BEQ 73 [0144H] |
| RdInt16(R,z box[j]a.dx)b;c RdInt16(R,d box[j]e.x)f;g RdInt16(R,h box[j]i.y)j;k |
| 00FB | z(40E80018): ADD R0, SP, 18H |
| 00FC | z .FIXUP D |
| 00FC | z(8D10001E): LDR SB, MT, MOD1 [Files] |
| 00FD | z(41D80001): ADD R1, SB, VAR1 |
| 00FE | a(82E00044): LDR R2, SP, 44H |
| 00FF | a(43290200): SUB R3, R2, 200H |
| 0100 | a(DA09731C): BLCC MT [trap=1, pos=2419] |
| 0101 | a(422A0008): MUL R2, R2, 8H |
| 0102 | a(02E80002): ADD R2, SP, R2 |
| 0103 | b(422800A0): ADD R2, R2, A0H |
| 0104 | c(F7FFFF43): BL -189 [0048H] |
| 0105 | d(40E80018): ADD R0, SP, 18H |
| 0106 | d .FIXUP D |
| 0106 | d(8D10000A): LDR SB, MT, MOD1 [Files] |
| 0107 | d(41D80001): ADD R1, SB, VAR1 |
| 0108 | e(82E00044): LDR R2, SP, 44H |
| 0109 | e(43290200): SUB R3, R2, 200H |
| 010A | e(DA098A1C): BLCC MT [trap=1, pos=2442] |
| 010B | e(422A0008): MUL R2, R2, 8H |
| 010C | e(02E80002): ADD R2, SP, R2 |
| 010D | f(422800A1): ADD R2, R2, A1H |
| 010E | g(F7FFFF39): BL -199 [0048H] |
| 010F | h(40E80018): ADD R0, SP, 18H |
| 0110 | h .FIXUP D |
| 0110 | h(8D10000A): LDR SB, MT, MOD1 [Files] |
| 0111 | h(41D80001): ADD R1, SB, VAR1 |
| 0112 | i(82E00044): LDR R2, SP, 44H |
| 0113 | i(43290200): SUB R3, R2, 200H |
| 0114 | i(DA09A01C): BLCC MT [trap=1, pos=2464] |
| 0115 | i(422A0008): MUL R2, R2, 8H |
| 0116 | i(02E80002): ADD R2, SP, R2 |
| 0117 | j(422800A2): ADD R2, R2, A2H |
| 0118 | k(F7FFFF2F): BL -209 [0048H] |
| RdInt16(R,l box[j]m.w)n;o RdInt16(R,p box[j]q.h)r;s |
| 0119 | l(40E80018): ADD R0, SP, 18H |
| 011A | l .FIXUP D |
| 011A | l(8D10000A): LDR SB, MT, MOD1 [Files] |
| 011B | l(41D80001): ADD R1, SB, VAR1 |
| 011C | m(82E00044): LDR R2, SP, 44H |
| 011D | m(43290200): SUB R3, R2, 200H |
| 011E | m(DA09C01C): BLCC MT [trap=1, pos=2496] |
| 011F | m(422A0008): MUL R2, R2, 8H |
| 0120 | m(02E80002): ADD R2, SP, R2 |
| 0121 | n(422800A3): ADD R2, R2, A3H |
| 0122 | o(F7FFFF25): BL -219 [0048H] |
| 0123 | p(40E80018): ADD R0, SP, 18H |
| 0124 | p .FIXUP D |
| 0124 | p(8D10000A): LDR SB, MT, MOD1 [Files] |
| 0125 | p(41D80001): ADD R1, SB, VAR1 |
| 0126 | q(82E00044): LDR R2, SP, 44H |
| 0127 | q(43290200): SUB R3, R2, 200H |
| 0128 | q(DA09D61C): BLCC MT [trap=1, pos=2518] |
| 0129 | q(422A0008): MUL R2, R2, 8H |
| 012A | q(02E80002): ADD R2, SP, R2 |
| 012B | r(422800A4): ADD R2, R2, A4H |
| 012C | s(F7FFFF1B): BL -229 [0048H] |
| NofBytes := NofBytes + 5 +t (box[j]u.w + 7)v DIV 8 *w box[j]x.h;y |
| 012D | t(80E00034): LDR R0, SP, 34H |
| 012E | t(40080005): ADD R0, R0, 5H |
| 012F | u(81E00044): LDR R1, SP, 44H |
| 0130 | u(42190200): SUB R2, R1, 200H |
| 0131 | u(DA0A071C): BLCC MT [trap=1, pos=2567] |
| 0132 | u(411A0008): MUL R1, R1, 8H |
| 0133 | u(01E80001): ADD R1, SP, R1 |
| 0134 | v(911000A3): LDR R1, R1, A3H |
| 0135 | v(41180007): ADD R1, R1, 7H |
| 0136 | w(41120003): ASR R1, R1, 3H |
| 0137 | x(82E00044): LDR R2, SP, 44H |
| 0138 | x(43290200): SUB R3, R2, 200H |
| 0139 | x(DA0A1D1C): BLCC MT [trap=1, pos=2589] |
| 013A | x(422A0008): MUL R2, R2, 8H |
| 013B | x(02E80002): ADD R2, SP, R2 |
| 013C | y(922000A4): LDR R2, R2, A4H |
| 013D | y(011A0002): MUL R1, R1, R2 |
| 013E | y(00080001): ADD R0, R0, R1 |
| 013F | y(A0E00034): STR R0, SP, 34H |
| INC(j) |
| ENDz; |
| 0140 | z(80E00044): LDR R0, SP, 44H |
| 0141 | z(40080001): ADD R0, R0, 1H |
| 0142 | z(A0E00044): STR R0, SP, 44H |
| 0143 | z(E7FFFFB3): B -77 [00F7H] |
| IF NofBytes < 2300 THENa NEW(F) ELSEb NEWc(LF);d F := LF ENDe ; |
| 0144 | a(80E00034): LDR R0, SP, 34H |
| 0145 | a(400908FC): SUB R0, R0, 8FCH |
| 0146 | a(ED000005): BGE 5 [014CH] |
| 0147 | b(40E8000C): ADD R0, SP, CH |
| 0148 | b .FIXUP D |
| 0148 | b(8D000024): LDR SB, MT, MOD0 [Fonts] |
| 0149 | b(41D80000): ADD R1, SB, 0H [data] |
| 014A | b(D70A6A0C): BL MT [trap=0, pos=2666] |
| 014B | c(E7000006): B 6 [0152H] |
| 014C | d(40E80010): ADD R0, SP, 10H |
| 014D | d .FIXUP D |
| 014D | d(8D000005): LDR SB, MT, MOD0 [Fonts] |
| 014E | d(41D80018): ADD R1, SB, 18H [data] |
| 014F | d(D70A730C): BL MT [trap=0, pos=2675] |
| 0150 | e(80E00010): LDR R0, SP, 10H |
| 0151 | e(A0E0000C): STR R0, SP, CH |
| F.namef := name;g |
| 0152 | f(80E0000C): LDR R0, SP, CH |
| 0153 | f(D10A904C): BLEQ MT [trap=4, pos=2704] |
| 0154 | g(81E00004): LDR R1, SP, 4H |
| 0155 | g(82E00008): LDR R2, SP, 8H |
| 0156 | g(E100000B): BEQ 11 [0162H] |
| 0157 | g(42280003): ADD R2, R2, 3H |
| 0158 | g(42220002): ASR R2, R2, 2H |
| 0159 | g(43000008): MOV R3, R0, 8H |
| 015A | g(03290003): SUB R3, R2, R3 |
| 015B | g(DE0A993C): BLGT MT [trap=3, pos=2713] |
| 015C | g(83100000): LDR R3, R1, 0H |
| 015D | g(41180004): ADD R1, R1, 4H |
| 015E | g(A3000000): STR R3, R0, 0H |
| 015F | g(40080004): ADD R0, R0, 4H |
| 0160 | g(42290001): SUB R2, R2, 1H |
| 0161 | g(E9FFFFFA): BNE -6 [015CH] |
| F.heighth := height;i F.minXj := minX;k F.maxXl := maxX;m F.maxYn := maxY;o |
| 0162 | h(80E0000C): LDR R0, SP, CH |
| 0163 | h(D10AAA4C): BLEQ MT [trap=4, pos=2730] |
| 0164 | i(91E00038): LDR R1, SP, 38H |
| 0165 | i(A1000020): STR R1, R0, 20H |
| 0166 | j(80E0000C): LDR R0, SP, CH |
| 0167 | j(D10ABC4C): BLEQ MT [trap=4, pos=2748] |
| 0168 | k(91E00039): LDR R1, SP, 39H |
| 0169 | k(A1000024): STR R1, R0, 24H |
| 016A | l(80E0000C): LDR R0, SP, CH |
| 016B | l(D10ACC4C): BLEQ MT [trap=4, pos=2764] |
| 016C | m(91E0003A): LDR R1, SP, 3AH |
| 016D | m(A1000028): STR R1, R0, 28H |
| 016E | n(80E0000C): LDR R0, SP, CH |
| 016F | n(D10ADC4C): BLEQ MT [trap=4, pos=2780] |
| 0170 | o(91E0003C): LDR R1, SP, 3CH |
| 0171 | o(A1000030): STR R1, R0, 30H |
| IF minY >= 80H THENp F.minYq := minY - 100H ELSEr Fs.minYt := minY ENDu ; |
| 0172 | p(90E0003B): LDR R0, SP, 3BH |
| 0173 | p(40090080): SUB R0, R0, 80H |
| 0174 | p(E5000006): BLT 6 [017BH] |
| 0175 | q(80E0000C): LDR R0, SP, CH |
| 0176 | q(D10B084C): BLEQ MT [trap=4, pos=2824] |
| 0177 | r(91E0003B): LDR R1, SP, 3BH |
| 0178 | r(41190100): SUB R1, R1, 100H |
| 0179 | r(A100002C): STR R1, R0, 2CH |
| 017A | s(E7000004): B 4 [017FH] |
| 017B | t(80E0000C): LDR R0, SP, CH |
| 017C | t(D10B234C): BLEQ MT [trap=4, pos=2851] |
| 017D | u(91E0003B): LDR R1, SP, 3BH |
| 017E | u(A100002C): STR R1, R0, 2CH |
| a0 := SYSTEM.ADR(F.rasterv);w |
| 017F | v(80E0000C): LDR R0, SP, CH |
| 0180 | v(D10B534C): BLEQ MT [trap=4, pos=2899] |
| 0181 | w(40080238): ADD R0, R0, 238H |
| 0182 | w(A0E00058): STR R0, SP, 58H |
| SYSTEM.PUT(a0, 0X);x SYSTEM.PUT(a0+1,y 0X);z SYSTEM.PUT(a0+2,a 0X);b SYSTEM.PUT(a0+3,c 0X);d SYSTEM.PUT(a0+4,e 0X);f |
| 0183 | x(80E00058): LDR R0, SP, 58H |
| 0184 | x(41000000): MOV R1, R0, 0H |
| 0185 | x(B1000000): STR R1, R0, 0H |
| 0186 | y(80E00058): LDR R0, SP, 58H |
| 0187 | y(40080001): ADD R0, R0, 1H |
| 0188 | z(41000000): MOV R1, R0, 0H |
| 0189 | z(B1000000): STR R1, R0, 0H |
| 018A | a(80E00058): LDR R0, SP, 58H |
| 018B | a(40080002): ADD R0, R0, 2H |
| 018C | b(41000000): MOV R1, R0, 0H |
| 018D | b(B1000000): STR R1, R0, 0H |
| 018E | c(80E00058): LDR R0, SP, 58H |
| 018F | c(40080003): ADD R0, R0, 3H |
| 0190 | d(41000000): MOV R1, R0, 0H |
| 0191 | d(B1000000): STR R1, R0, 0H |
| 0192 | e(80E00058): LDR R0, SP, 58H |
| 0193 | e(40080004): ADD R0, R0, 4H |
| 0194 | f(41000000): MOV R1, R0, 0H |
| 0195 | f(B1000000): STR R1, R0, 0H |
| (*null pattern for characters not in a run*) |
| INC(a0, 2);g a := a0+3;h j := 0;i k := 0;j m := 0;k |
| 0196 | g(80E00058): LDR R0, SP, 58H |
| 0197 | g(40080002): ADD R0, R0, 2H |
| 0198 | g(A0E00058): STR R0, SP, 58H |
| 0199 | h(80E00058): LDR R0, SP, 58H |
| 019A | h(40080003): ADD R0, R0, 3H |
| 019B | h(A0E00054): STR R0, SP, 54H |
| 019C | i(40000000): MOV R0, R0, 0H |
| 019D | i(A0E00044): STR R0, SP, 44H |
| 019E | j(40000000): MOV R0, R0, 0H |
| 019F | j(A0E00048): STR R0, SP, 48H |
| 01A0 | k(40000000): MOV R0, R0, 0H |
| 01A1 | k(A0E0004C): STR R0, SP, 4CH |
| WHILE k < NofRuns DOl |
| 01A2 | l(80E00048): LDR R0, SP, 48H |
| 01A3 | l(91E00030): LDR R1, SP, 30H |
| 01A4 | l(00090001): SUB R0, R0, R1 |
| 01A5 | l(ED00008A): BGE 138 [0230H] |
| WHILE (m < run[k]m.beg)n & (om < 128)p DOq F.Tr[m]s := a0;t INC(m) ENDu; |
| 01A6 | m(80E00048): LDR R0, SP, 48H |
| 01A7 | m(41090010): SUB R1, R0, 10H |
| 01A8 | m(DA0C6E1C): BLCC MT [trap=1, pos=3182] |
| 01A9 | m(40010002): LSL R0, R0, 2H |
| 01AA | m(00E80000): ADD R0, SP, R0 |
| 01AB | n(81E0004C): LDR R1, SP, 4CH |
| 01AC | n(90000060): LDR R0, R0, 60H |
| 01AD | n(01190000): SUB R1, R1, R0 |
| 01AE | o(ED000010): BGE 16 [01BFH] |
| 01AF | p(80E0004C): LDR R0, SP, 4CH |
| 01B0 | p(40090080): SUB R0, R0, 80H |
| 01B1 | q(ED00000D): BGE 13 [01BFH] |
| 01B2 | r(80E0000C): LDR R0, SP, CH |
| 01B3 | r(D10C864C): BLEQ MT [trap=4, pos=3206] |
| 01B4 | s(81E0004C): LDR R1, SP, 4CH |
| 01B5 | s(42190080): SUB R2, R1, 80H |
| 01B6 | s(DA0C891C): BLCC MT [trap=1, pos=3209] |
| 01B7 | s(41110002): LSL R1, R1, 2H |
| 01B8 | s(00080001): ADD R0, R0, R1 |
| 01B9 | t(81E00058): LDR R1, SP, 58H |
| 01BA | t(A1000038): STR R1, R0, 38H |
| 01BB | u(80E0004C): LDR R0, SP, 4CH |
| 01BC | u(40080001): ADD R0, R0, 1H |
| 01BD | u(A0E0004C): STR R0, SP, 4CH |
| 01BE | u(E7FFFFE7): B -25 [01A6H] |
| WHILE (m < run[k]v.end)w & (xm < 128)y DOz |
| 01BF | v(80E00048): LDR R0, SP, 48H |
| 01C0 | v(41090010): SUB R1, R0, 10H |
| 01C1 | v(DA0CB81C): BLCC MT [trap=1, pos=3256] |
| 01C2 | v(40010002): LSL R0, R0, 2H |
| 01C3 | v(00E80000): ADD R0, SP, R0 |
| 01C4 | w(81E0004C): LDR R1, SP, 4CH |
| 01C5 | w(90000061): LDR R0, R0, 61H |
| 01C6 | w(01190000): SUB R1, R1, R0 |
| 01C7 | x(ED000064): BGE 100 [022CH] |
| 01C8 | y(80E0004C): LDR R0, SP, 4CH |
| 01C9 | y(40090080): SUB R0, R0, 80H |
| 01CA | z(ED000061): BGE 97 [022CH] |
| F.Ta[m]b := a+3;c |
| 01CB | a(80E0000C): LDR R0, SP, CH |
| 01CC | a(D10CDC4C): BLEQ MT [trap=4, pos=3292] |
| 01CD | b(81E0004C): LDR R1, SP, 4CH |
| 01CE | b(42190080): SUB R2, R1, 80H |
| 01CF | b(DA0CDF1C): BLCC MT [trap=1, pos=3295] |
| 01D0 | b(41110002): LSL R1, R1, 2H |
| 01D1 | b(00080001): ADD R0, R0, R1 |
| 01D2 | c(81E00054): LDR R1, SP, 54H |
| 01D3 | c(41180003): ADD R1, R1, 3H |
| 01D4 | c(A1000038): STR R1, R0, 38H |
| SYSTEM.PUT(a, box[j]d.dx);e SYSTEM.PUT(a+1,f box[j]g.x);h SYSTEM.PUT(a+2,i box[j]j.y);k |
| 01D5 | d(80E00044): LDR R0, SP, 44H |
| 01D6 | d(41090200): SUB R1, R0, 200H |
| 01D7 | d(DA0D081C): BLCC MT [trap=1, pos=3336] |
| 01D8 | d(400A0008): MUL R0, R0, 8H |
| 01D9 | d(00E80000): ADD R0, SP, R0 |
| 01DA | e(81E00054): LDR R1, SP, 54H |
| 01DB | e(900000A0): LDR R0, R0, A0H |
| 01DC | e(B0100000): STR R0, R1, 0H |
| 01DD | f(80E00054): LDR R0, SP, 54H |
| 01DE | f(40080001): ADD R0, R0, 1H |
| 01DF | g(81E00044): LDR R1, SP, 44H |
| 01E0 | g(42190200): SUB R2, R1, 200H |
| 01E1 | g(DA0D241C): BLCC MT [trap=1, pos=3364] |
| 01E2 | g(411A0008): MUL R1, R1, 8H |
| 01E3 | g(01E80001): ADD R1, SP, R1 |
| 01E4 | h(911000A1): LDR R1, R1, A1H |
| 01E5 | h(B1000000): STR R1, R0, 0H |
| 01E6 | i(80E00054): LDR R0, SP, 54H |
| 01E7 | i(40080002): ADD R0, R0, 2H |
| 01E8 | j(81E00044): LDR R1, SP, 44H |
| 01E9 | j(42190200): SUB R2, R1, 200H |
| 01EA | j(DA0D3F1C): BLCC MT [trap=1, pos=3391] |
| 01EB | j(411A0008): MUL R1, R1, 8H |
| 01EC | j(01E80001): ADD R1, SP, R1 |
| 01ED | k(911000A2): LDR R1, R1, A2H |
| 01EE | k(B1000000): STR R1, R0, 0H |
| SYSTEM.PUT(a+3,l box[j]m.w);n SYSTEM.PUT(a+4,o box[j]p.h);q INC(a, 5);r |
| 01EF | l(80E00054): LDR R0, SP, 54H |
| 01F0 | l(40080003): ADD R0, R0, 3H |
| 01F1 | m(81E00044): LDR R1, SP, 44H |
| 01F2 | m(42190200): SUB R2, R1, 200H |
| 01F3 | m(DA0D661C): BLCC MT [trap=1, pos=3430] |
| 01F4 | m(411A0008): MUL R1, R1, 8H |
| 01F5 | m(01E80001): ADD R1, SP, R1 |
| 01F6 | n(911000A3): LDR R1, R1, A3H |
| 01F7 | n(B1000000): STR R1, R0, 0H |
| 01F8 | o(80E00054): LDR R0, SP, 54H |
| 01F9 | o(40080004): ADD R0, R0, 4H |
| 01FA | p(81E00044): LDR R1, SP, 44H |
| 01FB | p(42190200): SUB R2, R1, 200H |
| 01FC | p(DA0D811C): BLCC MT [trap=1, pos=3457] |
| 01FD | p(411A0008): MUL R1, R1, 8H |
| 01FE | p(01E80001): ADD R1, SP, R1 |
| 01FF | q(911000A4): LDR R1, R1, A4H |
| 0200 | q(B1000000): STR R1, R0, 0H |
| 0201 | r(80E00054): LDR R0, SP, 54H |
| 0202 | r(40080005): ADD R0, R0, 5H |
| 0203 | r(A0E00054): STR R0, SP, 54H |
| n := (box[j]s.w + 7)t DIV 8 *u box[j]v.h;w |
| 0204 | s(80E00044): LDR R0, SP, 44H |
| 0205 | s(41090200): SUB R1, R0, 200H |
| 0206 | s(DA0DA91C): BLCC MT [trap=1, pos=3497] |
| 0207 | s(400A0008): MUL R0, R0, 8H |
| 0208 | s(00E80000): ADD R0, SP, R0 |
| 0209 | t(900000A3): LDR R0, R0, A3H |
| 020A | t(40080007): ADD R0, R0, 7H |
| 020B | u(40020003): ASR R0, R0, 3H |
| 020C | v(81E00044): LDR R1, SP, 44H |
| 020D | v(42190200): SUB R2, R1, 200H |
| 020E | v(DA0DBF1C): BLCC MT [trap=1, pos=3519] |
| 020F | v(411A0008): MUL R1, R1, 8H |
| 0210 | v(01E80001): ADD R1, SP, R1 |
| 0211 | w(911000A4): LDR R1, R1, A4H |
| 0212 | w(000A0001): MUL R0, R0, R1 |
| 0213 | w(A0E00050): STR R0, SP, 50H |
| WHILE n # 0 DOx DEC(n);y Files.ReadByte(R,z b)a;b SYSTEM.PUT(a, b);c INC(a) ENDd ; |
| 0214 | x(80E00050): LDR R0, SP, 50H |
| 0215 | x(E100000F): BEQ 15 [0225H] |
| 0216 | y(80E00050): LDR R0, SP, 50H |
| 0217 | y(40090001): SUB R0, R0, 1H |
| 0218 | y(A0E00050): STR R0, SP, 50H |
| 0219 | z(40E80018): ADD R0, SP, 18H |
| 021A | z .FIXUP D |
| 021A | z(8D1000CD): LDR SB, MT, MOD1 [Files] |
| 021B | z(41D80001): ADD R1, SB, VAR1 |
| 021C | a(42E8005C): ADD R2, SP, 5CH |
| 021D | b .FIXUP P |
| 021D | b(F710E187): BL MOD1 [Files] PROC14 |
| 021E | c(80E00054): LDR R0, SP, 54H |
| 021F | c(91E0005C): LDR R1, SP, 5CH |
| 0220 | c(B1000000): STR R1, R0, 0H |
| 0221 | d(80E00054): LDR R0, SP, 54H |
| 0222 | d(40080001): ADD R0, R0, 1H |
| 0223 | d(A0E00054): STR R0, SP, 54H |
| 0224 | d(E7FFFFEF): B -17 [0214H] |
| INC(j);e INC(m) |
| 0225 | e(80E00044): LDR R0, SP, 44H |
| 0226 | e(40080001): ADD R0, R0, 1H |
| 0227 | e(A0E00044): STR R0, SP, 44H |
| ENDf; |
| 0228 | f(80E0004C): LDR R0, SP, 4CH |
| 0229 | f(40080001): ADD R0, R0, 1H |
| 022A | f(A0E0004C): STR R0, SP, 4CH |
| 022B | f(E7FFFF93): B -109 [01BFH] |
| INC(k) |
| ENDg; |
| 022C | g(80E00048): LDR R0, SP, 48H |
| 022D | g(40080001): ADD R0, R0, 1H |
| 022E | g(A0E00048): STR R0, SP, 48H |
| 022F | g(E7FFFF72): B -142 [01A2H] |
| WHILE m < 128 DOh F.Ti[m]j := a0;k INC(m) ENDl ; |
| 0230 | h(80E0004C): LDR R0, SP, 4CH |
| 0231 | h(40090080): SUB R0, R0, 80H |
| 0232 | h(ED00000D): BGE 13 [0240H] |
| 0233 | i(80E0000C): LDR R0, SP, CH |
| 0234 | i(D10E7F4C): BLEQ MT [trap=4, pos=3711] |
| 0235 | j(81E0004C): LDR R1, SP, 4CH |
| 0236 | j(42190080): SUB R2, R1, 80H |
| 0237 | j(DA0E821C): BLCC MT [trap=1, pos=3714] |
| 0238 | j(41110002): LSL R1, R1, 2H |
| 0239 | j(00080001): ADD R0, R0, R1 |
| 023A | k(81E00058): LDR R1, SP, 58H |
| 023B | k(A1000038): STR R1, R0, 38H |
| 023C | l(80E0004C): LDR R0, SP, 4CH |
| 023D | l(40080001): ADD R0, R0, 1H |
| 023E | l(A0E0004C): STR R0, SP, 4CH |
| 023F | l(E7FFFFF0): B -16 [0230H] |
| F.nextm := root;n root := F |
| 0240 | m(80E0000C): LDR R0, SP, CH |
| 0241 | m(D10EA54C): BLEQ MT [trap=4, pos=3749] |
| 0242 | n .FIXUP D |
| 0242 | n(8D000028): LDR SB, MT, MOD0 [Fonts] |
| 0243 | n(81D00034): LDR R1, SB, 34H [data] |
| 0244 | n(A1000034): STR R1, R0, 34H |
| ELSEo (*bad file id*) Fp := Default |
| 0245 | o(80E0000C): LDR R0, SP, CH |
| 0246 | o(A0D00034): STR R0, SB, 34H |
| 0247 | p(E7000003): B 3 [024BH] |
| ENDq |
| 0248 | q .FIXUP D |
| 0248 | q(8D000006): LDR SB, MT, MOD0 [Fonts] |
| 0249 | q(80D00030): LDR R0, SB, 30H [data] |
| 024A | q(A0E0000C): STR R0, SP, CH |
| ELSE (*font file not available*) Fr := Default |
| 024B | r(E7000003): B 3 [024FH] |
| ENDs |
| 024C | s .FIXUP D |
| 024C | s(8D000004): LDR SB, MT, MOD0 [Fonts] |
| 024D | s(80D00030): LDR R0, SB, 30H [data] |
| 024E | s(A0E0000C): STR R0, SP, CH |
| END; |
| RETURN F |
| ENDt This; |
| 024F | t(80E0000C): LDR R0, SP, CH |
| 0250 | t(8FE00000): LDR LNK, SP, 0H |
| 0251 | t(4EE810A0): ADD SP, SP, 10A0H |
| 0252 | t(C700000F): B LNK |
| |
| PROCEDURE Free*; (*remove all but first two from font list*) |
| VAR f: Font; |
| BEGINu f := root.nextv;w |
| 0253 | u .PROC 6 |
| 0253 | u .COMMAND Free |
| 0253 | u(4EE90008): SUB SP, SP, 8H |
| 0254 | u(AFE00000): STR LNK, SP, 0H |
| 0255 | v .FIXUP D |
| 0255 | v(8D000009): LDR SB, MT, MOD0 [Fonts] |
| 0256 | v(80D00034): LDR R0, SB, 34H [data] |
| 0257 | v(D10FA34C): BLEQ MT [trap=4, pos=4003] |
| 0258 | w(80000034): LDR R0, R0, 34H |
| 0259 | w(A0E00004): STR R0, SP, 4H |
| IF f # NIL THENx f := f.nexty ENDz ; |
| 025A | x(80E00004): LDR R0, SP, 4H |
| 025B | x(E1000004): BEQ 4 [0260H] |
| 025C | y(80E00004): LDR R0, SP, 4H |
| 025D | y(D10FC24C): BLEQ MT [trap=4, pos=4034] |
| 025E | z(80000034): LDR R0, R0, 34H |
| 025F | z(A0E00004): STR R0, SP, 4H |
| f.nexta := NIL |
| 0260 | a(80E00004): LDR R0, SP, 4H |
| 0261 | a(D10FD14C): BLEQ MT [trap=4, pos=4049] |
| ENDb Free; |
| 0262 | b(41000000): MOV R1, R0, 0H |
| 0263 | b(A1000034): STR R1, R0, 34H |
| 0264 | b(8FE00000): LDR LNK, SP, 0H |
| 0265 | b(4EE80008): ADD SP, SP, 8H |
| 0266 | b(C700000F): B LNK |
| |
| BEGINc root := NIL;d Default := This("Oberon10.Scn.Fnt")e |
| 0267 | c .PROC 0 |
| 0267 | c .ENTRYPOINT |
| 0267 | c(4EE90004): SUB SP, SP, 4H |
| 0268 | c(AFE00000): STR LNK, SP, 0H |
| 0269 | d(40000000): MOV R0, R0, 0H |
| 026A | d .FIXUP D |
| 026A | d(8D000015): LDR SB, MT, MOD0 [Fonts] |
| 026B | d(A0D00034): STR R0, SB, 34H [data] |
| 026C | e(40D80038): ADD R0, SB, 38H |
| 026D | e(41000011): MOV R1, R0, 11H |
| ENDf Fonts.g |
| 026E | f(F7FFFDE9): BL -535 [0058H] |
| 026F | f .FIXUP D |
| 026F | f(8D000005): LDR SB, MT, MOD0 [Fonts] |
| 0270 | f(A0D00030): STR R0, SB, 30H [data] |
| 0271 | g(8FE00000): LDR LNK, SP, 0H |
| 0272 | g(4EE80004): ADD SP, SP, 4H |
| 0273 | g(C700000F): B LNK |