Table of Contents

6DD

Table Of Contents

  • [00005] 6DD - CONCURRENT PP MS OVERLAY LOADER.
  • [00009] CONCURRENT PP MS OVERLAY LOADER.
  • [00060] EMS - END MASS STORAGE OPERATION.
  • [00070] WDS - WRITE SECTOR.
  • [00080] RDS - READ SECTOR.
  • [00141] PRS - PRESET.

Source Code

6DD.txt
  1. IDENT 6DD,MSFW
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. TITLE 6DD - CONCURRENT PP MS OVERLAY LOADER.
  6. *COMMENT 6DD - CONCURRENT PP MS OVERLAY LOADER.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. 6DD SPACE 4,10
  9. *** 6DD - CONCURRENT PP MS OVERLAY LOADER.
  10. *
  11. * S. L. BETH. 86/08/14.
  12. SPACE 4,20
  13. *** *6DD* LOADS MS OVERLAYS INTO CONCURRENT PPS (CPP). IT IS
  14. * EXPECTED THAT THE ONLY CPP SUBROUTINE TO CALL *6DD* WILL BE
  15. * THE PERIPHERAL LIBRARY LOADER (PLL) IN PP RESIDENT. *6DD* IS
  16. * LOADED INTO THE DRIVER OVERLAY AREA WHEN A CPP PROGRAM ISSUES
  17. * A *SETMS* REQUEST FOR A 12 BIT MS OVERLAY LOAD. 6DD PROVIDES
  18. * THE STANDARD DRIVER ENTRY POINTS, *RDS*, *WDS*, AND *EMS*.
  19. *
  20. * WHEN IT IS CALLED AT *RDS*, IT ISSUES A CALL TO *1MA* TO AID
  21. * THE LOAD. *1MA* WILL READ THE DISK AND PASS THE DATA TO
  22. * *6DD* VIA THE MESSAGE BUFFER.
  23. *
  24. * WHEN *6DD* IS CALLED AT *WDS*, IT HANGS THE *CPP*.
  25. *
  26. * WHEN IT IS CALLED AT *EMS*, IT SIMPLY RETURNS TO THE CALLER.
  27. *
  28. SPACE 4,10
  29. *** ENTRY CONDITIONS.
  30. *
  31. * MS RESIDENT OVERLAY.
  32. * (T5 - T7) = 6/ ESTO,12/ TRACK,12/ SECTOR
  33. *
  34. * MS READ. (NOT SUPPORTED)
  35. * (T5 - T7) = 3/0, 9/ ESTO,12/ TRACK,12/ SECTOR
  36. COMMON SPACE 4,10
  37. * COMMON DECKS.
  38.  
  39.  
  40. *CALL COMPMAC
  41. *CALL COMPIOU
  42. *CALL COMSMSC
  43. *CALL COMSMSP
  44. EJECT
  45. ** ENTRY POINT TRANSFERS.
  46.  
  47.  
  48. ORG MSFW
  49.  
  50. CON PRS PRESET ADDRESS
  51.  
  52.  
  53. RDS CON 0 ENTRY
  54. UJN RDS. ENTER DRIVER
  55.  
  56.  
  57. WDS CON 0 ENTRY
  58. UJN WDS. ENTER DRIVER
  59. EMS SPACE 4,10
  60. ** EMS - END MASS STORAGE OPERATION.
  61. *
  62. * EXIT (A) = 0.
  63.  
  64.  
  65. .EMS SUBR ENTRY/EXIT
  66. LDN 0
  67. STM CHRV
  68. UJN .EMSX RETURN
  69. WDS SPACE 4,10
  70. ** WDS - WRITE SECTOR.
  71. *
  72. * *WDS* HANGS THE PP WHEN IT IS CALLED.
  73. *
  74. * ENTRY (A) = BUFFER ADDRESS FOR SECTOR.
  75.  
  76.  
  77. WDS. MONITOR HNGM HANG THE PP
  78. WDS1 UJN WDS. CONTINUE HANGING
  79. RDS SPACE 4,10
  80. ** RDS - READ SECTOR.
  81. *
  82. * ENTRY (LA) = BUFFER ADDRESS FOR SECTOR.
  83. *
  84. * EXIT (A) = 0 IF TRANSFER COMPLETE.
  85. * .LT O, IF ERROR OCCURRED.
  86.  
  87.  
  88. RDS. LDD IA
  89. STM RDSB+4
  90. LDN 0
  91. STD T4
  92. STD CM+1
  93. LDD T5 CLEAR RECORD TYPE DATA
  94. LPC 377
  95. STD T5
  96. LDD MA CALL *1MA* TO ASSIST IN THE LOAD
  97. CWM RDSB,ON
  98. STD CM
  99. CWD T4
  100. MONITOR RPPM
  101. LDDL LA SET LOAD ADDRESS
  102. STML RDSA
  103. RDS1 PAUSE
  104. LDD MA
  105. ADN 1
  106. CRD CM
  107. LDD CM CHECK FOR DATA READY
  108. SHN 21-13
  109. MJN RDS2 IF ERROR IN LOAD
  110. SHN 13-12
  111. MJN RDS3 IF EOR ENCOUNTERED
  112. ZJN RDS1 IF DATA NOT READY
  113. LDD MA READ DATA
  114. ADN 2
  115. CRM **,CM
  116. RDSA EQU *-1
  117. LDD CM ADVANCE READ ADDRESS
  118. SHN 2
  119. ADD CM
  120. RAML RDSA
  121. LDN 0 INDICATE READY FOR NEXT BLOCK
  122. STD CM
  123. LDD MA
  124. ADN 1
  125. CWD CM
  126. UJN RDS1 LOOP FOR MORE DATA
  127.  
  128. RDS2 LDML RDS SET RETURN ADDRESS
  129. STDL CM
  130. LCN 1 SET ERROR FLAG
  131. LJM 0,CM RETURN
  132.  
  133. RDS3 LDML RDS SET RETURN ADDRESS
  134. STDL CM
  135. LDN 0 INDICATE READ COMPLETE
  136. LJM 0,CM RETURN
  137.  
  138.  
  139. RDSB VFD 18/3L1MA,6/0,12/11,24/0
  140. PRS SPACE 4,10
  141. ** PRS - PRESET.
  142. *
  143. * MACROS BLI.
  144.  
  145.  
  146. PRS LDC PRSA GET TABLE OF LONG INSTRUCTIONS
  147. STD CM+4
  148. LDD T3 PRESERVE *T3*
  149. STD CM+3
  150. PRS1 LDI CM+4 GET NEXT INSTRUCTION ADDRESS
  151. ZJN PRS2 IF END OF LIST
  152. STD T3
  153. BLI T3 BUILD LONG INSTRUCTION
  154. AOD CM+4
  155. UJN PRS1 PROCESS NEXT INSTRUCTION
  156.  
  157. PRS2 LDD CM+3 RESTORE *T3*
  158. STD T3
  159. LDC SMSX ENSURE PRESET IS NOT RE-EXECUTED
  160. STM MSFW
  161. LJM SMSX RETURN
  162.  
  163.  
  164. PRSA BSS 0
  165. LIST16
  166.  
  167. .1 MAX *
  168. .1 SET .1+4-MSFW CHECK FOR OVERFLOW
  169. .1 SET .1/5
  170. .1 SET MSFW+.1*5
  171. .2 SET PPFW-5-*-5 BYTES AVAILABLE BEFORE OVERFLOW
  172. ERRNG PPFW-5-.1 DRIVER OVERFLOWS INTO *PPFW*-5
  173. END