Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
IBM 650
(section)
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!
==Instruction set== The 650 [[Instruction set|instructions]] consisted of a two-digit [[Opcode|operation code]], a four-digit data address and the four-digit address of the next instruction. The sign was ignored on the basic machine, but was used on machines with optional features. The base machine had 44 operation codes. Additional operation codes were provided for options, such as floating point, core storage, index registers and additional I/O devices. With all options installed, there were 97 operation codes.<ref name=CPU-ext>[http://www.bitsavers.org/pdf/ibm/650/24-5003-0_CPU_Extensions.pdf IBM 650 CPU Extensions]</ref> The Table lookup (TLU) instruction could high-equal compare a referenced 10-digit word with 48 consecutive words on the same drum band in one 5ms revolution and then switch to the next band in time for the next 48 words. This feat was about one-third the speed of a one-thousand times faster binary machine in 1963 (1,500 microseconds on the IBM 7040 to 5,000 microseconds on the 650) for looking up 46 entries as long as both were programmed in assembler. There was an optional Table lookup Equal instruction, with the same performance. The Read (RD) instruction read an 80-column card of numeric data into ten memory words; the distribution of digits to words determined by the card reader's [[Plugboard#Unit record equipment|control panel wiring]]. When used with the 533 Reader Punch unit's Alphabetic device, a combination of numeric and [[alphanumeric]] columns (maximum of 30 alphanumeric columns) could be read.<ref name="650-manual-of-operation"/> An expansion feature allowed more alphanumeric columns but certainly not over 50, as only ten words (five characters per word) were stored on the drum by a card read operation.{{Citation needed|date=October 2020}}<!-- I've no source for the expansion feature so can't really integrate with the other text.--> [[File:IBM 650 with front open.jpg|thumb|IBM 650 at Texas A&M, opened up to show rear of front panel, vacuum tube modules and storage drum]] [[File:RoehreIBM 090325.jpg|thumb|upright=0.6|Vacuum tube circuit module of type used in the 650]] [[File:BronxScienceProgrammingClassroom1960.jpg|thumb|A classroom in 1960 at the [[Bronx High School of Science]] with IBM 650 instruction chart above blackboard, upper right]] The base machine operation codes were:<ref>{{cite book|url=http://www.bitsavers.org/pdf/ibm/650/24-5002-0_BasicOpcodes.pdf|title=IBM 650 System Bulletin, Basic Operation Codes, Program Optimizing, Program Loading|year=1958|publisher=IBM}}</ref> {| class="wikitable" |- |17 |AABL |Add absolute to lower accumulator |- |15 |AL |Add to lower accumulator |- |10 |AU |Add to upper accumulator |- |45 |BRNZ |Branch on accumulator non-zero |- |46 |BRMIN |Branch on minus accumulator |- |44 |BRNZU |Branch on non-zero in upper accumulator |- |47 |BROV |Branch on overflow |- |90-99 |BRD |Branch on 8 in distributor positions 1-10{{efn|Used to allow 533 control panel to signal CPU.}} |- |14 |DIV |Divide |- |64 |DIVRU |Divide and reset upper accumulator |- |69 |LD |Load distributor |- |19 |MULT |Multiply |- |00 |NO-OP |No operation |- |71 |PCH |Punch a card |- |70 |RD |Read a card |- |67 |RAABL |Reset accumulator and add absolute to lower accumulator |- |65 |RAL |Reset accumulator and add to lower accumulator |- |60 |RAU |Reset accumulator and add to upper accumulator |- |68 |RSABL |Reset accumulator and subtract absolute from lower accumulator |- |66 |RSL |Reset accumulator and subtract from lower accumulator |- |61 |RSU |Reset accumulator and subtract from upper accumulator |- |35 |SLT |Shift accumulator left |- |36 |SCT |Shift accumulator left and count{{efn|Counts high-order zeros in upper accumulator.}} |- |30 |SRT |Shift accumulator right |- |31 |SRD |Shift accumulator right and round accumulator |- |01 |STOP |Stop if console switch is set to stop, otherwise continue as a NO-OP |- |24 |STD |Store distributor into memory |- |22 |STDA |Store lower accumulator data address into distributor Then store distributor into memory |- |23 |STIA |Store lower accumulator instruction address into distributor Then store distributor into memory |- |20 |STL |Store lower accumulator into memory |- |21 |STU |Store upper accumulator into memory.{{efn|Value stored takes sign of accumulator, except after a divide operation; then sign of remainder is stored.}} |- |18 |SABL |Subtract absolute from lower accumulator |- |16 |SL |Subtract from lower accumulator |- |11 |SU |Subtract from upper accumulator |- |84 |TLU |Table lookup |} {{notelist}} Notes: The IBM 653 options could implement additional instruction codes.<ref name=CPU-ext/>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)