TTY Console

TTY console mode

Press the TTY console switch to let the KIM simulator use a VT100 glass teletype in a console window. The standard KIM user interface is shown, see the manual how to use.
Note: set the PC keyboard to CAPS Lock, only uppercase is used in the KIM monitor itself.

The console is an emulation of a VT100 video terminal (with ANSI color enahncements) connected to an ACIA (a Motorola 6850) in the KIM-1. The KIM Monitor is patched to send or receive via the ACIA and is transparant to the user of the KIM-1 I/O routines (even the quirks like flags and returned register values!)

The console is a window of 24 lines with 80 characters. There is a buffer of 1000 lines, use the scroll bar at the right.

You can copy and paste text to the console. Select text with the mouse, and use the right mouse button to show the pop up windows to copy the selected text to the paste buffer of your operating system. With he same popup menu you can paste text into the console. This is a handy flexible alternative to the File – Load text to console and File -Save text from Console on the main form of the Simulator.

The popup menu also has functions like Reset console, change Color of the font and Background color and the way LF and CR are handled.
In settings you can also select the screen color settings with predefined like green, amber white. Settings there are saved across sessions.

The menu options of the main form have options to record a session, (Load Text to Console) or play (Save text from Console, followed by Stop saving text ) a text file in the console.
This is in fact the same functionality as a teletype with high speed papertape punch or reader. You can use this to load and save Basic programs as ASCII text files. Or use the KIM-1 tape routines built in KB9 Basic!

Keyboard input, when the console window has focus, is sent to the serial input of the ACIA. No local echo. The KIM-1 monitor only accepts uppercase (hint: Caps lock!), user programs are free to use upper or lowercase.

Characters sent tot to ACIA output are received by the console window and handled as a VT100 would do, a subset of the ANSI/VT100 is implemented.
All keys of the PC are usable, SHIFT works. Note the translation of codes from the PC keyboard to ASCII characters is the same as the operating system localizations.

Received characters by the console are handled as follows, a subset of the ANSI set.

Single control character

$01 : CursorHome 
$04 : CursorRight 
$05 : CursorUp 
BS  : Backspace 
TB  : Tab 
LF  : LineFeed 
FF  : ClearScreen 
CR  : CarriageReturn 
$13 : CursorLeft 
$16 : DeleteToEndofLine 
$18 : CursorDown 
DEL : Backspace  

<strong>ESC sequences</strong>, here some most used examples. 
Nearly all VT100 cescape codes are supported.

ESC[K             Clear from cursor to the end of the line
ESC[0K            Clear from cursor to the end of the line
ESC[1K            Clear from the beginning of the current line to the cursor
ESC[2K            Clear the whole line
ESC[J             Clear the screen from cursor
ESC[0J            Clear the screen from cursor
ESC[1J            Clear the screen until cursor position
ESC[2J            Clear the screen and move the cursor to 0-0, 
                  defined sprites are removed, loaded bitmaps are kept

<strong>Insert / Delete</strong>
ESC[1@            Insert a blank character position (shift line to the right)
ESC[1P            Delete a character position (shift line to the left)
ESC[1L            Insert blank line at current row (shift screen down)
ESC[1M            Delete the current line (shift screen up)

Move cursor
ESC[H             Move to 0-0
ESC[f             Move to 0-0
ESC[s             Save the cursor position 
ESC[u             Move cursor to previously saved position 
ESC[(Row);(Col)H  Move to row,column
ESC[(Row};(Col)f  Move to row,column
ESC[nA            Move the cursor up n lines
ESC[nB            Move the cursor down n lines
ESC[nC            Move the cursor forward n characters
ESC[nD            Move the cursor backward n characters

<strong>Attributes</strong>
ESC[m             Reset all attributes
ESC[0m            Reset all attributes
ESC[1m            bold
ESC[4m            underline
ESC[5m            italics
ESC[7m            Turn on reverse color
ESC[27m           Turn off reverse color

Color attributes

color     FG       BG      FG high  BG high 
--------------------------------------------
black    ESC[30m  ESC[40m  ESC[90m  ESC[100m
red      ESC[31m  ESC[41m  ESC[91m  ESC[101m
green    ESC[32m  ESC[42m  ESC[92m  ESC[102m
yellow   ESC[33m  ESC[44m  ESC[99m  ESC[103m
blue     ESC[34m  ESC[44m  ESC[94m  ESC[104m
magenta  ESC[35m  ESC[45m  ESC[95m  ESC[105m
cyan     ESC[36m  ESC[46m  ESC[96m  ESC[106m
black    ESC[37m  ESC[47m  ESC[97m  ESC[107m

FG = foreground
BG = background
High = higher intensity

Note that setting colors can be combined attributes and 
for/background in one Escape sequence is supported
You can use for example

  ESC [1;31;104m (bold, red foreground, blue background)

Printable character (>= $20) is placed on screen where the cursor is, 
cursor moved to next position
Wrap around at end of line, screen scroll up when bottom line is reached 

DEC Special Graphics Characters

The escape sequence ESC ( 0 switches the codes for lower-case ASCII letters to draw this set, and the sequence ESC ( B switches back.

Normal Set “Special Graphics” Set
_ Blank
` Diamond
a Checkerboard
(error indicator)
b Horizontal tab
c Form Feed
d Carriage return
e Line feed
f Degree symbol
g Plus/minus
h New line
i Vertical tab
j Lower-right corner
k Upper-right corner
l Upper-left corner
m Lower-left corner
n Crossing lines
o Horizontal line – Scan 1
p Horizontal line – Scan 3
q Horizontal line – Scan 5
r Horizontal line – Scan 7
s Horizontal line – Scan 9
t Left “T”
u Right “T”
v Bottom “T”
w Top “T”
x | Vertical bar
y Less than or equal to
z Greater than or equal to
{ Pi
| Not equal to
} UK pound sign
~ Centered dot
Note 1: Codes 1528-1568, 1618, and 1648-1708 are used to draw rectangular grids; each piece
of this line drawing set is contiguous with others so that the lines formed are unbroken.