Color GAL5, color board for MZ80KC/1200

MooZ
Posts: 38
Joined: Thu Mar 01, 2018 9:39 am

Color GAL5, color board for MZ80KC/1200

Post by MooZ »

While browsing I/O magazine issues on archive.org, I stumbled upon the schematics for what appears to be a color expansion board for the MZ80K/C and MZ1200.
https://archive.org/details/Io19843/page/n183/mode/2up
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: Color GAL5, color board for MZ80KC/1200

Post by hlide »

The MZ-1200 and MZ-80A have a lot of hardware parts in common: there is a connector which allows to add a color board (the engineers already thought about that addition):
*** the one for MZ-80A (pins are present) ***
mz80a_6.jpg
mz80a_6.jpg (36.58 KiB) Viewed 8530 times
*** the one for MZ-1200 (pins are not present) ***
mz12_6.jpg
mz12_6.jpg (32.92 KiB) Viewed 8530 times
And here the connector details:

Code: Select all

D0	D1	D2	D3	D4	D5	D6	D7	LOAD	VIDEO	/VHBLNK SYNCH	/HBLNK	GND	+ 12V	GND	+ 5V
A0	A1	A2	A3	A4	A5	A6	A7	A8	A9	A10	/WE	/GT	/CS	/RD	GND	+ 5V 

Code: Select all

Signal name	function
LOAD		The timing for fetching the character from the CGROM and loading it into the shift register for display output is shown below.
VIDEO		The video signal itself sent to a monochrome monitor after masking the non-display part with a blanking signal.
/VHBLNK		Synthesis of vertical and horizontal blanking signals.
SYNCH		A combination of vertical and horizontal sync signals (composite sync signal)
/HBLNK		Horizontal blanking signal
/GT		Attribute VRAM access data bus gate signal.
/CS		Attribute VRAM access chip select signal ($D800 to $DFFF)
A10~A0		It is not a pure Z80 address bus, but a MUX of the VRAM address to display it. That is, when writing to the attribute VRAM, it indicates the address, and in other cases, it indicates the VRAM being displayed.
D7~D0		Z80 data bus
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: Color GAL5, color board for MZ80KC/1200

Post by hlide »

Which means the same card should probably work as well with an MZ-80A.
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: Color GAL5, color board for MZ80KC/1200

Post by hlide »

The MZ-80K mirrors each 1K pages in $D000-$DFFF so it isn't possible to map the color pages at $D800-$DBFF as it conflicts with character VRAM. I would expect the same for the others like C/KE/KE2. To circumvolate that obstacle, we can use an "inker" : in the magazine it is $E00C. So we write the foreground and background colors at this address and each character writing to VRAM will also write the FG and BG colors in the attribute VRAM of the additional board. However, that's quite different from what it is done on MZ-80A/MZ-1200 (with an additional color board) and MZ-700 because you then need to set the right colors whenever printing characters as their colors would immediately change.
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: Color GAL5, color board for MZ80KC/1200

Post by hlide »

For MZ-80A/MZ-1200 through the video connector:
COL80A.png
COL80A.png (49.54 KiB) Viewed 8528 times
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: Color GAL5, color board for MZ80KC/1200

Post by hlide »

Color Display Adapter (Note) This is an article of the I/O September 1981 issue that modifies the main body.
0E0C1H: Color data
  Bit7: unused
  Bit6: front red
  Bit5: Front green
  Bit4: Front blue
  Bit3: unused
  Bit2: Back red
  Bit1: Back green
  Bit0: Back blue
   Add back RAM to V-RAM 0D000H-0D3FFH.
   If you write the display code to VRAM as usual, the color data of 0E0C1H is written in the back RAM.
   Output as color data to a color monitor.
   Note that color data and MZ-700 color data are incompatible because red and green are swapped.
   
   <Example>
    Write 047H (front red, back white) to 0E0C1H
    Write 001H (dislay code A) to 0D000H
    A red A is displayed on a white background in the upper left of the screen


COLOR GAL5 (Note) This is an article of the I/O March 1984 issue about Yoshiki Kogyo's color gal.
0E00CH: Color data
  Bit7: unused
  Bit6: Back red
  Bit5: Back green
  Bit4: Back blue
  Bit3: unused
  Bit2: front red
  Bit1: Front green
  Bit0: Front blue
   Add back RAM to V-RAM 0D000H-0D3FFH.
   If you write the display code to VRAM as usual,
   Color data of 0E00CH is written in the back RAM
   Output as color data to a color monitor.
   Note that color data and MZ-700 color data are incompatible because read and green are swapped
   and because foreground and background are swapped.
   
   <Example>
    Write 047H (back red, front white) on 0E00CH
    Write 001H (dislay code A) to 0D000H
    White A is displayed in red on the upper left of the screen.
psmart
Posts: 138
Joined: Thu Nov 21, 2019 10:12 am
Location: Leeds
Contact:

Re: Color GAL5, color board for MZ80KC/1200

Post by psmart »

Interesting post seeing the Japanese GAL5 - the missing information. I built a colour board using Nibbles Lab schematic as the basis and need to make the DIN output, this will help a lot, thank-you for the information.

My board is at: https://eaw.app/sharpmz-upgrades-80col/
Sharp MZ/X Series Projects and FPGA Emulator
engineers@work : https://eaw.app/sharpmz-series/
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: Color GAL5, color board for MZ80KC/1200

Post by hlide »

Hi, psmart.

Your version is almost compatible with MZ-700. The color data matches the one for MZ-700, except for one thing: the font selector bits. Not a big deal since you can fix through your expanded CGROM.

The order for a MZ-700 compatible font selection would be:

Code: Select all

Slot	Attribute Bits 7,3	U9 Latch Bits 0:1	Size	Description
4	0,0			0,1			2K	MZ700 European CG-ROM (1st bank)
5	0,1			0,1			2K	MZ700 Japanese CG-ROM (1st bank)
6	1,0			0,1			2K	MZ700 European CG-ROM (2nd bank)
7	1,1			0,1			2K	MZ700 Japanese CG-ROM (2nd bank)
MZ-700 programs - as long as they don't deal with $E0-$E6 ports (DRAM $0000-0FFF and $D000-$FFFF) - should be able to run upon MZ-80 A with your color board.
psmart
Posts: 138
Joined: Thu Nov 21, 2019 10:12 am
Location: Leeds
Contact:

Re: Color GAL5, color board for MZ80KC/1200

Post by psmart »

Hi Hilde,

I will be making updates to the board soon, mainly as I made a big mistake in the PCB design, I got the footprints of the 2 gate arrays the wrong way round, not sure how but it meant a lot of fine soldering to fix.

The MZ-80A mapping of the colour attribute RAM is different (page 167 of the user manual) so I will add logic to cater for both the MZ-700 and MZ-80A specifications. The MZ-80A allows for 2 bits of intensity, ie:

Bit 7:6 - Colour level 00:light -> 11:dark
Bit 5:3 - Background colour
5. Red
4. Green
3. Blue
Bit 2:0. Foreground colour.

Some of the MZ-700 aware programs such as PACMAN (MAC PAC) come up in full colour on the MZ-80A with this board, bits 7:3 remain at 0 during the game so the font is fine, but I take on board your suggestions and will re-arrange the CGROM's.

Thank-you for the feedback, appreciated.
Sharp MZ/X Series Projects and FPGA Emulator
engineers@work : https://eaw.app/sharpmz-series/
hlide
Posts: 681
Joined: Thu Jan 25, 2018 9:31 pm

Re: Color GAL5, color board for MZ80KC/1200

Post by hlide »

That's weird. From your page, the color format is:

Code: Select all

Bit	Function
0	Background Blue
1	Background Red
2	Background Green
3	Character ROM Bit 0
4	Foreground Blue
5	Foreground Red
6	Foreground Green
7	Character ROM Bit 1
From MZ-700 manual:

Code: Select all

Bit	Function
0	Background Blue
1	Background Red
2	Background Green
3	Unused
4	Foreground Blue
5	Foreground Red
6	Foreground Green
7	Character ROM Bit 0
As for that "MZ-80A mapping of the colour attribute RAM is different (page 167 of the user manual)", I wonder which manual you're speaking about.

I have two remarks after rethinking:

1) Having EUROPEAN/JAPANESE bit in ATTRIBUTE bits is not good: A Japanese game will have bit 3 set to 0 so it would be better to put the Japanese version selectable from U9 latch bits. Unless you have a way to invert bit 3 or not.

2) For CP/M, wouldn't an ASCII font be more helpful?
Post Reply