Color GAL5, color board for MZ80KC/1200
Color GAL5, color board for MZ80KC/1200
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
https://archive.org/details/Io19843/page/n183/mode/2up
Re: Color GAL5, color board for MZ80KC/1200
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) *** *** the one for MZ-1200 (pins are not present) *** And here the connector details:
*** the one for MZ-80A (pins are present) *** *** the one for MZ-1200 (pins are not present) *** 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
Re: Color GAL5, color board for MZ80KC/1200
Which means the same card should probably work as well with an MZ-80A.
Re: Color GAL5, color board for MZ80KC/1200
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.
Re: Color GAL5, color board for MZ80KC/1200
For MZ-80A/MZ-1200 through the video connector:
Re: Color GAL5, color board for MZ80KC/1200
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.
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.
Re: Color GAL5, color board for MZ80KC/1200
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/
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/
engineers@work : https://eaw.app/sharpmz-series/
Re: Color GAL5, color board for MZ80KC/1200
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:
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.
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)
Re: Color GAL5, color board for MZ80KC/1200
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.
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/
engineers@work : https://eaw.app/sharpmz-series/
Re: Color GAL5, color board for MZ80KC/1200
That's weird. From your page, the color format is:
From MZ-700 manual:
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?
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
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
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?