1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-08 10:52:58 +00:00

Introduces MSX ROMs and an MSX class.

This commit is contained in:
Thomas Harte 2017-11-24 20:43:26 -05:00
parent fcf295fd68
commit ff21ff90eb
10 changed files with 297 additions and 1 deletions

26
Machines/MSX.cpp Normal file
View File

@ -0,0 +1,26 @@
//
// MSX.cpp
// Clock Signal
//
// Created by Thomas Harte on 24/11/2017.
// Copyright © 2017 Thomas Harte. All rights reserved.
//
#include "MSX.hpp"
namespace MSX {
class ConcreteMachine:
public Machine {
};
}
using namespace MSX;
Machine *Machine::MSX() {
return new ConcreteMachine;
}
Machine::~Machine() {}

22
Machines/MSX.hpp Normal file
View File

@ -0,0 +1,22 @@
//
// MSX.hpp
// Clock Signal
//
// Created by Thomas Harte on 24/11/2017.
// Copyright © 2017 Thomas Harte. All rights reserved.
//
#ifndef MSX_hpp
#define MSX_hpp
namespace MSX {
class Machine {
public:
virtual ~Machine();
static Machine *MSX();
};
}
#endif /* MSX_hpp */

View File

@ -221,6 +221,8 @@
4B71368E1F788112008B8ED9 /* Parser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B71368C1F788112008B8ED9 /* Parser.cpp */; };
4B7136911F789C93008B8ED9 /* SegmentParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B71368F1F789C93008B8ED9 /* SegmentParser.cpp */; };
4B7913CC1DFCD80E00175A82 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B7913CA1DFCD80E00175A82 /* Video.cpp */; };
4B79A4FB1FC8FF9400EEDAD5 /* MSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B79A4F91FC8FF9400EEDAD5 /* MSX.cpp */; };
4B79A4FD1FC9000C00EEDAD5 /* MSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B79A4F91FC8FF9400EEDAD5 /* MSX.cpp */; };
4B79E4441E3AF38600141F11 /* cassette.png in Resources */ = {isa = PBXBuildFile; fileRef = 4B79E4411E3AF38600141F11 /* cassette.png */; };
4B79E4451E3AF38600141F11 /* floppy35.png in Resources */ = {isa = PBXBuildFile; fileRef = 4B79E4421E3AF38600141F11 /* floppy35.png */; };
4B79E4461E3AF38600141F11 /* floppy525.png in Resources */ = {isa = PBXBuildFile; fileRef = 4B79E4431E3AF38600141F11 /* floppy525.png */; };
@ -819,6 +821,8 @@
4B77069C1EC904570053B588 /* Z80.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Z80.hpp; path = Z80/Z80.hpp; sourceTree = "<group>"; };
4B7913CA1DFCD80E00175A82 /* Video.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Video.cpp; path = Electron/Video.cpp; sourceTree = "<group>"; };
4B7913CB1DFCD80E00175A82 /* Video.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Video.hpp; path = Electron/Video.hpp; sourceTree = "<group>"; };
4B79A4F91FC8FF9400EEDAD5 /* MSX.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = MSX.cpp; sourceTree = "<group>"; };
4B79A4FA1FC8FF9400EEDAD5 /* MSX.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = MSX.hpp; sourceTree = "<group>"; };
4B79E4411E3AF38600141F11 /* cassette.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cassette.png; sourceTree = "<group>"; };
4B79E4421E3AF38600141F11 /* floppy35.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = floppy35.png; sourceTree = "<group>"; };
4B79E4431E3AF38600141F11 /* floppy525.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = floppy525.png; sourceTree = "<group>"; };
@ -1893,6 +1897,15 @@
name = Z80;
sourceTree = "<group>";
};
4B79A4FC1FC8FF9800EEDAD5 /* MSX */ = {
isa = PBXGroup;
children = (
4B79A4F91FC8FF9400EEDAD5 /* MSX.cpp */,
4B79A4FA1FC8FF9400EEDAD5 /* MSX.hpp */,
);
name = MSX;
sourceTree = "<group>";
};
4B8334881F5DB8470097E338 /* Implementation */ = {
isa = PBXGroup;
children = (
@ -2374,15 +2387,16 @@
isa = PBXGroup;
children = (
4B54C0BB1F8D8E790050900F /* KeyboardMachine.cpp */,
4BDCC5F81FB27A5E001220C5 /* ROMMachine.hpp */,
4BA9C3CF1D8164A9002DDB61 /* ConfigurationTarget.hpp */,
4B046DC31CFE651500E9E45E /* CRTMachine.hpp */,
4B7041271F92C26900735E45 /* JoystickMachine.hpp */,
4B8E4ECD1DCE483D003716C3 /* KeyboardMachine.hpp */,
4BDCC5F81FB27A5E001220C5 /* ROMMachine.hpp */,
4B38F3491F2EC12000D9235D /* AmstradCPC */,
4B2E2D961C3A06EC00138695 /* Atari2600 */,
4B4DC81D1D2C2425003C5BF8 /* Commodore */,
4B2E2D9E1C3A070900138695 /* Electron */,
4B79A4FC1FC8FF9800EEDAD5 /* MSX */,
4BCF1FA51DADC3E10039D2E7 /* Oric */,
4B2B3A461F9B8FA70062DABF /* Utility */,
4B1497931EE4B5AC00CE2596 /* ZX8081 */,
@ -3131,6 +3145,7 @@
4B055AAA1FAE85F50060FFFF /* CPM.cpp in Sources */,
4B055A9A1FAE85CB0060FFFF /* MFMDiskController.cpp in Sources */,
4B055ACB1FAE9AFB0060FFFF /* SerialBus.cpp in Sources */,
4B79A4FD1FC9000C00EEDAD5 /* MSX.cpp in Sources */,
4B055AA41FAE85E50060FFFF /* DigitalPhaseLockedLoop.cpp in Sources */,
4B055AE61FAE9B6F0060FFFF /* OutputShader.cpp in Sources */,
4B055A9B1FAE85DA0060FFFF /* AcornADF.cpp in Sources */,
@ -3367,6 +3382,7 @@
4BFE7B871FC39BF100160B38 /* StandardOptions.cpp in Sources */,
4B5FADC01DE3BF2B00AEC565 /* Microdisc.cpp in Sources */,
4B54C0C81F8D91E50050900F /* Keyboard.cpp in Sources */,
4B79A4FB1FC8FF9400EEDAD5 /* MSX.cpp in Sources */,
4BEE0A701D72496600532C7B /* PRG.cpp in Sources */,
4B8334861F5DA3780097E338 /* 6502Storage.cpp in Sources */,
4B8FE2271DA1DE2D0090D3CE /* NSBundle+DataResource.m in Sources */,

BIN
ROMImages/MSX/basic.rom Normal file

Binary file not shown.

225
ROMImages/MSX/cbios.txt Normal file
View File

@ -0,0 +1,225 @@
C-BIOS 0.28
===========
This software is a substitute BIOS which is can be used for running MSX
emulators. It currently supports only execution of cartridge image ("ROMs").
Before you use it, you should read and accept the license (see below).
On the C-BIOS web site, you can download newer versions, download the source
code, and report bugs.
http://cbios.sourceforge.net/
License
-------
Copyright (c) 2002-2005 BouKiCHi. All rights reserved.
Copyright (c) 2003 Reikan. All rights reserved.
Copyright (c) 2004-2006,2008-2010 Maarten ter Huurne. All rights reserved.
Copyright (c) 2004-2006,2008-2011 Albert Beevendorp. All rights reserved.
Copyright (c) 2004-2005 Patrick van Arkel. All rights reserved.
Copyright (c) 2004,2010-2011 Manuel Bilderbeek. All rights reserved.
Copyright (c) 2004-2006 Joost Yervante Damad. All rights reserved.
Copyright (c) 2004-2006 Jussi Pitkänen. All rights reserved.
Copyright (c) 2004-2007 Eric Boon. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
History
-------
ver 0.01 Initial
ver 0.02 2002-08-15(JST)
* Added original font and drawing screen.
* Added dump-mode.
* Changed recognition method of cartridges
to recognize cartridges taking priority.
ver 0.03 2002-08-19(JST)
* Based on a suggestion from Ms.Okei,
wrote 20h of BIOS(compare HL and DE).
In the result, shooting game of a certain company became runnable
more correctly.
Thank Ms.Okei!!
ver 0.04 2002-08-20(JST)
* Added initialize of FCC2h-FCC4h.
* Added function of GTSTCK and GTTRIG temporarily.
* Divided msxb.bin to halfs.
doing combining/copying with setb.bat now.
ver 0.05 2002-08-27(JST)
* Added INITGRP(only screen2), CHGMOD(graphic mode change routine),
a routine calls H.STKE.
* Rewrite memory recognition routine.
* Some bug fixes.
* Added sound test function.
ver 0.06 2002-09-01(JST)
* Fixed around of color.
ver 0.07 2002-09-09(JST)
* Added some sorts of keyboard routines.
* Added joystich function to GTSTCK and GTTRIG.
ver 0.08 2002-09-12(JST)
* Restructured memory initialize routine.
* Added error display routine.
* Fixed routine of finding kinds of cartridges.
* Fixed using method of EXPTBL.
* Added initialize of from RG8SAV to RG23SA.
* Now return within disabled interrupt from ENASLT routine.
ver 0.09 2002-09-19(JST)
* Made the rest half of font.
* Improved key input routine.
* Added CHPUT. With it, rewrote display routine.
* Fixed init_grp.
* Changed filenames to CBIOS.ROM, CBIOS_SUB.ROM.
ver 0.10 2002-09-20(JST)
* Fixed indent.
* and so on...
ver 0.10a 2002-09-22(JST)
* Fixed license.
* Added support of ROMs in page3.
ver 0.11 2002-09-22(JST)
* Small fix in init_sc5.
ver 0.12beta
2002-09-25(JST)
* Added test routine for disk access. need DISK.ROM.
* Added init_sc7.
* Improved ENASLT. now finding cartridge uses ENASLT.
* Improved RAM detection.
ver 0.12 2002-09-27(JST)
* Changed finding cartridge again.
* Changed screen mode of cartridge running time.
* Fixed keyboard routine.
* Fixed stick routine against to interrupt.
ver 0.13 2002-10-02(JST)
* Based on info from Mr.Maarten (a member of openMSX developers),
fixed around of SCREEN 5.
For detail, switching line numbers,
temporary treatment for a bug of reading from VDP status register,
and so on.
ver 0.14 2002-10-10(JST)
* Rewrote comments in source within Japanese.
ver 0.15 2003-02-26(JST)
* Rewrote some of comments back to English again.
* Fixed non-assemblable condition becauseof lack of font file.
* Changed filename, some of label name, strings and so on.
ver 0.16 2003-04-16(JST)
* Separated sound test from source. (Disabled)
ver 0.16a 2003-06-01(JST)
* CHGMOD: When screen0/1, now load font to VRAM.
* CHPUT: Now support also screen1 not only screen0.
ver 0.16b 2003-08-10(JST)
* Added entry: INITXT, INIT32.
These were exist only as internal routine of CHGMOD.
* INITXT, INIT32: Fixed screen clear failure.
* CHPUT: Fixed scroll failure.
ver 0.17 2003-08-10(JST)
* Changed LICENSE.
New LICENSE will be suitable in various situations.
e.g. use as a firmware for hand-made hardware.
ver 0.18 2004-12-18(CET)
* First release since moving to SourceForge.
* Much improved support for MSX2 games.
* Graphical boot logo.
* Included machine config files for several MSX emulators.
* Various bug fixes.
ver 0.19 2004-12-24(CET)
* Added support for SCREEN4 and SCREEN8.
* Added support for clock chip.
* Added support for palette. This fixes a lot of wrong colours.
* Stubbed many calls: non-implemented calls print their name on the
openMSX debugdevice (if present).
* Various bug fixes.
ver 0.20 2005-02-09(CET)
* Added an MSX2+ configuration, which includes V9958 and MSX MUSIC.
* Separate main ROMs for MSX1/MSX2/MSX2+.
* Implemented several MSX2 specific routines, including BLT*.
* Display is disabled when switching to a different screen mode.
* Improved CHPUT a lot; implemented control and escape codes.
* Rewrote key buffering; fixes bug of keys being repeated.
* New boot logo, even cooler than the previous one.
* New font, placed at a fixed address so all games can find it.
* Started work on a disk ROM, but it is not functional yet, so it
is not enabled in the configurations.
* Stubbed all non-implemented calls.
* Various bug fixes.
ver 0.21 2005-06-07(CET)
* Fixed RuMSX configuration files, thanks to Rudolf Lechleitner.
* Rewrote ROM search code; now all ROMs are recognized.
Also a clear error message is printed for BASIC ROMs.
* New boot logo for MSX2 and MSX2+.
* Changed boot sequence:
Show logo, switch to SCREEN 1 and search for ROMs.
* Improved video code; fixes several games.
* Various bug fixes.
ver 0.22 2008-12-27(CET)
* Use separate logo ROM to save space in the main ROM.
* Set lower bits of PSG reg 15 before reading joystick trigger status.
* Improved RAM search.
* Many new routines implemented and existing implementations made
more complete, especially character I/O and bitmap graphics.
* Added lots of documentation to system variables.
* Added support for GNU assembler.
* Various bug fixes.
ver 0.23 2009-01-04(CET)
* Updated blueMSX configuration files, thanks to Benoît Delvaux.
* Fixed version reported by MSX1 logo ROM.
* Fixed several video routines so they work on MSX1 VDPs (TMS99xx).
* A couple of other bug fixes.
ver 0.24 2010-05-24(CET)
* VRAM size is now properly checked, fixing R-Type's V9938 detection.
* C-BIOS doesn't lie anymore about the interrupt frequency.
* Don't di; halt when no ROM is found, the warning in openMSX may be
confusing
* A few minor bug fixes and tweaks.
ver 0.25 2011-02-01(CET)
* C-BIOS now offers localized versions in the flavours INT (default),
JP and BR.
* Bug fixes for compatibility with Mirai, Family Billiards.
* A couple of other bug fixes.
* This version only compiles with Pasmo 0.5.3, due to lack of
standards in assembler directives...
ver 0.26 2014-11-02(CET)
* Restored support to compile with tniASM (v1.0 Beta 17 or higher)
* Moved to git, which means a.o.: archived changelog.txt, use git log
from now on
* Fixed VDP VRAM access timing for MSX1 VDP's
* Update openMSX configurations to the new structure
* Fixed bug blueMSX configurations
* Fixed build on Mac OS X and add support for "make dist"
ver 0.27 2014-11-05(CET)
* Fixed bug (regression) in filvrm on non-MSX1-VDP's
* Fixed some small bugs in openMSX configs
* Fixed line endings of this file
ver 0.28 2017-07-30(CEST)
* Fixed bug that prevented brackets and a few other keys from
generating characters when pressed
Special Thanks
--------------
People uploading MSX information to the internet.
People developing any kind of emulators.
All users.
Font edit tool:
Gameboy Tile Designer version 2.2
Copyright H. Mulder 1999

BIN
ROMImages/MSX/disk.rom Normal file

Binary file not shown.

BIN
ROMImages/MSX/main_msx1.rom Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

7
ROMImages/MSX/readme.txt Normal file
View File

@ -0,0 +1,7 @@
ROMs for the MSX go here. Those included here are BouKiCHis C-BIOS open source reimplementation — see cbios.txt for authorship and licence information. ROMs for a specific MSX may be supplied instead if the user desires.
Expected files:
basic.rom
disk.rom
main_msx1.rom