/*************************************************************************** VAX-11 VAX-11/785 ------- M7459 TRS, TERMINATOR & SILO M7460 KA785, SBL,CUP SBI LOW BITS M7461 KA785, SBH,SBI M7462 KA785, CAM, CACHE ADDRESS MATRIX M7463 KA785, CDM, CACHE DATA MATRIX M7464 KA785, TBM, CPU TRANSLATION BUFFER M7465 KA785, IDP, CPU INSTRUCTION DATA M7466 KA785, IRC, CPU INSTRUCTION DECODE M7467 KA785, DPB, CPU DATA PATH B M7468 KA785, DEP, CPU DATA PATH E M7469 KA785, DDP, CPU DATA PATH D M7470 KA785, DCP, CPU DATA PATH C M7471 KA785, DAP, CPU DATA PATH A M7472 KA785, CEW (CONDITION CODES, EXCEP M7473 KA785, ICL (INTERRUPT CONTROL, LOW M7474 KA785, CLK (CPU CLOCK) M7475 KA785, JCS, JOINT CONTROL STORE M7476 KA785, USC, MICRO SEQUENCER CONTROL M7477 KA785, CIB, CPU CONSOLE INTERFACE +----------FP785--------+ 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 M7459 M7460 M7461 M7462 M7463 M7464 M7465 M7466 M7467 M7468 M7469 M7470 M7471 M7472 M7473 M7474 M7475 M7475 UNUSED M7476 M7540 M7541 M7542 M7543 M7544 M7477 TRS SBL SBH CAM CDM TBM IDP IRC DBP DEP DDP DCP DAP CEH ICL CLK JCS JCS USC FNM FMH FML FAD FCT CIB VAX-11/780 ------- M8237 TERMINATOR SILO M8218 SBL LOW BIT INTERFACE M8219 SBH HIGH BITS INTERFACE M8220 CAM CPU CACHE ADAPTER MATRIX M8221 CDM CPU CACHE DATA MATRIX M8222 TBM CPU TRANSLATION BUFFER MATRIX M8223 IRC CPU INSTRUCT DECODE&CLOCKS M8224 IDP CPU INSTRUCTION DATA PATH M8225 DBP DATA PATH B M8226 DEP DATA PATH E M8227 DDP DATA PATH D M8228 DCP DATA PATH C M8229 DAP DATA PATH A M8230 CEH CPU CONDITION CODE M8231 ICL CPU TRAPS AND INTERRUPT CONTROL M8232 CLK CPU CLOCK M8238 WCS KU780-A 2K WCS M8234 PCS KA780-A PCS, PROM CONTROL STORE M8235 USC MICRO SEQUENCE CONTROL M8236 CIB CONSOLE INTERFACE +----------FP780--------+ 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 M8237 M8218 M8219 M8220 M8221 M8222 M8223 M8224 M8225 M8226 M8227 M8228 M8229 M8230 M8231 M8232 M8233 M8233 M8234 M8235 M8285 M8286 M8287 M8288 M8289 M8236 TRS SBL SBH CAM CDM TBM IDP IRC DBP DEP DDP DCP DAP CEH ICL CLK or or PCS USC FNM FMH FML FAD FCT CIB M8238 M8238 02/08/2012 Skeleton driver. ****************************************************************************/ #include "emu.h" #include "cpu/t11/t11.h" #include "machine/terminal.h" #include "machine/rx01.h" #define TERMINAL_TAG "terminal" class vax11_state : public driver_device { public: vax11_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_terminal(*this, TERMINAL_TAG) { } required_device m_maincpu; required_device m_terminal; DECLARE_READ16_MEMBER( term_r ); DECLARE_READ16_MEMBER( term_tx_status_r ); DECLARE_READ16_MEMBER( term_rx_status_r ); DECLARE_WRITE16_MEMBER( term_w ); DECLARE_WRITE8_MEMBER( kbd_put ); UINT8 m_term_data; UINT16 m_term_status; }; WRITE16_MEMBER(vax11_state::term_w) { m_terminal->write(space, 0, data); } READ16_MEMBER(vax11_state::term_r) { m_term_status = 0x0000; return m_term_data; } READ16_MEMBER(vax11_state::term_tx_status_r) { // always ready return 0xffff; } READ16_MEMBER(vax11_state::term_rx_status_r) { return m_term_status; } static ADDRESS_MAP_START(vax11_mem, AS_PROGRAM, 16, vax11_state) ADDRESS_MAP_UNMAP_HIGH AM_RANGE( 0x0000, 0xbfff ) AM_RAM // RAM AM_RANGE( 0xc000, 0xd7ff ) AM_ROM AM_RANGE( 0xfe78, 0xfe7b ) AM_DEVREADWRITE("rx01", rx01_device, read, write) AM_RANGE( 0xff70, 0xff71 ) AM_READ(term_rx_status_r) AM_RANGE( 0xff72, 0xff73 ) AM_READ(term_r) AM_RANGE( 0xff74, 0xff75 ) AM_READ(term_tx_status_r) AM_RANGE( 0xff76, 0xff77 ) AM_WRITE(term_w) ADDRESS_MAP_END /* Input ports */ static INPUT_PORTS_START( vax11 ) INPUT_PORTS_END WRITE8_MEMBER( vax11_state::kbd_put ) { m_term_data = data; m_term_status = 0xffff; } static MACHINE_CONFIG_START( vax11, vax11_state ) /* basic machine hardware */ MCFG_CPU_ADD("maincpu",T11, XTAL_4MHz) // Need proper CPU here MCFG_T11_INITIAL_MODE(0 << 13) MCFG_CPU_PROGRAM_MAP(vax11_mem) /* video hardware */ MCFG_DEVICE_ADD(TERMINAL_TAG, GENERIC_TERMINAL, 0) MCFG_GENERIC_TERMINAL_KEYBOARD_CB(WRITE8(vax11_state, kbd_put)) MCFG_RX01_ADD("rx01") MACHINE_CONFIG_END ROM_START( vax785 ) ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF ) // M7477 ROMX_LOAD( "23-144f1-00.e56", 0xc000, 0x0400, CRC(99c1f117) SHA1(f05b6e97bf258392656058864abc1177379194da), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1)) ROMX_LOAD( "23-145f1-00.e68", 0xc000, 0x0400, CRC(098b63d2) SHA1(c2742aaccdac2921e1704c835ee5cef242cd7308), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1)) ROMX_LOAD( "23-146f1-00.e84", 0xc001, 0x0400, CRC(0f5f5d7b) SHA1(2fe325d2a78a8ce5146317cc39c084c4967c323c), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1)) ROMX_LOAD( "23-147f1-00.e72", 0xc001, 0x0400, CRC(bde386f2) SHA1(fcb5a1fa505912c5f44781619c9508cd142721e3), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1)) ROMX_LOAD( "23-148f1-00.e58", 0xc800, 0x0400, CRC(fe4c61e3) SHA1(4641a236761692a8f45b14ed6a73f535d57c2daa), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1)) ROMX_LOAD( "23-149f1-00.e70", 0xc800, 0x0400, CRC(a13f5f8a) SHA1(6a9d3b5a71a3249f3b9491d541c9854e071a320c), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1)) ROMX_LOAD( "23-150f1-00.e87", 0xc801, 0x0400, CRC(ca8d6419) SHA1(6d9c3e1e2f5a35f92c82240fcede14645aa83340), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1)) ROMX_LOAD( "23-151f1-00.e74", 0xc801, 0x0400, CRC(58ce48d3) SHA1(230dbcab1470752befb6733a89e3612ad7fba10d), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1)) ROMX_LOAD( "23-236f1-00.e57", 0xd000, 0x0400, CRC(6f23470a) SHA1(d90a0bc56f04c2830f8cfb6b870db207b96e75b1), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1)) ROMX_LOAD( "23-237f1-00.e69", 0xd000, 0x0400, CRC(2bf8cf0b) SHA1(6db79c5392b265e38b5b8b386528d7c138d995e9), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1)) ROMX_LOAD( "23-238f1-00.e85", 0xd001, 0x0400, CRC(ff569f71) SHA1(05985396047fb4639959000a1abe50d2f184deaa), ROM_NIBBLE | ROM_SHIFT_NIBBLE_LO | ROM_SKIP(1)) ROMX_LOAD( "23-239f1-00.e73", 0xd001, 0x0400, CRC(cec7abe3) SHA1(8b8b52bd46340c58efa5adef3f306e0cdcb77520), ROM_NIBBLE | ROM_SHIFT_NIBBLE_HI | ROM_SKIP(1)) ROM_END /* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */ COMP( 1984, vax785, 0, 0, vax11, vax11, driver_device, 0, "Digital Equipment Corporation", "VAX-11/785", GAME_NOT_WORKING | GAME_NO_SOUND)