It's in Proof-of-concept state. Right now, it can emulate on real hardware CGA hi-res mode, by copying/refreshing the usual RAM Framebuffer to the Graphics Option's RAM to display. It steals around 12% CPU time for that with the help of GDC's Verticla Retrace IRQ, and finishes in 50 retraces with a full screen. Since the Vertical freq is around 60Hz, it's a around 1.2 frame/s (a tiny little bit more).
- Partial INT 10h handling
- CGA 640x200 black & white screen switching (mode = 6)
- Color/mono 80x25 char switching back (mode = 2 or 3)
- Contignous screen full refresh in 640x200 mode
- DEC Rainbow 100B (B is needed for redirected IRQ numbers)
- 896 kByte RAM, with ram expansion (need to have a shadow RAM buffer location at B800:0000 + 16k)
- Graphics Option
- Black & White monitor VR201
- MS DOS 2.0+
- CGA IO ports can not be amulated (no chance to do that)
- CGA 320x200 4 color modes
- BIOS character bitmaps not found in Rainbow @ FFA6E-FFE6E (it's a ROM area)
Tools needed:
- TinyAsm in your PATH: https://github.com/nanochess/tinyasm
Under DOS prompt, jut run
C:\RBCGA>BUILD.BAT
This also works in MSDOS under Rainbow itself.
Tools needed:
- Netwide Assembler in you path: https://www.nasm.us/
In the proper directory, just run
# build.sh
You will most probably also need to run CodeBlue PC emulator first:
> cb.exe /af c:\command.com
Then start the cga emulator:
> CGA.COM
If you are finished running your CGA application, just uninstall CGA.COM:
> CGA.COM OFF
That's all for now.
- CGA.COM this is the emulator
- CGATST.COM this a small quick tester application which runs on any DOS platform with CGA to display an image
- GDCTST.COM this is just a quick example how to program Graphics Option on Rainbow, and test with the same image