From f4b9e48ccf7e974bd8b350d09e9698585a33d220 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Mon, 5 Jan 2026 16:54:00 -0800 Subject: [PATCH] Add RC2014 Platform for Official RC2014 Kits --- Doc/ChangeLog.txt | 1 + Doc/RomWBW Applications.pdf | Bin 413924 -> 413924 bytes Doc/RomWBW Disk Catalog.pdf | Bin 257564 -> 257563 bytes Doc/RomWBW Hardware.pdf | Bin 388301 -> 395240 bytes Doc/RomWBW Introduction.pdf | Bin 96562 -> 96562 bytes Doc/RomWBW System Guide.pdf | Bin 634004 -> 634005 bytes Doc/RomWBW User Guide.pdf | Bin 572567 -> 572567 bytes ReadMe.md | 2 +- ReadMe.txt | 2 +- Source/Doc/Hardware.md | 54 +++ Source/HBIOS/Build.cmd | 3 +- Source/HBIOS/Build.ps1 | 2 +- Source/HBIOS/Build.sh | 1 + Source/HBIOS/Config/RC2014_std.asm | 112 ++++++ Source/HBIOS/cfg_DUO.asm | 2 +- Source/HBIOS/cfg_DYNO.asm | 2 +- Source/HBIOS/cfg_EPITX.asm | 2 +- Source/HBIOS/cfg_EZZ80.asm | 2 +- Source/HBIOS/cfg_GMZ180.asm | 2 +- Source/HBIOS/cfg_HEATH.asm | 2 +- Source/HBIOS/cfg_MASTER.asm | 2 +- Source/HBIOS/cfg_MBC.asm | 2 +- Source/HBIOS/cfg_MK4.asm | 2 +- Source/HBIOS/cfg_MON.asm | 2 +- Source/HBIOS/cfg_N8.asm | 2 +- Source/HBIOS/cfg_N8PC.asm | 2 +- Source/HBIOS/cfg_NABU.asm | 2 +- Source/HBIOS/cfg_RC2014.asm | 425 +++++++++++++++++++++++ Source/HBIOS/cfg_RCEZ80.asm | 2 +- Source/HBIOS/cfg_RCZ180.asm | 2 +- Source/HBIOS/cfg_RCZ280.asm | 2 +- Source/HBIOS/cfg_RCZ80.asm | 2 +- Source/HBIOS/cfg_RPH.asm | 2 +- Source/HBIOS/cfg_SBC.asm | 2 +- Source/HBIOS/cfg_SCZ180.asm | 2 +- Source/HBIOS/cfg_SZ180.asm | 2 +- Source/HBIOS/cfg_SZ80.asm | 2 +- Source/HBIOS/cfg_TEMPLATE.asm | 526 +++++++++++++++++++++++++++++ Source/HBIOS/cfg_UNA.asm | 2 +- Source/HBIOS/cfg_Z80RETRO.asm | 2 +- Source/HBIOS/cfg_ZETA.asm | 2 +- Source/HBIOS/cfg_ZETA2.asm | 2 +- Source/HBIOS/hbios.inc | 1 + Source/HBIOS/plt_pretty.inc | 13 + Source/HBIOS/std.asm | 1 + Source/ver.inc | 2 +- Source/ver.lib | 2 +- 47 files changed, 1167 insertions(+), 32 deletions(-) create mode 100644 Source/HBIOS/Config/RC2014_std.asm create mode 100644 Source/HBIOS/cfg_RC2014.asm create mode 100644 Source/HBIOS/cfg_TEMPLATE.asm diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 0eb02e8c..de383635 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -37,6 +37,7 @@ Version 3.6 - DDW: Added support for the 'N8PC' platform. Includes support for the M6242 RTC chip - JMD: Added VGMINFO application - WBW: Created SCSI Driver derived from code from Jay Cotton +- WBW: Add official RC2014 platform (derived from RCZ80) Version 3.5.1 ------------- diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index e196f2d66602b83b766f0a2c79f441a252b9b9bd..da847854ddd35531e94020766a610b54fe271931 100644 GIT binary patch delta 592 zcmaE|Q1Zz_$q60xcMN#;{MP=$y!yjJ@y6E1(oMX#qM7b@&0|to?mFSm|AkMyHf`-* zWRT&dc2trtwLqTl&S#c#xv#u@vQC8)yVwQ4m(AR#_C+yJ%hYB~_J+Ax@^W=?7i??& z^nZQ1a8OIGZPIBg+dn5BMc5Q9d2;Q$?#!9B2cB4LaM#J(yW_q)gJ1oDqOj^KUzr?E z{`r&sH`F`ulY>m5j%#bJU>VN>i@iceXGYZWoMlk3S($2j_ejw9z<$@D)1MogZg?K; zy|hW!TdGdc{XyrwTOuzC+ zdasM4h8E+MwDP@6%F3VK+->x(K9%``hS&XzJD+DIkKP^({t6Btxf6Gjo?YHTl zdjDZn)!?1oOw0ErN&ihg-S~IXY8P8&^H~wO6Dpou{aZQrA5-h>Tawd1PGJ;owr6U$ zXJQ0m5X}t4EI`b<-JXeU9kZU9fuVt^p_!3|shO^Ug}Q-(x~77@Z+?nPVo9okhKrSv zff16D?b2*)8D7q=PKK6dCeDVI#s&r^2973f#x8~i&d!D|=FaBkPL?Ki3O0n4Og|RD GCIH-iLo+U-Mz1IAbzn{v@`SYmeS*n!|KOeX+;C{{g2am8B|c z@XVUzQP}3Jdq`3sPHoTUl>ZzoEs{*>?W;Z%&a_i6vMV}cYO^ML!`&=){`KNb%lBW_ z|NZsC!VnuC)#;^GKPHN}$a+2Ccs*Y?(q+zajz>oYQzP_0l(|glSX6&Lt$$mbfTfuI z{`L0RntgncOub7jx=(87Ejciv2cTjFI(2;i*qZdW}S}7^NutAJ2iFbm(sjDb^CctZdUp@ zJn~(gtC0B8?6}bkrQaU!`}XcnkH3HJf93X7o8n`oZr<+qPb%`XU9oeI|KwXD>p!bo z@%2yXJ{2os^L6T!i}u@O?#S=-ykZ=**z+n|r+eI8`}LRYbMtTUPX9QCQMlQjsokE5 z5r{!FGZ3=?G3$1FCbo6VdZva(hDHV!K*~thz(U=?KwVQo-#0(SC9xz`LBqw$$iN6m z$#!WrwhS+4Gcz+2OBW{>OLG?&V*_V%Q#S(_Q&%@*XCpHM3!sFZf(;=h(~kwP$pHYA Cc=Tof diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index c3fbed103aeb0a96a519fa80aee3e229d43ab4a7..01c50a595af9b6ce6e7e662eb4378a6e5eeb39c5 100644 GIT binary patch delta 11664 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 F@?ZMn$t?f? delta 13685 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 R{XWvU<*Qb$J@(DZ{|D0Zx|RR{ diff --git a/Doc/RomWBW Hardware.pdf b/Doc/RomWBW Hardware.pdf index 3b86d5dad869473f2374fddccd7df0c194f894ef..110bdc85885a56115abfb5d848be91bfa85c02be 100644 GIT binary patch delta 128460 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

$j4D86liK|`;o_H3B)nmj)u-RDDjoUa)gDe6Y z?;@RtvO!h=xZT0pXk2lTRx2jKsTq)m;dCHwIq;ofJvoGkce8=9$4!J0SNl%JM=>jk z*x6|VbDY*EC&WB=q+EcYaWVo@I7i61AUT&RQMEN;OeO~)QRl7kJ0UQj|J7@h1I zB8E{DNbVc43l1T0)_)q zhCq{CXd}trIZuf5xkZCul;sY|dR8ryOK)rz7%(mv0MV{*bI8Yxq#>J$08DyY*r}^A z@7Tqx=Yw`~#g;>-ll6h*1iNMs%d_U)pv5sGtLG8L;Z_|dE-oEL+Odu@VB95V5X}{F zp&cGW!5BpTPVpm;!0vaPm9Vuf=o6crwPZwjK4rGK=RwuXh)$AD{8W=85mBmvw`tbg32dW-C|&_NCz;QYy$rd z@sr4qr<(KO(3v~ggS5D$HQHHNBSv7V!~u~%I&(n-8gdUE5Ey&-g1($vjdsYJu@b}q zC#M78e>f}=t<=MT5qFUsFs_OV19QiWq#YaR1IBMz67I?i-Rb|KA@T$q)rfx>7)}(~ zC<%R$d|}#YktbxOfOM`}vqJvp%tbJG@ROGUaq+o@iD;Q6P>Y8I_<^yiSpty(slhEc z9A9yo3spa?LeiQ|cnaVH(irUV5E7X%N!(amEe3ex>MzlkrycEh#fd;r=Er3QaWk8Z z(#U;gHqQeX_izIS=JL*@T{ifbyFg?H@tzA?EP~F`2ccDZNsF>McA22~l|4;CUoPnb z7+2GSajmc*tflRis$&g+?5aX#l2^4 z>7X!~?F?_4lLAyPx3=*`7|syjC^ehD(o@}Jnj8V40Y|CXbT($wnTuG_mwV*|FzEqI z)mlIz*XfH(Nm~ziRmi`I6TaX%N>?_AH zPFcYIasDY{*=!KP_%f>m2AVSmNV}@-5R@41EirrF4$X#AdR8HzVKy+{CB*q7=T3sT zZ2EH7WH2sy<%Hn`1tz@s5fE`4qa8OT2#DBrh*a2M8v{Fw!W_Xd{BcfIl5`?FpZJad zPatXn*mej#xuuQ1Y`(${CBnP&q`;n4OGq(teu`9_&q|P-ConMd{-! z7rt2^2WdSn5VJ!cvgH{DxCERsMd==!8bTb#9c`emm1_srfz9q1uo6fZA<5qn9zauZ z{wYd8IFB4x#n}P|C{i3ZGE;(7HM8Hb-Lu25ScV~^}{l99s*J)+={%(;glkV+`}f8`Umf$$&vr}xUb*k%hp(p! z{u$SNPdA*Kb>yfcF@QxXvX>vpX(=TNVFDx{P^a+ z@WhC@$KyY57xUurbb1o2k-TM!f``kwZ7q|G14ZO-w)f7d)n`*$`}$FFmYMDLzZ$l_ zVggQ_j+e}OCnab;^=qD7`WwdZ+HPCxg?i^BJ&jxiUJ*t2zAOv9$+}c8 z^V*@uk1slRjVioM{xQa^>i%KerQq#CB4J}PAxl~nM H{oS|#rV$Gy delta 588 zcmdn=iFMN_)(LI(r~Td-@Hl+`%k}?&#O=bkODlv@8Dh&8yc5t?iRits_y7I_GgU6P zuX9-36McJQzr5-XmZsy4Ws}~{Z)ntPoZd3Uc+dRy{mhHmI9JXJKY#T`p6SuE^NkO` z%&yoLZ!YU~hYwWX=hFT^Kn~aNuRv&)|Zg4aZ$5W z6j~n5IZ`U6dT>s&qDE0fN4|UF+|}9k|~YJN9J70GTVCUT0j=B zuJNYtcV-(*owG0C$ThZgU+nasYz+-RpDF$6(Ms`CU0>dB-niFhodN4qr3lY!+V>6r zUO6vuD#7da^$P2%yO+10{V{R3Yw78$D-Y)FHx%8f`~5)D?!~7qmQQrv`SiGv^nJ6? zV)OUM9~GQTxRva@BU|EAbaBwJl;o{9l?>m{{_LDE+wJC-mDl2B^k4gIeYVtmcGLGy zb#nU{?T){g+HA$N-HM4ZD}~$C(8$opz{1qP&}{npG)4(zf#sLd7=;p?4J|D#T^ub< z%}t%1EgX#uoy?34-Ao-Vjhvkf9L-Jb6l@49iB+((<0>vmEGnreN=@UkG_*9e^a}0QU9;TmS$7 diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 2d25c196f1175fff04f5dec43083f0aa816ff8ee..db616f873406b5cdb0e63624396162349fd411d7 100644 GIT binary patch delta 28936 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 RgN$%4n~y$v$GJN<{~w*&AJhN< delta 28716 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 diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index aa562ef452d39a2c40c04777d3111198496b90ac..bc7481f2eb9f2bd3b98fb19e22718a77c7bbb478 100644 GIT binary patch delta 615 zcmbRKQ)&87r3tO|lh5YeHsCq_zK(03L&PMduZ%2gugtW!-DbPrHkWJ7@`Q~0{|!z} zO172=W9iD7`0Mj=e&Icg2TwbcTmQCaWDaJV+!MmJC$9Z_W8mT=ch2m7p7v(@uY-rL zYajkR|KaZcVV75G%`2O9*~X^Elhw(QOHJ_Eee>r6Oj_<7hKp5Ne{$8^pLbCV(h!gL z|7RoUx#ste?0?sms3>_F*mdFUSYB2VspOW3^gQteYee%-;Ec9WwSE2j_i-aF-X&#UzFoW4oj%k`%4zI?oP^WTb_iCkK$AExXH+m>`| z%R0kr$F6L8|MA_6uk-GG_usiY>&7}i*>68mSFSj}jj?-s==L%{<>OVSkKK}9{aEQV zi`loT9KP2_=2;&KK0e`m*JSRr{MFyZI)Co7_%HY^?~3Q_sDD=rCDXGk^S4^6)a;Lc z_E3L%!?O+3AI@VJZuVws_hw=QVi3&?#4JF}3dC$c%)Z^5iQ{azo|%E6fvKUHk%gh5 zu7QQRfq}ZFg1&Elic4Zis)B}#m63rFl9KIiQ5+u>CUO)H5&Ki~14vMPz}cZr8W}{7ZFy zZq<;IFiM>$#n*0f&{|**UrGAS`z$;@l0HU3njgxf>-c-5RG&Swdoz3U{a5V#^YeMm z?{8cGZ_PSy*F7={%PT8>OyO#267f+wW54}@0F#zGhv8zC)}L(m*Vnr!25IQ;n^$8m z=((osk70dgfY3x0iTMjAEu7q{&^G5WTWE)lVCL4sJso29qU@&j7t`Z+R#{hw2{>^& zUJ{J)+%V-ur>NyS8+rGKuet6CTP|UZ51Op{ebf9+KdSCbHb_qDw+{_qxoIlw>9K4% z*Ot#F_n%J-_&n`^zva64O}{SJKP%5#b2o45tNor4#~fHKRCO%ntuC!P)7|59JuLNY zPyO`JmX*)8oKh;4+_7={Cgc2|+=-VZi#o5grY`>Sd~fmZZ&eF4S4=tJU9>i5Y3Ai! z$0DSIQ|&M9PG0~0&FU=qkMC9_?zbx4^xWRtwRRhCL`_*q{&SO}HQRI6?A>Ukx5>vW z;d(NEg!;Eznl`0UpC(%DO!&5~Du3dP_eX#7Zzx~vck9Zl^^K=3f>&2we-`p#Z|%(X z{Z%KPEt&ps9=mX}H&eSe6C)6VXl5X00b*7lW&>jO?cPirXT$YO4UG(q3@l6yjLmcn zEYuAQ)HN0Kee+XX5=&AQG+eBV42+PJYk!A 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 AUTO_CMD "" ; AUTO CMD WHEN BOOT_TIMEOUT IS ENABLED +#DEFINE DEFSERCFG SER_115200_8N1 | SER_RTS ; DEFAULT SERIAL CONFIGURATION +; +#INCLUDE "cfg_RC2014.asm" +; +BOOT_TIMEOUT .SET -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE +BOOT_PRETTY .SET FALSE ; BOOT WITH PRETTY PLATFORM NAME +AUTOCON .SET TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT +; +CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ +; +KIOENABLE .SET FALSE ; ENABLE ZILOG KIO SUPPORT +CTCENABLE .SET FALSE ; ENABLE ZILOG CTC SUPPORT +; +FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS +FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES +LCDENABLE .SET TRUE ; ENABLE LCD DISPLAY +CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD +; +DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) +RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM) +INTRTCENABLE .SET FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) +; +DUARTENABLE .SET FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) +UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) +ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) +SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) +; +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU|MSXUKY] +TMS80COLS .SET FALSE ; TMS: ENABLE 80 COLUMN SCREEN, REQUIRES V9958 +TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) +VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) +EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) +; +FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) +FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC] +FD0TYPE .SET FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +FD1TYPE .SET FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +; +IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +; +PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +; +SDENABLE .SET TRUE ; 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] +SDCNT .SET 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY +; +CHENABLE .SET TRUE ; CH: ENABLE CH375/376 USB SUPPORT +CHNATIVEENABLE .SET FALSE ; CH376: ENABLE CH376 NATIVE USB DRIVER +CHSCSIENABLE .SET FALSE ; CH376: ENABLE CH376 NATIVE MASS STORAGE DEVICES (REQUIRES CHNATIVEENABLE) +CHUFIENABLE .SET FALSE ; CH376: ENABLE CH376 NATIVE UFI FLOPPY DISK DEVICES (REQUIRES CHNATIVEENABLE) +CHNATIVEFORCE .SET FALSE ; CH376: DISABLE AUTO-DETECTION OF MODULE - ASSUME ITS INSTALLED +; +PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) +; +LPTENABLE .SET FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +; +PPAENABLE .SET FALSE ; PPA: ENABLE IOMEGA ZIP DRIVE (PPA) DISK DRIVER (PPA.ASM) +IMMENABLE .SET FALSE ; IMM: ENABLE IOMEGA ZIP PLUS DRIVE (IMM) DISK DRIVER (IMM.ASM) +SYQENABLE .SET FALSE ; SYQ: ENABLE SYQUEST SPARQ DISK DRIVER (SYQ.ASM) +; +SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER +; +AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER +AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU] +AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT diff --git a/Source/HBIOS/cfg_DUO.asm b/Source/HBIOS/cfg_DUO.asm index 658590ae..3aa57ae6 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_DUO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_DYNO.asm b/Source/HBIOS/cfg_DYNO.asm index cb4cdc94..802117bc 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_DYNO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_EPITX.asm b/Source/HBIOS/cfg_EPITX.asm index f851f75f..a831899d 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_EPITX ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_EZZ80.asm b/Source/HBIOS/cfg_EZZ80.asm index 606f6790..54b02180 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_EZZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_GMZ180.asm b/Source/HBIOS/cfg_GMZ180.asm index c7cd2485..8dc43d88 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_GMZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_HEATH.asm b/Source/HBIOS/cfg_HEATH.asm index 52ae85c4..719e87d7 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_HEATH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_MASTER.asm b/Source/HBIOS/cfg_MASTER.asm index f23b1b91..6664a4b8 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .EQU PLT_NONE ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .EQU CPU_NONE ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .EQU FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .EQU BIOS_NONE ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_MBC.asm b/Source/HBIOS/cfg_MBC.asm index 17159de1..d990dd87 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_MBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_MK4.asm b/Source/HBIOS/cfg_MK4.asm index c7d811d2..22a1c406 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_MK4 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_MON.asm b/Source/HBIOS/cfg_MON.asm index 11465939..f28b9ceb 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_MON ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_N8.asm b/Source/HBIOS/cfg_N8.asm index 12d4f2d6..abd5c5a3 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_N8 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_N8PC.asm b/Source/HBIOS/cfg_N8PC.asm index b7f6f0c5..5ccf77d7 100644 --- a/Source/HBIOS/cfg_N8PC.asm +++ b/Source/HBIOS/cfg_N8PC.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_N8PC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_N8PC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_NABU.asm b/Source/HBIOS/cfg_NABU.asm index ee352249..532b8bc1 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_NABU ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_RC2014.asm b/Source/HBIOS/cfg_RC2014.asm new file mode 100644 index 00000000..002f28e8 --- /dev/null +++ b/Source/HBIOS/cfg_RC2014.asm @@ -0,0 +1,425 @@ +; +;================================================================================================== +; ROMWBW PLATFORM CONFIGURATION DEFAULTS FOR PLATFORM: RC2014 +;================================================================================================== +; +; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM +; INDICATED ABOVE. THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. INSTEAD, +; YOU SHOULD OVERRIDE SETTINGS YOU WANT USING A CONFIGURATION FILE IN +; THE CONFIG DIRECTORY UNDER THIS DIRECTORY. +; +; THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. IT IS MAINTAINED BY THE +; AUTHORS OF ROMWBW. TO OVERRIDE SETTINGS YOU SHOULD USE A +; CONFIGURATION FILE IN THE CONFIG DIRECTORY UNDER THIS DIRECTORY. +; +; 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 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. +; +; *** 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 "RC2014", " [", 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_RC2014 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC +CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) +BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] +BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE +HBIOS_MUTEX .SET FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD) +USELZSA2 .SET TRUE ; ENABLE FONT COMPRESSION +TICKFREQ .SET 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ) +; +BOOT_TIMEOUT .SET -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE +BOOT_DELAY .SET 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT +BOOT_PRETTY .SET FALSE ; BOOT WITH PRETTY PLATFORM NAME +BT_REC_TYPE .SET BT_REC_NONE ; BOOT RECOVERY METHOD TO USE: BT_REC_[NONE|FORCE|SBCB0|SBC1B|SBCRI|DUORI] +AUTOCON .SET TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT +STRICTPART .SET TRUE ; ENFORCE STRICT PARTITION TABLE VALIDATION +; +CPUSPDCAP .SET SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO +CPUSPDDEF .SET SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW +CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ +INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) +; +RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .SET 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMFONTS .SET TRUE ; LOAD FONTS FROM ROM +APP_BNKS .SET $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING) +MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512] +MPGSEL_0 .SET $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) +MPGSEL_1 .SET $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY) +MPGSEL_2 .SET $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY) +MPGSEL_3 .SET $7B ; Z2 MEM MGR BANK 3 PAGE SELECT REG (WRITE ONLY) +MPGENA .SET $7C ; Z2 MEM MGR PAGING ENABLE REGISTER (BIT 0, WRITE ONLY) +; +RTCIO .SET $C0 ; RTC LATCH REGISTER ADR +; +KIOENABLE .SET FALSE ; ENABLE ZILOG KIO SUPPORT +KIOBASE .SET $80 ; KIO BASE I/O ADDRESS +; +CTCENABLE .SET FALSE ; ENABLE ZILOG CTC SUPPORT +CTCDEBUG .SET FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT +CTCBASE .SET $88 ; CTC BASE I/O ADDRESS +CTCTIMER .SET FALSE ; ENABLE CTC PERIODIC TIMER +CTCMODE .SET CTCMODE_TIM16 ; CTC MODE: CTCMODE_[NONE|CTR|TIM16|TIM256] +CTCPRE .SET 256 ; PRESCALE CONSTANT (1-256) +CTCPRECH .SET 2 ; PRESCALE CHANNEL (0-3) +CTCTIMCH .SET 3 ; TIMER CHANNEL (0-3) +CTCOSC .SET CPUOSC ; CTC CLOCK FREQUENCY +; +PCFENABLE .SET FALSE ; ENABLE PCF8584 I2C CONTROLLER +PCFBASE .SET $F0 ; PCF8584 BASE I/O ADDRESS +PCFCLK .SET PCFCLK_8 ; PCF CLOCK BASE: PCFCLK_[3|443|6|8|12] +PCFTRNS .SET PCFTRNS_90 ; PCF TRANSFER SPEED: PCFTRNS_[90|45|11|15] +; +EIPCENABLE .SET FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION +; +SKZENABLE .SET FALSE ; ENABLE SERGEY'S Z80-512K FEATURES +SKZDIV .SET DIV_1 ; UART CLK (CLK2) DIVIDER FOR Z80-512K +; +WDOGMODE .SET WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ] +WDOGIO .SET $6F ; WATCHDOG REGISTER ADR +; +FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS +FPLED_IO .SET $00 ; 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 +FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES +FPSW_IO .SET $00 ; FP: PORT ADDRESS FOR FP SWITCHES +FPSW_INV .SET FALSE ; FP: SWITCH BITS ARE INVERTED +; +DIAGLVL .SET DL_CRITICAL ; ERROR LEVEL REPORTING +; +LEDENABLE .SET FALSE ; ENABLES STATUS LED (SINGLE LED) +LEDMODE .SET LEDMODE_STD ; LEDMODE_[STD|SC|RTC|NABU] +LEDPORT .SET $0E ; STATUS LED PORT ADDRESS +LEDDISKIO .SET TRUE ; ENABLES DISK I/O ACTIVITY ON STATUS LED +; +DSKYENABLE .SET FALSE ; ENABLES DSKY FUNCTIONALITY +DSKYDSKACT .SET TRUE ; ENABLES DISK ACTIVITY ON DSKY DISPLAY +ICMENABLE .SET FALSE ; ENABLES ORIGINAL DSKY ICM DRIVER (7218) +ICMPPIBASE .SET $60 ; BASE I/O ADDRESS OF ICM PPI +PKDENABLE .SET FALSE ; ENABLES DSKY NG PKD DRIVER (8259) +PKDPPIBASE .SET $60 ; BASE I/O ADDRESS OF PKD PPI +PKDOSC .SET 3000000 ; OSCILLATOR FREQ FOR PKD (IN HZ) +H8PENABLE .SET FALSE ; ENABLES HEATH H8 FRONT PANEL +LCDENABLE .SET FALSE ; ENABLE LCD DISPLAY +LCDBASE .SET $DA ; BASE I/O ADDRESS OF LCD CONTROLLER +GM7303ENABLE .SET FALSE ; ENABLES THE GM7303 BOARD WITH 16X2 LCD +; +BOOTCON .SET 0 ; BOOT CONSOLE DEVICE +SECCON .SET $FF ; SECONDARY CONSOLE DEVICE +CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +VDAEMU .SET EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] +VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD +ANSITRACE .SET 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKTRACE .SET 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +KBDTRACE .SET 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKKBLOUT .SET KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] +KBDKBLOUT .SET KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +MKYKBLOUT .SET KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +KBDINTS .SET FALSE ; ENABLE KBD (PS2) KEYBOARD INTERRUPTS +; +DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) +DSRTCMODE .SET DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTCMODE_[STD|MFPIC|K80W] +DSRTCCHG .SET FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!) +; +DS1501RTCENABLE .SET FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM) +DS1501RTC_BASE .SET $50 ; DS1501RTC: I/O BASE ADDRESS +; +BQRTCENABLE .SET FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM) +BQRTC_BASE .SET $50 ; BQRTC: I/O BASE ADDRESS +; +INTRTCENABLE .SET FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) +; +RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM) +; +HTIMENABLE .SET FALSE ; ENABLE SIMH TIMER SUPPORT +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 FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) +; +PCRTCENABLE .SET FALSE ; PCRTC: DISABLE DS12885 etc. RTC +; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; +DS12RTCENABLE .SET FALSE ; DS12RTC: ENABLE DS1288X RTC DRIVER (DS12RTC.ASM) +; +M6242RTCENABLE .SET FALSE ; M6242RTC: ENABLE M6242 CLOCK DRIVER (M6242.ASM) +; +SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) +SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG +SSERSTATUS .SET $FF ; SSER: STATUS PORT +SSERDATA .SET $FF ; SSER: DATA PORT +SSERIRDY .SET %00000001 ; SSER: INPUT READY BIT MASK +SSERIINV .SET FALSE ; SSER: INPUT READY BIT INVERTED +SSERORDY .SET %00000010 ; SSER: OUTPUT READY BIT MASK +SSEROINV .SET FALSE ; SSER: OUTPUT READY BIT INVERTED +; +DLPSERENABLE .SET FALSE ; DLPSER: ENABLE DLP-USB SERIAL DRIVER (DLPSER.ASM) +; +TSERENABLE .SET FALSE ; TSER: ENABLE T35 SERIAL DRIVER (TSER.ASM) +TSERCFG .SET SER_9600_8N1 ; TSER: SERIAL LINE CONFIG +; +DUARTENABLE .SET FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) +DUARTCNT .SET 1 ; DUART: NUMBER OF CHIPS TO DETECT (1-2) +DUART0BASE .SET $A0 ; DUART 0: BASE ADDRESS OF CHIP +DUART0ACFG .SET DEFSERCFG ; DUART 0A: SERIAL LINE CONFIG +DUART0BCFG .SET DEFSERCFG ; DUART 0B: SERIAL LINE CONFIG +DUART1BASE .SET $40 ; DUART 1: BASE ADDRESS OF CHIP +DUART1ACFG .SET DEFSERCFG ; DUART 1A: SERIAL LINE CONFIG +DUART1BCFG .SET DEFSERCFG ; DUART 1B: SERIAL LINE CONFIG +; +UARTENABLE .SET FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) +UARTCNT .SET 4 ; UART: NUMBER OF CHIPS TO DETECT (1-8) +UARTOSC .SET 1843200 ; UART: OSC FREQUENCY IN MHZ +UARTINTS .SET FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3 +UART4UART .SET FALSE ; UART: SUPPORT 4UART ECB BOARD +UART4UARTBASE .SET $C0 ; UART: BASE IO ADDRESS OF 4UART ECB BOARD +UART0BASE .SET $80 ; UART 0: REGISTERS BASE ADR +UART0CFG .SET DEFSERCFG ; UART 0: SERIAL LINE CONFIG +UART1BASE .SET $88 ; UART 1: REGISTERS BASE ADR +UART1CFG .SET DEFSERCFG ; UART 1: SERIAL LINE CONFIG +UART2BASE .SET $A0 ; UART 2: REGISTERS BASE ADR +UART2CFG .SET DEFSERCFG ; UART 2: SERIAL LINE CONFIG +UART3BASE .SET $A8 ; UART 3: REGISTERS BASE ADR +UART3CFG .SET DEFSERCFG ; UART 3: SERIAL LINE CONFIG +UART4BASE .SET $FF ; UART 4: REGISTERS BASE ADR +UART4CFG .SET DEFSERCFG ; UART 4: SERIAL LINE CONFIG +UART5BASE .SET $FF ; UART 5: REGISTERS BASE ADR +UART5CFG .SET DEFSERCFG ; UART 5: SERIAL LINE CONFIG +UART6BASE .SET $FF ; UART 6: REGISTERS BASE ADR +UART6CFG .SET DEFSERCFG ; UART 6: SERIAL LINE CONFIG +UART7BASE .SET $FF ; UART 7: REGISTERS BASE ADR +UART7CFG .SET DEFSERCFG ; UART 7: SERIAL LINE CONFIG +; +ASCIENABLE .SET FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) +; +Z2UENABLE .SET FALSE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM) +; +ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) +ACIADEBUG .SET FALSE ; ACIA: ENABLE DEBUG OUTPUT +ACIACNT .SET 1 ; ACIA: NUMBER OF CHIPS TO DETECT (1-2) +ACIA0BASE .SET $80 ; ACIA 0: REGISTERS BASE ADR +ACIA0CLK .SET CPUOSC ; ACIA 0: OSC FREQ IN HZ +ACIA0DIV .SET 1 ; ACIA 0: SERIAL CLOCK DIVIDER +ACIA0CFG .SET DEFSERCFG ; ACIA 0: SERIAL LINE CONFIG (SEE STD.ASM) +ACIA1BASE .SET $40 ; ACIA 1: REGISTERS BASE ADR +ACIA1CLK .SET CPUOSC ; ACIA 1: OSC FREQ IN HZ +ACIA1DIV .SET 1 ; ACIA 1: SERIAL CLOCK DIVIDER +ACIA1CFG .SET DEFSERCFG ; ACIA 1: SERIAL LINE CONFIG (SEE STD.ASM) +; +SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) +SIODEBUG .SET FALSE ; SIO: ENABLE DEBUG OUTPUT +SIOBOOT .SET 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED) +SIOCNT .SET 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP +SIOINTS .SET TRUE ; SIO: INCLUDE SIO INTERRUPT SUPPORT UNDER IM1/2/3 +SIO0MODE .SET SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] +SIO0BASE .SET $80 ; SIO 0: REGISTERS BASE ADR +SIO0ACLK .SET CPUOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0ACFG .SET DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG +SIO0ACTCC .SET -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO0BCLK .SET CPUOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0BCFG .SET DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG +SIO0BCTCC .SET -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO1MODE .SET SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] +SIO1BASE .SET $84 ; SIO 1: REGISTERS BASE ADR +SIO1ACLK .SET CPUOSC ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO1ACFG .SET DEFSERCFG ; SIO 1A: SERIAL LINE CONFIG +SIO1ACTCC .SET -1 ; SIO 1A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO1BCLK .SET CPUOSC ; SIO 1B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO1BCFG .SET DEFSERCFG ; SIO 1B: SERIAL LINE CONFIG +SIO1BCTCC .SET -1 ; SIO 1B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +; +SCCENABLE .SET FALSE ; SCC: ENABLE ZILOG SCC SERIAL DRIVER (SCC.ASM) +; +XIOCFG .SET DEFSERCFG ; XIO: SERIAL LINE CONFIG +; +VDUENABLE .SET FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) +CVDUENABLE .SET FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) +GDCENABLE .SET FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU|N8PC] +TMS80COLS .SET FALSE ; TMS: ENABLE 80 COLUMN SCREEN, REQUIRES V9958 +TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) +VGAENABLE .SET FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) +SCONENABLE .SET FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) +TVGAENABLE .SET FALSE ; TVGA: ENABLE TRION VGA VIDEO DRIVER (TVGA.ASM) +; +MDENABLE .SET TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) +MDROM .SET TRUE ; MD: ENABLE ROM DISK +MDRAM .SET TRUE ; MD: ENABLE RAM DISK +MDTRACE .SET 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +MDFFENABLE .SET FALSE ; MD: ENABLE FLASH FILE SYSTEM +; +FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) +FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC] +FDCNT .SET 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2) +FDTRACE .SET 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL) +FDMAUTO .SET TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS +FD0TYPE .SET FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +FD1TYPE .SET FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +; +RFENABLE .SET FALSE ; RF: ENABLE RAM FLOPPY DRIVER +; +IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +IDETRACE .SET 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IDECNT .SET 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH +IDE0MODE .SET IDEMODE_RC ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] +IDE0BASE .SET $10 ; IDE 0: IO BASE ADDRESS +IDE0DATLO .SET $00 ; IDE 0: DATA LO PORT FOR 16-BIT I/O +IDE0DATHI .SET $00 ; IDE 0: DATA HI PORT FOR 16-BIT I/O +IDE0A8BIT .SET TRUE ; IDE 0A (MASTER): 8 BIT XFER +IDE0B8BIT .SET TRUE ; IDE 0B (MASTER): 8 BIT XFER +IDE1MODE .SET IDEMODE_RC ; IDE 1: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] +IDE1BASE .SET $18 ; IDE 1: IO BASE ADDRESS +IDE1DATLO .SET $00 ; IDE 1: DATA LO PORT FOR 16-BIT I/O +IDE1DATHI .SET $00 ; IDE 1: DATA HI PORT FOR 16-BIT I/O +IDE1A8BIT .SET TRUE ; IDE 1A (MASTER): 8 BIT XFER +IDE1B8BIT .SET TRUE ; IDE 1B (MASTER): 8 BIT XFER +IDE2MODE .SET IDEMODE_RC ; IDE 2: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] +IDE2BASE .SET $20 ; IDE 2: IO BASE ADDRESS +IDE2DATLO .SET $00 ; IDE 2: DATA LO PORT FOR 16-BIT I/O +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 FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +PPIDETRACE .SET 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPIDECNT .SET 1 ; 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] +PPIDE0BASE .SET $20 ; 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_STD ; PPIDE 1: DRIVER MODE: IDEMODE_[STD|S100A|S100B] +PPIDE1BASE .SET $00 ; 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_STD ; 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 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|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) +SDCSIOFAST .SET FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE +SDMTSWAP .SET FALSE ; SD: SWAP THE LOGICAL ORDER OF THE SPI PORTS OF THE MT011 +; +CHENABLE .SET FALSE ; CH: ENABLE CH375/376 USB SUPPORT +CHTRACE .SET 1 ; CH: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +CHUSBTRACE .SET 1 ; CHUSB: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +CHSDTRACE .SET 1 ; CHSD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +CHCNT .SET 2 ; CH: NUMBER OF BOARDS TO DETECT (1-2) +CH0BASE .SET $3E ; CH 0: BASE I/O ADDRESS +CH0USBENABLE .SET TRUE ; CH 0: ENABLE USB DISK +CH0SDENABLE .SET FALSE ; CH 0: ENABLE SD DISK +CH1BASE .SET $3C ; CH 1: BASE I/O ADDRESS +CH1USBENABLE .SET TRUE ; CH 1: ENABLE USB DISK +CH1SDENABLE .SET FALSE ; CH 1: ENABLE SD DISK +; +PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) +; +PPPENABLE .SET FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM) +; +ESPENABLE .SET FALSE ; ESP: ENABLE ESP32 IO BOARD DRIVER (ESP.ASM) +; +HDSKENABLE .SET FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM) +; +PIOENABLE .SET FALSE ; PIO: ENABLE ZILOG PIO DRIVER (PIO.ASM) +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 FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +LPTMODE .SET LPTMODE_MG014 ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014|T35] +LPTCNT .SET 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2) +LPTTRACE .SET 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +LPT0BASE .SET $0C ; LPT 0: REGISTERS BASE ADR +LPT1BASE .SET $00 ; LPT 1: REGISTERS BASE ADR +; +PPAENABLE .SET FALSE ; PPA: ENABLE IOMEGA ZIP DRIVE (PPA) DISK DRIVER (PPA.ASM) +PPACNT .SET 1 ; PPA: NUMBER OF PPA DEVICES (1-2) +PPATRACE .SET 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPAMODE .SET PPAMODE_MG014 ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014] +PPA0BASE .SET LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA +PPA1BASE .SET LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA +; +IMMENABLE .SET FALSE ; IMM: ENABLE IOMEGA ZIP PLUS DRIVE (IMM) DISK DRIVER (IMM.ASM) +IMMCNT .SET 1 ; IMM: NUMBER OF IMM DEVICES (1-2) +IMMTRACE .SET 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IMMMODE .SET IMMMODE_MG014 ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014] +IMM0BASE .SET LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM +IMM1BASE .SET LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM +; +SYQENABLE .SET FALSE ; SYQ: ENABLE SYQUEST SPARQ DISK DRIVER (SYQ.ASM) +SYQCNT .SET 1 ; SYQ: NUMBER OF SYQ DEVICES (1-2) +SYQTRACE .SET 1 ; SYQ: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +SYQMODE .SET IMMMODE_MG014 ; SYQ: DRIVER MODE: SYQMODE_[NONE|SPP|MG014] +SYQ0BASE .SET LPT0BASE ; SYQ 0: BASE I/O ADDRESS OF PPI FOR SYQ +SYQ1BASE .SET LPT1BASE ; SYQ 1: BASE I/O ADDRESS OF PPI FOR SYQ +; +ESPSDENABLE .SET FALSE ; ESPSD: ENABLE S100 ESP32 SD DISK DRIVER (ESPSD.ASM) +; +SCSIENABLE .SET FALSE ; SCSI: ENABLE 3580-BASED SCSI INTERFACE (SCSI.ASM) +; +PIO_4P .SET FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD +PIO_ZP .SET FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM) +PIO_SBC .SET FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP +; +UFENABLE .SET FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) +; +SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER +AUDIOTRACE .SET FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER +SN7CLK .SET 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD +SNMODE .SET SNMODE_RC ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM|DUO] +; +AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER +AY_CLK .SET 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD +AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU|N8PC] +AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT +; +SPKENABLE .SET FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) +; +DMAENABLE .SET FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM) +DMABASE .SET $E0 ; DMA: DMA BASE ADDRESS +DMAMODE .SET DMAMODE_RC ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC|DUO) +; +YM2612ENABLE .SET FALSE ; YM2612: ENABLE YM2612 DRIVER +VGMBASE .SET $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76489s/CTC) diff --git a/Source/HBIOS/cfg_RCEZ80.asm b/Source/HBIOS/cfg_RCEZ80.asm index e64e22b8..3f66e2f1 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_RCEZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_EZ80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_RCZ180.asm b/Source/HBIOS/cfg_RCZ180.asm index 70f5d868..55478379 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_RCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_RCZ280.asm b/Source/HBIOS/cfg_RCZ280.asm index 71decae8..4553f374 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_RCZ280 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z280 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_RCZ80.asm b/Source/HBIOS/cfg_RCZ80.asm index 4bbcc25e..74f15542 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC +PLATFORM .SET PLT_RCZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_RPH.asm b/Source/HBIOS/cfg_RPH.asm index 101c4ba0..1010d4a0 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_RPH ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_SBC.asm b/Source/HBIOS/cfg_SBC.asm index 7876ea5c..71c09dc3 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_SBC ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_SCZ180.asm b/Source/HBIOS/cfg_SCZ180.asm index 81e0da08..eae3763e 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_SCZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_SZ180.asm b/Source/HBIOS/cfg_SZ180.asm index 1179cb61..a8365ad0 100644 --- a/Source/HBIOS/cfg_SZ180.asm +++ b/Source/HBIOS/cfg_SZ180.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_SZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_SZ180 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z180 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_SZ80.asm b/Source/HBIOS/cfg_SZ80.asm index aa8d1726..1f3bafc9 100644 --- a/Source/HBIOS/cfg_SZ80.asm +++ b/Source/HBIOS/cfg_SZ80.asm @@ -49,7 +49,7 @@ ; #INCLUDE "cfg_MASTER.asm" ; -PLATFORM .SET PLT_SZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_SZ80 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_TEMPLATE.asm b/Source/HBIOS/cfg_TEMPLATE.asm new file mode 100644 index 00000000..1b5aeba9 --- /dev/null +++ b/Source/HBIOS/cfg_TEMPLATE.asm @@ -0,0 +1,526 @@ +; +;================================================================================================== +; ROMWBW GLOBAL MASTER CONFIGURATION FILE +;================================================================================================== +; +; THIS FILE DEFINES THE DEFAULT CONFIGURATION SETTINGS FOR THE PLATFORM +; INDICATED ABOVE. THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. INSTEAD, +; YOU SHOULD OVERRIDE SETTINGS YOU WANT USING A CONFIGURATION FILE IN +; THE CONFIG DIRECTORY UNDER THIS DIRECTORY. +; +; THIS FILE SHOULD *NOT* NORMALLY BE CHANGED. IT IS MAINTAINED BY THE +; AUTHORS OF ROMWBW. TO OVERRIDE SETTINGS YOU SHOULD USE A +; CONFIGURATION FILE IN THE CONFIG DIRECTORY UNDER THIS DIRECTORY. +; +; 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 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. +; +; *** 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 "RomWBW", " [", 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_NONE ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +CPUFAM .SET CPU_NONE ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] +NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) +BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] +BATCOND .SET FALSE ; ENABLE LOW BATTERY WARNING MESSAGE +HBIOS_MUTEX .SET FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD) +USELZSA2 .SET FALSE ; ENABLE FONT COMPRESSION +TICKFREQ .SET 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ) +; +BOOT_TIMEOUT .SET -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE +BOOT_DELAY .SET 0 ; FIXED BOOT DELAY IN SECONDS PRIOR TO CONSOLE OUTPUT +BOOT_PRETTY .SET FALSE ; BOOT WITH PRETTY PLATFORM NAME +BT_REC_TYPE .SET BT_REC_NONE ; BOOT RECOVERY METHOD TO USE: BT_REC_[NONE|FORCE|SBCB0|SBC1B|SBCRI|DUORI] +AUTOCON .SET TRUE ; ENABLE CONSOLE TAKEOVER AT LOADER PROMPT +STRICTPART .SET TRUE ; ENFORCE STRICT PARTITION TABLE VALIDATION +; +CPUSPDCAP .SET SPD_FIXED ; CPU SPEED CHANGE CAPABILITY SPD_FIXED|SPD_HILO +CPUSPDDEF .SET SPD_HIGH ; CPU SPEED DEFAULT SPD_UNSUP|SPD_HIGH|SPD_LOW +CPUOSC .SET 1000000 ; CPU OSC FREQ IN MHZ +INTMODE .SET 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280) +; +RAMSIZE .SET 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMSIZE .SET 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!) +ROMFONTS .SET TRUE ; LOAD FONTS FROM ROM +APP_BNKS .SET $FF ; BANKS TO RESERVE FOR APP USE ($FF FOR AUTO SIZING) +MEMMGR .SET MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC|RPH|MON|EZ512] +RAMBIAS .SET ROMSIZE ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE +MPCL_RAM .SET $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY) +MPCL_ROM .SET $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY) +MPGSEL_0 .SET $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) +MPGSEL_1 .SET $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY) +MPGSEL_2 .SET $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY) +MPGSEL_3 .SET $7B ; Z2 MEM MGR BANK 3 PAGE SELECT REG (WRITE ONLY) +MPGENA .SET $7C ; Z2 MEM MGR PAGING ENABLE REGISTER (BIT 0, WRITE ONLY) +; +Z180_BASE .SET $40 ; Z180: I/O BASE ADDRESS FOR INTERNAL REGISTERS +Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2 +Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3) +Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) +Z180_TIMER .SET FALSE ; Z180: ENABLE Z180 SYSTEM PERIODIC TIMER +; +Z280_MEMLOWAIT .SET 0 ; Z280: LOW 8MB MEMORY WAIT STATES (0-3) +Z280_MEMHIWAIT .SET 0 ; Z280: HIGH 8MB MEMORY WAIT STATES (0-3) +Z280_IOWAIT .SET 1 ; Z280: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3) +Z280_INTWAIT .SET 0 ; Z280: INT ACK WAIT STATUS (0-3) +Z280_TIMER .SET FALSE ; Z280: ENABLE INTERNAL Z280 SYSTEM PERIODIC TIMER +; +N8_PPI0 .SET $80 ; N8: FIRST PARALLEL PORT REGISTERS BASE ADR +N8_PPI1 .SET $84 ; N8: SECOND PARALLEL PORT REGISTERS BASE ADR +N8_RTC .SET $88 ; N8: RTC LATCH REGISTER ADR +N8_ACR .SET $94 ; N8: AUXILLARY CONTROL REGISTER (ACR) ADR +N8_RMAP .SET $96 ; N8: ROM PAGE REGISTER ADR +N8_DEFACR .SET $1B ; N8: AUX CTL REGISTER DEFAULT VALUE (QUIESCIENT STATE) +; +RPH_PPI0 .SET $88 ; RPH: FIRST PARALLEL PORT REGISTERS BASE ADR +RPH_RTC .SET $84 ; RPH: RTC LATCH REGISTER ADR +RPH_ACR .SET $80 ; RPH: AUXILLARY CONTROL REGISTER (ACR) ADR +RPH_DEFACR .SET $00 ; RPH: AUX CTL REGISTER DEFAULT VALUE (QUIESCIENT STATE) +; +MK4_IDE .SET $80 ; MK4: IDE REGISTERS BASE ADR +MK4_XAR .SET $88 ; MK4: EXTERNAL ADDRESS REGISTER (XAR) ADR +MK4_SD .SET $89 ; MK4: SD CARD CONTROL REGISTER ADR +MK4_RTC .SET $8A ; MK4: RTC LATCH REGISTER ADR +; +RTCIO .SET $70 ; RTC LATCH REGISTER ADR +; +KIOENABLE .SET FALSE ; ENABLE ZILOG KIO SUPPORT +KIOBASE .SET $80 ; KIO BASE I/O ADDRESS +; +CTCENABLE .SET FALSE ; ENABLE ZILOG CTC SUPPORT +CTCDEBUG .SET FALSE ; ENABLE CTC DRIVER DEBUG OUTPUT +CTCBASE .SET $B0 ; CTC BASE I/O ADDRESS +CTCTIMER .SET FALSE ; ENABLE CTC PERIODIC TIMER +CTCMODE .SET CTCMODE_CTR ; CTC MODE: CTCMODE_[NONE|CTR|TIM16|TIM256] +CTCPRE .SET 256 ; PRESCALE CONSTANT (1-256) +CTCPRECH .SET 2 ; PRESCALE CHANNEL (0-3) +CTCTIMCH .SET 3 ; TIMER CHANNEL (0-3) +CTCOSC .SET 614400 ; CTC CLOCK FREQUENCY +; +PCFENABLE .SET FALSE ; ENABLE PCF8584 I2C CONTROLLER +; +EIPCENABLE .SET FALSE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION +; +SKZENABLE .SET FALSE ; ENABLE SERGEY'S Z80-512K FEATURES +SKZDIV .SET DIV_1 ; UART CLK (CLK2) DIVIDER FOR Z80-512K +; +WDOGMODE .SET WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ] +WDOGIO .SET $6F ; WATCHDOG REGISTER ADR +; +FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS +FPLED_IO .SET $00 ; FP: PORT ADDRESS FOR FP LEDS +FPLED_INV .SET FALSE ; FP: LED BITS ARE INVERTED +FPLED_DSKACT .SET FALSE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS +FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES +FPSW_IO .SET $00 ; FP: PORT ADDRESS FOR FP SWITCHES +FPSW_INV .SET FALSE ; FP: SWITCH BITS ARE INVERTED +; +DIAGLVL .SET DL_CRITICAL ; ERROR LEVEL REPORTING +; +LEDENABLE .SET FALSE ; ENABLES STATUS LED (SINGLE LED) +LEDMODE .SET LEDMODE_STD ; LEDMODE_[STD|SC|RTC|NABU] +LEDPORT .SET $0E ; STATUS LED PORT ADDRESS +LEDDISKIO .SET FALSE ; ENABLES DISK I/O ACTIVITY ON STATUS LED +; +DSKYENABLE .SET FALSE ; ENABLES DSKY FUNCTIONALITY +DSKYDSKACT .SET FALSE ; ENABLES DISK ACTIVITY ON DSKY DISPLAY +ICMENABLE .SET FALSE ; ENABLES ORIGINAL DSKY ICM DRIVER (7218) +ICMPPIBASE .SET $60 ; BASE I/O ADDRESS OF ICM PPI +PKDENABLE .SET FALSE ; ENABLES DSKY NG PKD DRIVER (8259) +PKDPPIBASE .SET $60 ; BASE I/O ADDRESS OF PKD PPI +PKDOSC .SET 3000000 ; OSCILLATOR FREQ FOR PKD (IN HZ) +H8PENABLE .SET FALSE ; ENABLES HEATH H8 FRONT PANEL +LCDENABLE .SET FALSE ; ENABLE LCD DISPLAY +LCDBASE .SET $DA ; BASE I/O ADDRESS OF LCD CONTROLLER +GM7303ENABLE .SET FALSE ; ENABLES THE GM7303 BOARD WITH 16X2 LCD +GM7303BASE .SET $30 ; BASE ADDRESS FOR GM3703 BOARD +; +BOOTCON .SET 0 ; BOOT CONSOLE DEVICE +SECCON .SET $FF ; SECONDARY CONSOLE DEVICE +CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP +VDAEMU .SET EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] +VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD +ANSITRACE .SET 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKTRACE .SET 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +KBDTRACE .SET 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPKKBLOUT .SET KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] +KBDKBLOUT .SET KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +MKYKBLOUT .SET KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] +KBDINTS .SET FALSE ; ENABLE KBD (PS2) KEYBOARD INTERRUPTS +; +DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) +DSRTCMODE .SET DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTCMODE_[STD|MFPIC|K80W] +DSRTCCHG .SET FALSE ; DSRTC: FORCE BATTERY CHARGE ON (USE WITH CAUTION!!!) +; +DS1501RTCENABLE .SET FALSE ; DS1501RTC: ENABLE DS-1501 CLOCK DRIVER (DS1501RTC.ASM) +DS1501RTC_BASE .SET $50 ; DS1501RTC: I/O BASE ADDRESS +; +BQRTCENABLE .SET FALSE ; BQRTC: ENABLE BQ4845 CLOCK DRIVER (BQRTC.ASM) +BQRTC_BASE .SET $50 ; BQRTC: I/O BASE ADDRESS +; +INTRTCENABLE .SET FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) +; +RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM) +; +HTIMENABLE .SET FALSE ; ENABLE SIMH TIMER SUPPORT +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 FALSE ; DS5RTC: ENABLE DS-1305 SPI CLOCK DRIVER (DS5RTC.ASM) +; +PCRTCENABLE .SET FALSE ; PCRTC: DISABLE DS12885 etc. RTC +PCRTC_BASE .SET $C0 ; Default port for PCRTC, like DSRTC. +; +MMRTCENABLE .SET FALSE ; MMRTC: ENABLE NS MM58167B RTC DRIVER (MMRTC.ASM) +; +DS12RTCENABLE .SET FALSE ; DS12RTC: ENABLE DS1288X RTC DRIVER (DS12RTC.ASM) +DS12RTC_BASE .SET $70 ; DS12RTC: I/O BASE ADDRESS +; +M6242RTCENABLE .SET TRUE ; M6242RTC: ENABLE M6242 CLOCK DRIVER (M6242.ASM) +M6242RTC_BASE .SET $A0 ; M6242RTC: I/O BASE ADDRESS +; +SSERENABLE .SET FALSE ; SSER: ENABLE SIMPLE SERIAL DRIVER (SSER.ASM) +SSERCFG .SET SER_9600_8N1 ; SSER: SERIAL LINE CONFIG +SSERSTATUS .SET $FF ; SSER: STATUS PORT +SSERDATA .SET $FF ; SSER: DATA PORT +SSERIRDY .SET %00000001 ; SSER: INPUT READY BIT MASK +SSERIINV .SET FALSE ; SSER: INPUT READY BIT INVERTED +SSERORDY .SET %00000010 ; SSER: OUTPUT READY BIT MASK +SSEROINV .SET FALSE ; SSER: OUTPUT READY BIT INVERTED +; +DLPSERENABLE .SET FALSE ; DLPSER: ENABLE DLP-USB SERIAL DRIVER (DLPSER.ASM) +; +DUARTENABLE .SET FALSE ; DUART: ENABLE 2681/2692 SERIAL DRIVER (DUART.ASM) +DUARTCNT .SET 1 ; DUART: NUMBER OF CHIPS TO DETECT (1-2) +DUART0BASE .SET $A0 ; DUART 0: BASE ADDRESS OF CHIP +DUART0ACFG .SET DEFSERCFG ; DUART 0A: SERIAL LINE CONFIG +DUART0BCFG .SET DEFSERCFG ; DUART 0B: SERIAL LINE CONFIG +DUART1BASE .SET $40 ; DUART 1: BASE ADDRESS OF CHIP +DUART1ACFG .SET DEFSERCFG ; DUART 1A: SERIAL LINE CONFIG +DUART1BCFG .SET DEFSERCFG ; DUART 1B: SERIAL LINE CONFIG +; +UARTENABLE .SET FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) +UARTCNT .SET 1 ; UART: NUMBER OF CHIPS TO DETECT (1-8) +UARTOSC .SET 1843200 ; UART: OSC FREQUENCY IN MHZ +UARTINTS .SET FALSE ; UART: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3 +UART4UART .SET FALSE ; UART: SUPPORT 4UART ECB BOARD +UART4UARTBASE .SET $C0 ; UART: BASE IO ADDRESS OF 4UART ECB BOARD +UART0BASE .SET $FF ; UART 0: REGISTERS BASE ADR +UART0CFG .SET DEFSERCFG ; UART 0: SERIAL LINE CONFIG +UART1BASE .SET $FF ; UART 1: REGISTERS BASE ADR +UART1CFG .SET DEFSERCFG ; UART 1: SERIAL LINE CONFIG +UART2BASE .SET $FF ; UART 2: REGISTERS BASE ADR +UART2CFG .SET DEFSERCFG ; UART 2: SERIAL LINE CONFIG +UART3BASE .SET $FF ; UART 3: REGISTERS BASE ADR +UART3CFG .SET DEFSERCFG ; UART 3: SERIAL LINE CONFIG +UART4BASE .SET $FF ; UART 4: REGISTERS BASE ADR +UART4CFG .SET DEFSERCFG ; UART 4: SERIAL LINE CONFIG +UART5BASE .SET $FF ; UART 5: REGISTERS BASE ADR +UART5CFG .SET DEFSERCFG ; UART 5: SERIAL LINE CONFIG +UART6BASE .SET $FF ; UART 6: REGISTERS BASE ADR +UART6CFG .SET DEFSERCFG ; UART 6: SERIAL LINE CONFIG +UART7BASE .SET $FF ; UART 7: REGISTERS BASE ADR +UART7CFG .SET DEFSERCFG ; UART 7: SERIAL LINE CONFIG +; +ASCIENABLE .SET FALSE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) +ASCIINTS .SET TRUE ; ASCI: INCLUDE INTERRUPT SUPPORT UNDER IM1/2/3 +ASCISWAP .SET FALSE ; ASCI: SWAP CHANNELS +ASCIBOOT .SET 0 ; ASCI: REBOOT ON RCV CHAR (0=DISABLED) +ASCI0CFG .SET DEFSERCFG ; ASCI 0: SERIAL LINE CONFIG +ASCI1CFG .SET DEFSERCFG ; ASCI 1: SERIAL LINE CONFIG +; +Z2UENABLE .SET FALSE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM) +Z2UOSC .SET 1843200 ; Z2U: OSC FREQUENCY IN MHZ +Z2UOSCEXT .SET TRUE ; Z2U: USE EXTERNAL OSCILLATOR +Z2U0BASE .SET $10 ; Z2U 0: BASE I/O ADDRESS +Z2U0CFG .SET DEFSERCFG ; Z2U 0: SERIAL LINE CONFIG +Z2U0HFC .SET FALSE ; Z2U 0: ENABLE HARDWARE FLOW CONTROL +; +ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) +ACIADEBUG .SET FALSE ; ACIA: ENABLE DEBUG OUTPUT +ACIACNT .SET 1 ; ACIA: NUMBER OF CHIPS TO DETECT (1-2) +ACIA0BASE .SET $80 ; ACIA 0: REGISTERS BASE ADR +ACIA0CLK .SET CPUOSC ; ACIA 0: OSC FREQ IN HZ +ACIA0DIV .SET 1 ; ACIA 0: SERIAL CLOCK DIVIDER +ACIA0CFG .SET DEFSERCFG ; ACIA 0: SERIAL LINE CONFIG (SEE STD.ASM) +ACIA1BASE .SET $40 ; ACIA 1: REGISTERS BASE ADR +ACIA1CLK .SET CPUOSC ; ACIA 1: OSC FREQ IN HZ +ACIA1DIV .SET 1 ; ACIA 1: SERIAL CLOCK DIVIDER +ACIA1CFG .SET DEFSERCFG ; ACIA 1: SERIAL LINE CONFIG (SEE STD.ASM) +; +SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) +SIODEBUG .SET FALSE ; SIO: ENABLE DEBUG OUTPUT +SIOBOOT .SET 0 ; SIO: REBOOT ON RCV CHAR (0=DISABLED) +SIOCNT .SET 2 ; SIO: NUMBER OF CHIPS TO DETECT (1-2), 2 CHANNELS PER CHIP +SIOINTS .SET TRUE ; SIO: INCLUDE SIO INTERRUPT SUPPORT UNDER IM1/2/3 +SIO0MODE .SET SIOMODE_RC ; SIO 0: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] +SIO0BASE .SET $80 ; SIO 0: REGISTERS BASE ADR +SIO0ACLK .SET CPUOSC ; SIO 0A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0ACFG .SET DEFSERCFG ; SIO 0A: SERIAL LINE CONFIG +SIO0ACTCC .SET -1 ; SIO 0A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO0BCLK .SET CPUOSC ; SIO 0B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO0BCFG .SET DEFSERCFG ; SIO 0B: SERIAL LINE CONFIG +SIO0BCTCC .SET -1 ; SIO 0B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO1MODE .SET SIOMODE_RC ; SIO 1: CHIP TYPE: SIOMODE_[STD|RC|SMB|ZP|Z80R] +SIO1BASE .SET $84 ; SIO 1: REGISTERS BASE ADR +SIO1ACLK .SET CPUOSC ; SIO 1A: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO1ACFG .SET DEFSERCFG ; SIO 1A: SERIAL LINE CONFIG +SIO1ACTCC .SET -1 ; SIO 1A: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +SIO1BCLK .SET CPUOSC ; SIO 1B: OSC FREQ IN HZ, ZP=2457600/4915200, RC/SMB=7372800 +SIO1BCFG .SET DEFSERCFG ; SIO 1B: SERIAL LINE CONFIG +SIO1BCTCC .SET -1 ; SIO 1B: CTC CHANNEL 0=A, 1=B, 2=C, 3=D, -1 FOR NONE +; +SCCENABLE .SET FALSE ; SCC: ENABLE ZILOG SCC SERIAL DRIVER (SCC.ASM) +; +XIOCFG .SET DEFSERCFG ; XIO: SERIAL LINE CONFIG +; +VDUENABLE .SET FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) +VDUSIZ .SET V80X25 ; VDU: DISPLAY FORMAT [V80X24|V80X25|V80X30] +CVDUENABLE .SET FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) +CVDUMODE .SET CVDUMODE_ECB ; CVDU: CVDU MODE: CVDUMODE_[NONE|ECB|MBC] +CVDUMON .SET CVDUMON_CGA ; CVDU: CVDU MONITOR SETUP: CVDUMON_[NONE|CGA|EGA] +GDCENABLE .SET FALSE ; GDC: ENABLE 7220 GDC VIDEO/KBD DRIVER (GDC.ASM) +GDCMODE .SET GDCMODE_RPH ; GDC: GDC MODE: GDCMODE_[NONE|ECB|RPH] +GDCMON .SET GDCMON_EGA ; GDC: GDC MONITOR SETUP: GDCMON_[NONE|CGA|EGA] +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSMODE .SET TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MSX|MSXKBD|MSXMKY|MBC|COLECO|DUO|NABU] +TMS80COLS .SET FALSE ; TMS: ENABLE 80 COLUMN SCREEN, REQUIRES V9958 +TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) +VGAENABLE .SET FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) +VGASIZ .SET V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] +VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM) +SCONENABLE .SET FALSE ; SCON: ENABLE S100 CONSOLE DRIVER (SCON.ASM) +EFENABLE .SET FALSE ; EF: ENABLE EF9345 VIDEO DRIVER (EF.ASM) +TVGAENABLE .SET FALSE ; TVGA: ENABLE TRION VGA VIDEO DRIVER (TVGA.ASM) +; +MDENABLE .SET TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) +MDROM .SET TRUE ; MD: ENABLE ROM DISK +MDRAM .SET TRUE ; MD: ENABLE RAM DISK +MDTRACE .SET 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +MDFFENABLE .SET FALSE ; MD: ENABLE FLASH FILE SYSTEM +; +FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) +FDMODE .SET FDMODE_NONE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC] +FDCNT .SET 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2) +FDTRACE .SET 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL) +FDMAUTO .SET TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS +FD0TYPE .SET FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +FD1TYPE .SET FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] +; +RFENABLE .SET FALSE ; RF: ENABLE RAM FLOPPY DRIVER +RFCNT .SET 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4) +; +IDEENABLE .SET FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +IDETRACE .SET 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IDECNT .SET 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH +IDE0MODE .SET IDEMODE_NONE ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] +IDE0BASE .SET $20 ; IDE 0: IO BASE ADDRESS +IDE0DATLO .SET $00 ; IDE 0: DATA LO PORT FOR 16-BIT I/O +IDE0DATHI .SET $00 ; IDE 0: DATA HI PORT FOR 16-BIT I/O +IDE0A8BIT .SET TRUE ; IDE 0A (MASTER): 8 BIT XFER +IDE0B8BIT .SET TRUE ; IDE 0B (MASTER): 8 BIT XFER +IDE1MODE .SET IDEMODE_NONE ; IDE 1: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] +IDE1BASE .SET $00 ; IDE 1: IO BASE ADDRESS +IDE1DATLO .SET $00 ; IDE 1: DATA LO PORT FOR 16-BIT I/O +IDE1DATHI .SET $00 ; IDE 1: DATA HI PORT FOR 16-BIT I/O +IDE1A8BIT .SET TRUE ; IDE 1A (MASTER): 8 BIT XFER +IDE1B8BIT .SET TRUE ; IDE 1B (MASTER): 8 BIT XFER +IDE2MODE .SET IDEMODE_NONE ; IDE 2: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] +IDE2BASE .SET $00 ; IDE 2: IO BASE ADDRESS +IDE2DATLO .SET $00 ; IDE 2: DATA LO PORT FOR 16-BIT I/O +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 FALSE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) +PPIDETRACE .SET 1 ; PPIDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPIDECNT .SET 1 ; PPIDE: NUMBER OF PPI CHIPS TO DETECT (1-3), 2 DRIVES PER CHIP +PPIDE0MODE .SET PPIDEMODE_NONE ; PPIDE 0: DRIVER MODE: IDEMODE_[STD|S100A|S100B] +PPIDE0BASE .SET $60 ; 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_NONE ; PPIDE 1: DRIVER MODE: IDEMODE_[STD|S100A|S100B] +PPIDE1BASE .SET $20 ; PPIDE 1: PPI REGISTERS BASE ADR +PPIDE1A8BIT .SET FALSE ; PPIDE 1A (MASTER): 8 BIT XFER +PPIDE1B8BIT .SET FALSE ; PPIDE 1B (SLAVE): 8 BIT XFER +PPIDE2MODE .SET PPIDEMODE_NONE ; PPIDE 2: DRIVER MODE: IDEMODE_[STD|S100A|S100B] +PPIDE2BASE .SET $14 ; 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 FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) +SDMODE .SET SDMODE_NONE ; 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) +SDCSIOFAST .SET FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE +SDMTSWAP .SET FALSE ; SD: SWAP THE LOGICAL ORDER OF THE SPI PORTS OF THE MT011 +; +CHENABLE .SET FALSE ; CH: ENABLE CH375/376 USB SUPPORT +CHTRACE .SET 1 ; CH: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +CHUSBTRACE .SET 1 ; CHUSB: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +CHSDTRACE .SET 1 ; CHSD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +CHCNT .SET 2 ; CH: NUMBER OF BOARDS TO DETECT (1-2) +CH0BASE .SET $3E ; CH 0: BASE I/O ADDRESS +CH0USBENABLE .SET FALSE ; CH 0: ENABLE USB DISK +CH0SDENABLE .SET FALSE ; CH 0: ENABLE SD DISK +CH1BASE .SET $3C ; CH 1: BASE I/O ADDRESS +CH1USBENABLE .SET FALSE ; CH 1: ENABLE USB DISK +CH1SDENABLE .SET FALSE ; CH 1: ENABLE SD DISK +; +PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) +PRPSDENABLE .SET FALSE ; PRP: ENABLE PROPIO DRIVER SD CARD SUPPORT +PRPSDTRACE .SET 1 ; PRP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PRPCONENABLE .SET FALSE ; PRP: ENABLE PROPIO DRIVER VIDEO/KBD SUPPORT +; +PPPENABLE .SET FALSE ; PPP: ENABLE ZETA PARALLEL PORT PROPELLER BOARD DRIVER (PPP.ASM) +PPPBASE .SET $60 ; PPP: PPI REGISTERS BASE ADDRESS +PPPSDENABLE .SET FALSE ; PPP: ENABLE PPP DRIVER SD CARD SUPPORT +PPPSDTRACE .SET 1 ; PPP: SD CARD TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPPCONENABLE .SET FALSE ; PPP: ENABLE PPP DRIVER VIDEO/KBD SUPPORT +; +ESPENABLE .SET FALSE ; ESP: ENABLE ESP32 IO BOARD DRIVER (ESP.ASM) +ESPCONENABLE .SET FALSE ; ESP: ENABLE ESP32 CONSOLE IO DRIVER VIDEO/KBD SUPPORT +; +HDSKENABLE .SET FALSE ; HDSK: ENABLE SIMH HDSK DISK DRIVER (HDSK.ASM) +HDSKTRACE .SET 1 ; HDSK: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +; +PIOENABLE .SET FALSE ; PIO: ENABLE ZILOG PIO DRIVER (PIO.ASM) +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 FALSE ; LPT: ENABLE CENTRONICS PRINTER DRIVER (LPT.ASM) +LPTMODE .SET LPTMODE_NONE ; LPT: DRIVER MODE: LPTMODE_[NONE|SPP|MG014|T35] +LPTCNT .SET 1 ; LPT: NUMBER OF CHIPS TO DETECT (1-2) +LPTTRACE .SET 1 ; LPT: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +LPT0BASE .SET $E8 ; LPT 0: REGISTERS BASE ADR +LPT1BASE .SET $EC ; LPT 1: REGISTERS BASE ADR +; +PPAENABLE .SET FALSE ; PPA: ENABLE IOMEGA ZIP DRIVE (PPA) DISK DRIVER (PPA.ASM) +PPACNT .SET 1 ; PPA: NUMBER OF PPA DEVICES (1-2) +PPATRACE .SET 1 ; PPA: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +PPAMODE .SET PPAMODE_NONE ; PPA: DRIVER MODE: PPAMODE_[NONE|SPP|MG014] +PPA0BASE .SET LPT0BASE ; PPA 0: BASE I/O ADDRESS OF PPI FOR PPA +PPA1BASE .SET LPT1BASE ; PPA 1: BASE I/O ADDRESS OF PPI FOR PPA +; +IMMENABLE .SET FALSE ; IMM: ENABLE IOMEGA ZIP PLUS DRIVE (IMM) DISK DRIVER (IMM.ASM) +IMMCNT .SET 1 ; IMM: NUMBER OF IMM DEVICES (1-2) +IMMTRACE .SET 1 ; IMM: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +IMMMODE .SET IMMMODE_NONE ; IMM: DRIVER MODE: IMMMODE_[NONE|SPP|MG014] +IMM0BASE .SET LPT0BASE ; IMM 0: BASE I/O ADDRESS OF PPI FOR IMM +IMM1BASE .SET LPT1BASE ; IMM 1: BASE I/O ADDRESS OF PPI FOR IMM +; +SYQENABLE .SET FALSE ; SYQ: ENABLE SYQUEST SPARQ DISK DRIVER (SYQ.ASM) +SYQCNT .SET 1 ; SYQ: NUMBER OF SYQ DEVICES (1-2) +SYQTRACE .SET 1 ; SYQ: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +SYQMODE .SET IMMMODE_NONE ; SYQ: DRIVER MODE: SYQMODE_[NONE|SPP|MG014] +SYQ0BASE .SET LPT0BASE ; SYQ 0: BASE I/O ADDRESS OF PPI FOR SYQ +SYQ1BASE .SET LPT1BASE ; SYQ 1: BASE I/O ADDRESS OF PPI FOR SYQ +; +ESPSDENABLE .SET FALSE ; ESPSD: ENABLE S100 ESP32 SD DISK DRIVER (ESPSD.ASM) +; +SCSIENABLE .SET FALSE ; SCSI: ENABLE 3580-BASED SCSI INTERFACE (SCSI.ASM) +SCSITRACE .SET 1 ; SCSI: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) +SCSICNT .SET 2 ; SCSI: NUMBER OF TARGET DEVICES (1-2) +SCSI_TID .SET 0 ; SCSI: TARGET DEVICE ID (0-6) +SCSI0_LUN .SET 0 ; SCSI0: TARGET LUN +SCSI1_LUN .SET 1 ; SCSI1: TARGET LUN +; +PIO_4P .SET FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB 4P BOARD +PIO4BASE .SET $90 ; PIO: PIO REGISTERS BASE ADR FOR ECB 4P BOARD +PIO_ZP .SET FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR ECB ZILOG PERIPHERALS BOARD (PIO.ASM) +PIOZBASE .SET $88 ; PIO: PIO REGISTERS BASE ADR FOR ECB ZP BOARD +PIO_SBC .SET FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP +PIOSBASE .SET $60 ; PIO: PIO REGISTERS BASE ADR FOR SBC PPI +; +UFENABLE .SET FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) +UFBASE .SET $0C ; UF: REGISTERS BASE ADR +; +SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER +SN76489CHNOUT .SET SNCHAN_BOTH ; SN: CHANNEL OUTPUTS: SNCHAN_[BOTH|LEFT|RIGHT] +AUDIOTRACE .SET FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER +SN7CLK .SET 3579545 ; SN: PSG CLOCK FREQ, ASSUME MSX STD +SNMODE .SET SNMODE_NONE ; SN: DRIVER MODE: SNMODE_[NONE|RC|VGM|DUO] +; +AY38910ENABLE .SET FALSE ; AY: ENABLE AY-3-8910 / YM2149 SOUND DRIVER +AY_CLK .SET 1789772 ; AY: PSG CLOCK FREQ, ASSUME MSX STD +AYMODE .SET AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC|MBC|DUO|NABU|N8PC] +AY_FORCE .SET FALSE ; AY: BYPASS AUTO-DETECT, FORCED PRESENT +; +SPKENABLE .SET FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) +SPKPORT .SET RTCIO ; SPK: THE PORT WITH THE SPEAKER IO BIT +SPKSHADOW .SET HB_RTCVAL ; SPK: THE SHADOW VALUE FOR THE PORT THAT HAS TO BE MAINTAINED +SPKMASK .SET 00000100b ; SPK: THE BIT MASK TO ACTUALLY TOGGLE +; +DMAENABLE .SET FALSE ; DMA: ENABLE DMA DRIVER (DMA.ASM) +DMABASE .SET $E0 ; DMA: DMA BASE ADDRESS +DMAMODE .SET DMAMODE_NONE ; DMA: DMA MODE (NONE|ECB|Z180|Z280|RC|MBC|DUO) +; +YM2612ENABLE .SET FALSE ; YM2612: ENABLE YM2612 DRIVER +VGMBASE .SET $C0 ; YM2612: BASE ADDRESS FOR VGM BOARD (YM2612/SN76489s/CTC) +; +; EZ80 SETTINGS +; +EZ80TMR_NONE .SET 0 ; DO NOT USE ON-BOARD TIMER TO GENERATE TICKS +EZ80TMR_INT .SET 1 ; MARSHALL TIMER TICK INTERRUPTS FROM EZ80 TO HBIOS +EZ80TMR_FIRM .SET 2 ; DELEGATE SYS TIMER HBIOS CALL TO EZ80 FIRMWARE (TIMER TICK INTS DISABLED) +; +EZ80UARTENABLE .SET FALSE ; EZ80 UART: ENABLE EZ80 UART0 DRIVER (EZ80UART.ASM) +EZ80RTCENABLE .SET FALSE ; EZ80 ON CHIP RTC +EZ80TIMER .SET EZ80TMR_FIRM ; EZ80: TIMER TICK MODEL: EZ80TMR_[INT|FIRM] +EZ80IOBASE .SET $FF ; EZ80 I/O BASE ADDRESS FOR EXTERNAL IO +; +; BUS TIMING FOR PAGED MEMORY ACCESS (CS3) +EZ80_MEM_CYCLES .SET 3 ; MEMORY BUS CYCLES (1-15) TO APPLY, IF EZ80_WSMD_TYP = EZ80WSMD_CYCLES +EZ80_MEM_MIN_NS .SET 100 ; CALCULATE AT BOOT TIME THE REQUIRED W/S OR B/C, IF EZ80_WSMD_TYP = EZ80WSMD_CALC +EZ80_MEM_WS .SET 5 ; MEMORY WAIT STATES (0-7) TO APPLY, IF EZ80_WSMD_TYP = EZ80WSMD_WAIT +EZ80_MEM_MIN_WS .SET 0 ; MINIMUM WAIT STATES TO APPLY, IF EZ80_WSMD_TYP = EZ80WSMD_CALC +; +; BUS TIMING FOR EXTERNAL I/O ACCESS (CS2) +EZ80_IO_CYCLES .SET 4 ; IO BUS CYCLES (1-15) TO APPLY, IF EZ80_WSMD_TYP = EZ80WSMD_CYCLES +EZ80_IO_WS .SET 5 ; IO WAIT STATES (0-7) TO APPLY, IF EZ80_WSMD_TYP = EZ80WSMD_WAIT +EZ80_IO_MIN_NS .SET 320 ; CALCULATE AT BOOT TIME THE REQUIRED W/S OR B/C, IF EZ80_WSMD_TYP = EZ80WSMD_CALC +EZ80_IO_MIN_WS .SET 6 ; MINIMUM WAIT STATES TO APPLY, IF EZ80_WSMD_TYP = EZ80WSMD_CALC +; +; APPLY CYCLES, W/S OR CALCULATE CYCLES BASED ON DESIRED PERIOD +EZ80_WSMD_TYP .SET EZ80WSMD_CALC ; BUS WAIT STATE CONFIG: EZ80WSMD_[CALC|CYCLES|WAIT] +; +; BUS TIMING FOR ON CHIP ROM +; +EZ80_FLSH_WS .SET 1 ; WAIT STATES FOR ON CHIP FLASH (0-7) +EZ80_FLSH_MIN_NS .SET 60 ; MINIMUM WAIT STATES TO APPLY TO ON-CHIP FLASH, IF EZ80_WSMD_TYP = EZ80WSMD_CALC +EZ80_FWSMD_TYP .SET EZ80WSMD_CALC ; WAIT STATE TYPE: EZ80RMMD_[CALC|WAIT] (CYCLES NOT ALLOWED) diff --git a/Source/HBIOS/cfg_UNA.asm b/Source/HBIOS/cfg_UNA.asm index 4c3ff790..f4ab3ab0 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|SZ80|N8PC] +;PLATFORM .EQU PLT_UNA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] 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 70271cb6..17e7a5e3 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_Z80RETRO ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_ZETA.asm b/Source/HBIOS/cfg_ZETA.asm index 2c666b2a..76f9639d 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_ZETA ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/cfg_ZETA2.asm b/Source/HBIOS/cfg_ZETA2.asm index 3bc56c5f..4adbeb8a 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|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] +PLATFORM .SET PLT_ZETA2 ; PLT_[SBC|ZETA|ZETA2|N8|MK4|UNA|RC2014|RCZ80|RCEZ80|RCZ180|EZZ80|SCZ180|GMZ180|DYNO|RCZ280|MBC|RPH|Z80RETRO|SZ180|DUO|HEATH|EPITX|MON|STDZ180|NABU|SZ80|N8PC] CPUFAM .SET CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280|EZ80] NMOSCPU .SET FALSE ; NMOS CPU (ENABLES INT STATUS BUG WORKAROUND) BIOS .SET BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA] diff --git a/Source/HBIOS/hbios.inc b/Source/HBIOS/hbios.inc index 58cf4417..8a75c9ae 100644 --- a/Source/HBIOS/hbios.inc +++ b/Source/HBIOS/hbios.inc @@ -211,6 +211,7 @@ PLT_SZ80 .EQU 23 ; S100 COMPUTERS Z80 SYSTEM PLT_RCEZ80 .EQU 24 ; RCBUS W/ eZ80 PLT_MSX .EQU 25 ; MSX COMPUTER PLT_N8PC .EQU 26 ; N8PC (HOME COMPUTER, ATX FORMAT) Z180 SBC +PLT_RC2014 .EQU 27 ; OFFICIAL RC2014 Z80 KITS ; ; HBIOS GLOBAL ERROR RETURN VALUES ; diff --git a/Source/HBIOS/plt_pretty.inc b/Source/HBIOS/plt_pretty.inc index f23abaaa..c63c514b 100644 --- a/Source/HBIOS/plt_pretty.inc +++ b/Source/HBIOS/plt_pretty.inc @@ -41,6 +41,7 @@ ; S100 Z80 ; RCBUS eZ80 ; N8PC ZS180 +; RC2014 ; STR_PLT_PRETTY: ; @@ -189,5 +190,17 @@ STR_PLT_PRETTY: .DB "| _ \\ / __| | _ ) | | | | / __| ___ |_ / ( _ ) / \\ ",10,13 .DB "| / | (__ | _ \\ | |_| | \\__ \\ / -_) / / / _ \\ | () |",10,13 .DB "|_|_\\ \\___| |___/ \\___/ |___/ \\___| /___| \\___/ \\__/",10,13 +#ENDIF +#IF (PLATFORM == PLT_RC2014) + .DB " ___ ___ ___ __ _ _ _",10,13 + .DB "| _ \\ / __| |_ ) / \\ / | | | |",10,13 + .DB "| / | (__ / / | () | | | |_ _|",10,13 + .DB "|_|_\\ \\___| /___| \\__/ |_| |_|",10,13 #ENDIF .DB "$" + + + + + + \ No newline at end of file diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index 624bb936..3c1a40a5 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -28,6 +28,7 @@ ; 24. RCEZ80 RCBus eZ80 ; 25. MSX MSX Computers ; 26. N8PC MSX-ish Z180 ATX SBC w/ onboard video and sound +; 27. RC2014 Official RC2014 Z80 Kits ; ; INCLUDE BUILD VERSION ; diff --git a/Source/ver.inc b/Source/ver.inc index 7d4d147d..476849bb 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.47" +#DEFINE BIOSVER "3.6.0-dev.48" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index c9aa85f4..1944f0ef 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.47" + db "3.6.0-dev.48" endm