GEC 2050
Encyclopedia
The GEC 2050 was an 8-bit
8-bit
The first widely adopted 8-bit microprocessor was the Intel 8080, being used in many hobbyist computers of the late 1970s and early 1980s, often running the CP/M operating system. The Zilog Z80 and the Motorola 6800 were also used in similar computers...

 minicomputer
Minicomputer
A minicomputer is a class of multi-user computers that lies in the middle range of the computing spectrum, in between the largest multi-user systems and the smallest single-user systems...

 produced during the 1970s, initially by Marconi Elliott Computer Systems of the UK
United Kingdom
The United Kingdom of Great Britain and Northern IrelandIn the United Kingdom and Dependencies, other languages have been officially recognised as legitimate autochthonous languages under the European Charter for Regional or Minority Languages...

, before the company renamed itself GEC Computers Limited
GEC Computers
GEC Computers Limited was the computer manufacturing company under the GEC holding company.-History:Starting life as Elliott Automation, the data processing computer products were transferred to ICT/ICL and non-computing products to English Electric as part of a reorganisation of the parent company...

. The first models were labeled MECS 2050, before being renamed GEC 2050.

The GEC 2050 was commonly used as a Remote Job Entry
Remote Job Entry
Remote job entry is the term used to describe the process of sending jobs to Mainframe computers from remote workstations, and by extension the process of receiving output from mainframe jobs at a remote workstation....

 station, supporting a punched card
Punched card
A punched card, punch card, IBM card, or Hollerith card is a piece of stiff paper that contains digital information represented by the presence or absence of holes in predefined positions...

 reader, line printer
Line printer
The line printer is a form of high speed impact printer in which one line of type is printed at a time. They are mostly associated with the early days of computing, but the technology is still in use...

, system console
System console
The system console, root console or simply console is the text entry and display device for system administration messages, particularly those from the BIOS or boot loader, the kernel, from the init system and from the system logger...

, and a data link
Data link
In telecommunication a data link is the means of connecting one location to another for the purpose of transmitting and receiving information. It can also refer to a set of electronics assemblies, consisting of a transmitter and a receiver and the interconnecting data telecommunication circuit...

 to a remote mainframe computer
Mainframe computer
Mainframes are powerful computers used primarily by corporate and governmental organizations for critical applications, bulk data processing such as census, industry and consumer statistics, enterprise resource planning, and financial transaction processing.The term originally referred to the...

 system, and GEC Computers sold a complete RJE package including the system, peripherals, and RJE software. Another turnkey
Turnkey
A turn-key or a turn-key project is a type of project that is constructed by a developer and sold or turned over to a buyer in a ready-to-use condition.-Common usage:...

 application was a ticketing system, whose customers included Arsenal Football Club. The system was also commonly used for road traffic control and industrial process automation.

The GEC 2050 supported up to 64KiB of magnetic core memory
Magnetic core memory
Magnetic-core memory was the predominant form of random-access computer memory for 20 years . It uses tiny magnetic toroids , the cores, through which wires are threaded to write and read information. Each core represents one bit of information...

 in 4KiB, 8KiB and 16KiB modules. The system had a single Channel Controller
Channel I/O
In computer science, channel I/O is a generic term that refers to a high-performance input/output architecture that is implemented in various forms on a number of computer architectures, especially on mainframe computers...

 for performing autonomous I/O
I/O
I/O may refer to:* Input/output, a system of communication for information processing systems* Input-output model, an economic model of flow prediction between sectors...

, and used the same peripheral I/O controllers as the GEC 4000 series
GEC 4000 series
The GEC 4000 was a series of 16/32-bit minicomputers produced by GEC Computers Ltd. of the UK during the 1970s, 1980s and early 1990s.- History :...

 minicomputer.

Instruction set

Although CISC
Complex instruction set computer
A complex instruction set computer , is a computer where single instructions can execute several low-level operations and/or are capable of multi-step operations or addressing modes within single instructions...

, the instruction set
Instruction set
An instruction set, or instruction set architecture , is the part of the computer architecture related to programming, including the native data types, instructions, registers, addressing modes, memory architecture, interrupt and exception handling, and external I/O...

 is sufficiently simple to be tabulated in its entirety:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0 PREP G,v PREP X1,v PREP X2,v PREP X3,v IN G,v IN X1,v IN X2,v IN X3,v OUT G,v OUT X1,v OUT X2,v OUT X3,v
1 LD X1,G,v LD X1,X1,v LD X1,X2,v LD X1,X3,v ST X1,G,v ST X1,X1,v ST X1,X2,v ST X1,X3,v AD X1,G,v AD X1,X1,v AD X1,X2,v AD X1,X3,v CP X1,G,v CP X1,X1,v CP X1,X2,v CP X1,X3,v
2 LD X2,G,v LD X2,X1,v LD X2,X2,v LD X2,X3,v ST X2,G,v ST X2,X1,v ST X2,X2,v ST X2,X3,v AD X2,G,v AD X2,X1,v AD X2,X2,v AD X2,X3,v CP X2,G,v CP X2,X1,v CP X2,X2,v CP X2,X3,v
3 LD X3,G,v LD X3,X1,v LD X3,X2,v LD X3,X3,v ST X3,G,v ST X3,X1,v ST X3,X2,v ST X3,X3,v AD X3,G,v AD X3,X1,v AD X3,X2,v AD X3,X3,v CP X3,G,v CP X3,X1,v CP X3,X2,v CP X3,X3,v
4 LD A,G,v LD A,X1,v LD A,X2,v LD A,X3,v ST A,G,v ST A,X1,v ST A,X2,v ST A,X3,v AD A,G,v AD A,X1,v AD A,X2,v AD A,X3,v CP A,G,v CP A,X1,v CP A,X2,v CP A,X3,v
5 AND A,G,v AND A,X1,v AND A,X2,v AND A,X3,v XOR A,G,v XOR A,X1,v XOR A,X2,v XOR A,X3,v LCP A,G,v LCP A,X1,v LCP A,X2,v LCP A,X3,v SB A,G,v SB A,X1,v SB A,X2,v SB A,X3,v
6 JI G,v JI X1,v JI X2,v JI X3,v JIL G,v JIL X1,v JIL X2,v JIL X3,v CLRS G,v CLRS X1,v CLRS X2,v CLRS X3,v DECS G,v DECS X1,v DECS X2,v DECS X3,v
7
8 SL SR SLB SRB NOOP TERM DIV MULT SETL 1 SETL 2 SETL 3 SETL 4 CLA NEGA COMA TSTA
9 J J JL JL JN JN JNN JNN JZ JZ JNZ JNZ JCA JCA JNCA JNCA
A SNCE SNPI SNSK SNPF SNXT SNTF
B HALT INH PERM PINT TIME CLSG STSG
C LD P,X1 LD P,X2 LD IP,X1 LD IP,X2 ST P,X1 ST P,X2 ST IP,X1 ST IP,X2 AD P,X1 AD P,X2 AD IP,X1 AD IP,X2 CP P,X1 CP P,X2 CP IP,X1 CP IP,X2
D AND P,X1 AND P,X2 AND IP,X1 AND IP,X2 XOR P,X1 XOR P,X2 XOR IP,X1 XOR IP,X2 LCP P,X1 LCP P,X2 LCP IP,X1 LCP IP,X2 SB P,X1 SB P,X2 SB IP,X1 SB IP,X2
E LDR X1,AL LDR AL,X1 LDR X2,AL LDR AL,X2 LDR AM,AL LDR AL,AM LDR X2,S LDR S,X2 LDR X2,X3 LDR X3,X2 LDR X2,C LDR C,X2 LDR X1,X2 LDR X2,X1 LDR X1,AM LDR AM,X1
F ADR S,X1 ADR X1,AL ADR X2,AL ADR AL,X1 SBR AM,X1 SBR X1,AL SBR X2,AL SBR AL,X1 ADR X1,L ADR X2,L SBR X1,L SBR X2,L CPR AL,AM CPR AL,X1 CPR AL,X2 CPR X1,X2


Using the opcode 29 as an illustration, the assembler code (AD X2,X1,offset) causes the contents of the memory location 'offset(X1)' to be added to register X2. Thus, register X1 is being used as the index register, and the offset, v, is specified in the second byte of the instruction. G is a dummy index register whose value is alway zero, and hence causes the offsets to be treated as absolute addresses in the zeroth (global) segment. (Incidentally, since X3 is the standard index register, the assembler program allows ',X3,address' to be abbreviated to ',address'.)

The conditional jump instructions are listed in pairs, the former opcode is for a forward jump, and the latter one for a backward jump. Again, the offset of the jump is obtained from the second byte of the instruction. Thus, all instructions in rows 0 to 7 and row 9 consist of two bytes (the opcode and a data byte) while all the other instructions consist of just a single opcode byte.

The main accumulator
Accumulator (computing)
In a computer's central processing unit , an accumulator is a register in which intermediate arithmetic and logic results are stored. Without a register like an accumulator, it would be necessary to write the result of each calculation to main memory, perhaps only to be read right back again for...

 register, A, can be set to be 1, 2, 3 or 4 bytes in length, using the SETL instructions. This controls how many bytes are loaded (or stored) in a memory-access instruction. The JIL instruction performs a Jump Indirect, like the JI instruction, but saves the value in the program counter
Program counter
The program counter , commonly called the instruction pointer in Intel x86 microprocessors, and sometimes called the instruction address register, or just part of the instruction sequencer in some computers, is a processor register that indicates where the computer is in its instruction sequence...

, S, into the link register, L. This allows very simple non-recursive subroutine calls to be achieved. More complex subroutine calls involve the use of the PREP instruction, which saves the return information in the first bytes of the current memory segment. Such calls, too, cannot be recursive.

User experience

This section describes a work session on this computer, at one typical installation in 1975. The programmer
Programmer
A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...

 might arrive, to work on a Fortran
Fortran
Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing...

-II program that he had already started writing in the previous session, carrying a teleprinter
Teleprinter
A teleprinter is a electromechanical typewriter that can be used to communicate typed messages from point to point and point to multipoint over a variety of communication channels that range from a simple electrical connection, such as a pair of wires, to the use of radio and microwave as the...

 paper listing of that program that has been annotated with the new changes that are to be made, and the punch tape that contains the machine-readable source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...

 of the program. He would first need to turn on the computer at the switch on the conventional mains socket on the wall, and then at the front-panel on/off switch. Since the magnetic core memory
Magnetic core memory
Magnetic-core memory was the predominant form of random-access computer memory for 20 years . It uses tiny magnetic toroids , the cores, through which wires are threaded to write and read information. Each core represents one bit of information...

, which is non-volatile memory
Non-volatile memory
Non-volatile memory, nonvolatile memory, NVM or non-volatile storage, in the most basic sense, is computer memory that can retain the stored information even when not powered. Examples of non-volatile memory include read-only memory, flash memory, ferroelectric RAM, most types of magnetic computer...

, would generally still contain the previous user's program, might need to load the punched tape called Minisystem (containing the object code of a small, memory monitor program). This tape, which was stored in a small cardboard box on a shelf near the computer, would be entered from the left of the tape-reader. The tape-reader was an integral part of the front panel of the computer, and would spill out the tape that it had read, on to the floor, on the right-hand side. Once read, the Minisystem could be started by flicking the Run switch on the front panel.


COMMAND
>L

L 049A
A 0522
D 063E
LINK 0691
EDIT 1090
MAIN 155E
28A2 3FFF

>


The text editor
Text editor
A text editor is a type of program used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....

 program, EDIT, could then be called from the teleprinter keyboard, at the Minisystem's '>' prompt. The programmer would then load the source tape into the reader, and while this, too, was being read in, and spilled out all over the floor, the programmer could be busy winding up the Minisystem tape, into a tidy reel again, using a hand-turned winch.

Eventually, once the source tape had finished being read, the text editor program would prompt for a new command, which was the invitation to edit the program. Though having changed little in effect over the decades, editing has changed enormously in feeling: only one line of the program was 'displayed' at a time (physically printing it out on the paper); inserted text was printed below the point in the line where it was being inserted, and the rubout key merely crossed-out the text that was to be deleted; the string-find and string-substitute facilities were very rudimentary; and the teleprinter worked at 110 baud
Baud
In telecommunications and electronics, baud is synonymous to symbols per second or pulses per second. It is the unit of symbol rate, also known as baud rate or modulation rate; the number of distinct symbol changes made to the transmission medium per second in a digitally modulated signal or a...

 (making an enormous clunking and whirring racket as it did so).

At the end of the edit session, the new version of the source program would be output: both as a typed listing, and as a new punched tape. Whilst the paper-tape punch was doing this, again spilling out its product (albeit not so fast as the reader, and off to the left of the machine) from its front panel mounting, the programmer could be winding up the old version of the source tape, for it to be kept as a backup version. The free end of the new tape, which was still being punched out, could be labelled in pencil with its program name, version number, and date of punching.

Unfortunately, with only 16 KiBytes of core store, the Minisystem and Fortran compiler
Compiler
A compiler is a computer program that transforms source code written in a programming language into another computer language...

 would not both fit in memory together, so the next stage would be to load the Fortran compiler tape (which was stored in another cardboard box on the shelf in the computer room). Whilst this was being read in, and spilling out the other side, the newly punched source tape could be torn off from the free end that was protruding out of the punch, and wound up using the hand winch. It would be loaded into the tape reader once the compiler had finished being read in, and the compiler tape would be wound back into a tidy reel.

The first pass of the source tape through the tape reader was generally used just for checking for syntax error
Syntax error
In computer science, a syntax error refers to an error in the syntax of a sequence of characters or tokens that is intended to be written in a particular programming language....

s in the program, so the generation of the object tape
Object code
Object code, or sometimes object module, is what a computer compiler produces. In a general sense object code is a sequence of statements in a computer language, usually a machine code language....

 from the tape punch would be suppressed. If any errors or warnings were detected, it would be necessary to load the Minisystem tape again, and to run the editor program to make the corrections, and to generate a new version of the source tape. Otherwise, the source tape could be wound up again, and loaded back into the tape reader for a second pass. This time, it would be read in, haltingly, whilst the paper tape punch worked flat-out to produce the corresponding object tape (usually two or three times longer in length than the Fortran source tape).

At the end, with two tapes all over the floor, the Minisystem would have to be read once again, whilst the object and source tapes were being wound up. The linking-loader program, LINK, could then be called from the keyboard, at the Minisystem's prompt, and the object tape fed through the reader. The linking-loader also required the library tape, containing the Fortran library functions, to be loaded into the reader. Both tapes would eventually need to be wound up, but this tended not to be done immediately, because of the programmer's eagerness at finally being in a position to run the program. The user's program (called MAIN) could be called at the Minisystem's prompt.

Depending on what happened during the program execution, the programmer might need to read the newest source tape back in to the editor program, yet again, ready to go round the software development cycle once more.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK