Fix missing speaker levels for trs80 (level2) by initializing speaker_sound_device with custom 4 levels.

This commit is contained in:
jbu 2014-12-30 19:55:48 +01:00
parent a056bf3ffa
commit 207718b436
2 changed files with 31 additions and 23 deletions

View File

@ -5,7 +5,7 @@ TRS80 memory map
0000-2fff ROM R D0-D7
3000-37ff ROM on Model III R D0-D7
unused on Model I
unused on Model I
37de UART status R/W D0-D7
37df UART data R/W D0-D7
37e0 interrupt latch address (lnw80 = for the realtime clock)
@ -16,7 +16,7 @@ TRS80 memory map
37e5 select disk drive 2 W
37e7 select disk drive 3 W
37e0-37e3 floppy motor W D0-D3
or floppy head select W D3
or floppy head select W D3
37e8 send a byte to printer W D0-D7
37e8 read printer status R D7
37ec-37ef FDC WD179x R/W D0-D7
@ -42,10 +42,10 @@ It is assumed that the TRS80L2 UART setup is identical to the System80, apart fr
Due to the above, the only working emulated UART is for the Model 3.
Cassette baud rates: Model I level I - 250 baud
Model I level II and all clones - 500 baud
Model III/4 - 500 and 1500 baud selectable at boot time
- When it says "Cass?" press L for 500 baud, or Enter otherwise.
LNW-80 - 500 baud @1.77MHz and 1000 baud @4MHz.
Model I level II and all clones - 500 baud
Model III/4 - 500 and 1500 baud selectable at boot time
- When it says "Cass?" press L for 500 baud, or Enter otherwise.
LNW-80 - 500 baud @1.77MHz and 1000 baud @4MHz.
I/O ports
FF:
@ -92,29 +92,29 @@ Model 4 - C0-CF = hard drive (optional)
- 80-8F hires graphics (optional)
About the ht1080z - This was made for schools in Hungary. Each comes with a BASIC extension roms
which activated Hungarian features. To activate - start emulation - enter SYSTEM
Enter /12288 and the extensions will be installed and you are returned to READY.
The ht1080z is identical to the System 80, apart from the character rom.
The ht1080z2 has a modified extension rom and character generator.
which activated Hungarian features. To activate - start emulation - enter SYSTEM
Enter /12288 and the extensions will be installed and you are returned to READY.
The ht1080z is identical to the System 80, apart from the character rom.
The ht1080z2 has a modified extension rom and character generator.
About the RTC - The time is incremented while ever the cursor is flashing. It is stored in a series
of bytes in the computer's work area. The bytes are in a certain order, this is:
seconds, minutes, hours, year, day, month. On a model 1, the seconds are stored at
0x4041, while on the model 4 it is 0x4217. A reboot always sets the time to zero.
of bytes in the computer's work area. The bytes are in a certain order, this is:
seconds, minutes, hours, year, day, month. On a model 1, the seconds are stored at
0x4041, while on the model 4 it is 0x4217. A reboot always sets the time to zero.
Model 4 memory organisation -
Mode 0: ROM=0-37E7 and 37EA-3FFF; Printer=37E8-37E9; Keyboard=3800-3BFF; Video=3C00-3FFF
Mode 1: Keyboard and Video as above; 0-3FFF read=ROM and write=RAM
Mode 2: Keyboard=F400-F7FF; Video=F800-FFFF; the rest is RAM
Mode 3: All RAM
In the "maincpu" memory map, the first 64k is given to the ROM, keyboard, printer and video,
while the second 64k is RAM that is switched in as needed. The area from 4800-FFFF
is considered a "black hole", any writes to there will disappear.
The video is organised as 2 banks of 0x400 bytes, except in Mode 2 where it becomes contiguous.
Mode 0: ROM=0-37E7 and 37EA-3FFF; Printer=37E8-37E9; Keyboard=3800-3BFF; Video=3C00-3FFF
Mode 1: Keyboard and Video as above; 0-3FFF read=ROM and write=RAM
Mode 2: Keyboard=F400-F7FF; Video=F800-FFFF; the rest is RAM
Mode 3: All RAM
In the "maincpu" memory map, the first 64k is given to the ROM, keyboard, printer and video,
while the second 64k is RAM that is switched in as needed. The area from 4800-FFFF
is considered a "black hole", any writes to there will disappear.
The video is organised as 2 banks of 0x400 bytes, except in Mode 2 where it becomes contiguous.
Model 4P - is the same as Model 4 except:
- ROM is only 0000-0FFF, while 1000-37FF is given over to RAM
- There is no cassette support in hardware.
- ROM is only 0000-0FFF, while 1000-37FF is given over to RAM
- There is no cassette support in hardware.
***************************************************************************

View File

@ -593,6 +593,7 @@ WRITE8_MEMBER( trs80_state::trs80_ff_w )
d1, d0 Cassette output */
static const double levels[4] = { 0.0, -1.0, 0.0, 1.0 };
static int init = 0;
m_cassette->change_state(( data & 4 ) ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED,CASSETTE_MASK_MOTOR );
m_cassette->output(levels[data & 3]);
@ -600,6 +601,13 @@ WRITE8_MEMBER( trs80_state::trs80_ff_w )
m_mode = (m_mode & 0xfe) | ((data & 8) >> 3);
if (!init)
{
init = 1;
static INT16 speaker_levels[4] = { 0, -32768, 0, 32767 };
m_speaker->static_set_levels(*m_speaker, 4, speaker_levels);
}
/* Speaker for System-80 MK II - only sounds if relay is off */
if (~data & 4)
m_speaker->level_w(data & 3);