Technical note TN-2016/00026 Issued: 03/2016 The NatLab computer center WAA, 1967 – 1983 Some photos J.A. Zonneveld, photos, F.E.J. Kruseman Aretz, text Philips Restricted c Koninklijke Philips Electronics N.V. 2016 TN-2016/00026 Unclassified Concerns: Final Report Period of Work: 1967–1983 Authors’ address: J.A. Zonneveld F.E.J. Kruseman Aretz [email protected] c KONINKLIJKE PHILIPS ELECTRONICS N.V. 2016 All rights reserved. Reproduction or dissemination in whole or in part is prohibited without the prior written consent of the copyright holder. ii c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 Title: The NatLab computer center WAA, 1967 – 1983 Subtitle: Some photos Author(s): J.A. Zonneveld, photos, F.E.J. Kruseman Aretz, text Reviewer(s): Jan Korst, Verus Pronk Technical Note: TN-2016/00026 Project: None c Koninklijke Philips Electronics N.V. 2016 iii TN-2016/00026 Unclassified Keywords: history, NatLab, computer center, photos Abstract: This report contains a number of photos taken at the computer center of Philips Research Eindhoven. They show two of the main–frame computers that were used between 1967 and 1983: an Electrologica X8 and a Philips P1800. Some of the history and some elucidation is added. iv c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Electrologica X8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 Input devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.3 Output devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4 Operators command teleprinter . . . . . . . . . . . . . . . . . . . . . . . . . . 17 2.5 The technicians console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.6 Magnetic–drum store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 The P1800 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2 The operators console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.3 Hardware impression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3 c Koninklijke Philips Electronics N.V. 2016 v Unclassified 1 TN-2016/00026 Introduction From 1967 onwards Philips Research Eindhoven had a small computer center in building WAA for scientific computation, headed by J.A.Zonneveld. The scientists were expected to write and punch their own programs. They had to bring them to the service desk of the computer center and could collect the result at some later point of time. Programs could be delivered on paper tape or, when the computer got a punch–card reader, also on a punch–card deck. For punching on paper tape a number of Friden Flexowriters was available and at a later stage for punching on punch cards also some card-punch equipment. Between 1967 and 1981 the computer center had the following computers: computer period operating system EL X8–16 11–1967/11–1975 MICRO, MILLI EL X8–20 09–1969/03–1977 MILLI Philips P1400 04–1971/11–1981 MDS Philips P1800 12–1975/12–1983 MILLI, LEO languages ALGOL ALGOL ALGOL ALGOL price 60 2.5 Mfl 60 2.3 Mfl 60, FORTRAN 7 Mfl 60 9 Mfl Moreover the computer center had access to the computers of ISA, the computing center of Philips, by means of a remote job entry station (RJE). The ALGOL 60 implementation for the Electrologica X8 was developed at the Mathematical Center (now named CWI) at Amsterdam. It was simple to use, also for non–experts: it was a load–and–go system and had no object modules, no linkage editor, a thorough syntax check, and in case of a run– time error a clear reference to the place and kind of the error. The operating system MICRO was also written at the Mathematical Center. It was a pure batch system, directed to process ALGOL 60 job after ALGOL 60 job. MILLI was written partly at the Mathematical Center, but completed at Philips Research. It was a four–batch system processing four batches of ALGOL 60 jobs in parallel [KA2]. The P1400 was the top model of the Philips–Electrologica P1000 series of main frames. Its operating system MDS, developed by Philips–Electrologica, was a time–sharing system. Users had a file system and could have a teletype at their own room for input and output. Also some (awful) display terminal became available. The ALGOL 60 system delivered with the hardware did not meet our requirements. Therefore a new ALGOL 60 implementation was developed at the laboratory by F.E.J. Kruseman Aretz. It was fully compatible with the EL X8 implementation, it even used the same error messages. It was taken over by some other Philips Research laboratories, e.g. in Brussels and in Hamburg. The computer center did not support programming in FORTRAN. The P1800, earlier called P2000-epsilon, was designed as the top model of a P2000 main–frame series that never was brought to market. Philips–Electrologica approached the laboratory to ask whether the laboratory would purchase it, and the laboratory accepted it provided that a second processor should be added and the compatibility with the P1000 series should be increased. Per processor it was about 3 times faster than the EL X8. We decided to develop our own time–sharing system for it, again running exclusively ALGOL 60 jobs. Main architects were H.C. de Ruyter van Steveninck and F.E.J. Kruseman Aretz. The development took much more time than expected. In 1976 it was therefore decided to build a MILLI copy with the already available parts and some additions written for the purpose. This was done by de Ruyter van Steveninck [dRvSKA]. Thank to the compatibility c Koninklijke Philips Electronics N.V. 2016 1 TN-2016/00026 Unclassified between de P1800 and the P1400 the ALGOL 60 implementation for the P1400 could be reused for the P1800, although some adaptations were necessary to avoid register–register transports which were fast in the P1400 and extremely slow in the P1800. The time–sharing system LEO came into operation November 1979 and was in use until December 1983 [KAea]. It had 29 display terminals divided over several buildings and a file system on 4 disk packs of 60 Mbyte each. The ALGOL 60 system had to be extended to accommodate file access and display operations. Most photos in this document are taken by Zonneveld. As far as we know they are available nowhere else and as such it is a historical monument of the laboratory. A number of photos of the P1800 were received from W. Costongs. 2 c Koninklijke Philips Electronics N.V. 2016 Unclassified 2 TN-2016/00026 Electrologica X8 Electrologica was founded in 1956 with capital from the Dutch insurance company Nillmy and the know-how from the Mathematical Center in Amsterdam. It delivered its first computer, an Electrologica X1, in 1958. That was fully transistorized, had a core store in units of 4K words (cycle time 32 µsec), one index register and an interrupt system for input/output. The Electrologica X8 (1965) was the successor of the Electrologica X1. It was more or less upwards compatible with the latter one, but was extended with new instructions and instruction variants directed to the implementation of ALGOL 60. We mention here: floating–point instructions for addition, subtraction, multiplication, and division, ’execute’ instructions, to be used inside procedures for actual–parameter access, stacking variants for most instructions, the fact that all registers could be used as index register, and two–level addressing for the implementation of ALGOL 60’s block structure. In principle the EL X8 was a factor of 12 faster than the EL X1, but the ALGOL 60 implementation on the X8 ran about 60 times faster than that on the EL X1 thank to the above mentioned extensions [KA1]. The word length was 27 bits and applied to the registers A, S, and B. Register B functioned as stack pointer in the stacking variants of instructions. Floating–point register F had 54 bits, 40 bits for the mantissa, 1 bit for its sign, 1 bit usually a copy of the sign bit, and 12 bits for the binary exponent. The floating point representation was that of Grau, i.e. with integer mantissa. Consequently integer values were a true subset of the floating–point numbers, facilitating the implementation of the mixed– mode arithmetic expressions of ALGOL 60. Number representation was in one’s complement. Hence the integer capacity was from 67 108 863 to +67 108 863, while the floating-point range ran from 1.777 ⇥ 10628 until +1.777 ⇥ 10626 with an accuracy of about 13 decimal digits. The smallest values di↵erent from 0 were ±0.619 ⇥ 10 616 . Integer values up to 1 099 511 627 775 could be represented exactly by floating–point numbers. Floating–point operations delivered a floating–point value that was as close to the exact result as was possible. Instruction times varied from 2.5 µsec until 68.75 µsec. During the execution of ALGOL 60 programs the average instruction times varied from 4.5 µsec for non–numerical programs to 10 µsec for heavy computations. Storage consisted of core store in units of 16 K words, comparable to 64 Kbyte. Cycle time was 2.5 µsec read/rewrite. A magnetic drum store contained 512 tracks of 1024 words, revolution time 40 msec. In addition to the central processor the EL X8 contained an i/o processor called Charon, to which the central processor could give input/output commands which then were executed independently and in parallel with the computations on the central processor. Completion of a Charon command led to an interrupt in the central machine. In 1965 Philips Computer Industry took a 40% share in Electrologica and in 1966 it took over Electrologica completely. It then changed its name into Philips–Electrologica. c Koninklijke Philips Electronics N.V. 2016 3 TN-2016/00026 2.1 Unclassified Overview Computer room with Electrologica X8 The computer center got its first X8 in 1966. A second X8 was installed in 1969. They were exclusively used to execute computations for scientists. The only programming language available was ALGOL 60. From 1970 the operating system was MILLI, in which four streams of programs were executed in parallel [KA2]. One of these streams was a ”ready while you wait” stream for programs with small demands: maximally 30 millihour (10,8 sec) computing time and maximally 15 pages line–printer output. Programs and their input data were brought to the service desk of the computer center, the results were delivered in a kind of post–cabinet. Input devices were: a punch–card reader and two paper–tape readers. Output devices were: a line printer, a punch–card punch, a paper–tape punch, and a plotter. Program and input data should all be punched on the same medium, either punch cards or paper tape. On the photo we see along the windows a line printer (with one of the operators) and the post–cabinet. In the back we can see two scientists waiting at the service desk for results and two punch–card readers (one for X8-16 and another for X8-20). In the corner is the operators command teleprinter, then follow the technicians console, a paper–tape roll-up device, a plotter, and a punch–card punch. Somewhere in the middle a paper–tape reader can be seen. 4 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 Computer room with Electrologica X8 From left to right we see: a punch–card reader, a cabinet with the magnetic–drum store, a table with a paper–tape reader, a table with the operators command teleprinter, a row of cabinets containing the central processor, the i/o processor and core store, a paper–tape punch, the technicians console, and a paper–tape roll–up device. c Koninklijke Philips Electronics N.V. 2016 5 TN-2016/00026 Unclassified Computer room with 2 Electrologica X8’s and a Philips P1400 Here we see clearly along the wall from left to right the cabinets of the EL X8–16 and the EL X8–20. In the back–ground the Philips P1400. The central processor of the X8 was housed in 5 cabinets, whereof 2 for the floating–point implementation. The input/output processor Charon was housed in a 6th cabinet. Each unit of 16K words of core store took also one cabinet. In the left corner we see a part of the service desk with a small punch–card deck. On the table in the middle we see several jobs with some of their output. 6 c Koninklijke Philips Electronics N.V. 2016 Unclassified 2.2 TN-2016/00026 Input devices Two punch–card readers The punch–card reader to the left was the one for the EL X8–16, jobs for the EL X8–20 were read by the other card reader. Jobs were separated from one another by one (or more) punch card(s) with a 7–9 punching in its first two columns. Jobs had also to be closed by such a card. These separation cards were red–coloured and added (and removed afterwards) by the operator. In the left corner we see part of the table of one of the paper–tape readers. We can see there a read light, showing that the reader is idle at the moment. Probably the read light was flashing, indicating that a read command was already given that could not yet be honoured. After inserting a new paper tape in the reader the operator could press the button to the right, where after the reading process started immediately. A flashing red light showed that the paper–tape reader ’stood with open mouth’. c Koninklijke Philips Electronics N.V. 2016 7 TN-2016/00026 Unclassified A punch–card reader and an operators command teleprinter From left to right the punch–card reader of the EL X8-20 and the operators command teleprinter for the EL X8–16. Behind the teleprinter stands the magnetic–drum store of the EL X8–16. The command teleprinter served three goals: – it informed the operator of the activity and the degree of occupation of each of the four job batches, – the operator could type a command to the system, e.g. to stop a job producing nonsensical output, and – it produced a complete account on paper tape of what was printed; the resulting tape was sent each day to the accounting department of the laboratory. 8 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 A paper–tape reader The paper–tape reader EL 1000 was developed by Electrologica. Its speed was 1000 punched characters per second, i.e. about 2.5 m per second. Nevertheless is could stop reading within 2.5 mm! The reading station is in the middle, the pull station is to the left of it, the brake station to the right. The punched characters of a job could be divided over several paper tapes. An example is to have the ALGOL 60 program separated from its input data. All the tapes belonging to one job could be read one after another. During or after reading the last tape of a job the operator had to type a letter P (for the first tape reader) or S (while using the second tape reader) on the command teleprinter, as a sign that the complete job was read. The tape reader could read tapes of three di↵erent widths: 5, 7, or 8 tracks. For Flexowriter code 8–track tape was the standard. c Koninklijke Philips Electronics N.V. 2016 9 TN-2016/00026 2.3 Unclassified Output devices A line printer, front view The Anelex line printer had 66 lines of 144 characters. Of these lines the 2 top lines were reserved for the operating system. The first line contained the date, the serial number of the job, a page number, and in operating system MILLI also the job–stream name (a, b, c, or d), the number of the box in the post cabinet in which the result of the job should be put, and the accounting number and name of the job owner, as given by the job–control line of the job. Next followed a blank line. The bottom 4 lines were reserved for transition to the next page. For the users remained 60 lines in between. The print cylinder had 64 di↵erent characters. It was non–standard and had to be ordered separately. It contained besides the 26 upper case letters, the 10 figures, the usual punctuation marks, the parentheses, the 4 arithmetical operators, 3 relational operators, and the apostrophes also some symbols that were in use in ALGOL 60: [, ], |, , ¬, _, ^, and 10 . Each line could be printed without paper transport. Hence one count print several characters upon one another. In this way the key words of ALGOL 60 could be underlined, one could build by printing over <, and 6= by printing | over =. The lower case letters were printed by the available upper case letters, an upper case letter by the upper case letter with a _ across it, such as A _. Pages were printed in portions of about 15 pages (depending on the number of characters on the pages). When the printer stopped printing it was always after completing the last page of a portion. The operator could then insert a number of blank pages by pressing the page–feed button in order to remove one or more portions from the printer at its back side. 10 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 A line printer, back view Here the printed output could be removed. The line printer was the only output device that was used by jobs in all the four job batches. In order not to mix line–printer output of di↵erent jobs the line–printer output of a job was bu↵ered on the magnetic drum, and only when a portion of about 15 pages was collected for a job it got permission to be printed. Successive printed portions could belong to di↵erent jobs. For that reason each printed page contained in its top line a so–called ’tear number’. All pages of a portion had the same tear number. An increment of the tear number indicated where the operator had to tear the string of pages because the next portion belonged to a di↵erent job. c Koninklijke Philips Electronics N.V. 2016 11 TN-2016/00026 Unclassified Two segments of the line–printer cylinder The diameter of these segments is 7.4 cm and they are 5.1 cm and 20 characters wide. The print cylinder rotated at high speed in front of the paper, separated from that by the ink ribbon. Behind the paper is a line of 144 hammers. Whenever the row of A’s on the print cylinder is opposite to the hammer line, the hammers at the places of the line where A’s should be printed are activated and press the paper plus the ink ribbon against the cylinder. 12 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 A program listing printed by the line printer On the top we see the heading, containing the date (November 21, 1969), the serial number (700), the job–batch letter (a), the box number (118), the accounting data (68044.052), the user name (krusemanaretz) and the page number (1). The tear number is not visible as its position is at the right end of the line. The first user line contains the job control. Next follows the program listing, each line preceded by the line number. The ALGOL 60 program was punched on paper tape in Flexowriter code and computes an approximation of ⇡ by extrapolating the perimeter of a series of regular polygons inside a circle with diameter 2. NLCR is short for new–line–carriage–return and causes transition to a new line–printer line. Procedure call ABSFIXT (n, m, x) prints the value of x as a fixt–point value with n digits before and m digits following the decimal point c Koninklijke Philips Electronics N.V. 2016 13 TN-2016/00026 Unclassified A punch–card punch Only jobs in one of the four job batches, the d–batch, was allowed to punch cards. If a job did so, its card output was preceded by a header card and followed by a trailer card. The header card contained, in readable form, the number of the box in the post–cabinet in which the results should be put, and the serial number of the job. For box number 65 and serial number 208 it looked like: 12345678901234567890123456789012345678901234567890123456789012345678901234567890 The trailer card contained a 12–9 punching in all its 80 columns. At the end of the card output of a job the state of the card punch changed from ’green’ to ’red’. In the red state no cards would be punched until the operator, after removal of the card output, pressed the green button. 14 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 A paper–tape punch The Facit tape punch could punch 150 characters per second. Again only jobs in the d–batch were allowed to have paper–tape output. Also here the output of the job itself was preceded by a header of 400 characters (about 1 m tape), containing the box number and the serial number in easily readable form. The output was concluded by a trailer of 200 characters. Both header and trailer were easy removable. Again we see near the left corner of the table the two buttons with in–built lights, the green and the red button. A glowing red–button light indicates that the punch is not ready to punch and no order to punch has been given by the processor. If the red–button light is flashing such an order has been given but the punch is not ready to punch. By pressing the green–light button the red light is switched o↵, the green light is switched on and the punch state changes to operable. At the end of the output of a job the processor changes the state of the punch to not–ready–to–punch, thus enabling the operator to tear o↵ the output before paper–tape output of another job can be punched. c Koninklijke Philips Electronics N.V. 2016 15 TN-2016/00026 Unclassified A plotter The Calcomp plotter could perform 300 steps of 0.1 mm per second in the x– or y–direction or, combined, in the x– and y–direction. Pen–up or –down took 0.1 sec. A nice set of ALGOL 60 procedures for use of the plotter of the EL X1 were developed at the Mathematical Center in Amsterdam by J.A.T.M. van Berckel and B.J. Mailloux in 1964 [vBM]. These procedures were designed and documented in ALGOL 60 and coded in a variant of EL X1 assembly language and incorporated in the library of procedures which could be called in an ALGOL 60 program without declaration and then were selected automatically from that library. At the Philips Research Laboratory only the two basic routines ’plot’ and ’plottext’ were coded in EL X8 assembly language, the other procedures were incorporated in a library of pre–compiled ALGOL 60 procedures that again could be called without declaration and were selectively added to the object code [KA3]. 16 c Koninklijke Philips Electronics N.V. 2016 Unclassified 2.4 TN-2016/00026 Operators command teleprinter The operators command teleprinter The operators command teleprinter was in fact a combination of two devices: an output device (the printer), by which the operating system sent messages to the operator, and an input device (the keyboard), by which the operator could give commands to the operating system. These two devices were completely independent from each other. The fact that all typing was echoed on the printer was implemented by the software. Commands were, among others, the ’P’ and ’S’ commands to mention that a job on paper tape was read completely, and the command ’K’, to ask for the time consumed and the time still resting for all the four jobs that could be in execution simultaneously. All output was also punched on paper tape. The resulting tape was daily sent to the accounting departement. c Koninklijke Philips Electronics N.V. 2016 17 TN-2016/00026 Unclassified Some output on the operators command teleprinter We reproduce a number of successive lines from the output: 1223 0 PRINTER 1229 0 1229 0 1230 0 1231 0 1232 0 1232 0 1233 0 1233 0 1233 0 1302 *1 1302 *1 1302 *1 1302 1 1302 0 1302 *1 1302 1 1303 0 1303 0 18 0 0 0 EMPTY 0 0*1 0 0*1 0 0 1 0 0*2 0 0*1 0 0*1 0 0 1 0 0*2 0 0 2 0 0 2 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 DK DK DK DK DK DK DK DK DK DK AK DK DK AK AK AK AK AK DK 072 22588.5496 0051 073 22588.5496 998 073 22588.5496 074 22588.5496 0040 997 074 22588.5496 075 22588.5496 0501 015 076 015 077 998 075 22588.5496 0023 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 meaning: Most lines start with the time, followed by the number of jobs in stock in each of the four program streams A, B, C, and D, including the one in execution and possibly one that is not yet read completely (indicated by an asterisk in front of the number). A number equal to 9 means 9 or more. Time and stock overview are followed by two letters, the first letter indicating for which program stream something changed, the second letter giving the input device by which the job was or is read, K denoting the punch–card reader, P denoting one of the two paper–tape readers. When a new job is taken in execution the line is concluded by a serial number and a user identification. When a job is completed the line is concluded by its serial number, the user identification and the execution time in milli–hours (a milli–hour = 3.6 sec). In case the execution was ended by an error an error number is given in between: 997 meaning time exhaustion, 998 reading beyond the end of input, and 15 an erroneous job–control line (all programs should start with a line indicating the desired job stream, the user identification, and, if relevant, some time or output limits). c Koninklijke Philips Electronics N.V. 2016 19 TN-2016/00026 2.5 Unclassified The technicians console The technicians console We see on the top a row of 27 lights, by which the contents of a register could be inspected. We see also three rows of switches. In the upper two rows addresses could be specified, a start address and a stop address. In the undermost row a 27 bit instruction could specified to be executed by pressing a button. Furthermore there were switches by which a stop at a certain instruction address could be enforced, and by which one instruction at a time could be executed. 20 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 Ad Dekkers working at the technicians console c Koninklijke Philips Electronics N.V. 2016 21 TN-2016/00026 2.6 Unclassified Magnetic–drum store A magnetic–drum store The magnetic–drum store contained 512 tracks of 1024 27–bit words each. The revolution time was 40 msec. It contained the complete system, to be loaded from drum when booting the software to core store. In MICRO 360 K of the 512 K words were used to bu↵er all in– and output. In MILLI only 267 was available for bu↵ering: 147 K for the 4 input streams, 100 K for the 4 line–printer streams, and 20 pages for the card–punch, paper–tape punch and the plotter output. More over 4 ⇥ 25 14 K was in use as swap area for the four programs in execution. Finely jobs in job batch ’d’ could use 80 K words of the drum to store temporarily contents of arrays in. 22 c Koninklijke Philips Electronics N.V. 2016 Unclassified 3 TN-2016/00026 The P1800 In 1963 Philips founded Philips Computer Industries (PCI), with a factory in Apeldoorn, to enter the world of computer production. In 1966 it took over Electrologica and changed the name to Philips–Electrologica. In 1976 followed anew a name change into Philips Data Systems (PDS). It started the development of an IBM 360–like family of main frames, consisting of three models: the P1100, the P1200, and top model P1400. These computers had an abundance of instructions: instructions for binary arithmetic, instructions for decimal arithmetic, instructions for single length floating–point arithmetic, instructions for double length floating–point arithmetic, bit instructions, byte instructions, half–word (i.e. two–byte) instructions, full–word instructions, and many more. The P1400 had also a set of 49 stack instructions, to be used in their ALGOL 60 implementation. Just as the IBM it had byte addressing and 16 4–byte registers. The 32-bits integer capacity ran from 2 147 483 648 until +2 147 483 647. A double–length floating–point number was represented with a sign bit and a hexadecimal exponent of 7 bits, stored in one byte. The mantissa counted 56 bits, stored in the other 7 bytes of an eight–byte unit. It was a true fraction with a value in the interval [0.0625 · · · 1) and not [0.5 · · · 1), due to the fact that the scaling factor was a power of 16. Hence the accuracy was in general not 56 but only 53 bits, roughly 16 decimal digits. The double–length floating–point numbers ran from 7.2 ⇥ 1075 until +7.2 ⇥ 1075 . The in absolute value smallest floating–point numbers di↵erent from zero were about ±5.4 ⇥ 10 79 . Integer values in absolute value up to 72 057 594 037 927 935 could be represented exactly by floating–point numbers. The P1800 was designed as the top model of a successor of the P1000 family, that, in view of the cooperation of Philips with Siemens and CII in Unidata, was never brought to market (after the disbandment of Unidata in 1975 Philips decided to terminate the production of main frames). The prototype of the P2000–epsilon was o↵ered to Philips Research. The laboratory was at that moment in search of an successor for its two EL X8’s and was willing to purchase it but had some desires: a dual processor, in order to obtain the necessary capacity, and more compatibility with the P1000 series. The name changed in P1800, and the machine was installed in December 1975. It missed the 49 stack instructions of the P1400, but fortunately the ALGOL 60 implementation developed at the laboratory didn’t use them at all. The processors had an instruction pipe–line: during the execution of an instruction the execution of one or more succeeding instructions could be prepared already; depending on the kind of instruction maybe operand addresses could be determined and, perhaps, an operand be retrieved. A switch connected the processors with the store and with the peripherals. The store consisted of two c Koninklijke Philips Electronics N.V. 2016 23 TN-2016/00026 Unclassified banks of solid–state store, one of 0.5 Mbyte with 1 µsec cycle time, the other of 2 Mbyte with 2 µsec cycle time. The two processors could access store simultameously when each was accessing a di↵erent bank. Mutual exclusion between the two processors was implemented by means of a test–and–set–bit instruction. Early experiments on the P1800 showed that the P1800 by far didn’t have the expected execution speed of ALGOL 60 programs. This appeared to be caused by the fact that the processor had no register–register data paths. Register–register transport was implemented by first storing all 16 registers in store and next loading the desired value from store. By two measures the problem was resolved. The microprogram for register transport was changed into only storing the source register in store. The ALGOL 60 implementation was changed so as to avoid the use of register transport where easily possible. In this way the promised speed per processor of a factor 3 times that of the EL X8 could be obtained. When looking for a successor for the EL X8’s it was also the intention to develop a simple time– sharing system for it. During a study tour in the USA we became acquainted with Concurrent Pascal and it was decided to develop a time–sharing system in that programming language. For remote access about 30 Ontel display terminals were ordered, whereas a Philips P857 was bought as terminal concentrator. Main architects for the software were H.C. de Ruyter van Steveninck and F.E.J. Kruseman Aretz. As a preliminary system a copy of the MILLI multi–batch system of the EL X8 was written in Concurrent Pascal by H.C. de Ruyter van Steveninck. It was used from 1976 until 1979, when it could be replaced by LEO. MILLI counted about 20 concurrent processes, whereas LEO had 166 concurrent processes of 27 distinct process types. MILLI was a 2500 lines of Concurrent Pascal long and LEO about 9600 lines. 24 c Koninklijke Philips Electronics N.V. 2016 Unclassified 3.1 TN-2016/00026 Overview Overview of the P1800 In the computer room we see: – in the foreground the Philips P1800, – in the back ground an Philips P1400, and – in between the Electrologica X8–20. Of the X8 we see along the wall the cabinets with processor and core store, the operators teleprinter, the technicians console, the magnetic–drum store, the punch–card reader, and the line printer. c Koninklijke Philips Electronics N.V. 2016 25 TN-2016/00026 Unclassified Overview of the P1800 from another viewpoint In the foreground we see the Facit paper–tape punch, the EL1000 paper–tape reader and the Calcomp plotter. Behind the paper–tape reader we find the operators console. Along the walls stand the cabinets with the two processors and the two banks of solid–state store. 26 c Koninklijke Philips Electronics N.V. 2016 Unclassified 3.2 TN-2016/00026 The operators console The P1800 operators console In the foreground the console for the operators (the typewriter) and moreover some aids and appliances for the technicians. Behind it we see the Calcomp plotter and two magnetic–tape units. To the right the EL1000 paper–tape reader and the row of 6 magnetic–disc units. c Koninklijke Philips Electronics N.V. 2016 27 TN-2016/00026 Unclassified The P1800 operators console with one of the operators Again one can see clearly the typewriter on which the systems activities are reported and the operator can type simple commands to the system. In contrast to the operators command teletype of the EL X8 there is no coupled tape punch. All messages for the typewriter and all operator commands were stored in an accounting file. At the end of the day the contents of the accounting file were punched on the paper–tape punch and sent to the administration. To the left of the typewriter we see a set of buttons. On of them is the manual interrupt key, by another key the system is booted. 28 c Koninklijke Philips Electronics N.V. 2016 Unclassified 3.3 TN-2016/00026 Hardware impression A cabinet with one of the processors This photo gives an impression of the processor hardware. c Koninklijke Philips Electronics N.V. 2016 29 TN-2016/00026 Unclassified System test A test of one of the two processors. We see the same processor hardware. To the left Joost Emmen and to the right Leo van de Besselaar. 30 c Koninklijke Philips Electronics N.V. 2016 Unclassified TN-2016/00026 Two technicians at the escape console To the left Joost Emmen and to the right Wim Costongs. c Koninklijke Philips Electronics N.V. 2016 31 TN-2016/00026 Unclassified References [KA1] F.E.J. Kruseman Aretz, ”A comparison between the ALGOL 60 implementations on the Electrologica X1 and the Electrologica X8 ” CWI Technical report SEN–E0801 Centrum Wiskunde en Informatica, September 2008. [KA2] F.E.J. Kruseman Aretz, ”On the design of to small batch operating systems, 1965 – 1970 ”, CWI Technical report SwAT–1913, Centrum Wiskunde en Informatica, June 2013. [KAea] F.E.J. Kruseman Aretz, H.C. de Ruyter van Steveninck, G.E. Thomas, and J.A. Zonneveld, ”Het LEO-project” Nat.Lab. Technical Note 78/84, Philips Research Eindhoven, 1984. [dRvSKA] H.C de Ruyter van Steveninck and F.E.J.Kruseman Aretz, ”The MILLI operating system for the Philips P1800, 1976 – 1979 ”, Philips Research Technical Note 2015/00819, Eindhoven, the Netherlands, 2015. [vBM] J.A.T.M. van Berckel and B.J. Mailloux, ”Some ALGOL plotting procedures”, Mathematisch Centrum Technical report MR73/70. [KA3] F.E.J. Kruseman Aretz, ”Het plottersysteem in MILLI op de EL X8 ”, Nat.Lab. Computer Note 1971/2 Philips Research Eindhoven, 1971. 32 c Koninklijke Philips Electronics N.V. 2016