From ee4855cd1477bb0169b77fdda555f994f20270cc Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sun, 22 Mar 2020 08:40:06 -0700 Subject: [PATCH 1/3] Documentation Cleanup --- Doc/RomWBW Applications.pdf | Bin 121806 -> 121833 bytes Doc/RomWBW Architecture.pdf | Bin 369362 -> 369350 bytes Doc/RomWBW Getting Started.pdf | Bin 146002 -> 146862 bytes ReadMe.md | 12 +++++++----- ReadMe.txt | 14 ++++++++------ Source/Doc/Applications.md | 4 ++-- Source/Doc/GettingStarted.md | 10 +++++++++- 7 files changed, 26 insertions(+), 14 deletions(-) diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index c2b89cf15eb1065fd88b676ec7f8af727b9ec4c8..6e3218f9ec176b480cee519dad430930455bca52 100644 GIT binary patch delta 18742 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 diff --git a/Doc/RomWBW Architecture.pdf b/Doc/RomWBW Architecture.pdf index 6d7a613e41e28c0a6e47e5189262ae088529bfaf..20519073930346655e93903e4ea7bd93f46b1bfc 100644 GIT binary patch delta 13505 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 diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index dfa63fb434aaa63f7b6d70f4bc5db8cd699532a0..fe58443a4ad290c4ba8cdcdba0d9ce346f974919 100644 GIT binary patch delta 43420 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 delta 43059 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 LLM@`Et4{ZS!_-DV diff --git a/ReadMe.md b/ReadMe.md index fe9ba028..84ccad26 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ ## Z80/Z180 System Software Version 2.9.2 Prerelease -Saturday 21 March 2020 +Sunday 22 March 2020 Wayne Warthen @@ -779,13 +779,14 @@ tracks of the disk. ## FreeRTOS Note that Phillip Stevens has also ported FreeRTOS to run under RomWBW. -FreeRTOS is not provided in the RomWBW distribution. FreeRTOS is available -under the [MIT licence](https://www.freertos.org/a00114.html) +FreeRTOS is not provided in the RomWBW distribution. FreeRTOS is +available under the [MIT licence](https://www.freertos.org/a00114.html) and further general information is available at [FreeRTOS](https://www.freertos.org/RTOS.html). You can also contact Phillip for detailed information on the Z180 -implementation of FreeRTOS for RomWBW. [@feilipu](https://github.com/feilipu) +implementation of FreeRTOS for RomWBW. +\[@feilipu\](https://github.com/feilipu) # Transferring Files @@ -990,7 +991,7 @@ are: | Source | Contains the source code files used to build the software and ROM images. | | Tools | Contains the MS Windows programs that are used by the build process or that may be useful in setting up your system. | -# Acknowledgements +# Acknowledgments While I have heavily modified much of the code, I want to acknowledge that much of the work is derived from the work of others in the @@ -1011,6 +1012,7 @@ applications are no longer provided. platform. - Phil Summers contributed Forth and BASIC in ROM as well as a long list of general code enhancements. + - Phillip Stevens contributed support for FreeRTOS. - Curt Mayer contributed the Linux / MacOS build process. - UNA BIOS is a product of John Coffman. diff --git a/ReadMe.txt b/ReadMe.txt index 99c5e126..160add5e 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -3,7 +3,7 @@ RomWBW Z80/Z180 System Software Version 2.9.2 Prerelease -Saturday 21 March 2020 +Sunday 22 March 2020 Wayne Warthen wwarthen@gmail.com @@ -807,12 +807,13 @@ tracks of the disk. FreeRTOS Note that Phillip Stevens has also ported FreeRTOS to run under RomWBW. -FreeRTOS is not provided in the RomWBW distribution. FreeRTOS is available -under the MIT licence and further general information is available at -https://www.freertos.org/RTOS.html +FreeRTOS is not provided in the RomWBW distribution. FreeRTOS is +available under the MIT licence and further general information is +available at FreeRTOS. You can also contact Phillip for detailed information on the Z180 -implementation of FreeRTOS for RomWBW. https://github.com/feilipu +implementation of FreeRTOS for RomWBW. +[@feilipu](https://github.com/feilipu) Transferring Files @@ -1024,7 +1025,7 @@ are: process or that may be useful in setting up your system. -------------------------------------------------------------------------- -Acknowledgements +Acknowledgments While I have heavily modified much of the code, I want to acknowledge that much of the work is derived from the work of others in the @@ -1045,6 +1046,7 @@ applications are no longer provided. platform. - Phil Summers contributed Forth and BASIC in ROM as well as a long list of general code enhancements. +- Phillip Stevens contributed support for FreeRTOS. - Curt Mayer contributed the Linux / MacOS build process. - UNA BIOS is a product of John Coffman. diff --git a/Source/Doc/Applications.md b/Source/Doc/Applications.md index 0743177a..ed866aab 100644 --- a/Source/Doc/Applications.md +++ b/Source/Doc/Applications.md @@ -698,7 +698,7 @@ files in the opposite direction, you just reverse the parameters. To rename the file "XXX.DAT" to "YYY.DAT" on a FAT filesystem, you could use a command like "FAT REN 2:XXX.DAT 2:YYY.DAT". -To delete a file "XXX.DAT" on a FAT filesystem in director "FOO", +To delete a file "XXX.DAT" on a FAT filesystem in directory "FOO", you would use a command like `FAT DEL 2:\FOO\XXX.DAT`. To make a directory called "FOO2" on a FAT filesystem, you would @@ -734,7 +734,7 @@ current CP/M drive is assumed. For example: "2:README.TXT" refers to FAT file README.TXT on disk unit #2 "C:README.TXT" refers to CP/M file README.TXT on CP/M drive C -"README.TXT" refers to CP/M file README.TXT on current CP/M drive +"README.TXT" refers to CP/M file README.TXT on the current CP/M drive Files with SYS, HIDDEN, or R/O only attributes are not given any special treatment. Such files are found and processed diff --git a/Source/Doc/GettingStarted.md b/Source/Doc/GettingStarted.md index 187210a8..ff32af7c 100644 --- a/Source/Doc/GettingStarted.md +++ b/Source/Doc/GettingStarted.md @@ -422,7 +422,14 @@ Like CP/M 3, to make ZPM3 boot disk, you put CPMLDR.SYS on the system tracks of ## FreeRTOS -Note that Phillip Stevens has also ported FreeRTOS to run under RomWBW. FreeRTOS is not provided in the RomWBW distribution. You can contact Phillip for availability. +Note that Phillip Stevens has also ported FreeRTOS to run under RomWBW. +FreeRTOS is not provided in the RomWBW distribution. FreeRTOS is available +under the [MIT licence](https://www.freertos.org/a00114.html) +and further general information is available at +[FreeRTOS](https://www.freertos.org/RTOS.html). + +You can also contact Phillip for detailed information on the Z180 +implementation of FreeRTOS for RomWBW. [@feilipu](https://github.com/feilipu) # Transferring Files @@ -534,6 +541,7 @@ I especially want to credit Douglas Goodall for contributing code, time, testing * David Giles contributed support for the CSIO support in the SD Card driver. * Ed Brindley contributed some of the code that supports the RC2014 platform. * Phil Summers contributed Forth and BASIC in ROM as well as a long list of general code enhancements. + * Phillip Stevens contributed support for FreeRTOS. * Curt Mayer contributed the Linux / MacOS build process. * UNA BIOS is a product of John Coffman. From cc8d62969fb6a2d8d13777ae62877220206790dd Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sun, 22 Mar 2020 09:03:15 -0700 Subject: [PATCH 2/3] Fix IM 0 Build Error in ACIA --- Source/HBIOS/acia.asm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Source/HBIOS/acia.asm b/Source/HBIOS/acia.asm index 94402b1f..2e030a76 100644 --- a/Source/HBIOS/acia.asm +++ b/Source/HBIOS/acia.asm @@ -158,6 +158,17 @@ ACIA_INIT1: ; ; INTERRUPT HANDLERS ; +#IF (INTMODE == 0) +; +; NO INTERRUPT HANDLERS UNDER INTMODE 0. GENERATE A PANIC +; IF SOMETHING TRIES TO CALL THEM. +; +ACIA0_INT: +ACIA1_INT: + CALL PANIC +; +#ENDIF +; #IF (INTMODE > 0) ; ACIA0_INT: From 04d5fcd9a4f4c111462f1317ca63fc93dbf67f5c Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Sun, 22 Mar 2020 14:44:24 -0700 Subject: [PATCH 3/3] Documentation Updates --- Doc/RomWBW Applications.pdf | Bin 121833 -> 138636 bytes Doc/RomWBW Architecture.pdf | Bin 369350 -> 373219 bytes Doc/RomWBW Getting Started.pdf | Bin 146862 -> 153991 bytes ReadMe.md | 550 ++++++++------- ReadMe.txt | 592 +++++++++------- Source/Doc/Applications.md | 940 ++++++++++++++++---------- Source/Doc/Architecture.md | 318 +++++---- Source/Doc/GettingStarted.md | 1162 ++++++++++++++++++++++++-------- 8 files changed, 2313 insertions(+), 1249 deletions(-) diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 6e3218f9ec176b480cee519dad430930455bca52..089bf13e71813aee294f15822dfc8b0d807a0dba 100644 GIT binary patch delta 80895 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%0AeR>O#dtgA}4H2|1Oo2 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�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 Wu{6xjUj_2>pyVosh7(+DRsIh+qGtgB delta 66749 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 z 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 diff --git a/Doc/RomWBW Architecture.pdf b/Doc/RomWBW Architecture.pdf index 20519073930346655e93903e4ea7bd93f46b1bfc..bf265d6fd3ec083c34afc09ef9ebb39d545906b3 100644 GIT binary patch delta 77825 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

=;#rnv_MNYr) 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 delta 74509 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

IuDs3`A-~* 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�CackUVH7 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 diff --git a/Doc/RomWBW Getting Started.pdf b/Doc/RomWBW Getting Started.pdf index fe58443a4ad290c4ba8cdcdba0d9ce346f974919..af4b1e8ef5b52d8cdd96b27fab85e5d44b068053 100644 GIT binary patch delta 89363 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

gx5sjsqqFWesPK}wZb#pG; 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�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 w4nNZF%%XJj|{{;m?KzN)1^{ z-AOOydCi-J*89gV=j5X+tJV#N-mff7{%TE(veSKPH%`TyU&&d}!^`$D-^lOh1(Of% z^?4iPdvzASJwkOA2V%ku)$<%gK5DPp!s3x@1V6rK?_i#1=B|70>z%(_cmET*IIhM% z=S-GTl@bM6+4-L%EPf#-K4WCsd3c7aI=r;9JgmNECB*j`M<9m5JJ#r1g z(o;3Glv7U=OknwjN9_`7&-Nrox~|m4_vy=w5-$Qi@ceJI;91Tc=Az#``S1VCWp8H70T&CFHR z&2`{hQUncbGYE)86hqK;+5@8ZU(2Gws%Uh1(Gc`l6s}A>GA)lFL@*_lY9Bbk=E=c2`#XIN5}VeK9u}cM&?^4hA;5`M279<4tW)O%d$=E-AM#Sb z_U}jMfa(GCQVUXh+4*wsv2asG3+li7u!J!lgz@H};Gji~E_6`IQK4JhIMd^rce?&0- zI}$(>n+ux`i=T)UCG}5WkD7l}2gp|q3sWMv5NK)GkP^X-kd%f)X~EqA_=yZO2svCd zC^$!h(5C_iSd;*Yzw;$d3Bcwpp+TI30qa_h{oh5$X9muf1A(Fxe32HxN^x`>srv+h zc8DP1G+@Z_AE!rmq}Y+AIQ)ecp>zO&n+{=ha9{|)!Rd4eGdQ0fK>`!fBSx^;*_i-l zG!ljw5G<5OEF!U^x+Gv>28299Tn2V$K%Bw;uV6q}WB=1J9{%?S|4EPe6WI2_9gGMg zI*DV^A)Z4r1nkU&kf%Iu<6$twC1GJE1S^Dub(s(>un+@a>2)(9ME~2qV>-y8KLCJ? z8KLx_$f9J$VH;+I0mTtZ;-ChUtQ6eBj8Gx@O9-D}0T_Y$;bl4S3G}dMa5f7iH76-kW6Lrjv!FFqKc0||sCw@CD2sx^MJRBmDLBr=*0s8-nk?oyLYx();(-MjaEXj*uU<;|S3)ndlJFF&XF|L}%F$ay{^eVn9xZ9oP^w3P*rcIZ?+9v448u-(3L^*#Eu)2V^i4*bogdNu6^K z^mGR1M+#U^hqWE|XA~f4{jXD@4#zt<5(zP5j!X~7XfdqmQS**K{9}69j3YkLKXe$- z46JJ`8%9BaSnL?d!N5g~btidrk&oRSx8f-Nl*hEO!wUd7vBhkl=eY|)WcEkS4oAO3 zXGg=*e*<)c?Wn3F*T-!>@_ZD5fNr3(mncdQ z43GylM*<0~;BY`b)IeheheNA?gX2YSpI}dCCs!{peg=RNG#ajDN65k@N9z>IT2h^hYxDt&?ng2)5pO{kn^zH0g1o+ zC1(*&=fFT`e-Vd(0C!h!EO<~IVCdfkwseQQC{6(ve`ja^Kp$+g#K9QIg`lT8q&c1k zPiS{9_rRmtICTVEoxPp?9Xv&X0swTue`CZ3@AyVJ!U*&O0|86(p#FeB2X9AbPzeas zSuO+@(;-)oQ^4ID6nT0&1iJfp19)ISOXNauVvvW#IZgo|Ur^_Pn}Co2aPhDqJEZb~ zvP;hXm)xC$v33Vn?=Q^%-`f9Y@o)6lEB!C@a054j$QFAOfD#i<0bkH!QKUGi=^;s5QxP9>Nsp6>OWT%jm5y|fC3Fi z9dZhf6+y#MM{}qnQ*5U?r0gB*fQF-vrbxn!B%smDES{C z@Cy(NYZPcY3NTv#cS%4MM;p{18e$`R$Z0(Cgbm*zAMr?ljo!atVuOc5A0YsxhmNHG z13>B^5@Oi69_&bB!*x5-0d$V9~Q*m+Fj~Btrdu-tE<0XRa`=ID> zAO&jI$59zOa0Rz$+S{0LfRU~n|s{mTH<4|0R}2_cxk z{rWc+l*GTWfDQz(uvvmje%u@W!Hoi!{gA-?ceUW+9?h!%st;WL!%4*7n&2`>OTixm z5VRo80u~E33RLr#m8{@-IExs;1b6TwsNmlM2u7O2$--Ys5=i(9@E``7c}Q~py9_k* zaC-8$5Y&N9qyXw;|JP-ZK>xqW&gIpwtBT{~R9d+MsiYQ?(D;)YhL)J%&DKX&pE%}-fLYD@95rj z_u9|(_^!3jSw}5>|5sLiZDf_pYteNltP))H&aLia>U#YCR(GunV>z|`KW=rg>&N|< zZ+BNOFYf`v`1I^&MOvvx@!i|q+ucBvc)NSpQRL;%x4Y{ z3Ox(q%B2tYpZ)F9m3ebnpT79{^A~q1vQ7ufOWl=X-K_pw{oW{Q(TZ&~ON2G8Rg9)} zsZ2{vh5f&G-IZT|;kU2u z|9P)_{p~H_eeaW(PtTqKpAMjZIrfRVD%V_>x;Xvm`>xwvdexk*zI$u?{js2trf5ap`Yv2F?Oy+lD|n zODhOhwJT*F6wTX#2|rNrLp#RjXGrokz5E<^VaS3*TH4r)TTrw?Okzu$f}C<8Ft!=QM<oZ8tij5dksUR=h1Z zpq>40F@gsn49VKfhz-!Ii-aS3b+I2Mf7?tZQf)}{y6lcSIB%XOm+Vo)?2se9Vwa-? z$*Ns86C{+DXtilasds@<4Q(cuZaQRfhUSvgXl$8X3}#z<7o8BG+>w`aF9OpV?{( z?U-F)W6VP45RIM3${VlPhh#ipkJ@SV#K9Qb-{)W*TU=CI_W!v3m~X9i_>v1cjK8ot;YK_a%097)aVn2Onc@_ohx4`EKm z!jYOa!i9I2luRyIm>Olq;!wn_pqN^`kti?egk~~S=`y~Ra$n{gD0e0yZo^9@Fp2&Z zE!Tqbp!^q?Zk;eD)=XvqpQsKex1Yb+eQ7qB2h%1|bu&7M&TQF)lhm^$z?2eeE$=9$ zy%dcCwabJmoIE9KP9_kn)&=5FqlAD)71W&pRVf&|=qat-oRctvLTeLKI*g+oIFurU^6!HQ z^cZtMqYlfe2uXOARWBm&t`8nkhjuUXgDHs8bc*3pAW>0GJpM zr)c4~_jb~Jf?A7R@K(ft;5HeT_v|G-WIHaI28d{zxJVn9L92_D)YR4inwBG;Im$XPnPDy$ zZS7VA>&(D?k_Vx5JCmi1)1-q`22RE-(T>T8{#7aw!3f*dthNtkDZQ`T*%W6a)2p-z zUT-3&I5G6r-xdi+@PHC7n8_?{4cCa7c6wV;PP{uvZ_chbvWbg=rGI2flCD5kFT&flTVKquQdk)kM-qwDp+>kn$b`E}Z@Cs;w<7=q5gz|2*T8N>)Y14nHT;T^3_3o4N+ zfy1<1{Oi4Kp&KSB#ZZN62JI{ zX|(eOnMTfTg{&s&ONj_}@Y5ch^J)wiin=d5t(3*roso^Gt4=P0$O0mqT91Jvu_Lgi>)P zlUvvZ${q4xE<|W&5^6E`dKcg&N7pVG{pT{w2p8k3BZ1j?Wq3!q2W@vS6Q3HIQBN*~ zB*lEWWlr41jQig`>Tc}+^N0&87OT2S*y>hl4-h%;d^|Ij2@?dbYgapbd z`hj)WoCGM5a_^=g=-tqmj;7(v^&Y2jk}KPGU?5k`Tig^7TAv!Gzm(Z;nJ28O?r=&P z`j8KoO5SQ<4}3ASFxw6<2pWKT+I~7z!GuI91iK3%YwzU960Ujt$~&Yu8M~Mwi6TAg zuZ*e)gaE~TJ-IW(1Wll_Ngl2)XBjn1HhW)LntOeBtnHi$R7XpD5`RzZ6QE=_H& zHIog}=gBAQO@5xWnRE~rA$10=2nC!Q{yTUFhsiSW6lqm$o@mG2mO7G5K2K{-MyU1C ziAimFKNe>g41B=C7=MT{H^-Dc%z84CxG=Pw_x%Tw7SI|=B2ohji6RZkBAIU_B1=r5 zhr%CgCCy1bGa!3k$ve_y6eyDvG96~O`SOFQ%9wAnxvWI-GOD^rN8TY;al(qO5o2wL zd832-;&ydFVV%m7hdjJiQtrmMPEox56b9B`L~vUP**tE66phTib*ZAdx*bBI#Et;N z*i8vKHjH_YcZepmmv0ql`G7_Mpav%DkVkdp=dh5G&wl8Ia4Vq}2O1hlh#O|U0ilGZ z9|<@0d5%28q_>s1XgPw{;02ztz&a>21kq$$pph!mtMgG~J@ParCnq%Rj-ZtXm&_x|(e zyZ|H(~?&z?NzFHW-j#aHIO{%tg$+ywFBJHx~LZs^AcFeY9z;&S#ud~kpFzngrx f;|&5H>VD(=` disk prompt. In this scenario, A: will be an empty -RAM disk and B: will refer to your ROM disk containing some typical +2.2 or Z-System, the selected operating system will be loaded from ROM +and you will see the a `B>` disk prompt. In this scenario, A: will be an +empty RAM disk and B: will refer to your ROM disk containing some common applications. This provides a simple environment for learning to use your system. Be aware that files saved to the RAM disk (A:) will disappear at the next power on (RAM is generally not persistent). Also @@ -169,33 +169,34 @@ ROM is not writable. Upgrading to a newer release of RomWBW is essentially just a matter of updating the ROM chip in your system. If you have spare ROM chips for -your system and a ROM programmer, it is always safest to keep your +your system and a ROM programmer, it is always safest to retain your existing, working ROM chip and program a new one with the new firmware. If the new one fails to boot, you can easily return to the known working ROM. Prior to attempting to reprogram your actual ROM chip, you may wish to -“try” the upgrade. With RomWBW, you can upload a new system image and -load it from the command line. For each ROM image file (.rom) in the -Binary directory, you will also find a corresponding application file -(.com). For example, for SBC\_std.rom, there is also an SBC\_std.com -file. You can upload the .com file to your system using XModem, then -simply run the .com file. You will see your system go through the normal -startup process just like it was started from ROM. However, your ROM has -not been updated and the next time you boot your system, it will revert -to the system image contained in ROM. You may find that you are unable -to load the .com file because it is too large to fit in available -application RAM (TPA). Unfortunately, in this case, you will not be able -to use the .com file mechanism to start your system. +“try” the upgrade. With RomWBW, you can upload a new system image +executable and load it from the command line. For each ROM image file +(.rom) in the Binary directory, you will also find a corresponding +application file (.com). For example, for SBC\_std.rom, there is also an +SBC\_std.com file. You can upload the .com file to your system using +XModem, then simply run the .com file. You will see your system go +through the normal startup process just like it was started from ROM. +However, your ROM has not been updated and the next time you boot your +system, it will revert to the system image contained in ROM. You may +find that you are unable to load the .com file because it is too large +to fit in available application RAM (TPA). Unfortunately, in this case, +you will not be able to use the .com file mechanism to start your +system. If you do not have easy access to a ROM programmer, it is usually possible to reprogram your system ROM using the FLASH utility from Will -Sowerbutts. This application called FLASH.COM can be found on the ROM +Sowerbutts. This application, called FLASH.COM, can be found on the ROM drive of any running system. In this case, you would need to transfer the new ROM image (.rom) over to your system using XModem (or one of the other mechanisms described in the Transferring Files section below). The -ROM image will be too large to fit on your RAM drive, so you will need -to transfer it to a larger storage drive. Once the ROM image is on your +ROM image is too large to fit on your RAM drive, so you will need to +transfer it to a larger storage drive. Once the ROM image is on your system, you can use the FLASH application to update your ROM. The following is a typical example of transferring ROM image using XModem and flashing the chip in-situ. @@ -242,7 +243,7 @@ If you wish to update existing disk media in your system, you need to perform the following steps. If the disk is bootable, you need to update the system tracks of the -disk. This is done using a SYSCOPY command such as `SYSCOPY +disk.This is done using a SYSCOPY command such as `SYSCOPY C:=B:ZSYS.SYS`. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M 2.2 disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. CPMLDR.SYS is not provided on the ROM disk, so you would need to upload it from the @@ -254,33 +255,299 @@ following applications are found on your ROM disk. Use COPY to copy them over any older versions of the app on your disk: - ASSIGN.COM - - FORMAT.COM - - OSLDR.COM - SYSCOPY.COM - - TALK.COM + - MODE.COM - FDU.COM (was FDTST.COM) + - OSLDR.COM + - FORMAT.COM - XM.COM - - MODE.COM + - FLASH.COM + - FDISK80.COM + - TALK.COM - RTC.COM - TIMER.COM - INTTEST.COM For example: `B>COPY ASSIGN.COM C:` +Some RomWBW custom applications are too large to fit on the ROM disk. If +you are using any of these you will need to transfer them to your system +and then update all copies. These applications are found in the +Binary\\Apps directory of the distribution and in all of the disk +images. + + - FAT.COM + - TUNE.COM + +# General Usage + +Each of the operating systems and ROM applications included with RomWBW +are sophisticated tools in their own right. It is not reasonable to +document their usage here. However, you will find complete manuals in +PDF format in the Doc directory of the distribution. The intention of +this section is to document the RomWBW specific enhancements to these +operating systems. + +## Inbuilt ROM Applications + +In addition to CP/M 2.2 and Z-System, there are several ROM applications +that can be launched directly from ROM. These applications are not +hosted by an operating system and so they are unable to save files to +disk devices. + +The following ROM applications are available at the boot loader prompt: + +| Application | | +| ----------- | ------------------------------------------------------ | +| Monitor | Z80 system debug monitor w/ Intel Hex loader | +| Forth | Brad Rodriguez’s ANSI compatible Forth language | +| Basic | Nascom 8K BASIC language | +| Tasty BASIC | Dimitri Theuling’s Tiny BASIC implementation | +| Play | A simple video game (requires ANSI terminal emulation) | + +In general, the command to exit these applications and restart the +system is `BYE`. The exceptions are the Monitor which uses `B` and Play +which uses `Q`. + +Space is available in the ROM image for the inclusion of other software. +Any inbuilt application can be set up to launch automatically at +startup. + +## Devices and Units + +In order to support a wide variety of hardware, RomWBW HBIOS uses a +modular approach to implementing device drivers and presenting devices +to the operating system. In general, all devices are classified as one +of the following: + + - Disk (Hard Disk, CF Card, SD Card, RAM/ROM Disk, etc.) + - Character (Serial Ports, Parallel Ports, etc.) + - Video (Video Display/Keyboard Interfaces) + - RTC/NVRAM (Real Time Clock, Non-volatile RAM) + +HBIOS uses the concept of unit numbers to present a complex set of +hardware devices to the operating system. As an example, a typical +system might have a ROM Disk, RAM Disk, Floppy Drives, and Disk Drives. +All of these are considered Disk devices and are presented to the +operating system as generic block devices. This means that the operating +system does not need to understand the difference between a floppy drive +and a ROM disk. + +As RomWBW boots, it assigns a unit number to each device. This unit +number is used by the operating system to refer to the device. It is, +therefore, important to know the unit number assigned to each device. +This information is displayed in the unit summary table at startup. Here +is an example: + + Unit Device Type Capacity/Mode + ---------- ---------- ---------------- -------------------- + Char 0 UART0: RS-232 38400,8,N,1 + Char 1 UART1: RS-232 38400,8,N,1 + Disk 0 MD1: RAM Disk 384KB,LBA + Disk 1 MD0: ROM Disk 384KB,LBA + Disk 2 FD0: Floppy Disk 3.5",DS/HD,CHS + Disk 3 FD1: Floppy Disk 3.5",DS/HD,CHS + Disk 4 IDE0: CompactFlash 3815MB,LBA + Disk 5 IDE1: Hard Disk -- + Disk 6 PRPSD0: SD Card 1886MB,LBA + Video 0 CVDU0: CRT Text,80x25 + +In this example, you can see that the system has a total of 7 Disk Units +numbered 0-6. There are also 2 Character Units and 1 Video Unit. The +table shows the unit numbers assigned to each of the devices. Notice how +the unit numbers are assigned sequentially regardless of the specific +device. + +There may or may not be media in the disk devices listed. For example, +the floppy disk devices (Disk Units 2 & 3) may not have a floppy in the +drive. Also note that Disk Unit 4 shows a disk capacity, but Disk Unit 5 +does not. This is because the PPIDE interface of the system supports up +to two drives, but there is only one actual drive attached. A unit +number is assigned to all possible devices regardless of whether they +have actual media installed at boot time. + +Note that Character Unit 0 is **always** the initial system console by +definition. + +If your system has an RTC/NVRAM device, it will not be listed in the +unit summary table. Since only a single RTC/NVRAM device can exist in +one system, unit numbers are not required nor used for this type of +device. + +## Drive Letter Assignment + +In legacy CP/M-type operating systems, drive letters were generally +mapped to disk drives in a completely fixed way. For example, drive A: +would **always** refer to the first floppy drive. Since RomWBW supports +a wide variety of hardware configurations, it implements a much more +flexible drive letter assignment mechanism so that any drive letter can +be assigned to any disk device. + +At boot, you will notice that RomWBW automatically assigns drive letters +to the available disk devices. These assignments are displayed during +the startup of the selected operating system. Additionally, you can +review the current drive assignments at any time using the `ASSIGN` +command. CP/M 3 and ZPM3 do not automatically display the assignments at +startup, but you can use `ASSIGN` do display them. + +The drive letter assignments **do not** change during an OS session +unless you use the `ASSIGN` command yourself to do it. Additionally, the +assignments at boot will stay the same on each boot as long as you do +not make changes to your hardware configuration. Note that the +assignments **are** dependent on the media currently inserted in hard +disk drives. So, notice that if you insert or remove an SD Card or CF +Card, the drive assignments will change. Since drive letter assignments +can change, you must be careful when doing destructive things like using +`CLRDIR` to make sure the drive letter you use is referring to the +desired media. + +When performing a ROM boot of an operating system, note that A: will be +your RAM disk and B: will be your ROM disk. When performing a disk boot, +the disk you are booting from will be assigned to A: and the rest of the +drive letters will be offset to accommodate this. This is done because +most legacy operating systems expect that A: will be the boot drive. + +## Slices + +The vintage operating systems included with RomWBW were produced at a +time when mass storage devices were quite small. CP/M 2.2 could only +handle filesystems up to 8MB. In order to achieve compatibility across +all of the operating systems supported by RomWBW, the hard disk +filesystem format used is 8MB. This ensures any filesystem will be +accessible to any of the operating systems. + +Since storage devices today are quite large, RomWBW implements a +mechanism called slicing to allow up to 256 8MB filesystems on a single +large storage device. This allows up to 2GB of usable space on a single +media. You can think of slices as a way to refer to any of the first 256 +8MB chunks of space on a single media. + +Of course, the problem is that CP/M-like operating systems have only 16 +drive letters (A:-P:) available. Under the covers, RomWBW allows you to +use any drive letter to refer to any slice of any media. The `ASSIGN` +command is allows you to view or change the drive letter mappings at any +time. At startup, the operating system will automatically allocate a +reasonable number of drive letters to the available storage devices. The +allocation will depend on the number of large storage devices available +at boot. For example, if you have only one hard disk type media, you +will see that 8 drive letters are assigned to the first 8 slices of that +media. If you have two large storage devices, you will see that each +device is allocated four drive letters. + +Referring to slices within a storage device is done by appending a : +** where ** is the device relative slice number from 0-255. For +example, if you have an IDE device, it will show up as IDE0: in the boot +messages meaning the first IDE device. To refer to the fourth slice of +IDE0, you would type “IDE0:3”. Here are some examples: + +| | | +| -------- | ---------------------------- | +| `IDE0:0` | First slice of disk in IDE0 | +| `IDE0:` | First slice of disk in IDE0 | +| `IDE0:3` | Fourth slice of disk in IDE0 | + +So, if I wanted to use drive letter L: to refer to the fourth slice of +IDE0, I could use the command `ASSIGN L:=IDE0:3`. There are a couple of +rules to be aware of when assigning drive letters. First, you may only +refer to a specific device/slice with one drive letter. Said another +way, you cannot have multiple drive letters referring to a single +device/slice at the same time. Second, there must always be a drive +assigned to A:. Any attempt to violate these rules will be blocked by +the `ASSIGN` command. + +Unlike MS-DOS partitions, slices are not allocated – there is no +partitioning for slices. Think of every hard disk type device as having +a pre-allocated set of 256 8MB slices at the start of the media. You can +refer to any of them simply by assigning a drive letter. RomWBW will not +check to see if there is anything else on the hard disk in the slice you +are referring to, nor will it verify that the hard disk media is large +enough to have a slice at the location you refer to. If you attempt to +write past the end of your media, you will get an I/O error displayed, +so you will know if you make a mistake. There is no tracking of your use +of slices – you will need to keep track of your use of slices yourself. + +Nothing automatically initializes a slice as a file system. You must do +that yourself using `CLRDIR`. Since `CLRDIR` works on drive letters, +make absolutely sure you know what media and slice are assigned to that +drive letter before using `CLRDIR`. + +While it is probably obvious, you cannot use slices on any media less +than 8MB in size. Specifically, you cannot slice RAM disks, ROM disks, +floppy disks, etc. + +# RomWBW Custom Applications + +The operation of the RomWBW hosted operating systems is enhanced through +several custom applications. These applications are functional on all of +the OS variants included with RomWBW. + +The following custom applications are found on the ROM disk and are, +therefore, globally available. + +| Application | Description | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | +| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. | +| SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. | +| FDU | Format and test floppy disks. Menu driven interface. | +| OSLDR | Load a new OS on the fly. For example, you can switch to Z-System when running CP/M. Use OSLDR with no parms for usage instructions. | +| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing\! | +| MODE | Reconfigures serial ports dynamically. | +| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. | +| FDISK80 | John Coffman’s Z80 hard disk partitioning tool. See documentation in Doc directory. | +| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | +| FLASH | Will Sowerbutts’ in-situ ROM programming utility. | +| CLRDIR | Initialize the directory area of a CP/M disk (Max Scane). | + +Some custom applications do not fit on the ROM disk. They are found on +the disk image files or the individual files can be found in the +Binary\\Apps directory of the distribution. + +| Application | Description | +| ----------- | ----------------------------------------------------------- | +| TUNE | Play .PT2, .PT3, .MYM audio files. | +| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | + +There is additional documentation on some of these applications at the +[RomWBW Applications +Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps). + # Using Disks +## ROM & RAM Disks + +RomWBW utilizes a portion of the ROM and RAM memory in your system to +implement small memory-based disks. + +The RAM disk provides a small CP/M filesystem that you can use for the +temporary storage of files. Unless your system has a battery backed +mechanism for persisting your RAM contents, the RAM disk contents will +be lost at each power-off. However, the RAM disk is an excellent choice +for storing temporary files because it is very fast. + +Like the RAM disk, the ROM disk also provides a small CP/M filesystem, +but it’s contents are static – they are part of the ROM. As such, you +cannot save files to the ROM disk. Any attempt to do this will result in +a disk I/O error. The contents of the ROM disk have been chosen to +provide a core set of tools and applications that are helpful for either +CP/M 2.2 or ZSDOS. Since ZSDOS is CP/M 2.2 compatible, this works fairly +well. However, you will find some files on the ROM disk that will work +with ZSDOS, but will not work on CP/M 2.2. For example, `LDDS`, which +loads the ZSDOS date/time stamper will only run on ZSDOS. + +## Disk Devices + While the RAM/ROM disks provide a functional system, they are not useful in the long term because you cannot save data across power cycles. They are also constrained by limited space. The systems supported by RomWBW all have the ability to use persistent -disk media. I am referring to all kinds of disk devices including floppy -drives, hard disks, CF Cards, and SD Cards. Some systems have disk -interfaces built-in, while others will require add-in cards. You will -need to refer to the documentation for your system for your specific -options. +disk media. A wide variety of disk devices are supported including +floppy drives, hard disks, CF Cards, and SD Cards. Some systems have +disk interfaces built-in, while others will require add-in cards. You +will need to refer to the documentation for your system for your +specific options. -In the RomWBW bootup messages, you will see hardware discovery messages. +In the RomWBW boot messages, you will see hardware discovery messages. If you have a disk drive interface, you should see messages listing device types like FD:, IDE:, PPIDE:, SD:. Additionally, you will see messages indicating the media that has been found on the interfaces. As @@ -311,11 +578,11 @@ an example of this: D:=IDE0:1 You will probably see more drive letters than this. The drive letter -assignment process is described in more detail later in this document. -Be aware that RomWBW will only assign drive letters to disk interfaces -that actually have media in them. If you do not see drive letters -assigned as expected, refer to the prior system boot messages to ensure -media has been detected in the interface. Actually, there is one +assignment process is described above in the Drive Letter Assignment +section. Be aware that RomWBW will only assign drive letters to disk +interfaces that actually have media in them. If you do not see drive +letters assigned as expected, refer to the prior system boot messages to +ensure media has been detected in the interface. Actually, there is one exception to this rule: floppy drives will be assigned a drive letter regardless of whether there is any media inserted at boot. @@ -324,17 +591,17 @@ interface like IDE0. This is important as it is telling you what each drive letter refers to. Also notice that mass storage disks (like IDE) will normally have multiple drive letters assigned. The extra drive letters refer to additional “slices” on the disk. The concept of slices -is also explained later in this document. +is described above in the Slices section. Once you are seeing drive letters referring to your disk media, you can follow the instructions below to begin using the disk media with the operating system. Your disk media **must** be initialized prior to being used. There are two ways to initialize your media for use. -You can initialize the media in-place using your RomWBW system. This -process is described below under Disk Initialization. In this scenario, -you will need to subsequently copy any files you want to use onto the -newly initialized disk (see Transferring Files). +One option is to initialize the media in-place using your RomWBW system. +This process is described below under Disk Initialization. In this +scenario, you will need to subsequently copy any files you want to use +onto the newly initialized disk (see Transferring Files). Alternatively, you can use your modern Windows, Linux, or Mac computer to copy a disk image onto the disk media. RomWBW comes with a variety of @@ -447,10 +714,10 @@ well as real spinning hard disks. In addition to the disk images above, there is also a special hard disk image called hd\_combo.img. This image contains all of the images above, -but in a single image with 6 slices (see below for information on disk -slices). At the boot loader prompt, you can choose a disk with the combo -image, then select the specific slice you want. This allows a single -disk to have all of the possible operating system options. +but in a single image with 6 slices. At the boot loader prompt, you can +choose a disk with the combo image, then select the specific slice you +want. This allows a single disk to have all of the possible operating +system options. This is the layout of the hd\_combo disk image: @@ -487,7 +754,7 @@ You will notice that you do not have an option to boot a drive letter here (like C:). This is because the operating system is not yet loaded. When you ran `SYSCOPY` previously, remember that C: was assigned to IDE0:0 which means device IDE0, slice 0. So, to boot the disk that you -just setup with `SYSCOPY`, you would choose option 1. You will then be +just setup with `SYSCOPY`, you would choose option 2. You will then be prompted for the slice on IDE0 that you want to boot. For now, just press enter to choose slice 0. Once you are familiar with slices, you can `SYSCOPY` and boot alternate slices. Here is what you would see when @@ -522,181 +789,6 @@ no system tracks on them. Attempting to boot to one of them, will fail with a “Disk not bootable\!” error message and return to the loader prompt. -# General Usage - -Each of the operating systems and ROM applications included with RomWBW -are sophisticated tools in their own right. It is not reasonable to -document their usage here. However, you will find complete manuals in -PDF format in the Doc directory of the distribution. The intention of -this section is to document the RomWBW specific enhancements to these -operating systems. - -## ROM Disk - -In addition to the ROM-based operating systems and applications, the ROM -also contains a ROM disk with a small CP/M filesystem. The contents of -the ROM disk have been chosen to provide a core set of tools and -applications that are helpful for either CP/M 2.2 or ZSDOS. Since ZSDOS -is CP/M 2.2 compatible, this works fairly well. However, you will find -some files on the ROM disk that will work with ZSDOS, but will not work -on CP/M 2.2. For example, `LDDS`, which loads the ZSDOS date/time -stamper will only run on ZSDOS. - -## Drive Letter Assignment - -In legacy CP/M-type operating systems, drive letters were generally -mapped to disk drives in a completely fixed way. For example, drive A: -would **always** refer to the first floppy drive. Since RomWBW supports -a wide variety of hardware configurations, it implements a much more -flexible drive letter assignment mechanism so that any drive letter can -be assigned to any disk device. - -At boot, you will notice that RomWBW automatically assigns drive letters -to the available disk devices. These assignments are displayed during -the startup of the selected operating system. Additionally, you can -review the current drive assignments at any time using the `ASSIGN` -command. CP/M 3 and ZPM3 do not automatically display the assignments at -startup, but you can use `ASSIGN` do display them. - -The drive letter assignments **do not** change during an OS session -unless you use the `ASSIGN` command yourself to do it. Additionally, the -assignments at boot will stay the same on each boot as long as you do -not make changes to your hardware configuration. Note that the -assignments **are** dependent on the media currently inserted in hard -disk drives. So, notice that if you insert or remove an SD Card or CF -Card, the drive assignments will change. Since drive letter assignments -can change, you must be careful when doing destructive things like using -`CLRDIR` to make sure the drive letter you use is referring to the -desired media. - -When performing a ROM boot of an operating system, note that A: will be -your RAM disk and B: will be your ROM disk. When performing a disk boot, -the disk you are booting from will be assigned to A: and the rest of the -drive letters will be offset to accommodate this. This is done because -most legacy operating systems expect that A: will be the boot drive. - -## Slices - -The vintage operating systems included with RomWBW were produced at a -time when mass storage devices were quite small. CP/M 2.2 could only -handle filesystems up to 8MB. In order to achieve compatibility across -all of the operating systems supported by RomWBW, the hard disk -filesystem format used is 8MB. This ensures any filesystem will be -accessible to any of the operating systems. - -Since storage devices today are quite large, RomWBW implements a -mechanism called slicing to allow up to 256 8MB filesystems on a single -large storage device. This allows up to 2GB of useable space on a single -media. You can think of slices as a way to refer to any of the first 256 -8MB chunks of space on a single media. - -Of course, the problem is that CP/M-like operating systems have only 16 -drive letters (A:-P:) available. Under the covers, RomWBW allows you to -use any drive letter to refer to any slice of any media. The `ASSIGN` -command is provided to allow you to view or change the drive letter -mappings at any time. At startup, the operating system will -automatically allocate a reasonable number of drive letters to the -available storage devices. The allocation will depend on the number of -large storage devices available at boot. For example, if you have only -one hard disk type media, you will see that 8 drive letters are assigned -to the first 8 slices of that media. If you have two large storage -devices, you will see that each device is allocated four drive letters. - -Referring to slices within a storage device is done by appending a :n -where n is the device relative slice number from 0-255. For example, if -you have an IDE device, it will show up as IDE0: in the boot messages -meaning the first IDE device. To refer to the fourth slice of IDE0, you -would type “IDE0:3”. So, if I wanted to use drive letter L: to refer to -the fourth slice of IDE0, I could use the command `ASSIGN L:=IDE0:3`. - -There are a couple of rules to be aware of when assigning drive letters. -First, you may only refer to a specific device/slice with one drive -letter. Said another way, you cannot have multiple drive letters -referring to a single device/slice at the same time. Second, there must -always be a drive assigned to A:. Any attempt to violate these rules -will be blocked by the `ASSIGN` command. - -Unlike MS-DOS partitions, slices are not allocated – there is no -partitioning of slices. Think of every hard disk type device as having a -pre-allocated set of 256 8MB slices at the start of the media. You can -refer to any of them simply by assigning a drive letter. RomWBW will not -check to see if there is anything else on the hard disk in the slice you -are referring to, nor will it verify that the hard disk media is large -enough to have a slice at the location you refer to. If you attempt to -write past the end of your media, you will get an I/O error displayed, -so you will know if you make a mistake. There is no tracking of your use -of slices – you will need to keep track of your use of slices yourself. - -Nothing automatically initializes a slice as a file system. You must do -that yourself using `CLRDIR`. Since `CLRDIR` works on drive letters, -make absolutely sure you know what media and slice are assigned to that -drive letter before using `CLRDIR`. - -While it is probably obvious, you cannot use slices on any media less -than 8MB in size. Specifically, you cannot slice RAM disks, ROM disks, -floppy disks, etc. - -# Inbuilt ROM Applications - -In addition to CP/M 2.2 and Z-System, there are several ROM applications -that can be launched directly from ROM. These applications are not -hosted by an operating system and so they are unable to save files to -disk devices. - -The following ROM applications are available at the boot loader prompt: - -| Application | | -| ----------- | ------------------------------------------------------ | -| Monitor | Z80 system debug monitor w/ Intel Hex loader | -| Forth | Brad Rodriguez’s ANSI compatible Forth language | -| Basic | Nascom 8K BASIC language | -| Tasty BASIC | Dimitri Theuling’s Tiny BASIC implementation | -| Play | A simple video game (requires ANSI terminal emulation) | - -In general, the command to exit these applications and restart the -system is `BYE`. The exceptions are the Monitor which uses `B` and Play -which uses `Q`. - -Space is available in the ROM image for the inclusion of other software. -Any inbuilt application can be set up to launch automatically at -startup. - -# RomWBW Custom Applications - -The operation of the RomWBW hosted operating systems is enhanced through -several custom applications. These applications are functional on all of -the OS variants included with RomWBW. - -The following custom applications are found on the ROM disk and are, -therefore, globally available. - -| Application | Description | -| ----------- | ------------------------------------------------------------------------------------------------------------------------------------ | -| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. | -| SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. | -| FDU | Format and test floppy disks. Menu driven interface. | -| OSLDR | Load a new OS on the fly. For example, you can switch to Z-System when running CP/M. Use OSLDR with no parms for usage instructions. | -| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing\! | -| MODE | Reconfigures serial ports dynamically. | -| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. | -| FDISK80 | John Coffman’s Z80 hard disk partitioning tool. See documentation in Doc directory. | -| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | -| FLASH | Will Sowerbutts’ in-situ ROM programming utility. | -| CLRDIR | Initialize the directory area of a CP/M disk (Max Scane). | - -Some custom applications do not fit on the ROM disk. They are found on -the disk image files or the individual files can be found in the -Binary\\Apps directory of the distribution. - -| Application | Description | -| ----------- | ----------------------------------------------------------- | -| TUNE | Play .PT2, .PT3, .MYM audio files. | -| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | - -There is additional documentation on some of these applications at the -[RomWBW Applications -Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps). - # Operating Systems One of the primary goals of RomWBW is to expose a set of generic @@ -833,10 +925,13 @@ computer is: 1. Use `cpmtools` on your modern computer to create a RomWBW CP/M filesystem image. + 2. Insert your RomWBW media (CF Card, SD Card, or floppy disk) in your modern computer. + 3. Use a disk imaging tool to copy the RomWBW filesystem image onto the media. + 4. Move the media back to the RomWBW computer. This process is a little complicated, but it has the benefit of allowing @@ -863,7 +958,7 @@ computer to make an SD Card or CF Card with a standard FAT32 filesystem on it, then place that media in your RomWBW computer and access the files. -When formatting the media on your modern computer, but sure to pick the +When formatting the media on your modern computer, be sure to pick the FAT filesystem. NTFS and other filesystems will not work. On your RomWBW computer you can use the `FAT` application to access the @@ -1014,7 +1109,8 @@ applications are no longer provided. list of general code enhancements. - Phillip Stevens contributed support for FreeRTOS. - Curt Mayer contributed the Linux / MacOS build process. - - UNA BIOS is a product of John Coffman. + - UNA BIOS and FDISK80 is a product of John Coffman. + - FLASH4 is a product of Will Sowerbutts. Contributions of all kinds to RomWBW are very welcome. diff --git a/ReadMe.txt b/ReadMe.txt index 160add5e..d0f9a7d7 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -41,8 +41,8 @@ RomWBW is distributed as both source code and pre-built ROM and disk images. Some of the provided software can be launched directly from the ROM firmware itself: -- System monitor -- Operating systems (CP/M 2.2, ZSDOS) +- System Monitor +- Operating Systems (CP/M 2.2, ZSDOS) - ROM BASIC (Nascom BASIC and Tasty BASIC) - ROM Forth @@ -51,8 +51,8 @@ operating system drive letters to any available disk media. Additionally, mass media devices (IDE Disk, CF Card, SD Card) support the use of multiple slices (up to 256 per device). Each slice contains a complete CP/M filesystem and can be mapped independently to any drive -letter. This overcomes the inherent size limitations in legacy OSes -providing up to 2GB of accessible storage on a single device. +letter. This overcomes the inherent size limitations in legacy OSes and +allows up to 2GB of accessible storage on a single device. The pre-built ROM firmware images are generally optimal for most users. However, it is also very easy to modify and build custom ROM images that @@ -103,7 +103,7 @@ Looking at the extracted distribution archive, You will see that the distribution is broken up into a few sub-directories. The Binary directory contains the pre-built ROM and disk images. The ROM image files all end in “.rom”. Based on the table below, carefully pick the -appropriate ROM image: +appropriate ROM image for your hardware. -------------------------------------------------------------------------- Platform ROM Image File Baud Description @@ -169,9 +169,9 @@ choose a ROM-based operating system, system monitor, application, or boot from a disk device. Initially, you should try the ROM boot options. By selecting either CP/M -2.2 or Z-System, the operating system will be loaded from ROM and you -will see the a B> disk prompt. In this scenario, A: will be an empty RAM -disk and B: will refer to your ROM disk containing some typical +2.2 or Z-System, the selected operating system will be loaded from ROM +and you will see the a B> disk prompt. In this scenario, A: will be an +empty RAM disk and B: will refer to your ROM disk containing some common applications. This provides a simple environment for learning to use your system. Be aware that files saved to the RAM disk (A:) will disappear at the next power on (RAM is generally not persistent). Also @@ -182,33 +182,34 @@ Upgrading Upgrading to a newer release of RomWBW is essentially just a matter of updating the ROM chip in your system. If you have spare ROM chips for -your system and a ROM programmer, it is always safest to keep your +your system and a ROM programmer, it is always safest to retain your existing, working ROM chip and program a new one with the new firmware. If the new one fails to boot, you can easily return to the known working ROM. Prior to attempting to reprogram your actual ROM chip, you may wish to -“try” the upgrade. With RomWBW, you can upload a new system image and -load it from the command line. For each ROM image file (.rom) in the -Binary directory, you will also find a corresponding application file -(.com). For example, for SBC_std.rom, there is also an SBC_std.com file. -You can upload the .com file to your system using XModem, then simply -run the .com file. You will see your system go through the normal -startup process just like it was started from ROM. However, your ROM has -not been updated and the next time you boot your system, it will revert -to the system image contained in ROM. You may find that you are unable -to load the .com file because it is too large to fit in available -application RAM (TPA). Unfortunately, in this case, you will not be able -to use the .com file mechanism to start your system. +“try” the upgrade. With RomWBW, you can upload a new system image +executable and load it from the command line. For each ROM image file +(.rom) in the Binary directory, you will also find a corresponding +application file (.com). For example, for SBC_std.rom, there is also an +SBC_std.com file. You can upload the .com file to your system using +XModem, then simply run the .com file. You will see your system go +through the normal startup process just like it was started from ROM. +However, your ROM has not been updated and the next time you boot your +system, it will revert to the system image contained in ROM. You may +find that you are unable to load the .com file because it is too large +to fit in available application RAM (TPA). Unfortunately, in this case, +you will not be able to use the .com file mechanism to start your +system. If you do not have easy access to a ROM programmer, it is usually possible to reprogram your system ROM using the FLASH utility from Will -Sowerbutts. This application called FLASH.COM can be found on the ROM +Sowerbutts. This application, called FLASH.COM, can be found on the ROM drive of any running system. In this case, you would need to transfer the new ROM image (.rom) over to your system using XModem (or one of the other mechanisms described in the Transferring Files section below). The -ROM image will be too large to fit on your RAM drive, so you will need -to transfer it to a larger storage drive. Once the ROM image is on your +ROM image is too large to fit on your RAM drive, so you will need to +transfer it to a larger storage drive. Once the ROM image is on your system, you can use the FLASH application to update your ROM. The following is a typical example of transferring ROM image using XModem and flashing the chip in-situ. @@ -255,11 +256,10 @@ If you wish to update existing disk media in your system, you need to perform the following steps. If the disk is bootable, you need to update the system tracks of the -disk. This is done using a SYSCOPY command such as -SYSCOPY C:=B:ZSYS.SYS. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M -2.2 disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. -CPMLDR.SYS is not provided on the ROM disk, so you would need to upload -it from the distribution. +disk.This is done using a SYSCOPY command such as SYSCOPY C:=B:ZSYS.SYS. +For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M 2.2 disk, use CPM.SYS. +For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. CPMLDR.SYS is not provided on +the ROM disk, so you would need to upload it from the distribution. Finally, if you have copies of any of the RomWBW custom applications on your hard disk, you need to update them with the latest copies. The @@ -267,33 +267,316 @@ following applications are found on your ROM disk. Use COPY to copy them over any older versions of the app on your disk: - ASSIGN.COM -- FORMAT.COM -- OSLDR.COM - SYSCOPY.COM -- TALK.COM +- MODE.COM - FDU.COM (was FDTST.COM) +- OSLDR.COM +- FORMAT.COM - XM.COM -- MODE.COM +- FLASH.COM +- FDISK80.COM +- TALK.COM - RTC.COM - TIMER.COM - INTTEST.COM For example: B>COPY ASSIGN.COM C: +Some RomWBW custom applications are too large to fit on the ROM disk. If +you are using any of these you will need to transfer them to your system +and then update all copies. These applications are found in the +Binary\Apps directory of the distribution and in all of the disk images. + +- FAT.COM +- TUNE.COM + +General Usage + +Each of the operating systems and ROM applications included with RomWBW +are sophisticated tools in their own right. It is not reasonable to +document their usage here. However, you will find complete manuals in +PDF format in the Doc directory of the distribution. The intention of +this section is to document the RomWBW specific enhancements to these +operating systems. + +Inbuilt ROM Applications + +In addition to CP/M 2.2 and Z-System, there are several ROM applications +that can be launched directly from ROM. These applications are not +hosted by an operating system and so they are unable to save files to +disk devices. + +The following ROM applications are available at the boot loader prompt: + + Application + ------------- -------------------------------------------------------- + Monitor Z80 system debug monitor w/ Intel Hex loader + Forth Brad Rodriguez’s ANSI compatible Forth language + Basic Nascom 8K BASIC language + Tasty BASIC Dimitri Theuling’s Tiny BASIC implementation + Play A simple video game (requires ANSI terminal emulation) + +In general, the command to exit these applications and restart the +system is BYE. The exceptions are the Monitor which uses B and Play +which uses Q. + +Space is available in the ROM image for the inclusion of other software. +Any inbuilt application can be set up to launch automatically at +startup. + +Devices and Units + +In order to support a wide variety of hardware, RomWBW HBIOS uses a +modular approach to implementing device drivers and presenting devices +to the operating system. In general, all devices are classified as one +of the following: + +- Disk (Hard Disk, CF Card, SD Card, RAM/ROM Disk, etc.) +- Character (Serial Ports, Parallel Ports, etc.) +- Video (Video Display/Keyboard Interfaces) +- RTC/NVRAM (Real Time Clock, Non-volatile RAM) + +HBIOS uses the concept of unit numbers to present a complex set of +hardware devices to the operating system. As an example, a typical +system might have a ROM Disk, RAM Disk, Floppy Drives, and Disk Drives. +All of these are considered Disk devices and are presented to the +operating system as generic block devices. This means that the operating +system does not need to understand the difference between a floppy drive +and a ROM disk. + +As RomWBW boots, it assigns a unit number to each device. This unit +number is used by the operating system to refer to the device. It is, +therefore, important to know the unit number assigned to each device. +This information is displayed in the unit summary table at startup. Here +is an example: + + Unit Device Type Capacity/Mode + ---------- ---------- ---------------- -------------------- + Char 0 UART0: RS-232 38400,8,N,1 + Char 1 UART1: RS-232 38400,8,N,1 + Disk 0 MD1: RAM Disk 384KB,LBA + Disk 1 MD0: ROM Disk 384KB,LBA + Disk 2 FD0: Floppy Disk 3.5",DS/HD,CHS + Disk 3 FD1: Floppy Disk 3.5",DS/HD,CHS + Disk 4 IDE0: CompactFlash 3815MB,LBA + Disk 5 IDE1: Hard Disk -- + Disk 6 PRPSD0: SD Card 1886MB,LBA + Video 0 CVDU0: CRT Text,80x25 + +In this example, you can see that the system has a total of 7 Disk Units +numbered 0-6. There are also 2 Character Units and 1 Video Unit. The +table shows the unit numbers assigned to each of the devices. Notice how +the unit numbers are assigned sequentially regardless of the specific +device. + +There may or may not be media in the disk devices listed. For example, +the floppy disk devices (Disk Units 2 & 3) may not have a floppy in the +drive. Also note that Disk Unit 4 shows a disk capacity, but Disk Unit 5 +does not. This is because the PPIDE interface of the system supports up +to two drives, but there is only one actual drive attached. A unit +number is assigned to all possible devices regardless of whether they +have actual media installed at boot time. + +Note that Character Unit 0 is always the initial system console by +definition. + +If your system has an RTC/NVRAM device, it will not be listed in the +unit summary table. Since only a single RTC/NVRAM device can exist in +one system, unit numbers are not required nor used for this type of +device. + +Drive Letter Assignment + +In legacy CP/M-type operating systems, drive letters were generally +mapped to disk drives in a completely fixed way. For example, drive A: +would always refer to the first floppy drive. Since RomWBW supports a +wide variety of hardware configurations, it implements a much more +flexible drive letter assignment mechanism so that any drive letter can +be assigned to any disk device. + +At boot, you will notice that RomWBW automatically assigns drive letters +to the available disk devices. These assignments are displayed during +the startup of the selected operating system. Additionally, you can +review the current drive assignments at any time using the ASSIGN +command. CP/M 3 and ZPM3 do not automatically display the assignments at +startup, but you can use ASSIGN do display them. + +The drive letter assignments do not change during an OS session unless +you use the ASSIGN command yourself to do it. Additionally, the +assignments at boot will stay the same on each boot as long as you do +not make changes to your hardware configuration. Note that the +assignments are dependent on the media currently inserted in hard disk +drives. So, notice that if you insert or remove an SD Card or CF Card, +the drive assignments will change. Since drive letter assignments can +change, you must be careful when doing destructive things like using +CLRDIR to make sure the drive letter you use is referring to the desired +media. + +When performing a ROM boot of an operating system, note that A: will be +your RAM disk and B: will be your ROM disk. When performing a disk boot, +the disk you are booting from will be assigned to A: and the rest of the +drive letters will be offset to accommodate this. This is done because +most legacy operating systems expect that A: will be the boot drive. + +Slices + +The vintage operating systems included with RomWBW were produced at a +time when mass storage devices were quite small. CP/M 2.2 could only +handle filesystems up to 8MB. In order to achieve compatibility across +all of the operating systems supported by RomWBW, the hard disk +filesystem format used is 8MB. This ensures any filesystem will be +accessible to any of the operating systems. + +Since storage devices today are quite large, RomWBW implements a +mechanism called slicing to allow up to 256 8MB filesystems on a single +large storage device. This allows up to 2GB of usable space on a single +media. You can think of slices as a way to refer to any of the first 256 +8MB chunks of space on a single media. + +Of course, the problem is that CP/M-like operating systems have only 16 +drive letters (A:-P:) available. Under the covers, RomWBW allows you to +use any drive letter to refer to any slice of any media. The ASSIGN +command is allows you to view or change the drive letter mappings at any +time. At startup, the operating system will automatically allocate a +reasonable number of drive letters to the available storage devices. The +allocation will depend on the number of large storage devices available +at boot. For example, if you have only one hard disk type media, you +will see that 8 drive letters are assigned to the first 8 slices of that +media. If you have two large storage devices, you will see that each +device is allocated four drive letters. + +Referring to slices within a storage device is done by appending a : +where is the device relative slice number from 0-255. For example, if +you have an IDE device, it will show up as IDE0: in the boot messages +meaning the first IDE device. To refer to the fourth slice of IDE0, you +would type “IDE0:3”. Here are some examples: + + -------- ------------------------------ + IDE0:0 First slice of disk in IDE0 + IDE0: First slice of disk in IDE0 + IDE0:3 Fourth slice of disk in IDE0 + -------- ------------------------------ + +So, if I wanted to use drive letter L: to refer to the fourth slice of +IDE0, I could use the command ASSIGN L:=IDE0:3. There are a couple of +rules to be aware of when assigning drive letters. First, you may only +refer to a specific device/slice with one drive letter. Said another +way, you cannot have multiple drive letters referring to a single +device/slice at the same time. Second, there must always be a drive +assigned to A:. Any attempt to violate these rules will be blocked by +the ASSIGN command. + +Unlike MS-DOS partitions, slices are not allocated – there is no +partitioning for slices. Think of every hard disk type device as having +a pre-allocated set of 256 8MB slices at the start of the media. You can +refer to any of them simply by assigning a drive letter. RomWBW will not +check to see if there is anything else on the hard disk in the slice you +are referring to, nor will it verify that the hard disk media is large +enough to have a slice at the location you refer to. If you attempt to +write past the end of your media, you will get an I/O error displayed, +so you will know if you make a mistake. There is no tracking of your use +of slices – you will need to keep track of your use of slices yourself. + +Nothing automatically initializes a slice as a file system. You must do +that yourself using CLRDIR. Since CLRDIR works on drive letters, make +absolutely sure you know what media and slice are assigned to that drive +letter before using CLRDIR. + +While it is probably obvious, you cannot use slices on any media less +than 8MB in size. Specifically, you cannot slice RAM disks, ROM disks, +floppy disks, etc. + +RomWBW Custom Applications + +The operation of the RomWBW hosted operating systems is enhanced through +several custom applications. These applications are functional on all of +the OS variants included with RomWBW. + +The following custom applications are found on the ROM disk and are, +therefore, globally available. + + -------------------------------------------------------------------------- + Application Description + ------------- ------------------------------------------------------------ + ASSIGN Add, change, and delete drive letter assignments. Use ASSIGN + /? for usage instructions. + + SYSCOPY Copy system image to a device to make it bootable. Use + SYSCOPY with no parms for usage instructions. + + FDU Format and test floppy disks. Menu driven interface. + + OSLDR Load a new OS on the fly. For example, you can switch to + Z-System when running CP/M. Use OSLDR with no parms for + usage instructions. + + FORMAT Will someday be a command line tool to format floppy disks. + Currently does nothing! + + MODE Reconfigures serial ports dynamically. + + XM XModem file transfer program adapted to hardware. + Automatically uses primary serial port on system. + + FDISK80 John Coffman’s Z80 hard disk partitioning tool. See + documentation in Doc directory. + + FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs). + + FLASH Will Sowerbutts’ in-situ ROM programming utility. + + CLRDIR Initialize the directory area of a CP/M disk (Max Scane). + -------------------------------------------------------------------------- + +Some custom applications do not fit on the ROM disk. They are found on +the disk image files or the individual files can be found in the +Binary\Apps directory of the distribution. + + Application Description + ------------- ------------------------------------------------------------- + TUNE Play .PT2, .PT3, .MYM audio files. + FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs). + +There is additional documentation on some of these applications at the +RomWBW Applications Page. + Using Disks +ROM & RAM Disks + +RomWBW utilizes a portion of the ROM and RAM memory in your system to +implement small memory-based disks. + +The RAM disk provides a small CP/M filesystem that you can use for the +temporary storage of files. Unless your system has a battery backed +mechanism for persisting your RAM contents, the RAM disk contents will +be lost at each power-off. However, the RAM disk is an excellent choice +for storing temporary files because it is very fast. + +Like the RAM disk, the ROM disk also provides a small CP/M filesystem, +but it’s contents are static – they are part of the ROM. As such, you +cannot save files to the ROM disk. Any attempt to do this will result in +a disk I/O error. The contents of the ROM disk have been chosen to +provide a core set of tools and applications that are helpful for either +CP/M 2.2 or ZSDOS. Since ZSDOS is CP/M 2.2 compatible, this works fairly +well. However, you will find some files on the ROM disk that will work +with ZSDOS, but will not work on CP/M 2.2. For example, LDDS, which +loads the ZSDOS date/time stamper will only run on ZSDOS. + +Disk Devices + While the RAM/ROM disks provide a functional system, they are not useful in the long term because you cannot save data across power cycles. They are also constrained by limited space. The systems supported by RomWBW all have the ability to use persistent -disk media. I am referring to all kinds of disk devices including floppy -drives, hard disks, CF Cards, and SD Cards. Some systems have disk -interfaces built-in, while others will require add-in cards. You will -need to refer to the documentation for your system for your specific -options. +disk media. A wide variety of disk devices are supported including +floppy drives, hard disks, CF Cards, and SD Cards. Some systems have +disk interfaces built-in, while others will require add-in cards. You +will need to refer to the documentation for your system for your +specific options. -In the RomWBW bootup messages, you will see hardware discovery messages. +In the RomWBW boot messages, you will see hardware discovery messages. If you have a disk drive interface, you should see messages listing device types like FD:, IDE:, PPIDE:, SD:. Additionally, you will see messages indicating the media that has been found on the interfaces. As @@ -324,11 +607,11 @@ an example of this: D:=IDE0:1 You will probably see more drive letters than this. The drive letter -assignment process is described in more detail later in this document. -Be aware that RomWBW will only assign drive letters to disk interfaces -that actually have media in them. If you do not see drive letters -assigned as expected, refer to the prior system boot messages to ensure -media has been detected in the interface. Actually, there is one +assignment process is described above in the Drive Letter Assignment +section. Be aware that RomWBW will only assign drive letters to disk +interfaces that actually have media in them. If you do not see drive +letters assigned as expected, refer to the prior system boot messages to +ensure media has been detected in the interface. Actually, there is one exception to this rule: floppy drives will be assigned a drive letter regardless of whether there is any media inserted at boot. @@ -337,17 +620,17 @@ interface like IDE0. This is important as it is telling you what each drive letter refers to. Also notice that mass storage disks (like IDE) will normally have multiple drive letters assigned. The extra drive letters refer to additional “slices” on the disk. The concept of slices -is also explained later in this document. +is described above in the Slices section. Once you are seeing drive letters referring to your disk media, you can follow the instructions below to begin using the disk media with the operating system. Your disk media must be initialized prior to being used. There are two ways to initialize your media for use. -You can initialize the media in-place using your RomWBW system. This -process is described below under Disk Initialization. In this scenario, -you will need to subsequently copy any files you want to use onto the -newly initialized disk (see Transferring Files). +One option is to initialize the media in-place using your RomWBW system. +This process is described below under Disk Initialization. In this +scenario, you will need to subsequently copy any files you want to use +onto the newly initialized disk (see Transferring Files). Alternatively, you can use your modern Windows, Linux, or Mac computer to copy a disk image onto the disk media. RomWBW comes with a variety of @@ -459,10 +742,10 @@ well as real spinning hard disks. In addition to the disk images above, there is also a special hard disk image called hd_combo.img. This image contains all of the images above, -but in a single image with 6 slices (see below for information on disk -slices). At the boot loader prompt, you can choose a disk with the combo -image, then select the specific slice you want. This allows a single -disk to have all of the possible operating system options. +but in a single image with 6 slices. At the boot loader prompt, you can +choose a disk with the combo image, then select the specific slice you +want. This allows a single disk to have all of the possible operating +system options. This is the layout of the hd_combo disk image: @@ -499,7 +782,7 @@ You will notice that you do not have an option to boot a drive letter here (like C:). This is because the operating system is not yet loaded. When you ran SYSCOPY previously, remember that C: was assigned to IDE0:0 which means device IDE0, slice 0. So, to boot the disk that you just -setup with SYSCOPY, you would choose option 1. You will then be prompted +setup with SYSCOPY, you would choose option 2. You will then be prompted for the slice on IDE0 that you want to boot. For now, just press enter to choose slice 0. Once you are familiar with slices, you can SYSCOPY and boot alternate slices. Here is what you would see when booting to a @@ -534,199 +817,6 @@ no system tracks on them. Attempting to boot to one of them, will fail with a “Disk not bootable!” error message and return to the loader prompt. -General Usage - -Each of the operating systems and ROM applications included with RomWBW -are sophisticated tools in their own right. It is not reasonable to -document their usage here. However, you will find complete manuals in -PDF format in the Doc directory of the distribution. The intention of -this section is to document the RomWBW specific enhancements to these -operating systems. - -ROM Disk - -In addition to the ROM-based operating systems and applications, the ROM -also contains a ROM disk with a small CP/M filesystem. The contents of -the ROM disk have been chosen to provide a core set of tools and -applications that are helpful for either CP/M 2.2 or ZSDOS. Since ZSDOS -is CP/M 2.2 compatible, this works fairly well. However, you will find -some files on the ROM disk that will work with ZSDOS, but will not work -on CP/M 2.2. For example, LDDS, which loads the ZSDOS date/time stamper -will only run on ZSDOS. - -Drive Letter Assignment - -In legacy CP/M-type operating systems, drive letters were generally -mapped to disk drives in a completely fixed way. For example, drive A: -would always refer to the first floppy drive. Since RomWBW supports a -wide variety of hardware configurations, it implements a much more -flexible drive letter assignment mechanism so that any drive letter can -be assigned to any disk device. - -At boot, you will notice that RomWBW automatically assigns drive letters -to the available disk devices. These assignments are displayed during -the startup of the selected operating system. Additionally, you can -review the current drive assignments at any time using the ASSIGN -command. CP/M 3 and ZPM3 do not automatically display the assignments at -startup, but you can use ASSIGN do display them. - -The drive letter assignments do not change during an OS session unless -you use the ASSIGN command yourself to do it. Additionally, the -assignments at boot will stay the same on each boot as long as you do -not make changes to your hardware configuration. Note that the -assignments are dependent on the media currently inserted in hard disk -drives. So, notice that if you insert or remove an SD Card or CF Card, -the drive assignments will change. Since drive letter assignments can -change, you must be careful when doing destructive things like using -CLRDIR to make sure the drive letter you use is referring to the desired -media. - -When performing a ROM boot of an operating system, note that A: will be -your RAM disk and B: will be your ROM disk. When performing a disk boot, -the disk you are booting from will be assigned to A: and the rest of the -drive letters will be offset to accommodate this. This is done because -most legacy operating systems expect that A: will be the boot drive. - -Slices - -The vintage operating systems included with RomWBW were produced at a -time when mass storage devices were quite small. CP/M 2.2 could only -handle filesystems up to 8MB. In order to achieve compatibility across -all of the operating systems supported by RomWBW, the hard disk -filesystem format used is 8MB. This ensures any filesystem will be -accessible to any of the operating systems. - -Since storage devices today are quite large, RomWBW implements a -mechanism called slicing to allow up to 256 8MB filesystems on a single -large storage device. This allows up to 2GB of useable space on a single -media. You can think of slices as a way to refer to any of the first 256 -8MB chunks of space on a single media. - -Of course, the problem is that CP/M-like operating systems have only 16 -drive letters (A:-P:) available. Under the covers, RomWBW allows you to -use any drive letter to refer to any slice of any media. The ASSIGN -command is provided to allow you to view or change the drive letter -mappings at any time. At startup, the operating system will -automatically allocate a reasonable number of drive letters to the -available storage devices. The allocation will depend on the number of -large storage devices available at boot. For example, if you have only -one hard disk type media, you will see that 8 drive letters are assigned -to the first 8 slices of that media. If you have two large storage -devices, you will see that each device is allocated four drive letters. - -Referring to slices within a storage device is done by appending a :n -where n is the device relative slice number from 0-255. For example, if -you have an IDE device, it will show up as IDE0: in the boot messages -meaning the first IDE device. To refer to the fourth slice of IDE0, you -would type “IDE0:3”. So, if I wanted to use drive letter L: to refer to -the fourth slice of IDE0, I could use the command ASSIGN L:=IDE0:3. - -There are a couple of rules to be aware of when assigning drive letters. -First, you may only refer to a specific device/slice with one drive -letter. Said another way, you cannot have multiple drive letters -referring to a single device/slice at the same time. Second, there must -always be a drive assigned to A:. Any attempt to violate these rules -will be blocked by the ASSIGN command. - -Unlike MS-DOS partitions, slices are not allocated – there is no -partitioning of slices. Think of every hard disk type device as having a -pre-allocated set of 256 8MB slices at the start of the media. You can -refer to any of them simply by assigning a drive letter. RomWBW will not -check to see if there is anything else on the hard disk in the slice you -are referring to, nor will it verify that the hard disk media is large -enough to have a slice at the location you refer to. If you attempt to -write past the end of your media, you will get an I/O error displayed, -so you will know if you make a mistake. There is no tracking of your use -of slices – you will need to keep track of your use of slices yourself. - -Nothing automatically initializes a slice as a file system. You must do -that yourself using CLRDIR. Since CLRDIR works on drive letters, make -absolutely sure you know what media and slice are assigned to that drive -letter before using CLRDIR. - -While it is probably obvious, you cannot use slices on any media less -than 8MB in size. Specifically, you cannot slice RAM disks, ROM disks, -floppy disks, etc. - -Inbuilt ROM Applications - -In addition to CP/M 2.2 and Z-System, there are several ROM applications -that can be launched directly from ROM. These applications are not -hosted by an operating system and so they are unable to save files to -disk devices. - -The following ROM applications are available at the boot loader prompt: - - Application - ------------- -------------------------------------------------------- - Monitor Z80 system debug monitor w/ Intel Hex loader - Forth Brad Rodriguez’s ANSI compatible Forth language - Basic Nascom 8K BASIC language - Tasty BASIC Dimitri Theuling’s Tiny BASIC implementation - Play A simple video game (requires ANSI terminal emulation) - -In general, the command to exit these applications and restart the -system is BYE. The exceptions are the Monitor which uses B and Play -which uses Q. - -Space is available in the ROM image for the inclusion of other software. -Any inbuilt application can be set up to launch automatically at -startup. - -RomWBW Custom Applications - -The operation of the RomWBW hosted operating systems is enhanced through -several custom applications. These applications are functional on all of -the OS variants included with RomWBW. - -The following custom applications are found on the ROM disk and are, -therefore, globally available. - - -------------------------------------------------------------------------- - Application Description - ------------- ------------------------------------------------------------ - ASSIGN Add, change, and delete drive letter assignments. Use ASSIGN - /? for usage instructions. - - SYSCOPY Copy system image to a device to make it bootable. Use - SYSCOPY with no parms for usage instructions. - - FDU Format and test floppy disks. Menu driven interface. - - OSLDR Load a new OS on the fly. For example, you can switch to - Z-System when running CP/M. Use OSLDR with no parms for - usage instructions. - - FORMAT Will someday be a command line tool to format floppy disks. - Currently does nothing! - - MODE Reconfigures serial ports dynamically. - - XM XModem file transfer program adapted to hardware. - Automatically uses primary serial port on system. - - FDISK80 John Coffman’s Z80 hard disk partitioning tool. See - documentation in Doc directory. - - FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs). - - FLASH Will Sowerbutts’ in-situ ROM programming utility. - - CLRDIR Initialize the directory area of a CP/M disk (Max Scane). - -------------------------------------------------------------------------- - -Some custom applications do not fit on the ROM disk. They are found on -the disk image files or the individual files can be found in the -Binary\Apps directory of the distribution. - - Application Description - ------------- ------------------------------------------------------------- - TUNE Play .PT2, .PT3, .MYM audio files. - FAT Access MS-DOS FAT filesystems from RomWBW (based on FatFs). - -There is additional documentation on some of these applications at the -RomWBW Applications Page. - Operating Systems One of the primary goals of RomWBW is to expose a set of generic @@ -860,10 +950,13 @@ computer is: 1. Use cpmtools on your modern computer to create a RomWBW CP/M filesystem image. + 2. Insert your RomWBW media (CF Card, SD Card, or floppy disk) in your modern computer. + 3. Use a disk imaging tool to copy the RomWBW filesystem image onto the media. + 4. Move the media back to the RomWBW computer. This process is a little complicated, but it has the benefit of allowing @@ -890,7 +983,7 @@ computer to make an SD Card or CF Card with a standard FAT32 filesystem on it, then place that media in your RomWBW computer and access the files. -When formatting the media on your modern computer, but sure to pick the +When formatting the media on your modern computer, be sure to pick the FAT filesystem. NTFS and other filesystems will not work. On your RomWBW computer you can use the FAT application to access the @@ -1048,7 +1141,8 @@ applications are no longer provided. list of general code enhancements. - Phillip Stevens contributed support for FreeRTOS. - Curt Mayer contributed the Linux / MacOS build process. -- UNA BIOS is a product of John Coffman. +- UNA BIOS and FDISK80 is a product of John Coffman. +- FLASH4 is a product of Will Sowerbutts. Contributions of all kinds to RomWBW are very welcome. diff --git a/Source/Doc/Applications.md b/Source/Doc/Applications.md index ed866aab..55c155a1 100644 --- a/Source/Doc/Applications.md +++ b/Source/Doc/Applications.md @@ -1,10 +1,7 @@ !include(Common.inc) !def(document)(Applications) --- -title: | - | !product - | - | !document +title: !product !document author: !author (mailto:!authmail) date: !date institution: !orgname @@ -35,17 +32,36 @@ header-includes: # Summary -RomWBW includes a small suite of custom applications to maximize the features available. In general, these applications are operating system agnostic -- they run under any of the included operating systems. However, they all require RomWBW -- they are not generic CP/M applications. - -Most of the applications are custom written for RomWBW. However, some are standard CP/M applications that have been adapted to run under RomWBW (e.g., XModem). The applications are generally matched to the version of RomWBW they are distributed with. So, if you upgrade the version of RomWBW in your system ROM, you will want to copy the corresponding applications to any storage devices you are using. - -Most of the applications are included on the RomWBW ROM disk, so they are easy to access. - -The applications are also included with all of the operating system disk images provided with RomWBW. So, a simple way to ensure you have matching applications is to write the disk images onto your disk media when upgrading your ROM. Of course, this will destroy any existing data on your disk media, so don't do this if you are saving any data on the media. - -Most of the applications are included as source code in the RomWBW distribution and are built in the normal build process. The source code is found in the Source\\Apps directory of the distribution. The binary executable applications are found in the Binary\\Apps directory. - -The following table clarifies where each of the applications can be found: +RomWBW includes a small suite of custom applications to maximize the +features available. In general, these applications are operating +system agnostic -- they run under any of the included operating +systems. However, they all require RomWBW -- they are not generic CP/M +applications. + +Most of the applications are custom written for RomWBW. However, some +are standard CP/M applications that have been adapted to run under +RomWBW (e.g., XModem). The applications are generally matched to the +version of RomWBW they are distributed with. So, if you upgrade the +version of RomWBW in your system ROM, you will want to copy the +corresponding applications to any storage devices you are using. + +Most of the applications are included on the RomWBW ROM disk, so they +are easy to access. + +The applications are also included with all of the operating system +disk images provided with RomWBW. So, a simple way to ensure you have +matching applications is to write the disk images onto your disk media +when upgrading your ROM. Of course, this will destroy any existing +data on your disk media, so don't do this if you are saving any data +on the media. + +Most of the applications are included as source code in the RomWBW +distribution and are built in the normal build process. The source +code is found in the Source\\Apps directory of the distribution. The +binary executable applications are found in the Binary\\Apps directory. + +The following table clarifies where each of the applications can be +found: | Application | ROM Disk | Boot Disks | Apps Dir | | ----------- | -------- | ---------- | -------- | @@ -58,6 +74,10 @@ The following table clarifies where each of the applications can be found: | XM | Yes | Yes | Yes | | FLASH | Yes | Yes | Yes | | FDISK80 | Yes | Yes | Yes | +| TALK | Yes | Yes | Yes | +| RTC | Yes | Yes | Yes | +| TIMER | Yes | Yes | Yes | +| INTTEST | Yes | Yes | Yes | | FAT | No | Yes | Yes | | TUNE | No | Yes | Yes | @@ -68,9 +88,8 @@ The following table clarifies where each of the applications can be found: RomWBW includes a flexible mechanism for associating the operating system drive letters (A: - P:) to the physical devices in the system. Drive letter assignments can be changed on a running operating system -without rebooting. The ASSIGN command facilitates this by allowing -allows you to display, assign, reassign, or remove the drive -letter assignments. +without rebooting. The ASSIGN command facilitates this by allowing you +to display, assign, reassign, or remove the drive letter assignments. ## Syntax @@ -84,92 +103,99 @@ letter assignments. `ASSIGN /?` will display brief command usage and version information. -`ASSIGN /L` will display a list of all the devices available to be used -in drive assignments in the running system. The devices listed may or may -not contain media. Although some device types support the use of slices, -the list does not indicate this. +`ASSIGN /L` will display a list of all the devices available to be +used in drive assignments in the running system. The devices listed +may or may not contain media. Although some device types support the +use of slices, the list does not indicate this. -`ASSIGN` with no parameters will list all of the current drive assignments. +`ASSIGN` with no parameters will list all of the current drive +assignments. -`ASSIGN `*``* will display the assignment for the specific drive For example, -`ASSIGN C:` will display the assignment for drive C:. +`ASSIGN `*``* will display the assignment for the specific drive +For example, `ASSIGN C:` will display the assignment for drive C:. -`ASSIGN `*``*`=`*``*`[:`*``*`]` will assign (or reassign) a drive -letter to a new device and (optionally) slice. If no slice is specified, then -slice 0 is assumed. For example, `ASSIGN C:=IDE0` will assign drive letter C: -to device IDE0, slice 0. `ASSIGN D:=IDE0:3` will assign drive letter D: to -device IDE0 slice 3. +`ASSIGN `*``*`=`*``*`[:`*``*`]` will assign (or +reassign) a drive letter to a new device and (optionally) slice. If no +slice is specified, then slice 0 is assumed. For example, `ASSIGN +C:=IDE0` will assign drive letter C: to device IDE0, slice 0. `ASSIGN +D:=IDE0:3` will assign drive letter D: to device IDE0 slice 3. -`ASSIGN `*``*`=` can be used to remove the assignment from a drive letter. So, -`ASSIGN E:=` will remove the association of drive letter E: from any previous -device. +`ASSIGN `*``*`=` can be used to remove the assignment from a +drive letter. So, `ASSIGN E:=` will remove the association of drive +letter E: from any previous device. -`ASSIGN `*``*`=`*``*`` is used to swap the assignments of two drive letters. -For example, `ASSIGN C:=D:` will swap the device assignments of C: and D:. +`ASSIGN `*``*`=`*``* is used to swap the assignments +of two drive letters. For example, `ASSIGN C:=D:` will swap the device +assignments of C: and D:. -The `ASSIGN` command supports "stacking" of instructions. For example, -`ASSIGN C:=IDE0:0,D:=IDE0:1,E:=` will assign C: and D: to the first two slices -of IDE 0 and will unassign E:. +The `ASSIGN` command supports "stacking" of instructions. For example, +`ASSIGN C:=IDE0:0,D:=IDE0:1,E:=` will assign C: and D: to the first +two slices of IDE 0 and will unassign E:. -When the command runs it will echo the resultant assignments to the console to -confirm it's actions. +When the command runs it will echo the resultant assignments to the +console to confirm it's actions. It will also display the remaining +space available in disk buffers. ## Notes -If the `ASSIGN` command encounters any rule violations or errors, it will -abort with an error and **none** of the drive assignments will be -implemented. In other words, the command is atomic and will either +If the `ASSIGN` command encounters any rule violations or errors, it +will abort with an error and **none** of the drive assignments will be +implemented. In other words, the command is atomic and will either completely succeed or completely fail. All assigned drives utilize disk buffer space from a limited pool. The -ASSIGN command will display the amount of buffer space remaining after -an assign command is executed. Buffer space is freed if a drive is -unassigned. If the total assignments exceed the available disk buffer -space available, the command will abort with an error message. - -The `ASSIGN` command does not check to see if the device and slice being assigned -actually contains readable media. If the assigned device has no media, you will -receive an I/O error when you attempt to use the drive letter. - -The `ASSIGN` command will not allow you to specify a slice (other than zero) for -devices that do not support slices (such as floppy drives or RAM/ROM disks). - -The `ASSIGN` command does not check that the media is large enough to support the -slice you specify. In other words, you could potentially assign a drive letter to -a slice that is beyond the end of the media in a device. In this case, subsequent -attempts to use that drive letter will result in an I/O error. - -Additionally, the `ASSIGN` command does not check to see if the slice specified -refers to an area on your media that is occupied by other data (such as a FAT -filesystem). - -You will not be allowed to assign multiple drive letters to a single device and -slice. In other words, only one drive letter may refer to a single filesystem -at a time. - -Drive letter A: must always be assigned to a device and slice. The `ASSIGN` command -will enforce this. - -The changes made by this command are not permanent. The assignments will -persist through a warm start, but when you reboot your system, all drive -letters will return to their default assignments. A SUBMIT batch file -can be used to setup desired drive assignments automatically at boot. - -Floppy disk drives and RAM/ROM drives do not have slices. A slice should -only be specified for hard disk devices (SD, IDE, PPIDE). - -Only one drive letter may be assigned to a specific device/unit/slice at -a time. Attempts to assign a duplicate drive letter will fail and +ASSIGN command will display the amount of buffer space remaining +after an assign command is executed. Buffer space is freed if a drive +is unassigned. If the total assignments exceed the available disk +buffer space available, the command will abort with an error message. + +The `ASSIGN` command does not check to see if the device and slice +being assigned actually contains readable media. If the assigned +device has no media, you will receive an I/O error when you attempt to +use the drive letter. + +The `ASSIGN` command will not allow you to specify a slice (other than +zero) for devices that do not support slices (such as floppy drives +or RAM/ROM disks). + +The `ASSIGN` command does not check that the media is large enough to +support the slice you specify. In other words, you could potentially +assign a drive letter to a slice that is beyond the end of the media +in a device. In this case, subsequent attempts to use that drive +letter will result in an I/O error. + +Additionally, the `ASSIGN` command does not check to see if the slice +specified refers to an area on your media that is occupied by other +data (such as a FAT filesystem). + +You will not be allowed to assign multiple drive letters to a single +device and slice. In other words, only one drive letter may refer to a +single filesystem at a time. + +Drive letter A: must always be assigned to a device and slice. The +`ASSIGN` command will enforce this. + +The changes made by this command are not permanent. The assignments +will persist through a warm start, but when you reboot your system, +all drive letters will return to their default assignments. A SUBMIT +batch file can be used to setup desired drive assignments +automatically at boot. + +Floppy disk drives and RAM/ROM drives do not have slices. A slice +should only be specified for hard disk devices (SD, IDE, PPIDE). + +Only one drive letter may be assigned to a specific device/unit/slice +at a time. Attempts to assign a duplicate drive letter will fail and display an error. If you wish to assign a different drive letter to a device/unit/slice, unassign the the existing drive letter first. Be aware that this command will allow you to reassign or remove the -assignment of your system drive letter. This can cause your operating +assignment of your system drive letter. This can cause your operating system to fail and force you to reboot. -This command is particularly sensitive to being matched to the appropriate -version of the RomWBW ROM you are using. Be very careful to keep all copies -of `ASSIGN.COM` up to date with your ROM. +This command is particularly sensitive to being matched to the +appropriate version of the RomWBW ROM you are using. Be very careful +to keep all copies of `ASSIGN.COM` up to date with your ROM. ## Etymology @@ -180,9 +206,9 @@ provided in the RomWBW distribution. # SYSCOPY -To make disk media bootable, you must write a system boot image onto the system tracks -of the of the media. The `SYSCOPY` allows you to read or write the system boot image -of disk media. +To make disk media bootable, you must write a system boot image onto +the system tracks of the of the media. The `SYSCOPY` allows you to +read or write the system boot image of disk media. ## Syntax @@ -192,15 +218,15 @@ of disk media. alternatively a filename to save the operating system image *``* is the drive containing an operating system image or -alternatively a filename containing the system image to be placed -on the destination +alternatively a filename containing the system image to be placed on +the destination ## Usage -Both *``* and *``* can refer to either a drive letter or -a file. If a drive letter is specified, the system boot image will -be read or written to the system tracks of the drive. If a filename -is specified, the system boot image will be read or written to the +Both *``* and *``* can refer to either a drive letter or a +file. If a drive letter is specified, the system boot image will be +read or written to the system tracks of the drive. If a filename is +specified, the system boot image will be read or written to the specified filename. `SYSCOPY C:=ZSYS.SYS` will read a system boot image from the file @@ -209,65 +235,62 @@ ZSYS.SYS and write it onto the system tracks of drive C:. `SYSCOPY A:OS.SYS=C:` will capture the system boot image from the system tracks of drive C: and store it in the file A:OS.SYS. -`SYSCOPY D:=C:` will copy the system tracks from drive C: onto -the system tracks of drive D: +`SYSCOPY D:=C:` will copy the system tracks from drive C: onto the +system tracks of drive D:. ## Notes The RomWBW ROM disk contains files with the system boot image for -Z-System and CP/M 2.2. These files are called CPM.SYS and ZSYS.SYS -respectively. These files can be used as the source of a `SYSCOPY` +Z-System and CP/M 2.2. These files are called CPM.SYS and ZSYS.SYS +respectively. These files can be used as the source of a `SYSCOPY` command to make a disk bootable with the corresponding operating system. -CP/M 3 uses a two phase boot process. To make a CP/M 3 drive -bootable, you need to put "CPMLDR.SYS" on the boot tracks of the -disk and be sure that the drive also contains the "CPM.SYS" file. -The "CPMLDR.SYS" file is not included on the ROM disk, but is found -on the CP/M 3 disk image. - -ZPM3 is similar to CP/M 3. You also put "CPMLDR.SYS" on the system -tracks of the drive to make it bootable. The ZPM3 operating system -is in the file called "CPM3.SYS" on the ZPM3 disk image. It may -seem confusing that ZPM3 is in the file called CPM3.SYS, but it is -normal for ZPM3. - -For the purposes of booting an operating system, each disk slice -is considered it's own operating system. Each slice can be made -bootable with it's own system tracks. - -`SYSCOPY` uses drive letters to specify where to read/write the -system boot images. However, at startup, the boot loaded will -require you to enter the actual disk device and slice to boot from. -So, you need to be careful to pay attention to the device and slice -that is assigned to a drive letter so you will know what to enter -at the boot loader prompt. By way of explanation, the boot loader -does not know about drive letters because the operating system is -not loaded yet. - -If you want to put a a boot system image on a device and slice -that is not currently assigned to a drive letter, you will need -to assign a drive letter first. - -Not all disk formats include space for system tracks. Such disk -formats cannot contains a system boot image and, therefore, cannot -be made bootable. The best example of such disk formats are the -ROM and RAM disks. To maximize useable file space on these drives, -they do not have system tracks. Obviously, ROM operating system -is supported by choosing a ROM operating system at the boot loader -prompt. Any attempt to write a system boot image to disk media -with no system tracks will cause SYSCOPY to fail with an error -message. - -The system boot images are paired with the ROM version in your -system. So, you must take care to update the system tracks of -any bootable disk when you upgrade your ROM firmware. +CP/M 3 uses a two phase boot process. To make a CP/M 3 drive bootable, +you need to put "CPMLDR.SYS" on the boot tracks of the disk and be +sure that the drive also contains the "CPM.SYS" file. The "CPMLDR.SYS" +file is not included on the ROM disk, but is found on the CP/M 3 disk +image. + +ZPM3 is similar to CP/M 3. You also put "CPMLDR.SYS" on the system +tracks of the drive to make it bootable. The ZPM3 operating system is +in the file called "CPM3.SYS" on the ZPM3 disk image. It may seem +confusing that ZPM3 is in the file called CPM3.SYS, but it is normal +for ZPM3. + +For the purposes of booting an operating system, each disk slice is +considered it's own operating system. Each slice can be made bootable +with it's own system tracks. + +`SYSCOPY` uses drive letters to specify where to read/write the system +boot images. However, at startup, the boot loaded will require you to +enter the actual disk device and slice to boot from. So, you need to +be careful to pay attention to the device and slice that is assigned +to a drive letter so you will know what to enter at the boot loader +prompt. By way of explanation, the boot loader does not know about +drive letters because the operating system is not loaded yet. + +If you want to put a a boot system image on a device and slice that is +not currently assigned to a drive letter, you will need to assign a +drive letter first. + +Not all disk formats include space for system tracks. Such disk +formats cannot contains a system boot image and, therefore, cannot be +made bootable. The best example of such disk formats are the ROM and +RAM disks. To maximize usable file space on these drives, they do not +have system tracks. Obviously, ROM operating system is supported by +choosing a ROM operating system at the boot loader prompt. Any attempt +to write a system boot image to disk media with no system tracks will +cause SYSCOPY to fail with an error message. + +The system boot images are paired with the ROM version in your system. +So, you must take care to update the system tracks of any bootable +disk when you upgrade your ROM firmware. The system boot images are **not** tied to specific hardware -configurations. System boot images and operating systems -provided with RomWBW will work with any supported RomWBW -platform or hardware as long as they are the same version as -the RomWBW firmware. +configurations. System boot images and operating systems provided with +RomWBW will work with any supported RomWBW platform or hardware as +long as they are the same version as the RomWBW firmware. ## Etymology @@ -279,13 +302,13 @@ provided in the RomWBW distribution. # MODE The MODE command allows you to adjust the operating characteristics -such as baud rate, data bits, stop bits, and parity bits of -serial ports dynamically. +such as baud rate, data bits, stop bits, and parity bits of serial +ports dynamically. ## Syntax `MODE /?` -`MODE COM`*``*`: [`*``*`[,`*``*`[,`*``*`[,`*``*`]]]] [/P]` +`MODE COM`*``*`: [`*``*`[,`*``*`[,`*``*`[,`*``*`]]]] [/P]` `/?` displays command usage and version information @@ -311,12 +334,12 @@ configuration. `MODE <`*n*`>` will display the current configuration of the specified character device unit. -`MODE COM`*``*`: [`*``*`[,`*``*`[,`*``*`[,`*``*`]]]] [/P]` -requests that the specified configuration be set on the character -device unit. You can use commas with no values to leave some values -unchanged. As an example, `MODE COM0: 9600,,,2` will setup -character device unit 0 for 9600 baud and 2 stop bits while leaving -data bits and stop bits as is. +`MODE COM`*``*`: [`*``*`[,`*``*`[,`*``*`[,` +*``*`]]]] [/P]` requests that the specified configuration +be set on the character device unit. You can use commas with no values +to leave some values unchanged. As an example, `MODE COM0: 9600,,,2` +will setup character device unit 0 for 9600 baud and 2 stop bits while +leaving data bits and stop bits as is. Appending `/P` in a command specifying a new configuration will cause the terminal output to pause and wait for the user to press a key. @@ -331,10 +354,10 @@ serial unit. Any parameters not specified will remain unchanged. Changes are not persisted and will revert to system defaults at next system boot. -Not all character devices support all `MODE` options. Some devices -(notably ASCI devices) have limited baud rate divisors. An attempt -to set a baud rate that the device cannot support will fail with -an error message. +Not all character devices support all `MODE` options. Some devices +(notably ASCI devices) have limited baud rate divisors. An attempt to +set a baud rate that the device cannot support will fail with an error +message. ## Etymology @@ -354,23 +377,23 @@ to format and test floppy disk media. ## Usage -This application has an interactive user interface. At startup, you -will be prompted to select the floppy interface hardware in your system. -Following this, you will see the main menu of the program with many -functions to manage floppy disk drives. +This application has an interactive user interface. At startup, you +will be prompted to select the floppy interface hardware in your +system. Following this, you will see the main menu of the program with +many functions to manage floppy disk drives. The primary documentation for this application is in a file called -"FDU.txt" in the Doc directory of the RomWBW distribution. Please +"FDU.txt" in the Doc directory of the RomWBW distribution. Please consult this file for usage information. ## Notes This application interfaces directly to the floppy hardware in your -system. It does not use the RomWBW HBIOS. This means that even if -your system is not configured for floppy drives, you can still use -`FDU` to test your floppy drives and format floppy media. This also -means it is critical that you choose the correct hardware interface -from the initial selection when starting the application. +system. It does not use the RomWBW HBIOS. This means that even if your +system is not configured for floppy drives, you can still use `FDU` +to test your floppy drives and format floppy media. This also means it +is critical that you choose the correct hardware interface from the +initial selection when starting the application. ## Etymology @@ -381,9 +404,9 @@ provided in the RomWBW distribution. # OSLDR -RomWBW supports loading new operating systems on-the-fly. For example, +RomWBW supports loading new operating systems on-the-fly. For example, if CP/M 2.2 is currently running, you can load and run Z-System from -the command line. The `OSLDR` application provides this functionality. +the command line. The `OSLDR` application provides this functionality. ## Syntax @@ -397,37 +420,37 @@ the command line. The `OSLDR` application provides this functionality. ## Usage -`OSLDR `*``* will read the specified file, confirm it is an operating system image file, -then load it as though it was being booted. For example, `OSLDR ZSYS.SYS` -would load the Z-System operating system. +`OSLDR `*``* will read the specified file, confirm it is an +operating system image file, then load it as though it was being +booted. For example, `OSLDR ZSYS.SYS` would load the Z-System +operating system. -`OSLDR `*``* *``* will first read and load the specified -*``* file as a new HBIOS image and then read and load -the specified *``* file. HBIOS image can be produced by the -RomWBW build process, but they are not produced by default. You +`OSLDR `*``* *``* will first read and load the +specified *``* file as a new HBIOS image and then read and +load the specified *``* file. HBIOS image can be produced by +the RomWBW build process, but they are not produced by default. You are encouraged to contact Wayne Warthen for more information on this capability. ## Notes -The primary function of `OSLDR` is to allow switching to a new operating -system while the system if running without a full reboot. +The primary function of `OSLDR` is to allow switching to a new +operating system while the system if running without a full reboot. `OSLDR` is considered generally reliable for when used simply to load -a new operating system (one parameter). However, using it to load -an HBIOS image is considered experimental and should not be -relied upon. +a new operating system (one parameter). However, using it to load an +HBIOS image is considered experimental and should not be relied upon. `OSLDR` can also be used to load "test" versions of operating systems -from files transferred to your system. This is especially useful in -when loading both an operating system and HBIOS image because you -can essentially simulate starting your system with new firmware -without reprogramming your ROM. +from files transferred to your system. This is especially useful in +when loading both an operating system and HBIOS image because you can +essentially simulate starting your system with new firmware without +reprogramming your ROM. -`OSLDR` attempts to check the file(s) specified for correctness -before loading them, but it is far from perfect. This application -should be used with caution and may not work in some cases that -are hard to define. +`OSLDR` attempts to check the file(s) specified for correctness before +loading them, but it is far from perfect. This application should be +used with caution and may not work in some cases that are hard to +define. ## Etymology @@ -438,8 +461,8 @@ provided in the RomWBW distribution. # FORMAT -This application is just a placeholder for a future version that -will make it simpler to format media including floppy disks. +This application is just a placeholder for a future version that will +make it simpler to format media including floppy disks. ## Syntax @@ -448,8 +471,8 @@ will make it simpler to format media including floppy disks. ## Notes This application currently just displays a few lines of information -briefly instructing a user how to format media. It performs no -actual function beyond this display currently. +briefly instructing a user how to format media. It performs no actual +function beyond this display currently. ## Etymology @@ -460,7 +483,8 @@ provided in the RomWBW distribution. # XM -An adaptation of Ward Christensen's X-Modem protocol for transferring files between systems using a serial port. +An adaptation of Ward Christensen's X-Modem protocol for transferring +files between systems using a serial port. ## Syntax @@ -477,54 +501,61 @@ An adaptation of Ward Christensen's X-Modem protocol for transferring files betw *``* is the name of a file to send or receive -*``* is the name of a library (.lbr) to extract -a file to send from +*``* is the name of a library (.lbr) to extract a file to send ## Usage -To transfer a file from your host computer to your RomWBW -computer, do the following: +To transfer a file from your host computer to your RomWBW computer, do +the following: + +1. Enter one of the `XM` receive commands specifying the name you want +to give to the received file. + +2. On your host computer select a file to send and initiate the XModem +send operation. -1. Enter one of the `XM` receive commands specifying the name you want to give to the received file. -2. On your host computer select a file to send and initiate the XModem send operation. +To transfer a file from your RomWBW computer to your host computer, do +the following: -To transfer a file from your RomWBW computer to your host computer, do the following: +1. Enter one of the `XM` send commands specifying the name of the file +to be sent. -1. Enter one of the `XM` send commands specifying the name of the file to be sent. -2. On your host computer, specify the name to assign to the received file and initiate and XModem receive operation. +2. On your host computer, specify the name to assign to the received +file and initiate and XModem receive operation. -Please refer to the documentation of your host computer's terminal emulation -software for specific instructions on how to use XModem. +Please refer to the documentation of your host computer's terminal +emulation software for specific instructions on how to use XModem. ## Notes -The XModem adaptation that comes with RomWBW will automatically use the -primary character device unit (character device unit 0) for the file transfer. +The XModem adaptation that comes with RomWBW will automatically use +the primary character device unit (character device unit 0) for the +file transfer. -`XM` attempts to determine the best way to drive the serial port based on your -hardware configuration. When possible, it will bypass the HBIOS for -faster operation. However, in many cases, it will use HBIOS so that flow -control can be used. +`XM` attempts to determine the best way to drive the serial port based +on your hardware configuration. When possible, it will bypass the +HBIOS for faster operation. However, in many cases, it will use HBIOS +so that flow control can be used. -`XM` is dependent on a reliable communications channel. -You must ensure that the serial port can be serviced fast enough by either -using a baud rate that is low enough or ensuring that hardware flow control -is fully functional (end to end). +`XM` is dependent on a reliable communications channel. You must +ensure that the serial port can be serviced fast enough by either +using a baud rate that is low enough or ensuring that hardware flow +control is fully functional (end to end). ## Etymology -The `XM` application provided in RomWBW is an adaptation of a pre-existing -XModem application. Based on the source code comments, it was originally -adapted from Ward Christensen's MODEM2 by Keith Petersen and is -labeled version 12.5. +The `XM` application provided in RomWBW is an adaptation of a +pre-existing XModem application. Based on the source code comments, it +was originally adapted from Ward Christensen's MODEM2 by Keith +Petersen and is labeled version 12.5. -The original source of the application was found in the -Walnut Creek CD-ROM and is called XMDM125.ARK dated 7/15/86. +The original source of the application was found in the Walnut Creek +CD-ROM and is called XMDM125.ARK dated 7/15/86. The actual application is virtually untouched in the RomWBW -adaptation. The majority of the work was in the modem driver -which was enhanced to detect the hardware being used and -dynamically choose the appropriate driver. +adaptation. The majority of the work was in the modem driver which was +enhanced to detect the hardware being used and dynamically choose the +appropriate driver. The source code is provided in the RomWBW distribution. @@ -532,14 +563,13 @@ The source code is provided in the RomWBW distribution. # FLASH -Most of the hardware platforms that run RomWBW support the -use of EEPROMs -- Electronically Erasable Programmable ROMs. -The `FLASH` application can be used to reprogram such ROMS -in-situ (in-place), thus making it possible to upgrade ROMs -without a programmer or even removing the ROM from your -system. +Most of the hardware platforms that run RomWBW support the use of +EEPROMs -- Electronically Erasable Programmable ROMs. The `FLASH` +application can be used to reprogram such ROMS in-situ (in-place), +thus making it possible to upgrade ROMs without a programmer or even +removing the ROM from your system. -This application was produced by Will Sowerbutts. +This application is provided by Will Sowerbutts. ## Syntax @@ -562,100 +592,272 @@ Options: (access method is auto-detected by default) ## Usage To program your EEPROM ROM chip, first transfer the file to your -RomWBW system. Then use the command `FLASH WRITE *``*. -The application will auto-detect the type of EEPROM chip you have -and will program and verify it. +RomWBW system. Then use the command `FLASH WRITE *``*. The +application will auto-detect the type of EEPROM chip you have, +program it, and verify it. -You can use the "READ" variant of the command to read the ROM -image from your system into a file. This is useful if you want -to save a copy of your current ROM before reprogramming it. +You can use the `FLASH READ` form of the command to read the ROM image +from your system into a file. This is useful if you want to save a +copy of your current ROM before reprogramming it. -Although the "WRITE" variant automatically performs a verification, -you can manually perform a verification function with the "VERIFY" -variant of the command. +Although `FLASH WRITE` automatically performs a verification, you can +manually perform a verification function with the `FLASH VERIFY` form +of the command. -The author's documentation for the application is found in the -RomWBW distribution in the Doc\\Contrib directory. +The author's documentation for the application is found in the RomWBW +distribution in the Doc\\Contrib directory. ## Notes -The application supports a significant number of EEPROM parts. It -should automatically detect your part. If it does not recognize -your chip, make sure that you do not have a write protect jumper -set -- this jumper will cause the ROM chip type to be unrecognized. +The application supports a significant number of EEPROM parts. It +should automatically detect your part. If it does not recognize your +chip, make sure that you do not have a write protect jumper set -- +this jumper will cause the ROM chip type to be unrecognized. -Reprogramming a ROM chip in-place is inherently dangerous. If anything -goes wrong, you will be left with a non-functional system and no ability -to run the `FLASH` application again. Use this application with -caution and be prepared to use a hardware ROM programmer to restore -your system if needed. +Reprogramming a ROM chip in-place is inherently dangerous. If anything +goes wrong, you will be left with a non-functional system and no +ability to run the `FLASH` application again. Use this application +with caution and be prepared to use a hardware ROM programmer to +restore your system if needed. ## Etymology -This application was written and provided by Will Sowerbutts. He +This application was written and provided by Will Sowerbutts. He provides it in binary format and is included in the RomWBW distribution as a binary file. -The source code for this application can be found at the [FLASH4 GitHub -repository](https://github.com/willsowerbutts/flash4). +The source code for this application can be found at the [FLASH4 +GitHub repository](https://github.com/willsowerbutts/flash4). `\clearpage`{=latex} # FDISK80 -RomWBW supports disk media with MS-DOS FAT filesystems (see FAT -application). If you wish to put a FAT filesystem on your media, the -FDISK80 application can be used to partition your media which is +RomWBW supports disk media with MS-DOS FAT filesystems (see FAT +application). If you wish to put a FAT filesystem on your media, the +FDISK80 application can be used to partition your media which is required in order to add a FAT filesystem. -This application was produced by John Coffman. +This application is provided by John Coffman. ## Usage -`FDISK80` is an interactive application. At startup it will ask -you for the disk unit that you want to partition. When your -RomWBW system boots, it will display a table with the disk unit -numbers. Use the disk unit numbers from that table to enter the -desired disk unit to partition. +`FDISK80` is an interactive application. At startup it will ask you +for the disk unit that you want to partition. When your RomWBW system +boots, it will display a table with the disk unit numbers. Use the +disk unit numbers from that table to enter the desired disk unit to +partition. `FDISK80` operates very much like other FDISK disk partitioning -applications. Please refer to the file called "FDisk Manual.pdf" -in the Doc directory of the RomWBW distribution for further -instructions. +applications. Please refer to the file called "FDisk Manual.pdf" in +the Doc directory of the RomWBW distribution for further instructions. -There is also more information on using FAT partitions with RomWBW -in the "RomWBW Getting Started.pdf" document in the Doc directory of the distribution. +There is also more information on using FAT partitions with RomWBW in +the "RomWBW Getting Started.pdf" document in the Doc directory of the +distribution. ## Notes -Partitioning of RomWBW media is **only** required if you want to add -a FAT filesystem to the media. Do not partition your media if you are -simply using it for RomWBW. To be clear, RomWBW slices do not require +Partitioning of RomWBW media is **only** required if you want to add a +FAT filesystem to your media. Do not partition your media if you are +simply using it for RomWBW. To be clear, RomWBW slices do not require partitioning. As described in "RomWBW Getting Started.pdf", you should be careful -when adding a FAT partition to your media that the partition does -not overlap with the area of the media being used for RomWBW slices. -The "(R)eserve" function in `FDISK80` can help prevent this. +when adding a FAT partition to your media that the partition does not +overlap with the area of the media being used for RomWBW slices. The +"(R)eserve" function in `FDISK80` can help prevent this. ## Etymology The source for this application was provided directly by John Coffman. It is a C program and requires a build environment that includes the -SDCC compiler. As such, it is not included in the RomWBW build process, -only the binary executable is included. +SDCC compiler. As such, it is not included in the RomWBW build +process, only the binary executable is included. Please contact John Coffman if you would like a copy of the source. `\clearpage`{=latex} +# TALK + +It is sometimes useful to direct your console input/output to a +designated serial port. For example, if you were to connect a modem +to your second serial port, you might want to connect directly to it +and have everything you type sent to it and everything it sends be +shown on your console. The `TALK` application does this. + +## Syntax + +`TALK [TTY:|CRT:|BAT:UC1:]` + +## Usage + +`TALK` operates at the operating system level (not HBIOS). + +The parameter to `TALK` refers to logical CP/M serial devices. Upon +execution all characters types at the console will be sent to the +device specified and all characters received by the specified device +will be echoes on the console. + +Press Control+Z on the console to terminate the application. + +## Notes + +This application is designed for CP/M 2.2 or Z-System. Use on later +operating systems such as CP/M 3 is not supported. + +## Etymology + +The `TALK` command is an original product and the source code is +provided in the RomWBW distribution. + +`\clearpage`{=latex} + +# RTC + +Many RomWBW systems provide real time clock hardware. The RTC +application is a simple, interactive program allowing you to display +and set the time and registers of the RTC. + +## Syntax + +`RTC` + +## Usage + +After startup, the application provides the following options: + +| Option | Function | +| ----------- | ------------------------------------------------------ | +| `E)xit` | will terminate the application. | +| `T)ime` | will display the time as read from the RTC hardware. | +| `st(A)rt` | will restart the clock running if it is stopped. | +| `S)et` | will program the RTC clock with the date/time previously entered using the I)nit option. | +| `R)aw` | will read the minute/second of the RTC clock iteratively every time the space key is pressed. Press enter to end. | +| `L)oop` | will read the full date/time of the RTC clock iteratively every time the space key is pressed. Press enter to end. | +| `C)harge` | will enable the battery charging function of the RTC. | +| `N)ocharge` | will disable the battery charging functino of the RTC. | +| `D)elay` | allows you to test the built-in timing delay in the program. It is not unusual for it to be wrong. | +| `I)nit` | allows you to enter a date/time value for subsequent programming of the RTC using the S)et option. | +| `G)et` | allows you to read the value of a non-volatile register in the RTC. | +| `P)ut` | allows you to write the value of a non-volatile register in the RTC. | +| `B)oot` | will reboot your system. | +| `H)elp` | displays brief help. | + +## Notes + +When using Get and Put options, the register number to read/write is +entered in hex. The non-volatile ram register numbers are 0x20-0x3F. + +When entering values, you must enter exactly two hex characters. The +backspace key is not supported. You do not use enter after entering +the two hex characters. Yes, this should be improved. + +The `RTC` application interacts directly with the RTC hardware +bypassing HBIOS. + +## Etymology + +The `RTC` application was originally written by Andrew Lync as part of +the original ECB SBC board development. It has since been modified to +support most of the hardware variations included with RomWBW. + +`\clearpage`{=latex} + +# TIMER + +Most RomWBW systems have a 50Hz periodic system timer. A counter is +incremented every time a timer tick occurs. The `TIMER` application +displays the value of the counter. + +## Syntax + +`TIMER` +`TIMER /?` +`TIMER /C` + +## Usage + +Use `TIMER` to display the current value of the counter. + +Use `TIMER /C` to display the value of the counter continuously. + +The display of the counter will be something like this: + +`00045444 Ticks, 0000162A.10 Seconds` + +The first number is the total number of ticks since system startup. +The second number is the total number of seconds since system startup. + +## Notes + +The seconds value is displayed with a fractional value which is not a +an actual fraction, but rather the number of ticks past the seconds +rollover. All values are in hex. + +The primary use of the `TIMER` application is to test the system +timer functionality of your system. + +In theory, you could capture the value before and after some process +you want to time. + +## Etymology + +The `TIMER` command is an original product and the source code is +provided in the RomWBW distribution. + +`\clearpage`{=latex} + +# INTTEST + +RomWBW includes an API allowing applications to "hook" interrupts. +The `INTTEST` application allows you to test this functionality. + +## Syntax + +`INTTEST` + +## Usage + +`INTTEST` is an interactive application. At startup, it will display +a list of the interrupt vector slots in your system along with the +current vector address for each of them. + +It then prompts you to enter the slot number (in hex) of a vector to +hook. After entering this, the application will watch the hooked +vector and countdown from 0xFF to 0x00 as interrupts are noted. + +When the counter reaches 0x00, the interrupt is unhooked and the +application terminates. The application can also be terminated by +pressing . + +## Notes + +If your system is running without interrupts active, the application +will terminate immediately. + +All slots have vectors even if the corresponding interrupt is not +doing anything. In this case, the vector is pointing to the "bad +interrupt" handler. + +If you hook a vector that is not receiving any interrupts, the +downcounter will not do anything. + +## Etymology + +The `INTTEST` command is an original product and the source code is +provided in the RomWBW distribution. + +`\clearpage`{=latex} + # FAT The operating systems included with RomWBW do not have any native -ability to access MS-DOS FAT filesystems. The FAT application can -be used overcome this. It will allow you to transfer files between -CP/M and FAT filesystems (wildcards supported). It can also -erase files, format, and list directories of FAT filesystems. +ability to access MS-DOS FAT filesystems. The FAT application can be +used overcome this. It will allow you to transfer files between CP/M +and FAT filesystems (wildcards supported). It can also erase files, +format, and list directories of FAT filesystems. ## Syntax @@ -674,144 +876,146 @@ erase files, format, and list directories of FAT filesystems. | *``* is a RomWBW disk unit number | CP/M filespec: *``*`:FILENAME.EXT` (*``* is CP/M drive letter A-P) -| FAT filespec: *``*`:/DIR/FILENAME.EXT` (*``* is RomWBW disk unit #) +| FAT filespec: *``*`:/DIR/FILENAME.EXT` (*``* is RomWBW disk unit #) ## Usage -The `FAT` application determines whether you are referring to a -CP/M filesystem or a FAT filesystem based on the way you specify -the file or path. If the file or path is prefixed with a number (n:), -then it is assumed this is a FAT filesystem reference and is referring -to the FAT filesystem on RomWBW disk unit 'n'. Otherwise, the -file specification is assumed to be a normal CP/M file specification. +The `FAT` application determines whether you are referring to a CP/M +filesystem or a FAT filesystem based on the way you specify the file +or path. If the file or path is prefixed with a number (n:), then it +is assumed this is a FAT filesystem reference and is referring to the +FAT filesystem on RomWBW disk unit 'n'. Otherwise, the file +specification is assumed to be a normal CP/M file specification. If you wanted to list the directory of the FAT filesystem on RomWBW -disk unit 2, you would use `FAT DIR 2:`. If you only wanted to -see the ".TXT" files, you would use `FAT DIR 2:*.TXT` +disk unit 2, you would use `FAT DIR 2:`. If you only wanted to see the +".TXT" files, you would use `FAT DIR 2:*.TXT`. -If you wanted to copy all of the files on CP/M drive B: to the -FAT filesystem on RomWBW disk unit 4, you would use the command -`FAT COPY B:*.* 4:` If you wanted to copy the files to the "FOO" -directory, then you would use `FAT COPY B:*.* 4:\FOO`. To copy -files in the opposite direction, you just reverse the parameters. +If you wanted to copy all of the files on CP/M drive B: to the FAT +filesystem on RomWBW disk unit 4, you would use the command `FAT COPY +B:*.* 4:` If you wanted to copy the files to the "FOO" directory, then +you would use `FAT COPY B:*.* 4:\FOO`. To copy files in the opposite +direction, you just reverse the parameters. -To rename the file "XXX.DAT" to "YYY.DAT" on a FAT filesystem, -you could use a command like "FAT REN 2:XXX.DAT 2:YYY.DAT". +To rename the file "XXX.DAT" to "YYY.DAT" on a FAT filesystem, you +could use a command like "FAT REN 2:XXX.DAT 2:YYY.DAT". -To delete a file "XXX.DAT" on a FAT filesystem in directory "FOO", -you would use a command like `FAT DEL 2:\FOO\XXX.DAT`. +To delete a file "XXX.DAT" on a FAT filesystem in directory "FOO", you +would use a command like `FAT DEL 2:\FOO\XXX.DAT`. -To make a directory called "FOO2" on a FAT filesystem, you would -use a command line `FAT MD 2:\FOO2`. +To make a directory called "FOO2" on a FAT filesystem, you would use a +command line `FAT MD 2:\FOO2`. To format the filesystem on a FAT partition, you would use a command -like `FAT FORMAT 2:`. Use this with caution because it will destroy +like `FAT FORMAT 2:`. Use this with caution because it will destroy all data on any pre-existing FAT filesystem on disk unit 2. ## Notes -Partitioned or non-partitioned media is handled automatically. -A floppy drive is a good example of a non-partitioned FAT -filesystem and will be recognized. Larger media will typically -have a partition table which will be recognized by the -application to find the FAT filesystem. +Partitioned or non-partitioned media is handled automatically. A +floppy drive is a good example of a non-partitioned FAT filesystem and +will be recognized. Larger media will typically have a partition +table which will be recognized by the application to find the FAT +filesystem. Although RomWBW-style CP/M media does not know anything about -partition tables, it is entirely possible to have media that -has both CP/M and FAT file systems on it. This is accomplished -by creating a FAT filesystem on the media that starts on a track -beyond the last track used by CP/M. Each CP/M slice on a -media will occupy a little over 8MB. So, make sure to start -your FAT partition beyond (slice count) * 8MB. - -The application infers whether you are attempting to reference -a FAT or CP/M filesystem via the drive specifier (char before ':'). -A numeric drive character specifies the HBIOS disk unit number -for FAT access. An alpha (A-P) character indicates a CP/M -file system access targeting the specified drive letter. If there -is no drive character specified, the current CP/M filesystem and -current CP/M drive is assumed. For example: - -"2:README.TXT" refers to FAT file README.TXT on disk unit #2 -"C:README.TXT" refers to CP/M file README.TXT on CP/M drive C -"README.TXT" refers to CP/M file README.TXT on the current CP/M drive - -Files with SYS, HIDDEN, or R/O only attributes are not given -any special treatment. Such files are found and processed -like any other file. However, any attempt to write to a -read-only file will fail and the application will abort. - -It is not currently possible to reference CP/M user areas other -than the current user. To copy files to alternate user areas, -you must switch to the desired user number first or use an -additional step to copy the file to the desired user area. - -Accessing FAT filesystems on a floppy requires the use of -RomWBW HBIOS v2.9.1-pre.13 or greater. +partition tables, it is entirely possible to have media that has both +CP/M and FAT file systems on it. This is accomplished by creating a +FAT filesystem on the media that starts on a track beyond the last +track used by CP/M. Each CP/M slice on a media will occupy 8,320K +(16,640 sectors). So, make sure to start your FAT partition beyond (< +slice count> * 8,320K) or (`* -*``* is the name of a sound file ending in .PT2, .PT3, or .MYM +*``* is the name of a sound file ending in .PT2, .PT3, or +.MYM ## Usage -The TUNE application supports PT and YM sound file formats. It -determines the format of the file from the extension of the file, -so your tune filenames should end in .PT2, .PT3, or .MYM. +The TUNE application supports PT and YM sound file formats. It +determines the format of the file from the extension of the file, so +your tune filenames should end in .PT2, .PT3, or .MYM. To play a sound file, just use the command and specify the file to -play after the command. So, for example, `TUNE ATTACK.PT2` will +play after the command. So, for example, `TUNE ATTACK.PT2` will immediately begin playing the PT sound file "ATTACK.PT2". ## Notes -The `TUNE` application automatically probes for compatible hardware -at well known port addresses at startup. It will auto-configure -itself for the hardware found. If no hardware is detected, it will -abort with an error message. +The `TUNE` application automatically probes for compatible hardware at +well known port addresses at startup. It will auto-configure itself +for the hardware found. If no hardware is detected, it will abort with +an error message. On Z180 systems, I/O wait states are added when writing to the sound -chip to avoid exceeding it's speed limitations. +chip to avoid exceeding it's speed limitations. On Z80 systems, you +will need to ensure that the CPU clock speed of your system does not +exceed the timing limitations of your sound chip. The application probes for an active system timer and uses it to -accurately pace the sound file output. If no system timer is -available, a delay loop is calculated instead. The delay loop will -not be as accurate as the system timer. +accurately pace the sound file output. If no system timer is +available, a delay loop is calculated instead. The delay loop will not +be as accurate as the system timer. All RomWBW operating system boot disks include a selection of sound files in user area 3. ## Etymology -The `TUNE` application was custom written for RomWBW. All of the -hardware interface code is specific to RomWBW. The sound file -decoding software was adapted and embedded from pre-existing -sources. The YM player code is from MYMPLAY 0.4 by Lieves!Tuore -and the PT player code is (c)2004-2007 S.V.Bulba - +The `TUNE` application was custom written for RomWBW. All of the +hardware interface code is specific to RomWBW. The sound file decoding +software was adapted and embedded from pre-existing sources. The YM +player code is from MYMPLAY 0.4 by Lieves!Tuore and the PT player code +is (c)2004-2007 S.V.Bulba . -The source code is provided in the RomWBW distribution. +The source code is provided in the RomWBW distribution. \ No newline at end of file diff --git a/Source/Doc/Architecture.md b/Source/Doc/Architecture.md index 6968f2dd..2d545893 100644 --- a/Source/Doc/Architecture.md +++ b/Source/Doc/Architecture.md @@ -16,7 +16,7 @@ toc-depth: 1 numbersections: true secnumdepth: 1 papersize: letter -geometry: +geometry: - top=1in - bottom=1in - left=1in @@ -94,17 +94,17 @@ ROM. RomWBW firmware includes: -- System startup code (bootstrap) +* System startup code (bootstrap) -- A basic system/debug monitor +* A basic system/debug monitor -- HBIOS (Hardware BIOS) providing support for the vast majority of - RetroBrew Computers I/O components +* HBIOS (Hardware BIOS) providing support for the vast majority of +RetroBrew Computers I/O components -- A complete operating system (either CP/M 2.2 or ZSDOS 1.1) +* A complete operating system (either CP/M 2.2 or ZSDOS 1.1) -- A built-in CP/M filesystem containing the basic applications and - utilities for the operating system and hardware being used +* A built-in CP/M filesystem containing the basic applications and +utilities for the operating system and hardware being used It is appropriate to note that much of the code and components that make up a complete RomWBW package are derived from pre-existing work. Most @@ -297,12 +297,12 @@ a ROM Boot. Notes ----- -1. Size of ROM disk and RAM disk will be decreased as needed to - accommodate RAM and ROM memory bank usage for the banked BIOS. +1. Size of ROM disk and RAM disk will be decreased as needed to +accommodate RAM and ROM memory bank usage for the banked BIOS. -2. There is no support for interrupt driven drivers at this time. Such - support should be possible in a variety of ways, but none are yet - implemented. +2. There is no support for interrupt driven drivers at this time. Such +support should be possible in a variety of ways, but none are yet +implemented. Driver Model ============ @@ -375,22 +375,51 @@ HBIOS Reference Invocation ---------- -HBIOS functions are invoked by placing the required parameters in CPU registers and executing an RST 08 instruction. Note that HBIOS does not preserve register values that are unused. However, it will not modify the Z80 alternate registers or IX/IY (these registers may be used within HBIOS, but will be saved and restored internally). - -Normally, applications will not call HBIOS functions directly. It is intended that the operating system makes all HBIOS function calls. Applications that are considered system utilities may use HBIOS, but must be careful not to modify the operating environment in any way that the operating system does not expect. - -In general, the desired function is placed in the B register. Register C is frequently used to specify a subfunction or a target device unit number. Additional registers are used as defined by the specific function. Register A should be used to return function result information. A=0 should indicate success, other values are function specific. - -The character, disk, and video device functions all refer to target devices using a logical device unit number that is passed in the C register. Keep in mind that these unit numbers are assigned dynamically at HBIOS initialization during the device discovery process. The assigned unit numbers are displayed on the consoled at the conclusion of device initialization. The unit assignments will never change after HBIOS initialization. However, they can change at the next boot if there have been hardware or BIOS customization changes. Code using HBIOS functions should not assume fixed unit assignments. - -Some functions utilize pointers to memory buffers. Unless otherwise stated, such buffers can be located anywhere in the Z80 CPU 64K address space. However, performance sensitive buffers (primarily disk I/O buffers) will require double-buffering if the caller’s buffer is in the lower 32K of CPU address space. For optimal performance, such buffers should be placed in the upper 32K of CPU address space. - -\newpage +HBIOS functions are invoked by placing the required parameters in CPU +registers and executing an RST 08 instruction. Note that HBIOS does not +preserve register values that are unused. However, it will not modify the +Z80 alternate registers or IX/IY (these registers may be used within HBIOS, +but will be saved and restored internally). + +Normally, applications will not call HBIOS functions directly. It is +intended that the operating system makes all HBIOS function calls. +Applications that are considered system utilities may use HBIOS, but must +be careful not to modify the operating environment in any way that the +operating system does not expect. + +In general, the desired function is placed in the B register. Register C is +frequently used to specify a subfunction or a target device unit number. +Additional registers are used as defined by the specific function. Register +A should be used to return function result information. A=0 should +indicate success, other values are function specific. + +The character, disk, and video device functions all refer to target devices +using a logical device unit number that is passed in the C register. Keep +in mind that these unit numbers are assigned dynamically at HBIOS +initialization during the device discovery process. The assigned unit +numbers are displayed on the consoled at the conclusion of device +initialization. The unit assignments will never change after HBIOS +initialization. However, they can change at the next boot if there have +been hardware or BIOS customization changes. Code using HBIOS functions +should not assume fixed unit assignments. + +Some functions utilize pointers to memory buffers. Unless otherwise stated, +such buffers can be located anywhere in the Z80 CPU 64K address space. +However, performance sensitive buffers (primarily disk I/O buffers) will +require double-buffering if the caller’s buffer is in the lower 32K of CPU +address space. For optimal performance, such buffers should be placed in +the upper 32K of CPU address space. + +`\clearpage`{=latex} Character Input/Output (CIO) ---------------------------- -Character input/output functions require that a Character Unit be specified in the C register. This is the logical device unit number assigned during the boot process that identifies all character I/O devices uniquely. A special value of 0x80 can be used for Unit to refer to the current console device. +Character input/output functions require that a Character Unit be specified +in the C register. This is the logical device unit number assigned during +the boot process that identifies all character I/O devices uniquely. A +special value of 0x80 can be used for Unit to refer to the current console +device. Character devices can usually be configured with line characteristics such as speed, framing, etc. A word value (16 bit) is used to describe @@ -420,8 +449,9 @@ bits are defined as YXXXX. | A: Status (0=OK, else error) | E: Character Received -Read a character from the device unit specified in register C and return the character -value in E. If no character(s) are available, this function will wait indefinitely. +Read a character from the device unit specified in register C and return +the character value in E. If no character(s) are available, this function +will wait indefinitely. ### Function 0x01 -- Character Output (CIOOUT) @@ -433,8 +463,8 @@ value in E. If no character(s) are available, this function will wait indefinite | _Exit Results_ | A: Status (0=OK, else error) -Send character value in register E to device specified in register C. If device is -not ready to send, function will wait indefinitely. +Send character value in register E to device specified in register C. If +device is not ready to send, function will wait indefinitely. ### Function 0x02 -- Character Input Status (CIOIST) @@ -445,10 +475,10 @@ not ready to send, function will wait indefinitely. | _Exit Results_ | A: Bytes Pending -Return the number of characters available to read in the input buffer of the unit -specified. If the device has no input buffer, it is acceptable to return simply 0 or -1 where 0 means there is no character available to read and 1 means there is at -least one character available to read. +Return the number of characters available to read in the input buffer of +the unit specified. If the device has no input buffer, it is acceptable to +return simply 0 or 1 where 0 means there is no character available to read +and 1 means there is at least one character available to read. ### Function 0x03 -- Character Output Status (CIOOST) @@ -459,11 +489,12 @@ least one character available to read. | _Exit Results_ | A: Output Buffer Bytes Available -Return the space available in the output buffer expressed as a character count. If a -16 byte output buffer contained 6 characters waiting to be sent, this function would -return 10, the number of positions available in the output buffer. If the port has -no output buffer, it is acceptable to return simply 0 or 1 where 0 means the port is -busy and 1 means the port is ready to output a character. +Return the space available in the output buffer expressed as a character +count. If a 16 byte output buffer contained 6 characters waiting to be +sent, this function would return 10, the number of positions available in +the output buffer. If the port has no output buffer, it is acceptable to +return simply 0 or 1 where 0 means the port is busy and 1 means the port is +ready to output a character. ### Function 0x04 -- Character IO Initialization (CIOINIT) @@ -475,10 +506,11 @@ busy and 1 means the port is ready to output a character. | _Exit Results_ | A: Status (0=OK, else error) -Setup line characteristics (baudrate, framing, etc.) of the specified unit. Register -pair DE specifies line characteristics. If DE contains -1 (0xFFFF), then the device -will be reinitialized with the last line characteristics used. Result of function -is returned in A with zero indicating success. +Setup line characteristics (baudrate, framing, etc.) of the specified unit. +Register pair DE specifies line characteristics. If DE contains -1 +(0xFFFF), then the device will be reinitialized with the last line +characteristics used. Result of function is returned in A with zero +indicating success. ### Function 0x05 -- Character IO Query (CIOQUERY) @@ -490,8 +522,8 @@ is returned in A with zero indicating success. | A: Status (0=OK, else error) | DE: Line Characteristics -Reports the line characteristics (baudrate, framing, etc.) of the specified unit. -Register pair DE contains the line characteristics upon return. +Reports the line characteristics (baudrate, framing, etc.) of the specified +unit. Register pair DE contains the line characteristics upon return. ### Function 0x06 -- Character IO Device (CIODEVICE) @@ -505,11 +537,14 @@ Register pair DE contains the line characteristics upon return. | D: Serial Device Type | E: Serial Device Number -Reports information about the character device unit specified. Register C indicates -the device attributes: 0=RS-232 and 1=Terminal. Register D indicates the device type -(driver) and register E indicates the physical device number assigned by the driver. +Reports information about the character device unit specified. Register C +indicates the device attributes: 0=RS-232 and 1=Terminal. Register D +indicates the device type (driver) and register E indicates the physical +device number assigned by the driver. -Each character device is handled by an appropriate driver (UART, ASCI, etc.). The driver can be identified by the Device Type. The assigned Device Types are listed below. +Each character device is handled by an appropriate driver (UART, ASCI, +etc.). The driver can be identified by the Device Type. The assigned Device +Types are listed below. _Id_ | _Device Type / Driver_ ---- | ---------------------- @@ -523,17 +558,18 @@ _Id_ | _Device Type / Driver_ 0x70 | PIO 0x80 | UF -\newpage +`\clearpage`{=latex} Disk Input/Output (DIO) ----------------------- -Character input/output functions require that a character unit be -specified in the C register. This is the logical disk unit number -assigned during the boot process that identifies all disk i/o devices -uniquely. +Character input/output functions require that a character unit be specified +in the C register. This is the logical disk unit number assigned during +the boot process that identifies all disk i/o devices uniquely. -A fixed set of media types are defined. The currently defined media types are listed below. Each driver will support a subset of the defined media types. +A fixed set of media types are defined. The currently defined media types +are listed below. Each driver will support a subset of the defined media +types. **Media ID** | **Value** | **Format** ------------ | --------- | ---------- @@ -565,9 +601,9 @@ MID\_FD111 | 9 | 8" 1.11M Floppy | _Exit Results_ | A: Status (0=OK, else error) -Reset the physical interface associated with the specified unit. Flag -all units associated with the interface for unit initialization at next -I/O call. Clear media identified unless locked. Reset result code of all +Reset the physical interface associated with the specified unit. Flag +all units associated with the interface for unit initialization at next +I/O call. Clear media identified unless locked. Reset result code of all associated units of the physical interface. ### Function 0x12 -- Disk Seek (DIOSEEK) @@ -588,9 +624,8 @@ associated units of the physical interface. | _Exit Results_ | A: Status (0=OK, else error) -Update target CHS or LBA for next I/O request on designated unit. -Physical seek is typically deferred until subsequent I/O -operation. +Update target CHS or LBA for next I/O request on designated unit. Physical +seek is typically deferred until subsequent I/O operation. Bit 7 of D indicates whether the disk seek address is specified as cylinder/head/sector (CHS) or Logical Block Address (LBA). If D:7=1, then @@ -613,17 +648,18 @@ determine if the device supports LBA addressing. | _Exit Results_ | A: Status (0=OK, else error) -| E: Blocks Reaad +| E: Blocks Read Read Block Count sectors to buffer address starting at current target -sector. Current sector must be established by prior seek function; -however, multiple read/write/verify function calls can be made after a -seek function. Current sector is incremented after each sector -successfully read. On error, current sector is sector is sector where -error occurred. Blocks read indicates number of sectors successfully read. +sector. Current sector must be established by prior seek function; however, +multiple read/write/verify function calls can be made after a seek +function. Current sector is incremented after each sector successfully +read. On error, current sector is sector is sector where error occurred. +Blocks read indicates number of sectors successfully read. -Caller must ensure: 1) buffer address is large enough to contain data for all -sectors requested, and 2) entire buffer area resides in upper 32K of memory. +Caller must ensure: 1) buffer address is large enough to contain data for +all sectors requested, and 2) entire buffer area resides in upper 32K of +memory. ### Function 0x14 -- Disk Write (DIOWRITE) @@ -638,15 +674,15 @@ sectors requested, and 2) entire buffer area resides in upper 32K of memory. | E: Blocks Written Write Block Count sectors to buffer address starting at current target -sector. Current sector must be established by prior seek function; -however, multiple read/write/verify function calls can be made after a -seek function. Current sector is incremented after each sector -successfully written. On error, current sector is sector is sector where -error occurred. Blocks written indicates number of sectors successfully -written. +sector. Current sector must be established by prior seek function; however, +multiple read/write/verify function calls can be made after a seek +function. Current sector is incremented after each sector successfully +written. On error, current sector is sector is sector where error occurred. +Blocks written indicates number of sectors successfully written. -Caller must ensure: 1) buffer address is large enough to contain data for all -sectors being written, and 2) entire buffer area resides in upper 32K of memory. +Caller must ensure: 1) buffer address is large enough to contain data for +all sectors being written, and 2) entire buffer area resides in upper 32K +of memory. ### Function 0x15 -- Disk Verify (DIOVERIFY) @@ -782,7 +818,7 @@ block size. If media is unknown, an error will be returned. Report current media geometry information. If media is unknown, return error (no media). -\newpage +`\clearpage`{=latex} Real Time Clock (RTC) --------------------- @@ -836,8 +872,8 @@ pointed to by HL. | A: Status (0=OK, else error) | E: Value -Read a single byte value from the Non-Volatile RAM at the index -specified by C. The value is returned in register E. +Read a single byte value from the Non-Volatile RAM at the index specified +by C. The value is returned in register E. ### Function 0x23 -- RTC Set NVRAM Byte (RTCSETBYT) @@ -849,8 +885,8 @@ specified by C. The value is returned in register E. | A: Status (0=OK, else error) | E: Value -Write a single byte value into the Non-Volatile RAM at the index -specified by C. The value to be written is specified in E. +Write a single byte value into the Non-Volatile RAM at the index specified +by C. The value to be written is specified in E. ### Function 0x24 -- RTC Get NVRAM Block (RTCGETBLK) @@ -873,9 +909,10 @@ to by HL. HL must point to a location in the top 32K of CPU address space. | _Exit Results_ | A: Status (0=OK, else error) -Write the entire contents of the Non-Volatile RAM from the buffer -pointed to by HL. HL must point to a location in the top 32K of CPU -address space. +Write the entire contents of the Non-Volatile RAM from the buffer pointed +to by HL. HL must point to a location in the top 32K of CPU address space. + +`\clearpage`{=latex} Video Display Adapter (VDA) --------------------------- @@ -889,11 +926,10 @@ attributes may or may not be supported. If the hardware does not support these capabilities, they will be ignored. Color byte values are constructed using typical RGBI -(Red/Green/Blue/Intensity) bits. The high four bits of the value -determine the background color and the low four bits determine the -foreground color. This results in 16 unique color values for both -foreground and background. The following table illustrates the color -byte value construction: +(Red/Green/Blue/Intensity) bits. The high four bits of the value determine +the background color and the low four bits determine the foreground color. +This results in 16 unique color values for both foreground and background. +The following table illustrates the color byte value construction:   | **Bit** | **Color** ---------- | ------- | --------- @@ -1254,6 +1290,8 @@ Keycodes are generally returned as appropriate ASCII values, if possible. Special keys, like function keys, are returned as reserved codes as described at the start of this section. +`\clearpage`{=latex} + System (SYS) ------------ @@ -1364,10 +1402,10 @@ change. WARNINGS: * This function is inherently dangerous and does not prevent you from - corrupting critical areas of memory. Use with **extreme** caution. +corrupting critical areas of memory. Use with **extreme** caution. * Overlapping source and destination memory ranges are not supported and - will result in undetermined behavior. +will result in undetermined behavior. * Copying of byte ranges that cross bank boundaries is undefined. @@ -1409,7 +1447,7 @@ allocated memory. | A: Status (0=OK, else error) This function will report various system information based on the -sub-function value. The following lists the subfunctions +sub-function value. The following lists the subfunctions available along with the registers/information returned. #### SYSGET Subfunction 0x00 -- Get Serial Device Unit Count (CIOCNT) @@ -1581,50 +1619,59 @@ The bank specified is not range checked. | _Returned Values_ | A: Status (0=OK, else error) -This function allows the caller to query information about the interrupt configuration of -the running system and allows adding or hooking interrupt handlers dynamically. Register C -is used to specify a subfunction. Additional input and output registers may be used as -defined by the sub-function. +This function allows the caller to query information about the interrupt +configuration of the running system and allows adding or hooking interrupt +handlers dynamically. Register C is used to specify a subfunction. +Additional input and output registers may be used as defined by the +sub-function. -Note that during interrupt processing, the lower 32K of CPU address space will contain the -RomWBW HBIOS code bank, not the lower 32K of application TPA. As such, a dynamically -installed interrupt handler does not have access to the lower 32K of TPA and must be -careful to avoid modifying the contents of the lower 32K of memory. Invoking RomWBW HBIOS -functions within an interrupt handler is not supported. +Note that during interrupt processing, the lower 32K of CPU address space +will contain the RomWBW HBIOS code bank, not the lower 32K of application +TPA. As such, a dynamically installed interrupt handler does not have +access to the lower 32K of TPA and must be careful to avoid modifying the +contents of the lower 32K of memory. Invoking RomWBW HBIOS functions +within an interrupt handler is not supported. Interrupt handlers are different for IM1 or IM2. For IM1: -> The new interrupt handler is responsible for chaining (JP) to the previous vector if the - interrupt is not handled. If the interrupt is handled, the new handler may simply return - (RET). When chaining to the previous interrupt handler, ZF must be set if interrupt is - handled and ZF cleared if not handled. The interrupt management framework takes care of - saving and restoring AF, BC, DE, HL, and IY. Any other registers modified must be saved - and restored by the interrupt handler. +> The new interrupt handler is responsible for chaining (JP) to the +previous vector if the interrupt is not handled. If the interrupt is +handled, the new handler may simply return (RET). When chaining to the +previous interrupt handler, ZF must be set if interrupt is handled and +ZF cleared if not handled. The interrupt management framework takes care +of saving and restoring AF, BC, DE, HL, and IY. Any other registers +modified must be saved and restored by the interrupt handler. For IM2: -> The new interrupt handler may either replace or hook the previous interrupt handler. To - replace the previous interrupt handler, the new handler just returns (RET) when done. To - hook the previous handler, the new handler can chain (JP) to the previous vector. Note - that initially all IM2 interrupt vectors are set to be handled as “BAD” meaning that the - interrupt is unexpected. In most cases, you do not want to chain to the previous vector - because it will cause the interrupt to display a “BAD INT” system panic message. - - The interrupt framework will take care of issuing an EI and RETI instruction. Do not put - these instructions in your new handler. Additionally, interrupt management framework takes care of saving and restoring AF, BC, DE, HL, and IY. Any other registers modified must be saved and restored by the interrupt handler. - - -If the caller is transient, then the caller must remove the new interrupt handler and -restore the original one prior to termination. This is accomplished by calling this -function with the Interrupt Vector set to the Previous Vector returned in the original call. - -The caller is responsible for disabling interrupts prior to making an INTSET call and -enabling them afterwards. The caller is responsible for ensuring that a valid interrupt -handler is installed prior to enabling any hardware interrupts associated with the handler. -Also, if the handler is transient, the caller must disable the hardware interrupt(s) -associated with the handler prior to uninstalling it. +> The new interrupt handler may either replace or hook the previous +interrupt handler. To replace the previous interrupt handler, the new +handler just returns (RET) when done. To hook the previous handler, the +new handler can chain (JP) to the previous vector. Note that initially +all IM2 interrupt vectors are set to be handled as “BAD” meaning that the +interrupt is unexpected. In most cases, you do not want to chain to the +previous vector because it will cause the interrupt to display a “BAD +INT” system panic message. + +The interrupt framework will take care of issuing an EI and RETI +instruction. Do not put these instructions in your new handler. +Additionally, interrupt management framework takes care of saving and +restoring AF, BC, DE, HL, and IY. Any other registers modified must be +saved and restored by the interrupt handler. + +If the caller is transient, then the caller must remove the new interrupt +handler and restore the original one prior to termination. This is +accomplished by calling this function with the Interrupt Vector set to the +Previous Vector returned in the original call. + +The caller is responsible for disabling interrupts prior to making an +INTSET call and enabling them afterwards. The caller is responsible for +ensuring that a valid interrupt handler is installed prior to enabling any +hardware interrupts associated with the handler. Also, if the handler is +transient, the caller must disable the hardware interrupt(s) associated +with the handler prior to uninstalling it. #### SYSINT Subfunction 0x00 -- Interrupt Info (INTINF) @@ -1636,9 +1683,9 @@ associated with the handler prior to uninstalling it. | D: Interrupt Mode | E: Size (# entries) of Interrupt Vector Table -Return interrupt mode in D and size of interrupt vector table in E. For -IM1, the size of the table is the number of vectors chained together. -For IM2, the size of the table is the number of slots in the vector +Return interrupt mode in D and size of interrupt vector table in E. For +IM1, the size of the table is the number of vectors chained together. +For IM2, the size of the table is the number of slots in the vector table. #### SYSINT Subfunction 0x10) -- Get Interrupt (INTGET) @@ -1651,8 +1698,8 @@ table. | A: Status (0=OK, else error) | HL: Current Interrupt Vector Address -On entry, register E must contain an index into the interrupt vector -table. On return, HL will contain the address of the current interrupt +On entry, register E must contain an index into the interrupt vector +table. On return, HL will contain the address of the current interrupt vector at the specified index. #### SYSINT Subfunction 0x20) -- Set Interrupt (INTSET) @@ -1667,6 +1714,7 @@ vector at the specified index. | HL: Previous Interrupt Vector Address | DE: Interrupt Routing Engine Address (IM2) -On entry, register E must contain an index into the interrupt vector table and register HL -must contain the address of the new interrupt vector to be inserted in the table at the -index. On return, HL will contain the previous address in the table at the index. +On entry, register E must contain an index into the interrupt vector table +and register HL must contain the address of the new interrupt vector to +be inserted in the table at the index. On return, HL will contain the +previous address in the table at the index. diff --git a/Source/Doc/GettingStarted.md b/Source/Doc/GettingStarted.md index ff32af7c..fa4c5337 100644 --- a/Source/Doc/GettingStarted.md +++ b/Source/Doc/GettingStarted.md @@ -44,54 +44,103 @@ header-includes: ### Download - * [RomWBW Distribution Package](https://github.com/wwarthen/RomWBW/releases) +* [RomWBW Distribution Package](https://github.com/wwarthen/RomWBW/releases) ### Related Pages - * [RomWBW Architecture Document](https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=software:firmwareos:romwbw:romwbw_architecture.pdf) - * [RomWBW Applications](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps) - * [RomWBW Errata](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:errata) +* [RomWBW Architecture Document](https://www.retrobrewcomputers.org/lib/exe/fetch.php?media=software:firmwareos:romwbw:romwbw_architecture.pdf) +* [RomWBW Applications](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps) +* [RomWBW Errata](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:errata) # Overview -RomWBW provides a complete software system for a wide variety of hobbyist Z80/Z180 CPU-based systems produced by these developer communities: +RomWBW provides a complete software system for a wide variety of hobbyist +Z80/Z180 CPU-based systems produced by these developer communities: - * [RetroBrew Computers](https://www.retrobrewcomputers.org) - * [RC2014](https://rc2014.co.uk) - * [retro-comp](https://groups.google.com/forum/#!forum/retro-comp) +* [RetroBrew Computers](https://www.retrobrewcomputers.org) +* [RC2014](https://rc2014.co.uk) +* [retro-comp](https://groups.google.com/forum/#!forum/retro-comp) General features include: - * Banked memory services for several banking designs - * Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD - * Serial drivers including UART (16550-like), ASCI, ACIA, SIO - * Video drivers including TMS9918, SY6545, MOS8563, HD6445 - * Real time clock drivers including DS1322, BQ4845 - * Multiple OS support including CP/M 2.2, ZSDOS, CP/M 3, ZPM3 - * Built-in VT-100 terminal emulation support - -RomWBW is distributed as both source code and pre-built ROM and disk images. Some of the provided software can be launched directly from the ROM firmware itself: - - * System monitor - * Operating systems (CP/M 2.2, ZSDOS) - * ROM BASIC (Nascom BASIC and Tasty BASIC) - * ROM Forth - -A dynamic disk drive letter assignment mechanism allows mapping operating system drive letters to any available disk media. Additionally, mass media devices (IDE Disk, CF Card, SD Card) support the use of multiple slices (up to 256 per device). Each slice contains a complete CP/M filesystem and can be mapped independently to any drive letter. This overcomes the inherent size limitations in legacy OSes providing up to 2GB of accessible storage on a single device. - -The pre-built ROM firmware images are generally optimal for most users. However, it is also very easy to modify and build custom ROM images that fully tailor the firmware to your specific preferences. All tools required to build custom ROM firmware are included -- no need to install assemblers, etc. Any modern computer running Windows, Linux, or MacOS can be used. - -Multiple disk images are provided in the distribution. Most disk images contain a complete, bootable, ready-to-run implementation of a specific operating system. A "combo" disk image contains multiple slices, each with a full operating system implementation. If you use this disk image, you can easily pick whichever operating system you want to boot without changing media. +* Banked memory services for several banking designs +* Disk drivers for RAM, ROM, Floppy, IDE, CF, and SD +* Serial drivers including UART (16550-like), ASCI, ACIA, SIO +* Video drivers including TMS9918, SY6545, MOS8563, HD6445 +* Real time clock drivers including DS1322, BQ4845 +* Multiple OS support including CP/M 2.2, ZSDOS, CP/M 3, ZPM3 +* Built-in VT-100 terminal emulation support + +RomWBW is distributed as both source code and pre-built ROM and disk +images. Some of the provided software can be launched directly from the +ROM firmware itself: + +* System Monitor +* Operating Systems (CP/M 2.2, ZSDOS) +* ROM BASIC (Nascom BASIC and Tasty BASIC) +* ROM Forth + +A dynamic disk drive letter assignment mechanism allows mapping +operating system drive letters to any available disk media. +Additionally, mass media devices (IDE Disk, CF Card, SD Card) support +the use of multiple slices (up to 256 per device). Each slice contains +a complete CP/M filesystem and can be mapped independently to any +drive letter. This overcomes the inherent size limitations in legacy +OSes and allows up to 2GB of accessible storage on a single device. + +The pre-built ROM firmware images are generally optimal for most +users. However, it is also very easy to modify and build custom ROM +images that fully tailor the firmware to your specific preferences. +All tools required to build custom ROM firmware are included -- no +need to install assemblers, etc. Any modern computer running Windows, +Linux, or MacOS can be used. + +Multiple disk images are provided in the distribution. Most disk +images contain a complete, bootable, ready-to-run implementation of a +specific operating system. A "combo" disk image contains multiple +slices, each with a full operating system implementation. If you use +this disk image, you can easily pick whichever operating system you +want to boot without changing media. # Installation -The latest RomWBW distribution downloads are maintained on GitHub in the [RomWBW Repository](https://github.com/wwarthen/RomWBW). The fully-built distributions are found on the [releases page](https://github.com/wwarthen/RomWBW/releases) of the repository. On this page, you will probably see both pre-releases as well as normal releases. Unless you have a specific reason, I suggest you stick to the most recent normal release (not pre-release). Expand the "Assets" drop-down for the release you want to download, then select the asset named RomWBW-vX.X.X-Package.zip. The Package asset includes all pre-built ROM and Disk images as well as full source code. The other assets are Source Code only and do not have the pre-built ROM or disk images. - -The pre-built ROM images will automatically detect and support a reasonable range of devices including serial ports, video adapters, on-board disk interfaces, and PropIO/ParPortProp boards without building a custom ROM. The distribution is a .zip archive. After downloading it to a working directory on your modern computer (Windows/Linux/Mac) use any zip tool to extract the contents of the archive. - -In general, you will just program your system's ROM chip with the appropriate ROM image from the RomWBW distribution. Depending on how you got your system, you may have already been provided with a pre-programmed ROM chip. If so, use that initially. Otherwise, you will need to use a ROM programmer to initially program your ROM chip. Please refer to the documentation that came with your ROM programmer for more information. Once you have a running RomWBW system, you can generally update your ROM to a newer version in-situ with an included ROM Flashing tool (Will Sowerbutts' FLASH application) as described in the Upgrading section below. - -Looking at the extracted distribution archive, You will see that the distribution is broken up into a few sub-directories. The Binary directory contains the pre-built ROM and disk images. The ROM image files all end in ".rom". Based on the table below, **carefully** pick the appropriate ROM image: +The latest RomWBW distribution downloads are maintained on GitHub in the +[RomWBW Repository](https://github.com/wwarthen/RomWBW). The fully-built +distributions are found on the +[releases page](https://github.com/wwarthen/RomWBW/releases) of the +repository. On this page, you will probably see both pre-releases as +well as normal releases. Unless you have a specific reason, I suggest +you stick to the most recent normal release (not pre-release). Expand +the "Assets" drop-down for the release you want to download, then +select the asset named RomWBW-vX.X.X-Package.zip. The Package asset +includes all pre-built ROM and Disk images as well as full source +code. The other assets are Source Code only and do not have the +pre-built ROM or disk images. + +The pre-built ROM images will automatically detect and support a +reasonable range of devices including serial ports, video adapters, +on-board disk interfaces, and PropIO/ParPortProp boards without +building a custom ROM. The distribution is a .zip archive. After +downloading it to a working directory on your modern computer +(Windows/Linux/Mac) use any zip tool to extract the contents of the +archive. + +In general, you will just program your system's ROM chip with the +appropriate ROM image from the RomWBW distribution. Depending on how +you got your system, you may have already been provided with a +pre-programmed ROM chip. If so, use that initially. Otherwise, you +will need to use a ROM programmer to initially program your ROM chip. +Please refer to the documentation that came with your ROM programmer +for more information. Once you have a running RomWBW system, you can +generally update your ROM to a newer version in-situ with an included +ROM Flashing tool (Will Sowerbutts' FLASH application) as described in +the Upgrading section below. + +Looking at the extracted distribution archive, You will see that the +distribution is broken up into a few sub-directories. The Binary +directory contains the pre-built ROM and disk images. The ROM image +files all end in ".rom". Based on the table below, **carefully** pick +the appropriate ROM image for your hardware. | Platform | ROM Image File | Baud | Description | | --------------| --------------------- | --------: | ------------------------------------------------ | @@ -109,23 +158,79 @@ Looking at the extracted distribution archive, You will see that the distributio | SC131 | SCZ180_131.rom | 115200 | Stephen Cousin's SC131 Z180 | | Dyno | DYNO_std.rom | 38400 | Steve Garcia's Z180 Dyno Computer | -\*The RC2014 Z180 requires a separate RAM/ROM memory module. There are two types of these modules and you must pick the ROM for your type of memory module. The "ext" ROM supports Spencer's official 512K RAM/ROM banked memory module. The "nat" ROM supports any of the third-party Z180 native memory modules. - -RomWBW will automatically attempt to detect and support typical add-on components for each of the systems supported. More information on the required system configuration and optional supported components for each ROM is found in the file called "RomList.txt" in the Binary directory. All pre-built ROM images are simple 512KB binary images. If your system utilizes a larger ROM chip, you can just program the image into the first 512KB of the ROM. - -Connect a serial terminal or computer with terminal emulation software to the primary serial port of your CPU board. You may need to refer to your hardware provider's documentation for details. A null-modem connection may be required. Set the baud rate as indicated in the table above. Set the line characteristics to 8 data bits, 1 stop bit, no parity, and no flow control. If possible, select VT-100 terminal emulation. - -Upon power-up, your terminal should display a sign-on banner within 2 seconds followed by hardware inventory and discovery information. When hardware initialization is completed, a boot loader prompt allows you to choose a ROM-based operating system, system monitor, application, or boot from a disk device. - -Initially, you should try the ROM boot options. By selecting either CP/M 2.2 or Z-System, the operating system will be loaded from ROM and you will see the a `B>` disk prompt. In this scenario, A: will be an empty RAM disk and B: will refer to your ROM disk containing some typical applications. This provides a simple environment for learning to use your system. Be aware that files saved to the RAM disk (A:) will disappear at the next power on (RAM is generally not persistent). Also note that attempts to save files to the ROM disk (B:) will fail because ROM is not writable. +\*The RC2014 Z180 requires a separate RAM/ROM memory module. There are +two types of these modules and you must pick the ROM for your type of +memory module. The "ext" ROM supports Spencer's official 512K RAM/ROM +banked memory module. The "nat" ROM supports any of the third-party +Z180 native memory modules. + +RomWBW will automatically attempt to detect and support typical add-on +components for each of the systems supported. More information on the +required system configuration and optional supported components for +each ROM is found in the file called "RomList.txt" in the Binary +directory. All pre-built ROM images are simple 512KB binary images. If +your system utilizes a larger ROM chip, you can just program the +image into the first 512KB of the ROM. + +Connect a serial terminal or computer with terminal emulation software +to the primary serial port of your CPU board. You may need to refer +to your hardware provider's documentation for details. A null-modem +connection may be required. Set the baud rate as indicated in the +table above. Set the line characteristics to 8 data bits, 1 stop bit, +no parity, and no flow control. If possible, select VT-100 terminal +emulation. + +Upon power-up, your terminal should display a sign-on banner within 2 +seconds followed by hardware inventory and discovery information. When +hardware initialization is completed, a boot loader prompt allows you to +choose a ROM-based operating system, system monitor, application, or boot +from a disk device. + +Initially, you should try the ROM boot options. By selecting either +CP/M 2.2 or Z-System, the selected operating system will be loaded +from ROM and you will see the a `B>` disk prompt. In this scenario, A: +will be an empty RAM disk and B: will refer to your ROM disk +containing some common applications. This provides a simple +environment for learning to use your system. Be aware that files saved +to the RAM disk (A:) will disappear at the next power on (RAM is +generally not persistent). Also note that attempts to save files to +the ROM disk (B:) will fail because ROM is not writable. # Upgrading -Upgrading to a newer release of RomWBW is essentially just a matter of updating the ROM chip in your system. If you have spare ROM chips for your system and a ROM programmer, it is always safest to keep your existing, working ROM chip and program a new one with the new firmware. If the new one fails to boot, you can easily return to the known working ROM. - -Prior to attempting to reprogram your actual ROM chip, you may wish to "try" the upgrade. With RomWBW, you can upload a new system image and load it from the command line. For each ROM image file (.rom) in the Binary directory, you will also find a corresponding application file (.com). For example, for SBC_std.rom, there is also an SBC_std.com file. You can upload the .com file to your system using XModem, then simply run the .com file. You will see your system go through the normal startup process just like it was started from ROM. However, your ROM has not been updated and the next time you boot your system, it will revert to the system image contained in ROM. You may find that you are unable to load the .com file because it is too large to fit in available application RAM (TPA). Unfortunately, in this case, you will not be able to use the .com file mechanism to start your system. - -If you do not have easy access to a ROM programmer, it is usually possible to reprogram your system ROM using the FLASH utility from Will Sowerbutts. This application called FLASH.COM can be found on the ROM drive of any running system. In this case, you would need to transfer the new ROM image (.rom) over to your system using XModem (or one of the other mechanisms described in the Transferring Files section below). The ROM image will be too large to fit on your RAM drive, so you will need to transfer it to a larger storage drive. Once the ROM image is on your system, you can use the FLASH application to update your ROM. The following is a typical example of transferring ROM image using XModem and flashing the chip in-situ. +Upgrading to a newer release of RomWBW is essentially just a matter of +updating the ROM chip in your system. If you have spare ROM chips for +your system and a ROM programmer, it is always safest to retain your +existing, working ROM chip and program a new one with the new +firmware. If the new one fails to boot, you can easily return to the +known working ROM. + +Prior to attempting to reprogram your actual ROM chip, you may wish to +"try" the upgrade. With RomWBW, you can upload a new system image +executable and load it from the command line. For each ROM image file +(.rom) in the Binary directory, you will also find a corresponding +application file (.com). For example, for SBC_std.rom, there is also +an SBC_std.com file. You can upload the .com file to your system using +XModem, then simply run the .com file. You will see your system go +through the normal startup process just like it was started from ROM. +However, your ROM has not been updated and the next time you boot your +system, it will revert to the system image contained in ROM. You may +find that you are unable to load the .com file because it is too large +to fit in available application RAM (TPA). Unfortunately, in this +case, you will not be able to use the .com file mechanism to start +your system. + +If you do not have easy access to a ROM programmer, it is usually +possible to reprogram your system ROM using the FLASH utility from +Will Sowerbutts. This application, called FLASH.COM, can be found on the +ROM drive of any running system. In this case, you would need to +transfer the new ROM image (.rom) over to your system using XModem (or +one of the other mechanisms described in the Transferring Files +section below). The ROM image is too large to fit on your RAM drive, +so you will need to transfer it to a larger storage drive. Once the +ROM image is on your system, you can use the FLASH application to +update your ROM. The following is a typical example of transferring +ROM image using XModem and flashing the chip in-situ. ``` E>xm r rom.img @@ -150,39 +255,345 @@ Write complete: Reprogrammed 2/128 sectors. Verify (128 sectors) complete: OK! ``` -Obviously, there is some risk to this approach since any issues with the programming or ROM image could result in a non-functional system. +Obviously, there is some risk to this approach since any issues with the +programming or ROM image could result in a non-functional system. + +To confirm your ROM chip has been successfully updated, restart your +system and boot an operating system from ROM. Do not boot from a disk +device yet. Review the boot messages to see if any issues have +occurred. + +Once you are satisfied that the ROM is working well, you will need to +update the system images and RomWBW custom applications on your disk +drives. The system images and custom applications are matched to the +RomWBW ROM firmware in use. If you attempt to boot a disk or run +applications that have not been updated to match the current ROM +firmware, you are likely to have odd problems. + +The simplest way to update your disk media is to just use your modern +computer to overwrite the entire media with the latest disk image of your +choice. This process is described below in the Disk Images section. If +you wish to update existing disk media in your system, you need to perform +the following steps. + +If the disk is bootable, you need to update the system tracks of the +disk.This is done using a SYSCOPY command such as `SYSCOPY +C:=B:ZSYS.SYS`. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M 2.2 +disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. +CPMLDR.SYS is not provided on the ROM disk, so you would need to +upload it from the distribution. + +Finally, if you have copies of any of the RomWBW custom applications +on your hard disk, you need to update them with the latest copies. The +following applications are found on your ROM disk. Use COPY to copy +them over any older versions of the app on your disk: + +* ASSIGN.COM +* SYSCOPY.COM +* MODE.COM +* FDU.COM (was FDTST.COM) +* OSLDR.COM +* FORMAT.COM +* XM.COM +* FLASH.COM +* FDISK80.COM +* TALK.COM +* RTC.COM +* TIMER.COM +* INTTEST.COM + +For example: `B>COPY ASSIGN.COM C:` + +Some RomWBW custom applications are too large to fit on the ROM disk. +If you are using any of these you will need to transfer them to your +system and then update all copies. These applications are found in +the Binary\\Apps directory of the distribution and in all of the disk +images. + +* FAT.COM +* TUNE.COM + +# General Usage + +Each of the operating systems and ROM applications included with +RomWBW are sophisticated tools in their own right. It is not +reasonable to document their usage here. However, you will find +complete manuals in PDF format in the Doc directory of the +distribution. The intention of this section is to document the RomWBW +specific enhancements to these operating systems. + +## Inbuilt ROM Applications + +In addition to CP/M 2.2 and Z-System, there are several ROM +applications that can be launched directly from ROM. These +applications are not hosted by an operating system and so they are +unable to save files to disk devices. -To confirm your ROM chip has been successfully updated, restart your system and boot an operating system from ROM. Do not boot from a disk device yet. Review the boot messages to see if any issues have occurred. +The following ROM applications are available at the boot loader prompt: + +| Application | | +| ----------- | -------------------------------------------------------------- | +| Monitor | Z80 system debug monitor w/ Intel Hex loader | +| Forth | Brad Rodriguez's ANSI compatible Forth language | +| Basic | Nascom 8K BASIC language | +| Tasty BASIC | Dimitri Theuling's Tiny BASIC implementation | +| Play | A simple video game (requires ANSI terminal emulation) | -Once you are satisfied that the ROM is working well, you will need to update the system images and RomWBW custom applications on your disk drives. The system images and custom applications are matched to the RomWBW ROM firmware in use. If you attempt to boot a disk or run applications that have not been updated to match the current ROM firmware, you are likely to have odd problems. +In general, the command to exit these applications and restart the +system is `BYE`. The exceptions are the Monitor which uses `B` and +Play which uses `Q`. -The simplest way to update your disk media is to just use your modern computer to overwrite the entire media with the latest disk image of your choice. This process is described below in the Disk Images section. If you wish to update existing disk media in your system, you need to perform the following steps. +Space is available in the ROM image for the inclusion of other +software. Any inbuilt application can be set up to launch +automatically at startup. -If the disk is bootable, you need to update the system tracks of the disk. This is done using a SYSCOPY command such as `SYSCOPY C:=B:ZSYS.SYS`. For a ZSDOS boot disk, use ZSYS.SYS. For a CP/M 2.2 disk, use CPM.SYS. For a CP/M 3 or ZPM3 disk, use CPMLDR.SYS. CPMLDR.SYS is not provided on the ROM disk, so you would need to upload it from the distribution. +## Devices and Units -Finally, if you have copies of any of the RomWBW custom applications on your hard disk, you need to update them with the latest copies. The following applications are found on your ROM disk. Use COPY to copy them over any older versions of the app on your disk: +In order to support a wide variety of hardware, RomWBW HBIOS uses a +modular approach to implementing device drivers and presenting devices +to the operating system. In general, all devices are classified as +one of the following: - * ASSIGN.COM - * FORMAT.COM - * OSLDR.COM - * SYSCOPY.COM - * TALK.COM - * FDU.COM (was FDTST.COM) - * XM.COM - * MODE.COM - * RTC.COM - * TIMER.COM - * INTTEST.COM +* Disk (Hard Disk, CF Card, SD Card, RAM/ROM Disk, etc.) +* Character (Serial Ports, Parallel Ports, etc.) +* Video (Video Display/Keyboard Interfaces) +* RTC/NVRAM (Real Time Clock, Non-volatile RAM) -For example: `B>COPY ASSIGN.COM C:` +HBIOS uses the concept of unit numbers to present a complex set of +hardware devices to the operating system. As an example, a typical +system might have a ROM Disk, RAM Disk, Floppy Drives, and Disk +Drives. All of these are considered Disk devices and are presented +to the operating system as generic block devices. This means that +the operating system does not need to understand the difference between +a floppy drive and a ROM disk. -# Using Disks +As RomWBW boots, it assigns a unit number to each device. This unit +number is used by the operating system to refer to the device. It is, +therefore, important to know the unit number assigned to each device. +This information is displayed in the unit summary table at startup. +Here is an example: + +``` +Unit Device Type Capacity/Mode +---------- ---------- ---------------- -------------------- +Char 0 UART0: RS-232 38400,8,N,1 +Char 1 UART1: RS-232 38400,8,N,1 +Disk 0 MD1: RAM Disk 384KB,LBA +Disk 1 MD0: ROM Disk 384KB,LBA +Disk 2 FD0: Floppy Disk 3.5",DS/HD,CHS +Disk 3 FD1: Floppy Disk 3.5",DS/HD,CHS +Disk 4 IDE0: CompactFlash 3815MB,LBA +Disk 5 IDE1: Hard Disk -- +Disk 6 PRPSD0: SD Card 1886MB,LBA +Video 0 CVDU0: CRT Text,80x25 +``` + +In this example, you can see that the system has a total of 7 Disk +Units numbered 0-6. There are also 2 Character Units and 1 Video +Unit. The table shows the unit numbers assigned to each of the +devices. Notice how the unit numbers are assigned sequentially +regardless of the specific device. + +There may or may not be media in the disk devices listed. For example, +the floppy disk devices (Disk Units 2 & 3) may not have a floppy in +the drive. Also note that Disk Unit 4 shows a disk capacity, but +Disk Unit 5 does not. This is because the PPIDE interface of the +system supports up to two drives, but there is only one actual drive +attached. A unit number is assigned to all possible devices +regardless of whether they have actual media installed at boot time. + +Note that Character Unit 0 is **always** the initial system console +by definition. + +If your system has an RTC/NVRAM device, it will not be listed in the +unit summary table. Since only a single RTC/NVRAM device can exist in +one system, unit numbers are not required nor used for this type of +device. + +## Drive Letter Assignment -While the RAM/ROM disks provide a functional system, they are not useful in the long term because you cannot save data across power cycles. They are also constrained by limited space. +In legacy CP/M-type operating systems, drive letters were generally +mapped to disk drives in a completely fixed way. For example, drive A: +would **always** refer to the first floppy drive. Since RomWBW +supports a wide variety of hardware configurations, it implements a +much more flexible drive letter assignment mechanism so that any drive +letter can be assigned to any disk device. + +At boot, you will notice that RomWBW automatically assigns drive +letters to the available disk devices. These assignments are +displayed during the startup of the selected operating system. +Additionally, you can review the current drive assignments at any +time using the `ASSIGN` command. CP/M 3 and ZPM3 do not automatically +display the assignments at startup, but you can use `ASSIGN` do +display them. + +The drive letter assignments **do not** change during an OS session +unless you use the `ASSIGN` command yourself to do it. Additionally, +the assignments at boot will stay the same on each boot as long as you +do not make changes to your hardware configuration. Note that the +assignments **are** dependent on the media currently inserted in hard +disk drives. So, notice that if you insert or remove an SD Card or CF +Card, the drive assignments will change. Since drive letter +assignments can change, you must be careful when doing destructive +things like using `CLRDIR` to make sure the drive letter you use is +referring to the desired media. + +When performing a ROM boot of an operating system, note that A: will +be your RAM disk and B: will be your ROM disk. When performing a disk +boot, the disk you are booting from will be assigned to A: and the +rest of the drive letters will be offset to accommodate this. This is +done because most legacy operating systems expect that A: will be the +boot drive. -The systems supported by RomWBW all have the ability to use persistent disk media. I am referring to all kinds of disk devices including floppy drives, hard disks, CF Cards, and SD Cards. Some systems have disk interfaces built-in, while others will require add-in cards. You will need to refer to the documentation for your system for your specific options. +## Slices + +The vintage operating systems included with RomWBW were produced at a +time when mass storage devices were quite small. CP/M 2.2 could only +handle filesystems up to 8MB. In order to achieve compatibility across +all of the operating systems supported by RomWBW, the hard disk +filesystem format used is 8MB. This ensures any filesystem will be +accessible to any of the operating systems. + +Since storage devices today are quite large, RomWBW implements a +mechanism called slicing to allow up to 256 8MB filesystems on a +single large storage device. This allows up to 2GB of usable space on +a single media. You can think of slices as a way to refer to any of +the first 256 8MB chunks of space on a single media. + +Of course, the problem is that CP/M-like operating systems have only +16 drive letters (A:-P:) available. Under the covers, RomWBW allows +you to use any drive letter to refer to any slice of any media. The +`ASSIGN` command is allows you to view or change the drive letter +mappings at any time. At startup, the operating system will +automatically allocate a reasonable number of drive letters to the +available storage devices. The allocation will depend on the number of +large storage devices available at boot. For example, if you have +only one hard disk type media, you will see that 8 drive letters are +assigned to the first 8 slices of that media. If you have two large +storage devices, you will see that each device is allocated four drive +letters. + +Referring to slices within a storage device is done by appending a : +** where ** is the device relative slice number from 0-255. For +example, if you have an IDE device, it will show up as IDE0: in the +boot messages meaning the first IDE device. To refer to the fourth +slice of IDE0, you would type "IDE0:3". Here are some examples: + +| | | +| -------- | ---------------------------- | +| `IDE0:0` | First slice of disk in IDE0 | +| `IDE0:` | First slice of disk in IDE0 | +| `IDE0:3` | Fourth slice of disk in IDE0 | + +So, if I wanted to use drive letter L: to refer to the fourth slice +of IDE0, I could use the command `ASSIGN L:=IDE0:3`. There are a +couple of rules to be aware of when assigning drive letters. First, +you may only refer to a specific device/slice with one drive letter. +Said another way, you cannot have multiple drive letters referring +to a single device/slice at the same time. Second, there must always +be a drive assigned to A:. Any attempt to violate these rules will +be blocked by the `ASSIGN` command. + +Unlike MS-DOS partitions, slices are not allocated -- there is no +partitioning for slices. Think of every hard disk type device as +having a pre-allocated set of 256 8MB slices at the start of the +media. You can refer to any of them simply by assigning a drive +letter. RomWBW will not check to see if there is anything else on the +hard disk in the slice you are referring to, nor will it verify that +the hard disk media is large enough to have a slice at the location +you refer to. If you attempt to write past the end of your media, you +will get an I/O error displayed, so you will know if you make a +mistake. There is no tracking of your use of slices -- you will need +to keep track of your use of slices yourself. + +Nothing automatically initializes a slice as a file system. You must +do that yourself using `CLRDIR`. Since `CLRDIR` works on drive +letters, make absolutely sure you know what media and slice are +assigned to that drive letter before using `CLRDIR`. + +While it is probably obvious, you cannot use slices on any media less +than 8MB in size. Specifically, you cannot slice RAM disks, ROM +disks, floppy disks, etc. + +# RomWBW Custom Applications + +The operation of the RomWBW hosted operating systems is enhanced +through several custom applications. These applications are +functional on all of the OS variants included with RomWBW. + +The following custom applications are found on the ROM disk and are, +therefore, globally available. + +| Application | Description | +| ----------- | -------------------------------------------------------------- | +| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. | +| SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. | +| FDU | Format and test floppy disks. Menu driven interface. | +| OSLDR | Load a new OS on the fly. For example, you can switch to Z-System when running CP/M. Use OSLDR with no parms for usage instructions. | +| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing! | +| MODE | Reconfigures serial ports dynamically. | +| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. | +| FDISK80 | John Coffman's Z80 hard disk partitioning tool. See documentation in Doc directory. | +| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | +| FLASH | Will Sowerbutts' in-situ ROM programming utility. | +| CLRDIR | Initialize the directory area of a CP/M disk (Max Scane). | + +Some custom applications do not fit on the ROM disk. They are found on the +disk image files or the individual files can be found in the Binary\\Apps +directory of the distribution. + +| Application | Description | +| ----------- | -------------------------------------------------------------- | +| TUNE | Play .PT2, .PT3, .MYM audio files. | +| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | + +There is additional documentation on some of these applications at the +[RomWBW Applications Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps). + +# Using Disks -In the RomWBW bootup messages, you will see hardware discovery messages. If you have a disk drive interface, you should see messages listing device types like FD:, IDE:, PPIDE:, SD:. Additionally, you will see messages indicating the media that has been found on the interfaces. As an example, here are the messages you might see if you have an IDE interface in your system with a single CF Card inserted in the primary side of the interface: +## ROM & RAM Disks + +RomWBW utilizes a portion of the ROM and RAM memory in your system to +implement small memory-based disks. + +The RAM disk provides a small CP/M filesystem that you can use for the +temporary storage of files. Unless your system has a battery backed +mechanism for persisting your RAM contents, the RAM disk contents will +be lost at each power-off. However, the RAM disk is an excellent +choice for storing temporary files because it is very fast. + +Like the RAM disk, the ROM disk also provides a small CP/M +filesystem, but it's contents are static -- they are part of the +ROM. As such, you cannot save files to the ROM disk. Any attempt to +do this will result in a disk I/O error. The contents of the ROM +disk have been chosen to provide a core set of tools and +applications that are helpful for either CP/M 2.2 or ZSDOS. Since +ZSDOS is CP/M 2.2 compatible, this works fairly well. However, you +will find some files on the ROM disk that will work with ZSDOS, but +will not work on CP/M 2.2. For example, `LDDS`, which loads the +ZSDOS date/time stamper will only run on ZSDOS. + +## Disk Devices + +While the RAM/ROM disks provide a functional system, they are not +useful in the long term because you cannot save data across power +cycles. They are also constrained by limited space. + +The systems supported by RomWBW all have the ability to use persistent +disk media. A wide variety of disk devices are supported including +floppy drives, hard disks, CF Cards, and SD Cards. Some systems have +disk interfaces built-in, while others will require add-in cards. You +will need to refer to the documentation for your system for your +specific options. + +In the RomWBW boot messages, you will see hardware discovery messages. +If you have a disk drive interface, you should see messages listing +device types like FD:, IDE:, PPIDE:, SD:. Additionally, you will see +messages indicating the media that has been found on the interfaces. +As an example, here are the messages you might see if you have an IDE +interface in your system with a single CF Card inserted in the +primary side of the interface: ``` IDE: IO=0x80 MODE=MK4 @@ -190,9 +601,16 @@ IDE0: 8-BIT LBA BLOCKS=0x00773800 SIZE=3815MB IDE1: NO MEDIA ``` -The messages you see will vary depending on your hardware and the media you have installed. But, they will all have the same general format as the example above. +The messages you see will vary depending on your hardware and the +media you have installed. But, they will all have the same general +format as the example above. -Once your your system has working disk devices, you can boot an operating system and the operating system will have access to the media. At the boot loader prompt, select either either CP/M 2.2 or Z-System to boot from ROM. As the operating system starts up, you should see a list of drive letters assigned to the disk media you have installed. Here is an example of this: +Once your your system has working disk devices, you can boot an +operating system and the operating system will have access to the +media. At the boot loader prompt, select either either CP/M 2.2 or +Z-System to boot from ROM. As the operating system starts up, you +should see a list of drive letters assigned to the disk media you have +installed. Here is an example of this: ``` Configuring Drives... @@ -203,29 +621,86 @@ Configuring Drives... D:=IDE0:1 ``` -You will probably see more drive letters than this. The drive letter assignment process is described in more detail later in this document. Be aware that RomWBW will only assign drive letters to disk interfaces that actually have media in them. If you do not see drive letters assigned as expected, refer to the prior system boot messages to ensure media has been detected in the interface. Actually, there is one exception to this rule: floppy drives will be assigned a drive letter regardless of whether there is any media inserted at boot. - -Notice how each drive letter refers back to a specific disk hardware interface like IDE0. This is important as it is telling you what each drive letter refers to. Also notice that mass storage disks (like IDE) will normally have multiple drive letters assigned. The extra drive letters refer to additional "slices" on the disk. The concept of slices is also explained later in this document. - -Once you are seeing drive letters referring to your disk media, you can follow the instructions below to begin using the disk media with the operating system. Your disk media **must** be initialized prior to being used. There are two ways to initialize your media for use. - -You can initialize the media in-place using your RomWBW system. This process is described below under Disk Initialization. In this scenario, you will need to subsequently copy any files you want to use onto the newly initialized disk (see Transferring Files). - -Alternatively, you can use your modern Windows, Linux, or Mac computer to copy a disk image onto the disk media. RomWBW comes with a variety of disk images that are ready to use and have a much more complete set of files than you will find on the ROM disk. This process is covered below under Disk Images. +You will probably see more drive letters than this. The drive letter +assignment process is described above in the Drive Letter Assignment +section. Be aware that RomWBW will only assign drive letters to disk +interfaces that actually have media in them. If you do not see drive +letters assigned as expected, refer to the prior system boot messages +to ensure media has been detected in the interface. Actually, there +is one exception to this rule: floppy drives will be assigned a drive +letter regardless of whether there is any media inserted at boot. + +Notice how each drive letter refers back to a specific disk hardware +interface like IDE0. This is important as it is telling you what each +drive letter refers to. Also notice that mass storage disks (like IDE) +will normally have multiple drive letters assigned. The extra drive +letters refer to additional "slices" on the disk. The concept of slices +is described above in the Slices section. + +Once you are seeing drive letters referring to your disk media, you +can follow the instructions below to begin using the disk media with +the operating system. Your disk media **must** be initialized prior +to being used. There are two ways to initialize your media for use. + +One option is to initialize the media in-place using your RomWBW +system. This process is described below under Disk Initialization. In +this scenario, you will need to subsequently copy any files you want +to use onto the newly initialized disk (see Transferring Files). + +Alternatively, you can use your modern Windows, Linux, or Mac computer +to copy a disk image onto the disk media. RomWBW comes with a variety +of disk images that are ready to use and have a much more complete +set of files than you will find on the ROM disk. This process is +covered below under Disk Images. ## Disk Initialization -To use a disk device, you will need to initialize the directory of the filesystem. On RomWBW, the initialization is done using the CLRDIR application. For example if your C: drive has been assigned to a storage device, you would use `CLRDIR C:` to initialize C: and prepare it hold files. Note that CLRDIR will prompt you for confirmation and you must respond with a **capital** 'Y' to confirm. Once `CLDIR` has completed, you can copy files onto the drive, for example `COPY *.* C:`. Be very careful to pay attention to your drive letter assignments prior to running `CLRDIR` to avoid accidentally wiping out a filesystem that has data on it. - -Running `CLRDIR` on a disk device is roughly equivalent to running FORMAT on MS-DOS. Note that unlike MS-DOS you do **not** partition your mass storage device. CP/M knows nothing about disk partitions. You may notice a partitioning application on your ROM disk (FDISK80), but this is strictly for an advanced technique of adding an MS-DOS FAT filesystem to your media in addition to the CP/M area. Do not use FDISK80 unless you are specifically attempting to add an MS-DOS FAT filesystem to your media. - -If you are using a floppy drive, you will need to physically format your floppy disk prior to use. This is only required for floppy disks, not hard disk, CF Cards, or SD Cards, etc. To format a floppy drive, you can use the interactive application `FDU`. FDU is not terribly user friendly, but is generally documented in the file "FDU.txt" found in the Doc directory of the distribution. It is not necessary to run `CLRDIR` on a floppy disk after physically formatting it -- the directory is cleared as part of the formatting. - -Once you have initialized a disk device and copied your desired files onto it, you may want to make the disk bootable. On CP/M filesystems, you must perform one additional step to make a disk bootable. Specifically, you need to place a copy of the operating system on the system tracks of the disk. This is done using the `SYSCOPY` command. Let's say you have prepared drive C: by initializing it with `CLRDIR` and copied some files onto it. You can now make C: bootable by running the following command: +To use a disk device, you will need to initialize the directory of +the filesystem. On RomWBW, the initialization is done using the +CLRDIR application. For example if your C: drive has been assigned to +a storage device, you would use `CLRDIR C:` to initialize C: and +prepare it hold files. Note that CLRDIR will prompt you for +confirmation and you must respond with a **capital** 'Y' to confirm. +Once `CLDIR` has completed, you can copy files onto the drive, for +example `COPY *.* C:`. Be very careful to pay attention to your +drive letter assignments prior to running `CLRDIR` to avoid +accidentally wiping out a filesystem that has data on it. + +Running `CLRDIR` on a disk device is roughly equivalent to running +FORMAT on MS-DOS. Note that unlike MS-DOS you do **not** partition +your mass storage device. CP/M knows nothing about disk partitions. +You may notice a partitioning application on your ROM disk (FDISK80), +but this is strictly for an advanced technique of adding an MS-DOS +FAT filesystem to your media in addition to the CP/M area. Do not +use FDISK80 unless you are specifically attempting to add an MS-DOS +FAT filesystem to your media. + +If you are using a floppy drive, you will need to physically format +your floppy disk prior to use. This is only required for floppy +disks, not hard disk, CF Cards, or SD Cards, etc. To format a floppy +drive, you can use the interactive application `FDU`. FDU is not +terribly user friendly, but is generally documented in the file +"FDU.txt" found in the Doc directory of the distribution. It is not +necessary to run `CLRDIR` on a floppy disk after physically +formatting it -- the directory is cleared as part of the formatting. + +Once you have initialized a disk device and copied your desired files +onto it, you may want to make the disk bootable. On CP/M filesystems, +you must perform one additional step to make a disk bootable. +Specifically, you need to place a copy of the operating system on the +system tracks of the disk. This is done using the `SYSCOPY` command. +Let's say you have prepared drive C: by initializing it with `CLRDIR` +and copied some files onto it. You can now make C: bootable by +running the following command: `B>SYSCOPY C:=B:ZSYS.SYS` -This command means: copy the Z-System operating system onto the system tracks of drive C:. In this example, it is assumed that you have booted from ROM, so B: is the ROM disk drive. Additionally, this example assumes you want the Z-System operating system to be booted from C:. If you want CP/M 2.2 instead, you would replace `B:ZSYS.SYS` with `B:CPM.SYS`. Here is a full example of this process. +This command means: copy the Z-System operating system onto the +system tracks of drive C:. In this example, it is assumed that you +have booted from ROM, so B: is the ROM disk drive. Additionally, this +example assumes you want the Z-System operating system to be booted +from C:. If you want CP/M 2.2 instead, you would replace `B:ZSYS.SYS` +with `B:CPM.SYS`. Here is a full example of this process. ``` B>SYSCOPY C:=B:ZSYS.SYS @@ -237,17 +712,44 @@ Transfer system image from B:ZSYS.SYS to C: (Y/N)? Y Reading image... Writing image... Done ``` -Once this process succeeds, you will be able to boot directly to the disk from the boot loader prompt. See the instructions in Booting Disks for details on this. +Once this process succeeds, you will be able to boot directly to the +disk from the boot loader prompt. See the instructions in Booting +Disks for details on this. ## Disk Images -As mentioned previously, RomWBW includes a variety of disk images that contain a full set of applications for the operating systems supported. It is generally easier to use these disk images instead of copying all the files over using XModem. You use your modern computer (Windows, Linux, MacOS) to place the disk image onto the disk media, then just move the media over to your system. In this scenario you **do not** run `CLRDIR` or `SYSCOPY` on the drive(s). The directory is prepared and the disk is already bootable, if it is an operating system boot disk image. - -To copy the disk image files onto your actual media (floppy disk, CF Card, SD Card, etc.), you need to use an image writing utility on your modern computer. Your modern computer will need to have an appropriate interface or slot that accepts the media. To actually copy the image, you can use the `dd` command on Linux or MacOS. On Windows, in the "Tools" directory of the distribution there are two tools you can use. For floppy media, you can use RawWriteWin and for hard disk media, you can use Win32DiskImager. In all cases, the image file should be written to the media starting at the very first block or sector of the media. This will **destroy** any other data on the media. - -The disk image files are found in the Binary directory of the distribution. Floppy disk images are prefixed with "fd_" and hard disk images are prefixed with "hd_". The floppy images are specifically for 1.44M floppy media only. Each disk image has the complete set of normal applications and tools distributed with the associated operating system or application suite. - -The following table shows the disk image files available. Note that the images in the "Hard" column are fine for use on CF Cards, SD Cards, as well as real spinning hard disks. +As mentioned previously, RomWBW includes a variety of disk images +that contain a full set of applications for the operating systems +supported. It is generally easier to use these disk images instead +of copying all the files over using XModem. You use your modern +computer (Windows, Linux, MacOS) to place the disk image onto the +disk media, then just move the media over to your system. In this +scenario you **do not** run `CLRDIR` or `SYSCOPY` on the drive(s). +The directory is prepared and the disk is already bootable, if it is +an operating system boot disk image. + +To copy the disk image files onto your actual media (floppy disk, CF +Card, SD Card, etc.), you need to use an image writing utility on +your modern computer. Your modern computer will need to have an +appropriate interface or slot that accepts the media. To actually +copy the image, you can use the `dd` command on Linux or MacOS. On +Windows, in the "Tools" directory of the distribution there are two +tools you can use. For floppy media, you can use RawWriteWin and for +hard disk media, you can use Win32DiskImager. In all cases, the image +file should be written to the media starting at the very first block +or sector of the media. This will **destroy** any other data on the +media. + +The disk image files are found in the Binary directory of the +distribution. Floppy disk images are prefixed with "fd_" and hard +disk images are prefixed with "hd_". The floppy images are +specifically for 1.44M floppy media only. Each disk image has the +complete set of normal applications and tools distributed with the +associated operating system or application suite. + +The following table shows the disk image files available. Note that +the images in the "Hard" column are fine for use on CF Cards, SD +Cards, as well as real spinning hard disks. | Floppy | Hard | Description | | --------------- | --------------- | -------------------------------------- | @@ -258,7 +760,12 @@ The following table shows the disk image files available. Note that the images | fd_zpm3 | hd_zpm3.img | ZPM3 boot disk | | fd_ws4 | hd_ws4.img | WordStar v4 application disk | -In addition to the disk images above, there is also a special hard disk image called hd_combo.img. This image contains all of the images above, but in a single image with 6 slices (see below for information on disk slices). At the boot loader prompt, you can choose a disk with the combo image, then select the specific slice you want. This allows a single disk to have all of the possible operating system options. +In addition to the disk images above, there is also a special hard +disk image called hd_combo.img. This image contains all of the images +above, but in a single image with 6 slices. At the boot loader +prompt, you can choose a disk with the combo image, then select the +specific slice you want. This allows a single disk to have all of the +possible operating system options. This is the layout of the hd_combo disk image: @@ -271,15 +778,35 @@ This is the layout of the hd_combo disk image: | Slice 4 | ZPM3 boot disk | | Slice 5 | WordStar v4 application disk | -Note that unlike the ROM firmware, you do **not** need to choose a disk image specific to your hardware. Because the RomWBW firmware provides a hardware abstraction layer, all hard disk images will work on all hardware variations. Yes, this means you can remove an SD Card from one system and put it in a different system. The only constraint is that the applications on the disk media must be up to date with the firmware on the system being used. +Note that unlike the ROM firmware, you do **not** need to choose a +disk image specific to your hardware. Because the RomWBW firmware +provides a hardware abstraction layer, all hard disk images will work +on all hardware variations. Yes, this means you can remove an SD Card +from one system and put it in a different system. The only constraint +is that the applications on the disk media must be up to date with +the firmware on the system being used. -All of the disk images that indicate they are bootable (boot disk) will boot from disk as is. You do not need to run `SYSCOPY` on them to make them bootable. However, if you upgrade your ROM, you should use `SYSCOPY` to update the system tracks. +All of the disk images that indicate they are bootable (boot disk) will +boot from disk as is. You do not need to run `SYSCOPY` on them to make +them bootable. However, if you upgrade your ROM, you should use `SYSCOPY` +to update the system tracks. ## Booting Disks -When starting your system, following the hardware initialization, you will see the Boot Loader prompt. In addition, to the ROM boot options, you will see another line listing the Disk boot options. This line lists the disk devices that you can choose to boot directly. - -You will notice that you do not have an option to boot a drive letter here (like C:). This is because the operating system is not yet loaded. When you ran `SYSCOPY` previously, remember that C: was assigned to IDE0:0 which means device IDE0, slice 0. So, to boot the disk that you just setup with `SYSCOPY`, you would choose option 1. You will then be prompted for the slice on IDE0 that you want to boot. For now, just press enter to choose slice 0. Once you are familiar with slices, you can `SYSCOPY` and boot alternate slices. Here is what you would see when booting to a disk device: +When starting your system, following the hardware initialization, you +will see the Boot Loader prompt. In addition, to the ROM boot +options, you will see another line listing the Disk boot options. +This line lists the disk devices that you can choose to boot directly. + +You will notice that you do not have an option to boot a drive letter +here (like C:). This is because the operating system is not yet +loaded. When you ran `SYSCOPY` previously, remember that C: was +assigned to IDE0:0 which means device IDE0, slice 0. So, to boot the +disk that you just setup with `SYSCOPY`, you would choose option 2. +You will then be prompted for the slice on IDE0 that you want to +boot. For now, just press enter to choose slice 0. Once you are +familiar with slices, you can `SYSCOPY` and boot alternate slices. +Here is what you would see when booting to a disk device: ``` MARK IV Boot Loader @@ -297,233 +824,314 @@ Loc=D000 End=FE00 Ent=E600 Label=Unlabeled Drive Loading... ``` -Following this, you would see the normal operating system startup messages. However, your operating system prompt will be `A>` and when you look at the drive letter assignments, you should see that A: has been assigned to the disk you selected to boot. - -If you receive the error message "Disk not bootable!", you have either failed to properly run `SYSCOPY` on the target disk or you have selected the wrong disk/slice. - -Note that although MD1 (RAM disk) and MD0 (ROM disk) drives are listed in the Disk boot line, they are not "bootable" disks because they have no system tracks on them. Attempting to boot to one of them, will fail with a "Disk not bootable!" error message and return to the loader prompt. - -# General Usage - -Each of the operating systems and ROM applications included with RomWBW are sophisticated tools in their own right. It is not reasonable to document their usage here. However, you will find complete manuals in PDF format in the Doc directory of the distribution. The intention of this section is to document the RomWBW specific enhancements to these operating systems. - -## ROM Disk - -In addition to the ROM-based operating systems and applications, the ROM also contains a ROM disk with a small CP/M filesystem. The contents of the ROM disk have been chosen to provide a core set of tools and applications that are helpful for either CP/M 2.2 or ZSDOS. Since ZSDOS is CP/M 2.2 compatible, this works fairly well. However, you will find some files on the ROM disk that will work with ZSDOS, but will not work on CP/M 2.2. For example, `LDDS`, which loads the ZSDOS date/time stamper will only run on ZSDOS. - -## Drive Letter Assignment - -In legacy CP/M-type operating systems, drive letters were generally mapped to disk drives in a completely fixed way. For example, drive A: would **always** refer to the first floppy drive. Since RomWBW supports a wide variety of hardware configurations, it implements a much more flexible drive letter assignment mechanism so that any drive letter can be assigned to any disk device. - -At boot, you will notice that RomWBW automatically assigns drive letters to the available disk devices. These assignments are displayed during the startup of the selected operating system. Additionally, you can review the current drive assignments at any time using the `ASSIGN` command. CP/M 3 and ZPM3 do not automatically display the assignments at startup, but you can use `ASSIGN` do display them. - -The drive letter assignments **do not** change during an OS session unless you use the `ASSIGN` command yourself to do it. Additionally, the assignments at boot will stay the same on each boot as long as you do not make changes to your hardware configuration. Note that the assignments **are** dependent on the media currently inserted in hard disk drives. So, notice that if you insert or remove an SD Card or CF Card, the drive assignments will change. Since drive letter assignments can change, you must be careful when doing destructive things like using `CLRDIR` to make sure the drive letter you use is referring to the desired media. - -When performing a ROM boot of an operating system, note that A: will be your RAM disk and B: will be your ROM disk. When performing a disk boot, the disk you are booting from will be assigned to A: and the rest of the drive letters will be offset to accommodate this. This is done because most legacy operating systems expect that A: will be the boot drive. - -## Slices - -The vintage operating systems included with RomWBW were produced at a time when mass storage devices were quite small. CP/M 2.2 could only handle filesystems up to 8MB. In order to achieve compatibility across all of the operating systems supported by RomWBW, the hard disk filesystem format used is 8MB. This ensures any filesystem will be accessible to any of the operating systems. - -Since storage devices today are quite large, RomWBW implements a mechanism called slicing to allow up to 256 8MB filesystems on a single large storage device. This allows up to 2GB of useable space on a single media. You can think of slices as a way to refer to any of the first 256 8MB chunks of space on a single media. +Following this, you would see the normal operating system startup +messages. However, your operating system prompt will be `A>` and +when you look at the drive letter assignments, you should see that A: +has been assigned to the disk you selected to boot. -Of course, the problem is that CP/M-like operating systems have only 16 drive letters (A:-P:) available. Under the covers, RomWBW allows you to use any drive letter to refer to any slice of any media. The `ASSIGN` command is provided to allow you to view or change the drive letter mappings at any time. At startup, the operating system will automatically allocate a reasonable number of drive letters to the available storage devices. The allocation will depend on the number of large storage devices available at boot. For example, if you have only one hard disk type media, you will see that 8 drive letters are assigned to the first 8 slices of that media. If you have two large storage devices, you will see that each device is allocated four drive letters. +If you receive the error message "Disk not bootable!", you have +either failed to properly run `SYSCOPY` on the target disk or you +have selected the wrong disk/slice. -Referring to slices within a storage device is done by appending a :n where n is the device relative slice number from 0-255. For example, if you have an IDE device, it will show up as IDE0: in the boot messages meaning the first IDE device. To refer to the fourth slice of IDE0, you would type "IDE0:3". So, if I wanted to use drive letter L: to refer to the fourth slice of IDE0, I could use the command `ASSIGN L:=IDE0:3`. - -There are a couple of rules to be aware of when assigning drive letters. First, you may only refer to a specific device/slice with one drive letter. Said another way, you cannot have multiple drive letters referring to a single device/slice at the same time. Second, there must always be a drive assigned to A:. Any attempt to violate these rules will be blocked by the `ASSIGN` command. - -Unlike MS-DOS partitions, slices are not allocated -- there is no partitioning of slices. Think of every hard disk type device as having a pre-allocated set of 256 8MB slices at the start of the media. You can refer to any of them simply by assigning a drive letter. RomWBW will not check to see if there is anything else on the hard disk in the slice you are referring to, nor will it verify that the hard disk media is large enough to have a slice at the location you refer to. If you attempt to write past the end of your media, you will get an I/O error displayed, so you will know if you make a mistake. There is no tracking of your use of slices -- you will need to keep track of your use of slices yourself. - -Nothing automatically initializes a slice as a file system. You must do that yourself using `CLRDIR`. Since `CLRDIR` works on drive letters, make absolutely sure you know what media and slice are assigned to that drive letter before using `CLRDIR`. - -While it is probably obvious, you cannot use slices on any media less than 8MB in size. Specifically, you cannot slice RAM disks, ROM disks, floppy disks, etc. - -# Inbuilt ROM Applications - -In addition to CP/M 2.2 and Z-System, there are several ROM applications that can be launched directly from ROM. These applications are not hosted by an operating system and so they are unable to save files to disk devices. - -The following ROM applications are available at the boot loader prompt: - -| Application | | -| ----------- | -------------------------------------------------------------- | -| Monitor | Z80 system debug monitor w/ Intel Hex loader | -| Forth | Brad Rodriguez's ANSI compatible Forth language | -| Basic | Nascom 8K BASIC language | -| Tasty BASIC | Dimitri Theuling's Tiny BASIC implementation | -| Play | A simple video game (requires ANSI terminal emulation) | - -In general, the command to exit these applications and restart the system is `BYE`. The exceptions are the Monitor which uses `B` and Play which uses `Q`. - -Space is available in the ROM image for the inclusion of other software. Any inbuilt application can be set up to launch automatically at startup. - -# RomWBW Custom Applications - -The operation of the RomWBW hosted operating systems is enhanced through several custom applications. These applications are functional on all of the OS variants included with RomWBW. - -The following custom applications are found on the ROM disk and are, therefore, globally available. - -| Application | Description | -| ----------- | -------------------------------------------------------------- | -| ASSIGN | Add, change, and delete drive letter assignments. Use ASSIGN /? for usage instructions. | -| SYSCOPY | Copy system image to a device to make it bootable. Use SYSCOPY with no parms for usage instructions. | -| FDU | Format and test floppy disks. Menu driven interface. | -| OSLDR | Load a new OS on the fly. For example, you can switch to Z-System when running CP/M. Use OSLDR with no parms for usage instructions. | -| FORMAT | Will someday be a command line tool to format floppy disks. Currently does nothing! | -| MODE | Reconfigures serial ports dynamically. | -| XM | XModem file transfer program adapted to hardware. Automatically uses primary serial port on system. | -| FDISK80 | John Coffman's Z80 hard disk partitioning tool. See documentation in Doc directory. | -| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | -| FLASH | Will Sowerbutts' in-situ ROM programming utility. | -| CLRDIR | Initialize the directory area of a CP/M disk (Max Scane). | - -Some custom applications do not fit on the ROM disk. They are found on the disk image files or the individual files can be found in the Binary\\Apps directory of the distribution. - -| Application | Description | -| ----------- | -------------------------------------------------------------- | -| TUNE | Play .PT2, .PT3, .MYM audio files. | -| FAT | Access MS-DOS FAT filesystems from RomWBW (based on FatFs). | - -There is additional documentation on some of these applications at the [RomWBW Applications Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:apps). +Note that although MD1 (RAM disk) and MD0 (ROM disk) drives are +listed in the Disk boot line, they are not "bootable" disks because +they have no system tracks on them. Attempting to boot to one of +them, will fail with a "Disk not bootable!" error message and return +to the loader prompt. # Operating Systems -One of the primary goals of RomWBW is to expose a set of generic hardware functions that make it easy to adapt operating systems to any hardware supported by RomWBW. As a result, there are now 5 operating systems that have been adapted to run under RomWBW. The adaptations are identical for all hardware supported by RomWBW because RomWBW hides all hardware specifics from the operating system. +One of the primary goals of RomWBW is to expose a set of generic +hardware functions that make it easy to adapt operating systems to +any hardware supported by RomWBW. As a result, there are now 5 +operating systems that have been adapted to run under RomWBW. The +adaptations are identical for all hardware supported by RomWBW +because RomWBW hides all hardware specifics from the operating system. -Note that all of the operating systems included with RomWBW support the same basic filesystem format. As a result, a formatted filesystem will be accessible to any operating system. The only possible issue is that if you turn on date/time stamping using the newer OSes, the older OSes will not understand this. Files will not be corrupted, but the date/time stamps may be lost. +Note that all of the operating systems included with RomWBW support +the same basic filesystem format. As a result, a formatted filesystem +will be accessible to any operating system. The only possible issue +is that if you turn on date/time stamping using the newer OSes, the +older OSes will not understand this. Files will not be corrupted, but +the date/time stamps may be lost. -The following sections briefly describe the operating system options currently available. +The following sections briefly describe the operating system options +currently available. ## Digital Research CP/M 2.2 -This is the most widely used variant of the Digital Research operating system. It has the most basic feature set, but is essentially the compatibility metric for all other CP/M-like operating systems including all of those listed below. The Doc directory contains a manual for CP/M usage ("CPM Manual.pdf"). If you are new to the CP/M world, I would recommend using this CP/M variant to start with simply because it is the most stable and you are less likely to encounter problems. +This is the most widely used variant of the Digital Research +operating system. It has the most basic feature set, but is +essentially the compatibility metric for all other CP/M-like +operating systems including all of those listed below. The Doc +directory contains a manual for CP/M usage ("CPM Manual.pdf"). If you +are new to the CP/M world, I would recommend using this CP/M variant +to start with simply because it is the most stable and you are less +likely to encounter problems. ## ZSDOS 1.1 -ZSDOS is the most popular non-DRI CP/M "clone" which is generally referred to as Z-System. Z-System is intended to be an enhanced version of CP/M and should run all CP/M 2.2 applications. It is optimized for the Z80 CPU (as opposed to 8080 for CP/M) and has some significant improvements such as date/time stamping of files. For further information on the RomWBW implementation of Z-System, see the wiki page [Z-System Notes](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:zsystem). Additionally, the official documentation for Z-System is included in the RomWBW distribution Doc directory ("ZSDOS Manual.pdf" and "ZCPR Manual.pdf"). +ZSDOS is the most popular non-DRI CP/M "clone" which is generally +referred to as Z-System. Z-System is intended to be an enhanced +version of CP/M and should run all CP/M 2.2 applications. It is +optimized for the Z80 CPU (as opposed to 8080 for CP/M) and has some +significant improvements such as date/time stamping of files. For +further information on the RomWBW implementation of Z-System, see the +wiki page +[Z-System Notes](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:romwbw:zsystem). +Additionally, the official documentation for Z-System is included in +the RomWBW distribution Doc directory ("ZSDOS Manual.pdf" and "ZCPR +Manual.pdf"). ## NZCOM Automatic Z-System -NZCOM is a much further refined version of Z-System (ZCPR 3.4). NZCOM was sold as an enhancement for existing users of CP/M 2.2 or ZSDOS. For this reason, (by design) NZCOM does not provide a way to boot directly from disk. Rather, it is loaded after the system boots into a host OS. On the RomWBW NZCOM disk images, the boot OS is ZSDOS 1.1. After you configure NZCOM, you can add a `PROFILE.SUB` file to automatically launch NZCOM at boot. +NZCOM is a much further refined version of Z-System (ZCPR 3.4). NZCOM +was sold as an enhancement for existing users of CP/M 2.2 or ZSDOS. +For this reason, (by design) NZCOM does not provide a way to boot +directly from disk. Rather, it is loaded after the system boots into +a host OS. On the RomWBW NZCOM disk images, the boot OS is ZSDOS 1.1. +After you configure NZCOM, you can add a `PROFILE.SUB` file to +automatically launch NZCOM at boot. -To use, NZCOM, you must run through a simple configuration process. This is well documented in the NZCOM manual in the "NZCOM Users Manual.pdf" file in the RomWBW Doc directory. Additionally, there are instructions for automatically launching NZCOM when the disk is booted under the host OS via an auto command submission process. +To use, NZCOM, you must run through a simple configuration process. +This is well documented in the NZCOM manual in the "NZCOM Users +Manual.pdf" file in the RomWBW Doc directory. Additionally, there are +instructions for automatically launching NZCOM when the disk is +booted under the host OS via an auto command submission process. ## Digital Research CP/M 3 -This is the Digital Research follow-up product to their very popular CP/M 2.2 operating system. While highly compatible with CP/M 2.2, it features many enhancements. It makes direct use of banked memory to increase the user program space (TPA). It also has a new suite of support tools and help system. +This is the Digital Research follow-up product to their very popular +CP/M 2.2 operating system. While highly compatible with CP/M 2.2, it +features many enhancements. It makes direct use of banked memory to +increase the user program space (TPA). It also has a new suite of +support tools and help system. -Note that to make a CP/M 3 boot disk, you actually place CPMLDR.SYS on the system tracks of the disk. You do not place CPM3.SYS on the system tracks. +Note that to make a CP/M 3 boot disk, you actually place CPMLDR.SYS +on the system tracks of the disk. You do not place CPM3.SYS on the +system tracks. ## Simeon Cran's ZPM3 -ZPM3 is an interesting combination of the features of both CP/M 3 and ZCPR 3. Essentially, it has the features of and compatibility with both. +ZPM3 is an interesting combination of the features of both CP/M 3 and +ZCPR 3. Essentially, it has the features of and compatibility with +both. -Like CP/M 3, to make ZPM3 boot disk, you put CPMLDR.SYS on the system tracks of the disk. +Like CP/M 3, to make ZPM3 boot disk, you put CPMLDR.SYS on the system +tracks of the disk. ## FreeRTOS -Note that Phillip Stevens has also ported FreeRTOS to run under RomWBW. -FreeRTOS is not provided in the RomWBW distribution. FreeRTOS is available -under the [MIT licence](https://www.freertos.org/a00114.html) -and further general information is available at +Note that Phillip Stevens has also ported FreeRTOS to run under +RomWBW. FreeRTOS is not provided in the RomWBW distribution. FreeRTOS +is available under the +[MIT licence](https://www.freertos.org/a00114.html) and further general +information is available at [FreeRTOS](https://www.freertos.org/RTOS.html). You can also contact Phillip for detailed information on the Z180 -implementation of FreeRTOS for RomWBW. [@feilipu](https://github.com/feilipu) +implementation of FreeRTOS for RomWBW. +[@feilipu](https://github.com/feilipu) # Transferring Files -Transferring files between your modern computer and your RomWBW system can be achieved in a variety of ways. The most common of these are described below. All of these have a certain degree of complexity and I encourage new users to use the available community forums to seek assistance as needed. +Transferring files between your modern computer and your RomWBW +system can be achieved in a variety of ways. The most common of these +are described below. All of these have a certain degree of complexity +and I encourage new users to use the available community forums to +seek assistance as needed. ## Serial Port Transfers -RomWBW provides an serial file transfer program called XModem that has been adapted to run under RomWBW hardware. The program is called `XM` and is on your ROM disk as well as all of the pre-built disk images. +RomWBW provides an serial file transfer program called XModem that +has been adapted to run under RomWBW hardware. The program is called +`XM` and is on your ROM disk as well as all of the pre-built disk +images. + +You can type `XM` by itself to get usage information. In general, you +will run `XM` with parameters to indicate you want to send or receive +a file on your RomWBW system. Then, you will use your modern +computers terminal program to complete the process. + +The `XM` application generally tries to detect the hardware you are +using and adapt to it. However, you must ensure that you have a +reliable serial connection. You must also ensure that the speed of +the connection is not too fast for XModem to service. Alternatively, +you can ensure that hardware flow control is working properly. + +There is an odd interaction between XModem and partner terminal +programs that can occur. Essentially, after launching `XM`, you must +start the protocol on your modern computer fairly quickly (usually in +about 20 seconds or so). So, if you do not pick a file on your modern +computer quickly enough, you will find that the transfer completes +about 16K, then hangs. The interaction that causes this is beyond the +scope of this document. -You can type `XM` by itself to get usage information. In general, you will run `XM` with parameters to indicate you want to send or receive a file on your RomWBW system. Then, you will use your modern computers terminal program to complete the process. +## Disk Image Transfers -The `XM` application generally tries to detect the hardware you are using and adapt to it. However, you must ensure that you have a reliable serial connection. You must also ensure that the speed of the connection is not too fast for XModem to service. Alternatively, you can ensure that hardware flow control is working properly. +It is possible to pass disk images between your RomWBW system and +your modern computer. This assumes you have an appropriate media slot +on your modern computer for the media you want to use (CF Card, SD +Card, or floppy drive). -There is an odd interaction between XModem and partner terminal programs that can occur. Essentially, after launching `XM`, you must start the protocol on your modern computer fairly quickly (usually in about 20 seconds or so). So, if you do not pick a file on your modern computer quickly enough, you will find that the transfer completes about 16K, then hangs. The interaction that causes this is beyond the scope of this document. +The general process to get files from your modern computer to a RomWBW +computer is: -## Disk Image Transfers +1. Use `cpmtools` on your modern computer to create a RomWBW CP/M +filesystem image. -It is possible to pass disk images between your RomWBW system and your modern computer. This assumes you have an appropriate media slot on your modern computer for the media you want to use (CF Card, SD Card, or floppy drive). +2. Insert your RomWBW media (CF Card, SD Card, or floppy disk) in your +modern computer. -The general process to get files from your modern computer to a RomWBW computer is: +3. Use a disk imaging tool to copy the RomWBW filesystem image onto the +media. -1. Use `cpmtools` on your modern computer to create a RomWBW CP/M filesystem image. -2. Insert your RomWBW media (CF Card, SD Card, or floppy disk) in your modern computer. -3. Use a disk imaging tool to copy the RomWBW filesystem image onto the media. 4. Move the media back to the RomWBW computer. -This process is a little complicated, but it has the benefit of allowing you to get a lot of files over to your RomWBW system quickly and with little chance of corruption. +This process is a little complicated, but it has the benefit of +allowing you to get a lot of files over to your RomWBW system quickly +and with little chance of corruption. -The process can be run in reverse to get files from your RomWBW computer to a modern computer. +The process can be run in reverse to get files from your RomWBW +computer to a modern computer. -The exact use of these tools is a bit too much for this document, but the tools are all included in the RomWBW distribution along with usage documents. +The exact use of these tools is a bit too much for this document, but +the tools are all included in the RomWBW distribution along with +usage documents. -Note that the build scripts for RomWBW create the default disk images supplied with RomWBW. It is relatively easy to customize the contents of the disk images that are part of RomWBW. This is described in more detail in the Source\\Images directory of the distribution. +Note that the build scripts for RomWBW create the default disk images +supplied with RomWBW. It is relatively easy to customize the contents +of the disk images that are part of RomWBW. This is described in more +detail in the Source\\Images directory of the distribution. ## FAT Filesystem Transfers -RomWBW provides a mechanism that allows it to read and write files on a FAT formatted disk. This means that you can generally use your modern computer to make an SD Card or CF Card with a standard FAT32 filesystem on it, then place that media in your RomWBW computer and access the files. - -When formatting the media on your modern computer, but sure to pick the FAT filesystem. NTFS and other filesystems will not work. - -On your RomWBW computer you can use the `FAT` application to access the FAT media. The `FAT` application allows you to read files, write files, list a directory, and erase files on the FAT media. It can handle subdirectories as well. It will only see 8.3 character filenames however. Longer filenames will show up as a truncated version. - -The `FAT` application is not on your ROM disk because it is too large to fit. You will find it on all of the pre-built disk images as well as in the Binary\\Apps directory of the distribution. - -For advanced users, it is possible to create a hybrid disk that contains CP/M slices at the beginning and a FAT filesystem after. Such a hybrid disk can be used to boot an operating system and still have access to FAT files on the FAT portion of the disk. David Reese has prepared a document describing how to do this. It is called "SC126_How-To_No_2_Preparing_an_SD_Card_for_Use_with_SC126_Rev_1-5.pdf" and can be found in the Doc\\Contrib directory of the distribution. +RomWBW provides a mechanism that allows it to read and write files on +a FAT formatted disk. This means that you can generally use your +modern computer to make an SD Card or CF Card with a standard FAT32 +filesystem on it, then place that media in your RomWBW computer and +access the files. + +When formatting the media on your modern computer, be sure to pick +the FAT filesystem. NTFS and other filesystems will not work. + +On your RomWBW computer you can use the `FAT` application to access +the FAT media. The `FAT` application allows you to read files, write +files, list a directory, and erase files on the FAT media. It can +handle subdirectories as well. It will only see 8.3 character +filenames however. Longer filenames will show up as a truncated +version. + +The `FAT` application is not on your ROM disk because it is too large +to fit. You will find it on all of the pre-built disk images as well +as in the Binary\\Apps directory of the distribution. + +For advanced users, it is possible to create a hybrid disk that +contains CP/M slices at the beginning and a FAT filesystem after. +Such a hybrid disk can be used to boot an operating system and still +have access to FAT files on the FAT portion of the disk. David Reese +has prepared a document describing how to do this. It is called +"SC126_How-To_No_2_Preparing_an_SD_Card_for_Use_with_SC126_Rev_1-5.pdf" +and can be found in the Doc\\Contrib directory of the distribution. # Startup Command Processing -Each of the operating systems supported by RomWBW provide a mechanism to run commands at boot. This is similar to the AUTOEXEC.BAT files from MS-DOS. +Each of the operating systems supported by RomWBW provide a mechanism +to run commands at boot. This is similar to the AUTOEXEC.BAT files +from MS-DOS. -With the exception of ZPM3, all operating systems will look for a file called `PROFILE.SUB` on the system drive at boot. If it is found, it will be processed as a standard CP/M submit file. You can read about the use of the SUBMIT facility in the CP/M manuals included in the RomWBW distribution. Note that the boot disk must also have a copy of `SUBMIT.EXE`. +With the exception of ZPM3, all operating systems will look for a +file called `PROFILE.SUB` on the system drive at boot. If it is +found, it will be processed as a standard CP/M submit file. You can +read about the use of the SUBMIT facility in the CP/M manuals +included in the RomWBW distribution. Note that the boot disk must +also have a copy of `SUBMIT.EXE`. -In the case of ZPM3, the file called `STARTZPM.COM` will be run at boot. To customize this file, you use the ZCPR ALIAS facility. You will need to refer to ZCPR documentation for more information on the ALIAS facility. +In the case of ZPM3, the file called `STARTZPM.COM` will be run at +boot. To customize this file, you use the ZCPR ALIAS facility. You +will need to refer to ZCPR documentation for more information on the +ALIAS facility. -Note that the automatic startup processing generally requires booting to a disk drive. Since the ROM disk is not writable, there is no simple way to add/edit a `PROFILE.SUB` file there. If you want to customize your ROM and add a `PROFILE.SUB` file to the ROM Disk, it will work, but is a lot harder than using a boot disk. +Note that the automatic startup processing generally requires booting +to a disk drive. Since the ROM disk is not writable, there is no +simple way to add/edit a `PROFILE.SUB` file there. If you want to +customize your ROM and add a `PROFILE.SUB` file to the ROM Disk, it +will work, but is a lot harder than using a boot disk. # ROM Customization -The pre-built ROM images are configured for the basic capabilities of each platform. Additionally, some of the typical add-on hardware for each platform will be automatically detected and used. If you want to go beyond this, RomWBW provides a very flexible configuration mechanism based on configuration files. Creating a customized ROM requires running a build script, but it is quite easy to do. +The pre-built ROM images are configured for the basic capabilities of +each platform. Additionally, some of the typical add-on hardware for +each platform will be automatically detected and used. If you want to +go beyond this, RomWBW provides a very flexible configuration +mechanism based on configuration files. Creating a customized ROM +requires running a build script, but it is quite easy to do. -Essentially, the creation of a custom ROM is accomplished by updating a small configuration file, then running a script to compile the software and generate the custom ROM and disk images. There are build scripts for Windows, Linux, and MacOS to accommodate virtually all users. All required build tools (compilers, assemblers, etc.) are included in the distribution, so it is not necessary to setup a build environment on your computer. +Essentially, the creation of a custom ROM is accomplished by updating +a small configuration file, then running a script to compile the +software and generate the custom ROM and disk images. There are build +scripts for Windows, Linux, and MacOS to accommodate virtually all +users. All required build tools (compilers, assemblers, etc.) are +included in the distribution, so it is not necessary to setup a build +environment on your computer. -The process for building a custom ROM is documented in the ReadMe.txt file in the Source directory of the distribution. +The process for building a custom ROM is documented in the ReadMe.txt +file in the Source directory of the distribution. -For those who are interested in more than basic system customization, note that all source code is provided (including the operating systems). Modification of the source code is considered an expert level task and is left to the reader to pursue. +For those who are interested in more than basic system customization, +note that all source code is provided (including the operating +systems). Modification of the source code is considered an expert +level task and is left to the reader to pursue. -Note that the ROM customization process does not apply to UNA. All UNA customization is performed within the ROM setup script. +Note that the ROM customization process does not apply to UNA. All +UNA customization is performed within the ROM setup script. # UNA Hardware BIOS -John Coffman has produced a new generation of hardware BIOS called UNA. The standard RomWBW distribution includes it's own hardware BIOS. However, RomWBW can alternatively be constructed with UNA as the hardware BIOS portion of the ROM. If you wish to use the UNA variant of RomWBW, then just program your ROM with the ROM image called "UNA_std.rom" in the Binary directory. This one image is suitable on **all** of the platforms and hardware UNA supports. - -UNA is customized dynamically using a ROM based setup routine and the setup is persisted in the system NVRAM of the RTC chip. This means that the single UNA-based ROM image can be used on most of the RetroBrew platforms and is easily customized. UNA also supports FAT file system access that can be used for in-situ ROM programming and loading system images. - -While John is likely to enhance UNA over time, there are currently a few things that UNA does not support: - - * Floppy Drives - * Terminal Emulation - * Zeta 1, N8, RC2014, Easy Z80, and Dyno Systems - * Some older support boards - -The UNA version embedded in RomWBW is the latest production release of UNA. RomWBW will be updated with John's upcoming UNA release with support for VGA3 as soon as it reaches production status. - -Please refer to the [UNA BIOS Firmware Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:una:start) for more information on UNA. +John Coffman has produced a new generation of hardware BIOS called +UNA. The standard RomWBW distribution includes it's own hardware +BIOS. However, RomWBW can alternatively be constructed with UNA as +the hardware BIOS portion of the ROM. If you wish to use the UNA +variant of RomWBW, then just program your ROM with the ROM image +called "UNA_std.rom" in the Binary directory. This one image is +suitable on **all** of the platforms and hardware UNA supports. + +UNA is customized dynamically using a ROM based setup routine and the +setup is persisted in the system NVRAM of the RTC chip. This means +that the single UNA-based ROM image can be used on most of the +RetroBrew platforms and is easily customized. UNA also supports FAT +file system access that can be used for in-situ ROM programming and +loading system images. + +While John is likely to enhance UNA over time, there are currently a +few things that UNA does not support: + +* Floppy Drives +* Terminal Emulation +* Zeta 1, N8, RC2014, Easy Z80, and Dyno Systems +* Some older support boards + +The UNA version embedded in RomWBW is the latest production release +of UNA. RomWBW will be updated with John's upcoming UNA release with +support for VGA3 as soon as it reaches production status. + +Please refer to the +[UNA BIOS Firmware Page](https://www.retrobrewcomputers.org/doku.php?id=software:firmwareos:una:start) +for more information on UNA. # RomWBW Distribution -All source code and distributions are maintained on GitHub. Code contributions are very welcome. +All source code and distributions are maintained on GitHub. Code +contributions are very welcome. [RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW|https://github.com/wwarthen/RomWBW) ## Distribution Directory Layout -The RomWBW distribution is a compressed zip archive file organized in a set of directories. Each of these directories has it's own ReadMe.txt file describing the contents in detail. In summary, these directories are: +The RomWBW distribution is a compressed zip archive file organized in +a set of directories. Each of these directories has it's own +ReadMe.txt file describing the contents in detail. In summary, these +directories are: | Application | Description | | ----------- | -------------------------------------------------------------- | @@ -534,27 +1142,41 @@ The RomWBW distribution is a compressed zip archive file organized in a set of d # Acknowledgments -While I have heavily modified much of the code, I want to acknowledge that much of the work is derived from the work of others in the RetroBrew Computers Community including Andrew Lynch, Dan Werner, Max Scane, David Giles, John Coffman, and probably many others I am not clearly aware of (let me know if I omitted someone!). - -I especially want to credit Douglas Goodall for contributing code, time, testing, and advice. He created an entire suite of application programs to enhance the use of RomWBW. However, he is looking for someone to continue the maintenance of these applications and they have become unusable due to changes within RomWBW. As of RomWBW 2.6, these applications are no longer provided. - - * David Giles contributed support for the CSIO support in the SD Card driver. - * Ed Brindley contributed some of the code that supports the RC2014 platform. - * Phil Summers contributed Forth and BASIC in ROM as well as a long list of general code enhancements. - * Phillip Stevens contributed support for FreeRTOS. - * Curt Mayer contributed the Linux / MacOS build process. - * UNA BIOS is a product of John Coffman. +While I have heavily modified much of the code, I want to acknowledge +that much of the work is derived from the work of others in the +RetroBrew Computers Community including Andrew Lynch, Dan Werner, Max +Scane, David Giles, John Coffman, and probably many others I am not +clearly aware of (let me know if I omitted someone!). + +I especially want to credit Douglas Goodall for contributing code, +time, testing, and advice. He created an entire suite of application +programs to enhance the use of RomWBW. However, he is looking for +someone to continue the maintenance of these applications and they +have become unusable due to changes within RomWBW. As of RomWBW 2.6, +these applications are no longer provided. + +* David Giles contributed support for the CSIO support in the SD Card +driver. +* Ed Brindley contributed some of the code that supports the RC2014 +platform. +* Phil Summers contributed Forth and BASIC in ROM as well as a long +list of general code enhancements. +* Phillip Stevens contributed support for FreeRTOS. +* Curt Mayer contributed the Linux / MacOS build process. +* UNA BIOS and FDISK80 is a product of John Coffman. +* FLASH4 is a product of Will Sowerbutts. Contributions of all kinds to RomWBW are very welcome. # Getting Assistance -The best way to get assistance with RomWBW or any aspect of the RetroBrew Computers projects is via the community forums: +The best way to get assistance with RomWBW or any aspect of the +RetroBrew Computers projects is via the community forums: - * [RetroBrew Computers Forum](https://www.retrobrewcomputers.org/forum/) - * [RC2014 Google Group](https://groups.google.com/forum/#!forum/rc2014-z80) - * [retro-comp Google Group](https://groups.google.com/forum/#!forum/retro-comp) +* [RetroBrew Computers Forum](https://www.retrobrewcomputers.org/forum/) +* [RC2014 Google Group](https://groups.google.com/forum/#!forum/rc2014-z80) +* [retro-comp Google Group](https://groups.google.com/forum/#!forum/retro-comp) Submission of issues and bugs are welcome at the [RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW). -Also feel free to email !author at [!authmail](mailto:!authmail). +Also feel free to email !author at [!authmail](mailto:!authmail). \ No newline at end of file