Support for loading the VT100 fontROM (but no actual font-building is happening yet)

This commit is contained in:
Jeff Parsons 2016-07-27 15:44:47 -07:00 committed by Jeff Parsons
commit 35b7c7d2a4
5 changed files with 400 additions and 259 deletions

View file

@ -11,11 +11,13 @@ machines:
VT100 Terminal
--------------
This is where we'll be testing another 8080-based machine: a VT100 Terminal. Unlike other VT100 emulations,
This is where we'll be testing another 8080-based machine: the VT100 Terminal. Unlike other VT100 emulations,
this will simulate a VT100 by running the terminal's original firmware inside the [PC8080](/modules/pc8080/) CPU emulator.
As described in the [Technical Manual (July 1982)](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-TM-003_VT100_Technical_Manual_Jul82.pdf),
p. 4-15, 8Kb (0x2000) of ROM is located at 0x0000, and 3Kb (0x0C00) of RAM immediately follows it at 0x2000.
p. 4-15, 8Kb (0x2000) of ROM is located at 0x0000, and 3Kb (0x0C00) of RAM immediately follows it at 0x2000. The ROM at
0x0000 contains all the VT100's 8080 code. The VT100 also contains a 2Kb character generator ROM, but it is not
mapped into the 8080's address space.
[vt100romhax](http://vt100romhax.tumblr.com/post/90697428973/the-vt100-memory-map-and-8080-disassembly)
(aka [phooky](https://github.com/phooky)) further explains VT100 memory usage:

View file

@ -6,7 +6,8 @@
<cpu id="cpu8080" model="8080" cycles="2000000"/>
<rom id="rom" addr="0x0000" size="0x2000" file="/devices/pc8080/rom/vt100/VT100.json"/>
<ram id="ram" addr="0x2000" size="0x0C00"/>
<video id="video" screenWidth="1600" screenHeight="800" smoothing="false" bufferAddr="0x2000" bufferRAM="true" bufferFormat="vt100" bufferCols="80" bufferRows="24" pos="left" padding="8px">
<video id="video" screenWidth="1600" screenHeight="800" smoothing="false" fontROM="/devices/pc8080/rom/vt100/23-018E2.json"
bufferAddr="0x2000" bufferRAM="true" bufferFormat="vt100" bufferCols="80" bufferRows="24" pos="left" padding="8px">
<menu>
<title>VT100 Screen</title>
<control type="container" pos="right">