Browse Source

MSX Combo Disk, Issue #645

Adding MSX Combo Disk as provided by @b3rendsh.

Co-Authored-By: H.J.Berends <112617808+b3rendsh@users.noreply.github.com>
pull/652/head
Wayne Warthen 3 weeks ago
parent
commit
e7f3457491
No known key found for this signature in database GPG Key ID: 8B34ED29C07EEB0A
  1. 1
      Binary/Clean.cmd
  2. 2
      Binary/Makefile
  3. 76
      Source/Images/d_msx/ReadMe.txt
  4. BIN
      Source/Images/d_msx/u0/HBMSX.COM
  5. BIN
      Source/Images/d_msx/u0/MSXROM.COM
  6. 2
      Source/Images/d_msx/u0/PROFILE.SUB
  7. BIN
      Source/Images/d_msx/u0/RCMSX.COM
  8. 15
      Source/Images/hd_msx.txt
  9. 13
      Source/MSX/BuildMsxDsk.cmd
  10. 55
      Source/MSX/BuildMsxDsk.ps1
  11. 2
      Source/MSX/Clean.cmd
  12. 50
      Source/MSX/ReadMe.md
  13. 5
      Source/MSX/d_fat/README.TXT
  14. BIN
      Source/MSX/msximg.zip

1
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

2
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

76
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

BIN
Source/Images/d_msx/u0/HBMSX.COM

Binary file not shown.

BIN
Source/Images/d_msx/u0/MSXROM.COM

Binary file not shown.

2
Source/Images/d_msx/u0/PROFILE.SUB

@ -0,0 +1,2 @@
RCMSX


BIN
Source/Images/d_msx/u0/RCMSX.COM

Binary file not shown.

15
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:

13
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

55
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

2
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

50
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.

5
Source/MSX/d_fat/README.TXT

@ -0,0 +1,5 @@
===== FAT Disk for RomWBW =====
FAT / MSX system files
-- HJB 12/06/2025

BIN
Source/MSX/msximg.zip

Binary file not shown.
Loading…
Cancel
Save