diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 3cc350c2..ffde712f 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index 5d6f75e8..2ab9d6f7 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Hardware.pdf b/Doc/RomWBW Hardware.pdf index d6ea250a..492592f2 100644 Binary files a/Doc/RomWBW Hardware.pdf and b/Doc/RomWBW Hardware.pdf differ diff --git a/Doc/RomWBW Introduction.pdf b/Doc/RomWBW Introduction.pdf index 638d4448..cf6c8146 100644 Binary files a/Doc/RomWBW Introduction.pdf and b/Doc/RomWBW Introduction.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 5ee6a492..d51d2edc 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index c9bd0f19..e69b49b3 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/ReadMe.md b/ReadMe.md index b5d89a56..a9a8ffa9 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -7,7 +7,7 @@ **RomWBW Introduction** \ Version 3.6 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -06 Jun 2025 +07 Jun 2025 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index 7f60d0ff..11467777 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW Introduction Wayne Warthen (wwarthen@gmail.com) -06 Jun 2025 +07 Jun 2025 diff --git a/Source/Doc/Catalog.md b/Source/Doc/Catalog.md index 78576b35..8b5ec975 100644 --- a/Source/Doc/Catalog.md +++ b/Source/Doc/Catalog.md @@ -667,12 +667,12 @@ The following are found in | **File** | **CP/NET Version** | **OS** | **Hardware** | |-----------------|---------------------|-----------------|-------------------------| -| CPN12MT.LBR | CP/NET 1.2 | CP/M 2.2 | RCBus w/ MT011 | -| CPN3MT.LBR | CP/NET 3 | CP/M 3 | RCBus w/ MT011 | -| CPN12DUO.LBR | CP/NET 1.2 | CP/M 2.2 | Duodyne w/ Disk I/O | -| CPN3DUO.LBR | CP/NET 3 | CP/M 3 | Duodyne w/ Disk I/O | -| CPN12SER.LBR | CP/NET 1.2 | CP/M 2.2 | RomWBW Serial Port | -| CPN3SER.LBR | CP/NET 3 | CP/M 3 | RomWBW Serial Port | +| `CPN12MT.LBR` | CP/NET 1.2 | CP/M 2.2 | RCBus w/ MT011 | +| `CPN3MT.LBR` | CP/NET 3 | CP/M 3 | RCBus w/ MT011 | +| `CPN12DUO.LBR` | CP/NET 1.2 | CP/M 2.2 | Duodyne w/ Disk I/O | +| `CPN3DUO.LBR` | CP/NET 3 | CP/M 3 | Duodyne w/ Disk I/O | +| `CPN12SER.LBR` | CP/NET 1.2 | CP/M 2.2 | RomWBW Serial Port | +| `CPN3SER.LBR` | CP/NET 3 | CP/M 3 | RomWBW Serial Port | ## General Purpose Applications @@ -928,12 +928,12 @@ The following files are found in | **File** | **Description** | |----------------|-----------------------------------------------------------| -| HDIR.COM | | -| R.COM | transfer files between the simulator and host file system | -| RSETSIMH.COM | -- | -| TIMER.COM | -- | -| URL.COM | -- | -| W.COM | transfer files between the simulator and host file system | +| `HDIR.COM` | | +| `R.COM` | transfer files between the simulator and host file system | +| `RSETSIMH.COM` | -- | +| `TIMER.COM` | -- | +| `URL.COM` | -- | +| `W.COM` | transfer files between the simulator and host file system | ## Testing Applications @@ -1060,66 +1060,66 @@ The following files are found in * /Source/Images/d_cowgol -| **File** | **Description** | -|--------------|--------------------------------------------| -| $EXEC.COM | HiTech C batch processor which launches the Cowgol toolchain executables | -| ADVENT.COW | Adventure game program source | -| ADVENT.SUB | SUBMIT file to build Adventure game | -| ADVENT?.TXT | Adventure game program resources | -| ADVMAIN.COW | Adventure game program source | -| ADVTRAV.COW | Adventure game component source | -| ARGV.COH | Cowgol include file providing command line argument processing | -| C.LIB | HI-TECH C runtime library | -| CGEN.COM | HiTech C compiler pass 2 | -| COMMFILE.COH | Include file providing file I/O | -| COMMON.COH | Include file providing common functions | -| COWBE.COM | Cowgol back end which builds the cowgol object files (optimized) | -| COWFE.COM | Cowgol front end which parses the source file (optimized) | -| COWFIX.COM | Interface to Z80AS -- performs code optimizations | -| COWGOL.COH | Include file providing standard Cowgol functions | -| COWGOL.COM | Interprets the command line and generates $EXEC run requests (a variant of HiTech C.COM) | -| COWGOL.COO | Cowgol object file with ??? | -| COWGOL.LIB | ??? | -| COWGOLC.COH | Cowgol include file providing ??? | -| COWLINK.COM | Cowgol linker which binds all the cowgol object files and outputs a Z80 assembler file (optimized) | -| CPP.COM | HiTech C pre-processor, modified to accept // style comments | -| DYNMSORT.COW | Sort algorithm sample program source | -| DYNMSORT.SUB | SUBMIT file to build DYNMSORT sample application | -| FACT.COW | Factorial computation sample program source | -| FILE.COH | Include file providing CP/M file processing support | -| FILEIO.COH | Include file providing CP/M file processing support | -| HEXDUMP.COW | Hex file dump sample source | -| HEXDUMP.SUB | SUBMIT file to build HEXDUMP sample program | -| LIBBASIC.COH | Include file providing ??? | -| LIBBIOS.COH | Include file providing ??? | -| LIBCONIO.COH | Include file providing console I/O | -| LIBFP.COH | Include file providing floating point support | -| LIBR.COM | HiTech object file librarian | -| LIBSTR.COH | Include file providing string functions | -| LINK.COM | HiTech linker which builds the final executable from object and library files | -| MALLOC.COH | Include file providing dynamic memory management functions | -| MERGES.C | Merge sort sample function C language source | -| MISC.COH | Include file providing miscellaneous functions | -| MISC.COO | Miscellaneous functions object file | -| MISC.COW | Miscellaneous functions source file | -| OPTIM.COM | HiTech C compiler optimizer | -| P1.COM | HiTech C compiler first pass | -| RAND.AS | Pseudo-random number generator source in assembly language | -| RANFILE.COH | Include file providing random file access functions | -| RANFILE.COO | Random file access functions object file | -| RANFILE.COW | Random file access functions source file | -| README.TXT | Cowgol disk image release notes | -| SEQFILE.COH | Include file providing sequential file access functions | -| SEQFILE.COO | Sequential file access functions object file | -| SEQFILE.COW | Sequential file access functions source file | -| STDCOW.COH | Include file providing standard library functions | -| STRING.COH | Include file providing string functions | -| STRING.COO | String functions object file | -| STRING.COW | String functions source file | -| STRINGS.COH | Include file implementing string functions | -| TESTAS.COW | Assembly language interface sample program source | -| TESTAS.SUB | SUBMIT file to build TESTAS sample program | -| Z80AS.COM | Z80 assembler which assembles the output of COWFIX and other Z80 source files (see ) | +| **File** | **Description** | +|----------------|--------------------------------------------| +| `$EXEC.COM` | HiTech C batch processor which launches the Cowgol toolchain executables | +| `ADVENT.COW` | Adventure game program source | +| `ADVENT.SUB` | SUBMIT file to build Adventure game | +| `ADVENT?.TXT` | Adventure game program resources | +| `ADVMAIN.COW` | Adventure game program source | +| `ADVTRAV.COW` | Adventure game component source | +| `ARGV.COH` | Cowgol include file providing command line argument processing | +| `C.LIB` | HI-TECH C runtime library | +| `CGEN.COM` | HiTech C compiler pass 2 | +| `COMMFILE.COH` | Include file providing file I/O | +| `COMMON.COH` | Include file providing common functions | +| `COWBE.COM` | Cowgol back end which builds the cowgol object files (optimized) | +| `COWFE.COM` | Cowgol front end which parses the source file (optimized) | +| `COWFIX.COM` | Interface to Z80AS -- performs code optimizations | +| `COWGOL.COH` | Include file providing standard Cowgol functions | +| `COWGOL.COM` | Interprets the command line and generates $EXEC run requests (a variant of HiTech C.COM) | +| `COWGOL.COO` | Cowgol object file with ??? | +| `COWGOL.LIB` | ??? | +| `COWGOLC.COH` | Cowgol include file providing ??? | +| `COWLINK.COM` | Cowgol linker which binds all the cowgol object files and outputs a Z80 assembler file (optimized) | +| `CPP.COM` | HiTech C pre-processor, modified to accept // style comments | +| `DYNMSORT.COW` | Sort algorithm sample program source | +| `DYNMSORT.SUB` | SUBMIT file to build DYNMSORT sample application | +| `FACT.COW` | Factorial computation sample program source | +| `FILE.COH` | Include file providing CP/M file processing support | +| `FILEIO.COH` | Include file providing CP/M file processing support | +| `HEXDUMP.COW` | Hex file dump sample source | +| `HEXDUMP.SUB` | SUBMIT file to build HEXDUMP sample program | +| `LIBBASIC.COH` | Include file providing ??? | +| `LIBBIOS.COH` | Include file providing ??? | +| `LIBCONIO.COH` | Include file providing console I/O | +| `LIBFP.COH` | Include file providing floating point support | +| `LIBR.COM` | HiTech object file librarian | +| `LIBSTR.COH` | Include file providing string functions | +| `LINK.COM` | HiTech linker which builds the final executable from object and library files | +| `MALLOC.COH` | Include file providing dynamic memory management functions | +| `MERGES.C` | Merge sort sample function C language source | +| `MISC.COH` | Include file providing miscellaneous functions | +| `MISC.COO` | Miscellaneous functions object file | +| `MISC.COW` | Miscellaneous functions source file | +| `OPTIM.COM` | HiTech C compiler optimizer | +| `P1.COM` | HiTech C compiler first pass | +| `RAND.AS` | Pseudo-random number generator source in assembly language | +| `RANFILE.COH` | Include file providing random file access functions | +| `RANFILE.COO` | Random file access functions object file | +| `RANFILE.COW` | Random file access functions source file | +| `README.TXT` | Cowgol disk image release notes | +| `SEQFILE.COH` | Include file providing sequential file access functions | +| `SEQFILE.COO` | Sequential file access functions object file | +| `SEQFILE.COW` | Sequential file access functions source file | +| `STDCOW.COH` | Include file providing standard library functions | +| `STRING.COH` | Include file providing string functions | +| `STRING.COO` | String functions object file | +| `STRING.COW` | String functions source file | +| `STRINGS.COH` | Include file implementing string functions | +| `TESTAS.COW` | Assembly language interface sample program source | +| `TESTAS.SUB` | SUBMIT file to build TESTAS sample program | +| `Z80AS.COM` | Z80 assembler which assembles the output of COWFIX and other Z80 source files (see ) | ## Microsoft Fortran 80 (Fortran) @@ -1205,11 +1205,11 @@ all CP/M and compatible operations systems provided in RomWBW. The enhanced files are: -- CGEN.COM -- CPP.COM -- OPTIM.COM -- P1.COM -- ZAS.COM (replaced with Z80AS) +- `CGEN.COM` +- `CPP.COM` +- `OPTIM.COM` +- `P1.COM` +- `ZAS.COM` (replaced with Z80AS) A thread discussing this enhanced version of HI-TECH C is found at . @@ -1218,52 +1218,52 @@ The following files are found in * /Source/Images/d_hitechc -| **File** | **Description** | -|--------------|--------------------------------------------| -| $EXEC.COM | Compiler execution manager | -| ASSERT.H | Language include file | -| C.COM | Compiler invocation application (updated) | -| C309.COM | Compiler invocation application (original) | -| CGEN.COM | The code generator - produces assembler code | -| CONIO.H | Language include file (see manual) | -| CPM.H | Language include file (see manual) | -| CPP.COM | Pre-processor - handles macros and conditional compilation | -| CREF.COM | Produces cross-reference listings of C or assembler programs | -| CRTCPM.OBJ | Startup Object File (standard) | -| CTYPE.H | Language include file (see manual) | -| DEBUG.COM | C Debugger (Z80) | -| DRTCPM.OBJ | Startup Object File (???) | -| EXEC.H | Language include file (see manual) | -| FLOAT.H | Language include file (see manual) | -| HITECH.H | Language include file (see manual) | -| LIBC.LIB | Standard C Runtime Library | -| LIBF.LIB | Floating Point Library | -| LIBOVR.LIB | Overlay Library | -| LIBR.COM | Creates and maintains libraries of object modules | -| LIMITS.H | Language include file (see manual) | -| LINQ.COM | Link editor - links object files with libraries | -| MATH.H | Language include file (see manual) | -| NRTCPM.OBJ | Startup Object File (minimal getargs) | -| OBJTOHEX.COM | Converts the output of LINK into the appropriate executable file format (e.g., .EXE or .PRG or .HEX) | -| OPTIM.COM | Code improver - may optionally be omitted, reducing compilation time at a cost of larger, slower code produced | -| OPTIONS | Compiler usage help file | -| OVERLAY.H | Language include file | -| P1.COM | The syntax and semantic analysis pass - writes intermediate code for the code generator to read | -| RRTCPM.OBJ | Startup Object File (self relocating) | -| SETJMP.H | Language include file (see manual) | -| SIGNAL.H | Language include file (see manual) | -| STAT.H | Language include file (see manual) | -| STDARG.H | Language include file (see manual) | -| STDDEF.H | Language include file (see manual) | -| STDINT.H | Language include file (see manual) | -| STDIO.H | Language include file (see manual) | -| STDLIB.H | Language include file (see manual) | -| STRING.H | Language include file (see manual) | -| SYMTOAS.COM | Convert symbol file to assembler | -| SYS.H | Language include file (see manual) | -| TIME.H | Language include file (see manual) | -| UNIXIO.H | Language include file (see manual) | -| ZAS.COM | The assembler - in fact a general purpose macro assembler | +| **File** | **Description** | +|----------------|--------------------------------------------| +| `$EXEC.COM` | Compiler execution manager | +| `ASSERT.H` | Language include file | +| `C.COM` | Compiler invocation application (updated) | +| `C309.COM` | Compiler invocation application (original) | +| `CGEN.COM` | The code generator - produces assembler code | +| `CONIO.H` | Language include file (see manual) | +| `CPM.H` | Language include file (see manual) | +| `CPP.COM` | Pre-processor - handles macros and conditional compilation | +| `CREF.COM` | Produces cross-reference listings of C or assembler programs | +| `CRTCPM.OBJ` | Startup Object File (standard) | +| `CTYPE.H` | Language include file (see manual) | +| `DEBUG.COM` | C Debugger (Z80) | +| `DRTCPM.OBJ` | Startup Object File (???) | +| `EXEC.H` | Language include file (see manual) | +| `FLOAT.H` | Language include file (see manual) | +| `HITECH.H` | Language include file (see manual) | +| `LIBC.LIB` | Standard C Runtime Library | +| `LIBF.LIB` | Floating Point Library | +| `LIBOVR.LIB` | Overlay Library | +| `LIBR.COM` | Creates and maintains libraries of object modules | +| `LIMITS.H` | Language include file (see manual) | +| `LINQ.COM` | Link editor - links object files with libraries | +| `MATH.H` | Language include file (see manual) | +| `NRTCPM.OBJ` | Startup Object File (minimal getargs) | +| `OBJTOHEX.COM` | Converts the output of LINK into the appropriate executable file format (e.g., .EXE or .PRG or .HEX) | +| `OPTIM.COM` | Code improver - may optionally be omitted, reducing compilation time at a cost of larger, slower code produced | +| `OPTIONS` | Compiler usage help file | +| `OVERLAY.H` | Language include file | +| `P1.COM` | The syntax and semantic analysis pass - writes intermediate code for the code generator to read | +| `RRTCPM.OBJ` | Startup Object File (self relocating) | +| `SETJMP.H` | Language include file (see manual) | +| `SIGNAL.H` | Language include file (see manual) | +| `STAT.H` | Language include file (see manual) | +| `STDARG.H` | Language include file (see manual) | +| `STDDEF.H` | Language include file (see manual) | +| `STDINT.H` | Language include file (see manual) | +| `STDIO.H` | Language include file (see manual) | +| `STDLIB.H` | Language include file (see manual) | +| `STRING.H` | Language include file (see manual) | +| `SYMTOAS.COM` | Convert symbol file to assembler | +| `SYS.H` | Language include file (see manual) | +| `TIME.H` | Language include file (see manual) | +| `UNIXIO.H` | Language include file (see manual) | +| `ZAS.COM` | The assembler - in fact a general purpose macro assembler | ## MSX ROMS @@ -1315,17 +1315,17 @@ The following files are found in * /Source/Images/d_tpascal -| **File** | **Description** | -|--------------|--------------------------------| -| ART.TXT | Part of the Example program | -| SA.PAS | Example Program | -| TINST.COM | Installation and Configuration | -| TINST.DTA | Part of TINST | -| TINST.MSG | Part of TINST | -| TURBO.COM | The main Turbo Pascal program | -| TURBO.MSG | Part of TURBO tascal | -| TURBO.OVR | Part of TURBO tascal | -| TURBOMSG.OVR | Part of TURBO tascal | +| **File** | **Description** | +|----------------|--------------------------------| +| `ART.TXT` | Part of the Example program | +| `SA.PAS` | Example Program | +| `TINST.COM` | Installation and Configuration | +| `TINST.DTA` | Part of TINST | +| `TINST.MSG` | Part of TINST | +| `TURBO.COM` | The main Turbo Pascal program | +| `TURBO.MSG` | Part of TURBO Pascal | +| `TURBO.OVR` | Part of TURBO Pascal | +| `TURBOMSG.OVR` | Part of TURBO Pascal | ## WordStar 4 @@ -1472,53 +1472,53 @@ The following files are found in User Area 0 - Assembler -| **File** | **Description** | -|-------------|---------------------------------------------| -| 180FIG.COM | Configuration utility for SLR180.COM | -| 8080.MAC | ? | -| CONFIG.COM | Configuration utility for Z80ASM.COM | -| CONFIGP.COM | Configuration utility for Z80ASMP.COM | -| DUMP.* | Sample Program | -| MAKESYM.COM | Symbol File .SYM file generation | -| MAKESYM.DOC | Documentation for MAKESYM.COM | -| SLR180.COM | HD64180 (Z180) Relocating Macro Assembler | -| SLR180.DOC | Release Notes for SLR180.COM | -| SLRMAC.COM | 8080 Relocating Macro Assembler | -| SYNTAX.HLP | Documentation basic usage for all SLR Tools | -| SYNTAX.TXT | Documentation basic usage for all SLR Tools | -| TEST.* | Sample Program | -| Z80ASM.COM | Z80 Relocating Macro Assembler | -| Z80ASMP.COM | Z80 Relocating Macro Assembler (PLUS) | -| Z80ASM.DOC | Release Notes for Z80ASM.COM | +| **File** | **Description** | +|---------------|---------------------------------------------| +| `180FIG.COM` | Configuration utility for SLR180.COM | +| `8080.MAC` | ? | +| `CONFIG.COM` | Configuration utility for Z80ASM.COM | +| `CONFIGP.COM` | Configuration utility for Z80ASMP.COM | +| `DUMP.*` | Sample Program | +| `MAKESYM.COM` | Symbol File .SYM file generation | +| `MAKESYM.DOC` | Documentation for MAKESYM.COM | +| `SLR180.COM` | HD64180 (Z180) Relocating Macro Assembler | +| `SLR180.DOC` | Release Notes for SLR180.COM | +| `SLRMAC.COM` | 8080 Relocating Macro Assembler | +| `SYNTAX.HLP` | Documentation basic usage for all SLR Tools | +| `SYNTAX.TXT` | Documentation basic usage for all SLR Tools | +| `TEST.\*` | Sample Program | +| `Z80ASM.COM` | Z80 Relocating Macro Assembler | +| `Z80ASMP.COM` | Z80 Relocating Macro Assembler (PLUS) | +| `Z80ASM.DOC` | Release Notes for Z80ASM.COM | User Area 1 - Linker and Library Management -| **File** | **Description** | -|--------------|-----------------------------------------------| -| LNKFIG.COM | Configuration utility for SLRNK.COM | -| NZLNKFIX.ZEX | ? | -| SLRIB.COM | SuperLibrarian, library manager | -| SLRNK.COM | SuperLinker, the main linker tool | -| SLRNKP.COM | SuperLinker (PLUS) | -| SLRNK.DOC | Release Notes for SLRNK.COM | -| SLRNKFIX.ZEX | ? | -| SYNTAX.HLP | Documentation basic usage for all SLR Tools | -| SYNTAX.TXT | Documentation basic usage for all SLR Tools | -| SYSSLR.REL | SYSLIB (older) Library compatible with SLR | -| VSLR.REL | VLIB (older) Library compatible with SLR | -| Z3SLR.REL | Z3LIB (older) Library compatible with SLR | +| **File** | **Description** | +|----------------|-----------------------------------------------| +| `LNKFIG.COM` | Configuration utility for SLRNK.COM | +| `NZLNKFIX.ZEX` | ? | +| `SLRIB.COM` | SuperLibrarian, library manager | +| `SLRNK.COM` | SuperLinker, the main linker tool | +| `SLRNKP.COM` | SuperLinker (PLUS) | +| `SLRNK.DOC` | Release Notes for SLRNK.COM | +| `SLRNKFIX.ZEX` | ? | +| `SYNTAX.HLP` | Documentation basic usage for all SLR Tools | +| `SYNTAX.TXT` | Documentation basic usage for all SLR Tools | +| `SYSSLR.REL` | SYSLIB (older) Library compatible with SLR | +| `VSLR.REL` | VLIB (older) Library compatible with SLR | +| `Z3SLR.REL` | Z3LIB (older) Library compatible with SLR | User Area 2 - Disassembler -| **File** | **Description** | -|--------------|----------------------------------| -| README.22 | Documentation for Z80DIS | -| Z80DIS.000 | Overlay File for Z80DIS.COM | -| Z80DIS.001 | Overlay File for Z80DIS.COM | -| Z80DIS.002 | Overlay File for Z80DIS.COM | -| Z80DIS.COM | Z80DIS Disassembler main program | -| Z80DIS22.DOC | Main Documentation for Z80DIS | -| ZDINSTAL.COM | Instal and Config for Z80DIS.COM | -| ZDINSTAL.DTA | Overlay file for ZDINSTAL.COM | -| ZDINSTAL.MSG | Overlay file for ZDINSTAL.COM | +| **File** | **Description** | +|----------------|----------------------------------| +| `README.22` | Documentation for Z80DIS | +| `Z80DIS.000` | Overlay File for Z80DIS.COM | +| `Z80DIS.001` | Overlay File for Z80DIS.COM | +| `Z80DIS.002` | Overlay File for Z80DIS.COM | +| `Z80DIS.COM` | Z80DIS Disassembler main program | +| `Z80DIS22.DOC` | Main Documentation for Z80DIS | +| `ZDINSTAL.COM` | Instal and Config for Z80DIS.COM | +| `ZDINSTAL.DTA` | Overlay file for ZDINSTAL.COM | +| `ZDINSTAL.MSG` | Overlay file for ZDINSTAL.COM | diff --git a/Source/Doc/Introduction.md b/Source/Doc/Introduction.md index bbfd6a8f..b6ef4b48 100644 --- a/Source/Doc/Introduction.md +++ b/Source/Doc/Introduction.md @@ -1,414 +1,414 @@ -$define{doc_title}{Introduction}$ -$include{"Book.h"}$ - -# Overview - -RomWBW software provides a complete, commercial quality -implementation of CP/M (and workalike) operating systems and -applications for modern Z80/180/280 retro-computing hardware systems. - -A wide variety of platforms are supported including those -produced by these developer communities: - -* [RetroBrew Computers](https://www.retrobrewcomputers.org) - () -* [RC2014](https://rc2014.co.uk) (), \ - [RC2014-Z80](https://groups.google.com/g/rc2014-z80) - () -* [Retro Computing](https://groups.google.com/g/retro-comp) - () -* [Small Computer Central](https://smallcomputercentral.com/) - () - -A complete list of the currently supported platforms is found in -$doc_hardware$ . - -`\clearpage`{=latex} - -# Description - -## Primary Features - -By design, RomWBW isolates all of the hardware specific functions in -the ROM chip itself. The ROM provides a hardware abstraction layer -such that all of the operating systems and applications on a disk -will run on any RomWBW-based system. To put it simply, you can take -a disk (or CF/SD/USB Card) and move it between systems transparently. - -Supported hardware features of RomWBW include: - -* Z80 Family CPUs including Z80, Z180, and Z280 -* Banked memory services for several banking designs -* Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, Iomega -* Serial drivers including UART (16550-like), ASCI, ACIA, SIO -* Video drivers including TMS9918, SY6545, MOS8563, HD6445, Xosera -* Keyboard (PS/2) drivers via VT8242 or PPI interfaces -* Real time clock drivers including DS1302, BQ4845 -* Support for CP/NET networking using Wiznet, MT011 or Serial -* Built-in VT-100 terminal emulation support - -A dynamic disk drive letter assignment mechanism allows mapping -operating system drive letters to any available disk media. -Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.) -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 addressable storage on a single device, -with up to 128MB accessible at any one time. - -## Included Software - -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. - -Some of the included software: - -* Operating Systems (CP/M 2.2, ZSDOS, NZ-COM, CP/M 3, ZPM3, Z3PLUS, QPM ) -* Support for other operating systems, p-System, FreeRTOS, and FUZIX. -* Programming Tools (Z80ASM, Turbo Pascal, Forth, Cowgol) -* C Compiler's including Aztec-C, and HI-TECH C -* Microsoft Basic Compiler, and Microsoft Fortran -* Some games such as Colossal Cave, Zork, etc -* Wordstar Word processing software - -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 tool is provided that allows you to access a FAT-12/16/32 filesystem. -The FAT filesystem may be coresident on the same disk media as RomWBW -slices or on stand-alone media. This makes exchanging files with modern -OSes such as Windows, MacOS, and Linux very easy. - -`\clearpage`{=latex} - -## ROM Distribution - -The [RomWBW Repository](https://github.com/wwarthen/RomWBW) -() on GitHub is the official -distribution location for all project source and documentation. - -RomWBW is distributed as both source code and pre-built ROM and disk -images. - -The pre-built ROM images distributed with RomWBW are based on -the default system configurations as determined by the hardware -provider/designer. The pre-built ROM firmware images are generally -suitable for most users. - -The fully-built distribution releases are available on the -[RomWBW Releases Page](https://github.com/wwarthen/RomWBW/releases) -() of the repository. - -On this page, you will normally see a Development Snapshot as well as -recent stable releases. Unless you have a specific reason, I suggest you -stick to the most recent stable release. - -The asset named RomWBW-vX.X.X-Package.zip includes all pre-built ROM -and Disk images as well as full source code. The other assets contain -only source code and do not have the pre-built ROM or disk images. - -#### Distribution Directory Layout - -The RomWBW distribution is a compressed zip archive file organized in -a set of directories. Each of these directories has its own -ReadMe.txt file describing the contents in detail. In summary, these -directories are: - -| **Directory** | **Description** | -|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Binary** | The final output files of the build process are placed here. Most importantly, the ROM images with the file names ending in ".rom" and disk images ending in .img. | -| **Doc** | Contains various detailed documentation, both RomWBW specifically as well as the operating systems and applications. | -| **Source** | Contains the source code files used to build the software and ROM images. | -| **Tools** | Contains the programs that are used by the build process or that may be useful in setting up your system. | - -`\clearpage`{=latex} - -#### Building from Source - -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 under Windows are -included -- no need to install assemblers, etc. The firmware can also -be built using Linux or MacOS after confirming a few standard tools -have been installed. - -## Installation & Operation - -In general, installation of RomWBW on your platform is very simple. You -just need to program your ROM with the correct ROM image from the RomWBW -distribution. Subsequently, you can write disk images on your disk -drives (IDE disk, CF Card, SD Card, etc.) which then provides even more -functionality. - -Complete instructions for installation and operation of RomWBW are found -in the $doc_user$. It is also a good idea to review the [Release -Notes](https://github.com/wwarthen/RomWBW/blob/master/RELEASE_NOTES.md) -for helpful release-specific information. - -## Documentation - -There are several documents that form the core of the RomWBW documentation: - -* $doc_user$ is the main user guide for RomWBW, it covers the major topics - of how to install, manage and use RomWBW, and includes additional guidance - to the use of some of the operating systems supported by RomWBW - -* $doc_hardware$ contains a description of all the hardware platforms, - and devices supported by RomWBW. - -* $doc_apps$ is a reference for the ROM-hosted and OS-hosted applications - created or customized to enhance the operation of RomWBW. - -* $doc_catalog$ is a reference for the contents of the disk images - provided with RomWBW, with a description of many of the files on each image - -* $doc_sys$ discusses much of the internal design and construction - of RomWBW. It includes a reference for the RomWBW HBIOS API - functions. - -Each of the operating systems and ROM applications included with RomWBW -are sophisticated tools in their own right. It is not reasonable to -fully document their usage. However, you will find complete manuals -in PDF format in the Doc directory of the distribution. The intention -of this documentation is to describe the operation of RomWBW and the ways in -which it enhances the operation of the included applications and -operating systems. - -Since RomWBW is purely a software product for many different platforms, -the documentation does **not** cover hardware construction, -configuration, or troubleshooting -- please see your hardware provider -for this information. - -# Support - -## Getting Assistance - -The best way to get assistance with RomWBW or any aspect of the -RetroBrew Computers projects is via one of 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) - -Submission of issues and bugs are welcome at the -[RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW). - -Also feel free to email $doc_author$ at [$doc_authmail$](mailto:$doc_authmail$). -I am happy to provide support adapting RomWBW to new or modified systems - -# Contributions - -All source code and distributions are maintained on GitHub. -Contributions of all kinds to RomWBW are very welcome. - -## Acknowledgments - -I want to acknowledge that a great deal of the code and inspiration -for RomWBW has been provided by or derived from the work of others -in the RetroBrew Computers Community. I sincerely appreciate all of -their contributions. The list below is probably missing many names -- -please let me know if I missed you! - -* Andrew Lynch started it all when he created the N8VEM Z80 SBC - which became the first platform RomWBW supported. Some of his - original code can still be found in RomWBW. - -* Dan Werner wrote much of the code from which RomWBW was originally - derived and he has always been a great source of knowledge and - advice. - -* Douglas Goodall contributed code, time, testing, and advice in "the - early days". He created an entire suite of application programs to - enhance the use of RomWBW. Unfortunately, they have become unusable - due to internal changes within RomWBW. As of RomWBW 2.6, these - applications are no longer provided. - -* Sergey Kiselev created several hardware platforms for RomWBW - including the very popular Zeta. - -* David Giles created support for the Z180 CSIO which is now included - SD Card driver. - -* Phil Summers contributed the Forth and BASIC adaptations in ROM, the - AY-3-8910 sound driver, DMA support, and a long list of general code - and documentation enhancements. - -* Ed Brindley contributed some of the code that supports the RCBus - platform. - -* Spencer Owen created the RC2014 series of hobbyist kit computers - which has exponentially increased RomWBW usage. Some of his kits - include RomWBW. - -* Stephen Cousins has likewise created a series of hobbyist kit - computers at Small Computer Central and is distributing RomWBW - with many of them. - -* Alan Cox has contributed some driver code and has provided a great - deal of advice. - -* The CP/NET client files were developed by Douglas Miller. - -* Phillip Stevens contributed support for FreeRTOS. - -* Curt Mayer contributed the original Linux / MacOS build process. - -* UNA BIOS and FDISK80 are the products of John Coffman. - -* FLASH4 is a product of Will Sowerbutts. - -* CLRDIR is a product of Max Scane. - -* Tasty Basic is a product of Dimitri Theulings. - -* Dean Netherton contributed eZ80 CPU support, the sound driver - interface, and the SN76489 sound driver. - -* The RomWBW Disk Catalog document was produced by Mykl Orders. - -* Rob Prouse has created many of the supplemental disk images - including Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft - BASIC Compiler, Microsoft Fortran Compiler, and a Games - compendium. - -* Martin R has provided substantial help reviewing and improving the - User Guide and Applications documents. - -* Mark Pruden has made a wide variety of contributions including: - - significant content in the Disk Catalog and User Guide - - creation of the Introduction and Hardware documents - - Z3PLUS operating system disk image - - COPYSL utility - - SLABEL utility - - a feature for RomWBW configuration by NVRAM - - the /B bulk mode of disk assignment to the ASSIGN utility - -* Jacques Pelletier has contributed the DS1501 RTC driver code. - -* Jose Collado has contributed enhancements to the TMS driver - including compatibility with standard TMS register configuration. - -* Kevin Boone has contributed a generic HBIOS date/time utility (WDATE). - -* Matt Carroll has contributed a fix to XM.COM that corrects the - port specification when doing a send. - -* Dean Jenkins enhanced the build process to accommodate the - Raspberry Pi 4. - -* Tom Plano has contributed a new utility (HTALK) to allow talking - directly to HBIOS COM ports. - -* Lars Nelson has contributed several generic utilities such as - a universal (OS agnostic) UNARC application. - -* Dylan Hall added support for specifying a secondary console. - -* Bill Shen has contributed boot loaders for several of his - systems. - -* Laszlo Szolnoki has contributed an EF9345 video display - controller driver. - -* Ladislau Szilagyi has contributed an enhanced version of - CP/M Cowgol that leverages RomWBW memory banking. - -* Les Bird has contributed support for the NABU w/ Option Board - -* Rob Gowin created an online documentation site via MkDocs, and - contributed a driver for the Xosera FPGA-based video - controller. - -`\clearpage`{=latex} - -## Related Projects - -Outside of the hardware platforms adapted to RomWBW, there are a variety -of projects that either target RomWBW specifically or provide -a RomWBW-specific variation. These efforts are greatly appreciated -and are listed below. Please contact the author if there are any other -such projects that are not listed. - -#### Z88DK - -Z88DK is a software powerful development kit for Z80 computers -supporting both C and assembly language. This kit now provides -specific library support for RomWBW HBIOS. The Z88DK project is -hosted at . - -#### Paleo Editor - -Steve Garcia has created a Windows-hosted IDE that is tailored to -development of RomWBW. The project can be found at -. - -#### Z80 fig-FORTH - -Dimitri Theulings' implementation of fig-FORTH for the Z80 has a -RomWBW-specific variant. The project is hosted at -. - -#### Assembly Language Programming for the RC2014 Zed - -Bruce Hall has written a very nice document that describes how to -develop assembly language applications on RomWBW. It begins with the -setup and configuration of a new RC2014 Zed system running RomWBW. -It describes not only generic CP/M application development, but also -RomWBW HBIOS programming and bare metal programming. The latest copy -of this document is hosted at -[http://w8bh.net/Assembly for RC2014Z.pdf](http://w8bh.net/Assembly%20for%20RC2014Z.pdf). - -# Licensing - -## License Terms - -RomWBW is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -RomWBW is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with RomWBW. If not, see . - -Portions of RomWBW were created by, contributed by, or derived from -the work of others. It is believed that these works are being used -in accordance with the intentions and/or licensing of their creators. - -If anyone feels their work is being used outside of its intended -licensing, please notify: - -> $doc_author$ \ -> [$doc_authmail$](mailto:$doc_authmail$) - -RomWBW is an aggregate work. It is composed of many individual, -standalone programs that are distributed as a whole to function as -a cohesive system. Each program may have its own licensing which -may be different from other programs within the aggregate. - -In some cases, a single program (e.g., CP/M Operating System) is -composed of multiple components with different licenses. It is -believed that in all such cases the licenses are compatible with -GPL version 3. - -RomWBW encourages code contributions from others. Contributors -may assert their own copyright in their contributions by -annotating the contributed source code appropriately. Contributors -are further encouraged to submit their contributions via the RomWBW -source code control system to ensure their contributions are clearly -documented. - -All contributions to RomWBW are subject to this license. +$define{doc_title}{Introduction}$ +$include{"Book.h"}$ + +# Overview + +RomWBW software provides a complete, commercial quality +implementation of CP/M (and workalike) operating systems and +applications for modern Z80/180/280 retro-computing hardware systems. + +A wide variety of platforms are supported including those +produced by these developer communities: + +* [RetroBrew Computers](https://www.retrobrewcomputers.org) + () +* [RC2014](https://rc2014.co.uk) (), \ + [RC2014-Z80](https://groups.google.com/g/rc2014-z80) + () +* [Retro Computing](https://groups.google.com/g/retro-comp) + () +* [Small Computer Central](https://smallcomputercentral.com/) + () + +A complete list of the currently supported platforms is found in +$doc_hardware$ . + +`\clearpage`{=latex} + +# Description + +## Primary Features + +By design, RomWBW isolates all of the hardware specific functions in +the ROM chip itself. The ROM provides a hardware abstraction layer +such that all of the operating systems and applications on a disk +will run on any RomWBW-based system. To put it simply, you can take +a disk (or CF/SD/USB Card) and move it between systems transparently. + +Supported hardware features of RomWBW include: + +* Z80 Family CPUs including Z80, Z180, and Z280 +* Banked memory services for several banking designs +* Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, Iomega +* Serial drivers including UART (16550-like), ASCI, ACIA, SIO +* Video drivers including TMS9918, SY6545, MOS8563, HD6445, Xosera +* Keyboard (PS/2) drivers via VT8242 or PPI interfaces +* Real time clock drivers including DS1302, BQ4845 +* Support for CP/NET networking using Wiznet, MT011 or Serial +* Built-in VT-100 terminal emulation support + +A dynamic disk drive letter assignment mechanism allows mapping +operating system drive letters to any available disk media. +Additionally, mass storage devices (IDE Disk, CF Card, SD Card, etc.) +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 addressable storage on a single device, +with up to 128MB accessible at any one time. + +## Included Software + +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. + +Some of the included software: + +* Operating Systems (CP/M 2.2, ZSDOS, NZ-COM, CP/M 3, ZPM3, Z3PLUS, QPM ) +* Support for other operating systems, p-System, FreeRTOS, and FUZIX. +* Programming Tools (Z80ASM, Turbo Pascal, Forth, Cowgol) +* C Compiler's including Aztec-C, and HI-TECH C +* Microsoft Basic Compiler, and Microsoft Fortran +* Some games such as Colossal Cave, Zork, etc +* Wordstar Word processing software + +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 tool is provided that allows you to access a FAT-12/16/32 filesystem. +The FAT filesystem may be coresident on the same disk media as RomWBW +slices or on stand-alone media. This makes exchanging files with modern +OSes such as Windows, MacOS, and Linux very easy. + +`\clearpage`{=latex} + +## ROM Distribution + +The [RomWBW Repository](https://github.com/wwarthen/RomWBW) +() on GitHub is the official +distribution location for all project source and documentation. + +RomWBW is distributed as both source code and pre-built ROM and disk +images. + +The pre-built ROM images distributed with RomWBW are based on +the default system configurations as determined by the hardware +provider/designer. The pre-built ROM firmware images are generally +suitable for most users. + +The fully-built distribution releases are available on the +[RomWBW Releases Page](https://github.com/wwarthen/RomWBW/releases) +() of the repository. + +On this page, you will normally see a Development Snapshot as well as +recent stable releases. Unless you have a specific reason, I suggest you +stick to the most recent stable release. + +The asset named RomWBW-vX.X.X-Package.zip includes all pre-built ROM +and Disk images as well as full source code. The other assets contain +only source code and do not have the pre-built ROM or disk images. + +#### Distribution Directory Layout + +The RomWBW distribution is a compressed zip archive file organized in +a set of directories. Each of these directories has its own +ReadMe.txt file describing the contents in detail. In summary, these +directories are: + +| **Directory** | **Description** | +|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **Binary** | The final output files of the build process are placed here. Most importantly, the ROM images with the file names ending in ".rom" and disk images ending in .img. | +| **Doc** | Contains various detailed documentation, both RomWBW specifically as well as the operating systems and applications. | +| **Source** | Contains the source code files used to build the software and ROM images. | +| **Tools** | Contains the programs that are used by the build process or that may be useful in setting up your system. | + +`\clearpage`{=latex} + +#### Building from Source + +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 under Windows are +included -- no need to install assemblers, etc. The firmware can also +be built using Linux or MacOS after confirming a few standard tools +have been installed. + +## Installation & Operation + +In general, installation of RomWBW on your platform is very simple. You +just need to program your ROM with the correct ROM image from the RomWBW +distribution. Subsequently, you can write disk images on your disk +drives (IDE disk, CF Card, SD Card, etc.) which then provides even more +functionality. + +Complete instructions for installation and operation of RomWBW are found +in the $doc_user$. It is also a good idea to review the [Release +Notes](https://github.com/wwarthen/RomWBW/blob/master/RELEASE_NOTES.md) +for helpful release-specific information. + +## Documentation + +There are several documents that form the core of the RomWBW documentation: + +* $doc_user$ is the main user guide for RomWBW, it covers the major topics + of how to install, manage and use RomWBW, and includes additional guidance + to the use of some of the operating systems supported by RomWBW + +* $doc_hardware$ contains a description of all the hardware platforms, + and devices supported by RomWBW. + +* $doc_apps$ is a reference for the ROM-hosted and OS-hosted applications + created or customized to enhance the operation of RomWBW. + +* $doc_catalog$ is a reference for the contents of the disk images + provided with RomWBW, with a description of many of the files on each image + +* $doc_sys$ discusses much of the internal design and construction + of RomWBW. It includes a reference for the RomWBW HBIOS API + functions. + +Each of the operating systems and ROM applications included with RomWBW +are sophisticated tools in their own right. It is not reasonable to +fully document their usage. However, you will find complete manuals +in PDF format in the Doc directory of the distribution. The intention +of this documentation is to describe the operation of RomWBW and the ways in +which it enhances the operation of the included applications and +operating systems. + +Since RomWBW is purely a software product for many different platforms, +the documentation does **not** cover hardware construction, +configuration, or troubleshooting -- please see your hardware provider +for this information. + +# Support + +## Getting Assistance + +The best way to get assistance with RomWBW or any aspect of the +RetroBrew Computers projects is via one of 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) + +Submission of issues and bugs are welcome at the +[RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW). + +Also feel free to email $doc_author$ at [$doc_authmail$](mailto:$doc_authmail$). +I am happy to provide support adapting RomWBW to new or modified systems + +# Contributions + +All source code and distributions are maintained on GitHub. +Contributions of all kinds to RomWBW are very welcome. + +## Acknowledgments + +I want to acknowledge that a great deal of the code and inspiration +for RomWBW has been provided by or derived from the work of others +in the RetroBrew Computers Community. I sincerely appreciate all of +their contributions. The list below is probably missing many names -- +please let me know if I missed you! + +* Andrew Lynch started it all when he created the N8VEM Z80 SBC + which became the first platform RomWBW supported. Some of his + original code can still be found in RomWBW. + +* Dan Werner wrote much of the code from which RomWBW was originally + derived and he has always been a great source of knowledge and + advice. + +* Douglas Goodall contributed code, time, testing, and advice in "the + early days". He created an entire suite of application programs to + enhance the use of RomWBW. Unfortunately, they have become unusable + due to internal changes within RomWBW. As of RomWBW 2.6, these + applications are no longer provided. + +* Sergey Kiselev created several hardware platforms for RomWBW + including the very popular Zeta. + +* David Giles created support for the Z180 CSIO which is now included + SD Card driver. + +* Phil Summers contributed the Forth and BASIC adaptations in ROM, the + AY-3-8910 sound driver, DMA support, and a long list of general code + and documentation enhancements. + +* Ed Brindley contributed some of the code that supports the RCBus + platform. + +* Spencer Owen created the RC2014 series of hobbyist kit computers + which has exponentially increased RomWBW usage. Some of his kits + include RomWBW. + +* Stephen Cousins has likewise created a series of hobbyist kit + computers at Small Computer Central and is distributing RomWBW + with many of them. + +* Alan Cox has contributed some driver code and has provided a great + deal of advice. + +* The CP/NET client files were developed by Douglas Miller. + +* Phillip Stevens contributed support for FreeRTOS. + +* Curt Mayer contributed the original Linux / MacOS build process. + +* UNA BIOS and FDISK80 are the products of John Coffman. + +* FLASH4 is a product of Will Sowerbutts. + +* CLRDIR is a product of Max Scane. + +* Tasty Basic is a product of Dimitri Theulings. + +* Dean Netherton contributed eZ80 CPU support, the sound driver + interface, and the SN76489 sound driver. + +* The RomWBW Disk Catalog document was produced by Mykl Orders. + +* Rob Prouse has created many of the supplemental disk images + including Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft + BASIC Compiler, Microsoft Fortran Compiler, and a Games + compendium. + +* Martin R has provided substantial help reviewing and improving the + User Guide and Applications documents. + +* Mark Pruden has made a wide variety of contributions including: + - significant content in the Disk Catalog and User Guide + - creation of the Introduction and Hardware documents + - Z3PLUS operating system disk image + - COPYSL utility + - SLABEL utility + - a feature for RomWBW configuration by NVRAM + - the /B bulk mode of disk assignment to the ASSIGN utility + +* Jacques Pelletier has contributed the DS1501 RTC driver code. + +* Jose Collado has contributed enhancements to the TMS driver + including compatibility with standard TMS register configuration. + +* Kevin Boone has contributed a generic HBIOS date/time utility (WDATE). + +* Matt Carroll has contributed a fix to XM.COM that corrects the + port specification when doing a send. + +* Dean Jenkins enhanced the build process to accommodate the + Raspberry Pi 4. + +* Tom Plano has contributed a new utility (HTALK) to allow talking + directly to HBIOS COM ports. + +* Lars Nelson has contributed several generic utilities such as + a universal (OS agnostic) UNARC application. + +* Dylan Hall added support for specifying a secondary console. + +* Bill Shen has contributed boot loaders for several of his + systems. + +* Laszlo Szolnoki has contributed an EF9345 video display + controller driver. + +* Ladislau Szilagyi has contributed an enhanced version of + CP/M Cowgol that leverages RomWBW memory banking. + +* Les Bird has contributed support for the NABU w/ Option Board + +* Rob Gowin created an online documentation site via MkDocs, and + contributed a driver for the Xosera FPGA-based video + controller. + +`\clearpage`{=latex} + +## Related Projects + +Outside of the hardware platforms adapted to RomWBW, there are a variety +of projects that either target RomWBW specifically or provide +a RomWBW-specific variation. These efforts are greatly appreciated +and are listed below. Please contact the author if there are any other +such projects that are not listed. + +#### Z88DK + +Z88DK is a software powerful development kit for Z80 computers +supporting both C and assembly language. This kit now provides +specific library support for RomWBW HBIOS. The Z88DK project is +hosted at . + +#### Paleo Editor + +Steve Garcia has created a Windows-hosted IDE that is tailored to +development of RomWBW. The project can be found at +. + +#### Z80 fig-FORTH + +Dimitri Theulings' implementation of fig-FORTH for the Z80 has a +RomWBW-specific variant. The project is hosted at +. + +#### Assembly Language Programming for the RC2014 Zed + +Bruce Hall has written a very nice document that describes how to +develop assembly language applications on RomWBW. It begins with the +setup and configuration of a new RC2014 Zed system running RomWBW. +It describes not only generic CP/M application development, but also +RomWBW HBIOS programming and bare metal programming. The latest copy +of this document is hosted at +[http://w8bh.net/Assembly for RC2014Z.pdf](http://w8bh.net/Assembly%20for%20RC2014Z.pdf). + +# Licensing + +## License Terms + +RomWBW is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +RomWBW is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with RomWBW. If not, see . + +Portions of RomWBW were created by, contributed by, or derived from +the work of others. It is believed that these works are being used +in accordance with the intentions and/or licensing of their creators. + +If anyone feels their work is being used outside of its intended +licensing, please notify: + +> $doc_author$ \ +> [$doc_authmail$](mailto:$doc_authmail$) + +RomWBW is an aggregate work. It is composed of many individual, +standalone programs that are distributed as a whole to function as +a cohesive system. Each program may have its own licensing which +may be different from other programs within the aggregate. + +In some cases, a single program (e.g., CP/M Operating System) is +composed of multiple components with different licenses. It is +believed that in all such cases the licenses are compatible with +GPL version 3. + +RomWBW encourages code contributions from others. Contributors +may assert their own copyright in their contributions by +annotating the contributed source code appropriately. Contributors +are further encouraged to submit their contributions via the RomWBW +source code control system to ensure their contributions are clearly +documented. + +All contributions to RomWBW are subject to this license. diff --git a/Source/Doc/Makefile b/Source/Doc/Makefile index 84264301..53d46942 100644 --- a/Source/Doc/Makefile +++ b/Source/Doc/Makefile @@ -56,8 +56,8 @@ deploy : cp Hardware.pdf "../../Doc/RomWBW Hardware.pdf" deploy_mkdocs : mkdocs/Introduction.md mkdocs/UserGuide.md mkdocs/SystemGuide.md mkdocs/Applications.md \ - mkdocs/Catalog.md mkdocs/Hardware.md mkdocs/ReadMe.md + mkdocs/Catalog.md mkdocs/Hardware.md mkdir -p mkdocs/UserGuide/Graphics mkdocs/SystemGuide/Graphics - mv mkdocs/ReadMe.md mkdocs/README.md - cp Graphics/*.svg mkdocs/UserGuide/Graphics - cp Graphics/*.svg mkdocs/SystemGuide/Graphics + cp mkdocs/Introduction.md mkdocs/README.md + cp Graphics/*.svg mkdocs/UserGuide/Graphics + cp Graphics/*.svg mkdocs/SystemGuide/Graphics diff --git a/Source/Doc/ReadMe.md b/Source/Doc/ReadMe.md deleted file mode 100644 index 5a3ec790..00000000 --- a/Source/Doc/ReadMe.md +++ /dev/null @@ -1,296 +0,0 @@ -$define{doc_title}{ReadMe}$ -$include{"Basic.h"}$ - -# Overview - -RomWBW software provides a complete, commercial quality -implementation of CP/M (and workalike) operating systems and -applications for modern Z80/180/280 retro-computing hardware systems. - -A wide variety of platforms are supported including those -produced by these developer communities: - -* [RetroBrew Computers](https://www.retrobrewcomputers.org) - () -* [RC2014](https://rc2014.co.uk) (), \ - [RC2014-Z80](https://groups.google.com/g/rc2014-z80) - () -* [Retro Computing](https://groups.google.com/g/retro-comp) - () -* [Small Computer Central](https://smallcomputercentral.com/) - () - -A complete list of the currently supported platforms is found in the -[Installation] section. - -Supported hardware features of RomWBW include: - -* Z80 Family CPUs including Z80, Z180, and Z280 -* Banked memory services for several banking designs -* Disk drivers for RAM, ROM, Floppy, IDE ATA/ATAPI, CF, SD, USB, Zip, Iomega -* Serial drivers including UART (16550-like), ASCI, ACIA, SIO -* Video drivers including TMS9918, SY6545, MOS8563, HD6445 -* Keyboard (PS/2) drivers via VT8242 or PPI interfaces -* Real time clock drivers including DS1302, BQ4845 -* Support for CP/NET networking using Wiznet, MT011 or Serial -* 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 storage devices (IDE Disk, CF Card, SD Card, etc.) -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, -with up to 128MB accessible at any one time. - -The pre-built ROM firmware images are generally suitable 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 under Windows are -included -- no need to install assemblers, etc. The firmware can also -be built using Linux or MacOS after confirming a few standard tools -have been installed. - -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. - -By design, RomWBW isolates all of the hardware specific functions in -the ROM chip itself. The ROM provides a hardware abstraction layer -such that all of the operating systems and applications on a disk -will run on any RomWBW-based system. To put it simply, you can take -a disk (or CF/SD/USB Card) and move it between systems transparently. - -A tool is provided that allows you to access a FAT-12/16/32 filesystem. -The FAT filesystem may be coresident on the same disk media as RomWBW -slices or on stand-alone media. This makes exchanging files with modern -OSes such as Windows, MacOS, and Linux very easy. - -# Acquiring RomWBW - -The [RomWBW Repository](https://github.com/wwarthen/RomWBW) -() on GitHub is the official -distribution location for all project source and documentation. -The fully-built distribution releases are available on the -[RomWBW Releases Page](https://github.com/wwarthen/RomWBW/releases) -() of the repository. -On this page, you will normally see a Development Snapshot as well as -recent stable releases. Unless you have a specific reason, I suggest you -stick to the most recent stable release. - -The asset named RomWBW-vX.X.X-Package.zip includes all pre-built ROM -and Disk images as well as full source code. The other assets contain -only source code and do not have the pre-built ROM or disk images. - -All source code and distributions are maintained on GitHub. Code -contributions are very welcome. - -# Installation & Operation - -In general, installation of RomWBW on your platform is very simple. You -just need to program your ROM with the correct ROM image from the RomWBW -distribution. Subsequently, you can write disk images on your disk -drives (IDE disk, CF Card, SD Card, etc.) which then provides even more -functionality. - -Complete instructions for installation and operation of RomWBW are -found in the $doc_user$. It is also a good idea to review the -[Release Notes](https://github.com/wwarthen/RomWBW/blob/master/RELEASE_NOTES.md) -for helpful release-specific information. - -## Documentation - -Documentation for $doc_product$ includes: - -* $doc_intro$ -* $doc_user$ -* $doc_sys$ -* $doc_apps$ -* $doc_catalog$ -* $doc_hardware$ - -# Acknowledgments - -I want to acknowledge that a great deal of the code and inspiration -for RomWBW has been provided by or derived from the work of others -in the RetroBrew Computers Community. I sincerely appreciate all of -their contributions. The list below is probably missing many names -- -please let me know if I missed you! - -* Andrew Lynch started it all when he created the N8VEM Z80 SBC - which became the first platform RomWBW supported. Some of his - original code can still be found in RomWBW. - -* Dan Werner wrote much of the code from which RomWBW was originally - derived and he has always been a great source of knowledge and - advice. - -* Douglas Goodall contributed code, time, testing, and advice in "the - early days". He created an entire suite of application programs to - enhance the use of RomWBW. Unfortunately, they have become unusable - due to internal changes within RomWBW. As of RomWBW 2.6, these - applications are no longer provided. - -* Sergey Kiselev created several hardware platforms for RomWBW - including the very popular Zeta. - -* David Giles created support for the Z180 CSIO which is now included - SD Card driver. - -* Phil Summers contributed the Forth and BASIC adaptations in ROM, the - AY-3-8910 sound driver, DMA support, and a long list of general code - and documentation enhancements. - -* Ed Brindley contributed some of the code that supports the RCBus - platform. - -* Spencer Owen created the RC2014 series of hobbyist kit computers - which has exponentially increased RomWBW usage. Some of his kits - include RomWBW. - -* Stephen Cousins has likewise created a series of hobbyist kit - computers at Small Computer Central and is distributing RomWBW - with many of them. - -* Alan Cox has contributed some driver code and has provided a great - deal of advice. - -* The CP/NET client files were developed by Douglas Miller. - -* Phillip Stevens contributed support for FreeRTOS. - -* Curt Mayer contributed the original Linux / MacOS build process. - -* UNA BIOS and FDISK80 are the products of John Coffman. - -* FLASH4 is a product of Will Sowerbutts. - -* CLRDIR is a product of Max Scane. - -* Tasty Basic is a product of Dimitri Theulings. - -* Dean Netherton contributed eZ80 CPU support, the sound driver - interface, and the SN76489 sound driver. - -* The RomWBW Disk Catalog document was produced by Mykl Orders. - -* Rob Prouse has created many of the supplemental disk images - including Aztec C, HiTech C, SLR Z80ASM, Turbo Pascal, Microsoft - BASIC Compiler, Microsoft Fortran Compiler, and a Games - compendium. - -* Martin R has provided substantial help reviewing and improving the - User Guide and Applications documents. - -* Mark Pruden has made a wide variety of contributions including: - - significant content in the Disk Catalog and User Guide - - creation of the Introduction and Hardware documents - - Z3PLUS operating system disk image - - COPYSL and SLABEL utility - - a feature for RomWBW configuration by NVRAM - - the /B bulk mode of disk assignment to the ASSIGN utility - -* Jacques Pelletier has contributed the DS1501 RTC driver code. - -* Jose Collado has contributed enhancements to the TMS driver - including compatibility with standard TMS register configuration. - -* Kevin Boone has contributed a generic HBIOS date/time utility (WDATE). - -* Matt Carroll has contributed a fix to XM.COM that corrects the - port specification when doing a send. - -* Dean Jenkins enhanced the build process to accommodate the - Raspberry Pi 4. - -* Tom Plano has contributed a new utility (HTALK) to allow talking - directly to HBIOS COM ports. - -* Lars Nelson has contributed several generic utilities such as - a universal (OS agnostic) UNARC application. - -* Dylan Hall added support for specifying a secondary console. - -* Bill Shen has contributed boot loaders for several of his - systems. - -* Laszlo Szolnoki has contributed an EF9345 video display - controller driver. - -* Ladislau Szilagyi has contributed an enhanced version of - CP/M Cowgol that leverages RomWBW memory banking. - -* Les Bird has contributed support for the NABU w/ Option Board - -Contributions of all kinds to RomWBW are very welcome. - -# Licensing - -RomWBW is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -RomWBW is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with RomWBW. If not, see . - -Portions of RomWBW were created by, contributed by, or derived from -the work of others. It is believed that these works are being used -in accordance with the intentions and/or licensing of their creators. - -If anyone feels their work is being used outside of its intended -licensing, please notify: - -> $doc_author$ \ -> [$doc_authmail$](mailto:$doc_authmail$) - -RomWBW is an aggregate work. It is composed of many individual, -standalone programs that are distributed as a whole to function as -a cohesive system. Each program may have its own licensing which -may be different from other programs within the aggregate. - -In some cases, a single program (e.g., CP/M Operating System) is -composed of multiple components with different licenses. It is -believed that in all such cases the licenses are compatible with -GPL version 3. - -RomWBW encourages code contributions from others. Contributors -may assert their own copyright in their contributions by -annotating the contributed source code appropriately. Contributors -are further encouraged to submit their contributions via the RomWBW -source code control system to ensure their contributions are clearly -documented. - -All contributions to RomWBW are subject to this license. - -# Getting Assistance - -The best way to get assistance with RomWBW or any aspect of the -RetroBrew Computers projects is via one of 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) - -Submission of issues and bugs are welcome at the -[RomWBW GitHub Repository](https://github.com/wwarthen/RomWBW). - -Also feel free to email $doc_author$ at [$doc_authmail$](mailto:$doc_authmail$).