The HT 1080Z screen could display 64x16 characters (or 32x16 in video cut mode), one cell had 6x12 pixels. With graphics characters the machine could simuate pixel graph, but that was very limited in terms of resolution, exactly 128x48 pixels. Actually one graphics pixel was a 1/6 character cell.
It is notable that despite of this low resolution and poor hardware, there were good games on this system.
When I worked on the MiST implementation, the most challenging part was to learn about the original hardware. I did not know and use the HT in it's age, only remembered that I saw it sometimes in the school's computer room. Thanks to Zoltán Kollár I could quickly pick up the knowledge. Assembling a Z80 system is not a big deal now, so the only "custom chip" I needed to work on was the video controller part of the machine. Once that started to work, other parts like sound and keyboard seemed quite simple to implement..
The video controller uses two memory areas, both lay in the FPGA internal dual-port ram memory. The first are acts as ROM, contains the 4K character bitmaps, while the other 1K holds the display memory itself. Thanks to the dual-port technology both the video controller and the CPU can access this area any time (without contention). The rest of the HT memory is in the SDRAM. The ROM image is automatically loaded in to the SDRAM when the core starts, it's a standard feature of the MiST.
The core (similar to my Primo core) supports two video outputs: RGB and composite Sync, for European TV units with Euro Scart socket, and standard VGA. In case of the VGA mode it does not use the Scan Doubler module, instead, it generates the VGA signal directly and draws every HT scan lines twice. For VGA output only 524 lines generated instead of 624, so the border area up and down are thinner. Since the HT does not detect vertical retrace and does not use interrupts, the base system does not even know whether the video controller is in VGA or PAL mode.
Programs can be loaded into the MiST via the OSD menu. Currently it supports .CAS (casette) files. In the OSD you select a file to load, then in the HT system you need to either use the CLOAD command for basic programs, or load the program in the SYSTEM. What really happens is that the file is already loaded into the upper part of the SDRAM (above 64K) when the OSD closed, then later, the ROM copies over the bytes from that area. I needed to do some basic patch on the ROM to make this work.
As usual in the MiST environment, you can load .CAS files, send RESET signal or turn scanlines effect in the OSD menu. Scanlines effect only affects the screen when the core runs in VGA output mode, does nothing in RGB+Sync Scart mode. Colours can be changed with the following keys: F5, F6, F7
Extra registers (Z8 OUT ports):
$00 bit 3..0 : Color Register Ink $01 bit 3..0 : Color Register Paper $02 bit 3..0 : Color Register Border
On some pictures you can see the other screen, screen of my PC I use for development
First test of the character generator in 64 columns mode. With blue border so I can see if it works as expected
Half screen mode, when only 32 character columns displayed
Boot screen of the HT with the OSD
A simple basic test and its result. In this case only 16K RAM is used.
This is the result of the original HD demo basic program. Colours changed by F5,F6 and F7 keys
Intro screen of the famous game "Galaxy"
Another French language game
- Zoltán Kollár, who helped me to learn about the HT, provided useful documentations, and answered tons of my questions patiently
- Gábor Orvos, who pushed (and inspired) me to implement my cores on the MiST
Links and references:
[Home | FPGA development]