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