Browse Source

Image Creation Refinements, Issue #576

- Determine slice images to create dynamically based on the hd_xxx.txt and fd_xxx.txt files.
- Add a volume label directive to the hd_xxx.txt and fd_xxx.txt files.
- Add a system image directive to the hd_xxx.txt and fd_xxx.txt files.
pull/596/head
Wayne Warthen 7 months ago
parent
commit
347223fa02
No known key found for this signature in database GPG Key ID: 8B34ED29C07EEB0A
  1. 2
      Doc/ChangeLog.txt
  2. BIN
      Doc/RomWBW Applications.pdf
  3. BIN
      Doc/RomWBW Disk Catalog.pdf
  4. BIN
      Doc/RomWBW Hardware.pdf
  5. BIN
      Doc/RomWBW Introduction.pdf
  6. BIN
      Doc/RomWBW System Guide.pdf
  7. BIN
      Doc/RomWBW User Guide.pdf
  8. 2
      ReadMe.md
  9. 283
      ReadMe.txt
  10. 1
      Source/Build.cmd
  11. 4
      Source/BuildBP.cmd
  12. 1
      Source/BuildShared.cmd
  13. 102
      Source/Images/Build.cmd
  14. 4
      Source/Images/BuildDisk.cmd
  15. 110
      Source/Images/BuildDisk.ps1
  16. 59
      Source/Images/BuildDsk.ps1
  17. 6
      Source/Images/BuildImg.cmd
  18. 158
      Source/Images/BuildImg.ps1
  19. 142
      Source/Images/Makefile
  20. 1
      Source/Images/fd_aztecc.txt
  21. 1
      Source/Images/fd_bascomp.txt
  22. 55
      Source/Images/fd_bp.txt
  23. 1
      Source/Images/fd_cobol.txt
  24. 1
      Source/Images/fd_cowgol.txt
  25. 2
      Source/Images/fd_cpm22.txt
  26. 2
      Source/Images/fd_cpm3.txt
  27. 1
      Source/Images/fd_fortran.txt
  28. 1
      Source/Images/fd_games.txt
  29. 1
      Source/Images/fd_hitechc.txt
  30. 2
      Source/Images/fd_nzcom.txt
  31. 2
      Source/Images/fd_qpm.txt
  32. 1
      Source/Images/fd_tpascal.txt
  33. 1
      Source/Images/fd_ws4.txt
  34. 2
      Source/Images/fd_z3plus.txt
  35. 1
      Source/Images/fd_z80asm.txt
  36. 2
      Source/Images/fd_zpm3.txt
  37. 2
      Source/Images/fd_zsdos.txt
  38. 1
      Source/Images/hd_aztecc.txt
  39. 1
      Source/Images/hd_bascomp.txt
  40. 1
      Source/Images/hd_blank.txt
  41. 2
      Source/Images/hd_bp.txt
  42. 1
      Source/Images/hd_cobol.txt
  43. 1
      Source/Images/hd_cowgol.txt
  44. 2
      Source/Images/hd_cpm22.txt
  45. 2
      Source/Images/hd_cpm3.txt
  46. 2
      Source/Images/hd_dos65.txt
  47. 1
      Source/Images/hd_fortran.txt
  48. 1
      Source/Images/hd_games.txt
  49. 1
      Source/Images/hd_hitechc.txt
  50. 1
      Source/Images/hd_infocom.txt
  51. 1
      Source/Images/hd_msxroms1.txt
  52. 1
      Source/Images/hd_msxroms2.txt
  53. 2
      Source/Images/hd_nzcom.txt
  54. 2
      Source/Images/hd_qpm.txt
  55. 1
      Source/Images/hd_tpascal.txt
  56. 1
      Source/Images/hd_ws4.txt
  57. 2
      Source/Images/hd_z3plus.txt
  58. 1
      Source/Images/hd_z80asm.txt
  59. 2
      Source/Images/hd_zpm3.txt
  60. 2
      Source/Images/hd_zsdos.txt
  61. 4
      Source/Makefile

2
Doc/ChangeLog.txt

@ -17,6 +17,8 @@ Version 3.6
- MAP: Device Inventory moved from HBIOS to Rom App, saving >1k space in HBIOS
- MAP: Added disk image for all Infocom text adventure Games
- M?R: Fixed formatting issue with SLABEL where Slice # < 10
- WBW: Improved image creation process to allow user defined aggregates
- WBW: Implemented config driven slice name and system image specification
Version 3.5.1
-------------

BIN
Doc/RomWBW Applications.pdf

Binary file not shown.

BIN
Doc/RomWBW Disk Catalog.pdf

Binary file not shown.

BIN
Doc/RomWBW Hardware.pdf

Binary file not shown.

BIN
Doc/RomWBW Introduction.pdf

Binary file not shown.

BIN
Doc/RomWBW System Guide.pdf

Binary file not shown.

BIN
Doc/RomWBW User Guide.pdf

Binary file not shown.

2
ReadMe.md

@ -7,7 +7,7 @@
**RomWBW Introduction** \
Version 3.6 \
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
06 Jul 2025
17 Jul 2025
# Overview

283
ReadMe.txt

@ -1,14 +1,14 @@
RomWBW Introduction
Wayne Warthen (wwarthen@gmail.com)
06 Jul 2025
17 Jul 2025
OVERVIEW
Overview
RomWBW software provides a complete, commercial quality implementation
of CP/M (and work-alike) operating systems and applications for modern
@ -17,16 +17,19 @@ 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/)
- 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 RomWBW
Hardware .
Description
DESCRIPTION
Primary Features
@ -38,16 +41,16 @@ 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
- 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.
@ -58,6 +61,7 @@ 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
@ -69,28 +73,29 @@ 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
- 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
- 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.
ROM Distribution
The RomWBW Repository (https://github.com/wwarthen/RomWBW) on GitHub is
@ -125,20 +130,20 @@ file describing the contents in detail. In summary, these directories
are:
-------------------------------------------------------------------------
Directory Description
DIRECTORY DESCRIPTION
----------- -------------------------------------------------------------
Binary The final output files of the build process are placed here.
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
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
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
TOOLS Contains the programs that are used by the build process or
that may be useful in setting up your system.
-------------------------------------------------------------------------
@ -150,6 +155,7 @@ 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
@ -162,30 +168,30 @@ Complete instructions for installation and operation of RomWBW are found
in the RomWBW User Guide. It is also a good idea to review the Release
Notes for helpful release-specific information.
Documentation
There are several documents that form the core of the RomWBW
documentation:
- RomWBW User Guide 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
- RomWBW User Guide 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
- RomWBW Hardware contains a description of all the hardware
platforms, and devices supported by RomWBW.
- RomWBW Hardware contains a description of all the hardware platforms,
and devices supported by RomWBW.
- RomWBW Applications is a reference for the ROM-hosted and OS-hosted
applications created or customized to enhance the operation of
RomWBW.
- RomWBW Applications is a reference for the ROM-hosted and OS-hosted
applications created or customized to enhance the operation of RomWBW.
- RomWBW Disk 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
- RomWBW Disk 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
- RomWBW System Guide discusses much of the internal design and
construction of RomWBW. It includes a reference for the RomWBW HBIOS
API functions.
- RomWBW System Guide discusses much of the internal design and
construction of RomWBW. It includes a reference for the RomWBW HBIOS
API functions.
An online HTML version of this documentation is hosted at
https://wwarthen.github.io/RomWBW.
@ -199,20 +205,23 @@ 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,
the documentation does NOT cover hardware construction, configuration,
or troubleshooting – please see your hardware provider for this
information.
Support
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
- RC2014 Google Group
- retro-comp Google Group
- RetroBrew Computers Forum
- RC2014 Google Group
- retro-comp Google Group
Submission of issues and bugs are welcome at the RomWBW GitHub
Repository.
@ -220,11 +229,15 @@ Repository.
Also feel free to email Wayne Warthen at wwarthen@gmail.com. I am happy
to provide support adapting RomWBW to new or modified systems
Contributions
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
@ -233,119 +246,118 @@ 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- The CP/NET client files were developed by Douglas Miller.
- Phillip Stevens contributed support for FreeRTOS.
- Phillip Stevens contributed support for FreeRTOS.
- Curt Mayer contributed the original Linux / MacOS build process.
- Curt Mayer contributed the original Linux / MacOS build process.
- UNA BIOS and FDISK80 are the products of John Coffman.
- UNA BIOS and FDISK80 are the products of John Coffman.
- FLASH4 is a product of Will Sowerbutts.
- FLASH4 is a product of Will Sowerbutts.
- CLRDIR is a product of Max Scane.
- CLRDIR is a product of Max Scane.
- Tasty Basic is a product of Dimitri Theulings.
- Tasty Basic is a product of Dimitri Theulings.
- Dean Netherton contributed eZ80 CPU support, the sound driver
interface, and the SN76489 sound driver.
- 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.
- 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.
- 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.
- 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:
- 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
- Infocom text adventure game disk image
- COPYSL, and SLABEL utilities
- Display of bootable slices via “S” command during startup
- Optimisations of HBIOS and CBIOS to reduce overall code size
- a feature for RomWBW configuration by NVRAM
- the /B bulk mode of disk assignment to the ASSIGN utility
- significant content in the Disk Catalog and User Guide
- creation of the Introduction and Hardware documents
- Z3PLUS operating system disk image
- Infocom text adventure game disk image
- COPYSL, and SLABEL utilities
- Display of bootable slices via “S” command during startup
- Optimisations of HBIOS and CBIOS to reduce overall code size
- 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.
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- Lars Nelson has contributed several generic utilities such as a
universal (OS agnostic) UNARC application.
- Dylan Hall added support for specifying a secondary console.
- Dylan Hall added support for specifying a secondary console.
- Bill Shen has contributed boot loaders for several of his systems.
- Bill Shen has contributed boot loaders for several of his systems.
- Laszlo Szolnoki has contributed an EF9345 video display controller
driver.
- 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.
- 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
- 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.
- Rob Gowin created an online documentation site via MkDocs, and
contributed a driver for the Xosera FPGA-based video controller.
- Jörg Linder has contributed disassembled and nicely commented source
for ZSDOS2 and the BPBIOS utilities.
- Jörg Linder has contributed disassembled and nicely commented source
for ZSDOS2 and the BPBIOS utilities.
Related Projects
@ -383,7 +395,10 @@ 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.
Licensing
LICENSING
License Terms

1
Source/Build.cmd

@ -4,7 +4,6 @@ setlocal
:: call BuildDoc || exit /b
call BuildProp || exit /b
call BuildShared || exit /b
call BuildBP || exit /b
call BuildImages || exit /b
call BuildROM %* || exit /b
call BuildZRC || exit /b

4
Source/BuildBP.cmd

@ -1,4 +0,0 @@
@echo off
setlocal
pushd BPBIOS && call Build || exit /b & popd

1
Source/BuildShared.cmd

@ -11,6 +11,7 @@ pushd ZSDOS && call Build || exit /b & popd
pushd ZSDOS2 && call Build || exit /b & popd
pushd CPM3 && call Build || exit /b & popd
pushd ZPM3 && call Build || exit /b & popd
pushd BPBIOS && call Build || exit /b & popd
pushd CPNET && call Build || exit /b & popd
pushd pSys && call Build || exit /b & popd
pushd Apps && call Build || exit /b & popd

102
Source/Images/Build.cmd

@ -1,92 +1,22 @@
@echo off
setlocal
:: call BuildDisk.cmd bp hd wbw_hd1k ..\zsdos\zsys_wbw.sys
:: copy /b hd1k_prefix.dat + ..\..\Binary\hd1k_bp.img + ..\..\Binary\hd1k_cpm22.img + ..\..\Binary\hd1k_zsdos.img + ..\..\Binary\hd1k_nzcom.img + ..\..\Binary\hd1k_cpm3.img + ..\..\Binary\hd1k_zpm3.img + ..\..\Binary\hd1k_ws4.img ..\..\Binary\hd1k_combo_bp.img || exit /b
:: goto :eof
echo.
echo Building Floppy Disk Images...
echo.
call BuildDisk.cmd cpm22 fd wbw_fd144 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos fd wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom fd wbw_fd144 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 fd wbw_fd144 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 fd wbw_fd144 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd z3plus fd wbw_fd144 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd ws4 fd wbw_fd144 || exit /b
call BuildDisk.cmd qpm fd wbw_fd144 ..\qpm\qpm_wbw.sys || exit /b
call BuildDisk.cmd z80asm fd wbw_fd144 || exit /b
call BuildDisk.cmd aztecc fd wbw_fd144 || exit /b
call BuildDisk.cmd hitechc fd wbw_fd144 || exit /b
call BuildDisk.cmd tpascal fd wbw_fd144 || exit /b
call BuildDisk.cmd bascomp fd wbw_fd144 || exit /b
call BuildDisk.cmd cobol fd wbw_fd144 || exit /b
call BuildDisk.cmd fortran fd wbw_fd144 || exit /b
call BuildDisk.cmd games fd wbw_fd144 || exit /b
call BuildDisk.cmd cowgol fd wbw_fd144 || exit /b
echo.
echo Building Hard Disk Images (512 directory entry format)...
echo.
call BuildDisk.cmd blank hd wbw_hd512 || exit /b
call BuildDisk.cmd cpm22 hd wbw_hd512 ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos hd wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom hd wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 hd wbw_hd512 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 hd wbw_hd512 ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd z3plus hd wbw_hd512 ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd ws4 hd wbw_hd512 || exit /b
call BuildDisk.cmd dos65 hd wbw_hd512 ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd qpm hd wbw_hd512 ..\qpm\qpm_wbw.sys || exit /b
call BuildDisk.cmd z80asm hd wbw_hd512 || exit /b
call BuildDisk.cmd aztecc hd wbw_hd512 || exit /b
call BuildDisk.cmd hitechc hd wbw_hd512 || exit /b
call BuildDisk.cmd tpascal hd wbw_hd512 || exit /b
call BuildDisk.cmd bascomp hd wbw_hd512 || exit /b
call BuildDisk.cmd cobol hd wbw_hd512 || exit /b
call BuildDisk.cmd fortran hd wbw_hd512 || exit /b
call BuildDisk.cmd games hd wbw_hd512 || exit /b
call BuildDisk.cmd cowgol hd wbw_hd512 || exit /b
call BuildDisk.cmd msxroms1 hd wbw_hd512 || exit /b
call BuildDisk.cmd msxroms2 hd wbw_hd512 || exit /b
call BuildDisk.cmd infocom hd wbw_hd512 || exit /b
:: echo.
:: echo Building Combo Disk (512 directory entry format) Image...
:: copy /b ..\..\Binary\hd512_cpm22.img + ..\..\Binary\hd512_zsdos.img + ..\..\Binary\hd512_nzcom.img + ..\..\Binary\hd512_cpm3.img + ..\..\Binary\hd512_zpm3.img + ..\..\Binary\hd512_ws4.img ..\..\Binary\hd512_combo.img || exit /b
echo.
echo Building Hard Disk Images (1024 directory entry format)...
echo.
call BuildDisk.cmd blank hd wbw_hd1k || exit /b
call BuildDisk.cmd cpm22 hd wbw_hd1k ..\cpm22\cpm_wbw.sys || exit /b
call BuildDisk.cmd zsdos hd wbw_hd1k ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd nzcom hd wbw_hd1k ..\zsdos\zsys_wbw.sys || exit /b
call BuildDisk.cmd cpm3 hd wbw_hd1k ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd zpm3 hd wbw_hd1k ..\zpm3\zpmldr.sys || exit /b
call BuildDisk.cmd z3plus hd wbw_hd1k ..\cpm3\cpmldr.sys || exit /b
call BuildDisk.cmd ws4 hd wbw_hd1k || exit /b
call BuildDisk.cmd qpm hd wbw_hd1k ..\qpm\qpm_wbw.sys || exit /b
call BuildDisk.cmd z80asm hd wbw_hd1k || exit /b
call BuildDisk.cmd aztecc hd wbw_hd1k || exit /b
call BuildDisk.cmd hitechc hd wbw_hd1k || exit /b
call BuildDisk.cmd tpascal hd wbw_hd1k || exit /b
call BuildDisk.cmd bascomp hd wbw_hd1k || exit /b
call BuildDisk.cmd cobol hd wbw_hd1k || exit /b
call BuildDisk.cmd fortran hd wbw_hd1k || exit /b
call BuildDisk.cmd games hd wbw_hd1k || exit /b
call BuildDisk.cmd cowgol hd wbw_hd1k || exit /b
call BuildDisk.cmd msxroms1 hd wbw_hd1k || exit /b
call BuildDisk.cmd msxroms2 hd wbw_hd1k || exit /b
call BuildDisk.cmd infocom hd wbw_hd1k || exit /b
if exist ..\BPBIOS\bp*.rel call BuildDisk.cmd bp hd wbw_hd1k ..\zsdos\zsys_wbw.sys || exit /b
SETLOCAL EnableDelayedExpansion
copy hd1k_prefix.dat ..\..\Binary\ || exit /b
:: echo.
:: echo Building Combo Disk (1024 directory entry format) Image...
:: copy /b hd1k_prefix.dat + ..\..\Binary\hd1k_cpm22.img + ..\..\Binary\hd1k_zsdos.img + ..\..\Binary\hd1k_nzcom.img + ..\..\Binary\hd1k_cpm3.img + ..\..\Binary\hd1k_zpm3.img + ..\..\Binary\hd1k_ws4.img ..\..\Binary\hd1k_combo.img || exit /b
call BuildImg.cmd || exit /b
for %%f in (fd_*.txt) do (
set Image=%%~nf
PowerShell -ExecutionPolicy Unrestricted .\BuildImg.ps1 fd144_!Image:fd_=! || exit /b
)
for %%f in (hd_*.txt) do (
set Image=%%~nf
PowerShell -ExecutionPolicy Unrestricted .\BuildImg.ps1 hd512_!Image:hd_=! || exit /b
PowerShell -ExecutionPolicy Unrestricted .\BuildImg.ps1 hd1k_!Image:hd_=! || exit /b
)
for %%f in (*.def) do (
PowerShell -ExecutionPolicy Unrestricted .\BuildDsk.ps1 hd512_%%~nf || exit /b
PowerShell -ExecutionPolicy Unrestricted .\BuildDsk.ps1 hd1k_%%~nf || exit /b
)

4
Source/Images/BuildDisk.cmd

@ -1,4 +0,0 @@
@echo off
setlocal
PowerShell -ExecutionPolicy Unrestricted .\BuildDisk.ps1 %* || exit /b

110
Source/Images/BuildDisk.ps1

@ -1,110 +0,0 @@
Param($Disk, $Type="", $Format="", $SysFile="")
$ErrorAction = 'Stop'
$CpmToolsPath = '../../Tools/cpmtools'
$env:PATH = $CpmToolsPath + ';' + $env:PATH
if ($Type.Length -eq 0)
{
Write-Error "No disk type specified!" -ErrorAction Stop
return
}
if ($Format.Length -eq 0)
{
Write-Error "No disk format specified!" -ErrorAction Stop
return
}
switch ($Format)
{
"wbw_fd144"
{
# 1.44MB Floppy Disk
$Desc = "1.44MB Floppy Disk"
$ImgFile = "fd144_${Disk}.img"
$CatFile = "fd144_${Disk}.cat"
$MediaID = 6
$Size = 1440KB
}
"wbw_hd512"
{
# 512 Directory Entry Hard Disk Format
$Desc = "Hard Disk (512 directory entry format)"
$ImgFile = "hd512_${Disk}.img"
$CatFile = "hd512_${Disk}.cat"
$MediaID = 4
$Size = 8MB + 128KB
}
"wbw_hd1k"
{
# 1024 Directory Entry Hard Disk Format
$Desc = "Hard Disk (1024 directory entry format)"
$ImgFile = "hd1k_${Disk}.img"
$CatFile = "hd1k_${Disk}.cat"
$MediaID = 10
$Size = 8MB
}
}
if (-not (Test-Path("d_${Disk}/")))
{
Write-Error "Source directory d_${Disk} for disk ${Disk} not found!" -ErrorAction Stop
return
}
"Generating $Disk $Desc..."
if ($SysFile.Length -gt 0)
{ [byte[]]$SysImg = [System.IO.File]::ReadAllBytes($SysFile) }
else
{ [byte[]]$SysImg = @() }
$Image = ($SysImg + ([byte[]](0xE5) * ($Size - $SysImg.length)))
# $Image[1410] = 0x4D
# $Image[1411] = 0x49
# $Image[1412] = 0x44
# $Image[1413] = $MediaID
[System.IO.File]::WriteAllBytes($ImgFile, $Image)
for ($Usr=0; $Usr -lt 16; $Usr++)
{
if (Test-Path ("d_${Disk}/u${Usr}/*"))
{
$Cmd = "cpmcp -f $Format $ImgFile d_${Disk}/u${Usr}/*.* ${Usr}:"
$Cmd
Invoke-Expression $Cmd
if ($LASTEXITCODE -gt 0) {throw "Command returned exit code $LASTEXITCODE"}
}
}
if (Test-Path("${Type}_${Disk}.txt"))
{
foreach($Line in Get-Content "${Type}_${Disk}.txt")
{
$Spec = $Line.Trim()
if (($Spec.Length -gt 0) -and ($Spec.Substring(0,1) -ne "#"))
{
$Cmd = "cpmcp -f $Format $ImgFile ${Spec}"
$Cmd
Invoke-Expression $Cmd
if ($LASTEXITCODE -gt 0) {throw "Command returned exit code $LASTEXITCODE"}
}
}
}
$Cmd = "cpmls -f $Format -D $ImgFile"
$Cmd
Invoke-Expression $Cmd > $CatFile
"Moving image $ImgFile into output directory..."
Move-Item $ImgFile -Destination "..\..\Binary\" -Force
return

59
Source/Images/BuildDsk.ps1

@ -0,0 +1,59 @@
param([string]$Disk)
# If a PowerShell exception occurs, just stop the script immediately.
$ErrorAction = 'Stop'
# $ImgFile = "..\..\Binary\hd1k_" + $Image + ".img"
$Format, $Def = $Disk.Split("_")
$DefFile = $Def + ".def"
$SliceList = @()
ForEach ($Line in Get-Content $DefFile)
{
$Line = $Line.Trim()
if (($Line.Length -eq 0) -or ($Line[0] -eq "#"))
{
continue
}
$SliceList += $Line
}
$ImgFile = "..\..\Binary\" + $Disk + ".img"
$FileList = ""
"Generating $ImgFile using $DefFile..."
ForEach ($Slice in $SliceList)
{
$File = "..\..\Binary\" + $Format + "_" + $Slice + ".img"
if (!(Test-Path $File))
{
"Slice input file """ + $File + """ not found!!!"
exit 1
}
if ($FileList.Length -gt 0)
{
$FileList += "+"
}
$FileList += $File
}
if ($Format -eq "hd1k")
{
$FileList = "hd1k_prefix.dat+" + $FileList
}
$Cmd = "$env:ComSpec /c copy /b $FileList $ImgFile"
$Cmd
Invoke-Expression $Cmd
exit 0

6
Source/Images/BuildImg.cmd

@ -1,6 +0,0 @@
@echo off
setlocal
for %%f in (*.def) do (
PowerShell -ExecutionPolicy Unrestricted .\BuildImg.ps1 %%~nf || exit /b
)

158
Source/Images/BuildImg.ps1

@ -3,64 +3,142 @@ param([string]$Image)
# If a PowerShell exception occurs, just stop the script immediately.
$ErrorAction = 'Stop'
$DefFile = $Image + ".def"
$CpmToolsPath = '../../Tools/cpmtools'
$ImgFile = "..\..\Binary\hd1k_" + $Image + ".img"
$env:PATH = $CpmToolsPath + ';' + $env:PATH
$Format, $Disk = $Image.Split("_")
$Format = "wbw_" + $Format
if ($Format.Length -eq 0)
{
Write-Error "No disk format specified!" -ErrorAction Stop
return
}
$SliceList = @()
switch ($Format)
{
"wbw_fd144"
{
# 1.44MB Floppy Disk
$Type = "fd"
$Desc = "1.44MB Floppy Disk"
$ImgFile = "fd144_${Disk}.img"
$CatFile = "fd144_${Disk}.cat"
$MediaID = 6
$Size = 1440KB
}
"wbw_hd512"
{
# 512 Directory Entry Hard Disk Format
$Type = "hd"
$Desc = "Hard Disk (512 directory entry format)"
$ImgFile = "hd512_${Disk}.img"
$CatFile = "hd512_${Disk}.cat"
$MediaID = 4
$Size = 8MB + 128KB
}
"wbw_hd1k"
{
# 1024 Directory Entry Hard Disk Format
$Type = "hd"
$Desc = "Hard Disk (1024 directory entry format)"
$ImgFile = "hd1k_${Disk}.img"
$CatFile = "hd1k_${Disk}.cat"
$MediaID = 10
$Size = 8MB
}
}
ForEach ($Line in Get-Content $DefFile)
if (-not (Test-Path("d_${Disk}/")))
{
$Line = $Line.Trim()
Write-Error "Source directory d_${Disk} for disk ${Disk} not found!" -ErrorAction Stop
return
}
if (($Line.Length -eq 0) -or ($Line[0] -eq "#"))
{
continue
}
"Generating $Disk $Desc..."
$SliceList += $Line
if (Test-Path("${Type}_${Disk}.txt"))
{
foreach($Line in Get-Content "${Type}_${Disk}.txt")
{
$Spec = $Line.Trim()
if (($Spec.Length -gt 0) -and ($Spec.Substring(0,1) -eq '@'))
{
$Directive = $Spec.Substring(1);
$VarName, $VarVal = $Directive.Split("=")
Invoke-Expression "`$$VarName = $VarVal"
continue
}
}
}
function CreateImageFile {
param (
[string]$Format = "" # hd1k or hd512
)
# "Label: '$Label'"
# "SysImage: '$SysImage'"
$ImgFile = "..\..\Binary\" + $Format + "_" + $Image + ".img"
if ($SysImage.Length -gt 0)
{ [byte[]]$SysImg = [System.IO.File]::ReadAllBytes($SysImage) }
else
{ [byte[]]$SysImg = @() }
$FileList = ""
$ImageBin = ($SysImg + ([byte[]](0xE5) * ($Size - $SysImg.length)))
"Generating $ImgFile using $DefFile..."
if ($Label.Length -gt 0)
{
$LabelBytes = [System.Text.Encoding]::ASCII.GetBytes($Label)
$nLabel = 0;
for ($nImg = 0x5E7; $nImg -lt 0x5F7; $nImg++)
{
if ($nLabel -lt $Label.Length)
{
$ImageBin[$nImg] = $LabelBytes[$nLabel]
}
else
{
$ImageBin[$nImg] = [byte][char]'$'
}
$nLabel++
}
$ImageBin[0x5F7] = [byte][char]'$'
}
ForEach ($Slice in $SliceList)
{
$File = "..\..\Binary\" + $Format + "_" + $Slice + ".img"
[System.IO.File]::WriteAllBytes($ImgFile, $ImageBin)
if (!(Test-Path $File))
{
"Slice input file """ + $File + """ not found!!!"
exit 1
}
for ($Usr=0; $Usr -lt 16; $Usr++)
{
if (Test-Path ("d_${Disk}/u${Usr}/*"))
{
$Cmd = "cpmcp -f $Format $ImgFile d_${Disk}/u${Usr}/*.* ${Usr}:"
$Cmd
Invoke-Expression $Cmd
if ($LASTEXITCODE -gt 0) {throw "Command returned exit code $LASTEXITCODE"}
}
}
if ($FileList.Length -gt 0)
{
$FileList += "+"
}
if (Test-Path("${Type}_${Disk}.txt"))
{
foreach($Line in Get-Content "${Type}_${Disk}.txt")
{
$Spec = $Line.Trim()
if (($Spec.Length -gt 0) -and ($Spec.Substring(0,1) -ne "#") -and ($Spec.Substring(0,1) -ne "@"))
{
$Cmd = "cpmcp -f $Format $ImgFile ${Spec}"
$Cmd
Invoke-Expression $Cmd
if ($LASTEXITCODE -gt 0) {throw "Command returned exit code $LASTEXITCODE"}
}
}
}
$FileList += $File
}
$Cmd = "cpmls -f $Format -D $ImgFile"
$Cmd
Invoke-Expression $Cmd > $CatFile
if ($Format -eq "hd1k")
{
$FileList = "hd1k_prefix.dat+" + $FileList
}
cmd.exe /c copy /b $FileList $ImgFile
}
# "Moving image $ImgFile into output directory..."
CreateImageFile "hd512"
CreateImageFile "hd1k"
Move-Item $ImgFile -Destination "..\..\Binary\" -Force
exit 0
return

142
Source/Images/Makefile

@ -3,51 +3,40 @@
#
SYSTEMS = ../CPM22/cpm_wbw.sys ../ZSDOS/zsys_wbw.sys ../QPM/qpm_wbw.sys ../CPM3/cpmldr.sys ../ZPM3/zpmldr.sys
FDIMGS = fd144_cpm22.img fd144_zsdos.img fd144_nzcom.img \
fd144_cpm3.img fd144_zpm3.img fd144_ws4.img fd144_qpm.img \
fd144_z3plus.img \
fd144_z80asm.img fd144_aztecc.img fd144_hitechc.img \
fd144_bascomp.img fd144_fortran.img fd144_games.img \
fd144_tpascal.img fd144_cowgol.img fd144_cobol.img
HD512IMGS = hd512_cpm22.img hd512_zsdos.img hd512_nzcom.img \
hd512_cpm3.img hd512_zpm3.img hd512_ws4.img
HD512XIMGS = hd512_z80asm.img hd512_aztecc.img hd512_hitechc.img \
hd512_bascomp.img hd512_fortran.img hd512_games.img \
hd512_tpascal.img hd512_dos65.img hd512_qpm.img \
hd512_z3plus.img hd512_infocom.img \
hd512_cowgol.img hd512_msxroms1.img hd512_msxroms2.img \
hd512_cobol.img hd512_blank.img
HD1KIMGS = hd1k_cpm22.img hd1k_zsdos.img hd1k_nzcom.img \
hd1k_cpm3.img hd1k_zpm3.img hd1k_ws4.img
HD1KXIMGS = hd1k_z80asm.img hd1k_aztecc.img hd1k_hitechc.img \
hd1k_bascomp.img hd1k_fortran.img hd1k_games.img \
hd1k_tpascal.img hd1k_qpm.img \
hd1k_z3plus.img hd1k_infocom.img \
hd1k_cowgol.img hd1k_msxroms1.img hd1k_msxroms2.img \
hd1k_cobol.img hd1k_blank.img
HD1KXIMGS += hd1k_bp.img
# OBJECTS =
HD512PREFIX =
HD1KPREFIX = hd1k_prefix.dat
OBJECTS = $(FDIMGS)
OBJECTS += $(HD512IMGS) $(HD512XIMGS) $(HD512PREFIX)
OBJECTS += $(HD1KIMGS) $(HD1KXIMGS) $(HD1KPREFIX)
# add base images used in *.def files
# OBJECTS =
FDIMGS = $(wildcard fd_*.txt)
FDIMGS := $(subst fd_,,$(FDIMGS))
FDIMGS := $(addprefix fd144_,$(FDIMGS))
FDIMGS := $(FDIMGS:.txt=.img)
# add base images used in *.def files
# $(info FDIMGS: $(FDIMGS))
HDIMGS = $(wildcard hd_*.txt)
HDIMGS := $(subst hd_,,$(HDIMGS))
HDIMGS := $(addprefix hd512_,$(HDIMGS)) $(addprefix hd1k_,$(HDIMGS))
HDIMGS := $(HDIMGS:.txt=.img)
# $(info HDIMGS: $(HDIMGS))
BASEIMGS = $(shell grep -vEh "^\#" *.def)
BASEIMGS := $(addprefix hd512_,$(BASEIMGS)) $(addprefix hd1k_,$(BASEIMGS))
BASEIMGS := $(addsuffix .img,$(BASEIMGS))
# $(info BASEIMGS: $(BASEIMGS))
BASEIMG = $(shell grep -vEh "^\#" *.def)
BASEIMG := $(addprefix hd512_,$(BASEIMG)) $(addprefix hd1k_,$(BASEIMG))
BASEIMG := $(addsuffix .img,$(BASEIMG))
OBJECTS += $(BASEIMG)
DSKIMGS = $(wildcard *.def)
DSKIMGS := $(addprefix hd512_,$(DSKIMGS)) $(addprefix hd1k_,$(DSKIMGS))
DSKIMGS := $(DSKIMGS:.def=.img)
TEMP = $(wildcard *.def)
TEMP := $(addprefix hd512_,$(TEMP)) $(addprefix hd1k_,$(TEMP))
TEMP := $(TEMP:.def=.img)
OBJECTS += $(TEMP)
# $(info DSKIMGS: $(DSKIMGS))
OBJECTS = $(FDIMGS) $(HDIMGS) $(DSKIMGS) $(HD512PREFIX) $(HD1KPREFIX)
OTHERS = blank144 blankhd512 blankhd1k *.cat
@ -56,47 +45,27 @@ NODELETE = $(HD512PREFIX) $(HD1KPREFIX)
DEST=../../Binary
TOOLS = ../../Tools
# $(info OBJECTS: $(OBJECTS))
include $(TOOLS)/Makefile.inc
.SHELLFLAGS = -ce
DIFFPATH = $(DIFFTO)/Binary
# hd512_%.img: %.def $(HD512IMGS) $(HD512XIMGS)
hd512_%.img: %.def
@echo "Making hd512 $^"; \
file_list=""; \
while read line; do \
line=$$(echo "$${line}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$$//') ; \
if [ -z "$${line}" ]; then \
continue; \
fi; \
if [ "`echo ""$${line}"" | awk '{print substr($$0,1,1);exit}'`" = "#" ]; then \
continue; \
fi; \
file_list="$${file_list} hd512_$${line}.img"; \
done < $^ ; \
echo "$${file_list}"; \
cat $${file_list} > $@
# hd1k_%.img: %.def $(HD1KIMGS) $(HD1KXIMGS)
@echo "Generating hd512 disk image ""$@"" using $^"; \
files=`grep -vEh "^\s*\#" $^ | grep -vEh "^\s*$$" | tr -d '\r' | awk '{print "hd512_" $$0 ".img"}'`; \
echo " " $${files}; \
cat $(HD512PREFIX) $${files} > $@
hd1k_%.img: %.def
@echo "Making hd1k $^"; \
file_list=""; \
while read line; do \
line=$$(echo "$${line}" | sed 's/^[[:space:]]*//;s/[[:space:]]*$$//') ; \
if [ -z "$${line}" ]; then \
continue; \
fi; \
if [ "`echo ""$${line}"" | awk '{print substr($$0,1,1);exit}'`" = "#" ]; then \
continue; \
fi; \
file_list="$${file_list} hd1k_$${line}.img"; \
done < $^ ; \
echo "$${file_list}"; \
cat $(HD1KPREFIX) $${file_list} > $@
@echo "Generating hd1k disk image ""$@"" using $^"; \
files=`grep -vEh "^\s*\#" $^ | grep -vEh "^\s*$$" | tr -d '\r' | awk '{print "hd1k_" $$0 ".img"}'`; \
echo " " $${files}; \
cat $(HD1KPREFIX) $${files} > $@
#
# this somewhat impenetrable and fragile code is used to build each of the images
@ -127,16 +96,8 @@ blankhd1k:
@LC_ALL=en_US.US-ASCII tr '\000' '\345' </dev/zero | dd of=$@ bs=1024 count=$(HD1KSIZE)
@hexdump $@
%.img: $(SYSTEMS) blank144 blankhd512 blankhd1k Makefile
@sys= ; \
case $@ in \
(*cpm22*) sys=../CPM22/cpm_wbw.sys;; \
(*qpm*) sys=../QPM/qpm_wbw.sys;; \
(*zsdos* | *nzcom* | *dos65* | *bp*) sys=../ZSDOS/zsys_wbw.sys;; \
(*cpm3* | *z3plus*) sys=../CPM3/cpmldr.sys;; \
(*zpm3*) sys=../ZPM3/zpmldr.sys;; \
esac ; \
if echo $@ | grep -q ^fd144_ ; then \
%.img: $(SYSTEMS) blank144 blankhd512 blankhd1k # Makefile
@if echo $@ | grep -q ^fd144_ ; then \
fmt=wbw_fd144 ; dtype=fd ; type=fd144_ ; proto=blank144 ; \
fi ; \
if echo $@ | grep -q ^hd512_ ; then \
@ -148,9 +109,24 @@ blankhd1k:
d=$$(echo $(basename $@) | sed s/$$type//) ; \
echo Generating $@ ; \
cp $$proto $@ ; \
if [ "$$sys" ] ; then \
echo copying system $$sys to $@ ; \
$(BINDIR)/mkfs.cpm -f $$fmt -b $$sys $@ ; \
if [ -f $${dtype}_$$d.txt ] ; then \
output=` \
grep "^\s*@" $${dtype}_$$d.txt | tr -d '\r' | while read directive ; do \
echo $${directive#?} ; \
done ` ; \
eval "$$output" ; \
# echo "Label: $$Label" ; \
# echo "SysImage: $$SysImage" ; \
fi ; \
if [ "$$SysImage" ] ; then \
echo copying system $$SysImage to $@ ; \
$(BINDIR)/mkfs.cpm -f $$fmt -b $$SysImage $@ ; \
fi ; \
if [ "$$Label" ] ; then \
Label=`expr substr "$$Label" 1 16` ; \
echo "Label: \"$$Label\""
echo -n "\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$\$$" | dd conv=notrunc status=none bs=1 seek=1511 of=$@ ; \
echo -n "$$Label" | dd conv=notrunc status=none bs=1 seek=1511 of=$@; \
fi ; \
for u in $$(seq 0 15) ; do \
dir=d_$$d/u$$u ; \
@ -163,14 +139,14 @@ blankhd1k:
done ; \
fi ; \
done ; \
echo $${dtype}_$$d.txt ; \
if [ -f $${dtype}_$$d.txt ] ; then \
echo " " copying files from $${dtype}_$$d.txt ; \
grep -v ^# $${dtype}_$$d.txt | tr -d '\r' | while read file user ; do \
grep -v "^\s*[#@]" $${dtype}_$$d.txt | tr -d '\r' | while read file user ; do \
rf=$$($(CASEFN) $$file | sort -f) ; \
echo " " $$rf ; \
if [ -z "$$rf" ] ; then \
echo " " $$file missing ; \
exit 1 ; \
else \
$(CPMCP) -f $$fmt $@ $$rf $$user ; \
fi ; \

1
Source/Images/fd_aztecc.txt

@ -1,3 +1,4 @@
@Label="Aztec C"
#
# Add the ReadMe document
#

1
Source/Images/fd_bascomp.txt

@ -1,3 +1,4 @@
@Label="Microsoft BASIC"
#
# Add the ReadMe document
#

55
Source/Images/fd_bp.txt

@ -1,55 +0,0 @@
#
# Add ZSystem images
#
../BPBIOS/*.img 0:
../BPBIOS/*.rel 0:
../BPBIOS/*.zrl 0:
../BPBIOS/*.zex 0:
../BPBIOS/bpbuild.com 0:
#
# Add RomWBW utilities
#
#../../Binary/Apps/*.com 15:
../../Binary/Apps/assign.com 15:
#../../Binary/Apps/bbcbasic.com 15:
#../../Binary/Apps/bbcbasic.txt 15:
../../Binary/Apps/cpuspd.com 15:
../../Binary/Apps/reboot.com 15:
../../Binary/Apps/fat.com 15:
../../Binary/Apps/fdu.com 15:
../../Binary/Apps/fdu.doc 15:
../../Binary/Apps/format.com 15:
../../Binary/Apps/mode.com 15:
../../Binary/Apps/rtc.com 15:
../../Binary/Apps/survey.com 15:
../../Binary/Apps/syscopy.com 15:
../../Binary/Apps/sysgen.com 15:
../../Binary/Apps/talk.com 15:
../../Binary/Apps/htalk.com 15:
../../Binary/Apps/tbasic.com 15:
../../Binary/Apps/timer.com 15:
../../Binary/Apps/tune.com 15:
../../Binary/Apps/xm.com 15:
../../Binary/Apps/zmp.com 15:
../../Binary/Apps/zmp.hlp 15:
../../Binary/Apps/zmp.doc 10:
../../Binary/Apps/zmp.cfg 15:
../../Binary/Apps/zmp.fon 15:
../../Binary/Apps/zmxfer.ovr 15:
../../Binary/Apps/zmterm.ovr 15:
../../Binary/Apps/zminit.ovr 15:
../../Binary/Apps/zmconfig.ovr 15:
../../Binary/Apps/zmd.com 15:
../../Binary/Apps/vgmplay.com 15:
#
# Add Common Applications
#
Common/All/u10/*.* 10:
Common/All/u14/*.* 14:
Common/All/u15/*.* 15:
Common/CPM22/*.* 15:
Common/Z/u14/*.* 14:
Common/Z/u15/*.* 15:
Common/Z3/u10/*.* 10:
Common/Z3/u14/*.* 14:
Common/Z3/u15/*.* 15:

1
Source/Images/fd_cobol.txt

@ -1,3 +1,4 @@
@Label="Microsoft COBOL"
#
# Add the ReadMe document
#

1
Source/Images/fd_cowgol.txt

@ -1,3 +1,4 @@
@Label="Cowgol"
#
# Add the ReadMe document
#

2
Source/Images/fd_cpm22.txt

@ -1,3 +1,5 @@
@Label="CP/M 2.2"
@SysImage="../CPM22/cpm_wbw.sys"
#
# Add the ReadMe document
#

2
Source/Images/fd_cpm3.txt

@ -1,3 +1,5 @@
@Label="CP/M 3"
@SysImage="../CPM3/cpmldr.sys"
#
# Add the ReadMe document
#

1
Source/Images/fd_fortran.txt

@ -1,3 +1,4 @@
@Label="Microsoft Fortran"
#
# Add the ReadMe document
#

1
Source/Images/fd_games.txt

@ -1,3 +1,4 @@
@Label="Games"
#
# Add the ReadMe document
#

1
Source/Images/fd_hitechc.txt

@ -1,3 +1,4 @@
@Label="HITECH-C"
#
# Add the ReadMe document
#

2
Source/Images/fd_nzcom.txt

@ -1,3 +1,5 @@
@Label="NZ-COM"
@SysImage="../ZSDOS/zsys_wbw.sys"
#
# Add the ReadMe document
#

2
Source/Images/fd_qpm.txt

@ -1,3 +1,5 @@
@Label="QP/M 2.7"
@SysImage="../QPM/qpm_wbw.sys"
#
# Add the ReadMe document
#

1
Source/Images/fd_tpascal.txt

@ -1,3 +1,4 @@
@Label="Turbo Pascal"
#
# Add the ReadMe document
#

1
Source/Images/fd_ws4.txt

@ -1,3 +1,4 @@
@Label="WordStar 4"
#
# Add the ZDE binaries
#

2
Source/Images/fd_z3plus.txt

@ -1,3 +1,5 @@
@Label="Z3PLUS"
@SysImage="../CPM3/cpmldr.sys"
#
# Add the ReadMe document
#

1
Source/Images/fd_z80asm.txt

@ -1,3 +1,4 @@
@Label="SLR Z80ASM"
#
# Add the ReadMe document
#

2
Source/Images/fd_zpm3.txt

@ -1,3 +1,5 @@
@Label="ZPM3"
@SysImage="../ZPM3/zpmldr.sys"
#
# Add the ReadMe document
#

2
Source/Images/fd_zsdos.txt

@ -1,3 +1,5 @@
@Label="ZSDOS 1.1"
@SysImage="../ZSDOS/zsys_wbw.sys"
#
# Add the ReadMe document
#

1
Source/Images/hd_aztecc.txt

@ -1,3 +1,4 @@
@Label="Aztec C"
#
# Add the ReadMe document
#

1
Source/Images/hd_bascomp.txt

@ -1,3 +1,4 @@
@Label="Microsoft BASIC"
#
# Add the ReadMe document
#

1
Source/Images/hd_blank.txt

@ -1,3 +1,4 @@
@Label="Blank"
#
# Blank disk template
#

2
Source/Images/hd_bp.txt

@ -1,3 +1,5 @@
@Label="BPBIOS"
@SysImage="../ZSDOS/zsys_wbw.sys"
#
# Add ZSystem images
#

1
Source/Images/hd_cobol.txt

@ -1,3 +1,4 @@
@Label="Microsoft COBOL"
#
# Add the ReadMe document
#

1
Source/Images/hd_cowgol.txt

@ -1,3 +1,4 @@
@Label="Cowgol"
#
# Add the ReadMe document
#

2
Source/Images/hd_cpm22.txt

@ -1,3 +1,5 @@
@Label="CP/M 2.2"
@SysImage="../CPM22/cpm_wbw.sys"
#
# Add the ReadMe document
#

2
Source/Images/hd_cpm3.txt

@ -1,3 +1,5 @@
@Label="CP/M 3"
@SysImage="../CPM3/cpmldr.sys"
#
# Add the ReadMe document
#

2
Source/Images/hd_dos65.txt

@ -1,3 +1,5 @@
@Label="DOS65"
@SysImage="../ZSDOS/zsys_wbw.sys"
#
# Add the ReadMe document
#

1
Source/Images/hd_fortran.txt

@ -1,3 +1,4 @@
@Label="Microsoft Fortran"
#
# Add the ReadMe document
#

1
Source/Images/hd_games.txt

@ -1,3 +1,4 @@
@Label="Games"
#
# Add the ReadMe document
#

1
Source/Images/hd_hitechc.txt

@ -1,3 +1,4 @@
@Label="HITECH-C"
#
# Add the ReadMe document
#

1
Source/Images/hd_infocom.txt

@ -1,3 +1,4 @@
@Label="Infocom Games"
#
# Add the ReadMe document
#

1
Source/Images/hd_msxroms1.txt

@ -1,3 +1,4 @@
@Label="MSX ROMS 1"
#
# Add the ReadMe document
#

1
Source/Images/hd_msxroms2.txt

@ -1,3 +1,4 @@
@Label="MSX ROMS 2"
#
# Add the ReadMe document
#

2
Source/Images/hd_nzcom.txt

@ -1,3 +1,5 @@
@Label="NZ-COM"
@SysImage="../ZSDOS/zsys_wbw.sys"
#
# Add the ReadMe document
#

2
Source/Images/hd_qpm.txt

@ -1,3 +1,5 @@
@Label="QP/M 2.7"
@SysImage="../QPM/qpm_wbw.sys"
#
# Add the ReadMe document
#

1
Source/Images/hd_tpascal.txt

@ -1,3 +1,4 @@
@Label="Turbo Pascal"
#
# Add the ReadMe document
#

1
Source/Images/hd_ws4.txt

@ -1,3 +1,4 @@
@Label="WordStar 4"
#
# Add the ZDE binaries
#

2
Source/Images/hd_z3plus.txt

@ -1,3 +1,5 @@
@Label="Z3PLUS"
@SysImage="../CPM3/cpmldr.sys"
#
# Add the ReadMe document
#

1
Source/Images/hd_z80asm.txt

@ -1,3 +1,4 @@
@Label="SLR Z80ASM"
#
# Add the ReadMe document
#

2
Source/Images/hd_zpm3.txt

@ -1,3 +1,5 @@
@Label="ZPM3"
@SysImage="../ZPM3/zpmldr.sys"
#
# Add the ReadMe document
#

2
Source/Images/hd_zsdos.txt

@ -1,3 +1,5 @@
@Label="ZSDOS 1.1"
@SysImage="../ZSDOS/zsys_wbw.sys"
#
# Add the ReadMe document
#

4
Source/Makefile

@ -26,6 +26,7 @@ shared:
$(MAKE) --directory ZSDOS2 $(ACTION)
$(MAKE) --directory CPM3 $(ACTION)
$(MAKE) --directory ZPM3 $(ACTION)
$(MAKE) --directory BPBIOS $(ACTION)
$(MAKE) --directory CPNET $(ACTION)
$(MAKE) --directory pSys $(ACTION)
$(MAKE) --directory Apps $(ACTION)
@ -34,9 +35,6 @@ shared:
$(MAKE) --directory Fonts $(ACTION)
$(MAKE) --directory RomDsk $(ACTION)
bp:
$(MAKE) --directory BPBIOS $(ACTION)
images:
$(MAKE) --directory Images $(ACTION)

Loading…
Cancel
Save