Download Parallel Processing

Transcript
By Jim & Jack Dennon
rnicroMethods, Inc.
P.O. BoxG
Warrenton, OR 97146
ZRP/M2: Anticipating The Z280
A New Z80 Emulator For PCjXTjAT Clones
The new Z280 has definitely put some
spark back into the CP/M world, but Zilog
has withdrawn the chip. What to do? Read
on as the Dennons describe their attempts to
emulate the Z80 and the Z280 on a clone.
(Where else?)
f you boot your V20-based PC/XT
compatible with PC RP 1M2 (it emulates CP1M on a clone), you can run
most CP1M programs. The ones that
won't run usually contain 280 instructions, and the V20 supports only the 8080
subset.
I
multi-segment version of this scheme for
the 2280. This architecture achieves
speed at the expense of memory space.
Unlike the Z80, which has an 8-bit
I/O space, the 2280 has a 24-bit I/O
space that maps easily down to the 16-bit
I/O space of the 8088. We simply set the
high order eight bits of the 24-bit port
value to zero. On the 2280, the high
order eight bits are provided by the I/O
Page register. The 2280 clears the I/O
Page register at reset.
On-chip peripheral devices - a UART
and a DMA controller, for example - oc-
Hardware & Software Solutions
Our first solution for this problem
was a hardware-oriented one based on
Decmation's Blue Thunder card. With
this board plugged into the PC bus, booting the Blue Thunder version of PC
RP1M2 brings up a 280 CP1M 2.2 compatible system.
Since a 280 is executing the code, the
system is fast; and for computationally
intensive applications, it remains the best
solution. The disadvantages are: it's
somewhat expensive, and it occupies an
expansion slot.
We were thinking about releasing a
software 280 emulator-equipped version
of PC RP 1M2 when Zilog announced the
2280. The Z280 executes all the 280 instructions and more. And some of its
more interesting 16-bit instructions map
closely into 8088 instructions.
So we decided to create a 2280
emulator and surround it with a new
version of PC RP 1M2. The result is a system we call 2RP1M2, which will boot on
any PC/XT I AT clone (a clone with lots
of memory).
Decmation designed the emulator.
There's no instruction decoder so the
emulator simply uses the operation code
as the high byte of the 16-bit offset of the
instruction processor. We invented a
76
MICRO CORNUCOPIA, #38, Nov-Dec 1987
cupy nonzero I/O Page locations. Our
present emulator supports only I/O Page
zero. That is, we map 2280 I/O page
zero directly onto the 16-bit 8088 1/0
space.
On the IBM PC, the COM1 serial data
register (for example) is located at I/O
location 03F8H, so the code in Figure 1 is
sufficient to read a character from the
COM1 serial port.
1/0
Using this new I/O capability, we've
written a ZRP1M2 driver for Doug
Figure 1 - Fetching A Character From A Port
GSI -- Get COMl serial character.
Exit
A = char
OlF803
ED78
C9
LXI
IN
GSI:
B,03F8H
A,BC
RET
Figure 2 - Kaypro To PC Null Modem Cable
TO IBM PC RS-232 CONNECTOR
Tx
Rx
DB25S
RTS
o
CTS
DSR
GND
0@@@@
@@@@@
RI
CABLE
DB25P
0@@@@
@@@@@@@@@@@@
Tx
Rx
RTS
CTS
+5
GND
DCD
DTR
TO KAYPRO II RS-232 SERIAL DATA CONNECTOR