Register to reply

Computers before operating systems

by Avichal
Tags: computers, operating, systems
Share this thread:
Avichal
#1
Aug15-13, 05:28 AM
P: 283
I was wondering how people ran computers before operating system.
Since there is no OS to load our program, run it and then show the result, was it all done manually?

What was the procedure to load your program into the memory? I have heard something called dumb terminals. Was that used?
When the result came, how did we see it?
Phys.Org News Partner Science news on Phys.org
Flapping baby birds give clues to origin of flight
Prions can trigger 'stuck' wine fermentations, researchers find
Socially-assistive robots help kids with autism learn by providing personalized prompts
turbo
#2
Aug15-13, 05:53 AM
PF Gold
turbo's Avatar
P: 7,363
When I was in college over 40 years ago, computers were big, dumb, monoliths - overseen by a priesthood of geeks. Users were not allowed to make any changes in OS. We were allowed only to make minor programming changes on IBM punch-cards, then present those stacks of cards and hope that they yielded some legible output on the oh-so-many pages of green and white printout paper. It was not a good time.

Learning CUPL and Fortran was not real fun IMO because you never got to get down into the bowels of the beast. I'm sure some older members could elucidate. This is only my limited experience at a state university.
rcgldr
#3
Aug15-13, 06:01 AM
HW Helper
P: 7,128
The Eniac was manually programmed by manipulating switches and cables. Later versions of vacuum tube computers used something similar in concept to ROM's. Wiki article:

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

Some types of computers used plug board programming. When these computers started to phase out, languages like RPG which is similar in concept to plug board programing was developed for the later computers. Wiki article:

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

Some early transistor based computers had front panels that allowed a person to manually enter machine code. Usually a simpler loader was programmed, and then that loader could read punched cards, paper tape, or from some other device in order to load in a program. One alternative to a fixed circuit or rom for a boot loader was a small music box like drum with tabs used to toggle switches as it turned to enter the loader program (MonRobot).

Eventually simple operating systems that mostly consisted of drivers for the computer peripherals were created. Most of these were disk based as with current systems, a few were tape based. These were similar to the "DOS" on mini-computers or MS-DOS for the PC. The file systems used on disk drives improved over time.

During the 1960's and 1970's mainfame operating systems became fairly robust, and included the ability to run multiple batch jobs at the same time, similar to multi-tasking, except that the batch jobs normally didn't communicate with each other. True multi-tasking systems were also created during this time period.

Avichal
#4
Aug15-13, 08:16 AM
P: 283
Computers before operating systems

Okay, you enter machine or perhaps assembly code directly to a computer. But how?
When you enter the code how do you tell the computer to run it?
jtbell
#5
Aug15-13, 08:45 AM
Mentor
jtbell's Avatar
P: 11,778
Quote Quote by Avichal View Post
Okay, you enter machine or perhaps assembly code directly to a computer. But how?
When you enter the code how do you tell the computer to run it?
When I was an undergraduate about forty years ago, I played with a Digital Equipment PDP-5 computer which could be programmed from the front panel. It went something like this:
  • You have a list of binary machine-language instructions on a sheet of paper.
  • Set the memory address (in binary) that the first instruction is to go in, using a row of 12 front-panel switches.
  • Press a button labeled ADDRESS. A row of 12 lights, also labeled ADDRESS, lights up accordingly.
  • Set the first instruction on the switches.
  • Press a button labeled DEPOSIT. A second row of 12 lights labeled DATA lights up accordingly.
  • Press a button labeled NEXT. The ADDRESS lights advance to the next binary number in sequence.
  • Set the second instruction on the switches.
  • Press the DEPOSIT button.
  • Press the NEXT button.
  • Set the next instruction on the switches.
  • Repeat the preceding three steps until you've entered all the instructions.

When you've entered the entire program,
  • Set the switches to the address of the first instruction.
  • Press the ADDRESS button.
  • Press the RUN button.

I can't find a clear enough picture of a PDP-5's front panel to refresh my 40-year-old memories, so some details may have been different.
nsaspook
#6
Aug15-13, 09:09 AM
P: 642
Quote Quote by Avichal View Post
Okay, you enter machine or perhaps assembly code directly to a computer. But how?
When you enter the code how do you tell the computer to run it?
Some early machines had a front panel that would control the processor, and allow you to manually control the memory data, address data ,run/halt and read/write logic lines with a set of toggle switches.
http://www.classiccmp.org/hp/UYK-20/uyk%20panel.jpg
Core memory board.
http://www.classiccmp.org/hp/UYK-20/core.jpg

Manual operation:
You would unset the run switch, set address mode, toggle a address in binary, hit the set switch, set data mode, toggle in the data bits at that address, hit the set button again then repeat for the length of the program. When you were done you would again set the address to the start address of the program, press the set switch and then flip the run switch to start the computer executing instructions at that address.

The easy way:
Set the mode switch to use the ROM based bootloader to load the program from a 8 level tape reader.
http://www.kh6bb.org/new1.jpg
jtbell
#7
Aug15-13, 09:19 AM
Mentor
jtbell's Avatar
P: 11,778
"My" PDP-5 didn't have a ROM bootloader, so I had to enter a short paper-tape-loader program on the front panel switches. Properly-designed programs didn't overwrite the memory area where the paper tape loader resided, so if I was lucky, I needed to enter it only once, right after I turned the machine on. We kept the list of instructions taped on the front panel for handy reference.
OmCheeto
#8
Aug15-13, 09:24 AM
PF Gold
OmCheeto's Avatar
P: 1,431
Quote Quote by jtbell View Post
When I was an undergraduate about forty years ago, I played with a Digital Equipment PDP-5 computer which could be programmed from the front panel. It went something like this:
  • You have a list of binary machine-language instructions on a sheet of paper.
  • Set the memory address (in binary) that the first instruction is to go in, using a row of 12 front-panel switches.
  • Press a button labeled ADDRESS. A row of 12 lights, also labeled ADDRESS, lights up accordingly.
  • Set the first instruction on the switches.
  • Press a button labeled DEPOSIT. A second row of 12 lights labeled DATA lights up accordingly.
  • Press a button labeled NEXT. The ADDRESS lights advance to the next binary number in sequence.
  • Set the second instruction on the switches.
  • Press the DEPOSIT button.
  • Press the NEXT button.
  • Set the next instruction on the switches.
  • Repeat the preceding three steps until you've entered all the instructions.

When you've entered the entire program,
  • Set the switches to the address of the first instruction.
  • Press the ADDRESS button.
  • Press the RUN button.

I can't find a clear enough picture of a PDP-5's front panel to refresh my 40-year-old memories, so some details may have been different.
That sounds a bit like the Altair 8800.



I never got one, but your description sounds about right.

Ha! The first line of the article is a hoot:

The era of the computer in every home --- a favorite topic among science-fiction writers --- has arrived!
SteamKing
#9
Aug15-13, 09:48 AM
Emeritus
Sci Advisor
HW Helper
Thanks
PF Gold
P: 6,530
Quote Quote by jtbell View Post
When I was an undergraduate about forty years ago, I played with a Digital Equipment PDP-5 computer which could be programmed from the front panel. It went something like this:
  • You have a list of binary machine-language instructions on a sheet of paper.
  • Set the memory address (in binary) that the first instruction is to go in, using a row of 12 front-panel switches.
  • Press a button labeled ADDRESS. A row of 12 lights, also labeled ADDRESS, lights up accordingly.
  • Set the first instruction on the switches.
  • Press a button labeled DEPOSIT. A second row of 12 lights labeled DATA lights up accordingly.
  • Press a button labeled NEXT. The ADDRESS lights advance to the next binary number in sequence.
  • Set the second instruction on the switches.
  • Press the DEPOSIT button.
  • Press the NEXT button.
  • Set the next instruction on the switches.
  • Repeat the preceding three steps until you've entered all the instructions.

When you've entered the entire program,
  • Set the switches to the address of the first instruction.
  • Press the ADDRESS button.
  • Press the RUN button.

I can't find a clear enough picture of a PDP-5's front panel to refresh my 40-year-old memories, so some details may have been different.
Here is a brochure explaining some of the features of the PDP-5:

http://archive.computerhistory.org/r....102646094.pdf

If you go to p.8 of the document, there is a picture and explanation of the console keys.
jtbell
#10
Aug15-13, 10:36 AM
Mentor
jtbell's Avatar
P: 11,778
Looks like I wasn't too far off. Instead of buttons, there were two-way spring switches (console keys) that each acted like two buttons. Instead of a single DEPOSIT, there were separate LOAD ADDRESS and DEPOSIT [data]. Instead of RUN, there was START. To see the data at a particular address (already entered), you had to use EXAMINE. And there was no NEXT; both DEPOSIT and EXAMINE automatically incremented the memory location. So the procedure for entering and running a program would have been:
  • Set the switches to the address of the first instruction.
  • Key LOAD ADDRESS.
  • Set the switches to the first instruction.
  • Key DEPOSIT.
  • Set the switches to the next instruction.
  • Repeat the preceding two steps until the entire program has been loaded.
  • Set the switches to the address of the first instruction.
  • Key START.
D H
#11
Aug15-13, 10:41 AM
Mentor
P: 15,167
Quote Quote by jtbell View Post
  • ...
  • Key START.
You missed a final step: Watch das blinkenlights.
jtbell
#12
Aug15-13, 10:53 AM
Mentor
jtbell's Avatar
P: 11,778
Yep, and another step, not mandatory, but good practice: use LOAD ADDRESS (once) and EXAMINE (multiple times) to check that you entered the program correctly!
Avichal
#13
Aug15-13, 10:56 AM
P: 283
That's tiresome but very exciting. You get to interact with the hardware directly unlike nowadays.
Thank you for the information

Also, what are dumb terminals?
D H
#14
Aug15-13, 11:00 AM
Mentor
P: 15,167
Essentially a teletype in which the output went to a monochrome screen instead of paper.
Avichal
#15
Aug15-13, 01:29 PM
P: 283
What's the difference between the current computer terminal and the dumb terminal?
Did the dumb terminal just take input and store into the memory without processing it? So in a way, it was just another way to load a program into the computer. Was it used before operating systems came?
harborsparrow
#16
Aug15-13, 08:21 PM
PF Gold
harborsparrow's Avatar
P: 347
Quote Quote by Avichal View Post
What's the difference between the current computer terminal and the dumb terminal?
Did the dumb terminal just take input and store into the memory without processing it? So in a way, it was just another way to load a program into the computer. Was it used before operating systems came?
This is an excerpt from Wikipedia that is fairly accurate:

In the context of traditional computer terminals that communicate over a serial RS-232 connection, dumb terminals are those that can interpret a limited number of control codes (CR, LF, etc.) but do not have the ability to process special escape sequences that perform functions such as clearing a line, clearing the screen, or controlling cursor position...Smart or intelligent terminals are those that also have the ability to process escape sequences, in particular the VT52, VT100 or ANSI escape sequences.

In the broader context...the term dumb terminal is sometimes used to refer to any type of traditional computer terminal that communicates serially over a RS-232 connection.
harborsparrow
#17
Aug15-13, 08:28 PM
PF Gold
harborsparrow's Avatar
P: 347
I first used an IBM 360 system that used punched cards. In that case, each card was one line of code (in text), and the program would be read in line by line (card by card) and compiled, then run.

The operating system was very primitive. People at various terminals could read in a program from cards, and those would all go into a holding area (queue) and then execute one at a time. There was an operator (an actual person) who looked at the queue and could kill a job (if, say, it ran too long) or move a job to the front of the queue. Each program had one or two cards at the front that consisted of instructions to the computer on how to load and run the program (which compiler to use, for example, since compilers were pre-loaded and waiting in memory somewhere, ready to run the program being read in, or else the operator had to load the compiler)--those instructions were in JCL (Job Control Language), and each program was a "job". JCL is still used some places. This was before any timesharing systems, but JCL and the queue and operator WERE the operating system. Before that, as with Eniac, there was nothing; the program had to be hardwired into the computer.

Sorry this is a little muddled. You probably don't want to know about punched card computing anyway :-) This is a batch operating system, as mentioned earlier in the thread.
harborsparrow
#18
Aug15-13, 08:30 PM
PF Gold
harborsparrow's Avatar
P: 347
And, before punched cards, there was paper tape. The Univ. of Tenn. still had, in 1971 or 72, a paper tape reader than worked, although no one actively used it anymore.

When timesharing came along, we all thought we had gone to heaven.


Register to reply

Related Discussions
Controllers, processors and operating systems in the car General Engineering 2
Favorite operating systems Computing & Technology 42
Operating Systems Computing & Technology 11
Are the IBM VM and MVS OSes the TOP Operating systems? Computing & Technology 6