summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/pc98_cbus/options.cpp
blob: 7acc953bf1fb16ca9675497a243ea2dab57c1d8e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
// license: BSD-3-Clause
// copyright-holders: Angelo Salese

#include "emu.h"
#include "options.h"

#include "amd98.h"
#include "fdd_2dd.h"
#include "fdd_2hd.h"
#include "lgy98.h"
#include "lha201.h"
#include "pc9801_02.h"
#include "pc9801_14.h"
#include "pc9801_26.h"
#include "pc9801_27.h"
#include "pc9801_55.h"
#include "pc9801_86.h"
#include "pc9801_118.h"
#include "pcfxga.h"
#include "mif201.h"
#include "mpu_pc98.h"
#include "sb16_ct2720.h"
#include "sound_orchestra.h"
#include "sound.h"
#include "speakboard.h"
#include "wavestar.h"

void pc98_cbus_devices(device_slot_interface &device)
{
	// sound cards
	// NEC
	device.option_add("pc9801_14",  PC9801_14);
	device.option_add("pc9801_26",  PC9801_26);
	device.option_add("pc9801_86",  PC9801_86);
	device.option_add("pc9801_118", PC9801_118);
	// System Sacom
	device.option_add("amd98",           AMD98);
	// Creative Labs
	device.option_add("sb16",            SB16_CT2720);
	// SNE
	device.option_add("sound_orchestra", SOUND_ORCHESTRA);
	// Idol Japan
	device.option_add("speakboard",      SPEAKBOARD);
//  device.option_add("sparkboard",      SPARKBOARD);
	// QVision
	device.option_add("wavestar",        QVISION_WAVESTAR);
	// doujinshi HW
	// MAD Factory / Doujin Hard (同人ハード)
	// MAD Factory Chibi-Oto: an ADPCM override for -86
	// MAD Factory Otomi-chan: "TORIE9211 MAD FACTORY" printed on proto PCB, just overrides for ADPCM for -86?
	device.option_add("otomichan_kai", OTOMICHAN_KAI);

	// MIDI
	device.option_add("mpu_pc98",   MPU_PC98);

	// File Bay
	// for first gen only
	device.option_add("fdd_2dd",    FDD_2DD_BRIDGE);
	device.option_add("fdd_2hd",    FDD_2HD_BRIDGE);
	// PC-9801-08 (2dd, external unit)
	// PC-9801-15 (8' unit)

	// SASI
	device.option_add("pc9801_27",  PC9801_27);

	// SCSI
	// NEC
//  device_option_add("pc9801_55",  PC9801_55);
	device.option_add("pc9801_55u", PC9801_55U);
	device.option_add("pc9801_55l", PC9801_55L);
//  device.option_add("pc9801_92",  PC9801_92);
	// Logitec
	device.option_add("lha201", LHA201);

	// Ethernet
	device.option_add("lgy98", LGY98);

	// Systems on card
	device.option_add("pcfxga", PCFXGA_CBUS);

	// internal sound options
	device.option_add_internal("sound_pc9821ce",  SOUND_PC9821CE);
	device.option_add_internal("sound_pc9821cx3", SOUND_PC9821CX3);
}

void pc98_cbus_ram_devices(device_slot_interface &device)
{
	device.option_add("128kb", PC9801_02_128KB);
	device.option_add("256kb", PC9801_02_256KB);
	device.option_add("384kb", PC9801_02_384KB);
	device.option_add("512kb", PC9801_02_512KB);
	device.option_add("640kb", PC9801_02_640KB);
}

// TODO: add just a subset for now, all needs to be verified if compatible with this C-Bus variant.
void pc88va_cbus_devices(device_slot_interface &device)
{
	device.option_add("pc9801_27",  PC9801_27);
//  device.option_add("pc9801_55u", PC9801_55U);
//  device.option_add("pc9801_55l", PC9801_55L);
	device.option_add("mif_201",    MIF201);
	device.option_add("mpu_pc98",   MPU_PC98);
}

// https://man.openbsd.org/cbus.4
// Add the known options only for now
void luna88k2_cbus_devices(device_slot_interface &device)
{
	// testable thru diagnostic
	// a 4MB EMS board (I/O Data PIO-9X34P-2M/4M? Pokes port $e8 bit 7 in-between A20 gate enabling)
	// PC9861K serial (access port $00b0, unless that's a red herring and is related to above)

	// Allied Telesis CentreCOM LA-98
	device.option_add("pc9801_86",  PC9801_86);
	// PCMCIA options
	// I/O Data RSA-98 & RSA-98III/S
	// https://gist.github.com/ao-kenji/6cef238e2b327585225e80ac563af0cf
}