ht1080z : added ay8910 ; trs80 : added monitor documentation

This commit is contained in:
Robbbert 2018-07-21 18:15:06 +10:00
parent 4d0feb2486
commit a5a1ebdf9d
3 changed files with 41 additions and 1 deletions

View File

@ -71,9 +71,29 @@ F8:
Shift and Right-arrow will enable 32 cpl, if the hardware allows it. Shift and Right-arrow will enable 32 cpl, if the hardware allows it.
SYSTEM commands:
- Press Break (End key) to quit
- Press Enter to exit with error
- xxxx to load program xxxx from tape.
- / to execute last program loaded
- /nnnnn to execute program at nnnnn (decimal)
About the system80 - Asian version of trs80l2, known as EACA Video Genie. In USA called About the system80 - Asian version of trs80l2, known as EACA Video Genie. In USA called
PMC-80, in South Africa called TRZ-80, and Dick Smith imported them to Australia and PMC-80, in South Africa called TRZ-80, and Dick Smith imported them to Australia and
New Zealand as the System 80. The Hungarian version is the ht1080z. New Zealand as the System 80. The Hungarian version is the ht1080z.
Inbuilt extensions:
- SYSTEM then /12288 = enable extended keyboard and flashing block cursor
- SYSTEM then /12299 = turn cursor back to normal
- SYSTEM then /12294 = enable extended keyboard only
- SYSTEM then /12710 = enter machine-language monitor
Monitor commands:
- B : return to Basic
- Dnnnn : Dump hex to screen. Press down-arrow for more. Press enter to quit.
- Mnnnn : Modify memory. Enter new byte and it increments to next address. X to quit.
- Gnnnn : Execute program at nnnn
- Gnnnn,tttt : as above, breakpoint at tttt
- R : modify registers
The monitor works on the radionic too.
About the ht1080z - This was made for schools in Hungary. Each comes with a BASIC extension roms 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 which activated Hungarian features. To activate - start emulation - enter SYSTEM
@ -118,7 +138,7 @@ sys80: works
add 32 / 64 cpl switch add 32 / 64 cpl switch
ht1080z works ht1080z works
add AY-3-8910 verify clock for AY-3-8910
investigate expansion-box investigate expansion-box
radionic: works radionic: works
@ -139,6 +159,7 @@ lnw80: works
#include "emu.h" #include "emu.h"
#include "includes/trs80.h" #include "includes/trs80.h"
#include "sound/ay8910.h"
#include "screen.h" #include "screen.h"
#include "speaker.h" #include "speaker.h"
@ -201,6 +222,15 @@ void trs80_state::sys80_io(address_map &map)
map(0xff, 0xff).rw(FUNC(trs80_state::port_ff_r), FUNC(trs80_state::port_ff_w)); map(0xff, 0xff).rw(FUNC(trs80_state::port_ff_r), FUNC(trs80_state::port_ff_w));
} }
void trs80_state::ht1080z_io(address_map &map)
{
map.global_mask(0xff);
map.unmap_value_high();
sys80_io(map);
map(0x1e, 0x1e).rw("ay1", FUNC(ay8910_device::data_r), FUNC(ay8910_device::data_w));
map(0x1f, 0x1f).w("ay1", FUNC(ay8910_device::address_w));
}
void trs80_state::lnw80_mem(address_map &map) void trs80_state::lnw80_mem(address_map &map)
{ {
map(0x0000, 0x3fff).m(m_lnw_bank, FUNC(address_map_bank_device::amap8)); map(0x0000, 0x3fff).m(m_lnw_bank, FUNC(address_map_bank_device::amap8));
@ -540,9 +570,17 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(trs80_state::ht1080z) MACHINE_CONFIG_START(trs80_state::ht1080z)
sys80(config); sys80(config);
MCFG_DEVICE_MODIFY("maincpu")
MCFG_DEVICE_IO_MAP(ht1080z_io)
MCFG_SCREEN_MODIFY("screen") MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_ht1080z) MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_ht1080z)
MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_ht1080z) MCFG_GFXDECODE_MODIFY("gfxdecode", gfx_ht1080z)
MCFG_DEVICE_ADD("ay1", AY8910, 1'500'000) // guess of clock
//MCFG_AY8910_PORT_A_READ_CB(...) // ports are some kind of expansion slot
//MCFG_AY8910_PORT_B_READ_CB(...)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
MACHINE_CONFIG_END MACHINE_CONFIG_END
MACHINE_CONFIG_START(trs80_state::lnw80) MACHINE_CONFIG_START(trs80_state::lnw80)

View File

@ -104,6 +104,7 @@ private:
void sys80_io(address_map &map); void sys80_io(address_map &map);
void trs80_io(address_map &map); void trs80_io(address_map &map);
void trs80_mem(address_map &map); void trs80_mem(address_map &map);
void ht1080z_io(address_map &map);
uint8_t m_mode; uint8_t m_mode;
uint8_t m_irq; uint8_t m_irq;

View File

@ -352,6 +352,7 @@ void trs80_state::machine_start()
void trs80_state::machine_reset() void trs80_state::machine_reset()
{ {
m_cassette_data = false; m_cassette_data = false;
// if machine has a uart but no brg, the baud is determined by dipswitch
if (m_io_baud) if (m_io_baud)
{ {
const uint16_t s_bauds[8]={ 110, 300, 600, 1200, 2400, 4800, 9600, 19200 }; const uint16_t s_bauds[8]={ 110, 300, 600, 1200, 2400, 4800, 9600, 19200 };