summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/8080bw.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/8080bw.cpp')
-rw-r--r--src/mame/drivers/8080bw.cpp366
1 files changed, 183 insertions, 183 deletions
diff --git a/src/mame/drivers/8080bw.cpp b/src/mame/drivers/8080bw.cpp
index 4b1d80ed3a3..9b77b17ec1a 100644
--- a/src/mame/drivers/8080bw.cpp
+++ b/src/mame/drivers/8080bw.cpp
@@ -3569,20 +3569,20 @@ void _8080bw_state::init_invmulti()
/* */
/*******************************************************/
/***********************************************************************************************************************************
- This game was never released by Model Racing to the public.
+ This game was never released by Model Racing to the public.
- The assembler source files for this game were extracted from the original floppy disks used by the former Model Racing developer
- Adolfo Melilli (adolfo@melilli.com).
- Those disks were retrieved by Alessandro Bolgia (xadhoom76@gmail.com) and Lorenzo Fongaro (lorenzo.fongaro@virgilio.it) and
- dumped by Piero Andreini (pieroandreini@gmail.com) using KryoFlux hardware and software.
- Subsequently Jean Paul Piccato (j2pguard-spam@yahoo.com) mounted the images and compiled the source files, managed to set up a
- romset and wrote a MAME driver that aims to reproduce in the most faithful way the work of Melilli at Model Racing in late '70s.
+ The assembler source files for this game were extracted from the original floppy disks used by the former Model Racing developer
+ Adolfo Melilli (adolfo@melilli.com).
+ Those disks were retrieved by Alessandro Bolgia (xadhoom76@gmail.com) and Lorenzo Fongaro (lorenzo.fongaro@virgilio.it) and
+ dumped by Piero Andreini (pieroandreini@gmail.com) using KryoFlux hardware and software.
+ Subsequently Jean Paul Piccato (j2pguard-spam@yahoo.com) mounted the images and compiled the source files, managed to set up a
+ romset and wrote a MAME driver that aims to reproduce in the most faithful way the work of Melilli at Model Racing in late '70s.
- The game driver is not based on hardware inspection and is solely derived from assumptions I've made looking at the assembler
- code and comments written into the source files of the game. Several of those hypotheses came following the directions of
- previous yet contemporary Model Racing works (Eg: Claybuster) and were confirmed by Melilli himself.
+ The game driver is not based on hardware inspection and is solely derived from assumptions I've made looking at the assembler
+ code and comments written into the source files of the game. Several of those hypotheses came following the directions of
+ previous yet contemporary Model Racing works (Eg: Claybuster) and were confirmed by Melilli himself.
- Being unreleased this game lacks an official name, thus the name used in the source files was used instead.
+ Being unreleased this game lacks an official name, thus the name used in the source files was used instead.
***********************************************************************************************************************************/
void cane_state::cane_map(address_map &map)
@@ -3594,99 +3594,99 @@ void cane_state::cane_map(address_map &map)
void cane_state::cane_io_map(address_map &map)
{
/*********************************************************************************************************************************
- -----------
- I/O mapping
- -----------
- out:
- $00 - Unknown - Not yet emulated
- $01 - Hardware shift register - Shift count
- $02 - Hardware shift register - Shift data
- $03 - Audio sub-system - D0->sx0, D1->sx1, D2->sx2, D3->sx3, D4->sx4, D5-D7 unused
- sx0 mute/unmute all
- sx1,sx2,sx3 routed to 76477 mixer select
- sx4 routed to 555 one-shot trigger
- $04 - Reset watchdog timer
- $05 - Audio TOS
-
- in:
- $01 - CPO / coin input port
- $03 - Hardware shift register - Shift result
+ -----------
+ I/O mapping
+ -----------
+ out:
+ $00 - Unknown - Not yet emulated
+ $01 - Hardware shift register - Shift count
+ $02 - Hardware shift register - Shift data
+ $03 - Audio sub-system - D0->sx0, D1->sx1, D2->sx2, D3->sx3, D4->sx4, D5-D7 unused
+ sx0 mute/unmute all
+ sx1,sx2,sx3 routed to 76477 mixer select
+ sx4 routed to 555 one-shot trigger
+ $04 - Reset watchdog timer
+ $05 - Audio TOS
+
+ in:
+ $01 - CPO / coin input port
+ $03 - Hardware shift register - Shift result
=================================================================================================================
------------
-- OUT 0 --
Source file: CANE1.ED - Referenced only once in code, in the "rifle routine" (ROUTINE FUCILE)
- > ;ROUTINE FUCILE
- > CALL SPARO
- > OUT 0
+ > ;ROUTINE FUCILE
+ > CALL SPARO
+ > OUT 0
------------
-- OUT 1 --
Source files: CANE2.ED, MIRINO.ED
- Defined in CANE2.ED
+ Defined in CANE2.ED
- > PRMTR EQU 1
+ > PRMTR EQU 1
- and referenced multiple times in CANE2.ED and MIRINO.ED. Eg:
+ and referenced multiple times in CANE2.ED and MIRINO.ED. Eg:
- > ;PER RISPETTARE POS ORIZZONT. UCCELLO
- > LXI D,TPADEL
- > XRA A
- > OUT PRMTR
+ > ;PER RISPETTARE POS ORIZZONT. UCCELLO
+ > LXI D,TPADEL
+ > XRA A
+ > OUT PRMTR
------------
-- OUT 2 --
Source files: CANE1.ED, CANE2.ED, MIRINO.ED
- Defined in CANE2.ED
+ Defined in CANE2.ED
- > DATO EQU 2
+ > DATO EQU 2
- and referenced multiple times in CANE1.ED and MIRINO.ED. Eg:
+ and referenced multiple times in CANE1.ED and MIRINO.ED. Eg:
- > ZANZ: XRA A
- > OUT DATO
+ > ZANZ: XRA A
+ > OUT DATO
------------
-- OUT 3 --
Source file: CANE2.ED
- The access to port 3 is mediated by the routines SETP3 and RESP3 defined in CANE2.ED
- SETP3 -- Port 3 = Port 3 | A
+ The access to port 3 is mediated by the routines SETP3 and RESP3 defined in CANE2.ED
+ SETP3 -- Port 3 = Port 3 | A
- > SETP3:
- > ;SETTA I BITS CONTEN IN REG A NELLA PORTA 3
+ > SETP3:
+ > ;SETTA I BITS CONTEN IN REG A NELLA PORTA 3
- RESP3 -- Port 3 = Port 3 & A
+ RESP3 -- Port 3 = Port 3 & A
- > RESP3:
- > ;IL CONTRARIO DI SETP3
+ > RESP3:
+ > ;IL CONTRARIO DI SETP3
- and referenced multiple times in CANE2.ED. Eg:
+ and referenced multiple times in CANE2.ED. Eg:
- > ;SPENGO IL VOLO UCCELLI
- > MVI A,0FEH
- > CALL SETP3
+ > ;SPENGO IL VOLO UCCELLI
+ > MVI A,0FEH
+ > CALL SETP3
------------
-- OUT 4 --
Source file: CANE1.ED, CANE2.ED
- Called directly in CANE1.ED
+ Called directly in CANE1.ED
- > INT8:
- > OUT 4
- > ;PER LAUTORESET
+ > INT8:
+ > OUT 4
+ > ;PER LAUTORESET
- Also defined in CANE2.ED
+ Also defined in CANE2.ED
- > RESET EQU 4
+ > RESET EQU 4
- and called multiple times in CANE1.ED and CANE2.ED. Eg:
+ and called multiple times in CANE1.ED and CANE2.ED. Eg:
- > DELAY3: OUT RESET
+ > DELAY3: OUT RESET
------------
-- OUT 5 --
@@ -3697,79 +3697,79 @@ D0-D7 is pushed into a LS273 (Octal D-type Flip-Flop) and its value is used to p
two, cascaded, LS161 (Synchronous 4-Bit Counters).
The counters drive a J-K Flip-Flop generating a square wave signal driven in frequency by the preloaded value.
- > CANONE:
- > ;AZZITTO IL TOS:
- > MVI A,255 ; A = 255 ; TIMER spento
- > OUT 5 ; OUT 5
+ > CANONE:
+ > ;AZZITTO IL TOS:
+ > MVI A,255 ; A = 255 ; TIMER spento
+ > OUT 5 ; OUT 5
The musical notes are defined in a library source file TOS.ED and referenced later by the source files, eg. in CANE2.ED:
- > CARICA: DB RE,FA,FA,FA,FA,PAU
- > DB RE,FA,FA,FA,FA,PAU
- > DB RE,FA,PAU,RE,FA,PAU
- > DB RE,FA,FA,FA,FA,PAU
- > DB FINALE
- > TABSTR: NOP
- > LULUP: DB DO,RE,MI,FA,SOL,LA,SI,DO2
- > DB FINALE
-
- > CIPCIP: DB 220,215,210,205,200,FINALE
-
- The notes are defined in TOS.ED:
- > ; SI PARTE DA UNA FREQUENZA DI CLOCK DI 1 MHZ CIRCA,QUESTA FREQUENZA DIVISA)
- > ; PER UNA SERIE DI PARAMETRI ATTRAVERSO DEI DIVISORI PROGRAMMABILI FORNISCE
- > ; ALL'USCITA DI QUESTI I DODICI SEMITONI DELLA SCALA CROMATICA
-
- Name - Counter - Aprox. frequency
- DO 16 - 1000/(255-16) = 4.18 KHz
- DOD 30 - 1000/(255-30) = 4.44 KHz
- RE 43 - 1000/(255-43) = 4.72 KHz
- RED 55 - 1000/(255-55) = 5 KHz
- MI 66 - 1000/(255-66) = 5.29 KHz
- FA 77 - 1000/(255-77) = 5.62 KHz
- FAD 87 - 1000/(255-87) = 5.95 KHz
- SOL 96 - 1000/(255-96) = 6.29 KHz
- SOLD 105 - 1000/(255-105) = 6.67 KHz
- LA 114 - 1000/(255-114) = 7.09 KHz
- LAD 122 - 1000/(255-122) = 7.52 KHz
- SI 129 - 1000/(255-129) = 7.94 KHz
-
- DO2 136 - 1000/(255-136) = 8.4 KHz
- DOD2 143 - 1000/(255-143) = 8.93 KHz
- RE2 149.5 - 1000/(255-150) = 9.52 KHz
- RED2 155.5 - 1000/(255-156) = 10.1 KHz
- MI2 161 - 1000/(255-161) = 10.64 KHz
- FA2 166.5 - 1000/(255-167) = 11.36 KHz
- FAD2 171.5 - 1000/(255-172) = 12.05 KHz
- SOL2 176 - 1000/(255-176) = 12.66 KHz
- SOLD2 180.5 - 1000/(255-181) = 13.51 KHz
- LA2 185 - 1000/(255-185) = 14.29 KHz
- LAD2 189 - 1000/(255-189) = 15.15 KHz
- SI2 192.5 - 1000/(255-193) = 16.13 KHz
-
- Pause code:
- PAU EQU 255
-
- End of note sequence:
- FINALE EQU 254
+ > CARICA: DB RE,FA,FA,FA,FA,PAU
+ > DB RE,FA,FA,FA,FA,PAU
+ > DB RE,FA,PAU,RE,FA,PAU
+ > DB RE,FA,FA,FA,FA,PAU
+ > DB FINALE
+ > TABSTR: NOP
+ > LULUP: DB DO,RE,MI,FA,SOL,LA,SI,DO2
+ > DB FINALE
+
+ > CIPCIP: DB 220,215,210,205,200,FINALE
+
+ The notes are defined in TOS.ED:
+ > ; SI PARTE DA UNA FREQUENZA DI CLOCK DI 1 MHZ CIRCA,QUESTA FREQUENZA DIVISA)
+ > ; PER UNA SERIE DI PARAMETRI ATTRAVERSO DEI DIVISORI PROGRAMMABILI FORNISCE
+ > ; ALL'USCITA DI QUESTI I DODICI SEMITONI DELLA SCALA CROMATICA
+
+ Name - Counter - Aprox. frequency
+ DO 16 - 1000/(255-16) = 4.18 KHz
+ DOD 30 - 1000/(255-30) = 4.44 KHz
+ RE 43 - 1000/(255-43) = 4.72 KHz
+ RED 55 - 1000/(255-55) = 5 KHz
+ MI 66 - 1000/(255-66) = 5.29 KHz
+ FA 77 - 1000/(255-77) = 5.62 KHz
+ FAD 87 - 1000/(255-87) = 5.95 KHz
+ SOL 96 - 1000/(255-96) = 6.29 KHz
+ SOLD 105 - 1000/(255-105) = 6.67 KHz
+ LA 114 - 1000/(255-114) = 7.09 KHz
+ LAD 122 - 1000/(255-122) = 7.52 KHz
+ SI 129 - 1000/(255-129) = 7.94 KHz
+
+ DO2 136 - 1000/(255-136) = 8.4 KHz
+ DOD2 143 - 1000/(255-143) = 8.93 KHz
+ RE2 149.5 - 1000/(255-150) = 9.52 KHz
+ RED2 155.5 - 1000/(255-156) = 10.1 KHz
+ MI2 161 - 1000/(255-161) = 10.64 KHz
+ FA2 166.5 - 1000/(255-167) = 11.36 KHz
+ FAD2 171.5 - 1000/(255-172) = 12.05 KHz
+ SOL2 176 - 1000/(255-176) = 12.66 KHz
+ SOLD2 180.5 - 1000/(255-181) = 13.51 KHz
+ LA2 185 - 1000/(255-185) = 14.29 KHz
+ LAD2 189 - 1000/(255-189) = 15.15 KHz
+ SI2 192.5 - 1000/(255-193) = 16.13 KHz
+
+ Pause code:
+ PAU EQU 255
+
+ End of note sequence:
+ FINALE EQU 254
------------
-- IN 1 --
Source file: CANE2.ED
- Defined in CANE2.ED
- > PORTAM EQU 1 ;E' LA PORTA DI INPUT DI TUTTI I PULSANTI
+ Defined in CANE2.ED
+ > PORTAM EQU 1 ;E' LA PORTA DI INPUT DI TUTTI I PULSANTI
------------
-- IN 3 --
Source file: CANE1.ED, CANE2.ED
- Defined in CANE2.ED
+ Defined in CANE2.ED
- > PRONTO EQU 3
+ > PRONTO EQU 3
- and referenced in CANE1.ED
+ and referenced in CANE1.ED
- > OUT LOW DATO
- > IN LOW PRONTO
+ > OUT LOW DATO
+ > IN LOW PRONTO
**********************************************************************************************************************************/
map(0x00, 0x00).w(FUNC(cane_state::cane_unknown_port0_w));
@@ -3785,56 +3785,56 @@ Source file: CANE1.ED, CANE2.ED
static INPUT_PORTS_START( cane )
/* Source file: CANE2.ED, MIRINO.ED
- Port definition:
- > PORTAM EQU 1 ;E' LA PORTA DI INPUT DI TUTTI I PULSANTI
-
- Bit values:
- CANE2.ED
- > DITO EQU 80H ;BIT DEL PULSANTE DI SPARO DEL FUCILE
-
- MIRINO.ED
- > UPPMIR EQU 20H ;BIT PER MIRINO IN ALTO
- > LOWMIR EQU 40H ;BASSO
- > RIGMIR EQU 8H ;DESTRA
- > LEFMIR EQU 10H ;SINISTRA
-
- Joystick reading routine:
- MIRINO.ED
- > ;ORA LEGGO LA PORTA DELLA CLOCHE
- > IN LOW PORTAM
- > MOV B,A
- > ;A QUESTO PUNTO AGGIORNO LE COORDINATE X E Y A SECONDA DELLO STATO DEI BIT
- > ;DELLA CLOCHE (ATTIVI BASSI)
- > ANI LOWMIR
- > CZ MIRLOW
- > MOV A,B
- > ANI UPPMIR
- > CZ MIRUPP
- > MOV A,B
- > ANI LEFMIR
- > CZ MIRLEF
- > MOV A,B
- > ANI RIGMIR
- > CZ MIRRIG
-
- Shot reading routine:
- CANE2.ED
- > ;QUI CI VADO SE NESSUNO PREME IL PULSANTE E STO ASPETTANDO UNO SPARO
- > ;TEST GRILLETTO
- > IN PORTAM
- > ANI DITO
-
- Coin reading routine;
- CANE1.ED
- > ;ACCREDITA
- > SAR9A: IN 1
- > ANI 4
-
- Start game: (Verified by debugging $3C2)
- CANE1.ED
- > IN 1
- > ANI 8
- > JNZ FONTI
+ Port definition:
+ > PORTAM EQU 1 ;E' LA PORTA DI INPUT DI TUTTI I PULSANTI
+
+ Bit values:
+ CANE2.ED
+ > DITO EQU 80H ;BIT DEL PULSANTE DI SPARO DEL FUCILE
+
+ MIRINO.ED
+ > UPPMIR EQU 20H ;BIT PER MIRINO IN ALTO
+ > LOWMIR EQU 40H ;BASSO
+ > RIGMIR EQU 8H ;DESTRA
+ > LEFMIR EQU 10H ;SINISTRA
+
+ Joystick reading routine:
+ MIRINO.ED
+ > ;ORA LEGGO LA PORTA DELLA CLOCHE
+ > IN LOW PORTAM
+ > MOV B,A
+ > ;A QUESTO PUNTO AGGIORNO LE COORDINATE X E Y A SECONDA DELLO STATO DEI BIT
+ > ;DELLA CLOCHE (ATTIVI BASSI)
+ > ANI LOWMIR
+ > CZ MIRLOW
+ > MOV A,B
+ > ANI UPPMIR
+ > CZ MIRUPP
+ > MOV A,B
+ > ANI LEFMIR
+ > CZ MIRLEF
+ > MOV A,B
+ > ANI RIGMIR
+ > CZ MIRRIG
+
+ Shot reading routine:
+ CANE2.ED
+ > ;QUI CI VADO SE NESSUNO PREME IL PULSANTE E STO ASPETTANDO UNO SPARO
+ > ;TEST GRILLETTO
+ > IN PORTAM
+ > ANI DITO
+
+ Coin reading routine;
+ CANE1.ED
+ > ;ACCREDITA
+ > SAR9A: IN 1
+ > ANI 4
+
+ Start game: (Verified by debugging $3C2)
+ CANE1.ED
+ > IN 1
+ > ANI 8
+ > JNZ FONTI
*/
@@ -3879,21 +3879,21 @@ void cane_state::cane_unknown_port0_w(u8 data)
/* */
/*******************************************************/
/***********************************************************************************************************************************
- This game was never completed and released by Model Racing to the public.
- It's in a nearly incomplete form (eg: doesn't have any sound or score routine in the code) and it's barely playable.
+ This game was never completed and released by Model Racing to the public.
+ It's in a nearly incomplete form (eg: doesn't have any sound or score routine in the code) and it's barely playable.
- The assembler source files for this game were extracted from the original floppy disks used by the former Model Racing developer
- Adolfo Melilli (adolfo@melilli.com).
- Those disks were retrieved by Alessandro Bolgia (xadhoom76@gmail.com) and Lorenzo Fongaro (lorenzo.fongaro@virgilio.it) and
- dumped by Piero Andreini (pieroandreini@gmail.com) using KryoFlux hardware and software.
- Subsequently Jean Paul Piccato (j2pguard-spam@yahoo.com) mounted the images and compiled the source files, managed to set up a
- ROMset and wrote a MAME driver that aims to reproduce in the most faithful way the work of Melilli at Model Racing in late '70s.
+ The assembler source files for this game were extracted from the original floppy disks used by the former Model Racing developer
+ Adolfo Melilli (adolfo@melilli.com).
+ Those disks were retrieved by Alessandro Bolgia (xadhoom76@gmail.com) and Lorenzo Fongaro (lorenzo.fongaro@virgilio.it) and
+ dumped by Piero Andreini (pieroandreini@gmail.com) using KryoFlux hardware and software.
+ Subsequently Jean Paul Piccato (j2pguard-spam@yahoo.com) mounted the images and compiled the source files, managed to set up a
+ ROMset and wrote a MAME driver that aims to reproduce in the most faithful way the work of Melilli at Model Racing in late '70s.
- The game driver is not based on hardware inspection and is solely derived from assumptions I've made looking at the assembler
- code and comments written into the source files of the game. Several of those hypotheses came following the directions of
- previous yet contemporary Model Racing works (Eg: Claybuster) and were confirmed by Melilli himself.
+ The game driver is not based on hardware inspection and is solely derived from assumptions I've made looking at the assembler
+ code and comments written into the source files of the game. Several of those hypotheses came following the directions of
+ previous yet contemporary Model Racing works (Eg: Claybuster) and were confirmed by Melilli himself.
- Being unreleased this game lacks an official name, thus the name used in the source files was used instead.
+ Being unreleased this game lacks an official name, thus the name used in the source files was used instead.
***********************************************************************************************************************************/