A Tribute to the Dick Smith System 80
(aka Video Genie and PMC-80/81)

System 80 / TRS-80 Model 1 ROM differences


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 (Version 1.2), 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'

Hex

105
106
107
108
109
10A
10B
10C
10D
10E
10F
110
111
112
113
114
115
116
117
118
119
11A
11B
11C 
11D 
11E 
11F 
120 
121 
122 
123 
124 
125 
126 
127 
128 
129 
12A

Sys 80

52
45
41
44
59
20
00
00
00
00
00
00
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
0D
OD
OD
OD

Op

LD D,D
LD B,L
LD B,C
LD B,H
LD E.C
JR NZ,010C

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

ASCII

R
E
A
D
Y

TRS-80

4D 
45
4D
4F
52
59
20
53
49
5A
45
00
52
41
44
49
4F
20
53
48
41
43
4B
20
4C
45
56
45
4C
20
49
49
20
42
41
53
49
43

Op

LD C,L
LD B,L
LD C.L
LD C,A
LD D,D
LD E,C
JR NZ,0160

LD C,C
LD E,D
LD B,L
NOP
LD D,D
LD B,C
LD B,H
LD C,C
LD C,A
JR NZ,016B

LD C,B
LD B,C
LD B,E
LD C,E
JR NZ,016A

LD B,L
LD D,(HL)
LD B,L
LD C,H
JR NZ,016D

LD C,C
JR NZ,0169

LD B,C
LD D,E
LD C,C
LD B,E

ASCII

M
E
M
O
R
Y

S
I
Z
E

R
A
D
I
O

S
H
A
C
K

L
E
V
E
L

I
I

B
A
S
I
C


2. OUT 254,A has replaced LD (37E4),A . This references a cassette I/O port.

Hex

212
213
214

Sys 80

D3
FE
00

Op

OUT (FE),A

NOP

ASCII


TRS-80

32
E4
37

Op

LD (37E4),A

ASCII

3. OUT 253,A  has replaced LD (37E8),A.  This references a printer I/O port.

Hex

5AD
5AE
5AF

Sys 80

00
D3
FD

Op

NOP
OUT (FD),A

ASCII


TRS-80

32
E8
37

Op

LD (37E8),A

ASCII

4. OUT 253,A  has replaced LD (37E8),A.  This references a printer I/O port.

Hex

5BB
5BC
5BD

Sys 80

00
D3
FD

Op

NOP
OUT (FD),A

ASCII


TRS-80

32
E8
37

Op

LD (37E8),A

ASCII

IN A,253 has replaced LD A,(37E8) .  This references a printer I/O port. 

Hex

5D1
5D2
5D3

Sys 80

00
DB
FD

Op

NOP
IN A, (FD)

ASCII


TRS-80

3A
E8
37

Op

LD A, (37E8)

ASCII


'SN' replaces the The error report 'L3'

Hex

18F5
18F6

Sys 80

53
4E

Op

LD D,E
LD C,(HL)

ASCII

S
N

TRS-80

4C
33

Op

LD C,H
INC SP

ASCII

L
3

(Back to parent page)