This repository was archived by the owner on Dec 24, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 91
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
162 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
--- | ||
layout: page | ||
title: VT100 Terminal | ||
permalink: /devices/pc8080/machine/vt100/ | ||
machines: | ||
- type: pc8080 | ||
id: vt100 | ||
debugger: true | ||
--- | ||
|
||
VT100 Terminal | ||
-------------- | ||
|
||
This is where we'll be testing another 8080-based machine: a 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. | ||
|
||
[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: | ||
|
||
Start End Size Description | ||
0x0000 0x1fff 8K Basic ROM | ||
0x2000 0x2012 18B Blank lines for refresh (6 x 3B) | ||
0x2012 0x204f 61B Stack area (grows down from 0x204e) | ||
0x204f 0x22d0 641B Scratch Pad/Setup Area(?) | ||
0x22d0 0x2c00 2352B Screen RAM | ||
|
||
Normally, the PC8080 Video component allocates its own video buffer, based on the specified buffer address | ||
(*bufferAddr*) and other dimensions (eg, *bufferCols* and *bufferRows*), but the VT100 is a little unusual: | ||
it has a custom video processor that uses DMA to request character data from any region of RAM, one line at a time. | ||
It always defaults to address 0x2000 for the first line of character data, but each line terminates with 3 bytes | ||
containing line attributes and the address of the next line, so the location of subsequent lines will vary, | ||
depending on the following line attributes: | ||
|
||
* Single-width characters (80 or 132 columns) | ||
* Double-width characters (40 or 66 columns) | ||
|
||
In addition to single vs. double width, line attributes can also specify double height (along with whether the | ||
top half or bottom half of the character should be displayed). | ||
|
||
The VT100 screen displays 800 dots per horizontal scan, and a total of 240 horizontal scans, | ||
so for optimum scaling, we define our own screen using multiples of those dimensions (currently 1600x480), | ||
and by default, it uses a 10x10 character cell, so the default display dimensions are 80 columns by 24 rows. | ||
|
||
In light of the above, the [machine XML file](machine.xml) must set the Video component's *bufferRAM* property | ||
to "true", indicating that existing RAM should be used, and a new property, *bufferFormat* must be set to "vt100", | ||
enabling support for the VT100's line data format; eg: | ||
|
||
<ram id="ram" addr="0x2000" size="0x0C00"/> | ||
<video id="video" screenWidth="1600" screenHeight="480" bufferAddr="0x2000" bufferRAM="true" bufferFormat="vt100" bufferCols="80" bufferRows="24" ...> | ||
|
||
{% include machine.html id="vt100" %} | ||
|
||
VT100 Resources | ||
--------------- | ||
|
||
[VT100 Publications](/pubs/dec/vt100/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<?xml-stylesheet type="text/xsl" href="/versions/pc8080/1.23.2/machine.xsl"?> | ||
<machine id="vt100" class="pc8080" border="1" pos="center" background="#FAEBD7"> | ||
<name pos="center">VT100 Terminal</name> | ||
<computer id="computer" busWidth="16"/> | ||
<cpu id="cpu8080" model="8080" cycles="2000000" autoStart="true"/> | ||
<rom id="rom" addr="0x0000" size="0x2000" file="/devices/pc8080/rom/vt100/VT100.json"/> | ||
<ram id="ram" addr="0x2000" size="0x02D0"/> | ||
<video id="video" screenWidth="1600" screenHeight="480" smoothing="false" bufferAddr="0x22D0" bufferRAM="true" bufferFormat="vt100" width="40%" pos="left" padding="8px"> | ||
<menu> | ||
<title>VT100 Screen</title> | ||
<control type="container" pos="right"> | ||
<control type="button" binding="fullScreen" padleft="8px;line-height:1em">Full Screen</control> | ||
</control> | ||
</menu> | ||
</video> | ||
<keyboard id="keyboard"/> | ||
<panel ref="/devices/pc8080/panel/left.xml"/> | ||
<debugger id="debugger" commands="s 8086"/> | ||
</machine> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
--- | ||
layout: page | ||
title: Challenger 1P Publications | ||
permalink: /pubs/c1p/ | ||
--- | ||
|
||
Challenger 1P Publications | ||
-------------------------- | ||
|
||
* [Data Sheets](datasheets/) | ||
* [Technical Reference Manuals](techref/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
--- | ||
layout: page | ||
title: Digital Equipment Corporation (DEC) Publications | ||
permalink: /pubs/dec/ | ||
--- | ||
|
||
Digital Equipment Corporation (DEC) Publications | ||
------------------------------------------------ | ||
|
||
* [VT100](vt100/) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
--- | ||
layout: page | ||
title: VT100 Publications | ||
permalink: /pubs/dec/vt100/ | ||
--- | ||
|
||
VT100 Publications | ||
------------------ | ||
|
||
* Technical Manuals ([September 1980](http://www.vt100.net/docs/vt100-tm/ek-vt100-tm-002.pdf), [July 1982](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-TM-003_VT100_Technical_Manual_Jul82.pdf)) | ||
* User Guides ([August 1978](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-UG-001_VT100_User_Guide_Aug78.pdf), [January 1979](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/EK-VT100-UG-002_VT100_User_Guide_Jan79.pdf)) | ||
* Field Maintenance Guides ([March 1980](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/MP00633_VT100_Mar80.pdf), [February 1982](http://bitsavers.informatik.uni-stuttgart.de/pdf/dec/terminal/vt100/MP00633_VT100_Schematic_Feb82.pdf)) | ||
|
||
Additional Resources | ||
-------------------- | ||
|
||
* [Wikipedia](https://en.wikipedia.org/wiki/VT100) | ||
* [vt100.net](http://www.vt100.net/docs/) | ||
* [Retrochallenge 2014](http://vt100romhax.tumblr.com/) by [Adam Mayer](https://github.com/phooky) |