More VT100 video support (untested)
This commit is contained in:
parent
35b7c7d2a4
commit
21fc2e0639
9 changed files with 734 additions and 444 deletions
|
|
@ -49,13 +49,17 @@ enabling support for the VT100's line data format; eg:
|
|||
<ram id="ram" addr="0x2000" size="0x0C00"/>
|
||||
<video id="video" screenWidth="1600" screenHeight="800" bufferAddr="0x2000" bufferRAM="true" bufferFormat="vt100" bufferCols="80" bufferRows="24" ...>
|
||||
|
||||
The VT100 screen displays 800 dots per horizontal scan, and a total of 240 horizontal scans, and by default,
|
||||
it uses a 10x10 character cell, for a total of 80 columns and 24 rows of characters.
|
||||
Ordinarily, the VT100 screen displays 800 dots per horizontal scan, and a total of 240 horizontal scans, and by default,
|
||||
it uses a 10x10 character cell, for a total of 80 columns and 24 rows of characters. However, in 132-column mode, it
|
||||
uses a 9x10 character cell instead, and assuming no AVO expansion card is present, there is only enough screen RAM available
|
||||
for 14 rows of characters; this implies a total of 1188 dots displayed per horizontal scan, and a total of only 140 horizontal
|
||||
scans. This means we will have to dynamically reallocate the buffer display context whenever the horizontal dimensions change
|
||||
(ie, from 800 to 1188, or from 1188 back to 800).
|
||||
|
||||
For optimum scaling, I would normally define the virtual screen size using multiples of the VT100's "dot" dimensions;
|
||||
eg, 1600x960 (a horizontal multiplier of 2 and a vertical multiplier of 4). However, that would give us a virtual screen
|
||||
aspect ratio of 1.67, which is less than the (apparent) 2.0 aspect ratio of a physical screen, so I've changed the test
|
||||
machine's screen dimensions to 1600x800.
|
||||
aspect ratio of 1.67, which is less than the (apparent) 2.0 aspect ratio of a physical VT100 screen, so I've changed the
|
||||
test machine's screen dimensions to 1600x800.
|
||||
|
||||
Regarding physical dimensions, a VT100 screen measures 12 inches diagonally, and in 80-column mode, characters measure
|
||||
2.0mm x 3.35mm (in 132-column mode, they measure 1.3mm x 3.35mm). This means that the text area of the screen is roughly
|
||||
|
|
|
|||
|
|
@ -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" fontROM="/devices/pc8080/rom/vt100/23-018E2.json"
|
||||
<video id="video" screenWidth="1600" screenHeight="800" smoothing="false"
|
||||
fontROM="/devices/pc8080/rom/vt100/23-018E2.json" fontColor="white" cellWidth="10" cellHeight="10"
|
||||
bufferAddr="0x2000" bufferRAM="true" bufferFormat="vt100" bufferCols="80" bufferRows="24" pos="left" padding="8px">
|
||||
<menu>
|
||||
<title>VT100 Screen</title>
|
||||
|
|
|
|||
Loading…
Reference in a new issue