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
LINC
(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!
==Architecture== The LINC has 2048 12-bit words of memory in two sections.<ref name=NIH/> Only the first 1024 words were usable for program execution. The second section of memory could only be used for data. Programs can use a 12-bit accumulator and a one-bit link register. The first sixteen locations in program memory have special functions. Location 0 supports the single-level of subroutine call, automatically being updated with a return address on every jump instruction. The next fifteen locations can be used as index registers by one of the addressing modes. A programmable, six-bit relay register is intended for use by external instruments.<ref>{{cite book|url=https://bitsavers.org/pdf/washingtonUniversity/linc/Programming_the_LINC_Second_Edition_Jan69.pdf|author1=Mary Allen Wilkes|author2=Wesley A. Clarke|title=Programming the LINC Second Edition|publisher=Computer Systems Laboratory, Washington University|year=1969}}</ref> A later modification to the LINC added a 12-bit Z register to facilitate extended precision arithmetic, and an interrupt was provided forcing execution to location 21 (octal). Alphanumeric input/output devices included a dedicated keyboard, and the ability to display text on the attached point-addressed CRT. A teleprinter could be connected for printed output. Arithmetic was [[ones' complement]], which meant that there were representations for "plus zero" and "minus zero". The original LINC required 8 microseconds for each instruction. ===Instruction set=== The natural notation used for the LINC was [[octal]]. In this section, all numbers are given as [[base ten]] unless identified as octal. The LINC instruction set was designed for ease of use with scientific instruments or custom experimental apparatus.<ref>{{cite web |title=The LINC: An Early "Personal Computer" |work=DrDobbs.com |url=https://www.drdobbs.com/the-linc-an-early-personal-computer/184404067}}</ref> * Miscellaneous class, no address - Halt, clear accumulator, enable tape mark write gate, transfer accumulator to relay register, read relay register to accumulator, no operation, complement accumulator * Shift class, no address (all operate on the accumulator and optionally the link bit) - rotate left, rotate right, scale right (replicates sign bit), * Full address class, two word instructions. immediate address given in second 12-bit word of the opcode - add, store and clear accumulator, jump. Only the first 1024 words of memory can be accessed. * Skip class, skips the next instruction, can test for set or clear condition. Conditions are: external logic line (14 input lines could be tested), key struck, one of five sense switches, accumulator positive, link bit zero, or active tape unit in an interblock zone. Later models added skip on bit 0 of the Z register, skip on overflow, and skip on interrupt paused. * Index class - these instructions could either have a second word that was the immediate operand, or that specified the operand address, or that specified one of the registers 01 through 15 (decimal) as holding the address of the operand. The address was incremented. These instructions included load or add to accumulator, add accumulator to memory, add accumulator with carry to memory, multiply (producing a 22 bit signed product), skip if equal, skip and rotate, bit clear, bit set, and bit complement. Another instruction in this group was to display a bit map, to represent a character or other data, on the built-in CRT display screen. * Half-word class - instructions operating on the lower or upper six bits of a word. These included load half, store half, skip if halves are different, * Set - moves data from any memory location to one of the locations 1 through 15. * Sample - reads one of the sixteen 8-bit analog to digital converters and places the signed value in the accumulator. The first eight A/D channels were dedicated to control panel knobs to allow interaction with a running program by the user. The instruction could either hold the computer till a conversion result was ready, or allow more instructions to be executed provided they didn't rely on the contents of the accumulator, which would be overwritten by the A/D conversion value. * Display - draws a pixel on one of the CRT displays at a specified location, optionally indexing a register. * Index and skip - adds one to one of the memory locations 1 through 15, and skips if a 10-bit overflow occurs. * Operate class, used for input/output operations. These included set a bit on one of 14 output lines, read the keyboard, or read the left or right switch bank. * Tape class, with opcodes to position the tape, read or write to the tape, and to check the tape against memory.
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)