I own a MZ-80K with discs and a Tandy DMP100 printer for which I am
currently building a driver interface. I also have a colour card driving
an R.G.B. monitor, the circuit diagram of which I enclose. Details of
the card are shown below.
I am also building an EPROM programmer that plugs into the Sharp I/0
box. As you can see I'm interested in hardware and would like to get
in touch with like-minded members.
Software-wise I'm interested mostly in m/c + assembler and have a
MONITOR SOURCE file under ZEN which can be assembled anywhere - in RAM
and thus be modified and examined in detail; this source file is heavily
commented. I also have a source file for ZEN-DOS, ZEN, and a home made
DISASSEMBLER. ZEN-DOS is an absolute must for any serious disk work
as the utilities allow almost anything to be done to any disk and can
load 16K programs from disk in about 3 or 4 seconds.

click for a detailed view ( 126kb )
The circuit diagram shows how to convert your MZ80K to colour for about
£5.00 worth of chips. The circuit as shown gives RED-GREEN-BLUE
output suitable for driving a monitor; if you wish to use it on a television
a UHF colour modulator is available from ASTEC at 4A Sheet St., Windsor,
Berks ( 07535 ) 55245, which accepts RGB inputs and converts them to
signals suitable for a domestic TV: the modulator number is UM 4101.
IC's 1 and 3 are 4 bit static rams x 1024 which allows you to store
one 8 bit number for each location. reading and writing to those rams
is via IC2. This 8-bit number is split into 4 upper and 4 lower bits
to give RGB for foreground and background colours. This is achieved
by 'ANDing' the 'video' signal with RGB outputs. The diodes must be
fairly fast diodes: 1N914's or 1N4148's are acceptable otherwise horizontal
lines will be lost on the screen. The 'sync' signal is inverted because
it suits my monitor but this can be changed by omitting IC6b.
This board requires direct soldering to the main PCB and leads should
be kept as short as possible.
Address lines A0 - A9 are connected directly to the pins of the video
ram IC41 and IC42 in the following manner:-
IC41
|
IC42
|
IC47
( all CSx negative logic;
Hi = 0, Lo = 1)
|
5 - A0
|
5 - A0
|
1 - CS0
|
10 - CS9
|
6 - A1
|
6 - A1
|
2 - CS1
|
11 - CSA
|
7 - A2
|
7 - A2
|
3 - CS2
|
12 - CSB
|
4 - A3
|
4 - A3
|
4 - CS3
|
13 - CSC
|
3 - A4
|
3 - A4
|
5 - CS4
|
14 - CSD
|
2 - A5
|
2 - A5
|
6 - CS5
|
15 - CSE
|
1 - A6
|
1 - A6
|
7 - CS6
|
|
17 - A7
|
17 - A7
|
8 - CS7
|
|
16 - A8
|
16 - A8
|
9 - CS8
|
|
15 - A9
|
15 - A9
|
|
|
CSC and CSX are connected to IC47 on the pins shown above. CSX is the
connection that decides the address of the colour ram. This is to make
it easy for software purposes, e.g. if CSC is used then the addresses
of the colours would be from 49152 to 50151 so that the command POKE
50151, X would change the colour of the last square on the screen to
whatever colour you choose for foreground and background. One word of
warning, different BASIC's' use different pages of ram for scratchpad
memory, so that on loading BASIC it is advisable to 'limit' the BASIC
to below the colour memory. RD and WR can be connected to pins 8 and
10 respectively of the bus connector at the back of the main PCB. SYNC
is taken from the present video plug as is VIDEO and GND. D0 - D7 can
also be connected to the bus connector pins 18 ( D7 ) - 25 ( D0 ). Now
comes the hard bit. CSD comes from IC47 to IC43 pin 19 and IC23 pin
11 and IC40 pin 1. What is required is that the tracks are cut so that
CSD does not go to IC40 pin 1 but goes instead to your conversion card
and the connection marked IC40 pin1 goes to IC40 pin 1. When you cut
the tracks you must ensure that all the other connections to CSD are
made good.
Once the board is connected, if it is connected to an address that
is already used by Sharp ram, e.g. C000H then you must leave the RD
line disconnected and use the pull up resistor shown dotted. If you
have no disks fitted, you may find it easier to use address F000H.
Load whichever BASIC you wish to use ( or ZEN or m/code ). If you use
BASIC then you must first use the LIMIT statement to get rid of the
screen 'glittering' by limiting BASIC to below the address of ram you
have chosen. It is then possible by use of the POKE statement to colour
each of the 1024 screen locations a different foreground and background
colour. The numbers of the fore/background colours are calculated thus.
Bit |
7
|
6
|
5
|
4
|
3
|
2
|
1
|
0
|
|
RED |
GREEN |
BLUE |
UNUSED |
RED |
GREEN |
BLUE |
UNUSED |
foreground colours
|
background colours
|
128
|
64
|
32
|
16
|
8
|
4
|
2
|
1
|
e.g.
if you want RED characters on a BLUE background then, POKE the relevant
with 128 + 2 = 130
e.g.
BLUE characters on BLACK background = 32 + 0 = 32
BLACK characters on GREEN background = 0 + 4 = 4
Eight colours are possible, i.e. RED, GREEN, BLUE, WHITE, BLACK, CYAN,
YELLOW, MAGENTA by mixing RED, GREEN and BLUE, giving 64 possible colour
combinations on the screen.
10 REM SIMULATION OF CHANGE MACHINE WHICH HANDLES 7 COINS
20 REM SEE DATA STATEMENT
30 DIM CN(7) : FOR I = 1 TO 7 : READ CN(I) : NEXT I
40 DATA 100, 50, 20, 10, 5, 2, 1
45 REM CHANGE GIVEN FOR A 5 POUND NOTE
50 PRINT "TYPE AMOUNT TO PAY IN POUNDS (MAX. 5.00)"
70 INPUT N$ : N = VAL(N$) : IF N > 5 THEN 60 : REM TOO_ LARGE
80 IF N < 0 THEN 60 : REM IMPOSSIBLE
90 N = INT(100 * N + 0.5)
100 N = 500 - N : REM DEDUCT FROM 500 PENCE
110 PRINT : PRINT "CHANGE FROM 5 POUNDS"
120 FOR I = 1 TO 7 : X = 0
130 IF N < CN(I) THEN 170
140 N = N - CN(I) : X = X + 1 : GOTO 130 : REM DEDUCT COIN
170 PRINT X; " COINS OF "; CN(I); " P"
180 NEXT I : END
|