diff --git a/Binary/Clean.cmd b/Binary/Clean.cmd index 110393d5..7ba998b3 100644 --- a/Binary/Clean.cmd +++ b/Binary/Clean.cmd @@ -5,6 +5,7 @@ if exist *.bin del *.bin if exist *.dat del *.dat if exist *.com del *.com if exist *.img del *.img +if exist *.dsk del *.dsk if exist *.rom del *.rom if exist *.hex del *.hex if exist *.upd del *.upd diff --git a/Binary/Makefile b/Binary/Makefile index 2d8595c3..b27fa16d 100644 --- a/Binary/Makefile +++ b/Binary/Makefile @@ -5,4 +5,4 @@ SUBDIRS = Apps CPM22 CPM3 QPM ZSDOS ZPM3 CPNET include $(TOOLS)/Makefile.inc clean:: - @rm -f *.bin *.com *.img *.rom *.upd *.hex *.pdf *.log *.eeprom *.dat + @rm -f *.bin *.com *.img *.dsk *.rom *.upd *.hex *.pdf *.log *.eeprom *.dat diff --git a/Source/Images/d_msx/ReadMe.txt b/Source/Images/d_msx/ReadMe.txt new file mode 100644 index 00000000..4120e340 --- /dev/null +++ b/Source/Images/d_msx/ReadMe.txt @@ -0,0 +1,76 @@ +===== MSX System Disk for RomWBW ===== + +This disk is one of several ready-to-run disks provided with RomWBW. +It contains software to launch the MSX system or a MSX (game) ROM. + +The source code is maintained in following repository: +https://github.com/b3rendsh/msxbase + +== Requirements == + +HBDOS can be used on a Z80 or Z180 RomWBW computer with at least 192KB RAM and +support for a system timer. MSX BASIC and the MSX ROM loader require a TMS9918A +compatible video card, system timer and 128KB RAM. + +hbmsx.com requires a keyboard and VDP that is compliant with the MSX standard. +rcmsx.com uses the console keyboard and text output is displayed on both the +console and video card. +msxrom.com uses the console keyboard and requires a MSX compliant VDP and PSG. + +To use HBDOS the first FAT partition on the first large storage media must +contain the MSX command interpreter i.e. the COMMAND.COM file. + +Different hardware and software configurations can be supported by using +alternative build options, see source repository. + +== Usage == + +Start hbmsx.com or rcmsx.com to load the MSX system HBDOS / Disk BASIC. +Start msxrom.com to load a MSX (game) ROM image e.g. "msxrom arkanoid.rom". + +== HBDOS == + +HBDOS is compatible with all functions of MSX-DOS 1 and includes enhancements +to support large disks with standard FAT12 or FAT16 partitions. + +It is a CP/M 2.2 work-alike DOS that uses the FAT filesystem. Many text +applications that work on MSX-DOS 1 or CP/M 2.2 will run without modification. +Direct disk access, FAT32, i/o byte, user areas and subdirectories are not +supported. + +At the DOS command prompt enter "basic" to start MSX BASIC. + +== BASIC == + +All functions of MSX BASIC are available, if HBDOS is loaded then the Disk +BASIC extension is also available. + +Use the IPL command to return to RomWBW i.e. do a cold reboot. + +In Disk BASIC use "call system" to return to the DOS command prompt. + +== ROM CART == + +The MSX ROM loader supports MSX ROM cartridge images of maximum 32KB. + +Not all MSX ROM games will work and some games may require an additional ROM +patch or additional hardware. When a MSX ROM is running you can reboot RomWBW +by pressing the CTRL+STOP key (default mapped to CTRL+V). + +== Console == + +The RomWBW (VT100) console can be used for keyboard input and screen output, +with some limitations: + +Cursor and function keys may not work, use control key combinations or a MSX +compatible keyboard. + +To paste text into BASIC set the terminal send character delay to at least 40ms. + +The MSX BIOS uses VT52 escape sequences, on a VT100 console sometimes an extra +character is displayed. + +The MSX 1 BIOS text mode is set to 40 columns. + + +-- HJB 01/06/2026 diff --git a/Source/Images/d_msx/u0/HBMSX.COM b/Source/Images/d_msx/u0/HBMSX.COM new file mode 100644 index 00000000..213883e6 Binary files /dev/null and b/Source/Images/d_msx/u0/HBMSX.COM differ diff --git a/Source/Images/d_msx/u0/MSXROM.COM b/Source/Images/d_msx/u0/MSXROM.COM new file mode 100644 index 00000000..427a00e8 Binary files /dev/null and b/Source/Images/d_msx/u0/MSXROM.COM differ diff --git a/Source/Images/d_msx/u0/PROFILE.SUB b/Source/Images/d_msx/u0/PROFILE.SUB new file mode 100644 index 00000000..412aee57 --- /dev/null +++ b/Source/Images/d_msx/u0/PROFILE.SUB @@ -0,0 +1,2 @@ +RCMSX + \ No newline at end of file diff --git a/Source/Images/d_msx/u0/RCMSX.COM b/Source/Images/d_msx/u0/RCMSX.COM new file mode 100644 index 00000000..0c42e321 Binary files /dev/null and b/Source/Images/d_msx/u0/RCMSX.COM differ diff --git a/Source/Images/hd_msx.txt b/Source/Images/hd_msx.txt new file mode 100644 index 00000000..5b432008 --- /dev/null +++ b/Source/Images/hd_msx.txt @@ -0,0 +1,15 @@ +@Label="MSX System" +@SysImage="../ZSDOS/zsys_wbw.sys" +# +# Add the ReadMe document +# +d_msx/Readme.txt 0: +# +# Add CP/M 2.2 commands +# +d_cpm22/u0/submit.com 0: +# +# Add RomWBW utilities +# +../../Binary/Apps/fat.com 0: +../../Binary/Apps/reboot.com 0: diff --git a/Source/MSX/BuildMsxDsk.cmd b/Source/MSX/BuildMsxDsk.cmd new file mode 100644 index 00000000..2cbf62d0 --- /dev/null +++ b/Source/MSX/BuildMsxDsk.cmd @@ -0,0 +1,13 @@ +:: This script will build an aggregate MSX disk image + +@echo off +setlocal + +SETLOCAL EnableDelayedExpansion + +set MTOOLS_SKIP_CHECK=1 +set TOOLS=../../Tools +set PATH=%TOOLS%\mtools;%PATH% + +PowerShell -ExecutionPolicy Unrestricted .\BuildMsxDsk.ps1 || exit /b + diff --git a/Source/MSX/BuildMsxDsk.ps1 b/Source/MSX/BuildMsxDsk.ps1 new file mode 100644 index 00000000..e3b99b08 --- /dev/null +++ b/Source/MSX/BuildMsxDsk.ps1 @@ -0,0 +1,55 @@ +# This PowerShell script will build an aggregate hard disk image with three partitions: +# - RomWBW partition with 16 slices (128MB) +# - MSX-DOS FAT12 system partition (8MB) +# - FAT16 data partition (100MB) +# The script must be invoked after all slice images are built. + +# If a PowerShell exception occurs, just stop the script immediately. +$ErrorAction = 'Stop' + +$DskFile = "..\..\Binary\msx_combo.dsk" + +"Generating $DskFile..." + +$FileList = "" + +# Define the 16 slices +$SliceList = 'cpm22','zsdos','nzcom','cpm3','zpm3','wp','games','msx' +$SliceList += 'blank','blank','blank','blank','blank','blank','blank','blank' + +ForEach ($Slice in $SliceList) +{ + $File = "..\..\Binary\hd1k_" + $Slice + ".img" + + if (!(Test-Path $File)) + { + "Slice input file """ + $File + """ not found!!!" + exit 1 + } + + if ($FileList.Length -gt 0) + { + $FileList += "+" + } + + $FileList += $File +} + +# Expand MBR and FAT partition images + +Expand-Archive -Force -Path msximg.zip + +# Populate FAT system partition + +&"mtools" -c copy -i msximg\msx_sys.dsk -omv d_fat\*.* :: +&"mtools" -c copy -i msximg\msx_sys.dsk -omv ..\..\Binary\MSX_std.rom ::MSX-STD.ROM +&"mtools" -c copy -i msximg\msx_sys.dsk -omv ..\..\Binary\msx-ldr.com ::MSX-LDR.COM +&"mtools" -c copy -i msximg\msx_sys.dsk -omv ..\..\Binary\Apps\reboot.com ::REBOOT.COM + +$FileList = "msximg\msx_mbr.dat +" + $FileList + "+ msximg\msx_sys.dsk + msximg\msx_data.dsk" + +$Cmd = "$env:ComSpec /c copy /b $FileList $DskFile" +$Cmd +Invoke-Expression $Cmd + +exit 0 diff --git a/Source/MSX/Clean.cmd b/Source/MSX/Clean.cmd index 420369b5..376bcde0 100644 --- a/Source/MSX/Clean.cmd +++ b/Source/MSX/Clean.cmd @@ -8,3 +8,5 @@ if exist *.hex del *.hex if exist *.rel del *.rel if exist *.sym del *.sym if exist *.com del *.com + +if exist msximg rd /s /q msximg \ No newline at end of file diff --git a/Source/MSX/ReadMe.md b/Source/MSX/ReadMe.md index 8e07a0c5..9017df4f 100644 --- a/Source/MSX/ReadMe.md +++ b/Source/MSX/ReadMe.md @@ -1,10 +1,52 @@ -# RomWBW loader for MSX +RomWBW Loader for MSX +===================== -The loader can be started from the MSX-DOS 1, MSX-DOS 2 or Nextor command prompt. +The loader can be started from the MSX-DOS 1, MSX-DOS 2 or Nextor +command prompt. -It will check the RAM mapper requirements based on the size of the rom image file. +It will check the RAM mapper requirements based on the size of the rom +image file. -The "MSX_std.rom" image must be copied to "MSX-STD.ROM" on the MSX disk media together with "MSX-LDR.COM". +The "MSX_std.rom" image must be copied to "MSX-STD.ROM" on the MSX disk +media together with "MSX-LDR.COM". +RomWBW MSX Combo Disk Creation +============================== +This folder contains Windows scripts to create a RomWBW MSX combo disk +image. +Usage +----- + +1. Copy the Source folder into the RomWBW folder. +2. Download mtools for Windows: https://github.com/YawHuei/mtools_win32 +3. Copy the mtools executables into the (new) RomWBW\Tools\mtools folder +4. Run the RomWBW build script for your platform e.g. "build msx std" + or "build rcz80 std" +5. In the Source\MSX folder run "BuildMsxDsk.cmd" + +If the scripts run successfully the Binary\msx_combo.dsk file is created. + +Disk image contents +------------------- + +The disk image will contain three partitions: +- RomWBW partition with 16 slices (128MB) +- MSX-DOS FAT12 system partition (8MB) +- FAT16 data partition (100MB) + +The RomWBW partition contains the standard RomWBW slices, the games +slice, the msx system slice and 8 blank slices. The msx system slice +contains the CP/M loader program to start the MSX system from RomWBW. + +The FAT12 system partition contains the MSX-DOS system files and loader +to start RomWBW on a MSX system. If the MSX system is started from +RomWBW this will be the A-drive. + +The FAT16 data partition is a formatted empty partition. +If the MSX system is started from RomWBW this will be the B-drive. + +Note +---- +This is a work in progress and subject to change without notice. \ No newline at end of file diff --git a/Source/MSX/d_fat/README.TXT b/Source/MSX/d_fat/README.TXT new file mode 100644 index 00000000..44b54551 --- /dev/null +++ b/Source/MSX/d_fat/README.TXT @@ -0,0 +1,5 @@ +===== FAT Disk for RomWBW ===== + +FAT / MSX system files + +-- HJB 12/06/2025 \ No newline at end of file diff --git a/Source/MSX/msximg.zip b/Source/MSX/msximg.zip new file mode 100644 index 00000000..79646b60 Binary files /dev/null and b/Source/MSX/msximg.zip differ