Close

BOOT ROM/MSX-DOS Startup

A project log for MSX COMPATIBLE BOARDS FOR RC2014

Create a series of boards designed for the RC2014 bus to achieve MSX/MSX2 compatiblity

dean-nethertonDean Netherton 12/24/2020 at 02:000 Comments

So after what seems like a million and one flashes of the ROM chip, I now have a booting image.

The BIOS and disk system (CBIOS and Nextor MSX-DOS) are now working nicely together to give a command prompt.

I am able to run CP/M and MSX-DOS apps - although there will probably be some compatibility limits with CBIOS.

To enable a bootable system, without an actual floppy or hard disk, I had to create an embedded virtual disk drive within the ROM image.  This ROM drive includes the boot executables (nextor.sys and command.com) as well as a few simple demo apps that I found online.

A quick summary of the things I needed to do to get the software to work:

Next steps:

  1. Fix the issue I have with the on-board ROM Mapper, to I can remove the workaround in CBIOS/Nextor.
  2. Add some key debouncing and support for CAPS LOCK in CBIOS.
  3. See if I can get the RC2014 SIO/2 board to work within the platform. Might have some issues with Baud rate and general performance.
  4. Explore the possibility to write drivers for the RC2014 Floppy and HDD interface boards. 
  5. Continue with the other MSX boards i have coming - sound/joystick, cassette.
  6. Will also need to explore designing/building a new board, to introduce the required wait states on M1 - as per the MSX spec. (This might be why I needed to add wait states in the CBIOS code for V9958 access)

ROM Mapper Issue:

The issue I have with the ROM Mapper, is due to the way I have used of a single ROM chip across multiple Slots.  

When accessing the ROM in slot 3-3, the ROM Mapper allow access to all 16k banks, the first 8 of which are the CBIOS images, and are not relevant in this slot.  

So to access the slot's first bank, you need to write $08 to the bank selector port.  If this is not done, then the BIOS' ROM search code will fail to see the MSX ROM marker in the slot and will not initialise and load the ROM code.

Now it's easy enough to add an IO write in the ROM search code in CBIOS, but for other BIOS ROM images, this will not happen.  So to enable better compatibility I need to make sure the on-board ROM Mapper, for slot 3-3, always defaults to the correct initial bank.

Discussions