Merge branch 'bios' into 'master'

#4 Load entire kernel into memory

See merge request bslathi19/super6502!19
This commit is contained in:
Byron Lathi
2023-08-26 15:14:25 +00:00
4 changed files with 343 additions and 187 deletions

View File

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

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<efx:project name="super6502" description="" last_change_date="Mon August 21 2023 19:23:14" location="/home/byron/Projects/super6502/hw/efinix_fpga" sw_version="2023.1.150" last_run_state="pass" last_run_tool="efx_pgm" last_run_flow="bitstream" config_result_in_sync="true" design_ood="sync" place_ood="sync" route_ood="sync" xmlns:efx="http://www.efinixinc.com/enf_proj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.efinixinc.com/enf_proj enf_proj.xsd">
<efx:project name="super6502" description="" last_change_date="Sat August 26 2023 07:37:48" location="/home/byron/Projects/super6502/hw/efinix_fpga" sw_version="2023.1.150" last_run_state="pass" last_run_tool="efx_pgm" last_run_flow="bitstream" config_result_in_sync="true" design_ood="sync" place_ood="sync" route_ood="sync" xmlns:efx="http://www.efinixinc.com/enf_proj" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.efinixinc.com/enf_proj enf_proj.xsd">
<efx:device_info>
<efx:family name="Trion"/>
<efx:device name="T20F256"/>

View File

@@ -11,6 +11,17 @@
fatbuf = $A000
filebuf = $B000
.zeropage
tbase: .res 2
tlen: .res 2
dbase: .res 2
dlen: .res 2
olen: .res 1
otype: .res 1
userptr: .res 2
.segment "BOOTLOADER"
sectors_per_cluster = $800D
@@ -18,6 +29,21 @@ reserved_sectors = $800E
fat_count = $8010
sectors_per_fat = $8024
O65_NO_C65 = $00
O65_MAGIC = $02
O65_VERSION = $05
O65_MODE = $06
O65_TBASE = $08
O65_TLEN = $0a
O65_DBASE = $0c
O65_DLEN = $0e
O65_BBASE = $10
O65_BLEN = $12
O65_ZBASE = $14
O65_ZLEN = $16
O65_STACK = $18
O65_OPT_START = $1A
_start:
lda #<str
ldx #>str
@@ -109,6 +135,7 @@ _start:
ldy #$1d ; load file size (256)
lda (ptr3),y
lsr ; divide by 2 to get file size (512)
sta filesiz
jsr pusha0
ldy #$4
jsr _cprintf
@@ -134,28 +161,154 @@ _start:
adc data_start ; add that to low data start
bcc @5 ; handle carry
inx
@5: stz sreg
stz sreg+1
phx
pha
@5: sta cluster
stx cluster + 1
jsr pusheax
lda #<filebuf
ldx #>filebuf
sta userptr
stx userptr + 1
@read_sd:
lda cluster
ldx cluster + 1
stz sreg
stz sreg+1
jsr pusheax
lda userptr
ldx userptr + 1
jsr pushax
lda #<ptr1
ldx #>ptr1
jsr _SD_readSingleBlock
lda #<filebuf
lda userptr
ldx userptr + 1
jsr _SD_printBuf
dec filesiz
bmi @doneload
inc cluster
inc userptr + 1
inc userptr + 1
bra @read_sd
@doneload:
ldy #O65_TBASE
lda filebuf,y
sta tbase
iny
ldx filebuf,y
stx tbase + 1
ldy #O65_TLEN
lda filebuf,y
sta tlen
iny
ldx filebuf,y
stx tlen + 1
ldy #O65_DBASE
lda filebuf,y
sta dbase
iny
ldx filebuf,y
stx dbase + 1
ldy #O65_DLEN
lda filebuf,y
sta dlen
iny
ldx filebuf,y
stx dlen + 1
ldy #O65_OPT_START
phy
@opt_len:
lda #<opt_str
ldx #>opt_str
jsr pushax
ply
lda filebuf,y
beq @opt_end
sta olen
phy
jsr pusha0
ply
iny
lda filebuf,y
sta otype
phy
jsr pusha0
ldy #$6
jsr _cprintf
lda #<word_str
ldx #>word_str
jsr pushax
pla
adc olen
dec
dec
pha
bra @opt_len
@opt_end:
iny ; account for reading size
phy
lda #<opt_done
ldx #>opt_done
jsr pushax
pla
pha
jsr pusha0
ldy #$4
jsr _cprintf
pla
ldx #>filebuf
adc #<filebuf
bcc @6
inx
@6: sta userptr
stx userptr + 1
lda #<word_str
ldx #>word_str
jsr pushax
lda userptr
ldx userptr + 1
jsr pushax
ldy #$4
jsr _cprintf
;void* __fastcall__ memcpy (void* dest, const void* src, size_t count);
lda tbase
ldx tbase + 1
jsr pushax
lda userptr
ldx userptr + 1
jsr pushax
lda tlen
ldx tlen + 1
jsr _memcpy
lda #<$1000
ldx #>$1000
jsr _SD_printBuf
@end: bra @end
filesiz: .res 1
cluster: .res 2
str: .asciiz "boot2\r\n"
kernel_str: .asciiz "KERNEL O65"
_good: .asciiz "Found KERNEL\r\n"
word_str: .asciiz "Word Value: %x\r\n"
word_str: .asciiz "Word Value: %x\r\n"
opt_str: .asciiz "Opt Len: %x, Opt Type: %x\r\n"
opt_done: .asciiz "Options done. total option length: %x\r\n"

View File

@@ -37,6 +37,9 @@ class O65():
self.options.append((olen, otype, obytes))
olen = int.from_bytes(_file.read(1))
text_offs = _file.tell()
print(f"Text offset: {text_offs}")
self.text = _file.read(self.header["tlen"])
self.data = _file.read(self.header["dlen"])