home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / pdp8 / os278-src.tar.Z / os278-src.tar / rl02sy.pa < prev    next >
Text File  |  1992-09-18  |  12KB  |  535 lines

  1. /RL02SY.PA  OS78V4 RL02 SYS HANDLER
  2. /SYS DEVICE ONLY. ADAPTED FROM:
  3. /R2SY: RL02 SYSTEM HANDLER
  4. /
  5. /
  6. /
  7. /
  8. /
  9. /
  10. /
  11. /
  12. /
  13. /COPYRIGHT  (C)  1977 BY DIGITAL EQUIPMENT CORPORATION
  14. /
  15. /
  16. /
  17. /
  18. /
  19. /
  20. /
  21. /
  22. /
  23. /
  24. /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
  25. /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
  26. /CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
  27. /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
  28. /
  29. /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
  30. /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
  31. /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
  32. /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
  33. /
  34. /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
  35. /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
  36. /DIGITAL.
  37. /
  38. /
  39. /
  40. /
  41. /
  42. /
  43. /
  44. /
  45. /
  46. /
  47. /RL01 SYSTEM HANDLER
  48.  
  49.     VERSION="B&77
  50.  
  51. /NOTES:
  52. /1. PRE-OMNIBUS COMPUTERS NOT SUPPORTED.
  53.  
  54. /EDIT HISTORY:
  55. /21-OCT-77 CREATION
  56. /DEC 80 ADAPTED FOR RL02 USE
  57.  
  58. /CHANGES FOR RL02:
  59.  
  60. /1.    BAD BLOCK LIST IS 10 LOCATIONS + 0 TERMINATOR
  61. /2.    DEVICE SIZE IS EQUAL TO RL01 DEV A OR B, BUT DEVICE CODE
  62. /    FOR INTERNAL USE IS A 37 TO KEEP THINGS CONSTANT.
  63. /3.    INITIAL TRACK TO FORCE SEEK IS 4000
  64. /4.    DEVICE IS "R2SY"
  65.  
  66. /INSTRUCTIONS THAT GENERATE CONSTANTS
  67.  
  68. AC0001=CLA IAC
  69. AC0002=CLA CLL CML RTL
  70. AC0003=CLA CLL CML IAC RAL    /*
  71. AC0004=CLA CLL IAC RTL        /*
  72. AC0006=CLA CLL CML IAC RTL    /*
  73. AC0100=CLA IAC BSW        /*
  74. AC2000=CLA CLL CML RTR
  75. AC3777=CLA CLL CMA RAR
  76. AC4000=CLA CLL CML RAR
  77. AC5777=CLA CLL CMA RTR
  78. AC6000=CLA CLL CML IAC RTR    /*
  79. AC7775=CLA CLL CMA RTL
  80. AC7776=CLA CLL CMA RAL
  81.  
  82. /* USE ONLY ON VT-78 AND PDP-8E,F,M,A
  83.  
  84. /ID CODE AT START OF BAD BLOCK LIST (BBL)
  85.     ID=123
  86. /RL01 DEFINITIONS
  87.  
  88. RLIOT=6600
  89. RLDC=RLIOT 0    /CLEAR DEVICE
  90. RLSD=RLIOT 1    /SKIP IF DONE
  91. RLMA=RLIOT 2    /LOAD MEM ADDR
  92. RLCA=RLIOT 3    /LOAD REGISTER "A"
  93. RLCB=RLIOT 4    /LOAD REG "B" AND EXECUTE
  94. RLSA=RLIOT 5    /LOAD SECTOR ADDR
  95.         /RLIOT 6 UNUSED
  96. RLWC=RLIOT 7    /LOAD WORD COUNT
  97. RRER=RLIOT 10    /READ ERROR REG
  98. RRWC=RLIOT 11    /READ WORD COUNT
  99. RRCA=RLIOT 12    /READ REG "A"
  100. RRCB=RLIOT 13    /READ REG "B"
  101. RRSA=RLIOT 14    /READ SECTOR ADDR
  102. RRSI=RLIOT 15    /READ SILO BYTE
  103.         /RLIOT 16 UNUSED
  104. RLSE=RLIOT 17    /SKIP IF ERROR
  105. /RLCB FUNCTION BITS:
  106.     RLMT=0    /MAINTENANCE MODE
  107.     RLRE=1    /RESET DRIVE ERRORS
  108.     RLST=2    /READ STATUS REGS INTO SILO
  109.     RLSK=3    /SEEK
  110.     RLRH=4    /READ HEADER
  111.     RLWR=5    /WRITE
  112.     RLRD=6    /READ
  113.     RLRN=7    /READ WITH NO HEADER CHECK
  114. /BIT DEFINITIONS IN REGISTERS:
  115. BYTE=1000    /BYTE TRANSFER MODE
  116. /HEADER BLOCK FOR USE BY "BUILD"
  117.  
  118.     *0
  119.     -1        //V4 OS78 IS SYSTEM ONLY
  120.  
  121. /FORMAT OF ENTRIES IN HEADER BLOCK:
  122. /WORD    DESCRIPTION
  123. /1    GROUP NAME (4 CHAR)
  124. /3    DEVICE NAME (4 CHAR)
  125. /5    DCB WORD FOR AN RL (TYPE 37) DIRECTORY DEVICE,
  126. /    NO MULTIPLE PLATTERS
  127. /6    2-PAGE/SYS/CORESIDENT INDICATOR, OFFSET
  128. /7    0 (UNUSED WORD)
  129. /10    NUMBER OF BLOCKS IN DEVICE
  130.  
  131. DEVICE R2SY;DEVICE SYS;4370;SYS&177+6000;0;7761
  132. /DEVICE R2SY;DEVICE R20A;4370;SYS&177+5000;0;7761
  133. /RL01 SECONDARY BOOTSTRAP
  134.  
  135. /SYSTEM MAP:
  136. /BLOCK    CYL.    SURF.    SECTOR    CONTENTS
  137. /0    0    0    20    SECONDARY BOOTSTRAP
  138. /0    0    0    22    FIELD 0 RESIDENT
  139. /66    1    1    1    FIELD 1 RESIDENT
  140. /66    1    1    3    FIELD 2 RESIDENT
  141.  
  142. /RESIDENT MONITOR CODE OCCUPIES LAST PAGE OF FIELD
  143. /FIELD 0 PAGE IS MONITOR CODE AND SYSTEM HANDLER
  144. /FIELD 1 PAGE IS MONITOR TABLES
  145. /FIELD 2 PAGE IS SYSTEM HANDLER
  146.  
  147.     BOOTA-BOOTB    /-LENGTH FOR "BUILD"
  148.  
  149.     RELOC 0        /WILL RUN AT 00000
  150.  
  151. BOOTA,            /START OF BOOTSTRAP CODE
  152.  
  153. /DATA
  154. C16,    16
  155. C26,    26
  156. C300,    300
  157. C2001,    2001
  158. C6001,    6001
  159. C7600,    7600
  160. C7605,    7605
  161. SECT,    2200        /INITIAL BLOCK 0 VALUE
  162. SURCYL,    0        /INITIAL BLOCK 0 VALUE
  163.  
  164.     ZBLOCK 31-2-.    /LOCATE "IOSUB" (SEE BELOW)
  165.  
  166. FUNC,            /TEMPORARY STORAGE FOR RL01
  167.             /FUNCTION WORD
  168. IOSUB,    BOOT        /SUBROUTINE TO DO I/O; MATCHES
  169.             /SIMILAR SUBR IN PRIMARY BOOTSTRAP
  170.             /INITIAL VALUE WILL START SEC-
  171.             /ONDARY BOOTSTRAP WHEN IT HAS BEEN
  172.             /COMPLETELY READ IN.
  173.     RLCB        /EXECUTE RL01 FUNCTION
  174.     RLSD        /WAIT UNTIL DONE. NOTE: THIS WORD
  175.             /AND THE NEXT ONE MUST BE IN THE
  176.             /SAME LOCATIONS AS THEIR COUNTER-
  177.             /PARTS IN THE PRIMARY BOOTSTRAP.
  178.     JMP .-1
  179.     RLSE
  180.     JMP I IOSUB    /NO ERRORS: RETURN
  181.     JMP .        /ERROR OCCURRED: LOOP IN PLACE AS
  182.             /A CLEAR INDICATION THAT BOOTSTRAP
  183.             /OPERATION FAILED.
  184.  
  185. /START OF SECONDARY BOOTSTRAP OPERATIONS
  186. BOOT,    AC0006        /AC=READ FUNCTION
  187.     JMS READ    /READ FIELD 0 RESIDENT
  188.     RLDC        /CLEAR CONTROLLER REGISTERS IN
  189.             /PREPARATION FOR SEEK
  190.     TAD C6001    /DIFFERENCE WORD FOR CYL 1 SURF 1
  191.     RLCA        /LOAD "A"
  192.     AC0003        /AC=SEEK FUNCTION
  193.     JMS IOSUB    /SEEK
  194.     AC0100        /AC=SECTOR 1
  195.     DCA SECT
  196.     TAD C2001    /AC=CYL 1 SURF 1
  197.     DCA SURCYL
  198.     TAD C16        /AC=READ FUNCTION
  199.     JMS READ    /READ FIELD 1 RESIDENT
  200.     TAD C300    /AC=SECTOR 3
  201.     DCA SECT
  202.     TAD C26        /AC=READ FUNCTION
  203.     JMS READ    /READ FIELD 2 RESIDENT
  204.     CDF 00        /JUST IN CASE
  205.     JMP I C7605    /START KEYBOARD MONITOR
  206.  
  207. /SUBROUTINE TO READ ONE SECTOR INTO ONE PAGE
  208. READ,    0
  209.     DCA FUNC    /SAVE FUNCTION WORD
  210.     TAD SECT
  211.     RLSA        /LOAD SECTOR ADDRESS
  212.     TAD C7600
  213.     RLWC        /LOAD WORD COUNT
  214.     TAD SURCYL
  215.     RLCA        /LOAD REGISTER "A"
  216.     TAD C7600
  217.     RLMA        /LOAD MA (ALL READS ARE INTO
  218.             /LAST PAGE OF FIELDS)
  219.     TAD FUNC    /RETRIEVE FUNCTION WORD
  220.     JMS IOSUB    /DO THE READ
  221.     JMP I READ    /NO ERROR: RETURN
  222.  
  223. BOOTB,            /END OF BOOTSTRAP CODE
  224.  
  225.     RELOC
  226. /RL01 SYSTEM HANDLER CODE
  227.  
  228.     *200
  229.     RELOC 7600
  230.  
  231.     ZBLOCK 7    /REQUIRED BY BUILD
  232.  
  233. /ENTRY POINT FOR SYS
  234. SYS,    VERSION
  235.     CLA
  236. SWITCH,    JMP START    /CHANGED TO "JMP SET"
  237.             /BY ONCE-ONLY CODE AT "START"
  238.     3        /THIS IS A FLAG TO OS/8 THAT
  239.             /THIS IS A 2-PAGE HANDLER.
  240.  
  241. /----- BAD BLOCK LIST (BBL) STARTS HERE
  242. /      AND CONTINUES FOR 11 OCTAL LOCATIONS
  243.  
  244. BBL,
  245.  
  246. /ONCE-ONLY DATA
  247. JMPSET,    JMP SET
  248. COUNT,    -10
  249. ADDR,    BARG
  250. ABRTN,    BRTN
  251. ACDIF,    CIF CDF 00
  252.  
  253. /ONCE-ONLY PARAMETERS FOR 2ND PAGE TO READ IN
  254. /THE BAD BLOCK LIST (BBL) FOR DEVICE RL0A
  255. LIST,    ARTN        /BARG: RETURN TO SELF
  256.     1400        /SECTOR: SECTOR 14
  257.     0        /TRACK: 0
  258.     BBL        /MA: MA
  259.     200        /PAGES: 1 PAGE COUNT
  260.     RLRD        /FNC: READ FUNCTION
  261.     -11        /WC: SET TO BAD BLOCK SIZE INITIALLY    
  262.     4000        /CURTRK: FORCE HEADER READ
  263. /ONCE-ONLY CODE TO READ IN BAD BLOCK LIST (BBL)
  264.  
  265. START,    RDF        /ONCE-ONLY CODE. DESTROYED WHEN
  266.             /BBL IS READ IN ON TOP OF IT.
  267.             /FIRST, SAVE CALLING FIELD OVER
  268.             /THE READ-IN OF THE BBL.
  269.     TAD BACK    /(INITIALLY CONTAINS A CDF)
  270.     DCA BACK
  271.     TAD JMPSET    /NEXT, RESET "SWITCH" TO SKIP
  272.             /AROUND ONCE-ONLY CODE FROM
  273.             /NOW ON.
  274.     DCA SWITCH
  275.     CDF 20
  276. LOOP,    TAD LIST    /RESET ONCE-ONLY DATA IN 2ND PAGE
  277.     DCA I ADDR    /(THIS IS REQUIRED BECAUSE "BUILD"
  278.     ISZ LOOP    /DOESN'T ALLOW ONCE-ONLY CODE IN
  279.     ISZ ADDR    /2ND PAGE OF 2-PAGE SYSTEM HANDLERS)
  280.     IFNZRO .-7642    <KLUDGE:>
  281.     CDF 20        /******** MUST BE AT LOCATION 7642
  282.             /******** FOR FRTS.SV!
  283.     ISZ COUNT
  284.     JMP LOOP
  285.     TAD ACDIF    /ANOTHER ONCE-ONLY RESET
  286.     DCA I ABRTN
  287.     JMS GO        /READ IN BBL
  288. BACK,    CDF        /RESTORE CALLING FIELD
  289.  
  290. /----- ONCE-ONLY CODE ENDS HERE
  291.  
  292. /FALL THROUGH TO SET UP AND DO THE TRANSFER
  293. /SET UP AND DO THE TRANSFER
  294. SET,    TAD BASE    /INITIALIZE BAD BLOCK
  295.             /MAPPING
  296.     DCA MAP
  297.     TAD SYS        /ADDR OF ARG LIST
  298.     JMS GO        /CALL 2ND PAGE SETUP SUBROUTINE
  299.             /DATA FIELD IS 2 ON RETURN
  300. MAP,    TAD        /MAP AROUND BAD BLOCKS, IF
  301.             /ANY.  LOOK AT NEXT BAD BLOCK.
  302.     SNA        /IF 0, TERMINATOR
  303.     JMP MAPPED
  304.     STL CIA        /IF NOT, 13-BIT NEGATE
  305.     TAD I ABLOCK    /SUBTRACT FROM CURRENT BLOCK
  306.     SZL CLA        /SKIP IF BLOCK IS GREATER THAN
  307.             /OR EQUAL TO BAD BLOCK
  308.     JMP MAPPED    /ELSE NO MAPPING TO DO
  309.     ISZ MAP
  310. NEXT,    ISZ I ABLOCK    /INCREMENT CURRENT BLOCK,
  311.             /EITHER DURING TRANSFER OR
  312.             /TO MAP AROUND BAD BLOCK
  313.     JMP MAP        /CONTINUE MAPPING UNTIL DONE
  314.     CIF 20        /IF REQUESTED BLOCK EVER OVERFLOWS TO 0,
  315.     JMP ERROR    /TAKE ERROR RETURN.
  316.  
  317. MAPPED,    TAD I ABLOCK    /CALCULATE TRACK AND SECTOR
  318.             /FROM BLOCK
  319.     RTR
  320.     RTR
  321.     AND A377
  322.     DCA I ATRACK
  323.     TAD I ABLOCK
  324.     AND A17
  325.     CLL RTL
  326.     TAD A7751
  327.     SPA
  328.     TAD A47
  329.     BSW
  330.     DCA I ASECT
  331.     JMS GO        /TRANSFER 1ST PAGE OF BLOCK
  332.     TAD A200    /INCREMENT MA AND SECTOR
  333.     TAD I AMA
  334.     DCA I AMA
  335.     TAD A200
  336.     TAD I ASECT
  337.     DCA I ASECT
  338.     JMS GO        /TRANSFER 2ND PAGE OF BLOCK
  339.     TAD A200    /INCREMENT MA
  340.     TAD I AMA
  341.     DCA I AMA
  342.     JMP NEXT    /CONTINUE WITH NEXT BLOCK,
  343.             /IF ANY
  344. /SUBROUTINE TO CALL 2ND PAGE SUBR TO DO TRANSFER
  345. GO,    0
  346.     CIF 20
  347.     JMS MAIN
  348. ARTN,            /ON BBL READ, RETURN HERE
  349.             /IF IO ERROR.
  350.             /(ERROR WILL BE DETECTED
  351.             /DURING 2ND PAGE VALIDITY
  352.             /CHECK.)
  353.     CDF 20        /DATA FIELD=2ND PAGE
  354.     JMP I GO
  355. /DATA
  356. ASECT,    SECTOR
  357. ATRACK,    TRACK
  358. ABLOCK,    BLOCK
  359. BASE,    TAD BBL+1    /SKIP ID CODE WORD
  360. AMA,    MA
  361. A17,    17
  362. A47,    47
  363. A200,    200
  364. A377,    377
  365. A7751,    7751
  366.  
  367.     ZBLOCK 7744-.    /UNUSED
  368. /SECOND PAGE
  369.  
  370.     RELOC
  371.     *400
  372.     RELOC 7600
  373.  
  374. /SUBROUTINE TO SETUP OR TRANSFER
  375. MAIN,    0
  376.     SNA        /AC TELLS WHICH
  377.     JMP TRANS    /NON-ZERO: TRANSFER
  378. SETUP,    DCA BARG    /SAVE ADDRESS OF ARGUMENTS
  379.     AC4000        /SET FOR INITIAL HEADER READ
  380.     DCA CURTRK    /(2000 IS AN ILLEGAL TRACK)
  381.     TAD B7600    /SET FOR FULL PAGE TRANSFERS
  382.     DCA WC
  383.     TAD I BARG    /GET HANDLER FUNCTION WORD
  384.     AND B4070    /CONVERT TO RL01 FUNCTION
  385.     SPA
  386.     TAD B3777
  387.     TAD BRLRD
  388.     DCA FNC
  389.     TAD I BARG
  390.     RAL        /CONVERT TO PAGE COUNT
  391.     AND B7600
  392.     DCA PAGES
  393.     ISZ BARG
  394.     TAD I BARG    /GET MA
  395.     DCA MA
  396.     ISZ BARG
  397.     TAD I BARG    /GET BLOCK
  398.     DCA BLOCK
  399.     ISZ BARG
  400.     RDF        /SAVE CALLING FIELD
  401.     TAD BCDIF    /FOR RETURN FROM HANDLER
  402.     DCA BRTN
  403.     CDF 00        /CHECK BBL FOR VALIDITY -
  404.     TAD I BBBL    /A VALID BBL HAS AN ID
  405.     TAD CHECK    /CODE IN ITS FIRST LOCATION
  406.     SZA CLA
  407.     JMP ERROR    /INVALID BBL: TAKE ERROR
  408.             /RETURN FROM HANDLER
  409. GOBACK,            /RETURN TO 1ST PAGE
  410. BCDIF,    CIF CDF 00
  411.     JMP I MAIN
  412. /TRANSFER (READ OR WRITE)
  413. TRANS,    AC7775        /SET FOR 3 TRIES
  414.     DCA ERRCNT
  415.     TAD TRACK    /CALCULATE CYLINDER AND
  416.             /SURFACE FROM TRACK
  417.     CLL RAR
  418.     DCA CYL
  419.     RTR
  420.     DCA SURF
  421.     JMS TRKCMP    /COMPARE TRACK WITH LAST
  422.             /ONE TRANSFERRED; IF THE
  423.             /SAME, DO TRANSFER.
  424. RETRY,    RLDC        /IF DIFFERENT, OR IF RE-
  425.             /TRYING, SEEK TO TRACK;
  426.             /CLEAR CONTROLLER REGISTERS
  427.             /FOR SEEK
  428. SEEK,    IAC        /AC=1 FOR RESETTING DRIVE
  429.             /REGISTERS (ERRORS), AC=3
  430.             /FOR DOING SEEK
  431.     JMS IO        /DO A RESET OR A SEEK
  432.     TAD HEADER    /AC=READ HEADER FUNCTION
  433.     JMS IO        /READ NEXT HEADER
  434.     RRSI        /GET HEADER BYTE #1
  435.     BSW        /CALCULATE TRACK
  436.     AND B3
  437.     DCA CURTRK
  438.     RRSI        /GET HEADER BYTE #2
  439.     AND B377
  440.     CLL RTL
  441.     TAD CURTRK
  442.     DCA CURTRK
  443.     JMS TRKCMP    /COMPARE CURRENT AND REQUESTED
  444.             /TRACK; IF SAME, DO TRANSFER
  445.     SPA        /IF DIFFERENT, SEEK: CALCULATE
  446.     CLL CIA        /DIFFERENCE WORD
  447.     RAR
  448.     TAD SURF
  449.     RLCA        /LOAD REGISTER "A"
  450.     AC0002        /PREPARE FOR SEEK
  451.     JMP SEEK    /LOOP BACK TO ENSURE THAT TRACK
  452.             /REACHED IS REALLY THE DESIRED
  453.             /TRACK, IN CASE OF RL02 SEEK
  454.             /UNRELIABILITY.
  455. /SUBROUTINE TO COMPARE CURRENT TRACK WITH REQUESTED
  456. /TRACK AND DO TRANSFER IF THE SAME
  457. TRKCMP,    0
  458.     TAD CURTRK
  459.     CIA
  460.     TAD TRACK
  461.     STL        /SET DIRECTION BIT IN
  462.             /DIFFERENCE WORD IF DIFF-
  463.             /ERENCE IS POSITIVE.
  464.     SZA        /SAME?
  465.     JMP I TRKCMP    /NO
  466.     TAD SECTOR    /YES; LOAD DRIVE REGISTERS
  467.     RLSA
  468.     TAD WC
  469.     RLWC
  470.     TAD SURF
  471.     TAD CYL
  472.     RLCA
  473.     TAD MA
  474.     RLMA
  475.     TAD FNC
  476.     JMS IO        /READ OR WRITE
  477.     TAD B7600    /COUNT PAGES TRANSFERRED
  478.     TAD PAGES
  479.     SNA
  480.     JMP DONE    /NO MORE TO GO
  481.     DCA PAGES
  482.     JMP GOBACK    /MORE TO GO; RETURN TO
  483.             /1ST PAGE
  484.  
  485. /SUBROUTINE TO DO RL01 I/O
  486. IO,    0
  487.     RLCB        /EXECUTE FUNCTION (DRIVE 0)
  488.     RLSD        /WAIT UNTIL DONE
  489.     JMP .-1
  490.     RLSE        /ANY ERRORS?
  491.     JMP I IO    /NO; RETURN
  492.     ISZ ERRCNT    /YES; MORE RETRIES LEFT?
  493.     JMP RETRY    /YES, RETRY IT.
  494. ERROR,    AC4000        /NO, TAKE HANDLER ERROR
  495.     SKP        /RETURN.
  496. DONE,    ISZ BARG    /NORMAL HANDLER RETURN
  497. BRTN,    CIF CDF 00    /RESTORE CALLING FIELD;
  498.     JMP I BARG    /INITIALLY, RETURN TO 1ST PAGE
  499.             /AFTER BBL READ-IN.
  500. /DATA
  501. B3,    3
  502. B377,    377
  503. B3777,    3777
  504. B4070,    4070
  505. B7600,    7600
  506. HEADER,    BYTE RLRH
  507. BRLRD,    RLRD
  508. CHECK,    -ID
  509. BBBL,    BBL
  510. ERRCNT,    0
  511. BLOCK,    0
  512. SURF,    0
  513. CYL,    0
  514.  
  515. /VARIABLES INITIALIZED TO PERFORM INITIAL BBL READ-IN
  516. BARG,    ARTN        /INITIALLY, RETURN TO 1ST PAGE
  517.             /AFTER BBL READ-IN.
  518. SECTOR,    1400        /BBL: SECTOR 14 (TRACK 0)
  519. TRACK,    0
  520. MA,    BBL        /INITIAL BBL READ
  521. PAGES,    200        /INITIAL BBL READ
  522. FNC,    RLRD        /INITIAL BBL READ
  523. WC,    -11        /INITIAL BBL READ
  524. CURTRK,    4000        /INITIAL HEADER READ AND
  525.             /SEEK IF REQUIRED.
  526.  
  527.     ZBLOCK 7774-.    /UNUSED
  528.  
  529.     ZBLOCK 4    /RESERVED FOR USE BY BATCH
  530.             /IN 12K SYSTEMS.
  531.  
  532.     RELOC
  533. $
  534.  
  535.