mirror of
https://github.com/holub/mame
synced 2025-04-16 05:24:54 +03:00
radionic: PPI and documentation.
This commit is contained in:
parent
be14bfe226
commit
c61bd7299c
@ -28,7 +28,7 @@ Komtek 1 (Radionic R1001) memory map
|
||||
3c00-3fff static video RAM and colour ram, banked
|
||||
4000-ffff dynamic main RAM
|
||||
|
||||
Printer: Level II usually 37e8
|
||||
Printer: Usually 37e8, but you can use the PPI instead.
|
||||
|
||||
Cassette baud rate: 500 baud
|
||||
|
||||
@ -49,35 +49,53 @@ SYSTEM commands:
|
||||
- / to execute last program loaded
|
||||
- /nnnnn to execute program at nnnnn (decimal)
|
||||
|
||||
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, days. The seconds are stored at 0x4041.
|
||||
A reboot always sets the time to zero.
|
||||
Inbuilt Monitor - its existence is not revealed to the user.
|
||||
- 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 appears to end at 33D3, however the rom contains more code through to 35EB.
|
||||
But, the 34xx area is overwitten by the optional RS-232 expansion box.
|
||||
|
||||
About the RTC - The time is incremented while it is enabled via the Machine Configuration. The time
|
||||
is stored in a series of bytes in the computer's work area. The bytes are in a certain order,
|
||||
this being: seconds, minutes, hours, days. The seconds are stored at 0x4041. A reboot always
|
||||
sets the time to zero.
|
||||
|
||||
About colours - The computer has 16 colours with a byte at 350B controlling the operation.
|
||||
POKE 13579,2 : monochrome
|
||||
POKE 13579,4 : programmable colour
|
||||
POKE 13579,12 : automatic colour
|
||||
There's no schematic or documentation of the Colour Board, however some more information...
|
||||
More information was discovered, this being
|
||||
- It doesn't have to be 350B (13579), anything in the 35xx range will do.
|
||||
- d0 : write of vram goes to vram (0 = yes, 1 = no)
|
||||
- d1 : write of vram goes to colour ram (0 = yes, 1 = no)
|
||||
- d2 : colour enable (0 = monochrome, 1 = colour)
|
||||
- d3 : programmable or automatic (0 = programmable, 1 = automatic)
|
||||
List of colour codes:
|
||||
0 = off white; 1 = light green; 2 = red; 3 = dark green; 4 = blue; 5 = greenish blue;
|
||||
6 = rose red; 7 = dusty blue; 8 = greenish yellow; 9 = light yellow (greenish); 10 = golden red
|
||||
11 = grey; 12 = reddish green; 13 = pale yellow; 14 = orange; 15 = ogre green.
|
||||
As you can see, the descriptions are quite vague, and appear to be background only. The foreground
|
||||
is assumed to always be white.
|
||||
The colour codes and names are listed in the palette below. The descriptions are quite vague,
|
||||
and appear to be background only. The foreground is assumed to always be white.
|
||||
Automatic is a preset colour set by internal jumpers.
|
||||
- No schematic or technical info for the colour board
|
||||
- No information on the settings of the Automatic mode
|
||||
- The "User Friendly Manual" has a bunch of mistakes (page 15).
|
||||
- When reading video ram, it is not known how this is affected if colour ram is enabled
|
||||
- It's not known if colour ram can be read. But LDOS won't scroll if it can't always read vram.
|
||||
- No colour programs exist in the wild, so nothing can be verified.
|
||||
So, some guesswork has been done.
|
||||
|
||||
About the PPI - A selling point of this computer was the ability to sense and control external gadgets.
|
||||
For example, it could join to a temperature sensor, and when the temperature reached a certain value
|
||||
the computer could instruct a device to turn on or off. There's 4 input jacks and 6 output jacks.
|
||||
The PPI can also control a parallel printer. To enable this, enter SYSTEM then /12367 .
|
||||
|
||||
About the RS-232 unit - This is an external box that plugs into the expansion port. It takes over memory
|
||||
region 3400-34FF, although it only uses 3400 and 3401. It has a baud generator consisting of 2x 74LS163
|
||||
and a dipswitch block to choose one of 5 possible rates. The UART and RS-232 parts are conventional.
|
||||
There's no programming of the unit from the inbuilt roms; you need to write your own.
|
||||
|
||||
********************************************************************************************************
|
||||
|
||||
To Do / Status:
|
||||
@ -85,7 +103,6 @@ To Do / Status:
|
||||
|
||||
- Difficulty loading real tapes.
|
||||
- Writing to floppy is problematic; freezing/crashing are common issues.
|
||||
- Add rs232 board
|
||||
- Add fdc doubler (only some info available)
|
||||
|
||||
*******************************************************************************************************/
|
||||
@ -122,6 +139,10 @@ private:
|
||||
void cctrl_w(offs_t offset, u8 data);
|
||||
void video_w(offs_t offset, u8 data);
|
||||
u8 video_r(offs_t offset);
|
||||
void ppi_pa_w(offs_t offset, u8 data);
|
||||
void ppi_pb_w(offs_t offset, u8 data);
|
||||
void ppi_pc_w(offs_t offset, u8 data);
|
||||
u8 ppi_pc_r(offs_t offset);
|
||||
void mem_map(address_map &map);
|
||||
static void floppy_formats(format_registration &fr);
|
||||
u8 m_cctrl = 2;
|
||||
@ -411,6 +432,34 @@ void radionic_state::cctrl_w(offs_t offset, u8 data)
|
||||
m_cctrl = data & 15;
|
||||
}
|
||||
|
||||
void radionic_state::ppi_pa_w(offs_t offset, u8 data)
|
||||
{
|
||||
// d0-7: Data to extra printer
|
||||
}
|
||||
|
||||
void radionic_state::ppi_pb_w(offs_t offset, u8 data)
|
||||
{
|
||||
// d0-7: Outputs to control jacks (only 6 connected up by default)
|
||||
}
|
||||
|
||||
void radionic_state::ppi_pc_w(offs_t offset, u8 data)
|
||||
{
|
||||
// Printer control
|
||||
// d0: Strobe
|
||||
}
|
||||
|
||||
u8 radionic_state::ppi_pc_r(offs_t offset)
|
||||
{
|
||||
// Printer Status
|
||||
// d1: Busy
|
||||
// d2: out of paper
|
||||
// d3: Unit select
|
||||
|
||||
// Sensor Status
|
||||
// d4-7: sensing inputs
|
||||
return 0xFF;
|
||||
}
|
||||
|
||||
void radionic_state::floppy_formats(format_registration &fr)
|
||||
{
|
||||
fr.add(FLOPPY_JV1_FORMAT);
|
||||
@ -492,10 +541,10 @@ void radionic_state::radionic(machine_config &config)
|
||||
|
||||
// Interface to external circuits
|
||||
I8255(config, m_ppi);
|
||||
//m_ppi->in_pc_callback().set(FUNC(pulsar_state::ppi_pc_r)); // Sensing from external and printer status
|
||||
//m_ppi->out_pa_callback().set(FUNC(pulsar_state::ppi_pa_w)); // Data for external plugin printer module
|
||||
//m_ppi->out_pb_callback().set(FUNC(pulsar_state::ppi_pb_w)); // Control data to external
|
||||
//m_ppi->out_pc_callback().set(FUNC(pulsar_state::ppi_pc_w)); // Printer strobe
|
||||
m_ppi->in_pc_callback().set(FUNC(radionic_state::ppi_pc_r)); // Sensing from external and printer status
|
||||
m_ppi->out_pa_callback().set(FUNC(radionic_state::ppi_pa_w)); // Data for external plugin printer module
|
||||
m_ppi->out_pb_callback().set(FUNC(radionic_state::ppi_pb_w)); // Control data to external
|
||||
m_ppi->out_pc_callback().set(FUNC(radionic_state::ppi_pc_w)); // Printer strobe
|
||||
}
|
||||
|
||||
|
||||
|
@ -89,7 +89,6 @@ About the system80 - Asian version of trs80l2, known as EACA Video Genie. In USA
|
||||
- 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
|
||||
which activated Hungarian features. To activate - start emulation - enter SYSTEM
|
||||
|
Loading…
Reference in New Issue
Block a user