add interrupt init code (and increase rtc tick rate)

This commit is contained in:
Byron Lathi
2023-11-20 22:23:18 -08:00
parent 5e36d0824a
commit 7089b663ca
7 changed files with 244 additions and 230 deletions

View File

@@ -1,9 +1,9 @@
@00000000
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
26 92 20 FF FF A0 FF D0 E8 60 00 00 42 FD 00 00
00 00 A2 FF 9A D8 A9 00 85 04 A9 DF 85 05 20 BA
FD 20 2F FA 20 52 F0 58 20 69 F2 6C FC FF 20 23
26 92 20 FF FF A0 FF D0 E8 60 00 00 43 FD 00 00
00 00 A2 FF 9A D8 A9 00 85 04 A9 DF 85 05 20 BB
FD 20 30 FA 20 52 F0 58 20 69 F2 6C FC FF 20 24
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 4F F2 C9 0A D0 05 A9
0D 20 4F F2 60 DA 5A A8 B2 04 AA A9 1B 20 4F F2
@@ -13,19 +13,19 @@ A9 63 20 4F F2 68 60 40 DA BA 48 E8 E8 BD 00 01
29 10 D0 06 68 FA 20 68 F2 40 68 FA 7C BF F0 C5
F0 C9 F0 CA F0 20 9A F0 40 40 20 68 F0 40 48 A0
04 B1 04 09 40 20 3F F2 88 B1 04 20 3F F2 88 10
F8 68 09 01 20 3F F2 20 1F FB 60 A2 08 A9 FF 20
F8 68 09 01 20 3F F2 20 20 FB 60 A2 08 A9 FF 20
3F F2 C9 FF D0 03 CA D0 F4 60 85 0C 86 0D 20 EB
F0 92 0C A9 FF 20 3F F2 A0 01 91 0C 20 0C FB 60
AA 20 96 FC A9 FF 20 3F F2 92 0C E6 0C D0 02 E6
F0 92 0C A9 FF 20 3F F2 A0 01 91 0C 20 0D FB 60
AA 20 97 FC A9 FF 20 3F F2 92 0C E6 0C D0 02 E6
0D CA D0 F0 60 85 0C 86 0D 20 EB F0 C9 02 B0 12
E6 0C D0 02 E6 0C A5 0C A6 0D 20 C3 FC A9 04 20
E6 0C D0 02 E6 0C A5 0C A6 0D 20 C4 FC A9 04 20
10 F1 60 48 A9 FF 20 3F F2 A9 00 20 33 F2 A9 FF
20 3F F2 68 20 CE F0 20 EB F0 A8 A9 FF 20 3F F2
A9 00 20 39 F2 A9 FF 20 3F F2 98 A2 00 60 A9 00
20 39 F2 20 8B F1 A9 FF 20 3F F2 A9 00 20 39 F2
A2 50 A9 FF 20 3F F2 CA D0 F8 60 A2 01 A9 C8 3A
D0 FD CA D0 F8 60 85 0E 86 0F A9 FF 92 0E 20 96
FC A5 04 85 10 A5 05 85 11 20 C7 FA A0 00 B1 10
D0 FD CA D0 F8 60 85 0E 86 0F A9 FF 92 0E 20 97
FC A5 04 85 10 A5 05 85 11 20 C8 FA A0 00 B1 10
91 04 C8 B1 10 91 04 C8 B1 10 91 04 C8 B1 10 91
04 A9 FF 20 3F F2 A9 00 20 33 F2 A9 FF 20 3F F2
A9 11 A0 04 91 04 A9 00 20 CE F0 20 EB F0 C9 FF
@@ -37,90 +37,90 @@ EB A9 FF 20 3F F2 A9 FF 20 3F F2 A5 15 92 0E A5
F2 68 60 A9 01 8D DB EF 60 9C DB EF 60 A9 00 8D
DA EF AD DB EF 30 FB AD D9 EF 60 8D E6 EF 60 48
8D E6 EF AD E7 EF 89 02 D0 F9 68 60 AD E6 EF A2
00 60 AD E7 EF A2 00 60 60 20 EA FA A2 00 86 06
86 07 A9 00 20 81 FB 20 D0 FA A9 FC A2 FD 20 90
FA 20 31 F3 C9 00 20 2E FC D0 03 4C 98 F2 A9 F5
A2 FD 20 90 FA 4C 25 F3 A9 EC A2 FD 20 90 FA A0
05 20 3D FB 20 81 FB AD 00 92 AE 01 92 20 C3 FC
A9 0C 20 4E FB 20 96 F1 A0 07 91 04 A0 07 A2 00
B1 04 C9 00 20 34 FC D0 03 4C DC F2 A0 06 A2 00
B1 04 C9 FE 20 34 FC F0 03 4C E5 F2 A2 00 A9 00
00 60 AD E7 EF A2 00 60 60 20 EB FA A2 00 86 06
86 07 A9 00 20 82 FB 20 D1 FA A9 FD A2 FD 20 91
FA 20 31 F3 C9 00 20 2F FC D0 03 4C 98 F2 A9 F6
A2 FD 20 91 FA 4C 25 F3 A9 ED A2 FD 20 91 FA A0
05 20 3E FB 20 82 FB AD 00 92 AE 01 92 20 C4 FC
A9 0C 20 4F FB 20 96 F1 A0 07 91 04 A0 07 A2 00
B1 04 C9 00 20 35 FC D0 03 4C DC F2 A0 06 A2 00
B1 04 C9 FE 20 35 FC F0 03 4C E5 F2 A2 00 A9 00
D0 03 4C E9 F2 A2 00 A9 01 D0 03 4C F1 F2 4C 22
F3 A0 06 A2 00 B1 04 A2 00 29 F0 20 15 FA D0 03
4C 0D F3 A9 F5 A2 FD 20 90 FA 4C 22 F3 A9 DD A2
FD 20 C3 FC A0 08 A2 00 B1 04 20 C3 FC A0 04 20
5C FA 6C 00 92 4C 28 F3 4C 28 F3 A0 0C 20 FB F9
60 20 F7 FA A9 00 20 AD FC 20 6E F1 4C 68 F3 A0
F3 A0 06 A2 00 B1 04 A2 00 29 F0 20 16 FA D0 03
4C 0D F3 A9 F6 A2 FD 20 91 FA 4C 22 F3 A9 DE A2
FD 20 C4 FC A0 08 A2 00 B1 04 20 C4 FC A0 04 20
5D FA 6C 00 92 4C 28 F3 4C 28 F3 A0 0C 20 FC F9
60 20 F8 FA A9 00 20 AE FC 20 6E F1 4C 68 F3 A0
00 A2 00 18 A9 01 71 04 91 04 A0 00 A2 00 B1 04
C9 FF 20 34 FC D0 03 4C 68 F3 A9 1B A2 FE 20 90
C9 FF 20 35 FC D0 03 4C 68 F3 A9 1C A2 FE 20 91
FA A2 00 A9 01 4C 1E F4 20 22 F4 A0 01 91 04 C9
01 20 2E FC D0 C9 A9 01 20 4E FB 20 3F F4 A0 01
A2 00 B1 04 C9 01 20 2E FC D0 03 4C 9C F3 A9 12
A2 FE 20 90 FA A2 00 A9 01 4C 1E F4 A0 05 A2 00
B1 04 C9 AA 20 2E FC D0 03 4C B3 F3 A2 00 A9 01
01 20 2F FC D0 C9 A9 01 20 4F FB 20 3F F4 A0 01
A2 00 B1 04 C9 01 20 2F FC D0 03 4C 9C F3 A9 13
A2 FE 20 91 FA A2 00 A9 01 4C 1E F4 A0 05 A2 00
B1 04 C9 AA 20 2F FC D0 03 4C B3 F3 A2 00 A9 01
4C 1E F4 A2 00 A9 00 A0 00 91 04 A0 00 A2 00 B1
04 C9 FF 20 34 FC D0 03 4C D9 F3 A9 03 A2 FE 20
90 FA A2 00 A9 01 4C 1E F4 20 61 F5 A0 01 91 04
A0 01 A2 00 B1 04 C9 02 20 4D FC D0 03 4C F7 F3
04 C9 FF 20 35 FC D0 03 4C D9 F3 A9 04 A2 FE 20
91 FA A2 00 A9 01 4C 1E F4 20 61 F5 A0 01 91 04
A0 01 A2 00 B1 04 C9 02 20 4E FC D0 03 4C F7 F3
20 7E F5 A0 01 91 04 A0 00 A2 00 18 A9 01 71 04
91 04 A0 01 A2 00 B1 04 C9 00 20 2E FC D0 AC A9
01 20 4E FB 20 E7 F4 A2 00 A9 00 4C 1E F4 20 24
FB 60 A2 00 A9 00 20 AD FC A2 00 86 06 86 07 A9
00 20 81 FB A2 00 A9 94 20 43 F1 4C 3E F4 60 20
C3 FC A2 00 A9 FF 20 3F F2 A2 00 A9 00 20 33 F2
A2 00 A9 FF 20 3F F2 A2 00 A9 08 20 AD FC A2 01
A9 00 85 06 A9 00 85 07 A9 AA 20 81 FB A2 00 A9
86 20 CE F0 A0 01 20 34 FB 20 25 F1 A2 00 A9 FF
91 04 A0 01 A2 00 B1 04 C9 00 20 2F FC D0 AC A9
01 20 4F FB 20 E7 F4 A2 00 A9 00 4C 1E F4 20 25
FB 60 A2 00 A9 00 20 AE FC A2 00 86 06 86 07 A9
00 20 82 FB A2 00 A9 94 20 43 F1 4C 3E F4 60 20
C4 FC A2 00 A9 FF 20 3F F2 A2 00 A9 00 20 33 F2
A2 00 A9 FF 20 3F F2 A2 00 A9 08 20 AE FC A2 01
A9 00 85 06 A9 00 85 07 A9 AA 20 82 FB A2 00 A9
86 20 CE F0 A0 01 20 35 FB 20 25 F1 A2 00 A9 FF
20 3F F2 A2 00 A9 00 20 39 F2 A2 00 A9 FF 20 3F
F2 20 0C FB 60 20 C3 FC A2 00 A9 FF 20 3F F2 A2
F2 20 0D FB 60 20 C4 FC A2 00 A9 FF 20 3F F2 A2
00 A9 00 20 33 F2 A2 00 A9 FF 20 3F F2 A2 00 A9
0D 20 AD FC A2 00 86 06 86 07 A9 00 20 81 FB A2
00 A9 00 20 CE F0 A0 01 20 34 FB 20 FA F0 A2 00
0D 20 AE FC A2 00 86 06 86 07 A9 00 20 82 FB A2
00 A9 00 20 CE F0 A0 01 20 35 FB 20 FA F0 A2 00
A9 FF 20 3F F2 A2 00 A9 00 20 39 F2 A2 00 A9 FF
20 3F F2 20 0C FB 60 20 C3 FC 20 C7 FA A2 00 A9
20 3F F2 20 0D FB 60 20 C4 FC 20 C8 FA A2 00 A9
FF 20 3F F2 A2 00 A9 00 20 33 F2 A2 00 A9 FF 20
3F F2 A0 00 91 04 A0 00 A2 00 B1 04 C9 FF 20 2E
3F F2 A0 00 91 04 A0 00 A2 00 B1 04 C9 FF 20 2F
FC D0 03 4C 27 F5 4C 19 F5 A2 00 A9 FF 20 3F F2
C9 FF 20 2E FC D0 F2 A2 00 A9 3A 20 AD FC A2 00
86 06 86 07 A9 00 20 81 FB A2 00 A9 00 20 CE F0
A0 02 20 34 FB 20 25 F1 A2 00 A9 FF 20 3F F2 A2
00 A9 00 20 39 F2 A2 00 A9 FF 20 3F F2 20 1A FB
60 A2 00 A9 37 20 AD FC A2 00 86 06 86 07 A9 00
20 81 FB A2 00 A9 00 20 43 F1 4C 7D F5 60 A2 00
A9 29 20 AD FC A2 00 86 06 A9 40 85 07 A9 00 20
81 FB A2 00 A9 00 20 43 F1 4C 9C F5 60 20 C3 FC
20 EA FA A0 03 A2 00 B1 04 4C AC F5 A0 0E 20 FB
F9 60 20 C3 FC A9 00 20 AD FC 20 D0 FA A2 00 A9
00 A0 00 20 DB FC A0 01 20 34 FB E0 02 20 4D FC
F0 03 4C D8 F5 4C 3A F6 A9 24 A2 FE 20 C3 FC A0
06 20 34 FB A0 00 20 29 FB 20 C3 FC A0 07 A2 00
A9 01 20 EB F9 A0 04 20 5C FA A0 02 A2 00 B1 04
C9 1F 20 34 FC D0 03 4C 1C F6 A9 28 A2 FE 20 90
C9 FF 20 2F FC D0 F2 A2 00 A9 3A 20 AE FC A2 00
86 06 86 07 A9 00 20 82 FB A2 00 A9 00 20 CE F0
A0 02 20 35 FB 20 25 F1 A2 00 A9 FF 20 3F F2 A2
00 A9 00 20 39 F2 A2 00 A9 FF 20 3F F2 20 1B FB
60 A2 00 A9 37 20 AE FC A2 00 86 06 86 07 A9 00
20 82 FB A2 00 A9 00 20 43 F1 4C 7D F5 60 A2 00
A9 29 20 AE FC A2 00 86 06 A9 40 85 07 A9 00 20
82 FB A2 00 A9 00 20 43 F1 4C 9C F5 60 20 C4 FC
20 EB FA A0 03 A2 00 B1 04 4C AC F5 A0 0E 20 FC
F9 60 20 C4 FC A9 00 20 AE FC 20 D1 FA A2 00 A9
00 A0 00 20 DC FC A0 01 20 35 FB E0 02 20 4E FC
F0 03 4C D8 F5 4C 3A F6 A9 25 A2 FE 20 C4 FC A0
06 20 35 FB A0 00 20 2A FB 20 C4 FC A0 07 A2 00
A9 01 20 EC F9 A0 04 20 5D FA A0 02 A2 00 B1 04
C9 1F 20 35 FC D0 03 4C 1C F6 A9 29 A2 FE 20 91
FA A2 00 A9 00 A0 02 91 04 4C 2E F6 A2 00 A9 20
20 68 F0 A0 02 A2 00 18 A9 01 71 04 91 04 A0 00
A2 00 A9 01 20 EB F9 4C C6 F5 A9 28 A2 FE 20 90
FA 20 1F FB 60 A0 00 B1 1A E6 1A D0 02 E6 1B 60
AD 4A 92 8D 45 92 20 F1 F6 A9 45 A2 92 20 C3 FC
20 A4 FC 4C 02 92 A5 18 38 E9 02 85 18 B0 02 C6
19 60 AD 4F 92 D0 11 20 8F F6 4C 0E FA AD 4F 92
D0 06 20 8F F6 4C 08 FA 20 8F F6 85 06 86 07 20
A2 00 A9 01 20 EC F9 4C C6 F5 A9 29 A2 FE 20 91
FA 20 20 FB 60 A0 00 B1 1A E6 1A D0 02 E6 1B 60
AD 4A 92 8D 45 92 20 F1 F6 A9 45 A2 92 20 C4 FC
20 A5 FC 4C 02 92 A5 18 38 E9 02 85 18 B0 02 C6
19 60 AD 4F 92 D0 11 20 8F F6 4C 0F FA AD 4F 92
D0 06 20 8F F6 4C 09 FA 20 8F F6 85 06 86 07 20
66 F6 A0 01 B1 18 AA 88 B1 18 60 A0 00 84 0C 84
0D B1 1A 38 E9 30 90 2C C9 0A B0 28 20 49 F6 48
A5 0C A6 0D 06 0C 26 0D 06 0C 26 0D 65 0C 85 0C
8A 65 0D 85 0D 06 0C 26 0D 68 65 0C 85 0C 90 D1
E6 0D B0 CD A5 0C A6 0D 60 AC 51 92 EE 51 92 99
52 92 60 A9 52 A2 92 18 6D 51 92 90 01 E8 4C C3
FC A5 1C A6 1D 4C C3 FC 20 50 F6 EE 4B 92 D0 F8
52 92 60 A9 52 A2 92 18 6D 51 92 90 01 E8 4C C4
FC A5 1C A6 1D 4C C4 FC 20 50 F6 EE 4B 92 D0 F8
EE 4C 92 D0 F3 60 20 F1 F6 AD 66 92 AE 67 92 20
C3 FC AD 68 92 AE 69 92 20 C3 FC 4C 02 92 84 0C
20 81 FB 20 E3 F6 A5 0C 4C B1 FB 84 0C 20 81 FB
20 E3 F6 A5 0C 4C F2 FB 48 A0 05 B9 18 00 99 3F
92 88 10 F7 68 85 18 86 19 20 04 FB 85 1A 86 1B
20 04 FB 85 1C 86 1D A9 00 A8 91 1C C8 91 1C C8
C4 FC AD 68 92 AE 69 92 20 C4 FC 4C 02 92 84 0C
20 82 FB 20 E3 F6 A5 0C 4C B2 FB 84 0C 20 82 FB
20 E3 F6 A5 0C 4C F3 FB 48 A0 05 B9 18 00 99 3F
92 88 10 F7 68 85 18 86 19 20 05 FB 85 1A 86 1B
20 05 FB 85 1C 86 1D A9 00 A8 91 1C C8 91 1C C8
B1 1C 8D 03 92 C8 B1 1C 8D 04 92 A5 1A 85 0C A5
1B 85 0D A0 00 B1 1A F0 0B C9 25 F0 07 C8 D0 F5
E6 1B D0 F1 98 18 65 1A 85 1A 90 02 E6 1B 38 E5
0C 85 0E A5 1B E5 0D 85 0F 05 0E F0 25 20 EA FA
0C 85 0E A5 1B E5 0D 85 0F 05 0E F0 25 20 EB FA
A0 05 A5 1D 91 04 88 A5 1C 91 04 88 A5 0D 91 04
88 A5 0C 91 04 88 A5 0F 91 04 88 A5 0E 91 04 20
02 92 20 45 F6 AA D0 0B A2 05 BD 3F 92 95 18 CA
@@ -136,103 +136,103 @@ C9 2A D0 09 20 49 F6 20 8F F6 4C 60 F8 20 9B F6
8D 4D 92 8E 4E 92 B1 1A C9 7A F0 19 C9 68 F0 15
C9 74 F0 11 C9 6A F0 08 C9 4C F0 04 C9 6C D0 0B
A9 FF 8D 4F 92 20 49 F6 4C 66 F8 8C 51 92 A2 52
8E 66 92 A2 92 8E 67 92 20 49 F6 C9 63 D0 0D 20
8F F6 8D 52 92 A2 00 A9 01 4C 92 F9 C9 64 F0 04
C9 69 D0 2D A2 00 AD 48 92 F0 02 A2 20 AD 47 92
F0 02 A2 2B 8E 50 92 20 7D F6 A4 07 30 0B AC 50
92 F0 06 8C 52 92 EE 51 92 A0 0A 20 1E F7 4C 89
F9 C9 6E D0 15 20 8F F6 85 0C 86 0D A0 00 B1 1C
91 0C C8 B1 1C 91 0C 4C 6B F7 C9 6F D0 27 20 7D
F6 AC 49 92 F0 17 48 86 14 05 14 05 06 05 07 0D
4D 92 0D 4E 92 F0 06 A9 30 20 D9 F6 68 A0 08 20
1E F7 4C 89 F9 C9 70 D0 0D A2 00 8E 4F 92 E8 8E
49 92 A9 78 D0 27 C9 73 D0 0C 20 8F F6 8D 66 92
8E 67 92 4C 89 F9 C9 75 D0 0B 20 72 F6 A0 0A 20
2B F7 4C 89 F9 C9 78 F0 04 C9 58 D0 29 48 AD 49
92 F0 0A A9 30 20 D9 F6 A9 58 20 D9 F6 20 72 F6
A0 10 20 2B F7 68 C9 78 D0 09 AD 66 92 AE 67 92
20 1B FD 4C 89 F9 4C 6B F7 AD 66 92 AE 67 92 20
05 FD 8D 68 92 8E 69 92 AD 4D 92 0D 4E 92 F0 15
AE 4D 92 EC 68 92 AD 4E 92 A8 ED 69 92 B0 06 8E
68 92 8C 69 92 38 AD 4B 92 ED 68 92 AA AD 4C 92
ED 69 92 B0 03 A9 00 AA 49 FF 8D 4C 92 8A 49 FF
8D 4B 92 AD 46 92 D0 03 20 FB F6 20 06 F7 AD 46
92 F0 03 20 FB F6 4C 6B F7 A0 00 18 71 04 91 04
48 C8 8A 71 04 91 04 AA 68 60 C8 48 18 98 65 04
85 04 90 02 E6 05 68 60 A0 FF E0 80 B0 02 A0 00
84 06 84 07 60 E0 00 D0 06 AA D0 03 A9 01 60 A2
00 8A 60 A0 00 F0 07 A9 52 A2 F0 4C 05 92 60 A9
00 85 0C A9 F0 85 0D A9 00 85 0E A9 92 85 0F A2
CD A9 FF 85 14 A0 00 E8 F0 0D B1 0C 91 0E C8 D0
F6 E6 0D E6 0F D0 F0 E6 14 D0 EF 60 8C 6A 92 88
88 98 18 65 04 85 0C A6 05 90 01 E8 86 0D A0 01
B1 0C AA 88 B1 0C 20 C3 FC A5 0C A6 0D 20 8A FD
AC 6A 92 4C FB F9 85 0C 86 0D 20 75 F0 4C 94 FA
85 0C 86 0D A0 00 B1 0C F0 0E C8 84 14 20 68 F0
A4 14 D0 F2 E6 0D D0 EE 60 E0 00 D0 15 4A AA BD
51 FE 90 05 4A 4A 4A 4A 18 29 0F AA BD 46 FE A2
00 60 38 A9 00 AA 60 A4 04 D0 02 C6 05 C6 04 60
A5 04 38 E9 02 85 04 90 01 60 C6 05 60 A5 04 38
E9 04 85 04 90 01 60 C6 05 60 A5 04 38 E9 06 85
04 90 01 60 C6 05 60 A5 04 38 E9 07 85 04 90 01
60 C6 05 60 A0 01 B1 04 AA 88 B1 04 E6 04 F0 05
E6 04 F0 03 60 E6 04 E6 05 60 A0 03 4C FB F9 A0
05 4C FB F9 A0 08 4C FB F9 85 0C 86 0D A2 00 B1
0C 60 A0 01 B1 04 AA 88 B1 04 60 A0 03 B1 04 85
07 88 B1 04 85 06 88 B1 04 AA 88 B1 04 60 A2 00
18 65 04 48 8A 65 05 AA 68 60 18 49 FF 69 01 48
8A 49 FF 69 00 AA A5 06 49 FF 69 00 85 06 A5 07
49 FF 69 00 85 07 68 60 A9 00 AA A0 00 84 06 84
07 48 20 DD FA A0 03 A5 07 91 04 88 A5 06 91 04
88 8A 91 04 68 88 91 04 60 85 14 20 04 FB 85 0E
86 0F 85 10 86 11 20 96 FC 20 04 FB 85 06 86 07
60 20 99 FB A6 07 A4 14 C0 0A D0 39 A5 06 05 0D
05 0C D0 11 E0 80 D0 0D A0 0B B9 3A FE 91 0E 88
10 F8 4C 29 FC 8A 10 1D A9 2D A0 00 91 0E E6 0E
D0 02 E6 0F A5 0C A6 0D 20 5A FB 85 0C 86 0D 4C
F5 FB 20 99 FB A9 00 48 A0 20 A9 00 06 0C 26 0D
26 06 26 07 2A C5 14 90 04 E5 14 E6 0C 88 D0 EC
A8 B9 2A FE 48 A5 0C 05 0D 05 06 05 07 D0 D9 A0
00 68 91 0E F0 03 C8 D0 F8 A5 10 A6 11 60 D0 06
A2 00 8A 60 D0 FA A2 00 A9 01 60 F0 F9 30 F7 A2
00 8A 60 F0 02 10 EF A2 00 8A 60 F0 E9 90 E7 A2
00 8A 60 F0 DB A2 00 8A 2A 60 20 83 FC A6 11 F0
13 B1 0C 91 0E C8 B1 0C 91 0E C8 D0 F4 E6 0D E6
0F CA D0 ED A6 10 F0 08 B1 0C 91 0E C8 CA D0 F8
4C 04 FB 85 10 86 11 20 96 FC C8 B1 04 AA 86 0F
88 B1 04 85 0E 60 A0 01 B1 04 85 0D 88 B1 04 85
0C 4C 0C FB A9 01 4C C1 FC A0 00 B1 04 A4 04 F0
07 C6 04 A0 00 91 04 60 C6 05 C6 04 91 04 60 A9
00 A2 00 48 A5 04 38 E9 02 85 04 B0 02 C6 05 A0
01 8A 91 04 68 88 91 04 60 A0 00 91 04 C8 48 8A
91 04 68 60 85 0E 86 0F 20 96 FC B1 0C D1 0E D0
0C AA F0 10 C8 D0 F4 E6 0D E6 0F D0 EE B0 03 A2
FF 60 A2 01 60 85 0E 86 0F A2 00 A0 00 B1 0E F0
08 C8 D0 F9 E6 0F E8 D0 F4 98 60 85 0C 86 0D 85
0E 86 0F A0 00 B1 0C F0 14 20 AD FA 29 02 F0 06
B1 0C 69 20 91 0C C8 D0 EC E6 0D D0 E8 A5 0E A6
0F 60 20 04 FB 85 0E 86 0F E8 8E 31 92 AA E8 8E
30 92 20 96 FC 20 04 FB 85 10 86 11 A0 00 84 14
B1 10 18 65 0E 91 10 C8 B1 10 65 0F 91 10 CE 30
92 F0 11 A4 14 B1 0C C8 D0 02 E6 0D 84 14 20 68
F0 4C 6E FD CE 31 92 D0 EA 60 85 0C 86 0D A9 00
8D 2A 92 8D 2B 92 A0 01 B1 04 AA 88 B1 04 20 C3
FC A0 02 A9 2A 91 04 C8 A9 92 91 04 A5 0C A6 0D
20 38 F7 AD 2A 92 AE 2B 92 60 A9 32 85 0C A9 92
85 0D A9 00 A8 A2 00 F0 0A 91 0C C8 D0 FB E6 0D
CA D0 F6 C0 39 F0 05 91 0C C8 D0 F7 60 62 61 64
20 74 6F 6B 65 6E 3A 20 25 78 0A 00 53 75 63 63
65 73 73 0A 00 45 72 72 6F 72 0A 00 53 74 61 72
74 0A 00 6F 70 5F 63 6F 6E 64 20 65 72 72 6F 72
0A 00 49 46 20 43 6F 6E 64 0A 00 47 6F 20 49 44
4C 45 0A 00 25 32 78 00 0A 00 30 31 32 33 34 35
36 37 38 39 41 42 43 44 45 46 2D 32 31 34 37 34
38 33 36 34 38 00 00 01 02 0C 09 0A 10 40 50 A0
D0 66 66 66 66 A6 88 88 66 66 66 66 66 66 66 66
66 09 00 00 00 00 00 00 00 33 33 33 33 33 00 00
00 50 55 55 25 22 22 22 22 22 22 22 22 22 02 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
8E 66 92 A2 92 8E 67 92 20 49 F6 C9 63 D0 0E 20
8F F6 8D 52 92 A9 00 8D 53 92 4C 8A F9 C9 64 F0
04 C9 69 D0 2D A2 00 AD 48 92 F0 02 A2 20 AD 47
92 F0 02 A2 2B 8E 50 92 20 7D F6 A4 07 30 0B AC
50 92 F0 06 8C 52 92 EE 51 92 A0 0A 20 1E F7 4C
8A F9 C9 6E D0 15 20 8F F6 85 0C 86 0D A0 00 B1
1C 91 0C C8 B1 1C 91 0C 4C 6B F7 C9 6F D0 27 20
7D F6 AC 49 92 F0 17 48 86 14 05 14 05 06 05 07
0D 4D 92 0D 4E 92 F0 06 A9 30 20 D9 F6 68 A0 08
20 1E F7 4C 8A F9 C9 70 D0 0D A2 00 8E 4F 92 E8
8E 49 92 A9 78 D0 27 C9 73 D0 0C 20 8F F6 8D 66
92 8E 67 92 4C 8A F9 C9 75 D0 0B 20 72 F6 A0 0A
20 2B F7 4C 8A F9 C9 78 F0 04 C9 58 D0 29 48 AD
49 92 F0 0A A9 30 20 D9 F6 A9 58 20 D9 F6 20 72
F6 A0 10 20 2B F7 68 C9 78 D0 09 AD 66 92 AE 67
92 20 1C FD 4C 8A F9 4C 6B F7 AD 66 92 AE 67 92
20 06 FD 8D 68 92 8E 69 92 AD 4D 92 0D 4E 92 F0
15 AE 4D 92 EC 68 92 AD 4E 92 A8 ED 69 92 B0 06
8E 68 92 8C 69 92 38 AD 4B 92 ED 68 92 AA AD 4C
92 ED 69 92 B0 03 A9 00 AA 49 FF 8D 4C 92 8A 49
FF 8D 4B 92 AD 46 92 D0 03 20 FB F6 20 06 F7 AD
46 92 F0 03 20 FB F6 4C 6B F7 A0 00 18 71 04 91
04 48 C8 8A 71 04 91 04 AA 68 60 C8 48 18 98 65
04 85 04 90 02 E6 05 68 60 A0 FF E0 80 B0 02 A0
00 84 06 84 07 60 E0 00 D0 06 AA D0 03 A9 01 60
A2 00 8A 60 A0 00 F0 07 A9 52 A2 F0 4C 05 92 60
A9 00 85 0C A9 F0 85 0D A9 00 85 0E A9 92 85 0F
A2 CD A9 FF 85 14 A0 00 E8 F0 0D B1 0C 91 0E C8
D0 F6 E6 0D E6 0F D0 F0 E6 14 D0 EF 60 8C 6A 92
88 88 98 18 65 04 85 0C A6 05 90 01 E8 86 0D A0
01 B1 0C AA 88 B1 0C 20 C4 FC A5 0C A6 0D 20 8B
FD AC 6A 92 4C FC F9 85 0C 86 0D 20 75 F0 4C 95
FA 85 0C 86 0D A0 00 B1 0C F0 0E C8 84 14 20 68
F0 A4 14 D0 F2 E6 0D D0 EE 60 E0 00 D0 15 4A AA
BD 52 FE 90 05 4A 4A 4A 4A 18 29 0F AA BD 47 FE
A2 00 60 38 A9 00 AA 60 A4 04 D0 02 C6 05 C6 04
60 A5 04 38 E9 02 85 04 90 01 60 C6 05 60 A5 04
38 E9 04 85 04 90 01 60 C6 05 60 A5 04 38 E9 06
85 04 90 01 60 C6 05 60 A5 04 38 E9 07 85 04 90
01 60 C6 05 60 A0 01 B1 04 AA 88 B1 04 E6 04 F0
05 E6 04 F0 03 60 E6 04 E6 05 60 A0 03 4C FC F9
A0 05 4C FC F9 A0 08 4C FC F9 85 0C 86 0D A2 00
B1 0C 60 A0 01 B1 04 AA 88 B1 04 60 A0 03 B1 04
85 07 88 B1 04 85 06 88 B1 04 AA 88 B1 04 60 A2
00 18 65 04 48 8A 65 05 AA 68 60 18 49 FF 69 01
48 8A 49 FF 69 00 AA A5 06 49 FF 69 00 85 06 A5
07 49 FF 69 00 85 07 68 60 A9 00 AA A0 00 84 06
84 07 48 20 DE FA A0 03 A5 07 91 04 88 A5 06 91
04 88 8A 91 04 68 88 91 04 60 85 14 20 05 FB 85
0E 86 0F 85 10 86 11 20 97 FC 20 05 FB 85 06 86
07 60 20 9A FB A6 07 A4 14 C0 0A D0 39 A5 06 05
0D 05 0C D0 11 E0 80 D0 0D A0 0B B9 3B FE 91 0E
88 10 F8 4C 2A FC 8A 10 1D A9 2D A0 00 91 0E E6
0E D0 02 E6 0F A5 0C A6 0D 20 5B FB 85 0C 86 0D
4C F6 FB 20 9A FB A9 00 48 A0 20 A9 00 06 0C 26
0D 26 06 26 07 2A C5 14 90 04 E5 14 E6 0C 88 D0
EC A8 B9 2B FE 48 A5 0C 05 0D 05 06 05 07 D0 D9
A0 00 68 91 0E F0 03 C8 D0 F8 A5 10 A6 11 60 D0
06 A2 00 8A 60 D0 FA A2 00 A9 01 60 F0 F9 30 F7
A2 00 8A 60 F0 02 10 EF A2 00 8A 60 F0 E9 90 E7
A2 00 8A 60 F0 DB A2 00 8A 2A 60 20 84 FC A6 11
F0 13 B1 0C 91 0E C8 B1 0C 91 0E C8 D0 F4 E6 0D
E6 0F CA D0 ED A6 10 F0 08 B1 0C 91 0E C8 CA D0
F8 4C 05 FB 85 10 86 11 20 97 FC C8 B1 04 AA 86
0F 88 B1 04 85 0E 60 A0 01 B1 04 85 0D 88 B1 04
85 0C 4C 0D FB A9 01 4C C2 FC A0 00 B1 04 A4 04
F0 07 C6 04 A0 00 91 04 60 C6 05 C6 04 91 04 60
A9 00 A2 00 48 A5 04 38 E9 02 85 04 B0 02 C6 05
A0 01 8A 91 04 68 88 91 04 60 A0 00 91 04 C8 48
8A 91 04 68 60 85 0E 86 0F 20 97 FC B1 0C D1 0E
D0 0C AA F0 10 C8 D0 F4 E6 0D E6 0F D0 EE B0 03
A2 FF 60 A2 01 60 85 0E 86 0F A2 00 A0 00 B1 0E
F0 08 C8 D0 F9 E6 0F E8 D0 F4 98 60 85 0C 86 0D
85 0E 86 0F A0 00 B1 0C F0 14 20 AE FA 29 02 F0
06 B1 0C 69 20 91 0C C8 D0 EC E6 0D D0 E8 A5 0E
A6 0F 60 20 05 FB 85 0E 86 0F E8 8E 31 92 AA E8
8E 30 92 20 97 FC 20 05 FB 85 10 86 11 A0 00 84
14 B1 10 18 65 0E 91 10 C8 B1 10 65 0F 91 10 CE
30 92 F0 11 A4 14 B1 0C C8 D0 02 E6 0D 84 14 20
68 F0 4C 6F FD CE 31 92 D0 EA 60 85 0C 86 0D A9
00 8D 2A 92 8D 2B 92 A0 01 B1 04 AA 88 B1 04 20
C4 FC A0 02 A9 2A 91 04 C8 A9 92 91 04 A5 0C A6
0D 20 38 F7 AD 2A 92 AE 2B 92 60 A9 32 85 0C A9
92 85 0D A9 00 A8 A2 00 F0 0A 91 0C C8 D0 FB E6
0D CA D0 F6 C0 39 F0 05 91 0C C8 D0 F7 60 62 61
64 20 74 6F 6B 65 6E 3A 20 25 78 0A 00 53 75 63
63 65 73 73 0A 00 45 72 72 6F 72 0A 00 53 74 61
72 74 0A 00 6F 70 5F 63 6F 6E 64 20 65 72 72 6F
72 0A 00 49 46 20 43 6F 6E 64 0A 00 47 6F 20 49
44 4C 45 0A 00 25 32 78 00 0A 00 30 31 32 33 34
35 36 37 38 39 41 42 43 44 45 46 2D 32 31 34 37
34 38 33 36 34 38 00 00 01 02 0C 09 0A 10 40 50
A0 D0 66 66 66 66 A6 88 88 66 66 66 66 66 66 66
66 66 09 00 00 00 00 00 00 00 33 33 33 33 33 00
00 00 50 55 55 25 22 22 22 22 22 22 22 22 22 02
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

View File

@@ -1,51 +0,0 @@
; ---------------------------------------------------------------------------
; interrupt.s
; ---------------------------------------------------------------------------
;
; Interrupt handler.
;
; Checks for a BRK instruction and returns from all valid interrupts.
.import _handle_irq
.import _cputc, _clrscr
.export _irq_int, _nmi_int
.include "io.inc65"
.segment "CODE"
.PC02 ; Force 65C02 assembly mode
; ---------------------------------------------------------------------------
; Non-maskable interrupt (NMI) service routine
_nmi_int: RTI ; Return from all NMI interrupts
; ---------------------------------------------------------------------------
; Maskable interrupt (IRQ) service routine
_irq_int: PHX ; Save X register contents to stack
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
rti

View File

@@ -14,6 +14,18 @@ RTC_IRQ_THRESHOLD = $20
RTC_OUTPUT = $30
RTC_CONTROL = $30
THRESHOLD_0 = $a0
; THRESHOLD_1 = $0f
THRESHOLD_1 = $00
THRESHOLD_2 = $00
THRESHOLD_3 = $00
; IRQ_THRESHOLD_0 = $32
IRQ_THRESHOLD_0 = $10
IRQ_THRESHOLD_1 = $00
IRQ_THRESHOLD_2 = $00
IRQ_THRESHOLD_3 = $00
; void init_rtc(void);
; Initialize rtc and generate 50ms interrupts
.proc _init_rtc
@@ -36,36 +48,36 @@ RTC_CONTROL = $30
lda #RTC_THRESHOLD+0 ; Set threshold to 4000 ($fa0)
sta RTC_CMD
lda #$a0
lda #THRESHOLD_0
sta RTC_DAT
lda #RTC_THRESHOLD+1
sta RTC_CMD
lda #$0f
lda #THRESHOLD_1
sta RTC_DAT
lda #RTC_THRESHOLD+2
sta RTC_CMD
lda #$00
lda #THRESHOLD_2
sta RTC_DAT
lda #RTC_THRESHOLD+3
sta RTC_CMD
lda #$00
lda #THRESHOLD_3
sta RTC_DAT
lda #RTC_IRQ_THRESHOLD+0 ; Set irq threshold to 50 ($32)
sta RTC_CMD
lda #$32
lda #IRQ_THRESHOLD_0
sta RTC_DAT
lda #RTC_IRQ_THRESHOLD+1
sta RTC_CMD
lda #$00
lda #IRQ_THRESHOLD_1
sta RTC_DAT
lda #RTC_IRQ_THRESHOLD+2
sta RTC_CMD
lda #$00
lda #IRQ_THRESHOLD_2
sta RTC_DAT
lda #RTC_IRQ_THRESHOLD+3
sta RTC_CMD
lda #$00
lda #IRQ_THRESHOLD_3
sta RTC_DAT
lda #$30

View File

@@ -9,6 +9,8 @@
void irq_int();
void nmi_int();
void register_irq(void* addr, uint8_t irqn);
uint8_t irq_get_status();
void irq_set_status(uint8_t);

View File

@@ -0,0 +1,43 @@
.MACPACK generic
.autoimport
.export _irq_int, _nmi_int
.export _register_irq
IRQ_CMD_ADDR = $effc
IRQ_DAT_ADDR = $effd
IRQ_CMD_READIRQ = $00
.proc _nmi_int
rti
.endproc
; _irq_int
.proc _irq_int
; Load IRQ number
lda #IRQ_CMD_READIRQ
sta IRQ_CMD_ADDR
lda IRQ_DAT_ADDR
; shift by 2 (oh so only 128 interrupts are supported lol)
lsr
tax
jmp (irq_table,x)
; use that to index jump table
.endproc
; void register_irq(void* addr, uint8_t irqn);
.proc _register_irq
tax
jsr popa
sta irq_table,x
jsr popa
sta irq_table+1,x
rts
.endproc
.data
; interrupt handler jump table
irq_table: .res 256

View File

@@ -2,7 +2,7 @@
#include <stdint.h>
#include <conio.h>
#include "devices/interrupt.h"
#include "interrupts/interrupt.h"
#include "devices/uart.h"

View File

@@ -1,8 +1,14 @@
#include <conio.h>
#include "devices/interrupt_controller.h"
#include "interrupts/interrupt.h"
#include "devices/rtc.h"
void handle_rtc_interrupt() {
cputs("In IRQ interrupt!\n");
asm volatile ("rti");
}
int main() {
cputs("Kernel\n");
@@ -19,6 +25,8 @@ int main() {
cputs("Initialize RTC\n");
init_rtc();
register_irq(&handle_rtc_interrupt, 0);
// cputs("Initialize Serial\n");
// // init_serial();
// enable_irq(2, IRQ_EDGE);
@@ -26,4 +34,4 @@ int main() {
while(1);
return 0;
}
}