Sfoglia il codice sorgente

Firmware for PUN80 emulation

H. Peter Anvin 3 anni fa
parent
commit
1622343b8d
8 ha cambiato i file con 82 aggiunte e 80 eliminazioni
  1. 2 2
      fpga/max80.qpf
  2. BIN
      fpga/output/v1.jic
  3. BIN
      fpga/output/v1.sof
  4. BIN
      fpga/output/v2.jic
  5. BIN
      fpga/output/v2.sof
  6. 3 1
      rv32/abcmem.c
  7. 77 77
      rv32/boot.mif
  8. BIN
      rv32/roms/print80_29.rom

+ 2 - 2
fpga/max80.qpf

@@ -19,12 +19,12 @@
 #
 # Quartus Prime
 # Version 21.1.0 Build 842 10/21/2021 SJ Lite Edition
-# Date created = 21:44:59  January 09, 2022
+# Date created = 22:18:18  January 09, 2022
 #
 # -------------------------------------------------------------------------- #
 
 QUARTUS_VERSION = "21.1"
-DATE = "21:44:59  January 09, 2022"
+DATE = "22:18:18  January 09, 2022"
 
 # Revisions
 

BIN
fpga/output/v1.jic


BIN
fpga/output/v1.sof


BIN
fpga/output/v2.jic


BIN
fpga/output/v2.sof


+ 3 - 1
rv32/abcmem.c

@@ -15,6 +15,7 @@ struct abc_mem_init {
 #define WR (ABCMEMMAP_WR >> 24)
 
 extern const char rom_ufddos80[];
+extern const char rom_print80_29[];
 
 /* Not really NV, but matches NVRAM in some expansions */
 static char __dram_bss __aligned(512) abc80_nvram[2 << 10];
@@ -24,7 +25,8 @@ static char __dram_bss __aligned(512) abc80_extmem[16 << 10];
 
 static const struct abc_mem_init mem_init[] = {
     { 0x5000,  2 << 10, RD|WR, abc80_nvram },
-    { 0x6000,  4 << 10, RD, rom_ufddos80 },
+    { 0x6000,  4 << 10, RD,    rom_ufddos80 },
+    { 0x7400,  1 << 10, RD,    rom_print80_29 },
     { 0x8000, 16 << 10, RD|WR, abc80_extmem },
     { -1U, 0, 0, NULL }
 };

+ 77 - 77
rv32/boot.mif

@@ -63,7 +63,7 @@ CONTENT BEGIN
 0038 : 49A0006F;
 0039 : 4960006F;
 003A : 00000000;
-003B : 4101D0B0;
+003B : 4101D4B0;
 003C : FFFFFFFF;
 003D : FFFFFFFF;
 003E : 00001598;
@@ -196,13 +196,13 @@ CONTENT BEGIN
 00BD : 86631860;
 00BE : 70970002;
 00BF : 80E74000;
-00C0 : 547DB980;
+00C0 : 547DF980;
 00C1 : 0680008B;
 00C2 : 0810878B;
 00C3 : 18704303;
 00C4 : 00030663;
 00C5 : 40001097;
-00C6 : 1C2080E7;
+00C6 : 5C2080E7;
 00C7 : B7DD2DD1;
 00C8 : 00000697;
 00C9 : D7C68693;
@@ -322,23 +322,23 @@ CONTENT BEGIN
 013B : F4130660;
 013C : DC652003;
 013D : 40000537;
-013E : 400075B7;
+013E : 400085B7;
 013F : 03934401;
 0140 : 82930005;
-0141 : EF636405;
+0141 : EF63A505;
 0142 : 76370453;
 0143 : 05134000;
-0144 : 2069FA96;
+0144 : 20693A96;
 0145 : 3D698522;
 0146 : 28854529;
-0147 : 400076B7;
+0147 : 400086B7;
 0148 : 40013837;
 0149 : 87934701;
-014A : 0F936406;
-014B : E0630B08;
+014A : 0F93A506;
+014B : E0634B08;
 014C : C71105F7;
 014D : 400078B7;
-014E : FBF88513;
+014E : 3BF88513;
 014F : 04132085;
 0150 : 4E198080;
 0151 : 20236E85;
@@ -348,7 +348,7 @@ CONTENT BEGIN
 0155 : 442201E4;
 0156 : 014140B2;
 0157 : 40001317;
-0158 : AD830067;
+0158 : ED830067;
 0159 : 0003A303;
 015A : 941A0391;
 015B : A083BF69;
@@ -394,19 +394,19 @@ CONTENT BEGIN
 0183 : DFF00F93;
 0184 : 07FF078B;
 0185 : 05378082;
-0186 : 73374000;
+0186 : 83374000;
 0187 : 06134000;
 0188 : 03930005;
-0189 : 86336403;
+0189 : 8633A503;
 018A : 458140C3;
 018B : 00050513;
-018C : 7837B761;
+018C : 8837B761;
 018D : 3E374000;
 018E : 08934001;
-018F : 0E936408;
-0190 : 85B30B0E;
+018F : 0E93A508;
+0190 : 85B34B0E;
 0191 : 0513411E;
-0192 : BF496408;
+0192 : BF49A508;
 0193 : CE061101;
 0194 : CC22CA26;
 0195 : C64EC84A;
@@ -658,7 +658,7 @@ CONTENT BEGIN
 028B : F4130F00;
 028C : C0710013;
 028D : 40001097;
-028E : 280080E7;
+028E : 680080E7;
 028F : 00157893;
 0290 : 00088563;
 0291 : 4A014A85;
@@ -669,45 +669,45 @@ CONTENT BEGIN
 0296 : 6C134001;
 0297 : A023002A;
 0298 : 4605018A;
-0299 : F15C8593;
-029A : E60D0513;
+0299 : 315C8593;
+029A : 260D0513;
 029B : 40004097;
-029C : 10A080E7;
+029C : 50A080E7;
 029D : 77B7C105;
 029E : 85134000;
-029F : 00973107;
+029F : 10977107;
 02A0 : 80E74000;
-02A1 : A98377C0;
+02A1 : A983B7C0;
 02A2 : F293000A;
 02A3 : A023FFD9;
 02A4 : BF4D005A;
 02A5 : 100C0850;
-02A6 : F15C8513;
+02A6 : 315C8513;
 02A7 : 02010023;
 02A8 : 5097CA02;
 02A9 : 80E74000;
-02AA : 4652F5A0;
+02AA : 465235A0;
 02AB : 40007DB7;
 02AC : 8513100C;
-02AD : 0097329D;
+02AD : 1097729D;
 02AE : 80E74000;
-02AF : 08707440;
+02AF : 0870B440;
 02B0 : 8513082C;
-02B1 : CC02F15C;
+02B1 : CC02315C;
 02B2 : 40005097;
-02B3 : DCC080E7;
+02B3 : 1CC080E7;
 02B4 : 45E24E72;
 02B5 : 40007FB7;
 02B6 : 00AE5E83;
 02B7 : 01CE2F03;
-02B8 : 357F8513;
+02B8 : 757F8513;
 02B9 : 009E9693;
 02BA : FFEF0613;
-02BB : 40000097;
-02BC : 70E080E7;
+02BB : 40001097;
+02BC : B0E080E7;
 02BD : 1097BF81;
 02BE : 80E74000;
-02BF : 890516C0;
+02BF : 890556C0;
 02C0 : 0613F131;
 02C1 : 42181700;
 02C2 : 083346FD;
@@ -730,15 +730,15 @@ CONTENT BEGIN
 02D3 : 783700A6;
 02D4 : A0234000;
 02D5 : 051300E3;
-02D6 : 79133898;
+02D6 : 79137898;
 02D7 : 3C3D0049;
 02D8 : 16090063;
 02D9 : 400078B7;
-02DA : 2EC88513;
+02DA : 6EC88513;
 02DB : 4A923C05;
 02DC : 140A9D63;
 02DD : 40007A37;
-02DE : 304A0513;
+02DE : 704A0513;
 02DF : 009BC4B3;
 02E0 : 0024DC93;
 02E1 : 3C194D05;
@@ -747,9 +747,9 @@ CONTENT BEGIN
 02E4 : CDB76E85;
 02E5 : 6E054000;
 02E6 : 5F8E8F13;
-02E7 : 000D8D13;
+02E7 : 400D8D13;
 02E8 : 4B014B81;
-02E9 : 000D8493;
+02E9 : 400D8493;
 02EA : 4E0E0C13;
 02EB : 4F83C47A;
 02EC : 816304ED;
@@ -764,7 +764,7 @@ CONTENT BEGIN
 02F5 : 000F1863;
 02F6 : 05040513;
 02F7 : 40005097;
-02F8 : 91E080E7;
+02F8 : D1E080E7;
 02F9 : 2AE44F83;
 02FA : FFEFF793;
 02FB : 2AF40723;
@@ -782,7 +782,7 @@ CONTENT BEGIN
 0307 : 4502040D;
 0308 : 856AC511;
 0309 : 40002097;
-030A : AC4080E7;
+030A : EC4080E7;
 030B : 49814592;
 030C : 5CDDCD8D;
 030D : 070B4821;
@@ -798,7 +798,7 @@ CONTENT BEGIN
 0317 : 22068963;
 0318 : 2097856A;
 0319 : 80E74000;
-031A : 4603A860;
+031A : 4603E860;
 031B : 1B6304ED;
 031C : 68894606;
 031D : B9088E13;
@@ -821,10 +821,10 @@ CONTENT BEGIN
 032E : 4A81B379;
 032F : B5854A01;
 0330 : 400076B7;
-0331 : 2F368513;
+0331 : 6F368513;
 0332 : 7C37B555;
 0333 : 05134000;
-0334 : B56D2F9C;
+0334 : B56D6F9C;
 0335 : F40F95E3;
 0336 : 000C4783;
 0337 : 0017F993;
@@ -847,29 +847,29 @@ CONTENT BEGIN
 0348 : 874A4000;
 0349 : 00860693;
 034A : 06134591;
-034B : 85223988;
-034C : 40005097;
-034D : 5B6080E7;
-034E : 40007737;
+034B : 85227988;
+034C : 40006097;
+034D : 9B6080E7;
+034E : 40008737;
 034F : DA840D93;
-0350 : 49470993;
+0350 : 8A070993;
 0351 : 0009A683;
 0352 : 12068463;
 0353 : 400078B7;
 0354 : 86138722;
-0355 : 05933A08;
+0355 : 05937A08;
 0356 : 10080400;
-0357 : 40005097;
-0358 : 58A080E7;
+0357 : 40006097;
+0358 : 98A080E7;
 0359 : 2AECC683;
 035A : 0016FE13;
 035B : 020E0963;
 035C : 001C4E83;
 035D : 001EFF13;
 035E : 000F1763;
-035F : 4097856E;
+035F : 5097856E;
 0360 : 80E74000;
-0361 : CF8377C0;
+0361 : CF83B7C0;
 0362 : F7932AEC;
 0363 : 8723FFEF;
 0364 : 42832AFC;
@@ -886,7 +886,7 @@ CONTENT BEGIN
 036F : 856E100C;
 0370 : 4097C632;
 0371 : 80E74000;
-0372 : 4629E140;
+0372 : 46292140;
 0373 : 2AECC583;
 0374 : 00C51963;
 0375 : 77134832;
@@ -900,22 +900,22 @@ CONTENT BEGIN
 037D : 080E0B63;
 037E : 400079B7;
 037F : 85A21010;
-0380 : 3A598513;
+0380 : 7A598513;
 0381 : 40000097;
-0382 : 3F6080E7;
+0382 : 7F6080E7;
 0383 : 02200E93;
 0384 : 00840F13;
 0385 : 2BDCA823;
 0386 : 0BECA023;
 0387 : 567D55FD;
-0388 : 4097856E;
+0388 : 5097856E;
 0389 : 80E74000;
-038A : C9116FA0;
+038A : C911AFA0;
 038B : 40007DB7;
 038C : 851385A2;
-038D : 00973B9D;
+038D : 00977B9D;
 038E : 80E74000;
-038F : 23033C40;
+038F : 23037C40;
 0390 : AF83044D;
 0391 : A283064C;
 0392 : 5383060C;
@@ -975,9 +975,9 @@ CONTENT BEGIN
 03C8 : 10000613;
 03C9 : 856A85A2;
 03CA : B3813AE1;
-03CB : 1097856A;
+03CB : 2097856A;
 03CC : 80E74000;
-03CD : E90174E0;
+03CD : E901B4E0;
 03CE : 02100313;
 03CF : 046D06A3;
 03D0 : 02100593;
@@ -991,12 +991,12 @@ CONTENT BEGIN
 03D8 : 8FB3050B;
 03D9 : 856A01ED;
 03DA : 01F48933;
-03DB : 40001097;
-03DC : 6DE080E7;
+03DB : 40002097;
+03DC : ADE080E7;
 03DD : 00851593;
 03DE : 854A4601;
-03DF : 40004097;
-03E0 : 5A0080E7;
+03DF : 40005097;
+03E0 : 9A0080E7;
 03E1 : 40A1C511;
 03E2 : 041D06A3;
 03E3 : BFB945A1;
@@ -1004,7 +1004,7 @@ CONTENT BEGIN
 03E5 : 85A21000;
 03E6 : 4097854A;
 03E7 : 80E74000;
-03E8 : F175F6C0;
+03E8 : F17536C0;
 03E9 : 02935782;
 03EA : 9EE31000;
 03EB : B799FC57;
@@ -1042,16 +1042,16 @@ CONTENT BEGIN
 040B : 856A048D;
 040C : 00FDFF93;
 040D : 05FD0423;
-040E : 40001097;
-040F : 67C080E7;
+040E : 40002097;
+040F : A7C080E7;
 0410 : F793B12D;
 0411 : CB81002F;
 0412 : 04000E13;
 0413 : 05CD06A3;
 0414 : 04000593;
 0415 : 856AB7C9;
-0416 : 40001097;
-0417 : 624080E7;
+0416 : 40002097;
+0417 : A24080E7;
 0418 : 0893E901;
 0419 : 06A30210;
 041A : 0593051D;
@@ -1064,12 +1064,12 @@ CONTENT BEGIN
 0421 : A0230020;
 0422 : 856A0062;
 0423 : 00C48CB3;
-0424 : 40001097;
-0425 : 5BA080E7;
+0424 : 40002097;
+0425 : 9BA080E7;
 0426 : 00851593;
 0427 : 85664601;
-0428 : 40004097;
-0429 : 47C080E7;
+0428 : 40005097;
+0429 : 87C080E7;
 042A : 0713C901;
 042B : 06A30200;
 042C : 059304ED;
@@ -1081,7 +1081,7 @@ CONTENT BEGIN
 0432 : 85662ABD;
 0433 : 409785A2;
 0434 : 80E74000;
-0435 : F9710260;
+0435 : F9714260;
 0436 : 08135402;
 0437 : 16E31000;
 0438 : BF35FD04;
@@ -1094,7 +1094,7 @@ CONTENT BEGIN
 043F : CD890085;
 0440 : 05040513;
 0441 : 40004097;
-0442 : 23E080E7;
+0442 : 63E080E7;
 0443 : 2AE44803;
 0444 : FF787713;
 0445 : 2AE40723;

BIN
rv32/roms/print80_29.rom