Previous 199869 Revisions Next

r31427 Saturday 26th July, 2014 at 01:44:14 UTC by hap
TMS70C46 dockbus stub
[src/emu/cpu/tms7000]tms7000.c tms7000.h
[src/mess/drivers]ti74.c

trunk/src/emu/cpu/tms7000/tms7000.c
r31426r31427
2323 *  - memory modes with IOCNT0, currently always running in full expansion mode
2424 *  - timer event counter mode (timer control register, bit 6)
2525 *  - TMS70x1/2 serial port and timer 3
26 *  - TMS70C46 DOCK-BUS comms with external pins
2627 *  - TMS70C46 external memory mode is via "E" bus instead of configuring IOCNT0
2728 *  - TMS70C46 clock divider (don't know which part of the memorymap is slow)
2829 *  - TMS70C46 INT3 on keypress
r31426r31427
121122
122123static ADDRESS_MAP_START(tms70c46_mem, AS_PROGRAM, 8, tms70c46_device )
123124   AM_RANGE(0x010c, 0x010c) AM_READWRITE(e_bus_data_r, e_bus_data_w)
124//   AM_RANGE(0x010d, 0x010d) --> to outside --> DOCK-BUS available
125//   AM_RANGE(0x010e, 0x010e) --> to outside --> DOCK-BUS data (d0-d3)
126//   AM_RANGE(0x010f, 0x010f) --> to outside --> DOCK-BUS handshake
125   AM_RANGE(0x010d, 0x010d) AM_NOP // ? always writes $FF before checking keyboard... maybe INT3 ack?
126   AM_RANGE(0x010e, 0x010e) AM_READWRITE(dockbus_data_r, dockbus_data_w)
127   AM_RANGE(0x010f, 0x010f) AM_READWRITE(dockbus_status_r, dockbus_status_w)
127128   AM_RANGE(0x0118, 0x0118) AM_READWRITE(control_r, control_w)
128129   AM_IMPORT_FROM( tms7040_mem )
129130ADDRESS_MAP_END
r31426r31427
928929   // d0-d3: clock divider
929930   m_control = data;
930931}
932
933// DOCK-BUS: TODO..
934// right now pretend that nothing is connected
935// external pins are HD0-HD3(data), HSK(handshake), BAV(bus available)
936
937READ8_MEMBER(tms70c46_device::dockbus_status_r)
938{
939   // d0: slave HSK low
940   // d1: slave BAV low
941   // d3: IRQ active
942   return 0;
943}
944
945WRITE8_MEMBER(tms70c46_device::dockbus_status_w)
946{
947   // d0: master HSK low (setting it low(1) also clears IRQ)
948   // d1: master BAV low
949}
950
951READ8_MEMBER(tms70c46_device::dockbus_data_r)
952{
953   return 0xff;
954}
955
956WRITE8_MEMBER(tms70c46_device::dockbus_data_w)
957{
958}
trunk/src/emu/cpu/tms7000/tms7000.h
r31426r31427
313313
314314   DECLARE_READ8_MEMBER(control_r);
315315   DECLARE_WRITE8_MEMBER(control_w);
316   
317   DECLARE_READ8_MEMBER(dockbus_status_r);
318   DECLARE_WRITE8_MEMBER(dockbus_status_w);
319   DECLARE_READ8_MEMBER(dockbus_data_r);
320   DECLARE_WRITE8_MEMBER(dockbus_data_w);
316321
317322   // access I/O port E if databus is disabled
318323   DECLARE_READ8_MEMBER(e_bus_data_r) { return (space.debugger_access()) ? 0xff : ((m_control & 0x20) ? 0xff : m_io->read_byte(TMS7000_PORTE)); }
trunk/src/mess/drivers/ti74.c
r31426r31427
6262  TODO:
6363  - it runs too fast due to missing clock divider emulation in TMS70C46
6464  - external ram cartridge
65  - TI-95 I/O indicator is always on (dockbus)
66  - is battery low/ok status also on dockbus? setting INT1 on reset seems to clear it
65  - battery low/ok status.. setting INT1 on reset seems to clear it
6766  - DOCK-BUS interface and peripherals, compatible with both TI-74 and TI-95
6867    * CI-7 cassette interface
6968    * PC-324 thermal printer
r31426r31427
272271
273272static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, ti74_state )
274273   ADDRESS_MAP_UNMAP_HIGH
275   AM_RANGE(0x010d, 0x010f) AM_NOP // DOCK-BUS
276274   AM_RANGE(0x1000, 0x1001) AM_DEVREADWRITE("hd44780", hd44780_device, read, write)
277275   AM_RANGE(0x2000, 0x3fff) AM_RAM AM_SHARE("6264.ic3")
278276   AM_RANGE(0x4000, 0xbfff) AM_ROM AM_REGION("user1", 0)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team