PDA

View Full Version : On-screen-display


tcdev
19th March 2008, 02:51 PM
I've started adding an on-screen-display (OSD) to the PACE framework.

I've unashamedly ripped the one from the Vector06C project. Ultimately I was hoping to port the WD1793/SD emulation to the TRS-80 in some sort of modular form, so the 1st step is getting the OSD to display.

This much I've managed to do, albeit breaking every project in the process (I'll fix them all soon).

Next step is to hook up the 6502 core and have it writing to the OSD screen buffer.

Aside from doing disk system emulation, I also plan to use it for configuration DIP switches and/or displaying virtual LEDs, as my P2 hardware has only 1 of each...

tcdev
20th March 2008, 12:08 AM
All projects should now build with the new OSD support changes.

Of course, none of them actually have any OSD enabled atm, except for the TRS-80 Model 3, which is very much WIP.

The module should be reasonably generic. The OSD screen buffer and display logic is part of the GRAPHICS module. There is a read/write memory-mapped interface which is exposed in the GAME module, together with an enable signal.

Thus the GAME module can enable/disable the display, read/write to/from the screen buffer as it requires, and intercept and process input/key presses whilst the OSD is enabled.

The Vector06c WD1793 emulation instantiates the 65xx core with on-chip ROM/RAM to drive the OSD and drive any logic as a result of user input.

As a 1st-pass I'll write a generic module that instantiates the cpu, with some RAM and a ROM which is initialised from a "well-known" hex file, and some GPIO.

UPDATE: I have a generic module that can write to the OSD and accepts keys from the GAME module.

The Quartus project can be compiled once, and the OSD module software can subsequently be developed in cc65 and downloaded directly into the on-chip memory via the Altera In-System Memory tool. Thus software develop & test cycles are measured in seconds rather than many many minutes!