457:
manually, re-compile, and then test and de-bug the compiled machine-code version of the program, building up a reel of paper-tape machine-code patches to the program as each correction was made. Once a fairly robust copy was available, the changes would be replicated in
Assembler and the program re-compiled and re-tested. Frequently, the last stage was never quite completed, and it was not unknown for production programs to require machine code-patches to be loaded from paper tape for each run. Also, a number of major commercial packages for payroll, accounts and share registration were written by Bureau staff before the Assembler compiler was accepted, and remained entirely in machine code. A further quirk was that the I/O generation routines of the assembler were not used by one programming section, who had written their own generalized I/O package, called Tape Control, based on the COBOL file description table formats. This automated much of the error-prone programming of batching/unbatching of records and controls of simultaneous read/write operations and end-of-file conditions.
488:
The display section was made up of indicators which when illuminated showed, in binary (grouped as octal) characters, the machine's current running (or static) status at the individual machine core address and register level, for the compute, read and write operations then in progress. When a program was running, this display was a kaleidoscope of quickly changing, flashing, multi-colored lights. The control panel section consisted of press-buttons to select the next register to be set and a central part that mirrored the lay-out of a single machine core address. Other buttons accessed more complex operations. Use of these buttons enabled the operator to select and then directly input to the machine's core storage locations and registers the octal pattern he/she keyed in manually. For an operator to input a single machine instruction, each of up to ten octal characters of the instruction had to be selected and keyed in as its binary pattern – each with the correct (odd) parity bit.
307:. The core memory of the machine installed at the Kidsgrove computer bureau was upgraded from 64k to the then maximum of 96k of core memory. KDF8 used an octal (base eight) addressing system. A machine-code instruction was fixed length, ten octal characters long. The instruction set was specifically designed for commercial use. It had machine-code level instructions for all four of the decimal arithmetic functions operating on variable length numbers, and also had instructions for efficient manipulation of variable-length data strings. Not all instructions required all ten characters. Given the minimal core memory available, programmers frequently used "spare" characters in instructions for storage of constants and similar storage-saving tricks.
328:
programs were kept on these tapes. Peripheral error checking was again limited to parity checks on all reads and writes and the use of write permit rings. The
Kidsgrove KDF8 had eight magnetic tape units on-line, each rated at 40k characters per second read/write speed. Each tape unit was about 6 feet (1.8 m) tall and 2 feet (0.61 m) wide, and the processor and memory cabinets were about the same in size and number. The Kidsgrove configuration required a large air-conditioned room.
267:
the types of transistors, diodes and other components manufactured in the UK. The KDP10 was first delivered in 1961. In 1964 it was re-designated as the KDF8 and sales continued to 1965. The machine was essentially the same as the RCA 501 and manufactured under license so that
English Electric could offer a full range of computer systems for all its customers, without the expense of developing an entirely new machine. The machine sold for £400,000. Only 13 were sold.
400:
used as a device ID for a write operation would direct the write to the operator's teleprinter. Embarrassing if this was due to a program error, and it was a large data block intended for mag tape.....) The last four octal characters (0000) were not required in this instruction, and would be ignored when the instruction was processed. Such "spare" characters were frequently, given the extremely limited main store available used by programmers to store constants.
247:. By producing a software-compatible system, the intention was to reduce time and cost to develop software. However, the lengthy process of developing manufacturing capability meant that the system was soon outpaced by systems from other vendors. Only a few systems were sold during its 5 years of production. Due to the consolidation of the British computer industry, English Electric's computer division became one of the components of what would become
407:
Thus numbers could be any length. A "Sector
Compare" instruction (Octal 43) permitted three-way conditional branching of program control depending on whether the data stored in the range from the "A" address to the "B" address was greater, less than, or equal to, the value of the same number of characters stored at locations to the left of the (previously set) "T" register, as the following Assembler language version attempts to demonstrate.
484:
rotation protected production tapes from major disasters, but required careful manual controls. Programmers (or for operational suites
Production Control staff) gave the operator written instructions on which program tape and data tapes to load, on which devices, and a written summary of how to load and initiate each program. The operator would then load the tapes, and load and initiate each program in turn manually from the console.
1157:
1065:
978:
926:
24:
452:
A parameter-driven sort-merge program, capable of handling very large volumes of data. Sort parameters could either be read in from the paper-tape reader, for one-off sorts, or "compiled" in (really just stored in the program). There were extensive user "hooks" where user-supplied code could be put
420:
This example compares a salary with a tax limit, and jumps to one of three program locations depending on the respective values. The ",R" Assembler convention represents the rightmost character of the named field. CTC stood for "Conditional
Transfer of Control" and TC for (unconditional) Transfer of
406:
The operation codes 51-54 did decimal arithmetic Add, Subtract, Multiply and Divide on variable length numbers, stored as decimal characters. One end of each operand was stored at the "A" and "B" addresses of the instruction. The other end was identified by an ISS (Item
Separator Symbol), octal 74.
357:
for the printers was continuous, with perforations between the pages, and sprocket-holes at each side of the paper for the paper-feed mechanism. Custom paper sizes, with pre-printed lines/text/colours etc. were common, especially for applications like payroll, and small paper-tape control loops were
310:
KDF8 was strictly a batch processing computer, running one program at a time. Only one compute instruction could be processed at one time, but it was also possible to have one read and/or one write instruction (typically from and to magnetic tape) executing in parallel. A system of hardware "gates"
266:
computer which was known as the KDP10 (KDP for
Kidsgrove Data Processing). This was a machine intended for commercial data processing applications, with fixed-length instructions, and capabilities for processing variable-length numeric and alpha-numeric data. RCA's original design was adapted to use
487:
The console consisting of a vertical display panel about 10 inches (250 mm) high by about 5 feet (1.5 m) long with a similarly sized slightly angled control panel below it. Each of these two parts was filled with labeled buttons and illuminated indicators each (roughly) one inch square.
428:
Variable length data was handled with the aid of specially designated characters. The ISS or Item
Separator Symbol, octal 74, usually represented as "●" was used to separate variable length data fields. Octal 75 "<" and 76 ">" identified the start and end of a data message, Octal 777777 was
399:
Where 14 was the operation code for this type of read, 200000 was the lowest store location the data would be read to, 00 indicates that no register modification was to be done to the A or B addresses of the instruction, and 77 was the (fixed) device identifier of the paper tape reader. (Note - 77
386:
Meg directly addressable main store, an actual 96K!) RR represents a two-character
Register setting (one character for each of two possible registers numbered 1 to 7 used to modify the "A" and "B" addresses, with 0 indicating no register modification) and BBB represents the "B" address, the same as
345:
an operator's teleprinter device (with a slow paper tape punch built-in) permitting programs to display information to the operator, and the operator to use the keyboard to punch up short program or data items on paper-tape. This teleprinter could not be used to input data directly to the computer,
318:
The level of programmer skill to control full read/write/compute overlap, especially if data records were "batched" several to the "real" block of data on magnetic tape, was considerable, since all simultaneity checks had to be hand-coded into the program. Automatic error detection was essentially
331:
Eight was considered the working maximum number of tape units, one per channel, for any actual KDF8 configuration. It was possible for each tape channel to be split through additional hardware units into a sub-group of eight tape decks, giving a theoretical maximum of 61 on-line tape units. (Tt
469:
range of Mainframe computers. Another oddity was a decision table pre-processor for COBOL programs, itself written in COBOL. This was of some interest, since bureau programming staff were at the time experimenting with using decision tables as an alternative to flowcharts. However, while these
456:
An assembler-language compiler called EZ-Code. This was not used commercially for some time, since compilation time was then seen as a heavy overhead, but became increasingly used in later years. To save on computer time, typically a programmer would do an initial compile, dry-check the program
424:
In the above "compare" code, the original (KDP10?) instruction set compared from right to left, requiring the whole length of the data strings to be compared, a character at a time. KDP8 was enhanced to compare from left to right, so the comparison could stop as soon as the relative values were
435:
Various instructions could operate directly on this variable length data, and records could be batched say ten to the batch onto magnetic tape, for efficient storage. Given the relatively slow (by today's standards) processor and I/O rates, a significant aspect of the programmer's task was to
327:
There were no magnetic disks, drums or other similar temporary backing-storage devices. Bulk storage was limited to magnetic tapes, on open reels, each reel of which was about one inch thick and nine inches (229 mm) across, holding a maximum of 2,400 feet (730 m) of tape. Data and
314:
The KDP10 in the service bureau was updated in situ, as the system was built with RCA germanium transistors. Part of the update was to convert the main logic to silicon transistors. There was also a three-character address adder added, and the machine cycle was 15 microseconds, with six timing
281:
One KDF8 was installed at the Kidsgrove (Staffordshire) site of The English Electric Company's computer bureau. Over the years, and a succession of mergers, this organisation became English Electric Leo Marconi (EELM), International Computing Services Limited (ICSL), and finally under a joint
483:
A very small (about 20 instructions) bootstrap loader could be held at the front of each program tape, but even this approach was not always used. Tape labels were (with the exception of COBOL and Tape Control managed applications) almost non-existent. A grandfather/father/son cycle of tape
474:
To optimize throughput of production programs, standard packages of software were produced by bureau programmers for payroll, sales and purchase ledgers, share registration, stock control and the like, and some applications – such as payroll – supported the processing of data from many bureau
444:
There was no operating system. Programs were initiated by an on-line operator, via an operator's console. Operators were also responsible for manually clearing memory and re-setting the computer between programs, mounting and changing tapes, controlling off-line printing and the like.
436:
balance the batching of data on tape, with the computing needed per record and organise the simultaneous I/O and compute operations with the aim of maximising overlap of computing with I/O and avoiding the tape-decks stopping between batch reads.
319:
limited to hardware parity checks at the character level, and there were no processor hardware checks on what the programmer could do. For example, the computer would simply stop if instructed to access a memory location beyond physical memory.
460:
A COBOL compiler. This was very rarely used, early experiences not having been entirely favourable. One notable exception was a wiring design program called "WRS1", used to help design the hardware for the later English Electric
416:
COMPARE SET £T SALARY,R SC TAXLIMIT TAXLIMIT,R CTC BELOWTAXLIMIT ABOVETAXLIMIT EQUAL TC EQUALTAXLIMIT
375:
OO represents a two-(octal) character operation code, identifying the instruction to be performed, in the range 00 to 77, AAA represents a six-(octal) character "A" core address ranging from 000000 to 777777. (A theoretical
311:
set and checked at machine code level were used to control the degree of synchronous operation. However, since there was no operating system of any kind, this had to be controlled entirely at the individual program level.
335:
Other tape unit/printer pairs were available, able to operate independently of the mainframe. These provided an off-line printing facility for volume output, freeing the KDF8 to run other work.
353:
Both on and off-line printers were impact printers, capable of printing a line of either 120 or 160 characters, depending on the model They were single type-face, no lower case.
475:
customers in one computer run, with individual parameter settings managing individual customer's requirements. More complex client requirements were met by custom-built programs.
470:
programmers continued to hand-code in assembler from the hand-written decision tables with some success, the compilation overheads prevented the use of the pre-processor.
1280:
429:
by custom and practice used to identify End of File. So data such as names and addresses could be punched onto paper tape for data input as (for example)
448:
Some standard software packages were available, or became available, all written in the US by the RCA organisation. These included the following.
393:
Example. An instruction to read data from the on-line paper-tape reader to locations starting at store location (octal) 200000 would look like
596:
41:
1111:
1160:
1270:
107:
88:
60:
1265:
1260:
497:
872:
605:
248:
1106:
1068:
867:
566:
545:
524:
67:
45:
1204:
1116:
1096:
74:
1219:
1214:
929:
589:
56:
34:
1275:
1209:
1121:
981:
691:
686:
681:
676:
671:
666:
658:
466:
1199:
1184:
1168:
315:
pulses, where sixth pulse was for settling time, thus the machine cycle was reduced to 12.5 microseconds.
648:
582:
403:
Some aspects of the instruction set were advanced, and greatly eased programming of commercial systems.
275:
1151:
1136:
877:
304:
205:
354:
300:
81:
574:
615:
633:
562:
541:
520:
283:
1059:
240:
139:
129:
538:
Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer
999:
994:
989:
862:
857:
852:
847:
842:
837:
832:
827:
822:
817:
812:
804:
701:
223:
623:
1254:
910:
905:
900:
895:
887:
517:
Early British Computers: The Story of Vintage Computers and the People who Built Them
332:
least three uniquely coded I/O channel identifiers were required for other devices.)
216:
1229:
1049:
920:
1239:
972:
638:
259:
During the late 1950s English Electric embarked on two major computer projects.
23:
957:
390:
Instructions were read in turn from main store into registers, then executed.
228:
962:
271:
1141:
952:
947:
942:
937:
628:
1234:
1224:
1173:
1131:
1126:
1101:
1091:
1086:
1081:
1076:
1039:
1034:
1029:
1024:
1019:
1014:
1009:
1004:
263:
244:
346:
all operator commands had to be input through the operator's console.
342:
a paper-tape reader (1000cps) for data and (initial) program input,
1189:
1178:
349:
an on-line printer, used mainly for core dumps of failed programs.
425:
clear, speeding up processing of such instructions considerably.
1194:
1044:
462:
578:
17:
270:
The second large computer to emerge from development work at
559:
The Early Computer Industry: Limitations of Scale and Scope
413:
Tag Op A-Address RR B-Address
396:
14 200000 00 770000 (spaces for clarity only)
358:
needed to match page-throw size to each paper type.
1150:
1058:
971:
919:
886:
803:
700:
657:
613:
432:<IAN●TAYLOR●41●HIGH STREET●KIDSGROVE●STAFFS>
366:Each KDF8 machine-code instruction took the format
222:
212:
200:
192:
184:
176:
153:
145:
135:
125:
48:. Unsourced material may be challenged and removed.
262:Firstly, English Electric built a version of the
453:in at various stages of the sort/merge process.
590:
8:
120:
597:
583:
575:
278:, primarily designed for scientific work.
119:
108:Learn how and when to remove this message
508:
239:was an early British computer built by
1281:Computer-related introductions in 1964
7:
519:, Manchester University Press, 1980
46:adding citations to reliable sources
14:
1156:
1155:
1064:
1063:
977:
976:
925:
924:
659:English Electric System 4 series
22:
606:International Computers Limited
33:needs additional citations for
1:
338:Other peripherals included:
282:arrangement between ICL and
387:the "A" address in format.
159:; 63 years ago
1297:
1271:Transistorized computers
536:B. Jack Copeland (ed.),
1266:ICL mainframe computers
1261:Early British computers
498:Early British computers
372:In this representation
57:"English Electric KDF8"
515:Simon Hugh Lavington,
1152:Programming languages
121:English Electric KDF8
540:, OUP Oxford, 2012,
305:magnetic-core memory
295:Processor/main store
243:as a version of the
206:Magnetic core memory
42:improve this article
122:
561:, Springer, 2012,
479:Computer operation
185:Introductory price
1248:
1247:
1225:ApplicationMaster
1060:Operating systems
234:
233:
224:Removable storage
118:
117:
110:
92:
1288:
1276:English Electric
1159:
1158:
1067:
1066:
980:
979:
928:
927:
599:
592:
585:
576:
570:
555:
549:
534:
528:
513:
385:
384:
380:
301:transistor-based
241:English Electric
167:
165:
160:
140:English Electric
130:English Electric
123:
113:
106:
102:
99:
93:
91:
50:
26:
18:
1296:
1295:
1291:
1290:
1289:
1287:
1286:
1285:
1251:
1250:
1249:
1244:
1154:
1146:
1062:
1054:
975:
967:
923:
915:
882:
805:ICL 2900 Series
799:
702:ICT 1900 series
696:
653:
609:
608:(ICL) 1968-2002
603:
573:
556:
552:
535:
531:
514:
510:
506:
494:
481:
442:
418:
414:
410:
382:
378:
377:
364:
362:Instruction set
325:
297:
292:
257:
163:
161:
158:
114:
103:
97:
94:
51:
49:
39:
27:
12:
11:
5:
1294:
1292:
1284:
1283:
1278:
1273:
1268:
1263:
1253:
1252:
1246:
1245:
1243:
1242:
1237:
1232:
1227:
1222:
1217:
1212:
1207:
1202:
1197:
1192:
1187:
1182:
1176:
1171:
1165:
1163:
1148:
1147:
1145:
1144:
1139:
1134:
1129:
1124:
1119:
1114:
1109:
1104:
1099:
1094:
1089:
1084:
1079:
1073:
1071:
1056:
1055:
1053:
1052:
1047:
1042:
1037:
1032:
1027:
1022:
1017:
1012:
1007:
1002:
997:
992:
986:
984:
969:
968:
966:
965:
960:
955:
950:
945:
940:
934:
932:
917:
916:
914:
913:
908:
903:
898:
892:
890:
884:
883:
881:
880:
875:
870:
865:
860:
855:
850:
845:
840:
835:
830:
825:
820:
815:
809:
807:
801:
800:
798:
797:
794:
791:
788:
785:
782:
779:
776:
773:
770:
767:
764:
761:
758:
755:
752:
749:
746:
743:
740:
737:
734:
731:
728:
725:
722:
719:
716:
713:
710:
706:
704:
698:
697:
695:
694:
689:
684:
679:
674:
669:
663:
661:
655:
654:
652:
651:
646:
641:
636:
631:
626:
620:
618:
611:
610:
604:
602:
601:
594:
587:
579:
572:
571:
550:
529:
507:
505:
502:
501:
500:
493:
490:
480:
477:
472:
471:
458:
454:
441:
438:
415:
412:
369:OO AAA RR BBB
363:
360:
355:Fan fold paper
351:
350:
347:
343:
324:
321:
296:
293:
291:
290:Basic features
288:
284:Barclay's Bank
256:
253:
232:
231:
226:
220:
219:
217:Magnetic tapes
214:
210:
209:
202:
198:
197:
194:
190:
189:
186:
182:
181:
178:
174:
173:
155:
151:
150:
147:
143:
142:
137:
133:
132:
127:
116:
115:
30:
28:
21:
13:
10:
9:
6:
4:
3:
2:
1293:
1282:
1279:
1277:
1274:
1272:
1269:
1267:
1264:
1262:
1259:
1258:
1256:
1241:
1238:
1236:
1233:
1231:
1228:
1226:
1223:
1221:
1218:
1216:
1213:
1211:
1208:
1206:
1203:
1201:
1198:
1196:
1193:
1191:
1188:
1186:
1183:
1180:
1177:
1175:
1172:
1170:
1167:
1166:
1164:
1162:
1153:
1149:
1143:
1140:
1138:
1135:
1133:
1130:
1128:
1125:
1123:
1120:
1118:
1115:
1113:
1110:
1108:
1105:
1103:
1100:
1098:
1095:
1093:
1090:
1088:
1085:
1083:
1080:
1078:
1075:
1074:
1072:
1070:
1061:
1057:
1051:
1048:
1046:
1043:
1041:
1038:
1036:
1033:
1031:
1028:
1026:
1023:
1021:
1018:
1016:
1013:
1011:
1008:
1006:
1003:
1001:
998:
996:
993:
991:
988:
987:
985:
983:
974:
970:
964:
961:
959:
956:
954:
951:
949:
946:
944:
941:
939:
936:
935:
933:
931:
922:
921:Minicomputers
918:
912:
909:
907:
904:
902:
899:
897:
894:
893:
891:
889:
888:ICL Series 39
885:
879:
876:
874:
871:
869:
866:
864:
861:
859:
856:
854:
851:
849:
846:
844:
841:
839:
836:
834:
831:
829:
826:
824:
821:
819:
816:
814:
811:
810:
808:
806:
802:
795:
792:
789:
786:
783:
780:
777:
774:
771:
768:
765:
762:
759:
756:
753:
750:
747:
744:
741:
738:
735:
732:
729:
726:
723:
720:
717:
714:
711:
708:
707:
705:
703:
699:
693:
690:
688:
685:
683:
680:
678:
675:
673:
670:
668:
665:
664:
662:
660:
656:
650:
647:
645:
642:
640:
637:
635:
632:
630:
627:
625:
622:
621:
619:
617:
612:
607:
600:
595:
593:
588:
586:
581:
580:
577:
569:, pp. 196-198
568:
564:
560:
554:
551:
548:, pp. 166-168
547:
543:
539:
533:
530:
526:
522:
518:
512:
509:
503:
499:
496:
495:
491:
489:
485:
478:
476:
468:
464:
459:
455:
451:
450:
449:
446:
439:
437:
433:
430:
426:
422:
411:
408:
404:
401:
397:
394:
391:
388:
373:
370:
367:
361:
359:
356:
348:
344:
341:
340:
339:
336:
333:
329:
322:
320:
316:
312:
308:
306:
303:machine with
302:
294:
289:
287:
285:
279:
277:
273:
268:
265:
260:
254:
252:
250:
246:
242:
238:
230:
227:
225:
221:
218:
215:
211:
207:
203:
199:
195:
191:
187:
183:
179:
175:
171:
156:
152:
148:
144:
141:
138:
134:
131:
128:
124:
112:
109:
101:
90:
87:
83:
80:
76:
73:
69:
66:
62:
59: –
58:
54:
53:Find sources:
47:
43:
37:
36:
31:This article
29:
25:
20:
19:
16:
1230:ReportMaster
1050:One Per Desk
973:Workstations
643:
614:Predecessor
558:
553:
537:
532:
516:
511:
486:
482:
473:
447:
443:
434:
431:
427:
423:
419:
409:
405:
402:
398:
395:
392:
389:
374:
371:
368:
365:
352:
337:
334:
330:
326:
317:
313:
309:
298:
280:
269:
261:
258:
236:
235:
169:
154:Release date
136:Manufacturer
104:
95:
85:
78:
71:
64:
52:
40:Please help
35:verification
32:
15:
1240:DAP FORTRAN
692:System 4/75
687:System 4/72
682:System 4/70
677:System 4/50
672:System 4/30
667:System 4/10
639:Elliott 803
323:Peripherals
299:KDF8 was a
1255:Categories
958:System Ten
616:mainframes
567:0230389112
546:0191625868
525:0719008107
504:References
255:Background
229:Paper tape
193:Units sold
146:Generation
68:newspapers
1117:Executive
1097:superNova
963:System 25
557:A. Gandy,
286:, Baric.
272:Kidsgrove
126:Developer
98:July 2017
1161:category
1142:MultiJob
1069:category
1040:DRS 6000
1035:DRS 3000
982:category
930:category
911:Level 80
906:Level 60
901:Level 50
896:Level 30
634:ICT 1501
629:ICT 1301
492:See also
467:System 4
440:Software
421:Control
274:was the
188:£400,000
177:Lifespan
1174:Fortran
1132:MINIMOP
1127:MAXIMOP
1077:OpenVME
1030:DRS 500
1025:DRS 400
1020:DRS 300
1015:DRS 200
1010:DRS 100
527:page 76
381:⁄
264:RCA 501
245:RCA 501
213:Storage
180:5 years
162: (
82:scholar
1205:Pascal
1122:GEORGE
1005:DRS 20
565:
544:
523:
201:Memory
84:
77:
70:
63:
55:
1190:COBOL
1179:ALGOL
1092:VME/K
1087:VME/B
790:1907F
787:1907E
781:1906S
778:1906F
775:1906E
772:1906A
766:1905F
763:1905E
757:1904S
754:1904F
751:1904E
748:1904A
742:1903T
739:1903S
736:1903A
730:1902T
727:1902S
724:1902A
718:1901T
715:1901S
712:1901A
624:LEO I
170:KDP10
89:JSTOR
75:books
1195:JEAN
1185:SOBS
1169:PLAN
1045:PERQ
1000:7561
995:7503
990:7502
953:ME29
948:2905
943:2904
938:2903
868:CAFS
863:2988
858:2982
853:2980
848:2976
843:2972
838:2970
833:2966
828:2960
823:2956
818:2955
813:2950
796:1909
793:1908
784:1907
769:1906
760:1905
745:1904
733:1903
721:1902
709:1901
649:KDF9
644:KDF8
563:ISBN
542:ISBN
521:ISBN
465:and
463:KDF9
276:KDF9
237:KDF8
168:(as
164:1961
157:1961
61:news
1235:RPG
1220:SFL
1215:SCL
1112:TME
1107:DME
1102:CME
1082:VME
878:OCP
873:DAP
249:ICL
44:by
1257::
1210:S3
1181:60
251:.
196:13
1200:C
1137:J
598:e
591:t
584:v
383:4
379:1
208:)
204:(
172:)
166:)
149:1
111:)
105:(
100:)
96:(
86:·
79:·
72:·
65:·
38:.
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.