The following text covering System 80/TRS-80
ROM differences were taken from Eddy Paay's book "Level 2 ROM Assembly
Language Toolkit". This 1982(?) Australian publication from
Adelaide-based Micro-80 covered the Trs-80 Model 1, the Model 3 and the
System 80. It followed Eddy's earlier book, "The Level II ROM
reference manual" which can be read
or downloaded here. The System 80's ROM was practically identical
to the TRS-80 Model 1 Level II ROM, with both Tandy and EACA having licenses
to use Microsoft Level II BASIC. Consequently, only two pages
in "Level 2 ROM Assembly Language Toolkit" actually deal with
the differences (part way down page 74 and page 75). Those page
contents appear below...
<---Extract starts here --->>
--** CASSETTE INTERFACE **--
The cassette interface on
both machines uses port FFH as its data port, with bits 0 and 1 being
used to output data to the cassette recorder (see discussion on port FFH
elsewhere in this manual). However, bit 2 is used
differently. The System 80 uses this bit to enable data to reach
the recorder. In other words, bit 2 must always be held high (bit
2 = 1) when reading or writing data to the cassette. This means
that each time port FFH is written to, bit 2 must be 1 if the cassette
has to stay enabled. It is also necessary to select which recorder
is to be used, internal or external. This has to be done with port
FEH, bit 4. Setting bit 4 to 0 selects cassette 1 (inbuilt) and
setting bit 4 to 1 selects cassette 2 (external).
--** PRINTER INTERFACE **--
The printer port in the
System 80 uses port FDH instead of memory address 37E8H. The bit
usage of this port is identical to the TRS-80 usage and should not
present any problems. To use the printer port, read from port FDH
to see if the printer is busy (bit 7 will be high if the printer is
busy). The output character to port FDH.
--** SYSTEM 80 CASSETTE PORT SUMMARY **--
PORT FFH
BIT NO.
0 & 1 DATA OUTPUT (See TRS-80
port FFH section)
2
High = cassette on, Low = cassette off
7
Cassette data in (Read)
PORT FEH
Bit No.
4
Cassette select: high = No. 2, low = No.1
<---Extract ends here ---->
The assembly listing below shows exactly where the differences between
the System 80 and the TRS-80 Model 1 lie. As you can see, they are
minimal.
1. 'READY' (and some nulls) has replaced 'MEMORY SIZE'
NOP
NOP
NOP
NOP
NOP
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C
DEC C