-emu/render.cpp: Get the initial view check off the hot path (fixes MT08159).

-Tidied up a few things, reduced bloat in a few more slots layouts.
This commit is contained in:
Vas Crabb 2021-12-24 08:57:13 +11:00
parent 5fe4dbaa9b
commit c0e2654dea
19 changed files with 622 additions and 10325 deletions

View File

@ -2,10 +2,10 @@
// copyright-holders:R. Belmont // copyright-holders:R. Belmont
/*************************************************************************** /***************************************************************************
Apple II bus slot cards Apple II bus slot cards
All of these cards are electrically compatible, but for compatibility All of these cards are electrically compatible, but for compatibility
reasons we divide them by machine type. reasons we divide them by machine type.
***************************************************************************/ ***************************************************************************/
@ -69,233 +69,233 @@
void apple2_slot0_cards(device_slot_interface &device) void apple2_slot0_cards(device_slot_interface &device)
{ {
device.option_add("lang", A2BUS_RAMCARD16K); /* Apple II RAM Language Card */ device.option_add("lang", A2BUS_RAMCARD16K); // Apple II RAM Language Card
device.option_add("ssram", A2BUS_RAMCARD128K); /* Saturn Systems 128K extended language card */ device.option_add("ssram", A2BUS_RAMCARD128K); // Saturn Systems 128K extended language card
} }
void apple2_cards(device_slot_interface &device) void apple2_cards(device_slot_interface &device)
{ {
device.option_add("diskii", A2BUS_DISKII); /* Disk II Controller Card */ device.option_add("diskii", A2BUS_DISKII); // Disk II Controller Card
device.option_add("diskiing", A2BUS_DISKIING); /* Disk II Controller Card, cycle-accurate version */ device.option_add("diskiing", A2BUS_DISKIING); // Disk II Controller Card, cycle-accurate version
device.option_add("diskiing13", A2BUS_DISKIING13); /* Disk II Controller Card, cycle-accurate version */ device.option_add("diskiing13", A2BUS_DISKIING13); // Disk II Controller Card, cycle-accurate version
device.option_add("diskiiiwm", A2BUS_IWM_CARD); /* IWM Disk II Controller Card */ device.option_add("diskiiiwm", A2BUS_IWM_CARD); // IWM Disk II Controller Card
device.option_add("mockingboard", A2BUS_MOCKINGBOARD); /* Sweet Micro Systems Mockingboard */ device.option_add("mockingboard", A2BUS_MOCKINGBOARD); // Sweet Micro Systems Mockingboard
device.option_add("phasor", A2BUS_PHASOR); /* Applied Engineering Phasor */ device.option_add("phasor", A2BUS_PHASOR); // Applied Engineering Phasor
device.option_add("cffa2", A2BUS_CFFA2); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */ device.option_add("cffa2", A2BUS_CFFA2); // CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware
device.option_add("cffa202", A2BUS_CFFA2_6502); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */ device.option_add("cffa202", A2BUS_CFFA2_6502); // CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware
device.option_add("memexp", A2BUS_MEMEXP); /* Apple II Memory Expansion Card */ device.option_add("memexp", A2BUS_MEMEXP); // Apple II Memory Expansion Card
device.option_add("ramfactor", A2BUS_RAMFACTOR); /* Applied Engineering RamFactor */ device.option_add("ramfactor", A2BUS_RAMFACTOR); // Applied Engineering RamFactor
device.option_add("thclock", A2BUS_THUNDERCLOCK); /* ThunderWare ThunderClock Plus */ device.option_add("thclock", A2BUS_THUNDERCLOCK); // ThunderWare ThunderClock Plus
device.option_add("softcard", A2BUS_SOFTCARD); /* Microsoft SoftCard */ device.option_add("softcard", A2BUS_SOFTCARD); // Microsoft SoftCard
device.option_add("videoterm", A2BUS_VIDEOTERM); /* Videx VideoTerm */ device.option_add("videoterm", A2BUS_VIDEOTERM); // Videx VideoTerm
device.option_add("ssc", A2BUS_SSC); /* Apple Super Serial Card */ device.option_add("ssc", A2BUS_SSC); // Apple Super Serial Card
device.option_add("ssi", APRICORN_SSI); /* Apricorn Super Serial Imager */ device.option_add("ssi", APRICORN_SSI); // Apricorn Super Serial Imager
device.option_add("swyft", A2BUS_SWYFT); /* IAI SwyftCard */ device.option_add("swyft", A2BUS_SWYFT); // IAI SwyftCard
device.option_add("themill", A2BUS_THEMILL); /* Stellation Two The Mill (6809 card) */ device.option_add("themill", A2BUS_THEMILL); // Stellation Two The Mill (6809 card)
device.option_add("sam", A2BUS_SAM); /* SAM Software Automated Mouth (8-bit DAC + speaker) */ device.option_add("sam", A2BUS_SAM); // SAM Software Automated Mouth (8-bit DAC + speaker)
device.option_add("alfam2", A2BUS_ALFAM2); /* ALF Apple Music II */ device.option_add("alfam2", A2BUS_ALFAM2); // ALF Apple Music II
device.option_add("echoii", A2BUS_ECHOII); /* Street Electronics Echo II */ device.option_add("echoii", A2BUS_ECHOII); // Street Electronics Echo II
device.option_add("ap16", A2BUS_IBSAP16); /* IBS AP16 (German VideoTerm clone) */ device.option_add("ap16", A2BUS_IBSAP16); // IBS AP16 (German VideoTerm clone)
device.option_add("ap16alt", A2BUS_IBSAP16ALT); /* IBS AP16 (German VideoTerm clone), alternate revision */ device.option_add("ap16alt", A2BUS_IBSAP16ALT); // IBS AP16 (German VideoTerm clone), alternate revision
device.option_add("vtc1", A2BUS_VTC1); /* Unknown VideoTerm clone */ device.option_add("vtc1", A2BUS_VTC1); // Unknown VideoTerm clone
device.option_add("arcbd", A2BUS_ARCADEBOARD); /* Third Millenium Engineering Arcade Board */ device.option_add("arcbd", A2BUS_ARCADEBOARD); // Third Millenium Engineering Arcade Board
device.option_add("midi", A2BUS_MIDI); /* Generic 6840+6850 MIDI board */ device.option_add("midi", A2BUS_MIDI); // Generic 6840+6850 MIDI board
device.option_add("zipdrive", A2BUS_ZIPDRIVE); /* ZIP Technologies IDE card */ device.option_add("zipdrive", A2BUS_ZIPDRIVE); // ZIP Technologies IDE card
device.option_add("echoiiplus", A2BUS_ECHOPLUS); /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */ device.option_add("echoiiplus", A2BUS_ECHOPLUS); // Street Electronics Echo Plus (Echo II + Mockingboard clone)
device.option_add("scsi", A2BUS_SCSI); /* Apple II SCSI Card */ device.option_add("scsi", A2BUS_SCSI); // Apple II SCSI Card
device.option_add("applicard", A2BUS_APPLICARD); /* PCPI Applicard */ device.option_add("applicard", A2BUS_APPLICARD); // PCPI Applicard
device.option_add("aesms", A2BUS_AESMS); /* Applied Engineering Super Music Synthesizer */ device.option_add("aesms", A2BUS_AESMS); // Applied Engineering Super Music Synthesizer
device.option_add("ultraterm", A2BUS_ULTRATERM); /* Videx UltraTerm (original) */ device.option_add("ultraterm", A2BUS_ULTRATERM); // Videx UltraTerm (original)
device.option_add("ultratermenh", A2BUS_ULTRATERMENH); /* Videx UltraTerm (enhanced //e) */ device.option_add("ultratermenh", A2BUS_ULTRATERMENH); // Videx UltraTerm (enhanced //e)
device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */ device.option_add("aevm80", A2BUS_AEVIEWMASTER80); // Applied Engineering ViewMaster 80
device.option_add("parprn", A2BUS_PARPRN); /* Apple II Parallel Printer Interface Card */ device.option_add("parprn", A2BUS_PARPRN); // Apple II Parallel Printer Interface Card
device.option_add("parallel", A2BUS_PIC); /* Apple II Parallel Interface Card */ device.option_add("parallel", A2BUS_PIC); // Apple II Parallel Interface Card
device.option_add("grappler", A2BUS_GRAPPLER); /* Orange Micro Grappler Printer Interface card */ device.option_add("grappler", A2BUS_GRAPPLER); // Orange Micro Grappler Printer Interface card
device.option_add("grapplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */ device.option_add("grapplus", A2BUS_GRAPPLERPLUS); // Orange Micro Grappler+ Printer Interface card
device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); /* Orange Micro Buffered Grappler+ Printer Interface card */ device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); // Orange Micro Buffered Grappler+ Printer Interface card
device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); /* Orange Micro Buffered Grappler+ (rev A) Printer Interface card */ device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); // Orange Micro Buffered Grappler+ (rev A) Printer Interface card
device.option_add("corvus", A2BUS_CORVUS); /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */ device.option_add("corvus", A2BUS_CORVUS); // Corvus flat-cable HDD interface (see notes in a2corvus.c)
device.option_add("mcms1", A2BUS_MCMS1); /* Mountain Computer Music System, card 1 of 2 */ device.option_add("mcms1", A2BUS_MCMS1); // Mountain Computer Music System, card 1 of 2
device.option_add("mcms2", A2BUS_MCMS2); /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */ device.option_add("mcms2", A2BUS_MCMS2); // Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1!
device.option_add("dx1", A2BUS_DX1); /* Decillonix DX-1 sampler card */ device.option_add("dx1", A2BUS_DX1); // Decillonix DX-1 sampler card
device.option_add("tm2ho", A2BUS_TIMEMASTERHO); /* Applied Engineering TimeMaster II H.O. */ device.option_add("tm2ho", A2BUS_TIMEMASTERHO); // Applied Engineering TimeMaster II H.O.
device.option_add("mouse", A2BUS_MOUSE); /* Apple II Mouse Card */ device.option_add("mouse", A2BUS_MOUSE); // Apple II Mouse Card
device.option_add("ezcgi", A2BUS_EZCGI); /* E-Z Color Graphics Interface */ device.option_add("ezcgi", A2BUS_EZCGI); // E-Z Color Graphics Interface
device.option_add("ezcgi9938", A2BUS_EZCGI_9938); /* E-Z Color Graphics Interface (TMS9938) */ device.option_add("ezcgi9938", A2BUS_EZCGI_9938); // E-Z Color Graphics Interface (TMS9938)
device.option_add("ezcgi9958", A2BUS_EZCGI_9958); /* E-Z Color Graphics Interface (TMS9958) */ device.option_add("ezcgi9958", A2BUS_EZCGI_9958); // E-Z Color Graphics Interface (TMS9958)
device.option_add("ssprite", A2BUS_SSPRITE); /* Synetix SuperSprite Board */ device.option_add("ssprite", A2BUS_SSPRITE); // Synetix SuperSprite Board
device.option_add("ssbapple", A2BUS_SSBAPPLE); /* SSB Apple speech board */ device.option_add("ssbapple", A2BUS_SSBAPPLE); // SSB Apple speech board
device.option_add("4play", A2BUS_4PLAY); /* 4Play Joystick Card (Rev. B) */ device.option_add("4play", A2BUS_4PLAY); // 4Play Joystick Card (Rev. B)
device.option_add("ceyes2", A2BUS_COMPUTEREYES2); /* ComputerEyes/2 Video Digitizer */ device.option_add("ceyes2", A2BUS_COMPUTEREYES2); // ComputerEyes/2 Video Digitizer
device.option_add("twarp", A2BUS_TRANSWARP); /* AE TransWarp accelerator */ device.option_add("twarp", A2BUS_TRANSWARP); // AE TransWarp accelerator
device.option_add("applesurance", A2BUS_APPLESURANCE); /* Applesurance Diagnostic Controller */ device.option_add("applesurance", A2BUS_APPLESURANCE); // Applesurance Diagnostic Controller
// device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); /* Magic Musician Card */ // device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); // Magic Musician Card
device.option_add("byte8251", A2BUS_BYTE8251); /* BYTE Magazine 8251 serial card */ device.option_add("byte8251", A2BUS_BYTE8251); // BYTE Magazine 8251 serial card
device.option_add("suprterm", A2BUS_SUPRTERMINAL); /* M&R Enterprises SUP'R'TERMINAL 80-column card */ device.option_add("suprterm", A2BUS_SUPRTERMINAL); // M&R Enterprises SUP'R'TERMINAL 80-column card
device.option_add("uniprint", A2BUS_UNIPRINT); /* Videx Uniprint parallel printer card */ device.option_add("uniprint", A2BUS_UNIPRINT); // Videx Uniprint parallel printer card
device.option_add("ccs7710", A2BUS_CCS7710); /* California Computer Systems Model 7710 Asynchronous Serial Interface */ device.option_add("ccs7710", A2BUS_CCS7710); // California Computer Systems Model 7710 Asynchronous Serial Interface
device.option_add("booti", A2BUS_BOOTI); /* Booti Card */ device.option_add("booti", A2BUS_BOOTI); // Booti Card
device.option_add("q68", A2BUS_Q68); /* Stellation Q68 68000 card */ device.option_add("q68", A2BUS_Q68); // Stellation Q68 68000 card
device.option_add("q68plus", A2BUS_Q68PLUS); /* Stellation Q68 Plus 68000 card */ device.option_add("q68plus", A2BUS_Q68PLUS); // Stellation Q68 Plus 68000 card
device.option_add("grafex", A2BUS_GRAFEX); /* Grafex card (uPD7220 graphics) */ device.option_add("grafex", A2BUS_GRAFEX); // Grafex card (uPD7220 graphics)
} }
void apple2e_cards(device_slot_interface &device) void apple2e_cards(device_slot_interface &device)
{ {
device.option_add("diskii", A2BUS_DISKII); /* Disk II Controller Card */ device.option_add("diskii", A2BUS_DISKII); // Disk II Controller Card
device.option_add("diskiing", A2BUS_DISKIING); /* Disk II Controller Card, cycle-accurate version */ device.option_add("diskiing", A2BUS_DISKIING); // Disk II Controller Card, cycle-accurate version
device.option_add("diskiing13", A2BUS_DISKIING13); /* Disk II Controller Card, cycle-accurate version */ device.option_add("diskiing13", A2BUS_DISKIING13); // Disk II Controller Card, cycle-accurate version
device.option_add("diskiiiwm", A2BUS_IWM_CARD); /* IWM Disk II Controller Card */ device.option_add("diskiiiwm", A2BUS_IWM_CARD); // IWM Disk II Controller Card
device.option_add("mockingboard", A2BUS_MOCKINGBOARD); /* Sweet Micro Systems Mockingboard */ device.option_add("mockingboard", A2BUS_MOCKINGBOARD); // Sweet Micro Systems Mockingboard
device.option_add("phasor", A2BUS_PHASOR); /* Applied Engineering Phasor */ device.option_add("phasor", A2BUS_PHASOR); // Applied Engineering Phasor
device.option_add("cffa2", A2BUS_CFFA2); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */ device.option_add("cffa2", A2BUS_CFFA2); // CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware
device.option_add("cffa202", A2BUS_CFFA2_6502); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */ device.option_add("cffa202", A2BUS_CFFA2_6502); // CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware
device.option_add("memexp", A2BUS_MEMEXP); /* Apple II Memory Expansion Card */ device.option_add("memexp", A2BUS_MEMEXP); // Apple II Memory Expansion Card
device.option_add("ramfactor", A2BUS_RAMFACTOR); /* Applied Engineering RamFactor */ device.option_add("ramfactor", A2BUS_RAMFACTOR); // Applied Engineering RamFactor
device.option_add("thclock", A2BUS_THUNDERCLOCK); /* ThunderWare ThunderClock Plus */ device.option_add("thclock", A2BUS_THUNDERCLOCK); // ThunderWare ThunderClock Plus
device.option_add("softcard", A2BUS_SOFTCARD); /* Microsoft SoftCard */ device.option_add("softcard", A2BUS_SOFTCARD); // Microsoft SoftCard
device.option_add("videoterm", A2BUS_VIDEOTERM); /* Videx VideoTerm */ device.option_add("videoterm", A2BUS_VIDEOTERM); // Videx VideoTerm
device.option_add("ssc", A2BUS_SSC); /* Apple Super Serial Card */ device.option_add("ssc", A2BUS_SSC); // Apple Super Serial Card
device.option_add("ssi", APRICORN_SSI); /* Apricorn Super Serial Imager */ device.option_add("ssi", APRICORN_SSI); // Apricorn Super Serial Imager
device.option_add("swyft", A2BUS_SWYFT); /* IAI SwyftCard */ device.option_add("swyft", A2BUS_SWYFT); // IAI SwyftCard
device.option_add("themill", A2BUS_THEMILL); /* Stellation Two The Mill (6809 card) */ device.option_add("themill", A2BUS_THEMILL); // Stellation Two The Mill (6809 card)
device.option_add("sam", A2BUS_SAM); /* SAM Software Automated Mouth (8-bit DAC + speaker) */ device.option_add("sam", A2BUS_SAM); // SAM Software Automated Mouth (8-bit DAC + speaker)
device.option_add("alfam2", A2BUS_ALFAM2); /* ALF Apple Music II */ device.option_add("alfam2", A2BUS_ALFAM2); // ALF Apple Music II
device.option_add("echoii", A2BUS_ECHOII); /* Street Electronics Echo II */ device.option_add("echoii", A2BUS_ECHOII); // Street Electronics Echo II
device.option_add("ap16", A2BUS_IBSAP16); /* IBS AP16 (German VideoTerm clone) */ device.option_add("ap16", A2BUS_IBSAP16); // IBS AP16 (German VideoTerm clone)
device.option_add("ap16alt", A2BUS_IBSAP16ALT); /* IBS AP16 (German VideoTerm clone), alternate revision */ device.option_add("ap16alt", A2BUS_IBSAP16ALT); // IBS AP16 (German VideoTerm clone), alternate revision
device.option_add("vtc1", A2BUS_VTC1); /* Unknown VideoTerm clone */ device.option_add("vtc1", A2BUS_VTC1); // Unknown VideoTerm clone
device.option_add("arcbd", A2BUS_ARCADEBOARD); /* Third Millenium Engineering Arcade Board */ device.option_add("arcbd", A2BUS_ARCADEBOARD); // Third Millenium Engineering Arcade Board
device.option_add("midi", A2BUS_MIDI); /* Generic 6840+6850 MIDI board */ device.option_add("midi", A2BUS_MIDI); // Generic 6840+6850 MIDI board
device.option_add("zipdrive", A2BUS_ZIPDRIVE); /* ZIP Technologies IDE card */ device.option_add("zipdrive", A2BUS_ZIPDRIVE); // ZIP Technologies IDE card
device.option_add("focusdrive", A2BUS_FOCUSDRIVE); /* Focus Drive IDE card */ device.option_add("focusdrive", A2BUS_FOCUSDRIVE); // Focus Drive IDE card
device.option_add("echoiiplus", A2BUS_ECHOPLUS); /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */ device.option_add("echoiiplus", A2BUS_ECHOPLUS); // Street Electronics Echo Plus (Echo II + Mockingboard clone)
device.option_add("scsi", A2BUS_SCSI); /* Apple II SCSI Card */ device.option_add("scsi", A2BUS_SCSI); // Apple II SCSI Card
device.option_add("hsscsi", A2BUS_HSSCSI); /* Apple II High-Speed SCSI Card */ device.option_add("hsscsi", A2BUS_HSSCSI); // Apple II High-Speed SCSI Card
device.option_add("applicard", A2BUS_APPLICARD); /* PCPI Applicard */ device.option_add("applicard", A2BUS_APPLICARD); // PCPI Applicard
device.option_add("aesms", A2BUS_AESMS); /* Applied Engineering Super Music Synthesizer */ device.option_add("aesms", A2BUS_AESMS); // Applied Engineering Super Music Synthesizer
device.option_add("ultraterm", A2BUS_ULTRATERM); /* Videx UltraTerm (original) */ device.option_add("ultraterm", A2BUS_ULTRATERM); // Videx UltraTerm (original)
device.option_add("ultratermenh", A2BUS_ULTRATERMENH); /* Videx UltraTerm (enhanced //e) */ device.option_add("ultratermenh", A2BUS_ULTRATERMENH); // Videx UltraTerm (enhanced //e)
device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */ device.option_add("aevm80", A2BUS_AEVIEWMASTER80); // Applied Engineering ViewMaster 80
device.option_add("parprn", A2BUS_PARPRN); /* Apple II Parallel Printer Interface Card */ device.option_add("parprn", A2BUS_PARPRN); // Apple II Parallel Printer Interface Card
device.option_add("parallel", A2BUS_PIC); /* Apple II Parallel Interface Card */ device.option_add("parallel", A2BUS_PIC); // Apple II Parallel Interface Card
device.option_add("grappler", A2BUS_GRAPPLER); /* Orange Micro Grappler Printer Interface card */ device.option_add("grappler", A2BUS_GRAPPLER); // Orange Micro Grappler Printer Interface card
device.option_add("grapplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */ device.option_add("grapplus", A2BUS_GRAPPLERPLUS); // Orange Micro Grappler+ Printer Interface card
device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); /* Orange Micro Buffered Grappler+ Printer Interface card */ device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); // Orange Micro Buffered Grappler+ Printer Interface card
device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); /* Orange Micro Buffered Grappler+ (rev A) Printer Interface card */ device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); // Orange Micro Buffered Grappler+ (rev A) Printer Interface card
device.option_add("corvus", A2BUS_CORVUS); /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */ device.option_add("corvus", A2BUS_CORVUS); // Corvus flat-cable HDD interface (see notes in a2corvus.c)
device.option_add("mcms1", A2BUS_MCMS1); /* Mountain Computer Music System, card 1 of 2 */ device.option_add("mcms1", A2BUS_MCMS1); // Mountain Computer Music System, card 1 of 2
device.option_add("mcms2", A2BUS_MCMS2); /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */ device.option_add("mcms2", A2BUS_MCMS2); // Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1!
device.option_add("dx1", A2BUS_DX1); /* Decillonix DX-1 sampler card */ device.option_add("dx1", A2BUS_DX1); // Decillonix DX-1 sampler card
device.option_add("tm2ho", A2BUS_TIMEMASTERHO); /* Applied Engineering TimeMaster II H.O. */ device.option_add("tm2ho", A2BUS_TIMEMASTERHO); // Applied Engineering TimeMaster II H.O.
device.option_add("mouse", A2BUS_MOUSE); /* Apple II Mouse Card */ device.option_add("mouse", A2BUS_MOUSE); // Apple II Mouse Card
device.option_add("ezcgi", A2BUS_EZCGI); /* E-Z Color Graphics Interface */ device.option_add("ezcgi", A2BUS_EZCGI); // E-Z Color Graphics Interface
device.option_add("ezcgi9938", A2BUS_EZCGI_9938); /* E-Z Color Graphics Interface (TMS9938) */ device.option_add("ezcgi9938", A2BUS_EZCGI_9938); // E-Z Color Graphics Interface (TMS9938)
device.option_add("ezcgi9958", A2BUS_EZCGI_9958); /* E-Z Color Graphics Interface (TMS9958) */ device.option_add("ezcgi9958", A2BUS_EZCGI_9958); // E-Z Color Graphics Interface (TMS9958)
// device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); /* Magic Musician Card */ // device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); // Magic Musician Card
device.option_add("pcxport", A2BUS_PCXPORTER); /* Applied Engineering PC Transporter */ device.option_add("pcxport", A2BUS_PCXPORTER); // Applied Engineering PC Transporter
device.option_add("ssprite", A2BUS_SSPRITE); /* Synetix SuperSprite Board */ device.option_add("ssprite", A2BUS_SSPRITE); // Synetix SuperSprite Board
device.option_add("ssbapple", A2BUS_SSBAPPLE); /* SSB Apple speech board */ device.option_add("ssbapple", A2BUS_SSBAPPLE); // SSB Apple speech board
device.option_add("twarp", A2BUS_TRANSWARP); /* AE TransWarp accelerator */ device.option_add("twarp", A2BUS_TRANSWARP); // AE TransWarp accelerator
device.option_add("vulcan", A2BUS_VULCANIIE); /* Applied Engineering Vulcan IDE drive */ device.option_add("vulcan", A2BUS_VULCANIIE); // Applied Engineering Vulcan IDE drive
device.option_add("4play", A2BUS_4PLAY); /* 4Play Joystick Card (Rev. B) */ device.option_add("4play", A2BUS_4PLAY); // 4Play Joystick Card (Rev. B)
device.option_add("ceyes2", A2BUS_COMPUTEREYES2); /* ComputerEyes/2 Video Digitizer */ device.option_add("ceyes2", A2BUS_COMPUTEREYES2); // ComputerEyes/2 Video Digitizer
device.option_add("applesurance", A2BUS_APPLESURANCE); /* Applesurance Diagnostic Controller */ device.option_add("applesurance", A2BUS_APPLESURANCE); // Applesurance Diagnostic Controller
device.option_add("byte8251", A2BUS_BYTE8251); /* BYTE Magazine 8251 serial card */ device.option_add("byte8251", A2BUS_BYTE8251); // BYTE Magazine 8251 serial card
device.option_add("cmsscsi", A2BUS_CMSSCSI); /* CMS Apple II SCSI Card */ device.option_add("cmsscsi", A2BUS_CMSSCSI); // CMS Apple II SCSI Card
device.option_add("uthernet", A2BUS_UTHERNET); /* A2RetroSystems Uthernet card */ device.option_add("uthernet", A2BUS_UTHERNET); // A2RetroSystems Uthernet card
device.option_add("sider2", A2BUS_SIDER2); /* Advanced Tech Systems / First Class Peripherals Sider 2 SASI card */ device.option_add("sider2", A2BUS_SIDER2); // Advanced Tech Systems / First Class Peripherals Sider 2 SASI card
device.option_add("sider1", A2BUS_SIDER1); /* Advanced Tech Systems / First Class Peripherals Sider 1 SASI card */ device.option_add("sider1", A2BUS_SIDER1); // Advanced Tech Systems / First Class Peripherals Sider 1 SASI card
device.option_add("uniprint", A2BUS_UNIPRINT); /* Videx Uniprint parallel printer card */ device.option_add("uniprint", A2BUS_UNIPRINT); // Videx Uniprint parallel printer card
device.option_add("ccs7710", A2BUS_CCS7710); /* California Computer Systems Model 7710 Asynchronous Serial Interface */ device.option_add("ccs7710", A2BUS_CCS7710); // California Computer Systems Model 7710 Asynchronous Serial Interface
device.option_add("booti", A2BUS_BOOTI); /* Booti Card */ device.option_add("booti", A2BUS_BOOTI); // Booti Card
device.option_add("lancegs", A2BUS_LANCEGS); /* ///SHH SYSTEME LANceGS Card */ device.option_add("lancegs", A2BUS_LANCEGS); // ///SHH SYSTEME LANceGS Card
device.option_add("q68", A2BUS_Q68); /* Stellation Q68 68000 card */ device.option_add("q68", A2BUS_Q68); // Stellation Q68 68000 card
device.option_add("q68plus", A2BUS_Q68PLUS); /* Stellation Q68 Plus 68000 card */ device.option_add("q68plus", A2BUS_Q68PLUS); // Stellation Q68 Plus 68000 card
device.option_add("a2sd", A2BUS_A2SD); /* Florian Reitz AppleIISD */ device.option_add("a2sd", A2BUS_A2SD); // Florian Reitz AppleIISD
device.option_add("grafex", A2BUS_GRAFEX); /* Grafex card (uPD7220 graphics) */ device.option_add("grafex", A2BUS_GRAFEX); // Grafex card (uPD7220 graphics)
} }
void apple2gs_cards(device_slot_interface &device) void apple2gs_cards(device_slot_interface &device)
{ {
device.option_add("diskiing", A2BUS_DISKIING); /* Disk II Controller Card, cycle-accurate version */ device.option_add("diskiing", A2BUS_DISKIING); // Disk II Controller Card, cycle-accurate version
device.option_add("mockingboard", A2BUS_MOCKINGBOARD); /* Sweet Micro Systems Mockingboard */ device.option_add("mockingboard", A2BUS_MOCKINGBOARD); // Sweet Micro Systems Mockingboard
device.option_add("phasor", A2BUS_PHASOR); /* Applied Engineering Phasor */ device.option_add("phasor", A2BUS_PHASOR); // Applied Engineering Phasor
device.option_add("cffa2", A2BUS_CFFA2); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware */ device.option_add("cffa2", A2BUS_CFFA2); // CFFA2000 Compact Flash for Apple II (www.dreher.net), 65C02/65816 firmware
device.option_add("cffa202", A2BUS_CFFA2_6502); /* CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware */ device.option_add("cffa202", A2BUS_CFFA2_6502); // CFFA2000 Compact Flash for Apple II (www.dreher.net), 6502 firmware
device.option_add("memexp", A2BUS_MEMEXP); /* Apple II Memory Expansion Card */ device.option_add("memexp", A2BUS_MEMEXP); // Apple II Memory Expansion Card
device.option_add("ramfactor", A2BUS_RAMFACTOR); /* Applied Engineering RamFactor */ device.option_add("ramfactor", A2BUS_RAMFACTOR); // Applied Engineering RamFactor
device.option_add("thclock", A2BUS_THUNDERCLOCK); /* ThunderWare ThunderClock Plus */ device.option_add("thclock", A2BUS_THUNDERCLOCK); // ThunderWare ThunderClock Plus
device.option_add("softcard", A2BUS_SOFTCARD); /* Microsoft SoftCard */ device.option_add("softcard", A2BUS_SOFTCARD); // Microsoft SoftCard
device.option_add("videoterm", A2BUS_VIDEOTERM); /* Videx VideoTerm */ device.option_add("videoterm", A2BUS_VIDEOTERM); // Videx VideoTerm
device.option_add("ssc", A2BUS_SSC); /* Apple Super Serial Card */ device.option_add("ssc", A2BUS_SSC); // Apple Super Serial Card
device.option_add("ssi", APRICORN_SSI); /* Apricorn Super Serial Imager */ device.option_add("ssi", APRICORN_SSI); // Apricorn Super Serial Imager
device.option_add("swyft", A2BUS_SWYFT); /* IAI SwyftCard */ device.option_add("swyft", A2BUS_SWYFT); // IAI SwyftCard
device.option_add("themill", A2BUS_THEMILL); /* Stellation Two The Mill (6809 card) */ device.option_add("themill", A2BUS_THEMILL); // Stellation Two The Mill (6809 card)
device.option_add("sam", A2BUS_SAM); /* SAM Software Automated Mouth (8-bit DAC + speaker) */ device.option_add("sam", A2BUS_SAM); // SAM Software Automated Mouth (8-bit DAC + speaker)
device.option_add("alfam2", A2BUS_ALFAM2); /* ALF Apple Music II */ device.option_add("alfam2", A2BUS_ALFAM2); // ALF Apple Music II
device.option_add("echoii", A2BUS_ECHOII); /* Street Electronics Echo II */ device.option_add("echoii", A2BUS_ECHOII); // Street Electronics Echo II
device.option_add("ap16", A2BUS_IBSAP16); /* IBS AP16 (German VideoTerm clone) */ device.option_add("ap16", A2BUS_IBSAP16); // IBS AP16 (German VideoTerm clone)
device.option_add("ap16alt", A2BUS_IBSAP16ALT); /* IBS AP16 (German VideoTerm clone), alternate revision */ device.option_add("ap16alt", A2BUS_IBSAP16ALT); // IBS AP16 (German VideoTerm clone), alternate revision
device.option_add("vtc1", A2BUS_VTC1); /* Unknown VideoTerm clone */ device.option_add("vtc1", A2BUS_VTC1); // Unknown VideoTerm clone
device.option_add("arcbd", A2BUS_ARCADEBOARD); /* Third Millenium Engineering Arcade Board */ device.option_add("arcbd", A2BUS_ARCADEBOARD); // Third Millenium Engineering Arcade Board
device.option_add("midi", A2BUS_MIDI); /* Generic 6840+6850 MIDI board */ device.option_add("midi", A2BUS_MIDI); // Generic 6840+6850 MIDI board
device.option_add("zipdrive", A2BUS_ZIPDRIVE); /* ZIP Technologies IDE card */ device.option_add("zipdrive", A2BUS_ZIPDRIVE); // ZIP Technologies IDE card
device.option_add("focusdrive", A2BUS_FOCUSDRIVE); /* Focus Drive IDE card */ device.option_add("focusdrive", A2BUS_FOCUSDRIVE); // Focus Drive IDE card
device.option_add("echoiiplus", A2BUS_ECHOPLUS); /* Street Electronics Echo Plus (Echo II + Mockingboard clone) */ device.option_add("echoiiplus", A2BUS_ECHOPLUS); // Street Electronics Echo Plus (Echo II + Mockingboard clone)
device.option_add("scsi", A2BUS_SCSI); /* Apple II SCSI Card */ device.option_add("scsi", A2BUS_SCSI); // Apple II SCSI Card
device.option_add("hsscsi", A2BUS_HSSCSI); /* Apple II High-Speed SCSI Card */ device.option_add("hsscsi", A2BUS_HSSCSI); // Apple II High-Speed SCSI Card
device.option_add("applicard", A2BUS_APPLICARD); /* PCPI Applicard */ device.option_add("applicard", A2BUS_APPLICARD); // PCPI Applicard
device.option_add("aesms", A2BUS_AESMS); /* Applied Engineering Super Music Synthesizer */ device.option_add("aesms", A2BUS_AESMS); // Applied Engineering Super Music Synthesizer
device.option_add("ultraterm", A2BUS_ULTRATERM); /* Videx UltraTerm (original) */ device.option_add("ultraterm", A2BUS_ULTRATERM); // Videx UltraTerm (original)
device.option_add("ultratermenh", A2BUS_ULTRATERMENH); /* Videx UltraTerm (enhanced //e) */ device.option_add("ultratermenh", A2BUS_ULTRATERMENH); // Videx UltraTerm (enhanced //e)
device.option_add("aevm80", A2BUS_AEVIEWMASTER80); /* Applied Engineering ViewMaster 80 */ device.option_add("aevm80", A2BUS_AEVIEWMASTER80); // Applied Engineering ViewMaster 80
device.option_add("parprn", A2BUS_PARPRN); /* Apple II Parallel Printer Interface Card */ device.option_add("parprn", A2BUS_PARPRN); // Apple II Parallel Printer Interface Card
device.option_add("parallel", A2BUS_PIC); /* Apple Parallel Interface Card */ device.option_add("parallel", A2BUS_PIC); // Apple Parallel Interface Card
device.option_add("grappler", A2BUS_GRAPPLER); /* Orange Micro Grappler Printer Interface card */ device.option_add("grappler", A2BUS_GRAPPLER); // Orange Micro Grappler Printer Interface card
device.option_add("grapplus", A2BUS_GRAPPLERPLUS); /* Orange Micro Grappler+ Printer Interface card */ device.option_add("grapplus", A2BUS_GRAPPLERPLUS); // Orange Micro Grappler+ Printer Interface card
device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); /* Orange Micro Buffered Grappler+ Printer Interface card */ device.option_add("bufgrapplus", A2BUS_BUFGRAPPLERPLUS); // Orange Micro Buffered Grappler+ Printer Interface card
device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); /* Orange Micro Buffered Grappler+ (rev A) Printer Interface card */ device.option_add("bufgrapplusa", A2BUS_BUFGRAPPLERPLUSA); // Orange Micro Buffered Grappler+ (rev A) Printer Interface card
device.option_add("corvus", A2BUS_CORVUS); /* Corvus flat-cable HDD interface (see notes in a2corvus.c) */ device.option_add("corvus", A2BUS_CORVUS); // Corvus flat-cable HDD interface (see notes in a2corvus.c)
device.option_add("mcms1", A2BUS_MCMS1); /* Mountain Computer Music System, card 1 of 2 */ device.option_add("mcms1", A2BUS_MCMS1); // Mountain Computer Music System, card 1 of 2
device.option_add("mcms2", A2BUS_MCMS2); /* Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1! */ device.option_add("mcms2", A2BUS_MCMS2); // Mountain Computer Music System, card 2 of 2. must be in card 1's slot + 1!
device.option_add("dx1", A2BUS_DX1); /* Decillonix DX-1 sampler card */ device.option_add("dx1", A2BUS_DX1); // Decillonix DX-1 sampler card
device.option_add("tm2ho", A2BUS_TIMEMASTERHO); /* Applied Engineering TimeMaster II H.O. */ device.option_add("tm2ho", A2BUS_TIMEMASTERHO); // Applied Engineering TimeMaster II H.O.
device.option_add("mouse", A2BUS_MOUSE); /* Apple II Mouse Card */ device.option_add("mouse", A2BUS_MOUSE); // Apple II Mouse Card
device.option_add("ezcgi", A2BUS_EZCGI); /* E-Z Color Graphics Interface */ device.option_add("ezcgi", A2BUS_EZCGI); // E-Z Color Graphics Interface
device.option_add("ezcgi9938", A2BUS_EZCGI_9938); /* E-Z Color Graphics Interface (TMS9938) */ device.option_add("ezcgi9938", A2BUS_EZCGI_9938); // E-Z Color Graphics Interface (TMS9938)
device.option_add("ezcgi9958", A2BUS_EZCGI_9958); /* E-Z Color Graphics Interface (TMS9958) */ device.option_add("ezcgi9958", A2BUS_EZCGI_9958); // E-Z Color Graphics Interface (TMS9958)
device.option_add("vulcan", A2BUS_VULCAN); /* Applied Engineering Vulcan IDE drive */ device.option_add("vulcan", A2BUS_VULCAN); // Applied Engineering Vulcan IDE drive
device.option_add("vulcangold", A2BUS_VULCANGOLD); /* Applied Engineering Vulcan Gold IDE drive */ device.option_add("vulcangold", A2BUS_VULCANGOLD); // Applied Engineering Vulcan Gold IDE drive
device.option_add("4play", A2BUS_4PLAY); /* 4Play Joystick Card (Rev. B) */ device.option_add("4play", A2BUS_4PLAY); // 4Play Joystick Card (Rev. B)
// device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); /* Magic Musician Card */ // device.option_add("magicmusician", A2BUS_MAGICMUSICIAN); // Magic Musician Card
// device.option_add("pcxport", A2BUS_PCXPORTER); /* Applied Engineering PC Transporter */ // device.option_add("pcxport", A2BUS_PCXPORTER); // Applied Engineering PC Transporter
device.option_add("byte8251", A2BUS_BYTE8251); /* BYTE Magazine 8251 serial card */ device.option_add("byte8251", A2BUS_BYTE8251); // BYTE Magazine 8251 serial card
// device.option_add("hostram", A2BUS_HOSTRAM); /* Slot 7 RAM for GS Plus host protocol */ // device.option_add("hostram", A2BUS_HOSTRAM); // Slot 7 RAM for GS Plus host protocol
// device.option_add("ramfast", A2BUS_RAMFAST); /* C.V. Technologies RAMFast SCSI card */ // device.option_add("ramfast", A2BUS_RAMFAST); // C.V. Technologies RAMFast SCSI card
device.option_add("cmsscsi", A2BUS_CMSSCSI); /* CMS Apple II SCSI Card */ device.option_add("cmsscsi", A2BUS_CMSSCSI); // CMS Apple II SCSI Card
device.option_add("uthernet", A2BUS_UTHERNET); /* A2RetroSystems Uthernet card */ device.option_add("uthernet", A2BUS_UTHERNET); // A2RetroSystems Uthernet card
device.option_add("sider2", A2BUS_SIDER2); /* Advanced Tech Systems / First Class Peripherals Sider 2 SASI card */ device.option_add("sider2", A2BUS_SIDER2); // Advanced Tech Systems / First Class Peripherals Sider 2 SASI card
device.option_add("sider1", A2BUS_SIDER1); /* Advanced Tech Systems / First Class Peripherals Sider 1 SASI card */ device.option_add("sider1", A2BUS_SIDER1); // Advanced Tech Systems / First Class Peripherals Sider 1 SASI card
device.option_add("uniprint", A2BUS_UNIPRINT); /* Videx Uniprint parallel printer card */ device.option_add("uniprint", A2BUS_UNIPRINT); // Videx Uniprint parallel printer card
device.option_add("ccs7710", A2BUS_CCS7710); /* California Computer Systems Model 7710 Asynchronous Serial Interface */ device.option_add("ccs7710", A2BUS_CCS7710); // California Computer Systems Model 7710 Asynchronous Serial Interface
device.option_add("booti", A2BUS_BOOTI); /* Booti Card */ device.option_add("booti", A2BUS_BOOTI); // Booti Card
device.option_add("lancegs", A2BUS_LANCEGS); /* ///SHH SYSTEME LANceGS Card */ device.option_add("lancegs", A2BUS_LANCEGS); // ///SHH SYSTEME LANceGS Card
device.option_add("q68", A2BUS_Q68); /* Stellation Q68 68000 card */ device.option_add("q68", A2BUS_Q68); // Stellation Q68 68000 card
device.option_add("q68plus", A2BUS_Q68PLUS); /* Stellation Q68 Plus 68000 card */ device.option_add("q68plus", A2BUS_Q68PLUS); // Stellation Q68 Plus 68000 card
device.option_add("grafex", A2BUS_GRAFEX); /* Grafex card (uPD7220 graphics) */ device.option_add("grafex", A2BUS_GRAFEX); // Grafex card (uPD7220 graphics)
} }
void apple3_cards(device_slot_interface &device) void apple3_cards(device_slot_interface &device)
{ {
device.option_add("cffa2", A2BUS_CFFA2_6502); // CFFA2.0 Compact Flash for Apple II (www.dreher.net), 6502 firmware device.option_add("cffa2", A2BUS_CFFA2_6502); // CFFA2.0 Compact Flash for Apple II (www.dreher.net), 6502 firmware
device.option_add("applicard", A2BUS_APPLICARD); // PCPI Applicard device.option_add("applicard", A2BUS_APPLICARD); // PCPI Applicard
device.option_add("thclock", A2BUS_THUNDERCLOCK); // ThunderWare ThunderClock Plus - driver assumes slot 2 by default device.option_add("thclock", A2BUS_THUNDERCLOCK); // ThunderWare ThunderClock Plus - driver assumes slot 2 by default
device.option_add("mouse", A2BUS_MOUSE); // Apple II Mouse Card device.option_add("mouse", A2BUS_MOUSE); // Apple II Mouse Card
device.option_add("focusdrive", A2BUS_FOCUSDRIVE); // Focus Drive IDE card device.option_add("focusdrive", A2BUS_FOCUSDRIVE); // Focus Drive IDE card
device.option_add("cmsscsi", A2BUS_CMSSCSI); // CMS Apple II SCSI Card device.option_add("cmsscsi", A2BUS_CMSSCSI); // CMS Apple II SCSI Card
device.option_add("titan3plus2", A2BUS_TITAN3PLUS2); // Titan /// Plus 2 card device.option_add("titan3plus2", A2BUS_TITAN3PLUS2); // Titan /// Plus 2 card
device.option_add("mockingboard", A2BUS_MOCKINGBOARD); // Sweet Micro Systems Mockingboard (experimental on ///) device.option_add("mockingboard", A2BUS_MOCKINGBOARD); // Sweet Micro Systems Mockingboard (experimental on ///)
device.option_add("softcard3", A2BUS_SOFTCARD3); // Microsoft SoftCard /// device.option_add("softcard3", A2BUS_SOFTCARD3); // Microsoft SoftCard ///
device.option_add("grafex", A2BUS_GRAFEX); /* Grafex card (uPD7220 graphics) */ device.option_add("grafex", A2BUS_GRAFEX); // Grafex card (µPD7220 graphics)
} }

View File

@ -2,10 +2,10 @@
// copyright-holders:R. Belmont // copyright-holders:R. Belmont
/*************************************************************************** /***************************************************************************
Apple II bus slot cards Apple II bus slot cards
All of these cards are electrically compatible, but for compatibility All of these cards are electrically compatible, but for compatibility
reasons we divide them by machine type. reasons we divide them by machine type.
***************************************************************************/ ***************************************************************************/

View File

@ -29,8 +29,14 @@
#include "emu.h" #include "emu.h"
#include "grafex.h" #include "grafex.h"
#include "video/upd7220.h"
#include "screen.h" #include "screen.h"
namespace {
//************************************************************************** //**************************************************************************
// TYPE DEFINITIONS // TYPE DEFINITIONS
//************************************************************************** //**************************************************************************
@ -63,12 +69,6 @@ private:
rgb_t m_bg, m_fg; rgb_t m_bg, m_fg;
}; };
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE(A2BUS_GRAFEX, a2bus_grafex_device, "a2grafex", "Grafex-32")
//------------------------------------------------- //-------------------------------------------------
// device_add_mconfig - add device configuration // device_add_mconfig - add device configuration
//------------------------------------------------- //-------------------------------------------------
@ -132,3 +132,12 @@ UPD7220_DISPLAY_PIXELS_MEMBER(a2bus_grafex_device::hgdc_display_pixels )
bitmap.pix(y, x + i) = BIT(gfx, i) ? m_fg : m_bg; bitmap.pix(y, x + i) = BIT(gfx, i) ? m_fg : m_bg;
} }
} }
} // anonymous namespace
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_GRAFEX, device_a2bus_card_interface, a2bus_grafex_device, "a2grafex", "Grafex-32")

View File

@ -14,9 +14,8 @@
#pragma once #pragma once
#include "a2bus.h" #include "a2bus.h"
#include "video/upd7220.h"
// device type definition // device type definition
DECLARE_DEVICE_TYPE(A2BUS_GRAFEX, a2bus_grafex_device) DECLARE_DEVICE_TYPE(A2BUS_GRAFEX, device_a2bus_card_interface)
#endif // MAME_BUS_A2BUS_GRAFEX_H #endif // MAME_BUS_A2BUS_GRAFEX_H

View File

@ -214,7 +214,7 @@ uint8_t nes_disksys_device::read_m(offs_t offset)
void nes_disksys_device::hblank_irq(int scanline, int vblank, int blanked) void nes_disksys_device::hblank_irq(int scanline, int vblank, int blanked)
{ {
// FIXME: This looks like a gross hack that ties the disk byte transfer IRQ to the PPU. Seriously? // FIXME: This looks like a gross hack that ties the disk byte transfer IRQ to the PPU. Seriously?
if (m_irq_transfer) if (m_irq_transfer)
{ {
set_irq_line(ASSERT_LINE); set_irq_line(ASSERT_LINE);

View File

@ -1338,10 +1338,6 @@ void render_target::compute_minimum_size(s32 &minwidth, s32 &minheight)
render_primitive_list &render_target::get_primitives() render_primitive_list &render_target::get_primitives()
{ {
// remember the base values if this is the first frame
if (!m_base_view)
m_base_view = &current_view();
// switch to the next primitive list // switch to the next primitive list
render_primitive_list &list = m_primlist[m_listindex]; render_primitive_list &list = m_primlist[m_listindex];
m_listindex = (m_listindex + 1) % std::size(m_primlist); m_listindex = (m_listindex + 1) % std::size(m_primlist);
@ -2613,10 +2609,18 @@ int render_target::view_index(layout_view &targetview) const
// config_load - process config information // config_load - process config information
//------------------------------------------------- //-------------------------------------------------
void render_target::config_load(util::xml::data_node const &targetnode) void render_target::config_load(util::xml::data_node const *targetnode)
{ {
// remember the view selected via command line and INI options
if (!m_base_view)
m_base_view = &current_view();
// bail if no configuration
if (!targetnode)
return;
// find the view // find the view
const char *viewname = targetnode.get_attribute_string("view", nullptr); const char *viewname = targetnode->get_attribute_string("view", nullptr);
if (viewname != nullptr) if (viewname != nullptr)
for (int viewnum = 0; viewnum < 1000; viewnum++) for (int viewnum = 0; viewnum < 1000; viewnum++)
{ {
@ -2631,12 +2635,12 @@ void render_target::config_load(util::xml::data_node const &targetnode)
} }
// modify the artwork config // modify the artwork config
int const zoom = targetnode.get_attribute_int("zoom", -1); int const zoom = targetnode->get_attribute_int("zoom", -1);
if (zoom == 0 || zoom == 1) if (zoom == 0 || zoom == 1)
set_zoom_to_screen(zoom); set_zoom_to_screen(zoom);
// apply orientation // apply orientation
int rotate = targetnode.get_attribute_int("rotate", -1); int rotate = targetnode->get_attribute_int("rotate", -1);
if (rotate != -1) if (rotate != -1)
{ {
if (rotate == 90) if (rotate == 90)
@ -2660,7 +2664,7 @@ void render_target::config_load(util::xml::data_node const &targetnode)
} }
// apply per-view settings // apply per-view settings
for (util::xml::data_node const *viewnode = targetnode.get_child("view"); viewnode; viewnode = viewnode->get_next_sibling("view")) for (util::xml::data_node const *viewnode = targetnode->get_child("view"); viewnode; viewnode = viewnode->get_next_sibling("view"))
{ {
char const *const viewname = viewnode->get_attribute_string("name", nullptr); char const *const viewname = viewnode->get_attribute_string("name", nullptr);
if (!viewname) if (!viewname)
@ -3297,8 +3301,20 @@ void render_manager::resolve_tags()
void render_manager::config_load(config_type cfg_type, config_level cfg_level, util::xml::data_node const *parentnode) void render_manager::config_load(config_type cfg_type, config_level cfg_level, util::xml::data_node const *parentnode)
{ {
// we only care about system-specific configuration with matching nodes // we only care about system-specific configuration with matching nodes
if ((cfg_type != config_type::SYSTEM) || !parentnode) if (cfg_type == config_type::DEFAULT)
{
// let the targets stabilise themselves
for (render_target &target : m_targetlist)
{
if (!target.hidden())
target.config_load(nullptr);
}
return; return;
}
else if ((cfg_type != config_type::SYSTEM) || !parentnode)
{
return;
}
// check the UI target // check the UI target
util::xml::data_node const *const uinode = parentnode->get_child("interface"); util::xml::data_node const *const uinode = parentnode->get_child("interface");
@ -3314,7 +3330,7 @@ void render_manager::config_load(config_type cfg_type, config_level cfg_level, u
{ {
render_target *const target = target_by_index(targetnode->get_attribute_int("index", -1)); render_target *const target = target_by_index(targetnode->get_attribute_int("index", -1));
if (target && !target->hidden()) if (target && !target->hidden())
target->config_load(*targetnode); target->config_load(targetnode);
} }
// iterate over screen nodes // iterate over screen nodes

View File

@ -586,7 +586,7 @@ private:
std::pair<float, float> map_point_internal(s32 target_x, s32 target_y); std::pair<float, float> map_point_internal(s32 target_x, s32 target_y);
// config callbacks // config callbacks
void config_load(util::xml::data_node const &targetnode); void config_load(util::xml::data_node const *targetnode);
bool config_save(util::xml::data_node &targetnode); bool config_save(util::xml::data_node &targetnode);
// view lookups // view lookups

View File

@ -250,7 +250,7 @@ void igt_gameking_state::igt_gameking_map(address_map &map)
map(0x28010030, 0x28010033).r(FUNC(igt_gameking_state::uart_status_r)); // channel D map(0x28010030, 0x28010033).r(FUNC(igt_gameking_state::uart_status_r)); // channel D
map(0x28010034, 0x28010037).w(FUNC(igt_gameking_state::uart_w)); // channel D map(0x28010034, 0x28010037).w(FUNC(igt_gameking_state::uart_w)); // channel D
map(0x28020000, 0x280205ff).flags(i960_cpu_device::BURST).ram(); // CMOS? map(0x28020000, 0x280205ff).flags(i960_cpu_device::BURST).ram(); // CMOS?
// map(0x28020000, 0x2802007f).r(FUNC(igt_gameking_state::igt_gk_28010008_r)).nopw(); // map(0x28020000, 0x2802007f).r(FUNC(igt_gameking_state::igt_gk_28010008_r)).nopw();
map(0x28030000, 0x28030003).portr("IN0"); map(0x28030000, 0x28030003).portr("IN0");
// map(0x28040000, 0x2804007f).rw("quart2", FUNC(sc28c94_device::read), FUNC(sc28c94_device::write)).umask32(0x00ff00ff); // map(0x28040000, 0x2804007f).rw("quart2", FUNC(sc28c94_device::read), FUNC(sc28c94_device::write)).umask32(0x00ff00ff);
map(0x2804000a, 0x2804000a).w(FUNC(igt_gameking_state::unk_w)); map(0x2804000a, 0x2804000a).w(FUNC(igt_gameking_state::unk_w));

View File

@ -31,14 +31,17 @@
***************************************************************************/ ***************************************************************************/
#include "emu.h" #include "emu.h"
#include "cpu/z80/z80.h"
#include "machine/hds200_kbd.h" #include "machine/hds200_kbd.h"
#include "bus/rs232/rs232.h"
#include "cpu/z80/z80.h"
#include "machine/input_merger.h" #include "machine/input_merger.h"
#include "machine/mc68681.h" #include "machine/mc68681.h"
#include "machine/nvram.h" #include "machine/nvram.h"
#include "machine/z80dma.h" #include "machine/z80dma.h"
#include "video/scn2674.h" #include "video/scn2674.h"
#include "bus/rs232/rs232.h"
#include "emupal.h" #include "emupal.h"
#include "screen.h" #include "screen.h"
@ -53,8 +56,8 @@ namespace {
class hds200_state : public driver_device class hds200_state : public driver_device
{ {
public: public:
hds200_state(const machine_config &mconfig, device_type type, const char *tag) hds200_state(const machine_config &mconfig, device_type type, const char *tag) :
: driver_device(mconfig, type, tag), driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"), m_maincpu(*this, "maincpu"),
m_dma(*this, "dma"), m_dma(*this, "dma"),
m_screen(*this, "screen"), m_screen(*this, "screen"),
@ -173,10 +176,10 @@ SCN2674_DRAW_CHARACTER_MEMBER( hds200_state::draw_character )
// ------1- unknown // ------1- unknown
// -------0 unknown // -------0 unknown
if (ul && (BIT(attrcode, 4))) if (ul && BIT(attrcode, 4))
data = 0x1ff; data = 0x1ff;
if (blink && (BIT(attrcode, 3))) if (blink && BIT(attrcode, 3))
data = 0x000; data = 0x000;
// invert // invert

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff