diff options
author | Vas Crabb <vas@vastheman.com> | 2019-11-24 13:52:11 +1100 |
---|---|---|
committer | Vas Crabb <vas@vastheman.com> | 2019-11-24 13:52:11 +1100 |
commit | e64edf6c7127fb8291a157026f3ac72e38c78d80 (patch) | |
tree | 092564456a138ad98775b989ea6073e4c75a7abd /src/devices/bus | |
parent | 6e8748952730a23a507c415c92398205238d1367 (diff) |
srcclean and indentation cleanup (nw)
Diffstat (limited to 'src/devices/bus')
-rw-r--r-- | src/devices/bus/bbc/exp/autocue.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/bbc/internal/aries.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/bbc/internal/integrab.cpp | 28 | ||||
-rw-r--r-- | src/devices/bus/bbc/internal/stl4m32.cpp | 6 | ||||
-rw-r--r-- | src/devices/bus/isa/eis_hgb107x.h | 2 | ||||
-rw-r--r-- | src/devices/bus/isa/eis_twib.cpp | 6 | ||||
-rw-r--r-- | src/devices/bus/sbus/cgsix.h | 26 | ||||
-rw-r--r-- | src/devices/bus/spectrum/exp.h | 2 | ||||
-rw-r--r-- | src/devices/bus/spectrum/mface.cpp | 176 | ||||
-rw-r--r-- | src/devices/bus/spectrum/mface.h | 4 | ||||
-rw-r--r-- | src/devices/bus/spectrum/mgt.cpp | 312 | ||||
-rw-r--r-- | src/devices/bus/spectrum/mgt.h | 10 | ||||
-rw-r--r-- | src/devices/bus/ti99/colorbus/colorbus.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/ti99/joyport/joyport.cpp | 2 |
14 files changed, 291 insertions, 291 deletions
diff --git a/src/devices/bus/bbc/exp/autocue.cpp b/src/devices/bus/bbc/exp/autocue.cpp index 929f4eb2eaa..8b8e1e5cd71 100644 --- a/src/devices/bus/bbc/exp/autocue.cpp +++ b/src/devices/bus/bbc/exp/autocue.cpp @@ -97,4 +97,4 @@ void bbc_autocue_device::jim_w(offs_t offset, uint8_t data) { m_ram[(m_ram_page << 8) | offset] = data; } -}
\ No newline at end of file +} diff --git a/src/devices/bus/bbc/internal/aries.cpp b/src/devices/bus/bbc/internal/aries.cpp index 6bda361d7bd..1ee29009129 100644 --- a/src/devices/bus/bbc/internal/aries.cpp +++ b/src/devices/bus/bbc/internal/aries.cpp @@ -294,7 +294,7 @@ uint8_t bbc_ariesb32_device::ram_r(offs_t offset) void bbc_ariesb32_device::ram_w(offs_t offset, uint8_t data) { //if ((offset & 0xff) == 0x00) - // logerror("ram_w: %04x = %02x\n", offset, data); + // logerror("ram_w: %04x = %02x\n", offset, data); if (m_shadow && offset >= 0x3000) m_ram[offset - 0x3000] = data; else @@ -324,7 +324,7 @@ uint8_t bbc_ariesb32_device::paged_r(offs_t offset) void bbc_ariesb32_device::paged_w(offs_t offset, uint8_t data) { //if ((offset & 0xff) == 0x00) - // logerror("paged_w: %04x = %02x\n", offset | 0x8000, data); + // logerror("paged_w: %04x = %02x\n", offset | 0x8000, data); if (m_rom[m_romsel]) { m_rom[m_romsel]->write(offset, data); diff --git a/src/devices/bus/bbc/internal/integrab.cpp b/src/devices/bus/bbc/internal/integrab.cpp index 0bba0add02c..63134bc765b 100644 --- a/src/devices/bus/bbc/internal/integrab.cpp +++ b/src/devices/bus/bbc/internal/integrab.cpp @@ -1,4 +1,4 @@ -// license:BSD-3-Clause +// license:BSD-3-Clause // copyright-holders:Nigel Barnes /********************************************************************** @@ -169,19 +169,19 @@ uint8_t bbc_integrab_device::romsel_r(offs_t offset) void bbc_integrab_device::romsel_w(offs_t offset, uint8_t data) { /* - ROMSEL & ROMID - Bits 0,3 ROMNUM Sideways ROM/RAM select bits - Bits 4,5 Not used - Bit 6 PRVEN Private RAM enable - Bit 7 MEMSEL Shadow/Main RAM toggle - - RAMSEL & RAMID - Bits 0,1 AUX0,1 Not used but must be preserved - Bits 2,3 Not used - Bit 4 PRVS8 Private RAM 8K area select (&9000-&AFFF) - Bit 5 PRVS4 Private RAM 4K area select (&8000-&8FFF) - Bit 6 PRVS1 Private RAM 1K area select (&8000-&83FF) - Bit 7 SHEN Shadow RAM enable bit + ROMSEL & ROMID + Bits 0,3 ROMNUM Sideways ROM/RAM select bits + Bits 4,5 Not used + Bit 6 PRVEN Private RAM enable + Bit 7 MEMSEL Shadow/Main RAM toggle + + RAMSEL & RAMID + Bits 0,1 AUX0,1 Not used but must be preserved + Bits 2,3 Not used + Bit 4 PRVS8 Private RAM 8K area select (&9000-&AFFF) + Bit 5 PRVS4 Private RAM 4K area select (&8000-&8FFF) + Bit 6 PRVS1 Private RAM 1K area select (&8000-&83FF) + Bit 7 SHEN Shadow RAM enable bit */ switch (offset & 0x0c) { diff --git a/src/devices/bus/bbc/internal/stl4m32.cpp b/src/devices/bus/bbc/internal/stl4m32.cpp index bd5e3e0d40e..5d3782c36ac 100644 --- a/src/devices/bus/bbc/internal/stl4m32.cpp +++ b/src/devices/bus/bbc/internal/stl4m32.cpp @@ -281,7 +281,7 @@ uint8_t bbc_stl4m32_device::mos_r(offs_t offset) //if (BIT(m_shadow, 7) && offset >= 0x2000) //{ - // data = m_ram[offset]; + // data = m_ram[offset]; //} //else //{ @@ -298,6 +298,6 @@ void bbc_stl4m32_device::mos_w(offs_t offset, uint8_t data) //if (BIT(m_romsel, 7) && offset >= 0x2000) //{ - // m_ram[offset] = data; + // m_ram[offset] = data; //} -}
\ No newline at end of file +} diff --git a/src/devices/bus/isa/eis_hgb107x.h b/src/devices/bus/isa/eis_hgb107x.h index 711f385278f..8156633df9f 100644 --- a/src/devices/bus/isa/eis_hgb107x.h +++ b/src/devices/bus/isa/eis_hgb107x.h @@ -75,7 +75,7 @@ private: ATTR_FOREG = 0x07, ATTR_ULINE = 0x01, }; - + required_device<mc6845_device> m_crtc; MC6845_UPDATE_ROW( crtc_update_row ); diff --git a/src/devices/bus/isa/eis_twib.cpp b/src/devices/bus/isa/eis_twib.cpp index 8902ead74ef..5d465cef327 100644 --- a/src/devices/bus/isa/eis_twib.cpp +++ b/src/devices/bus/isa/eis_twib.cpp @@ -36,7 +36,7 @@ | IC4 IC3 Resistor DIL IC6 ooooo o5 o5 IC9 P2|| |- BNC(3270) | 74LS00 74LS00 1234567890 74LS86 ooooo 1o o4 1o o4 74LS245 ||--- | SW1 DIP 2o o3 2o o3 ____| - +----------------------------------------------------------------------------------|o___| + +----------------------------------------------------------------------------------|o___| ||||||||||||||||||||||||| | Notes | ------------------------------------------------------------------------------ | @@ -49,7 +49,7 @@ ------------------- This is a passive ISA8 board that should be fitted into an Ericsson PC (epc) and driven by suitable software. It was replaced by the ISA16 SAD8852 intelligent TWIB - board for WS286 and higher a few years later. + board for WS286 and higher a few years later. */ @@ -246,7 +246,7 @@ void isa8_eistwib_device::device_reset() int base = m_sw1->read(); if (!m_installed) { - LOG("Installing twib device at %04x\n", base); + LOG("Installing twib device at %04x\n", base); m_isa->install_device( base, base + 0x0f, read8_delegate(*this, FUNC( isa8_eistwib_device::twib_r )), diff --git a/src/devices/bus/sbus/cgsix.h b/src/devices/bus/sbus/cgsix.h index 47423f1e724..71acec329a9 100644 --- a/src/devices/bus/sbus/cgsix.h +++ b/src/devices/bus/sbus/cgsix.h @@ -82,23 +82,23 @@ protected: enum { - THC_MISC_IRQ_BIT = 4, - THC_MISC_IRQEN_BIT = 5, - THC_MISC_CURRES_BIT = 6, - THC_MISC_SYNCEN_BIT = 7, - THC_MISC_VSYNC_BIT = 8, - THC_MISC_SYNC_BIT = 9, - THC_MISC_ENVID_BIT = 10, - THC_MISC_RESET_BIT = 12, + THC_MISC_IRQ_BIT = 4, + THC_MISC_IRQEN_BIT = 5, + THC_MISC_CURRES_BIT = 6, + THC_MISC_SYNCEN_BIT = 7, + THC_MISC_VSYNC_BIT = 8, + THC_MISC_SYNC_BIT = 9, + THC_MISC_ENVID_BIT = 10, + THC_MISC_RESET_BIT = 12, THC_MISC_REV = 0x00010000, - THC_MISC_WRITE_MASK = 0x000014ff + THC_MISC_WRITE_MASK = 0x000014ff }; enum { - FBC_CONFIG_FBID = 0x60000000, - FBC_CONFIG_VERSION = 0x00100000, - FBC_CONFIG_MASK = 0x000f3fff + FBC_CONFIG_FBID = 0x60000000, + FBC_CONFIG_VERSION = 0x00100000, + FBC_CONFIG_MASK = 0x000f3fff }; enum @@ -257,7 +257,7 @@ protected: enum { - FBC_CONFIG = 0x000/4, + FBC_CONFIG = 0x000/4, FBC_MISC = 0x004/4, FBC_CLIP_CHECK = 0x008/4, diff --git a/src/devices/bus/spectrum/exp.h b/src/devices/bus/spectrum/exp.h index 366e27c9e5e..91d1922c577 100644 --- a/src/devices/bus/spectrum/exp.h +++ b/src/devices/bus/spectrum/exp.h @@ -8,7 +8,7 @@ Pinout: - 48K 128K/+2 +2A/+2B/+3/3B + 48K 128K/+2 +2A/+2B/+3/3B A B A B A B A15 1 A14 A15 1 A14 A15 1 A14 diff --git a/src/devices/bus/spectrum/mface.cpp b/src/devices/bus/spectrum/mface.cpp index 1417c5db58c..8e26277de8a 100644 --- a/src/devices/bus/spectrum/mface.cpp +++ b/src/devices/bus/spectrum/mface.cpp @@ -2,81 +2,81 @@ // copyright-holders:Nigel Barnes /********************************************************************* - Romantic Robot Multiface One/128/3 - ---------------------------------- - - " MULTI-PURPOSE INTERFACE FOR THE ZX SPECTRUM " - - MULTIFACE ONE comprises three interfaces in one box: - 1) Fully universal and 100% automatic SAVE facility for tape, microdrive, wafadrive, Beta, - Discovery and indirectly (via tape) for other disc systems - 2) Joystick interface – Kempston compatible (IN 31) - 3) 8K RAM extension – fully accessible, usable as a RAM disk, buffer etc. Also used by - MULTIFACE for MULTI TOOLKIT routines, buffer & other purposes. - - © Romantic Robot UK Ltd 1985 - - - Multiface One - ------------- - Many versions exist, a very good source of info is: https://x128.speccy.cz/multiface/multiface.htm - - Summary: - Earliest version has 2KB of RAM, composite video output, and no toolkit (pokes only). - Next version has 8KB of RAM, composite video output, and basic toolkit (including pokes). - Latest and most common version dropped the composite video output, added an enable/disable switch, and full-featured toolkit. - A special (and rare) version supports the Kempston Disc interface but drops Beta support. (not sold in stores, available only on request). - At some point during "early" revisions, the page out port changed from 0x5f to 0x1f. - Various clone/hacked rom versions are known to exist as well. - - Roms: - The MUxx in the rom name is pcb revision (silkscreen marking). - The two hex digits are the rom checksum. - With the MF menu on-screen, press Symbol Shift + A (STOP) to see checksum, space to return. - - The enable/disable switch became necessary on later versions as games had started including checks to detect presence of the interface. - eg. Renegade ("The Hit Squad" re-release) whilst loading, reads from 0x9f specifically to cause the MF (if present) to page in and crash the machine. - Todo: confirm exact operation of disable switch. - - As mentioned in the user instructions, there is a "joystick disable" jumper inside the unit which must be cut to allow Beta disk compatibility. - The joystick is not actually disabled but rather just data bus bits D6 + D7 are held hi-z for any reads of kempston range 0b000xxxxx. - - rom maps to 0x0000 - ram maps to 0x2000 - - I/O R/W early ver late ver - ---------+-----+-----------+----------- - page in R 0x9f 0x9f - page out R 0x5f 0x1f - nmi reset W 0x5f 0x1f - joystick R 0x1f 0x1f - - - Multiface 128 - ------------- - 128K/+2 support (also works with 48K) - DISCiPLE/Plus D disc support - No joystick port - Software enable/disable - "Hypertape" recording (?) - - Todo ... - - - Multiface 3 - ----------- - +2A/+2B/+3/3B support (doesn't work with 48K/128K/+2) - +3 disk support - - Todo ... - - - Multiprint - ---------- - Version ? multiface with Centronics printer interface - - Todo ... - + Romantic Robot Multiface One/128/3 + ---------------------------------- + + " MULTI-PURPOSE INTERFACE FOR THE ZX SPECTRUM " + + MULTIFACE ONE comprises three interfaces in one box: + 1) Fully universal and 100% automatic SAVE facility for tape, microdrive, wafadrive, Beta, + Discovery and indirectly (via tape) for other disc systems + 2) Joystick interface – Kempston compatible (IN 31) + 3) 8K RAM extension – fully accessible, usable as a RAM disk, buffer etc. Also used by + MULTIFACE for MULTI TOOLKIT routines, buffer & other purposes. + + © Romantic Robot UK Ltd 1985 + + + Multiface One + ------------- + Many versions exist, a very good source of info is: https://x128.speccy.cz/multiface/multiface.htm + + Summary: + Earliest version has 2KB of RAM, composite video output, and no toolkit (pokes only). + Next version has 8KB of RAM, composite video output, and basic toolkit (including pokes). + Latest and most common version dropped the composite video output, added an enable/disable switch, and full-featured toolkit. + A special (and rare) version supports the Kempston Disc interface but drops Beta support. (not sold in stores, available only on request). + At some point during "early" revisions, the page out port changed from 0x5f to 0x1f. + Various clone/hacked rom versions are known to exist as well. + + Roms: + The MUxx in the rom name is pcb revision (silkscreen marking). + The two hex digits are the rom checksum. + With the MF menu on-screen, press Symbol Shift + A (STOP) to see checksum, space to return. + + The enable/disable switch became necessary on later versions as games had started including checks to detect presence of the interface. + eg. Renegade ("The Hit Squad" re-release) whilst loading, reads from 0x9f specifically to cause the MF (if present) to page in and crash the machine. + Todo: confirm exact operation of disable switch. + + As mentioned in the user instructions, there is a "joystick disable" jumper inside the unit which must be cut to allow Beta disk compatibility. + The joystick is not actually disabled but rather just data bus bits D6 + D7 are held hi-z for any reads of kempston range 0b000xxxxx. + + rom maps to 0x0000 + ram maps to 0x2000 + + I/O R/W early ver late ver + ---------+-----+-----------+----------- + page in R 0x9f 0x9f + page out R 0x5f 0x1f + nmi reset W 0x5f 0x1f + joystick R 0x1f 0x1f + + + Multiface 128 + ------------- + 128K/+2 support (also works with 48K) + DISCiPLE/Plus D disc support + No joystick port + Software enable/disable + "Hypertape" recording (?) + + Todo ... + + + Multiface 3 + ----------- + +2A/+2B/+3/3B support (doesn't work with 48K/128K/+2) + +3 disk support + + Todo ... + + + Multiprint + ---------- + Version ? multiface with Centronics printer interface + + Todo ... + *********************************************************************/ @@ -105,13 +105,13 @@ INPUT_PORTS_END INPUT_PORTS_START( mface1 ) PORT_INCLUDE( mface ) - + PORT_START("CONFIG") PORT_CONFNAME(0x01, 0x00, "Joystick Enable Jumper") PORT_CONFSETTING(0x00, "Closed") PORT_CONFSETTING(0x01, "Open") PORT_BIT(0xfe, IP_ACTIVE_LOW, IPT_UNUSED) - + PORT_START("JOY") PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_JOYSTICK_LEFT) PORT_8WAY @@ -153,17 +153,17 @@ ROM_END /* Todo ... - ROM_SYSTEM_BIOS(?, "mu12cb", "MU12 CB") // Very early version, 2KB RAM, page out port 0x5F - ROMX_LOAD("mf1_12_cb.rom", 0x0000, 0x2000, CRC(c88fbf9f) SHA1(c3018d1b495b8bc0a135038db0987de7091c9d4c), ROM_BIOS(?)) + ROM_SYSTEM_BIOS(?, "mu12cb", "MU12 CB") // Very early version, 2KB RAM, page out port 0x5F + ROMX_LOAD("mf1_12_cb.rom", 0x0000, 0x2000, CRC(c88fbf9f) SHA1(c3018d1b495b8bc0a135038db0987de7091c9d4c), ROM_BIOS(?)) - ROM_SYSTEM_BIOS(?, "mu2023", "MU 2.0 23") // pokes only (no toolkit), page out port 0x5F - ROMX_LOAD("mf1_20_23.rom", 0x0000, 0x2000, CRC(d4ae8953) SHA1(b442eb634a72fb63f1ccbbd0021a7a581152888d), ROM_BIOS(?)) + ROM_SYSTEM_BIOS(?, "mu2023", "MU 2.0 23") // pokes only (no toolkit), page out port 0x5F + ROMX_LOAD("mf1_20_23.rom", 0x0000, 0x2000, CRC(d4ae8953) SHA1(b442eb634a72fb63f1ccbbd0021a7a581152888d), ROM_BIOS(?)) - ROM_SYSTEM_BIOS(?, "mu2090", "MU 2.0, 90") // pokes only or full toolkit? NO DUMP? - ROMX_LOAD("mf1_20_90.rom", 0x0000, 0x2000, CRC(2eaf8e41) SHA1(?), ROM_BIOS(?)) + ROM_SYSTEM_BIOS(?, "mu2090", "MU 2.0, 90") // pokes only or full toolkit? NO DUMP? + ROMX_LOAD("mf1_20_90.rom", 0x0000, 0x2000, CRC(2eaf8e41) SHA1(?), ROM_BIOS(?)) - ROM_SYSTEM_BIOS(?, "v24", "MU ?? 93 (Brazilian clone)") // NO DUMP? - ROMX_LOAD("mf1_bc_fe.rom", 0x0000, 0x2000, CRC(8c17113b) SHA1(?), ROM_BIOS(?)) + ROM_SYSTEM_BIOS(?, "v24", "MU ?? 93 (Brazilian clone)") // NO DUMP? + ROMX_LOAD("mf1_bc_fe.rom", 0x0000, 0x2000, CRC(8c17113b) SHA1(?), ROM_BIOS(?)) */ ROM_START(mface128) @@ -304,7 +304,7 @@ void spectrum_mface_base_device::pre_opcode_fetch(offs_t offset) uint8_t spectrum_mface1_device::iorq_r(offs_t offset) { uint8_t data = m_exp->iorq_r(offset); - + if (!machine().side_effects_disabled()) { switch (offset & 0xff) @@ -392,7 +392,7 @@ void spectrum_mface1_device::iorq_w(offs_t offset, uint8_t data) m_slot->nmi_w(CLEAR_LINE); break; } - + m_exp->iorq_w(offset, data); } @@ -451,7 +451,7 @@ INPUT_CHANGED_MEMBER(spectrum_mface1_device::magic_button) { if (newval && !oldval) // key released { - + } else // key pressed { diff --git a/src/devices/bus/spectrum/mface.h b/src/devices/bus/spectrum/mface.h index 9f3d89ae6dc..7d5ed5b2145 100644 --- a/src/devices/bus/spectrum/mface.h +++ b/src/devices/bus/spectrum/mface.h @@ -54,7 +54,7 @@ class spectrum_mface1_device : public spectrum_mface_base_device { public: spectrum_mface1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - + DECLARE_INPUT_CHANGED_MEMBER(magic_button) override; protected: @@ -64,7 +64,7 @@ protected: virtual uint8_t iorq_r(offs_t offset) override; virtual void iorq_w(offs_t offset, uint8_t data) override; - + private: required_ioport m_joy; required_ioport m_hwconfig; diff --git a/src/devices/bus/spectrum/mgt.cpp b/src/devices/bus/spectrum/mgt.cpp index 10fb90e1b93..49868413649 100644 --- a/src/devices/bus/spectrum/mgt.cpp +++ b/src/devices/bus/spectrum/mgt.cpp @@ -2,141 +2,141 @@ // copyright-holders:TwistedTom /********************************************************************** - DISCiPLE Multi-purpose Interface - +D Disk and Printer Interface - - Miles Gordon Technology, UK, 1986-1990 (also produced the Sam Coupé home computer.) - - DISCiPLE was MGT's first disk interface, a large plastic base that sat under the Spectrum, similar to Sinclair's official Interface 1. - +D was MGT's second (and last) disk interface, a cost and feature reduced version of the Disciple, a small metal-cased, - stand-alone unit which connects to ZX Spectrum's expansion slot via a ribbon cable. - A second Datel version of the +D exists (following the closure of MGT, it was licensed and produced by Datel.) - Many unofficial versions of +D exist and modern versions are still seen today as DIY-style projects/kits. - It's said the device's design and roms were officially released into the public domain at some point? - - DISCiPLE features: - 8KB ROM - 8KB RAM - single floppy disk interface (2 drives) - Centronics parallel printer interface - "magic button" style memory snapshot grabber - 2 ATARI joystick ports (Sinclair 1/Kempston, Sinclair 2) - 2 network connectors (Interface 1 compatible, 3.5mm mono jack) - inhibit button (to lock out the interface) - pass-through expansion connector (to chain other devices) - - +D features: - same as DISCiPLE - lost the joystick/network ports, inhibit button and pass-through expansion connector - - DISCiPLE's official DOS was "GDOS". - +D's official DOS was "G+DOS". - Both of these were later superseded by "SAM DOS" (used by MGT's Sam Coupé.) - A 3rd party company SD Software released an alternative DOS "UNI-DOS" for both interfaces. (consisting of a disk and replacement ROM) - - FDD support: - - DISCiPLE's manual states any Shugart 400 SD/DD drive should work: - "The disciple will accept 5.25" or 3.5" drives, whether they are 40 track or 80 track, - single sided or double sided, single density or double density." - - +D's manual states any Shugart 400 DD drive should work (but not SD) - "we recommend 3.5" or 5.25" 80-track double sided and double density drives, - which will give you up to 780K of storage per drive. But Shugart - 400-type 3" drives will also work." - - +D only: Pin 26 /DDEN of the WD1772 is tied to ground, so permanent DD mode. - DISCiPLE only: /DDEN can be directly controlled via s/w by an IO write to 0x1f, bit 2. - - Disks use "MGT filesystem". - A good description available at https://faqwiki.zxnet.co.uk/wiki/MGT_filesystem - - Disk format is 512 bytes/sector, 10 sectors/track - 40 track, 1 side = 204,800 bytes (512*10*40*1) - 40 track, 2 side = 409,600 bytes - 80 track, 1 side = 409,600 bytes - 80 track, 2 side = 819,200 bytes <-- only this one supported so far - - .mgt files work ok - .img files don't work (not in coupedsk.cpp) - - The DOS must be loaded from a "System Disk" which is itself created from "System Tape" which was supplied with the unit. - The ROM provides just the RUN command, which boots the system disk and loads the full DOS. - Presumably the unit wasn't supplied with a system disk due to wide range of drives that can be used? (3", 3.5", 5.25") - The DOS survives a reset, so reloading of system disk is only required after full power cycle. - - A few useful commands: - RUN Boots the system - CAT 1 Displays catalogue (drive 1) - CAT 1! Displays shortened catalogue (drive 1) - SAVE D1 "filename" Saves file - VERIFY D1 "filename" Confirms save has been made - LOAD D1 "filename" Loads file (except Snapshot files) - LOAD D1 "filename" S Loads 48K Snapshot file - LOAD D1 "filename" K Loads 128K Snapshot file - LOAD D1 "filename" SCREEN$ Loads screen file - LOAD Pn Loads the program (from its number) - ERASE D1 "file" TO "new file" Renames a file - ERASE D1 "filename" Erases a file - SAVE D1 "file" TO D2 Copies a file from drive1 to drive2 - FORMAT D1 Formats disc in drive 1 - FORMAT D1 TO 2 Formats drive 1; copies from 2 to 1 - - DISCiPLE snapshot button: - Caps Shift + button system freezes with a multi-coloured border effect - then, key 3 save current SCREEN - 4 save 48K PROGRAM - 5 save 128K PROGRAM - Caps Shift + number saves to drive 2 (or 1 if running from 2) - - +D snapshot button: - button system freezes with a multi-coloured border effect (don't need to hold caps shift) - then, key 3 save current SCREEN - 4 save 48K PROGRAM - 5 save 128K PROGRAM - X do nothing, return to running program - Caps Shift + number saves to drive 2 (or 1 if running from 2) - - DISCiPLE GDOS versions: - The rom/system disk versions must match, - v2 rom: use system disk/system tape ver 2, 2b, 2c - v3 rom: use system disk/system tape ver 3a, 3b or 3d - - +D G+DOS versions: - a v1 (-non a) exists but has yet to be found/dumped, - from "pick-poke-it" user manual: - "A few PLUS D users are still using Version 1 of the ROM which was used in PLUS D's sold in December 1987-January 1988. - ... check the serial number on the bottom of your PLUS D. If it's a 4-figure number commencing with 1, - then you have a PLUS D with the Version 1 ROM." - - DISCiPLE only curiosities: - The pass-through expansion connector has 4 extra pins (1 top/bottom each end) - so 2x30 pins compared to ususal 2x28 of Spectrum expansion slot. - Presumably this was intended for some unique expansion device that never appeared? - One of these extra pins can be directly controlled via s/w by an IO write to 0x1f, bit 5. - 2 other pins appear to be able to override the /ce signal from PAL ic9 to the rom. - 4th pin is unused. - - The design allows for use of a larger 27128 (16KB) rom, - with the highest address line A13 controllable via s/w by an IO write to 0x1f, bit 3. - No larger roms seem to exist (or perhaps not yet found...?) - Some 16KB dumps can be found but these are combined dumps of the 8KB rom and 8KB ram (with the full DOS loaded). - - - Current status: - -------------- - - DISCiPLE - GDOS v3: all ok, occassional "no system file" when loading system disk, ok on 2nd attempt - GDOS v2: all ok - UNIDOS: all ok - - +D - G+DOS: all ok - UNIDOS: all ok - - - Not working with 128K/+2 yet... + DISCiPLE Multi-purpose Interface + +D Disk and Printer Interface + + Miles Gordon Technology, UK, 1986-1990 (also produced the Sam Coupé home computer.) + + DISCiPLE was MGT's first disk interface, a large plastic base that sat under the Spectrum, similar to Sinclair's official Interface 1. + +D was MGT's second (and last) disk interface, a cost and feature reduced version of the Disciple, a small metal-cased, + stand-alone unit which connects to ZX Spectrum's expansion slot via a ribbon cable. + A second Datel version of the +D exists (following the closure of MGT, it was licensed and produced by Datel.) + Many unofficial versions of +D exist and modern versions are still seen today as DIY-style projects/kits. + It's said the device's design and roms were officially released into the public domain at some point? + + DISCiPLE features: + 8KB ROM + 8KB RAM + single floppy disk interface (2 drives) + Centronics parallel printer interface + "magic button" style memory snapshot grabber + 2 ATARI joystick ports (Sinclair 1/Kempston, Sinclair 2) + 2 network connectors (Interface 1 compatible, 3.5mm mono jack) + inhibit button (to lock out the interface) + pass-through expansion connector (to chain other devices) + + +D features: + same as DISCiPLE + lost the joystick/network ports, inhibit button and pass-through expansion connector + + DISCiPLE's official DOS was "GDOS". + +D's official DOS was "G+DOS". + Both of these were later superseded by "SAM DOS" (used by MGT's Sam Coupé.) + A 3rd party company SD Software released an alternative DOS "UNI-DOS" for both interfaces. (consisting of a disk and replacement ROM) + + FDD support: + + DISCiPLE's manual states any Shugart 400 SD/DD drive should work: + "The disciple will accept 5.25" or 3.5" drives, whether they are 40 track or 80 track, + single sided or double sided, single density or double density." + + +D's manual states any Shugart 400 DD drive should work (but not SD) + "we recommend 3.5" or 5.25" 80-track double sided and double density drives, + which will give you up to 780K of storage per drive. But Shugart + 400-type 3" drives will also work." + + +D only: Pin 26 /DDEN of the WD1772 is tied to ground, so permanent DD mode. + DISCiPLE only: /DDEN can be directly controlled via s/w by an IO write to 0x1f, bit 2. + + Disks use "MGT filesystem". + A good description available at https://faqwiki.zxnet.co.uk/wiki/MGT_filesystem + + Disk format is 512 bytes/sector, 10 sectors/track + 40 track, 1 side = 204,800 bytes (512*10*40*1) + 40 track, 2 side = 409,600 bytes + 80 track, 1 side = 409,600 bytes + 80 track, 2 side = 819,200 bytes <-- only this one supported so far + + .mgt files work ok + .img files don't work (not in coupedsk.cpp) + + The DOS must be loaded from a "System Disk" which is itself created from "System Tape" which was supplied with the unit. + The ROM provides just the RUN command, which boots the system disk and loads the full DOS. + Presumably the unit wasn't supplied with a system disk due to wide range of drives that can be used? (3", 3.5", 5.25") + The DOS survives a reset, so reloading of system disk is only required after full power cycle. + + A few useful commands: + RUN Boots the system + CAT 1 Displays catalogue (drive 1) + CAT 1! Displays shortened catalogue (drive 1) + SAVE D1 "filename" Saves file + VERIFY D1 "filename" Confirms save has been made + LOAD D1 "filename" Loads file (except Snapshot files) + LOAD D1 "filename" S Loads 48K Snapshot file + LOAD D1 "filename" K Loads 128K Snapshot file + LOAD D1 "filename" SCREEN$ Loads screen file + LOAD Pn Loads the program (from its number) + ERASE D1 "file" TO "new file" Renames a file + ERASE D1 "filename" Erases a file + SAVE D1 "file" TO D2 Copies a file from drive1 to drive2 + FORMAT D1 Formats disc in drive 1 + FORMAT D1 TO 2 Formats drive 1; copies from 2 to 1 + + DISCiPLE snapshot button: + Caps Shift + button system freezes with a multi-coloured border effect + then, key 3 save current SCREEN + 4 save 48K PROGRAM + 5 save 128K PROGRAM + Caps Shift + number saves to drive 2 (or 1 if running from 2) + + +D snapshot button: + button system freezes with a multi-coloured border effect (don't need to hold caps shift) + then, key 3 save current SCREEN + 4 save 48K PROGRAM + 5 save 128K PROGRAM + X do nothing, return to running program + Caps Shift + number saves to drive 2 (or 1 if running from 2) + + DISCiPLE GDOS versions: + The rom/system disk versions must match, + v2 rom: use system disk/system tape ver 2, 2b, 2c + v3 rom: use system disk/system tape ver 3a, 3b or 3d + + +D G+DOS versions: + a v1 (-non a) exists but has yet to be found/dumped, + from "pick-poke-it" user manual: + "A few PLUS D users are still using Version 1 of the ROM which was used in PLUS D's sold in December 1987-January 1988. + ... check the serial number on the bottom of your PLUS D. If it's a 4-figure number commencing with 1, + then you have a PLUS D with the Version 1 ROM." + + DISCiPLE only curiosities: + The pass-through expansion connector has 4 extra pins (1 top/bottom each end) + so 2x30 pins compared to ususal 2x28 of Spectrum expansion slot. + Presumably this was intended for some unique expansion device that never appeared? + One of these extra pins can be directly controlled via s/w by an IO write to 0x1f, bit 5. + 2 other pins appear to be able to override the /ce signal from PAL ic9 to the rom. + 4th pin is unused. + + The design allows for use of a larger 27128 (16KB) rom, + with the highest address line A13 controllable via s/w by an IO write to 0x1f, bit 3. + No larger roms seem to exist (or perhaps not yet found...?) + Some 16KB dumps can be found but these are combined dumps of the 8KB rom and 8KB ram (with the full DOS loaded). + + + Current status: + -------------- + + DISCiPLE + GDOS v3: all ok, occassional "no system file" when loading system disk, ok on 2nd attempt + GDOS v2: all ok + UNIDOS: all ok + + +D + G+DOS: all ok + UNIDOS: all ok + + + Not working with 128K/+2 yet... **********************************************************************/ @@ -167,17 +167,17 @@ INPUT_PORTS_END INPUT_PORTS_START(disciple) PORT_INCLUDE(plusd) - + // Joystick 1 (right-hand) is both Kempston (port 0x1f) and Sinclair 1 (keys 6,7,8,9,0) // Joystick 2 (left-hand) is Sinclair 2 (keys 1,2,3,4,5) - + PORT_START("JOY1") /* Sinclair 1 (keys 6,7,8,9,0) 0xeffe , Kempston 0x1f */ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_BUTTON1) PORT_PLAYER(1) PORT_NAME("Kempston\\Sinclair P1 Button 1") PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_UP) PORT_8WAY PORT_PLAYER(1) PORT_NAME("Kempston\\Sinclair P1 Up") PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_JOYSTICK_DOWN) PORT_8WAY PORT_PLAYER(1) PORT_NAME("Kempston\\Sinclair P1 Down") PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(1) PORT_NAME("Kempston\\Sinclair P1 Right") PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(1) PORT_NAME("Kempston\\Sinclair P1 Left") - + PORT_START("JOY2") /* Sinclair 2 (keys 1,2,3,4,5) 0xf7fe */ PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_JOYSTICK_LEFT) PORT_8WAY PORT_PLAYER(2) PORT_NAME("Sinclair P2 Left") PORT_CODE(KEYCODE_4_PAD) PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_JOYSTICK_RIGHT) PORT_8WAY PORT_PLAYER(2) PORT_NAME("Sinclair P2 Right") PORT_CODE(KEYCODE_6_PAD) @@ -223,15 +223,15 @@ FLOPPY_FORMATS_END ROM_START(plusd) ROM_REGION(0x2000, "rom", 0) - + ROM_DEFAULT_BIOS("gdos") - + ROM_SYSTEM_BIOS(0, "gdos", "G+DOS v1a") ROMX_LOAD("plusd_g.rom", 0x0000, 0x2000, CRC(569f7e55) SHA1(6b841dc5797ef7eb219ad455cd1e434ca3b9d30d), ROM_BIOS(0)) - + ROM_SYSTEM_BIOS(1, "unidos", "UNI-DOS v2") ROMX_LOAD("plusd_uni.rom", 0x0000, 0x2000, CRC(60920496) SHA1(399c8c7c8335bc59849a2182c32347603fd0288a), ROM_BIOS(1)) - + ROM_REGION( 0x200, "plds", 0 ) ROM_LOAD( "alice_pal20l8.ic4", 0x000, 0x144, CRC(60135856) SHA1(41273f13a3680b29ba84ae1e85829482c783c55e) ) ROM_END @@ -242,18 +242,18 @@ ROM_END ROM_START(disciple) ROM_REGION(0x2000, "rom", 0) - + ROM_DEFAULT_BIOS("gdos") - + ROM_SYSTEM_BIOS(0, "gdos", "GDOS v3") ROMX_LOAD("disciple_g.rom", 0x0000, 0x2000, CRC(82047489) SHA1(9a75ed4b293f968985be4c9aa893cd88276d1ced), ROM_BIOS(0)) - + ROM_SYSTEM_BIOS(1, "gdos2", "GDOS v2") ROMX_LOAD("disciple_g2.rom", 0x0000, 0x2000, CRC(9d971781) SHA1(a03e67e4ee275a85153843f42269fa980875d551), ROM_BIOS(1)) - + ROM_SYSTEM_BIOS(2, "unidos", "UNI-DOS v2") ROMX_LOAD("disciple_uni.rom", 0x0000, 0x2000, CRC(1fe7f4fa) SHA1(6277abe6358c99ab894795536a1eb9393f25b9b1), ROM_BIOS(2)) - + ROM_REGION( 0x400, "plds", 0 ) ROM_LOAD( "pal20l8.ic8", 0x000, 0x144, CRC(e53b2fcc) SHA1(85ce9634890d41be37cd9e0252698e5350a4c9c9) ) ROM_LOAD( "pal20l8.ic9", 0x200, 0x144, CRC(43ff2e38) SHA1(b872377ea9f91b29a811b0d484699ffe87bdf9fd) ) @@ -268,11 +268,11 @@ void spectrum_plusd_device::device_add_mconfig(machine_config &config) WD1772(config, m_fdc, 8_MHz_XTAL); FLOPPY_CONNECTOR(config, "fdc:0", plusd_floppies, "35dd", spectrum_plusd_device::floppy_formats).enable_sound(true); FLOPPY_CONNECTOR(config, "fdc:1", plusd_floppies, "35dd", spectrum_plusd_device::floppy_formats).enable_sound(true); - + /* printer port */ CENTRONICS(config, m_centronics, centronics_devices, "printer"); m_centronics->busy_handler().set(FUNC(spectrum_plusd_device::busy_w)); - + /* software list */ SOFTWARE_LIST(config, "flop_list").set_original("spectrum_mgt_flop"); } @@ -280,7 +280,7 @@ void spectrum_plusd_device::device_add_mconfig(machine_config &config) void spectrum_disciple_device::device_add_mconfig(machine_config &config) { spectrum_plusd_device::device_add_mconfig(config); - + /* pass-through */ SPECTRUM_EXPANSION_SLOT(config, m_exp, spectrum_expansion_devices, nullptr); m_exp->irq_handler().set(DEVICE_SELF_OWNER, FUNC(spectrum_expansion_slot_device::irq_w)); @@ -411,7 +411,7 @@ uint8_t spectrum_plusd_device::iorq_r(offs_t offset) data = m_centronics_busy ? 0x80 : 0x00; break; } - + return data; } @@ -512,7 +512,7 @@ READ_LINE_MEMBER(spectrum_disciple_device::romcs) void spectrum_disciple_device::pre_opcode_fetch(offs_t offset) { m_exp->pre_opcode_fetch(offset); - + if (!machine().side_effects_disabled()) { switch (offset) @@ -559,7 +559,7 @@ uint8_t spectrum_disciple_device::iorq_r(offs_t offset) data = m_joy2->read() | (0xff ^ 0x1f); break; } - + return data; } @@ -606,7 +606,7 @@ void spectrum_disciple_device::iorq_w(offs_t offset, uint8_t data) m_centronics->write_data7(BIT(data, 7)); break; } - + m_exp->iorq_w(offset, data); } @@ -641,7 +641,7 @@ uint8_t spectrum_disciple_device::mreq_r(offs_t offset) } } } - + if (m_exp->romcs()) data &= m_exp->mreq_r(offset); @@ -671,7 +671,7 @@ void spectrum_disciple_device::mreq_w(offs_t offset, uint8_t data) } } } - + if (m_exp->romcs()) m_exp->mreq_w(offset, data); } diff --git a/src/devices/bus/spectrum/mgt.h b/src/devices/bus/spectrum/mgt.h index dee27a04b9d..bbc69da6eb2 100644 --- a/src/devices/bus/spectrum/mgt.h +++ b/src/devices/bus/spectrum/mgt.h @@ -2,10 +2,10 @@ // copyright-holders:TwistedTom /********************************************************************** - DISCiPLE Multi-purpose Interface - +D Disk and Printer Interface - - (Miles Gordon Technology) + DISCiPLE Multi-purpose Interface + +D Disk and Printer Interface + + (Miles Gordon Technology) **********************************************************************/ @@ -30,7 +30,7 @@ class spectrum_plusd_device: public device_t, public device_spectrum_expansion_i public: // construction/destruction spectrum_plusd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - + DECLARE_FLOPPY_FORMATS(floppy_formats); DECLARE_INPUT_CHANGED_MEMBER(snapshot_button); diff --git a/src/devices/bus/ti99/colorbus/colorbus.cpp b/src/devices/bus/ti99/colorbus/colorbus.cpp index a54b41c9f70..76c0781f3f2 100644 --- a/src/devices/bus/ti99/colorbus/colorbus.cpp +++ b/src/devices/bus/ti99/colorbus/colorbus.cpp @@ -58,7 +58,7 @@ void v9938_colorbus_device::device_start() /*****************************************************************************/ device_v9938_colorbus_interface::device_v9938_colorbus_interface(const machine_config &mconfig, device_t &device) - : device_interface(device, "v9938colorbus"), + : device_interface(device, "v9938colorbus"), m_colorbus(nullptr) { } diff --git a/src/devices/bus/ti99/joyport/joyport.cpp b/src/devices/bus/ti99/joyport/joyport.cpp index 38e3eccbf3a..0505c524ef8 100644 --- a/src/devices/bus/ti99/joyport/joyport.cpp +++ b/src/devices/bus/ti99/joyport/joyport.cpp @@ -45,7 +45,7 @@ DEFINE_DEVICE_TYPE_NS(TI99_JOYPORT, bus::ti99::joyport, joyport_device, "ti99_jo namespace bus { namespace ti99 { namespace joyport { device_ti99_joyport_interface::device_ti99_joyport_interface(const machine_config &config, device_t &device) - : device_interface(device, "ti99joyport"), + : device_interface(device, "ti99joyport"), m_joyport(nullptr) { } |