Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
IBM 1620
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Operating procedures== The "operating system" for the computer constituted the human operator, who would use controls on the computer [[system console|console]], which consisted of a [[front panel]] and typewriter, to load programs from the available bulk storage media such as decks of punched cards or rolls of paper tape that were kept in cabinets nearby. Later, the model 1311 disc storage device attached to the computer enabled a reduction in the fetch and carry of card decks or paper tape rolls, and a simple "Monitor" operating system could be loaded to help in selecting what to load from disc.<ref name=IBM.1311/><ref>"... 2 million characters, the equivalent of approximately 25,000 punched cards or a fifth of a reel of magnetic tape."</ref> A standard preliminary was to clear the computer memory of any previous user's detritus{{snd}} being magnetic cores, the memory retained its last state even if the power had been switched off. This was effected by using the console facilities to load a simple computer program via typing its machine code at the console typewriter, running it, and stopping it. This was not challenging as only one instruction was needed such as 160001000000, loaded at address zero and following. This meant ''transmit field immediate'' (the 16: two-digit op-codes) to address 00010 the immediate constant field having the value 00000 (five-digit operand fields, the second being from address 11 back to 7), decrementing source and destination addresses until such time as a digit with a "flag" was copied. This was the normal machine code means of copying a constant of up to five digits. The digit string was addressed at its low-order end and extended through lower addresses until a digit with a flag marked its end. But for this instruction, no flag would ever be found because the source digits had shortly before been overwritten by digits lacking a flag. Thus the operation would roll around memory (even overwriting itself) filling it with all zeroes until the operator grew tired of watching the roiling of the indicator lights and pressed the ''Instant Stop - Single Cycle Execute'' button. Each 20,000 digit module of memory took just under one second to clear. On the [[IBM 1620 Model II|1620 II]] this instruction would ''NOT'' work (due to certain optimizations in the implementation). Instead there was a button on the console called ''Modify'' which when pressed together with the ''Check Reset'' button, when the computer was in Manual mode, would set the computer in a mode that would clear all of memory in a tenth of one second regardless of how much memory you had; when you pressed ''Start''. It also stopped automatically when memory was cleared, instead of requiring the operator to stop it. Other than typing machine code at the console, a program could be loaded via either the paper tape reader, the card reader, or any disk drive. Loading from either tape or disk required first typing a "[[Bootstrapping (computing)|bootstrap]]" routine on the console typewriter. The card reader made things easier because it had a special ''Load'' button to signify that the first card was to be read into the computer's memory (starting at address 00000) and executed (as opposed to just starting the card reader, which then awaits commands from the computer to read cards){{snd}} this is the "bootstrap" process that gets into the computer just enough code to read in the rest of the code (from the card reader, or disc, or...) that constitutes the loader that will read in and execute the desired program. Programs were prepared ahead of time, offline, on paper tape or punched cards. But usually the programmers were allowed to run the programs personally, hands-on, instead of submitting them to operators as was the case with mainframe computers at that time. And the console typewriter allowed entering data and getting output in an interactive fashion, instead of just getting the normal printed output from a blind batch run on a pre-packaged data set. As well, there were four [[sense switch|program switch]]es on the console whose state a running program could test and so have its behavior directed by its user. The computer operator could also stop a running program (or it may come to a deliberately programmed stop) then investigate or modify the contents of memory: being decimal-based, this was quite easy; even floating-point numbers could be read at a glance. Execution could then be resumed, from any desired point. Aside from debugging, scientific programming is typically exploratory, by contrast to commercial data processing where the same work is repeated on a regular schedule. ===Console=== [[File:IBM 1620 Memory address register display selector.jpg|thumb|IBM 1620 Memory address register display selector switch]] The most important items on the 1620's console were a pair of buttons labeled ''Insert'' & ''Release'', and the console typewriter. * Insert β Pressing this key with the computer in ''Manual'' mode reset the program counter (in the MARS core memory) to zero, switched the computer into ''Automatic'' and ''Insert'' modes, and simulated the execution of a Read Numeric from Typewriter to address zero (unlocked the typewriter keyboard, shifted the typewriter into numeric mode). Note: unlike a real Read Numeric from Typewriter, ''Insert'' mode would force a ''Release'' after 100 digits had been typed to prevent overwriting the arithmetic tables. * Release β Pressing this key while doing a Read from the Typewriter terminated the Read, switched the computer into ''Manual'' mode, and locked the typewriter keyboard. The typewriter is used for operator input/output, both as the main console control of the computer and for program controlled input/output. Later models of the typewriter had a special key marked ''R-S'' that combined the functions of the console ''Release'' & ''Start'' buttons (this would be considered equivalent to an ''Enter'' key on a modern keyboard). Note: several keys on the typewriter did not generate input characters, these included ''Tab'' and ''Return'' (the 1620s alphameric and numeric BCD character sets lacked character codes for these keys). The next most important items on the console were the buttons labeled ''Start'', ''Stop-SIE'', and ''Instant Stop-SCE''. * Start β Pressing this key with the computer in ''Manual'' mode switched the computer to ''Automatic'' mode (causing the computer to begin executing at the address in the program counter). * Stop-SIE β Pressing this key with the computer in ''Automatic'' mode switched the computer to ''Manual'' mode when the currently executing instruction completes. Pressing this key with the computer in ''Manual'' mode switched the computer into ''Automatic'' mode for one instruction. * Instant Stop-SCE β Pressing this key with the computer in ''Automatic'' mode switched the computer into ''Automatic/Manual'' mode at the end of the current memory cycle. Pressing this key with the computer in ''Manual'' or ''Automatic/Manual'' mode switched the computer into ''Automatic/Manual'' mode and executed one memory cycle. For program debugging there were the buttons labeled ''Save'' & ''Display MAR''. * Save β Pressing this key with the computer in ''Manual'' mode saved the program counter into another register in the MARS core memory and activated ''Save'' mode. When a Branch Back instruction was executed in ''Save'' mode, it copied the saved value back to the program counter (instead of copying the return address register as it normally did) and deactivated ''Save'' mode. This was used during debugging to remember where the program had been stopped to allow it to be resumed after the debugging instructions that the operator had typed on the typewriter had finished. Note: the MARS register used to save the program counter in was also used by the ''Multiply'' instruction, so this instruction and the ''Save'' mode were incompatible! However, there was no need to use multiply in debugging code, so this was not considered to be a problem. * Display MAR β Pressing this key with the computer in ''Manual'' mode displayed the selected MARS register and the contents of the memory at that address on the console lamps. {| class="wikitable" |- !"Breakpoint" procedure !Notes |- |Press ''Stop-SIE'' |Stop the computer at the end of the current instruction. |- |Press ''Save'' |Save the address to resume execution at. |- |Press ''Insert'' |Unlocks typewriter keyboard and shifts into numeric mode. |- |Type 35xxxxx0010036xxxxx0010042<br/> |xxxxx is the address that you plan to set the breakpoint at. |- |Press ''Release'' |Locks typewriter keyboard. |- |Press ''Start'' |Begin execution. Allow the 12 digit instruction to print out. |- |Press ''Release'' |Stops the Dump Numeric. |- |Press ''Start'' |Begin execution. |- |Type 48 |Replace the opcode of the instruction to "break" at with a Halt opcode. |- |Press ''Release'' |Locks typewriter keyboard. |- |Press ''Start'' |Resume execution. Wait until the computer halts at the "breakpoint". |- |Press ''Insert'' |Unlocks typewriter keyboard and shifts into numeric mode. |- |Type 36xxxxx0010049xxxxx<br/> |xxxxx is the address that you previously set the breakpoint at, you are now going to clear it. |- |Press ''Release'' |Locks typewriter keyboard. |- |Press ''Start'' |Begin execution. |- |Type oo |oo is the 2 digit opcode the original 12 digit instruction previously printed out. |- |Press ''Release'' |Locks typewriter keyboard. |- |Press ''Stop-SIE'' |The machine is now ready to resume execution from the location of the (now cleared) "breakpoint". You can perform any required debugging actions now, before continuing. |} All of main memory could be cleared from the console by entering and executing a transfer instruction from address to address +1, this would overwrite any word mark, that would normally stop a transfer instruction, and wrap around at the end of memory. After a moment, pressing Stop would stop the transfer instruction and memory would be cleared. ===IBM 1621/1624 Paper Tape reader/punch=== [[File:IMB1620 and IBM 1621 with paper tape.jpg|thumb|User holding paper tape at the IBM 1620 with the IBM 1621 paper tape reader in background, IBM headquarters, White Plains, NY, 1961]] The '''IBM 1621 Paper Tape Reader''' could read a maximum of 150 characters per second;<br/>The '''IBM 1624 Paper Tape Punch''' could output a maximum of 15 characters/second.<ref name=IBM.intro59/> Both units: * could handle eight-channel paper tape * performed self-checking to ensure accuracy * accommodated both numerical and alphabetic information in single-character coding. The [[IBM 1621|1621]] Tape Reader and [[IBM 1624|1624]] Tape Punch included controls for: * Power switch β If "on" the unit reader is powered up when the CPU is powered on. * Reel-Strip switch β This switch selects whether Reels or Strips of paper tape are used. * Reel power key β Applies power to the supply and takeup Reels to position the tape for reading and places the reader in ready state. * Non-process runout key β Feeds tape until the reader is empty and takes the reader out of ready state. {| class="wikitable" |- !Bootstrap procedure !Notes |- |Press ''Insert'' |Unlocks typewriter keyboard and shifts into numeric mode. |- |Type 36xxxxx0030049yyyyy<br/> |xxxxx is the address to load the tape into.<br/>yyyyy is the address to begin execution. |- |Press ''Release'' |Locks typewriter keyboard. |- |Press ''Start'' |Begin execution. |} ===IBM 1622 Card reader/punch=== The '''[[IBM 1622|IBM 1622 Card reader/punch]]''' could: * read a maximum of 250 cards per minute * punch a maximum of 125 cards/minute.<ref name=IBM.intro59/> The 1622's controls were divided into three groups: 3 punch control rocker switches, 6 buttons, and 2 reader control rocker switches. Punch Rocker switches: * Punch Off/Punch On β This rocker turned the punch mechanism off or on. * Select No-Stop/Select Stop β This rocker selected if mispunched cards (deposited in the punch error select stacker instead of the normal punch stacker) let the punch continue or caused a check stop. * Non-Process Runout β This rocker with the punch hopper empty, "ranout" remaining cards from the punch mechanism. Buttons: * Start punch β Pressing this key with the punch idle and on, started the punch. The computer could now punch cards. * Stop punch β Pressing this key with the punch active, stopped the punch. * Check Reset β Pressing this key reset all "error check" conditions in the reader and punch. * Load β Pressing this key with the reader idle and on and the computer in ''Manual'' mode started the reader, reset the program counter (in the MARS core memory) to zero, read one card into the reader's buffer and checked the card for errors, and simulated the execution of a Read Numeric from Card Reader to address zero (reading the 80 characters of the reader's buffer into memory addresses 00000 to 00079), then switched the computer into ''Automatic'' mode (starting execution at the address in the program counter). * Stop reader β Pressing this key with the reader active, stopped the reader. * Start reader β Pressing this key with the reader idle and on, started the reader and read one card into the reader's buffer and checked the card for errors. The computer could now read cards. Reader Rocker switches: * Non-Process Runout β This rocker with the read hopper empty, "ranout" remaining cards from the reader mechanism. * Reader Off/Reader On β This rocker turned the reader mechanism off or on. {| class="wikitable" |- !Bootstrap procedure !Notes |- |Press ''Load'' | |} ===Disk drives=== [[File:BRL64-IBM 1311 DiskDrives.jpg|thumb|IBM 1311 Disk Drives{{snd}} Model 2 (Slave) & Model 3 (Master), attached to an IBM 1620 II]] The [[IBM 1311|1311]] Disk drive controls. * Module light β This light shows the drive number. When it lights the drive is ready for access. * Compare-Disable key-switch β When this (Master only) switch is in the ON position and the Write Address button is pressed a full track write may be performed without comparing addresses. Used to format disk packs. * Select Lock light β When this (Master only) lights one or more of the drives has malfunctioned. No disk access can be performed. * Write Address button/light β This (Master only) key controls writing sector addresses. Pressing it toggles this enable and turns its light on/off. * Enable-Disable toggle-switch β This switch enables or disables access to the drive. If this switch is disabled on the Master, all drives are disabled regardless of the state of their own switches. Also controls the disk usage time meter(s). * Start Stop button β Pressing this key starts or stops the disk drive motor. The motor must be stopped to open the lid and change disk packs. {| class="wikitable" |- !Bootstrap procedure !Notes |- |Press ''Insert'' |Unlocks typewriter keyboard and shifts into numeric mode. |- |Type 3400032007013600032007024902402<br/>x<br/>y1963611300102 |x{{snd}} Specifies source of Monitor control cards: 1=typewriter, 3=paper tape, 5=cards<br/>y{{snd}} Specifies disk drive on which Monitor resides: 1, 3, 5, 7<br/>02402 is the address of the entry point of the Monitor program. |- |Press ''Release'' |Locks typewriter keyboard. |- |Press ''Start'' |Begin execution. |} {| class="wikitable" |- !Restart procedure !Notes |- |Press ''Insert'' |Unlocks typewriter keyboard and shifts into numeric mode. |- |Type 490225<sup>FLG</sup>6<br/> |02256Μ is the address of the location containing the address of the restart point of the Monitor program.<br/>Note: this procedure assumes the Monitor is already loaded in memory |- |Press ''Release'' |Locks typewriter keyboard. |- |Press ''Start'' |Begin execution. |} ===General=== The FORTRAN II compiler and SPS assembler were somewhat cumbersome to use<ref>{{cite book |url=http://www.bitsavers.org/pdf/ibm/1620/C26-5619-1_fortran.pdf |series=IBM Systems Reference Library |title=1620 FORTRAN (with FORMAT) |pages=51β56 |archive-url=https://web.archive.org/web/20090109151231/http://www.bitsavers.org/pdf/ibm/1620/C26-5619-1_fortran.pdf |archive-date=2009-01-09 |url-status=live}}</ref><ref>{{cite book |url=http://www.bitsavers.org/pdf/ibm/1620/C26-5876-2_FORTRAN_II_Mar65.pdf |series=IBM Systems Reference Library |title=IBM 1620 FORTRAN II Programming System Reference Manual |pages=22β28 |archive-url=https://web.archive.org/web/20090109145636/http://www.bitsavers.org/pdf/ibm/1620/C26-5876-2_FORTRAN_II_Mar65.pdf |archive-date=2009-01-09 |url-status=live}}</ref> by modern standards, however, with repetition, the procedure soon became automatic and you no longer thought about the details involved. {| class="wikitable" |- !FORTRAN II compilation procedure !Notes |- |Set the Program Switches as follows: #''OFF'' (No Source listing) #''OFF'' (No Batch compilation) #''OFF'' (Source is entered from cards) #''OFF'' (Only used if 3 is ''ON'') |Pass I options |- |Set Overflow Check switch to Program and all others to Stop | |- |Press ''Reset'' | |- |Load blank cards (face down 12-edge first) into the Punch hopper then press ''Punch Start'' | |- |Load Pass I of the compiler (face down 9-edge first) into the Read hopper then press ''Load'' |Wait for Pass I to load and print on the typewriter "ENTER SOURCE PROGRAM, PRESS START" |- |Remove Pass I of the compiler from the Read stacker | |- |Load the program source deck (face down 9-edge first) into the Read hopper then press ''Start'' |Wait for Pass I to complete and print on the typewriter "TURN SW 1 ON FOR SYMBOL TABLE, PRESS START" |- |Turn Program Switch 1 ''OFF'' then press ''Start'' |If a symbol table listing is desired for debugging, turn Program Switch 1 ''ON'' instead. The symbol table listing will be printed on the typewriter.<br/>Wait for Pass I to print on the typewriter "END OF PASS 1" |- |Set the Program Switches as follows: #''OFF'' (No statement number/address listing) #''OFF'' (Not used) #''OFF'' (No trace for IF statements) #''OFF'' (No trace for arithmetic statements) |Pass II options |- |Set Overflow Check switch to Program and all others to Stop | |- |Press ''Reset'' | |- |Load blank cards (face down 12-edge first) into the Punch hopper then press ''Punch Start'' | |- |Load Pass II of the compiler (face down 9-edge first) into the Read hopper then press ''Load'' |Wait for Pass II to load |- |Remove Pass II of the compiler from the Read stacker | |- |Remove the intermediate output of Pass I from the Punch stacker, then load it (face down 9-edge first) into the Read hopper and press ''Reader Start'' then ''Start'' |Wait for Pass II to complete and print on the typewriter "SW 1 ON TO PUNCH SUBROUTINES, PRESS START" |- |Remove the intermediate output from the Reader stacker | |- |Turn Program Switch 1 ''ON'', load the Subroutine deck (face down 9-edge first) into the Read hopper, then press ''Reader Start'' then ''Start'' |Wait for Pass II to print on the typewriter "END OF PASS II" |- |Remove the Subroutine deck from the Reader stacker and the completed Object deck from the Punch stacker | |} GOTRAN was much simpler to use, as it directly produced an executable in memory. However it was not a complete FORTRAN implementation. To improve this various third-party FORTRAN compilers were developed. One of these was developed by Bob Richardson,<ref>{{cite book |title=History of Computer Graphics: Dlr Associates Series |url=https://books.google.com/books?isbn=1456751158 |isbn=978-1456751159 |author=Dan Ryan |date=2011 |quote=developed by Bob Richardson, a programmer at Rice University}}</ref><ref>User:Br6cycles3, in his/first and only edit to date (24 Feb 2019, 18:15) attempted to change the name in the article from ''Bob Richardson'' to ''Mike McCants'' and wrote in the summary: "Correct misattribution: I'm Bob Richardson and I know the programmer was actually Mike McCants."</ref> a programmer at [[Rice University]], the FLAG (FORTRAN Load-and-Go) compiler. Once the FLAG deck had been loaded, all that was needed was to load the source deck to get directly to the output deck; FLAG stayed in memory, so it was immediately ready to accept the next source deck. This was particularly convenient for dealing with many small jobs. For instance, at [[Auckland University]] a batch job processor for student assignments (typically, many small programs not requiring much memory) chugged through a class lot rather faster than the later [[IBM 1130]] did with its disk-based system. The compiler remained in memory, and the student's program had its chance in the remaining memory to succeed or fail, though a bad failure might disrupt the resident compiler. Later, disk storage devices were introduced, removing the need for working storage on card decks. The various decks of cards constituting the compiler and loader no longer need be fetched from their cabinets but could be stored on disk and loaded under the control of a simple disk-based operating system: a lot of activity becomes less visible, but still goes on. Since the punch side of the card reader-punch did not edge-print the characters across the top of the cards, one had to take any output decks over to a [[unit record equipment|separate machine]], typically an [[IBM 557]] Alphabetic Interpreter, that read each card and printed its contents along the top. Listings were usually generated by punching a listing deck and using an [[IBM 407]] accounting machine to print the deck.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
IBM 1620
(section)
Add topic