Vintage Computing Festival Midwest 18 2023-09-09 What's In A Terminal.pdf

Richard Thomson
Richard ThomsonDirector um Computer Graphics Museum
What's in a Terminal?
An Architectural Comparison
Richard Thomson
https://ComputerGraphicsMuseum.org
A Brief History of Electrified Serial Communication
• Telegraph (~1840s)
• Teleprinter (~1900s)
• Teletype (~1930s)
• Dumb Glass TTY (~1960s)
• Discrete Logic Terminals (~1970s)
• Microprocessor Terminals (~1980s onward)
All dates are approximate for the purposes of discussion and not
meant to indicate historical firsts
Telegraph (~1840)
• From the Greek: "write at a distance"
• Two symbols (dot and dash, or dit and dah)
• Presence or absence of electric current
• Introduced the terminology of "mark" and "space"
• Symbols combined into groups to encode glyphs (characters)
• Morse Code character encoding
• Transmission speed limited by human operator
• Baudot (5-bit) character encoding established (~1870s)
Teleprinter (~1900)
• Receive the message electronically and print directly
• Eliminates the need for a human operator to interpret the signal
• Transition to encoding messages on paper tape
• Messages are transmitted and received in a machine friendly signal
• Operators key in messages into punched paper tape
• Keyboard message punch and message printer are separate machines
• Electricity provides the power, but mechanisms provide all the
interpretation of signals
• Baudot character encoding
Teletype (~1930)
• Teletype combines the keyboard, printer and paper tape
mechanisms into one machine
• Sometimes the paper tape mechanisms are omitted
• Many variations of mechanisms and combinations of equipment
tailored to the needs of different customers and scenarios
• Electric powered, but mechanically driven
• Baudot character encoding
Dumb Glass TTY (~1960s)
• Teletypes are reliable workhorse machines, but...
• They are noisy
• Long-running monitoring requires a constant supply of paper
• They aren't a best fit for interactive computing
• ASCII (7-bit) character encoding introduced in 1963
• First generation of CRT terminals
• Simple discrete control logic to manage the display of text on the screen
• Promoted as quieter replacements for noisy teletypes
• Baudot, ASCII, EBCDIC character encodings
Discrete Logic Terminals (~1970s)
• Users desire more control over the screen:
• Erase characters, lines; insert characters, lines; multiple "pages" of display
• Large batch systems require bulk transmission
• "Forms" are edited locally inside the terminal; contents are sent as a block
• Terminal becomes a state machine:
• Input from the keyboard or host transitions between states
• Edit operations become a sequence of states executed by the terminal
Microprocessor Terminals (~1980s+)
• Microprocessor increases local functionality
• Many chips of discrete logic replaced with a handful of chips
reduces cost
• Features are mostly a function of firmware
• Terminals become a commodity, more similar than different
Raster Video Terminal Architecture
• Video Refresh Control
• Display Memory
• Control Logic
• User Input
• Communication Logic
• Host Computer I/O
Video Refresh
• Vertical sync every frame
• Vertical blank between frames
• Horizontal sync every scanline
• Horizontal blank between
scanlines
• Read data from display memory
• Convert to glyphs
• Convert glyphs into pixels
• Supply pixels for scanline
Video Refresh is Synchronous
• Digital systems are synchronized with a clock
• Fastest changing signal in a system determines minimum clock rate
• Raster pixels are typically the fastest changing element in a terminal
• The "dot clock" determines the maximum screen resolution
• The scanline buffer avoids high frequency access to display memory for
video refresh
• Character/attribute generator may feed the scanline buffer,
different terminals have different configurations
• Typical to see the "dot clock" as the master clock,
divided down for the rest of the system (CPU, memory, etc.)
Beehive B100: Discrete Logic on Steroids
• Introduced 1976
• 12-inch display
• 80x24 character screen
• 5x7 characters in 7x9 matrix
• Advanced cursor control
• Protected fields
• Block transmission
B100
Logic
Board
Received ESC Codes
0
Aux Page
Send
I
Page
Send
[
Start
Field
A
Cursor
Up
J
Clear
EOS
]
End
Field
B
Cursor
Down
K
Clear
EOL
b
Keyboard
Enable
C
Cursor
Right
P
Delete
Char
c
Keyboard
Disable
D
Cursor
Left
Q
Insert
Mode On
i
Line
Send
E
Clear
Screen
R
Insert
Mode Off
l
Start
Blink
F
Cursor
Position
W
Format
Mode On
m
End
Blink
H
Cursor
Home
X
Format
Mode Off
0 1 2 3 4 5 6 7
0 NUL DLE SP 0 @ P ` p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 " 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAQ % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB ' 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
10 LF SUB * : J Z j z
11 VT ESC + ; K [ k {
12 FF IS4 , < L  l |
13 CR IS3 - = M ] m }
14 SO IS2 . > N ^ n ~
15 SI IS1 / ? O _ o DEL
Implied State Machine Functionality
• Cursor navigation implies cursor state position maintained
• Page/line send implies scanout of display memory to comm port
• Clear to EOS, EOL implies clear counters or clear start position
• Insert mode implies moving blocks of data in display memory
• Start/end blink implies blink attribute stored somewhere
• Start/end field implies protected attribute stored somewhere
• Control functions can be typed locally or received from host
B100
Block
Diagram
B100 Block Diagram
Clock Generation
Crystal
Oscillator
Dot Position
÷ 7 DPC
Char Position
÷ 96 CPC
Char Height
÷ 9 CHC
Char Line
÷ 29 CLC
Baud Clock
Selection
Baud Clock CK1
B100
Block
Diagram
Host
Comms
UART
Transmitter
Port
Selection
Circuit
UART
Receiver
Data Input
Buffer
B100
Block
Diagram
Display
Refresh
Blink/Low
Circuit
Video Shift
Register
Memory
Address
Manipulation
1920x1 Bit
Blink
1920x1 Bit
Protect
1920x7 Bits
Data Refresh
Memory
Character
Generator CHC
Composite
Video Driver
Video
Driver
B100 Block Diagram
Control Logic State Machine
PLA
Input
Selection
Mode
Programmable
Logic
Array
Command
Decoder
Operation
Mode
Mode
Sequence
Sequence Operation
Sequence
Counter
Operation
Register
Roll Counter
BCURL Buffered
Cursor Line
BCURP Buffered
Cursor Position
Roll
CURL Cursor Line Reg. CURP Cursor Position Reg.
Cursor Line
Cursor Position
Video
Cursor
"Off
Screen"
Circuit
BUS
BUS
State
Machine
Flow
Chart I
State
Machine
Flow
Chart II
State Machine Flow Chart Detail
Digital Equipment Corporation VT100
Microprocessor Control for ANSI Compliance
• Introduced 1978
• 12-inch display
• 80/132x24 character screen
• 7x9 character matrix
• Blink, bold, reverse, underline
• Intel 8080A CPU
• Supports many ANSI sequences
• Hardware expansion ports
VT100
Logic
Board
Received ANSI ESC Codes
0 1 2 3 4 5 6 7
0 NUL DLE SP 0 @ P ` p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 " 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAQ % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB ' 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
10 LF SUB * : J Z j z
11 VT ESC + ; K [ k {
12 FF IS4 , < L  l |
13 CR IS3 - = M ] m }
14 SO IS2 . > N ^ n ~
15 SI IS1 / ? O _ o DEL
A
Cursor
Up
K
Erase in
Line
m
Select
Rendition
B
Cursor
Down
c
Device
Attributes
n
Status
Report
C
Cursor
Right
f
Hor/Ver
Position
q
Load
LEDs
D
Cursor
Left
g
Tab
Clear
r
Set
Margins
H
Cursor
Position
h Set Mode x
Request
Params
J
Erase in
Display
l Reset Mode y
Confidence
Test
Commands can take one or more
parameters to define behavior.
Non-ANSI sequences not shown.
VT100 Components
VT100 Functional Block Diagram
VT100 Detailed Block Diagram
VT100
Microprocessor
Block Diagram
VT100
Microprocessor
Block Diagram
VT100 Video Processor Block Diagram
VT100 Hardware Expansion
• Advanced Video Option (AVO)
• Standard Terminal Port (STP)
• Graphics Connector
• Card Cage
VT100
Logic
Board
Expansion
Locations
Advanced Video Option
• Provides more display memory for 132x24 character mode
• Provides more attribute memory
• ROM sockets for overlay/expansion of program memory
• Daughter board attached to motherboard
Standard Terminal Port
• Options can intercept and change I/O between terminal and host
• Usually a daughter board attached to motherboard
• Allows an option to extend ESC sequences without modifying
VT100 ROMs
Graphics Connector
• Provides direct access to the digital video signal of the VT100
• Typically connected to an external card mounted in the card cage
• Can be used to capture the video output as a digital signal,
such as might be used by a screen grab style printer
Card Cage
• The VT100 main board is mounted in a card cage chassis
• Room is available for an additional card with rear panel connector
access
• Card edge provides power only, no direct communication with the
main board
Hewlett-Packard 264x
• Range of terminals 1975-1981
• 5-inch by 10-inch display
• 80x24 character display
• Microprocessor control
• Tape drives for local storage
• BASIC language variant for
local processing
• Graphics variants
Card Cage Chassis
Rich Set of
Received ESC Codes
0 1 2 3 4 5 6 7
0 NUL DLE SP 0 @ P ` p
1 SOH DC1 ! 1 A Q a q
2 STX DC2 " 2 B R b r
3 ETX DC3 # 3 C S c s
4 EOT DC4 $ 4 D T d t
5 ENQ NAQ % 5 E U e u
6 ACK SYN & 6 F V f v
7 BEL ETB ' 7 G W g w
8 BS CAN ( 8 H X h x
9 HT EM ) 9 I Y i y
10 LF SUB * : J Z j z
11 VT ESC + ; K [ k {
12 FF IS4 , < L  l |
13 CR IS3 - = M ] m }
14 SO IS2 . > N ^ n ~
15 SI IS1 / ? O _ o DEL
• Subset of 2648A codes shown
• Text control
• Graphics primitives
• Graphics attributes
• Automatic plotting of user data
• Tape device control
• Most commands take parameters
• No ANSI support!
• Tektronix 401x emulation
HP 2648A System Architecture
Modular Design
• CPU card
• Memory card
• Display card
• Graphics display card
• Keyboard interface card
• Host communications card
• Tape interface card
• Additional slots open for expansion
• Reminds you of... a personal computer! (because it is)
Family of Terminals from a Single Design
• HP 2640A (1975): simple character terminal
• HP 2644A (1975): character terminal with tape drives
• HP 2641A (1976): APL character terminal
• HP 2645A (1976): replaced 2644A
• HP 2648A (1977): graphics terminal w/tape drives
• HP 2647A (1978): 2648A with BASIC in ROM
• HP 2642A (1980): 2645A w/external 5.25" floppy drive
• HP 2647F (1982): 2647A w/external 5.25" floppy drive
• 60,000 units shipped by 1981
Is it a Personal Computer or a Terminal?
Personal Computer
• Programmability expected
• Serial comms optional
• Local storage expected
• Character display expected
• Graphics display optional
• Expansion expected
Terminal
• Programmability optional
• Serial comms expected
• Local storage optional
• Character display expected
• Graphics display optional
• Expansion optional
Learn More About Terminals!
• https://Terminals-Wiki.org
• Your one-stop shop for terminal info!
• Browse by manufacturer
• Browse by year of introduction
• Find links to documentation
• Find pictures
• Contribute!
• Wiki edits and contributions welcome from everyone
1 von 46

Recomendados

Microcontroller part 4 von
Microcontroller part 4Microcontroller part 4
Microcontroller part 4Keroles karam khalil
417 views122 Folien
2014 ii c08t-sbc pic para ecg von
2014 ii c08t-sbc pic para ecg 2014 ii c08t-sbc pic para ecg
2014 ii c08t-sbc pic para ecg Aland Bravo Vecorena
962 views84 Folien
Galil rio catalog von
Galil rio catalogGalil rio catalog
Galil rio catalogElectromate
391 views5 Folien
Galil dmc21x2x3 catalog von
Galil dmc21x2x3 catalogGalil dmc21x2x3 catalog
Galil dmc21x2x3 catalogElectromate
401 views12 Folien
Galil cds3310 catalog von
Galil cds3310 catalogGalil cds3310 catalog
Galil cds3310 catalogElectromate
374 views5 Folien

Más contenido relacionado

Similar a Vintage Computing Festival Midwest 18 2023-09-09 What's In A Terminal.pdf

Computer Hardware.ppt von
Computer Hardware.pptComputer Hardware.ppt
Computer Hardware.pptKalisettiJeevanaRao
8 views83 Folien
microcontroller 8051 17.07.2023.pdf von
microcontroller 8051 17.07.2023.pdfmicrocontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdf818Farida
33 views64 Folien
Galil dmc3000 catalog von
Galil dmc3000 catalogGalil dmc3000 catalog
Galil dmc3000 catalogElectromate
367 views5 Folien
Input Output Interfaces von
Input Output InterfacesInput Output Interfaces
Input Output InterfacesDarling Jemima
462 views29 Folien
Galil multi axis motion controller brochure von
Galil multi axis motion controller brochureGalil multi axis motion controller brochure
Galil multi axis motion controller brochureElectromate
152 views2 Folien
DEF CON 23 - Rodringo Almeida - embedded system design from electronics von
DEF CON 23 - Rodringo Almeida - embedded system design from electronics DEF CON 23 - Rodringo Almeida - embedded system design from electronics
DEF CON 23 - Rodringo Almeida - embedded system design from electronics Felipe Prado
74 views156 Folien

Similar a Vintage Computing Festival Midwest 18 2023-09-09 What's In A Terminal.pdf(20)

microcontroller 8051 17.07.2023.pdf von 818Farida
microcontroller 8051 17.07.2023.pdfmicrocontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdf
818Farida33 views
Galil dmc3000 catalog von Electromate
Galil dmc3000 catalogGalil dmc3000 catalog
Galil dmc3000 catalog
Electromate367 views
Galil multi axis motion controller brochure von Electromate
Galil multi axis motion controller brochureGalil multi axis motion controller brochure
Galil multi axis motion controller brochure
Electromate152 views
DEF CON 23 - Rodringo Almeida - embedded system design from electronics von Felipe Prado
DEF CON 23 - Rodringo Almeida - embedded system design from electronics DEF CON 23 - Rodringo Almeida - embedded system design from electronics
DEF CON 23 - Rodringo Almeida - embedded system design from electronics
Felipe Prado74 views
Galil dmc41x3 catalog von Electromate
Galil dmc41x3 catalogGalil dmc41x3 catalog
Galil dmc41x3 catalog
Electromate398 views
combinational logic circuit and sequential logic circuit.pptx von AhmedLakhwera
combinational logic circuit and sequential logic circuit.pptxcombinational logic circuit and sequential logic circuit.pptx
combinational logic circuit and sequential logic circuit.pptx
AhmedLakhwera17 views
An Overview of Arm-9 32-bit MCU TMPA910 Series von Premier Farnell
An Overview of Arm-9 32-bit MCU TMPA910 Series An Overview of Arm-9 32-bit MCU TMPA910 Series
An Overview of Arm-9 32-bit MCU TMPA910 Series
Premier Farnell699 views
AVR Fundamentals von Vinit Vyas
AVR FundamentalsAVR Fundamentals
AVR Fundamentals
Vinit Vyas25.9K views

Más de Richard Thomson

Automated Testing with CMake, CTest and CDash von
Automated Testing with CMake, CTest and CDashAutomated Testing with CMake, CTest and CDash
Automated Testing with CMake, CTest and CDashRichard Thomson
339 views33 Folien
Feature and platform testing with CMake von
Feature and platform testing with CMakeFeature and platform testing with CMake
Feature and platform testing with CMakeRichard Thomson
99 views33 Folien
Consuming Libraries with CMake von
Consuming Libraries with CMakeConsuming Libraries with CMake
Consuming Libraries with CMakeRichard Thomson
157 views40 Folien
BEFLIX von
BEFLIXBEFLIX
BEFLIXRichard Thomson
3.1K views35 Folien
SIMD Processing Using Compiler Intrinsics von
SIMD Processing Using Compiler IntrinsicsSIMD Processing Using Compiler Intrinsics
SIMD Processing Using Compiler IntrinsicsRichard Thomson
612 views12 Folien
Modern C++ von
Modern C++Modern C++
Modern C++Richard Thomson
1.7K views25 Folien

Más de Richard Thomson(10)

Automated Testing with CMake, CTest and CDash von Richard Thomson
Automated Testing with CMake, CTest and CDashAutomated Testing with CMake, CTest and CDash
Automated Testing with CMake, CTest and CDash
Richard Thomson339 views
Feature and platform testing with CMake von Richard Thomson
Feature and platform testing with CMakeFeature and platform testing with CMake
Feature and platform testing with CMake
Richard Thomson99 views
SIMD Processing Using Compiler Intrinsics von Richard Thomson
SIMD Processing Using Compiler IntrinsicsSIMD Processing Using Compiler Intrinsics
SIMD Processing Using Compiler Intrinsics
Richard Thomson612 views
Cross Platform Mobile Development with Visual Studio 2015 and C++ von Richard Thomson
Cross Platform Mobile Development with Visual Studio 2015 and C++Cross Platform Mobile Development with Visual Studio 2015 and C++
Cross Platform Mobile Development with Visual Studio 2015 and C++
Richard Thomson1.5K views
Consuming and Creating Libraries in C++ von Richard Thomson
Consuming and Creating Libraries in C++Consuming and Creating Libraries in C++
Consuming and Creating Libraries in C++
Richard Thomson1.6K views
C traps and pitfalls for C++ programmers von Richard Thomson
C traps and pitfalls for C++ programmersC traps and pitfalls for C++ programmers
C traps and pitfalls for C++ programmers
Richard Thomson6.3K views

Último

Building source code level profiler for C++.pdf von
Building source code level profiler for C++.pdfBuilding source code level profiler for C++.pdf
Building source code level profiler for C++.pdfssuser28de9e
10 views38 Folien
unit 1.pptx von
unit 1.pptxunit 1.pptx
unit 1.pptxrrbornarecm
5 views53 Folien
02. COLEGIO - KIT SANITARIO .pdf von
02. COLEGIO - KIT SANITARIO .pdf02. COLEGIO - KIT SANITARIO .pdf
02. COLEGIO - KIT SANITARIO .pdfRAULALEJANDROMALDONA
5 views7 Folien
MODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVA von
MODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVAMODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVA
MODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVADemian Antony D'Mello
5 views14 Folien
PIT Interpretation - Use only PIT-W EN.ppt von
PIT Interpretation - Use only PIT-W EN.pptPIT Interpretation - Use only PIT-W EN.ppt
PIT Interpretation - Use only PIT-W EN.pptRabindra Shrestha
5 views45 Folien
Web Dev Session 1.pptx von
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptxVedVekhande
23 views22 Folien

Último(20)

Building source code level profiler for C++.pdf von ssuser28de9e
Building source code level profiler for C++.pdfBuilding source code level profiler for C++.pdf
Building source code level profiler for C++.pdf
ssuser28de9e10 views
MODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVA von Demian Antony D'Mello
MODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVAMODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVA
MODULE-1 CHAPTER 3- Operators - Object Oriented Programming with JAVA
Web Dev Session 1.pptx von VedVekhande
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptx
VedVekhande23 views
Basic Design Flow for Field Programmable Gate Arrays von Usha Mehta
Basic Design Flow for Field Programmable Gate ArraysBasic Design Flow for Field Programmable Gate Arrays
Basic Design Flow for Field Programmable Gate Arrays
Usha Mehta10 views
Integrating Sustainable Development Goals (SDGs) in School Education von SheetalTank1
Integrating Sustainable Development Goals (SDGs) in School EducationIntegrating Sustainable Development Goals (SDGs) in School Education
Integrating Sustainable Development Goals (SDGs) in School Education
SheetalTank113 views
MongoDB.pdf von ArthyR3
MongoDB.pdfMongoDB.pdf
MongoDB.pdf
ArthyR351 views
Ansari: Practical experiences with an LLM-based Islamic Assistant von M Waleed Kadous
Ansari: Practical experiences with an LLM-based Islamic AssistantAnsari: Practical experiences with an LLM-based Islamic Assistant
Ansari: Practical experiences with an LLM-based Islamic Assistant
M Waleed Kadous12 views
Details of Acoustic Liner for selection of material von rafiqalisyed
Details of Acoustic Liner for selection of materialDetails of Acoustic Liner for selection of material
Details of Acoustic Liner for selection of material
rafiqalisyed5 views
DevFest 2023 Daegu Speech_이재규, Implementing easy and simple chat with gol... von JQLEE6
DevFest 2023 Daegu Speech_이재규,  Implementing easy and simple chat with gol...DevFest 2023 Daegu Speech_이재규,  Implementing easy and simple chat with gol...
DevFest 2023 Daegu Speech_이재규, Implementing easy and simple chat with gol...
JQLEE68 views
IRJET-Productivity Enhancement Using Method Study.pdf von SahilBavdhankar
IRJET-Productivity Enhancement Using Method Study.pdfIRJET-Productivity Enhancement Using Method Study.pdf
IRJET-Productivity Enhancement Using Method Study.pdf
SahilBavdhankar10 views
REPORT Data Science EXPERT LECTURE.doc von Parulkhatri11
REPORT Data Science EXPERT LECTURE.docREPORT Data Science EXPERT LECTURE.doc
REPORT Data Science EXPERT LECTURE.doc
Parulkhatri117 views
Trust Metric-Based Anomaly Detection via Deep Deterministic Policy Gradient R... von IJCNCJournal
Trust Metric-Based Anomaly Detection via Deep Deterministic Policy Gradient R...Trust Metric-Based Anomaly Detection via Deep Deterministic Policy Gradient R...
Trust Metric-Based Anomaly Detection via Deep Deterministic Policy Gradient R...
IJCNCJournal5 views
AWS Certified Solutions Architect Associate Exam Guide_published .pdf von Kiran Kumar Malik
AWS Certified Solutions Architect Associate Exam Guide_published .pdfAWS Certified Solutions Architect Associate Exam Guide_published .pdf
AWS Certified Solutions Architect Associate Exam Guide_published .pdf
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth von Innomantra
BCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for GrowthBCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for Growth
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth
Innomantra 22 views

Vintage Computing Festival Midwest 18 2023-09-09 What's In A Terminal.pdf

  • 1. What's in a Terminal? An Architectural Comparison Richard Thomson https://ComputerGraphicsMuseum.org
  • 2. A Brief History of Electrified Serial Communication • Telegraph (~1840s) • Teleprinter (~1900s) • Teletype (~1930s) • Dumb Glass TTY (~1960s) • Discrete Logic Terminals (~1970s) • Microprocessor Terminals (~1980s onward) All dates are approximate for the purposes of discussion and not meant to indicate historical firsts
  • 3. Telegraph (~1840) • From the Greek: "write at a distance" • Two symbols (dot and dash, or dit and dah) • Presence or absence of electric current • Introduced the terminology of "mark" and "space" • Symbols combined into groups to encode glyphs (characters) • Morse Code character encoding • Transmission speed limited by human operator • Baudot (5-bit) character encoding established (~1870s)
  • 4. Teleprinter (~1900) • Receive the message electronically and print directly • Eliminates the need for a human operator to interpret the signal • Transition to encoding messages on paper tape • Messages are transmitted and received in a machine friendly signal • Operators key in messages into punched paper tape • Keyboard message punch and message printer are separate machines • Electricity provides the power, but mechanisms provide all the interpretation of signals • Baudot character encoding
  • 5. Teletype (~1930) • Teletype combines the keyboard, printer and paper tape mechanisms into one machine • Sometimes the paper tape mechanisms are omitted • Many variations of mechanisms and combinations of equipment tailored to the needs of different customers and scenarios • Electric powered, but mechanically driven • Baudot character encoding
  • 6. Dumb Glass TTY (~1960s) • Teletypes are reliable workhorse machines, but... • They are noisy • Long-running monitoring requires a constant supply of paper • They aren't a best fit for interactive computing • ASCII (7-bit) character encoding introduced in 1963 • First generation of CRT terminals • Simple discrete control logic to manage the display of text on the screen • Promoted as quieter replacements for noisy teletypes • Baudot, ASCII, EBCDIC character encodings
  • 7. Discrete Logic Terminals (~1970s) • Users desire more control over the screen: • Erase characters, lines; insert characters, lines; multiple "pages" of display • Large batch systems require bulk transmission • "Forms" are edited locally inside the terminal; contents are sent as a block • Terminal becomes a state machine: • Input from the keyboard or host transitions between states • Edit operations become a sequence of states executed by the terminal
  • 8. Microprocessor Terminals (~1980s+) • Microprocessor increases local functionality • Many chips of discrete logic replaced with a handful of chips reduces cost • Features are mostly a function of firmware • Terminals become a commodity, more similar than different
  • 9. Raster Video Terminal Architecture • Video Refresh Control • Display Memory • Control Logic • User Input • Communication Logic • Host Computer I/O
  • 10. Video Refresh • Vertical sync every frame • Vertical blank between frames • Horizontal sync every scanline • Horizontal blank between scanlines • Read data from display memory • Convert to glyphs • Convert glyphs into pixels • Supply pixels for scanline
  • 11. Video Refresh is Synchronous • Digital systems are synchronized with a clock • Fastest changing signal in a system determines minimum clock rate • Raster pixels are typically the fastest changing element in a terminal • The "dot clock" determines the maximum screen resolution • The scanline buffer avoids high frequency access to display memory for video refresh • Character/attribute generator may feed the scanline buffer, different terminals have different configurations • Typical to see the "dot clock" as the master clock, divided down for the rest of the system (CPU, memory, etc.)
  • 12. Beehive B100: Discrete Logic on Steroids • Introduced 1976 • 12-inch display • 80x24 character screen • 5x7 characters in 7x9 matrix • Advanced cursor control • Protected fields • Block transmission
  • 14. Received ESC Codes 0 Aux Page Send I Page Send [ Start Field A Cursor Up J Clear EOS ] End Field B Cursor Down K Clear EOL b Keyboard Enable C Cursor Right P Delete Char c Keyboard Disable D Cursor Left Q Insert Mode On i Line Send E Clear Screen R Insert Mode Off l Start Blink F Cursor Position W Format Mode On m End Blink H Cursor Home X Format Mode Off 0 1 2 3 4 5 6 7 0 NUL DLE SP 0 @ P ` p 1 SOH DC1 ! 1 A Q a q 2 STX DC2 " 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAQ % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEL ETB ' 7 G W g w 8 BS CAN ( 8 H X h x 9 HT EM ) 9 I Y i y 10 LF SUB * : J Z j z 11 VT ESC + ; K [ k { 12 FF IS4 , < L l | 13 CR IS3 - = M ] m } 14 SO IS2 . > N ^ n ~ 15 SI IS1 / ? O _ o DEL
  • 15. Implied State Machine Functionality • Cursor navigation implies cursor state position maintained • Page/line send implies scanout of display memory to comm port • Clear to EOS, EOL implies clear counters or clear start position • Insert mode implies moving blocks of data in display memory • Start/end blink implies blink attribute stored somewhere • Start/end field implies protected attribute stored somewhere • Control functions can be typed locally or received from host
  • 17. B100 Block Diagram Clock Generation Crystal Oscillator Dot Position ÷ 7 DPC Char Position ÷ 96 CPC Char Height ÷ 9 CHC Char Line ÷ 29 CLC Baud Clock Selection Baud Clock CK1
  • 19. B100 Block Diagram Display Refresh Blink/Low Circuit Video Shift Register Memory Address Manipulation 1920x1 Bit Blink 1920x1 Bit Protect 1920x7 Bits Data Refresh Memory Character Generator CHC Composite Video Driver Video Driver
  • 20. B100 Block Diagram Control Logic State Machine PLA Input Selection Mode Programmable Logic Array Command Decoder Operation Mode Mode Sequence Sequence Operation Sequence Counter Operation Register Roll Counter BCURL Buffered Cursor Line BCURP Buffered Cursor Position Roll CURL Cursor Line Reg. CURP Cursor Position Reg. Cursor Line Cursor Position Video Cursor "Off Screen" Circuit BUS BUS
  • 23. State Machine Flow Chart Detail
  • 24. Digital Equipment Corporation VT100 Microprocessor Control for ANSI Compliance • Introduced 1978 • 12-inch display • 80/132x24 character screen • 7x9 character matrix • Blink, bold, reverse, underline • Intel 8080A CPU • Supports many ANSI sequences • Hardware expansion ports
  • 26. Received ANSI ESC Codes 0 1 2 3 4 5 6 7 0 NUL DLE SP 0 @ P ` p 1 SOH DC1 ! 1 A Q a q 2 STX DC2 " 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAQ % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEL ETB ' 7 G W g w 8 BS CAN ( 8 H X h x 9 HT EM ) 9 I Y i y 10 LF SUB * : J Z j z 11 VT ESC + ; K [ k { 12 FF IS4 , < L l | 13 CR IS3 - = M ] m } 14 SO IS2 . > N ^ n ~ 15 SI IS1 / ? O _ o DEL A Cursor Up K Erase in Line m Select Rendition B Cursor Down c Device Attributes n Status Report C Cursor Right f Hor/Ver Position q Load LEDs D Cursor Left g Tab Clear r Set Margins H Cursor Position h Set Mode x Request Params J Erase in Display l Reset Mode y Confidence Test Commands can take one or more parameters to define behavior. Non-ANSI sequences not shown.
  • 32. VT100 Video Processor Block Diagram
  • 33. VT100 Hardware Expansion • Advanced Video Option (AVO) • Standard Terminal Port (STP) • Graphics Connector • Card Cage
  • 35. Advanced Video Option • Provides more display memory for 132x24 character mode • Provides more attribute memory • ROM sockets for overlay/expansion of program memory • Daughter board attached to motherboard
  • 36. Standard Terminal Port • Options can intercept and change I/O between terminal and host • Usually a daughter board attached to motherboard • Allows an option to extend ESC sequences without modifying VT100 ROMs
  • 37. Graphics Connector • Provides direct access to the digital video signal of the VT100 • Typically connected to an external card mounted in the card cage • Can be used to capture the video output as a digital signal, such as might be used by a screen grab style printer
  • 38. Card Cage • The VT100 main board is mounted in a card cage chassis • Room is available for an additional card with rear panel connector access • Card edge provides power only, no direct communication with the main board
  • 39. Hewlett-Packard 264x • Range of terminals 1975-1981 • 5-inch by 10-inch display • 80x24 character display • Microprocessor control • Tape drives for local storage • BASIC language variant for local processing • Graphics variants
  • 41. Rich Set of Received ESC Codes 0 1 2 3 4 5 6 7 0 NUL DLE SP 0 @ P ` p 1 SOH DC1 ! 1 A Q a q 2 STX DC2 " 2 B R b r 3 ETX DC3 # 3 C S c s 4 EOT DC4 $ 4 D T d t 5 ENQ NAQ % 5 E U e u 6 ACK SYN & 6 F V f v 7 BEL ETB ' 7 G W g w 8 BS CAN ( 8 H X h x 9 HT EM ) 9 I Y i y 10 LF SUB * : J Z j z 11 VT ESC + ; K [ k { 12 FF IS4 , < L l | 13 CR IS3 - = M ] m } 14 SO IS2 . > N ^ n ~ 15 SI IS1 / ? O _ o DEL • Subset of 2648A codes shown • Text control • Graphics primitives • Graphics attributes • Automatic plotting of user data • Tape device control • Most commands take parameters • No ANSI support! • Tektronix 401x emulation
  • 42. HP 2648A System Architecture
  • 43. Modular Design • CPU card • Memory card • Display card • Graphics display card • Keyboard interface card • Host communications card • Tape interface card • Additional slots open for expansion • Reminds you of... a personal computer! (because it is)
  • 44. Family of Terminals from a Single Design • HP 2640A (1975): simple character terminal • HP 2644A (1975): character terminal with tape drives • HP 2641A (1976): APL character terminal • HP 2645A (1976): replaced 2644A • HP 2648A (1977): graphics terminal w/tape drives • HP 2647A (1978): 2648A with BASIC in ROM • HP 2642A (1980): 2645A w/external 5.25" floppy drive • HP 2647F (1982): 2647A w/external 5.25" floppy drive • 60,000 units shipped by 1981
  • 45. Is it a Personal Computer or a Terminal? Personal Computer • Programmability expected • Serial comms optional • Local storage expected • Character display expected • Graphics display optional • Expansion expected Terminal • Programmability optional • Serial comms expected • Local storage optional • Character display expected • Graphics display optional • Expansion optional
  • 46. Learn More About Terminals! • https://Terminals-Wiki.org • Your one-stop shop for terminal info! • Browse by manufacturer • Browse by year of introduction • Find links to documentation • Find pictures • Contribute! • Wiki edits and contributions welcome from everyone