forked from MirrorRepos/RomWBW
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3019 lines
178 KiB
3019 lines
178 KiB
|===========================================================================|
|
|
Objects : -
|
|
vgademo
|
|
|
|
|
+---vgacolour
|
|
|
|
|
+---vt100
|
|
|
|
Object Address : 0010 : Object Name : vgademo
|
|
Object Address : 17F4 : Object Name : vgacolour
|
|
Object Address : 2B64 : Object Name : vt100
|
|
|
|
Binary Image Information :
|
|
PBASE : 0010
|
|
VBASE : 38B8
|
|
DBASE : 38E8
|
|
PCURR : 12FC
|
|
DCURR : 38EC
|
|
|===========================================================================|
|
|
|===========================================================================|
|
|
Object vgademo
|
|
Object Base is 0010
|
|
|===========================================================================|
|
|
Object Constants
|
|
|===========================================================================|
|
|
Constant _xinfreq = 004C4B40 (5000000)
|
|
Constant _clkmode = 00000408 (1032)
|
|
Constant CHAR_W = 00000050 (80)
|
|
Constant CHAR_H = 0000001E (30)
|
|
|===========================================================================|
|
|
|===========================================================================|
|
|
VBASE Global Variables
|
|
|===========================================================================|
|
|
VBASE : 0000 LONG Size 0018 Variable params
|
|
VBASE : 0018 LONG Size 0004 Variable seed
|
|
|===========================================================================|
|
|
Object DAT Blocks
|
|
|===========================================================================|
|
|
002C(0000) 00 00 00 00 | command long 0
|
|
0030(0001) 20 07 | screen word $0720[CHAR_W*CHAR_H]
|
|
12F0(04B1) 00 | cursor byte 0,0,%110,0,0,0,0,0
|
|
12F1(04B1) 00 |
|
|
12F2(04B1) 06 |
|
|
12F3(04B1) 00 |
|
|
12F4(04B2) 00 |
|
|
12F5(04B2) 00 |
|
|
12F6(04B2) 00 |
|
|
12F7(04B2) 00 |
|
|
12F8(04B3) 00 00 00 00 | sync long 0
|
|
|===========================================================================|
|
|
|===========================================================================|
|
|
Spin Block main with 0 Parameters and 0 Extra Stack Longs. Method 1
|
|
PUB main
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
|===========================================================================|
|
|
20 vga.start(16, @screen, @cursor, @sync)
|
|
Addr : 12FC: 01 : Drop Anchor
|
|
Addr : 12FD: 37 03 : Constant Mask Y=3 00000010
|
|
Addr : 12FF: A7 20 : Memory Op Word PBASE + ADDRESS Address = 0020
|
|
Addr : 1301: 87 92 E0 : Memory Op Byte PBASE + ADDRESS Address = 12E0
|
|
Addr : 1304: C7 92 E8 : Memory Op Long PBASE + ADDRESS Address = 12E8
|
|
Addr : 1307: 06 05 01 : Call Obj.Sub 5 1
|
|
21 params[0] := @command
|
|
Addr : 130A: C7 1C : Memory Op Long PBASE + ADDRESS Address = 001C
|
|
Addr : 130C: 35 : Constant 1 $00000000
|
|
Addr : 130D: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
22 params[1] := @screen
|
|
Addr : 130F: A7 20 : Memory Op Word PBASE + ADDRESS Address = 0020
|
|
Addr : 1311: 36 : Constant 2 $00000001
|
|
Addr : 1312: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
23 params[2] := @cursor
|
|
Addr : 1314: 87 92 E0 : Memory Op Byte PBASE + ADDRESS Address = 12E0
|
|
Addr : 1317: 37 00 : Constant Mask Y=0 00000002
|
|
Addr : 1319: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
24 params[3] := @sync
|
|
Addr : 131B: C7 92 E8 : Memory Op Long PBASE + ADDRESS Address = 12E8
|
|
Addr : 131E: 37 21 : Constant Mask Y=33 Decrement 00000003
|
|
Addr : 1320: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
25 params[4] := CHAR_W
|
|
Addr : 1322: 38 50 : Constant 1 Bytes - 50
|
|
Addr : 1324: 37 01 : Constant Mask Y=1 00000004
|
|
Addr : 1326: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
26 params[5] := CHAR_H
|
|
Addr : 1328: 38 1E : Constant 1 Bytes - 1E
|
|
Addr : 132A: 38 05 : Constant 1 Bytes - 05
|
|
Addr : 132C: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
28 vt100.start(@params)
|
|
Addr : 132E: 01 : Drop Anchor
|
|
Addr : 132F: 43 : Variable Operation Global Offset - 0 Address
|
|
Addr : 1330: 06 06 01 : Call Obj.Sub 6 1
|
|
30 seed := cnt
|
|
Addr : 1333: 3F 91 : Register op CNT Read
|
|
Addr : 1335: 59 : Variable Operation Global Offset - 6 Write
|
|
32 str(string(27,"[2;34m",27,"[2J",27,"[H","Hello World!",13,10))
|
|
Addr : 1336: 01 : Drop Anchor
|
|
Addr : 1337: PBASE Constant Address of Label0008
|
|
Addr : 1337: 87 94 51 : Memory Op Byte PBASE + ADDRESS Address = 1451
|
|
Addr : 133A: 05 03 : Call Sub 3
|
|
33 str(string(27,"[7m","Inverse on",13,10))
|
|
Addr : 133C: 01 : Drop Anchor
|
|
Addr : 133D: PBASE Constant Address of Label0009
|
|
Addr : 133D: 87 94 6E : Memory Op Byte PBASE + ADDRESS Address = 146E
|
|
Addr : 1340: 05 03 : Call Sub 3
|
|
34 str(string(27,"[27m","Inverse off",13,10))
|
|
Addr : 1342: 01 : Drop Anchor
|
|
Addr : 1343: PBASE Constant Address of Label000A
|
|
Addr : 1343: 87 94 7F : Memory Op Byte PBASE + ADDRESS Address = 147F
|
|
Addr : 1346: 05 03 : Call Sub 3
|
|
35 str(string(27,"[1m","Highlite on",13,10))
|
|
Addr : 1348: 01 : Drop Anchor
|
|
Addr : 1349: PBASE Constant Address of Label000B
|
|
Addr : 1349: 87 94 92 : Memory Op Byte PBASE + ADDRESS Address = 1492
|
|
Addr : 134C: 05 03 : Call Sub 3
|
|
36 str(string(27,"[2m","Highlite off",13,10))
|
|
Addr : 134E: 01 : Drop Anchor
|
|
Addr : 134F: PBASE Constant Address of Label000C
|
|
Addr : 134F: 87 94 A4 : Memory Op Byte PBASE + ADDRESS Address = 14A4
|
|
Addr : 1352: 05 03 : Call Sub 3
|
|
37 str(string(27,"[4m","Underline on ",27,"[1m + highlite ",27,"[2m",27,"[7m + inverse ",27,"[0m all off + default color.",13,10))
|
|
Addr : 1354: 01 : Drop Anchor
|
|
Addr : 1355: PBASE Constant Address of Label000D
|
|
Addr : 1355: 87 94 B7 : Memory Op Byte PBASE + ADDRESS Address = 14B7
|
|
Addr : 1358: 05 03 : Call Sub 3
|
|
38 str(string(27,"[40m","BGD 0"))
|
|
Addr : 135A: 01 : Drop Anchor
|
|
Addr : 135B: PBASE Constant Address of Label000E
|
|
Addr : 135B: 87 95 0B : Memory Op Byte PBASE + ADDRESS Address = 150B
|
|
Addr : 135E: 05 03 : Call Sub 3
|
|
39 str(string(27,"[41m","BGD 1"))
|
|
Addr : 1360: 01 : Drop Anchor
|
|
Addr : 1361: PBASE Constant Address of Label000F
|
|
Addr : 1361: 87 95 16 : Memory Op Byte PBASE + ADDRESS Address = 1516
|
|
Addr : 1364: 05 03 : Call Sub 3
|
|
40 str(string(27,"[42m","BGD 2"))
|
|
Addr : 1366: 01 : Drop Anchor
|
|
Addr : 1367: PBASE Constant Address of Label0010
|
|
Addr : 1367: 87 95 21 : Memory Op Byte PBASE + ADDRESS Address = 1521
|
|
Addr : 136A: 05 03 : Call Sub 3
|
|
41 str(string(27,"[43m","BGD 3"))
|
|
Addr : 136C: 01 : Drop Anchor
|
|
Addr : 136D: PBASE Constant Address of Label0011
|
|
Addr : 136D: 87 95 2C : Memory Op Byte PBASE + ADDRESS Address = 152C
|
|
Addr : 1370: 05 03 : Call Sub 3
|
|
42 str(string(27,"[44m","BGD 4"))
|
|
Addr : 1372: 01 : Drop Anchor
|
|
Addr : 1373: PBASE Constant Address of Label0012
|
|
Addr : 1373: 87 95 37 : Memory Op Byte PBASE + ADDRESS Address = 1537
|
|
Addr : 1376: 05 03 : Call Sub 3
|
|
43 str(string(27,"[45m","BGD 5"))
|
|
Addr : 1378: 01 : Drop Anchor
|
|
Addr : 1379: PBASE Constant Address of Label0013
|
|
Addr : 1379: 87 95 42 : Memory Op Byte PBASE + ADDRESS Address = 1542
|
|
Addr : 137C: 05 03 : Call Sub 3
|
|
44 str(string(27,"[46m","BGD 6"))
|
|
Addr : 137E: 01 : Drop Anchor
|
|
Addr : 137F: PBASE Constant Address of Label0014
|
|
Addr : 137F: 87 95 4D : Memory Op Byte PBASE + ADDRESS Address = 154D
|
|
Addr : 1382: 05 03 : Call Sub 3
|
|
45 str(string(27,"[47m","BGD 7",13,10))
|
|
Addr : 1384: 01 : Drop Anchor
|
|
Addr : 1385: PBASE Constant Address of Label0015
|
|
Addr : 1385: 87 95 58 : Memory Op Byte PBASE + ADDRESS Address = 1558
|
|
Addr : 1388: 05 03 : Call Sub 3
|
|
47 str(string(27,"[41m"))
|
|
Addr : 138A: 01 : Drop Anchor
|
|
Addr : 138B: PBASE Constant Address of Label0016
|
|
Addr : 138B: 87 95 65 : Memory Op Byte PBASE + ADDRESS Address = 1565
|
|
Addr : 138E: 05 03 : Call Sub 3
|
|
49 str(string(27,"[30m","FGD 0"))
|
|
Addr : 1390: 01 : Drop Anchor
|
|
Addr : 1391: PBASE Constant Address of Label0017
|
|
Addr : 1391: 87 95 6B : Memory Op Byte PBASE + ADDRESS Address = 156B
|
|
Addr : 1394: 05 03 : Call Sub 3
|
|
50 str(string(27,"[31m","FGD 1"))
|
|
Addr : 1396: 01 : Drop Anchor
|
|
Addr : 1397: PBASE Constant Address of Label0018
|
|
Addr : 1397: 87 95 76 : Memory Op Byte PBASE + ADDRESS Address = 1576
|
|
Addr : 139A: 05 03 : Call Sub 3
|
|
51 str(string(27,"[32m","FGD 2"))
|
|
Addr : 139C: 01 : Drop Anchor
|
|
Addr : 139D: PBASE Constant Address of Label0019
|
|
Addr : 139D: 87 95 81 : Memory Op Byte PBASE + ADDRESS Address = 1581
|
|
Addr : 13A0: 05 03 : Call Sub 3
|
|
52 str(string(27,"[33m","FGD 3"))
|
|
Addr : 13A2: 01 : Drop Anchor
|
|
Addr : 13A3: PBASE Constant Address of Label001A
|
|
Addr : 13A3: 87 95 8C : Memory Op Byte PBASE + ADDRESS Address = 158C
|
|
Addr : 13A6: 05 03 : Call Sub 3
|
|
53 str(string(27,"[34m","FGD 4"))
|
|
Addr : 13A8: 01 : Drop Anchor
|
|
Addr : 13A9: PBASE Constant Address of Label001B
|
|
Addr : 13A9: 87 95 97 : Memory Op Byte PBASE + ADDRESS Address = 1597
|
|
Addr : 13AC: 05 03 : Call Sub 3
|
|
54 str(string(27,"[35m","FGD 5"))
|
|
Addr : 13AE: 01 : Drop Anchor
|
|
Addr : 13AF: PBASE Constant Address of Label001C
|
|
Addr : 13AF: 87 95 A2 : Memory Op Byte PBASE + ADDRESS Address = 15A2
|
|
Addr : 13B2: 05 03 : Call Sub 3
|
|
55 str(string(27,"[36m","FGD 6"))
|
|
Addr : 13B4: 01 : Drop Anchor
|
|
Addr : 13B5: PBASE Constant Address of Label001D
|
|
Addr : 13B5: 87 95 AD : Memory Op Byte PBASE + ADDRESS Address = 15AD
|
|
Addr : 13B8: 05 03 : Call Sub 3
|
|
56 str(string(27,"[37m","FGD 7",13,10))
|
|
Addr : 13BA: 01 : Drop Anchor
|
|
Addr : 13BB: PBASE Constant Address of Label001E
|
|
Addr : 13BB: 87 95 B8 : Memory Op Byte PBASE + ADDRESS Address = 15B8
|
|
Addr : 13BE: 05 03 : Call Sub 3
|
|
57 str(string(27,"[1;40m"))
|
|
Addr : 13C0: 01 : Drop Anchor
|
|
Addr : 13C1: PBASE Constant Address of Label001F
|
|
Addr : 13C1: 87 95 C5 : Memory Op Byte PBASE + ADDRESS Address = 15C5
|
|
Addr : 13C4: 05 03 : Call Sub 3
|
|
58 str(string(27,"[30m","FGD 0"))
|
|
Addr : 13C6: 01 : Drop Anchor
|
|
Addr : 13C7: PBASE Constant Address of Label0020
|
|
Addr : 13C7: 87 95 CD : Memory Op Byte PBASE + ADDRESS Address = 15CD
|
|
Addr : 13CA: 05 03 : Call Sub 3
|
|
59 str(string(27,"[31m","FGD 1"))
|
|
Addr : 13CC: 01 : Drop Anchor
|
|
Addr : 13CD: PBASE Constant Address of Label0021
|
|
Addr : 13CD: 87 95 D8 : Memory Op Byte PBASE + ADDRESS Address = 15D8
|
|
Addr : 13D0: 05 03 : Call Sub 3
|
|
60 str(string(27,"[32m","FGD 2"))
|
|
Addr : 13D2: 01 : Drop Anchor
|
|
Addr : 13D3: PBASE Constant Address of Label0022
|
|
Addr : 13D3: 87 95 E3 : Memory Op Byte PBASE + ADDRESS Address = 15E3
|
|
Addr : 13D6: 05 03 : Call Sub 3
|
|
61 str(string(27,"[33m","FGD 3"))
|
|
Addr : 13D8: 01 : Drop Anchor
|
|
Addr : 13D9: PBASE Constant Address of Label0023
|
|
Addr : 13D9: 87 95 EE : Memory Op Byte PBASE + ADDRESS Address = 15EE
|
|
Addr : 13DC: 05 03 : Call Sub 3
|
|
62 str(string(27,"[34m","FGD 4"))
|
|
Addr : 13DE: 01 : Drop Anchor
|
|
Addr : 13DF: PBASE Constant Address of Label0024
|
|
Addr : 13DF: 87 95 F9 : Memory Op Byte PBASE + ADDRESS Address = 15F9
|
|
Addr : 13E2: 05 03 : Call Sub 3
|
|
63 str(string(27,"[35m","FGD 5"))
|
|
Addr : 13E4: 01 : Drop Anchor
|
|
Addr : 13E5: PBASE Constant Address of Label0025
|
|
Addr : 13E5: 87 96 04 : Memory Op Byte PBASE + ADDRESS Address = 1604
|
|
Addr : 13E8: 05 03 : Call Sub 3
|
|
64 str(string(27,"[36m","FGD 6"))
|
|
Addr : 13EA: 01 : Drop Anchor
|
|
Addr : 13EB: PBASE Constant Address of Label0026
|
|
Addr : 13EB: 87 96 0F : Memory Op Byte PBASE + ADDRESS Address = 160F
|
|
Addr : 13EE: 05 03 : Call Sub 3
|
|
65 str(string(27,"[37m","FGD 7",13,10))
|
|
Addr : 13F0: 01 : Drop Anchor
|
|
Addr : 13F1: PBASE Constant Address of Label0027
|
|
Addr : 13F1: 87 96 1A : Memory Op Byte PBASE + ADDRESS Address = 161A
|
|
Addr : 13F4: 05 03 : Call Sub 3
|
|
66 str(string(27,"[2m","The quick brown fox jumps over the lazy dog.", 13, 10))
|
|
Addr : 13F6: 01 : Drop Anchor
|
|
Addr : 13F7: PBASE Constant Address of Label0028
|
|
Addr : 13F7: 87 96 27 : Memory Op Byte PBASE + ADDRESS Address = 1627
|
|
Addr : 13FA: 05 03 : Call Sub 3
|
|
68 str(string("Setting a scroll range below here.",13,10))
|
|
Addr : 13FC: 01 : Drop Anchor
|
|
Addr : 13FD: PBASE Constant Address of Label0029
|
|
Addr : 13FD: 87 96 5A : Memory Op Byte PBASE + ADDRESS Address = 165A
|
|
Addr : 1400: 05 03 : Call Sub 3
|
|
69 str(string(27,"[24H","This part of the screen remains ",27,"[4mstatic",27,"[24m, since it is below the scrolling region."))
|
|
Addr : 1402: 01 : Drop Anchor
|
|
Addr : 1403: PBASE Constant Address of Label002A
|
|
Addr : 1403: 87 96 7F : Memory Op Byte PBASE + ADDRESS Address = 167F
|
|
Addr : 1406: 05 03 : Call Sub 3
|
|
70 str(string(27,"[12;23r",27,"[41m"))
|
|
Addr : 1408: 01 : Drop Anchor
|
|
Addr : 1409: PBASE Constant Address of Label002B
|
|
Addr : 1409: 87 96 DD : Memory Op Byte PBASE + ADDRESS Address = 16DD
|
|
Addr : 140C: 05 03 : Call Sub 3
|
|
Addr : 140E: Label002C
|
|
72 chr(27)
|
|
Addr : 140E: 01 : Drop Anchor
|
|
Addr : 140F: 38 1B : Constant 1 Bytes - 1B
|
|
Addr : 1411: 05 02 : Call Sub 2
|
|
73 chr("[")
|
|
Addr : 1413: 01 : Drop Anchor
|
|
Addr : 1414: 38 5B : Constant 1 Bytes - 5B
|
|
Addr : 1416: 05 02 : Call Sub 2
|
|
74 chr("3")
|
|
Addr : 1418: 01 : Drop Anchor
|
|
Addr : 1419: 38 33 : Constant 1 Bytes - 33
|
|
Addr : 141B: 05 02 : Call Sub 2
|
|
75 chr("0" + rand & 7)
|
|
Addr : 141D: 01 : Drop Anchor
|
|
Addr : 141E: 38 30 : Constant 1 Bytes - 30
|
|
Addr : 1420: 00 : Drop Anchor Push
|
|
Addr : 1421: 05 04 : Call Sub 4
|
|
Addr : 1423: 37 22 : Constant Mask Y=34 Decrement 00000007
|
|
Addr : 1425: E8 : Math Op &
|
|
Addr : 1426: EC : Math Op +
|
|
Addr : 1427: 05 02 : Call Sub 2
|
|
76 chr("m")
|
|
Addr : 1429: 01 : Drop Anchor
|
|
Addr : 142A: 38 6D : Constant 1 Bytes - 6D
|
|
Addr : 142C: 05 02 : Call Sub 2
|
|
77 chr(27)
|
|
Addr : 142E: 01 : Drop Anchor
|
|
Addr : 142F: 38 1B : Constant 1 Bytes - 1B
|
|
Addr : 1431: 05 02 : Call Sub 2
|
|
78 chr("[")
|
|
Addr : 1433: 01 : Drop Anchor
|
|
Addr : 1434: 38 5B : Constant 1 Bytes - 5B
|
|
Addr : 1436: 05 02 : Call Sub 2
|
|
79 chr("4")
|
|
Addr : 1438: 01 : Drop Anchor
|
|
Addr : 1439: 38 34 : Constant 1 Bytes - 34
|
|
Addr : 143B: 05 02 : Call Sub 2
|
|
80 chr("0" + rand & 7)
|
|
Addr : 143D: 01 : Drop Anchor
|
|
Addr : 143E: 38 30 : Constant 1 Bytes - 30
|
|
Addr : 1440: 00 : Drop Anchor Push
|
|
Addr : 1441: 05 04 : Call Sub 4
|
|
Addr : 1443: 37 22 : Constant Mask Y=34 Decrement 00000007
|
|
Addr : 1445: E8 : Math Op &
|
|
Addr : 1446: EC : Math Op +
|
|
Addr : 1447: 05 02 : Call Sub 2
|
|
81 chr("m")
|
|
Addr : 1449: 01 : Drop Anchor
|
|
Addr : 144A: 38 6D : Constant 1 Bytes - 6D
|
|
Addr : 144C: 05 02 : Call Sub 2
|
|
82 str(string("Four score and seven years ago our ",27,"[1mfathers",27,"[2m brought forth, upon this continent, a new ",27,"[1mnation",27,"[2m, conceived in Liberty, and dedicated to the proposition that all men are created equal. "))
|
|
Addr : 144E: 01 : Drop Anchor
|
|
Addr : 144F: PBASE Constant Address of Label002F
|
|
Addr : 144F: 87 96 EB : Memory Op Byte PBASE + ADDRESS Address = 16EB
|
|
Addr : 1452: 05 03 : Call Sub 3
|
|
83 waitcnt(clkfreq/4 + cnt)
|
|
Addr : 1454: 35 : Constant 1 $00000000
|
|
Addr : 1455: C0 : Memory Op Long POP Address READ
|
|
Addr : 1456: 37 01 : Constant Mask Y=1 00000004
|
|
Addr : 1458: F6 : Math Op /
|
|
Addr : 1459: 3F 91 : Register op CNT Read
|
|
Addr : 145B: EC : Math Op +
|
|
Addr : 145C: 23 : WaitCnt(count)
|
|
Addr : 145D: Label002D
|
|
Addr : 145D: JMP Label002C
|
|
Addr : 145D: 04 FF AE : Jmp 140E -82
|
|
Addr : 1460: Label002E
|
|
Addr : 1460: 32 : Return
|
|
Addr : 1461: Label0008
|
|
Addr : 1461: Data : 1B 5B 32 3B 33 34 6D 1B .[2;34m.
|
|
Addr : 1469: Data : 5B 32 4A 1B 5B 48 48 65 [2J.[HHe
|
|
Addr : 1471: Data : 6C 6C 6F 20 57 6F 72 6C llo Worl
|
|
Addr : 1479: Data : 64 21 0D 0A 00 d!...
|
|
Addr : 147E: Label0009
|
|
Addr : 147E: Data : 1B 5B 37 6D 49 6E 76 65 .[7mInve
|
|
Addr : 1486: Data : 72 73 65 20 6F 6E 0D 0A rse on..
|
|
Addr : 148E: Data : 00 .
|
|
Addr : 148F: Label000A
|
|
Addr : 148F: Data : 1B 5B 32 37 6D 49 6E 76 .[27mInv
|
|
Addr : 1497: Data : 65 72 73 65 20 6F 66 66 erse off
|
|
Addr : 149F: Data : 0D 0A 00 ...
|
|
Addr : 14A2: Label000B
|
|
Addr : 14A2: Data : 1B 5B 31 6D 48 69 67 68 .[1mHigh
|
|
Addr : 14AA: Data : 6C 69 74 65 20 6F 6E 0D lite on.
|
|
Addr : 14B2: Data : 0A 00 ..
|
|
Addr : 14B4: Label000C
|
|
Addr : 14B4: Data : 1B 5B 32 6D 48 69 67 68 .[2mHigh
|
|
Addr : 14BC: Data : 6C 69 74 65 20 6F 66 66 lite off
|
|
Addr : 14C4: Data : 0D 0A 00 ...
|
|
Addr : 14C7: Label000D
|
|
Addr : 14C7: Data : 1B 5B 34 6D 55 6E 64 65 .[4mUnde
|
|
Addr : 14CF: Data : 72 6C 69 6E 65 20 6F 6E rline on
|
|
Addr : 14D7: Data : 20 1B 5B 31 6D 20 2B 20 .[1m +
|
|
Addr : 14DF: Data : 68 69 67 68 6C 69 74 65 highlite
|
|
Addr : 14E7: Data : 20 1B 5B 32 6D 1B 5B 37 .[2m.[7
|
|
Addr : 14EF: Data : 6D 20 2B 20 69 6E 76 65 m + inve
|
|
Addr : 14F7: Data : 72 73 65 20 1B 5B 30 6D rse .[0m
|
|
Addr : 14FF: Data : 20 61 6C 6C 20 6F 66 66 all off
|
|
Addr : 1507: Data : 20 2B 20 64 65 66 61 75 + defau
|
|
Addr : 150F: Data : 6C 74 20 63 6F 6C 6F 72 lt color
|
|
Addr : 1517: Data : 2E 0D 0A 00 ....
|
|
Addr : 151B: Label000E
|
|
Addr : 151B: Data : 1B 5B 34 30 6D 42 47 44 .[40mBGD
|
|
Addr : 1523: Data : 20 30 00 0.
|
|
Addr : 1526: Label000F
|
|
Addr : 1526: Data : 1B 5B 34 31 6D 42 47 44 .[41mBGD
|
|
Addr : 152E: Data : 20 31 00 1.
|
|
Addr : 1531: Label0010
|
|
Addr : 1531: Data : 1B 5B 34 32 6D 42 47 44 .[42mBGD
|
|
Addr : 1539: Data : 20 32 00 2.
|
|
Addr : 153C: Label0011
|
|
Addr : 153C: Data : 1B 5B 34 33 6D 42 47 44 .[43mBGD
|
|
Addr : 1544: Data : 20 33 00 3.
|
|
Addr : 1547: Label0012
|
|
Addr : 1547: Data : 1B 5B 34 34 6D 42 47 44 .[44mBGD
|
|
Addr : 154F: Data : 20 34 00 4.
|
|
Addr : 1552: Label0013
|
|
Addr : 1552: Data : 1B 5B 34 35 6D 42 47 44 .[45mBGD
|
|
Addr : 155A: Data : 20 35 00 5.
|
|
Addr : 155D: Label0014
|
|
Addr : 155D: Data : 1B 5B 34 36 6D 42 47 44 .[46mBGD
|
|
Addr : 1565: Data : 20 36 00 6.
|
|
Addr : 1568: Label0015
|
|
Addr : 1568: Data : 1B 5B 34 37 6D 42 47 44 .[47mBGD
|
|
Addr : 1570: Data : 20 37 0D 0A 00 7...
|
|
Addr : 1575: Label0016
|
|
Addr : 1575: Data : 1B 5B 34 31 6D 00 .[41m.
|
|
Addr : 157B: Label0017
|
|
Addr : 157B: Data : 1B 5B 33 30 6D 46 47 44 .[30mFGD
|
|
Addr : 1583: Data : 20 30 00 0.
|
|
Addr : 1586: Label0018
|
|
Addr : 1586: Data : 1B 5B 33 31 6D 46 47 44 .[31mFGD
|
|
Addr : 158E: Data : 20 31 00 1.
|
|
Addr : 1591: Label0019
|
|
Addr : 1591: Data : 1B 5B 33 32 6D 46 47 44 .[32mFGD
|
|
Addr : 1599: Data : 20 32 00 2.
|
|
Addr : 159C: Label001A
|
|
Addr : 159C: Data : 1B 5B 33 33 6D 46 47 44 .[33mFGD
|
|
Addr : 15A4: Data : 20 33 00 3.
|
|
Addr : 15A7: Label001B
|
|
Addr : 15A7: Data : 1B 5B 33 34 6D 46 47 44 .[34mFGD
|
|
Addr : 15AF: Data : 20 34 00 4.
|
|
Addr : 15B2: Label001C
|
|
Addr : 15B2: Data : 1B 5B 33 35 6D 46 47 44 .[35mFGD
|
|
Addr : 15BA: Data : 20 35 00 5.
|
|
Addr : 15BD: Label001D
|
|
Addr : 15BD: Data : 1B 5B 33 36 6D 46 47 44 .[36mFGD
|
|
Addr : 15C5: Data : 20 36 00 6.
|
|
Addr : 15C8: Label001E
|
|
Addr : 15C8: Data : 1B 5B 33 37 6D 46 47 44 .[37mFGD
|
|
Addr : 15D0: Data : 20 37 0D 0A 00 7...
|
|
Addr : 15D5: Label001F
|
|
Addr : 15D5: Data : 1B 5B 31 3B 34 30 6D 00 .[1;40m.
|
|
Addr : 15DD: Data :
|
|
Addr : 15DD: Label0020
|
|
Addr : 15DD: Data : 1B 5B 33 30 6D 46 47 44 .[30mFGD
|
|
Addr : 15E5: Data : 20 30 00 0.
|
|
Addr : 15E8: Label0021
|
|
Addr : 15E8: Data : 1B 5B 33 31 6D 46 47 44 .[31mFGD
|
|
Addr : 15F0: Data : 20 31 00 1.
|
|
Addr : 15F3: Label0022
|
|
Addr : 15F3: Data : 1B 5B 33 32 6D 46 47 44 .[32mFGD
|
|
Addr : 15FB: Data : 20 32 00 2.
|
|
Addr : 15FE: Label0023
|
|
Addr : 15FE: Data : 1B 5B 33 33 6D 46 47 44 .[33mFGD
|
|
Addr : 1606: Data : 20 33 00 3.
|
|
Addr : 1609: Label0024
|
|
Addr : 1609: Data : 1B 5B 33 34 6D 46 47 44 .[34mFGD
|
|
Addr : 1611: Data : 20 34 00 4.
|
|
Addr : 1614: Label0025
|
|
Addr : 1614: Data : 1B 5B 33 35 6D 46 47 44 .[35mFGD
|
|
Addr : 161C: Data : 20 35 00 5.
|
|
Addr : 161F: Label0026
|
|
Addr : 161F: Data : 1B 5B 33 36 6D 46 47 44 .[36mFGD
|
|
Addr : 1627: Data : 20 36 00 6.
|
|
Addr : 162A: Label0027
|
|
Addr : 162A: Data : 1B 5B 33 37 6D 46 47 44 .[37mFGD
|
|
Addr : 1632: Data : 20 37 0D 0A 00 7...
|
|
Addr : 1637: Label0028
|
|
Addr : 1637: Data : 1B 5B 32 6D 54 68 65 20 .[2mThe
|
|
Addr : 163F: Data : 71 75 69 63 6B 20 62 72 quick br
|
|
Addr : 1647: Data : 6F 77 6E 20 66 6F 78 20 own fox
|
|
Addr : 164F: Data : 6A 75 6D 70 73 20 6F 76 jumps ov
|
|
Addr : 1657: Data : 65 72 20 74 68 65 20 6C er the l
|
|
Addr : 165F: Data : 61 7A 79 20 64 6F 67 2E azy dog.
|
|
Addr : 1667: Data : 0D 0A 00 ...
|
|
Addr : 166A: Label0029
|
|
Addr : 166A: Data : 53 65 74 74 69 6E 67 20 Setting
|
|
Addr : 1672: Data : 61 20 73 63 72 6F 6C 6C a scroll
|
|
Addr : 167A: Data : 20 72 61 6E 67 65 20 62 range b
|
|
Addr : 1682: Data : 65 6C 6F 77 20 68 65 72 elow her
|
|
Addr : 168A: Data : 65 2E 0D 0A 00 e....
|
|
Addr : 168F: Label002A
|
|
Addr : 168F: Data : 1B 5B 32 34 48 54 68 69 .[24HThi
|
|
Addr : 1697: Data : 73 20 70 61 72 74 20 6F s part o
|
|
Addr : 169F: Data : 66 20 74 68 65 20 73 63 f the sc
|
|
Addr : 16A7: Data : 72 65 65 6E 20 72 65 6D reen rem
|
|
Addr : 16AF: Data : 61 69 6E 73 20 1B 5B 34 ains .[4
|
|
Addr : 16B7: Data : 6D 73 74 61 74 69 63 1B mstatic.
|
|
Addr : 16BF: Data : 5B 32 34 6D 2C 20 73 69 [24m, si
|
|
Addr : 16C7: Data : 6E 63 65 20 69 74 20 69 nce it i
|
|
Addr : 16CF: Data : 73 20 62 65 6C 6F 77 20 s below
|
|
Addr : 16D7: Data : 74 68 65 20 73 63 72 6F the scro
|
|
Addr : 16DF: Data : 6C 6C 69 6E 67 20 72 65 lling re
|
|
Addr : 16E7: Data : 67 69 6F 6E 2E 00 gion..
|
|
Addr : 16ED: Label002B
|
|
Addr : 16ED: Data : 1B 5B 31 32 3B 32 33 72 .[12;23r
|
|
Addr : 16F5: Data : 1B 5B 34 31 6D 00 .[41m.
|
|
Addr : 16FB: Label002F
|
|
Addr : 16FB: Data : 46 6F 75 72 20 73 63 6F Four sco
|
|
Addr : 1703: Data : 72 65 20 61 6E 64 20 73 re and s
|
|
Addr : 170B: Data : 65 76 65 6E 20 79 65 61 even yea
|
|
Addr : 1713: Data : 72 73 20 61 67 6F 20 6F rs ago o
|
|
Addr : 171B: Data : 75 72 20 1B 5B 31 6D 66 ur .[1mf
|
|
Addr : 1723: Data : 61 74 68 65 72 73 1B 5B athers.[
|
|
Addr : 172B: Data : 32 6D 20 62 72 6F 75 67 2m broug
|
|
Addr : 1733: Data : 68 74 20 66 6F 72 74 68 ht forth
|
|
Addr : 173B: Data : 2C 20 75 70 6F 6E 20 74 , upon t
|
|
Addr : 1743: Data : 68 69 73 20 63 6F 6E 74 his cont
|
|
Addr : 174B: Data : 69 6E 65 6E 74 2C 20 61 inent, a
|
|
Addr : 1753: Data : 20 6E 65 77 20 1B 5B 31 new .[1
|
|
Addr : 175B: Data : 6D 6E 61 74 69 6F 6E 1B mnation.
|
|
Addr : 1763: Data : 5B 32 6D 2C 20 63 6F 6E [2m, con
|
|
Addr : 176B: Data : 63 65 69 76 65 64 20 69 ceived i
|
|
Addr : 1773: Data : 6E 20 4C 69 62 65 72 74 n Libert
|
|
Addr : 177B: Data : 79 2C 20 61 6E 64 20 64 y, and d
|
|
Addr : 1783: Data : 65 64 69 63 61 74 65 64 edicated
|
|
Addr : 178B: Data : 20 74 6F 20 74 68 65 20 to the
|
|
Addr : 1793: Data : 70 72 6F 70 6F 73 69 74 proposit
|
|
Addr : 179B: Data : 69 6F 6E 20 74 68 61 74 ion that
|
|
Addr : 17A3: Data : 20 61 6C 6C 20 6D 65 6E all men
|
|
Addr : 17AB: Data : 20 61 72 65 20 63 72 65 are cre
|
|
Addr : 17B3: Data : 61 74 65 64 20 65 71 75 ated equ
|
|
Addr : 17BB: Data : 61 6C 2E 20 20 20 00 al. .
|
|
|===========================================================================|
|
|
Spin Block chr with 1 Parameters and 0 Extra Stack Longs. Method 2
|
|
PUB chr(ch)
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
Local Parameter DBASE:0004 - ch
|
|
|===========================================================================|
|
|
87 command := $100 | ch
|
|
Addr : 17C2: 37 07 : Constant Mask Y=7 00000100
|
|
Addr : 17C4: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 17C5: EA : Math Op |
|
|
Addr : 17C6: C5 1C : Memory Op Long PBASE + WRITE Address = 001C
|
|
Addr : 17C8: Label0008
|
|
88 repeat while command
|
|
Addr : 17C8: C4 1C : Memory Op Long PBASE + READ Address = 001C
|
|
Addr : 17CA: JZ Label000A
|
|
Addr : 17CA: 0A 02 : jz Address = 17CE 2
|
|
Addr : 17CC: Label0009
|
|
Addr : 17CC: JMP Label0008
|
|
Addr : 17CC: 04 7A : Jmp 17C8 -6
|
|
Addr : 17CE: Label000A
|
|
Addr : 17CE: 32 : Return
|
|
|===========================================================================|
|
|
Spin Block str with 1 Parameters and 1 Extra Stack Longs. Method 3
|
|
PUB str(strptr) | i
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
Local Parameter DBASE:0004 - strptr
|
|
Local Variable DBASE:0008 - i
|
|
|===========================================================================|
|
|
91 repeat i from 0 to strsize(strptr)
|
|
Addr : 17CF: 35 : Constant 1 $00000000
|
|
Addr : 17D0: 69 : Variable Operation Local Offset - 2 Write
|
|
Addr : 17D1: Label0008
|
|
92 chr(byte[strptr][i])
|
|
Addr : 17D1: 01 : Drop Anchor
|
|
Addr : 17D2: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 17D3: 68 : Variable Operation Local Offset - 2 Read
|
|
Addr : 17D4: 90 : Memory Op Byte POP Address POP Index READ
|
|
Addr : 17D5: 05 02 : Call Sub 2
|
|
Addr : 17D7: Label0009
|
|
91 repeat i from 0 to strsize(strptr)
|
|
Addr : 17D7: 35 : Constant 1 $00000000
|
|
Addr : 17D8: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 17D9: 16 : StrSize(String)
|
|
Addr : 17DA: Repeat i Step Label0008
|
|
Addr : 17DA: 6A 02 74 : Variable Operation Local Offset - 2 Assign Repeat-Var loop Address= 17D1 -12
|
|
Addr : 17DD: Label000A
|
|
Addr : 17DD: 32 : Return
|
|
|===========================================================================|
|
|
Spin Block rand with 0 Parameters and 0 Extra Stack Longs. Method 4
|
|
PUB rand
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
|===========================================================================|
|
|
95 seed := seed * 1103515245 + 12345 + CNT / 7777
|
|
Addr : 17DE: 58 : Variable Operation Global Offset - 6 Read
|
|
Addr : 17DF: 3B 41 C6 4E 6D : Constant 4 Bytes - 41 C6 4E 6D
|
|
Addr : 17E4: F4 : Math Op *
|
|
Addr : 17E5: 39 30 39 : Constant 2 Bytes - 30 39
|
|
Addr : 17E8: EC : Math Op +
|
|
Addr : 17E9: 3F 91 : Register op CNT Read
|
|
Addr : 17EB: 39 1E 61 : Constant 2 Bytes - 1E 61
|
|
Addr : 17EE: F6 : Math Op /
|
|
Addr : 17EF: EC : Math Op +
|
|
Addr : 17F0: 59 : Variable Operation Global Offset - 6 Write
|
|
96 return seed
|
|
Addr : 17F1: 58 : Variable Operation Global Offset - 6 Read
|
|
Addr : 17F2: 33 : Return value
|
|
Addr : 17F3: Data : 32 2
|
|
|===========================================================================|
|
|
Object vgacolour
|
|
Object Base is 17F4
|
|
|===========================================================================|
|
|
Object Constants
|
|
|===========================================================================|
|
|
|===========================================================================|
|
|
VBASE Global Variables
|
|
|===========================================================================|
|
|
VBASE : 0000 LONG Size 0008 Variable cog
|
|
|===========================================================================|
|
|
Object DAT Blocks
|
|
|===========================================================================|
|
|
1800(0000) | org 0 ' set origin to $000 for start of program
|
|
1800(0000) 00 02 00 00 | d0 long 1 << 9 ' d0 always resides here at $000, executes as NOP
|
|
1804(0001) D1 DE BF A0 | :move mov $1EF, main_begin + main_size - 1
|
|
1808(0002) 18 02 BC 84 | sub :move,d0s0 ' (do reverse move to avoid overwrite)
|
|
180C(0003) 01 34 FC E4 | djnz main_ctr,#:move
|
|
1810(0004) 1C 42 BD A0 | :waitvid mov scancode+0, i0 ' org scancode
|
|
1814(0005) 1D 44 BD A0 | :shr mov scancode+1, i1 ' waitvid colorbuff+0, scanbuff+0
|
|
1818(0006) 19 08 BC 80 | add :waitvid, d1 ' shr scanbuff+0,#8
|
|
181C(0007) 19 0A BC 80 | add :shr, d1 ' waitvid colorbuff+1, scanbuff+1
|
|
1820(0008) 18 38 BC 80 | add i0, d0s0 ' shr scanbuff+1,#8
|
|
1824(0009) 00 3A BC 80 | add i1, d0 ' ...
|
|
1828(000A) 04 36 FC E4 | djnz scan_ctr, #:waitvid ' waitvid colorbuff+cols-1, scanbuff+cols-1
|
|
182C(000B) 1E 80 BE A0 | mov scancode+cols*2-1, i2 ' mov vscl,#hf
|
|
1830(000C) 1F 82 BE A0 | mov scancode+cols*2+0, i3 ' waitvid hvsync,#0
|
|
1834(000D) 20 84 BE A0 | mov scancode+cols*2+1, i4 ' jmp #scanret
|
|
1838(000E) 21 EC BF A0 | mov dira, reg_dira ' set pin directions
|
|
183C(000F) 22 EE BF A0 | mov dirb, reg_dirb
|
|
1840(0010) 18 F4 FF 58 | movi frqa, #(pr / 5) << 2 ' set pixel rate
|
|
1844(0011) 23 FC BF A0 | mov vcfg, reg_vcfg ' set video configuration
|
|
1848(0012) 01 FE FF A0 | mov vscl, #1 ' set video to reload on every pixel
|
|
184C(0013) A7 49 BC F8 | waitcnt sync_cnt, colormask ' wait for start value in cnt, add ~1ms
|
|
1850(0014) 0E F0 FF 58 | movi ctra, #%00001_110 ' COGs in sync! enable PLLs now - NCOs locked!
|
|
1854(0015) 00 48 FC F8 | waitcnt sync_cnt, #0 ' wait ~1ms for PLLs to stabilize - PLLs locked!
|
|
1858(0016) 64 FE FF A0 | mov vscl, #100 ' insure initial WAITVIDs lock cleanly
|
|
185C(0017) 43 01 7C 5C | jmp #vsync ' jump to vsync - WAITVIDs will now be locked!
|
|
1860(0018) 01 02 00 00 | d0s0 long 1 << 9 + 1
|
|
1864(0019) 00 04 00 00 | d1 long 1 << 10
|
|
1868(001A) AD 00 00 00 | main_ctr long main_size
|
|
186C(001B) 50 00 00 00 | scan_ctr long cols
|
|
1870(001C) 01 A2 3C FC | i0 waitvid colorbuff+0, scanbuff+0
|
|
1874(001D) 08 02 FC 28 | i1 shr scanbuff+0, #8
|
|
1878(001E) 18 FE FF A0 | i2 mov vscl, #hf
|
|
187C(001F) 00 5A 7F FC | i3 waitvid hvsync, #0
|
|
1880(0020) 85 01 7C 5C | i4 jmp #scanret
|
|
1884(0021) 00 00 00 00 | reg_dira long 0 ' set at runtime
|
|
1888(0022) 00 00 00 00 | reg_dirb long 0 ' set at runtime
|
|
188C(0023) 00 00 00 00 | reg_vcfg long 0 ' set at runtime
|
|
1890(0024) 00 00 00 00 | sync_cnt long 0 ' set at runtime
|
|
1894(0025) | fit scancode ' make sure initialization code and data fit
|
|
1894(0025) | There are 124 ($07C) Longs left in the cog
|
|
1894(0025) | main_begin org maincode ' main code follows (gets moved into maincode)
|
|
1894(0143) 03 A0 FF A0 | vsync mov x, #vs ' do vertical sync lines
|
|
1898(0144) 94 3D FF 5C | call #blank_vsync
|
|
189C(0145) 11 A0 FF A0 | vb_lines mov x, #vb ' do vertical back porch lines (# set at runtime)
|
|
18A0(0146) 94 3D FF 5C | call #blank_vsync
|
|
18A4(0147) 9F 9D BF A0 | mov screen_ptr, screen_base ' reset screen pointer to upper-left character
|
|
18A8(0148) 00 AA FF A0 | mov row, #0 ' reset row counter for cursor insertion
|
|
18AC(0149) 3C AC FF A0 | mov fours, #rows * 4 / 2 ' set number of 4-line builds for whole screen
|
|
18B0(014A) A2 9F BF A0 | fourline mov font_ptr, font_part ' get address of appropriate font section
|
|
18B4(014B) 0A 9E FF 2C | shl font_ptr, #8+2
|
|
18B8(014C) A1 9F BF 80 | add font_ptr, font_base
|
|
18BC(014D) 00 B6 FE 54 | movd :pixa, #scanbuff-1 ' reset scanbuff address (pre-decremented)
|
|
18C0(014E) 50 CA FE 54 | movd :cola, #colorbuff-1 ' reset colorbuff address (pre-decremented)
|
|
18C4(014F) 50 CC FE 54 | movd :colb, #colorbuff-1
|
|
18C8(0150) 02 A2 FF A0 | mov y, #2 ' must build scanbuff in two sections because
|
|
18CC(0151) A5 FF BF A0 | mov vscl, vscl_line2x ' ..pixel counter is limited to twelve bits
|
|
18D0(0152) 00 56 7F FC | :halfrow waitvid underscore, #0 ' output lows to let other COG drive VGA pins
|
|
18D4(0153) 28 A0 FF A0 | mov x, #cols/2 ' ..for 2 scan lines, ready for half a row
|
|
18D8(0154) CE A5 BF 04 | :column rdword z, screen_ptr ' get character and colors from screen memory
|
|
18DC(0155) D2 A9 BF A0 | mov bg, z
|
|
18E0(0156) FF A4 FF 60 | and z, #$ff ' mask character code
|
|
18E4(0157) 02 A4 FF 2C | shl z, #2 ' * 4
|
|
18E8(0158) CF A5 BF 80 | add z, font_ptr ' add font section address to point to 8*4 pixels
|
|
18EC(0159) 00 B6 BE 80 | add :pixa, d0 ' increment scanbuff destination addresses
|
|
18F0(015A) 02 9C FF 80 | add screen_ptr, #2 ' increment screen memory address
|
|
18F4(015B) D2 03 BC 08 | :pixa rdlong scanbuff, z ' read pixel long (8*4) into scanbuff
|
|
18F8(015C) 0C A8 FF 20 | ror bg, #12 ' background color in bits 3..0
|
|
18FC(015D) D4 A7 BF A0 | mov fg, bg ' foreground color in bits 31..28
|
|
1900(015E) 1C A6 FF 28 | shr fg, #28 ' bits 3..0
|
|
1904(015F) BE A7 FF 80 | add fg, #fg_clut ' + offset to foreground CLUT
|
|
1908(0160) D3 CB BE 50 | movs :cola, fg
|
|
190C(0161) 00 CA BE 80 | add :cola, d0
|
|
1910(0162) AE A9 FF 80 | add bg, #bg_clut ' + offset to background CLUT
|
|
1914(0163) D4 CD BE 50 | movs :colb, bg
|
|
1918(0164) 00 CC BE 80 | add :colb, d0
|
|
191C(0165) 00 A2 BC A0 | :cola mov colorbuff, 0-0
|
|
1920(0166) 00 A2 BC 68 | :colb or colorbuff, 0-0
|
|
1924(0167) 54 A1 FF E4 | djnz x, #:column ' another character in this half-row?
|
|
1928(0168) 52 A3 FF E4 | djnz y, #:halfrow ' loop to do 2nd half-row, time for 2nd WAITVID
|
|
192C(0169) A0 9C FF 84 | sub screen_ptr, #2*cols ' back up to start of same row in screen memory
|
|
1930(016A) 02 A4 FF A0 | mov z, #2 ' ready for two cursors
|
|
1934(016B) A0 A1 BF 00 | :cursor rdbyte x, cursor_base ' x in range?
|
|
1938(016C) 01 40 FF 80 | add cursor_base, #1
|
|
193C(016D) 50 A0 7F 85 | cmp x, #cols wc
|
|
1940(016E) A0 A3 BF 00 | rdbyte y, cursor_base ' y match?
|
|
1944(016F) 01 40 FF 80 | add cursor_base, #1
|
|
1948(0170) D5 A3 3F 86 | cmp y, row wz
|
|
194C(0171) A0 A3 BF 00 | rdbyte y, cursor_base ' get cursor mode
|
|
1950(0172) 01 40 FF 80 | add cursor_base, #1
|
|
1954(0173) 80 01 5C 5C | if_nc_or_nz jmp #:nocursor ' if cursor not in scanbuff, no cursor
|
|
1958(0174) 01 A0 FF 80 | add x, #scanbuff ' cursor in scanbuff, set scanbuff address
|
|
195C(0175) D0 FF BE 54 | movd :xor, x
|
|
1960(0176) 02 A2 7F 61 | test y, #%010 wc ' get mode bits into flags
|
|
1964(0177) 01 A2 7F 62 | test y, #%001 wz
|
|
1968(0178) 80 01 48 5C | if_nc_and_z jmp #:nocursor ' if cursor disabled, no cursor
|
|
196C(0179) F1 53 23 61 | if_c_and_z test slowbit, cnt wc ' if blink mode, get blink state
|
|
1970(017A) F1 55 13 61 | if_c_and_nz test fastbit, cnt wc
|
|
1974(017B) 04 A2 7F 62 | test y, #%100 wz ' get box or underscore cursor piece
|
|
1978(017C) A8 A1 AB A0 | if_z mov x, longmask
|
|
197C(017D) AB A1 97 A0 | if_nz mov x, underscore
|
|
1980(017E) 03 44 57 86 | if_nz cmp font_part, #3 wz ' if underscore, must be last font section
|
|
1984(017F) D0 03 88 6C | :xor if_nc_and_z xor scanbuff, x ' conditionally xor cursor into scanbuff
|
|
1988(0180) 6B A5 FF E4 | :nocursor djnz z, #:cursor ' second cursor?
|
|
198C(0181) 06 40 FF 84 | sub cursor_base, #3*2 ' restore cursor base
|
|
1990(0182) 04 A2 FF A0 | mov y, #4 ' ready for four scan lines
|
|
1994(0183) A6 FF BF A0 | scanline mov vscl, vscl_chr ' set pixel rate for characters
|
|
1998(0184) A1 00 7C 5C | jmp #scancode ' jump to scanbuff display routine in scancode
|
|
199C(0185) 28 FE FF A0 | scanret mov vscl, #hs ' do horizontal sync pixels
|
|
19A0(0186) 01 5A 7F FC | waitvid hvsync, #1 ' #1 makes hsync active
|
|
19A4(0187) 80 FE FF A0 | mov vscl, #hb ' do horizontal back porch pixels
|
|
19A8(0188) 00 5A 7F FC | waitvid hvsync, #0 ' #0 makes hsync inactive
|
|
19AC(0189) 08 A0 FC 28 | shr scanbuff+cols-1, #8 ' shift last column's pixels right by 8
|
|
19B0(018A) 83 A3 FF E4 | djnz y, #scanline ' another scan line?
|
|
19B4(018B) 02 44 FF 80 | add font_part, #2 ' if font_part + 2 => 4, subtract 4 (new row)
|
|
19B8(018C) 04 44 FF E1 | cmpsub font_part, #4 wc ' c=0 for same row, c=1 for new row
|
|
19BC(018D) A0 9C F3 80 | if_c add screen_ptr, #2*cols ' if new row, advance screen pointer
|
|
19C0(018E) 01 AA F3 80 | if_c add row, #1 ' if new row, increment row counter
|
|
19C4(018F) 4A AD FF E4 | djnz fours, #fourline ' another 4-line build/display?
|
|
19C8(0190) F0 51 3F 08 | wrlong longmask,par ' write -1 to refresh indicator
|
|
19CC(0191) 14 A0 FF A0 | vf_lines mov x,#vf ' do vertical front porch lines (# set at runtime)
|
|
19D0(0192) 95 3D FF 5C | call #blank
|
|
19D4(0193) 43 01 7C 5C | jmp #vsync ' new field, loop to vsync
|
|
19D8(0194) 01 5B FF 6C | blank_vsync xor hvsync,#$101 ' flip vertical sync bits
|
|
19DC(0195) A3 FF BF A0 | blank mov vscl, hx ' do blank pixels
|
|
19E0(0196) 00 5A 7F FC | waitvid hvsync, #0
|
|
19E4(0197) 18 FE FF A0 | mov vscl, #hf ' do horizontal front porch pixels
|
|
19E8(0198) 00 5A 7F FC | waitvid hvsync, #0
|
|
19EC(0199) 28 FE FF A0 | mov vscl, #hs ' do horizontal sync pixels
|
|
19F0(019A) 01 5A 7F FC | waitvid hvsync, #1
|
|
19F4(019B) 80 FE FF A0 | mov vscl, #hb ' do horizontal back porch pixels
|
|
19F8(019C) 00 5A 7F FC | waitvid hvsync, #0
|
|
19FC(019D) 95 A1 FF E4 | djnz x,#blank ' another line?
|
|
1A00(019E) | blank_ret
|
|
1A00(019E) | blank_vsync_ret
|
|
1A00(019E) 00 00 7C 5C | ret
|
|
1A04(019F) 00 00 00 00 | screen_base long 0 ' set at runtime (3 contiguous longs)
|
|
1A08(01A0) 00 00 00 00 | cursor_base long 0 ' set at runtime
|
|
1A0C(01A1) 00 00 00 00 | font_base long 0 ' set at runtime
|
|
1A10(01A2) 00 00 00 00 | font_part long 0 ' set at runtime
|
|
1A14(01A3) 80 02 00 00 | hx long hp ' visible pixels per scan line
|
|
1A18(01A4) 40 03 00 00 | vscl_line long hp + hf + hs + hb ' total number of pixels per scan line
|
|
1A1C(01A5) 80 06 00 00 | vscl_line2x long (hp + hf + hs + hb) * 2 ' total number of pixels per 2 scan lines
|
|
1A20(01A6) 08 10 00 00 | vscl_chr long 1 << 12 + 8 ' 1 clock per pixel and 8 pixels per set
|
|
1A24(01A7) FC FC 00 00 | colormask long $FCFC ' mask to isolate R,G,B bits from H,V
|
|
1A28(01A8) FF FF FF FF | longmask long $FFFFFFFF ' all bits set
|
|
1A2C(01A9) 00 00 00 02 | slowbit long 1 << 25 ' cnt mask for slow cursor blink
|
|
1A30(01AA) 00 00 00 01 | fastbit long 1 << 24 ' cnt mask for fast cursor blink
|
|
1A34(01AB) 00 00 FF FF | underscore long $FFFF0000 ' underscore cursor pattern
|
|
1A38(01AC) 03 03 00 00 | hv long hv_inactive ' -H,-V states
|
|
1A3C(01AD) 03 01 00 00 | hvsync long hv_inactive ^ $200 ' +/-H,-V states
|
|
1A40(01AE) 03 03 00 00 | bg_clut long %00000011_00000011 ' black
|
|
1A44(01AF) 0B 03 00 00 | long %00000011_00001011 ' dark blue
|
|
1A48(01B0) 23 03 00 00 | long %00000011_00100011 ' dark green
|
|
1A4C(01B1) 2B 03 00 00 | long %00000011_00101011 ' dark cyan
|
|
1A50(01B2) 83 03 00 00 | long %00000011_10000011 ' dark red
|
|
1A54(01B3) 8B 03 00 00 | long %00000011_10001011 ' dark magenta
|
|
1A58(01B4) A3 03 00 00 | long %00000011_10100011 ' brown
|
|
1A5C(01B5) AB 03 00 00 | long %00000011_10101011 ' light gray
|
|
1A60(01B6) 57 03 00 00 | long %00000011_01010111 ' dark gray
|
|
1A64(01B7) 0F 03 00 00 | long %00000011_00001111 ' light blue
|
|
1A68(01B8) 33 03 00 00 | long %00000011_00110011 ' light green
|
|
1A6C(01B9) 3F 03 00 00 | long %00000011_00111111 ' light cyan
|
|
1A70(01BA) C3 03 00 00 | long %00000011_11000011 ' light red
|
|
1A74(01BB) CF 03 00 00 | long %00000011_11001111 ' light magenta
|
|
1A78(01BC) F3 03 00 00 | long %00000011_11110011 ' light yellow
|
|
1A7C(01BD) FF 03 00 00 | long %00000011_11111111 ' white
|
|
1A80(01BE) 03 03 00 00 | fg_clut long %00000011_00000011 ' black
|
|
1A84(01BF) 03 07 00 00 | long %00000111_00000011 ' dark blue
|
|
1A88(01C0) 03 13 00 00 | long %00010011_00000011 ' dark green
|
|
1A8C(01C1) 03 17 00 00 | long %00010111_00000011 ' dark cyan
|
|
1A90(01C2) 03 43 00 00 | long %01000011_00000011 ' dark red
|
|
1A94(01C3) 03 47 00 00 | long %01000111_00000011 ' dark magenta
|
|
1A98(01C4) 03 53 00 00 | long %01010011_00000011 ' brown
|
|
1A9C(01C5) 03 AB 00 00 | long %10101011_00000011 ' light gray
|
|
1AA0(01C6) 03 57 00 00 | long %01010111_00000011 ' dark gray
|
|
1AA4(01C7) 03 0B 00 00 | long %00001011_00000011 ' blue
|
|
1AA8(01C8) 03 23 00 00 | long %00100011_00000011 ' green
|
|
1AAC(01C9) 03 2B 00 00 | long %00101011_00000011 ' cyan
|
|
1AB0(01CA) 03 83 00 00 | long %10000011_00000011 ' red
|
|
1AB4(01CB) 03 8B 00 00 | long %10001011_00000011 ' magenta
|
|
1AB8(01CC) 03 A3 00 00 | long %10100011_00000011 ' yellow
|
|
1ABC(01CD) 03 FF 00 00 | long %11111111_00000011 ' white
|
|
1AC0(01CE) | screen_ptr res 1
|
|
1AC0(01CF) | font_ptr res 1
|
|
1AC0(01D0) | x res 1
|
|
1AC0(01D1) | y res 1
|
|
1AC0(01D2) | z res 1
|
|
1AC0(01D3) | fg res 1
|
|
1AC0(01D4) | bg res 1
|
|
1AC0(01D5) | row res 1
|
|
1AC0(01D6) | fours res 1
|
|
1AC0(01D7) | fit $1f0
|
|
1AC0(01D7) | There are 25 ($019) Longs left in the cog
|
|
1AC0(01D7) 00 00 00 00 | font long
|
|
1AC0(01D7) 00 BA 82 00 | long $0082ba00,$00000000,$2a552a00,$36360000,$061e0000,$061c0000,$06060000,$3c000000
|
|
1AC4(01D8) 00 00 00 00 |
|
|
1AC8(01D9) 00 2A 55 2A |
|
|
1ACC(01DA) 00 00 36 36 |
|
|
1AD0(01DB) 00 00 1E 06 |
|
|
1AD4(01DC) 00 00 1C 06 |
|
|
1AD8(01DD) 00 00 06 06 |
|
|
1ADC(01DE) 00 00 00 3C |
|
|
1AE0(01DF) 00 00 00 00 | long $00000000,$6e660000,$66660000,$18181818,$00000000,$00000000,$18181818,$18181818
|
|
1AE4(01E0) 00 00 66 6E |
|
|
1AE8(01E1) 00 00 66 66 |
|
|
1AEC(01E2) 18 18 18 18 |
|
|
1AF0(01E3) 00 00 00 00 |
|
|
1AF4(01E4) 00 00 00 00 |
|
|
1AF8(01E5) 18 18 18 18 |
|
|
1AFC(01E6) 18 18 18 18 |
|
|
1B00(01E7) FF FF 00 00 | long $0000ffff,$00000000,$00000000,$00000000,$00000000,$18181818,$18181818,$18181818
|
|
1B04(01E8) 00 00 00 00 |
|
|
1B08(01E9) 00 00 00 00 |
|
|
1B0C(01EA) 00 00 00 00 |
|
|
1B10(01EB) 00 00 00 00 |
|
|
1B14(01EC) 18 18 18 18 |
|
|
1B18(01ED) 18 18 18 18 |
|
|
1B1C(01EE) 18 18 18 18 |
|
|
1B20(01EF) 00 00 00 00 | long $00000000,$18181818,$60000000,$06000000,$00000000,$00000000,$38000000,$00000000
|
|
1B24(01F0) 18 18 18 18 |
|
|
1B28(01F1) 00 00 00 60 |
|
|
1B2C(01F2) 00 00 00 06 |
|
|
1B30(01F3) 00 00 00 00 |
|
|
1B34(01F4) 00 00 00 00 |
|
|
1B38(01F5) 00 00 00 38 |
|
|
1B3C(01F6) 00 00 00 00 |
|
|
1B40(01F7) 00 00 00 00 | long $00000000,$18000000,$36000000,$24000000,$18000000,$4e000000,$1c000000,$18000000
|
|
1B44(01F8) 00 00 00 18 |
|
|
1B48(01F9) 00 00 00 36 |
|
|
1B4C(01FA) 00 00 00 24 |
|
|
1B50(01FB) 00 00 00 18 |
|
|
1B54(01FC) 00 00 00 4E |
|
|
1B58(01FD) 00 00 00 1C |
|
|
1B5C(01FE) 00 00 00 18 |
|
|
1B60(01FF) 00 00 00 30 | long $30000000,$0c000000,$00000000,$00000000,$00000000,$00000000,$00000000,$60000000
|
|
1B64(0200) 00 00 00 0C |
|
|
1B68(0201) 00 00 00 00 |
|
|
1B6C(0202) 00 00 00 00 |
|
|
1B70(0203) 00 00 00 00 |
|
|
1B74(0204) 00 00 00 00 |
|
|
1B78(0205) 00 00 00 00 |
|
|
1B7C(0206) 00 00 00 60 |
|
|
1B80(0207) 00 00 00 18 | long $18000000,$18000000,$3c000000,$7e000000,$60000000,$7e000000,$3c000000,$7e000000
|
|
1B84(0208) 00 00 00 18 |
|
|
1B88(0209) 00 00 00 3C |
|
|
1B8C(020A) 00 00 00 7E |
|
|
1B90(020B) 00 00 00 60 |
|
|
1B94(020C) 00 00 00 7E |
|
|
1B98(020D) 00 00 00 3C |
|
|
1B9C(020E) 00 00 00 7E |
|
|
1BA0(020F) 00 00 00 3C | long $3c000000,$3c000000,$00000000,$00000000,$60000000,$00000000,$06000000,$3c000000
|
|
1BA4(0210) 00 00 00 3C |
|
|
1BA8(0211) 00 00 00 00 |
|
|
1BAC(0212) 00 00 00 00 |
|
|
1BB0(0213) 00 00 00 60 |
|
|
1BB4(0214) 00 00 00 00 |
|
|
1BB8(0215) 00 00 00 06 |
|
|
1BBC(0216) 00 00 00 3C |
|
|
1BC0(0217) 00 00 00 3C | long $3c000000,$3c000000,$3e000000,$3c000000,$3e000000,$7e000000,$7e000000,$3c000000
|
|
1BC4(0218) 00 00 00 3C |
|
|
1BC8(0219) 00 00 00 3E |
|
|
1BCC(021A) 00 00 00 3C |
|
|
1BD0(021B) 00 00 00 3E |
|
|
1BD4(021C) 00 00 00 7E |
|
|
1BD8(021D) 00 00 00 7E |
|
|
1BDC(021E) 00 00 00 3C |
|
|
1BE0(021F) 00 00 00 66 | long $66000000,$7e000000,$60000000,$46000000,$06000000,$42000000,$66000000,$3c000000
|
|
1BE4(0220) 00 00 00 7E |
|
|
1BE8(0221) 00 00 00 60 |
|
|
1BEC(0222) 00 00 00 46 |
|
|
1BF0(0223) 00 00 00 06 |
|
|
1BF4(0224) 00 00 00 42 |
|
|
1BF8(0225) 00 00 00 66 |
|
|
1BFC(0226) 00 00 00 3C |
|
|
1C00(0227) 00 00 00 3E | long $3e000000,$3c000000,$3e000000,$3c000000,$7e000000,$66000000,$66000000,$66000000
|
|
1C04(0228) 00 00 00 3C |
|
|
1C08(0229) 00 00 00 3E |
|
|
1C0C(022A) 00 00 00 3C |
|
|
1C10(022B) 00 00 00 7E |
|
|
1C14(022C) 00 00 00 66 |
|
|
1C18(022D) 00 00 00 66 |
|
|
1C1C(022E) 00 00 00 66 |
|
|
1C20(022F) 00 00 00 42 | long $42000000,$66000000,$7e000000,$3c000000,$06000000,$3c000000,$18000000,$00000000
|
|
1C24(0230) 00 00 00 66 |
|
|
1C28(0231) 00 00 00 7E |
|
|
1C2C(0232) 00 00 00 3C |
|
|
1C30(0233) 00 00 00 06 |
|
|
1C34(0234) 00 00 00 3C |
|
|
1C38(0235) 00 00 00 18 |
|
|
1C3C(0236) 00 00 00 00 |
|
|
1C40(0237) 00 00 0C 18 | long $180c0000,$00000000,$06000000,$00000000,$60000000,$00000000,$38000000,$00000000
|
|
1C44(0238) 00 00 00 00 |
|
|
1C48(0239) 00 00 00 06 |
|
|
1C4C(023A) 00 00 00 00 |
|
|
1C50(023B) 00 00 00 60 |
|
|
1C54(023C) 00 00 00 00 |
|
|
1C58(023D) 00 00 00 38 |
|
|
1C5C(023E) 00 00 00 00 |
|
|
1C60(023F) 00 00 00 06 | long $06000000,$18000000,$60000000,$06000000,$1c000000,$00000000,$00000000,$00000000
|
|
1C64(0240) 00 00 00 18 |
|
|
1C68(0241) 00 00 00 60 |
|
|
1C6C(0242) 00 00 00 06 |
|
|
1C70(0243) 00 00 00 1C |
|
|
1C74(0244) 00 00 00 00 |
|
|
1C78(0245) 00 00 00 00 |
|
|
1C7C(0246) 00 00 00 00 |
|
|
1C80(0247) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
1C84(0248) 00 00 00 00 |
|
|
1C88(0249) 00 00 00 00 |
|
|
1C8C(024A) 00 00 00 00 |
|
|
1C90(024B) 00 00 00 00 |
|
|
1C94(024C) 00 00 00 00 |
|
|
1C98(024D) 00 00 00 00 |
|
|
1C9C(024E) 00 00 00 00 |
|
|
1CA0(024F) 00 00 00 00 | long $00000000,$00000000,$00000000,$38000000,$18000000,$1c000000,$4c000000,$aa55aa55
|
|
1CA4(0250) 00 00 00 00 |
|
|
1CA8(0251) 00 00 00 00 |
|
|
1CAC(0252) 00 00 00 38 |
|
|
1CB0(0253) 00 00 00 18 |
|
|
1CB4(0254) 00 00 00 1C |
|
|
1CB8(0255) 00 00 00 4C |
|
|
1CBC(0256) 55 AA 55 AA |
|
|
1CC0(0257) 00 00 00 00 | long $00000000,$00000000,$2a552a00,$36360000,$061e0000,$061c0000,$06060000,$3c000000
|
|
1CC4(0258) 00 00 00 00 |
|
|
1CC8(0259) 00 2A 55 2A |
|
|
1CCC(025A) 00 00 36 36 |
|
|
1CD0(025B) 00 00 1E 06 |
|
|
1CD4(025C) 00 00 1C 06 |
|
|
1CD8(025D) 00 00 06 06 |
|
|
1CDC(025E) 00 00 00 3C |
|
|
1CE0(025F) 00 00 00 00 | long $00000000,$6e660000,$66660000,$24242424,$00000000,$00000000,$24242424,$24242424
|
|
1CE4(0260) 00 00 66 6E |
|
|
1CE8(0261) 00 00 66 66 |
|
|
1CEC(0262) 24 24 24 24 |
|
|
1CF0(0263) 00 00 00 00 |
|
|
1CF4(0264) 00 00 00 00 |
|
|
1CF8(0265) 24 24 24 24 |
|
|
1CFC(0266) 24 24 24 24 |
|
|
1D00(0267) FF 00 FF 00 | long $00ff00ff,$ff000000,$00000000,$00000000,$00000000,$24242424,$24242424,$24242424
|
|
1D04(0268) 00 00 00 FF |
|
|
1D08(0269) 00 00 00 00 |
|
|
1D0C(026A) 00 00 00 00 |
|
|
1D10(026B) 00 00 00 00 |
|
|
1D14(026C) 24 24 24 24 |
|
|
1D18(026D) 24 24 24 24 |
|
|
1D1C(026E) 24 24 24 24 |
|
|
1D20(026F) 00 00 00 00 | long $00000000,$24242424,$60000000,$06000000,$00000000,$00000000,$38000000,$00000000
|
|
1D24(0270) 24 24 24 24 |
|
|
1D28(0271) 00 00 00 60 |
|
|
1D2C(0272) 00 00 00 06 |
|
|
1D30(0273) 00 00 00 00 |
|
|
1D34(0274) 00 00 00 00 |
|
|
1D38(0275) 00 00 00 38 |
|
|
1D3C(0276) 00 00 00 00 |
|
|
1D40(0277) 00 00 00 00 | long $00000000,$18000000,$36000000,$24000000,$18000000,$4e000000,$1c000000,$18000000
|
|
1D44(0278) 00 00 00 18 |
|
|
1D48(0279) 00 00 00 36 |
|
|
1D4C(027A) 00 00 00 24 |
|
|
1D50(027B) 00 00 00 18 |
|
|
1D54(027C) 00 00 00 4E |
|
|
1D58(027D) 00 00 00 1C |
|
|
1D5C(027E) 00 00 00 18 |
|
|
1D60(027F) 00 00 00 30 | long $30000000,$0c000000,$00000000,$00000000,$00000000,$00000000,$00000000,$60000000
|
|
1D64(0280) 00 00 00 0C |
|
|
1D68(0281) 00 00 00 00 |
|
|
1D6C(0282) 00 00 00 00 |
|
|
1D70(0283) 00 00 00 00 |
|
|
1D74(0284) 00 00 00 00 |
|
|
1D78(0285) 00 00 00 00 |
|
|
1D7C(0286) 00 00 00 60 |
|
|
1D80(0287) 00 00 00 18 | long $18000000,$18000000,$3c000000,$7e000000,$60000000,$7e000000,$3c000000,$7e000000
|
|
1D84(0288) 00 00 00 18 |
|
|
1D88(0289) 00 00 00 3C |
|
|
1D8C(028A) 00 00 00 7E |
|
|
1D90(028B) 00 00 00 60 |
|
|
1D94(028C) 00 00 00 7E |
|
|
1D98(028D) 00 00 00 3C |
|
|
1D9C(028E) 00 00 00 7E |
|
|
1DA0(028F) 00 00 00 3C | long $3c000000,$3c000000,$00000000,$00000000,$60000000,$00000000,$06000000,$3c000000
|
|
1DA4(0290) 00 00 00 3C |
|
|
1DA8(0291) 00 00 00 00 |
|
|
1DAC(0292) 00 00 00 00 |
|
|
1DB0(0293) 00 00 00 60 |
|
|
1DB4(0294) 00 00 00 00 |
|
|
1DB8(0295) 00 00 00 06 |
|
|
1DBC(0296) 00 00 00 3C |
|
|
1DC0(0297) 00 00 00 3C | long $3c000000,$3c000000,$3e000000,$3c000000,$3e000000,$7e000000,$7e000000,$3c000000
|
|
1DC4(0298) 00 00 00 3C |
|
|
1DC8(0299) 00 00 00 3E |
|
|
1DCC(029A) 00 00 00 3C |
|
|
1DD0(029B) 00 00 00 3E |
|
|
1DD4(029C) 00 00 00 7E |
|
|
1DD8(029D) 00 00 00 7E |
|
|
1DDC(029E) 00 00 00 3C |
|
|
1DE0(029F) 00 00 00 66 | long $66000000,$7e000000,$60000000,$46000000,$06000000,$42000000,$66000000,$3c000000
|
|
1DE4(02A0) 00 00 00 7E |
|
|
1DE8(02A1) 00 00 00 60 |
|
|
1DEC(02A2) 00 00 00 46 |
|
|
1DF0(02A3) 00 00 00 06 |
|
|
1DF4(02A4) 00 00 00 42 |
|
|
1DF8(02A5) 00 00 00 66 |
|
|
1DFC(02A6) 00 00 00 3C |
|
|
1E00(02A7) 00 00 00 3E | long $3e000000,$3c000000,$3e000000,$3c000000,$7e000000,$66000000,$66000000,$66000000
|
|
1E04(02A8) 00 00 00 3C |
|
|
1E08(02A9) 00 00 00 3E |
|
|
1E0C(02AA) 00 00 00 3C |
|
|
1E10(02AB) 00 00 00 7E |
|
|
1E14(02AC) 00 00 00 66 |
|
|
1E18(02AD) 00 00 00 66 |
|
|
1E1C(02AE) 00 00 00 66 |
|
|
1E20(02AF) 00 00 00 42 | long $42000000,$66000000,$7e000000,$3c000000,$06000000,$3c000000,$18000000,$00000000
|
|
1E24(02B0) 00 00 00 66 |
|
|
1E28(02B1) 00 00 00 7E |
|
|
1E2C(02B2) 00 00 00 3C |
|
|
1E30(02B3) 00 00 00 06 |
|
|
1E34(02B4) 00 00 00 3C |
|
|
1E38(02B5) 00 00 00 18 |
|
|
1E3C(02B6) 00 00 00 00 |
|
|
1E40(02B7) 00 00 0C 18 | long $180c0000,$00000000,$06000000,$00000000,$60000000,$00000000,$38000000,$00000000
|
|
1E44(02B8) 00 00 00 00 |
|
|
1E48(02B9) 00 00 00 06 |
|
|
1E4C(02BA) 00 00 00 00 |
|
|
1E50(02BB) 00 00 00 60 |
|
|
1E54(02BC) 00 00 00 00 |
|
|
1E58(02BD) 00 00 00 38 |
|
|
1E5C(02BE) 00 00 00 00 |
|
|
1E60(02BF) 00 00 00 06 | long $06000000,$18000000,$60000000,$06000000,$1c000000,$00000000,$00000000,$00000000
|
|
1E64(02C0) 00 00 00 18 |
|
|
1E68(02C1) 00 00 00 60 |
|
|
1E6C(02C2) 00 00 00 06 |
|
|
1E70(02C3) 00 00 00 1C |
|
|
1E74(02C4) 00 00 00 00 |
|
|
1E78(02C5) 00 00 00 00 |
|
|
1E7C(02C6) 00 00 00 00 |
|
|
1E80(02C7) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
1E84(02C8) 00 00 00 00 |
|
|
1E88(02C9) 00 00 00 00 |
|
|
1E8C(02CA) 00 00 00 00 |
|
|
1E90(02CB) 00 00 00 00 |
|
|
1E94(02CC) 00 00 00 00 |
|
|
1E98(02CD) 00 00 00 00 |
|
|
1E9C(02CE) 00 00 00 00 |
|
|
1EA0(02CF) 00 00 00 00 | long $00000000,$00000000,$00000000,$38000000,$18000000,$1c000000,$4c000000,$aa55aa55
|
|
1EA4(02D0) 00 00 00 00 |
|
|
1EA8(02D1) 00 00 00 00 |
|
|
1EAC(02D2) 00 00 00 38 |
|
|
1EB0(02D3) 00 00 00 18 |
|
|
1EB4(02D4) 00 00 00 1C |
|
|
1EB8(02D5) 00 00 00 4C |
|
|
1EBC(02D6) 55 AA 55 AA |
|
|
1EC0(02D7) 82 82 00 82 | long $82008282,$3c180000,$2a552a55,$0036363e,$0006060e,$001c0606,$001e0606,$003c6666
|
|
1EC4(02D8) 00 00 18 3C |
|
|
1EC8(02D9) 55 2A 55 2A |
|
|
1ECC(02DA) 3E 36 36 00 |
|
|
1ED0(02DB) 0E 06 06 00 |
|
|
1ED4(02DC) 06 06 1C 00 |
|
|
1ED8(02DD) 06 06 1E 00 |
|
|
1EDC(02DE) 66 66 3C 00 |
|
|
1EE0(02DF) 18 18 7E 18 | long $187e1818,$0066767e,$00183c24,$1f181818,$1f000000,$f8000000,$f8181818,$ff181818
|
|
1EE4(02E0) 7E 76 66 00 |
|
|
1EE8(02E1) 24 3C 18 00 |
|
|
1EEC(02E2) 18 18 18 1F |
|
|
1EF0(02E3) 00 00 00 1F |
|
|
1EF4(02E4) 00 00 00 F8 |
|
|
1EF8(02E5) 18 18 18 F8 |
|
|
1EFC(02E6) 18 18 18 FF |
|
|
1F00(02E7) 00 00 00 00 | long $00000000,$0000ffff,$00000000,$00000000,$00000000,$f8181818,$1f181818,$ff181818
|
|
1F04(02E8) FF FF 00 00 |
|
|
1F08(02E9) 00 00 00 00 |
|
|
1F0C(02EA) 00 00 00 00 |
|
|
1F10(02EB) 00 00 00 00 |
|
|
1F14(02EC) 18 18 18 F8 |
|
|
1F18(02ED) 18 18 18 1F |
|
|
1F1C(02EE) 18 18 18 FF |
|
|
1F20(02EF) 00 00 00 FF | long $ff000000,$18181818,$0c060c30,$3060300c,$667e0000,$187e3030,$3e0c0c6c,$18180000
|
|
1F24(02F0) 18 18 18 18 |
|
|
1F28(02F1) 30 0C 06 0C |
|
|
1F2C(02F2) 0C 30 60 30 |
|
|
1F30(02F3) 00 00 7E 66 |
|
|
1F34(02F4) 30 30 7E 18 |
|
|
1F38(02F5) 6C 0C 0C 3E |
|
|
1F3C(02F6) 00 00 18 18 |
|
|
1F40(02F7) 00 00 00 00 | long $00000000,$18181818,$00003636,$247e7e24,$3c1a5a3c,$18302e6a,$1c363636,$00181818
|
|
1F44(02F8) 18 18 18 18 |
|
|
1F48(02F9) 36 36 00 00 |
|
|
1F4C(02FA) 24 7E 7E 24 |
|
|
1F50(02FB) 3C 5A 1A 3C |
|
|
1F54(02FC) 6A 2E 30 18 |
|
|
1F58(02FD) 36 36 36 1C |
|
|
1F5C(02FE) 18 18 18 00 |
|
|
1F60(02FF) 18 18 0C 0C | long $0c0c1818,$30301818,$7e182400,$7e181800,$00000000,$00000000,$00000000,$18303060
|
|
1F64(0300) 18 18 30 30 |
|
|
1F68(0301) 00 24 18 7E |
|
|
1F6C(0302) 00 18 18 7E |
|
|
1F70(0303) 00 00 00 00 |
|
|
1F74(0304) 00 00 00 00 |
|
|
1F78(0305) 00 00 00 00 |
|
|
1F7C(0306) 60 30 30 18 |
|
|
1F80(0307) 24 66 66 66 | long $66666624,$18181a1c,$38606666,$3c183060,$666c7870,$663e0606,$3e060666,$30306060
|
|
1F84(0308) 1C 1A 18 18 |
|
|
1F88(0309) 66 66 60 38 |
|
|
1F8C(030A) 60 30 18 3C |
|
|
1F90(030B) 70 78 6C 66 |
|
|
1F94(030C) 06 06 3E 66 |
|
|
1F98(030D) 66 06 06 3E |
|
|
1F9C(030E) 60 60 30 30 |
|
|
1FA0(030F) 66 66 66 3C | long $3c666666,$7c666666,$183c1800,$183c1800,$060c1830,$007e0000,$6030180c,$38606666
|
|
1FA4(0310) 66 66 66 7C |
|
|
1FA8(0311) 00 18 3C 18 |
|
|
1FAC(0312) 00 18 3C 18 |
|
|
1FB0(0313) 30 18 0C 06 |
|
|
1FB4(0314) 00 00 7E 00 |
|
|
1FB8(0315) 0C 18 30 60 |
|
|
1FBC(0316) 66 66 60 38 |
|
|
1FC0(0317) 62 62 7A 6A | long $6a7a6262,$7e666666,$3e666666,$06060666,$66666666,$3e060606,$3e060606,$76060666
|
|
1FC4(0318) 66 66 66 7E |
|
|
1FC8(0319) 66 66 66 3E |
|
|
1FCC(031A) 66 06 06 06 |
|
|
1FD0(031B) 66 66 66 66 |
|
|
1FD4(031C) 06 06 06 3E |
|
|
1FD8(031D) 06 06 06 3E |
|
|
1FDC(031E) 66 06 06 76 |
|
|
1FE0(031F) 66 66 66 7E | long $7e666666,$18181818,$60606060,$0e1e3666,$06060606,$667e7e66,$7e6e6e66,$66666666
|
|
1FE4(0320) 18 18 18 18 |
|
|
1FE8(0321) 60 60 60 60 |
|
|
1FEC(0322) 66 36 1E 0E |
|
|
1FF0(0323) 06 06 06 06 |
|
|
1FF4(0324) 66 7E 7E 66 |
|
|
1FF8(0325) 66 6E 6E 7E |
|
|
1FFC(0326) 66 66 66 66 |
|
|
2000(0327) 66 66 66 3E | long $3e666666,$66666666,$3e666666,$3c060666,$18181818,$66666666,$24246666,$66666666
|
|
2004(0328) 66 66 66 66 |
|
|
2008(0329) 66 66 66 3E |
|
|
200C(032A) 66 06 06 3C |
|
|
2010(032B) 18 18 18 18 |
|
|
2014(032C) 66 66 66 66 |
|
|
2018(032D) 66 66 24 24 |
|
|
201C(032E) 66 66 66 66 |
|
|
2020(032F) 66 24 3C 18 | long $183c2466,$183c3c66,$18306060,$0c0c0c0c,$180c0c06,$30303030,$0042663c,$00000000
|
|
2024(0330) 66 3C 3C 18 |
|
|
2028(0331) 60 60 30 18 |
|
|
202C(0332) 0C 0C 0C 0C |
|
|
2030(0333) 06 0C 0C 18 |
|
|
2034(0334) 30 30 30 30 |
|
|
2038(0335) 3C 66 42 00 |
|
|
203C(0336) 00 00 00 00 |
|
|
2040(0337) 30 00 00 00 | long $00000030,$603c0000,$663e0606,$663c0000,$667c6060,$663c0000,$1e0c0c6c,$665c0000
|
|
2044(0338) 00 00 3C 60 |
|
|
2048(0339) 06 06 3E 66 |
|
|
204C(033A) 00 00 3C 66 |
|
|
2050(033B) 60 60 7C 66 |
|
|
2054(033C) 00 00 3C 66 |
|
|
2058(033D) 6C 0C 0C 1E |
|
|
205C(033E) 00 00 5C 66 |
|
|
2060(033F) 06 06 3E 66 | long $663e0606,$181c0018,$60600060,$36660606,$18181818,$fe6a0000,$663e0000,$663c0000
|
|
2064(0340) 18 00 1C 18 |
|
|
2068(0341) 60 00 60 60 |
|
|
206C(0342) 06 06 66 36 |
|
|
2070(0343) 18 18 18 18 |
|
|
2074(0344) 00 00 6A FE |
|
|
2078(0345) 00 00 3E 66 |
|
|
207C(0346) 00 00 3C 66 |
|
|
2080(0347) 00 00 3E 66 | long $663e0000,$667c0000,$663e0000,$663c0000,$0c3e0c0c,$66660000,$66660000,$66660000
|
|
2084(0348) 00 00 7C 66 |
|
|
2088(0349) 00 00 3E 66 |
|
|
208C(034A) 00 00 3C 66 |
|
|
2090(034B) 0C 0C 3E 0C |
|
|
2094(034C) 00 00 66 66 |
|
|
2098(034D) 00 00 66 66 |
|
|
209C(034E) 00 00 66 66 |
|
|
20A0(034F) 00 00 66 66 | long $66660000,$66660000,$607e0000,$0c180c0c,$18181818,$30183030,$0000327e,$aa55aa55
|
|
20A4(0350) 00 00 66 66 |
|
|
20A8(0351) 00 00 7E 60 |
|
|
20AC(0352) 0C 0C 18 0C |
|
|
20B0(0353) 18 18 18 18 |
|
|
20B4(0354) 30 30 18 30 |
|
|
20B8(0355) 7E 32 00 00 |
|
|
20BC(0356) 55 AA 55 AA |
|
|
20C0(0357) 00 00 00 00 | long $00000000,$3c180000,$2a552a55,$0036363e,$0006060e,$001c0606,$001e0606,$003c6666
|
|
20C4(0358) 00 00 18 3C |
|
|
20C8(0359) 55 2A 55 2A |
|
|
20CC(035A) 3E 36 36 00 |
|
|
20D0(035B) 0E 06 06 00 |
|
|
20D4(035C) 06 06 1C 00 |
|
|
20D8(035D) 06 06 1E 00 |
|
|
20DC(035E) 66 66 3C 00 |
|
|
20E0(035F) 18 18 7E 18 | long $187e1818,$0066767e,$00183c24,$20272424,$203f0000,$04fc0000,$04e42424,$00e72424
|
|
20E4(0360) 7E 76 66 00 |
|
|
20E8(0361) 24 3C 18 00 |
|
|
20EC(0362) 24 24 27 20 |
|
|
20F0(0363) 00 00 3F 20 |
|
|
20F4(0364) 00 00 FC 04 |
|
|
20F8(0365) 24 24 E4 04 |
|
|
20FC(0366) 24 24 E7 00 |
|
|
2100(0367) 00 00 00 00 | long $00000000,$0000ff00,$ff000000,$00000000,$00000000,$04e42424,$20272424,$00e72424
|
|
2104(0368) 00 FF 00 00 |
|
|
2108(0369) 00 00 00 FF |
|
|
210C(036A) 00 00 00 00 |
|
|
2110(036B) 00 00 00 00 |
|
|
2114(036C) 24 24 E4 04 |
|
|
2118(036D) 24 24 27 20 |
|
|
211C(036E) 24 24 E7 00 |
|
|
2120(036F) 00 00 FF 00 | long $00ff0000,$24242424,$0c060c30,$3060300c,$667e0000,$187e3030,$3e0c0c6c,$18180000
|
|
2124(0370) 24 24 24 24 |
|
|
2128(0371) 30 0C 06 0C |
|
|
212C(0372) 0C 30 60 30 |
|
|
2130(0373) 00 00 7E 66 |
|
|
2134(0374) 30 30 7E 18 |
|
|
2138(0375) 6C 0C 0C 3E |
|
|
213C(0376) 00 00 18 18 |
|
|
2140(0377) 00 00 00 00 | long $00000000,$18181818,$00003636,$247e7e24,$3c1a5a3c,$18302e6a,$1c363636,$00181818
|
|
2144(0378) 18 18 18 18 |
|
|
2148(0379) 36 36 00 00 |
|
|
214C(037A) 24 7E 7E 24 |
|
|
2150(037B) 3C 5A 1A 3C |
|
|
2154(037C) 6A 2E 30 18 |
|
|
2158(037D) 36 36 36 1C |
|
|
215C(037E) 18 18 18 00 |
|
|
2160(037F) 18 18 0C 0C | long $0c0c1818,$30301818,$7e182400,$7e181800,$00000000,$00000000,$00000000,$18303060
|
|
2164(0380) 18 18 30 30 |
|
|
2168(0381) 00 24 18 7E |
|
|
216C(0382) 00 18 18 7E |
|
|
2170(0383) 00 00 00 00 |
|
|
2174(0384) 00 00 00 00 |
|
|
2178(0385) 00 00 00 00 |
|
|
217C(0386) 60 30 30 18 |
|
|
2180(0387) 24 66 66 66 | long $66666624,$18181a1c,$38606666,$3c183060,$666c7870,$663e0606,$3e060666,$30306060
|
|
2184(0388) 1C 1A 18 18 |
|
|
2188(0389) 66 66 60 38 |
|
|
218C(038A) 60 30 18 3C |
|
|
2190(038B) 70 78 6C 66 |
|
|
2194(038C) 06 06 3E 66 |
|
|
2198(038D) 66 06 06 3E |
|
|
219C(038E) 60 60 30 30 |
|
|
21A0(038F) 66 66 66 3C | long $3c666666,$7c666666,$183c1800,$183c1800,$060c1830,$007e0000,$6030180c,$38606666
|
|
21A4(0390) 66 66 66 7C |
|
|
21A8(0391) 00 18 3C 18 |
|
|
21AC(0392) 00 18 3C 18 |
|
|
21B0(0393) 30 18 0C 06 |
|
|
21B4(0394) 00 00 7E 00 |
|
|
21B8(0395) 0C 18 30 60 |
|
|
21BC(0396) 66 66 60 38 |
|
|
21C0(0397) 66 66 76 76 | long $76766666,$7e666666,$3e666666,$06060666,$66666666,$3e060606,$3e060606,$76060666
|
|
21C4(0398) 66 66 66 7E |
|
|
21C8(0399) 66 66 66 3E |
|
|
21CC(039A) 66 06 06 06 |
|
|
21D0(039B) 66 66 66 66 |
|
|
21D4(039C) 06 06 06 3E |
|
|
21D8(039D) 06 06 06 3E |
|
|
21DC(039E) 66 06 06 76 |
|
|
21E0(039F) 66 66 66 7E | long $7e666666,$18181818,$60606060,$0e1e3666,$06060606,$667e7e66,$7e6e6e66,$66666666
|
|
21E4(03A0) 18 18 18 18 |
|
|
21E8(03A1) 60 60 60 60 |
|
|
21EC(03A2) 66 36 1E 0E |
|
|
21F0(03A3) 06 06 06 06 |
|
|
21F4(03A4) 66 7E 7E 66 |
|
|
21F8(03A5) 66 6E 6E 7E |
|
|
21FC(03A6) 66 66 66 66 |
|
|
2200(03A7) 66 66 66 3E | long $3e666666,$66666666,$3e666666,$3c060666,$18181818,$66666666,$24246666,$66666666
|
|
2204(03A8) 66 66 66 66 |
|
|
2208(03A9) 66 66 66 3E |
|
|
220C(03AA) 66 06 06 3C |
|
|
2210(03AB) 18 18 18 18 |
|
|
2214(03AC) 66 66 66 66 |
|
|
2218(03AD) 66 66 24 24 |
|
|
221C(03AE) 66 66 66 66 |
|
|
2220(03AF) 66 24 3C 18 | long $183c2466,$183c3c66,$18306060,$0c0c0c0c,$180c0c06,$30303030,$0042663c,$00000000
|
|
2224(03B0) 66 3C 3C 18 |
|
|
2228(03B1) 60 60 30 18 |
|
|
222C(03B2) 0C 0C 0C 0C |
|
|
2230(03B3) 06 0C 0C 18 |
|
|
2234(03B4) 30 30 30 30 |
|
|
2238(03B5) 3C 66 42 00 |
|
|
223C(03B6) 00 00 00 00 |
|
|
2240(03B7) 30 00 00 00 | long $00000030,$603c0000,$663e0606,$663c0000,$667c6060,$663c0000,$1e0c0c6c,$665c0000
|
|
2244(03B8) 00 00 3C 60 |
|
|
2248(03B9) 06 06 3E 66 |
|
|
224C(03BA) 00 00 3C 66 |
|
|
2250(03BB) 60 60 7C 66 |
|
|
2254(03BC) 00 00 3C 66 |
|
|
2258(03BD) 6C 0C 0C 1E |
|
|
225C(03BE) 00 00 5C 66 |
|
|
2260(03BF) 06 06 3E 66 | long $663e0606,$181c0018,$60600060,$36660606,$18181818,$fe6a0000,$663e0000,$663c0000
|
|
2264(03C0) 18 00 1C 18 |
|
|
2268(03C1) 60 00 60 60 |
|
|
226C(03C2) 06 06 66 36 |
|
|
2270(03C3) 18 18 18 18 |
|
|
2274(03C4) 00 00 6A FE |
|
|
2278(03C5) 00 00 3E 66 |
|
|
227C(03C6) 00 00 3C 66 |
|
|
2280(03C7) 00 00 3E 66 | long $663e0000,$667c0000,$663e0000,$663c0000,$0c3e0c0c,$66660000,$66660000,$66660000
|
|
2284(03C8) 00 00 7C 66 |
|
|
2288(03C9) 00 00 3E 66 |
|
|
228C(03CA) 00 00 3C 66 |
|
|
2290(03CB) 0C 0C 3E 0C |
|
|
2294(03CC) 00 00 66 66 |
|
|
2298(03CD) 00 00 66 66 |
|
|
229C(03CE) 00 00 66 66 |
|
|
22A0(03CF) 00 00 66 66 | long $66660000,$66660000,$607e0000,$0c180c0c,$18181818,$30183030,$0000327e,$aa55aa55
|
|
22A4(03D0) 00 00 66 66 |
|
|
22A8(03D1) 00 00 7E 60 |
|
|
22AC(03D2) 0C 0C 18 0C |
|
|
22B0(03D3) 18 18 18 18 |
|
|
22B4(03D4) 30 30 18 30 |
|
|
22B8(03D5) 7E 32 00 00 |
|
|
22BC(03D6) 55 AA 55 AA |
|
|
22C0(03D7) 82 00 82 82 | long $82820082,$00183c7e,$2a552a55,$30303078,$18381878,$58385838,$18381878,$00000000
|
|
22C4(03D8) 7E 3C 18 00 |
|
|
22C8(03D9) 55 2A 55 2A |
|
|
22CC(03DA) 78 30 30 30 |
|
|
22D0(03DB) 78 18 38 18 |
|
|
22D4(03DC) 38 58 38 58 |
|
|
22D8(03DD) 78 18 38 18 |
|
|
22DC(03DE) 00 00 00 00 |
|
|
22E0(03DF) 18 00 7E 00 | long $007e0018,$18181818,$30303078,$0000001f,$1818181f,$181818f8,$000000f8,$181818ff
|
|
22E4(03E0) 18 18 18 18 |
|
|
22E8(03E1) 78 30 30 30 |
|
|
22EC(03E2) 1F 00 00 00 |
|
|
22F0(03E3) 1F 18 18 18 |
|
|
22F4(03E4) F8 18 18 18 |
|
|
22F8(03E5) F8 00 00 00 |
|
|
22FC(03E6) FF 18 18 18 |
|
|
2300(03E7) 00 00 00 00 | long $00000000,$00000000,$0000ffff,$ff000000,$00000000,$181818f8,$1818181f,$000000ff
|
|
2304(03E8) 00 00 00 00 |
|
|
2308(03E9) FF FF 00 00 |
|
|
230C(03EA) 00 00 00 FF |
|
|
2310(03EB) 00 00 00 00 |
|
|
2314(03EC) F8 18 18 18 |
|
|
2318(03ED) 1F 18 18 18 |
|
|
231C(03EE) FF 00 00 00 |
|
|
2320(03EF) FF 18 18 18 | long $181818ff,$18181818,$7e006030,$7e00060c,$66666666,$0c0c7e18,$3a6c0c0c,$00000000
|
|
2324(03F0) 18 18 18 18 |
|
|
2328(03F1) 30 60 00 7E |
|
|
232C(03F2) 0C 06 00 7E |
|
|
2330(03F3) 66 66 66 66 |
|
|
2334(03F4) 18 7E 0C 0C |
|
|
2338(03F5) 0C 0C 6C 3A |
|
|
233C(03F6) 00 00 00 00 |
|
|
2340(03F7) 00 00 00 00 | long $00000000,$18180018,$00000000,$24247e7e,$183c5a58,$7256740c,$5c367656,$00000000
|
|
2344(03F8) 18 00 18 18 |
|
|
2348(03F9) 00 00 00 00 |
|
|
234C(03FA) 7E 7E 24 24 |
|
|
2350(03FB) 58 5A 3C 18 |
|
|
2354(03FC) 0C 74 56 72 |
|
|
2358(03FD) 56 76 36 5C |
|
|
235C(03FE) 00 00 00 00 |
|
|
2360(03FF) 0C 18 18 30 | long $3018180c,$0c181830,$0024187e,$0018187e,$18383800,$0000007e,$3c180000,$06060c0c
|
|
2364(0400) 30 18 18 0C |
|
|
2368(0401) 7E 18 24 00 |
|
|
236C(0402) 7E 18 18 00 |
|
|
2370(0403) 00 38 38 18 |
|
|
2374(0404) 7E 00 00 00 |
|
|
2378(0405) 00 00 18 3C |
|
|
237C(0406) 0C 0C 06 06 |
|
|
2380(0407) 66 66 24 18 | long $18246666,$7e181818,$7e06060c,$3c666060,$60607e66,$3c666060,$3c666666,$0c0c1818
|
|
2384(0408) 18 18 18 7E |
|
|
2388(0409) 0C 06 06 7E |
|
|
238C(040A) 60 60 66 3C |
|
|
2390(040B) 66 7E 60 60 |
|
|
2394(040C) 60 60 66 3C |
|
|
2398(040D) 66 66 66 3C |
|
|
239C(040E) 18 18 0C 0C |
|
|
23A0(040F) 66 66 66 3C | long $3c666666,$3c666060,$3c180000,$18383800,$6030180c,$00007e00,$060c1830,$18180018
|
|
23A4(0410) 60 60 66 3C |
|
|
23A8(0411) 00 00 18 3C |
|
|
23AC(0412) 00 38 38 18 |
|
|
23B0(0413) 0C 18 30 60 |
|
|
23B4(0414) 00 7E 00 00 |
|
|
23B8(0415) 30 18 0C 06 |
|
|
23BC(0416) 18 00 18 18 |
|
|
23C0(0417) 7A 02 62 3C | long $3c62027a,$66666666,$3e666666,$3c660606,$3e666666,$7e060606,$06060606,$7c666666
|
|
23C4(0418) 66 66 66 66 |
|
|
23C8(0419) 66 66 66 3E |
|
|
23CC(041A) 06 06 66 3C |
|
|
23D0(041B) 66 66 66 3E |
|
|
23D4(041C) 06 06 06 7E |
|
|
23D8(041D) 06 06 06 06 |
|
|
23DC(041E) 66 66 66 7C |
|
|
23E0(041F) 66 66 66 66 | long $66666666,$7e181818,$3c666060,$4666361e,$7e060606,$66666666,$66667676,$3c666666
|
|
23E4(0420) 18 18 18 7E |
|
|
23E8(0421) 60 60 66 3C |
|
|
23EC(0422) 1E 36 66 46 |
|
|
23F0(0423) 06 06 06 7E |
|
|
23F4(0424) 66 66 66 66 |
|
|
23F8(0425) 76 76 66 66 |
|
|
23FC(0426) 66 66 66 3C |
|
|
2400(0427) 06 06 06 06 | long $06060606,$3c766e66,$4666361e,$3c666060,$18181818,$3c666666,$1818183c,$42667e7e
|
|
2404(0428) 66 6E 76 3C |
|
|
2408(0429) 1E 36 66 46 |
|
|
240C(042A) 60 60 66 3C |
|
|
2410(042B) 18 18 18 18 |
|
|
2414(042C) 66 66 66 3C |
|
|
2418(042D) 3C 18 18 18 |
|
|
241C(042E) 7E 7E 66 42 |
|
|
2420(042F) 3C 24 66 42 | long $4266243c,$18181818,$7e06060c,$3c0c0c0c,$60603030,$3c303030,$00000000,$fe000000
|
|
2424(0430) 18 18 18 18 |
|
|
2428(0431) 0C 06 06 7E |
|
|
242C(0432) 0C 0C 0C 3C |
|
|
2430(0433) 30 30 60 60 |
|
|
2434(0434) 30 30 30 3C |
|
|
2438(0435) 00 00 00 00 |
|
|
243C(0436) 00 00 00 FE |
|
|
2440(0437) 00 00 00 00 | long $00000000,$7c66667c,$3e666666,$3c660606,$7c666666,$3c66067e,$0c0c0c0c,$3c063c66
|
|
2444(0438) 7C 66 66 7C |
|
|
2448(0439) 66 66 66 3E |
|
|
244C(043A) 06 06 66 3C |
|
|
2450(043B) 66 66 66 7C |
|
|
2454(043C) 7E 06 66 3C |
|
|
2458(043D) 0C 0C 0C 0C |
|
|
245C(043E) 66 3C 06 3C |
|
|
2460(043F) 66 66 66 66 | long $66666666,$7e181818,$60606060,$66361e1e,$7e181818,$c6c6d6d6,$66666666,$3c666666
|
|
2464(0440) 18 18 18 7E |
|
|
2468(0441) 60 60 60 60 |
|
|
246C(0442) 1E 1E 36 66 |
|
|
2470(0443) 18 18 18 7E |
|
|
2474(0444) D6 D6 C6 C6 |
|
|
2478(0445) 66 66 66 66 |
|
|
247C(0446) 66 66 66 3C |
|
|
2480(0447) 66 66 3E 06 | long $063e6666,$607c6666,$06060606,$3c66300c,$386c0c0c,$7c666666,$183c3c66,$247e7e66
|
|
2484(0448) 66 66 7C 60 |
|
|
2488(0449) 06 06 06 06 |
|
|
248C(044A) 0C 30 66 3C |
|
|
2490(044B) 0C 0C 6C 38 |
|
|
2494(044C) 66 66 66 7C |
|
|
2498(044D) 66 3C 3C 18 |
|
|
249C(044E) 66 7E 7E 24 |
|
|
24A0(044F) 3C 3C 66 66 | long $66663c3c,$607c6666,$7e060c30,$380c0c18,$18181818,$1c303018,$00000000,$aa55aa55
|
|
24A4(0450) 66 66 7C 60 |
|
|
24A8(0451) 30 0C 06 7E |
|
|
24AC(0452) 18 0C 0C 38 |
|
|
24B0(0453) 18 18 18 18 |
|
|
24B4(0454) 18 30 30 1C |
|
|
24B8(0455) 00 00 00 00 |
|
|
24BC(0456) 55 AA 55 AA |
|
|
24C0(0457) 00 00 00 00 | long $00000000,$00183c7e,$2a552a55,$30303078,$18381878,$58385838,$18381878,$00000000
|
|
24C4(0458) 7E 3C 18 00 |
|
|
24C8(0459) 55 2A 55 2A |
|
|
24CC(045A) 78 30 30 30 |
|
|
24D0(045B) 78 18 38 18 |
|
|
24D4(045C) 38 58 38 58 |
|
|
24D8(045D) 78 18 38 18 |
|
|
24DC(045E) 00 00 00 00 |
|
|
24E0(045F) 18 00 7E 00 | long $007e0018,$18181818,$30303078,$00003f20,$24242720,$2424e404,$0000fc04,$2424e700
|
|
24E4(0460) 18 18 18 18 |
|
|
24E8(0461) 78 30 30 30 |
|
|
24EC(0462) 20 3F 00 00 |
|
|
24F0(0463) 20 27 24 24 |
|
|
24F4(0464) 04 E4 24 24 |
|
|
24F8(0465) 04 FC 00 00 |
|
|
24FC(0466) 00 E7 24 24 |
|
|
2500(0467) 00 00 00 00 | long $00000000,$00000000,$0000ff00,$00ff0000,$00000000,$2424e404,$24242720,$0000ff00
|
|
2504(0468) 00 00 00 00 |
|
|
2508(0469) 00 FF 00 00 |
|
|
250C(046A) 00 00 FF 00 |
|
|
2510(046B) 00 00 00 00 |
|
|
2514(046C) 04 E4 24 24 |
|
|
2518(046D) 20 27 24 24 |
|
|
251C(046E) 00 FF 00 00 |
|
|
2520(046F) 00 E7 24 24 | long $2424e700,$24242424,$7e006030,$7e00060c,$66666666,$0c0c7e18,$3a6c0c0c,$00000000
|
|
2524(0470) 24 24 24 24 |
|
|
2528(0471) 30 60 00 7E |
|
|
252C(0472) 0C 06 00 7E |
|
|
2530(0473) 66 66 66 66 |
|
|
2534(0474) 18 7E 0C 0C |
|
|
2538(0475) 0C 0C 6C 3A |
|
|
253C(0476) 00 00 00 00 |
|
|
2540(0477) 00 00 00 00 | long $00000000,$18180018,$00000000,$24247e7e,$183c5a58,$7256740c,$5c367656,$00000000
|
|
2544(0478) 18 00 18 18 |
|
|
2548(0479) 00 00 00 00 |
|
|
254C(047A) 7E 7E 24 24 |
|
|
2550(047B) 58 5A 3C 18 |
|
|
2554(047C) 0C 74 56 72 |
|
|
2558(047D) 56 76 36 5C |
|
|
255C(047E) 00 00 00 00 |
|
|
2560(047F) 0C 18 18 30 | long $3018180c,$0c181830,$0024187e,$0018187e,$18383800,$0000007e,$3c180000,$06060c0c
|
|
2564(0480) 30 18 18 0C |
|
|
2568(0481) 7E 18 24 00 |
|
|
256C(0482) 7E 18 18 00 |
|
|
2570(0483) 00 38 38 18 |
|
|
2574(0484) 7E 00 00 00 |
|
|
2578(0485) 00 00 18 3C |
|
|
257C(0486) 0C 0C 06 06 |
|
|
2580(0487) 66 66 24 18 | long $18246666,$7e181818,$7e06060c,$3c666060,$60607e66,$3c666060,$3c666666,$0c0c1818
|
|
2584(0488) 18 18 18 7E |
|
|
2588(0489) 0C 06 06 7E |
|
|
258C(048A) 60 60 66 3C |
|
|
2590(048B) 66 7E 60 60 |
|
|
2594(048C) 60 60 66 3C |
|
|
2598(048D) 66 66 66 3C |
|
|
259C(048E) 18 18 0C 0C |
|
|
25A0(048F) 66 66 66 3C | long $3c666666,$3c666060,$3c180000,$18383800,$6030180c,$00007e00,$060c1830,$18180018
|
|
25A4(0490) 60 60 66 3C |
|
|
25A8(0491) 00 00 18 3C |
|
|
25AC(0492) 00 38 38 18 |
|
|
25B0(0493) 0C 18 30 60 |
|
|
25B4(0494) 00 7E 00 00 |
|
|
25B8(0495) 30 18 0C 06 |
|
|
25BC(0496) 18 00 18 18 |
|
|
25C0(0497) 76 06 66 3C | long $3c660676,$66666666,$3e666666,$3c660606,$3e666666,$7e060606,$06060606,$7c666666
|
|
25C4(0498) 66 66 66 66 |
|
|
25C8(0499) 66 66 66 3E |
|
|
25CC(049A) 06 06 66 3C |
|
|
25D0(049B) 66 66 66 3E |
|
|
25D4(049C) 06 06 06 7E |
|
|
25D8(049D) 06 06 06 06 |
|
|
25DC(049E) 66 66 66 7C |
|
|
25E0(049F) 66 66 66 66 | long $66666666,$7e181818,$3c666060,$4666361e,$7e060606,$66666666,$66667676,$3c666666
|
|
25E4(04A0) 18 18 18 7E |
|
|
25E8(04A1) 60 60 66 3C |
|
|
25EC(04A2) 1E 36 66 46 |
|
|
25F0(04A3) 06 06 06 7E |
|
|
25F4(04A4) 66 66 66 66 |
|
|
25F8(04A5) 76 76 66 66 |
|
|
25FC(04A6) 66 66 66 3C |
|
|
2600(04A7) 06 06 06 06 | long $06060606,$3c766e66,$4666361e,$3c666060,$18181818,$3c666666,$1818183c,$42667e7e
|
|
2604(04A8) 66 6E 76 3C |
|
|
2608(04A9) 1E 36 66 46 |
|
|
260C(04AA) 60 60 66 3C |
|
|
2610(04AB) 18 18 18 18 |
|
|
2614(04AC) 66 66 66 3C |
|
|
2618(04AD) 3C 18 18 18 |
|
|
261C(04AE) 7E 7E 66 42 |
|
|
2620(04AF) 3C 24 66 42 | long $4266243c,$18181818,$7e06060c,$3c0c0c0c,$60603030,$3c303030,$00000000,$fe000000
|
|
2624(04B0) 18 18 18 18 |
|
|
2628(04B1) 0C 06 06 7E |
|
|
262C(04B2) 0C 0C 0C 3C |
|
|
2630(04B3) 30 30 60 60 |
|
|
2634(04B4) 30 30 30 3C |
|
|
2638(04B5) 00 00 00 00 |
|
|
263C(04B6) 00 00 00 FE |
|
|
2640(04B7) 00 00 00 00 | long $00000000,$7c66667c,$3e666666,$3c660606,$7c666666,$3c66067e,$0c0c0c0c,$3c063c66
|
|
2644(04B8) 7C 66 66 7C |
|
|
2648(04B9) 66 66 66 3E |
|
|
264C(04BA) 06 06 66 3C |
|
|
2650(04BB) 66 66 66 7C |
|
|
2654(04BC) 7E 06 66 3C |
|
|
2658(04BD) 0C 0C 0C 0C |
|
|
265C(04BE) 66 3C 06 3C |
|
|
2660(04BF) 66 66 66 66 | long $66666666,$7e181818,$60606060,$66361e1e,$7e181818,$c6c6d6d6,$66666666,$3c666666
|
|
2664(04C0) 18 18 18 7E |
|
|
2668(04C1) 60 60 60 60 |
|
|
266C(04C2) 1E 1E 36 66 |
|
|
2670(04C3) 18 18 18 7E |
|
|
2674(04C4) D6 D6 C6 C6 |
|
|
2678(04C5) 66 66 66 66 |
|
|
267C(04C6) 66 66 66 3C |
|
|
2680(04C7) 66 66 3E 06 | long $063e6666,$607c6666,$06060606,$3c66300c,$386c0c0c,$7c666666,$183c3c66,$247e7e66
|
|
2684(04C8) 66 66 7C 60 |
|
|
2688(04C9) 06 06 06 06 |
|
|
268C(04CA) 0C 30 66 3C |
|
|
2690(04CB) 0C 0C 6C 38 |
|
|
2694(04CC) 66 66 66 7C |
|
|
2698(04CD) 66 3C 3C 18 |
|
|
269C(04CE) 66 7E 7E 24 |
|
|
26A0(04CF) 3C 3C 66 66 | long $66663c3c,$607c6666,$7e060c30,$380c0c18,$18181818,$1c303018,$00000000,$aa55aa55
|
|
26A4(04D0) 66 66 7C 60 |
|
|
26A8(04D1) 30 0C 06 7E |
|
|
26AC(04D2) 18 0C 0C 38 |
|
|
26B0(04D3) 18 18 18 18 |
|
|
26B4(04D4) 18 30 30 1C |
|
|
26B8(04D5) 00 00 00 00 |
|
|
26BC(04D6) 55 AA 55 AA |
|
|
26C0(04D7) 00 82 BA 00 | long $00ba8200,$00000000,$00002a55,$00000030,$00000018,$00000058,$00000018,$00000000
|
|
26C4(04D8) 00 00 00 00 |
|
|
26C8(04D9) 55 2A 00 00 |
|
|
26CC(04DA) 30 00 00 00 |
|
|
26D0(04DB) 18 00 00 00 |
|
|
26D4(04DC) 58 00 00 00 |
|
|
26D8(04DD) 18 00 00 00 |
|
|
26DC(04DE) 00 00 00 00 |
|
|
26E0(04DF) 00 00 00 00 | long $00000000,$00000078,$00000030,$00000000,$18181818,$18181818,$00000000,$18181818
|
|
26E4(04E0) 78 00 00 00 |
|
|
26E8(04E1) 30 00 00 00 |
|
|
26EC(04E2) 00 00 00 00 |
|
|
26F0(04E3) 18 18 18 18 |
|
|
26F4(04E4) 18 18 18 18 |
|
|
26F8(04E5) 00 00 00 00 |
|
|
26FC(04E6) 18 18 18 18 |
|
|
2700(04E7) 00 00 00 00 | long $00000000,$00000000,$00000000,$000000ff,$ffff0000,$18181818,$18181818,$00000000
|
|
2704(04E8) 00 00 00 00 |
|
|
2708(04E9) 00 00 00 00 |
|
|
270C(04EA) FF 00 00 00 |
|
|
2710(04EB) 00 00 FF FF |
|
|
2714(04EC) 18 18 18 18 |
|
|
2718(04ED) 18 18 18 18 |
|
|
271C(04EE) 00 00 00 00 |
|
|
2720(04EF) 18 18 18 18 | long $18181818,$18181818,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
2724(04F0) 18 18 18 18 |
|
|
2728(04F1) 00 00 00 00 |
|
|
272C(04F2) 00 00 00 00 |
|
|
2730(04F3) 00 00 00 00 |
|
|
2734(04F4) 00 00 00 00 |
|
|
2738(04F5) 00 00 00 00 |
|
|
273C(04F6) 00 00 00 00 |
|
|
2740(04F7) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
2744(04F8) 00 00 00 00 |
|
|
2748(04F9) 00 00 00 00 |
|
|
274C(04FA) 00 00 00 00 |
|
|
2750(04FB) 00 00 00 00 |
|
|
2754(04FC) 00 00 00 00 |
|
|
2758(04FD) 00 00 00 00 |
|
|
275C(04FE) 00 00 00 00 |
|
|
2760(04FF) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$0000000c,$00000000,$00000018,$00000000
|
|
2764(0500) 00 00 00 00 |
|
|
2768(0501) 00 00 00 00 |
|
|
276C(0502) 00 00 00 00 |
|
|
2770(0503) 0C 00 00 00 |
|
|
2774(0504) 00 00 00 00 |
|
|
2778(0505) 18 00 00 00 |
|
|
277C(0506) 00 00 00 00 |
|
|
2780(0507) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
2784(0508) 00 00 00 00 |
|
|
2788(0509) 00 00 00 00 |
|
|
278C(050A) 00 00 00 00 |
|
|
2790(050B) 00 00 00 00 |
|
|
2794(050C) 00 00 00 00 |
|
|
2798(050D) 00 00 00 00 |
|
|
279C(050E) 00 00 00 00 |
|
|
27A0(050F) 00 00 00 00 | long $00000000,$00000000,$00000018,$0000000c,$00000000,$00000000,$00000000,$00000000
|
|
27A4(0510) 00 00 00 00 |
|
|
27A8(0511) 18 00 00 00 |
|
|
27AC(0512) 0C 00 00 00 |
|
|
27B0(0513) 00 00 00 00 |
|
|
27B4(0514) 00 00 00 00 |
|
|
27B8(0515) 00 00 00 00 |
|
|
27BC(0516) 00 00 00 00 |
|
|
27C0(0517) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
27C4(0518) 00 00 00 00 |
|
|
27C8(0519) 00 00 00 00 |
|
|
27CC(051A) 00 00 00 00 |
|
|
27D0(051B) 00 00 00 00 |
|
|
27D4(051C) 00 00 00 00 |
|
|
27D8(051D) 00 00 00 00 |
|
|
27DC(051E) 00 00 00 00 |
|
|
27E0(051F) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
27E4(0520) 00 00 00 00 |
|
|
27E8(0521) 00 00 00 00 |
|
|
27EC(0522) 00 00 00 00 |
|
|
27F0(0523) 00 00 00 00 |
|
|
27F4(0524) 00 00 00 00 |
|
|
27F8(0525) 00 00 00 00 |
|
|
27FC(0526) 00 00 00 00 |
|
|
2800(0527) 00 00 00 00 | long $00000000,$00000060,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
2804(0528) 60 00 00 00 |
|
|
2808(0529) 00 00 00 00 |
|
|
280C(052A) 00 00 00 00 |
|
|
2810(052B) 00 00 00 00 |
|
|
2814(052C) 00 00 00 00 |
|
|
2818(052D) 00 00 00 00 |
|
|
281C(052E) 00 00 00 00 |
|
|
2820(052F) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$000000fe
|
|
2824(0530) 00 00 00 00 |
|
|
2828(0531) 00 00 00 00 |
|
|
282C(0532) 00 00 00 00 |
|
|
2830(0533) 00 00 00 00 |
|
|
2834(0534) 00 00 00 00 |
|
|
2838(0535) 00 00 00 00 |
|
|
283C(0536) FE 00 00 00 |
|
|
2840(0537) 00 00 00 00 | long $00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000,$00003c66
|
|
2844(0538) 00 00 00 00 |
|
|
2848(0539) 00 00 00 00 |
|
|
284C(053A) 00 00 00 00 |
|
|
2850(053B) 00 00 00 00 |
|
|
2854(053C) 00 00 00 00 |
|
|
2858(053D) 00 00 00 00 |
|
|
285C(053E) 66 3C 00 00 |
|
|
2860(053F) 00 00 00 00 | long $00000000,$00000000,$00003c66,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
2864(0540) 00 00 00 00 |
|
|
2868(0541) 66 3C 00 00 |
|
|
286C(0542) 00 00 00 00 |
|
|
2870(0543) 00 00 00 00 |
|
|
2874(0544) 00 00 00 00 |
|
|
2878(0545) 00 00 00 00 |
|
|
287C(0546) 00 00 00 00 |
|
|
2880(0547) 06 06 00 00 | long $00000606,$00006060,$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
|
|
2884(0548) 60 60 00 00 |
|
|
2888(0549) 00 00 00 00 |
|
|
288C(054A) 00 00 00 00 |
|
|
2890(054B) 00 00 00 00 |
|
|
2894(054C) 00 00 00 00 |
|
|
2898(054D) 00 00 00 00 |
|
|
289C(054E) 00 00 00 00 |
|
|
28A0(054F) 00 00 00 00 | long $00000000,$00003c66,$00000000,$00000000,$00000000,$00000000,$00000000,$aa55aa55
|
|
28A4(0550) 66 3C 00 00 |
|
|
28A8(0551) 00 00 00 00 |
|
|
28AC(0552) 00 00 00 00 |
|
|
28B0(0553) 00 00 00 00 |
|
|
28B4(0554) 00 00 00 00 |
|
|
28B8(0555) 00 00 00 00 |
|
|
28BC(0556) 55 AA 55 AA |
|
|
28C0(0557) 00 00 00 FF | long $ff000000,$ff000000,$ff002a55,$ff000030,$ff000018,$ff000058,$ff000018,$ff000000
|
|
28C4(0558) 00 00 00 FF |
|
|
28C8(0559) 55 2A 00 FF |
|
|
28CC(055A) 30 00 00 FF |
|
|
28D0(055B) 18 00 00 FF |
|
|
28D4(055C) 58 00 00 FF |
|
|
28D8(055D) 18 00 00 FF |
|
|
28DC(055E) 00 00 00 FF |
|
|
28E0(055F) 00 00 00 FF | long $ff000000,$ff000078,$ff000030,$00000000,$24242424,$24242424,$00000000,$24242424
|
|
28E4(0560) 78 00 00 FF |
|
|
28E8(0561) 30 00 00 FF |
|
|
28EC(0562) 00 00 00 00 |
|
|
28F0(0563) 24 24 24 24 |
|
|
28F4(0564) 24 24 24 24 |
|
|
28F8(0565) 00 00 00 00 |
|
|
28FC(0566) 24 24 24 24 |
|
|
2900(0567) 00 00 00 00 | long $00000000,$00000000,$00000000,$000000ff,$ff00ff00,$24242424,$24242424,$00000000
|
|
2904(0568) 00 00 00 00 |
|
|
2908(0569) 00 00 00 00 |
|
|
290C(056A) FF 00 00 00 |
|
|
2910(056B) 00 FF 00 FF |
|
|
2914(056C) 24 24 24 24 |
|
|
2918(056D) 24 24 24 24 |
|
|
291C(056E) 00 00 00 00 |
|
|
2920(056F) 24 24 24 24 | long $24242424,$24242424,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
2924(0570) 24 24 24 24 |
|
|
2928(0571) 00 00 00 FF |
|
|
292C(0572) 00 00 00 FF |
|
|
2930(0573) 00 00 00 FF |
|
|
2934(0574) 00 00 00 FF |
|
|
2938(0575) 00 00 00 FF |
|
|
293C(0576) 00 00 00 FF |
|
|
2940(0577) 00 00 00 FF | long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
2944(0578) 00 00 00 FF |
|
|
2948(0579) 00 00 00 FF |
|
|
294C(057A) 00 00 00 FF |
|
|
2950(057B) 00 00 00 FF |
|
|
2954(057C) 00 00 00 FF |
|
|
2958(057D) 00 00 00 FF |
|
|
295C(057E) 00 00 00 FF |
|
|
2960(057F) 00 00 00 FF | long $ff000000,$ff000000,$ff000000,$ff000000,$ff00000c,$ff000000,$ff000018,$ff000000
|
|
2964(0580) 00 00 00 FF |
|
|
2968(0581) 00 00 00 FF |
|
|
296C(0582) 00 00 00 FF |
|
|
2970(0583) 0C 00 00 FF |
|
|
2974(0584) 00 00 00 FF |
|
|
2978(0585) 18 00 00 FF |
|
|
297C(0586) 00 00 00 FF |
|
|
2980(0587) 00 00 00 FF | long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
2984(0588) 00 00 00 FF |
|
|
2988(0589) 00 00 00 FF |
|
|
298C(058A) 00 00 00 FF |
|
|
2990(058B) 00 00 00 FF |
|
|
2994(058C) 00 00 00 FF |
|
|
2998(058D) 00 00 00 FF |
|
|
299C(058E) 00 00 00 FF |
|
|
29A0(058F) 00 00 00 FF | long $ff000000,$ff000000,$ff000018,$ff00000c,$ff000000,$ff000000,$ff000000,$ff000000
|
|
29A4(0590) 00 00 00 FF |
|
|
29A8(0591) 18 00 00 FF |
|
|
29AC(0592) 0C 00 00 FF |
|
|
29B0(0593) 00 00 00 FF |
|
|
29B4(0594) 00 00 00 FF |
|
|
29B8(0595) 00 00 00 FF |
|
|
29BC(0596) 00 00 00 FF |
|
|
29C0(0597) 00 00 00 FF | long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
29C4(0598) 00 00 00 FF |
|
|
29C8(0599) 00 00 00 FF |
|
|
29CC(059A) 00 00 00 FF |
|
|
29D0(059B) 00 00 00 FF |
|
|
29D4(059C) 00 00 00 FF |
|
|
29D8(059D) 00 00 00 FF |
|
|
29DC(059E) 00 00 00 FF |
|
|
29E0(059F) 00 00 00 FF | long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
29E4(05A0) 00 00 00 FF |
|
|
29E8(05A1) 00 00 00 FF |
|
|
29EC(05A2) 00 00 00 FF |
|
|
29F0(05A3) 00 00 00 FF |
|
|
29F4(05A4) 00 00 00 FF |
|
|
29F8(05A5) 00 00 00 FF |
|
|
29FC(05A6) 00 00 00 FF |
|
|
2A00(05A7) 00 00 00 FF | long $ff000000,$ff000060,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
2A04(05A8) 60 00 00 FF |
|
|
2A08(05A9) 00 00 00 FF |
|
|
2A0C(05AA) 00 00 00 FF |
|
|
2A10(05AB) 00 00 00 FF |
|
|
2A14(05AC) 00 00 00 FF |
|
|
2A18(05AD) 00 00 00 FF |
|
|
2A1C(05AE) 00 00 00 FF |
|
|
2A20(05AF) 00 00 00 FF | long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff0000fe
|
|
2A24(05B0) 00 00 00 FF |
|
|
2A28(05B1) 00 00 00 FF |
|
|
2A2C(05B2) 00 00 00 FF |
|
|
2A30(05B3) 00 00 00 FF |
|
|
2A34(05B4) 00 00 00 FF |
|
|
2A38(05B5) 00 00 00 FF |
|
|
2A3C(05B6) FE 00 00 FF |
|
|
2A40(05B7) 00 00 00 FF | long $ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff003c66
|
|
2A44(05B8) 00 00 00 FF |
|
|
2A48(05B9) 00 00 00 FF |
|
|
2A4C(05BA) 00 00 00 FF |
|
|
2A50(05BB) 00 00 00 FF |
|
|
2A54(05BC) 00 00 00 FF |
|
|
2A58(05BD) 00 00 00 FF |
|
|
2A5C(05BE) 66 3C 00 FF |
|
|
2A60(05BF) 00 00 00 FF | long $ff000000,$ff000000,$ff003c66,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
2A64(05C0) 00 00 00 FF |
|
|
2A68(05C1) 66 3C 00 FF |
|
|
2A6C(05C2) 00 00 00 FF |
|
|
2A70(05C3) 00 00 00 FF |
|
|
2A74(05C4) 00 00 00 FF |
|
|
2A78(05C5) 00 00 00 FF |
|
|
2A7C(05C6) 00 00 00 FF |
|
|
2A80(05C7) 06 06 00 FF | long $ff000606,$ff006060,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000
|
|
2A84(05C8) 60 60 00 FF |
|
|
2A88(05C9) 00 00 00 FF |
|
|
2A8C(05CA) 00 00 00 FF |
|
|
2A90(05CB) 00 00 00 FF |
|
|
2A94(05CC) 00 00 00 FF |
|
|
2A98(05CD) 00 00 00 FF |
|
|
2A9C(05CE) 00 00 00 FF |
|
|
2AA0(05CF) 00 00 00 FF | long $ff000000,$ff003c66,$ff000000,$ff000000,$ff000000,$ff000000,$ff000000,$ff55aa55
|
|
2AA4(05D0) 66 3C 00 FF |
|
|
2AA8(05D1) 00 00 00 FF |
|
|
2AAC(05D2) 00 00 00 FF |
|
|
2AB0(05D3) 00 00 00 FF |
|
|
2AB4(05D4) 00 00 00 FF |
|
|
2AB8(05D5) 00 00 00 FF |
|
|
2ABC(05D6) 55 AA 55 FF |
|
|
|===========================================================================|
|
|
|===========================================================================|
|
|
Spin Block start with 4 Parameters and 2 Extra Stack Longs. Method 1
|
|
PUB start(BasePin, ScreenPtr, CursorPtr, SyncPtr) : okay | i, j
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
Local Parameter DBASE:0004 - BasePin
|
|
Local Parameter DBASE:0008 - ScreenPtr
|
|
Local Parameter DBASE:000C - CursorPtr
|
|
Local Parameter DBASE:0010 - SyncPtr
|
|
Local Variable DBASE:0014 - i
|
|
Local Variable DBASE:0018 - j
|
|
|===========================================================================|
|
|
85 stop
|
|
Addr : 2AC0: 01 : Drop Anchor
|
|
Addr : 2AC1: 05 02 : Call Sub 2
|
|
88 reg_vcfg := $200000FF + (BasePin & %111000) << 6
|
|
Addr : 2AC3: 3B 20 00 00 FF : Constant 4 Bytes - 20 00 00 FF
|
|
Addr : 2AC8: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 2AC9: 38 38 : Constant 1 Bytes - 38
|
|
Addr : 2ACB: E8 : Math Op &
|
|
Addr : 2ACC: 38 06 : Constant 1 Bytes - 06
|
|
Addr : 2ACE: E3 : Math Op <<
|
|
Addr : 2ACF: EC : Math Op +
|
|
Addr : 2AD0: C5 80 98 : Memory Op Long PBASE + WRITE Address = 0098
|
|
89 i := $FF << (BasePin & %011000)
|
|
Addr : 2AD3: 37 27 : Constant Mask Y=39 Decrement 000000FF
|
|
Addr : 2AD5: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 2AD6: 38 18 : Constant 1 Bytes - 18
|
|
Addr : 2AD8: E8 : Math Op &
|
|
Addr : 2AD9: E3 : Math Op <<
|
|
Addr : 2ADA: 75 : Variable Operation Local Offset - 5 Write
|
|
90 j := BasePin & %100000 == 0
|
|
Addr : 2ADB: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 2ADC: 37 04 : Constant Mask Y=4 00000020
|
|
Addr : 2ADE: E8 : Math Op &
|
|
Addr : 2ADF: 35 : Constant 1 $00000000
|
|
Addr : 2AE0: FC : Math Op ==
|
|
Addr : 2AE1: 79 : Variable Operation Local Offset - 6 Write
|
|
91 reg_dira := i & j
|
|
Addr : 2AE2: 74 : Variable Operation Local Offset - 5 Read
|
|
Addr : 2AE3: 78 : Variable Operation Local Offset - 6 Read
|
|
Addr : 2AE4: E8 : Math Op &
|
|
Addr : 2AE5: C5 80 90 : Memory Op Long PBASE + WRITE Address = 0090
|
|
92 reg_dirb := i & !j
|
|
Addr : 2AE8: 74 : Variable Operation Local Offset - 5 Read
|
|
Addr : 2AE9: 78 : Variable Operation Local Offset - 6 Read
|
|
Addr : 2AEA: E7 : Math Op !
|
|
Addr : 2AEB: E8 : Math Op &
|
|
Addr : 2AEC: C5 80 94 : Memory Op Long PBASE + WRITE Address = 0094
|
|
95 sync_cnt := cnt + $10000
|
|
Addr : 2AEF: 3F 91 : Register op CNT Read
|
|
Addr : 2AF1: 37 0F : Constant Mask Y=15 00010000
|
|
Addr : 2AF3: EC : Math Op +
|
|
Addr : 2AF4: C5 80 9C : Memory Op Long PBASE + WRITE Address = 009C
|
|
98 longmove(@screen_base, @ScreenPtr, 2)
|
|
Addr : 2AF7: C7 82 10 : Memory Op Long PBASE + ADDRESS Address = 0210
|
|
Addr : 2AFA: 6B : Variable Operation Local Offset - 2 Address
|
|
Addr : 2AFB: 37 00 : Constant Mask Y=0 00000002
|
|
Addr : 2AFD: 1E : LongMove(To, From, Count)
|
|
99 font_base := @font
|
|
Addr : 2AFE: C7 82 CC : Memory Op Long PBASE + ADDRESS Address = 02CC
|
|
Addr : 2B01: C5 82 18 : Memory Op Long PBASE + WRITE Address = 0218
|
|
102 vf_lines.byte := vf
|
|
Addr : 2B04: 38 14 : Constant 1 Bytes - 14
|
|
Addr : 2B06: 85 81 D8 : Memory Op Byte PBASE + WRITE Address = 01D8
|
|
103 vb_lines.byte := vb
|
|
Addr : 2B09: 38 11 : Constant 1 Bytes - 11
|
|
Addr : 2B0B: 85 80 A8 : Memory Op Byte PBASE + WRITE Address = 00A8
|
|
104 font_part := 1
|
|
Addr : 2B0E: 36 : Constant 2 $00000001
|
|
Addr : 2B0F: C5 82 1C : Memory Op Long PBASE + WRITE Address = 021C
|
|
105 cog[1] := cognew(@d0, SyncPtr) + 1
|
|
Addr : 2B12: 34 : Constant 0 $FFFFFFFF
|
|
Addr : 2B13: C7 0C : Memory Op Long PBASE + ADDRESS Address = 000C
|
|
Addr : 2B15: 70 : Variable Operation Local Offset - 4 Read
|
|
Addr : 2B16: 28 : CogInit(Id, Addr, Ptr) Push
|
|
Addr : 2B17: 36 : Constant 2 $00000001
|
|
Addr : 2B18: EC : Math Op +
|
|
Addr : 2B19: 36 : Constant 2 $00000001
|
|
Addr : 2B1A: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
108 waitcnt($2000 + cnt)
|
|
Addr : 2B1C: 37 0C : Constant Mask Y=12 00002000
|
|
Addr : 2B1E: 3F 91 : Register op CNT Read
|
|
Addr : 2B20: EC : Math Op +
|
|
Addr : 2B21: 23 : WaitCnt(count)
|
|
111 vf_lines.byte := vf+4
|
|
Addr : 2B22: 38 14 : Constant 1 Bytes - 14
|
|
Addr : 2B24: 37 01 : Constant Mask Y=1 00000004
|
|
Addr : 2B26: EC : Math Op +
|
|
Addr : 2B27: 85 81 D8 : Memory Op Byte PBASE + WRITE Address = 01D8
|
|
112 vb_lines.byte := vb-4
|
|
Addr : 2B2A: 38 11 : Constant 1 Bytes - 11
|
|
Addr : 2B2C: 37 01 : Constant Mask Y=1 00000004
|
|
Addr : 2B2E: ED : Math Op -
|
|
Addr : 2B2F: 85 80 A8 : Memory Op Byte PBASE + WRITE Address = 00A8
|
|
113 font_part := 0
|
|
Addr : 2B32: 35 : Constant 1 $00000000
|
|
Addr : 2B33: C5 82 1C : Memory Op Long PBASE + WRITE Address = 021C
|
|
114 cog[0] := cognew(@d0, SyncPtr) + 1
|
|
Addr : 2B36: 34 : Constant 0 $FFFFFFFF
|
|
Addr : 2B37: C7 0C : Memory Op Long PBASE + ADDRESS Address = 000C
|
|
Addr : 2B39: 70 : Variable Operation Local Offset - 4 Read
|
|
Addr : 2B3A: 28 : CogInit(Id, Addr, Ptr) Push
|
|
Addr : 2B3B: 36 : Constant 2 $00000001
|
|
Addr : 2B3C: EC : Math Op +
|
|
Addr : 2B3D: 35 : Constant 1 $00000000
|
|
Addr : 2B3E: D9 00 : Memory Op Long VBASE + POP Index WRITE Address = 0000
|
|
117 if cog[0] and cog[1]
|
|
Addr : 2B40: 35 : Constant 1 $00000000
|
|
Addr : 2B41: D8 00 : Memory Op Long VBASE + POP Index READ Address = 0000
|
|
Addr : 2B43: 36 : Constant 2 $00000001
|
|
Addr : 2B44: D8 00 : Memory Op Long VBASE + POP Index READ Address = 0000
|
|
Addr : 2B46: F0 : Math Op AND
|
|
Addr : 2B47: JZ Label0008
|
|
Addr : 2B47: 0A 02 : jz Address = 2B4B 2
|
|
118 return true
|
|
Addr : 2B49: 34 : Constant 0 $FFFFFFFF
|
|
Addr : 2B4A: 33 : Return value
|
|
Addr : 2B4B: Label0008
|
|
Addr : 2B4B: Label0009
|
|
121 stop
|
|
Addr : 2B4B: 01 : Drop Anchor
|
|
Addr : 2B4C: 05 02 : Call Sub 2
|
|
Addr : 2B4E: 32 : Return
|
|
|===========================================================================|
|
|
Spin Block stop with 0 Parameters and 1 Extra Stack Longs. Method 2
|
|
PUB stop | i
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
Local Variable DBASE:0004 - i
|
|
|===========================================================================|
|
|
128 repeat i from 0 to 1
|
|
Addr : 2B4F: 35 : Constant 1 $00000000
|
|
Addr : 2B50: 65 : Variable Operation Local Offset - 1 Write
|
|
Addr : 2B51: Label0008
|
|
Addr : 2B51: Label0009
|
|
Addr : 2B51: 35 : Constant 1 $00000000
|
|
Addr : 2B52: 36 : Constant 2 $00000001
|
|
Addr : 2B53: Repeat i Step Label0008
|
|
Addr : 2B53: 66 02 7B : Variable Operation Local Offset - 1 Assign Repeat-Var loop Address= 2B51 -5
|
|
Addr : 2B56: Label000A
|
|
129 if cog[i]
|
|
Addr : 2B56: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 2B57: D8 00 : Memory Op Long VBASE + POP Index READ Address = 0000
|
|
Addr : 2B59: JZ Label000B
|
|
Addr : 2B59: 0A 00 : jz Address = 2B5B 0
|
|
Addr : 2B5B: Label000B
|
|
Addr : 2B5B: Label000C
|
|
130 cogstop(cog[i]~ - 1)
|
|
Addr : 2B5B: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 2B5C: DA 00 98 : Memory Op Long VBASE + POP Index ASSIGN Address = 0000 VAR~ Post-clear Push
|
|
Addr : 2B5F: 36 : Constant 2 $00000001
|
|
Addr : 2B60: ED : Math Op -
|
|
Addr : 2B61: 21 : CogStop(id)
|
|
Addr : 2B62: 32 : Return
|
|
|===========================================================================|
|
|
Object vt100
|
|
Object Base is 2B64
|
|
|===========================================================================|
|
|
Object Constants
|
|
|===========================================================================|
|
|
|===========================================================================|
|
|
VBASE Global Variables
|
|
|===========================================================================|
|
|
VBASE : 0000 LONG Size 0004 Variable cog
|
|
|===========================================================================|
|
|
Object DAT Blocks
|
|
|===========================================================================|
|
|
2B70(0000) | org 0
|
|
2B70(0000) | entry
|
|
2B70(0000) F0 69 BC A0 | command_ptr mov t1, PAR
|
|
2B74(0001) 34 00 BC 08 | cmd rdlong command_ptr, t1 ' parameter 0
|
|
2B78(0002) 04 68 FC 80 | screen_ptr add t1, #4
|
|
2B7C(0003) 34 04 BC 08 | screen_end rdlong screen_ptr, t1 ' parameter 1
|
|
2B80(0004) 04 68 FC 80 | cursor_ptr add t1, #4
|
|
2B84(0005) 34 08 BC 08 | vsync_ptr rdlong cursor_ptr, t1 ' parameter 2
|
|
2B88(0006) 04 68 FC 80 | screen_w add t1, #4
|
|
2B8C(0007) 34 0A BC 08 | screen_w2 rdlong vsync_ptr, t1 ' parameter 3
|
|
2B90(0008) 04 68 FC 80 | screen_h add t1, #4
|
|
2B94(0009) 34 0C BC 08 | cur_ptr rdlong screen_w, t1 ' parameter 4
|
|
2B98(000A) 04 68 FC 80 | scroll_top add t1, #4
|
|
2B9C(000B) 34 10 BC 08 | scroll_bot rdlong screen_h, t1 ' parameter 5
|
|
2BA0(000C) 06 0E BC A0 | dst mov screen_w2, screen_w
|
|
2BA4(000D) 01 0E FC 28 | src shr screen_w2, #1 ' screen width / 2
|
|
2BA8(000E) 06 68 BC A0 | end mov t1, screen_w
|
|
2BAC(000F) 08 6A BC A0 | data mov t2, screen_h
|
|
2BB0(0010) 79 FF FE 5C | cols call #mul16x16
|
|
2BB4(0011) 35 06 BC A0 | rows mov screen_end, t2 ' result in t2
|
|
2BB8(0012) 35 06 BC 80 | lmm_pc add screen_end, t2 ' * 2
|
|
2BBC(0013) 02 06 BC 80 | cur_x_save add screen_end, screen_ptr
|
|
2BC0(0014) 00 14 FC A0 | cur_y_save mov scroll_top, #0
|
|
2BC4(0015) 08 16 BC A0 | new_x_save mov scroll_bot, screen_h
|
|
2BC8(0016) F1 47 BC A0 | attr_save mov cur_delay, CNT
|
|
2BCC(0017) 45 00 7C 5C | jmp #startup
|
|
2BD0(0018) A4 31 00 00 | control_ptr long @@@control_table
|
|
2BD4(0019) E4 31 00 00 | csi_cmds_ptr long @@@csi_cmds
|
|
2BD8(001A) 20 00 20 00 | x00200020 long $00200020
|
|
2BDC(001B) 5F 00 00 00 | cur_block long $5f
|
|
2BE0(001C) 00 00 00 00 | inverse long 0
|
|
2BE4(001D) 00 00 00 00 | cur_x long 0
|
|
2BE8(001E) 00 00 00 00 | new_x long 0
|
|
2BEC(001F) 00 00 00 00 | cur_y long 0
|
|
2BF0(0020) 00 00 00 00 | attr long 0 ' attribute mode
|
|
2BF4(0021) 24 00 00 00 | flags long flag_decom | flag_decawm
|
|
2BF8(0022) 00 00 00 00 | cur_char long 0
|
|
2BFC(0023) 00 00 00 00 | cur_delay long 0
|
|
2C00(0024) 07 00 00 00 | fgcol long %0111 ' foreground color
|
|
2C04(0025) 00 00 00 00 | bgcol long %0000 ' background color
|
|
2C08(0026) 00 07 00 00 | color long %00000111_00000000 ' composed fore- and background
|
|
2C0C(0027) 00 00 00 00 | esc_mode long 0
|
|
2C10(0028) 00 00 00 00 | csi_mode long 0
|
|
2C14(0029) 00 00 00 00 | csi_argc long 0
|
|
2C18(002A) 00 00 00 00 | csi_argf long 0
|
|
2C1C(002B) 00 00 00 00 | csi_args long 0,0,0,0,0,0,0,0
|
|
2C20(002C) 00 00 00 00 |
|
|
2C24(002D) 00 00 00 00 |
|
|
2C28(002E) 00 00 00 00 |
|
|
2C2C(002F) 00 00 00 00 |
|
|
2C30(0030) 00 00 00 00 |
|
|
2C34(0031) 00 00 00 00 |
|
|
2C38(0032) 00 00 00 00 |
|
|
2C3C(0033) 00 00 00 00 | question_mark long 0
|
|
2C40(0034) 00 00 00 00 | t1 long 0
|
|
2C44(0035) 00 00 00 00 | t2 long 0
|
|
2C48(0036) 00 00 00 00 | t3 long 0
|
|
2C4C(0037) | goto_xay
|
|
2C4C(0037) 0A 3E BC 80 | add cur_y, scroll_top
|
|
2C50(0038) | validate_cursor
|
|
2C50(0038) 1D 3A BC A1 | mov cur_x, cur_x WC ' negative x?
|
|
2C54(0039) 00 3A F0 A0 | if_c mov cur_x, #0 ' yes, clip to 0
|
|
2C58(003A) 06 3A 3C 87 | cmp cur_x, screen_w WZ, WC
|
|
2C5C(003B) 06 3A 8C A0 | if_ae mov cur_x, screen_w ' stay inside the boundaries
|
|
2C60(003C) 01 3A CC 84 | if_ae sub cur_x, #1
|
|
2C64(003D) 1D 3C BC A0 | mov new_x, cur_x
|
|
2C68(003E) 1F 3E BC A1 | mov cur_y, cur_y WC ' negative y?
|
|
2C6C(003F) 00 3E F0 A0 | if_c mov cur_y, #0 ' yes, clip to 0
|
|
2C70(0040) 08 3E 3C 87 | cmp cur_y, screen_h WZ, WC
|
|
2C74(0041) 08 3E 8C A0 | if_ae mov cur_y, screen_h ' stay inside the boundaries
|
|
2C78(0042) 01 3E CC 84 | if_ae sub cur_y, #1
|
|
2C7C(0043) | cmdloop
|
|
2C7C(0043) 00 02 FC A0 | mov cmd, #0
|
|
2C80(0044) 00 02 3C 08 | wrlong cmd, command_ptr
|
|
2C84(0045) | startup
|
|
2C84(0045) 4C 08 7C EC | :loop tjz cursor_ptr, #:cursor ' skip if cursor_ptr is null
|
|
2C88(0046) 04 3C 3C 00 | wrbyte new_x, cursor_ptr ' write the (new) cursor position
|
|
2C8C(0047) 01 08 FC 80 | add cursor_ptr, #1
|
|
2C90(0048) 04 3E 3C 00 | wrbyte cur_y, cursor_ptr ' and the cursor row, too
|
|
2C94(0049) 01 08 FC 84 | sub cursor_ptr, #1
|
|
2C98(004A) 5A C3 FE 5C | call #calc_cursor
|
|
2C9C(004B) 5B 00 7C 5C | jmp #:check_cmd
|
|
2CA0(004C) 23 68 BC A0 | :cursor mov t1, cur_delay ' software cursor
|
|
2CA4(004D) F1 69 BC 84 | sub t1, CNT
|
|
2CA8(004E) 00 68 7C C3 | cmps t1, #0 WZ, WC
|
|
2CAC(004F) 5B 00 4C 5C | if_ae jmp #:check_cmd
|
|
2CB0(0050) 00 68 FC 08 | rdlong t1, #0 ' get clkfreq
|
|
2CB4(0051) 02 68 FC 28 | shr t1, #2 ' / 4
|
|
2CB8(0052) 34 46 BC 80 | add cur_delay, t1 ' next cursor flash event
|
|
2CBC(0053) 5A C3 FE 5C | call #calc_cursor
|
|
2CC0(0054) 06 3C 3C 87 | cmp new_x, screen_w WZ, WC ' new_x beyond last column?
|
|
2CC4(0055) 5B 00 4C 5C | if_ae jmp #:check_cmd
|
|
2CC8(0056) 22 68 BC A2 | mov t1, cur_char WZ ' get saved character
|
|
2CCC(0057) 09 44 A8 00 | if_z rdbyte cur_char, cur_ptr ' none: save character under cursor
|
|
2CD0(0058) 09 36 28 00 | if_z wrbyte cur_block, cur_ptr ' display a cursor block
|
|
2CD4(0059) 00 44 D4 A0 | if_nz mov cur_char, #0 ' reset saved character
|
|
2CD8(005A) 09 68 14 00 | if_nz wrbyte t1, cur_ptr ' restore saved character in screen buffer
|
|
2CDC(005B) 00 02 BC 0A | :check_cmd rdlong cmd, command_ptr WZ
|
|
2CE0(005C) 45 00 68 5C | if_z jmp #:loop
|
|
2CE4(005D) 22 68 BC A2 | mov t1, cur_char WZ ' get saved character
|
|
2CE8(005E) 03 12 14 85 | if_nz cmp cur_ptr, screen_end WC
|
|
2CEC(005F) 00 44 D0 A0 | if_nz_and_c mov cur_char, #0 ' reset saved character
|
|
2CF0(0060) 09 68 10 00 | if_nz_and_c wrbyte t1, cur_ptr ' restore saved character in screen buffer
|
|
2CF4(0061) FF 02 FC 60 | and cmd, #$ff
|
|
2CF8(0062) 88 50 7C E8 | tjnz csi_mode, #csi ' go to CSI decoding if enabled
|
|
2CFC(0063) 7F 4E 7C E8 | tjnz esc_mode, #esc ' go to ESC decoding if enabled
|
|
2D00(0064) 20 02 7C 87 | cmp cmd, #$20 WZ, WC ' other control characters?
|
|
2D04(0065) 6A 00 4C 5C | if_ae jmp #do_emit ' no, just emit to the screen buffer
|
|
2D08(0066) 01 02 FC 2C | shl cmd, #1
|
|
2D0C(0067) 18 02 BC 80 | add cmd, control_ptr
|
|
2D10(0068) 01 02 BC 04 | rdword cmd, cmd
|
|
2D14(0069) 01 00 3C 5C | jmp cmd ' dispatch on control_table
|
|
2D18(006A) 4A B3 FE 5C | do_emit call #emit
|
|
2D1C(006B) 43 00 7C 5C | jmp #cmdloop
|
|
2D20(006C) | do_nul ' NUL - null character
|
|
2D20(006C) | do_soh ' SOH - start of header
|
|
2D20(006C) | do_stx ' STX - start of text
|
|
2D20(006C) | do_etx ' ETX - end of text
|
|
2D20(006C) | do_eot ' EOT - end of transmission
|
|
2D20(006C) | do_enq ' ENQ - enquiry
|
|
2D20(006C) | do_ack ' ACK - acknowledgement
|
|
2D20(006C) | do_bel ' BEL - bell
|
|
2D20(006C) | do_dle ' DLE - data link escape
|
|
2D20(006C) | do_dc1 ' DC1 - device control 1 (XON)
|
|
2D20(006C) | do_dc2 ' DC2 - device control 2
|
|
2D20(006C) | do_dc3 ' DC3 - device control 3 (XOFF)
|
|
2D20(006C) | do_dc4 ' DC4 - device control 4
|
|
2D20(006C) | do_nak ' NAK - negative acknowledgement
|
|
2D20(006C) | do_syn ' SYN - synchronous idle
|
|
2D20(006C) | do_etb ' ETB - end of transmission block
|
|
2D20(006C) | do_em ' EM - end of medium
|
|
2D20(006C) | do_sub ' SUB - substitute
|
|
2D20(006C) | do_fs ' FS - file separator
|
|
2D20(006C) | do_gs ' GS - group separator
|
|
2D20(006C) | do_rs ' RS - request to send
|
|
2D20(006C) | do_us ' US - unit separator
|
|
2D20(006C) 43 00 7C 5C | jmp #cmdloop
|
|
2D24(006D) C4 8C FD 5C | do_cr call #cr
|
|
2D28(006E) 43 00 7C 5C | jmp #cmdloop
|
|
2D2C(006F) C7 9A FD 5C | do_bs call #bs
|
|
2D30(0070) 43 00 7C 5C | jmp #cmdloop
|
|
2D34(0071) D2 AC FD 5C | do_ht call #ht
|
|
2D38(0072) 43 00 7C 5C | jmp #cmdloop
|
|
2D3C(0073) D7 04 FE 5C | do_lf call #lf
|
|
2D40(0074) 43 00 7C 5C | jmp #cmdloop
|
|
2D44(0075) 03 59 FE 5C | do_vt call #vt
|
|
2D48(0076) 43 00 7C 5C | jmp #cmdloop
|
|
2D4C(0077) 2D 73 FE 5C | do_ff call #ff
|
|
2D50(0078) 43 00 7C 5C | jmp #cmdloop
|
|
2D54(0079) | do_so ' ???
|
|
2D54(0079) 43 00 7C 5C | jmp #cmdloop
|
|
2D58(007A) | do_si ' ???
|
|
2D58(007A) 43 00 7C 5C | jmp #cmdloop
|
|
2D5C(007B) | do_can ' CAN - cancel
|
|
2D5C(007B) 3E 93 FE 5C | call #can
|
|
2D60(007C) 43 00 7C 5C | jmp #cmdloop
|
|
2D64(007D) | do_esc
|
|
2D64(007D) 01 4E FC A0 | mov esc_mode, #1
|
|
2D68(007E) 43 00 7C 5C | jmp #cmdloop
|
|
2D6C(007F) | esc
|
|
2D6C(007F) 00 4E FC A0 | mov esc_mode, #0
|
|
2D70(0080) 5B 02 7C 86 | cmp cmd, #"[" WZ
|
|
2D74(0081) 83 00 68 5C | if_z jmp #:csi
|
|
2D78(0082) 43 00 7C 5C | jmp #cmdloop
|
|
2D7C(0083) | :csi
|
|
2D7C(0083) 01 50 FC A0 | mov csi_mode, #1 ' start CSI mode
|
|
2D80(0084) 00 52 FC A0 | mov csi_argc, #0 ' argument count = 0
|
|
2D84(0085) 00 54 FC A0 | mov csi_argf, #0 ' argument flag = 0
|
|
2D88(0086) 00 56 FC A0 | mov csi_args, #0 ' first argument = 0
|
|
2D8C(0087) 43 00 7C 5C | jmp #cmdloop
|
|
2D90(0088) | csi
|
|
2D90(0088) 01 50 7C 86 | cmp csi_mode, #1 WZ ' first character after "["?
|
|
2D94(0089) 8E 00 54 5C | if_nz jmp #:not_question ' no, check arguments
|
|
2D98(008A) 02 50 FC A0 | mov csi_mode, #2 ' skip this test in the future
|
|
2D9C(008B) 3F 02 7C 86 | cmp cmd, #"?" WZ ' "<ESC>[?" mode?
|
|
2DA0(008C) 01 66 FC 78 | muxz question_mark, #1
|
|
2DA4(008D) 43 00 68 5C | if_z jmp #cmdloop
|
|
2DA8(008E) | :not_question
|
|
2DA8(008E) 30 02 7C 87 | cmp cmd, #"0" WZ, WC
|
|
2DAC(008F) A0 00 70 5C | if_b jmp #:not_numeric
|
|
2DB0(0090) 39 02 7C 87 | cmp cmd, #"9" WZ, WC
|
|
2DB4(0091) A0 00 44 5C | if_a jmp #:not_numeric
|
|
2DB8(0092) 29 68 BC A0 | mov t1, csi_argc
|
|
2DBC(0093) 2B 68 FC 80 | add t1, #csi_args
|
|
2DC0(0094) 34 2E BD 50 | movs :get_arg, t1
|
|
2DC4(0095) 34 3C BD 54 | movd :put_arg, t1
|
|
2DC8(0096) 01 54 FC A0 | mov csi_argf, #1 ' set the "seen arguments" flag
|
|
2DCC(0097) 00 68 BC A0 | :get_arg mov t1, 0-0 ' get csi_args[csi_argc]
|
|
2DD0(0098) 34 6A BC A0 | mov t2, t1 ' to t2 also
|
|
2DD4(0099) 02 68 FC 2C | shl t1, #2 ' * 4
|
|
2DD8(009A) 35 68 BC 80 | add t1, t2 ' * 5
|
|
2DDC(009B) 01 68 FC 2C | shl t1, #1 ' * 10
|
|
2DE0(009C) 01 68 BC 80 | add t1, cmd ' + digit
|
|
2DE4(009D) 30 68 FC 84 | sub t1, #"0" ' - ASCII for "0"
|
|
2DE8(009E) 34 00 BC A0 | :put_arg mov 0-0, t1 ' put csi_args[csi_argc]
|
|
2DEC(009F) 43 00 7C 5C | jmp #cmdloop
|
|
2DF0(00A0) | :not_numeric
|
|
2DF0(00A0) 3B 02 7C 86 | cmp cmd, #";" WZ ' next argument delimiter?
|
|
2DF4(00A1) AA 00 54 5C | if_nz jmp #:not_delimiter
|
|
2DF8(00A2) 07 52 7C 86 | cmp csi_argc, #7 WZ ' reached maximum number of arguments?
|
|
2DFC(00A3) 01 52 D4 80 | if_nz add csi_argc, #1 ' no, use next slot
|
|
2E00(00A4) 29 68 BC A0 | mov t1, csi_argc
|
|
2E04(00A5) 2B 68 FC 80 | add t1, #csi_args
|
|
2E08(00A6) 34 50 BD 54 | movd :clr_arg, t1
|
|
2E0C(00A7) 00 00 00 00 | nop
|
|
2E10(00A8) 00 00 FC A0 | :clr_arg mov 0-0, #0 ' preset csi_args[csi_argc] to 0
|
|
2E14(00A9) 43 00 7C 5C | jmp #cmdloop
|
|
2E18(00AA) | :not_delimiter
|
|
2E18(00AA) 00 50 FC A0 | mov csi_mode, #0 ' end CSI mode
|
|
2E1C(00AB) 2A 52 BC 80 | add csi_argc, csi_argf ' incr. argument count, if any arguments were specified
|
|
2E20(00AC) 40 02 7C 87 | cmp cmd, #"@" WZ, WC ' below @?
|
|
2E24(00AD) 43 00 70 5C | if_b jmp #cmdloop
|
|
2E28(00AE) 7A 02 7C 87 | cmp cmd, #"z" WZ, WC ' above z?
|
|
2E2C(00AF) 43 00 4C 5C | if_ae jmp #cmdloop
|
|
2E30(00B0) 40 02 FC 84 | sub cmd, #"@"
|
|
2E34(00B1) 01 02 FC 2C | shl cmd, #1 ' function word index
|
|
2E38(00B2) 19 02 BC 80 | add cmd, csi_cmds_ptr
|
|
2E3C(00B3) 01 02 BC 04 | rdword cmd, cmd ' get function pointer
|
|
2E40(00B4) FF 03 7C 66 | testn cmd, #$1ff WZ ' any bits outside the cog?
|
|
2E44(00B5) 01 00 28 5C | if_z jmp cmd ' cog function
|
|
2E48(00B6) 01 24 BC A0 | mov lmm_pc, cmd ' otherwise it's an LMM address
|
|
2E4C(00B7) 80 01 7C 5C | jmp #lmm_loop ' execute LMM code
|
|
2E50(00B8) | non_zero_args
|
|
2E50(00B8) BA 56 7C E8 | tjnz csi_args, #non_zero_args_ret
|
|
2E54(00B9) 01 56 FC 80 | add csi_args, #1
|
|
2E58(00BA) | non_zero_args_ret
|
|
2E58(00BA) 00 00 7C 5C | ret
|
|
2E5C(00BB) | shift_csi_args
|
|
2E5C(00BB) 2C 56 BC A0 | mov csi_args, csi_args + 1
|
|
2E60(00BC) 2D 58 BC A0 | mov csi_args + 1, csi_args + 2
|
|
2E64(00BD) 2E 5A BC A0 | mov csi_args + 2, csi_args + 3
|
|
2E68(00BE) 2F 5C BC A0 | mov csi_args + 3, csi_args + 4
|
|
2E6C(00BF) 30 5E BC A0 | mov csi_args + 4, csi_args + 5
|
|
2E70(00C0) 31 60 BC A0 | mov csi_args + 5, csi_args + 6
|
|
2E74(00C1) 32 62 BC A0 | mov csi_args + 6, csi_args + 7
|
|
2E78(00C2) 00 64 FC A0 | mov csi_args + 7, #0
|
|
2E7C(00C3) | shift_csi_args_ret
|
|
2E7C(00C3) 00 00 7C 5C | ret
|
|
2E80(00C4) | cr
|
|
2E80(00C4) 00 3A FC A0 | mov cur_x, #0
|
|
2E84(00C5) 00 3C FC A0 | mov new_x, #0
|
|
2E88(00C6) | cr_ret
|
|
2E88(00C6) 00 00 7C 5C | ret
|
|
2E8C(00C7) | bs
|
|
2E8C(00C7) 00 3C 7C 86 | cmp new_x, #0 WZ
|
|
2E90(00C8) 01 3C D4 84 | if_nz sub new_x, #1
|
|
2E94(00C9) CD 00 54 5C | if_nz jmp #bs_ret
|
|
2E98(00CA) 06 3C BC A0 | mov new_x, screen_w
|
|
2E9C(00CB) 01 3C FC 84 | sub new_x, #1
|
|
2EA0(00CC) 03 59 FE 5C | call #vt
|
|
2EA4(00CD) | bs_ret
|
|
2EA4(00CD) 00 00 7C 5C | ret
|
|
2EA8(00CE) | fs
|
|
2EA8(00CE) 01 3A FC 80 | add cur_x, #1
|
|
2EAC(00CF) 06 3A 3C 86 | cmp cur_x, screen_w WZ
|
|
2EB0(00D0) 01 3A E8 84 | if_z sub cur_x, #1 ' stay in last column
|
|
2EB4(00D1) | fs_ret
|
|
2EB4(00D1) 00 00 7C 5C | ret
|
|
2EB8(00D2) | ht
|
|
2EB8(00D2) 20 02 FC A0 | mov cmd, #$20
|
|
2EBC(00D3) 4A B3 FE 5C | call #emit
|
|
2EC0(00D4) 07 3C 7C 62 | test new_x, #7 WZ
|
|
2EC4(00D5) D2 00 54 5C | if_nz jmp #ht
|
|
2EC8(00D6) | ht_ret
|
|
2EC8(00D6) 00 00 7C 5C | ret
|
|
2ECC(00D7) | lf
|
|
2ECC(00D7) 01 3E FC 80 | add cur_y, #1
|
|
2ED0(00D8) 04 42 7C 62 | test flags, #flag_decom WZ ' origin mode enabled?
|
|
2ED4(00D9) E2 00 54 5C | if_nz jmp #:origin ' yes, check cursor in scroll range
|
|
2ED8(00DA) 08 3E 3C 87 | :screen cmp cur_y, screen_h WZ, WC ' no, check cursor in screen range
|
|
2EDC(00DB) 02 01 70 5C | if_b jmp #lf_ret
|
|
2EE0(00DC) 08 3E BC A0 | mov cur_y, screen_h
|
|
2EE4(00DD) 01 3E FC 84 | sub cur_y, #1
|
|
2EE8(00DE) 02 18 BC A0 | mov dst, screen_ptr ' destination = screen buffer
|
|
2EEC(00DF) 02 1A BC A0 | mov src, screen_ptr ' source = dito
|
|
2EF0(00E0) 08 22 BC A0 | mov rows, screen_h ' screen height
|
|
2EF4(00E1) EF 00 7C 5C | jmp #scroll_up_1 ' scroll the entire screen
|
|
2EF8(00E2) 0B 3E 3C 87 | :origin cmp cur_y, scroll_bot WZ, WC
|
|
2EFC(00E3) 02 01 70 5C | if_b jmp #lf_ret
|
|
2F00(00E4) 0B 3E BC A0 | mov cur_y, scroll_bot
|
|
2F04(00E5) 01 3E FC 84 | sub cur_y, #1
|
|
2F08(00E6) | scroll_up
|
|
2F08(00E6) 0A 68 BC A0 | mov t1, scroll_top
|
|
2F0C(00E7) 06 6A BC A0 | mov t2, screen_w
|
|
2F10(00E8) 79 FF FE 5C | call #mul16x16
|
|
2F14(00E9) 01 6A FC 2C | shl t2, #1
|
|
2F18(00EA) 02 6A BC 80 | add t2, screen_ptr
|
|
2F1C(00EB) 35 18 BC A0 | mov dst, t2 ' destination = scroll_top of screen buffer
|
|
2F20(00EC) 35 1A BC A0 | mov src, t2 ' source = dito
|
|
2F24(00ED) 0B 22 BC A0 | mov rows, scroll_bot ' scroll range height
|
|
2F28(00EE) 0A 22 BC 84 | sub rows, scroll_top
|
|
2F2C(00EF) | scroll_up_1
|
|
2F2C(00EF) 06 1A BC 80 | add src, screen_w ' copy from one line below
|
|
2F30(00F0) 06 1A BC 80 | add src, screen_w
|
|
2F34(00F1) 01 22 FC 87 | sub rows, #1 WZ, WC ' - 1 rows to move
|
|
2F38(00F2) FA 00 78 5C | if_be jmp #:fill ' nothing left to scroll?
|
|
2F3C(00F3) 07 20 BC A0 | :rows mov cols, screen_w2 ' columns = screen width / 2
|
|
2F40(00F4) 0D 1E BC 08 | :cols rdlong data, src
|
|
2F44(00F5) 04 1A FC 80 | add src, #4
|
|
2F48(00F6) 0C 1E 3C 08 | wrlong data, dst
|
|
2F4C(00F7) 04 18 FC 80 | add dst, #4
|
|
2F50(00F8) F4 20 FC E4 | djnz cols, #:cols
|
|
2F54(00F9) F3 22 FC E4 | djnz rows, #:rows
|
|
2F58(00FA) 07 20 BC A0 | :fill mov cols, screen_w2 ' columns = screen width / 2
|
|
2F5C(00FB) 1A 68 BC A0 | mov t1, x00200020
|
|
2F60(00FC) 26 68 BC 68 | or t1, color
|
|
2F64(00FD) 10 68 FC 24 | rol t1, #16
|
|
2F68(00FE) 26 68 BC 68 | or t1, color
|
|
2F6C(00FF) 0C 68 3C 08 | :blank wrlong t1, dst ' fill 4 spaces
|
|
2F70(0100) 04 18 FC 80 | add dst, #4
|
|
2F74(0101) FF 20 FC E4 | djnz cols, #:blank
|
|
2F78(0102) | scroll_up_ret
|
|
2F78(0102) | lf_ret
|
|
2F78(0102) 00 00 7C 5C | ret
|
|
2F7C(0103) | vt
|
|
2F7C(0103) 01 3E FC 84 | sub cur_y, #1
|
|
2F80(0104) 04 42 7C 62 | test flags, #flag_decom WZ ' origin mode enabled?
|
|
2F84(0105) 0D 01 54 5C | if_nz jmp #:origin ' yes, check cursor in scroll range
|
|
2F88(0106) | :screen ' no, check cursor in screen range
|
|
2F88(0106) 00 3E 7C C3 | cmps cur_y, #0 WZ, WC ' < 0?
|
|
2F8C(0107) 2C 01 4C 5C | if_ae jmp #vt_ret ' in range
|
|
2F90(0108) 00 3E FC A0 | mov cur_y, #0 ' stay in line 0
|
|
2F94(0109) 03 1A BC A0 | mov src, screen_end
|
|
2F98(010A) 03 18 BC A0 | mov dst, screen_end
|
|
2F9C(010B) 08 22 BC A0 | mov rows, screen_h
|
|
2FA0(010C) 19 01 7C 5C | jmp #scroll_down_1
|
|
2FA4(010D) | :origin
|
|
2FA4(010D) 0A 3E 3C C3 | cmps cur_y, scroll_top WZ, WC
|
|
2FA8(010E) 2C 01 4C 5C | if_ae jmp #vt_ret
|
|
2FAC(010F) 0A 3E BC A0 | mov cur_y, scroll_top
|
|
2FB0(0110) | scroll_down
|
|
2FB0(0110) 0B 68 BC A0 | mov t1, scroll_bot
|
|
2FB4(0111) 06 6A BC A0 | mov t2, screen_w
|
|
2FB8(0112) 79 FF FE 5C | call #mul16x16
|
|
2FBC(0113) 01 6A FC 2C | shl t2, #1
|
|
2FC0(0114) 02 6A BC 80 | add t2, screen_ptr
|
|
2FC4(0115) 35 18 BC A0 | mov dst, t2 ' destination = end of scroll range buffer
|
|
2FC8(0116) 35 1A BC A0 | mov src, t2 ' source = last row of scroll range buffer
|
|
2FCC(0117) 0B 22 BC A0 | mov rows, scroll_bot ' scroll range height
|
|
2FD0(0118) 0A 22 BC 84 | sub rows, scroll_top
|
|
2FD4(0119) | scroll_down_1
|
|
2FD4(0119) 06 1A BC 84 | sub src, screen_w
|
|
2FD8(011A) 06 1A BC 84 | sub src, screen_w
|
|
2FDC(011B) 01 22 FC 87 | sub rows, #1 WZ, WC ' - 1 rows to move
|
|
2FE0(011C) 24 01 78 5C | if_be jmp #:fill ' nothing left to scroll?
|
|
2FE4(011D) 07 20 BC A0 | :rows mov cols, screen_w2 ' columns = screen width / 2
|
|
2FE8(011E) 04 1A FC 84 | :cols sub src, #4 ' pre decrement source
|
|
2FEC(011F) 0D 1E BC 08 | rdlong data, src
|
|
2FF0(0120) 04 18 FC 84 | sub dst, #4 ' pre decrement destination
|
|
2FF4(0121) 0C 1E 3C 08 | wrlong data, dst
|
|
2FF8(0122) 1E 21 FC E4 | djnz cols, #:cols ' for all columns
|
|
2FFC(0123) 1D 23 FC E4 | djnz rows, #:rows ' for all rows
|
|
3000(0124) 1A 68 BC A0 | :fill mov t1, x00200020
|
|
3004(0125) 26 68 BC 68 | or t1, color
|
|
3008(0126) 10 68 FC 24 | rol t1, #16
|
|
300C(0127) 26 68 BC 68 | or t1, color
|
|
3010(0128) 07 20 BC A0 | mov cols, screen_w2 ' columns = screen width / 2
|
|
3014(0129) 04 18 FC 84 | :blank sub dst, #4
|
|
3018(012A) 0C 68 3C 08 | wrlong t1, dst
|
|
301C(012B) 29 21 FC E4 | djnz cols, #:blank
|
|
3020(012C) | scroll_down_ret
|
|
3020(012C) | vt_ret
|
|
3020(012C) 00 00 7C 5C | ret
|
|
3024(012D) | ff
|
|
3024(012D) 02 18 BC A0 | mov dst, screen_ptr
|
|
3028(012E) 08 22 BC A0 | mov rows, screen_h ' screen height rows
|
|
302C(012F) 1A 68 BC A0 | mov t1, x00200020
|
|
3030(0130) 26 68 BC 68 | or t1, color
|
|
3034(0131) 10 68 FC 24 | rol t1, #16
|
|
3038(0132) 26 68 BC 68 | or t1, color
|
|
303C(0133) 07 20 BC A0 | :rows mov cols, screen_w2 ' columns = screen width / 2
|
|
3040(0134) 0C 68 3C 08 | :cols wrlong t1, dst ' fill with 4 blanks
|
|
3044(0135) 04 18 FC 80 | add dst, #4
|
|
3048(0136) 34 21 FC E4 | djnz cols, #:cols ' for all columns
|
|
304C(0137) 33 23 FC E4 | djnz rows, #:rows ' for all rows
|
|
3050(0138) 3A 7B FE 5C | call #home
|
|
3054(0139) | ff_ret
|
|
3054(0139) 00 00 7C 5C | ret
|
|
3058(013A) | home
|
|
3058(013A) 00 3A FC A0 | mov cur_x, #0
|
|
305C(013B) 00 3C FC A0 | mov new_x, #0
|
|
3060(013C) 00 3E FC A0 | mov cur_y, #0
|
|
3064(013D) | home_ret
|
|
3064(013D) 00 00 7C 5C | ret
|
|
3068(013E) | can
|
|
3068(013E) 09 18 BC A0 | mov dst, cur_ptr
|
|
306C(013F) 06 20 BC A0 | mov cols, screen_w
|
|
3070(0140) 1E 20 BC 87 | sub cols, new_x WZ, WC
|
|
3074(0141) 49 01 78 5C | if_be jmp #can_ret
|
|
3078(0142) 1A 68 BC A0 | mov t1, x00200020
|
|
307C(0143) 26 68 BC 68 | or t1, color
|
|
3080(0144) 10 68 FC 24 | rol t1, #16
|
|
3084(0145) 26 68 BC 68 | or t1, color
|
|
3088(0146) 0C 68 3C 04 | :fill wrword t1, dst
|
|
308C(0147) 02 18 FC 80 | add dst, #2
|
|
3090(0148) 46 21 FC E4 | djnz cols, #:fill
|
|
3094(0149) | can_ret
|
|
3094(0149) 00 00 7C 5C | ret
|
|
3098(014A) | emit
|
|
3098(014A) 06 3C 3C 87 | cmp new_x, screen_w WZ, WC ' reached end of line?
|
|
309C(014B) 50 01 70 5C | if_b jmp #:in_bounds
|
|
30A0(014C) 20 42 7C 62 | test flags, #flag_decawm WZ ' auto wrap mode active?
|
|
30A4(014D) 59 01 68 5C | if_z jmp #emit_ret ' no, don't emit character
|
|
30A8(014E) C4 8C FD 5C | call #cr
|
|
30AC(014F) D7 04 FE 5C | call #lf
|
|
30B0(0150) 1E 3A BC A0 | :in_bounds mov cur_x, new_x
|
|
30B4(0151) 5A C3 FE 5C | call #calc_cursor
|
|
30B8(0152) 26 02 BC 68 | or cmd, color
|
|
30BC(0153) 02 40 7C 62 | test attr, #attr_underline WZ
|
|
30C0(0154) 80 02 FC 7C | muxnz cmd, #$80
|
|
30C4(0155) 09 02 3C 04 | wrword cmd, cur_ptr ' write character to screen RAM
|
|
30C8(0156) 1D 3C BC A0 | mov new_x, cur_x
|
|
30CC(0157) 01 3C FC 80 | add new_x, #1
|
|
30D0(0158) 02 12 FC 80 | add cur_ptr, #2
|
|
30D4(0159) | emit_ret
|
|
30D4(0159) 00 00 7C 5C | ret
|
|
30D8(015A) | calc_cursor
|
|
30D8(015A) 1F 68 BC A0 | mov t1, cur_y ' cursor row
|
|
30DC(015B) 06 6A BC A0 | mov t2, screen_w ' * screen width
|
|
30E0(015C) 79 FF FE 5C | call #mul16x16
|
|
30E4(015D) 35 12 BC A0 | mov cur_ptr, t2 ' product in cur_ptr
|
|
30E8(015E) 1E 12 BC 80 | add cur_ptr, new_x ' + new cursor column
|
|
30EC(015F) 01 12 FC 2C | shl cur_ptr, #1 ' * 2
|
|
30F0(0160) 02 12 BC 80 | add cur_ptr, screen_ptr ' + screen buffer address
|
|
30F4(0161) | calc_cursor_ret
|
|
30F4(0161) 00 00 7C 5C | ret
|
|
30F8(0162) | enable_cursor
|
|
30F8(0162) 43 08 7C EC | tjz cursor_ptr, #cmdloop
|
|
30FC(0163) 01 42 7C 62 | test flags, #flag_deccm WZ ' cursor enabled?
|
|
3100(0164) 00 68 E8 A0 | if_z mov t1, #%000 ' cursor off
|
|
3104(0165) 06 68 D4 A0 | if_nz mov t1, #%110 ' cursor on, blink slow
|
|
3108(0166) 02 08 FC 80 | add cursor_ptr, #2 ' cursor control
|
|
310C(0167) 04 68 3C 00 | wrbyte t1, cursor_ptr
|
|
3110(0168) 02 08 FC 84 | sub cursor_ptr, #2
|
|
3114(0169) 43 00 7C 5C | jmp #cmdloop
|
|
3118(016A) | set_color
|
|
3118(016A) 04 40 7C 62 | test attr, #attr_inverse WZ
|
|
311C(016B) 70 01 68 5C | if_z jmp #:default
|
|
3120(016C) | :inverse
|
|
3120(016C) 24 4C BC A0 | mov color, fgcol ' compose inverse color
|
|
3124(016D) 04 4C FC 2C | shl color, #4
|
|
3128(016E) 25 4C BC 68 | or color, bgcol
|
|
312C(016F) 73 01 7C 5C | jmp #:cont
|
|
3130(0170) | :default
|
|
3130(0170) 25 4C BC A0 | mov color, bgcol ' compose default color
|
|
3134(0171) 04 4C FC 2C | shl color, #4
|
|
3138(0172) 24 4C BC 68 | or color, fgcol
|
|
313C(0173) | :cont
|
|
313C(0173) 01 40 7C 62 | test attr, #attr_highlite WZ
|
|
3140(0174) 08 4C FC 7C | muxnz color, #$08
|
|
3144(0175) 08 40 7C 62 | test attr, #attr_blinking WZ
|
|
3148(0176) 80 4C FC 7C | muxnz color, #$80
|
|
314C(0177) 08 4C FC 2C | shl color, #8 ' in bits 15..8
|
|
3150(0178) 43 00 7C 5C | jmp #cmdloop
|
|
3154(0179) | mul16x16
|
|
3154(0179) 10 68 FC 2C | shl t1, #16 ' multiplicand in bits 31..16
|
|
3158(017A) 10 6C FC A0 | mov t3, #16 ' loop 16 times
|
|
315C(017B) 01 6A FC 29 | shr t2, #1 WC ' get initial multiplier bit in carry
|
|
3160(017C) 34 6A B0 81 | :loop if_c add t2, t1 WC ' if carry set, add multiplicand to product
|
|
3164(017D) 01 6A FC 31 | rcr t2, #1 WC ' next multiplier bit to carry, shift product
|
|
3168(017E) 7C 6D FC E4 | djnz t3, #:loop ' until done
|
|
316C(017F) | mul16x16_ret
|
|
316C(017F) 00 00 7C 5C | ret
|
|
3170(0180) | lmm_loop
|
|
3170(0180) 12 04 BF 08 | rdlong :op1, lmm_pc
|
|
3174(0181) 04 24 FC 80 | add lmm_pc, #4
|
|
3178(0182) 00 00 00 00 | :op1 nop
|
|
317C(0183) 12 0A BF 08 | rdlong :op2, lmm_pc
|
|
3180(0184) 04 24 FC 80 | add lmm_pc, #4
|
|
3184(0185) 00 00 00 00 | :op2 nop
|
|
3188(0186) 12 10 BF 08 | rdlong :op3, lmm_pc
|
|
318C(0187) 04 24 FC 80 | add lmm_pc, #4
|
|
3190(0188) 00 00 00 00 | :op3 nop
|
|
3194(0189) 12 16 BF 08 | rdlong :op4, lmm_pc
|
|
3198(018A) 04 24 FC 80 | add lmm_pc, #4
|
|
319C(018B) 00 00 00 00 | :op4 nop
|
|
31A0(018C) 80 01 7C 5C | jmp #lmm_loop
|
|
31A4(018D) | fit $1f0
|
|
31A4(018D) | There are 99 ($063) Longs left in the cog
|
|
31A4(018D) 6C 00 | control_table word do_nul, do_soh, do_stx, do_etx, do_eot, do_enq, do_ack, do_bel
|
|
31A6(018D) 6C 00 |
|
|
31A8(018E) 6C 00 |
|
|
31AA(018E) 6C 00 |
|
|
31AC(018F) 6C 00 |
|
|
31AE(018F) 6C 00 |
|
|
31B0(0190) 6C 00 |
|
|
31B2(0190) 6C 00 |
|
|
31B4(0191) 6F 00 | word do_bs, do_ht, do_lf, do_vt, do_ff, do_cr, do_so, do_si
|
|
31B6(0191) 71 00 |
|
|
31B8(0192) 73 00 |
|
|
31BA(0192) 75 00 |
|
|
31BC(0193) 77 00 |
|
|
31BE(0193) 6D 00 |
|
|
31C0(0194) 79 00 |
|
|
31C2(0194) 7A 00 |
|
|
31C4(0195) 6C 00 | word do_dle, do_dc1, do_dc2, do_dc3, do_dc4, do_nak, do_syn, do_etb
|
|
31C6(0195) 6C 00 |
|
|
31C8(0196) 6C 00 |
|
|
31CA(0196) 6C 00 |
|
|
31CC(0197) 6C 00 |
|
|
31CE(0197) 6C 00 |
|
|
31D0(0198) 6C 00 |
|
|
31D2(0198) 6C 00 |
|
|
31D4(0199) 7B 00 | word do_can, do_em, do_sub, do_esc, do_fs, do_gs, do_rs, do_us
|
|
31D6(0199) 6C 00 |
|
|
31D8(019A) 6C 00 |
|
|
31DA(019A) 7D 00 |
|
|
31DC(019B) 6C 00 |
|
|
31DE(019B) 6C 00 |
|
|
31E0(019C) 6C 00 |
|
|
31E2(019C) 6C 00 |
|
|
31E4(019D) 5A 32 | csi_cmds word @@@do_insert_char ' <ESC>[...@
|
|
31E6(019D) D4 32 | word @@@do_cursor_up ' <ESC>[...A
|
|
31E8(019E) E8 32 | word @@@do_cursor_down ' <ESC>[...B
|
|
31EA(019E) F8 32 | word @@@do_cursor_left ' <ESC>[...C
|
|
31EC(019F) 0C 33 | word @@@do_cursor_right ' <ESC>[...D
|
|
31EE(019F) 1C 33 | word @@@do_rows_up ' <ESC>[...E
|
|
31F0(01A0) 34 33 | word @@@do_rows_down ' <ESC>[...F
|
|
31F2(01A0) 6C 33 | word @@@do_cursor_column ' <ESC>[...G
|
|
31F4(01A1) 48 33 | word @@@do_cursor_address ' <ESC>[...H
|
|
31F6(01A1) 43 00 | word cmdloop ' I unused?
|
|
31F8(01A2) 7C 33 | word @@@do_clear_screen ' <ESC>[...J
|
|
31FA(01A2) DC 33 | word @@@do_clear_row ' <ESC>[...K
|
|
31FC(01A3) 50 34 | word @@@do_insert_line ' <ESC>[...L
|
|
31FE(01A3) C4 34 | word @@@do_delete_line ' <ESC>[...M
|
|
3200(01A4) 43 00 | word cmdloop ' N unused?
|
|
3202(01A4) 43 00 | word cmdloop ' O unused?
|
|
3204(01A5) 50 35 | word @@@do_delete_char ' P unused?
|
|
3206(01A5) 43 00 | word cmdloop ' Q unused?
|
|
3208(01A6) 43 00 | word cmdloop ' R unused?
|
|
320A(01A6) 43 00 | word cmdloop ' S unused?
|
|
320C(01A7) 43 00 | word cmdloop ' T unused?
|
|
320E(01A7) 43 00 | word cmdloop ' U unused?
|
|
3210(01A8) 43 00 | word cmdloop ' V unused?
|
|
3212(01A8) 43 00 | word cmdloop ' W unused?
|
|
3214(01A9) C8 35 | word @@@do_blank_chars ' <ESC>[...X
|
|
3216(01A9) 43 00 | word cmdloop ' Y unused?
|
|
3218(01AA) 43 00 | word cmdloop ' Z unused?
|
|
321A(01AA) 43 00 | word cmdloop ' [ unused
|
|
321C(01AB) 43 00 | word cmdloop ' \ unused
|
|
321E(01AB) 43 00 | word cmdloop ' ] unused
|
|
3220(01AC) 43 00 | word cmdloop ' ^ unused
|
|
3222(01AC) 43 00 | word cmdloop ' _ unused
|
|
3224(01AD) 6C 33 | word @@@do_cursor_column ' <ESC>[...` alternate form for <ESC>[...G
|
|
3226(01AD) 43 00 | word cmdloop ' a unused?
|
|
3228(01AE) 43 00 | word cmdloop ' b unused?
|
|
322A(01AE) 43 00 | word cmdloop ' c unused?
|
|
322C(01AF) 43 00 | word cmdloop ' d unused?
|
|
322E(01AF) 43 00 | word cmdloop ' e unused?
|
|
3230(01B0) 48 33 | word @@@do_cursor_address ' <ESC>[...f alternate form for <ESC>[...H
|
|
3232(01B0) 43 00 | word cmdloop ' g unused?
|
|
3234(01B1) 08 36 | word @@@do_flag_set ' h unused?
|
|
3236(01B1) 43 00 | word cmdloop ' i unused?
|
|
3238(01B2) 43 00 | word cmdloop ' j unused?
|
|
323A(01B2) 43 00 | word cmdloop ' k unused?
|
|
323C(01B3) 78 36 | word @@@do_flag_res ' h unused?
|
|
323E(01B3) E8 36 | word @@@do_mode_attributes ' <ESC>[...m
|
|
3240(01B4) 43 00 | word cmdloop ' n unused?
|
|
3242(01B4) 43 00 | word cmdloop ' o unused?
|
|
3244(01B5) 43 00 | word cmdloop ' p unused?
|
|
3246(01B5) 43 00 | word cmdloop ' q unused?
|
|
3248(01B6) 28 38 | word @@@do_scroll_range ' <ESC>[...r
|
|
324A(01B6) 78 38 | word @@@do_save_cursor ' <ESC>[?...s
|
|
324C(01B7) 43 00 | word cmdloop ' t unused?
|
|
324E(01B7) 8C 38 | word @@@do_restore_cursor ' <ESC>[?...u
|
|
3250(01B8) 43 00 | word cmdloop ' v unused?
|
|
3252(01B8) 43 00 | word cmdloop ' w unused?
|
|
3254(01B9) 43 00 | word cmdloop ' x unused?
|
|
3256(01B9) 43 00 | word cmdloop ' y unused?
|
|
3258(01BA) 43 00 | word cmdloop ' z unused?
|
|
325A(01BA) | do_insert_char
|
|
325A(01BA) B8 74 FD 5C | call #non_zero_args
|
|
3260(01BC) 06 3C 3C 87 | cmp new_x, screen_w WZ, WC
|
|
3264(01BD) 43 00 4C 5C | if_ae jmp #cmdloop
|
|
3268(01BE) 1F 68 BC A0 | :loop mov t1, cur_y
|
|
326C(01BF) 06 6A BC A0 | mov t2, screen_w
|
|
3270(01C0) 79 FF FE 5C | call #mul16x16
|
|
3274(01C1) 1E 6A BC 80 | add t2, new_x
|
|
3278(01C2) 01 6A FC 2C | shl t2, #1
|
|
327C(01C3) 02 6A BC 80 | add t2, screen_ptr
|
|
3280(01C4) 35 18 BC A0 | mov dst, t2
|
|
3284(01C5) 02 18 FC 80 | add dst, #2
|
|
3288(01C6) 35 1A BC A0 | mov src, t2
|
|
328C(01C7) 06 20 BC A0 | mov cols, screen_w
|
|
3290(01C8) 1E 20 BC 84 | sub cols, new_x
|
|
3294(01C9) 01 20 FC 87 | sub cols, #1 WZ, WC
|
|
3298(01CA) 28 24 F8 80 | if_be add lmm_pc, #4*(:blank - $ - 1)
|
|
329C(01CB) 0D 1E BC 04 | :insert rdword data, src
|
|
32A0(01CC) 02 1A FC 80 | add src, #2
|
|
32A4(01CD) 0C 1E 3C 04 | wrword data, dst
|
|
32A8(01CE) 02 18 FC 80 | add dst, #2
|
|
32AC(01CF) 01 20 FC 86 | sub cols, #1 WZ
|
|
32B0(01D0) 18 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :insert)
|
|
32B4(01D1) 1A 68 BC A0 | mov t1, x00200020
|
|
32B8(01D2) 26 68 BC 68 | or t1, color
|
|
32BC(01D3) 10 68 FC 24 | rol t1, #16
|
|
32C0(01D4) 26 68 BC 68 | or t1, color
|
|
32C4(01D5) 35 68 3C 04 | :blank wrword t1, t2
|
|
32C8(01D6) 01 56 FC 86 | sub csi_args, #1 WZ
|
|
32CC(01D7) 68 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :loop)
|
|
32D0(01D8) 43 00 7C 5C | jmp #cmdloop
|
|
32D4(01D9) | do_cursor_up
|
|
32D4(01D9) B8 74 FD 5C | call #non_zero_args
|
|
32D8(01DA) 03 59 FE 5C | :loop call #vt
|
|
32DC(01DB) 01 56 FC 86 | sub csi_args, #1 WZ
|
|
32E0(01DC) 0C 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :loop)
|
|
32E4(01DD) 43 00 7C 5C | jmp #cmdloop
|
|
32E8(01DE) | do_cursor_down
|
|
32E8(01DE) B8 74 FD 5C | call #non_zero_args
|
|
32EC(01DF) D7 04 FE 5C | :loop call #lf
|
|
32F0(01E0) DF 57 FC E4 | djnz csi_args, #:loop
|
|
32F4(01E1) 43 00 7C 5C | jmp #cmdloop
|
|
32F8(01E2) | do_cursor_left
|
|
32F8(01E2) B8 74 FD 5C | call #non_zero_args
|
|
32FC(01E3) 1E 3A BC A0 | mov cur_x, new_x
|
|
3300(01E4) 2B 3A BC 85 | sub cur_x, csi_args WC
|
|
3304(01E5) 00 3A F0 A0 | if_c mov cur_x, #0
|
|
3308(01E6) 38 00 7C 5C | jmp #validate_cursor
|
|
330C(01E7) | do_cursor_right
|
|
330C(01E7) B8 74 FD 5C | call #non_zero_args
|
|
3310(01E8) 1E 3A BC A0 | mov cur_x, new_x
|
|
3314(01E9) 2B 3A BC 80 | add cur_x, csi_args
|
|
3318(01EA) 38 00 7C 5C | jmp #validate_cursor
|
|
331C(01EB) | do_rows_up
|
|
331C(01EB) B8 74 FD 5C | call #non_zero_args
|
|
3320(01EC) 00 3A FC A0 | mov cur_x, #0
|
|
3324(01ED) 00 3C FC A0 | mov new_x, #0
|
|
3328(01EE) 2B 3E BC 85 | sub cur_y, csi_args WC
|
|
332C(01EF) 00 3E F0 A0 | if_c mov cur_y, #0
|
|
3330(01F0) 38 00 7C 5C | jmp #validate_cursor
|
|
3334(01F1) | do_rows_down
|
|
3334(01F1) B8 74 FD 5C | call #non_zero_args
|
|
3338(01F2) 00 3A FC A0 | mov cur_x, #0
|
|
333C(01F3) 00 3C FC A0 | mov new_x, #0
|
|
3340(01F4) 2B 3E BC 80 | add cur_y, csi_args
|
|
3344(01F5) 38 00 7C 5C | jmp #validate_cursor
|
|
3348(01F6) | do_cursor_address
|
|
3348(01F6) 00 54 7C 86 | cmp csi_argf, #0 WZ ' nor arguments at all?
|
|
334C(01F7) 3A 7B EA 5C | if_z call #home
|
|
3350(01F8) 43 00 68 5C | if_z jmp #cmdloop
|
|
3354(01F9) B8 74 FD 5C | call #non_zero_args
|
|
3358(01FA) 2B 3E BC A0 | mov cur_y, csi_args
|
|
335C(01FB) 01 3E FC 84 | sub cur_y, #1
|
|
3360(01FC) 01 52 7C 87 | cmp csi_argc, #1 WZ, WC ' the caller specified just a row?
|
|
3364(01FD) 38 00 78 5C | if_be jmp #validate_cursor
|
|
3368(01FE) BB 86 FD 5C | call #shift_csi_args
|
|
336C(01FF) | do_cursor_column
|
|
336C(01FF) B8 74 FD 5C | call #non_zero_args
|
|
3370(0200) 2B 3A BC A0 | mov cur_x, csi_args
|
|
3374(0201) 01 3A FC 84 | sub cur_x, #1
|
|
3378(0202) 38 00 7C 5C | jmp #validate_cursor
|
|
337C(0203) | do_clear_screen
|
|
337C(0203) 5A C3 FE 5C | call #calc_cursor
|
|
3380(0204) 00 56 7C 86 | cmp csi_args, #0 WZ ' cursor to end of screen?
|
|
3384(0205) 0C 24 D4 80 | if_nz add lmm_pc, #4*(:not_0 - $ - 1)
|
|
3388(0206) 09 18 BC A0 | mov dst, cur_ptr
|
|
338C(0207) 03 1C BC A0 | mov end, screen_end
|
|
3390(0208) 24 24 FC 80 | add lmm_pc, #4*(:fill - $ - 1)
|
|
3394(0209) 01 56 7C 86 | :not_0 cmp csi_args, #1 WZ ' start of screen to cursor?
|
|
3398(020A) 0C 24 D4 80 | if_nz add lmm_pc, #4*(:not_1 - $ - 1)
|
|
339C(020B) 02 18 BC A0 | mov dst, screen_ptr
|
|
33A0(020C) 09 1C BC A0 | mov end, cur_ptr
|
|
33A4(020D) 10 24 FC 80 | add lmm_pc, #4*(:fill - $ - 1)
|
|
33A8(020E) 02 56 7C 86 | :not_1 cmp csi_args, #2 WZ ' entire screen?
|
|
33AC(020F) 43 00 54 5C | if_nz jmp #cmdloop ' invalid argument
|
|
33B0(0210) 02 18 BC A0 | mov dst, screen_ptr ' default = entire screen
|
|
33B4(0211) 03 1C BC A0 | mov end, screen_end
|
|
33B8(0212) 1A 68 BC A0 | :fill mov t1, x00200020
|
|
33BC(0213) 26 68 BC 68 | or t1, color
|
|
33C0(0214) 10 68 FC 24 | rol t1, #16
|
|
33C4(0215) 26 68 BC 68 | or t1, color
|
|
33C8(0216) 0C 68 3C 04 | :loop wrword t1, dst ' fill a word
|
|
33CC(0217) 02 18 FC 80 | add dst, #2
|
|
33D0(0218) 0E 18 3C 87 | cmp dst, end WZ, WC
|
|
33D4(0219) 10 24 F0 84 | if_b sub lmm_pc, #4*($ + 1 - :loop)
|
|
33D8(021A) 43 00 7C 5C | jmp #cmdloop
|
|
33DC(021B) | do_clear_row
|
|
33DC(021B) 5A C3 FE 5C | call #calc_cursor
|
|
33E0(021C) 00 56 7C 86 | cmp csi_args, #0 WZ ' cursor to end of row?
|
|
33E4(021D) 14 24 D4 80 | if_nz add lmm_pc, #4*(:not_0 - $ - 1)
|
|
33E8(021E) 09 18 BC A0 | mov dst, cur_ptr ' default = cursor to end of row
|
|
33EC(021F) 09 1C BC A0 | mov end, cur_ptr
|
|
33F0(0220) 1E 1C BC 84 | sub end, new_x
|
|
33F4(0221) 06 1C BC 80 | add end, screen_w ' end of row
|
|
33F8(0222) 30 24 FC 80 | add lmm_pc, #4*(:fill - $ - 1)
|
|
33FC(0223) 01 56 7C 86 | :not_0 cmp csi_args, #1 WZ ' start of row to cursor?
|
|
3400(0224) 10 24 D4 80 | if_nz add lmm_pc, #4*(:not_1 - $ - 1)
|
|
3404(0225) 09 18 BC A0 | mov dst, cur_ptr
|
|
3408(0226) 1E 18 BC 84 | sub dst, new_x ' start of row
|
|
340C(0227) 09 1C BC A0 | mov end, cur_ptr ' to cursor
|
|
3410(0228) 18 24 FC 80 | add lmm_pc, #4*(:fill - $ - 1)
|
|
3414(0229) 02 56 7C 86 | :not_1 cmp csi_args, #2 WZ ' entire row?
|
|
3418(022A) 43 00 54 5C | if_nz jmp #cmdloop ' invalid argument
|
|
341C(022B) 09 18 BC A0 | mov dst, cur_ptr
|
|
3420(022C) 1E 18 BC 84 | sub dst, new_x ' start of row
|
|
3424(022D) 0C 1C BC A0 | mov end, dst
|
|
3428(022E) 06 1C BC 80 | add end, screen_w ' end of row
|
|
342C(022F) 1A 68 BC A0 | :fill mov t1, x00200020
|
|
3430(0230) 26 68 BC 68 | or t1, color
|
|
3434(0231) 10 68 FC 24 | rol t1, #16
|
|
3438(0232) 26 68 BC 68 | or t1, color
|
|
343C(0233) 0C 68 3C 04 | :loop wrword t1, dst ' fill a word
|
|
3440(0234) 02 18 FC 80 | add dst, #2
|
|
3444(0235) 0E 18 3C 87 | cmp dst, end WZ, WC
|
|
3448(0236) 10 24 F0 84 | if_b sub lmm_pc, #4*($ + 1 - :loop)
|
|
344C(0237) 43 00 7C 5C | jmp #cmdloop
|
|
3450(0238) | do_insert_line
|
|
3450(0238) B8 74 FD 5C | call #non_zero_args
|
|
3454(0239) 03 18 BC A0 | :loop mov dst, screen_end
|
|
3458(023A) 03 1A BC A0 | mov src, screen_end
|
|
345C(023B) 06 1A BC 84 | sub src, screen_w
|
|
3460(023C) 08 22 BC A0 | mov rows, screen_h ' screen rows
|
|
3464(023D) 1F 22 BC 84 | sub rows, cur_y ' - cursor row
|
|
3468(023E) 01 22 FC 87 | sub rows, #1 WZ, WC ' - 1
|
|
346C(023F) 24 24 F8 80 | if_be add lmm_pc, #4*(:fill - $ - 1) ' nothing left to move?
|
|
3470(0240) 07 20 BC A0 | :rows mov cols, screen_w2 ' columns = screen width / 2
|
|
3474(0241) 04 1A FC 84 | :cols sub src, #4
|
|
3478(0242) 0D 1E BC 08 | rdlong data, src
|
|
347C(0243) 04 18 FC 84 | sub dst, #4
|
|
3480(0244) 0C 1E 3C 08 | wrlong data, dst
|
|
3484(0245) 01 20 FC 86 | sub cols, #1 WZ
|
|
3488(0246) 18 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :cols)
|
|
348C(0247) 01 22 FC 86 | sub rows, #1 WZ
|
|
3490(0248) 24 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :rows)
|
|
3494(0249) 1A 68 BC A0 | :fill mov t1, x00200020
|
|
3498(024A) 26 68 BC 68 | or t1, color
|
|
349C(024B) 10 68 FC 24 | rol t1, #16
|
|
34A0(024C) 26 68 BC 68 | or t1, color
|
|
34A4(024D) 07 20 BC A0 | mov cols, screen_w2 ' columns = screen width / 2
|
|
34A8(024E) 04 18 FC 84 | :blank sub dst, #4
|
|
34AC(024F) 0C 68 3C 08 | wrlong t1, dst
|
|
34B0(0250) 01 20 FC 86 | sub cols, #1 WZ
|
|
34B4(0251) 10 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :blank) ' for all columns
|
|
34B8(0252) 01 56 FC 86 | sub csi_args, #1 WZ ' more lines to insert?
|
|
34BC(0253) 6C 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :loop)
|
|
34C0(0254) 43 00 7C 5C | jmp #cmdloop
|
|
34C4(0255) | do_delete_line
|
|
34C4(0255) B8 74 FD 5C | call #non_zero_args
|
|
34C8(0256) 1F 68 BC A0 | :loop mov t1, cur_y
|
|
34CC(0257) 06 6A BC A0 | mov t2, screen_w
|
|
34D0(0258) 79 FF FE 5C | call #mul16x16
|
|
34D4(0259) 01 6A FC 2C | shl t2, #1
|
|
34D8(025A) 02 6A BC 80 | add t2, screen_ptr ' cursor row address
|
|
34DC(025B) 35 18 BC A0 | mov dst, t2
|
|
34E0(025C) 35 1A BC A0 | mov src, t2
|
|
34E4(025D) 06 1A BC 80 | add src, screen_w ' one row down
|
|
34E8(025E) 06 1A BC 80 | add src, screen_w
|
|
34EC(025F) 08 22 BC A0 | mov rows, screen_h ' screen rows
|
|
34F0(0260) 1F 22 BC 84 | sub rows, cur_y ' - cursor row
|
|
34F4(0261) 01 22 FC 87 | sub rows, #1 WZ, WC ' - 1
|
|
34F8(0262) 24 24 F8 80 | if_be add lmm_pc, #4*(:fill - $ - 1) ' nothing left to move?
|
|
34FC(0263) 07 20 BC A0 | :rows mov cols, screen_w2 ' columns = screen width / 2
|
|
3500(0264) 0D 1E BC 08 | :cols rdlong data, src
|
|
3504(0265) 04 1A FC 80 | add src, #4
|
|
3508(0266) 0C 1E 3C 08 | wrlong data, dst
|
|
350C(0267) 04 18 FC 80 | add dst, #4
|
|
3510(0268) 01 20 FC 86 | sub cols, #1 WZ
|
|
3514(0269) 18 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :cols)
|
|
3518(026A) 01 22 FC 86 | sub rows, #1 WZ
|
|
351C(026B) 24 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :rows)
|
|
3520(026C) 1A 68 BC A0 | :fill mov t1, x00200020
|
|
3524(026D) 26 68 BC 68 | or t1, color
|
|
3528(026E) 10 68 FC 24 | rol t1, #16
|
|
352C(026F) 26 68 BC 68 | or t1, color
|
|
3530(0270) 07 20 BC A0 | mov cols, screen_w2 ' columns = screen width / 2
|
|
3534(0271) 0C 68 3C 08 | :blank wrlong t1, dst
|
|
3538(0272) 04 18 FC 80 | add dst, #4
|
|
353C(0273) 01 20 FC 86 | sub cols, #1 WZ
|
|
3540(0274) 10 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :blank) ' for all columns
|
|
3544(0275) 01 56 FC 86 | sub csi_args, #1 WZ ' more lines to insert?
|
|
3548(0276) 84 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :loop)
|
|
354C(0277) 43 00 7C 5C | jmp #cmdloop
|
|
3550(0278) | do_delete_char
|
|
3550(0278) B8 74 FD 5C | call #non_zero_args
|
|
3554(0279) 06 3C 3C 87 | cmp new_x, screen_w WZ, WC
|
|
3558(027A) 43 00 4C 5C | if_ae jmp #cmdloop ' can't delete beyond last column
|
|
355C(027B) 1F 68 BC A0 | :loop mov t1, cur_y
|
|
3560(027C) 06 6A BC A0 | mov t2, screen_w
|
|
3564(027D) 79 FF FE 5C | call #mul16x16
|
|
3568(027E) 1E 6A BC 80 | add t2, new_x
|
|
356C(027F) 01 6A FC 2C | shl t2, #1
|
|
3570(0280) 02 6A BC 80 | add t2, screen_ptr
|
|
3574(0281) 35 18 BC A0 | mov dst, t2
|
|
3578(0282) 35 1A BC A0 | mov src, t2
|
|
357C(0283) 02 1A FC 80 | add src, #2
|
|
3580(0284) 06 20 BC A0 | mov cols, screen_w
|
|
3584(0285) 1E 20 BC 84 | sub cols, new_x
|
|
3588(0286) 01 20 FC 87 | sub cols, #1 WZ, WC
|
|
358C(0287) 18 24 F8 80 | if_be add lmm_pc, #4*(:blank - $ - 1) ' new_x is beyond the last column
|
|
3590(0288) 0D 1E BC 04 | :insert rdword data, src
|
|
3594(0289) 02 1A FC 80 | add src, #2
|
|
3598(028A) 0C 1E 3C 04 | wrword data, dst
|
|
359C(028B) 02 18 FC 80 | add dst, #2
|
|
35A0(028C) 01 20 FC 86 | sub cols, #1 WZ
|
|
35A4(028D) 18 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :insert)
|
|
35A8(028E) 1A 68 BC A0 | :blank mov t1, x00200020
|
|
35AC(028F) 26 68 BC 68 | or t1, color
|
|
35B0(0290) 10 68 FC 24 | rol t1, #16
|
|
35B4(0291) 26 68 BC 68 | or t1, color
|
|
35B8(0292) 0C 68 3C 04 | wrword t1, dst ' clear the last character in the row
|
|
35BC(0293) 01 56 FC 86 | sub csi_args, #1 WZ
|
|
35C0(0294) 68 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :loop)
|
|
35C4(0295) 43 00 7C 5C | jmp #cmdloop
|
|
35C8(0296) | do_blank_chars
|
|
35C8(0296) B8 74 FD 5C | call #non_zero_args
|
|
35CC(0297) 09 18 BC A0 | mov dst, cur_ptr
|
|
35D0(0298) 06 20 BC A0 | mov cols, screen_w
|
|
35D4(0299) 1E 20 BC 87 | sub cols, new_x WZ, WC
|
|
35D8(029A) 43 00 78 5C | if_be jmp #cmdloop
|
|
35DC(029B) 1A 68 BC A0 | mov t1, x00200020
|
|
35E0(029C) 26 68 BC 68 | or t1, color
|
|
35E4(029D) 10 68 FC 24 | rol t1, #16
|
|
35E8(029E) 26 68 BC 68 | or t1, color
|
|
35EC(029F) 0C 68 3C 04 | :fill wrword t1, dst
|
|
35F0(02A0) 02 18 FC 80 | add dst, #2
|
|
35F4(02A1) 01 56 FC 86 | sub csi_args, #1 WZ
|
|
35F8(02A2) 43 00 68 5C | if_z jmp #cmdloop
|
|
35FC(02A3) 01 20 FC 86 | sub cols, #1 WZ
|
|
3600(02A4) 18 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :fill)
|
|
3604(02A5) 43 00 7C 5C | jmp #cmdloop
|
|
3608(02A6) | do_flag_set
|
|
3608(02A6) | :loop
|
|
3608(02A6) 2B 02 BC A0 | mov cmd, csi_args
|
|
360C(02A7) 01 66 7C 86 | cmp question_mark, #1 WZ ' <ESC>[? sequence?
|
|
3610(02A8) 1C 24 E8 80 | if_z add lmm_pc, #4*(:ques - $ - 1)
|
|
3614(02A9) 03 02 7C 86 | cmp cmd, #3 WZ ' <ESC>[3h - display control characters
|
|
3618(02AA) 00 43 E8 68 | if_z or flags, #flag_ctrl
|
|
361C(02AB) 04 02 7C 86 | cmp cmd, #4 WZ ' <ESC>[4h - set insert mode
|
|
3620(02AC) 02 42 E8 68 | if_z or flags, #flag_decim
|
|
3624(02AD) 14 02 7C 86 | cmp cmd, #20 WZ ' <ESC>[20h - set auto CR mode
|
|
3628(02AE) 08 42 E8 68 | if_z or flags, #flag_deccr
|
|
362C(02AF) 30 24 FC 80 | add lmm_pc, #4*(:next - $ - 1)
|
|
3630(02B0) | :ques
|
|
3630(02B0) 01 02 7C 86 | cmp cmd, #1 WZ ' <ESC>[?1h - enable cursor keys
|
|
3634(02B1) 10 42 E8 68 | if_z or flags, #flag_decck
|
|
3638(02B2) 05 02 7C 86 | cmp cmd, #5 WZ ' <ESC>[?5h - inverse terminal on
|
|
363C(02B3) 01 38 E8 68 | if_z or inverse, #1
|
|
3640(02B4) 06 02 7C 86 | cmp cmd, #6 WZ ' <ESC>[?6h - enable origin mode
|
|
3644(02B5) 04 42 E8 68 | if_z or flags, #flag_decom
|
|
3648(02B6) 07 02 7C 86 | cmp cmd, #7 WZ ' <ESC>[?7h - enable auto wrap mode
|
|
364C(02B7) 20 42 E8 68 | if_z or flags, #flag_decawm
|
|
3650(02B8) 08 02 7C 86 | cmp cmd, #8 WZ ' <ESC>[?8h - enable auto repeat mode
|
|
3654(02B9) 40 42 E8 68 | if_z or flags, #flag_decarm
|
|
3658(02BA) 19 02 7C 86 | cmp cmd, #25 WZ ' <ESC>[?25h - enable cursor
|
|
365C(02BB) 01 42 E8 68 | if_z or flags, #flag_deccm
|
|
3660(02BC) | :next
|
|
3660(02BC) 00 54 7C 86 | cmp csi_argf, #0 WZ ' no arguments specified?
|
|
3664(02BD) 43 00 68 5C | if_z jmp #cmdloop
|
|
3668(02BE) BB 86 FD 5C | call #shift_csi_args
|
|
366C(02BF) 01 52 FC 86 | sub csi_argc, #1 WZ
|
|
3670(02C0) 6C 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :loop)
|
|
3674(02C1) 62 01 7C 5C | jmp #enable_cursor
|
|
3678(02C2) | do_flag_res
|
|
3678(02C2) | :loop
|
|
3678(02C2) 2B 02 BC A0 | mov cmd, csi_args
|
|
367C(02C3) 01 66 7C 86 | cmp question_mark, #1 WZ ' <ESC>[? sequence?
|
|
3680(02C4) 1C 24 E8 80 | if_z add lmm_pc, #4*(:ques - $ - 1)
|
|
3684(02C5) 03 02 7C 86 | cmp cmd, #3 WZ ' <ESC>[3l - don't display control characters
|
|
3688(02C6) 00 43 E8 64 | if_z andn flags, #flag_ctrl
|
|
368C(02C7) 04 02 7C 86 | cmp cmd, #4 WZ ' <ESC>[4l - reset insert mode
|
|
3690(02C8) 02 42 E8 64 | if_z andn flags, #flag_decim
|
|
3694(02C9) 14 02 7C 86 | cmp cmd, #20 WZ ' <ESC>[20l - reset auto CR mode
|
|
3698(02CA) 08 42 E8 64 | if_z andn flags, #flag_deccr
|
|
369C(02CB) 30 24 FC 80 | add lmm_pc, #4*(:next - $ - 1)
|
|
36A0(02CC) | :ques
|
|
36A0(02CC) 01 02 7C 86 | cmp cmd, #1 WZ ' <ESC>[?1l - disable cursor keys
|
|
36A4(02CD) 10 42 E8 64 | if_z andn flags, #flag_decck
|
|
36A8(02CE) 05 02 7C 86 | cmp cmd, #5 WZ ' <ESC>[?5l - inverse terminal off
|
|
36AC(02CF) 01 38 E8 64 | if_z andn inverse, #1
|
|
36B0(02D0) 06 02 7C 86 | cmp cmd, #6 WZ ' <ESC>[?6l - disable origin mode
|
|
36B4(02D1) 04 42 E8 64 | if_z andn flags, #flag_decom
|
|
36B8(02D2) 07 02 7C 86 | cmp cmd, #7 WZ ' <ESC>[?7l - disable auto wrap mode
|
|
36BC(02D3) 20 42 E8 64 | if_z andn flags, #flag_decawm
|
|
36C0(02D4) 08 02 7C 86 | cmp cmd, #8 WZ ' <ESC>[?8l - disable auto repeat mode
|
|
36C4(02D5) 40 42 E8 64 | if_z andn flags, #flag_decarm
|
|
36C8(02D6) 19 02 7C 86 | cmp cmd, #25 WZ ' <ESC>[?25l - disable cursor
|
|
36CC(02D7) 01 42 E8 64 | if_z andn flags, #flag_deccm
|
|
36D0(02D8) | :next
|
|
36D0(02D8) 00 54 7C 86 | cmp csi_argf, #0 WZ ' no arguments specified?
|
|
36D4(02D9) 43 00 68 5C | if_z jmp #cmdloop
|
|
36D8(02DA) BB 86 FD 5C | call #shift_csi_args
|
|
36DC(02DB) 01 52 FC 86 | sub csi_argc, #1 WZ
|
|
36E0(02DC) 6C 24 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :loop)
|
|
36E4(02DD) 62 01 7C 5C | jmp #enable_cursor
|
|
36E8(02DE) | do_mode_attributes
|
|
36E8(02DE) 2B 02 BC A0 | :get_arg mov cmd, csi_args ' get next argument
|
|
36EC(02DF) 00 02 7C 86 | cmp cmd, #0 WZ ' 0 = reset all attributes
|
|
36F0(02E0) 00 40 E8 A0 | if_z mov attr, #0
|
|
36F4(02E1) 00 4A E8 A0 | if_z mov bgcol, #%0000
|
|
36F8(02E2) 07 48 E8 A0 | if_z mov fgcol, #%0111
|
|
36FC(02E3) 01 02 7C 86 | cmp cmd, #1 WZ ' 1 = highlight on
|
|
3700(02E4) 01 40 E8 68 | if_z or attr, #attr_highlite
|
|
3704(02E5) 02 02 7C 86 | cmp cmd, #2 WZ ' 2 = highlight off
|
|
3708(02E6) 01 40 E8 64 | if_z andn attr, #attr_highlite
|
|
370C(02E7) 04 02 7C 86 | cmp cmd, #4 WZ ' 4 = underline on
|
|
3710(02E8) 02 40 E8 68 | if_z or attr, #attr_underline
|
|
3714(02E9) 05 02 7C 86 | cmp cmd, #5 WZ ' 5 = blinking on
|
|
3718(02EA) 08 40 E8 68 | if_z or attr, #attr_blinking
|
|
371C(02EB) 07 02 7C 86 | cmp cmd, #7 WZ ' 7 = inverse on
|
|
3720(02EC) 04 40 E8 68 | if_z or attr, #attr_inverse
|
|
3724(02ED) 0A 02 7C 86 | cmp cmd, #10 WZ ' 10 = primary font, no ctrl, no meta
|
|
3728(02EE) 00 43 E8 64 | if_z andn flags, #flag_ctrl
|
|
372C(02EF) 80 42 E8 64 | if_z andn flags, #flag_meta
|
|
3730(02F0) 0B 02 7C 86 | cmp cmd, #11 WZ ' 11 = alternate font, ctrl chars, low half, meta off
|
|
3734(02F1) 00 43 E8 68 | if_z or flags, #flag_ctrl
|
|
3738(02F2) 80 42 E8 64 | if_z andn flags, #flag_meta
|
|
373C(02F3) 0C 02 7C 86 | cmp cmd, #12 WZ ' 12 = alternate font, ctrl chars, low half, meta on
|
|
3740(02F4) 00 43 E8 68 | if_z or flags, #flag_ctrl
|
|
3744(02F5) 80 42 E8 68 | if_z or flags, #flag_meta
|
|
3748(02F6) 15 02 7C 86 | cmp cmd, #21 WZ ' 21 = highlight on
|
|
374C(02F7) 01 40 E8 68 | if_z or attr, #attr_highlite
|
|
3750(02F8) 16 02 7C 86 | cmp cmd, #22 WZ ' 22 = highlight on
|
|
3754(02F9) 01 40 E8 68 | if_z or attr, #attr_highlite
|
|
3758(02FA) 18 02 7C 86 | cmp cmd, #24 WZ ' 24 = underline off
|
|
375C(02FB) 02 40 E8 64 | if_z andn attr, #attr_underline
|
|
3760(02FC) 19 02 7C 86 | cmp cmd, #25 WZ ' 25 = blinking off
|
|
3764(02FD) 08 40 E8 64 | if_z andn attr, #attr_blinking
|
|
3768(02FE) 1B 02 7C 86 | cmp cmd, #27 WZ ' 27 = inverse off
|
|
376C(02FF) 04 40 E8 64 | if_z andn attr, #attr_inverse
|
|
3770(0300) 1E 02 7C 86 | cmp cmd, #30 WZ ' 30 = foreground color 0
|
|
3774(0301) 00 48 E8 A0 | if_z mov fgcol, #%0000
|
|
3778(0302) 1F 02 7C 86 | cmp cmd, #31 WZ ' 31 = foreground color 1
|
|
377C(0303) 01 48 E8 A0 | if_z mov fgcol, #%0001
|
|
3780(0304) 20 02 7C 86 | cmp cmd, #32 WZ ' 32 = foreground color 2
|
|
3784(0305) 02 48 E8 A0 | if_z mov fgcol, #%0010
|
|
3788(0306) 21 02 7C 86 | cmp cmd, #33 WZ ' 33 = foreground color 3
|
|
378C(0307) 03 48 E8 A0 | if_z mov fgcol, #%0011
|
|
3790(0308) 22 02 7C 86 | cmp cmd, #34 WZ ' 34 = foreground color 4
|
|
3794(0309) 04 48 E8 A0 | if_z mov fgcol, #%0100
|
|
3798(030A) 23 02 7C 86 | cmp cmd, #35 WZ ' 35 = foreground color 5
|
|
379C(030B) 05 48 E8 A0 | if_z mov fgcol, #%0101
|
|
37A0(030C) 24 02 7C 86 | cmp cmd, #36 WZ ' 36 = foreground color 6
|
|
37A4(030D) 06 48 E8 A0 | if_z mov fgcol, #%0110
|
|
37A8(030E) 25 02 7C 86 | cmp cmd, #37 WZ ' 37 = foreground color 7
|
|
37AC(030F) 07 48 E8 A0 | if_z mov fgcol, #%0111
|
|
37B0(0310) 26 02 7C 86 | cmp cmd, #38 WZ ' 38 = default color and underline on
|
|
37B4(0311) 07 48 E8 A0 | if_z mov fgcol, #%0111
|
|
37B8(0312) 02 40 E8 68 | if_z or attr, #attr_underline
|
|
37BC(0313) 27 02 7C 86 | cmp cmd, #39 WZ ' 39 = default color and underline off
|
|
37C0(0314) 07 48 E8 A0 | if_z mov fgcol, #%0111
|
|
37C4(0315) 02 40 E8 64 | if_z andn attr, #attr_underline
|
|
37C8(0316) 28 02 7C 86 | cmp cmd, #40 WZ ' 40 = default background
|
|
37CC(0317) 00 4A E8 A0 | if_z mov bgcol, #%0000 ' black
|
|
37D0(0318) 29 02 7C 86 | cmp cmd, #41 WZ ' 41 = background color 1
|
|
37D4(0319) 01 4A E8 A0 | if_z mov bgcol, #%0001
|
|
37D8(031A) 2A 02 7C 86 | cmp cmd, #42 WZ ' 42 = background color 2
|
|
37DC(031B) 02 4A E8 A0 | if_z mov bgcol, #%0010
|
|
37E0(031C) 2B 02 7C 86 | cmp cmd, #43 WZ ' 43 = background color 3
|
|
37E4(031D) 03 4A E8 A0 | if_z mov bgcol, #%0011
|
|
37E8(031E) 2C 02 7C 86 | cmp cmd, #44 WZ ' 44 = background color 4
|
|
37EC(031F) 04 4A E8 A0 | if_z mov bgcol, #%0100
|
|
37F0(0320) 2D 02 7C 86 | cmp cmd, #45 WZ ' 45 = background color 5
|
|
37F4(0321) 05 4A E8 A0 | if_z mov bgcol, #%0101
|
|
37F8(0322) 2E 02 7C 86 | cmp cmd, #46 WZ ' 46 = background color 6
|
|
37FC(0323) 06 4A E8 A0 | if_z mov bgcol, #%0110
|
|
3800(0324) 2F 02 7C 86 | cmp cmd, #47 WZ ' 47 = background color 7
|
|
3804(0325) 07 4A E8 A0 | if_z mov bgcol, #%0111
|
|
3808(0326) 31 02 7C 86 | cmp cmd, #49 WZ ' 49 = default background
|
|
380C(0327) 00 4A E8 A0 | if_z mov bgcol, #%0000 ' black
|
|
3810(0328) 00 54 7C 86 | cmp csi_argf, #0 WZ ' no arguments specified?
|
|
3814(0329) 43 00 68 5C | if_z jmp #cmdloop
|
|
3818(032A) BB 86 FD 5C | call #shift_csi_args
|
|
381C(032B) 01 52 FC 86 | sub csi_argc, #1 WZ
|
|
3820(032C) 3C 25 D4 84 | if_nz sub lmm_pc, #4*($ + 1 - :get_arg)
|
|
3824(032D) 6A 01 7C 5C | jmp #set_color
|
|
3828(032E) | do_scroll_range
|
|
3828(032E) 02 52 7C 87 | cmp csi_argc, #2 WZ, WC ' 2 arguments specified?
|
|
382C(032F) 0C 24 CC 80 | if_ae add lmm_pc, #4*(:set_range - $ - 1)
|
|
3830(0330) 01 14 FC A0 | mov scroll_top, #1
|
|
3834(0331) 08 16 BC A0 | mov scroll_bot, screen_h
|
|
3838(0332) 2C 24 FC 80 | add lmm_pc, #4*(:bottom_ok - $ - 1)
|
|
383C(0333) | :set_range
|
|
383C(0333) 2B 14 BC A0 | mov scroll_top, csi_args
|
|
3840(0334) 2C 16 BC A0 | mov scroll_bot, csi_args + 1
|
|
3844(0335) 0B 14 3C 87 | cmp scroll_top, scroll_bot WZ, WC ' bottom => top?
|
|
3848(0336) 0C 24 F8 80 | if_be add lmm_pc, #4*(:order_ok - $ - 1)
|
|
384C(0337) 01 14 FC A0 | mov scroll_top, #1
|
|
3850(0338) 08 16 BC A0 | mov scroll_bot, screen_h
|
|
3854(0339) 10 24 FC 80 | add lmm_pc, #4*(:bottom_ok - $ - 1)
|
|
3858(033A) | :order_ok
|
|
3858(033A) 08 16 3C 87 | cmp scroll_bot, screen_h WZ, WC ' bottom > screen height?
|
|
385C(033B) 08 24 F8 80 | if_be add lmm_pc, #4*(:bottom_ok - $ - 1)
|
|
3860(033C) 01 14 FC A0 | mov scroll_top, #1
|
|
3864(033D) 08 16 BC A0 | mov scroll_bot, screen_h
|
|
3868(033E) | :bottom_ok
|
|
3868(033E) 01 14 FC 84 | sub scroll_top, #1
|
|
386C(033F) 00 3A FC A0 | mov cur_x, #0
|
|
3870(0340) 00 3E FC A0 | mov cur_y, #0
|
|
3874(0341) 37 00 7C 5C | jmp #goto_xay
|
|
3878(0342) | do_save_cursor
|
|
3878(0342) 1D 26 BC A0 | mov cur_x_save, cur_x
|
|
387C(0343) 1E 2A BC A0 | mov new_x_save, new_x
|
|
3880(0344) 1F 28 BC A0 | mov cur_y_save, cur_y
|
|
3884(0345) 20 2C BC A0 | mov attr_save, attr
|
|
3888(0346) 43 00 7C 5C | jmp #cmdloop
|
|
388C(0347) | do_restore_cursor
|
|
388C(0347) 13 3A BC A0 | mov cur_x, cur_x_save
|
|
3890(0348) 15 3C BC A0 | mov new_x, new_x_save
|
|
3894(0349) 14 3E BC A0 | mov cur_y, cur_y_save
|
|
3898(034A) 16 40 BC A0 | mov attr, attr_save
|
|
389C(034B) 43 00 7C 5C | jmp #cmdloop
|
|
|===========================================================================|
|
|
|===========================================================================|
|
|
Spin Block start with 1 Parameters and 0 Extra Stack Longs. Method 1
|
|
PUB start(params) : okay
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
Local Parameter DBASE:0004 - params
|
|
|===========================================================================|
|
|
29 stop
|
|
Addr : 38A0: 01 : Drop Anchor
|
|
Addr : 38A1: 05 02 : Call Sub 2
|
|
30 okay := cog := COGNEW(@entry, params) + 1
|
|
Addr : 38A3: 34 : Constant 0 $FFFFFFFF
|
|
Addr : 38A4: C7 0C : Memory Op Long PBASE + ADDRESS Address = 000C
|
|
Addr : 38A6: 64 : Variable Operation Local Offset - 1 Read
|
|
Addr : 38A7: 28 : CogInit(Id, Addr, Ptr) Push
|
|
Addr : 38A8: 36 : Constant 2 $00000001
|
|
Addr : 38A9: EC : Math Op +
|
|
Addr : 38AA: 42 80 : Variable Operation Global Offset - 0 Assign Write Push
|
|
Addr : 38AC: 61 : Variable Operation Local Offset - 0 Write
|
|
Addr : 38AD: 32 : Return
|
|
|===========================================================================|
|
|
Spin Block stop with 0 Parameters and 0 Extra Stack Longs. Method 2
|
|
PUB stop : okay
|
|
|
|
Local Parameter DBASE:0000 - Result
|
|
|===========================================================================|
|
|
33 if cog
|
|
Addr : 38AE: 40 : Variable Operation Global Offset - 0 Read
|
|
Addr : 38AF: JZ Label0008
|
|
Addr : 38AF: 0A 05 : jz Address = 38B6 5
|
|
34 COGSTOP(cog~~ - 1)
|
|
Addr : 38B1: 42 9C : Variable Operation Global Offset - 0 Assign VAR~~ Post-set Push
|
|
Addr : 38B3: 36 : Constant 2 $00000001
|
|
Addr : 38B4: ED : Math Op -
|
|
Addr : 38B5: 21 : CogStop(id)
|
|
Addr : 38B6: Label0008
|
|
Addr : 38B6: Label0009
|
|
Addr : 38B6: 32 : Return
|
|
|