Table of Contents

OSB

Table Of Contents

  • [00006] OSB - OPERATING SYSTEM BOOTSTRAP.
  • [00045] MAIN ROUTINE.
  • [00101] MAJOR SUBROUTINES.
  • [00103] RDR - READ DISK RECORD.
  • [00159] RTR - READ TAPE RECORD.
  • [00179] SUBROUTINES.
  • [00181] GDS - GET DISK STATUS.
  • [00192] POS - POSITION MASS STORAGE.
  • [00233] RNS - READ NEXT SECTOR.

Source Code

OSB.txt
  1. IDENT OSB,OSB
  2. PERIPH
  3. MACHINE 6,A INFORM CTI OF CLOCK SUPPORT
  4. BASE M
  5. SST
  6. TITLE OSB - OPERATING SYSTEM BOOTSTRAP.
  7. *COMMENT OSB - OPERATING SYSTEM BOOTSTRAP.
  8. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  9. OSB SPACE 4,10
  10. ***** OSB - OPERATING SYSTEM BOOTSTRAP.
  11. *
  12. * P. D. HAAS. 78/07/31.
  13. OSB SPACE 4,10
  14. *** *OSB* IS THE OPERATING SYSTEM BOOTSTRAP LOADED BY
  15. * *CTI*. ITS SOLE PURPOSE IS TO LOAD *DIO* FROM THE DEAD-
  16. * START MEDIUM TO THE PP ON THE DISPLAY CHANNEL.
  17. SPACE 4,10
  18. *** OPERATOR MESSAGES.
  19. *
  20. * *ERROR LOADING -DIO-.*
  21. OSB SPACE 4,10
  22. *CALL COMPMAC
  23. *CALL COMSDSL
  24. *CALL COMSMSP
  25. *CALL COMSPIM
  26. FWDL$ EQU 1 LINK CHANNEL INSTRUCTIONS FORWARD
  27. *CALL COMPCHL
  28. OSB SPACE 4,10
  29. **** DIRECT LOCATION ASSIGNMENTS.
  30.  
  31.  
  32. LOC 20
  33. DT BSS 1 895 DEADSTART READ FLAG
  34. ERRNZ DT-MP DIRECT CELL LOCATION IN *DIO* MUST MATCH
  35. UN BSS 4 PHYSICAL DISK ADDRESS
  36. L1 BSS 1 SCRATCH
  37. L2 BSS 1 SCRATCH
  38. AP BSS 1 DISK ADDRESS POINTER
  39. ****
  40. OSB SPACE 4,10
  41. ** ASSEMBLY CONSTANTS.
  42.  
  43.  
  44. BUF EQU 100 BUFFER ADDRESS
  45. TITLE MAIN ROUTINE.
  46. OSB SPACE 4,10
  47. ORG DSLA+5*20
  48.  
  49. OSB LDM DPW10A DEADSTART CHANNEL
  50. LPN 37
  51. STD CM
  52. LDC CH01$ SET ADDRESS OF FIRST CHANNEL INSTRUCTION
  53. STD T1
  54. LDM DCST SET DISPLAY CONSOLE STATUS
  55. STD LA
  56. LDN 0
  57. OSB1 RAD T1 ADDRESS OF CURRENT CHANNEL INSTRUCTION
  58. LDI T1 SAVE LINK TO NEXT INSTRUCTION
  59. LPN 37
  60. STD T2
  61. LDD CM MODIFY CHANNEL INSTRUCTION
  62. SBD T2
  63. RAI T1
  64. LDD T2
  65. NJN OSB1 IF MORE INSTRUCTIONS TO MODIFY
  66. STD DT PRESET NOT 895 DEVICE TYPE
  67. RJM RDR READ DISK (TAPE) RECORD
  68. ZJN ERR IF LOAD ERRORS
  69. LDM BUF+5*1+1 CHECK RECORD NAME
  70. SHN 6
  71. LMM BUF+5*1+0
  72. LMC 3RODI
  73. NJN ERR IF NOT *DIO*
  74. LDM PPSDA GET PP SPEED
  75. STD T3
  76. LDC MXRL TRANSMIT *DIO*
  77. OAM. BUF+5*20,CH
  78. LDN 77 TRANSMIT PARAMETERS
  79. OAM. 0,CH
  80. DCN. MR+40
  81. CCF. *+2,MX ALLOW *MDD* TO EXECUTE
  82. DCN. CH+40
  83. ACN. CH
  84. IAM. 0,CH INPUT *SET*
  85.  
  86. ERR LDD LA
  87. ZJN ERR1 IF DEADSTART FROM CC545 CONSOLE
  88. LCN 0 CLEAR DISPLAY
  89. RJM CDDP
  90. LCN 77-ERRA+ERR1
  91. RAM ERRA
  92. ERR1 LDC ERRB DISPLAY ERROR MESSAGE
  93. RJM CDDP
  94. ERRA UJN ERR1 HANG PP IN LOOP
  95.  
  96. ERRB CON ERRC
  97. CON 0
  98.  
  99. ERRC CON 113
  100. DATA C*ERROR LOADING -DIO-.*
  101. TITLE MAJOR SUBROUTINES.
  102. RDR SPACE 4,10
  103. ** RDR - READ DISK RECORD.
  104. *
  105. * EXIT (A) = 0 IF ERROR.
  106. * (T4) = UNIT NUMBER.
  107. * (T5) = SEEK FUNCTION + ALGORITHM INDEX.
  108. *
  109. * USES T1, T6, T7, UN.
  110. *
  111. * CALLS POS, RNS, RTR.
  112.  
  113.  
  114. RDR4 RJM RTR READ TAPE RECORD
  115.  
  116. RDR SUBR ENTRY/EXIT
  117. LDM DPW5A DEADSTART PANEL WORD 5
  118. ZJN RDR4 IF TAPE DEADSTART
  119. LDM OSDPA+3 *OSB* SEEK FUNCTION
  120. STD T5
  121. SHN 14
  122. STM POSA
  123. SHN -14
  124. LMN AIDC
  125. NJN RDR0 IF NOT 895
  126. LDC 2000 SET 895 DEADSTART FLAG ON SEEK
  127. STD DT SAVE 895 DEADSTART FLAG FOR *DIO*
  128. SHN 6-12
  129. RAM POSB
  130. SOM POSC
  131. RDR0 LDM OSDPA+4 *OSB* TRACK
  132. STD T6
  133. LDM DSLA-2 FIRST *DIO* SECTOR FROM *OSB* LINKAGE
  134. STD T7
  135. SHN 21-13
  136. PJN RDR1 IF NOT TRACK SWITCH
  137. SHN 13-21
  138. STD T6 SET NEXT TRACK
  139. LDN 0
  140. STD T7
  141. RDR1 LDM DPW6A UNIT NUMBER
  142. LPN 77
  143. STD UN
  144. STD T4
  145. LDC OSRPA DISK ADDRESS POINTER
  146. STD AP
  147. LDC BUF SET BUFFER ADDRESS
  148. STD T1
  149. RJM POS POSITION MASS STORAGE
  150. RDR2 LDD T1 READ NEXT SECTOR
  151. RJM RNS
  152. PJN RDR3 IF ERROR / EOR
  153. LDC DSLN ADVANCE BUFFER ADDRESS
  154. RAD T1
  155. LMC BUF+TPLN
  156. NJN RDR2 IF NOT GREATER THAN TAPE PRU
  157. RDR3 LJM RDRX RETURN
  158. RTR SPACE 4,10
  159. ** RTR - READ TAPE RECORD.
  160. *
  161. * EXIT (A) = 0 IF ERROR.
  162. * (T6) = 0.
  163. * (T7) = DEADSTART FUNCTION.
  164.  
  165.  
  166. RTR SUBR ENTRY/EXIT
  167. LDM DPW6A DEADSTART FUNCTION
  168. STD T7
  169. LPC 7000 EXTRACT EQUIPMENT NUMBER
  170. RAM RTRA
  171. RTR2 LDN 0 SET TAPE DEADSTART FLAG
  172. STD T6
  173. FNC 40,0
  174. RTRA EQU *-1
  175. LDC TPLN+4 INPUT TAPE RECORD
  176. ACN 0
  177. IAM BUF,0
  178. UJN RTRX RETURN
  179. TITLE SUBROUTINES.
  180. GDS SPACE 4,10
  181. ** GDS - GET DISK STATUS.
  182. *
  183. * EXIT (A) = GENERAL STATUS.
  184.  
  185.  
  186. GDS SUBR ENTRY/EXIT
  187. FNC 12,0 GET GENERAL STATUS
  188. ACN 0
  189. IAN 0
  190. UJN GDSX RETURN
  191. POS SPACE 4,15
  192. ** POS - POSITION MASS STORAGE.
  193. *
  194. * ENTRY (AP) = POINTER TO DISK ADDRESS.
  195. * (UN) = UNIT NUMBER.
  196. * (POSA) = SEEK FUNCTION.
  197. *
  198. * EXIT (UN+1) = PHYSICAL CYLINDER.
  199. * (UN+2) = PHYSICAL TRACK.
  200. * (UN+3) = PHYSICAL SECTOR.
  201. * (AP) ADVANCED TO NEXT ADDRESS.
  202. *
  203. * CALLS GDS.
  204.  
  205.  
  206. POS SUBR ENTRY/EXIT
  207. LDI AP SET CYLINDER
  208. STD UN+1
  209. AOD AP ADVANCE ADDRESS POINTER
  210. LDI AP UNPACK SECTOR
  211. LPC 77
  212. POSB EQU *-1
  213. * LPC 177 (IF 895)
  214. STD UN+3
  215. LDI AP SET TRACK
  216. POSC SHN -6
  217. * SHN -7 (IF 895)
  218. LMD DT SET 895 DEADSTART READ FLAG
  219. STD UN+2
  220. AOD AP ADVANCE POINTER ADDRESS
  221. POS1 FNC 2,0 SEEK FUNCTION
  222. POSA EQU *-1
  223. * FNC 1,0 (1 TO 1 INTERLACE)
  224. ACN 0
  225. LDN 4 OUTPUT SEEK PARAMETERS
  226. OAM UN,0
  227. FJM *,0
  228. DCN 0+40
  229. RJM GDS GET DISK STATUS
  230. ZJN POSX IF READY
  231. UJN POS1 LOOP UNTIL READY
  232. RNS SPACE 4,10
  233. ** RNS - READ NEXT SECTOR.
  234. *
  235. * ENTRY (A) = READ ADDRESS.
  236. *
  237. * EXIT (A) = 0 IF ERROR.
  238. * .GT. 0 IF EOR.
  239. * .LT. 0 IF FULL SECTOR WORD COUNT.
  240. * (T6) = LOGICAL TRACK FOR NEXT READ.
  241. * (T7) = LOGICAL SECTOR FOR NEXT READ.
  242. *
  243. * USES T3, L1, L2.
  244. *
  245. * CALLS GDS, POS.
  246.  
  247.  
  248. RNS SUBR ENTRY/EXIT
  249. SBN 2 SET READ ADDRESS
  250. STD T3
  251. STM RNSA
  252. LDI T3 SAVE LOCATIONS OVERLAID BY LINKAGE
  253. STD L1
  254. LDM 1,T3
  255. STD L2
  256. FNC 4,0 READ DISK SECTOR
  257. LDC DSLN+2
  258. ACN 0
  259. IAM BUF,0
  260. RNSA EQU *-1
  261. RNS1 RJM GDS GET DISK STATUS
  262. NJN RNS1 IF NOT READY
  263. AOD T7 ADVANCE LOGICAL SECTOR
  264. LMI T3
  265. ZJN RNS2 IF MATCHING SECTOR LINKAGE
  266. LDN 0 SET FIRST SECTOR
  267. STD T7
  268. LDI T3 SET NEXT TRACK
  269. STD T6
  270. SHN 0-13
  271. ZJN RNS3 IF NOT TRACK SWITCH
  272. RJM POS POSITION MASS STORAGE
  273. RNS2 LDD L1 RESTORE CELLS OVERLAID BY LINKAGE
  274. STI T3
  275. AOD T3
  276. LDI T3
  277. SHN -6
  278. SHN 21-0 SIGN BIT = FULL SECTOR FLAG
  279. LMD L2
  280. STI T3
  281. ADN 1 NO ERROR ON EOR
  282. RNS3 LJM RNSX RETURN
  283. SPACE 4,10
  284. HERE TERMINATE LINKED CHANNEL INSTRUCTIONS
  285. SPACE 4,10
  286. ERRPL *-DSLA-473 *OSB* OVERFLOWS ONE SECTOR
  287.  
  288. END