mirror of
https://github.com/holub/mame
synced 2025-04-23 08:49:55 +03:00
Merge pull request #3477 from shattered/_4282dc6
hp_ipc: add diagnostic ROMs; model 9808A (prototype of desktop version)
This commit is contained in:
commit
0bcbd63021
@ -146,9 +146,8 @@
|
||||
} while (0)
|
||||
|
||||
|
||||
#define HPGPU_VRAM_SIZE 16384 // *4 // experiment
|
||||
#define HPGPU_HORZ_TOTAL 512
|
||||
#define HPGPU_VERT_TOTAL 256
|
||||
// enough for 9807a and 9808a both.
|
||||
#define HPGPU_VRAM_SIZE (16384 * 4)
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
@ -180,6 +179,8 @@ hp1ll3_device::hp1ll3_device(const machine_config &mconfig, const char *tag, dev
|
||||
|
||||
void hp1ll3_device::device_start()
|
||||
{
|
||||
const rectangle &visarea = screen().visible_area();
|
||||
|
||||
// register for state saving
|
||||
save_item(NAME(m_conf));
|
||||
|
||||
@ -189,6 +190,9 @@ void hp1ll3_device::device_start()
|
||||
m_sprite.allocate(16, 16);
|
||||
|
||||
m_videoram = std::make_unique<uint16_t[]>(HPGPU_VRAM_SIZE*2); // x2 size to make WRWIN/RDWIN easier
|
||||
|
||||
m_horiz_pix_total = visarea.max_x + 1;
|
||||
m_vert_pix_total = visarea.max_y + 1;
|
||||
}
|
||||
|
||||
void hp1ll3_device::device_reset()
|
||||
@ -203,7 +207,7 @@ inline void hp1ll3_device::point(int x, int y, int px)
|
||||
{
|
||||
uint16_t offset = m_sad;
|
||||
|
||||
offset += y*(HPGPU_HORZ_TOTAL/16) + (x >> 4);
|
||||
offset += y*(m_horiz_pix_total/16) + (x >> 4);
|
||||
|
||||
if (px)
|
||||
m_videoram[offset] |= (1 << (15-(x%16)));
|
||||
@ -331,9 +335,9 @@ void hp1ll3_device::fill(int org_x, int org_y, int w, int h, int arg)
|
||||
if (m_rr == RR_COPYINVERTED) gfx ^= 0xffff;
|
||||
for (int x = org_x; x < max_x;) {
|
||||
mask = 0xffff;
|
||||
offset = m_sad + m_org + y * (HPGPU_HORZ_TOTAL/16) + (x >> 4);
|
||||
offset = m_sad + m_org + y * (m_horiz_pix_total/16) + (x >> 4);
|
||||
|
||||
if (offset >= m_sad + (HPGPU_VERT_TOTAL * HPGPU_HORZ_TOTAL/WS))
|
||||
if (offset >= m_sad + (m_vert_pix_total * m_horiz_pix_total/WS))
|
||||
DBG_LOG(0,"HPGPU",("buffer overflow in FILL: %04x (%d, %d)\n", offset, 16*x, y));
|
||||
|
||||
// clipping
|
||||
@ -362,19 +366,19 @@ void hp1ll3_device::bitblt(int dstx, int dsty, uint16_t srcaddr, int width, int
|
||||
int max_x, max_y;
|
||||
|
||||
max_x = dstx + width;
|
||||
if (max_x >= HPGPU_HORZ_TOTAL)
|
||||
max_x = HPGPU_HORZ_TOTAL;
|
||||
if (max_x >= m_horiz_pix_total)
|
||||
max_x = m_horiz_pix_total;
|
||||
|
||||
max_y = dsty + height;
|
||||
if (max_y >= HPGPU_VERT_TOTAL)
|
||||
max_y = HPGPU_VERT_TOTAL;
|
||||
if (max_y >= m_vert_pix_total)
|
||||
max_y = m_vert_pix_total;
|
||||
|
||||
for (int y = dsty; y < max_y; y++) {
|
||||
mask = 0xffff;
|
||||
gfx = m_videoram[srcaddr + y - dsty] & mask;
|
||||
offset = m_sad + y * (HPGPU_HORZ_TOTAL/16) + (dstx >> 4);
|
||||
offset = m_sad + y * (m_horiz_pix_total/16) + (dstx >> 4);
|
||||
|
||||
if (offset >= m_sad + (HPGPU_VERT_TOTAL * HPGPU_HORZ_TOTAL/16))
|
||||
if (offset >= m_sad + (m_vert_pix_total * m_horiz_pix_total/16))
|
||||
DBG_LOG(0,"HPGPU",("buffer overflow in bitblt: %04x (%d, %d)\n", offset, 16*dstx, y));
|
||||
|
||||
// are we crossing word boundary?
|
||||
@ -408,10 +412,10 @@ void hp1ll3_device::label(uint8_t chr, int width)
|
||||
|
||||
for (int y = 0; y < max_y; y++) {
|
||||
x = m_cursor_x;
|
||||
offset = m_sad + (m_cursor_y + y) * (HPGPU_HORZ_TOTAL/16) + (x >> 4);
|
||||
offset = m_sad + (m_cursor_y + y) * (m_horiz_pix_total/16) + (x >> 4);
|
||||
gfx = m_videoram[font + y] >> (16 - width);
|
||||
|
||||
if (offset >= m_sad + (HPGPU_VERT_TOTAL * HPGPU_HORZ_TOTAL/16))
|
||||
if (offset >= m_sad + (m_vert_pix_total * m_horiz_pix_total/16))
|
||||
DBG_LOG(0,"HPGPU",("buffer overflow in LABEL: %04x (%d, %d)\n", offset, 16*x, y));
|
||||
|
||||
// are we crossing word boundary?
|
||||
@ -452,11 +456,11 @@ uint32_t hp1ll3_device::screen_update(screen_device &screen, bitmap_ind16 &bitma
|
||||
}
|
||||
|
||||
// XXX last line is not actually drawn on real hw
|
||||
for (y = 0; y < HPGPU_VERT_TOTAL-1; y++) {
|
||||
offset = m_sad + y*(HPGPU_HORZ_TOTAL/16);
|
||||
for (y = 0; y < m_vert_pix_total-1; y++) {
|
||||
offset = m_sad + y*(m_horiz_pix_total/16);
|
||||
p = &m_bitmap.pix16(y);
|
||||
|
||||
for (x = offset; x < offset + HPGPU_HORZ_TOTAL/16; x++)
|
||||
for (x = offset; x < offset + m_horiz_pix_total/16; x++)
|
||||
{
|
||||
gfx = m_videoram[x];
|
||||
|
||||
@ -524,7 +528,20 @@ READ8_MEMBER( hp1ll3_device::read )
|
||||
m_memory_ptr++;
|
||||
}
|
||||
break;
|
||||
|
||||
/*
|
||||
* 'diagb' ROM accepts either of these ID values
|
||||
* 0x3003, 0x4004, 0x5005, 0x6006
|
||||
*/
|
||||
case ID:
|
||||
data = 0x40;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if (m_command == ID) data = 0x04;
|
||||
break;
|
||||
}
|
||||
|
||||
DBG_LOG(1,"HPGPU", ("R @ %d == %02x\n", offset, data));
|
||||
@ -548,6 +565,7 @@ WRITE8_MEMBER( hp1ll3_device::write )
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 3:
|
||||
switch (m_command)
|
||||
{
|
||||
case CONF:
|
||||
@ -685,6 +703,9 @@ void hp1ll3_device::command(int command)
|
||||
case WRFAD:
|
||||
DBG_LOG(2,"HPGPU",("command: WRFAD [%d, 0x%x] (0x%04x)\n", command, command, m_input[0]));
|
||||
m_fad = m_input[0];
|
||||
|
||||
// ?? used by diagnostic ROM
|
||||
case 6:
|
||||
m_fontheight = m_videoram[m_fad];
|
||||
m_fontdata = m_fad + m_videoram[m_fad + 1] + 2;
|
||||
DBG_LOG(1,"HPGPU",("font data set: FAD %04X header %d bitmaps %04X height %d\n",
|
||||
@ -761,6 +782,18 @@ void hp1ll3_device::command(int command)
|
||||
if (m_enable_sprite) bitblt(m_sprite_x, m_sprite_y, m_dad + 16, 16, 16, RR_XOR);
|
||||
m_cursor_x = m_input[0];
|
||||
m_cursor_y = m_input[1];
|
||||
m_saved_x = m_cursor_x;
|
||||
if (m_enable_cursor) bitblt(m_cursor_x, m_cursor_y, m_dad, 16, 16, RR_XOR);
|
||||
if (m_enable_sprite) bitblt(m_sprite_x, m_sprite_y, m_dad + 16, 16, 16, RR_XOR);
|
||||
break;
|
||||
|
||||
// carriage return, line feed
|
||||
case CRLFx:
|
||||
DBG_LOG(2,"HPGPU",("command: CRLF [%d, 0x%x] (%d, %d)\n", command, command, m_input[0], m_input[1]));
|
||||
if (m_enable_cursor) bitblt(m_cursor_x, m_cursor_y, m_dad, 16, 16, RR_XOR);
|
||||
if (m_enable_sprite) bitblt(m_sprite_x, m_sprite_y, m_dad + 16, 16, 16, RR_XOR);
|
||||
m_cursor_x = m_saved_x;
|
||||
m_cursor_y += m_fontheight;
|
||||
if (m_enable_cursor) bitblt(m_cursor_x, m_cursor_y, m_dad, 16, 16, RR_XOR);
|
||||
if (m_enable_sprite) bitblt(m_sprite_x, m_sprite_y, m_dad + 16, 16, 16, RR_XOR);
|
||||
break;
|
||||
|
@ -53,7 +53,7 @@ private:
|
||||
|
||||
uint16_t m_conf[11], m_input[2];
|
||||
int m_input_ptr, m_memory_ptr, m_conf_ptr;
|
||||
int m_command;
|
||||
int m_command, m_horiz_pix_total, m_vert_pix_total;
|
||||
|
||||
uint16_t m_sad;
|
||||
uint16_t m_org;
|
||||
@ -63,7 +63,7 @@ private:
|
||||
uint16_t m_udl;
|
||||
|
||||
bool m_enable_video, m_enable_cursor, m_enable_sprite;
|
||||
uint16_t m_cursor_x, m_cursor_y;
|
||||
uint16_t m_cursor_x, m_cursor_y, m_saved_x;
|
||||
uint16_t m_sprite_x, m_sprite_y;
|
||||
struct {
|
||||
uint16_t width, height, org_x, org_y, width_w;
|
||||
|
@ -415,9 +415,16 @@ public:
|
||||
|
||||
emu_timer *m_bus_error_timer;
|
||||
|
||||
void hp_ipc_base(machine_config &config);
|
||||
void hp_ipc(machine_config &config);
|
||||
void hp_ipc_mem_inner(address_map &map);
|
||||
|
||||
void hp_ipc_mem_inner_base(address_map &map);
|
||||
void hp_ipc_mem_inner_9807a(address_map &map);
|
||||
void hp_ipc_mem_outer(address_map &map);
|
||||
|
||||
void hp9808a(machine_config &config);
|
||||
void hp_ipc_mem_inner_9808a(address_map &map);
|
||||
|
||||
private:
|
||||
required_device<m68000_device> m_maincpu;
|
||||
required_device<address_map_bank_device> m_bankdev;
|
||||
@ -469,7 +476,7 @@ void hp_ipc_state::hp_ipc_mem_outer(address_map &map)
|
||||
map(0x000000, 0xFFFFFF).rw(this, FUNC(hp_ipc_state::mem_r), FUNC(hp_ipc_state::mem_w));
|
||||
}
|
||||
|
||||
void hp_ipc_state::hp_ipc_mem_inner(address_map &map)
|
||||
void hp_ipc_state::hp_ipc_mem_inner_base(address_map &map)
|
||||
{
|
||||
// bus error handler
|
||||
map(0x0000000, 0x1FFFFFF).rw(this, FUNC(hp_ipc_state::trap_r), FUNC(hp_ipc_state::trap_w));
|
||||
@ -477,6 +484,7 @@ void hp_ipc_state::hp_ipc_mem_inner(address_map &map)
|
||||
// user mode
|
||||
map(0x1000000, 0x17FFFFF).rw(this, FUNC(hp_ipc_state::ram_r), FUNC(hp_ipc_state::ram_w));
|
||||
map(0x1800000, 0x187FFFF).rom().region("maincpu", 0);
|
||||
map(0x1E00000, 0x1E0FFFF).rw(this, FUNC(hp_ipc_state::mmu_r), FUNC(hp_ipc_state::mmu_w));
|
||||
map(0x1E20000, 0x1E2000F).rw("gpu", FUNC(hp1ll3_device::read), FUNC(hp1ll3_device::write)).umask16(0x00ff);
|
||||
map(0x1E40000, 0x1E4002F).rw("rtc", FUNC(mm58167_device::read), FUNC(mm58167_device::write)).umask16(0x00ff);
|
||||
|
||||
@ -490,13 +498,22 @@ void hp_ipc_state::hp_ipc_mem_inner(address_map &map)
|
||||
map(0x0620000, 0x062000F).rw("gpu", FUNC(hp1ll3_device::read), FUNC(hp1ll3_device::write)).umask16(0x00ff);
|
||||
map(0x0630000, 0x063FFFF).noprw(); // AM_DEVREADWRITE8(TMS9914_TAG, tms9914_device, read, write, 0x00ff)
|
||||
map(0x0640000, 0x064002F).rw("rtc", FUNC(mm58167_device::read), FUNC(mm58167_device::write)).umask16(0x00ff);
|
||||
map(0x0650000, 0x065FFFF).noprw(); // HP-IL Printer (optional; ROM sets _desktop to 0 if not mapped) -- sys/lpint.h
|
||||
map(0x0660000, 0x06600FF).rw("mlc", FUNC(hp_hil_mlc_device::read), FUNC(hp_hil_mlc_device::write)).umask16(0x00ff); // 'caravan', scrn/caravan.h
|
||||
map(0x0670000, 0x067FFFF).noprw(); // Speaker (NatSemi COP 452)
|
||||
map(0x0680000, 0x068FFFF).noprw(); // 'SIMON (98628) fast HP-IB card' -- sys/simon.h
|
||||
map(0x0700000, 0x07FFFFF).unmaprw(); // External I/O
|
||||
map(0x0800000, 0x0FFFFFF).rw(this, FUNC(hp_ipc_state::ram_r), FUNC(hp_ipc_state::ram_w));
|
||||
}
|
||||
|
||||
void hp_ipc_state::hp_ipc_mem_inner_9807a(address_map &map)
|
||||
{
|
||||
hp_ipc_mem_inner_base(map);
|
||||
map(0x0650000, 0x065FFFF).noprw(); // HP-IL Printer (optional; ROM sets _desktop to 0 if not mapped) -- sys/lpint.h
|
||||
}
|
||||
|
||||
void hp_ipc_state::hp_ipc_mem_inner_9808a(address_map &map)
|
||||
{
|
||||
hp_ipc_mem_inner_base(map);
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START(hp_ipc)
|
||||
@ -687,7 +704,7 @@ void hp_ipc_state::machine_start()
|
||||
m_bankdev->set_bank(1);
|
||||
|
||||
m_lowest_ram_addr = 0x3c0000 - (m_ram->size() >> 1);
|
||||
m_internal_ram = (uint16_t *) m_ram->pointer();
|
||||
m_internal_ram = (uint16_t *)m_ram->pointer();
|
||||
}
|
||||
|
||||
void hp_ipc_state::machine_reset()
|
||||
@ -715,31 +732,10 @@ SLOT_INTERFACE_END
|
||||
* 2 HP-HIL devices (keyboard, mouse)
|
||||
* 1 Real-time clock
|
||||
*/
|
||||
MACHINE_CONFIG_START(hp_ipc_state::hp_ipc)
|
||||
MACHINE_CONFIG_START(hp_ipc_state::hp_ipc_base)
|
||||
MCFG_CPU_ADD("maincpu", M68000, XTAL(15'920'000) / 2)
|
||||
MCFG_CPU_PROGRAM_MAP(hp_ipc_mem_outer)
|
||||
|
||||
MCFG_DEVICE_ADD("bankdev", ADDRESS_MAP_BANK, 0)
|
||||
MCFG_DEVICE_PROGRAM_MAP(hp_ipc_mem_inner)
|
||||
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
|
||||
MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(25)
|
||||
MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(16)
|
||||
MCFG_ADDRESS_MAP_BANK_STRIDE(0x1000000)
|
||||
|
||||
// horizontal time = 60 us (min)
|
||||
// ver.refresh period = ~300 us
|
||||
// ver.period = 16.7ms (~60 hz)
|
||||
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::amber())
|
||||
MCFG_SCREEN_UPDATE_DEVICE("gpu", hp1ll3_device, screen_update)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(6'000'000) * 2, 720, 0, 512, 278, 0, 256)
|
||||
// when _desktop == 0:
|
||||
// MCFG_SCREEN_RAW_PARAMS(XTAL(6'000'000) * 2, 720, 0, 640, 480, 0, 400)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(DEVWRITELINE("mlc", hp_hil_mlc_device, ap_w)) // XXX actually it's driven by 555 (U59)
|
||||
MCFG_DEFAULT_LAYOUT(layout_lcd)
|
||||
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
|
||||
MCFG_HP1LL3_ADD("gpu")
|
||||
// MCFG_HP1LL3_IRQ_CALLBACK(WRITELINE(hp_ipc_state, irq_4))
|
||||
MCFG_VIDEO_SET_SCREEN("screen")
|
||||
@ -766,11 +762,76 @@ MACHINE_CONFIG_START(hp_ipc_state::hp_ipc)
|
||||
MCFG_RAM_EXTRA_OPTIONS("768K,1M,1576K,2M,3M,4M,5M,6M,7M,7680K")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(hp_ipc_state::hp_ipc)
|
||||
hp_ipc_base(config);
|
||||
|
||||
MCFG_DEVICE_ADD("bankdev", ADDRESS_MAP_BANK, 0)
|
||||
MCFG_DEVICE_PROGRAM_MAP(hp_ipc_mem_inner_9807a)
|
||||
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
|
||||
MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(25)
|
||||
MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(16)
|
||||
MCFG_ADDRESS_MAP_BANK_STRIDE(0x1000000)
|
||||
|
||||
// horizontal time = 60 us (min)
|
||||
// ver.refresh period = ~300 us
|
||||
// ver.period = 16.7ms (~60 hz)
|
||||
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::amber())
|
||||
MCFG_SCREEN_UPDATE_DEVICE("gpu", hp1ll3_device, screen_update)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(6'000'000) * 2, 720, 0, 512, 278, 0, 256)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(DEVWRITELINE("mlc", hp_hil_mlc_device, ap_w)) // XXX actually it's driven by 555 (U59)
|
||||
MCFG_DEFAULT_LAYOUT(layout_lcd)
|
||||
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
MACHINE_CONFIG_START(hp_ipc_state::hp9808a)
|
||||
hp_ipc_base(config);
|
||||
|
||||
MCFG_DEVICE_ADD("bankdev", ADDRESS_MAP_BANK, 0)
|
||||
MCFG_DEVICE_PROGRAM_MAP(hp_ipc_mem_inner_9808a)
|
||||
MCFG_ADDRESS_MAP_BANK_ENDIANNESS(ENDIANNESS_BIG)
|
||||
MCFG_ADDRESS_MAP_BANK_ADDR_WIDTH(25)
|
||||
MCFG_ADDRESS_MAP_BANK_DATA_WIDTH(16)
|
||||
MCFG_ADDRESS_MAP_BANK_STRIDE(0x1000000)
|
||||
|
||||
MCFG_SCREEN_ADD_MONOCHROME("screen", RASTER, rgb_t::amber())
|
||||
MCFG_SCREEN_UPDATE_DEVICE("gpu", hp1ll3_device, screen_update)
|
||||
MCFG_SCREEN_RAW_PARAMS(XTAL(6'000'000) * 2, 720, 0, 640, 480, 0, 400)
|
||||
MCFG_SCREEN_VBLANK_CALLBACK(DEVWRITELINE("mlc", hp_hil_mlc_device, ap_w))
|
||||
MCFG_DEFAULT_LAYOUT(layout_lcd)
|
||||
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
MCFG_PALETTE_ADD_MONOCHROME("palette")
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
||||
ROM_START(hp_ipc)
|
||||
ROM_REGION(0x100000, "maincpu" , 0)
|
||||
ROM_LOAD("hp ipc os 82991a.bin", 0x00000, 0x80000, BAD_DUMP CRC(df45a37b) SHA1(476af9923bca0d2d0f40aeb81be5145ca76fddf5)) // Should be spread across 4 x 128K ROMs
|
||||
ROM_REGION(0x80000, "maincpu", 0)
|
||||
ROM_DEFAULT_BIOS("v50")
|
||||
|
||||
ROM_SYSTEM_BIOS(0, "v10", "HP-UX 1.0")
|
||||
ROMX_LOAD("00095-60006.bin", 0x00000, 0x80000, NO_DUMP, ROM_BIOS(1))
|
||||
|
||||
ROM_SYSTEM_BIOS(1, "v50", "HP-UX 5.0")
|
||||
// Should be spread across 4 x 128K ROMs
|
||||
ROMX_LOAD("hp ipc os 82991a.bin", 0x00000, 0x80000, BAD_DUMP CRC(df45a37b) SHA1(476af9923bca0d2d0f40aeb81be5145ca76fddf5), ROM_BIOS(2))
|
||||
|
||||
ROM_SYSTEM_BIOS(2, "diaga", "Diag ROM A")
|
||||
ROMX_LOAD("boarda_u1.bin", 0x00001, 0x4000, CRC(f40e1434) SHA1(a4f633f3e0971ba3ff218c6d6f777b8253bade8c), ROM_BIOS(3)|ROM_SKIP(1))
|
||||
ROMX_LOAD("boarda_u2.bin", 0x00000, 0x4000, CRC(80f6eb08) SHA1(ea943f72d37b43b5ba06b8e6f11824601109497c), ROM_BIOS(3)|ROM_SKIP(1))
|
||||
ROMX_LOAD("boarda_u3.bin", 0x40001, 0x4000, CRC(0f2fd4d5) SHA1(9ed41fca947d58d7f4159336421601963e3cae17), ROM_BIOS(3)|ROM_SKIP(1))
|
||||
ROMX_LOAD("boarda_u4.bin", 0x40000, 0x4000, CRC(d6741772) SHA1(1574a52d6658f9a7beace6572bea11ee923fc1bf), ROM_BIOS(3)|ROM_SKIP(1))
|
||||
|
||||
ROM_SYSTEM_BIOS(3, "diagb", "Diag ROM B")
|
||||
ROMX_LOAD("boardb_u1.bin", 0x00001, 0x4000, CRC(597777d9) SHA1(24671499e4685f306b1b37a071adc0634f9f1e4e), ROM_BIOS(4)|ROM_SKIP(1))
|
||||
ROMX_LOAD("boardb_u2.bin", 0x00000, 0x4000, CRC(bc2ada19) SHA1(efebab335ca8a57e77b1076050e861a3a0eb09fc), ROM_BIOS(4)|ROM_SKIP(1))
|
||||
ROMX_LOAD("boardb_u3.bin", 0x40001, 0x2000, CRC(c227622a) SHA1(99747945dc6efaa45ce8d7d3c58830dbe46b651a), ROM_BIOS(4)|ROM_SKIP(1))
|
||||
ROMX_LOAD("boardb_u4.bin", 0x40000, 0x2000, CRC(d99efe90) SHA1(345437007f8d728ceafc5cd97414ef94ce38e363), ROM_BIOS(4)|ROM_SKIP(1))
|
||||
ROM_END
|
||||
|
||||
#define rom_hp9808a rom_hp_ipc
|
||||
|
||||
COMP(1985, hp_ipc, 0, 0, hp_ipc, hp_ipc, hp_ipc_state, 0, "HP", "Integral Personal Computer", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS)
|
||||
// YEAR NAME PARENT COMPAT MACHINE INPUT STATE INIT COMPANY FULLNAME FLAGS
|
||||
COMP( 1985, hp_ipc, 0, 0, hp_ipc, hp_ipc, hp_ipc_state, 0 , "Hewlett-Packard", "Integral Personal Computer 9807A", MACHINE_NO_SOUND | MACHINE_IMPERFECT_GRAPHICS)
|
||||
COMP( 1985, hp9808a, 0, 0, hp9808a, hp_ipc, hp_ipc_state, 0 , "Hewlett-Packard", "Integral Personal Computer 9808A", MACHINE_NOT_WORKING)
|
||||
|
@ -15110,6 +15110,7 @@ hotstuff //
|
||||
|
||||
@source:hp_ipc.cpp
|
||||
hp_ipc //
|
||||
hp9808a
|
||||
|
||||
@source:hp16500.cpp
|
||||
hp16500b //
|
||||
|
Loading…
Reference in New Issue
Block a user