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

Richard Thomson
Richard ThomsonDirector en 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 de 46

Recomendados

Microcontroller part 4 por
Microcontroller part 4Microcontroller part 4
Microcontroller part 4Keroles karam khalil
417 vistas122 diapositivas
2014 ii c08t-sbc pic para ecg por
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 vistas84 diapositivas
Galil rio catalog por
Galil rio catalogGalil rio catalog
Galil rio catalogElectromate
391 vistas5 diapositivas
Galil dmc21x2x3 catalog por
Galil dmc21x2x3 catalogGalil dmc21x2x3 catalog
Galil dmc21x2x3 catalogElectromate
401 vistas12 diapositivas
Galil cds3310 catalog por
Galil cds3310 catalogGalil cds3310 catalog
Galil cds3310 catalogElectromate
374 vistas5 diapositivas

Más contenido relacionado

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

Computer Hardware.ppt por
Computer Hardware.pptComputer Hardware.ppt
Computer Hardware.pptKalisettiJeevanaRao
8 vistas83 diapositivas
microcontroller 8051 17.07.2023.pdf por
microcontroller 8051 17.07.2023.pdfmicrocontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdf818Farida
33 vistas64 diapositivas
Galil dmc3000 catalog por
Galil dmc3000 catalogGalil dmc3000 catalog
Galil dmc3000 catalogElectromate
367 vistas5 diapositivas
Input Output Interfaces por
Input Output InterfacesInput Output Interfaces
Input Output InterfacesDarling Jemima
462 vistas29 diapositivas
Galil multi axis motion controller brochure por
Galil multi axis motion controller brochureGalil multi axis motion controller brochure
Galil multi axis motion controller brochureElectromate
152 vistas2 diapositivas
DEF CON 23 - Rodringo Almeida - embedded system design from electronics por
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 vistas156 diapositivas

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

microcontroller 8051 17.07.2023.pdf por 818Farida
microcontroller 8051 17.07.2023.pdfmicrocontroller 8051 17.07.2023.pdf
microcontroller 8051 17.07.2023.pdf
818Farida33 vistas
Galil dmc3000 catalog por Electromate
Galil dmc3000 catalogGalil dmc3000 catalog
Galil dmc3000 catalog
Electromate367 vistas
Galil multi axis motion controller brochure por Electromate
Galil multi axis motion controller brochureGalil multi axis motion controller brochure
Galil multi axis motion controller brochure
Electromate152 vistas
DEF CON 23 - Rodringo Almeida - embedded system design from electronics por 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 vistas
Galil dmc41x3 catalog por Electromate
Galil dmc41x3 catalogGalil dmc41x3 catalog
Galil dmc41x3 catalog
Electromate398 vistas
combinational logic circuit and sequential logic circuit.pptx por 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 vistas
An Overview of Arm-9 32-bit MCU TMPA910 Series por 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 vistas
AVR Fundamentals por Vinit Vyas
AVR FundamentalsAVR Fundamentals
AVR Fundamentals
Vinit Vyas25.9K vistas

Más de Richard Thomson

Automated Testing with CMake, CTest and CDash por
Automated Testing with CMake, CTest and CDashAutomated Testing with CMake, CTest and CDash
Automated Testing with CMake, CTest and CDashRichard Thomson
339 vistas33 diapositivas
Feature and platform testing with CMake por
Feature and platform testing with CMakeFeature and platform testing with CMake
Feature and platform testing with CMakeRichard Thomson
99 vistas33 diapositivas
Consuming Libraries with CMake por
Consuming Libraries with CMakeConsuming Libraries with CMake
Consuming Libraries with CMakeRichard Thomson
157 vistas40 diapositivas
BEFLIX por
BEFLIXBEFLIX
BEFLIXRichard Thomson
3.1K vistas35 diapositivas
SIMD Processing Using Compiler Intrinsics por
SIMD Processing Using Compiler IntrinsicsSIMD Processing Using Compiler Intrinsics
SIMD Processing Using Compiler IntrinsicsRichard Thomson
612 vistas12 diapositivas
Modern C++ por
Modern C++Modern C++
Modern C++Richard Thomson
1.7K vistas25 diapositivas

Más de Richard Thomson(10)

Automated Testing with CMake, CTest and CDash por Richard Thomson
Automated Testing with CMake, CTest and CDashAutomated Testing with CMake, CTest and CDash
Automated Testing with CMake, CTest and CDash
Richard Thomson339 vistas
Feature and platform testing with CMake por Richard Thomson
Feature and platform testing with CMakeFeature and platform testing with CMake
Feature and platform testing with CMake
Richard Thomson99 vistas
SIMD Processing Using Compiler Intrinsics por Richard Thomson
SIMD Processing Using Compiler IntrinsicsSIMD Processing Using Compiler Intrinsics
SIMD Processing Using Compiler Intrinsics
Richard Thomson612 vistas
Cross Platform Mobile Development with Visual Studio 2015 and C++ por 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 vistas
Consuming and Creating Libraries in C++ por Richard Thomson
Consuming and Creating Libraries in C++Consuming and Creating Libraries in C++
Consuming and Creating Libraries in C++
Richard Thomson1.6K vistas
C traps and pitfalls for C++ programmers por 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 vistas

Último

Robotics in construction enterprise por
Robotics in construction enterpriseRobotics in construction enterprise
Robotics in construction enterpriseKhalid Abdel Naser Abdel Rahim
5 vistas1 diapositiva
Design_Discover_Develop_Campaign.pptx por
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptxShivanshSeth6
56 vistas20 diapositivas
Programmable Switches for Programmable Logic Devices por
Programmable Switches for Programmable Logic DevicesProgrammable Switches for Programmable Logic Devices
Programmable Switches for Programmable Logic DevicesUsha Mehta
19 vistas26 diapositivas
taylor-2005-classical-mechanics.pdf por
taylor-2005-classical-mechanics.pdftaylor-2005-classical-mechanics.pdf
taylor-2005-classical-mechanics.pdfArturoArreola10
37 vistas808 diapositivas
Integrating Sustainable Development Goals (SDGs) in School Education por
Integrating Sustainable Development Goals (SDGs) in School EducationIntegrating Sustainable Development Goals (SDGs) in School Education
Integrating Sustainable Development Goals (SDGs) in School EducationSheetalTank1
13 vistas29 diapositivas
Global airborne satcom market report por
Global airborne satcom market reportGlobal airborne satcom market report
Global airborne satcom market reportdefencereport78
8 vistas13 diapositivas

Último(20)

Design_Discover_Develop_Campaign.pptx por ShivanshSeth6
Design_Discover_Develop_Campaign.pptxDesign_Discover_Develop_Campaign.pptx
Design_Discover_Develop_Campaign.pptx
ShivanshSeth656 vistas
Programmable Switches for Programmable Logic Devices por Usha Mehta
Programmable Switches for Programmable Logic DevicesProgrammable Switches for Programmable Logic Devices
Programmable Switches for Programmable Logic Devices
Usha Mehta19 vistas
taylor-2005-classical-mechanics.pdf por ArturoArreola10
taylor-2005-classical-mechanics.pdftaylor-2005-classical-mechanics.pdf
taylor-2005-classical-mechanics.pdf
ArturoArreola1037 vistas
Integrating Sustainable Development Goals (SDGs) in School Education por 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 vistas
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth por 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 vistas
Web Dev Session 1.pptx por VedVekhande
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptx
VedVekhande23 vistas
Trust Metric-Based Anomaly Detection via Deep Deterministic Policy Gradient R... por 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 vistas
Ansari: Practical experiences with an LLM-based Islamic Assistant por 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 vistas
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc... por csegroupvn
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
Design of Structures and Foundations for Vibrating Machines, Arya-ONeill-Pinc...
csegroupvn16 vistas
Details of Acoustic Liner for selection of material por 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 vistas
Field Programmable Gate Arrays : Architecture por Usha Mehta
Field Programmable Gate Arrays : ArchitectureField Programmable Gate Arrays : Architecture
Field Programmable Gate Arrays : Architecture
Usha Mehta23 vistas
IRJET-Productivity Enhancement Using Method Study.pdf por SahilBavdhankar
IRJET-Productivity Enhancement Using Method Study.pdfIRJET-Productivity Enhancement Using Method Study.pdf
IRJET-Productivity Enhancement Using Method Study.pdf
SahilBavdhankar10 vistas
MongoDB.pdf por ArthyR3
MongoDB.pdfMongoDB.pdf
MongoDB.pdf
ArthyR351 vistas

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