Case study in restoring software: IBM 704/709/7090/7094 Paul McJones May 5, 2006.

Slides:



Advertisements
Similar presentations
EC-111 Algorithms & Computing Lecture #1 Instructor: Jahan Zeb Department of Computer Engineering (DCE) College of E&ME NUST.
Advertisements

CSCI 1412 Tutorial 1 Introduction to Hardware, Software Parminder Kang Home:
Programming Creating programs that run on your PC
Chapter 1: An Overview of Computers and Programming Languages J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program.
COMP3221: Microprocessors and Embedded Systems Lecture 2: Instruction Set Architecture (ISA) Lecturer: Hui Wu Session.
Computer Concepts 5th Edition Parsons/Oja Page 546 CHAPTER 11 Software Engineering Section A PARSONS/OJA Computer Programming.
1 Lecture 1  Getting ready to program  Hardware Model  Software Model  Programming Languages  The C Language  Software Engineering  Programming.
Chapter 16 Programming and Languages: Telling the Computer What to Do.
1-1 Embedded Software Development Tools and Processes Hardware & Software Hardware – Host development system Software – Compilers, simulators etc. Target.
ICS 102 Computer Programming University of Hail College of Computer Science & Engineering Computer Science and Software Engineering Department.
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages C++ Programming:
Chapter 6 - Implementing Processes, Threads and Resources Kris Hansen Shelby Davis Jeffery Brass 3/7/05 & 3/9/05 Kris Hansen Shelby Davis Jeffery Brass.
1 The development of modern computer systems Early electronic computers Mainframes Time sharing Microcomputers Networked computing.
CEN 226: Computer Organization & Assembly Language :CSC 225 (Lec#1) By Dr. Syed Noman.
 2000 Prentice Hall, Inc. All rights reserved. 1 Introduction to Computers and C Programming Outline Introduction What Is a Computer? Computer Organization.
Computers: Software Patrice Koehl Computer Science UC Davis.
CSC 110 A 1 CSC 110 Introduction to Python [Reading: chapter 1]
Virtualization Concept. Virtualization  Real: it exists, you can see it.  Transparent: it exists, you cannot see it  Virtual: it does not exist, you.
Part 1.  Intel x86/Pentium family  32-bit CISC processor  SUN SPARC and UltraSPARC  32- and 64-bit RISC processors  Java  C  C++  Java  Why Java?
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
 2008 Pearson Education, Inc. All rights reserved Introduction to Computers, the Internet and World Wide Web.
1 CSC 1401 S1 Computer Programming I Hamid Harroud School of Science and Engineering, Akhawayn University
1 COMP201 Computer Systems Dr Richard Nelson Room G.1.29.
High-level Languages.
Chapter 1. Introduction.
Programming Language Rico Yu. Levels of Programming Languages 1.Low level languages 2.High level languages.
Lecture 1: What is a Computer? Lecture for CPSC 2105 Computer Organization by Edward Bosworth, Ph.D.
Course Overview. What are Computers? From Outside –CPU box, Monitor, Keyboard, mouse and Printers From inside –ICs, Chipsets, Hard Disks, PCB cards, Drives,
Programming History. Who was the first programmer?
C++ Programming Language Lecture 1 Introduction By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
CSCI 161: Introduction to Programming 1
ECE 103 Engineering Programming Chapter 5 Programming Languages Herbert G. Mayer, PSU CS Status 6/19/2015 Initial content copied verbatim from ECE 103.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 1- 1 Overview 1.1 Computer Systems 1.2 Programming and Problem Solving.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 1- 1 October 20, October 20, 2015October 20, 2015October 20,
C++ Programming: From Problem Analysis to Program Design, Third Edition Chapter 1: An Overview of Computers and Programming Languages.
1 Lecture 2 : Computer System and Programming. Computer? a programmable machine that  Receives input  Stores and manipulates data  Provides output.
Part 1.  Intel x86/Pentium family  32-bit CISC processor  SUN SPARC and UltraSPARC  32- and 64-bit RISC processors  Java  C  C++  Java  Why Java?
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Current holdings (approximate) –1000 1/2” tapes –500,000 cards –2000 8” Floppies –9000 5” Floppies –2000 3” Floppies Bias towards consumer computer software.
Chapter 1 Computers, Compilers, & Unix. Overview u Computer hardware u Unix u Computer Languages u Compilers.
CS-303 Introduction to Programming
CIS250 OPERATING SYSTEMS Chapter One Introduction.
Princes Nora Bint Abdul Rahman University Dept. of Computer & Information Sciences CS 321 Computer Organization & Assembly Language Lecture 1 (Course Introduction)
Analysis of Programming Languages (2). 2 LANGUAGE DESIGN CONSTRAINTS  Computer architecture  Technical setting  Standards  Legacy systems.
DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 2 Computer Organization.
Chapter 1 An Overview of Computers and Programming Languages.
The Big Picture. My Story  Wrote great programs  Didn’t understand how they worked.
1 Types of Programming Language (1) Three types of programming languages 1.Machine languages Strings of numbers giving machine specific instructions Example:
Representation of Data - Instructions Start of the lesson: Open this PowerPoint from the A451 page – Representation of Data/ Instructions How confident.
Software Engineering Algorithms, Compilers, & Lifecycle.
Chapter 2- Visual Basic Schneider1 Programming Languages: Machine Language Assembly Language High level Language.
CIT 140: Introduction to ITSlide #1 CSC 140: Introduction to IT Operating Systems.
Chapter 1. Introduction.
A Peek at History The MCC Interim Release & QEMU The DEC PDP-11 & SIMH.
Java Programming: From the Ground Up
ECE 103 Engineering Programming Chapter 5 Programming Languages
Chapter 1: An Overview of Computers and Programming Languages
CSCI-235 Micro-Computer Applications
LESSON 1 Introduction to Programming Language
Computer System and Programming
Introduction to Computers and Java
课程名 编译原理 Compiling Techniques
Computer Organization & Compilation Process
Problem Solving Using C: Orientation & Lecture 1
Assembly Language for Intel-Based Computers
Figure 14.1 The modern integrated computer environment
Problem Solving Using C: Orientation & Lecture 1
Re- engineeniering.
Dept. of Computer & Information Sciences (Course Introduction)
Presentation transcript:

Case study in restoring software: IBM 704/709/7090/7094 Paul McJones May 5, 2006

Static displays are nice

So are working machines!

Collecting software is nice

So is working software! i7090 by Rich Cornwell

Why the IBM 704/709/7090/7094? Spanned from Von Neumann to System/360 Hosted original programming languages: –FORTRAN, LISP, COBOL, MAD, SNOBOL, … Hosted earliest operating systems –GM/NAA I/O, SOS, IBSYS, CTSS, … Workhorse of scientific and engineering computing

What’s involved Physical media: tapes, listings, etc. Transcription to modern media Manuals Processors, real or simulated Reacquiring expertise (reverse engineering)

Physical media: tapes, listings, etc. Paul Pierce –Diagnostics (necessary for debugging simulators!) –SHARE library (e.g., SAP assembler) –IBSYS (including many compilers!) –System/360 emulator (executable only) –CTSS P.Z. Ingerman/Smithsonian –IBM 704 Fortran II (located by Paul McJones) Tim Hart/MIT Library –Lisp 1.5 (located by Jack Harper; scanned by Olin Sibert) Robert R. Fenichel –CTSS Lisp 1.5

What’s involved Physical media: tapes, listings, etc. Transcription to modern media Manuals Processors, real or simulated Reacquiring expertise (reverse engineering)

Transcription to modern media Paul Pierce

Transcription to modern media Manual transcription –Rich Cornwell: diagnostics, 704 Fortran II, etc. –Pascal Bourguignon: Lisp 1.5 Line-printer tuned OCR –James Markevitch

What’s involved Physical media: tapes, listings, etc. Transcription to modern media Manuals Processors, real or simulated Reacquiring expertise (reverse engineering)

Manuals Al Kossow –Bitsavers.org Paul Pierce –Manuals, logic diagrams, etc. Basements and attics all over the world

What’s involved Physical media: tapes, listings, etc. Transcription to modern media Manuals Processors, real or simulated Reacquiring expertise (reverse engineering)

Processors, real or simulated Paul Pierce –Real: two IBM 709s, IBM 7094 –Simulated: s709

Processors, real or simulated Rob Storey (Borland Delphi)

Processors, real or simulated Dave Pitts –s709 extends Pierce’s version to 7090/7094 –asm7090 –lnk7090

Processors, real or simulated Bob Supnik –Adding 709x to SIMH (focus on CTSS)

Processors, real or simulated Rich Cornwell –SIMH-based but independently developed –Used original diagnostics to develop simulator –Focus on IBSYS and older 704/709 software

Processors, real or simulated Fritz Schneider (Java)

What’s involved Physical media: tapes, listings, etc. Transcription to modern media Manuals Processors, real or simulated Reacquiring expertise (reverse engineering)

Reacquiring expertise Rob Storey and James Fehlinger first to boot IBSYS? Dave Pitts rebuilt IBSYS from source Rich Cornwell –first to boot IBSYS from disk? –rebuilt IBSYS from source on IBSYS –got Fortran II running –deciphered SAP library tapes –working on getting Lisp 1.5 to run Bob Supnik is reverse engineering CTSS hardware

Some lessons via Rich Cornwell Reference manuals don’t always tell the truth Diagnostics are invaluable for writing simulators –704: missing index register bits (<32K memory) –7094 double precision –“Dangling tape writes” (no tape mark) “I have found so many neat tricks and learned so much about programming computers from examining old code, where 32K of memory was considered a huge amount of memory (more then could be used :-).”

How are these projects organized? A multidisciplinary team is required It is often a labor of love It is often a distributed effort A variety of web sites contribute: –Theme-oriented, e.g., multicians.org –Blogs, e.g. Dusty Decks –Slashdot –Google

How can institutions help? Encourage/coordinate restoration projects –Provide services such as media conversion –Host online services such as forums Provide long-term stability –Archive the software, manuals, simulators Provide visibility to the public –Physical exhibits (simulators, etc.) –Web site

For more –704/, 709/, 7090/, 7094/, fortran/ –

The end