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:
paths:
- hw/efinix_fpga/simulation/sim_top.vcd
- hw/efinix_fpga/simulation/fs.fat
script:
- source init_env.sh
- cd hw/efinix_fpga/simulation

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 4C FD 00 00
00 00 A2 FF 9A D8 A9 00 85 04 A9 DF 85 05 20 C4
FD 20 39 FA 20 52 F0 58 20 69 F2 6C FC FF 20 2D
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
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 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
F0 92 0C A9 FF 20 3F F2 A0 01 91 0C 20 16 FB 60
AA 20 A0 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 0C FB 60
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
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
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 A0
FC A5 04 85 10 A5 05 85 11 20 D1 FA A0 00 B1 10
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
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,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
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 F4 FA A2 00 86 06
86 07 A9 00 20 8B FB 20 DA FA A9 06 A2 FE 20 9A
FA 20 3A F3 C9 00 20 38 FC D0 03 4C 98 F2 A9 FF
A2 FD 20 9A FA 4C 2E F3 A9 F6 A2 FD 20 9A FA A0
05 20 47 FB 20 8B FB AD 00 92 AE 01 92 20 CD FC
A9 0C 20 58 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 FE 20 3E 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 BB F5 4C 2B F3 A0 06 A2 00 B1 04
A2 00 29 F0 20 1F FA D0 03 4C 16 F3 A9 FF A2 FD
20 9A FA 4C 2B F3 A9 E7 A2 FD 20 CD FC A0 08 A2
00 B1 04 20 CD FC A0 04 20 66 FA 6C 00 92 4C 31
F3 4C 31 F3 A0 0C 20 05 FA 60 20 01 FB A9 00 20
B7 FC 20 6E F1 4C 71 F3 A0 00 A2 00 18 A9 01 71
04 91 04 A0 00 A2 00 B1 04 C9 FF 20 3E FC D0 03
4C 71 F3 A9 25 A2 FE 20 9A FA A2 00 A9 01 4C 27
F4 20 2B F4 A0 01 91 04 C9 01 20 38 FC D0 C9 A9
01 20 58 FB 20 48 F4 A0 01 A2 00 B1 04 C9 01 20
38 FC D0 03 4C A5 F3 A9 1C A2 FE 20 9A FA A2 00
A9 01 4C 27 F4 A0 05 A2 00 B1 04 C9 AA 20 38 FC
D0 03 4C BC F3 A2 00 A9 01 4C 27 F4 A2 00 A9 00
A0 00 91 04 A0 00 A2 00 B1 04 C9 FF 20 3E FC D0
03 4C E2 F3 A9 0D A2 FE 20 9A FA A2 00 A9 01 4C
27 F4 20 6A F5 A0 01 91 04 A0 01 A2 00 B1 04 C9
02 20 57 FC D0 03 4C 00 F4 20 87 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 38 FC D0 AC A9 01 20 58 FB 20 F0 F4
A2 00 A9 00 4C 27 F4 20 2E FB 60 A2 00 A9 00 20
B7 FC A2 00 86 06 86 07 A9 00 20 8B FB A2 00 A9
94 20 43 F1 4C 47 F4 60 20 CD 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 B7 FC A2 01 A9 00 85 06 A9 00 85
07 A9 AA 20 8B FB A2 00 A9 86 20 CE F0 A0 01 20
3E 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 16 FB 60 20 CD
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 B7 FC A2 00 86
06 86 07 A9 00 20 8B FB A2 00 A9 00 20 CE F0 A0
01 20 3E 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 16 FB 60
20 CD FC 20 D1 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 38 FC D0 03 4C 30 F5 4C
22 F5 A2 00 A9 FF 20 3F F2 C9 FF 20 38 FC D0 F2
A2 00 A9 3A 20 B7 FC A2 00 86 06 86 07 A9 00 20
8B FB A2 00 A9 00 20 CE F0 A0 02 20 3E 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 24 FB 60 A2 00 A9 37 20 B7
FC A2 00 86 06 86 07 A9 00 20 8B FB A2 00 A9 00
20 43 F1 4C 86 F5 60 A2 00 A9 29 20 B7 FC A2 00
86 06 A9 40 85 07 A9 00 20 8B FB A2 00 A9 00 20
43 F1 4C A5 F5 60 20 CD FC 20 F4 FA A0 03 A2 00
B1 04 4C B5 F5 A0 0E 20 05 FA 60 20 CD FC A9 00
20 B7 FC 20 DA FA A2 00 A9 00 A0 00 20 E5 FC A0
01 20 3E FB E0 02 20 57 FC F0 03 4C E1 F5 4C 43
F6 A9 2E A2 FE 20 CD FC A0 06 20 3E FB A0 00 20
33 FB 20 CD FC A0 07 A2 00 A9 01 20 F5 F9 A0 04
20 66 FA A0 02 A2 00 B1 04 C9 1F 20 3E FC D0 03
4C 25 F6 A9 32 A2 FE 20 9A FA A2 00 A9 00 A0 02
91 04 4C 37 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 F5 F9
4C CF F5 A9 32 A2 FE 20 9A FA 20 29 FB 60 A0 00
B1 1A E6 1A D0 02 E6 1B 60 AD 4A 92 8D 45 92 20
FA F6 A9 45 A2 92 20 CD FC 20 AE FC 4C 02 92 A5
18 38 E9 02 85 18 B0 02 C6 19 60 AD 4F 92 D0 11
20 98 F6 4C 18 FA AD 4F 92 D0 06 20 98 F6 4C 12
FA 20 98 F6 85 06 86 07 20 6F 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 52 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 CD FC A5 1C A6 1D 4C CD
FC 20 59 F6 EE 4B 92 D0 F8 EE 4C 92 D0 F3 60 20
FA F6 AD 66 92 AE 67 92 20 CD FC AD 68 92 AE 69
92 20 CD FC 4C 02 92 84 0C 20 8B FB 20 EC F6 A5
0C 4C BB FB 84 0C 20 8B FB 20 EC F6 A5 0C 4C FC
FB 48 A0 05 B9 18 00 99 3F 92 88 10 F7 68 85 18
86 19 20 0E FB 85 1A 86 1B 20 0E 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 F4 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 4E F6 AA D0
0B A2 05 BD 3F 92 95 18 CA 10 F8 60 C9 25 D0 09
B1 1A C9 25 D0 09 20 52 F6 20 5C F6 4C 74 F7 A9
00 A2 0B 9D 46 92 CA 10 FA B1 1A C9 2D D0 05 8E
46 92 F0 19 C9 2B D0 05 8E 47 92 F0 10 C9 20 D0
05 8E 48 92 F0 07 C9 23 D0 09 8E 49 92 20 52 F6
4C F9 F7 A2 20 C9 30 D0 06 AA 20 52 F6 B1 1A 8E
4A 92 C9 2A D0 09 20 52 F6 20 98 F6 4C 42 F8 20
A4 F6 8D 4B 92 8E 4C 92 8C 4D 92 8C 4E 92 B1 1A
C9 2E D0 1B 20 52 F6 B1 1A C9 2A D0 09 20 52 F6
20 98 F6 4C 69 F8 20 A4 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 52
F6 4C 6F F8 8C 51 92 A2 52 8E 66 92 A2 92 8E 67
92 20 52 F6 C9 63 D0 0E 20 98 F6 8D 52 92 A9 00
8D 53 92 4C 93 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 86 F6 A4 07 30 0B AC 50 92 F0 06 8C 52 92
EE 51 92 A0 0A 20 27 F7 4C 93 F9 C9 6E D0 15 20
98 F6 85 0C 86 0D A0 00 B1 1C 91 0C C8 B1 1C 91
0C 4C 74 F7 C9 6F D0 27 20 86 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 E2 F6 68 A0 08 20 27 F7 4C 93 F9 C9
70 D0 0D A2 00 8E 4F 92 E8 8E 49 92 A9 78 D0 27
C9 73 D0 0C 20 98 F6 8D 66 92 8E 67 92 4C 93 F9
C9 75 D0 0B 20 7B F6 A0 0A 20 34 F7 4C 93 F9 C9
78 F0 04 C9 58 D0 29 48 AD 49 92 F0 0A A9 30 20
E2 F6 A9 58 20 E2 F6 20 7B F6 A0 10 20 34 F7 68
C9 78 D0 09 AD 66 92 AE 67 92 20 25 FD 4C 93 F9
4C 74 F7 AD 66 92 AE 67 92 20 0F 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 04 F7 20 0F F7 AD 46 92 F0 03 20 04 F7
4C 74 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 CD FC A5 0C A6 0D 20 94 FD AC 6A 92 4C 05 FA
85 0C 86 0D 20 75 F0 4C 9E 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 5B FE 90 05 4A 4A
4A 4A 18 29 0F AA BD 50 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 05 FA A0 05 4C 05 FA A0 08
4C 05 FA 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 E7 FA A0
03 A5 07 91 04 88 A5 06 91 04 88 8A 91 04 68 88
91 04 60 85 14 20 0E FB 85 0E 86 0F 85 10 86 11
20 A0 FC 20 0E FB 85 06 86 07 60 20 A3 FB A6 07
A4 14 C0 0A D0 39 A5 06 05 0D 05 0C D0 11 E0 80
D0 0D A0 0B B9 44 FE 91 0E 88 10 F8 4C 33 FC 8A
10 1D A9 2D A0 00 91 0E E6 0E D0 02 E6 0F A5 0C
A6 0D 20 64 FB 85 0C 86 0D 4C FF FB 20 A3 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 34 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 8D 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 0E FB 85 10 86
11 20 A0 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 16 FB A9 01
4C CB 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 A0 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 B7 FA 29 02 F0 06 B1 0C 69 20 91 0C
C8 D0 EC E6 0D D0 E8 A5 0E A6 0F 60 20 0E FB 85
0E 86 0F E8 8E 31 92 AA E8 8E 30 92 20 A0 FC 20
0E 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 78 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 CD FC A0 02 A9 2A 91
04 C8 A9 92 91 04 A5 0C A6 0D 20 41 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 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
10 F8 60 C9 25 D0 09 B1 1A C9 25 D0 09 20 49 F6
20 53 F6 4C 6B F7 A9 00 A2 0B 9D 46 92 CA 10 FA
B1 1A C9 2D D0 05 8E 46 92 F0 19 C9 2B D0 05 8E
47 92 F0 10 C9 20 D0 05 8E 48 92 F0 07 C9 23 D0
09 8E 49 92 20 49 F6 4C F0 F7 A2 20 C9 30 D0 06
AA 20 49 F6 B1 1A 8E 4A 92 C9 2A D0 09 20 49 F6
20 8F F6 4C 39 F8 20 9B F6 8D 4B 92 8E 4C 92 8C
4D 92 8C 4E 92 B1 1A C9 2E D0 1B 20 49 F6 B1 1A
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
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 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
sim: $(TARGET)
vvp $(TARGET) -fst
vvp -i $(TARGET) -fst
.PHONY: full_sim
full_sim: $(TARGET) $(SD_IMAGE)
vvp $(TARGET) -fst
vvp -i $(TARGET) -fst
mapper_tb: $(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)
$(INIT_MEM):
# Make kernel
$(MAKE) -C $(REPO_TOP)/sw/kernel
$(MAKE) -C $(TEST_FOLDER)
cp $(TEST_PROGRAM) ./init_hex.mem

View File

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

View File

@@ -1,4 +1,4 @@
.PHONY: all install bios kernel clean
.PHONY: all install bios kernel clean distclean
all: toolchain bios kernel
@@ -15,8 +15,9 @@ bios:
kernel:
@$(MAKE) -C kernel
distclean: clean
@$(MAKE) -C cc65 --no-print-directory $@
clean:
@$(MAKE) -C bios --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
LDFLAGS=-C link.ld -m $(NAME).map
FSDIR=$(REPO_TOP)/sw/fsdir
NAME=bios
BIN=$(NAME).bin
@@ -21,9 +23,9 @@ OBJS+=$(patsubst %.c,%.o,$(filter %c,$(SRCS)))
all: $(HEX)
$(HEX): $(BIN)
$(HEX): $(BIN) $(FSDIR)
objcopy --input-target=binary --output-target=verilog $(BIN) $(HEX)
cp boot2.bin ../fsdir
cp boot2.bin $(FSDIR)
cmp $(HEX) $(FPGA_IMG); \
RETVAL=$$?; \
if [ $$RETVAL -eq 0 ]; then \
@@ -34,6 +36,8 @@ $(HEX): $(BIN)
echo "Update ROM or rebuild FPGA image!"; \
fi
$(FSDIR):
mkdir $(FSDIR)
$(BIN): $(OBJS)

View File

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

View File

@@ -71,9 +71,9 @@ _main:
ldx #>ptr1
jsr _SD_readSingleBlock
lda #<buf
ldx #>buf
jsr _SD_printBuf
; lda #<buf
; ldx #>buf
; jsr _SD_printBuf
lda #$20 ; Start at first directory entry (first is a disk label)
@@ -118,10 +118,16 @@ _main:
sec
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
asl ; multiply cluster num (minus 2) by 8
asl
asl
phx
ldx sectors_per_cluster ; multiply cluster num (minus 2) by sectors_per_cluster
lda #$00
@4: adc tmp1
dex
bne @4
plx
clc
adc data_start ; add that to low data start
bcc @3 ; handle carry

View File

@@ -33,8 +33,12 @@ int main() {
res[0] = SD_readSingleBlock(addr, buf, &token);
// 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);
#endif
}
//else if error token received, print
else if(!(token & 0xF0))
{

View File

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

View File

@@ -38,7 +38,7 @@ _init: LDX #$FF ; Initialize stack pointer to $01FF
; Initialize memory storage
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)
; ---------------------------------------------------------------------------

View File

@@ -13,7 +13,10 @@ char* longstring = \
int main() {
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("Here is a long string: %s\n", longstring);

View File

@@ -88,10 +88,14 @@ def main() -> None:
print(filename)
o65 = O65(filename)
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:
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"Data size: {len(o65.data)}")