40
Spreadsheets - the TRUE history of fully interactive spreadsheets & JIT "A full five to six yea <a href="http://en.wikipedia The birthplace of first very powerful early shared public spreadsheet in 1974 3 years before APPLE II launch (1977) 7 years before IBM PC launch (Aug 1981) i.e. Spreadsheets were not an 'invention' in 1979, as fully interactive spreadsheets were already in use in 1974 sex Copy of 1974 Manual PAGE 1 (of 8)

History of Spreadsheets

Embed Size (px)

DESCRIPTION

the true history of spreadsheets, six years before visicalc on a mainframe

Citation preview

Page 1: History of Spreadsheets

Spreadsheets - the TRUE history of fully interactive spreadsheets & JIT "A full five to six years before Bricklin and Visicalc"

<a href="http://en.wikipedia.org/wiki/Imperial_Chemical_Industries" target="_blank">WIKIPEDIA article</a>

The birthplace of first very powerful early shared public spreadsheet in 19743 years before APPLE II launch (1977)

7 years before IBM PC launch (Aug 1981)

i.e. Spreadsheets were not an 'invention' in 1979, as fully interactive spreadsheets were already in use in 1974 on mainframes.

sexCopy of 1974 Manual PAGE 1 (of 8)

Page 2: History of Spreadsheets

..."No computer experience or knowledge is needed to do this. An Application System can

be built and modified on-line, by the user on his own VDU terminal remote from the main

computer without involving computer staff at all"...

WRS Terminologyone or more functionally complete Input/Output displays Application

Visual display unit (IBM/3270 Model 2, 24 lines x 80 bytes)VDU

one of more lines of formulaeFunction group

a unique "named cell" (literally a "Direct Input Record")"DIR" - all named cells were 'global' and accessible from any other spreadsheet

The user "view" of the dataINPUT/OUTPUT Displays (i.e. a single sheet that could incorporate data from anywhere in the system -just as with Remote data in on-line spreadsheets like "Editgrid" today)

printed view of the data - designed by users online (WYSIWYG) and REPORT

not necessarily the same as on a "spreadsheet"/input/output view.

Column or row headingTITLE

Component part of a "named" data value (eg Kilogram,Tank level,Stock)CHARACTERISTIC

Page 3: History of Spreadsheets
Page 4: History of Spreadsheets
Page 5: History of Spreadsheets

"A full five to six years before Bricklin and Visicalc" DAVID JOHNSTON

(The new owners of ICI)

<a href="http://en.wikipedia.org/wiki/Imperial_Chemical_Industries" target="_blank">WIKIPEDIA article</a><a href="http://en.wikipedia.org/wiki/Akzo_Nobel" target="_blank">WIKIPEDIA article</a>

i.e. Spreadsheets were not an 'invention' in 1979, as fully interactive spreadsheets were already in use in 1974 on mainframes.

Imperial Chemical Industries (ICI) - Mond DivisionBrunner House, Northwich & Rocksavage Works, Cheshire, England

The "Product" The "Works Records System"

Features: 3-D spreadsheet (time = 3rd dimension)

separation of data / calculation / Input/output

interactive, multi-user, networked

backup/recovery

security

"Remote Data" access

Database of aged values (hour/day/week/month/Qtr/year)

Built-in integrity checking (eg units attribute,consistency)

Row/column headers in Dynamic Tables

Uniquely identifiable (system-wide) data items

Histograms, WYSIWYG views, reports, cross references

Timeframe In use from 1974-2001

The Team:

Designer: Dr. Robert Mais, employee of ICI, retired

Analyst: Graham Johnson. employee of ICI, retired

Programmers: Ken Dakin Freelance Consultant

Philip Lath ICI

Colin Done ICI

Other 1 contract

"Atestees" 6 (RM,GJ,KD,CD,PR,DP)

Technical:

Architecture: IBM 370 (compatible with z/Architecture)

3270 "dumb" terminals

Operating System MVS

TP Monitor CICS Macro level (pre VS, XA, ESA)

Language: IBM 370 Assembler

Librarian manager Panvalet

Page 6: History of Spreadsheets

Database: ADABAS

Techniques Just-in-time compilation (= dynamic "on-the-fly" compile)

Use of combinatorial, re-entrant machine-code "snippets"

Dynamically built, re-entrant executable code

Optimizing Incremental compiler

(Similar to Dynamic programming algorithmic technique

utilizing "memoization" but also - significantly - in conjunction with

"referentially transparent" (deterministic) self-modifying code

- eliminating both time & space penalties)

Compression

Heavily "Table driven" code (Assembler tables) including..

Branch Tables (super efficient Perfect Hash technique

- in effect a super-efficient "direct threading" indexed "threaded-code" methodology)

Binary search (where appropriate)

Self optimizing fast-paths

Double precision Floating point

Native 3270 protocol (no BMS)

Direct access files (Data held on flat BDAM files)

ADABAS "relational" database (specifications only)

Shunting yard algorithm

Asynchronous background tasks

Later Software technologies using similar techniques:

Notes (sic)

*1 "...a porting of Lotus 1-2-3 to mainframes with 3279 [4 or 7 color 3270] screens did not meet success

because its programmers were not able to properly adapt the spreadsheet's user interface

to a "screen at a time" rather than "character at a time" device" (Wikipedia).

*2 "...Dynamic translation was pioneered [?] by the commercial Smalltalk implementation

currently known as VisualWorks, in the early 1980s; various Lisp implementations like Emacs picked the technique up quickly"(Wikipedia)

*3 "....Memoization was explored as a parsing strategy in 1991 by Norvig,

who demonstrated that an algorithm similar to the use of dynamic programming

and state-sets in Earley's algorithm (1970), and tables in the CYK algorithm of Cocke,

Younger and Kasami, could be generated by introducing automatic memoization

to a simple backtracking recursive descent parser to solve the problem of exponential time complexity.

The basic idea in Norvig’s approach is that when a parser is applied to the input,

the result is stored in a memotable for subsequent reuse if the same parser is ever reapplied to the same input.

It was again explored in the context of parsing in 1995 by Johnson and Dörre. In 2002,

it was examined in considerable depth by Ford in the form called packrat parsing" (Wikibooks - "Memoization")

Q & AWas the Works Records System true "WYSIWYG" ?

Were there columns & rows ?

Was the System truly interactive ?

Were calculations automatically performed ?

Could multiple users view & update spreadsheets ?

Could non-programmers create a S/sheet (application) ?

Were there "named" cells ?

Could values from other S/sheets be incorporated ?

Was historical data stored in database ?

Was summary data available from aged data ?

Was backup/recovery automatic & systemwide ?

Page 7: History of Spreadsheets

Was user security built-in ?

Were there 'unit' attributes (pounds/kilograms etc) ?

Were logically invalid operations prevented (eg lbs x lbs) ?

Were column headers/row headings re-useable ?

Could global changes be made to titles/headings ?

Was the system ever used outside chemical factoriies ?

Were there "graphs" available ?

Was there a print report capability ?

Was the system ever marketed commercially ?

How long was the System used for

What language was the System written in ?

Would WRS compile/execute today ?

Were real-time calculations interpreted or machine code ?

Did it really use Just-in-time compilation ?

Was the code self-modifying?

Approximately how many lines of code were there ?

What was the precision of data/ calculations ?

Were logical functions allowed ?

Multi-line formulae ?

Cross reference of formulae (reports) ?

Multi- lingual ?

Multi-currency ?

Were many of above features incorporated into Visicalc ?

Was WRS ported to PC or Apple ?

Did WRS have a GUI ?

Was any part of S/S design ported to other smaller hardware?

Further information /correspondencevia Editgrid.com FORUM - "Ken"

http://forum.editgrid.com/viewtopic.php?pid=3679

Demo? sorry no, but this mockup on Editgrid gives the general idea

http://www.editgrid.com/user/ken/WORKS_RECORDS_SYSTEM_MOCKUP

WRS performance Factsaverage downstream bytes to update one cell on remote 3270 workstation

average number of bytes upstream when single cell is changed

approximate # machine instructions to execute - for example, A=B+C*(D/E)

approximate size of object code snippet ('binary') for above example

approximate floating point instructions/ second on (an earlier generation) 360

exact number of bytes needed to store a single F/P data cell on BDAM file

# formula required to store, for example, >46 years of historic monthly data

# machine instructions to stack >46 years of historic monthly data (MVCL)

# instructions required to validate numeric input from 3270

# additional instructions required for dynamic v. compiled Fortran algorithm

additional overhead retrieving data from another application (remote data)

Authors comments (& rant)It was common practice in the 1960's/70's for companies to compete on IT fronts as well as normal commercial lines. If a corporation had talented in-house IT staff, that company could compete better than the ones who either couldn't afford the best or who didn't search for the best (just as in design, production & marketing). Somewhere along the way the majority of company executives 'lost their way' and the current awful state of IT is a direct result of this neglect and over zealous sales of 'off the shelf' solutions. Company intelligence is more valuable than mere assets - it is the very stuff of competiteveness. ICI never shared with others the advantages they gained through intelligent IT Systems and became, as a result, for a very long time, true leaders in their field. Competitiveness creates excellence and advances civilization. One-product Operating Systems and all embracing application Office suites create stagnation and encourage viruses & bugs. If it were not so we would not be where we are today - having to put up with poor quality software.

Page 8: History of Spreadsheets

It was common practice in the 1960's/70's for companies to compete on IT fronts as well as normal commercial lines. If a corporation had talented in-house IT staff, that company could compete better than the ones who either couldn't afford the best or who didn't search for the best (just as in design, production & marketing). Somewhere along the way the majority of company executives 'lost their way' and the current awful state of IT is a direct result of this neglect and over zealous sales of 'off the shelf' solutions. Company intelligence is more valuable than mere assets - it is the very stuff of competiteveness. ICI never shared with others the advantages they gained through intelligent IT Systems and became, as a result, for a very long time, true leaders in their field. Competitiveness creates excellence and advances civilization. One-product Operating Systems and all embracing application Office suites create stagnation and encourage viruses & bugs. If it were not so we would not be where we are today - having to put up with poor quality software.

Page 9: History of Spreadsheets

<a href="http://en.wikipedia.org/wiki/Akzo_Nobel" target="_blank">WIKIPEDIA article</a>

Imperial Chemical Industries (ICI) - Mond Division

separation of data / calculation / Input/output

Database of aged values (hour/day/week/month/Qtr/year)

Built-in integrity checking (eg units attribute,consistency)

Uniquely identifiable (system-wide) data items

Histograms, WYSIWYG views, reports, cross references

Extant?

yes

yes

yes

?

yes

?

yes

Links(compatible with z/Architecture) <a href="http://en.wikipedia.org/wiki/System/370" target="_blank">IBM 370/145</a><a href="http://en.wikipedia.org/wiki/Z/Architecture" target="_blank">IBM Z/Architecture</a>

<a href="http://www.columbia.edu/acis/history/3270.html" target="_blank">3270 image</a><a href="http://en.wikipedia.org/wiki/IBM_3270" target="_blank">IBM 3270 on wikipedia</a>

<a href="http://en.wikipedia.org/wiki/MVS" target="_blank">IBM MVS Operating System</a>

<a href="http://en.wikipedia.org/wiki/CICS" target="_blank">IBM CICS</a>http://cicswiki.org/cicswiki1/index.php?title=Quasi-reentrant

<a href="http://en.wikipedia.org/wiki/IBM_Basic_assembly_language" target="_blank">IBM Assembler</a>

<a href="http://ca.com/us/products/product.aspx?id=1431" target="_blank">Panvalet source code management</a>

Page 10: History of Spreadsheets

<a href="http://en.wikipedia.org/wiki/Adabas" target="_blank">ADABAS Wikipedia</a>

Just-in-time compilation (= dynamic "on-the-fly" compile) <a href="http://en.wikipedia.org/wiki/Just-in-time_compilation" target="_blank">JIT compilation</a>

Use of combinatorial, re-entrant machine-code "snippets"

Dynamically built, re-entrant executable code http://en.wikipedia.org/wiki/Reentrant

<a href="http://en.wikipedia.org/wiki/Incremental_compiler" target="_blank">Incremental compiler</a>

(Similar to Dynamic programming algorithmic technique http://en.wikibooks.org/wiki/Algorithms/Chapter_6

utilizing "memoization" but also - significantly - in conjunction with <a href="http://en.wikipedia.org/wiki/Memoization" target="_blank">Memoization</a>

"referentially transparent" (deterministic) self-modifying code http://en.wikipedia.org/wiki/Referential_transparency_%28computer_science%29

http://en.wikipedia.org/wiki/Self-modifying_code

segmented system messages

Heavily "Table driven" code (Assembler tables) including.. similar to "Threaded code" technique, using pre-assembled indexed sub-routine calls.

Branch Tables (super efficient Perfect Hash technique <a href="http://en.wikipedia.org/wiki/Hash_function" target="_blank">Hash function</a>http://en.wikibooks.org/wiki/360_Assembly/Branch_Instructions

http://en.wikipedia.org/wiki/Jump_table

- in effect a super-efficient "direct threading" indexed "threaded-code" methodology)http://en.wikipedia.org/wiki/Threaded_code_compiler

<a href="http://en.wikipedia.org/wiki/Binary_search" target="_blank">Binary search</a>

Code self re-organized according to options & usage (reflection)

<a href="http://en.wikipedia.org/wiki/Reflection_(computation)" target="_blank">Reflection (computer science)</a>

<a href="http://en.wikipedia.org/wiki/Floating_point" target="_blank">Wikipedia Floating point</a>

Direct access files (Data held on flat BDAM files) <a href="http://en.wikipedia.org/wiki/Flat_file" target="_blank">Flat file</a>

ADABAS "relational" database (specifications only)

http://en.wikipedia.org/wiki/Reverse_Polish_notation

see CICS asynchronous transaction processing - (Transient Data)

"...a porting of Lotus 1-2-3 to mainframes with 3279 [4 or 7 color 3270] screens did not meet success

because its programmers were not able to properly adapt the spreadsheet's user interface

to a "screen at a time" rather than "character at a time" device" (Wikipedia).

"...Dynamic translation was pioneered [?] by the commercial Smalltalk implementation

currently known as VisualWorks, in the early 1980s; various Lisp implementations like Emacs picked the technique up quickly"

"....Memoization was explored as a parsing strategy in 1991 by Norvig,

who demonstrated that an algorithm similar to the use of dynamic programming

and state-sets in Earley's algorithm (1970), and tables in the CYK algorithm of Cocke,

Younger and Kasami, could be generated by introducing automatic memoization

to a simple backtracking recursive descent parser to solve the problem of exponential time complexity.

The basic idea in Norvig’s approach is that when a parser is applied to the input,

the result is stored in a memotable for subsequent reuse if the same parser is ever reapplied to the same input.

It was again explored in the context of parsing in 1995 by Johnson and Dörre. In 2002,

it was examined in considerable depth by Ford in the form called packrat parsing" (Wikibooks - "Memoization")

AnswerWas the Works Records System true "WYSIWYG" ? Yes

Yes ("free" layout)

Yes sub-second responses

Were calculations automatically performed ? Yes (including aged)

Could multiple users view & update spreadsheets ? Yes design criteria

Could non-programmers create a S/sheet (application) ? Yes design criteria

Yes (6 "levels")

Could values from other S/sheets be incorporated ? Yes any

Yes by time period, shift, day, week, month, year

Was summary data available from aged data ? Yes by time period,auto summation

Was backup/recovery automatic & systemwide ? Yes application & daily full disk copy

Page 11: History of Spreadsheets

Yes

Were there 'unit' attributes (pounds/kilograms etc) ? Yes still not universally adopted 34 years later !

Were logically invalid operations prevented (eg lbs x lbs) ? Yes ""

Were column headers/row headings re-useable ? Yes globally & 'cross application'

Could global changes be made to titles/headings ? Yes (see also multi-lingual)

Was the system ever used outside chemical factoriies ? Yes ("secret" union payrise negotiations)

Yes histograms only since no GUI

Yes WYSIWYG with on screen previews

Was the system ever marketed commercially ? No ICI internal use only

27 years (1974-2001) http://www.the-adam.com/adam/rantrave/computers.htm

http://www.the-adam.com/adam/rantrave/postmodern.htm

What language was the System written in ? Assembler, re-entrant code

Yes 100% IBM Z/390 compatible, (no requirement to re-compile)

Were real-time calculations interpreted or machine code ? machine code

Yes

Yes (dynamic Memoization & self optimizing fast paths)

Approximately how many lines of code were there ? < 10,000 (table driven)

What was the precision of data/ calculations ? 64 bit (double precision) floating point

Yes

Yes

Yes

Yes (all text user modifiable)

Yes (attributes user defined)

Were many of above features incorporated into Visicalc ? No (suggestive of wholy independant & later "re-invention" by Bricklin)

No it was created 6 years before the IBM PC, and between 3 and 6 years before Apple II

No Limited to defined field attributes, text/numerics, (later 7 colors & reverse video, condtl. formatting)

(hardware limitation, graphic devices were not generally available in 1974)

Was any part of S/S design ported to other smaller hardware? Yes by ICI, to Commodore PET 2001 in 1977 - calculator burnt to ROM chip

http://forum.editgrid.com/viewtopic.php?pid=3679

sorry no, but this mockup on Editgrid gives the general idea

http://www.editgrid.com/user/ken/WORKS_RECORDS_SYSTEM_MOCKUP

average downstream bytes to update one cell on remote 3270 workstation 16 bytes uncompressed

average number of bytes upstream when single cell is changed 14 bytes uncompressed

approximate # machine instructions to execute - for example, A=B+C*(D/E) 5 including fetch & save

approximate size of object code snippet ('binary') for above example 24 bytes 4 bytes per F/P machine instruction (F/P = floating point)

approximate floating point instructions/ second on (an earlier generation) 360 330,000 <a href="http://www.bitsavers.org/pdf/ibm/360/A22_6825-1_360instrTiming.pdf" target="_blank">IBM System/360 timings</a>

exact number of bytes needed to store a single F/P data cell on BDAM file 8

# formula required to store, for example, >46 years of historic monthly data 0 builtin

# machine instructions to stack >46 years of historic monthly data (MVCL) 1 one MVCL instr.

# instructions required to validate numeric input from 3270 0 hardware feature

# additional instructions required for dynamic v. compiled Fortran algorithm < 0 more optimized than compiled Fortran

additional overhead retrieving data from another application (remote data) 0 exactly same cost as local

It was common practice in the 1960's/70's for companies to compete on IT fronts as well as normal commercial lines. If a corporation had talented in-house IT staff, that company could compete better than the ones who either couldn't afford the best or who didn't search for the best (just as in design, production & marketing). Somewhere along the way the majority of company executives 'lost their way' and the current awful state of IT is a direct result of this neglect and over zealous sales of 'off the shelf' solutions. Company intelligence is more valuable than mere assets - it is the very stuff of competiteveness. ICI never shared with others the advantages they gained through intelligent IT Systems and became, as a result, for a very long time, true leaders in their field. Competitiveness creates excellence and advances civilization. One-product Operating Systems and all embracing application Office suites create stagnation and encourage viruses & bugs. If it were not so we would not be where we are today - having to put up with poor quality software.

Page 12: History of Spreadsheets

It was common practice in the 1960's/70's for companies to compete on IT fronts as well as normal commercial lines. If a corporation had talented in-house IT staff, that company could compete better than the ones who either couldn't afford the best or who didn't search for the best (just as in design, production & marketing). Somewhere along the way the majority of company executives 'lost their way' and the current awful state of IT is a direct result of this neglect and over zealous sales of 'off the shelf' solutions. Company intelligence is more valuable than mere assets - it is the very stuff of competiteveness. ICI never shared with others the advantages they gained through intelligent IT Systems and became, as a result, for a very long time, true leaders in their field. Competitiveness creates excellence and advances civilization. One-product Operating Systems and all embracing application Office suites create stagnation and encourage viruses & bugs. If it were not so we would not be where we are today - having to put up with poor quality software.

Page 13: History of Spreadsheets

This website

built using

<a href="http://en.wikipedia.org/wiki/Z/Architecture" target="_blank">IBM Z/Architecture</a>

<a href="http://en.wikipedia.org/wiki/IBM_3270" target="_blank">IBM 3270 on wikipedia</a>Note 1.

<a href="http://en.wikipedia.org/wiki/MVS" target="_blank">IBM MVS Operating System</a>

http://cicswiki.org/cicswiki1/index.php?title=Quasi-reentrant

<a href="http://en.wikipedia.org/wiki/IBM_Basic_assembly_language" target="_blank">IBM Assembler</a>

<a href="http://ca.com/us/products/product.aspx?id=1431" target="_blank">Panvalet source code management</a>

Page 14: History of Spreadsheets

<a href="http://en.wikipedia.org/wiki/Adabas" target="_blank">ADABAS Wikipedia</a>

<a href="http://en.wikipedia.org/wiki/Just-in-time_compilation" target="_blank">JIT compilation</a>Note 2.

<a href="http://en.wikipedia.org/wiki/Incremental_compiler" target="_blank">Incremental compiler</a>

http://en.wikibooks.org/wiki/Algorithms/Chapter_6

<a href="http://en.wikipedia.org/wiki/Memoization" target="_blank">Memoization</a>Note 3.

http://en.wikipedia.org/wiki/Referential_transparency_%28computer_science%29

http://en.wikipedia.org/wiki/Self-modifying_code

similar to "Threaded code" technique, using pre-assembled indexed sub-routine calls. Custom built, multi dimensional

http://en.wikibooks.org/wiki/360_Assembly/Branch_Instructions

http://en.wikipedia.org/wiki/Threaded_code_compiler

<a href="http://en.wikipedia.org/wiki/Binary_search" target="_blank">Binary search</a>

Code self re-organized according to options & usage (reflection)

(corrected link 29/10/2008)

<a href="http://en.wikipedia.org/wiki/Floating_point" target="_blank">Wikipedia Floating point</a>

(SBA/SF/RA etc)

`````Q

<a href="http://en.wikipedia.org/wiki/Flat_file" target="_blank">Flat file</a> No keyed lookup

only for setup & "program code"

http://en.wikipedia.org/wiki/Reverse_Polish_notation

see CICS asynchronous transaction processing - (Transient Data) Updating down the line DIR's

currently known as VisualWorks, in the early 1980s; various Lisp implementations like Emacs picked the technique up quickly"

by time period, shift, day, week, month, year

by time period,auto summation

application & daily full disk copy

Page 15: History of Spreadsheets

still not universally adopted 34 years later !

globally & 'cross application'

("secret" union payrise negotiations)

histograms only since no GUI

WYSIWYG with on screen previews

http://www.the-adam.com/adam/rantrave/computers.htm

http://www.the-adam.com/adam/rantrave/postmodern.htm

100% IBM Z/390 compatible, (no requirement to re-compile)

(dynamic Memoization & self optimizing fast paths)

(suggestive of wholy independant & later "re-invention" by Bricklin)

it was created 6 years before the IBM PC, and between 3 and 6 years before Apple II

Limited to defined field attributes, text/numerics, (later 7 colors & reverse video, condtl. formatting)

(hardware limitation, graphic devices were not generally available in 1974)

by ICI, to Commodore PET 2001 in 1977 - calculator burnt to ROM chip <a href="http://en.wikipedia.org/wiki/Commodore_PET" target="_blank">Commodore Pet</a>

including fetch & save

4 bytes per F/P machine instruction (F/P = floating point)

<a href="http://www.bitsavers.org/pdf/ibm/360/A22_6825-1_360instrTiming.pdf" target="_blank">IBM System/360 timings</a>no timing data avail for IBM/370 or later upward compatible hardware

hardware feature

more optimized than compiled Fortran

exactly same cost as local

Page 16: History of Spreadsheets
Page 17: History of Spreadsheets
Page 18: History of Spreadsheets
Page 19: History of Spreadsheets

<a href="http://en.wikipedia.org/wiki/Commodore_PET" target="_blank">Commodore Pet</a>

no timing data avail for IBM/370 or later upward compatible hardware

Page 20: History of Spreadsheets
Page 21: History of Spreadsheets
Page 22: History of Spreadsheets
Page 23: History of Spreadsheets
Page 24: History of Spreadsheets
Page 25: History of Spreadsheets
Page 26: History of Spreadsheets
Page 27: History of Spreadsheets
Page 28: History of Spreadsheets
Page 29: History of Spreadsheets
Page 30: History of Spreadsheets
Page 31: History of Spreadsheets

Early 3278 terminal circa 1972

model 1 12 x 40 columns

model 2 24 x 80 "" (illustrated)

model 2 24 x 80 "VID" graphic capability in part of screen

Features: byte addressable; any byte could be overlaid by subsequent write

read "modified" allowed only changed data to be read

full buffer read also available (mainly for screen saving during debugging)

numeric & protected field attributes

later (3279) colour displays had basic colours plus reverse video

Replaced: 2260 display terminal

Page 32: History of Spreadsheets

byte addressable; any byte could be overlaid by subsequent write

full buffer read also available (mainly for screen saving during debugging)

later (3279) colour displays had basic colours plus reverse video

Page 33: History of Spreadsheets

IBM 370/145 Console

Page 34: History of Spreadsheets
Page 35: History of Spreadsheets

http://www.w3.org/2000/03/rdf-tracking/#rdf-embedded

Page 36: History of Spreadsheets
Page 37: History of Spreadsheets
Page 38: History of Spreadsheets

IBM charged extra for the rust !

The rust illustrated here was an optional 'extra'

available only to pre-owned hardware buyers !

Page 39: History of Spreadsheets
Page 40: History of Spreadsheets

The rust illustrated here was an optional 'extra'

available only to pre-owned hardware buyers !