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 / rl01sy.pa < prev    next >
Text File  |  1992-09-18  |  11KB  |  524 lines

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