diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c index 606b9df4a45..7d5ff95779c 100644 --- a/src/mess/drivers/trs80.c +++ b/src/mess/drivers/trs80.c @@ -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. *************************************************************************** diff --git a/src/mess/machine/trs80.c b/src/mess/machine/trs80.c index e21af1fdf5c..d82c3b45c8d 100644 --- a/src/mess/machine/trs80.c +++ b/src/mess/machine/trs80.c @@ -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);