Use vectors for irq and nmi

This commit is contained in:
Byron Lathi
2023-11-21 18:53:17 -08:00
parent 1714a1e6da
commit 102c4dfe8a
6 changed files with 254 additions and 325 deletions

View File

@@ -1,235 +1,235 @@
@00000000 @00000000
00 80 4C 00 00 8D 13 92 8E 14 92 8D 1A 92 8E 1B 00 80 4C 00 00 8D 13 92 8E 14 92 8D 1A 92 8E 1B
92 88 B9 FF FF 8D 24 92 88 B9 FF FF 8D 23 92 8C 92 88 B9 FF FF 8D 24 92 88 B9 FF FF 8D 23 92 8C
26 92 20 FF FF A0 FF D0 E8 60 00 00 1F FD 00 00 26 92 20 FF FF A0 FF D0 E8 60 00 00 21 FD 00 00
00 00 A2 FF 9A D8 A9 00 85 04 A9 DF 85 05 20 97 00 00 A2 FF 9A D8 A9 00 85 04 A9 DF 85 05 20 99
FD 20 0C FA 20 52 F0 58 20 45 F2 6C FC FF 20 00 FD 20 0E FA 20 52 F0 58 20 47 F2 6C FC FF 20 02
FA 00 A0 00 F0 07 A9 52 A2 F0 4C 05 92 60 AD FF FA 00 A0 00 F0 07 A9 52 A2 F0 4C 05 92 60 AD FF
EF A2 00 60 8D FF EF 60 20 2C F2 C9 0A D0 05 A9 EF A2 00 60 8D FF EF 60 20 2E F2 C9 0A D0 05 A9
0D 20 2C F2 60 DA 5A A8 B2 04 AA A9 1B 20 2C F2 0D 20 2E F2 60 DA 5A A8 B2 04 AA A9 1B 20 2E F2
A9 5B 20 2C F2 98 20 2C F2 A9 3B 20 2C F2 8A 20 A9 5B 20 2E F2 98 20 2E F2 A9 3B 20 2E F2 8A 20
2C F2 A9 48 20 2C F2 7A FA 60 DA A9 1B 20 2C F2 2E F2 A9 48 20 2E F2 7A FA 60 DA A9 1B 20 2E F2
A9 63 20 2C F2 68 60 40 6C 20 02 48 A0 04 B1 04 A9 63 20 2E F2 68 60 6C 22 02 6C 20 02 48 A0 04
09 40 20 1C F2 88 B1 04 20 1C F2 88 10 F8 68 09 B1 04 09 40 20 1E F2 88 B1 04 20 1E F2 88 10 F8
01 20 1C F2 20 FC FA 60 A2 08 A9 FF 20 1C F2 C9 68 09 01 20 1E F2 20 FE FA 60 A2 08 A9 FF 20 1E
FF D0 03 CA D0 F4 60 85 0C 86 0D 20 C8 F0 92 0C F2 C9 FF D0 03 CA D0 F4 60 85 0C 86 0D 20 CA F0
A9 FF 20 1C F2 A0 01 91 0C 20 E9 FA 60 AA 20 73 92 0C A9 FF 20 1E F2 A0 01 91 0C 20 EB FA 60 AA
FC A9 FF 20 1C F2 92 0C E6 0C D0 02 E6 0D CA D0 20 75 FC A9 FF 20 1E F2 92 0C E6 0C D0 02 E6 0D
F0 60 85 0C 86 0D 20 C8 F0 C9 02 B0 12 E6 0C D0 CA D0 F0 60 85 0C 86 0D 20 CA F0 C9 02 B0 12 E6
02 E6 0C A5 0C A6 0D 20 A0 FC A9 04 20 ED F0 60 0C D0 02 E6 0C A5 0C A6 0D 20 A2 FC A9 04 20 EF
48 A9 FF 20 1C F2 A9 00 20 10 F2 A9 FF 20 1C F2 F0 60 48 A9 FF 20 1E F2 A9 00 20 12 F2 A9 FF 20
68 20 AB F0 20 C8 F0 A8 A9 FF 20 1C F2 A9 00 20 1E F2 68 20 AD F0 20 CA F0 A8 A9 FF 20 1E F2 A9
16 F2 A9 FF 20 1C F2 98 A2 00 60 A9 00 20 16 F2 00 20 18 F2 A9 FF 20 1E F2 98 A2 00 60 A9 00 20
20 68 F1 A9 FF 20 1C F2 A9 00 20 16 F2 A2 50 A9 18 F2 20 6A F1 A9 FF 20 1E F2 A9 00 20 18 F2 A2
FF 20 1C F2 CA D0 F8 60 A2 01 A9 C8 3A D0 FD CA 50 A9 FF 20 1E F2 CA D0 F8 60 A2 01 A9 C8 3A D0
D0 F8 60 85 0E 86 0F A9 FF 92 0E 20 73 FC A5 04 FD CA D0 F8 60 85 0E 86 0F A9 FF 92 0E 20 75 FC
85 10 A5 05 85 11 20 A4 FA A0 00 B1 10 91 04 C8 A5 04 85 10 A5 05 85 11 20 A6 FA A0 00 B1 10 91
B1 10 91 04 C8 B1 10 91 04 C8 B1 10 91 04 A9 FF 04 C8 B1 10 91 04 C8 B1 10 91 04 C8 B1 10 91 04
20 1C F2 A9 00 20 10 F2 A9 FF 20 1C F2 A9 11 A0 A9 FF 20 1E F2 A9 00 20 12 F2 A9 FF 20 1E F2 A9
04 91 04 A9 00 20 AB F0 20 C8 F0 C9 FF F0 3F 85 11 A0 04 91 04 A9 00 20 AD F0 20 CA F0 C9 FF F0
16 A0 00 A9 FF 20 1C F2 85 15 A5 15 C9 FF D0 05 3F 85 16 A0 00 A9 FF 20 1E F2 85 15 A5 15 C9 FF
C8 D0 F0 80 23 A2 02 A0 00 A9 FF 20 1C F2 92 0C D0 05 C8 D0 F0 80 23 A2 02 A0 00 A9 FF 20 1E F2
E6 0C D0 02 E6 0D 88 D0 F0 A0 00 CA D0 EB A9 FF 92 0C E6 0C D0 02 E6 0D 88 D0 F0 A0 00 CA D0 EB
20 1C F2 A9 FF 20 1C F2 A5 15 92 0E A5 16 48 A9 A9 FF 20 1E F2 A9 FF 20 1E F2 A5 15 92 0E A5 16
FF 20 1C F2 A9 00 20 16 F2 A9 FF 20 1C F2 68 60 48 A9 FF 20 1E F2 A9 00 20 18 F2 A9 FF 20 1E F2
A9 01 8D DB EF 60 9C DB EF 60 A9 00 8D DA EF AD 68 60 A9 01 8D DB EF 60 9C DB EF 60 A9 00 8D DA
DB EF 30 FB AD D9 EF 60 8D E6 EF 60 48 8D E6 EF EF AD DB EF 30 FB AD D9 EF 60 8D E6 EF 60 48 8D
AD E7 EF 89 02 D0 F9 68 60 AD E6 EF A2 00 60 AD E6 EF AD E7 EF 89 02 D0 F9 68 60 AD E6 EF A2 00
E7 EF A2 00 60 20 C7 FA A2 00 86 06 86 07 A9 00 60 AD E7 EF A2 00 60 20 C9 FA A2 00 86 06 86 07
20 5E FB 20 AD FA A9 D9 A2 FD 20 6D FA 20 0D F3 A9 00 20 60 FB 20 AF FA A9 DB A2 FD 20 6F FA 20
C9 00 20 0B FC D0 03 4C 74 F2 A9 D2 A2 FD 20 6D 0F F3 C9 00 20 0D FC D0 03 4C 76 F2 A9 D4 A2 FD
FA 4C 01 F3 A9 C9 A2 FD 20 6D FA A0 05 20 1A FB 20 6F FA 4C 03 F3 A9 CB A2 FD 20 6F FA A0 05 20
20 5E FB AD 00 92 AE 01 92 20 A0 FC A9 0C 20 2B 1C FB 20 60 FB AD 00 92 AE 01 92 20 A2 FC A9 0C
FB 20 73 F1 A0 07 91 04 A0 07 A2 00 B1 04 C9 00 20 2D FB 20 75 F1 A0 07 91 04 A0 07 A2 00 B1 04
20 11 FC D0 03 4C B8 F2 A0 06 A2 00 B1 04 C9 FE C9 00 20 13 FC D0 03 4C BA F2 A0 06 A2 00 B1 04
20 11 FC F0 03 4C C1 F2 A2 00 A9 00 D0 03 4C C5 C9 FE 20 13 FC F0 03 4C C3 F2 A2 00 A9 00 D0 03
F2 A2 00 A9 01 D0 03 4C CD F2 4C FE F2 A0 06 A2 4C C7 F2 A2 00 A9 01 D0 03 4C CF F2 4C 00 F3 A0
00 B1 04 A2 00 29 F0 20 F2 F9 D0 03 4C E9 F2 A9 06 A2 00 B1 04 A2 00 29 F0 20 F4 F9 D0 03 4C EB
D2 A2 FD 20 6D FA 4C FE F2 A9 BA A2 FD 20 A0 FC F2 A9 D4 A2 FD 20 6F FA 4C 00 F3 A9 BC A2 FD 20
A0 08 A2 00 B1 04 20 A0 FC A0 04 20 39 FA 6C 00 A2 FC A0 08 A2 00 B1 04 20 A2 FC A0 04 20 3B FA
92 4C 04 F3 4C 04 F3 A0 0C 20 D8 F9 60 20 D4 FA 6C 00 92 4C 06 F3 4C 06 F3 A0 0C 20 DA F9 60 20
A9 00 20 8A FC 20 4B F1 4C 44 F3 A0 00 A2 00 18 D6 FA A9 00 20 8C FC 20 4D F1 4C 46 F3 A0 00 A2
A9 01 71 04 91 04 A0 00 A2 00 B1 04 C9 FF 20 11 00 18 A9 01 71 04 91 04 A0 00 A2 00 B1 04 C9 FF
FC D0 03 4C 44 F3 A9 F8 A2 FD 20 6D FA A2 00 A9 20 13 FC D0 03 4C 46 F3 A9 FA A2 FD 20 6F FA A2
01 4C FA F3 20 FE F3 A0 01 91 04 C9 01 20 0B FC 00 A9 01 4C FC F3 20 00 F4 A0 01 91 04 C9 01 20
D0 C9 A9 01 20 2B FB 20 1B F4 A0 01 A2 00 B1 04 0D FC D0 C9 A9 01 20 2D FB 20 1D F4 A0 01 A2 00
C9 01 20 0B FC D0 03 4C 78 F3 A9 EF A2 FD 20 6D B1 04 C9 01 20 0D FC D0 03 4C 7A F3 A9 F1 A2 FD
FA A2 00 A9 01 4C FA F3 A0 05 A2 00 B1 04 C9 AA 20 6F FA A2 00 A9 01 4C FC F3 A0 05 A2 00 B1 04
20 0B FC D0 03 4C 8F F3 A2 00 A9 01 4C FA F3 A2 C9 AA 20 0D FC D0 03 4C 91 F3 A2 00 A9 01 4C FC
00 A9 00 A0 00 91 04 A0 00 A2 00 B1 04 C9 FF 20 F3 A2 00 A9 00 A0 00 91 04 A0 00 A2 00 B1 04 C9
11 FC D0 03 4C B5 F3 A9 E0 A2 FD 20 6D FA A2 00 FF 20 13 FC D0 03 4C B7 F3 A9 E2 A2 FD 20 6F FA
A9 01 4C FA F3 20 3D F5 A0 01 91 04 A0 01 A2 00 A2 00 A9 01 4C FC F3 20 3F F5 A0 01 91 04 A0 01
B1 04 C9 02 20 2A FC D0 03 4C D3 F3 20 5A F5 A0 A2 00 B1 04 C9 02 20 2C FC D0 03 4C D5 F3 20 5C
01 91 04 A0 00 A2 00 18 A9 01 71 04 91 04 A0 01 F5 A0 01 91 04 A0 00 A2 00 18 A9 01 71 04 91 04
A2 00 B1 04 C9 00 20 0B FC D0 AC A9 01 20 2B FB A0 01 A2 00 B1 04 C9 00 20 0D FC D0 AC A9 01 20
20 C3 F4 A2 00 A9 00 4C FA F3 20 01 FB 60 A2 00 2D FB 20 C5 F4 A2 00 A9 00 4C FC F3 20 03 FB 60
A9 00 20 8A FC A2 00 86 06 86 07 A9 00 20 5E FB A2 00 A9 00 20 8C FC A2 00 86 06 86 07 A9 00 20
A2 00 A9 94 20 20 F1 4C 1A F4 60 20 A0 FC A2 00 60 FB A2 00 A9 94 20 22 F1 4C 1C F4 60 20 A2 FC
A9 FF 20 1C F2 A2 00 A9 00 20 10 F2 A2 00 A9 FF A2 00 A9 FF 20 1E F2 A2 00 A9 00 20 12 F2 A2 00
20 1C F2 A2 00 A9 08 20 8A FC A2 01 A9 00 85 06 A9 FF 20 1E F2 A2 00 A9 08 20 8C FC A2 01 A9 00
A9 00 85 07 A9 AA 20 5E FB A2 00 A9 86 20 AB F0 85 06 A9 00 85 07 A9 AA 20 60 FB A2 00 A9 86 20
A0 01 20 11 FB 20 02 F1 A2 00 A9 FF 20 1C F2 A2 AD F0 A0 01 20 13 FB 20 04 F1 A2 00 A9 FF 20 1E
00 A9 00 20 16 F2 A2 00 A9 FF 20 1C F2 20 E9 FA F2 A2 00 A9 00 20 18 F2 A2 00 A9 FF 20 1E F2 20
60 20 A0 FC A2 00 A9 FF 20 1C F2 A2 00 A9 00 20 EB FA 60 20 A2 FC A2 00 A9 FF 20 1E F2 A2 00 A9
10 F2 A2 00 A9 FF 20 1C F2 A2 00 A9 0D 20 8A FC 00 20 12 F2 A2 00 A9 FF 20 1E F2 A2 00 A9 0D 20
A2 00 86 06 86 07 A9 00 20 5E FB A2 00 A9 00 20 8C FC A2 00 86 06 86 07 A9 00 20 60 FB A2 00 A9
AB F0 A0 01 20 11 FB 20 D7 F0 A2 00 A9 FF 20 1C 00 20 AD F0 A0 01 20 13 FB 20 D9 F0 A2 00 A9 FF
F2 A2 00 A9 00 20 16 F2 A2 00 A9 FF 20 1C F2 20 20 1E F2 A2 00 A9 00 20 18 F2 A2 00 A9 FF 20 1E
E9 FA 60 20 A0 FC 20 A4 FA A2 00 A9 FF 20 1C F2 F2 20 EB FA 60 20 A2 FC 20 A6 FA A2 00 A9 FF 20
A2 00 A9 00 20 10 F2 A2 00 A9 FF 20 1C F2 A0 00 1E F2 A2 00 A9 00 20 12 F2 A2 00 A9 FF 20 1E F2
91 04 A0 00 A2 00 B1 04 C9 FF 20 0B FC D0 03 4C A0 00 91 04 A0 00 A2 00 B1 04 C9 FF 20 0D FC D0
03 F5 4C F5 F4 A2 00 A9 FF 20 1C F2 C9 FF 20 0B 03 4C 05 F5 4C F7 F4 A2 00 A9 FF 20 1E F2 C9 FF
FC D0 F2 A2 00 A9 3A 20 8A FC A2 00 86 06 86 07 20 0D FC D0 F2 A2 00 A9 3A 20 8C FC A2 00 86 06
A9 00 20 5E FB A2 00 A9 00 20 AB F0 A0 02 20 11 86 07 A9 00 20 60 FB A2 00 A9 00 20 AD F0 A0 02
FB 20 02 F1 A2 00 A9 FF 20 1C F2 A2 00 A9 00 20 20 13 FB 20 04 F1 A2 00 A9 FF 20 1E F2 A2 00 A9
16 F2 A2 00 A9 FF 20 1C F2 20 F7 FA 60 A2 00 A9 00 20 18 F2 A2 00 A9 FF 20 1E F2 20 F9 FA 60 A2
37 20 8A FC A2 00 86 06 86 07 A9 00 20 5E FB A2 00 A9 37 20 8C FC A2 00 86 06 86 07 A9 00 20 60
00 A9 00 20 20 F1 4C 59 F5 60 A2 00 A9 29 20 8A FB A2 00 A9 00 20 22 F1 4C 5B F5 60 A2 00 A9 29
FC A2 00 86 06 A9 40 85 07 A9 00 20 5E FB A2 00 20 8C FC A2 00 86 06 A9 40 85 07 A9 00 20 60 FB
A9 00 20 20 F1 4C 78 F5 60 20 A0 FC 20 C7 FA A0 A2 00 A9 00 20 22 F1 4C 7A F5 60 20 A2 FC 20 C9
03 A2 00 B1 04 4C 88 F5 A0 0E 20 D8 F9 60 20 A0 FA A0 03 A2 00 B1 04 4C 8A F5 A0 0E 20 DA F9 60
FC A9 00 20 8A FC 20 AD FA A2 00 A9 00 A0 00 20 20 A2 FC A9 00 20 8C FC 20 AF FA A2 00 A9 00 A0
B8 FC A0 01 20 11 FB E0 02 20 2A FC F0 03 4C B4 00 20 BA FC A0 01 20 13 FB E0 02 20 2C FC F0 03
F5 4C 16 F6 A9 01 A2 FE 20 A0 FC A0 06 20 11 FB 4C B6 F5 4C 18 F6 A9 03 A2 FE 20 A2 FC A0 06 20
A0 00 20 06 FB 20 A0 FC A0 07 A2 00 A9 01 20 C8 13 FB A0 00 20 08 FB 20 A2 FC A0 07 A2 00 A9 01
F9 A0 04 20 39 FA A0 02 A2 00 B1 04 C9 1F 20 11 20 CA F9 A0 04 20 3B FA A0 02 A2 00 B1 04 C9 1F
FC D0 03 4C F8 F5 A9 05 A2 FE 20 6D FA A2 00 A9 20 13 FC D0 03 4C FA F5 A9 07 A2 FE 20 6F FA A2
00 A0 02 91 04 4C 0A F6 A2 00 A9 20 20 68 F0 A0 00 A9 00 A0 02 91 04 4C 0C F6 A2 00 A9 20 20 68
02 A2 00 18 A9 01 71 04 91 04 A0 00 A2 00 A9 01 F0 A0 02 A2 00 18 A9 01 71 04 91 04 A0 00 A2 00
20 C8 F9 4C A2 F5 A9 05 A2 FE 20 6D FA 20 FC FA A9 01 20 CA F9 4C A4 F5 A9 07 A2 FE 20 6F FA 20
60 A0 00 B1 1A E6 1A D0 02 E6 1B 60 AD 4A 92 8D FE FA 60 A0 00 B1 1A E6 1A D0 02 E6 1B 60 AD 4A
45 92 20 CD F6 A9 45 A2 92 20 A0 FC 20 81 FC 4C 92 8D 45 92 20 CF F6 A9 45 A2 92 20 A2 FC 20 83
02 92 A5 18 38 E9 02 85 18 B0 02 C6 19 60 AD 4F FC 4C 02 92 A5 18 38 E9 02 85 18 B0 02 C6 19 60
92 D0 11 20 6B F6 4C EB F9 AD 4F 92 D0 06 20 6B AD 4F 92 D0 11 20 6D F6 4C ED F9 AD 4F 92 D0 06
F6 4C E5 F9 20 6B F6 85 06 86 07 20 42 F6 A0 01 20 6D F6 4C E7 F9 20 6D F6 85 06 86 07 20 44 F6
B1 18 AA 88 B1 18 60 A0 00 84 0C 84 0D B1 1A 38 A0 01 B1 18 AA 88 B1 18 60 A0 00 84 0C 84 0D B1
E9 30 90 2C C9 0A B0 28 20 25 F6 48 A5 0C A6 0D 1A 38 E9 30 90 2C C9 0A B0 28 20 27 F6 48 A5 0C
06 0C 26 0D 06 0C 26 0D 65 0C 85 0C 8A 65 0D 85 A6 0D 06 0C 26 0D 06 0C 26 0D 65 0C 85 0C 8A 65
0D 06 0C 26 0D 68 65 0C 85 0C 90 D1 E6 0D B0 CD 0D 85 0D 06 0C 26 0D 68 65 0C 85 0C 90 D1 E6 0D
A5 0C A6 0D 60 AC 51 92 EE 51 92 99 52 92 60 A9 B0 CD A5 0C A6 0D 60 AC 51 92 EE 51 92 99 52 92
52 A2 92 18 6D 51 92 90 01 E8 4C A0 FC A5 1C A6 60 A9 52 A2 92 18 6D 51 92 90 01 E8 4C A2 FC A5
1D 4C A0 FC 20 2C F6 EE 4B 92 D0 F8 EE 4C 92 D0 1C A6 1D 4C A2 FC 20 2E F6 EE 4B 92 D0 F8 EE 4C
F3 60 20 CD F6 AD 66 92 AE 67 92 20 A0 FC AD 68 92 D0 F3 60 20 CF F6 AD 66 92 AE 67 92 20 A2 FC
92 AE 69 92 20 A0 FC 4C 02 92 84 0C 20 5E FB 20 AD 68 92 AE 69 92 20 A2 FC 4C 02 92 84 0C 20 60
BF F6 A5 0C 4C 8E FB 84 0C 20 5E FB 20 BF F6 A5 FB 20 C1 F6 A5 0C 4C 90 FB 84 0C 20 60 FB 20 C1
0C 4C CF FB 48 A0 05 B9 18 00 99 3F 92 88 10 F7 F6 A5 0C 4C D1 FB 48 A0 05 B9 18 00 99 3F 92 88
68 85 18 86 19 20 E1 FA 85 1A 86 1B 20 E1 FA 85 10 F7 68 85 18 86 19 20 E3 FA 85 1A 86 1B 20 E3
1C 86 1D A9 00 A8 91 1C C8 91 1C C8 B1 1C 8D 03 FA 85 1C 86 1D A9 00 A8 91 1C C8 91 1C C8 B1 1C
92 C8 B1 1C 8D 04 92 A5 1A 85 0C A5 1B 85 0D A0 8D 03 92 C8 B1 1C 8D 04 92 A5 1A 85 0C A5 1B 85
00 B1 1A F0 0B C9 25 F0 07 C8 D0 F5 E6 1B D0 F1 0D A0 00 B1 1A F0 0B C9 25 F0 07 C8 D0 F5 E6 1B
98 18 65 1A 85 1A 90 02 E6 1B 38 E5 0C 85 0E A5 D0 F1 98 18 65 1A 85 1A 90 02 E6 1B 38 E5 0C 85
1B E5 0D 85 0F 05 0E F0 25 20 C7 FA A0 05 A5 1D 0E A5 1B E5 0D 85 0F 05 0E F0 25 20 C9 FA A0 05
91 04 88 A5 1C 91 04 88 A5 0D 91 04 88 A5 0C 91 A5 1D 91 04 88 A5 1C 91 04 88 A5 0D 91 04 88 A5
04 88 A5 0F 91 04 88 A5 0E 91 04 20 02 92 20 21 0C 91 04 88 A5 0F 91 04 88 A5 0E 91 04 20 02 92
F6 AA D0 0B A2 05 BD 3F 92 95 18 CA 10 F8 60 C9 20 23 F6 AA D0 0B A2 05 BD 3F 92 95 18 CA 10 F8
25 D0 09 B1 1A C9 25 D0 09 20 25 F6 20 2F F6 4C 60 C9 25 D0 09 B1 1A C9 25 D0 09 20 27 F6 20 31
47 F7 A9 00 A2 0B 9D 46 92 CA 10 FA B1 1A C9 2D F6 4C 49 F7 A9 00 A2 0B 9D 46 92 CA 10 FA B1 1A
D0 05 8E 46 92 F0 19 C9 2B D0 05 8E 47 92 F0 10 C9 2D D0 05 8E 46 92 F0 19 C9 2B D0 05 8E 47 92
C9 20 D0 05 8E 48 92 F0 07 C9 23 D0 09 8E 49 92 F0 10 C9 20 D0 05 8E 48 92 F0 07 C9 23 D0 09 8E
20 25 F6 4C CC F7 A2 20 C9 30 D0 06 AA 20 25 F6 49 92 20 27 F6 4C CE F7 A2 20 C9 30 D0 06 AA 20
B1 1A 8E 4A 92 C9 2A D0 09 20 25 F6 20 6B F6 4C 27 F6 B1 1A 8E 4A 92 C9 2A D0 09 20 27 F6 20 6D
15 F8 20 77 F6 8D 4B 92 8E 4C 92 8C 4D 92 8C 4E F6 4C 17 F8 20 79 F6 8D 4B 92 8E 4C 92 8C 4D 92
92 B1 1A C9 2E D0 1B 20 25 F6 B1 1A C9 2A D0 09 8C 4E 92 B1 1A C9 2E D0 1B 20 27 F6 B1 1A C9 2A
20 25 F6 20 6B F6 4C 3C F8 20 77 F6 8D 4D 92 8E D0 09 20 27 F6 20 6D F6 4C 3E F8 20 79 F6 8D 4D
4E 92 B1 1A C9 7A F0 19 C9 68 F0 15 C9 74 F0 11 92 8E 4E 92 B1 1A C9 7A F0 19 C9 68 F0 15 C9 74
C9 6A F0 08 C9 4C F0 04 C9 6C D0 0B A9 FF 8D 4F F0 11 C9 6A F0 08 C9 4C F0 04 C9 6C D0 0B A9 FF
92 20 25 F6 4C 42 F8 8C 51 92 A2 52 8E 66 92 A2 8D 4F 92 20 27 F6 4C 44 F8 8C 51 92 A2 52 8E 66
92 8E 67 92 20 25 F6 C9 63 D0 0E 20 6B F6 8D 52 92 A2 92 8E 67 92 20 27 F6 C9 63 D0 0E 20 6D F6
92 A9 00 8D 53 92 4C 66 F9 C9 64 F0 04 C9 69 D0 8D 52 92 A9 00 8D 53 92 4C 68 F9 C9 64 F0 04 C9
2D A2 00 AD 48 92 F0 02 A2 20 AD 47 92 F0 02 A2 69 D0 2D A2 00 AD 48 92 F0 02 A2 20 AD 47 92 F0
2B 8E 50 92 20 59 F6 A4 07 30 0B AC 50 92 F0 06 02 A2 2B 8E 50 92 20 5B F6 A4 07 30 0B AC 50 92
8C 52 92 EE 51 92 A0 0A 20 FA F6 4C 66 F9 C9 6E F0 06 8C 52 92 EE 51 92 A0 0A 20 FC F6 4C 68 F9
D0 15 20 6B F6 85 0C 86 0D A0 00 B1 1C 91 0C C8 C9 6E D0 15 20 6D F6 85 0C 86 0D A0 00 B1 1C 91
B1 1C 91 0C 4C 47 F7 C9 6F D0 27 20 59 F6 AC 49 0C C8 B1 1C 91 0C 4C 49 F7 C9 6F D0 27 20 5B F6
92 F0 17 48 86 14 05 14 05 06 05 07 0D 4D 92 0D AC 49 92 F0 17 48 86 14 05 14 05 06 05 07 0D 4D
4E 92 F0 06 A9 30 20 B5 F6 68 A0 08 20 FA F6 4C 92 0D 4E 92 F0 06 A9 30 20 B7 F6 68 A0 08 20 FC
66 F9 C9 70 D0 0D A2 00 8E 4F 92 E8 8E 49 92 A9 F6 4C 68 F9 C9 70 D0 0D A2 00 8E 4F 92 E8 8E 49
78 D0 27 C9 73 D0 0C 20 6B F6 8D 66 92 8E 67 92 92 A9 78 D0 27 C9 73 D0 0C 20 6D F6 8D 66 92 8E
4C 66 F9 C9 75 D0 0B 20 4E F6 A0 0A 20 07 F7 4C 67 92 4C 68 F9 C9 75 D0 0B 20 50 F6 A0 0A 20 09
66 F9 C9 78 F0 04 C9 58 D0 29 48 AD 49 92 F0 0A F7 4C 68 F9 C9 78 F0 04 C9 58 D0 29 48 AD 49 92
A9 30 20 B5 F6 A9 58 20 B5 F6 20 4E F6 A0 10 20 F0 0A A9 30 20 B7 F6 A9 58 20 B7 F6 20 50 F6 A0
07 F7 68 C9 78 D0 09 AD 66 92 AE 67 92 20 F8 FC 10 20 09 F7 68 C9 78 D0 09 AD 66 92 AE 67 92 20
4C 66 F9 4C 47 F7 AD 66 92 AE 67 92 20 E2 FC 8D FA FC 4C 68 F9 4C 49 F7 AD 66 92 AE 67 92 20 E4
68 92 8E 69 92 AD 4D 92 0D 4E 92 F0 15 AE 4D 92 FC 8D 68 92 8E 69 92 AD 4D 92 0D 4E 92 F0 15 AE
EC 68 92 AD 4E 92 A8 ED 69 92 B0 06 8E 68 92 8C 4D 92 EC 68 92 AD 4E 92 A8 ED 69 92 B0 06 8E 68
69 92 38 AD 4B 92 ED 68 92 AA AD 4C 92 ED 69 92 92 8C 69 92 38 AD 4B 92 ED 68 92 AA AD 4C 92 ED
B0 03 A9 00 AA 49 FF 8D 4C 92 8A 49 FF 8D 4B 92 69 92 B0 03 A9 00 AA 49 FF 8D 4C 92 8A 49 FF 8D
AD 46 92 D0 03 20 D7 F6 20 E2 F6 AD 46 92 F0 03 4B 92 AD 46 92 D0 03 20 D9 F6 20 E4 F6 AD 46 92
20 D7 F6 4C 47 F7 A0 00 18 71 04 91 04 48 C8 8A F0 03 20 D9 F6 4C 49 F7 A0 00 18 71 04 91 04 48
71 04 91 04 AA 68 60 C8 48 18 98 65 04 85 04 90 C8 8A 71 04 91 04 AA 68 60 C8 48 18 98 65 04 85
02 E6 05 68 60 A0 FF E0 80 B0 02 A0 00 84 06 84 04 90 02 E6 05 68 60 A0 FF E0 80 B0 02 A0 00 84
07 60 E0 00 D0 06 AA D0 03 A9 01 60 A2 00 8A 60 06 84 07 60 E0 00 D0 06 AA D0 03 A9 01 60 A2 00
A0 00 F0 07 A9 52 A2 F0 4C 05 92 60 A9 00 85 0C 8A 60 A0 00 F0 07 A9 52 A2 F0 4C 05 92 60 A9 00
A9 F0 85 0D A9 00 85 0E A9 92 85 0F A2 CD A9 FF 85 0C A9 F0 85 0D A9 00 85 0E A9 92 85 0F A2 CD
85 14 A0 00 E8 F0 0D B1 0C 91 0E C8 D0 F6 E6 0D A9 FF 85 14 A0 00 E8 F0 0D B1 0C 91 0E C8 D0 F6
E6 0F D0 F0 E6 14 D0 EF 60 8C 6A 92 88 88 98 18 E6 0D E6 0F D0 F0 E6 14 D0 EF 60 8C 6A 92 88 88
65 04 85 0C A6 05 90 01 E8 86 0D A0 01 B1 0C AA 98 18 65 04 85 0C A6 05 90 01 E8 86 0D A0 01 B1
88 B1 0C 20 A0 FC A5 0C A6 0D 20 67 FD AC 6A 92 0C AA 88 B1 0C 20 A2 FC A5 0C A6 0D 20 69 FD AC
4C D8 F9 85 0C 86 0D 20 75 F0 4C 71 FA 85 0C 86 6A 92 4C DA F9 85 0C 86 0D 20 75 F0 4C 73 FA 85
0D A0 00 B1 0C F0 0E C8 84 14 20 68 F0 A4 14 D0 0C 86 0D A0 00 B1 0C F0 0E C8 84 14 20 68 F0 A4
F2 E6 0D D0 EE 60 E0 00 D0 15 4A AA BD 2E FE 90 14 D0 F2 E6 0D D0 EE 60 E0 00 D0 15 4A AA BD 30
05 4A 4A 4A 4A 18 29 0F AA BD 23 FE A2 00 60 38 FE 90 05 4A 4A 4A 4A 18 29 0F AA BD 25 FE A2 00
A9 00 AA 60 A4 04 D0 02 C6 05 C6 04 60 A5 04 38 60 38 A9 00 AA 60 A4 04 D0 02 C6 05 C6 04 60 A5
E9 02 85 04 90 01 60 C6 05 60 A5 04 38 E9 04 85 04 38 E9 02 85 04 90 01 60 C6 05 60 A5 04 38 E9
04 90 01 60 C6 05 60 A5 04 38 E9 06 85 04 90 01 04 85 04 90 01 60 C6 05 60 A5 04 38 E9 06 85 04
60 C6 05 60 A5 04 38 E9 07 85 04 90 01 60 C6 05 90 01 60 C6 05 60 A5 04 38 E9 07 85 04 90 01 60
60 A0 01 B1 04 AA 88 B1 04 E6 04 F0 05 E6 04 F0 C6 05 60 A0 01 B1 04 AA 88 B1 04 E6 04 F0 05 E6
03 60 E6 04 E6 05 60 A0 03 4C D8 F9 A0 05 4C D8 04 F0 03 60 E6 04 E6 05 60 A0 03 4C DA F9 A0 05
F9 A0 08 4C D8 F9 85 0C 86 0D A2 00 B1 0C 60 A0 4C DA F9 A0 08 4C DA F9 85 0C 86 0D A2 00 B1 0C
01 B1 04 AA 88 B1 04 60 A0 03 B1 04 85 07 88 B1 60 A0 01 B1 04 AA 88 B1 04 60 A0 03 B1 04 85 07
04 85 06 88 B1 04 AA 88 B1 04 60 A2 00 18 65 04 88 B1 04 85 06 88 B1 04 AA 88 B1 04 60 A2 00 18
48 8A 65 05 AA 68 60 18 49 FF 69 01 48 8A 49 FF 65 04 48 8A 65 05 AA 68 60 18 49 FF 69 01 48 8A
69 00 AA A5 06 49 FF 69 00 85 06 A5 07 49 FF 69 49 FF 69 00 AA A5 06 49 FF 69 00 85 06 A5 07 49
00 85 07 68 60 A9 00 AA A0 00 84 06 84 07 48 20 FF 69 00 85 07 68 60 A9 00 AA A0 00 84 06 84 07
BA FA A0 03 A5 07 91 04 88 A5 06 91 04 88 8A 91 48 20 BC FA A0 03 A5 07 91 04 88 A5 06 91 04 88
04 68 88 91 04 60 85 14 20 E1 FA 85 0E 86 0F 85 8A 91 04 68 88 91 04 60 85 14 20 E3 FA 85 0E 86
10 86 11 20 73 FC 20 E1 FA 85 06 86 07 60 20 76 0F 85 10 86 11 20 75 FC 20 E3 FA 85 06 86 07 60
FB A6 07 A4 14 C0 0A D0 39 A5 06 05 0D 05 0C D0 20 78 FB A6 07 A4 14 C0 0A D0 39 A5 06 05 0D 05
11 E0 80 D0 0D A0 0B B9 17 FE 91 0E 88 10 F8 4C 0C D0 11 E0 80 D0 0D A0 0B B9 19 FE 91 0E 88 10
06 FC 8A 10 1D A9 2D A0 00 91 0E E6 0E D0 02 E6 F8 4C 08 FC 8A 10 1D A9 2D A0 00 91 0E E6 0E D0
0F A5 0C A6 0D 20 37 FB 85 0C 86 0D 4C D2 FB 20 02 E6 0F A5 0C A6 0D 20 39 FB 85 0C 86 0D 4C D4
76 FB A9 00 48 A0 20 A9 00 06 0C 26 0D 26 06 26 FB 20 78 FB A9 00 48 A0 20 A9 00 06 0C 26 0D 26
07 2A C5 14 90 04 E5 14 E6 0C 88 D0 EC A8 B9 07 06 26 07 2A C5 14 90 04 E5 14 E6 0C 88 D0 EC A8
FE 48 A5 0C 05 0D 05 06 05 07 D0 D9 A0 00 68 91 B9 09 FE 48 A5 0C 05 0D 05 06 05 07 D0 D9 A0 00
0E F0 03 C8 D0 F8 A5 10 A6 11 60 D0 06 A2 00 8A 68 91 0E F0 03 C8 D0 F8 A5 10 A6 11 60 D0 06 A2
60 D0 FA A2 00 A9 01 60 F0 F9 30 F7 A2 00 8A 60 00 8A 60 D0 FA A2 00 A9 01 60 F0 F9 30 F7 A2 00
F0 02 10 EF A2 00 8A 60 F0 E9 90 E7 A2 00 8A 60 8A 60 F0 02 10 EF A2 00 8A 60 F0 E9 90 E7 A2 00
F0 DB A2 00 8A 2A 60 20 60 FC A6 11 F0 13 B1 0C 8A 60 F0 DB A2 00 8A 2A 60 20 62 FC A6 11 F0 13
91 0E C8 B1 0C 91 0E C8 D0 F4 E6 0D E6 0F CA D0 B1 0C 91 0E C8 B1 0C 91 0E C8 D0 F4 E6 0D E6 0F
ED A6 10 F0 08 B1 0C 91 0E C8 CA D0 F8 4C E1 FA CA D0 ED A6 10 F0 08 B1 0C 91 0E C8 CA D0 F8 4C
85 10 86 11 20 73 FC C8 B1 04 AA 86 0F 88 B1 04 E3 FA 85 10 86 11 20 75 FC C8 B1 04 AA 86 0F 88
85 0E 60 A0 01 B1 04 85 0D 88 B1 04 85 0C 4C E9 B1 04 85 0E 60 A0 01 B1 04 85 0D 88 B1 04 85 0C
FA A9 01 4C 9E FC A0 00 B1 04 A4 04 F0 07 C6 04 4C EB FA A9 01 4C A0 FC A0 00 B1 04 A4 04 F0 07
A0 00 91 04 60 C6 05 C6 04 91 04 60 A9 00 A2 00 C6 04 A0 00 91 04 60 C6 05 C6 04 91 04 60 A9 00
48 A5 04 38 E9 02 85 04 B0 02 C6 05 A0 01 8A 91 A2 00 48 A5 04 38 E9 02 85 04 B0 02 C6 05 A0 01
04 68 88 91 04 60 A0 00 91 04 C8 48 8A 91 04 68 8A 91 04 68 88 91 04 60 A0 00 91 04 C8 48 8A 91
60 85 0E 86 0F 20 73 FC B1 0C D1 0E D0 0C AA F0 04 68 60 85 0E 86 0F 20 75 FC B1 0C D1 0E D0 0C
10 C8 D0 F4 E6 0D E6 0F D0 EE B0 03 A2 FF 60 A2 AA F0 10 C8 D0 F4 E6 0D E6 0F D0 EE B0 03 A2 FF
01 60 85 0E 86 0F A2 00 A0 00 B1 0E F0 08 C8 D0 60 A2 01 60 85 0E 86 0F A2 00 A0 00 B1 0E F0 08
F9 E6 0F E8 D0 F4 98 60 85 0C 86 0D 85 0E 86 0F C8 D0 F9 E6 0F E8 D0 F4 98 60 85 0C 86 0D 85 0E
A0 00 B1 0C F0 14 20 8A FA 29 02 F0 06 B1 0C 69 86 0F A0 00 B1 0C F0 14 20 8C FA 29 02 F0 06 B1
20 91 0C C8 D0 EC E6 0D D0 E8 A5 0E A6 0F 60 20 0C 69 20 91 0C C8 D0 EC E6 0D D0 E8 A5 0E A6 0F
E1 FA 85 0E 86 0F E8 8E 31 92 AA E8 8E 30 92 20 60 20 E3 FA 85 0E 86 0F E8 8E 31 92 AA E8 8E 30
73 FC 20 E1 FA 85 10 86 11 A0 00 84 14 B1 10 18 92 20 75 FC 20 E3 FA 85 10 86 11 A0 00 84 14 B1
65 0E 91 10 C8 B1 10 65 0F 91 10 CE 30 92 F0 11 10 18 65 0E 91 10 C8 B1 10 65 0F 91 10 CE 30 92
A4 14 B1 0C C8 D0 02 E6 0D 84 14 20 68 F0 4C 4B F0 11 A4 14 B1 0C C8 D0 02 E6 0D 84 14 20 68 F0
FD CE 31 92 D0 EA 60 85 0C 86 0D A9 00 8D 2A 92 4C 4D FD CE 31 92 D0 EA 60 85 0C 86 0D A9 00 8D
8D 2B 92 A0 01 B1 04 AA 88 B1 04 20 A0 FC A0 02 2A 92 8D 2B 92 A0 01 B1 04 AA 88 B1 04 20 A2 FC
A9 2A 91 04 C8 A9 92 91 04 A5 0C A6 0D 20 14 F7 A0 02 A9 2A 91 04 C8 A9 92 91 04 A5 0C A6 0D 20
AD 2A 92 AE 2B 92 60 A9 32 85 0C A9 92 85 0D A9 16 F7 AD 2A 92 AE 2B 92 60 A9 32 85 0C A9 92 85
00 A8 A2 00 F0 0A 91 0C C8 D0 FB E6 0D CA D0 F6 0D A9 00 A8 A2 00 F0 0A 91 0C C8 D0 FB E6 0D CA
C0 39 F0 05 91 0C C8 D0 F7 60 62 61 64 20 74 6F D0 F6 C0 39 F0 05 91 0C C8 D0 F7 60 62 61 64 20
6B 65 6E 3A 20 25 78 0A 00 53 75 63 63 65 73 73 74 6F 6B 65 6E 3A 20 25 78 0A 00 53 75 63 63 65
0A 00 45 72 72 6F 72 0A 00 53 74 61 72 74 0A 00 73 73 0A 00 45 72 72 6F 72 0A 00 53 74 61 72 74
6F 70 5F 63 6F 6E 64 20 65 72 72 6F 72 0A 00 49 0A 00 6F 70 5F 63 6F 6E 64 20 65 72 72 6F 72 0A
46 20 43 6F 6E 64 0A 00 47 6F 20 49 44 4C 45 0A 00 49 46 20 43 6F 6E 64 0A 00 47 6F 20 49 44 4C
00 25 32 78 00 0A 00 30 31 32 33 34 35 36 37 38 45 0A 00 25 32 78 00 0A 00 30 31 32 33 34 35 36
39 41 42 43 44 45 46 2D 32 31 34 37 34 38 33 36 37 38 39 41 42 43 44 45 46 2D 32 31 34 37 34 38
34 38 00 00 01 02 0C 09 0A 10 40 50 A0 D0 66 66 33 36 34 38 00 00 01 02 0C 09 0A 10 40 50 A0 D0
66 66 A6 88 88 66 66 66 66 66 66 66 66 66 09 00 66 66 66 66 A6 88 88 66 66 66 66 66 66 66 66 66
00 00 00 00 00 00 33 33 33 33 33 00 00 00 50 55 09 00 00 00 00 00 00 00 33 33 33 33 33 00 00 00
55 25 22 22 22 22 22 22 22 22 22 02 00 00 40 44 50 55 55 25 22 22 22 22 22 22 22 22 22 02 00 00
44 14 11 11 11 11 11 11 11 11 11 01 00 70 00 00 40 44 44 14 11 11 11 11 11 11 11 11 11 01 00 70
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
@@ -254,4 +254,4 @@ C0 39 F0 05 91 0C C8 D0 F7 60 62 61 64 20 74 6F
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 A7 F0 32 F0 A8 F0 00 00 00 00 00 00 00 00 00 00 A7 F0 32 F0 AA F0

View File

@@ -6,12 +6,11 @@
; ;
; Checks for a BRK instruction and returns from all valid interrupts. ; Checks for a BRK instruction and returns from all valid interrupts.
.import _handle_irq
.import _cputc, _clrscr
.export _irq_int, _nmi_int .export _irq_int, _nmi_int
.include "io.inc65"
IRQ_VECTOR = $220
NMI_VECTOR = $222
.segment "CODE" .segment "CODE"
@@ -20,81 +19,9 @@
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
; Non-maskable interrupt (NMI) service routine ; Non-maskable interrupt (NMI) service routine
_nmi_int: RTI ; Return from all NMI interrupts _nmi_int: jmp (NMI_VECTOR)
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------
; Maskable interrupt (IRQ) service routine ; Maskable interrupt (IRQ) service routine
_irq_int: PHX ; Save X register contents to stack _irq_int: jmp (IRQ_VECTOR)
TSX ; Transfer stack pointer to X
PHA ; Save accumulator contents to stack
INX ; Increment X so it points to the status
INX ; register value saved on the stack
LDA $100,X ; Load status register contents
AND #$10 ; Isolate B status bit
BNE break ; If B = 1, BRK detected
; ---------------------------------------------------------------------------
; IRQ detected, return
irq: PLA ; Restore accumulator contents
PLX ; Restore X register contents
jsr _handle_irq ; Handle the IRQ
RTI ; Return from all IRQ interrupts
; ---------------------------------------------------------------------------
; BRK detected, stop
break:
pla
plx
jmp (bios_table,x)
bios_table:
.addr _console_clear
.addr _console_read_char
.addr _console_write_char
_console_clear:
jsr _clrscr
rti
_console_read_char:
; not supported
rti
_console_write_char:
jsr _cputc
rti
; What functions do we need?
; UART
; clear
; write character
; read character
; DISK
; init (or should it just init on boot?)
; read sector into memory
; FS
; init (if disk init succeeds, should it always try?)
; find add
; I think that is all we need for now?
; How do we call the functions?
; we have to call `brk` to trigger the interrupt
; in any of the three registers we can have arguments
; or we could have them pushed to the stack, assuming
; the stack is in the same location
; Or you could pass a pointer which points to an array
; of arguments
; for things like clear, read/write character, and init you don't
; need any arguments.
; jump table index needs to be in x, but also needs to be a multiple
; of 2.

View File

@@ -1,11 +0,0 @@
#include <stdint.h>
#include <conio.h>
#include "devices/interrupt.h"
#include "devices/uart.h"
void handle_irq() {
}

View File

@@ -9,6 +9,8 @@
.export _disable_irq .export _disable_irq
.export _send_eoi .export _send_eoi
.import irq_int, nmi_int
IRQ_CMD_ADDR = $effc IRQ_CMD_ADDR = $effc
IRQ_DAT_ADDR = $effd IRQ_DAT_ADDR = $effd
@@ -19,11 +21,24 @@ IRQ_CMD_ENABLE = $20
IRQ_CMD_TYPE = $40 IRQ_CMD_TYPE = $40
IRQ_CMD_EOI = $ff IRQ_CMD_EOI = $ff
IRQ_VECTOR = $220
NMI_VECTOR = $222
.code .code
; void init_irq(); ; void init_irq();
; mask all IRQs, set all type to edge. ; mask all IRQs, set all type to edge.
.proc _init_interrupt_controller .proc _init_interrupt_controller
lda #<irq_int
sta IRQ_VECTOR
lda #>irq_int
sta IRQ_VECTOR+1
lda #<nmi_int
sta NMI_VECTOR
lda #>nmi_int
sta NMI_VECTOR+1
ldx #$20 ; enable ldx #$20 ; enable
ldy #00 ldy #00
jsr cmd_all jsr cmd_all

View File

@@ -6,9 +6,6 @@
#define BUTTON (1 << 0) #define BUTTON (1 << 0)
#define UART (1 << 1) #define UART (1 << 1)
void irq_int();
void nmi_int();
void register_irq(void* addr, uint8_t irqn); void register_irq(void* addr, uint8_t irqn);
uint8_t irq_get_status(); uint8_t irq_get_status();

View File

@@ -4,7 +4,7 @@
.import _enable_irq .import _enable_irq
.export _irq_int, _nmi_int .export irq_int, nmi_int
.export _register_irq .export _register_irq
IRQ_CMD_ADDR = $effc IRQ_CMD_ADDR = $effc
@@ -12,13 +12,14 @@ IRQ_DAT_ADDR = $effd
IRQ_CMD_READIRQ = $00 IRQ_CMD_READIRQ = $00
.proc _nmi_int
.proc nmi_int
rti rti
.endproc .endproc
; _irq_int ; irq_int
.proc _irq_int .proc irq_int
; Load IRQ number ; Load IRQ number
lda #IRQ_CMD_READIRQ lda #IRQ_CMD_READIRQ
sta IRQ_CMD_ADDR sta IRQ_CMD_ADDR