diff options
author | Angelo Salese <angelosa@users.noreply.github.com> | 2022-04-16 01:36:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-16 01:36:53 +0200 |
commit | e38360692285e7fa0e0574b8b00585536b696949 (patch) | |
tree | 70ec36412b3041ea72767045e13f998ea14dbab3 /src/mame/machine | |
parent | 6985fb1f9003a393d3cead1b55ea4feab488938a (diff) |
pc8801.cpp: major groundwork cleanups (#9533)
* pc80s31k.cpp: minor XTAL cleanup
* pc8801.cpp: reduce signature name fns
* pc8801.cpp: separate dictionary and CD-ROM later model use into own state machines
* pc8801.cpp: clean input ports a bit
* pc8801.cpp: bulk printf -> logerror
* pc8801.cpp: misc cleanups
* pc8801.cpp: more misc cleanups
* pc8801.cpp: initial batch of exporting PC8801-31 to a separate device
* pc8801_31.cpp: document register map, add machine ID
* pc8801.cpp: fix configuration mistake for CPU speed
* pc8801.cpp: add base diplocations, massage documentation of ports $30, $31, $40, misc cleanups
* pc8801.cpp: fix mouse cursor jump bugs, remove deprecated PORT_RESET usage;
pc8801.cpp: rework and extend expansion slot descriptions;
* pc8801.cpp: add note about extended FH keyboards
* pc8801.cpp: add dip positions for BASIC dips
* pc8801_31.cpp: add stub SCSI bus controller
* pc8801.cpp: blind fix kanji LV2 hookup
* pc8801.cpp: use required_region_ptr for ROM regions, split kanji_lv2 to own one
* pc8801.cpp: move a few notes to XML
* pc8801_flop.xml: correct Digan no Maseki title
* pc8801.cpp: remove unneeded port $33 hookup (should be unmapped on all PC8801 variants)
* pc8801.cpp: initial implementation of interrupts using i8214 as base. Fixes at least yojukiko and bishojbg BGMs
* pc8801.cpp: add clock calculation for internal DAC1BIT, add reported V1 revision numbers for each romset.
* pc8801.cpp: move OPN/OPNA sound chip mounts to internal model types, add stereo mixing
* pc8801.cpp: add sound irq pending mechanism, particularly needed by Telenet games
* pc8801_flop.xml: update QA notes
* pc8801_flop.xml: more misc QA notes
* pc8801.cpp: improve irq semantics, connect rxrdy_irq_w signal
* pc8801.cpp: fix some irq regressions
* pc8801.cpp: make OPNA a bit less louder, QA checkpoint
* pc8801.cpp: fix broken link, unmapped I/O documentation
* pc8801.cpp: add JMB-X1 map, other minor notes
* pc8801_flop.xml: fix metalora title and manufacturer
* pc8801.cpp: minor cleanups
* pc8801.cpp: start inheriting from base pc8001_base_state, add initial hooks for actual 3301 + i8257 devices
* pc8801.cpp: fix port40_r reading mistake
* pc8801.cpp: fix 24kHz pixel clock
* pc8801.cpp: 3301 irq is tied to VRTC not INT
* upd3301.cpp: fix VRTC vblank/display bit timer
* pc8801.cpp: fix DMA readback
* upd3301.cpp: convert to logmasked
* upd3301.cpp: support for no attributes/no special control mode
* pc8801.cpp: simplify bitmap 3bpp drawing and add preliminary palette rasters
* pc8801.cpp: misc documentation updates
* upd3301.cpp: clear bitmap layer on FIFO reset
* i8214.cpp: PoC in separating INT ASSERT and CLEAR phases
pc8801.cpp: tie acknowledge to INT rather than inside callback. Avoids spurious irq regressions;
* upd3301.cpp: handle bitmaps as pure transparent;
pc8801.cpp: add BG Pal handling, honor transparency in all bitmap layers;
* pc8801.cpp: minor cleanups
* pc8801.cpp: better handling of bitmap fills
* pc8001.cpp: carry over attribute fetches between lines when 3301 is in color mode
* pc8801_flop.xml: update QA, move notes from main driver
* pc8801.cpp: implement colorized b&w graphic modes
* pc8801.cpp: cleanup obsolete functions
* pc8801.cpp: extend a bunch of notes
* pc8801.cpp: add boilerplate code for base irq mechanism
* pc8801.cpp: add expansion card support, with JMB-X1 (partly addresses #8709), PC-8801-23 and PCG-8100 as PoC examples.
* pc8801_exp.h: fix CI clang build
* pc8801_31.cpp: SW list hookup
New NOT_WORKING software list additions
---------------------------------------
pc8801_cdrom.xml: CD Takarabako [r09]
* pc8801.cpp: promote some romsets to parent
* pc8801.h: reinstate dummy initialization in state machines
* pc8801.cpp: save_item to all variables in state machines
Diffstat (limited to 'src/mame/machine')
-rw-r--r-- | src/mame/machine/pc80s31k.cpp | 9 | ||||
-rw-r--r-- | src/mame/machine/pc80s31k.h | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/mame/machine/pc80s31k.cpp b/src/mame/machine/pc80s31k.cpp index 7ecafea85a8..383745c3c89 100644 --- a/src/mame/machine/pc80s31k.cpp +++ b/src/mame/machine/pc80s31k.cpp @@ -30,6 +30,8 @@ \- It then tries to read at memory [0xc0ff], set the value read in [0xf012]; \- Expects that ROM [0x0000] is not equal to 0xc3; Bottom line: Is it trying to access some custom HW? + - Hookup a bridge for internal BIOSes (later PC8801 models); + - Save state support (resuming fails latch hookups here); =================================================================================================== @@ -255,13 +257,14 @@ IRQ_CALLBACK_MEMBER(pc80s31_device::irq_cb) void pc80s31_device::device_add_mconfig(machine_config &config) { - constexpr XTAL fdc_xtal = XTAL(4'000'000); - Z80(config, m_fdc_cpu, fdc_xtal); + // TODO: confirm clock arrangement + constexpr XTAL fdc_xtal = XTAL(8'000'000); + Z80(config, m_fdc_cpu, fdc_xtal / 2); m_fdc_cpu->set_addrmap(AS_PROGRAM, &pc80s31_device::fdc_map); m_fdc_cpu->set_addrmap(AS_IO, &pc80s31_device::fdc_io); m_fdc_cpu->set_irq_acknowledge_callback(FUNC(pc80s31_device::irq_cb)); - UPD765A(config, m_fdc, XTAL(4'000'000), true, true); + UPD765A(config, m_fdc, fdc_xtal, true, true); m_fdc->intrq_wr_callback().set_inputline(m_fdc_cpu, INPUT_LINE_IRQ0); for (auto &floppy : m_floppy) diff --git a/src/mame/machine/pc80s31k.h b/src/mame/machine/pc80s31k.h index e1050f60799..4d08610455b 100644 --- a/src/mame/machine/pc80s31k.h +++ b/src/mame/machine/pc80s31k.h @@ -44,7 +44,7 @@ protected: required_device<upd765a_device> m_fdc; required_device_array<floppy_connector, 2> m_floppy; - u8 m_irq_vector; + u8 m_irq_vector = 0; private: required_device<z80_device> m_fdc_cpu; @@ -61,7 +61,7 @@ private: u8 terminal_count_r(address_space &space); void motor_control_w(u8 data); - emu_timer *m_tc_zero_timer; + emu_timer *m_tc_zero_timer = nullptr; IRQ_CALLBACK_MEMBER(irq_cb); }; |