KDF9 Service Routine Library Manual
It may well be that I (DH) own the only surviving copy of this manual, which comes in 4 loose-leaf volumes.
I have decided to scan it on my flat-bed scanner to avoid page wrecks, one valume at a time.
I have also scanned some strategic sections for the Kidsgrove Algol project.
The links on the webpage are to scanned pages, but experiments with OCR are in train to produce proper
searchable HTML manuals, and
they can be seen here.
Start of volume 1
You can load the whole of volume 1 in a ZIP file
here,
or you can look at individual pages using the index below.
The Service routine Library System
Section 1 Facilities of the System and General Guide to the Manual
Contents
contd
Page 1-1-0
Page 1-2-0
Page 1-3-0
Page 1-4-0
Page 1-5-0
Page 1-6-0
Page 1-7-0
Page 1-8-0
Page 1-9-0
Page 1-10-0
Page 1-11-0
Page 1-12-0
Section 2 Library Enquiry System
Page 2-1-0
Page 2-2-0
Page 2-3-0
Section 3 Cross References: Program no/Title/Section
Page 3-0-1
Page 3-1-0
Page 3-2-0
Page 3-3-0
Page 3-4-0
Page 3-4-1
Page 3-5-0
Page 3-5-1
Page 3-6-0
Page 3-7-0
Page 3-8-0
Page 3-7-0
Page 3-10-0
Page 3-11-0
Page 3-12-0
Page 3-13-0
Section 4 Contents of the NINEMASTER
Not scanned - listing of tape we do not have
Section 5 Amendments to the Manual
Functional Programs and Subroutines
Section 6 Program Assembly Schemes (disc)
§6.1 KAY00 − PROMPT
Page 6-1-0
Page 6-2-0
Page 6-3-0
Page 6-4-0
Page 6-5-0
Page 6-6-0
Page 6-7-0
Page 6-8-0
Page 6-9-0
Page 6-10-0
Page 6-11-0
Page 6-12-0
Page 6-13-0
Page 6-14-0
Page 6-15-0
§6.2 DISC priming program
Page 6-16-0
Page 6-17-0
§6.3 PROMPT Amender brick
Page 6-18-0
Page 6-19-0
Page 6-20-0
Page 6-21-0
Page 6-22-0
Page 6-22-1
Page 6-22-2
§6.4 Usercode (Disc) Compiler
Page 6-23-0
Page 6-24-0
Page 6-25-0
Page 6-26-0
Page 6-27-0
Page 6-28-0
Page 6-29-0
§6.5 Whetstone Algol in PROMPT
Page 6-30-0
Page 6-31-0
Page 6-32-0
Page 6-33-0
§6.6 Whetstone Algol (disc) Controller
Page 6-34-0
Page 6-35-0
Page 6-36-0
Page 6-37-0
§6.7 Disk Dump
Page 6-38-0
Page 6-39-0
Page 6-40-0
§6.8 Disk Update
Page 6-41-0
Page 6-42-0
Page 6-43-0
Page 6-44-0
§6.9 Disk Edit
Page 6-45-0
Page 6-46-0
Section 7 Program Assembly Schemes
§7.1 KAA01PT − Usercode (paper tape) Compiler
Page 01
Page 02
Page 03
Page 04
Page 05
Page 06
Page 07
Page 08
Page 09
Page 10
Page 11
Page 13
Page 14
Page 15
Page 16
§7.2 KMB03 etc − AMENDER (paper tape) 1
Page 7-9-0
Page 7-10-0
Page 7-11-0
Page 7-12-0
Page 7-13-0
Page 7-14-0
Page 7-15-0
Page 7-16-0
Page 7-17-0
Page 7-19-0
Page 7-20-0
Page 7-21-0
§7.3 POST System
Page 7-22-0
Page 7-23-0
Page 7-24-0
Page 7-25-0
Page 7-26-0
Page 7-27-0
Page 7-28-0
Page 7-29-0
Page 7-30-0
Page 7-31-0
Page 7-32-0
Page 7-33-0
Page 7-34-0
Page 7-35-0
Page 7-36-0
Page 7-37-0
Page 7-38-0
Page 7-39-0
Page 7-40-0
Page 7-41-0
Page 7-42-0
Page 7-43-0
Page 7-44-0
Page 7-45-0
Page 7-46-0
Page 7-47-0
Page 7-48-0
Page 7-49-0
Page 7-50-0
Page 7-51-0
Page 7-52-0
Page 7-53-0
Page 7-54-0
Page 7-55-0
§7.4 POST Program Merge
Page 7-56-0
Page 7-57-0
Page 7-58-0
Page 7-59-0
Page dud
§7.5 Temporary POST Linearisation
Page 7-60-0
Page 7-61-0
Page 7-62-0
Page 7-63-0
Page 7-64-0
§7.7 Convert 32-word blocks to 256 words
Page 7-81-0
Page 7-82-0
Page 7-83-0
Start of volume 2
Section 8 Program Testing Aids
§8.1 L1 − Monitor
page 8-1
Page 8-2
Page 8-3
Page 8-4
Page 8-5
Page 8-6
Page 8-7
Page 8-8
Page 8-9
§8.2 KMC02 − Tape Edit
Page 8-10
Page 8-11
Page 8-12
Page 8-13
Page 8-14
§8.3 L64 − Program Testing Simulator
Page 8-15
Page 8-16
Page 8-17
Page 8-18
Page 8-19
§8.4 L80 − Binary Search
Page 8-20
Page 8-21
Page 8-22
§8.5 L84 − Stores Print - Mk1
Page 8-23
Page 8-24
§8.6 KMC0301 − Stores Print Program
Page 8-25
Page 8-26
§8.7 L113 − Post Mortem Subroutine
Page 8-27
Page 8-28
Page 8-29
§8.8 KMC01 − LIV Post Mortem
Page 8-30
Page 8-31
§8.9 KMC04 − Magnetic Tape Diagnostic Routine
Page 8-32
Page 8-33
Page 8-34
§8.10 Basic Scientific Utility Routines
Page 8-35
Section 9 Program Library Schemes (maintenance)
§9.1 − Library Updater
Page 9-1
Page 9-2
Page 9-3
Page 9-4
Page 9-5
Page 9-6
Page 9-7
Page 9-8
Page 9-9
Page 9-10
Page 9-11
Section 10 Directors
§10.1 KKA01 − Paper Tape Generator
Page 10-1
Page 10-2
Page 10-3
Page 10-4
Page 10-5
Page 10-6
Page 10-7
Page 10-8
Page 10-9
Page 10-10
Page 10-11
Page 10-12
§10.2 KKA0302 − Director Call Program
Page 10-13
Page 10-14
Page 10-15
Page 10-16
Page 10-17
§10.3 KKN00 − Standard Director
Page 10-18
Page 10-19
Page 10-20
Page 10-21
Page 10-22
Page 10-23
Page 10-24
Page 10-25
Page 10-26
Page 10-27
Page 10-28
Page 10-29
Page 10-30
Page 10-31
Page 10-32
Page 10-33
Page 10-34
Page 10-35
Page 10-36
Page 10-37
Page 10-38
Page 10-39
Page 10-40
Page 10-41
Page 10-42
Page 10-43
Page 10-44
Page 10-45
Page 10-46
Page 10-47
Page 10-48
Page 10-49
Page 10-50
Page 10-51
Page 10-52
Page 10-53
Page 10-54
Page 10-55
Page 10-56
Page 10-57
Page 10-58
Page 10-59
Page 10-60
Page 10-61
Page 10-62
Page 10-63
Page 10-64
Page 10-65
Page 10-66
Page 10-67
Page 10-68
§10.4 KKT00 − Standard Time-Sharing Director − best version
Page 10-69
Page 10-70
Page 10-71
Page 10-72
Page 10-73
Page 10-74
Page 10-75
Page 10-76
Page 10-77
Page 10-78
Page 10-78-1
Page 10-79
Page 10-80
Page 10-81
Page 10-82
Page 10-83
Page 10-84
Page 10-85
Page 10-86
Page 10-87
Page 10-88
Page 10-89
Page 10-90
Page 10-91
Page 10-92
Page 10-92-1
Page 10-109
Page 10-110
Page 10-111
Page 10-112
Page 10-113
Page 10-114
Section 11 Generalized Sorting and Merging
§11.1 KMF01 − Generalise (Magnetic Tape) Sort A
Page 11-1
Page 11-2
Page 11-3
Page 11-4
Page 11-5
Page 11-6
Page 11-7
Page 11-8
Page 11-9
Page 11-10
Page 11-11
Page 11-12
Page 11-13
Page 11-14
§11.2 L82 − Internal (One Word) Sort
Page 11-15
§11.3 KMF0201 − Merge
Page 11-16
Page 11-17
Page 11-18
Page 11-19
Page 11-20
Page 11-21
Page 11-22
Page 11-23
Page 11-24
Page 11-25
Page 11-26
Page 11-27
Page 11-28
Page 11-29
Page 11-30
Page 11-31
Page 11-32
Page 11-33
§11.4 L94 to 97 − Sort Subroutines
Page 11-34
Page 11-35
Page 11-36
Page 11-37
Page 11-38
Page 11-39
Page 11-40
Page 11-41
Page 11-42
Page 11-43
Page 11-44
Page 11-45
Page 11-46
Page 11-47
Page 11-48
Page 11-49
§11.5 L96 − Single Reel Tape Sort − First Pass
Page 11-50
Page 11-51
Page 11-52
Page 11-53
§11.6 L97 − Polyphase
Page 11-54
Page 11-55
§11.7 L94 − Normal Forwards or Inverted Backwards Read
Page 11-56
Page 11-57
§11.8 L95 − Write Normal or Inverted File
Page 11-58
Page 11-59
§11.9 KMF03 − Sort Generator
Page 11-60
Page 11-61
Page 11-62
Page 11-63
Page 11-64
Page 11-65
Page 11-66
Page 11-67
Page 11-68
Page 11-69
Page 11-70
Page 11-71
Page 11-72
Section 12 Report Program Generators
§12.1 KMG01 − Report Program Generator
Page 12-1
Page 12-2
Page 12-3
Page 12-4
Page 12-5
Page 12-6
Page 12-7
Page 12-8
Page 12-9
Page 12-10
Page 12-11
Page 12-12
Page 12-13
Page 12-14
Page 12-15
Page 12-16
Page 12-17
Start of volume 3
Section 13 Language Suites
§13.1 KAB00, etc − Algol Compiler (Kidsgove)
Page 01
Page 02
Page 03
Page 04
Page 05
Page 06
Appendix 1 : Limits on the ALGOL submitted to the Kidsgrove Compiler
Page 07
Appendix 2 : Failure Messages
Page 08
Page 09
Brick 01 Failure Messages
Page 10
Page 11
Brick 02 Failure Messages
Page 12
Brick 20 Failure Messages
Page 13
Page 14
Brick 22 Failure Messages
Page 15
Page 16
Brick 40 Failure Messages
Page 17
Brick 41 Failure Messages
Page 18
Page 19
Brick 42 Failure Messages
Page 20
Page 21
Brick 45 Failure Messages
Page 22
Brick 46 Failure Messages
Page 23
Brick 60 Failure Messages
Page 24
Page 25
Page 26
Page 27
Brick 61 Failure Messages
Page 28
Brick 62 Failure Messages
Page 29
Page 30
Appendix 3 : Error Reporting
Page 31
Appendix 4 : ALGOL Object Programs
Page 32
Page ??
Page 33
Page 34
Page 35
Page 36
Page 36-1
Page 37
Page 38
Appendix 5 : Compiler Optional Output
Page 39
Page 40
Page 41
Appendix 6 : Flow Diagrams
Page 42
Page 43
§13.2 KAB00, etc − Alphacode
Page 44
Page 45
§13.3 KAB00, etc − FORTRAN Compiler
Page 46
Section 14 Mathematical and Management Science
General Utility Programs and Subroutines
Section 15: File Processing Routines (Conversion and Copying)
Section 16: Magnetic Tape Handline Routines
§ 16.1: FLAIR 1 - File Labelling and Identification Routine
Page 1
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page 9
Page 10
§ 16.2: Write Magnetic Tape Identifiers
Page 11
Page 12
Page 13
§ 16.3: KDF9 Magnetic Tape Handling Subroutines
Page 14
Page 15
Page 16
Page 17
Page 18
Page 19
Page 20
Page 21
Page 22
Page 23
Page 24
Page 25
Page 26
Page 27
Page 28
Page 29
Page 30
Page 31
Page 32
Page 33
Page 34
Page 35
Page 36
§ 16.4: L37 Magnetic Tape Normal Write
Page 37
Page 38
Page 39
Page 40
§ 16.5: L34 Magnetic Tape Normal Read
Page 41
Page 42
Page 43
§ 16.6: L38 Magnetic Tape Write Inverted
Page 44
Page 45
Page 46
§ 16.7: L36 Magnetic Tape Inverted Read
Page 47
Page 48
Page 49
§ 16.8: L61 Magnetic Tape Write Common
Page 50
Page 51
§ 16.9: L78 Magnetic Tape 16 Word Label Check
Page 52
Page 53
Page 54
§ 16.10: L79 Action on Magnetic Tape Parioty Failure
Page 55
Page 56
§ 16.11: L89 Type Message
Page 57
Page 58
Page 59
§ 16.12: L35 Magnetic Tape Forwards Read of Inverted File
Page 60
Page 61
§ 16.13: L110 Magnetic Tape Allocation and Deallocation
Page 62
Page 63
Page 64
Page 65
Page 66
Page 67
§ 16.14: L111 Dump and Restart
Page 68
Page 69
Page 70
Page 71
Page 72
Page 73
Page 74
Page 75
Page 76
Page 77
Page 78
Page 79
§ 16.15: KMD01 Establish Programs to Permanant Program Space of Drum
Page 80
Page 81
Page 82
Page 83
Section 17: Data Editing Routines
§ 17.1: L39: Decimal or Sterling to Binary Conversion
Page 1
Page 2
§ 17.2: L40: Decimal or Sterling to Binary Conversion, Single Length
Page 3
Page 4
§ 17.3: L59: Binary to Fixed Point Decimal Conversion
Page 5
Page 6
§ 17.4: L60: Binary to Floating Point Decimal Conversion
Page 7
§ 17.5: L93: Card Transcriber code to KDF9 Printer Code
Page 8
Page 9
§ 17.6: L76: Double Length Sterline to Single Length Binary Pence
Page 10
§ 17.7: L104:Binary to Sterline (with Zero Suppression)
Page 11
Page 12
§ 17.8: L105:Binary to Sterline (without Zero Suppression)
Page 13
Page 14
Section 18: Microprogram Routines
§ 18.1: L2 Clear Working Stores
Page 1
Page 2
§ 18.2: L82 Random Distribution of a Record
Page 3
Page 4
Page 5
§ 18.3: L85 Compression of a Record
Page 6
Page 7
§ 18.4: L77 Float
Page 8
Page 9
§ 18.5: L92 Real and Elapsed Time
Page 10
Page 11
§ 18.6: L109 Compare Fields
Page 12
Page 13
Section 19: Standard Commercial Routines
§ 19.1: L87: Coin Analysis
Page 1
Page 2
§ 19.2: L63: P.A.Y.E.
Page 3
Page 4
Page 5
§ 19.3: L108: National Insturance Graduated Pension Contributions
Page 6
Page 7
Section 20: Input/Output Subroutines
§ 20.1: L41: Open Output Files
Page 1
Page 2
Page 3
Page 4
Page 5
Page 6
§ 20.2: L42: Close Output Files
Page 7
Page 8
§ 20.4: L43: Start Line
Page 9
§ 20.4: L44: End Line
Page 10
Page 11
§ 20.5: L45: Store Characters
Page 12
Page 13
§ 20.6: L46: Store Single Character
Page 14
Page 15
§ 20.7: L47: Move Characters
Page 16
Page 17
§ 20.8: L48: Start Line and Clear Buffer
Page 18
Page 19
§ 20.9: L49: Move Counter
Page 20
Page 21
§ 20.10: L50: End Line at Maximum Value
Page 22
Page 23
§ 20.11: L51: Start Line in Given Buffer
Page 24
Page 25
§ 20.12: L52: Store Tabs and Characters
Page 26
Page 27
§ 20.13: L53: Output Block by OUT 8
Page 28
§ 20.14: L54: Initialise Paper Tape Reader
Page 29
Page 30
Page 31
§ 20.15: L55: Fetch Character from Paper Tape
Page 32
Page 33
§ 20.16: L56: Fetch Number from Paper Tape
Page 34
Page 35
§ 20.17: L57: Retain Character
Page 36
Page 37
§ 20.18: L58: Deallocate Paper Tape Reader
Page 38
§ 20.19: L65: Read Decimal Integer (Fixed Field)
Page 39
Page 40
Page 41
§ 20.20: L66: Read Decimal Integer to Printed Terminator
Page 42
Page 43
§ 20.21: L67: Read Decimal Integer to Terminator
Page 44
Page 45
§ 20.22: L68: Read Octal Integer (Fixed Field)
Page 46
Page 47
§ 20.23: L69: Read Octal Integer to Printed Terminator
Page 48
Page 49
§ 20.23: L70: Read Octal Integer to Terminator
Page 50
Page 51
§ 20.25: L71: Read Characters (Fixed Field)
Page 52
Page 53
§ 20.26: L72: Read Characters to a Terminator
Page 54
Page 55
§ 20.27: L73: Read Sterling (Fixed Field)
Page 56
Page 57
§ 20.28: L74: Read Sterling to Printed Terminator
Page 58
Page 59
§ 20.29: L75: Read Sterling to Terminator
Page 60
Page 61
§ 20.30: L114: Output Block Direct to Users Device
Page 62
§ 20.31: L115: Job Accounting
Page 63
Page 64
§ 20.32: C7: Basic Scientific Input-Output
Page 65
Section 21: Mathematical Subroutines and Programs
Other Information
Section 22: Standards Conventions and Terminology
§22.1 Library Tape and Program Structure
page22-2
page22-3
page22-4
page22-5
§22.2 Magnet tape label and identifier format
page22-6
page22-7
§22.3 Program identifier format
page22-8
page22-9
§22.4 Program and subroutine format on paper tape
page22-10
§22.5 Character sets
page22-11
§22.6 8-bit Algol basic symbol code
page22-12
page22-12-1
page22-12-2
§22.7 Subroutine Conventions
page22-13
page22-14
page22-15
page22-16
§22.8 Numbering of subroutines, procedures, etc
page22-17
page22-17-1
§22.9 Glossary of terms and abbreviations
page22-18
page22-19
page22-20
§22.10 Conventions for typing source programs
page22-21
page22-22
page22-23
page22-24
page22-25
§22.11 Standard line printer control
page22-26
§22.12 5-hole paper tape code
page22-26-1
page22-26-2
page22-26-3
page22-27
page22-27-1
§22.13 Type numbers for peripheral devices
page22-28
§22.14 Useful numbers
page22-29
page22-30
page22-31
page22-32
page22-33
page22-34
page22-35
page22-36
§22.15 KDF9 octal instruction code
page22-37
page22-38
page22-39
page22-40
Also appendix C from the AUM on the topic of KDF9 Algol basic symbols
pageC-1
pageC-2
pageC-3
pageC-4
pageC-5
pageC-6
Section 23: The Contributed Library
Section 24: Reserved