COLECO MSX ADAPTERその1

MSXでCOLECOVISIONを遊びたくてCOLECO MSX ADAPTERを設計してみました。

http://www.komkon.org/~dekogel/mission.html

メモリ構成は以下になります。

RAM&ROM CARTRIDGE
SLOT1 RAM(0000-7FFF)
SLOT1 ROM(8000-BFFF)
COLECO MSX ADAPTER
SLOT2 CART(8000-FFFF)

SLOT1 ROMに必要なファイルは以下になります。COLECO LoaderはCOLECO.ROMにパッチを当てて、LOADER.BINの1000-2FFFを置き換えてください

http://www.geocities.jp/parallel_computer_inc/COLECO.ZIP

LOADER.BIN
COLECO.BIN(8000-8FFF)<- Made by COLECO.ASM
COLECO.ROM(9000-AFFF)<- Patched by MISSION
MISSION.ROM(B000-BFFF)<- Patched by MISSION

ブートシーケンスは以下になります。

SLOT1のCOLECO.BIN(8000-8FFF)が起動する
SLOT1のRAM(0000-7FFF)を有効化する SLOT1のCOLECO.ROM/MISSION.ROM(9000-BFFF)をSLOT1のRAM(0000-2FFF)にコピーする SLOT1のCOLECO.BIN自身をSLOT1のRAM(7000-7FFF)にコピーして実行する
SLOT2のCART(8000-FFFF)を有効化する COLECO.ROM(0000-1FFF)を実行する

COLECO.ASM

; COLECOVISION ROM Loader for
; MSX + COLECO MSX ADAPTER + RAM & ROM CARTRIDGE
;              Version 0.02 by tanam1972
;              Original     by Marcel de Kogel
;
; Assembled with Absolute assembler for i8080/i8085
;
;

	org	8000h
HEADER:
	db	"AB"
	db	04h
	db	80h
MAIN:
	mvi	b,4
	mvi	a,09Fh
Volume0:
	out	03Fh		; Set the
	adi	020h		; volume of SN76489AN
	dcr	b
	jnz	Volume0		; to zero

ExeRoutine:
	di
	in	0A8h
	mvi	d,0A5h
	lxi	h,0E001h
	mov	m,d
	mvi	d,015h
	lxi	h,0E000h
	mov	m,d
;	bit	4,A
	db	0cbh,067h
	jnz	SLOT1
	mvi	d,05Ah
	lxi	h,0E001h
	mov	m,d
	mvi	d,02Ah
	lxi	h,0E000h
	mov	m,d
SLOT1:
	ani	0C0h
	ora	m
	out	0A8h
	lxi	h,08200h
	lxi	d,07000h
	lxi	b,00100h
;	ldir
	db	0edh,0b0h
	lxi	h,09000h
	lxi	d,00000h
	lxi	b,03000h
;	ldir
	db	0edh,0b0h
	jmp	07000h

	org	08200h
	in	0A8h
	ani	00Fh
	lxi	h,0E001h
	ora	m
	out	0A8h
	rst	0		; Execute COLECO ROM
	end