From b5f402554c320423222c35f100e68ead8b1d8731 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 22 Sep 2025 17:20:23 -0700 Subject: [PATCH] Preliminary S100 Z80 CPU Support Adds support for a general modular Z180-based S100 system. --- Doc/ChangeLog.txt | 1 + Doc/RomWBW Applications.pdf | Bin 404544 -> 404541 bytes Doc/RomWBW Disk Catalog.pdf | Bin 257510 -> 257506 bytes Doc/RomWBW Hardware.pdf | Bin 361730 -> 367227 bytes Doc/RomWBW Introduction.pdf | Bin 94432 -> 94428 bytes Doc/RomWBW System Guide.pdf | Bin 632924 -> 632921 bytes Doc/RomWBW User Guide.pdf | Bin 572126 -> 572123 bytes ReadMe.md | 2 +- ReadMe.txt | 2 +- Source/Build.cmd | 2 +- Source/BuildFZ80.cmd | 4 - Source/BuildSZ80.cmd | 4 + Source/Doc/Hardware.md | 53 +++++++++++-- Source/FZ80/Bank Layout.txt | 18 ----- Source/FZ80/fz80_ptbl.bin | Bin 72 -> 0 bytes Source/HBIOS/Bank Layout.txt | 2 +- Source/HBIOS/Build.cmd | 3 +- Source/HBIOS/Build.ps1 | 2 +- Source/HBIOS/Build.sh | 3 +- Source/HBIOS/Config/SZ80_fpga.asm | 72 ++++++++++++++++++ .../Config/{FZ80_std.asm => SZ80_std.asm} | 16 ++-- Source/HBIOS/cfg_DUO.asm | 4 +- Source/HBIOS/cfg_DYNO.asm | 4 +- Source/HBIOS/cfg_EPITX.asm | 4 +- Source/HBIOS/cfg_EZZ80.asm | 4 +- Source/HBIOS/cfg_GMZ180.asm | 4 +- Source/HBIOS/cfg_HEATH.asm | 4 +- Source/HBIOS/cfg_MASTER.asm | 4 +- Source/HBIOS/cfg_MBC.asm | 4 +- Source/HBIOS/cfg_MK4.asm | 4 +- Source/HBIOS/cfg_MON.asm | 4 +- Source/HBIOS/cfg_N8.asm | 4 +- Source/HBIOS/cfg_NABU.asm | 4 +- Source/HBIOS/cfg_RCEZ80.asm | 4 +- Source/HBIOS/cfg_RCZ180.asm | 4 +- Source/HBIOS/cfg_RCZ280.asm | 4 +- Source/HBIOS/cfg_RCZ80.asm | 4 +- Source/HBIOS/cfg_RPH.asm | 4 +- Source/HBIOS/cfg_S100.asm | 4 +- Source/HBIOS/cfg_SBC.asm | 4 +- Source/HBIOS/cfg_SCZ180.asm | 4 +- Source/HBIOS/{cfg_FZ80.asm => cfg_SZ80.asm} | 34 ++++----- Source/HBIOS/cfg_UNA.asm | 2 +- Source/HBIOS/cfg_Z80RETRO.asm | 4 +- Source/HBIOS/cfg_ZETA.asm | 4 +- Source/HBIOS/cfg_ZETA2.asm | 4 +- Source/HBIOS/hbios.asm | 60 ++++++++++++--- Source/HBIOS/hbios.inc | 2 +- Source/HBIOS/plt_pretty.inc | 12 +-- Source/HBIOS/ppide.asm | 16 ++++ Source/HBIOS/scon.asm | 24 +++--- Source/HBIOS/sd.asm | 24 +++--- Source/HBIOS/std.asm | 10 ++- Source/Makefile | 8 +- Source/SZ80/Bank Layout.txt | 38 +++++++++ Source/{FZ80 => SZ80}/Build.cmd | 4 +- Source/{FZ80 => SZ80}/Clean.cmd | 0 Source/{FZ80 => SZ80}/Makefile | 4 +- .../SZ80 Disk Layout.txt} | 4 +- Source/ver.inc | 2 +- Source/ver.lib | 2 +- 61 files changed, 365 insertions(+), 157 deletions(-) delete mode 100644 Source/BuildFZ80.cmd create mode 100644 Source/BuildSZ80.cmd delete mode 100644 Source/FZ80/Bank Layout.txt delete mode 100644 Source/FZ80/fz80_ptbl.bin create mode 100644 Source/HBIOS/Config/SZ80_fpga.asm rename Source/HBIOS/Config/{FZ80_std.asm => SZ80_std.asm} (82%) rename Source/HBIOS/{cfg_FZ80.asm => cfg_SZ80.asm} (92%) create mode 100644 Source/SZ80/Bank Layout.txt rename Source/{FZ80 => SZ80}/Build.cmd (82%) rename Source/{FZ80 => SZ80}/Clean.cmd (100%) rename Source/{FZ80 => SZ80}/Makefile (84%) rename Source/{FZ80/FZ80 Disk Layout.txt => SZ80/SZ80 Disk Layout.txt} (64%) diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 6aa13c95..a48f5f0d 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -26,6 +26,7 @@ Version 3.6 - MAP: User guide. Reorder sections around disk formatting - R?M: Randy Merkel provided ZSDOS Programmer's Manual as translated by Wayne Hortensius - WBW: Updated Cowgol disk image with latest COWFIX.COM from Ladislau Szilagyi +- WBW: Preliminary support for S100 Computers Z80 CPU Version 3.5.1 ------------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 8527ad75241a6946dbcb748a7320a73fc8c201fc..4e369ae2d1495c60350555f0615181bdb89a5ea4 100644 GIT binary patch delta 16986 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 delta 13627 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 O!mHM-S%3TytNsVwF|)(~ diff --git a/Doc/RomWBW Hardware.pdf b/Doc/RomWBW Hardware.pdf index 7be0d90f5f3b209f1435eaee9f470ba8697142ea..1543533e5b78fc734201227ec51fc9e60cac7610 100644 GIT binary patch delta 107418 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

rz`ZP*TPTzfx8_x1ZgcAeVW~w3|>;pu)m*sF2MP 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 DY%P*x delta 102816 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π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 I)baiQ0Ipki;s5{u diff --git a/Doc/RomWBW Introduction.pdf b/Doc/RomWBW Introduction.pdf index 02875b83544c534bfc34c359b77e572e9f4b1576..17220869a1bf3dbe9fb7fe6fde22a93731b1a224 100644 GIT binary patch delta 4899 zcmai2d2G~G5YARBP)P_FNQEjDsUci>*SrH1WGO}DD3@R;Pz^@}rE&=h$S*<_4=yP} zgM}cFAPU3?gs8DZNJIhwHI(}{5CTC+6bJ#u*`?ifXPUTwwbPk5GvCa7Guw0LGf$n* zTskSHm&aN}?+@8O;G$@J`gVtV4;?+Wc=dwP_JcalA3tO5p9S0E^QxN9yI;Jp=kF&M z6fA6iw0}iT>()O!{O0pF{I5T4+tnz$T$PXAF!HK*~ymU)+2oSC!pm0eY?WbWwf zgV*8vb?l=H!O4&z>$VAGB=uocGQ~JM*6!+^$K< z?SG$Z+Gq3Jd;0#wfz3W`n|*z4n=$Ema7-K?I>S! zva(NMS!U_L_|onD*SCH7#pzie=M4XO=K61DcY;MlCwi>OFYA4L=J9*>M-#B2#{ZBT1+2p&}CrcJ@y;f1M z_~wd5JKT{5FYRAv_s%-kVgB_qGqP^4{@`9=#Yi!`=*OKe9OylzGIp!vaG%dd{B!f% zQ8VQ0cdEt@zwul51AB`5hRdVocg@(@H6u20WCNw76;7|*JUW(>`sL8**t$WGD-xgF zlH9E14+7N!l}Yavl__BjlW7nucNfQ=iL_^bQ-SJxj7bnZ=ajNUX06bU$hmFNY9*rHZ*7fCZquwC9nhwT+xd(#iU*UhL)95lZ=H`mLh{S zP?G6^i@2gw+==(hi7{NJjAdvUE9iSt+L{taseY0O7j+`R2pTm4&9YM(SlzXdilT}# zmmUn_udM*;SR<^o#yWtYjfpZ#Z2>c(y#QcYe*idRBU%$IF?B2g&sYSEhS*BXn4u+9 zpzlfS>KeVMW}Kz4Y{aDSKdnr4SsX%>t$lA44AFu!<6Jdj;-H%P9S+fS? znI0G(G@xhVLrSkrZgT!=IY5Hq4O79sCvh`Un!{NkEohWm2!-w zlnSi-5$JRRL0(YWN$ObPND!!n^g&PrBc%;vIHi@Rb;tMWactS-C}kY&59K_t0KE$6 zBZ+^C0}y=1X3FzDgW*~BV33|>hns{op$fPVQoRs8SY{eQWX6s+96}xFylX50?GKb$ z3cvD#BNGMQT*^6?omN)R2emS6?6lC5Hl|i!m@O``L?Q|NQ}AQUunnlumOY51M@LqJ zmlQ!{QCACfHPXh{rTGW*huL`sAp{P!365nFtl~1QnPZDEr0QNBOo)u3LZc1P4mLOu ztnR_F6>YQ*)Ye;I1c#@_1DePDQ}7#ygi9hch(CoIjakMZoTMWQg7XJRJZ)9PGV#@&S*I}pTY*04oi{9KZzOdB9vE8QIjGjFz5h_Lo{Vi;wRDZ@S9Aa2#!s9>iBD=DSj>bu!GWL)%UN7m#MU{yRG17|g~%ejxY&YmF0gwI zE6lc-$1gfGK;$=umbaGO0p7aA9gxI7m9h7d{XYP?k!?kf_aAc{_!kqLY}Q9U;3<_t zVP)^hu`b0u<2D|GwFOG`6f!^fUcRTYx<_2*#~~i?miw&#UzJh0-MVE>oBrz5>2FUR RH$KaUARsF*uUBC~)_)pjF*g7J delta 4888 zcmai2d2G~G5VngzsSwdfZ2-w?+7gK9JAU&H(llvd%OydH7ZwXe6HSp*OthB%3+g}?pZY}63CTvGQ-seX19pGOWGc11&v9h#Ck9oQMnu{YRm#vRvZz-tSd;8O; zvp;z7fnmJ{HgEXr>X{jfZ1l~+7p6De?vqucYF^$n`P4a8(Rca4oYvM~^6V=Ohwbdj zlB^%w_N~61d35XW^=8$fyp~&IdlnXCO*~<;LvA*CP$#oTY`Eo*Ytf z;^x)S**luA9K7}UxN)ObP2anE*>ahaK4ZUsZ1VhEb!E-M?^k}^HYNJ=jgpqnS`WQ` z++HmG>Ye`M(^u^({qXJyOILide_l@gpv5Q3ww6|GUUzm}@NMW7xJ9f|%>bL?Q- z{9%jM7Gyu%G;m|t%u&x>J_d^`4*&b&ipH>b?7A`AD~G=H`>sd(-k8&?F{}2jE$`)= zpEz^vtJ{bEU4A6<`rA{=#NnD}2UV31*z;5Ilmo?^zZkluZWH`7zNsqz$z$7 zR!-DAKR(+0+x_{?@4t2Jp0TwTroL+{H#@45SuX~ki_Oppr{Ss zF57KkmxKb#E);=tEJ+ZWB?;2AAfN;KXaRvw0WyqZ2?n^M6Df`fKW`XXMoLRE7Dic$ zj6f8C`GLdy6V>c2tFf8~agGHE0&Y_XA-yj!lHMn!=_qlS3@i~Y8bm@M=&Pl(EIWmC zqVQ`W6-5P)iv|iWX88$YT(HuMIscj5n11 zSdf5`)d!CGLBJmk(lS5kw2LPCuTujgD1M=Hie-X|lu9HaBtXysYZ6sw8T*xjPW=e) zsHswxsgzQlu^%-rRY0(Nm9~-wR@f2*YUI9`6u}TH#}rO!>Ps-`Np6Qyk(i-P~>PI135FI}m#PbK{P8uO)*Y(0J{Hy*9<~u6+;32*rzJ+ z0h@rhf3QTrLqhuzxM*_!1J7CQEG~d7JHyN5t)nR5*=|sEnh-b?DDz$Bar-!SI1U(* zyk}j4lES!vXW8Cwgk&2ME^w%}3H|GoU;~P+P57Czn+t(SFn);R4>Xc(QpV^`zmEOS z8WmrM;y=lGU@#L3zcC)S)>J>-Q@G7)w$@?SFhA;lkEEdhep~u$PQk29ClR9u(KJDP;0v+Qax&J+Q>rXrN(bQ stdqJZ=8BXnD2xR$T{KD+75D;^AI)?B<5Jx)H*G+=&&bJ%O)ARx4-+^u5dZ)H diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 79d82e6d38226ad6d7f86715bbb7ed1f21991f20..905f6d0bd4dce193d19eb1ecfe2355a18a50a425 100644 GIT binary patch delta 28305 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 delta 22497 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 diff --git a/ReadMe.md b/ReadMe.md index 42c1f458..62af3ea0 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -7,7 +7,7 @@ **RomWBW Introduction** \ Version 3.6 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -12 Sep 2025 +22 Sep 2025 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index cd7154ed..a1cdf98a 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW Introduction Wayne Warthen (wwarthen@gmail.com) -12 Sep 2025 +22 Sep 2025 diff --git a/Source/Build.cmd b/Source/Build.cmd index e654579f..7d5aada5 100644 --- a/Source/Build.cmd +++ b/Source/Build.cmd @@ -10,7 +10,7 @@ call BuildZRC || exit /b call BuildZ1RCC || exit /b call BuildZZRCC || exit /b call BuildZRC512 || exit /b -call BuildFZ80 || exit /b +call BuildSZ80 || exit /b call BuildEZ512 || exit /b if "%1" == "dist" ( diff --git a/Source/BuildFZ80.cmd b/Source/BuildFZ80.cmd deleted file mode 100644 index 1844e7cc..00000000 --- a/Source/BuildFZ80.cmd +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -setlocal - -pushd FZ80 && call Build || exit /b & popd diff --git a/Source/BuildSZ80.cmd b/Source/BuildSZ80.cmd new file mode 100644 index 00000000..029741e7 --- /dev/null +++ b/Source/BuildSZ80.cmd @@ -0,0 +1,4 @@ +@echo off +setlocal + +pushd SZ80 && call Build || exit /b & popd diff --git a/Source/Doc/Hardware.md b/Source/Doc/Hardware.md index 697a0886..37aae0a0 100644 --- a/Source/Doc/Hardware.md +++ b/Source/Doc/Hardware.md @@ -118,7 +118,8 @@ Others | [Heath H8 Z80 System]^5^ | H8 | HEATH_std.rom | 115200 | | [NABU w/ RomWBW Option Board]^5^ | NABU | NABU_std.rom | 115200 | | [S100 Computers Z180 SBC]^4^ | S100 | S100_std.rom | 57600 | -| [S100 Computers FPGA Z80 SBC]^4^ | S100 | FZ80_std.rom | 9600 | +| [S100 Computers Z80 CPU]^4^ | S100 | SZ80_std.rom | 9600 | +| [S100 Computers FPGA Z80 SBC]^4^ | S100 | SZ80_fpga.rom | 9600 | | [UNA Hardware BIOS]^1^ | - | UNA_std.rom | - | | [Z80-Retro SBC]^3^ | - | Z80RETRO_std.rom | 38400 | | [Z180 Mark IV SBC]^1^ | ECB | MK4_std.rom | 38400 | @@ -414,14 +415,56 @@ of the SIO ports, for ease of use with modern computers. `\clearpage`{=latex} -## S100 Computers FPGA Z80 SBC +## S100 Computers + +### S100 Computers Z80 CPU + +Z80-based S100 Modular System + +* Creator: John Monahan +* Website: [S100 Computers Z80 CPU](http://www.s100computers.com/My%20System%20Pages/Z80%20Board/Z80%20CPU%20Board.htm) + +#### ROM Image File: SZ80_std.rom + +| | | +|-------------------|---------------| +| Bus | S100 | +| Default CPU Speed | 8.000 MHz | +| Interrupts | None | +| System Timer | None | +| Serial Default | 9600 Baud | +| Memory Manager | SZ80 | +| ROM Size | 0 KB | +| RAM Size | 512 KB | + +#### Supported Hardware + +- SCON: IO=0 +- ESPSD: IO=128, PRIMARY +- ESPSD: IO=128, SECONDARY +- MD: TYPE=RAM +- PPIDE: MODE=STD, IO=48, MASTER +- PPIDE: MODE=STD, IO=48, SLAVE +- PPIDE: MODE=S100A, IO=56, MASTER +- PPIDE: MODE=S100A, IO=56, SLAVE +- PPIDE: MODE=S100B, IO=56, MASTER +- PPIDE: MODE=S100B, IO=56, SLAVE +- SD: MODE=FZ80, IO=108, UNITS=2 + +#### Notes: + +- Requires Propeller Console Board (or equivalent) + +`\clearpage`{=latex} + +### S100 Computers FPGA Z80 SBC An FPGA Z80 based S100 SBC -* Creator: John Monahan | +* Creator: John Monahan * Website: [S100 Computers FPGA Z80 SBC](http://www.s100computers.com/My%20System%20Pages/FPGA%20Z80%20SBC/FPGA%20Z80%20SBC.htm) -#### ROM Image File: FZ80_std.rom +#### ROM Image File: SZ80_fpga.rom | | | |-------------------|---------------| @@ -455,7 +498,7 @@ An FPGA Z80 based S100 SBC #### Notes: -- Requires matching FPGA code +- Requires matching FPGA code, see [S100 Projects RomWBW T35 Project](https://github.com/s100projects/ROMWBW_T35). `\clearpage`{=latex} diff --git a/Source/FZ80/Bank Layout.txt b/Source/FZ80/Bank Layout.txt deleted file mode 100644 index e911afb7..00000000 --- a/Source/FZ80/Bank Layout.txt +++ /dev/null @@ -1,18 +0,0 @@ -FPGA Z80 has no real ROM. It has a single 512K RAM chip. - -The ROMless startup mode treats the entire 512KB as RAM. 384KB of RAM -must be preloaded by the FPGA Monitor CF Loader. There will be no ROM -disk available under RomWBW. There will be a RAM Disk and it's initial -contents will be seeded by the image loaded by the CF Loader. - -Bank Contents Description --------- -------- ----------- -0x0 BIOS HBIOS Bank (operating) -0x1 IMG0 ROM Loader, Monitor, ROM OSes -0x2 IMG1 ROM Applications -0x3 IMG2 Reserved -0x4-0xB RAMD RAM Disk Banks -0xC BUF OS Buffers (CP/M3) -0xD AUX Aux Bank (CP/M 3, BPBIOS, etc.) -0xE USR User Bank (CP/M TPA, etc.) -0xF COM Common Bank, Upper 32KB diff --git a/Source/FZ80/fz80_ptbl.bin b/Source/FZ80/fz80_ptbl.bin deleted file mode 100644 index 5e9fc41de3484117f956625e9ae56931c6dd2949..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 72 ncmdOGQ=G{F1dJSd{1^T+aDdnXKz#5&8<-Db^MC~Lg3wg}k^u-} diff --git a/Source/HBIOS/Bank Layout.txt b/Source/HBIOS/Bank Layout.txt index afb8663d..57ddc24d 100644 --- a/Source/HBIOS/Bank Layout.txt +++ b/Source/HBIOS/Bank Layout.txt @@ -71,7 +71,7 @@ Bank ID Usage 0x82 User TPA 0x83 Common -ROMless Standard Bank Layout (512K): ZRC, ZRC512, EZ512, Z1RCC, ZZRCC, FZ80 +ROMless Standard Bank Layout (512K): ZRC, ZRC512, EZ512, Z1RCC, ZZRCC Bank ID Usage ------- ------ diff --git a/Source/HBIOS/Build.cmd b/Source/HBIOS/Build.cmd index 9eafe11b..0a288c6e 100644 --- a/Source/HBIOS/Build.cmd +++ b/Source/HBIOS/Build.cmd @@ -269,7 +269,8 @@ call Build HEATH std || exit /b call Build EPITX std || exit /b :: call Build MON std || exit /b call Build NABU std || exit /b -call Build FZ80 std || exit /b +call Build SZ80 std || exit /b +call Build SZ80 fpga || exit /b call Build UNA std || exit /b goto :eof diff --git a/Source/HBIOS/Build.ps1 b/Source/HBIOS/Build.ps1 index f98f5d99..b6ce5e78 100644 --- a/Source/HBIOS/Build.ps1 +++ b/Source/HBIOS/Build.ps1 @@ -27,7 +27,7 @@ $ErrorAction = 'Stop' # UNA BIOS is simply imbedded, it is not built here. # -$PlatformListZ80 = "SBC", "MBC", "ZETA", "ZETA2", "RCZ80", "EZZ80", "Z80RETRO", "DUO", "UNA", "HEATH", "MON", "NABU", "FZ80", "RCEZ80" +$PlatformListZ80 = "SBC", "MBC", "ZETA", "ZETA2", "RCZ80", "EZZ80", "Z80RETRO", "DUO", "UNA", "HEATH", "MON", "NABU", "SZ80", "RCEZ80" $PlatformListZ180 = "N8", "MK4", "RCZ180", "SCZ180", "DYNO", "RPH", "S100", "EPITX", "GMZ180" $PlatformListZ280 = "RCZ280" diff --git a/Source/HBIOS/Build.sh b/Source/HBIOS/Build.sh index f947e06b..d30aaa5a 100755 --- a/Source/HBIOS/Build.sh +++ b/Source/HBIOS/Build.sh @@ -53,7 +53,8 @@ if [ "${ROM_PLATFORM}" == "dist" ] ; then ROM_PLATFORM="EPITX"; ROM_CONFIG="std"; bash Build.sh # ROM_PLATFORM="MON"; ROM_CONFIG="std"; bash Build.sh ROM_PLATFORM="NABU"; ROM_CONFIG="std"; bash Build.sh - ROM_PLATFORM="FZ80"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="SZ80"; ROM_CONFIG="std"; bash Build.sh + ROM_PLATFORM="SZ80"; ROM_CONFIG="fpga"; bash Build.sh ROM_PLATFORM="UNA"; ROM_CONFIG="std"; bash Build.sh exit fi diff --git a/Source/HBIOS/Config/SZ80_fpga.asm b/Source/HBIOS/Config/SZ80_fpga.asm new file mode 100644 index 00000000..48902803 --- /dev/null +++ b/Source/HBIOS/Config/SZ80_fpga.asm @@ -0,0 +1,72 @@ +; +;================================================================================================== +; ROMWBW DEFAULT BUILD SETTINGS FOR S100 FPGA Z80 +;================================================================================================== +; +; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM +; INDICATED ABOVE. THESE SETTINGS DEFINE THE OFFICIAL BUILD FOR THIS +; PLATFORM AS DISTRIBUTED IN ROMWBW RELEASES. +; +; ROMWBW USES CASCADING CONFIGURATION FILES AS INDICATED BELOW: +; +; cfg_MASTER.asm - MASTER: CONFIGURATION FILE DEFINES ALL POSSIBLE ROMWBW SETTINGS +; | +; +-> cfg_.asm - PLATFORM: DEFAULT SETTINGS FOR SPECIFIC PLATFORM +; | +; +-> Config/_std.asm - BUILD: SETTINGS FOR EACH OFFICIAL DIST BUILD +; | +; +-> Config/_.asm - USER: CUSTOM USER BUILD SETTINGS +; +; THE TOP (MASTER CONFIGURATION) FILE DEFINES ALL POSSIBLE ROMWBW +; CONFIGURATION SETTINGS. EACH FILE BELOW THE MASTER CONFIGURATION FILE +; INHERITS THE CUMULATIVE SETTINGS OF THE FILES ABOVE IT AND MAY +; OVERRIDE THESE SETTINGS AS DESIRED. +; +; OTHER THAN THE TOP MASTER FILE, EACH FILE MUST "#INCLUDE" ITS PARENT +; FILE (SEE #INCLUDE STATEMENT BELOW). THE TOP TWO FILES SHOULD NOT BE +; MODIFIED. +; +; TO CUSTOMIZE YOUR BUILD SETTINGS YOU SHOULD MODIFY THIS FILE, THE +; DEFAULT BUILD SETTINGS (Config/_std.asm) OR PREFERABLY +; CREATE AN OPTIONAL CUSTOM USER SETTINGS FILE THAT INCLUDES THE DEFAULT +; BUILD SETTINGS FILE (SEE EXAMPLE Config/SBC_user.asm). +; +; BY CREATING A CUSTOM USER SETTINGS FILE, YOU ARE LESS LIKELY TO BE +; IMPACTED BY FUTURE CHANGES BECAUSE YOU WILL BE INHERITING MOST +; OF YOUR SETTINGS WHICH WILL BE UPDATED BY AUTHORS AS ROMWBW EVOLVES. +; +; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE +; SOURCE DIRECTORY (TWO DIRECTORIES ABOVE THIS ONE). +; +; *** WARNING: ASIDE FROM THE MASTER CONFIGURATION FILE, YOU MUST USE +; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT +; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU". +; +#DEFINE PLATFORM_NAME "S100 FPGA Z80", " [", CONFIG, "]" ; TEXT LABEL OF THIS CONFIG IN STARTUP MESSAGES +#DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED +#DEFINE DEFSERCFG SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL CONFIGURATION +; +#INCLUDE "cfg_SZ80.asm" +; +CPUOSC .SET 8000000 ; CPU OSC FREQ IN MHZ +RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) +CRTACT .SET TRUE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512|SZ80] +; +FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS +; +DS5RTCENABLE .SET TRUE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) +; +SSERENABLE .SET TRUE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) +; +LPTENABLE .SET TRUE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +; +FVENABLE .SET TRUE ; FV: ENABLE FPGA VGA VIDEO DRIVER (FV.ASM) +; +PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) +; +ESPSDENABLE .SET TRUE ; ESPSD: ENABLE S100 ESP32 SD DISK DRIVER (ESPSD.ASM) +ESPSDCNT .SET 1 ; ESPSD: NUMBER OF BOARDS TO DETECT (1-2), 1-2 DEVICES PER BOARD +ESPSD0DUAL .SET TRUE ; ESPSD 0: DUAL INTERFACE BOARD (DUAL SD) diff --git a/Source/HBIOS/Config/FZ80_std.asm b/Source/HBIOS/Config/SZ80_std.asm similarity index 82% rename from Source/HBIOS/Config/FZ80_std.asm rename to Source/HBIOS/Config/SZ80_std.asm index 9523b761..336e054b 100644 --- a/Source/HBIOS/Config/FZ80_std.asm +++ b/Source/HBIOS/Config/SZ80_std.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW DEFAULT BUILD SETTINGS FOR S100 FPGA Z80 +; ROMWBW DEFAULT BUILD SETTINGS FOR S100 Z80 ;================================================================================================== ; ; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM @@ -43,18 +43,22 @@ ; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU". ; #DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED -#DEFINE DEFSERCFG SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL CONFIGURATION +#DEFINE DEFSERCFG SER_9600_8N1 | SER_RTS ; DEFAULT SERIAL CONFIGURATION ; -#INCLUDE "cfg_FZ80.asm" +#INCLUDE "cfg_SZ80.asm" ; CPUOSC .SET 8000000 ; CPU OSC FREQ IN MHZ +RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) CRTACT .SET TRUE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +MEMMGR .SET MM_SZ80 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512|SZ80] ; -PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) -SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) +FVENABLE .SET FALSE ; FV: ENABLE FPGA VGA VIDEO DRIVER (FV.ASM) ; -LPTENABLE .SET TRUE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) ; ESPSDENABLE .SET TRUE ; ESPSD: ENABLE S100 ESP32 SD DISK DRIVER (ESPSD.ASM) ESPSDCNT .SET 1 ; ESPSD: NUMBER OF BOARDS TO DETECT (1-2), 1-2 DEVICES PER BOARD ESPSD0DUAL .SET TRUE ; ESPSD 0: DUAL INTERFACE BOARD (DUAL SD) + +#DEFINE SIZERAM diff --git a/Source/HBIOS/cfg_DUO.asm b/Source/HBIOS/cfg_DUO.asm index b422db63..a2383318 100644 --- a/Source/HBIOS/cfg_DUO.asm +++ b/Source/HBIOS/cfg_DUO.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_DUO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_DUO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -296,7 +296,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_DYNO.asm b/Source/HBIOS/cfg_DYNO.asm index f456e65d..2d635591 100644 --- a/Source/HBIOS/cfg_DYNO.asm +++ b/Source/HBIOS/cfg_DYNO.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -311,7 +311,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_EPITX.asm b/Source/HBIOS/cfg_EPITX.asm index e425dc8f..f1c660ca 100644 --- a/Source/HBIOS/cfg_EPITX.asm +++ b/Source/HBIOS/cfg_EPITX.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_EPITX ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_EPITX ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -307,7 +307,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_EPITX ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_EPITX ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $40 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 2 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_EZZ80.asm b/Source/HBIOS/cfg_EZZ80.asm index 0509c496..28bea0c6 100644 --- a/Source/HBIOS/cfg_EZZ80.asm +++ b/Source/HBIOS/cfg_EZZ80.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_EZZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_EZZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -316,7 +316,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_GMZ180.asm b/Source/HBIOS/cfg_GMZ180.asm index 86b537c5..6536a8ac 100644 --- a/Source/HBIOS/cfg_GMZ180.asm +++ b/Source/HBIOS/cfg_GMZ180.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_GMZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_GMZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -306,7 +306,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_GM ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_GM ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_HEATH.asm b/Source/HBIOS/cfg_HEATH.asm index f4a7fc70..90d0a6a8 100644 --- a/Source/HBIOS/cfg_HEATH.asm +++ b/Source/HBIOS/cfg_HEATH.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_HEATH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_HEATH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -316,7 +316,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_MASTER.asm b/Source/HBIOS/cfg_MASTER.asm index cf18aa3f..c4705cb6 100644 --- a/Source/HBIOS/cfg_MASTER.asm +++ b/Source/HBIOS/cfg_MASTER.asm @@ -49,7 +49,7 @@ ; #INCLUDE "hbios.inc" ; -PLATFORM .EQU PLT_NONE ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .EQU PLT_NONE ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .EQU CPU_NONE ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .EQU BIOS_NONE ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -375,7 +375,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .EQU FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_MBC.asm b/Source/HBIOS/cfg_MBC.asm index c742d0b2..499c1936 100644 --- a/Source/HBIOS/cfg_MBC.asm +++ b/Source/HBIOS/cfg_MBC.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -290,7 +290,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_MK4.asm b/Source/HBIOS/cfg_MK4.asm index 64b90d90..0c1cd61d 100644 --- a/Source/HBIOS/cfg_MK4.asm +++ b/Source/HBIOS/cfg_MK4.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -301,7 +301,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_MON.asm b/Source/HBIOS/cfg_MON.asm index 1a9147ca..e5eca685 100644 --- a/Source/HBIOS/cfg_MON.asm +++ b/Source/HBIOS/cfg_MON.asm @@ -51,7 +51,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_MON ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_MON ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -313,7 +313,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_N8.asm b/Source/HBIOS/cfg_N8.asm index 17d83dbc..3cab0105 100644 --- a/Source/HBIOS/cfg_N8.asm +++ b/Source/HBIOS/cfg_N8.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -303,7 +303,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET N8_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_NABU.asm b/Source/HBIOS/cfg_NABU.asm index 11226799..d34a929a 100644 --- a/Source/HBIOS/cfg_NABU.asm +++ b/Source/HBIOS/cfg_NABU.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_NABU ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_NABU ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -316,7 +316,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_RCEZ80.asm b/Source/HBIOS/cfg_RCEZ80.asm index 4d10dccb..4ba8c6e1 100644 --- a/Source/HBIOS/cfg_RCEZ80.asm +++ b/Source/HBIOS/cfg_RCEZ80.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_RCEZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_RCEZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_EZ80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -314,7 +314,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_RCZ180.asm b/Source/HBIOS/cfg_RCZ180.asm index fd99bd1e..21fe6f02 100644 --- a/Source/HBIOS/cfg_RCZ180.asm +++ b/Source/HBIOS/cfg_RCZ180.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -311,7 +311,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_RCZ280.asm b/Source/HBIOS/cfg_RCZ280.asm index a7e4423f..2215a5c2 100644 --- a/Source/HBIOS/cfg_RCZ280.asm +++ b/Source/HBIOS/cfg_RCZ280.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z280 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -321,7 +321,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_RCZ80.asm b/Source/HBIOS/cfg_RCZ80.asm index dbd329e8..c9970134 100644 --- a/Source/HBIOS/cfg_RCZ80.asm +++ b/Source/HBIOS/cfg_RCZ80.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -319,7 +319,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_PIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_RPH.asm b/Source/HBIOS/cfg_RPH.asm index 4fbb0d9e..9c49100c 100644 --- a/Source/HBIOS/cfg_RPH.asm +++ b/Source/HBIOS/cfg_RPH.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET TRUE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -291,7 +291,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET RPH_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_S100.asm b/Source/HBIOS/cfg_S100.asm index b2fefef2..484c0eb4 100644 --- a/Source/HBIOS/cfg_S100.asm +++ b/Source/HBIOS/cfg_S100.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_S100 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_S100 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -311,7 +311,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_SBC.asm b/Source/HBIOS/cfg_SBC.asm index 5a9cbb4c..3c5bde4a 100644 --- a/Source/HBIOS/cfg_SBC.asm +++ b/Source/HBIOS/cfg_SBC.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -291,7 +291,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_SCZ180.asm b/Source/HBIOS/cfg_SCZ180.asm index 0c4ce4b0..9a39e2f1 100644 --- a/Source/HBIOS/cfg_SCZ180.asm +++ b/Source/HBIOS/cfg_SCZ180.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -311,7 +311,7 @@ PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_FZ80.asm b/Source/HBIOS/cfg_SZ80.asm similarity index 92% rename from Source/HBIOS/cfg_FZ80.asm rename to Source/HBIOS/cfg_SZ80.asm index 328c8df3..884f89e3 100644 --- a/Source/HBIOS/cfg_FZ80.asm +++ b/Source/HBIOS/cfg_SZ80.asm @@ -1,6 +1,6 @@ ; ;================================================================================================== -; ROMWBW PLATFORM CONFIGURATION DEFAULTS FOR PLATFORM: FZ80 +; ROMWBW PLATFORM CONFIGURATION DEFAULTS FOR PLATFORM: SZ80 ;================================================================================================== ; ; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM @@ -42,14 +42,14 @@ ; ".SET" TO OVERRIDE SETTINGS. THE ASSEMBLER WILL ERROR IF YOU ATTEMPT ; TO USE ".EQU" BECAUSE IT WON'T LET YOU REDEFINE A SETTING WITH ".EQU". ; -#DEFINE PLATFORM_NAME "S100 FPGA Z80", " [", CONFIG, "]" ; TEXT LABEL OF THIS CONFIG IN STARTUP MESSAGES +#DEFINE PLATFORM_NAME "S100 Z80", " [", CONFIG, "]" ; TEXT LABEL OF THIS CONFIG IN STARTUP MESSAGES #DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD FOR EMPTY CMD LINE #DEFINE AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED #DEFINE DEFSERCFG SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL CONFIGURATION ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_FZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_SZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -105,7 +105,7 @@ SKZDIV .SET DIV_1 ; UART CLK (CLK2) DIVIDER FOR Z80-512K WDOGMODE .SET WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ] WDOGIO .SET $6E ; WATCHDOG REGISTER ADR ; -FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS +FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS FPLED_IO .SET $FF ; FP: PORT ADDRESS FOR FP LEDS FPLED_INV .SET FALSE ; FP: LED BITS ARE INVERTED FPLED_DSKACT .SET TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS @@ -165,9 +165,9 @@ SIMRTCENABLE .SET FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) DS7RTCENABLE .SET FALSE ; DS7RTC: ENABLE DS-1307 I2C CLOCK DRIVER (DS7RTC.ASM) DS7RTCMODE .SET DS7RTCMODE_PCF ; DS7RTC: OPERATING MODE: DS7RTCMODE_[PCF] ; -DS5RTCENABLE .SET TRUE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) +DS5RTCENABLE .SET FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) ; -SSERENABLE .SET TRUE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) +SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG SSERSTATUS .SET $34 ; SSER: STATUS PORT SSERDATA .SET $35 ; SSER: DATA PORT @@ -259,7 +259,7 @@ VGAENABLE .SET FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) SCONENABLE .SET TRUE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) -FVENABLE .SET TRUE ; FV: ENABLE FPGA VGA VIDEO DRIVER (FV.ASM) +FVENABLE .SET FALSE ; FV: ENABLE FPGA VGA VIDEO DRIVER (FV.ASM) ; MDENABLE .SET TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) MDROM .SET FALSE ; MD: ENABLE ROM DISK @@ -299,24 +299,24 @@ IDE2DATHI .SET $00 ; IDE 2: DATA HI PORT FOR 16-BIT I/O IDE2A8BIT .SET TRUE ; IDE 2A (MASTER): 8 BIT XFER IDE2B8BIT .SET TRUE ; IDE 2B (MASTER): 8 BIT XFER ; -PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +PPIDEENABLE .SET FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) PPIDETRACE .SET 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) -PPIDECNT .SET 3 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP -PPIDE0MODE .SET PPIDEMODE_STD ; PPIDE 0: DRIVER MODE: IDEMODE_[STD|S100A|S100B] +PPIDECNT .SET 2 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP +PPIDE0MODE .SET PPIDEMODE_S100A ; PPIDE 0: DRIVER MODE: IDEMODE_[STD|S100A|S100B] PPIDE0BASE .SET $30 ; PPIDE 0: PPI REGISTERS BASE ADR PPIDE0A8BIT .SET FALSE ; PPIDE 0A (MASTER): 8 BIT XFER PPIDE0B8BIT .SET FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER -PPIDE1MODE .SET PPIDEMODE_S100A ; PPIDE 1: DRIVER MODE: IDEMODE_[STD|S100A|S100B] -PPIDE1BASE .SET $38 ; PPIDE 1: PPI REGISTERS BASE ADR +PPIDE1MODE .SET PPIDEMODE_S100B ; PPIDE 1: DRIVER MODE: IDEMODE_[STD|S100A|S100B] +PPIDE1BASE .SET $30 ; PPIDE 1: PPI REGISTERS BASE ADR PPIDE1A8BIT .SET FALSE ; PPIDE 1A (MASTER): 8 BIT XFER PPIDE1B8BIT .SET FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER -PPIDE2MODE .SET PPIDEMODE_S100B ; PPIDE 2: DRIVER MODE: IDEMODE_[STD|S100A|S100B] -PPIDE2BASE .SET $38 ; PPIDE 2: PPI REGISTERS BASE ADR +PPIDE2MODE .SET PPIDEMODE_NONE ; PPIDE 2: DRIVER MODE: IDEMODE_[STD|S100A|S100B] +PPIDE2BASE .SET $00 ; PPIDE 2: PPI REGISTERS BASE ADR PPIDE2A8BIT .SET FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .SET FALSE ; PPIDE 2B (SLAVE): 8 BIT XFER ; -SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_FZ80 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) +SDMODE .SET SDMODE_T35 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) @@ -348,7 +348,7 @@ PIOCNT .SET 2 ; PIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP PIO0BASE .SET $B8 ; PIO 0: REGISTERS BASE ADR PIO1BASE .SET $BC ; PIO 1: REGISTERS BASE ADR ; -LPTENABLE .SET TRUE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +LPTENABLE .SET FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) LPTMODE .SET LPTMODE_S100 ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014] LPTCNT .SET 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2) LPTTRACE .SET 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_UNA.asm b/Source/HBIOS/cfg_UNA.asm index 4fe90615..e652ea05 100644 --- a/Source/HBIOS/cfg_UNA.asm +++ b/Source/HBIOS/cfg_UNA.asm @@ -15,7 +15,7 @@ ; #INCLUDE "../UBIOS/ubios.inc" ; -;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA] ; diff --git a/Source/HBIOS/cfg_Z80RETRO.asm b/Source/HBIOS/cfg_Z80RETRO.asm index c38a2ce9..1e2179e4 100644 --- a/Source/HBIOS/cfg_Z80RETRO.asm +++ b/Source/HBIOS/cfg_Z80RETRO.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_Z80RETRO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_Z80RETRO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -269,7 +269,7 @@ PPIDE0A8BIT .SET FALSE ; PPIDE 0A (MASTER): 8 BIT XFER PPIDE0B8BIT .SET FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_Z80R ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_Z80R ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) SDCSIOFAST .SET FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE diff --git a/Source/HBIOS/cfg_ZETA.asm b/Source/HBIOS/cfg_ZETA.asm index b6e14834..ba261d63 100644 --- a/Source/HBIOS/cfg_ZETA.asm +++ b/Source/HBIOS/cfg_ZETA.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -238,7 +238,7 @@ PPIDE0A8BIT .SET FALSE ; PPIDE 0A (MASTER): 8 BIT XFER PPIDE0B8BIT .SET FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/cfg_ZETA2.asm b/Source/HBIOS/cfg_ZETA2.asm index f429b7b3..ebab54af 100644 --- a/Source/HBIOS/cfg_ZETA2.asm +++ b/Source/HBIOS/cfg_ZETA2.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|FZ80] +PLATFORM .SET PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|S100|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE @@ -249,7 +249,7 @@ PPIDE0A8BIT .SET FALSE ; PPIDE 0A (MASTER): 8 BIT XFER PPIDE0B8BIT .SET FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER ; SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|FZ80|GM|EZ512|K80W] +SDMODE .SET SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|USR|PIO|Z80R|EPITX|T35|GM|EZ512|K80W] SDPPIBASE .SET $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY SDTRACE .SET 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index d13312ca..2bf8a100 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -663,7 +663,7 @@ HBX_ROM: ; #IF (MEMMGR == MM_Z2) -#IF (CPUFAM == CPU_EZ80) + #IF (CPUFAM == CPU_EZ80) BIT 7,A ; BIT 7 SET REQUESTS RAM PAGE JR Z,HBX_ROM ; NOT SET, SELECT ROM PAGE RES 7,A ; RAM PAGE REQUESTED: CLEAR ROM BIT @@ -676,16 +676,16 @@ HBX_ROM: OUT_NN_A(MPGSEL_1) ; BANK_1: 16K - 32K RET ; DONE -#ELSE + #ELSE BIT 7,A ; BIT 7 SET REQUESTS RAM PAGE JR Z,HBX_ROM ; NOT SET, SELECT ROM PAGE RES 7,A ; RAM PAGE REQUESTED: CLEAR ROM BIT - #IF (PLATFORM == PLT_DUO) + #IF (PLATFORM == PLT_DUO) ADD A,64 ; ADD 64 x 32K - RAM STARTS FROM 2048K - #ELSE + #ELSE ADD A,ROMSIZE / 32 ; STARTING RAM BANK NUMBER OFFSET - #ENDIF + #ENDIF ; HBX_ROM: RLCA ; TIMES 2 - GET 16K PAGE INSTEAD OF 32K @@ -694,11 +694,11 @@ HBX_ROM: INC A ; EZ80_IO() OUT (MPGSEL_1),A ; BANK_1: 16K - 32K - #IF (CPUFAM == CPU_Z280) + #IF (CPUFAM == CPU_Z280) PCACHE - #ENDIF + #ENDIF RET ; DONE -#ENDIF + #ENDIF #ENDIF ; #IF (MEMMGR == MM_N8) @@ -939,6 +939,27 @@ Z280_SYSCALL_GO: RETIL ; RETURN FROM INT #ENDIF ; +#IF (MEMMGR == MM_SZ80) +; +; 1MB OF RAM IN 16K PAGES. STARTS AT 4TH 16K PAGE AND WRAPS AROUND +; BECAUSE PAGE 2 & 3 ARE FIXED TO HIGH 32K OF CPU ADDRESS SPACE. +; + BIT 7,A ; BIT 7 SET REQUESTS RAM PAGE + JR Z,HBX_ROM ; NOT SET, SELECT ROM PAGE + RES 7,A ; RAM PAGE REQUESTED: CLEAR ROM BIT + ADD A,ROMSIZE / 32 ; STARTING RAM BANK NUMBER OFFSET +; +HBX_ROM: + ADD A,2 ; OFFSET TO SKIP OVER FIXED PAGES + RLA ; LOW 2 BITS + RLA ; ... ARE NOT USED + RLA ; TIMES 2 - GET 16K PAGE INSTEAD OF 32K + OUT ($D2),A ; BANK_0: 0K - 16K + ADD A,4 + 1 ; +1 TO KEEP MONITOR ROM INACTIVE + OUT ($D3),A ; BANK_1: 16K - 32K + RET ; DONE +#ENDIF +; ;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ; Copy Data - Possibly between banks. This resembles CP/M 3, but ; usage of the HL and DE registers is reversed. @@ -1851,12 +1872,25 @@ ROMRESUME: EZ80_IO() OUT (MPGENA),A ; ENABLE MMU NOW ; - #IF (PLATFORM == PLT_FZ80) + #IF (PLATFORM == PLT_SZ80) ; REMOVE FPGA ROM MONITOR FROM THE CPU ADDRESS SPACE LD A,%00000010 OUT ($07),A #ENDIF #ENDIF +; +; S100 Z80 MMU INITIALIZATION +; +#IF (MEMMGR == MM_SZ80) +; + #IFDEF ROMBOOT + LD A,4 << 2 + OUT ($D2),A + LD A,(5 << 2) + 1 ; +1 TO DEACTIVATE MONITOR ROM + OUT ($D3),A + #ENDIF +; +#ENDIF ; ;-------------------------------------------------------------------------------------------------- @@ -3259,6 +3293,9 @@ HB_Z280BUS1: ;#ENDIF #IF (MEMMGR == MM_EZ512) .TEXT "EZ512$" +#ENDIF +#IF (MEMMGR == MM_SZ80) + .TEXT "SZ80$" #ENDIF CALL PRTSTRD .TEXT " MMU$" @@ -3588,7 +3625,7 @@ HB_WDZ: JR NZ,INITSYS3 ; NOT SET, BYPASS CONSOLE SWITCH #ENDIF ; - #IF (PLATFORM == PLT_FZ80) + #IF ((PLATFORM == PLT_SZ80) & (MEMMGR == MM_Z2)) ; IOBYTE: XXXXXVVC ; 00- FORCE ONBOARD VGA/PS2 KBD (FV) ; --1 FORCE PROPELLER CONSOLE (SCON) @@ -3963,6 +4000,9 @@ HB_PCINITTBL: #ENDIF #IF (TMSENABLE) .DW TMS_PREINIT +#ENDIF +#IF (SCONENABLE) + .DW SCON_PREINIT #ENDIF .DW TERM_PREINIT ; ALWAYS DO THIS ONE #IF (PIOENABLE) diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index 3f8ebd4a..33d073d1 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -207,7 +207,7 @@ PLT_EPITX .EQU 19 ; Z180 MINI-ITX PLT_MON .EQU 20 ; MONSPUTER (DEPRECATED) PLT_GMZ180 .EQU 21 ; GENESIS Z180 SYSTEM PLT_NABU .EQU 22 ; NABU PC W/ ROMWBW OPTION BOARD -PLT_FZ80 .EQU 23 ; S100 FPGA Z80 +PLT_SZ80 .EQU 23 ; S100 Z80 PLT_RCEZ80 .EQU 24 ; RCBUS W/ eZ80 ; ; HBIOS GLOBAL ERROR RETURN VALUES diff --git a/Source/HBIOS/plt_pretty.inc b/Source/HBIOS/plt_pretty.inc index 350e8d2b..664a81ce 100644 --- a/Source/HBIOS/plt_pretty.inc +++ b/Source/HBIOS/plt_pretty.inc @@ -38,7 +38,7 @@ ; MONSPUTER ; GENESIS Z180 ; NABU -; S100 FPGA Z80 +; S100 Z80 ; RCBUS eZ80 ; STR_PLT_PRETTY: @@ -177,11 +177,11 @@ STR_PLT_PRETTY: .DB "| .` | / _ \\ | _ \\ | |_| |",10,13 .DB "|_|\\_| /_/ \\_\\ |___/ \\___/",10,13 #ENDIF -#IF (PLATFORM == PLT_FZ80) - .DB " ___ _ __ __ ___ ___ ___ _ ____ ___ __",10,13 - .DB "/ __| / | / \\ / \\ | __| | _ \\ / __| /_\\ |_ / ( _ ) / \\ ",10,13 - .DB "\\__ \\ | | | () | | () | | _| | _/ | (_ | / _ \\ / / / _ \\ | () |",10,13 - .DB "|___/ |_| \\__/ \\__/ |_| |_| \\___|/_/ \\_\\ /___| \\___/ \\__/",10,13 +#IF (PLATFORM == PLT_SZ80) + .DB " ___ _ __ __ _______ __",10,13 + .DB " / __/ |/ \\ / \\ |_ ( _ )/ \\",10,13 + .DB " \\__ \\ | () | () | / // _ \\ () |",10,13 + .DB " |___/_|\\__/ \\__/ /___\\___/\\__/",10,13 #ENDIF #IF (PLATFORM == PLT_RCEZ80) .DB " ___ ___ ___ _ _ ___ ____ ___ __",10,13 diff --git a/Source/HBIOS/ppide.asm b/Source/HBIOS/ppide.asm index 1c30cc0c..633101fb 100644 --- a/Source/HBIOS/ppide.asm +++ b/Source/HBIOS/ppide.asm @@ -477,6 +477,19 @@ PPIDE_INIT2: LD A,(IY+PPIDE_DATALO) ; GET IO BASE ADDRES CALL PRTHEXBYTE ; DISPLAY IT ; + LD A,(IY+PPIDE_MODE) ; GET MODE + LD DE,PPIDE_STR_PRIMARY ; LOAD PRIMARY STRING + CP PPIDEMODE_S100A ; PRIMARY? + JR Z,PPIDE_INIT2A ; IF SO, DISPLAY IT + LD DE,PPIDE_STR_SECONDARY ; LOAD SECONDARY STRING + CP PPIDEMODE_S100B ; SECONDARY? + JR Z,PPIDE_INIT2A ; IF SO, DISPLAY IT + JR PPIDE_INIT2B ; NEITHER, SKIP IT +; +PPIDE_INIT2A: + CALL WRITESTR ; DISPLAY IT +; +PPIDE_INIT2B: CALL PPIDE_DETECT ; PROBE FOR INTERFACE JR Z,PPIDE_INIT3 ; GOT IT, MOVE ON TO INIT UNITS CALL PC_SPACE ; FORMATTING @@ -2311,6 +2324,9 @@ PPIDE_STR_8BIT .TEXT " 8-BIT$" PPIDE_STR_TYPEATA .TEXT " ATA$" PPIDE_STR_TYPEATAPI .TEXT " ATAPI$" ; +PPIDE_STR_PRIMARY .TEXT " PRIMARY$" +PPIDE_STR_SECONDARY .TEXT " SECONDARY$" +; ;============================================================================= ; DATA STORAGE ;============================================================================= diff --git a/Source/HBIOS/scon.asm b/Source/HBIOS/scon.asm index 9d8452de..f6457bc3 100644 --- a/Source/HBIOS/scon.asm +++ b/Source/HBIOS/scon.asm @@ -22,6 +22,21 @@ SCON_ROWS .EQU 40 ; ; ; +SCON_PREINIT: +; +; ADD OURSELVES TO CIO DISPATCH TABLE +; + LD D,0 ; PHYSICAL UNIT IS ZERO + LD E,CIODEV_SCON ; DEVICE TYPE + LD BC,SCON_FNTBL ; BC := FUNCTION TABLE ADDRESS + CALL CIO_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED + CALL CIO_SETCRT ; SET OURSELVES AS THE CRT DEVICE +; + XOR A ; SIGNAL SUCCESS + RET +; +; +; SCON_INIT: CALL NEWLINE PRTS("SCON:$") @@ -39,15 +54,6 @@ SCON_INIT: CALL PRTDECB CALL PRTSTRD .TEXT " TEXT (ANSI)$" -; -; ADD OURSELVES TO CIO DISPATCH TABLE -; - LD D,0 ; PHYSICAL UNIT IS ZERO - LD E,CIODEV_SCON ; DEVICE TYPE - LD BC,SCON_FNTBL ; BC := FUNCTION TABLE ADDRESS - CALL CIO_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED - ;;;LD (HCB + HCB_CRTDEV),A ; SET OURSELVES AS THE CRT DEVICE - CALL CIO_SETCRT ; SET OURSELVES AS THE CRT DEVICE ; XOR A ; SIGNAL SUCCESS RET diff --git a/Source/HBIOS/sd.asm b/Source/HBIOS/sd.asm index 207225be..123ab687 100644 --- a/Source/HBIOS/sd.asm +++ b/Source/HBIOS/sd.asm @@ -420,7 +420,7 @@ SD_INVCS .EQU FALSE ; INVERT CS ; 0: PRIMARY DEVICE, USE VALUE ~$01 ; 1: SECONDARY DEVICE, USE VALUE ~$02 ; -#IF (SDMODE == SDMODE_FZ80) ; S100 FPGA Z80 +#IF (SDMODE == SDMODE_T35) ; S100 FPGA Z80 SD_IOBASE .EQU $6C ; IOBASE SD_DATA .EQU SD_IOBASE + 0 ; DATA IN/OUT PORT SD_CLKSEL .EQU SD_IOBASE + 1 ; CLOCK SPEED SELECT PORT @@ -433,7 +433,7 @@ SD_OPRDEF .EQU $FF ; QUIESCENT STATE SD_CS0 .EQU %00000001 ; PRIMARY DEVICE SELECT BIT SD_CS1 .EQU %00000010 ; SECONDARY DEVICE SELECT BIT SD_INVCS .EQU TRUE ; INVERT CS - DEVECHO "FZ80" + DEVECHO "T35" #ENDIF ; #IF (SDMODE == SDMODE_EZ512) ; Z80 PIO ON EAZY80-512 @@ -728,8 +728,8 @@ SD_INIT: CALL PRTHEXBYTE #ENDIF ; -#IF (SDMODE == SDMODE_FZ80) - PRTS(" MODE=FZ80$") +#IF (SDMODE == SDMODE_T35) + PRTS(" MODE=T35$") PRTS(" IO=0x$") LD A,SD_IOBASE CALL PRTHEXBYTE @@ -2021,7 +2021,7 @@ SD_SETUP: OUT (SD_OPRREG),A #ENDIF ; -#IF (SDMODE == SDMODE_FZ80) +#IF (SDMODE == SDMODE_T35) LD A,SD_OPRDEF ; DEFAULT SELECT VALUE LD (SD_OPRVAL),A ; PUT IN SHADOW OUT (SD_OPRREG),A ; WRITE TO PORT @@ -2076,7 +2076,7 @@ SD_SELECT: ; CALL SD_WAITTX ;#ENDIF ; -#IF ((SDMODE == SDMODE_SC) | (SDMODE == SDMODE_MT) | (SDMODE == SDMODE_FZ80) | (SDMODE == SDMODE_GM)) +#IF ((SDMODE == SDMODE_SC) | (SDMODE == SDMODE_MT) | (SDMODE == SDMODE_T35) | (SDMODE == SDMODE_GM)) LD A,(IY+SD_DEV) ; GET CURRENT DEVICE OR A ; SET FLAGS LD A,(SD_OPRVAL) ; GET CURRENT OPRVAL BACK @@ -2108,7 +2108,7 @@ SD_SELECT2: ; ADJUST BIT(S) FOR INTERFACES USING INVERTED CS BITS ;#IF ((SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_UART) | (SDMODE == SDMODE_SC) | (SDMODE == SDMODE_GM)) #IF (SD_INVCS) - #IF (((SDMODE == SDMODE_SC) | (SDMODE == SDMODE_FZ80) | (SDMODE == SDMODE_GM)) & (SD_DEVCNT > 1)) + #IF (((SDMODE == SDMODE_SC) | (SDMODE == SDMODE_T35) | (SDMODE == SDMODE_GM)) & (SD_DEVCNT > 1)) XOR SD_CS0 | SD_CS1 #ELSE XOR SD_CS0 @@ -2140,7 +2140,7 @@ SD_DESELECT: CALL DLY32 ; DELAY FOR FINAL BIT #ENDIF ; -#IF (SDMODE == SDMODE_FZ80) +#IF (SDMODE == SDMODE_T35) CALL SD_WAITBSY #ENDIF ; @@ -2156,7 +2156,7 @@ SD_DESELECT: #ENDIF ; ADJUST BIT(S) FOR INTERFACES USING INVERTED CS BITS #IF (SD_INVCS) - #IF (((SDMODE == SDMODE_SC) | (SDMODE == SDMODE_FZ80) | (SDMODE == SDMODE_GM)) & (SD_DEVCNT > 1)) + #IF (((SDMODE == SDMODE_SC) | (SDMODE == SDMODE_T35) | (SDMODE == SDMODE_GM)) & (SD_DEVCNT > 1)) XOR SD_CS0 | SD_CS1 #ELSE XOR SD_CS0 @@ -2186,7 +2186,7 @@ SD_WAITRX: ; #ENDIF ; -#IF (SDMODE == SDMODE_FZ80) +#IF (SDMODE == SDMODE_T35) ; ; WAIT WHILE FPGA SPI INTERFACE IS BUSY SENDING OR RECEIVING ; @@ -2276,7 +2276,7 @@ SD_PUT1: OUT (SD_OPRREG),A ; LEAVE WITH CLOCK LOW #ENDIF ; -#IF (SDMODE == SDMODE_FZ80) +#IF (SDMODE == SDMODE_T35) CALL SD_WAITBSY ; WAIT FOR PENDING ACTIVITY OUT (SD_DATA),A ; POST THE VALUE OUT (SD_ACTION),A ; INITIATE THE WRITE @@ -2387,7 +2387,7 @@ SD_GET1: #ENDIF #ENDIF ; -#IF (SDMODE == SDMODE_FZ80) +#IF (SDMODE == SDMODE_T35) CALL SD_WAITBSY ; WAIT FOR PENDING ACTIVITY IN A,(SD_ACTION) ; INITIATE READ CALL SD_WAITBSY ; WAIT FOR DONE diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index f5cd620d..780ee0e3 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -24,7 +24,7 @@ ; 20. MON Jacques Pelletier's Monsputer (deprecated) ; 21. GMZ180 Doug Jacksons' Genesis Z180 System ; 22. NABU NABU w/ Les Bird's RomWBW Option Board -; 23. FZ80 S100 Computers FPGA Z80 +; 23. SZ80 S100 Computers Z80 ; 24. RCEZ80 RCBus eZ80 ; ; @@ -98,6 +98,7 @@ MM_MBC .EQU 7 ; MBC MEMORY MANAGER MM_RPH .EQU 8 ; Z180 WITH RPH EXTENSIONS MM_MON .EQU 9 ; MONSPUTER MMU (DEPRECATED) MM_EZ512 .EQU 10 ; EZ512 BANK SWITCHING +MM_SZ80 .EQU 11 ; S100 Z80 CPU ONBAORD MEMORY MANAGER ; ; BOOT STYLE ; @@ -241,7 +242,7 @@ SDMODE_USR .EQU 10 ; USER DEFINED (in sd.asm) (NOT COMPLETE) SDMODE_PIO .EQU 11 ; Z80 PIO bitbang SDMODE_Z80R .EQU 12 ; Z80 Retro SDMODE_EPITX .EQU 13 ; Mini ITX Z180 -SDMODE_FZ80 .EQU 14 ; S100 FPGA Z80 +SDMODE_T35 .EQU 14 ; S100 FPGA Z80 SDMODE_GM .EQU 15 ; Genesis SD Driver SDMODE_EZ512 .EQU 16 ; EZ512 SD SDMODE_K80W .EQU 17 ; K80W SD @@ -777,7 +778,10 @@ DSCVAL .EQU DEFSERCFG SYSECHO "MONSPUTER ONBOARD (MON)" ; DEPRECATED #ENDIF #IF (MEMMGR == MM_EZ512) - SYSECHO "EAZY80-512 ONBOARD" ; DEPRECATED + SYSECHO "EAZY80-512 ONBOARD" + #ENDIF + #IF (MEMMGR == MM_SZ80) + SYSECHO "S100 Z80" #ENDIF SYSECHO "\n" #ENDIF diff --git a/Source/Makefile b/Source/Makefile index 2d4f1e41..02f9f6ea 100644 --- a/Source/Makefile +++ b/Source/Makefile @@ -2,12 +2,12 @@ # order is actually important, because of build dependencies # -.PHONY: doc prop shared bp images rom zrc z1rcc zzrcc zrc512 fz80 ez512 +.PHONY: doc prop shared bp images rom zrc z1rcc zzrcc zrc512 sz80 ez512 .ONESHELL: .SHELLFLAGS = -ce -all: prop shared bp images rom zrc z1rcc zzrcc zrc512 fz80 ez512 +all: prop shared bp images rom zrc z1rcc zzrcc zrc512 sz80 ez512 doc: $(MAKE) --directory Doc $(ACTION) @@ -53,8 +53,8 @@ zzrcc: zrc512: $(MAKE) --directory ZRC512 $(ACTION) -fz80: - $(MAKE) --directory FZ80 $(ACTION) +sz80: + $(MAKE) --directory SZ80 $(ACTION) ez512: $(MAKE) --directory EZ512 $(ACTION) diff --git a/Source/SZ80/Bank Layout.txt b/Source/SZ80/Bank Layout.txt new file mode 100644 index 00000000..29056531 --- /dev/null +++ b/Source/SZ80/Bank Layout.txt @@ -0,0 +1,38 @@ +S100 Z80 has no real ROM. It has 1024K RAM. + +The ROMless startup mode treats the entire 1024KB as RAM. 128KB of RAM +must be preloaded by the Monitor CF Loader. There will be no ROM +disk available under RomWBW. There will be a RAM Disk and it's initial +contents will be seeded by the image loaded by the CF Loader. + +Bank Contents Description +-------- -------- ----------- +0x0 BIOS HBIOS Bank (operating) +0x1 IMG0 ROM Loader, Monitor, ROM OSes +0x2 IMG1 ROM Applications +0x3 IMG2 Reserved +0x4-0x1B RAMD RAM Disk Banks +0x1C BUF OS Buffers (CP/M3) +0x1D AUX Aux Bank (CP/M 3, BPBIOS, etc.) +0x1E USR User Bank (CP/M TPA, etc.) +0x1F COM Common Bank, Upper 32KB + + +FPGA Z80 has no real ROM. It has a single 512K RAM chip. + +The ROMless startup mode treats the entire 512KB as RAM. 384KB of RAM +must be preloaded by the FPGA Monitor CF Loader. There will be no ROM +disk available under RomWBW. There will be a RAM Disk and it's initial +contents will be seeded by the image loaded by the CF Loader. + +Bank Contents Description +-------- -------- ----------- +0x0 BIOS HBIOS Bank (operating) +0x1 IMG0 ROM Loader, Monitor, ROM OSes +0x2 IMG1 ROM Applications +0x3 IMG2 Reserved +0x4-0xB RAMD RAM Disk Banks +0xC BUF OS Buffers (CP/M3) +0xD AUX Aux Bank (CP/M 3, BPBIOS, etc.) +0xE USR User Bank (CP/M TPA, etc.) +0xF COM Common Bank, Upper 32KB diff --git a/Source/FZ80/Build.cmd b/Source/SZ80/Build.cmd similarity index 82% rename from Source/FZ80/Build.cmd rename to Source/SZ80/Build.cmd index 8ca4f6c3..c61b0456 100644 --- a/Source/FZ80/Build.cmd +++ b/Source/SZ80/Build.cmd @@ -5,7 +5,7 @@ set TOOLS=../../Tools set PATH=%TOOLS%\srecord;%PATH% -for %%f in (..\..\Binary\FZ80_*.rom) do call :build %%~nf +for %%f in (..\..\Binary\SZ80_*.rom) do call :build %%~nf goto :eof @@ -15,7 +15,7 @@ echo Creating %1 disk image... echo. srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary -srec_cat temp.dat -binary -exclude 0x1B8 0x200 fz80_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary +srec_cat temp.dat -binary -exclude 0x1B8 0x200 sz80_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary srec_cat temp.dat -binary -exclude 0x80000 0xE0000 ..\..\Binary\%1.rom -binary -offset 0x80000 -o temp.dat -binary move temp.dat ..\..\Binary\%1_hd1k_prefix.dat diff --git a/Source/FZ80/Clean.cmd b/Source/SZ80/Clean.cmd similarity index 100% rename from Source/FZ80/Clean.cmd rename to Source/SZ80/Clean.cmd diff --git a/Source/FZ80/Makefile b/Source/SZ80/Makefile similarity index 84% rename from Source/FZ80/Makefile rename to Source/SZ80/Makefile index 3614280f..fe1e6abc 100644 --- a/Source/FZ80/Makefile +++ b/Source/SZ80/Makefile @@ -3,7 +3,7 @@ DEST=../../Binary HD1KIMGS = $(DEST)/hd1k_cpm22.img $(DEST)/hd1k_zsdos.img $(DEST)/hd1k_nzcom.img \ $(DEST)/hd1k_cpm3.img $(DEST)/hd1k_zpm3.img $(DEST)/hd1k_ws4.img -ROMS := $(wildcard $(DEST)/FZ80_*.rom) +ROMS := $(wildcard $(DEST)/SZ80_*.rom) ROMS := $(patsubst $(DEST)/%.rom,%,$(ROMS)) OBJECTS := $(patsubst %,%_hd1k_prefix.dat,$(ROMS)) @@ -17,7 +17,7 @@ DIFFPATH = $(DIFFTO)/Binary %_hd1k_prefix.dat: $(DEST)/%.rom srec_cat -generate 0x0 0x100000 --constant 0x00 -o temp.dat -binary - srec_cat temp.dat -binary -exclude 0x1B8 0x200 fz80_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary + srec_cat temp.dat -binary -exclude 0x1B8 0x200 sz80_ptbl.bin -binary -offset 0x1B8 -o temp.dat -binary srec_cat temp.dat -binary -exclude 0x80000 0xE0000 $< -binary -offset 0x80000 -o temp.dat -binary mv temp.dat $@ diff --git a/Source/FZ80/FZ80 Disk Layout.txt b/Source/SZ80/SZ80 Disk Layout.txt similarity index 64% rename from Source/FZ80/FZ80 Disk Layout.txt rename to Source/SZ80/SZ80 Disk Layout.txt index 61f1db1e..a6d641b6 100644 --- a/Source/FZ80/FZ80 Disk Layout.txt +++ b/Source/SZ80/SZ80 Disk Layout.txt @@ -13,7 +13,7 @@ Start Length Start Length Description Notes ----- -- FPGA Z80 Monitor reads 384KB (RomWBW) from sectors 1024-1791 of CF into first 384KB of physical RAM -- FPGA Z80 ZRC Monitor maps first 32KB of physical RAM to first 32KB of CPU RAM and starts execution at 0x0000 +- Z80 Monitor reads 384KB (RomWBW) from sectors 1024-1791 of CF into first 384KB of physical RAM +- Z80 Monitor maps first 32KB of physical RAM to first 32KB of CPU RAM and starts execution at 0x0000 -- WBW 3:18 PM 6/30/2024 \ No newline at end of file diff --git a/Source/ver.inc b/Source/ver.inc index 0f0df094..84f37a95 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 6 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.6.0-dev.25" +#DEFINE BIOSVER "3.6.0-dev.26" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index 28f449ff..487fe048 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 6 rup equ 0 rtp equ 0 biosver macro - db "3.6.0-dev.25" + db "3.6.0-dev.26" endm