diff --git a/devices/pc8080/machine/vt100/README.md b/devices/pc8080/machine/vt100/README.md
index d0fd8bb8e..8c6e3c546 100644
--- a/devices/pc8080/machine/vt100/README.md
+++ b/devices/pc8080/machine/vt100/README.md
@@ -14,10 +14,15 @@ VT100 Terminal
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.
+{% include machine.html id="vt100" %}
+
+VT100 Memory Usage
+------------------
+
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. 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.
+0x0000 contains all the VT100's 8080 code. The VT100 also contains a 2Kb character generator ROM, but that ROM is not
+addressable by the CPU; it is used directly by the Video Processor.
[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:
@@ -29,18 +34,47 @@ mapped into the 8080's address space.
0x204f 0x22d0 641B Scratch Pad/Setup Area(?)
0x22d0 0x2c00 2352B Screen RAM
+VT100 I/O Ports
+---------------
+
+From p. 4-17 of the Technical Manual:
+
+ READ OR WRITE
+ 00H PUSART data bus
+ 01H PUSART command port
+
+ WRITE ONLY (Decoded with I/O WR L)
+ 02H Baud rate generator
+ 42H Brightness D/A latch
+ 62H NVR latch
+ 82H Keyboard UART data input
+ A2H Video processor DC012
+ C2H Video processor DC011
+ E2H Graphics port
+
+ READ ONLY (Decoded with I/O RD L)
+ 22H Modem buffer
+ 42H Flags buffer
+ 82H Keyboard UART data output
+
+The PC8080 ChipSet component deals with the ER1400's Non-volatile RAM (NVR) ports, while the Keyboard component
+deals with the Keyboard UART ports.
+
+VT100 Video Processor
+---------------------
+
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:
+containing the attributes and address of the next line, so the location of subsequent lines will vary, depending
+on the type of line:
-- Single-width characters (80 or 132 columns)
-- Double-width characters (40 or 66 columns)
+- Single-wide characters (80 or 132 columns)
+- Double-wide characters (40 or 66 columns)
-In addition to single-width vs. double-width, line attributes can also specify double-height, along with whether the
-top or bottom halves of the double-high characters should be displayed. Also, double-high always implies double-wide
+In addition to single-wide vs. double-wide, line attributes can also specify double-high, along with whether the
+top or bottom halves of the double-high characters should be displayed, because double-high always implies double-wide
(ie, there is no support for double-high, single-wide characters).
Conssequently, a VT100 [machine XML file](machine.xml) must set the Video component's *bufferRAM* property
@@ -50,6 +84,9 @@ enabling support for the VT100's line data format; eg: