This commit is contained in:
Miodrag Milanovic 2015-04-10 12:38:00 +02:00
commit ab9c8c2678
77 changed files with 457 additions and 463 deletions

View File

@ -41,7 +41,6 @@ Performance options
when this is set to OFF, assuming -numprocessors allows it.
The default is OFF (-nomultithreading).
-numprocessors <auto|value> / -np <auto|value>
Specify the number of processors to use for work queues. Specifying

View File

@ -83,11 +83,11 @@ is usually behind the term "density".
A sensor detects when the head is on track 0 and the controller is not
supposed to try to go past it. In addition physical blocks prevent
the head from going out of the correct track range. Some systems
(apple 2, some c64) do not take the track 0 sensor into account and
(Apple II, some C64) do not take the track 0 sensor into account and
just wham the head against the track 0 physical block, giving a
well-known crash noise and eventually damaging the head alignment.
Also, some systems (apple 2 and c64 again) have direct access to the
Also, some systems (Apple II and C64 again) have direct access to the
phases of the head positioning motor, allowing to trick the head into
going between tracks, in middle or even quarter positions. That was
not usable to write more tracks, since the head width did not change,
@ -95,15 +95,15 @@ but since reliable reading was only possible with the correct position
it was used for some copy protection systems.
The disk rotates at a fixed speed for a given track. The most usual
speed is 300rpm for every track, with 360rpm found for HD 5.25"
floppies and most 8" ones, and a number of different values like 90rpm
for the earlier floppies or 150rpm for an HD floppy in an amiga.
speed is 300 rpm for every track, with 360 rpm found for HD 5.25"
floppies and most 8" ones, and a number of different values like 90 rpm
for the earlier floppies or 150 rpm for an HD floppy in an Amiga.
Having a fixed rotational speed for the whole disk is called Constant
Angular Velocity (CAV, almost everybody) or Zoned Constant Angular
Velocity (ZCAV, C64) depending on whether the read/write bitrate is
constant or track-dependant. Some systems (apple 2, mac) varies the
rotational speed depending on the track (something like 394rpm up to
590rpm) to end up with a Constant Linear Velocity (CLV). The idea
constant or track-dependant. Some systems (Apple II, Mac) vary the
rotational speed depending on the track (something like 394 rpm up to
590 rpm) to end up with a Constant Linear Velocity (CLV). The idea
behind ZCAV/CLV is to get more bits out of the media by keeping the
minimal spacing between magnetic orientation transitions close to the
best the support can do. It seems that the complexity was not deemed
@ -158,10 +158,10 @@ is never known.
2.3 Floppy controller
The task of the floppy controller is to turn the signals to/from the
floppy drive into something the main cpu can digest. The level of
floppy drive into something the main CPU can digest. The level of
support actually done by the controller is extremely variable from one
device to the other, from pretty much nothing (apple2, c64) through
minimal (amiga) to complete (western digital chips, upd765 family).
device to the other, from pretty much nothing (Apple II, C64) through
minimal (Amiga) to complete (Western Digital chips, uPD765 family).
Usual functions include drive selection, motor control, track seeking
and of course reading and writing data. Of these only the last two
need to be described, the rest is obvious.
@ -170,21 +170,21 @@ The data is structured at two levels: how individual bits (or nibbles,
or bytes) are encoded on the surface, and how these are grouped in
individually-addressable sectors. Two standards exist for these,
called FM and MFM, and in addition a number of systems use their
home-grown variants. Moreover, some systems such as the amiga use a
standard bit-level encoding (MFM) but an homegrown sector-level
home-grown variants. Moreover, some systems such as the Amiga use a
standard bit-level encoding (MFM) but a homegrown sector-level
organisation.
2.3.1 Bit-level encodings
2.3.1.1 Cell organization
All floppy controllers, even the wonkiest like the apple 2 one, start
All floppy controllers, even the wonkiest like the Apple II one, start
by dividing the track in equally-sized cells. They're angular
sections in the middle of which a magnetic orientation inversion may
be present. From an hardware point of view the cells are seen as
be present. From a hardware point of view the cells are seen as
durations, which combined with the floppy rotation give the section.
For instance the standard MFM cell size for a 3" double-density floppy
is 2us, which combined with the also standard 300rpm rotational speed
is 2us, which combined with the also standard 300 rpm rotational speed
gives an angular size of 1/100000th of a turn. Another way of saying
it is that there are 100K cells in a 3" DD track.
@ -234,7 +234,7 @@ Modulation encoding, which can cram exactly twice as much data on the
same surface, hence its other name of "double density". The cell size
is set at slightly over half the physical limit, e.g. 2us usually.
The constraint means that two '1' cells must be separated by at least
one '0' cell. Each bit is once again encoded on two cells:
one '0' cell. Each bit is once again encoded on two cells:
- the first cell, called the clock bit, is '1' if both the previous
and current data bits are 0, '0' otherwise
@ -252,7 +252,7 @@ maximum of three zeroes.
Group Coded Recording, or GCR, encodings are a class of encodings
where strings of bits at least nibble-size are encoded into a given
cell stream given by a table. It has been used in particular by the
apple 2, the mac and the c64, and each system has its own table, or
Apple II, the Mac and the C64, and each system has its own table, or
tables.
2.3.1.5 Other encodings
@ -342,7 +342,7 @@ usually start at 1 and size code is 0 for 128 bytes, 1 for 256, 2 for
The crc is a cyclic redundancy check of the data bits starting with
the mark just after the pulse train using polynom 0x11021.
The western digital-based controllers usually get rid of everything
The Western Digital-based controllers usually get rid of everything
but some 0xff before the first sector and allow a better use of space
as a result.
@ -365,19 +365,19 @@ Then for each sector:
- MFM-encoded 0xfb, sector data followed by two bytes of crc
- A number of MFM-encoded 0x4e (usually 84, very variable)
The the track is finished with a stream of MFM-encoded 0x4e.
The track is finished with a stream of MFM-encoded 0x4e.
The 250KHz pulse trains are used to lock the PLL to the signal
correctly. The cell pattern 4489 does not appear in normal
MFM-encoded data and is used for clock/data separation.
As for FM, the western digital-based controllers usually get rid of
As for FM, the Western Digital-based controllers usually get rid of
everything but some 0x4e before the first sector and allow a better
use of space as a result.
2.3.2.3 Formatting and write splices
To be usable a floppy must have the sector headers and default sector
To be usable, a floppy must have the sector headers and default sector
data written on every track before using it. The controller starts
writing at a given place, often the index pulse but on some systems
whenever the command is sent, and writes until a complete turn is
@ -417,7 +417,7 @@ position of the start of the cell (not the size), and bits
- 3, MG_D -> Damaged zone, reads as neutral but cannot be changed by writing
The position is in angular units of 1/200,000,000th of a turn. It
corresponds to one nanosecond when the drive rotates at 300rpm.
corresponds to one nanosecond when the drive rotates at 300 rpm.
The last cell implicit end position is of course 200,000,000.
@ -523,7 +523,7 @@ extract_sectors_from_bitstream_fm_pc(const UINT8 *cell stream,
int sectdata_size)
Extract standard mfm or fm sectors from a regenerated
cell stream. Sectors must point to an array of 256 desc_xs.
cell stream. Sectors must point to an array of 256 desc_xs.
An existing sector is recognizable by having ->data non-null.
Sector data is written in sectdata up to sectdata_size bytes.
@ -563,8 +563,8 @@ the current time is the same for all devices.
3.3.1 Control signals
Due to the way they're usually connected to cpus (e.g. directly on an
i/o port) the controls signals work with physical instead of logical
Due to the way they're usually connected to CPUs (e.g. directly on an
I/O port), the control signals work with physical instead of logical
values. Which means than in general 0 means active, 1 means inactive.
Some signals also have a callback associated called when they change.

View File

@ -155,21 +155,21 @@ ROM_START( dmac_hdc )
ROMX_LOAD("390721-01.u13", 0x4000, 0x2000, CRC(00dbf615) SHA1(503940d04fb3b49eaa61100fd3a487018b35e25a), ROM_SKIP(1) | ROM_BIOS(2))
ROMX_LOAD("390722-01.u12", 0x4001, 0x2000, CRC(c460cfdb) SHA1(0de457daec3b84f75e8fb344defe24ce56cda3e0), ROM_SKIP(1) | ROM_BIOS(2))
// changelog v6.6: fixes dual scsi problems with the wd33c93a controller
// changelog v6.6: fixes dual SCSI problems with the wd33c93a controller
ROM_SYSTEM_BIOS(2, "v66", "Version 6.6")
ROMX_LOAD("390721-02.u13", 0x0000, 0x2000, CRC(c0871d25) SHA1(e155f18abb90cf820589c15e70559d3b6b391af8), ROM_SKIP(1) | ROM_BIOS(3))
ROMX_LOAD("390722-02.u12", 0x0001, 0x2000, CRC(e536bbb2) SHA1(fd7f8a6da18c1b02d07eb990c2467a24183ede12), ROM_SKIP(1) | ROM_BIOS(3))
ROMX_LOAD("390721-02.u13", 0x4000, 0x2000, CRC(c0871d25) SHA1(e155f18abb90cf820589c15e70559d3b6b391af8), ROM_SKIP(1) | ROM_BIOS(3))
ROMX_LOAD("390722-02.u12", 0x4001, 0x2000, CRC(e536bbb2) SHA1(fd7f8a6da18c1b02d07eb990c2467a24183ede12), ROM_SKIP(1) | ROM_BIOS(3))
// final commodore released version
// final Commodore released version
ROM_SYSTEM_BIOS(3, "v70", "Version 7.0")
ROMX_LOAD("390721-03.u13", 0x0000, 0x2000, CRC(2942747a) SHA1(dbd7648e79c753337ff3e4f491de224bf05e6bb6), ROM_SKIP(1) | ROM_BIOS(4))
ROMX_LOAD("390722-03.u12", 0x0001, 0x2000, CRC(a9ccffed) SHA1(149f5bd52e2d29904e3de483b9ad772448e9278e), ROM_SKIP(1) | ROM_BIOS(4))
ROMX_LOAD("390721-03.u13", 0x4000, 0x2000, CRC(2942747a) SHA1(dbd7648e79c753337ff3e4f491de224bf05e6bb6), ROM_SKIP(1) | ROM_BIOS(4))
ROMX_LOAD("390722-03.u12", 0x4001, 0x2000, CRC(a9ccffed) SHA1(149f5bd52e2d29904e3de483b9ad772448e9278e), ROM_SKIP(1) | ROM_BIOS(4))
// third-party upgrade rom, requires a small rom adapter pcb
// third-party upgrade ROM, requires a small ROM adapter pcb
ROM_SYSTEM_BIOS(4, "g614", "Guru-ROM 6.14")
ROMX_LOAD("gururom_v614.bin", 0x0000, 0x8000, CRC(04e52f93) SHA1(6da21b6f5e8f8837d64507cd8a4d5cdcac4f426b), ROM_GROUPWORD | ROM_BIOS(5))
@ -234,7 +234,7 @@ void a590_device::device_start()
{
set_zorro_device();
// setup dmac
// setup DMAC
m_dmac->set_address_space(m_slot->m_space);
m_dmac->set_rom(memregion("bootrom")->base());
}
@ -243,7 +243,7 @@ void a2091_device::device_start()
{
set_zorro_device();
// setup dmac
// setup DMAC
m_dmac->set_address_space(m_slot->m_space);
m_dmac->set_rom(memregion("bootrom")->base());
}
@ -258,7 +258,7 @@ void dmac_hdc_device::device_reset()
void dmac_hdc_device::resize_ram(int config)
{
// allocate space for ram
// allocate space for RAM
switch (config & 0x0f)
{
case 0x01:
@ -301,7 +301,7 @@ WRITE_LINE_MEMBER( a590_device::cfgin_w )
m_int6 = m_jp4->read() & 0x01;
resize_ram(m_dips->read() & 0x0f);
// then tell the dmac to start configuring
// then tell the DMAC to start configuring
m_dmac->configin_w(state);
}
@ -311,7 +311,7 @@ WRITE_LINE_MEMBER( a2091_device::cfgin_w )
m_int6 = m_jp3->read() & 0x01;
resize_ram(m_jp1->read() & 0x0f);
// then tell the dmac to start configuring
// then tell the DMAC to start configuring
m_dmac->configin_w(state);
}
@ -345,6 +345,6 @@ WRITE_LINE_MEMBER( dmac_hdc_device::dmac_int_w )
WRITE_LINE_MEMBER( dmac_hdc_device::scsi_irq_w )
{
// should be or'ed with xt-ide irq
// should be or'ed with xt-ide IRQ
m_dmac->intx_w(state);
}

View File

@ -48,7 +48,7 @@ const device_type FLOPPY_8_DSSD = &device_creator<floppy_8_dssd>;
const device_type FLOPPY_8_SSDD = &device_creator<floppy_8_ssdd>;
const device_type FLOPPY_8_DSDD = &device_creator<floppy_8_dsdd>;
// epson 3.5" drives
// Epson 3.5" drives
#if 0
const device_type EPSON_SMD_110 = &device_creator<epson_smd_110>;
const device_type EPSON_SMD_120 = &device_creator<epson_smd_120>;
@ -70,7 +70,7 @@ const device_type EPSON_SMD_480LM = &device_creator<epson_smd_480lm>;
const device_type EPSON_SMD_489M = &device_creator<epson_smd_489m>;
#endif
// epson 5.25" drives
// Epson 5.25" drives
#if 0
const device_type EPSON_SD_311 = &device_creator<epson_sd_311>;
#endif
@ -88,12 +88,12 @@ const device_type EPSON_SD_621L = &device_creator<epson_sd_621l>;
const device_type EPSON_SD_680L = &device_creator<epson_sd_680l>;
#endif
// sony 3.5" drives
// Sony 3.5" drives
const device_type SONY_OA_D31V = &device_creator<sony_oa_d31v>;
const device_type SONY_OA_D32W = &device_creator<sony_oa_d32w>;
const device_type SONY_OA_D32V = &device_creator<sony_oa_d32v>;
// teac 5.25" drives
// TEAC 5.25" drives
#if 0
const device_type TEAC_FD_55A = &device_creator<teac_fd_55a>;
const device_type TEAC_FD_55B = &device_creator<teac_fd_55b>;
@ -1672,7 +1672,7 @@ void epson_sd_321::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// sony oa-d31v
// Sony OA-D31V
//
// track to track: 15 ms
// average: 365 ms
@ -1706,7 +1706,7 @@ void sony_oa_d31v::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// sony oa-d32w
// Sony OA-D32W
//
// track to track: 12 ms
// average: 350 ms
@ -1742,7 +1742,7 @@ void sony_oa_d32w::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// sony oa-d32v
// Sony OA-D32V
//
// track to track: 12 ms
// average: 350 ms
@ -1777,7 +1777,7 @@ void sony_oa_d32v::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// teac fd-55f
// TEAC FD-55F
//
// track to track: 3 ms
// average: 94 ms
@ -1815,7 +1815,7 @@ void teac_fd_55f::handled_variants(UINT32 *variants, int &var_count) const
}
//-------------------------------------------------
// teac fd-55g
// TEAC FD-55G
//
// track to track: 3 ms
// average: 91 ms

View File

@ -120,7 +120,6 @@ private:
UINT32 m_pci1_laddr, m_pci2_laddr, m_pci_io_laddr;
UINT32 m_target1_laddr, m_target2_laddr;
};

View File

@ -114,7 +114,6 @@ private:
chan_info m_dac2;
chan_info m_adc;
void transfer_pci_audio(chan_info& chan, int type);
};
extern const device_type ES1373;

View File

@ -123,10 +123,10 @@ static const int tune2[96*6] = {
/*
* The theme from Phoenix, a sad little tune.
* Gerald Coy:
* The starting song from Phoenix is coming from a old french movie and
* The starting song from Phoenix comes from an old French movie and
* it's called : "Jeux interdits" which means "unallowed games" ;-)
* Mirko Buffoni:
* It's called "Sogni proibiti" in italian, by Anonymous.
* It's called "Sogni proibiti" in Italian, by Anonymous.
* Magic*:
* This song is a classical piece called "ESTUDIO" from M.A.Robira.
*/

View File

@ -20,7 +20,7 @@
* Jack Potten's Poker (set 6), 198?, Bootleg.
* Jack Potten's Poker (set 7, Royale GFX), 198?, Bootleg.
* Good Luck, 198?, Unknown.
* Super Double (french), 198?, Karateco.
* Super Double (French), 198?, Karateco.
* Jack Potten's Poker (NGold, set 1), 198?, Unknown.
* Jack Potten's Poker (NGold, set 2), 198?, Unknown.
* Jack Potten's Poker (NGold, set 3), 198?, Unknown.
@ -104,7 +104,7 @@
* Falcons Wild - World Wide Poker (VK set 1), 1990, Video Klein.
* Falcons Wild - World Wide Poker (VK set 2), 1990, Video Klein.
* Falcons Wild - Wild Card 1991, 1991, TVG.
* PlayMan Poker (german), 1981, PM / Beck Elektronik.
* PlayMan Poker (German), 1981, PM / Beck Elektronik.
* Super Loco 93 (Spanish, set 1), 1993, Unknown.
* Super Loco 93 (Spanish, set 2), 1993, Unknown.
* Royale (set 1), 198?, Unknown.
@ -119,7 +119,7 @@
* Genie, 198?, Video Fun Games Ltd.
* Silver Game, 1983, Unknown.
* Casino Poker (Ver PM86LO-35-5, German), 1987, PM / Beck Elektronik.
* "Unknown french poker game", 198?, Unknown.
* "Unknown French poker game", 198?, Unknown.
* "Unknown encrypted poker game", 198?, Unknown.
* Bonne Chance! (Golden Poker prequel hardware), 198?, Unknown.
* Mundial/Mondial (Italian/French), 1987, Unknown.
@ -215,7 +215,7 @@
Maybe some settings can enable the use of them...
* Witch Card (spanish sets)
* Witch Card (Spanish sets)
This game is derivated from Golden Poker.
@ -336,7 +336,7 @@
The game has 2 service switches/buttons:
One for settings, and other just for bookkeeping.
Here the original Service Card (in german), and the english translation:
Here the original Service Card (in German), and the English translation:
_____________________________________ _____________________________________
| | | |
| SERVICE ANLEITUNG | | SERVICE MANUAL |
@ -772,10 +772,10 @@
- Fixed the visible area based on M6845 registers.
- Improved the lamps layouts to be more realistic.
- Added Good Luck (potten's poker hybrid running in goldnpkr hardware).
- Added Buena Suerte (spanish) x 2 sets.
- Added Buena Suerte (Spanish) x 2 sets.
- Added set Royale.
- Added Witch Card and spanish variants.
- Added Super Loco 93 (spanish) x 2 sets.
- Added Witch Card and Spanish variants.
- Added Super Loco 93 (Spanish) x 2 sets.
- Renamed set goldnpkc to pottnpkr (parent Jack Potten's Poker set).
- Renamed set jokerpkr to potnpkra, since is another Jack Potten's Poker set.
- Added other 2 clones of Jack Potten's Poker.
@ -817,11 +817,11 @@
[2009-09-05]
- Added 2 new Witch Card sets.
- Reworked inputs for Witch Card (german set 1).
- Created new inputs for Witch Card (english, witch game, lamps).
- Reworked inputs for Witch Card (German set 1).
- Created new inputs for Witch Card (English, witch game, lamps).
- Added and connected lamps for both sets.
- Added minimal bet and 50/60 Hz. switches to both sets.
- Added DIP switches info for Witch Card (german, set 2).
- Added DIP switches info for Witch Card (German, set 2).
- Added Genius, running in a modified Golden Poker board.
@ -844,7 +844,7 @@
[2010-11-18]
- Added Karateco Super Double (french)
- Added Karateco Super Double (French)
- Extended ROM space for goldnpkr game to include the 0x2000..0x3fff range
@ -4362,7 +4362,7 @@ ROM_END
ROM_LOAD( "epoxy_82s129.bin", 0x0100, 0x0100, CRC(f0c012b1) SHA1(5502977404172e8c5b9fbf305581a406668ad1d9) ) /* original epoxy block PROM */
ROM_END
/* Witch Card (spanish, set 1)
/* Witch Card (Spanish, set 1)
Unknown argentine manufacturer.
*/
ROM_START( witchcda )
@ -4382,7 +4382,7 @@ ROM_START( witchcda )
ROM_LOAD( "82s129.9c", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
ROM_END
/* Witch Card (spanish, set 2)
/* Witch Card (Spanish, set 2)
Unknown argentine manufacturer.
*/
ROM_START( witchcdb )
@ -4402,7 +4402,7 @@ ROM_START( witchcdb )
ROM_LOAD( "82s129.9c", 0x0000, 0x0100, CRC(7f31066b) SHA1(15420780ec6b2870fc4539ec3afe4f0c58eedf12) ) /* PROM dump needed */
ROM_END
/* Witch Card (english, no witch game)
/* Witch Card (English, no witch game)
Hack?
*/
ROM_START( witchcdc )
@ -4424,7 +4424,7 @@ ROM_END
/***************************************
Witch Card (german, WC3050, set 1 )
Witch Card (German, WC3050, set 1 )
TV GAME ELEKTRONIK 1994
PROMA
@ -4477,7 +4477,7 @@ ROM_END
ROM_LOAD( "24s10_epoxy.bin", 0x0100, 0x0100, CRC(ddfd7034) SHA1(78dee69ab4ba759485ee7f00446c2d86f08cc50f) ) /* original epoxy block PROM */
ROM_END
/* Witch Card (english, witch game, lights)
/* Witch Card (English, witch game, lights)
PCB by PM. Hybrid hardware.
Copyright 1983/84/85
@ -4539,7 +4539,7 @@ ROM_END
/***************************************
Witch Card (german, WC3050, set 2 )
Witch Card (German, WC3050, set 2 )
TV GAME ELEKTRONIK 1994
PROMA
@ -4882,7 +4882,7 @@ ROM_START( bsuertek )
ROM_END
ROM_START( bsuertel )
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), english settings */
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), English settings */
ROM_LOAD( "bslacer.128", 0x4000, 0x4000, CRC(edc254f4) SHA1(20e5543e59bfd67a0afec7cbeeb7000f6bba6c69) )
ROM_REGION( 0x3000, "gfx1", 0 )
@ -4899,7 +4899,7 @@ ROM_START( bsuertel )
ROM_END
ROM_START( bsuertem )
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), english settings, set 2*/
ROM_REGION( 0x10000, "maincpu", 0 ) /* bslacer128: Buena Suerte! (portugues), English settings, set 2*/
ROM_LOAD( "bslacer.256", 0x0000, 0x8000, CRC(9f8a899a) SHA1(a1f3d0635b309d4734289b7ff48eceda69dfd3d0) )
ROM_REGION( 0x3000, "gfx1", 0 )
@ -5464,7 +5464,7 @@ ROM_END
mc6845 video chip
10mhz (?) xtal
There are french strings related to the game, so maybe is
There are French strings related to the game, so maybe is
a leftover, or maybe there is a unknown way to switch the
language.
@ -5544,7 +5544,7 @@ ROM_END
Unknown poker game, set 1.
198?.
There are french strings related to the game into
There are French strings related to the game into
the program ROM.
The dump lacks of 1 program ROM located at 17a.
@ -5606,7 +5606,7 @@ ROM_END
/************************************
Jolli Witch (german)
Jolli Witch (German)
Epoxy CPU box.
Using the whole addressing

View File

@ -40,7 +40,7 @@
Minimal Winner Hand (Jacks or Better, Two Pair).
Deal Speed (Slow, Fast).
Aces Type (Normal Aces, Number 1).
Cards Deck Type (english cards, french cards).
Cards Deck Type (English cards, French cards).
Max Bet (5, 10, 15, 20).
- Added NVRAM support.
- Reorganized and cleaned-up the driver.

View File

@ -1,6 +1,6 @@
/***************************************************************************
commodore c65 home computer
Commodore C65 home computer
PeT mess@utanet.at
documention
@ -256,7 +256,7 @@ static INPUT_PORTS_START( c65 )
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_BUTTON2 ) PORT_PLAYER(1) PORT_NAME("Mouse 1350 Button 2") PORT_CONDITION("CTRLSEL", 0x0f, EQUALS, 0x03)
PORT_BIT( 0xc0, IP_ACTIVE_HIGH, IPT_UNUSED )
/* Still to verify how many mices you were able to plug into a c64 */
/* Still to verify how many mice you were able to plug into a C64 */
/* Only one, for now */
PORT_START("JOY2_2B")
PORT_BIT( 0xff, IP_ACTIVE_HIGH, IPT_UNUSED )

View File

@ -74,9 +74,9 @@ PB.6 - enable language switches (W, see below)
PB.7 - TSI DONE line (R)
(button rows pulled up to 5V through 2.2K resistors)
PC.0 - button row 0, german language jumper (R)
PC.1 - button row 1, french language jumper (R)
PC.2 - button row 2, spanish language jumper (R)
PC.0 - button row 0, German language jumper (R)
PC.1 - button row 1, French language jumper (R)
PC.2 - button row 2, Spanish language jumper (R)
PC.3 - button row 3, special language jumper (R)
PC.4 - button column A (W)
PC.5 - button column B (W)
@ -90,20 +90,20 @@ language switches:
When PB.6 is pulled low, the language switches can be read. There are four.
They connect to the button rows. When enabled, the row(s) will read low if
the jumper is present. English only VCC's do not have the 367 or any pads stuffed.
The jumpers are labelled: french, german, spanish, and special.
The jumpers are labelled: French, German, Spanish, and special.
language latch:
---------------
There's an unstuffed 7474 on the board that connects to PA.6 and PA.7. It allows
one to latch the state of A12 to the speech ROM. The english version has the chip
one to latch the state of A12 to the speech ROM. The English version has the chip
missing, and a jumper pulling "A12" to ground. This line is really a negative
enable.
To make the VCC multi-language, one would install the 74367 (note: it must be a 74367
or possibly a 74LS367. A 74HC367 would not work since they rely on the input current
to keep the inputs pulled up), solder a piggybacked ROM to the existing english
to keep the inputs pulled up), solder a piggybacked ROM to the existing English
speech ROM, and finally install a 7474 dual flipflop.
This way, the game can then detect which secondary language is present, and then it can
@ -569,7 +569,7 @@ selection jumpers:
These act like another row of buttons. It is composed of two diode locations,
so there's up to 4 possible configurations. My board does not have either diode
stuffed, so this most likely is "english". I suspect it selects which language to use
stuffed, so this most likely is "English". I suspect it selects which language to use
for the speech synth. Of course you need the other speech ROMs for this to function
properly.

View File

@ -8148,10 +8148,10 @@ COMP(1986, ax170, 0, 0, ax170, msx, driver_device, 0, "Al
COMP(1983, canonv8, 0, 0, canonv8, msx, driver_device, 0, "Canon", "V-8 (MSX1)", 0)
COMP(1983, canonv10, canonv20, 0, canonv10, msx, driver_device, 0, "Canon", "V-10 (MSX1)", 0)
COMP(1983, canonv20, 0, 0, canonv20, msx, driver_device, 0, "Canon", "V-20 (MSX1)", 0)
COMP(1983, canonv20e, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20E (MSX1)", 0) // Different euro keyboard layout?
COMP(1983, canonv20f, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20F (MSX1)", 0) // Different french keyboard layout?
COMP(1983, canonv20g, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20G (MSX1)", 0) // Different german keyboard layout?
COMP(1983, canonv20s, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20S (MSX1)", 0) // Different spanish keyboard layout?
COMP(1983, canonv20e, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20E (MSX1)", 0) // Different Euro keyboard layout?
COMP(1983, canonv20f, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20F (MSX1)", 0) // Different French keyboard layout?
COMP(1983, canonv20g, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20G (MSX1)", 0) // Different German keyboard layout?
COMP(1983, canonv20s, canonv20, 0, canonv20, msx, driver_device, 0, "Canon", "V-20S (MSX1)", 0) // Different Spanish keyboard layout?
COMP(1984, mx10, 0, 0, mx10, msx, driver_device, 0, "Casio", "MX-10 (MSX1)", 0)
COMP(1984, mx101, mx10, 0, mx101, msx, driver_device, 0, "Casio", "MX-101 (MSX1)", 0)
COMP(1984, mx15, mx10, 0, mx15, msx, driver_device, 0, "Casio", "MX-15 (MSX1)", 0)

View File

@ -1833,7 +1833,6 @@ static MACHINE_CONFIG_START( pc88va, pc88va_state )
MCFG_AM9517A_IN_MEMR_CB(READ8(pc88va_state, dma_memr_cb))
MCFG_AM9517A_OUT_MEMW_CB(WRITE8(pc88va_state, dma_memw_cb))
MCFG_UPD765A_ADD("upd765", false, true)
MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc88va_state, fdc_irq))
MCFG_UPD765_INTRQ_CALLBACK(WRITELINE(pc88va_state, fdc_drq))

0
src/mess/drivers/ti85.c Executable file → Normal file
View File

View File

@ -482,8 +482,8 @@ MACHINE_CONFIG_END
WP keyboard, has 23-094E2 alt charset rom, 23-093E2 AVO rom.
* VT100-WY/WZ - has AVO board preinstalled, WP romset?, English
WP keyboard, has 23-094E2 alt charset rom, 23-093E2 AVO rom.
The WP romset supports english, french, dutch and german languages but
will only display text properly in the non-english languages if the
The WP romset supports English, French, Dutch and German languages but
will only display text properly in the non-English languages if the
23-094E2 alt charset rom AND the foreign language 23-093E2
AVO rom are populated.
* VT100-NA/NB - ? romset with DECFORM keycaps
@ -557,7 +557,7 @@ MACHINE_CONFIG_END
23-095e2,096e2,139e2,140e2 set and probably others as well)
* The vt100/101/102/103/etc 23-018e2-00 character set rom at location e4 is a 24 pin 2316 mask rom with enables as such: pin 18: CS2; pin 20: /CS1; pin 21: /CS3
* The optional 23-094e2-00 alternate character set rom at location e9 is a 24 pin 2316 mask rom with enables as such: pin 18: /CS2; pin 20: /CS1; pin 21: /CS3
Supposedly the 23-094e2 rom is meant for vt100-WC or -WF systems, (which are french canadian and french respectively), implying that it has european language specific accented characters on it. It is probably used in all the -W* systems.
Supposedly the 23-094e2 rom is meant for vt100-WC or -WF systems, (which are French Canadian and French respectively), implying that it has European language specific accented characters on it. It is probably used in all the -W* systems.
Pin 21 can be jumpered to +5v for this socket at location e9 by removing jumper w4 and inserting jumper w5, allowing a normal 2716 eprom to be used.
* The optional AVO character set roms (see below) have: pin 18: /CS2*; pin 20: /CS1; pin 21: CS3 hence they match a normal 2716
*(this is marked on the image as if it was CS2 but the input is tied to gnd meaning it must be /CS2)

0
src/mess/includes/ti85.h Executable file → Normal file
View File

View File

@ -1,4 +1,4 @@
/* CD controller code from megacd.c, used by Sega Cd / Mega CD */
/* CD controller code from megacd.c, used by Sega CD / Mega CD */
/* todo: cleanup(!!), make more generic, unifiy implementation with NeoCD, turn into a device and move to the proper lc89510.c file
currently this is a bit of a mix of system specific bits, incomplete implementations etc. as well as a rather kludgy combination
@ -217,7 +217,7 @@ void lc89510_temp_device::CDD_GetPos(void)
CLEAR_CDD_RESULT
UINT32 msf;
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
msf = lba_to_msf_alt(SCD_CURLBA+150);
@ -233,7 +233,7 @@ void lc89510_temp_device::CDD_GetTrackPos(void)
UINT32 msf;
CDD_STATUS &= 0xFF;
// UINT32 end_msf = ;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
elapsedlba = SCD_CURLBA - segacd.toc->tracks[ cdrom_get_track(segacd.cd, SCD_CURLBA) ].logframeofs;
@ -248,7 +248,7 @@ void lc89510_temp_device::CDD_GetTrack(void)
{
CLEAR_CDD_RESULT
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
@ -259,7 +259,7 @@ void lc89510_temp_device::CDD_Length(void)
{
CLEAR_CDD_RESULT
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
@ -276,7 +276,7 @@ void lc89510_temp_device::CDD_FirstLast(void)
{
CLEAR_CDD_RESULT
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
CDD_MIN = 1; // first
@ -291,7 +291,7 @@ void lc89510_temp_device::CDD_GetTrackAdr(void)
int last_track = cdrom_get_last_track(segacd.cd);
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
@ -323,7 +323,7 @@ void lc89510_temp_device::CDD_GetTrackType(void)
int last_track = cdrom_get_last_track(segacd.cd);
CDD_STATUS &= 0xFF;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
CDD_STATUS |= SCD_STATUS;
@ -359,7 +359,7 @@ void lc89510_temp_device::CDD_Play(running_machine &machine)
CLEAR_CDD_RESULT
UINT32 msf = getmsf_from_regs();
SCD_CURLBA = msf_to_lba(msf)-150;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
UINT32 end_msf = segacd.toc->tracks[ cdrom_get_track(segacd.cd, SCD_CURLBA) + 1 ].logframeofs;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
@ -384,7 +384,7 @@ void lc89510_temp_device::CDD_Seek(void)
CLEAR_CDD_RESULT
UINT32 msf = getmsf_from_regs();
SCD_CURLBA = msf_to_lba(msf)-150;
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
LC8951UpdateHeader();
@ -417,7 +417,7 @@ void lc89510_temp_device::CDD_Resume(running_machine &machine)
{
CLEAR_CDD_RESULT
STOP_CDC_READ
if(segacd.cd == NULL) // no cd is there, bail out
if(segacd.cd == NULL) // no CD is there, bail out
return;
SCD_CURTRK = cdrom_get_track(segacd.cd, SCD_CURLBA)+1;
SCD_STATUS = CDD_PLAYINGCDDA;

0
src/mess/machine/ti85.c Executable file → Normal file
View File

View File

@ -12,24 +12,24 @@
I don't know how close to this standard the character sets used by the
911 VDT are.
The japanese terminal uses 8-bit character codes. The 128 first characters
The Japanese terminal uses 8-bit character codes. The 128 first characters
are identical to the US character set (except that '\' is replaced by the
Yen symbol), and the next 128 characters include the katakana syllabus.
Kanji ideograms are not supported in this scheme.
The arabic terminal uses 8-bit character codes, too. It requires
The Arabic terminal uses 8-bit character codes, too. It requires
additional code in the TI990 OS for correct operation, as the keyboard
returns codes for isolated characters (i.e. without ligatures), which need
to be substituted with codes with correct context-dependent ligatures.
And both OS and application programs need to support the fact that the
writing direction can be either right-to-left or left-to-right, according
to whether the characters are latin or arabic.
to whether the characters are Latin or Arabic.
As the original ROMs have not been dumped yet, I recreated the matrices
from various matrix printouts in TI documentation.
*/
/*
The arabic character set is not implemented, because documentation is ambiguous
The Arabic character set is not implemented, because documentation is ambiguous
(it says there are 115 characters, but I can hardly see 80 characters in the
attached table), and the character matrices are not documented.
*/
@ -47,26 +47,26 @@ enum
/* extra symbols for national character sets */
char_defs_pound = char_defs_katakana_base+128, /* pound sign (UK 0x23, French WP 0x23) */
char_defs_yen, /* yen sign (Japan 0x5C) */
char_defs_auml, /* latin small letter a with diaeresis (Swedish/Finish 0x7B, German 0x7B) */
char_defs_Auml, /* latin capital letter A with diaeresis (Swedish/Finish 0x5B, German 0x5B) */
char_defs_Aring, /* latin capital letter A with ring above (Swedish/Finish 0x5D, Norwegian/Danish 0x5D) */
char_defs_uuml, /* latin small letter u with diaeresis (Swedish/Finish 0x7E, German 0x7D) */
char_defs_aring, /* latin small letter a with ring above (Swedish/Finish 0x7D, Norwegian/Danish 0x7D) */
char_defs_Uuml, /* latin capital letter U with diaeresis (German 0x5D) */
char_defs_ouml, /* latin small letter o with diaeresis (German 0x7C) */
char_defs_Ouml, /* latin capital letter O with diaeresis (German 0x5C) */
char_defs_szlig, /* latin small letter sharp s (German 0x7E) */
char_defs_aelig, /* latin small letter ae (Norwegian/Danish 0x7B) */
char_defs_AElig, /* latin capital letter AE (Norwegian/Danish 0x5B) */
char_defs_oslash, /* latin small letter o with stroke (Norwegian/Danish 0x7C) */
char_defs_Oslash, /* latin capital letter O with stroke (Norwegian/Danish 0x5C) */
char_defs_agrave, /* latin small letter a with grave (French WP 0x40) */
char_defs_auml, /* Latin small letter a with diaeresis (Swedish/Finish 0x7B, German 0x7B) */
char_defs_Auml, /* Latin capital letter A with diaeresis (Swedish/Finish 0x5B, German 0x5B) */
char_defs_Aring, /* Latin capital letter A with ring above (Swedish/Finish 0x5D, Norwegian/Danish 0x5D) */
char_defs_uuml, /* Latin small letter u with diaeresis (Swedish/Finish 0x7E, German 0x7D) */
char_defs_aring, /* Latin small letter a with ring above (Swedish/Finish 0x7D, Norwegian/Danish 0x7D) */
char_defs_Uuml, /* Latin capital letter U with diaeresis (German 0x5D) */
char_defs_ouml, /* Latin small letter o with diaeresis (German 0x7C) */
char_defs_Ouml, /* Latin capital letter O with diaeresis (German 0x5C) */
char_defs_szlig, /* Latin small letter sharp s (German 0x7E) */
char_defs_aelig, /* Latin small letter ae (Norwegian/Danish 0x7B) */
char_defs_AElig, /* Latin capital letter AE (Norwegian/Danish 0x5B) */
char_defs_oslash, /* Latin small letter o with stroke (Norwegian/Danish 0x7C) */
char_defs_Oslash, /* Latin capital letter O with stroke (Norwegian/Danish 0x5C) */
char_defs_agrave, /* Latin small letter a with grave (French WP 0x40) */
char_defs_deg, /* degree sign (French WP 0x5B) */
char_defs_ccedil, /* latin small letter c with cedilla (French WP 0x5C) */
char_defs_ccedil, /* Latin small letter c with cedilla (French WP 0x5C) */
char_defs_sect, /* section sign (French WP 0x5D) */
char_defs_egrave, /* latin small letter e with grave (French WP 0x7B) */
char_defs_ugrave, /* latin small letter u with grave (French WP 0x7C) */
char_defs_eacute, /* latin small letter e with acute (French WP 0x7D) */
char_defs_egrave, /* Latin small letter e with grave (French WP 0x7B) */
char_defs_ugrave, /* Latin small letter u with grave (French WP 0x7C) */
char_defs_eacute, /* Latin small letter e with acute (French WP 0x7D) */
char_defs_uml, /* diaeresis (French WP 0x7E) */
char_defs_count /* total character count */
@ -87,13 +87,13 @@ static const char_override_t UK_overrides[1] =
{ 0x23, char_defs_pound }
};
/* One japan-specific character (see below for the 128 additionnal characters) */
/* One Japan-specific character (see below for the 128 additionnal characters) */
static const char_override_t japanese_overrides[1] =
{
{ 0x5C, char_defs_yen }
};
/* 5 sweden/finland-specific characters */
/* 5 Sweden/Finland-specific characters */
static const char_override_t swedish_overrides[/*5*/7] =
{
{ 0x7B, char_defs_auml },
@ -106,7 +106,7 @@ static const char_override_t swedish_overrides[/*5*/7] =
{ 0x7C, char_defs_ouml }
};
/* 7 german-specific characters */
/* 7 German-specific characters */
static const char_override_t german_overrides[7] =
{
{ 0x5D, char_defs_Uuml },
@ -118,7 +118,7 @@ static const char_override_t german_overrides[7] =
{ 0x5B, char_defs_Auml } /* 945423-9701 rev. B p. 1-10 says 0x5D, but it must be a mistake */
};
/* 6 norway/denmark-specific characters */
/* 6 Norway/Denmark-specific characters */
static const char_override_t norwegian_overrides[6] =
{
{ 0x5D, char_defs_Aring },
@ -129,7 +129,7 @@ static const char_override_t norwegian_overrides[6] =
{ 0x5C, char_defs_Oslash}
};
/* 9 french-specific characters (word-processing model only: the data-processing model uses
/* 9 French-specific characters (word-processing model only: the data-processing model uses
the US character set, although the keyboard mapping is different from the US model) */
/* WARNING: I have created the character matrices from scratch, as I have no printout of
the original matrices. */
@ -1690,7 +1690,7 @@ static const UINT8 char_defs[char_defs_count][10] =
},
/* 128 additional characters for japanese terminals */
/* 128 additional characters for Japanese terminals */
{ /* 0x80 */
0x00,
0x00,

View File

@ -87,7 +87,7 @@ static const unsigned short vdt911_palette[] =
/*
Macros for model features
*/
/* TRUE for japanese and arabic terminals, which use 8-bit charcodes and keyboard shift modes */
/* TRUE for Japanese and Arabic terminals, which use 8-bit charcodes and keyboard shift modes */
#define USES_8BIT_CHARCODES() ((m_model == vdt911_model_Japanese) /*|| (m_model == vdt911_model_Arabic)*/)
/* TRUE for keyboards which have this extra key (on the left of TAB/SKIP)
(Most localized keyboards have it) */
@ -541,9 +541,9 @@ void vdt911_device::check_keyboard()
{
enum modifier_state_t
{
/* states for western keyboards and katakana/arabic keyboards in romaji/latin mode */
/* states for Western keyboards and katakana/Arabic keyboards in romaji/Latin mode */
lower_case = 0, upper_case, shift, control,
/* states for katakana/arabic keyboards in katakana/arabic mode */
/* states for katakana/Arabic keyboards in katakana/Arabic mode */
foreign, foreign_shift,
/* special value to stop repeat if the modifier state changes */
special_debounce = -1
@ -568,7 +568,7 @@ void vdt911_device::check_keyboard()
/* parse modifier keys */
if ((USES_8BIT_CHARCODES())
&& ((key_buf[5] & 0x0400) || ((!(key_buf[5] & 0x0100)) && m_foreign_mode)))
{ /* we are in katakana/arabic mode */
{ /* we are in katakana/Arabic mode */
m_foreign_mode = true;
if ((key_buf[4] & 0x0400) || (key_buf[5] & 0x0020))
@ -577,8 +577,8 @@ void vdt911_device::check_keyboard()
modifier_state = foreign;
}
else
{ /* we are using a western keyboard, or a katakana/arabic keyboard in
romaji/latin mode */
{ /* we are using a Western keyboard, or a katakana/Arabic keyboard in
romaji/Latin mode */
m_foreign_mode = false;
if (key_buf[3] & 0x0040)

View File

@ -21,7 +21,7 @@ Known bugs:
Build SDL 2.0 from HG
======================
Pull 2.0 from hg. Than
Pull 2.0 from hg. Then
sh autogen.sh
./configure --prefix=/usr/local/sdl13/ --disable-video-svga --enable-video-directfb --enable-fusionsound
@ -66,7 +66,7 @@ The following modes are working:
SDL13
=====
This is driver using SDL texture and line drawing support. It supports
This is driver using SDL texture and line drawing support. It supports
-prescale, -filter and -waitvsync. The driver determines which pixel
formats perform best and converts textures to these pixel formats and at
the same time performs any necessary rotation.
@ -93,7 +93,7 @@ Soft:
OpenGL:
=======
Plain opengl does work. Anything more advanced like pbo, fbo or glsl will
Plain opengl does work. Anything more advanced like pbo, fbo or glsl will
most probably not work with more than one screen.
./mamed -mt -video opengl mario -nogl_pbo -nogl_vbo -nogl_glsl -numscreens 2
@ -125,8 +125,6 @@ yv12, yv12x2, yuy2, yuy2x2:
Rendering in software / scaling with hardware (if supported)
Whether these are actually hardware accelerated depends on the SDL driver
and the hardware. The SDL directfb driver supports all above if the hardware
supports it. However, only one YUV-texture per display is supported.
and the hardware. The SDL directfb driver supports all above if the hardware
supports it. However, only one YUV-texture per display is supported.
The second window consequently will get "software" YUV blitting.