Merge branch 'long_sim' into 'master'

Long sim

See merge request bslathi19/super6502!38
This commit is contained in:
Byron Lathi
2023-10-31 03:07:49 +00:00
13 changed files with 274 additions and 238 deletions

View File

@@ -108,6 +108,7 @@ full sim:
artifacts: artifacts:
paths: paths:
- hw/efinix_fpga/simulation/sim_top.vcd - hw/efinix_fpga/simulation/sim_top.vcd
- hw/efinix_fpga/simulation/fs.fat
script: script:
- source init_env.sh - source init_env.sh
- cd hw/efinix_fpga/simulation - cd hw/efinix_fpga/simulation

View File

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

View File

@@ -23,11 +23,11 @@ all: sim
.PHONY: sim .PHONY: sim
sim: $(TARGET) sim: $(TARGET)
vvp $(TARGET) -fst vvp -i $(TARGET) -fst
.PHONY: full_sim .PHONY: full_sim
full_sim: $(TARGET) $(SD_IMAGE) full_sim: $(TARGET) $(SD_IMAGE)
vvp $(TARGET) -fst vvp -i $(TARGET) -fst
mapper_tb: $(SRCS) $(TBS) mapper_tb: $(SRCS) $(TBS)
iverilog -g2005-sv $(FLAGS) -s $@ -o $@ $(INC) $(SRCS) $(TBS) iverilog -g2005-sv $(FLAGS) -s $@ -o $@ $(INC) $(SRCS) $(TBS)
@@ -40,6 +40,8 @@ $(TARGET): $(INIT_MEM) $(SRCS)
iverilog -g2005-sv $(FLAGS) -s $(TOP_MODULE) -o $(TARGET) $(INC) $(SRCS) iverilog -g2005-sv $(FLAGS) -s $(TOP_MODULE) -o $(TARGET) $(INC) $(SRCS)
$(INIT_MEM): $(INIT_MEM):
# Make kernel
$(MAKE) -C $(REPO_TOP)/sw/kernel
$(MAKE) -C $(TEST_FOLDER) $(MAKE) -C $(TEST_FOLDER)
cp $(TEST_PROGRAM) ./init_hex.mem cp $(TEST_PROGRAM) ./init_hex.mem

View File

@@ -53,7 +53,7 @@ initial begin
button_reset <= '0; button_reset <= '0;
repeat(10) @(r_clk_cpu); repeat(10) @(r_clk_cpu);
button_reset <= '1; button_reset <= '1;
repeat(1000000) @(r_clk_cpu); repeat(5000000) @(r_clk_cpu);
$finish(); $finish();
end end

View File

@@ -1,4 +1,4 @@
.PHONY: all install bios kernel clean .PHONY: all install bios kernel clean distclean
all: toolchain bios kernel all: toolchain bios kernel
@@ -15,8 +15,9 @@ bios:
kernel: kernel:
@$(MAKE) -C kernel @$(MAKE) -C kernel
distclean: clean
@$(MAKE) -C cc65 --no-print-directory $@
clean: clean:
@$(MAKE) -C bios --no-print-directory $@ @$(MAKE) -C bios --no-print-directory $@
@$(MAKE) -C kernel --no-print-directory $@ @$(MAKE) -C kernel --no-print-directory $@
@$(MAKE) -C cc65 --no-print-directory $@

View File

@@ -2,6 +2,8 @@ CC=../cc65/bin/cl65
CFLAGS=-T -t none -I. --cpu "65C02" -DRTL_SIM CFLAGS=-T -t none -I. --cpu "65C02" -DRTL_SIM
LDFLAGS=-C link.ld -m $(NAME).map LDFLAGS=-C link.ld -m $(NAME).map
FSDIR=$(REPO_TOP)/sw/fsdir
NAME=bios NAME=bios
BIN=$(NAME).bin BIN=$(NAME).bin
@@ -21,9 +23,9 @@ OBJS+=$(patsubst %.c,%.o,$(filter %c,$(SRCS)))
all: $(HEX) all: $(HEX)
$(HEX): $(BIN) $(HEX): $(BIN) $(FSDIR)
objcopy --input-target=binary --output-target=verilog $(BIN) $(HEX) objcopy --input-target=binary --output-target=verilog $(BIN) $(HEX)
cp boot2.bin ../fsdir cp boot2.bin $(FSDIR)
cmp $(HEX) $(FPGA_IMG); \ cmp $(HEX) $(FPGA_IMG); \
RETVAL=$$?; \ RETVAL=$$?; \
if [ $$RETVAL -eq 0 ]; then \ if [ $$RETVAL -eq 0 ]; then \
@@ -34,6 +36,8 @@ $(HEX): $(BIN)
echo "Update ROM or rebuild FPGA image!"; \ echo "Update ROM or rebuild FPGA image!"; \
fi fi
$(FSDIR):
mkdir $(FSDIR)
$(BIN): $(OBJS) $(BIN): $(OBJS)

View File

@@ -68,9 +68,9 @@ _start:
ldx #>ptr1 ldx #>ptr1
jsr _SD_readSingleBlock jsr _SD_readSingleBlock
lda #<fatbuf ; lda #<fatbuf
ldx #>fatbuf ; ldx #>fatbuf
jsr _SD_printBuf ; jsr _SD_printBuf
lda #$20 ; Start at first directory entry (first is a disk label) lda #$20 ; Start at first directory entry (first is a disk label)
sta ptr3 sta ptr3
@@ -158,10 +158,16 @@ _start:
sec sec
sbc #$02 ; don't handle carry, assume low byte is not 0 or 1 sbc #$02 ; don't handle carry, assume low byte is not 0 or 1
clc
sta tmp1
ldx data_start + 1 ; load x as high data start ldx data_start + 1 ; load x as high data start
asl ; multiply cluster num (minus 2) by 8 phx
asl ldx sectors_per_cluster ; multiply cluster num (minus 2) by sectors_per_cluster
asl lda #$00
@8: adc tmp1
dex
bne @8
plx
clc clc
adc data_start ; add that to low data start adc data_start ; add that to low data start
bcc @5 ; handle carry bcc @5 ; handle carry
@@ -187,9 +193,9 @@ _start:
ldx #>ptr1 ldx #>ptr1
jsr _SD_readSingleBlock jsr _SD_readSingleBlock
lda userptr ; lda userptr
ldx userptr + 1 ; ldx userptr + 1
jsr _SD_printBuf ; jsr _SD_printBuf
dec filesiz dec filesiz
bmi @doneload bmi @doneload
@@ -254,9 +260,9 @@ _start:
jsr pushax jsr pushax
pla pla
clc
adc olen adc olen
dec dec
dec
pha pha
bra @opt_len bra @opt_len
@@ -272,6 +278,7 @@ _start:
ldy #$4 ldy #$4
jsr _cprintf jsr _cprintf
clc
pla pla
ldx #>filebuf ldx #>filebuf
adc #<filebuf adc #<filebuf
@@ -298,10 +305,11 @@ _start:
ldx tlen + 1 ldx tlen + 1
jsr _memcpy jsr _memcpy
lda #<$1000 ; lda #<$1000
ldx #>$1000 ; ldx #>$1000
jsr _SD_printBuf ; jsr _SD_printBuf
clc
lda userptr + 1 lda userptr + 1
adc tlen + 1 adc tlen + 1
tax tax

View File

@@ -71,9 +71,9 @@ _main:
ldx #>ptr1 ldx #>ptr1
jsr _SD_readSingleBlock jsr _SD_readSingleBlock
lda #<buf ; lda #<buf
ldx #>buf ; ldx #>buf
jsr _SD_printBuf ; jsr _SD_printBuf
lda #$20 ; Start at first directory entry (first is a disk label) lda #$20 ; Start at first directory entry (first is a disk label)
@@ -118,10 +118,16 @@ _main:
sec sec
sbc #$02 ; don't handle carry, assume low byte is not 0 or 1 sbc #$02 ; don't handle carry, assume low byte is not 0 or 1
clc
sta tmp1
ldx data_start + 1 ; load x as high data start ldx data_start + 1 ; load x as high data start
asl ; multiply cluster num (minus 2) by 8 phx
asl ldx sectors_per_cluster ; multiply cluster num (minus 2) by sectors_per_cluster
asl lda #$00
@4: adc tmp1
dex
bne @4
plx
clc clc
adc data_start ; add that to low data start adc data_start ; add that to low data start
bcc @3 ; handle carry bcc @3 ; handle carry

View File

@@ -33,8 +33,12 @@ int main() {
res[0] = SD_readSingleBlock(addr, buf, &token); res[0] = SD_readSingleBlock(addr, buf, &token);
// if no error, print buffer // if no error, print buffer
if((res[0] == 0x00) && (token == SD_START_TOKEN)) if((res[0] == 0x00) && (token == SD_START_TOKEN)) {
#ifndef RTL_SIM
SD_printBuf(buf); SD_printBuf(buf);
#endif
}
//else if error token received, print //else if error token received, print
else if(!(token & 0xF0)) else if(!(token & 0xF0))
{ {

View File

@@ -7,7 +7,7 @@ NAME=kernel
O65 = $(NAME).o65 O65 = $(NAME).o65
FSDIR=../fsdir FSDIR=$(REPO_TOP)/sw/fsdir
LISTS=lists LISTS=lists
@@ -17,9 +17,12 @@ OBJS+=$(patsubst %.s,%.o,$(filter %s,$(SRCS)))
OBJS+=$(patsubst %.c,%.o,$(filter %c,$(SRCS))) OBJS+=$(patsubst %.c,%.o,$(filter %c,$(SRCS)))
# Make sure the kernel linked to correct address, no relocation! # Make sure the kernel linked to correct address, no relocation!
all: $(O65) all: $(O65) $(FSDIR)
cp $(O65) $(FSDIR) cp $(O65) $(FSDIR)
$(FSDIR):
mkdir $(FSDIR)
$(O65): $(OBJS) $(O65): $(OBJS)
$(LD) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LD) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@

View File

@@ -38,7 +38,7 @@ _init: LDX #$FF ; Initialize stack pointer to $01FF
; Initialize memory storage ; Initialize memory storage
JSR zerobss ; Clear BSS segment (no longer fails) JSR zerobss ; Clear BSS segment (no longer fails)
JSR copydata ; Initialize DATA segment (this also fails. but prints something) ; JSR copydata ; Initialize DATA segment (this also fails. but prints something)
JSR initlib ; Run constructors (This one works) JSR initlib ; Run constructors (This one works)
; --------------------------------------------------------------------------- ; ---------------------------------------------------------------------------

View File

@@ -13,7 +13,10 @@ char* longstring = \
int main() { int main() {
char* string = "this is a shorter string"; char* string = "this is a shorter string";
int val = 42;
cputs("Kernel\n");
cprintf("Kernel printf\n");
cprintf("Val: %d\n", val);
cprintf("%s", string); cprintf("%s", string);
cprintf("Here is a long string: %s\n", longstring); cprintf("Here is a long string: %s\n", longstring);

View File

@@ -88,10 +88,14 @@ def main() -> None:
print(filename) print(filename)
o65 = O65(filename) o65 = O65(filename)
for item, value in o65.header.items(): for item, value in o65.header.items():
print(f"{item}:\t{value:x}") print(f"{item}:\t{value:#x}")
total_olen = 0
for option in o65.options: for option in o65.options:
print(f"Type: {option[1]}, Data: {option[2]}") print(f"Length: {option[0]:#x} Type: {option[1]:#x}, Data: {option[2]}")
total_olen += option[0]
print(f"Total option length: {total_olen:#x}")
print(f"Text size: {len(o65.text)}") print(f"Text size: {len(o65.text)}")
print(f"Data size: {len(o65.data)}") print(f"Data size: {len(o65.data)}")