Table of Contents

DDF

Table Of Contents

  • [00005] DDF - DISPLAY DISK FILE.
  • [00009] DISPLAY DISK FILE.
  • [00261] ACRDEF - AUX COMMAND ROUTINE DEFINITION.
  • [00282] ACROVL - DEFINE AUX COMMAND ROUTINE OVERLAY.
  • [00330] COMMAND - ENTER COMMAND PROCESSOR.
  • [00362] ENTER - ENTER SPECIAL SYNTAX.
  • [00393] INDEX - GENERATE INDEXED TABLE.
  • [00449] OVERLAY - DEFINE NEW OVERLAY.
  • [00472] RSDEF - RIGHT SCREEN PROCESSOR DEFINITION.
  • [00499] RSOVL - DEFINE RIGHT SCREEN DISPLAY PROCESSOR OVERLAY.
  • [00565] MAIN PROGRAM.
  • [00567] MAIN PROGRAM.
  • [00591] DPP - DROP PP.
  • [00616] LEFT SCREEN DISPLAY.
  • [00642] DLS - DISPLAY LEFT SCREEN.
  • [00949] RIGHT SCREEN DISPLAY.
  • [00961] DRS - DISPLAY RIGHT SCREEN.
  • [01007] CENTRAL MEMORY RESIDENT TABLES.
  • [01013] TCEF - TABLE OF COMMAND ENTRY FORMATS.
  • [01095] TCRO - TABLE OF CENTRAL RESIDENT OVERLAYS.
  • [01131] LOAD COMMAND PROCESSORS.
  • [01133] LCP - LOAD COMMAND PROCESSORS.
  • [01202] PSS - PAUSE FOR SYSTEM.
  • [01217] OVL - COMMAND PROCESSOR OVERLAY LOAD ADDRESS.
  • [01221] PRESET PROGRAM.
  • [01223] PRS - PRESET PROGRAM.
  • [01412] RIGHT SCREEN DISPLAY PROCESSOR CM RESIDENT OVERLAYS.
  • [01423] DFB - DISPLAY FIVE BYTES/LINE.
  • [01493] DTB - DISPLAY TEN BYTES/LINE
  • [01603] DTX - DISPLAY TEXT.
  • [01673] DLC - DISPLAY LEGAL COMMANDS.
  • [01760] DFD - DISPLAY FORMATTED DATA.
  • [01826] DCE - DISPLAY PF CATALOG ENTRY.
  • [01914] DPT - DISPLAY PACKED DATE AND TIME.
  • [02022] DSS - DISPLAY SYSTEM SECTOR.
  • [02081] DPE - DISPLAY PFC ENTRY.
  • [02131] DEI - DISPLAY EOI SECTOR.
  • [02209] KEYBOARD INPUT PROCESSING.
  • [02257] DKB - DISPLAY KEYBOARD BUFFER.
  • [02333] PKI - PROCESS KEYBOARD INPUT.
  • [02442] IKE - INTERPRET KEYBOARD ENTRY.
  • [02561] ERR - SET ERROR MESSAGE.
  • [02581] IMS - INITIALIZE MASS STORAGE DRIVERS AND RANDOM ACCESS.
  • [02587] RET - NORMAL RETURN.
  • [02606] SBN - SET BYTE NUMBER MESSAGE.
  • [02655] SCP - START UP CPU PROGRAM.
  • [02668] SKM - SET KEYBOARD MESSAGE.
  • [02677] AOS - ADVANCE ONE SECTOR.
  • [02689] AOT - ADVANCE ONE TRACK.
  • [02699] APE - ADVANCE PAST EOI.
  • [02717] ATZ - ADVANCE ONE TRACK AND ZERO SECTOR.
  • [02732] BOS - BACKUP ONE SECTOR.
  • [02740] BSP - BACKSPACE KEYBOARD BUFFER.
  • [02752] CMB - CLEAR MESSAGE AND BUFFER.
  • [02766] DDC - DROP DISPLAY CHANNEL.
  • [02773] DTN - DECREMENT TRACK NUMBER.
  • [02781] IRD - INCREMENT RIGHT DISPLAY.
  • [02789] ITN - INCREMENT TRACK NUMBER.
  • [02795] PEC - PROCESS ENTERED COMMAND.
  • [02802] RCS - READ CURRENT SECTOR.
  • [02808] RRD - ROTATE RIGHT DISPLAY.
  • [02817] SRE - SET REPEAT ENTRY.
  • [02826] MEMORY CHANGES.
  • [02837] EMC - ENTER MEMORY CHANGE.
  • [02931] SUBROUTINES.
  • [02933] ASD - ASSEMBLE DIGITS.
  • [02949] ASN - ASSEMBLE NAME.
  • [02990] CDR - CONVERT DIGITS RIGHT ADJUSTED.
  • [03030] CEQ - CHECK EQUIPMENT.
  • [03054] CLB - CHECK LOCK BIT.
  • [03072] CSA - COMPUTE SCRATCH AREA ADDRESS.
  • [03100] CSB - CLEAR SCREEN BUFFER.
  • [03132] CTR - CHECK TRACK RESERVATION BIT.
  • [03148] CTS - CHECK TRACK AND SECTOR AND ZERO IF TOO LARGE.
  • [03197] DMW - DISPLAY MEMORY WORDS.
  • [03277] D2D - DISPLAY 2 DIGITS.
  • [03292] D4D - DISPLAY 4 DIGITS.
  • [03309] END - END CPU PROGRAM.
  • [03327] LDO - LOAD OVERLAY.
  • [03387] ODC - OUTPUT DISPLAY CODE.
  • [03412] RCP - RECALL COMMAND PROCESSOR IF NECESSARY.
  • [03434] RSB - READ SECTOR TO BUFFER.
  • [03454] SNS - SET NEXT SECTOR.
  • [03481] SPP - SET PAGE PARAMETERS.
  • [03505] WCC - WAIT FOR CPU TO COMPLETE.
  • [03543] BUFFERS.
  • [03545] SRA - SCRATCH REGISTER AREA.
  • [03576] PRESET PROGRAM.
  • [03578] PRR - PRESET RESIDENT ROUTINES.
  • [03668] OVL - INITIALIZE OVERLAY.
  • [05070] TAR - TABLE ACCESS ROUTINES.
  • [05087] CFA - CALCULATE FNT ADDRESS.
  • [05122] CTO - CHECK TABLE ORDINAL.
  • [05146] RFE - READ FST ENTRY.
  • [05596] MST - SET MST RECOVERY TABLE.
  • [05799] BTS - BUILD TRT SECTOR.
  • [05861] CLE - CHECK FOR LINKAGE ERRORS.
  • [06185] LRR - LABEL/TRT RECONSTRUCTION SUBROUTINES.
  • [06193] CEI - CHECK EOI SECTOR.
  • [06240] CSS - CHECK SYSTEM SECTOR.
  • [06331] RDM - RESUME DISPLAY.
  • [06349] RRP - RESTORE RECOVERY POINTERS.
  • [06369] SRP - SAVE RECOVERY POINTERS.
  • [06390] STA - SET TABLE ADDRESS.
  • [06403] WSM - WRITE STATUS MESSAGE.

Source Code

DDF.txt
  1. IDENT DDF,DDF
  2. PERIPH
  3. BASE M
  4. SST BFMS,FNSS,EQSS,FTSS,NSSS,GQSS,FASS,DTSS
  5. TITLE DDF - DISPLAY DISK FILE.
  6. *COMMENT DDF - DISPLAY DISK FILE.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. DDF SPACE 4,10
  9. *** DDF - DISPLAY DISK FILE.
  10. *
  11. * J. J. EIKUM. 73/03/13.
  12. * J. J. EIKUM. 78/11/24.
  13. * P. C. HIGGINS. 81/06/08.
  14. * P. C. HIGGINS. 84/05/01.
  15. * L. K. JACOBS. 84/10/01.
  16. DDF SPACE 4,50
  17. *** DDF PROVIDES THE CAPABILITY TO READ AND DISPLAY THE
  18. * CONTENTS OF PHYSICAL DISK SECTORS. THE CONTENTS OF THE
  19. * SECTOR CAN BE CHANGED AND THE SECTOR REWRITTEN.
  20. *
  21. * SEVERAL METHODS ARE PROVIDED TO SPECIFY THE DISK
  22. * ADDRESS TO READ. THE ADDRESS CAN BE SPECIFIED EXPLICITLY
  23. * BY ENTERING THE EST ORDINAL, TRACK, AND SECTOR, OR AN FNT,
  24. * EJT, OR QFT ORDINAL CAN BE SPECIFIED AND THE BEGINNING OR
  25. * CURRENT POSITION WILL BE DISPLAYED. SEVERAL SCRATCH AREAS
  26. * ARE AVAILABLE TO STORE EST ORDINAL, TRACK, AND SECTOR
  27. * WHILE READING OTHER LOCATIONS ON MASS STORAGE. RANDOM
  28. * ADRESSING AND PERMANENT FILE REFERENCING COMMANDS ARE ALSO
  29. * PROVIDED. DDF PROVIDES THE CAPABILITY OF PRINTING THE
  30. * INFORMATION DISPLAYED.
  31. *
  32. * WARNING. SINCE THE MASS STORAGE I/O IS DONE BY DDF
  33. * ITSELF, THE DISPLAY MAY BLINK DURING THE ACTUAL TRANSFER,
  34. * ESPECIALLY IN A BUSY SYSTEM. IF THE DISK CHANNEL HANGS FOR
  35. * ANY REASON, THE CONSOLE WILL BLANK AND THE KEYBOARD WILL BE
  36. * INOPERABLE.
  37. *
  38. * WARNING. SOME OF THE DDF COMMANDS, THE ONES THAT
  39. * REQUIRE THE KEYBOARD TO BE UNLOCKED, CAN MAKE CHANGES THAT
  40. * MAY CAUSE THE SYSTEM TO HANG OR PERMANENT FILES TO BE LOST.
  41. * THESE BAD EFFECTS MAY NOT OCCUR UNTIL SOME TIME AFTER THE
  42. * CHANGES HAVE BEEN MADE AND AT THAT TIME IT MAY BE IMPOSSIBLE
  43. * TO UNDERSTAND WHAT HAPPENED. ALSO, IT IS REMOTELY POSSIBLE
  44. * TO BLANK THE CONSOLE WHILE USING THESE COMMANDS. IT IS
  45. * IMPORTANT THAT THE DDF USER UNDERSTAND WHAT IS BEING DONE
  46. * BEFORE USING THESE COMMANDS.
  47. DDF SPACE 4,10
  48. *** DAYFILE MESSAGES.
  49. *
  50. *
  51. * * INCORRECT USER ACCESS.* = *SECURITY-UNLOCK* WAS NOT SET
  52. * ON A SECURED SYSTEM.
  53. DDF SPACE 4,10
  54. *** OPERATOR MESSAGES.
  55. *
  56. *
  57. * THE FOLLOWING MESSAGES MAY APPEAR AT THE CONTROL POINT.
  58. *
  59. * * WAITING FOR MEMORY.* = DDF IS WAITING FOR CM TO STORE
  60. * THE DISPLAY AND COMMAND PROCESSORS.
  61. * *READING EQXXX TP=XXXX CT=XXXX* = SHOWS STATUS OF CHECKOUT
  62. * DURING A PACK RECOVERY.
  63. *
  64. *
  65. * ABOVE THE COMMAND LINE, THE FOLLOWING MESSAGES MAY APPEAR.
  66. *
  67. * *FORMAT ERROR.* = A FORMAT ERROR WAS DETECTED DURING
  68. * TRANSLATION OF THE ENTRY.
  69. * *INCORRECT ENTRY.* = THE COMMAND WAS NOT LEGAL.
  70. * *INCORRECT EQUIPMENT.* = THE EST ORDINAL SPECIFIED EITHER WAS
  71. * NOT MASS STORAGE OR WAS A NULL EQUIPMENT.
  72. * *INCORRECT PARAMETER.* = THE PARAMETER IN THE ENTRY WAS
  73. * INCORRECT OR TOO LARGE.
  74. * *REPEAT ENTRY.* = THE ENTRY WILL NOT BE CLEARED AFTER
  75. * EXECUTION.
  76. * *SYSTEM BUSY.* = DDF IS WAITING FOR THE SYSTEM TO PROCESS
  77. * A REQUEST.
  78. * * BYTE NNNN.* = THE DATA SPECIFIED IS IN BYTE NNNN.
  79. * * LENGTH = NNNNNNNNB.* = THE *SKIPEI* COMMAND HAS SKIPPED
  80. * NNNNNNNN (OCTAL) SECTORS.
  81. *
  82. * THE FOLLOWING MESSAGES TELL WHY THE *SCAN* COMMAND STOPPED.
  83. * *LINKAGE BYTE BAD.*
  84. * *SYSTEM SECTOR LINKAGE BYTE BAD.*
  85. * *TRACK LINK IN WRONG SECTOR.*
  86. * *WORD COUNT TOO BIG.*
  87. * *TRACK NOT RESERVED.*
  88. *
  89. * THE FOLLOWING MESSAGES MAY APPEAR DURING A PACK RECOVERY.
  90. * *ERROR IN TRACK STATUS.*
  91. * *END OF EQUIPMENT.*
  92. * *SYSTEM SECTOR IN TRACK.*
  93. * *NEXT TRACK IN USE.*
  94. *
  95. * SOME COMMANDS READ SEVERAL SECTORS. IF A DISK ERROR IS
  96. * ENCOUNTERED WHILE PROCESSING THE COMMAND, PROCESSING STOPS
  97. * AND THE ERROR CODE IS DISPLAYED ON THE LEFT SCREEN.
  98. DDF SPACE 4,10
  99. * COMMON DECKS.
  100.  
  101.  
  102. *CALL COMDMAC
  103. *CALL COMPMAC
  104. *CALL COMSCPS
  105. *CALL COMSEJT
  106. *CALL COMSLFD
  107. *CALL COMSPIM
  108. *CALL COMSMSP
  109. *CALL COMSMST
  110. *CALL COMSPRD
  111. *CALL COMSSSD
  112. *CALL COMSZOL
  113. DDF SPACE 4,10
  114. ** PROGRAMS CALLED.
  115. *
  116. * DDFILE - DDF UTILITY FUNCTION PROCESSOR.
  117. * NOTE - (RA+2) = POINTER TO OUTPUT FILE.
  118. * (RA+3) = POINTER TO *DBUF*.
  119. * (RA+4) = LWA+1 OF *DDFILE*.
  120. * (RA+5) = CPU STATUS WORD - USED TO RECEIVE FUNCTION
  121. * CODE FROM *DDF*.
  122. * THE ASSEMBLY CONSTANT *D* (=5) IS USED TO REFERENCE
  123. * THESE LOCATIONS.
  124. DDF SPACE 4,50
  125. ** DDF LOADING SEQUENCE.
  126. *
  127. * THE FOLLOWING SEQUENCE IS USED TO INITIALIZE *DDF*.
  128. *
  129. * A) UPON ENTRY *DDF* BRANCHES TO *PRS*.
  130. * - CHECK FOR LEGAL USER.
  131. * - LOAD *DDFILE*.
  132. * - REQUEST FL FOR CM RESIDENT TABLES AND PROCESSOR
  133. * OVERLAYS.
  134. * - LOAD RIGHT SCREEN PROCESSOR OVERLAYS TO CM.
  135. * B) *PRS* BRANCHES TO *LCP*.
  136. * - LOAD AND PRESET EACH COMMAND PROCESSOR OVERLAY, AND
  137. * LOAD COMMAND PROCESSORS TO CM.
  138. * - WRITE TABLES TO CM.
  139. * C) LOAD RESIDENT OVERLAY.
  140. * - PRESET DIRECT CELLS AND CONSTANTS.
  141. * - SET CHANNELS AND REQUEST DISPLAY.
  142. * - SET EQUIPMENT PARAMETERS FOR DEFAULT FAMILY-S
  143. * LABEL TRACK.
  144. * - CLEAR END OF SECTOR BUFFER FOR NEATER DISPLAY.
  145. * D) ENTER MAIN LOOP VIA THE READ SECTOR COMMAND PROCESSOR.
  146. *
  147. * DDF LOADING SEQUENCE DIAGRAM -
  148. *
  149. * ORIGINAL PROGRAM
  150. *
  151. * LOC PPFW(1100)----------------------------------------------
  152. * DDF(MAIN LOOP)
  153. * DLS(LEFT SCREEN DRIVER)
  154. * DRS(RIGHT SCREEN DRIVER)
  155. * LOC RSPLA---------------------------------------------------
  156. * TABLES(TCEF,TCRO)
  157. * LCP(LOAD COMMAND PROCESSORS)>>>>>>>>>V>>>>>V>>>>>V>>>>>V
  158. * LOC OVL----------------------------------V-----V-----V V
  159. * PRS 8XB 8XC 8XD V
  160. * RIGHT SCREEN PROCESSORS . . . V
  161. * LOC RESLA(AFTER LONGEST-----------------.-----.-----.-----V
  162. * SINGLE RIGHT SCREEN . . . 8XA
  163. * PROCESSOR) . . . .
  164. * . . . .
  165. * . . . .
  166. * LOC CPLA---------------------------------.-----.-----.-----.
  167. * . . . PRR
  168. * . . . .
  169. * . . . .
  170. *
  171. *
  172. * PP STRUCTURE AFTER LOAD COMPLETE, DURING EXECUTION -
  173. *
  174. * LOC PPFW(1100)--------------------
  175. * DDF(MAIN LOOP)
  176. * DLS(LEFT SCREEN DRIVER)
  177. * DRS(RIGHT SCREEN DRIVER)
  178. * LOC RSPLA-------------------------
  179. * / CURRENT /
  180. * / RIGHT /
  181. * / SCREEN /
  182. * / PROCESSOR /
  183. * LOC RESLA-------------------------
  184. * 8XA -
  185. * RESIDENT
  186. * ROUTINES
  187. * PKI, ETC.
  188. * LOC BFMS--------------------------
  189. * SECTOR BUFFER
  190. * LOC CPLA--------------------------
  191. * / CURRENT /
  192. * / COMMAND /
  193. * / PROCESSOR /
  194. *
  195. *
  196. * CM STRUCTURE AFTER LOAD COMPLETE, DURING EXECUTION -
  197. *
  198. * ORG-------------------------------------------------
  199. * DDFILE(CP PROGRAM)
  200. * DDFILE FL-------------------------------------------
  201. * TCEF(TABLE OF COMMAND FORMATS)
  202. * TCRO(TABLE OF RIGHT SCREEN PROCESSOR OVERLAYS)
  203. * DDFILE FL + CMTL------------------------------------
  204. * RIGHT SCREEN PROCESSORS
  205. * COMMAND PROCESSORS(LOADED FROM OVERLAYS)
  206. DDF SPACE 4,10
  207. **** DIRECT LOCATION ASSIGNMENTS.
  208.  
  209.  
  210. MC EQU T4 MASS STORAGE CHANNEL (NOT A SCRATCH CELL)
  211. EQ EQU T5 EST ORDINAL (NOT A SCRATCH CELL)
  212. TK EQU T6 TRACK (NOT A SCRATCH CELL)
  213. SC EQU T7 SECTOR (NOT A SCRATCH CELL)
  214. DK EQU 15 DISPLAY KEYBOARD CONTROL
  215. * 16 SPARE
  216. * 17 SPARE
  217. AB EQU 20 - 24 ASSEMBLY BUFFER
  218. UI EQU AB+3 USER INDEX
  219. RI EQU AB+3 RANDOM INDEX
  220. BA EQU 25 - 26 BUFFER ADDRESS
  221. RC EQU 27 REPEAT COUNT
  222. SB EQU 30 SYSTEM BUSY FLAG
  223. CR EQU 31 CHANNEL RESERVED FLAG
  224. RS EQU 32 RIGHT SCREEN DISPLAY
  225. TA EQU 33 CM SYNTAX TABLE ADDRESS/100B
  226. EF EQU 34 EXECUTE FLAG
  227. LT EQU 35 LAST TRACK NUMBER ON EQUIPMENT
  228. LS EQU 36 LAST SECTOR NUMBER ON TRACK
  229. RT EQU 37 CM TRT RECOVERY TABLE ADDRESS/100B
  230. KE EQU 40 KEYBOARD ENTRY
  231. KI EQU 41 KEYBOARD BUFFER INDEX
  232. KM EQU 42 KEYBOARD MESSAGE POINTER
  233. CA EQU 43 CHARACTER ADDRESS
  234. FN EQU 44 - 50 FILE NAME
  235. * EQU 51 - 57 SPARES
  236. PF EQU 60 - 64 PF CONTROL WORD
  237. * 65 SPARE
  238. XC EQU 66 X-COORDINATE (6000B, CH01 ASSUMED)
  239. YC EQU 67 Y-COORDINATE
  240.  
  241. ****
  242. DDF SPACE 4,20
  243. ** DIRECT CELL USAGE.
  244. *
  245. * THE FOLLOWING DIRECT CELLS CAN BE USED AS SCRATCH LOCATIONS
  246. * BY THE DISPLAY ROUTINES AND COMMAND PROCESSORS.
  247. *
  248. * T0 - T3.
  249. * CM - CM+4.
  250. * AB - AB+4.
  251. * RC.
  252. * YC.
  253. *
  254. * THE FOLLOWING DIRECT CELLS CAN BE USED AS SCRATCH LOCATIONS
  255. * BY THE COMMAND PROCESSORS ONLY.
  256. *
  257. * FN - FN+4.
  258. DDF TITLE MACRO DEFINITIONS.
  259. * MACRO DEFINITIONS.
  260. ACRDEF SPACE 4,10
  261. ** ACRDEF - AUX COMMAND ROUTINE DEFINITION.
  262. *
  263. *NAME ACRDEF
  264. *
  265. * ENTRY *NAME* = OVERLAY NAME (CM FL RESIDENT).
  266. *
  267. * DEFINES TAG *NAME_M* AS INDEX OF OVERLAY CONTROL WORD IN
  268. * TABLE *TCRO*.
  269.  
  270.  
  271. PURGMAC ACRDEF
  272.  
  273. MACRO ACRDEF,NAM
  274. CON /NAM/NAM,NAM_L,0,NAM,0
  275. .1 SET *O-TCRO-5
  276. QUAL
  277. NAM_N EQU /PRESET/.1/5
  278. QUAL *
  279. LOC .1/5+1
  280. ENDM ACRDEF
  281. ACROVL SPACE 4,10
  282. ** ACROVL - DEFINE AUX COMMAND ROUTINE OVERLAY.
  283. *
  284. *NAME ACROVL LA
  285. *
  286. * ENTRY *NAME* = NAME OF OVERLAY. (CM FL RESIDENT)
  287. * *LA* = LOAD ADDRESS.
  288. *
  289. * NOTE IF THE OVERLAY IS TO USE THE RIGHT SCREEN DISPLAY
  290. * OVERLAY AREA, SEE COMMENTS ON USE OF THIS AREA
  291. * WITH DEFINITION OF SYMBOL *ACRLA*.
  292. * NOTE TO BEGIN A SEQUENCE OF OVERLAYS, THE SYMBOL *ACRA*
  293. * MUST BE UNDEFINED OR EQUAL TO ZERO.
  294.  
  295.  
  296. PURGMAC ACROVL
  297.  
  298. MACRO ACROVL,NAM,LA
  299. LOC *O
  300. BSS 0
  301. .A IF DEF,//ACRA
  302. .B IFNE //ACRA,0
  303. QUAL *
  304. QUAL PRESET
  305. .1 SET *-ACRA+4
  306. "ACRA"L EQU .1/5
  307. .CMTL SET .CMTL+"ACRA"L
  308. QUAL *
  309. .A ENDIF
  310. .B ENDIF
  311. USE NAM
  312. .C IFC NE,$NAM$$
  313. QUAL PRESET
  314. NAM EQU *
  315. ACRA MICRO 1,, NAM
  316. QUAL *
  317. QUAL
  318. ACRA SET *
  319. QUAL *
  320. QUAL NAM
  321. LOC LA
  322. NAM EQU *
  323. .C ELSE
  324. QUAL
  325. ACRA SET 0
  326. QUAL *
  327. .C ENDIF
  328. ENDM ACROVL
  329. COMMAND SPACE 4,10
  330. ** COMMAND - ENTER COMMAND PROCESSOR.
  331. *
  332. *CMD COMMAND
  333. *
  334. * ENTRY *CMD* = NAME OF COMMAND PROCESSOR.
  335. *
  336. * NOTE - COMMAND PROCESSORS CANNOT USE LITERALS.
  337.  
  338.  
  339. PURGMAC COMMAND
  340.  
  341. MACRO COMMAND,CMD
  342. LOC *O
  343. BSS 0
  344. .A IF DEF,CMDA
  345. QUAL PRESET
  346. .1 SET *-/DDF".N"/CMDA+4
  347. "CMDA"L EQU .1/5
  348. .MCMDL MAX .MCMDL,"CMDA"L
  349. .CMTL SET .CMTL+"CMDA"L
  350. QUAL *
  351. .A ENDIF
  352. .B IFC NE,$CMD$$
  353. QUAL PRESET
  354. CMD EQU .N*10000+*
  355. CMDA MICRO 1,, CMD
  356. QUAL *
  357. CMDA SET *
  358. LOC CPLA
  359. .B ENDIF
  360. ENDM COMMAND
  361. ENTER SPACE 4,10
  362. ** ENTER - ENTER SPECIAL SYNTAX.
  363. *
  364. *CMD ENTER (SYNTAX),D
  365. *
  366. * ENTRY *CMD* = NAME OF COMMAND PROCESSOR.
  367. * *SYNTAX* = SYNTAX OF COMMAND.
  368. * IF *D* IS PRESENT, A DUMMY ENTRY IS DEFINED.
  369.  
  370.  
  371. PURGMAC ENTER
  372.  
  373. MACRO ENTER,CMD,SYNTAX,D
  374. .A IFC EQ,$D$$
  375. CON CMD_L*100+CMD/10000,CMD-CMD/10000*10000
  376. .A ELSE
  377. CMD EQU *O
  378. CON 0,0
  379. .A ENDIF
  380. ORG *O-2
  381. .1 SET *
  382. DATA Z$SYNTAX$
  383. BSSZ 10-*O+.1 FILL REMAINDER OF SYNTAX AREA (15D CHAR MAX)
  384. .B IFC EQ,$D$$
  385. CON CMD_L*100+CMD/10000,CMD-CMD/10000*10000
  386. .B ELSE
  387. CON 0,0
  388. .B ENDIF
  389. .1 SET *O-TCEF
  390. LOC .1/5
  391. ENDM ENTER
  392. INDEX SPACE 4,40
  393. ** INDEX - GENERATE INDEXED TABLE.
  394. * (MODIFIED VERSION OF MACRO FROM *COMPMAC*.)
  395. *
  396. *
  397. *NAME INDEX TYPE,ADDRESS
  398. *
  399. * ENTRY *NAME* = TABLE NAME.
  400. * *TYPE* = OFFSET INTO TABLE FOR THIS ENTRY.
  401. * *ADDRESS* = CONTENTS OF THIS ENTRY.
  402. *
  403. * THIS MACRO IS INTENDED TO GENERATE TABLES WHICH ARE INDEXED
  404. * BY SYMBOLIC CONSTANTS SUCH AS FILE AND JOB ORIGIN CODES.
  405. * IT HAS 3 CALLING SEQUENCES.
  406. *
  407. * IF *NAME* IS PRESENT, THE FWA OF THE TABLE IS SET TO *NAME*.
  408. *
  409. * IF *ADDRESS* IS MISSING, THE TABLE IS TERMINATED WITH AN
  410. * *ORG* TO THE END OF THE TABLE. THIS RESULTS IN ZERO ENTRIES
  411. * FOR UNDEFINED ENTRIES IN THE TABLE.
  412. *
  413. * OTHERWISE, A TABLE ENTRY IS MADE AT *INDEX* + *TYPE* OF
  414. * *ADDRESS*.
  415. *
  416. * EXAMPLE - TO GENERATE A TABLE FOR PROCESSING FILE TYPES.
  417. *
  418. *TFTP INDEX BEGIN TABLE
  419. *
  420. * INDEX PRFT,PRP PROCESS PRINT FILE AT *PRP*
  421. * INDEX LOFT,LOP PROCESS LOCAL FILE AT *LOP*
  422. *
  423. * INDEX MXFT TERMINATE TABLE AT *TFTP*+*MXFT*
  424. *
  425. * THE CODE PROCESSING THIS TABLE NOTES THAT -
  426. * A FILE OF TYPE *MXFT* CANNOT BE PROCESSED,
  427. * A TABLE ENTRY = 0, CANNOT BE PROCESSED.
  428. *
  429. * USES SYMBOL NAME *INDEX*.
  430.  
  431.  
  432. PURGMAC INDEX
  433.  
  434. MACRO INDEX,A,B,C
  435. .A IFC NE,$A$$
  436. A BSS 0
  437. .1 SET A
  438. .2 SET *O
  439. .A ELSE
  440. ORG .2+B
  441. IFC NE,$C$$,2
  442. LOC B
  443. CON C
  444. LOC .1+B
  445. BSS 0
  446. .A ENDIF
  447. ENDM INDEX
  448. OVERLAY SPACE 4,10
  449. ** OVERLAY - DEFINE NEW OVERLAY.
  450. *
  451. * OVERLAY ORG,(TITLE)
  452. *
  453. * ENTRY *ORG* = ORIGIN ADDRESS OF OVERLAY.
  454. * *TITLE* = TITLE FOR OVERLAY.
  455.  
  456.  
  457. PURGMAC OVERLAY
  458.  
  459. OVERLAY MACRO O,TEXT
  460. .N SET .N+1
  461. ERRNG 1R4-.N TOO MANY OVERLAYS
  462. .N MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ01234
  463. TTL DDF/8"OVLN"".N" - TEXT
  464. TITLE
  465. QUAL DDF".N"
  466. IDENT 8"OVLN"".N",O TEXT
  467. *COMMENT DDF - TEXT
  468. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  469. ORG O
  470. ENDM OVERLAY
  471. RSDEF SPACE 4,10
  472. ** RSDEF - RIGHT SCREEN PROCESSOR DEFINITION.
  473. *
  474. *NAME RSDEF R
  475. *
  476. * ENTRY *NAME* = PROCESSOR OVERLAY NAME.
  477. * *R* = FLAG TO INDICATE PROCESSOR IS RESIDENT, NOT
  478. * AN OVERLAY.
  479. *
  480. * DEFINES TAG *NAME_N* AS INDEX OF OVERLAY CONTROL WORD IN
  481. * TABLE *TDPO*.
  482.  
  483.  
  484. PURGMAC RSDEF
  485.  
  486. MACRO RSDEF,NAM,R
  487. .A IFC EQ,$R$$
  488. CON /NAM/NAM,NAM_L,0,NAM,0
  489. .A ELSE
  490. CON NAM,0,0,0,0
  491. .A ENDIF
  492. .1 SET *O-TCRO-5
  493. QUAL
  494. NAM_N EQU /PRESET/.1/5
  495. QUAL *
  496. LOC .1/5+1
  497. ENDM RSDEF
  498. RSOVL SPACE 4,10
  499. ** RSOVL - DEFINE RIGHT SCREEN DISPLAY PROCESSOR OVERLAY.
  500. *
  501. *NAME RSOVL LA
  502. *
  503. * ENTRY *NAME* = NAME OF PROCESSOR.
  504. * *LA* = LOAD ADDRESS.
  505. *
  506. * NOTE - THE DISPLAY PROCESSORS CANNOT USE LITERALS.
  507. * - THE ENTRY TO THE ROUTINE IS AT *LA*+1.
  508.  
  509.  
  510. PURGMAC RSOVL
  511.  
  512. MACRO RSOVL,NAM,LA
  513. LOC *O
  514. BSS 0
  515. .A IF DEF,//RSPA
  516. QUAL *
  517. QUAL PRESET
  518. .1 SET *-RSPA+4
  519. "RSPA"L EQU .1/5
  520. .MRSPL MAX .MRSPL,"RSPA"L
  521. .CMTL SET .CMTL+"RSPA"L
  522. QUAL *
  523. .A ENDIF
  524. USE NAM
  525. .B IFC NE,$NAM$$
  526. QUAL PRESET
  527. NAM EQU *
  528. RSPA MICRO 1,, NAM
  529. QUAL *
  530. QUAL
  531. RSPA SET *
  532. QUAL *
  533. QUAL NAM
  534. LOC LA
  535. NAM EQU *
  536. .B ENDIF
  537. ENDM RSOVL
  538. DDF SPACE 4,20
  539. **** ASSEMBLY CONSTANTS.
  540.  
  541.  
  542. CH EQU CHDS DISPLAY CHANNEL
  543. D EQU 5 CPU STATUS WORD
  544. KBUFL EQU 32D+2 KEYBOARD BUFFER LENGTH
  545. NSRA EQU 6 NUMBER OF SCRATCH REGISTER AREAS
  546. RCPC EQU 12D RIGHT SCREEN - COMMANDS PER COLUMN
  547. MLPS EQU 40 MAIN LOOPS PER SECOND ON CC545
  548.  
  549.  
  550. NAME MICRO 1,, DDF
  551. OVLN MICRO 1,, X
  552. PNFL EQU 0 TABLE INDEX FOR LOCAL FNT ACCESS
  553. .N SET 0 OVERLAY NUMBER
  554. QUAL PRESET
  555. .1 SET 0
  556. .2 SET 0
  557. NOREF .1,.2
  558. .MRSPL SET 0 MAXIMUM RIGHT SCREEN PROCESSOR LENGTH
  559. NOREF .MRSPL
  560. .MCMDL SET 0 MAXIMUM COMMAND PROCESSOR LENGTH
  561. NOREF .MCMDL
  562. QUAL *
  563.  
  564. ****
  565. TITLE MAIN PROGRAM.
  566. DDF SPACE 4,10
  567. ** DDF - MAIN PROGRAM.
  568.  
  569.  
  570. ORG PPFW
  571.  
  572. DDF BSS 0 ENTRY
  573. LJM /PRESET/PRS PRESET PROGRAM
  574. * CON 0,** (IF *DDFILE* NOT LOADED BY PRESET)
  575.  
  576. * MAIN LOOP.
  577.  
  578. DDF1 RJM DLS DISPLAY LEFT SCREEN
  579. DFIM (CON RJMI) PROCESS KEYBOARD FOR 721
  580. UJN *+2
  581. CON PKI
  582. RJM SYS DISPLAY SYSTEM HEADERS
  583. RJM DRS DISPLAY RIGHT SCREEN
  584. RJM PSS PAUSE FOR SYSTEM
  585. CFNC THCF TRANSFER HIDDEN TO VISIBLE, CLEAR HIDDEN
  586. DCN CH+40
  587. RJM PKI PROCESS KEYBOARD INPUT
  588. RJM RCP RECALL COMMAND PROCESSOR IF NECESSARY
  589. UJN DDF1 LOOP
  590. DPP SPACE 4,10
  591. ** DPP - DROP PP.
  592.  
  593.  
  594. DPP BSS 0 ENTRY
  595. LDN 10 CLEAR *DIS* FLAG
  596. STD CM+4
  597. LDN CCTS
  598. STD CM+1
  599. MONITOR SJCM
  600. MONITOR DPPM DROP PP
  601. LJM PPR EXIT TO PP RESIDENT
  602. GLOBAL SPACE 4,10
  603. * GLOBAL DATA.
  604.  
  605.  
  606. DFIM (CON C721)
  607. DCTY CON C545 DISPLAY CONSOLE TYPE
  608. DFIM (CON T721)
  609. CTOS CON T545 TOP OF SCREEN
  610. DFIM (CON Y721-YINC)
  611. CBOS CON Y545-YINC BOTTOM OF SCREEN
  612. DFIM (CON -YINC) SINGLE SPACE FOR 721
  613. DBLS CON -YINC*2 DOUBLE SPACE Y-COORDINATE INCREMENT
  614. DFIM (CON LN08)
  615. CPFC CON LN13 LINE ABOVE FIRST LINE OF PFC
  616. TITLE LEFT SCREEN DISPLAY.
  617. *** LEFT SCREEN.
  618. *
  619. * THE LEFT SCREEN DISPLAYS INFORMATION ABOUT THE DISK
  620. * AND THE CONTROL POINT. THE LOGICAL ADDRESS ON THE DISK
  621. * APPEARS FIRST. THE LINK BYTE FROM THE TRT FOR
  622. * THE CURRENT TRACK IS DISPLAYED AND IS INTENSIFIED IF IT IS
  623. * NOT THE SAME AS THE CONTENTS OF THE LINKAGE BYTES. THE CEN-
  624. * TRAL MEMORY ADDRESS, BYTE NUMBER OF THE TRT ENTRY AND
  625. * RESERVATION, INTERLOCK, AND PRESERVED FILE STATUSES ARE ALSO
  626. * DISPLAYED.
  627. *
  628. * THE FAMILY AND PACK NAMES, AND THE CONTROL POINT
  629. * NUMBER AND JSN OF THE ASSOCIATED JOB ARE DISPLAYED.
  630. * THE DISK-S PERMITS AND INDIRECT TRACK NUMBERS ARE SHOWN.
  631. * IF PRESENT, BOTH CONTROL POINT MESSAGES ARE DISPLAYED.
  632. * IF A DISK ERROR OCCURS, THE ERROR CODE RETURNED IN LOCATION
  633. * *RDCT* BY THE DRIVER IS DISPLAYED.
  634. *
  635. * THE CONTENTS OF THE SCRATCH REGISTERS, THE PHYSICAL
  636. * LOCATION, AND THE HARDWARE STATUS CODE (THE MEANING WILL VARY
  637. * DEPENDING ON THE TYPE OF MASS STORAGE) ARE ALSO DISPLAYED.
  638. *
  639. * IF A PACK RECOVERY IS IN PROGRESS, THE TRACK POINTER AND
  640. * TRACK RECOVERY WORD ARE DISPLAYED.
  641. DLS SPACE 4,15
  642. ** DLS - DISPLAY LEFT SCREEN.
  643. *
  644. * ENTRY (RT) = CM RECOVERY DATA TABLE ADDRESS.
  645. * (ZERO IF RECOVERY ROUTINES NOT USED.)
  646. *
  647. * USES T1, T2, T3, AB - AB+4, CM - CM+4, RC, YC.
  648. *
  649. * CALLS CTR, DOL, D2S, D4D, D6S, SNT.
  650. *
  651. * MACROS CFNC, DFIM, DISPLA, DISPHD, SFA.
  652.  
  653.  
  654. DLS SUBR ENTRY/EXIT
  655. CFNC SLSF SELECT LEFT SCREEN, SMALL CHARACTERS
  656. DISPHD (DDF. DISPLAY DISK FILE.)
  657. DFIM (CON LN06),*+1
  658. LDC LN08 OUTPUT COORDINATES
  659. STD YC
  660. OAN CH+40
  661. LDD XC
  662. OAN CH+40
  663.  
  664. * DISPLAY DISK ADDRESS DATA.
  665.  
  666. DISPLA CH01,,( EST =)
  667. LDD EQ DISPLAY TOP DIGIT
  668. SHN -6
  669. ZJN DLS1 IF NO UPPER DIGIT
  670. ADN 1R0
  671. DLS1 OAN CH+40
  672. LDD EQ
  673. RJM D2S DISPLAY LAST TWO DIGITS
  674. DISPLA CH15,,( TK = )
  675. LDD TK
  676. RJM D4D DISPLAY TRACK NUMBER
  677. DISPLA CH30,,(ADDRESS OF TRT =)
  678. LDD TK
  679. SHN -2
  680. DLSA ADC TRTS
  681. RJM D6S DISPLAY TRT ADDRESS
  682. DISPLA ,,(BYTE)
  683. LDD TK
  684. LPN 3
  685. ADN 1R0
  686. OAN CH+40
  687. LCN YINC MOVE TO NEXT LINE
  688. RAD YC
  689. OAN CH+40
  690. DISPLA CH01,,( TYPE = )
  691. SFA EST,EQ DISPLAY EQUIPMENT TYPE
  692. ADK EQDE
  693. CRD AB
  694. LDD AB+3
  695. OAN CH+40
  696. DISPLA CH15,,( SC = )
  697. LDD SC
  698. RJM D4D DISPLAY SECTOR NUMBER
  699. DISPLA CH30,,(CONTENTS OF TRT = )
  700. LDN 0
  701. STD RC
  702. RJM SNT GET NEXT TRACK LINK
  703. STD T2
  704. LDM BFMS
  705. NJN DLS2 IF NOT EOF/EOI
  706. LDM BFMS+1
  707. DLS2 SHN 6
  708. PJN DLS3 IF NOT A CHAIN BYTE
  709. SHN -6
  710. LMD T2
  711. ZJN DLS3 IF TRT AND CHAIN BYTE MATCH
  712. DFIM (CFNC BIVF)
  713. PSN
  714. PSN
  715. LDN 3
  716. STD RC
  717. DLS3 LDC CH48 OUTPUT X-COORDINATE
  718. OAN CH+40
  719. LDD T2
  720. RJM D4D OUTPUT VALUE
  721. DFIM (CFNC EIVF)
  722. SOD RC
  723. PJN DLS3 IF REPEAT COUNT NOT COMPLETE
  724. PSN
  725. PSN
  726.  
  727. * DISPLAY TRACK STATUS.
  728.  
  729. RJM CTR CHECK TRACK RESERVATION BIT
  730. STD T2
  731. MJN DLS4 IF TRACK RESERVED
  732. DISPLA CH53,,(NOT),H
  733. DLS4 DISPLA CH57,,(RESERVED)
  734. LCN YINC
  735. RAD YC
  736. OAN CH+40
  737. DISPLA CH01,,( STATE = )
  738. LDD AB
  739. LPN 3
  740. SHN 1
  741. STD T1
  742. LDM DLSE,T1
  743. OAN CH+40
  744. LDM DLSE+1,T1
  745. OAN CH+40
  746. LDD T2
  747. SHN 21-7
  748. PJN DLS6 IF NOT FIRST TRACK PRESERVED FILE
  749. DISPLA CH56,,(PRESERVED)
  750. DLS6 LDD T2
  751. SHN 21-3
  752. PJN DLS7 IF NOT INTERLOCKED
  753. LCN YINC
  754. RAD YC
  755. OAN CH+40
  756. DISPLA CH54,,(INTERLOCKED)
  757. DFIM (CON LN11),*+1
  758. DLS7 LDC LN15
  759. OAN CH+40
  760. SBN YINC
  761. STD YC
  762.  
  763. * DISPLAY FAMILY AND PACK NAMES.
  764.  
  765. DISPLA CH01,,(FAMILY = )
  766. SFA EST,PF+4 DISPLAY FAMILY NAME
  767. ADK EQDE
  768. CRD CM
  769. LDD CM+4
  770. SHN 3
  771. ADK PFGL
  772. CRD CM
  773. LDN 3
  774. OAM CM,CH
  775. LDD CM+3
  776. SCN 77
  777. OAN CH+40
  778. DISPLA CH22,,( PACK = )
  779. LDN 3 DISPLAY PACK NAME
  780. OAM PF,CH
  781. LDD PF+3
  782. SCN 77
  783. OAN CH+40
  784.  
  785. * DISPLAY CONTROL POINT INFORMATION.
  786.  
  787. DISPLA CH42,,( CP = )
  788. LDD CP DISPLAY CONTROL POINT NUMBER
  789. SHN -7
  790. RJM D2S DISPLAY TWO DIGITS
  791. DISPLA CH55,,(JSN = )
  792. LDC 0
  793. DLSB EQU *-1 (ADDRESS OF EJT ENTRY, SET BY *PRS*)
  794. CRD CM
  795. LDN 2 DISPLAY JOB SEQUENCE NAME
  796. OAM CM,CH
  797.  
  798. * DISPLAY FIRST PERMIT AND DATA TRACK NUMBERS.
  799.  
  800. LDD YC
  801. OAN CH+40
  802. DISPLA CH01,,(PERMITS TRACK = )
  803. LDD AB+4
  804. SHN 3
  805. ADN ALGL
  806. CRD CM
  807. LDD CM+2
  808. RJM D4D DISPLAY TRACK NUMBER
  809. DISPLA CH26,,( FIRST TRACK INDIRECT CHAIN = )
  810. LDD CM
  811. RJM D4D DISPLAY TRACK NUMBER
  812.  
  813. * DISPLAY CONTROL POINT MESSAGES.
  814.  
  815. LCN YINC*2 OUTPUT COORDINATES
  816. RAD YC
  817. OAN CH+40
  818. LDD XC
  819. OAN CH+40
  820. LDD CP DISPLAY FIRST MESSAGE LINE
  821. ADN MS1W
  822. RJM DOL DISPLAY ONE LINE
  823. LCN YINC
  824. RAD YC
  825. LDN 2 OUTPUT COORDINATES
  826. OAM XC,CH
  827. LDD CP
  828. ADN MS2W OUTPUT SECOND MESSAGE LINE
  829. RJM DOL DISPLAY ONE LINE
  830.  
  831. * DISPLAY SCRATCH AREAS.
  832.  
  833. LCN YINC*2 OUTPUT COORDINATES
  834. RAD YC
  835. OAN CH+40
  836. DISPLA CH01,,(------------SCRATCH AREAS-------------)
  837. LDM RDCT
  838. LPN 77
  839. ZJN DLS8.1 IF NO ERROR
  840. STD T3
  841. DFIM (CFNC BIVF)
  842. PSN
  843. PSN
  844. LDN 3
  845. STD RC
  846. DLS8 DISPLA CH44,,(ERROR = )
  847. LDM DLSD,T3
  848. OAN CH+40
  849. DFIM (CFNC EIVF)
  850. SOD RC
  851. NJN DLS8 IF REPEAT COUNT NOT COMPLETE
  852. PSN
  853. PSN
  854. DFIM (LCN YINC)
  855. DLS8.1 LCN YINC*2
  856. RAD YC
  857. OAN CH+40
  858. DISPLA CH06,,(EST TK SC COMMENT)
  859. LDC SRA
  860. STD T2
  861. LDN 0
  862. STD T3
  863. DLS9 LCN YINC
  864. RAD YC
  865. OAN CH+40
  866. LDD XC
  867. OAN CH+40
  868. AOD T3
  869. SHN 6
  870. OAN CH+40 DISPLAY SCRATCH AREA LETTER
  871. LDI T2 DISPLAY EST ORDINAL
  872. RJM D6S
  873. AOD T2
  874. LDI T2 DISPLAY TRACK
  875. RJM D6S
  876. AOD T2
  877. LDI T2 DISPLAY SECTOR
  878. RJM D6S
  879. LDN 0
  880. OAN CH+40
  881. LDN 2 DISPLAY COMMENT
  882. RAD T2
  883. LDN 4
  884. STD CM
  885. DLS10 LDI T2
  886. OAN CH+40
  887. AOD T2
  888. SOD CM
  889. PJN DLS10 IF MORE COMMENT
  890. LDD T3
  891. LMN NSRA
  892. ZJN DLS11 IF END OF SCRATCH AREAS
  893. LJM DLS9 LOOP FOR REST OF SCRATCH REGISTERS
  894.  
  895. * DISPLAY RECOVERY DATA.
  896.  
  897. DLS11 LDD RT
  898. NJN DLS12 IF RECOVERY TABLE PRESENT
  899. LJM DLS14 RETURN
  900.  
  901. DLS12 LCN YINC*2 OUTPUT COORDINATES
  902. RAD YC
  903. OAN CH+40
  904. DISPLA CH01,,(TRACK POINTER = )
  905. LDD RA
  906. ADD RT
  907. SHN 6
  908. DLSC ADN RCPW READ POINTER WORD
  909. * ADN ICPW IF BUILDING INDIRECT CHAIN
  910. * ADN BSPW IF IN *BLDSTRT.*
  911. CRD CM
  912. LDD CM
  913. RJM D4D DISPLAY TRACK POINTER
  914. LCN YINC OUTPUT COORDINATES
  915. RAD YC
  916. OAN CH+40
  917. DISPLA CH01,,(TRACK RECOVERY WORD = )
  918. LDD RA
  919. ADD RT
  920. SHN 6
  921. ADD TK
  922. ADC TRCT-4000
  923. CRD CM
  924. LDN CM
  925. STD T3
  926. DLS13 LDN 0
  927. OAN CH+40
  928. LDI T3
  929. RJM D4D DISPLAY FOUR DIGITS
  930. AOD T3
  931. SBN CM+5
  932. MJN DLS13 IF MORE OF WORD TO DISPLAY
  933. DLS14 FJM *,CH IF CHANNEL FULL, WAIT
  934. DCN CH+40
  935. LJM DLSX RETURN
  936.  
  937.  
  938. LIST G
  939. DLSD EQU *-1
  940. ECHO 1,ERRCODE=("DREC")
  941. CON EMN._ERRCODE "TXT._ERRCODE" ERROR
  942. LIST *
  943.  
  944. DLSE BSS 0
  945. DATA 4HON
  946. DATA 4HIDLE
  947. DATA 4HOFF
  948. DATA 4HDOWN
  949. TITLE RIGHT SCREEN DISPLAY.
  950. *** RIGHT SCREEN.
  951. * THE RIGHT SCREEN DISPLAYS THE CONTENTS OF THE DISK
  952. * SECTOR. THE BYTE NUMBERS ARE THE ACTUAL BYTE NUMBERS FOR
  953. * THE PHYSICAL DISK SECTOR (I.E. BYTES 0 AND 1 ARE THE CONTROL
  954. * BYTES). THESE BYTE NUMBERS ARE USED IN THE MEMORY CHANGING
  955. * COMMANDS.
  956. *
  957. * THE RIGHT SCREEN IS CHANGED WITH THE RIGHT BLANK OR
  958. * TAB KEY. FOR SOME DISPLAYS THE */* INCREMENTS THE ADDRESSES
  959. * DISPLAYED.
  960. DRS SPACE 4,15
  961. ** DRS - DISPLAY RIGHT SCREEN.
  962. *
  963. * ENTRY (RS) = INDEX INTO TABLE OF RIGHT SCREEN DISPLAYS.
  964. * RIGHT SCREEN SELECTED - SMALL CHARACTERS.
  965. * CHANNEL ACTIVE.
  966. *
  967. * EXIT TO DISPLAY ROUTINE.
  968. * (T3) = BFMS, BUFFER ADDRESS.
  969. *
  970. * USES T3.
  971. *
  972. * CALLS LDO, RIGHT SCREEN PROCESSORS.
  973.  
  974.  
  975. DRS2 FJM *,CH IF CHANNEL FULL, WAIT UNTIL EMPTY
  976. DCN CH+40
  977.  
  978. DRS SUBR ENTRY/EXIT
  979. LDM DRSB CHECK FOR OVERLAY LOADED
  980. LMD RS
  981. ZJN DRS1 IF DISPLAY UNCHANGED
  982. LDD RS
  983. RJM LDO LOAD DISPLAY OVERLAY
  984. DRS1 LDC BFMS SET BUFFER ADDRESS
  985. STD T3
  986. LJM ** JUMP TO DISPLAY PROCESSOR
  987. * LJM RSPLA (NOT FORMATTED DISPLAY)
  988. * LJM DFD (IF FORMATTED DISPLAY)
  989. DRSA EQU *-1 OVERLAY CONTROL WORD FROM CM TABLE
  990.  
  991.  
  992. * CONTROL WORD FROM CM TABLE = (DRSA).
  993.  
  994. *DRSA DATA 0 ADDRESS OF LOADED DISPLAY PROCESSOR
  995. DATA 0 PROCESSOR LENGTH
  996. CON 0,0
  997. DATA 0 DISPLAY INDEX
  998. ERRNZ *-DRSA-5 CONTROL WORD MUST BE FIVE BYTES
  999.  
  1000. DRSB CON MXDI CURRENTLY LOADED RIGHT SCREEN DISPLAY ID
  1001. * (PRESET TO ILLEGAL ID FOR INITIALIZATION)
  1002.  
  1003.  
  1004. DIS HERE DISPLAY DATA
  1005.  
  1006. RSPLA BSS 0 RIGHT SCREEN PROCESSOR LOAD ADDRESS
  1007. TITLE CENTRAL MEMORY RESIDENT TABLES.
  1008. USE PRESET
  1009. QUAL PRESET
  1010. ** CM TABLES.
  1011. *
  1012. TCEF SPACE 4,15
  1013. ** TCEF - TABLE OF COMMAND ENTRY FORMATS.
  1014. *
  1015. * VFD 96/Z*SYNTAX*
  1016. * VFD 6/L,1/0,5/OVL,12/PP ADDR
  1017. *
  1018. * AFTER LOAD TO CM
  1019. * VFD 96/Z*SYNTAX*
  1020. * VFD 6/L,1/1,17/CM ADDR
  1021. *
  1022. * L = COMMAND PROCESSOR LENGTH (CM WORDS).
  1023. * OVL = LAST CHARACTER OF OVERLAY NAME.
  1024. * PP/CM ADDR = ADDRESS OF PROCESSOR.
  1025.  
  1026.  
  1027. TCEF BSS 0
  1028. LOC 0
  1029. ARD ENTER (AUTOREAD.)
  1030. BTR ENTER (BEGINR.)
  1031. BEI ENTER (BLDEOI.)
  1032. BLS ENTER (BLDSL.)
  1033. BRS ENTER (BLDSTRT.)
  1034. BOT ENTER (BOT.)
  1035. CTB ENTER (CTB.)
  1036. DEP ENTER (DEP.)
  1037. DIS ENTER (DIS.)
  1038. DRP ENTER (DROP.)
  1039. DTK ENTER (DTK.)
  1040. EEP ENTER (EEP.)
  1041. EET ENTER (EJT.)
  1042. EST ENTER (EST.)
  1043. EFO ENTER (FAMILY.)
  1044. FPE ENTER (FIND.)
  1045. FIS ENTER (FINDISS.)
  1046. FOV ENTER (FINDO.)
  1047. FST ENTER (FINDS.)
  1048. FSS ENTER (FINDSS.)
  1049. EFB ENTER (FNT.)
  1050. EFL ENTER (FNTL.)
  1051. EFC ENTER (FNTLC.)
  1052. GTT ENTER (GETTRT.)
  1053. HOL ENTER (HOLD.)
  1054. LSA ENTER (LOAD.)
  1055. NAT ENTER (NEXTAT.)
  1056. NSS ENTER (NEXTSS.)
  1057. EPN ENTER (PACKNAM.)
  1058. PRD ENTER (PREAD.)
  1059. PTK ENTER (PTK.)
  1060. PWT ENTER (PWRITE.)
  1061. EIT ENTER (QFT.)
  1062. ERA ENTER (RANDOM.)
  1063. REC ENTER (RECOVER.)
  1064. SCN ENTER (SCAN.)
  1065. ELS ENTER (SC.*.)
  1066. ESC ENTER (SC.)
  1067. SRW ENTER (SETRW.)
  1068. STP ENTER (SETTP.)
  1069. SPF ENTER (SHOWPF.)
  1070. SKE ENTER (SKIPEI.)
  1071. SKF ENTER (SKIPF.)
  1072. SKR ENTER (SKIPR.)
  1073. STB ENTER (STB.)
  1074. SSA ENTER (STORE.)
  1075. ETK ENTER (TK.)
  1076. SCT ENTER (UI.)
  1077. WRT ENTER (WRITE.)
  1078.  
  1079. TCEFA ENTER ( ),DUMMY LISTING FILE COMMANDS
  1080. CLF ENTER (LISTING.)
  1081. OUT ENTER (OUT.)
  1082. PRT ENTER (PRINT.)
  1083. RET ENTER (RETURN.)
  1084. REW ENTER (REWIND.)
  1085. SID ENTER (SETID.)
  1086. SKL ENTER (SKIPL.)
  1087.  
  1088. .END ENTER ,DUMMY END OF TABLE
  1089. QUAL
  1090. LOC *O
  1091. .1 SET *-/PRESET/TCEF
  1092. TCEFL EQU .1/5 LENGTH OF TABLE
  1093. QUAL *
  1094. TDPO SPACE 4,10
  1095. ** TCRO - TABLE OF CENTRAL RESIDENT OVERLAYS.
  1096. *
  1097. * VFD 12/ENTRY,12/L,24/ADDR,12/DI
  1098. *
  1099. * ENTRY = PROCESSOR ENTRY ADDRESS.
  1100. * L = PROCESSOR LENGTH IN CM WORDS.
  1101. * (L=0 IF NOT AN OVERLAY)
  1102. * ADDR = PP ADDRESS OF CODE BEFORE LOADED TO CM.
  1103. * = CM ADDRESS AFTER PRESET.
  1104. * DI = OPTION (USUALLY A BUFFER INDEX).
  1105.  
  1106.  
  1107. TCRO BSS 0
  1108. LOC 0
  1109. DFB RSDEF DISPLAY SECTOR - FIVE BYTES/LINE
  1110. DTB RSDEF DISPLAY SECTOR - TEN BYTES/LINE
  1111. DTX RSDEF DISPLAY SECTOR - TEXT
  1112. DLC RSDEF DISPLAY LEGAL COMMANDS
  1113. DFD RSDEF DISPLAY SECTOR - FORMATTED
  1114. DSS RSDEF DISPLAY SYSTEM SECTOR FOR *DFD*
  1115. DPE RSDEF DISPLAY PFC SECTOR FOR *DFD*
  1116. DEI RSDEF DISPLAY EOI SECTOR FOR *DFD*
  1117. MXDO EQU * MAXIMUM DISPLAY OVERLAY INDEX+1
  1118. TAR ACRDEF TABLE ACCESS ROUTINES (EJT, FNT, QFT)
  1119. LRR ACRDEF LABEL/TRT RECONSTRUCTION SUBROUTINES
  1120. QUAL
  1121. LOC *O
  1122. TCRO EQU 0+TCEFL CM ADDRESS OF TABLE
  1123. MXDI EQU DFDN+1 MAXIMUM DISPLAY INDEX FOR DISPLAY TOGGLE
  1124. .1 SET *-/PRESET/TCRO
  1125. TCROL EQU .1/5 TABLE LENGTH IN CM WORDS
  1126. SPACE 4,10
  1127. .1 SET *-/PRESET/TCEF
  1128. CMTL EQU .1/5 CM TABLE AREA LENGTH
  1129. QUAL *
  1130. .CMTL SET CMTL ACCUMULATE TOTAL CM REQUIRED
  1131. TITLE LOAD COMMAND PROCESSORS.
  1132. LCP SPACE 4,15
  1133. ** LCP - LOAD COMMAND PROCESSORS.
  1134. *
  1135. * ENTRY FROM PRS.
  1136. * (AB+3 - AB+4) = CM LOAD ADDRESS COMMAND PROCESSORS.
  1137. * (RC) = 1.
  1138. * (TA) = CM FWA FOR TABLES.
  1139. *
  1140. * EXIT TO RESIDENT OVERLAY PRESET.
  1141. *
  1142. * USES AB, AB+3, AB+4, RC, T1.
  1143. *
  1144. * CALLS EXR, PSS.
  1145.  
  1146.  
  1147. LCP3 LDC CMTL WRITE TABLES TO CM
  1148. STD T1
  1149. LDD RA
  1150. ADD TA
  1151. SHN 6
  1152. CWM TCEF,T1
  1153. LDC 3R8"OVLN"A LOAD RESIDENT ROUTINES OVERLAY
  1154. RJM EXR EXECUTE OVERLAY
  1155.  
  1156. LCP BSS 0
  1157. LCP1 RJM PSS PAUSE FOR SYSTEM
  1158. AOD RC ADVANCE OVERLAY NAME
  1159. SBN .L+1
  1160. PJN LCP3 IF ALL COMMAND OVERLAYS LOADED
  1161. LDD RC LOAD NEXT OVERLAY
  1162. ADC 2L8"OVLN"
  1163. RJM EXR EXECUTE OVERLAY
  1164. LDC TCEF-2 SET COMMAND TABLE ADDRESS
  1165. STD AB
  1166. LCP2 LDN 2 CHECK NEXT COMMAND
  1167. RAD AB
  1168. LDI AB
  1169. ZJN LCP1 IF END OF COMMAND TABLE
  1170. LDN 10 ADVANCE TO OVERLAY ID
  1171. RAD AB
  1172. LDI AB
  1173. SHN 21-5
  1174. MJN LCP2 IF PROCESSOR ALREADY LOADED
  1175. STD T1
  1176. SHN 5-21
  1177. LPN 37
  1178. LMD RC
  1179. NJN LCP2 IF COMMAND PROCESSOR NOT IN THIS OVERLAY
  1180. LDM 1,AB SET PP MEMORY ADDRESS
  1181. STM LCPA
  1182. LDI AB SET CM ADDRESS INTO TABLE
  1183. SCN 77
  1184. LMD AB+3
  1185. LMN 40
  1186. STI AB
  1187. LDD AB+4
  1188. STM 1,AB
  1189. LDD AB+3 WRITE PROCESSOR TO CM
  1190. SHN 6
  1191. ADD RA
  1192. SHN 6
  1193. ADD AB+4
  1194. CWM **,T1
  1195. LCPA EQU *-1 (PP ADDRESS OF PROCESSOR)
  1196. LDD T1 UPDATE CM ADDRESS
  1197. RAD AB+4
  1198. SHN -14
  1199. RAD AB+3
  1200. LJM LCP2 LOOP
  1201. PSS SPACE 4,10
  1202. ** PSS - PAUSE FOR SYSTEM.
  1203. *
  1204. * EXIT TO *PPR*, IF ERROR FLAG SET.
  1205. * (CM+1) = 0 IF ERROR FLAG NOT SET.
  1206. *
  1207. * MACROS MONITOR, PAUSE.
  1208.  
  1209.  
  1210. PSS SUBR ENTRY/EXIT
  1211. PAUSE
  1212. LDD CM+1
  1213. ZJN PSSX IF ERROR FLAG NOT SET
  1214. MONITOR DPPM DROP PP
  1215. LJM PPR EXIT
  1216. OVL SPACE 4,10
  1217. ** OVL - COMMAND PROCESSOR OVERLAY LOAD ADDRESS.
  1218.  
  1219.  
  1220. OVL EQU *+5
  1221. TITLE PRESET PROGRAM.
  1222. PRS SPACE 4,10
  1223. ** PRS - PRESET PROGRAM.
  1224. *
  1225. * EXIT TO PPR IF ANY ERRORS.
  1226. * TO LCP TO CONTINUE PRESET.
  1227. * (AB+3 - AB+4) = CM LOAD ADDRESS COMMAND PROCESSORS.
  1228. * (RC) = 1.
  1229. * (TA) = CM FWA FOR TABLES.
  1230. * (DDF) = 0, IF *DDFILE* NOT LOADED.
  1231. *
  1232. * USES CM - CM+4.
  1233. *
  1234. * CALLS DFM, CUA, PSS.
  1235. *
  1236. * MACROS EXECUTE, MONITOR, PAUSE.
  1237.  
  1238.  
  1239. PRS BSS 0
  1240. RJM CUA CHECK USER ACCESS
  1241. NJN PRS0 IF JOB HAS NO SYSTEM ORIGIN PRIVILEGES
  1242. LDK SSML
  1243. CRD CM
  1244. LDD CM
  1245. LPN 7
  1246. ZJN PRS1 IF UNSECURED SYSTEM
  1247. LDK SSTL
  1248. CRD CM
  1249. LDD CM
  1250. SHN 21-11
  1251. MJN PRS1 IF *SECURITY-UNLOCK* SET
  1252. PRS0 LDC PRSE * INCORRECT USER ACCESS.*
  1253. RJM DFM SEND DAYFILE MESSAGE
  1254. MONITOR ABTM
  1255. LJM PPR EXIT
  1256.  
  1257. PRS1 LDN 1 PRESET OVERLAY COUNTER
  1258. STD RC
  1259. LDN 10
  1260. STD CM+4
  1261. LDN SCTS SET *DIS* FLAG
  1262. STD CM+1
  1263. MONITOR SJCM
  1264. PRS2 RJM PSS PAUSE FOR SYSTEM
  1265. LDD FL
  1266. NJN PRS3 IF NONZERO FIELD LENGTH
  1267. LDN ZERL
  1268. CRD CM
  1269. AOD CM+1 REQUEST MEMORY
  1270. MONITOR RSTM
  1271. UJN PRS2 LOOP
  1272.  
  1273. PRS3 RJM PSS PAUSE FOR SYSTEM
  1274. LDN ZERL CLEAR CPU READY FLAG
  1275. CRD CM
  1276. LDD RA
  1277. SHN 6
  1278. ADN D
  1279. CWD CM
  1280. LDD CP WRITE CONTROL CARD TO MESSAGE AREA
  1281. ADN MS1W
  1282. CWM PRSB,ON
  1283. CWD CM
  1284. ADN TFSW-MS1W-1 FETCH EJT ORDINAL
  1285. CRD CM
  1286. SFA EJT,CM
  1287. STD CM+4 SET ADDRESS OF EJT ENTRY
  1288. STM DLSB
  1289. SHN -14
  1290. STD CM+3
  1291. RAM DLSB-1
  1292. LDN 0
  1293. STD CM+2
  1294. LDN 1S5+1 SET JOB ADVANCE
  1295. STD CM+1
  1296. LDD MA
  1297. CWM PRSF,ON
  1298. MONITOR UTEM
  1299. LDD CM+1 CHECK *UTEM* RESPONSE
  1300. NJP PRS3 IF REJECT
  1301. RJM PSS PAUSE
  1302. LDN ZERL
  1303. CRD CM
  1304. LDD MA CALL *1AJ* WITH CONTROL CARD IN MS1W
  1305. CWM PRSC,ON
  1306. CWD CM
  1307. EXECUTE 1AJ,=
  1308. MONITOR RPPM
  1309. LDD CM+1
  1310. ZJN PRS5 IF PP NOT ASSIGNED
  1311. PRS4 PAUSE WAIT UNTIL CPU READY
  1312. LDD CM+1
  1313. ZJN PRS6 IF ERROR FLAG NOT SET
  1314. PRS5 LDN 0 DISABLE LISTING FILE COMMANDS
  1315. STM TCEFA
  1316. STM DDF INDICATE *DDFILE* NOT LOADED
  1317. STD CM+1 CLEAR ERROR FLAG
  1318. MONITOR CEFM
  1319. LDN ZERL
  1320. UJN PRS7 REQUEST STORAGE FOR COMMAND PROCESSORS
  1321.  
  1322. PRS6 LDD RA READ CPU READY FLAG
  1323. SHN 6
  1324. ADN D
  1325. CRD CM
  1326. LDD CM
  1327. ZJN PRS4 IF NOT READY
  1328.  
  1329. * REQUEST FL FOR COMMAND PROCESORS.
  1330.  
  1331. LDD RA GET LWA+1 OF DDFILE
  1332. SHN 6
  1333. ADN D-1
  1334. PRS7 CRD AB
  1335. LDD AB+3
  1336. SHN 14
  1337. ADD AB+4
  1338. ADN 77
  1339. SHN -6
  1340. STD TA SET CM TABLE ADDRESS
  1341. SHN 6
  1342. ADC TCMTL+77 CM FL INCREASE REQUIRED
  1343. SHN -6
  1344. STD AB (AB) = REQUIRED FL
  1345. LDD CP
  1346. ADN MS1W
  1347. CWM PRSD,TR * WAITING FOR MEMORY.*
  1348. PRS8 LDN ZERL
  1349. CRD CM
  1350. LDD AB REQUEST STORAGE
  1351. STD CM+1
  1352. MONITOR RSTM
  1353. RJM PSS PAUSE
  1354. LDD AB
  1355. LMD FL
  1356. NJN PRS8 IF MEMORY NOT OBTAINED
  1357.  
  1358. * LOAD DISPLAY PROCESSOR OVERLAYS TO CM.
  1359.  
  1360. LDD TA INITIALIZE OVERLAY ADDRESS POINTER
  1361. SHN 6
  1362. ADC CMTL
  1363. STD AB+4
  1364. SHN -14
  1365. STD AB+3
  1366. LDN 0
  1367. STD AB
  1368. PRS9 LDM TCRO+1,AB SET WORD COUNT
  1369. ZJN PRS10 IF NOT AN OVERLAY
  1370. STD T1
  1371. LDM TCRO+3,AB SET PP MEMORY ADDRESS
  1372. STM PRSA
  1373. LDD AB+3 SET CM ADDRESS INTO TABLE
  1374. STM TCRO+2,AB
  1375. LDD AB+4
  1376. STM TCRO+3,AB
  1377. LDD AB+3 WRITE PROCESSOR TO CM
  1378. SHN 6
  1379. ADD RA
  1380. SHN 6
  1381. ADD AB+4
  1382. CWM **,T1
  1383. PRSA EQU *-1 (PP ADDRESS OF PROCESSOR)
  1384. LDD T1 UPDATE CM ADDRESS
  1385. RAD AB+4
  1386. SHN -14
  1387. RAD AB+3
  1388. PRS10 LDN 5 ADVANCE INDEX
  1389. RAD AB
  1390. SBN MXDO*5
  1391. PJN PRS11 IF END OF TABLE
  1392. LJM PRS9 LOOP
  1393. PRS11 LJM LCP LOAD COMMAND PROCESSORS FROM OVERLAYS
  1394.  
  1395.  
  1396. PRSB VFD 48/8L$DDFILE.,12/0
  1397. PRSC VFD 18/3R1AJ,6/0,12/2,12/0,12/4
  1398. PRSD DATA C* WAITING FOR MEMORY.*
  1399. PRSE DATA C* INCORRECT USER ACCESS.*
  1400. PRSF VFD 12/1,6/6,42/1 SET JOB ADVANCE
  1401. SPACE 4,10
  1402. ** PRESET COMMON DECKS.
  1403.  
  1404.  
  1405. QUAL$ EQU 0 DONT REQUALIFY COMMON DECKS
  1406. *CALL COMPCUA
  1407. EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
  1408. *CALL COMPGFP
  1409.  
  1410.  
  1411. QUAL * RESUME UNQUALIFIED DEFINITIONS
  1412. TITLE RIGHT SCREEN DISPLAY PROCESSOR CM RESIDENT OVERLAYS.
  1413. DFB SPACE 4,10
  1414. *** FIVE BYTES PER LINE.
  1415. * THE CONTENTS OF THE SECTOR ARE DISPLAYED BY CENTRAL
  1416. * MEMORY WORD. THE BYTE NUMBERS ARE DISPLAYED IN
  1417. * PARENTHESIS AFTER THE CENTRAL MEMORY WORD NUMBER.
  1418. * THE */* IS USED TO TOGGLE BETWEEN THE FIRST AND
  1419. * SECOND HALF OF THE SECTOR. THE NUMBER OF WORDS
  1420. * DISPLAYED IS DETERMINED BY THE WORD COUNT IN THE
  1421. * CONTROL BYTES.
  1422. DFB SPACE 4,15
  1423. ** DFB - DISPLAY FIVE BYTES/LINE.
  1424. *
  1425. * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  1426. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
  1427. * (T3) = BUFFER ADDRESS.
  1428. *
  1429. * EXIT TO DRS2.
  1430. *
  1431. * USES T3, YC, AB - AB+4.
  1432. *
  1433. * CALLS DMW, D4D, SPP.
  1434. *
  1435. * MACROS DISPLA.
  1436.  
  1437.  
  1438. DFB RSOVL RSPLA
  1439. DISPHD (DDF. 5 BYTES/LINE.)
  1440. LDM CTOS SET TOP OF SCREEN
  1441. OAN CH+40
  1442. SBN YINC
  1443. STD YC
  1444. DISPLA CH01,,(LINKAGE BYTES = )
  1445. LDI T3 DISPLAY CONTROL BYTES
  1446. RJM D4D DISPLAY FOUR DIGITS
  1447. LDN 0
  1448. OAN CH+40
  1449. LDM BFMS+1
  1450. RJM D4D DISPLAY FOUR DIGITS
  1451. RJM SPP SET PAGE PARAMETERS
  1452. ZJN DFB1 IF NO WORDS TO DISPLAY
  1453. STD AB+4
  1454. LDM BFMS+1 NUMBER OF WORDS IN SECTOR
  1455. SBD AB - FIRST WORD NUMBER
  1456. MJN DFB4 IF NO DATA TO BE DISPLAYED
  1457. SBD AB+4 - PAGE SIZE
  1458. PJN DFB2 IF FULL PAGE TO BE DISPLAYED
  1459. RAD AB+4 ADJUST WORD COUNT TO DISPLAY
  1460. DFB1 ZJN DFB4 IF NO DATA TO DISPLAY
  1461. DFB2 LCN YINC ADVANCE Y-COORDINATE
  1462. RAD YC
  1463. LDD AB SET LAST WORD NUMBER + 1
  1464. ADN 10
  1465. STD AB+1
  1466. LCN 10 DECREMENT WORDS TO DISPLAY
  1467. RAD AB+4
  1468. PJN DFB3 IF FULL GROUP TO BE DISPLAYED
  1469. RAD AB+1 ADJUST LAST WORD NUMBER
  1470. LDN 0
  1471. STD AB+4
  1472. DFB3 LDD AB SET FIRST BYTE NUMBER
  1473. SHN 2 FIRST WORD NUMBER * 5
  1474. STD AB+2
  1475. LDD AB
  1476. ADN 2 + 2
  1477. RAD AB+2 = FIRST BYTE NUMBER
  1478. LDN 0 SET DISPLAY MODE
  1479. STD AB+3
  1480. RJM DMW DISPLAY MEMORY WORDS
  1481. LDD AB+4
  1482. NJN DFB2 IF MORE WORDS TO DISPLAY
  1483. DFB4 LJM DRS2 EXIT
  1484.  
  1485.  
  1486. DIS HERE
  1487. DTB SPACE 4,10
  1488. *** TEN BYTES PER LINE.
  1489. * THE CONTENTS OF THE SECTOR ARE DISPLAYED 10B BYTES PER
  1490. * LINE. THE ENTIRE SECTOR IS DISPLAYED ON THE SCREEN
  1491. * WITH BYTE NUMBERS.
  1492. DTB SPACE 4,15
  1493. ** DTB - DISPLAY TEN BYTES/LINE
  1494. *
  1495. * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  1496. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
  1497. * (T3) = BUFFER ADDRESS.
  1498. *
  1499. * EXIT TO DRS2.
  1500. *
  1501. * USES T2, T3, XC, YC.
  1502. *
  1503. * CALLS D4D, ODC.
  1504.  
  1505.  
  1506. DTB RSOVL RSPLA
  1507. DISPHD (DDF. 10B BYTES/LINE.)
  1508. LDC LN05
  1509. STD YC
  1510. LDM DCTY SET FIRST BYTE NUMBER
  1511. SBK C545
  1512. ZJN DTB1 IF CC545 CONSOLE
  1513. LDN 0 CLEAR BOTTOM OF SCREEN ADJUSTMENT
  1514. STM DTBA
  1515. LDM DRSA+4 CHECK PAGE NUMBER FOR 721
  1516. LPN 1
  1517. ZJN DTB1 IF FIRST PAGE
  1518. LDC 250 SET FIRST BYTE SECOND PAGE
  1519. DTB1 STD T2
  1520.  
  1521. * OUTPUT ONE LINE.
  1522.  
  1523. DTB2 LDN 2 OUTPUT COORDINATES
  1524. OAM XC,CH
  1525. LDD T2
  1526. RJM D4D DISPLAY BYTE NUMBER
  1527. LDN 7*XINC
  1528. DTB3 RAD XC OUTPUT X-COORDINATE
  1529. OAN CH+40
  1530. LDM BFMS,T2
  1531. RJM D4D DISPLAY CONTENTS OF BYTE
  1532. AOD T2
  1533. LPN 7
  1534. ZJN DTB4 IF END OF LINE
  1535. LDN 5*XINC
  1536. UJN DTB3 LOOP TO DISPLAY REST OF LINE
  1537.  
  1538. * OUTPUT DISPLAY CODE FOR LINE.
  1539.  
  1540. DTB4 OAN CH+40
  1541. LDC CH01 RESET X-COORDINATE
  1542. STD XC
  1543. LDC BFMS-10 SET ADDRESS OF FIRST BYTE
  1544. ADD T2
  1545. STD T3
  1546. LDN 10 BYTES TO DISPLAY
  1547. RJM ODC OUTPUT DISPLAY CODE
  1548. LDD T2
  1549. LPN 77
  1550. NJN DTB5 IF NOT NEW BLOCK
  1551.  
  1552. * ADVANCE Y-COORDINATE.
  1553.  
  1554. LCN YINC
  1555. RAD YC
  1556. DTB5 LCN YINC
  1557. RAD YC
  1558. SBM CBOS
  1559. DTBA ADN YINC*4
  1560. MJN DTB8 IF AT BOTTOM OF SCREEN
  1561. LDC 500-1 CHECK FOR END OF DISPLAY
  1562. SBD T2
  1563. MJN DTB6 IF AT BOTTOM OF SCREEN
  1564. LJM DTB2 LOOP
  1565.  
  1566. * DISPLAY LAST TWO BYTES.
  1567.  
  1568. DTB6 LDN 2 OUTPUT COORDINATES
  1569. OAM XC,CH
  1570. LDD T2 DISPLAY BYTE NUMBER
  1571. RJM D4D
  1572. LDN 7*XINC
  1573. DTB7 RAD XC OUTPUT X-COORDINATE
  1574. OAN CH+40
  1575. LDM BFMS,T2 DISPLAY CONTENTS OF BYTE
  1576. RJM D4D
  1577. AOD T2
  1578. LPN 1
  1579. ZJN DTB9 IF BOTH BYTES DISPLAYED
  1580. LDN 5*XINC
  1581. UJN DTB7 LOOP TO DISPLAY REST OF LINE
  1582.  
  1583. DTB8 UJN DTB10 RETURN
  1584.  
  1585. DTB9 LDC CH49 OUTPUT DISPLAY CODE FOR LAST 2 BYTES
  1586. OAN CH+40
  1587. LDC BFMS+500
  1588. STD T3
  1589. LDN 2
  1590. RJM ODC
  1591. LDC CH01 RESET X-COORDINATE
  1592. STD XC
  1593. DTB10 LJM DRS2 RETURN
  1594.  
  1595.  
  1596. DIS HERE
  1597. DTX SPACE 4,10
  1598. *** TEXT.
  1599. * DISPLAYS THE CONTENTS OF THE SECTOR IN TEXT MODE.
  1600. * THE AMOUNT OF TEXT TO DISPLAY IS DETERMINED BY THE
  1601. * WORD COUNT IN THE CONTROL BYTES.
  1602. DTX SPACE 4,15
  1603. ** DTX - DISPLAY TEXT.
  1604. *
  1605. * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  1606. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
  1607. * (T3) = BUFFER ADDRESS.
  1608. *
  1609. * EXIT TO DRS2.
  1610. *
  1611. * USES T1, T2, T3, AB, YC.
  1612. *
  1613. * CALLS ODC.
  1614.  
  1615.  
  1616. DTX RSOVL RSPLA
  1617. DISPHD (DDF. TEXT MODE DISPLAY.)
  1618. LDM CTOS
  1619. ADN YINC
  1620. STD YC
  1621. LDM BFMS SET WORD COUNT
  1622. NJN DTX2 IF DATA TO DISPLAY
  1623. DTX1 LJM DTX7 RETURN
  1624.  
  1625. DTX2 LDM BFMS+1
  1626. STD AB
  1627. LDM DCTY SET FIRST BYTE NUMBER
  1628. SBK C545
  1629. ZJN DTX3 IF CC545 CONSOLE
  1630. LDM DRSA+4 CHECK PAGE NUMBER FOR 721
  1631. LPN 1
  1632. ZJN DTX3 IF FIRST PAGE
  1633. LDC -40 DECREMENT NUMBER OF WORDS TO DISPLAY
  1634. RAD AB
  1635. MJN DTX1 IF NO WORDS TO DISPLAY
  1636. LDC 240 SET FIRST BYTE SECOND PAGE
  1637. DTX3 ADN 2
  1638. RAD T3 FIRST BYTE TO DISPLAY
  1639. LDN 0
  1640. STD T1
  1641. DTX4 LDD XC
  1642. DTX5 OAN CH+40
  1643. LCN YINC
  1644. RAD YC
  1645. SBM CBOS
  1646. MJN DTX7 IF BOTTOM OF SCREEN REACHED
  1647. LDD YC
  1648. OAN CH+40
  1649. LDN 0 INITIALIZE LINE WORD COUNT
  1650. STD T2
  1651. DTX6 LDD T1
  1652. SBD AB
  1653. ZJN DTX7 IF ALL WORDS DISPLAYED
  1654. LDN 5
  1655. RJM ODC OUTPUT DISPLAY CODE WORD
  1656. AOD T1
  1657. LDM -1,T3
  1658. ZJN DTX4 IF END OF TEXT LINE
  1659. AOD T2
  1660. SBN 5
  1661. NJN DTX6 IF NOT END OF SCREEN LINE
  1662. LDC CH05 CONTINUE ON NEXT LINE OF SCREEN
  1663. UJN DTX5 LOOP FOR REST OF LINE
  1664.  
  1665. DTX7 LJM DRS2 RETURN
  1666.  
  1667.  
  1668. DIS HERE
  1669. DLC SPACE 4,10
  1670. *** LEGAL COMMANDS.
  1671. * DISPLAYS A LIST OF THE DDF COMMANDS.
  1672. DLC SPACE 4,15
  1673. ** DLC - DISPLAY LEGAL COMMANDS.
  1674. *
  1675. * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  1676. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
  1677. * (TA) = ADDRESS OF COMMAND TABLE IN CM.
  1678. *
  1679. * EXIT TO DRS2.
  1680. *
  1681. * USES T2, DK, RC, XC, YC, AB - AB+4.
  1682. *
  1683. * CALLS DOL.
  1684.  
  1685.  
  1686. DLC RSOVL RSPLA
  1687. DISPHD (DDF. LEGAL COMMANDS.)
  1688. LDN 0 INITIALIZE COMMAND INDEX
  1689. STD DK
  1690. DLC1 LDM CTOS
  1691. STD YC
  1692. LDN RCPC COMMANDS PER COLUMN
  1693. STD RC
  1694. DLC2 LDN 2 OUTPUT COORDINATES
  1695. OAM XC,CH
  1696. LDD RA GET ADDRESS OF COMMAND
  1697. ADD TA
  1698. SHN 6
  1699. ADD DK
  1700. ADN 2 CHECK NEXT COMMAND
  1701. CRD AB
  1702. SBN 2
  1703. RJM DOL DISPLAY COMMAND
  1704. LDD AB CHECK NEXT COMMAND
  1705. ZJN DLC3 IF END OF COMMANDS
  1706. LCN YINC ADVANCE Y-COORDINATE
  1707. RAD YC
  1708. LDN 2 ADVANCE COMMAND INDEX
  1709. RAD DK
  1710. SOD RC
  1711. NJN DLC2 IF NOT END OF COLUMN
  1712. LDC 13D*XINC ADVANCE X-COORDINATE
  1713. RAD XC
  1714. UJN DLC1 START NEXT COLUMN
  1715.  
  1716. DLC3 LDM DCTY RESET COORDINATES
  1717. SBK C545
  1718. ZJN DLC4 IF CC545 CONSOLE
  1719. LDN 3*YINC
  1720. DLC4 SBK 3*YINC+RCPC*YINC
  1721. ADM CTOS
  1722. STD YC
  1723. LDC CH01
  1724. STD XC
  1725.  
  1726. * OUTPUT SPECIAL CHARACTER COMMANDS.
  1727.  
  1728. LDC DLCA-1
  1729. STD T2
  1730. DLC5 LCN YINC
  1731. RAD YC
  1732. LDN 2
  1733. OAM XC,CH
  1734. DLC6 AOD T2 DISPLAY LINE
  1735. LDI T2
  1736. OAN CH+40
  1737. LPN 77
  1738. NJN DLC6 IF NOT END OF LINE
  1739. LDM 1,T2
  1740. NJN DLC5 IF MORE LINES TO DISPLAY
  1741. LJM DRS2 RETURN
  1742.  
  1743.  
  1744. DLCA BSS 0
  1745. DATA Z*+ INCREMENT SECTOR.*
  1746. DATA Z*- DECREMENT SECTOR.*
  1747. DATA Z*. ADVANCE PAST END OF TRACK, ZERO SECTOR.*
  1748. DATA Z*, ADVANCE TO NEXT TRACK IN CHAIN.*
  1749. DATA Z*= ADVANCE PAST EOI.*
  1750. DATA Z*8 INCREMENT TRACK.*
  1751. DATA Z*9 DECREMENT TRACK.*
  1752. DATA Z*/ ADVANCE RIGHT SCREEN.*
  1753. DATA Z*SPACE - READ CURRENT SECTOR.*
  1754. DATA Z*RIGHT BLANK OR TAB - CHANGE RIGHT DISPLAY.*
  1755. CON 0
  1756.  
  1757.  
  1758. DIS HERE
  1759. DFD SPACE 4,20
  1760. ** DFD - DISPLAY FORMATTED DATA.
  1761. *
  1762. * DETERMINES SECTOR TYPE AND CALLS APPROPRIATE FORMATTING
  1763. * DISPLAY PROCESSOR.
  1764. *
  1765. * ENTRY CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  1766. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
  1767. * (T3) = BUFFER ADDRESS.
  1768. *
  1769. * EXIT TO DRS2.
  1770. *
  1771. * USES AB.
  1772. *
  1773. * CALLS DEI, DPE, DSS, D4D, LDO.
  1774. *
  1775. * MACROS DISPLA.
  1776.  
  1777.  
  1778. DFD RSOVL RSPLA
  1779. DISPHD (DDF. FORMATTED DISPLAY.)
  1780. LDM CTOS
  1781. OAN CH+40
  1782. ADM DBLS DOUBLE SPACE
  1783. ADN YINC BACK UP ONE
  1784. STD YC
  1785. DISPLA CH01,,(LINKAGE BYTES = )
  1786. LDI T3
  1787. RJM D4D DISPLAY FIRST BYTE
  1788. LDN 0
  1789. OAN CH+40
  1790. STD AB
  1791. LDM BFMS+1
  1792. RJM D4D DISPLAY SECOND BYTE
  1793. LDI T3
  1794. ZJN DFD2 IF EOF/EOI SECTOR
  1795. LDM BFMS+1
  1796. ZJN DFD5 IF EMPTY SECTOR
  1797. LDI T3
  1798. SHN 6
  1799. ADM BFMS+1
  1800. LMC 377777
  1801. NJN DFD1 IF NOT SYSTEM SECTOR
  1802. LDN DSSN SELECT SYSTEM SECTOR DISPLAY
  1803. UJN DFD3 LOAD PROCESSOR
  1804.  
  1805. DFD1 LDN DPEN SELECT PFC DISPLAY
  1806. UJN DFD3 LOAD PROCESSOR
  1807.  
  1808. DFD2 LDM BFMS+1
  1809. NJN DFD5 IF NOT EOI SECTOR
  1810. LDN DEIN SELECT EOI SECTOR DISPLAY
  1811. DFD3 LMM DFDB
  1812. ZJN DFD4 IF PROCESSOR LOADED
  1813. LMM DFDB
  1814. STM DFDB
  1815. RJM LDO LOAD DISPLAY OVERLAY
  1816. LDD CM SET PROCESSOR ADDRESS
  1817. STM DFDA
  1818. DFD4 LJM ** JUMP TO DISPLAY PROCESSOR
  1819. DFDA EQU *-1
  1820.  
  1821. DFD5 LJM DRS2 RETURN
  1822.  
  1823.  
  1824. DFDB DATA 0 CURRENT PROCESSOR ID
  1825. DCE SPACE 4,15
  1826. ** DCE - DISPLAY PF CATALOG ENTRY.
  1827. *
  1828. * ENTRY (AB+2) = SET FOR CALL TO DMW.
  1829. * (T3) = BUFFER ADDRESS.
  1830. *
  1831. * EXIT DATA DISPLAYED.
  1832. *
  1833. * USES T1, AB, AB+1, CM, YC.
  1834. *
  1835. * CALLS DPT, DMW.
  1836. *
  1837. * MACROS DISPLA.
  1838.  
  1839.  
  1840. DCE SUBR ENTRY/EXIT
  1841. LDM CPFC SET *DMW* PARAMETERS
  1842. STD YC
  1843. LDN 0
  1844. STD AB
  1845. LDN NWCE
  1846. STD AB+1
  1847. LDC TPFC
  1848. STD AB+3
  1849. RJM DMW DISPLAY MEMORY WORDS
  1850.  
  1851. * DISPLAY DATES AND MODES.
  1852.  
  1853. LDM DBLS
  1854. RAD YC
  1855. LPC 7777
  1856. OAN CH+40
  1857. LDC -NWCE*5
  1858. ADD T3
  1859. STD CM
  1860. DISPLA CH01,,(CREATED )
  1861. LDD CM DISPLAY CREATION DATE
  1862. ADN FCCD
  1863. RJM DPT DISPLAY PACKED DATE AND TIME
  1864. DISPLA CH34,,( CT = )
  1865. LDM FCCT,CM DISPLAY FILE CATAGORY
  1866. SHN -6
  1867. STD T1
  1868. LDM DCEA,T1
  1869. OAN CH+40
  1870. DISPLA ,,( M = )
  1871. LDM FCAM,CM DISPLAY ACCESS MODE
  1872. LPN 77
  1873. STD T1
  1874. LDM DCEB,T1
  1875. OAN CH+40
  1876. LCN YINC
  1877. RAD YC
  1878. OAN CH+40
  1879. DISPLA CH01,,(MODIFIED )
  1880. LDD CM DISPLAY MODIFICATION DATE
  1881. ADN FCMD
  1882. RJM DPT
  1883. DISPLA CH35,,(CONTROL )
  1884. LDD CM DISPLAY CONTROL CHANGE DATE
  1885. ADN FCKD
  1886. RJM DPT
  1887. LCN YINC
  1888. RAD YC
  1889. OAN CH+40
  1890. DISPLA CH01,,(ACCESSED )
  1891. LDD CM DISPLAY LAST ACCESS DATE
  1892. ADN FCAD
  1893. RJM DPT
  1894. DISPLA CH35,,(UTILITY )
  1895. LDD CM DISPLAY UTILITY ACCESS DATE
  1896. ADN FCUD
  1897. RJM DPT
  1898. LJM DCEX RETURN
  1899.  
  1900.  
  1901. DCEA DATA 2HPR FILE CATAGORIES
  1902. DATA 2HSP
  1903. DATA 2HPU
  1904.  
  1905. DCEB DATA 2HWR ACCESS MODES
  1906. DATA 2HRD
  1907. DATA 2HAP
  1908. DATA 2HEX
  1909. DATA 2H
  1910. DATA 2HMD
  1911. DATA 2HRM
  1912. DATA 2HRA
  1913. DPT SPACE 4,10
  1914. ** DPT - DISPLAY PACKED DATE AND TIME.
  1915. *
  1916. * ENTRY (A) = ADDRESS OF PACKED DATE AND TIME.
  1917. *
  1918. * USES T1, AB - AB+4.
  1919. *
  1920. * CALLS CDD.
  1921.  
  1922.  
  1923. DPT SUBR ENTRY/EXIT
  1924. STD T1
  1925. LDI T1 CONVERT YEAR
  1926. SHN -6
  1927. SBN 30D
  1928. PJN DPT1 IF YEAR GREATER THAN 1999
  1929. ADC 100D
  1930. DPT1 RJM CDD
  1931. SHN 6
  1932. LMN 1R/
  1933. STD AB+1
  1934. SHN -14
  1935. LMC 2L
  1936. STD AB
  1937. LDI T1 CONVERT MONTH
  1938. LPN 77
  1939. RJM CDD
  1940. STD AB+2
  1941. AOD T1
  1942. LDI T1 CONVERT DAY
  1943. SHN -6
  1944. RJM CDD
  1945. SHN 6
  1946. LMN 1R.
  1947. STD AB+4
  1948. SHN -14
  1949. LMC 2L /
  1950. STD AB+3
  1951. LDN 5 DISPLAY * YY/MM/DD.*
  1952. OAM AB,CH
  1953. LDI T1 CONVERT HOUR
  1954. LPN 77
  1955. RJM CDD
  1956. SHN 6
  1957. LMN 1R.
  1958. STD AB+1
  1959. SHN -14
  1960. LMC 2L
  1961. STD AB
  1962. AOD T1
  1963. LDI T1 CONVERT MINUTE
  1964. SHN -6
  1965. RJM CDD
  1966. STD AB+2
  1967. LDI T1 CONVERT SECOND
  1968. LPN 77
  1969. RJM CDD
  1970. SHN 6
  1971. LMN 1R.
  1972. STD AB+4
  1973. SHN -14
  1974. LMC 2L .
  1975. STD AB+3
  1976. LDN 5 DISPLAY * HH/MM/SS.*
  1977. OAM AB,CH
  1978. LJM DPTX RETURN
  1979. SPACE 4,10
  1980. ** *DFD* COMMON DECKS.
  1981.  
  1982.  
  1983. *CALL COMPCDD
  1984. SPACE 4,10
  1985. * PFC TAGS FOR DISPLAYS.
  1986.  
  1987.  
  1988. TPFC DATA 10H FCFN/FCUI
  1989. DATA 10H FCLF/FCBT
  1990. DATA 10H FCRI/FCCD
  1991. DATA 10H FCAC/FCMD
  1992. DATA 10H FCCT/FCAD
  1993. DATA 10H FCKD
  1994. DATA 10H FCRS/FCUD
  1995. DATA 10H FCPW/FCXD
  1996. DATA 10H FCAF/FCAA
  1997. DATA 10H FCAL/FCFC
  1998. DATA 10H FCCN
  1999. DATA 10H FCP1
  2000. DATA 10H FCP2
  2001. DATA 10H FCTF/FCTV
  2002. DATA 10H FCCW
  2003. DATA 10H FCIW
  2004. SPACE 4,10
  2005. * FNT DISPLAY TAGS.
  2006.  
  2007.  
  2008. TFNT DATA 10H FNT
  2009. DATA 10H FST
  2010.  
  2011. DIS HERE
  2012. SPACE 4,10
  2013. QUAL
  2014. .1 SET *-RSPLA+4
  2015. FDPLA EQU RSPLA+.1/5*5 FORMATTED DISPLAY PROCESSOR LOAD ADDRESS
  2016. QUAL *
  2017. DSS SPACE 4,10
  2018. *** SYSTEM SECTOR DISPLAY.
  2019. * IF THE SECTOR CURRENTLY IN THE BUFFER IS A SYSTEM
  2020. * SECTOR, THE VARIOUS FIELDS THEREIN ARE DISPLAYED.
  2021. DSS SPACE 4,15
  2022. ** DSS - DISPLAY SYSTEM SECTOR.
  2023. *
  2024. * ENTRY FROM DFD.
  2025. * CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  2026. * (T3) = BUFFER ADDRESS.
  2027. * (YC) = Y-COORDINATE.
  2028. *
  2029. * EXIT TO DRS2.
  2030. *
  2031. * USES AB - AB+3, YC.
  2032. *
  2033. * CALLS DCE, DMW, DPT.
  2034. *
  2035. * MACROS DISPLA.
  2036.  
  2037.  
  2038. DSS RSOVL FDPLA
  2039. LDN 0 DISPLAY FNT/FST
  2040. STD AB
  2041. LDN 2
  2042. STD AB+1
  2043. LDN FNSS-BFMS
  2044. STD AB+2
  2045. LDC /DFD/TFNT
  2046. STD AB+3
  2047. RJM DMW DISPLAY MEMORY WORDS
  2048. LDM DBLS
  2049. RAD YC
  2050. LPC 7777
  2051. OAN CH+40
  2052. DISPLA CH01,,(SYSTEM SECTOR. UPDATED)
  2053. LDC DTSS+2 DISPLAY DATE AND TIME
  2054. RJM /DFD/DPT
  2055.  
  2056. * DISPLAY PFC ENTRY FOR DIRECT ACCESS OR FAST ATTACH FILES.
  2057.  
  2058. LDM FNSS+4 CHECK FILE TYPE
  2059. SHN -6
  2060. LMN PMFT
  2061. ZJN DSS1 IF DIRECT ACCESS PERMANENT FILE
  2062. LMN FAFT&PMFT
  2063. NJN DSS2 IF NOT FAST ATTACH FILE
  2064. DSS1 LDN CTSS-BFMS
  2065. STD AB+2
  2066. RJM /DFD/DCE DISPLAY CATALOG ENTRY
  2067. DSS2 LJM DRS2 RETURN
  2068.  
  2069.  
  2070. DIS HERE
  2071. DPE SPACE 4,10
  2072. *** PFC ENTRY.
  2073. * THE CONTENTS OF ONE PERMANENT FILE CATALOG ENTRY ARE
  2074. * DISPLAYED. THE CENTRAL MEMORY WORD NUMBER DISPLAYED
  2075. * IS RELATIVE TO THE BEGINNING OF THE PFC ENTRY. THE
  2076. * BYTE NUMBER RELATIVE TO THE BEGINNING OF THE SECTOR
  2077. * IS DISPLAYED IN PARENTHESIS AFTER THE CM WORD NUMBER.
  2078. * THE */* IS USED TO ADVANCE TO THE NEXT PFC ENTRY IN
  2079. * THE SECTOR.
  2080. DPE SPACE 4,15
  2081. ** DPE - DISPLAY PFC ENTRY.
  2082. *
  2083. * ENTRY FROM DFD.
  2084. * CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  2085. * (DRSA - DRSA+4) = PROCESSOR CONTROL WORD.
  2086. * (T3) = BUFFER ADDRESS.
  2087. * (YC) = Y-COORDINATE.
  2088. *
  2089. * EXIT TO DRS2.
  2090. *
  2091. * USES T2, AB+2, DRSA+4.
  2092. *
  2093. * CALLS DCE, D2S.
  2094. *
  2095. * MACROS DISPLA.
  2096.  
  2097.  
  2098. DPE RSOVL FDPLA
  2099. LDM DRSA+4 CHECK INDEX
  2100. SHN NWCES
  2101. SBM BFMS+1
  2102. PJN DPE1 IF NOT IN SECTOR
  2103. ADN NWCE-1
  2104. MJN DPE2 IF END OF PFC NOT IN SECTOR
  2105. DPE1 LDN 0
  2106. STM DRSA+4
  2107. DPE2 LCN YINC*2
  2108. RAD YC
  2109. OAN CH+40
  2110. DISPLA CH01,,(PFC ORDINAL = )
  2111. LDM DRSA+4
  2112. ADN 1R0
  2113. OAN CH+40
  2114. LDM DRSA+4
  2115. SHN NWCES
  2116. STD T2
  2117. SHN 2
  2118. ADD T2
  2119. ADN 2
  2120. STD AB+2
  2121. RJM /DFD/DCE DISPLAY CATALOG ENTRY
  2122. LJM DRS2 RETURN
  2123.  
  2124.  
  2125. DIS HERE
  2126. DEI SPACE 4,10
  2127. *** EOI SECTOR DISPLAY.
  2128. * IF THE SECTOR CURRENTLY IN THE BUFFER IS AN EOI
  2129. * SECTOR, THE VARIOUS FIELDS THEREIN ARE DISPLAYED.
  2130. DEI SPACE 4,15
  2131. ** DEI - DISPLAY EOI SECTOR.
  2132. *
  2133. * ENTRY FROM DFD.
  2134. * CONSOLE FUNCTIONED FOR RIGHT SCREEN.
  2135. * (T3) = BUFFER ADDRESS.
  2136. *
  2137. * EXIT TO DRS2.
  2138. *
  2139. * USES AB - AB+3, YC.
  2140. *
  2141. * CALLS DMW, DPT.
  2142. *
  2143. * MACROS DISPLA.
  2144.  
  2145.  
  2146. DEI RSOVL FDPLA
  2147. LDN 0 DISPLAY FNT/FST
  2148. STD AB
  2149. LDN 2
  2150. STD AB+1
  2151. LDN FNEI
  2152. STD AB+2
  2153. LDC /DFD/TFNT
  2154. STD AB+3
  2155. RJM DMW DISPLAY MEMORY WORDS
  2156. LDM DBLS
  2157. RAD YC
  2158. LPC 7777
  2159. OAN CH+40
  2160. DISPLA CH01,,(EOI SECTOR. UPDATED)
  2161. LDC BFMS+DTEI+2 DISPLAY DATE AND TIME
  2162. RJM /DFD/DPT
  2163. LJM DRS2 RETURN
  2164.  
  2165.  
  2166. DIS HERE
  2167. SPACE 4,10
  2168. RSOVL END OF RIGHT SCREEN PROCESSORS
  2169.  
  2170. QUAL PRESET
  2171. .1 MAX DSSL,DPEL,DEIL
  2172. .2 SET FDPLA-RSPLA
  2173. .MRSPL MAX .MRSPL,.2/5+.1 MAXIMUM TOTAL OVERLAY AREA
  2174. QUAL *
  2175. MRSPL EQU /PRESET/.MRSPL MAX RIGHT SCREEN PROCESSOR LENGTH
  2176. SPACE 4,15
  2177. ** AUXILIARY COMMAND ROUTINES ORIGIN DEFINITION.
  2178. *
  2179. * THIS AREA AT THE END OF THE RIGHT SCREEN PROCESSOR OVERLAY
  2180. * AREA MAY BE USED BY COMMAND PROCESSORS FOR EXTRA SUBROUTINES.
  2181. * BEFORE LOADING THE SUBROUTINES, THE COMMAND PROCESSOR MUST
  2182. * FIRST SET THE DISPLAY INDEX (RS) TO *DFBN* TO SELECT THE
  2183. * SHORTEST DISPLAY OVERLAY (*DFB*). NOTE THAT THIS MUST BE
  2184. * DONE BEFORE EACH CALL TO REFRESH THE DISPLAY TO OVERRIDE ANY
  2185. * KEYBOARD REQUESTS THAT CHANGE THE RIGHT SCREEN DISPLAY.
  2186. *
  2187. * ** THE *DFB* DISPLAY MUST NOT USE ANY SECONDARY OVERLAYS. **
  2188.  
  2189.  
  2190. ACRLA EQU RSPLA+/PRESET/DFBL*5
  2191. MACRL EQU MRSPL-/PRESET/DFBL MAXIMUM LENGTH OF OVERLAY
  2192. SPACE 4,10
  2193. ** RESIDENT OVERLAY ORIGIN DEFINITION.
  2194. *
  2195. * THIS OVERLAY IS LOADED ONCE AND REMAINS IN THE PP.
  2196.  
  2197.  
  2198. RESLA EQU RSPLA+MRSPL*5-4 RESIDENT LOAD ADDRESS
  2199. SPACE 4,10
  2200. OVERFLOW PPFW
  2201. OVERLAY RESLA,(RESIDENT ROUTINES.)
  2202.  
  2203. QUAL *
  2204. BSS 2
  2205.  
  2206. LJM PRR PRESET RESIDENT ROUTINES
  2207.  
  2208. * ABOVE CODE MAY BE OVERLAYED BY RIGHT SCREEN PROCESSORS.
  2209. TITLE KEYBOARD INPUT PROCESSING.
  2210. *** KEYBOARD INPUT.
  2211. * IF THE CHARACTERS ARE THE FIRST ENTRY, THE FOLLOWING
  2212. * APPLIES -
  2213. * *+* READS THE NEXT SECTOR. IF AT EOI OR END OF THE TRACK THE
  2214. * CURRENT SECTOR IS REREAD.
  2215. * *-* READS THE PREVIOUS SECTOR. IF AT THE BEGINNING OF TRACK
  2216. * THE CURRENT SECTOR IS REREAD.
  2217. * *.* ADVANCES TO TRACK IN THE CONTROL BYTES AND SETS THE
  2218. * SECTOR TO 0. IF THE CONTROL BYTES DO NOT CONTAIN A
  2219. * TRACK LINK, THE CURRENT SECTOR IS REREAD.
  2220. * *,* ADVANCES TO THE NEXT TRACK IN THE TRT CHAIN. THE SECTOR
  2221. * NUMBER IS NOT CHANGED. IF CURRENTLY IN THE LAST
  2222. * TRACK IN THE CHAIN, THE CURRENT SECTOR IS REREAD.
  2223. * *=* READS THE NEXT SECTOR AFTER EOI. IF THE EOI IS AT THE
  2224. * END OF AN EOI TRACK, THE CURRENT SECTOR IS REREAD.
  2225. * *CR* SETS *REPEAT ENTRY.*
  2226. * * * READS THE CURRENT SECTOR INTO THE BUFFER.
  2227. * (*) HOLDS DISPLAY.
  2228. * *8* INCREMENTS THE TRACK NUMBER BY ONE AND READS THE SECTOR.
  2229. * *9* DECREMENTS THE TRACK NUMBER BY ONE AND READS THE SECTOR.
  2230. * RIGHT BLANK OR TAB CHANGES THE RIGHT SCREEN DISPLAY.
  2231. * */* ADVANCES THE ADDRESS DISPLAYED ON THE RIGHT SCREEN.
  2232. *
  2233. * ALL COMMANDS ARE DISPLAYED ON THE BOTTOM OF THE LEFT SCREEN
  2234. * AS THEY ARE ENTERED.
  2235. *
  2236. * *CR* MUST FOLLOW ALL COMMANDS BEFORE ACTION IS TAKEN.
  2237. * *BKSP* DELETES THE PREVIOUS CHARACTER TYPED.
  2238. * LEFT BLANK OR BACKTAB DELETES THE CURRENT LINE BEING ENTERED.
  2239. *
  2240. * COMMANDS ARE PROCESSED INTERPRETIVELY. AFTER THE PERIOD (.)
  2241. * ANY ALPHA-NUMERIC CHARACTERS CAN BE ENTERED, HOWEVER, THE
  2242. * MESSAGE *FORMAT ERROR.* OR *INCORRECT PARAMETER.* WILL APPEAR
  2243. * AFTER THE *CR* IS ENTERED IF AN ERROR IS MADE.
  2244. *
  2245. * NOTE THAT MOST COMMANDS DO NOT CAUSE A SECTOR TO ACTUALLY
  2246. * BE READ AND DISPLAYED. AFTER ENTERING COMMANDS THAT CHANGE
  2247. * THE EQUIPMENT, TRACK, OR SECTOR A SPACE MUST BE ENTERED TO
  2248. * READ THE SECTOR. THIS ALLOWS DATA FROM ONE SECTOR TO BE
  2249. * READ AND WRITTEN TO ANOTHER SECTOR.
  2250. *
  2251. * AFTER A COMMAND THAT CHANGES THE EQUIPMENT OR TRACK, THE
  2252. * TRACK AND SECTOR NUMBERS ARE CHECKED. IF EITHER THE TRACK
  2253. * OR SECTOR IS ILLEGAL ON THE EQUIPMENT/TRACK, IT WILL BE SET
  2254. * TO ZERO.
  2255. *
  2256. DKB SPACE 4,10
  2257. ** DKB - DISPLAY KEYBOARD BUFFER.
  2258. *
  2259. * ENTRY (KM) = ADDRESS OF KEYBOARD MESSAGE.
  2260. * (DK) = DISPLAY KEYBOARD CONTROL(721 ONLY).
  2261. *
  2262. * EXIT (A) = (DK), ZERO FOR CC545.
  2263. *
  2264. * USES DK, T1, YC.
  2265. *
  2266. * MACROS CFNC, DFIM.
  2267.  
  2268.  
  2269. DKB SUBR ENTRY/EXIT
  2270. CFNC SLPF SELECT LEFT PRIORITY OUTPUT
  2271. DFIM (CON LN51),*+1
  2272. LDC LN49-YINC/2 SET Y-COORDINATE
  2273. STD YC
  2274. DFIM (UJN DKB1)
  2275.  
  2276. * DISPLAY KEYBOARD BUFFER IN MEDIUM CHARACTERS ON CC545.
  2277.  
  2278. DCN CH+40
  2279. CFNC SLMF SELECT LEFT SCREEN, MEDIUM CHARACTERS
  2280. LDN 4 SET INTENSIFICATION COUNT
  2281. STD DK
  2282. DKB1 LDN 2 OUTPUT COORDINATES
  2283. OAM XC,CH
  2284. * LDN 0
  2285. STD T1
  2286. DKB2 LDM KBUF,T1
  2287. ZJN DKB3 IF END OF KEYBOARD LINE
  2288. SHN 6
  2289. ADM KBUF+1,T1
  2290. OAN CH+40
  2291. LDN 2 ADVANCE INDEX
  2292. RAD T1
  2293. SBD KI
  2294. MJN DKB2 IF NOT END OF KEYBOARD LINE
  2295. DKB3 CFNC EELF ERASE TO END OF LINE
  2296.  
  2297. * DISPLAY KEYBOARD MESSAGE(S) IF SET.
  2298.  
  2299. LDN 2 OUTPUT ERROR MESSAGE LINE COORDINATE
  2300. OAM DKBA,CH
  2301. LDD KM
  2302. ZJN DKB5 IF ERROR MESSAGE NOT SET
  2303. STD T1 SET MESSAGE ADDRESS
  2304. DKB4 LDI T1 DISPLAY MESSAGE
  2305. OAN CH+40
  2306. LPN 77
  2307. ZJN DKB5 IF END OF MESSAGE
  2308. AOD T1
  2309. UJN DKB4 DISPLAY NEXT BYTE
  2310.  
  2311. DKB5 LDD SB
  2312. NJN DKB6 IF SYSTEM BUSY FLAG CLEAR
  2313. DISPLA ,,(SYSTEM BUSY.)
  2314.  
  2315. * LOOP FOR PROPER INTENSIFICATION.
  2316.  
  2317. DFIM (CFNC EELF)
  2318. DKB6 SOD DK
  2319. ZJN DKB7 IF INTENSIFICATION COMPLETE
  2320. LJM DKB1 LOOP
  2321.  
  2322. DKB7 FJM *,CH IF CHANNEL FULL, WAIT UNTIL EMPTY
  2323. DCN CH+40
  2324. LDD DK
  2325. LJM DKBX RETURN
  2326.  
  2327. * COORDINATES FOR ERROR MESSAGE LINE.
  2328.  
  2329. DKBA CON CH01
  2330. DFIM (CON LN50)
  2331. CON LN48+YINC/2
  2332. PKI SPACE 4,10
  2333. ** PKI - PROCESS KEYBOARD INPUT.
  2334. *
  2335. * EXIT TO SPECIAL CHARACTER PROCESSOR.
  2336. * TO FIRST CHARACTER PROCESSOR.
  2337. * TO *BSP* IF KEYBOARD BUFFER FULL.
  2338. * TO *IKE* IF NOT A SPECIAL CHARACTER.
  2339. *
  2340. * USES DK, EF, KE, KI, T1.
  2341. *
  2342. * CALLS BSP, DKB, IKE, SPECIAL CHARACTER PROCESSORS.
  2343.  
  2344.  
  2345. PKI8 STM PKIA STORE CHARACTER
  2346. PKI9 LDN 0
  2347. STD DK
  2348. PKIX RJM DKB DISPLAY KEYBOARD LINE
  2349. NJN PKI1 IF INPUT NOT COMPLETE
  2350.  
  2351. LJM * ENTRY/EXIT
  2352. PKI EQU *-1
  2353. *PKI SUBR ENTRY/EXIT
  2354. LDN 0
  2355. STD DK
  2356. PKI1 CFNC SKIF SELECT KEYBOARD INPUT
  2357. IAN CH+40
  2358. DCN CH+40
  2359. STD KE
  2360. ZJN PKI8 IF NO INPUT
  2361. DFIM (UJN PKI3)
  2362. LDC 60B PRESET TO *CR*
  2363. PKIA EQU *-1
  2364. ZJN PKI2 IF NO PREVIOUS CHARACTER
  2365. SOM PKIB DECREMENT COUNTER
  2366. NJN PKI9 IF DELAY NOT ELAPSED
  2367. LDN 20 SET REPEAT DELAY
  2368. PKI2 LMN 24 SET INITIAL DELAY
  2369. STM PKIB
  2370. PKI3 LDD KE
  2371. STM PKIA
  2372. SBN 63
  2373. PJN PKI9 IF ILLEGAL CHARACTER
  2374. ADN 63-1R8
  2375. MJN PKI7 IF NOT SPECIAL FIRST CHARACTER
  2376. LDD KI
  2377. NJN PKI4 IF NOT FIRST CHARACTER
  2378. LDM PKIC-1R8,KE GET ADDRESS OF PROCESSOR
  2379. STD T1
  2380. UJN PKI5 PROCESS COMMAND
  2381.  
  2382. PKI4 LDD KE
  2383. SBN 53
  2384. MJN PKI7 IF NOT SPECIAL CHARACTER
  2385. LDM PKID-53,KE GET ADDRESS OF PROCESSOR
  2386. STD T1
  2387. PKI5 LJM 0,T1 PROCESS COMMAND
  2388.  
  2389. PKI6 LDN 1R REPLACE CODE FOR SPACE
  2390. STD KE
  2391. PKI7 LDN 0 CLEAR EXECUTE FLAG
  2392. STD EF
  2393. LDD KE
  2394. STM KBUF,KI
  2395. AOD DK
  2396. AOD KI
  2397. LMK KBUFL-1
  2398. NJN IKE IF BUFFER NOT FULL
  2399. LJM BSP DELETE LAST CHARACTER ENTERED
  2400.  
  2401.  
  2402. PKIB CON 1 DELAY COUNT
  2403. PKIC SPACE 4,10
  2404. * TABLE OF SPECIAL FIRST CHARACTERS.
  2405.  
  2406.  
  2407. PKIC BSS 0
  2408. LOC 1R8
  2409. CON ITN 8 - INCREMENT TRACK NUMBER
  2410. CON DTN 9 - DECREMET TRACK NUMBER
  2411. CON AOS + - ADVANCE ONE SECTOR
  2412. CON BOS - - BACKUP ONE SECTOR
  2413. CON DDC * - DROP DISPLAY CHANNEL
  2414. CON IRD / - INCREMENT RIGHT DISPLAY
  2415. CON PKIX (
  2416. CON PKIX )
  2417. CON CMB LEFT BLANK - CLEAR MESSAGE AND KEYBOARD
  2418. CON APE = - ADVANCE PAST EOI
  2419. CON RRD RIGHT BLANK - ROTATE RIGHT DISPLAY
  2420. CON AOT , - ADVANCE ONE TRACK
  2421. CON ATZ . - ADVANCE ONE TRACK AND ZERO SECTOR NO.
  2422. CON SRE CR - SET REPEAT ENTRY
  2423. CON PKIX BKSP
  2424. CON RCS SPACE - READ CURRENT SECTOR
  2425. LOC *O
  2426. PKID SPACE 4,10
  2427. * TABLE OF SPECIAL CHARACTERS.
  2428.  
  2429.  
  2430. PKID BSS 0
  2431. LOC 53
  2432. CON CMB LEFT BLANK - CLEAR MESSAGE AND KEYBOARD
  2433. CON PKI7 =
  2434. CON RRD RIGHT BLANK - ROTATE RIGHT DISPLAY
  2435. CON PKI7 ,
  2436. CON PKI7 .
  2437. CON PEC CR - PROCESS ENTERED COMMAND
  2438. CON BSP BKSP - DELETE LAST CHARACTER
  2439. CON PKI6 SPACE
  2440. LOC *O
  2441. IKE SPACE 4,15
  2442. ** IKE - INTERPRET KEYBOARD ENTRY.
  2443. *
  2444. * ENTRY (EF) = 0 IF INTERPRET ONLY.
  2445. * (EF) " 0 IF EXECUTE REQUESTED.
  2446. * (KI) = END OF BUFFER POINTER.
  2447. * (TA) = CM FWA OF COMMAND TABLE.
  2448. *
  2449. * EXIT TO PKIX IF EXECUTE NOT REQUESTED.
  2450. * TO EMC IF FIRST CHARACTER 0 - 7.
  2451. * TO COMMAND PROCESSOR IF EXECUTE AND COMMAND COMPLETE.
  2452. * (CA) = ADDRESS OF NEXT CHARACTER IN BUFFER.
  2453. *
  2454. * USES T1 - T3, CA, CM, KM.
  2455. *
  2456. * CALLS EMC, COMMAND PROCESSORS.
  2457.  
  2458.  
  2459. IKE LDN 0
  2460. STD T1 SET TRIAL CHARACTER
  2461. STD CM SET SYNTAX TABLE INDEX
  2462. LDM KBUF CHECK FIRST CHARACTER
  2463. SBN 1R0
  2464. MJN IKE1 IF ALPHABETIC
  2465. SBN 8D
  2466. PJN IKE1 IF ABOVE 7
  2467. LJM EMC PROCESS MEMORY CHANGE COMMAND
  2468.  
  2469. IKE1 LDN 2 SET SYNTAX ENTRY LENGTH
  2470. STD T2
  2471. LDD RA READ ENTRY
  2472. ADD TA
  2473. SHN 6
  2474. ADD CM
  2475. CRM IKEA,T2
  2476. LDN 2 ADVANCE INDEX FOR NEXT PASS
  2477. RAD CM
  2478. LDC IKEA SET ENTRY POINTER
  2479. STD T2
  2480. LDI T2
  2481. NJN IKE2 IF NOT END OF TABLE
  2482. LJM IKE9 PROCESS END OF SCAN
  2483.  
  2484. IKE2 LDC KBUF SET CHARACTER ADDRESS
  2485. STD CA
  2486. IKE3 LDI T2 COMPARE UPPER
  2487. SHN -6
  2488. ZJN IKE7 IF COMPARE COMPLETE
  2489. STD T3
  2490. LMI CA
  2491. NJN IKE4 IF NO MATCH
  2492. AOD CA
  2493. LDI T2 COMPARE LOWER
  2494. LPN 77
  2495. ZJN IKE7 IF COMPARE COMPLETE
  2496. STD T3
  2497. LMI CA
  2498. NJN IKE4 IF NO MATCH
  2499. AOD T2
  2500. AOD CA
  2501. UJN IKE3 LOOP
  2502.  
  2503. * PROCESS NO MATCH FOUND.
  2504.  
  2505. IKE4 LDI CA
  2506. NJN IKE5 IF DIFFERENT CHARACTER
  2507. LDD T1
  2508. NJN IKE6 IF NOT UNIQUE ENTRY
  2509. LDD T3 SET NEXT CHARACTER
  2510. STD T1
  2511. IKE5 LJM IKE1 LOOP
  2512.  
  2513. IKE6 LMD T3
  2514. ZJN IKE5 IF SAME CHARACTER
  2515. UJN IKE10 CHECK EXECUTE FLAG
  2516.  
  2517. * PROCESS UNIQUE CHARACTER.
  2518.  
  2519. IKE7 LDD EF
  2520. NJN IKE8 IF EXECUTE FLAG SET
  2521. LJM PKIX RETURN IF INTERPRET ONLY
  2522.  
  2523. * PROCESS COMMAND.
  2524.  
  2525. IKE8 LDM IKEA+10 SET WORD COUNT
  2526. SHN -6
  2527. STD T1
  2528. LDM IKEA+10 GET CM ADDRESS
  2529. LPN 37
  2530. SHN 6
  2531. ADD RA
  2532. SHN 6
  2533. ADM IKEA+11
  2534. CRM CPLA,T1 READ COMMAND PROCESSOR
  2535. LJM CPLA EXECUTE COMMAND
  2536.  
  2537. * PROCESS END OF FORMAT SCAN.
  2538.  
  2539. IKE9 LDD T1
  2540. NJN IKE12 IF UNIQUE CHARACTER
  2541. STM KBUF-1,KI BACKSPACE POINTER
  2542. SOD KI
  2543. IKE10 LDD EF
  2544. ZJN IKE11 IF EXECUTE FLAG NOT SET
  2545. LDC SREA *REPEAT ENTRY.*
  2546. STD KM
  2547. IKE11 LJM PKIX RETURN
  2548.  
  2549. IKE12 SBN 1R=
  2550. PJN IKE10 IF SPECIAL CHARACTER
  2551. LDD T1 FILL NEXT CHARACTER
  2552. STM KBUF,KI
  2553. AOD KI
  2554. LJM IKE LOOP
  2555.  
  2556.  
  2557. IKEA BSS 12 COMMAND SYNTAX BUFFER
  2558. SPACE 4,10
  2559. ** EXIT ROUTINES FOR COMMAND PROCESSORS.
  2560. ERR SPACE 4,10
  2561. ** ERR - SET ERROR MESSAGE.
  2562.  
  2563.  
  2564. ERR1 LDC =C*FORMAT ERROR.*
  2565. UJN ERR SET MESSAGE
  2566.  
  2567. ERR2 LDC =Z*INCORRECT PARAMETER.*
  2568. UJN ERR SET MESSAGE
  2569.  
  2570. ERR3 LDC =Z*NOT FOUND.*
  2571. UJN ERR SET MESSAGE
  2572.  
  2573. ERR4 LDC =Z*INCORRECT ENTRY.*
  2574. UJN ERR SET MESSAGE
  2575.  
  2576. ERR5 LDC =Z*INCORRECT EQUIPMENT.*
  2577.  
  2578. ERR STD KM
  2579. UJN RET RETURN
  2580. IMS SPACE 4,10
  2581. ** IMS - INITIALIZE MASS STORAGE DRIVERS AND RANDOM ACCESS.
  2582.  
  2583.  
  2584. IMS RJM CTS CHECK TRACK AND SECTOR NUMBERS
  2585. * UJN RET RETURN
  2586. RET SPACE 4,10
  2587. ** RET - NORMAL RETURN.
  2588.  
  2589.  
  2590. RET LDN 0 CLEAR INDEX
  2591. RET1 STD T1 SET CLEARING INDEX
  2592. LDD KM
  2593. NJN RET3 IF MESSAGE SET
  2594. LDD T1 SET KEYBOARD INDEX
  2595. STD KI
  2596. RET2 LDN 0 CLEAR BUFFER
  2597. STM KBUF,T1
  2598. AOD T1
  2599. LMC KBUFL
  2600. NJN RET2 IF NOT END OF BUFFER
  2601. RET3 LDC RCPX RESTORE LOOP
  2602. STM RCPA
  2603. STD SB CLEAR *SYSTEM BUSY* INDICATION
  2604. LJM PKIX RETURN
  2605. SBN SPACE 4,10
  2606. ** SBN - SET BYTE NUMBER MESSAGE.
  2607. *
  2608. * (FN) = BYTE NUMBER.
  2609.  
  2610.  
  2611. SBN LDD FN CONVERT NUMBER
  2612. SHN -6
  2613. RJM C2D CONVERT TOP TWO DIGITS
  2614. STM SBNB
  2615. LDD FN
  2616. RJM C2D CONVERT TWO DIGITS
  2617. STM SBNB+1
  2618.  
  2619. * CHECK RIGHT SCREEN PAGE.
  2620.  
  2621. LDD RS
  2622. SBK DFBN
  2623. DFIM (ZJN SBN1)
  2624. ZJN SBN3 IF FIVE BYTE DISPLAY
  2625. SBN DLCN-DFBN
  2626. DFIM (MJN SBN3)
  2627. MJN SBN4 IF TEN BYTE OR TEXT DISPLAY
  2628. ZJN SBN4 IF COMMAND DISPLAY
  2629.  
  2630. * SET PAGE NUMBER FOR FOUR PAGE DISPLAY.
  2631.  
  2632. SBN1 LDN 0
  2633. STM DRSA+4
  2634. LDC -2-500/4
  2635. SBN2 RAD FN
  2636. MJN SBN4 IF ON CURRENT PAGE
  2637. AOM DRSA+4
  2638. LDC -500/4
  2639. UJN SBN2 LOOP TO CHECK NEXT PAGE
  2640.  
  2641. * SET PAGE NUMBER FOR TWO PAGE DISPLAY.
  2642.  
  2643. SBN3 LDD FN
  2644. ADC -242
  2645. SHN 0-21
  2646. LMN 1
  2647. STM DRSA+4
  2648. SBN4 LDC SBNA
  2649. LJM SKM DISPLAY MESSAGE
  2650.  
  2651.  
  2652. SBNA DATA H* BYTE *
  2653. SBNB DATA Z*NNNN.*
  2654. SCP SPACE 4,10
  2655. ** SCP - START UP CPU PROGRAM.
  2656. *
  2657. * ENTRY (A) = FUNCTION NUMBER * 2 + 1.
  2658. * (CM - CM+4) = CONTENTS OF CPU STATUS WORD.
  2659.  
  2660.  
  2661. SCP STD CM+4
  2662. LDD RA
  2663. SHN 6
  2664. ADN D
  2665. CWD CM
  2666. LJM RET RETURN
  2667. SKM SPACE 4,10
  2668. ** SKM - SET KEYBOARD MESSAGE.
  2669. *
  2670. * ENTRY (A) = ADDRESS OF MESSAGE.
  2671.  
  2672.  
  2673. SKM EQU ERR
  2674. SPACE 4,10
  2675. ** SPECIAL CHARACTER PROCESSORS.
  2676. AOS SPACE 4,10
  2677. ** AOS - ADVANCE ONE SECTOR.
  2678.  
  2679.  
  2680. AOS LDD SC CHECK SECTOR COUNT
  2681. SBD LS
  2682. ZJN AOS1 IF END OF TRACK
  2683. LDM BFMS
  2684. ADM BFMS+1
  2685. ZJN AOS1 IF END OF INFORMATION
  2686. AOD SC
  2687. AOS1 LJM RCS READ SECTOR
  2688. AOT SPACE 4,10
  2689. ** AOT - ADVANCE ONE TRACK.
  2690.  
  2691.  
  2692. AOT RJM SNT GET NEXT TRACK
  2693. SHN 6
  2694. PJN AOT1 IF END OF CHAIN
  2695. SHN -6
  2696. STD TK
  2697. AOT1 UJN ATZ2 CHECK TRACK NUMBER
  2698. APE SPACE 4,10
  2699. ** APE - ADVANCE PAST EOI.
  2700.  
  2701.  
  2702. APE LDD SC
  2703. SBD LS
  2704. ZJN APE1 IF END OF TRACK
  2705. AOD SC ADVANCE TO NEXT SECTOR
  2706. UJN APE2 READ SECTOR
  2707.  
  2708. APE1 RJM SNT GET NEXT TRACK
  2709. SHN 6
  2710. PJN APE2 IF EOI TRACK
  2711. SHN -6
  2712. STD TK
  2713. LDN 0
  2714. STD SC
  2715. APE2 LJM RCS READ SECTOR
  2716. ATZ SPACE 4,10
  2717. ** ATZ - ADVANCE ONE TRACK AND ZERO SECTOR.
  2718.  
  2719.  
  2720. ATZ LDM BFMS
  2721. NJN ATZ1 IF NOT EOF
  2722. LDM BFMS+1
  2723. ATZ1 SHN 6
  2724. PJN ATZ2 IF NOT CHAIN BYTE
  2725. SHN -6
  2726. STD TK SET NEXT TRACK
  2727. LDN 0
  2728. STD SC
  2729. ATZ2 RJM CTS CHECK SECTOR LIMIT
  2730. LJM RCS READ SECTOR
  2731. BOS SPACE 4,10
  2732. ** BOS - BACKUP ONE SECTOR.
  2733.  
  2734.  
  2735. BOS LDD SC
  2736. ZJN BOS1 IF BEGINNING OF TRACK
  2737. SOD SC
  2738. BOS1 LJM RCS READ SECTOR
  2739. BSP SPACE 4,10
  2740. ** BSP - BACKSPACE KEYBOARD BUFFER.
  2741.  
  2742.  
  2743. BSP SOD KI DECREMENT POINTER
  2744. LDD KM
  2745. LMC SREA
  2746. ZJN BSP1 IF *REPEAT ENTRY.*
  2747. LDN 0
  2748. STD KM CLEAR MESSAGE
  2749. BSP1 STM KBUF,KI CLEAR LAST CHARACTER
  2750. LJM RET3 RESTORE LOOP
  2751. CMB SPACE 4,10
  2752. ** CMB - CLEAR MESSAGE AND BUFFER.
  2753.  
  2754.  
  2755. CMB LDN 0 CLEAR KEYBOARD MESSAGE
  2756. STD KM
  2757. STM RDCT CLEAR DRIVER ERROR CODE
  2758. STD CM CLEAR CONTROL POINT MESSAGES
  2759. LDD CP
  2760. ADN MS1W
  2761. CWD CM
  2762. ADN MS2W-MS1W
  2763. CWD CM
  2764. LJM RET CLEAR KEYBOARD BUFFER
  2765. DDC SPACE 4,10
  2766. ** DDC - DROP DISPLAY CHANNEL.
  2767.  
  2768.  
  2769. DDC RJM HDC HOLD DISPLAY CHANNEL
  2770. RJM CSB CLEAR SCREEN BUFFER
  2771. UJN IRD1 RETURN TO *PKIX*
  2772. DTN SPACE 4,10
  2773. ** DTN - DECREMENT TRACK NUMBER.
  2774.  
  2775. DTN SOD TK
  2776. DTN1 LPC 3777
  2777. ADC 4000
  2778. STD TK
  2779. LJM ATZ2 CHECK TRACK NUMBER
  2780. IRD SPACE 4,10
  2781. ** IRD - INCREMENT RIGHT DISPLAY.
  2782.  
  2783.  
  2784. IRD AOM DRSA+4 INCREMENT DISPLAY INDEX
  2785. LPC 777
  2786. STM DRSA+4
  2787. IRD1 LJM PKIX RETURN
  2788. ITN SPACE 4,10
  2789. ** ITN - INCREMENT TRACK NUMBER.
  2790.  
  2791.  
  2792. ITN AOD TK
  2793. UJN DTN1 CHECK TRACK NUMBER
  2794. PEC SPACE 4,10
  2795. ** PEC - PROCESS ENTERED COMMAND.
  2796.  
  2797.  
  2798. PEC LDN 1 SET EXECUTE FLAG
  2799. STD EF
  2800. LJM IKE CHECK COMMAND
  2801. RCS SPACE 4,10
  2802. ** RCS - READ CURRENT SECTOR.
  2803.  
  2804.  
  2805. RCS RJM RSB READ SECTOR
  2806. LJM RET3 RESTORE MAIN LOOP
  2807. RRD SPACE 4,10
  2808. ** RRD - ROTATE RIGHT DISPLAY.
  2809.  
  2810.  
  2811. RRD AOD RS INCREMENT RIGHT DISPLAY POINTER
  2812. SBN MXDI
  2813. NJN RRD1 IF LEGAL DISPLAY
  2814. STD RS
  2815. RRD1 UJN IRD1 RETURN TO *PKIX*
  2816. SRE SPACE 4,10
  2817. ** SRE - SET REPEAT ENTRY.
  2818.  
  2819.  
  2820. SRE LDC SREA
  2821. STD KM
  2822. UJN RRD1 RETURN TO *PKIX*
  2823.  
  2824.  
  2825. SREA DATA Z*REPEAT ENTRY.*
  2826. TITLE MEMORY CHANGES.
  2827. EMC SPACE 4,10
  2828. *** MEMORY CHANGES.
  2829. * XXX,YYYY. ENTER YYYY INTO BYTE XXX.
  2830. * XXX,DCC ENTER CHARACTERS CC IN BYTE XXX.
  2831. *
  2832. * IF THE COMMA *,* IS REPLACED BY A PLUS *+*, THE BYTE NUMBER
  2833. * WILL BE INCREMENTED AFTER THE ENTRY IS PROCESSED. THE ACTUAL
  2834. * DATA ON THE DISK IS NOT CHANGED UNTIL THE WRITE COMMAND IS
  2835. * ENTERED.
  2836. EMC SPACE 4,10
  2837. ** EMC - ENTER MEMORY CHANGE.
  2838. *
  2839. * ENTRY (EF) = 0 IF INTERPRET ONLY.
  2840. * (EF) " 0 IF EXECUTE REQUESTED.
  2841. *
  2842. * USES T1, AB+4, CM, CA, KM, RC.
  2843. *
  2844. * CALLS BSP, CDR, RET.
  2845.  
  2846.  
  2847. EMC LDC KBUF
  2848. STD CA
  2849. RJM CDR CONVERT BYTE NUMBER
  2850. ZJN EMC2 IF NO MORE CHARACTERS
  2851. LMN 1R+
  2852. ZJN EMC1 IF *+*
  2853. LMN 1R,&1R+
  2854. NJN EMC3 IF ILLEGAL CHARACTER
  2855. EMC1 LDD AB+4
  2856. STD RC
  2857. ADC -502
  2858. PJN EMC3 IF BYTE NUMBER TOO LARGE
  2859. LDD CA
  2860. STD CM
  2861. AOD CA
  2862. LDI CA
  2863. LMN 1RD
  2864. ZJN EMC6 IF CHARACTER ENTRY
  2865.  
  2866. * ENTER OCTAL VALUE.
  2867.  
  2868. RJM CDR CONVERT VALUE
  2869. EMC2 ZJN EMC4 IF NO MORE CHARACTERS
  2870. LMN 1R.
  2871. ZJN EMC7 IF *.*
  2872. EMC3 LJM BSP DELETE ILLEGAL CHARACTER
  2873.  
  2874. * INCOMPLETE ENTRY.
  2875.  
  2876. EMC4 LDD EF
  2877. ZJN EMC5 IF EXECUTE NOT REQUESTED
  2878. LDC SREA SET *REPEAT ENTRY.*
  2879. STD KM
  2880. EMC5 LJM PKIX RETURN
  2881.  
  2882. * ENTER DISPLAY CODE.
  2883.  
  2884. EMC6 LDM 3,CA
  2885. NJN EMC3 IF TOO MANY CHARACTERS
  2886. LDM 1,CA
  2887. SHN 6
  2888. ADM 2,CA
  2889. STD AB+4 VALUE
  2890.  
  2891. * ENTRY COMPLETE.
  2892.  
  2893. EMC7 LDD EF
  2894. ZJN EMC5 IF EXECUTE NOT REQUESTED
  2895. LDD AB+4
  2896. STM BFMS,RC STORE VALUE
  2897. LDI CM
  2898. LMN 1R+
  2899. ZJN EMC8 IF *+* TYPE ENTRY
  2900. LJM RET RETURN
  2901.  
  2902. * *+* ENTRY, ADVANCE ADDRESS.
  2903.  
  2904. EMC8 LDD CM
  2905. SBN 1
  2906. STD T1
  2907. EMC9 AOI T1 ADVANCE ADDRESS
  2908. SBN 1R8
  2909. MJN EMC11 IF NO OVERFLOW
  2910. LDN 1R0 RESET DIGIT
  2911. STI T1
  2912. SOD T1
  2913. ADC -KBUF
  2914. PJN EMC9 IF MORE DIGITS
  2915. LDN KBUFL-1
  2916. STD T1
  2917. EMC10 LDM KBUF,T1 SHIFT BUFFER ONE CHARACTER RIGHT
  2918. STM KBUF+1,T1
  2919. SOD T1
  2920. PJN EMC10 IF MORE CHARACTERS
  2921. LDN 1R1
  2922. STM KBUF ADD LEADING 1
  2923. AOD CM INCREMENT CHARACTER COUNT
  2924. EMC11 LDM 1,CM
  2925. LMN 1RD
  2926. NJN EMC12 IF NOT CHARACTER ENTRY
  2927. AOD CM
  2928. EMC12 LDD CM
  2929. ADC -KBUF+1
  2930. LJM RET1 CLEAR LAST PART OF ENTRY
  2931. TITLE SUBROUTINES.
  2932. ASD SPACE 4,10
  2933. ** ASD - ASSEMBLE DIGITS.
  2934. *
  2935. * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
  2936. *
  2937. * EXIT (AB - AB+4) = ASSEMBLY.
  2938. * TO ERR IF NOT TERMINATED BY A *.*.
  2939. *
  2940. * CALLS CDR, ERR1.
  2941.  
  2942.  
  2943. ASD SUBR ENTRY/EXIT
  2944. RJM CDR CONVERT DIGITS
  2945. LMN 1R.
  2946. ZJN ASDX IF PERIOD
  2947. LJM ERR1 *FORMAT ERROR.*
  2948. ASN SPACE 4,10
  2949. ** ASN - ASSEMBLE NAME.
  2950. *
  2951. * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
  2952. *
  2953. * EXIT (FN - FN+4) = NAME (LEFT JUSTIFIED).
  2954. * TO ERR IF ILLEGAL CHARACTER OR MORE THAN 7 CHARACTERS.
  2955. *
  2956. * USES T1, T2.
  2957. *
  2958. * CALLS ERR2.
  2959.  
  2960.  
  2961. ASN3 LDD T2 ADD CHARACTER TO NAME
  2962. STM FN,T1
  2963.  
  2964. ASN SUBR ENTRY/EXIT
  2965. LDN ZERL
  2966. CRD FN
  2967. LDN 0
  2968. STD T1
  2969. ASN1 LDI CA ASSEMBLE CHARACTERS
  2970. ZJN ASN2 IF END OF CHARACTER STRING
  2971. SBN 1R.
  2972. ZJN ASNX IF TERMINATOR
  2973. LDI CA SAVE CHARACTER
  2974. SHN 6
  2975. STD T2
  2976. AOD CA
  2977. LDI CA
  2978. ZJN ASN2 IF END OF CHARACTER STRING
  2979. SBN 1R.
  2980. ZJN ASN3 IF TERMINATOR
  2981. LDI CA ADD CHARACTERS TO NAME
  2982. LMD T2
  2983. STM FN,T1
  2984. AOD CA
  2985. AOD T1
  2986. SBN 4
  2987. MJN ASN1 IF LESS THAN 7 CHARACTERS
  2988. ASN2 LJM ERR2 *INCORRECT PARAMETER.*
  2989. CDR SPACE 4,10
  2990. ** CDR - CONVERT DIGITS RIGHT ADJUSTED.
  2991. *
  2992. * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
  2993. *
  2994. * EXIT (A) = SEPARATOR CHARACTER.
  2995. * (AB - AB+4) = ASSEMBLY.
  2996. * (CA) = ADDRESS OF SEPAROTOR CHARACTER.
  2997. *
  2998. * USES T2, T3, CA.
  2999.  
  3000.  
  3001. CDR SUBR ENTRY/EXIT
  3002. LDN ZERL CLEAR ASSEMBLY AREA
  3003. CRD AB
  3004. CDR1 LDI CA LOAD CHARACTER
  3005. SBN 1R0
  3006. MJN CDR2 IF ALPHA
  3007. SBN 1R8-1R0
  3008. MJN CDR3 IF OCTAL DIGIT
  3009. SBN 1R -1R8
  3010. ZJN CDR5 IF SPACE
  3011. CDR2 LDI CA LOAD CHARACTER
  3012. UJN CDRX RETURN
  3013.  
  3014. CDR3 ADN 1R8-1R0 STORE DIGIT
  3015. STD T3
  3016. LDN AB+4 SET BYTE ADDRESS
  3017. STD T2
  3018. CDR4 LDI T2 LOAD BYTE
  3019. SHN 3
  3020. ADD T3 ADD NEW DIGIT
  3021. STI T2 STORE
  3022. SHN -14 SAVE OVERFLOW
  3023. STD T3
  3024. SOD T2 ADVANCE BYTE ADDRESS
  3025. LMN AB-1
  3026. NJN CDR4 IF NOT END OF ASSEMBLY AREA
  3027. CDR5 AOD CA ADVANCE ADDRESS
  3028. UJN CDR1 LOOP
  3029. CEQ SPACE 4,10
  3030. ** CEQ - CHECK EQUIPMENT.
  3031. *
  3032. * ENTRY (EQ) = EQUIPMENT.
  3033. *
  3034. * EXIT TO *ERR5* IF INCORRECT EQUIPMENT.
  3035. *
  3036. * USES CM - CM+4.
  3037. *
  3038. * MACROS SFA.
  3039.  
  3040.  
  3041. CEQ SUBR ENTRY/EXIT
  3042. SFA EST,EQ READ EST ENTRY
  3043. ADK EQDE
  3044. CRD CM
  3045. LDD CM+4 MST ADDRESS/10
  3046. SHN 3
  3047. ADN DDLL
  3048. CRD CM
  3049. LDD CM
  3050. SHN 21-12
  3051. PJN CEQX IF NOT NULL EQUIPMENT
  3052. LJM ERR5 *INCORRECT EQUIPMENT.*
  3053. CLB SPACE 4,10
  3054. ** CLB - CHECK LOCK BIT.
  3055. *
  3056. * EXIT TO ERR IF KEYBOARD LOCKED.
  3057. * (CM - CM+4) = *SSTL* WORD READ FROM CMR.
  3058. *
  3059. * USES CM - CM+4.
  3060. *
  3061. * CALLS ERR.
  3062.  
  3063.  
  3064. CLB SUBR ENTRY/EXIT
  3065. LDK SSTL CHECK *SECURITY-UNLOCK* BIT
  3066. CRD CM
  3067. LDD CM
  3068. SHN 21-11
  3069. MJN CLBX IF UNLOCKED
  3070. LJM ERR4 *INCORRECT ENTRY.*
  3071. CSA SPACE 4,10
  3072. ** CSA - COMPUTE SCRATCH AREA ADDRESS.
  3073. *
  3074. * ENTRY (CA) = POINTER TO NEXT CHARACTER.
  3075. *
  3076. * EXIT (CA) UPDATED.
  3077. * (T2) = ADDRESS OF SCRATCH AREA.
  3078. *
  3079. * CALLS ERR1, ERR2.
  3080.  
  3081.  
  3082. CSA SUBR ENTRY/EXIT
  3083. LDI CA
  3084. SBN NSRA+1
  3085. PJN CSA1 IF ILLEGAL CHARACTER
  3086. LDI CA CALCULATE ADDRESS
  3087. SBN 1
  3088. SHN 3
  3089. ADI CA
  3090. ADC SRA-1
  3091. STD T2
  3092. AOD CA CHECK NEXT CHARACTER
  3093. LDI CA
  3094. LMN 1R.
  3095. ZJN CSAX IF LEGAL SEPARATOR
  3096. LJM ERR1 *FORMAT ERROR.*
  3097.  
  3098. CSA1 LJM ERR2 *INCORRECT PARAMETER.*
  3099. CSB SPACE 4,10
  3100. ** CSB - CLEAR SCREEN BUFFER.
  3101. *
  3102. * CLEAR SCREEN BUFFER, RESET TOP OF PAGE, AND SET *PKI*-S
  3103. * RETURN ADDRESS TO *DDF1* WHEN THE CONSOLE TYPE IS A *CDC721*.
  3104. *
  3105. * USES T1.
  3106. *
  3107. * MACROS CFNC, DFIM.
  3108.  
  3109.  
  3110. CSB1 LDN CSBAL-1
  3111. STD T1
  3112. CSB2 LDM CSBA,T1 ISSUE FUNCTION
  3113. CFNC
  3114. SOD T1
  3115. PJN CSB2 IF MORE FUNCTIONS
  3116. LDC DDF1 SET *PKI* EXIT
  3117. STM PKI
  3118.  
  3119. CSB SUBR ENTRY/EXIT
  3120. DFIM (UJN CSB1)
  3121. UJN CSBX RETURN
  3122.  
  3123.  
  3124. CSBA BSS 0 TABLE OF FUNCTION CODES IN REVERSE ORDER
  3125. CON CHSF CLEAR HIDDEN SCREEN
  3126. CON RTPF RESET TOP OF PAGE
  3127. CON SRSF SELECT RIGHT SCREEN, SMALL CHARACTERS
  3128. CON RTPF RESET TOP OF PAGE
  3129. CON SLSF SELECT LEFT SCREEN, SMALL CHARACTERS
  3130. CSBAL EQU *-CSBA
  3131. CTR SPACE 4,10
  3132. ** CTR - CHECK TRACK RESERVATION BIT.
  3133. *
  3134. * EXIT (A) .LT. 0 IF RESERVATION BIT SET.
  3135. *
  3136. * CALLS SNT.
  3137.  
  3138.  
  3139. CTR SUBR ENTRY/EXIT
  3140. RJM SNT SET NEXT TRACK
  3141. LDD T1
  3142. ADC SHNI+22-4
  3143. STM CTRA
  3144. LDD CM+4
  3145. CTRA SHN **
  3146. UJN CTRX RETURN
  3147. CTS SPACE 4,10
  3148. ** CTS - CHECK TRACK AND SECTOR AND ZERO IF TOO LARGE.
  3149. *
  3150. * ENTRY (EQ) = EST ORDINAL.
  3151. *
  3152. * EXIT (A) .NE. 0, IF DEVICE IS INACCESSIBLE. (OFF OR DOWN)
  3153. * (LS) = LAST SECTOR FOR CURRENT TRACK AND EQUIPMENT.
  3154. * (LT) = MAXIMUM TRACK NUMBER FOR DEVICE.
  3155. * (SC) = 0 IF IT WAS LARGER THAN THE SECTOR LIMIT.
  3156. * (TK) = 4000 IF IT WAS LARGER THAN (LT).
  3157. *
  3158. * USES AB - AB+4, CM - CM+4.
  3159.  
  3160.  
  3161. CTS SUBR ENTRY/EXIT
  3162. CTSA SETMS IO,(AR,NS,AD,RW,DF)
  3163. * SETMS IO,(RR,NR,NS,AD,RW,DF) (ERROR PROCESSING ENABLED)
  3164. LDD CM+4 SET FIRST WORD OF TRT
  3165. SHN 3
  3166. ADK TDGL
  3167. CRD CM
  3168. ADK TRLL-TDGL
  3169. CRD AB
  3170. LDD AB+3
  3171. LPN 77
  3172. SHN 14
  3173. LMD AB+4
  3174. SBD TH =4000/4
  3175. STM DLSA+1
  3176. STM SNTA+1
  3177. SHN -14
  3178. LMC ADCI
  3179. STM DLSA
  3180. STM SNTA
  3181. LDD CM GET MAXIMUM TRACK
  3182. ADC 4000-1
  3183. STD LT
  3184. SBD TK
  3185. PJN CTS1 IF LEGAL TRACK
  3186. LDC 4000
  3187. STD TK
  3188. CTS1 LDM SLM CHECK SECTOR
  3189. SBN 1
  3190. STD LS
  3191. SBD SC
  3192. PJN CTS2 IF LEGAL SECTOR
  3193. LDN 0
  3194. STD SC
  3195. CTS2 UJP CTSX RETURN
  3196. DMW SPACE 4,20
  3197. ** DMW - DISPLAY MEMORY WORDS.
  3198. *
  3199. * ENTRY (AB) = WORD NUMBER OF FIRST LINE TO DISPLAY.
  3200. * (AB+1) = WORD NUMBER+1 OF LAST LINE.
  3201. * (AB+2) = INDEX FOR FIRST BYTE TO DISPLAY.
  3202. * (AB+3) = N TO DISPLAY KEYWORD TABLE.
  3203. * (N = FWA OF TABLE, 10 CHARACTERS PER ENTRY.)
  3204. * = 0 TO SUPPRESS KEYWORD DISPLAY.
  3205. * (YC) = Y-COORDINATE ABOVE FIRST LINE TO BE DISPLAYED.
  3206. *
  3207. * EXIT (AB) = (AB+1).
  3208. * (T3) = ADDRESS OF LAST BYTE DISPLAYED + 1.
  3209. * (YC) = Y-COORDINATE OF LAST LINE DISPLAYED.
  3210. *
  3211. * USES T3, AB, AB+2, YC, RC.
  3212. *
  3213. * CALLS D2D, D4D, ODC.
  3214.  
  3215.  
  3216. DMW SUBR ENTRY/EXIT
  3217. LDD AB
  3218. SBD AB+1
  3219. PJN DMWX IF NOTHING TO DISPLAY
  3220. LDD AB+3 SET TABLE ADDRESS
  3221. STM DMWA
  3222. LDD AB+2 SET BYTE ADDRESS
  3223. ADC BFMS
  3224. STD T3
  3225.  
  3226. * DISPLAY LABEL FOR WORD.
  3227.  
  3228. DMW1 LCN YINC
  3229. RAD YC
  3230. OAN CH+40 OUTPUT COORDINATES
  3231. LDD XC
  3232. OAN CH+40
  3233. LDD AB DISPLAY CM WORD NUMBER
  3234. RJM D2D
  3235. LDC 2R (
  3236. OAN CH+40
  3237. LDD AB+2 DISPLAY BYTE NUMBER
  3238. RJM D4D
  3239. LDC 2R)
  3240. OAN CH+40
  3241. LDD AB+3
  3242. ZJN DMW2 IF NOT TABLE DISPLAY
  3243. LDN 5 DISPLAY TABLE DATA
  3244. OAM **,CH
  3245. DMWA EQU *-1
  3246. LDN 5 ADVANCE TABLE POINTER
  3247. RAM DMWA
  3248.  
  3249. * DISPLAY CONTENTS OF WORD.
  3250.  
  3251. DMW2 LDN 0 DISPLAY 5 BYTES
  3252. STD RC
  3253. OAN CH+40
  3254. DMW3 LDN 0
  3255. OAN CH+40
  3256. LDI T3 DISPLAY CONTENTS OF BYTE
  3257. RJM D4D
  3258. AOD T3
  3259. AOD RC
  3260. LMN 5
  3261. NJN DMW3 IF MORE BYTES
  3262. * LDN 0 DISPLAY 5 BYTES IN DISPLAY CODE
  3263. OAN CH+40
  3264. LCN 5
  3265. RAD T3
  3266. LDN 5
  3267. RJM ODC OUTPUT DISPLAY CODE
  3268. DMW4 LDN 5 INCREMENT BYTE ADDRESS
  3269. RAD AB+2
  3270. AOD AB INCREMENT CM WORD NUMBER
  3271. LMD AB+1
  3272. ZJN DMW5 IF END OF DISPLAY
  3273. LJM DMW1 LOOP
  3274.  
  3275. DMW5 LJM DMWX RETURN
  3276. D2D SPACE 4,10
  3277. ** D2D - DISPLAY 2 DIGITS.
  3278. *
  3279. * ENTRY (A) = DIGITS RIGHT ADJUSTED.
  3280.  
  3281.  
  3282. D2D SUBR ENTRY/EXIT
  3283. LPN 77 UNPACK DIGITS
  3284. STD T0
  3285. SHN 3
  3286. LMD T0
  3287. SCN 70
  3288. ADC 2R00 CONVERT TO DISPLAY CODE
  3289. OAN CH+40
  3290. UJN D2DX RETURN
  3291. D4D SPACE 4,10
  3292. ** D4D - DISPLAY 4 DIGITS.
  3293. *
  3294. * ENTRY (A) = DIGITS RIGHT ADJUSTED.
  3295. *
  3296. * USES T1.
  3297. *
  3298. * CALLS D2D.
  3299.  
  3300.  
  3301. D4D SUBR ENTRY/EXIT
  3302. STD T1
  3303. SHN -6 DISPLAY FIRST 2 DIGITS
  3304. RJM D2D
  3305. LDD T1 DISPLAY SECOND 2 DIGITS
  3306. RJM D2D
  3307. UJN D4DX RETURN
  3308. END SPACE 4,10
  3309. ** END - END CPU PROGRAM.
  3310. *
  3311. * USES CM - CM+4.
  3312. *
  3313. * CALLS WCC.
  3314.  
  3315.  
  3316. END SUBR ENTRY/EXIT
  3317. ENDA RJM WCC WAIT FOR CPU TO COMPLETE
  3318. * UJN ENDX (*DDFILE* NOT LOADED)
  3319. LDN 0*2+1
  3320. STD CM+4
  3321. LDD RA
  3322. SHN 6
  3323. ADN D
  3324. CWD CM
  3325. UJN ENDX RETURN
  3326. LDO SPACE 4,20
  3327. ** LDO - LOAD OVERLAY.
  3328. *
  3329. * ENTRY (A) = OVERLAY CONTROL WORD INDEX.
  3330. * (RELATIVE TO *TCRO*)
  3331. * (DRSB) = PREVIOUS (RS).
  3332. * (DRSA - DRSA+4) = CURRENT OVERLAY CONTROL WORD.
  3333. *
  3334. * EXIT (DRSA - DRSA+4) UPDATED AS REQUIRED.
  3335. * (DRSB) UPDATED IF DISPLAY IS BEING CHANGED.
  3336. * (CM) = LOAD ADDRESS.
  3337. * OVERLAY LOADED AND PRESET.
  3338. * OLD OVERLAY CONTROL WORD WRITTEN TO CM, IF VALID,
  3339. * TO PRESERVE DISPLAY INDEX.
  3340. *
  3341. * USES AB, CM - CM+4.
  3342. *
  3343. * CALLS MCI.
  3344.  
  3345.  
  3346. LDO SUBR ENTRY/EXIT
  3347. STD AB SAVE INDEX
  3348. LDD RA LOAD CONTROL WORD FOR DESIRED OVERLAY
  3349. ADD TA
  3350. SHN 6
  3351. ADC TCRO
  3352. ADD AB
  3353. CRD CM
  3354. LDD CM+1 CHECK WORD COUNT
  3355. ZJN LDO1 IF NO LOAD REQUIRED
  3356. LDD CM SET LOAD ADDRESS
  3357. STM LDOA
  3358. LDD CM+2 LOAD PROCESSOR OVERLAY
  3359. SHN 6
  3360. ADD RA
  3361. SHN 6
  3362. ADD CM+3
  3363. CRM **,CM+1
  3364. LDOA EQU *-1 LOAD ADDRESS
  3365. LDO1 LDD AB
  3366. LMD RS
  3367. NJP LDOX IF NOT A MAIN DISPLAY OVERLAY
  3368. LDM DRSB
  3369. SBN MXDI
  3370. PJN LDO2 IF OLD CONTROL WORD INVALID
  3371. LDD RA STORE OLD CONTROL WORD
  3372. ADD TA
  3373. SHN 6
  3374. ADC TCRO
  3375. ADM DRSB
  3376. CWM DRSA,ON
  3377. LDO2 LDD RA READ NEW PROCESSOR CONTROL WORD
  3378. ADD TA
  3379. SHN 6
  3380. ADC TCRO
  3381. ADD RS
  3382. CRM DRSA,ON (SETS PROCESSOR ENTRY ADDRESS FOR *LJM*)
  3383. LDD RS UPDATE OLD ID
  3384. STM DRSB
  3385. LJM LDOX RETURN
  3386. ODC SPACE 4,10
  3387. ** ODC - OUTPUT DISPLAY CODE.
  3388. *
  3389. * ENTRY (A) = NUMBER OF BYTES TO DISPLAY.
  3390. * (T3) = ADDRESS OF FIRST BYTE.
  3391. * (XC) = 6000.
  3392. *
  3393. * EXIT (T3) = ADDRESS OF NEXT BYTE.
  3394. *
  3395. * USES T0, T3.
  3396.  
  3397.  
  3398. ODC2 LDI T3 DISPLAY BOTH CHARACTERS
  3399. ODC3 OAN CH+40
  3400. AOD T3
  3401. SOD T0
  3402. NJN ODC1 IF MORE BYTES TO DISPLAY
  3403.  
  3404. ODC SUBR ENTRY/EXIT
  3405. STD T0
  3406. ODC1 LDI T3
  3407. SBD XC
  3408. MJN ODC2 IF UPPER CHARACTER LEGAL
  3409. LPN 77
  3410. UJN ODC3 DISPLAY LOWER CHARACTER ONLY
  3411. RCP SPACE 4,10
  3412. ** RCP - RECALL COMMAND PROCESSOR IF NECESSARY.
  3413. *
  3414. * ENTRY (RCPA) = ADDRESS IN COMMAND PROCESSOR IF RECALLING.
  3415. * = RCPX IF NO RECALL NEEDED.
  3416. *
  3417. * EXIT (RCPA) UPDATED.
  3418.  
  3419.  
  3420. RCP SUBR ENTRY/EXIT
  3421. RCP1 LJM RCPX RETURN IF NO RECALL
  3422. * LJM COMMAND (RECALL COMMAND PROCESSOR)
  3423. RCPA EQU *-1
  3424. SOM RCPB
  3425. PJN RCP1 IF RECALL COUNT NOT EXAUSTED
  3426. DFIM (LDN MLPS-1)
  3427. LDN 0 RESET RECALL COUNT
  3428. STM RCPB
  3429. UJN RCPX RETURN TO MAIN LOOP
  3430.  
  3431.  
  3432. RCPB CON 0 RECALL COUNT
  3433. RSB SPACE 4,10
  3434. ** RSB - READ SECTOR TO BUFFER.
  3435. *
  3436. * EXIT (A) .LT. 0 IF ERROR ON READ.
  3437. * (A) = 0 IF NO ERROR.
  3438. *
  3439. * CALLS CEQ, RDS.
  3440. *
  3441. * MACROS ENDMS.
  3442.  
  3443.  
  3444. RSB SUBR ENTRY/EXIT
  3445. RJM CEQ CHECK EQUIPMENT
  3446. LDC BFMS
  3447. RJM RDS READ SECTOR
  3448. MJN RSBX IF ERROR
  3449. ENDMS
  3450. * LDN 0
  3451. STM RDCT
  3452. UJN RSBX RETURN
  3453. SNS SPACE 4,10
  3454. ** SNS - SET NEXT SECTOR.
  3455. *
  3456. * EXIT (A) = 0 IF CURRENTLY AT EOI.
  3457.  
  3458.  
  3459. SNS1 LDM BFMS
  3460. NJN SNS2 IF NOT EOF
  3461. LDM BFMS+1
  3462. SNS2 STD TK
  3463.  
  3464. SNS SUBR ENTRY/EXIT
  3465. LDM BFMS
  3466. ADM BFMS+1
  3467. ZJN SNSX IF EOI
  3468. AOD SC
  3469. SBD LS
  3470. SBN 1
  3471. NJN SNSX IF NOT END OF TRACK
  3472. STD SC SET SECTOR TO ZERO
  3473. LDM BFMS
  3474. SHN 6
  3475. ADM BFMS+1
  3476. LMC 377777
  3477. NJN SNS1 IF NOT SYSTEM SECTOR
  3478. LDM NSSS
  3479. UJN SNS2 ENTER TRACK FROM SYSTEM SECTOR
  3480. SPP SPACE 4,10
  3481. ** SPP - SET PAGE PARAMETERS.
  3482. *
  3483. * ENTRY (DRSA+4) = PAGE INDEX.
  3484. * (T3) = BFMS.
  3485. *
  3486. * EXIT (A) = NUMBER OF WORDS TO DISPLAY (PAGE SIZE).
  3487. * (AB) = FIRST CM WORD NUMBER (PAGE INDEX * PAGE SIZE).
  3488. *
  3489. * USES AB.
  3490.  
  3491.  
  3492. SPP SUBR ENTRY/EXIT
  3493. LDM DRSA+4
  3494. DFIM (LPN 3)
  3495. LPN 1 PAGE INDEX
  3496. DFIM (SHN 4) * 20B, 721 PAGE SIZE
  3497. SHN 5 * 40B, 545 PAGE SIZE
  3498. STD AB = FIRST CM WORD NUMBER
  3499. LDI T3 SET UP NUMBER OF WORDS TO DISPLAY
  3500. ZJN SPPX IF EOI SECTOR
  3501. DFIM (LDN 20) 721 PAGE SIZE IN CM WORDS
  3502. LDN 40 545 PAGE SIZE IN CM WORDS
  3503. UJN SPPX RETURN
  3504. WCC SPACE 4,10
  3505. ** WCC - WAIT FOR CPU TO COMPLETE.
  3506. *
  3507. * EXIT (CM - CM+4) = CONTENTS OF CPU STATUS WORD.
  3508. *
  3509. * CALLS RCPA.
  3510.  
  3511.  
  3512. WCC SUBR ENTRY/EXIT
  3513. WCC1 RJM RCPA RETURN TO MAIN LOOP
  3514. LDD RA READ STATUS WORD
  3515. SHN 6
  3516. ADN D
  3517. CRD CM
  3518. LDD CM+4
  3519. ZJN WCCX IF COMPLETE
  3520. UJN WCC1 LOOP
  3521. SPACE 4,10
  3522. * COMMON DECKS.
  3523.  
  3524.  
  3525. QUAL COMDDSP AVOID *RDS* DEFINITION CONFLICT
  3526. *CALL COMDDSP
  3527. QUAL *
  3528. RDC EQU /COMDDSP/RDS REQUEST DISPLAY CHANNEL
  3529. DDS EQU /COMDDSP/DDS
  3530. HDC EQU /COMDDSP/HDC
  3531. PSS EQU /COMDDSP/PSS
  3532.  
  3533. *CALL COMDSYS
  3534.  
  3535. *CALL COMPC2D
  3536.  
  3537. QUAL COMPSNT
  3538. IRA$ EQU *
  3539. QUAL *
  3540. *CALL COMPSNT
  3541.  
  3542.  
  3543. TITLE BUFFERS.
  3544. SRA SPACE 4,10
  3545. ** SRA - SCRATCH REGISTER AREA.
  3546. *
  3547. * 9 BYTES PER ENTRY.
  3548. * 0 = EST ORDINAL.
  3549. * 1 = TRACK.
  3550. * 2 = SECTOR.
  3551. * 3 = 3/DISPLAY NUMBER,9/DISPLAY INDEX
  3552. * 4 - 8 = 10 CHARACTER COMMENT
  3553.  
  3554.  
  3555. SRA BSSZ 9D*NSRA
  3556. KBUF SPACE 4,10
  3557. KBUF BSSZ KBUFL KEYBOARD BUFFER
  3558. SPACE 4,10
  3559. DIS HERE
  3560. SPACE 4,10
  3561. USE PRESET
  3562.  
  3563. BFMS BSSN 502 SECTOR BUFFER
  3564. CPLA BSSN 0 COMMAND PROCESSOR LOAD ADDRESS
  3565. END BSSN
  3566. SPACE 4,10
  3567. * COMMON DECKS THAT DEFINE TAGS BASED ON *BFMS*.
  3568.  
  3569.  
  3570. QUAL LSD
  3571. *CALL COMSLSD
  3572. QUAL *
  3573. *CALL COMSPFM
  3574. *CALL COMSSSE
  3575. *CALL COMSWEI
  3576. TITLE PRESET PROGRAM.
  3577. PRR SPACE 4,10
  3578. ** PRR - PRESET RESIDENT ROUTINES.
  3579.  
  3580.  
  3581. PRR3 LDN 10 CLEAR LAST PART OF BUFFER
  3582. STD T1
  3583. PRR4 LDN 0
  3584. STM BFMS+500,T1
  3585. SOD T1
  3586. PJN PRR4 IF MORE TO CLEAR
  3587. LJM RCS READ SECTOR
  3588. ERRNG BFMS+500-* CLEARING CODE OVERFLOWS END OF BUFFER
  3589.  
  3590. PRR BSS 0 ENTRY
  3591. LDN 0 PRESET DIRECT CELLS
  3592. STD CR
  3593. STD KI
  3594. STD KM
  3595. STD DK
  3596. STM RSPLA
  3597. STD RT
  3598. LDK DFBN PRESET FIVE BYTE RIGHT SCREEN DISPLAY
  3599. STD RS
  3600. LDD CP
  3601. ADK PFCW
  3602. CRD CM
  3603. ADK PKNW-PFCW
  3604. CRD PF
  3605. LDD CM+3
  3606. STD PF+4
  3607. LDC CH01 PRESET X-COORDINATE
  3608. STD XC
  3609. STD SB CLEAR SYSTEM BUSY FLAG
  3610. LDK DSEQ CHECK DISPLAY CONSOLE TYPE
  3611. SFA EST
  3612. ADK EQAE
  3613. CRD CM
  3614. LDD CM+2
  3615. ZJN PRR1 IF CC545 CONSOLE
  3616. MDIN MODIFY DISPLAY GENERATOR
  3617. PRR1 LDN 0 CLEAR *.* IN COMMON DECKS
  3618. STM D6SA
  3619. STM D2SB CLEAR *OAN* INSTRUCTION
  3620. LDD RA PRESET CPU PROGRAM ADDRESS CONSTANTS
  3621. SHN 6
  3622. ADN D-2
  3623. CRD CM
  3624. LDD CM+3
  3625. STD BA
  3626. LDD CM+4
  3627. STD BA+1
  3628. LDM DDF
  3629. NJN PRR2 IF *DDFILE* LOADED
  3630. ISTORE ENDA,(UJN ENDX)
  3631. PRR2 RJM RDC REQUEST DISPLAY
  3632. RJM CSB CLEAR SCREEN BUFFER
  3633. LDN ZERL CLEAR CONTROL POINT MESSAGES
  3634. CRD CM
  3635. LDD CP
  3636. ADN MS1W
  3637. CWD CM
  3638. ADK MS2W-MS1W
  3639. CWD CM
  3640. LDN 0 INITIALIZE DISK ADDRESS DATA
  3641. STD SC
  3642. LDC PFNL GET DEFAULT FAMILY ORDINAL
  3643. CRD CM
  3644. LDD CM+3
  3645. STD EQ
  3646. SFA EST GET LABEL TRACK NUMBER
  3647. ADK EQDE
  3648. CRD CM
  3649. LDD CM+4
  3650. SHN 3
  3651. ADN ALGL
  3652. CRD CM
  3653. LDD CM+1
  3654. STD TK
  3655. RJM CTS CHECK TRACK VALUE
  3656. LDC DDF1 PRESET *PKI* EXIT
  3657. STM PKI
  3658. LJM PRR3 CLEAR BUFFER AND ENTER MAIN LOOP
  3659. SPACE 4,10
  3660. ** DUMP INSTRUCTION MODIFICATION BLOCK.
  3661.  
  3662.  
  3663. DIMB
  3664. SPACE 4,10
  3665. OVERFLOW RESLA
  3666. OVERLAY /PRESET/OVL,(COMMAND PROCESSORS.)
  3667. OVL SPACE 4,10
  3668. ** OVL - INITIALIZE OVERLAY.
  3669. *
  3670. * LOAD NON-COMMAND OVERLAYS TO CM.
  3671.  
  3672.  
  3673. OVL SUBR ENTRY/EXIT
  3674.  
  3675. * INITIALIZE *COMPGFP* IN OVERLAY BEFORE SAVING IN CM.
  3676.  
  3677. RJM IFP INITIALIZE FNT PROCESSORS
  3678.  
  3679. * SAVE *TAR* OVERLAY IN CM.
  3680.  
  3681. LDN /PRESET/TARL SET OVERLAY LENGTH
  3682. STD T1
  3683. LDD AB+3 SAVE CM ADDRESS
  3684. STM /PRESET/TCRO+TARN*5+2
  3685. LDD AB+4
  3686. STM /PRESET/TCRO+TARN*5+3
  3687. LDD AB+3 WRITE OVERLAY TO CM
  3688. SHN 6
  3689. ADD RA
  3690. SHN 6
  3691. ADD AB+4
  3692. CWM /PRESET/TAR,T1
  3693. LDD T1 UPDATE CM ADDRESS
  3694. RAD AB+4
  3695. SHN -14
  3696. RAD AB+3
  3697. UJN OVLX RETURN
  3698. SPACE 4,10
  3699. *** THE FOLLOWING COMMANDS ARE AVAILABLE -
  3700. ARD SPACE 4,10
  3701. *** AUTOREAD.NNNN.
  3702. * REREAD THE SECTOR EVERY NNNN SECONDS. IF NNNN IS NOT
  3703. * ENTERED, ONE IS USED. AUTOREAD IS TERMINATED BY CLEARING
  3704. * THE COMMAND WITH THE LEFT BLANK OR BACKTAB KEY.
  3705.  
  3706.  
  3707. ARD COMMAND
  3708. LDN MLPS SET DEFAULT COUNT
  3709. STD FN+1
  3710. LDI CA
  3711. ZJN ARD1 IF NO SECOND COUNT ENTERED
  3712. RJM ASD ASSEMBLE COUNT
  3713. LDD AB+4
  3714. SHN 5 * 40
  3715. ERRNZ MLPS-40 CODE ASSUMES EQUALITY SHIFT 5 = * 40
  3716. STD FN+1
  3717. ARD1 LDD FN+1 SET COUNT
  3718. STD FN
  3719. ARD2 RJM RCPA RETURN TO MAIN LOOP
  3720. SOD FN
  3721. PJN ARD2 IF MORE DELAY
  3722. RJM RSB READ SECTOR
  3723. UJN ARD1 RESET COUNT
  3724. BEI SPACE 4,10
  3725. *** BLDEOI.
  3726. * CREATES A EOI SECTOR IN BUFFER.
  3727.  
  3728.  
  3729. BEI COMMAND
  3730. LDC BFMS
  3731. STD T3
  3732. BEI1 LDN 0
  3733. STI T3
  3734. AOD T3
  3735. ADC -BFMS-2-100*5
  3736. MJN BEI1 IF NOT END OF BUFFER
  3737. LDC 2RDD
  3738. STM FNSS
  3739. LDN 1RF
  3740. SHN 6
  3741. STM FNSS+1
  3742. LDN PDTL SET DATE AND TIME
  3743. CRM DTSS,ON
  3744. LJM RET RETURN
  3745. BOT SPACE 4,15
  3746. *** BOT.NNNN.
  3747. * BACK UP ONE TRACK. SEARCH THE TRT STARTING AT TRACK NNNN FOR
  3748. * A TRACK THAT POINTS TO THE CURRENT TRACK. IF ONE IS FOUND,
  3749. * THE CURRENT TRACK IS SET TO THAT VALUE. IF NO TRACK IS FOUND
  3750. * THAT POINTS TO THE CURRENT TRACK, *INCORRECT PARAMETER.* IS
  3751. * DISPLAYED. IF NNNN IS NOT ENTERED, THE SEARCH STARTS AT
  3752. * TRACK 0.
  3753. *
  3754. * NOTE THAT THE SEQUENCE OF COMMANDS *TK.NNNN.*, *BOT.*,
  3755. * *TK.NNNN.*, *BOT.AAAA.* (WHERE AAAA IS THE TRACK RETURNED BY
  3756. * THE FIRST *BOT.* COMMAND + 1) CAN BE USED TO DETERMINE IF
  3757. * TWO DIFFERENT TRACKS ARE BOTH LINKED TO TRACK NNNN.
  3758.  
  3759.  
  3760. BOT COMMAND
  3761. LDD TK
  3762. STD RC
  3763. LDI CA
  3764. ZJN BOT1 IF NO TRACK ENTERED (START AT TRACK 0)
  3765. RJM ASD ASSEMBLE TRACK NUMBER
  3766. LDD AB+4
  3767. BOT1 LPC 3777
  3768. ADC 4000
  3769. STD TK SET STARTING TRACK
  3770. BOT2 RJM SNT GET LINK
  3771. LMD RC
  3772. ZJN BOT3 IF LINKED TO CURRENT TRACK
  3773. AOD TK
  3774. LMD LT
  3775. NJN BOT2 IF MORE TRACKS TO CHECK
  3776. LDD RC RESTORE CURRENT TRACK
  3777. STD TK
  3778. LJM ERR2 *INCORRECT PARAMETER.*
  3779.  
  3780. BOT3 LJM RET RETURN
  3781. CTB SPACE 4,10
  3782. *** CTB.
  3783. * CLEAR THE TRACK INTERLOCK BIT FOR CURRENT TRACK AND
  3784. * EQUIPMENT. THE KEYBOARD MUST BE UNLOCKED TO USE THIS
  3785. * COMMAND.
  3786.  
  3787.  
  3788. CTB COMMAND
  3789. RJM CLB CHECK LOCK BIT
  3790. RJM SNT CHECK TRACK INTERLOCK BIT
  3791. LDD T1
  3792. ADC SHNI+22-4-4
  3793. STM CTBA
  3794. LDD CM+4
  3795. CTBA SHN **
  3796. MJN CTB1 IF TRACK INTERLOCK IS SET
  3797. LJM ERR4 *INCORRECT ENTRY.*
  3798.  
  3799. CTB1 LDD EQ
  3800. STD CM+1
  3801. LDD TK
  3802. STD CM+2
  3803. LDN CTIS
  3804. STD CM+3
  3805. MONITOR STBM
  3806. LJM RET RETURN
  3807. DEP SPACE 4,10
  3808. *** DEP.
  3809. * DISABLE ERROR PROCESSING FOR CALLS TO THE MASS STORAGE
  3810. * DRIVER TO READ A SECTOR.
  3811. * (BY DEFAULT, ERROR PROCESSING IS DISABLED.)
  3812.  
  3813.  
  3814. DEP COMMAND
  3815. LDN DEPL-1
  3816. STD T1
  3817. DEP1 LDM DEPA,T1 MOVE SETMS CODE
  3818. STM CTSA,T1
  3819. SOD T1
  3820. PJN DEP1 IF MOVE NOT COMPLETE
  3821. LJM RET RETURN
  3822.  
  3823.  
  3824. DEPA SETMS IO,(AR,NS,AD,RW,DF) SELECT RETURN ON ALL ERRORS
  3825. DEPL EQU *-DEPA LENGTH
  3826. DIS SPACE 4,10
  3827. *** DIS.
  3828. * DROP DISPLAY AND CALL *DIS* TO CONTROL POINT.
  3829.  
  3830.  
  3831. DIS COMMAND
  3832. RJM END END CPU PROGRAM
  3833. RJM DDS DROP DISPLAY
  3834. LDD CP SET CONTROL POINT NUMBER
  3835. SHN -7
  3836. RAM DISA+1
  3837. LDD IA WRITE INPUT REGISTER
  3838. CWM DISA,ON
  3839. LJM PPR EXIT TO PP RESIDENT
  3840.  
  3841.  
  3842. DISA VFD 60/0LDIS
  3843. DRP SPACE 4,10
  3844. *** DROP.
  3845. * DROP DISPLAY AND PP.
  3846.  
  3847.  
  3848. DRP COMMAND
  3849. RJM END END CPU PROGRAM
  3850. RJM DDS DROP DISPLAY
  3851. LJM DPP DROP PP
  3852. DTK SPACE 4,10
  3853. *** DTK.SSSS.
  3854. * DROP TRACKS STARTING WITH THE CURRENT TRACK AND SET THE EOI
  3855. * SECTOR IN THE TRT TO SSSS.
  3856. *
  3857. * DTK.
  3858. * DROP TRACKS TO END OF CHAIN STARTING WITH THE CURRENT TRACK.
  3859. *
  3860. * THE KEYBOARD MUST BE UNLOCKED TO USE THIS COMMAND.
  3861.  
  3862.  
  3863. DTK COMMAND
  3864. RJM CLB CHECK LOCK BIT
  3865. RJM CTR CHECK TRACK RESERVATION
  3866. PJN DTK2 IF TRACK RESERVATION BIT NOT SET
  3867. LDD EQ SET EST ORDINAL
  3868. ADC 4000 SET CHECKPOINT
  3869. STD CM+1
  3870. LDD TK
  3871. STD CM+2
  3872. LDI CA
  3873. ZJN DTK1 IF NO SECTOR SPECIFIED
  3874. RJM ASD ASSEMBLE SECTOR NUMBER
  3875. LDD AB+4
  3876. STD CM+3
  3877. SBD LS
  3878. SBN 1
  3879. PJN DTK2 IF ILLEGAL SECTOR
  3880. LDD CM+2 CLEAR SECTOR PARAMETER BIT
  3881. LPC 3777
  3882. STD CM+2
  3883. DTK1 MONITOR DTKM
  3884. LJM RET RETURN
  3885.  
  3886. DTK2 LJM ERR2 *INCORRECT PARAMETER.*
  3887. EEP SPACE 4,10
  3888. *** EEP.
  3889. * ENABLE ERROR PROCESSING FOR CALLS TO THE MASS STORAGE
  3890. * DRIVER TO READ A SECTOR.
  3891. * (BY DEFAULT, ERROR PROCESSING IS DISABLED.)
  3892.  
  3893.  
  3894. EEP COMMAND
  3895. LDN EEPL-1
  3896. STD T1
  3897. EEP1 LDM EEPA,T1 MOVE SETMS CODE
  3898. STM CTSA,T1
  3899. SOD T1
  3900. PJN EEP1 IF MOVE NOT COMPLETE
  3901. LJM RET RETURN
  3902.  
  3903.  
  3904. EEPA SETMS IO,(RR,NR,NS,AD,RW,DF) RETURN ON NOT READY/RESERVED
  3905. EEPL EQU *-EEPA LENGTH
  3906. ERRNZ DEPL-EEPL SETMS MACRO LENGTH CHANGE
  3907. EET SPACE 4,10
  3908. *** EJT.NNNN.
  3909. * ENTER DISK ADDRESS FROM EJT ORDINAL NNNN.
  3910. * (0 .LE. NNNN .LE. LARGEST EJT ORDINAL.) THE EQUIPMENT,
  3911. * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
  3912. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE EJT ENTRY IS NOT
  3913. * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
  3914.  
  3915.  
  3916. EET COMMAND
  3917. LDN TARN
  3918. RJM LDO LOAD OVERLAY
  3919. LDN PEJT
  3920. RJM /TAR/RFE READ FST ENTRY
  3921. LDD FN+1
  3922. ZJP ERR2 IF TRACK NOT ASSIGNED
  3923. STD TK
  3924. LDN 0 CLEAR SECTOR
  3925. STD SC
  3926. LJM IMS INITIALIZE MASS STORAGE
  3927. EST SPACE 4,10
  3928. *** EST.NN.
  3929. * ENTER EST ORDINAL. THE EQUIPMENT MUST BE A MASS STORAGE
  3930. * DEVICE.
  3931.  
  3932.  
  3933. EST COMMAND
  3934. RJM ASD ASSEMBLE NUMBER
  3935. LDD AB+4
  3936. LPC 777
  3937. STD AB
  3938. SFA EST READ EST ENTRY
  3939. ADK EQDE
  3940. CRD CM
  3941. LDD CM
  3942. SHN 6
  3943. PJN EST1 IF NOT MASS STORAGE
  3944. LDD CM+4 MST ADDRESS/10
  3945. SHN 3
  3946. ADN DDLL
  3947. CRD CM
  3948. LDD CM
  3949. SHN 21-12
  3950. MJN EST1 IF NULL EQUIPMENT
  3951. LDD AB
  3952. STD EQ
  3953. LJM IMS INITIALIZE MASS STORAGE
  3954.  
  3955. EST1 LJM ERR5 *INCORRECT EQUIPMENT.*
  3956. EFO SPACE 4,10
  3957. *** FAMILY.CCCCCCC.
  3958. * USE PERMANENT FILE FAMILY *CCCCCCC*. (THE FAMILY IS SET
  3959. * INTERNALLY IN DDF. *PFCW* IN THE CONTROL POINT AREA IS NOT
  3960. * CHANGED.) THE FAMILY IS INITIALLY SET TO THE FAMILY
  3961. * SPECIFIED IN *PFCW*.
  3962.  
  3963.  
  3964. EFO COMMAND
  3965. RJM ASN ASSEMBLE NAME
  3966. RJM SFE SET FAMILY EQUIPMENT
  3967. NJN EFO1 IF FAMILY NOT FOUND
  3968. LDD T2 SET FAMILY EST ORDINAL
  3969. STD PF+4
  3970. LJM RET RETURN
  3971.  
  3972. EFO1 LJM ERR2 *INCORRECT PARAMETER.*
  3973.  
  3974.  
  3975. *CALL COMPSFE
  3976. FPE SPACE 4,25
  3977. *** FIND.
  3978. * THE FIND COMMAND SCANS THE CATALOG TRACK STARTING AT THE
  3979. * CURRENT POSITION SEARCHING FOR THE SPECIFIED CATALOG ENTRY.
  3980. * THE CATALOG TRACK MUST BE READ VIA APPROPRIATE COMMANDS
  3981. * (FAMILY, PACKNAM, UI, ETC.) BEFORE THE FIND COMMAND IS USED.
  3982. * THE FOLLOWING OPTIONS ARE AVAILABLE.
  3983. *
  3984. * FIND.CCCCCCC.NNNNNN.
  3985. * SEARCH FOR PERMANENT FILE CCCCCCC WITH USER INDEX NNNNNN.
  3986. *
  3987. * FIND.CCCCCCC..
  3988. * SEARCH FOR PERMANENT FILE CCCCCCC WITH A ZERO USER INDEX
  3989. * (I.E. A HOLE).
  3990. *
  3991. * FIND.CCCCCCC.
  3992. * SEARCH FOR PERMANENT FILE CCCCCCC. THE USER INDEX IS
  3993. * IGNORED.
  3994. *
  3995. * FIND..NNNNNN.
  3996. * SEARCH FOR A PERMANENT FILE WITH USER INDEX NNNNNN. THE FILE
  3997. * NAME IS IGNORED.
  3998. *
  3999. * FIND...
  4000. * SEARCH FOR A PERMANENT FILE WITH A ZERO USER INDEX. THE FILE
  4001. * NAME IS IGNORED. (I.E. SEARCH FOR ANY HOLE.)
  4002.  
  4003.  
  4004. FPE COMMAND
  4005. RJM ASN GET FILE NAME
  4006. AOD CA
  4007. LDI CA
  4008. ZJN FPE1 IF UI NOT ENTERED
  4009. RJM ASD ASSEMBLE USER INDEX
  4010. LDD AB+3
  4011. LPN 37
  4012. RAD FN+3
  4013. LDD AB+4
  4014. STD FN+4
  4015. FPE1 LDD RS
  4016. LMN DFDN
  4017. SHN 12
  4018. ADM /DFD/DFDB
  4019. LMN DPEN
  4020. NJN FPE2 IF PFC DISPLAY NOT UP
  4021. LDM DRSA+4
  4022. UJN FPE3 STORE PFC ORDINAL
  4023.  
  4024. FPE2 LDN 0
  4025. FPE3 STD T3
  4026. SHN NWCES
  4027. STD T1
  4028. SHN 2
  4029. RAD T1
  4030. LDM BFMS
  4031. ADM BFMS+1
  4032. NJN FPE4 IF EOI NOT ENCOUNTERED
  4033. LJM ERR3 *NOT FOUND.*
  4034.  
  4035. * COMPARE PARAMETERS WITH THE CATALOG ENTRY.
  4036.  
  4037. FPE4 LDD FN
  4038. ZJN FPE6 IF FILE NAME NOT SPECIFIED
  4039. LDN 0
  4040. STD T2
  4041. FPE5 LDM FN,T2 COMPARE NAME
  4042. LMM BFMS+2,T1
  4043. NJN FPE7 IF NOT A MATCH
  4044. AOD T1
  4045. AOD T2
  4046. SBN 3
  4047. MJN FPE5 IF MORE CHARACTERS
  4048. LDD FN+3 COMPARE SEVENTH CHARACTER
  4049. LMM BFMS+2,T1
  4050. SCN 77
  4051. NJN FPE9 IF NOT A MATCH
  4052. FPE6 LDD T3
  4053. SHN NWCES
  4054. STD T1
  4055. SHN 2
  4056. RAD T1
  4057. LDI CA
  4058. NJN FPE8 IF UI SPECIFIED
  4059. LDM BFMS+2+FCUI,T1
  4060. LPN 37
  4061. ADM BFMS+2+FCUI+1,T1
  4062. NJN FPE11 IF NON-ZERO, ASSUME MATCH
  4063. FPE7 UJN FPE9 CONTINUE SEARCH
  4064.  
  4065. FPE8 LDM BFMS+2+FCUI,T1
  4066. LMD FN+3
  4067. LPN 37
  4068. NJN FPE9 IF UI DOES NOT MATCH
  4069. LDM BFMS+2+FCUI+1,T1
  4070. LMD FN+4
  4071. ZJN FPE11 IF UI MATCHES
  4072.  
  4073. * ADVANCE TO NEXT CATALOG ENTRY.
  4074.  
  4075. FPE9 AOD T3 ADVANCE BUFFER INDEX
  4076. SHN NWCES
  4077. STD T1
  4078. SBM BFMS+1
  4079. PJN FPE10 IF END OF SECTOR
  4080. LDD T1
  4081. SHN 2
  4082. RAD T1
  4083. LJM FPE4 LOOP
  4084.  
  4085. FPE10 RJM SNS SET NEXT SECTOR
  4086. RJM RSB READ SECTOR
  4087. MJN FPE12 IF ERROR
  4088. RJM RCPA RETURN TO MAIN LOOP
  4089. LJM FPE2 LOOP
  4090.  
  4091. * DISPLAY PFC ENTRY.
  4092.  
  4093. FPE11 LDN DFDN SET DISPLAY
  4094. STD RS
  4095. RJM LDO LOAD OVERLAY
  4096. LDD T3
  4097. STM DRSA+4
  4098. FPE12 LJM RET RETURN
  4099. FIS SPACE 4,10
  4100. *** FINDISS.NNNNNN.
  4101. * STARTING AT THE CURRENT POSITION, SEARCH FOR THE NEXT SYSTEM
  4102. * SECTOR WITH USER INDEX NNNNNN ON THE CHAIN. IF NNNNNN IS
  4103. * NOT SPECIFIED THE USER INDEX IS NOT CHECKED AND THE NEXT
  4104. * SYSTEM SECTOR IS DISPLAYED. THIS COMMAND IS INTENDED TO BE
  4105. * USED ON THE INDIRECT ACCESS PERMANENT FILE CHAIN.
  4106.  
  4107.  
  4108. FIS COMMAND
  4109. LDI CA
  4110. ZJN FIS1 IF NO USER INDEX SPECIFIED
  4111. RJM ASD ASSEMBLE USER INDEX
  4112. LDD AB+3
  4113. STD FN+3
  4114. LDD AB+4
  4115. STD FN+4
  4116. FIS1 RJM SNS ADVANCE TO NEXT SECTOR
  4117. NJN FIS3 IF NOT EOI
  4118. RJM SNT GET NEXT TRACK
  4119. STD T1
  4120. SHN 6
  4121. MJN FIS2 IF NOT EOI TRACK
  4122. SHN -6
  4123. LMD SC
  4124. NJN FIS2 IF NOT AT EOI INDICATED IN TRT
  4125. LJM ERR3 *NOT FOUND.*
  4126.  
  4127. FIS2 AOD SC
  4128. SBD LS
  4129. SBN 1
  4130. NJN FIS3 IF NOT END OF TRACK
  4131. STD SC
  4132. LDD T1
  4133. STD TK
  4134. FIS3 RJM RSB READ SECTOR
  4135. MJN FIS5 IF ERROR
  4136. LDM BFMS
  4137. SHN 6
  4138. ADM BFMS+1
  4139. LMC 377777
  4140. NJN FIS4 IF NOT SYSTEM SECTOR
  4141. LDI CA
  4142. ZJN FIS5 IF NO UI SPECIFIED
  4143. LDM CTSS+3
  4144. LMD FN+3
  4145. LPN 37
  4146. NJN FIS4 IF UI DOES NOT MATCH
  4147. LDM CTSS+4
  4148. LMD FN+4
  4149. ZJN FIS5 IF UI MATCHES
  4150. FIS4 RJM RCPA RETURN TO MAIN LOOP
  4151. LJM FIS1 LOOP
  4152.  
  4153. FIS5 LJM RET RETURN
  4154. FOV SPACE 4,10
  4155. *** FINDO.NNNN NNNN NNNN NNNN NNNN.
  4156. * SEARCH FROM THE CURRENT POSITION FOR THE OCTAL NUMBER
  4157. * SPECIFIED. THE NUMBER CAN BE 1 TO 20 DIGITS AND IS RIGHT
  4158. * JUSTIFIED IN AS MANY BYTES AS ARE NECESSARY TO HOLD THE
  4159. * NUMBER. THE SEARCH STARTS ON A BYTE BOUNDARY AND THE BYTE
  4160. * NUMBER IS DISPLAYED IF THE SEARCH IS SUCCESSFUL. IF THE
  4161. * FIRST PART OF THE NUMBER IS FOUND AT THE END OF THE BUFFER,
  4162. * THE SEARCH IS TERMINATED EVEN THOUGH THE ENTIRE NUMBER
  4163. * WAS NOT FOUND. IF THE CARRIAGE RETURN IS ENTERED AGAIN,
  4164. * THE SEARCH CONTINUES AT THE CURRENT MATCH.
  4165.  
  4166.  
  4167. FOV COMMAND
  4168. LDD CA SAVE CHARACTER ADDRESS
  4169. STD FN+4
  4170. LDN 0
  4171. STD T1
  4172. FOV1 AOD CA FIND SIZE OF NUMBER
  4173. LDI CA
  4174. ZJN FOV2 IF END OF STRING
  4175. LMN 1R
  4176. NJN FOV1 IF NOT BLANK CHARACTER
  4177. AOD T1 COUNT BLANKS
  4178. UJN FOV1 CHECK NEXT CHARACTER
  4179.  
  4180. FOV2 SOD CA SET BYTE COUNT
  4181. SBD FN+4
  4182. SBD T1
  4183. ADN 3
  4184. SHN -2
  4185. STD FN+3
  4186. FOV3 LDD FN+4 CONVERT NUMBER
  4187. STD CA
  4188. RJM ASD ASSEMBLE DIGITS
  4189. LDD KM CHECK KEYBOARD MESSAGE
  4190. LMC SBNA
  4191. NJN FOV4 IF NOT MESSAGE FROM FINDO
  4192. STD KM
  4193. LJM FOV9 CONTINUE SEARCH
  4194.  
  4195. FOV4 LDM BFMS
  4196. ZJN FOV5 IF EOF
  4197. LDM BFMS+1
  4198. FOV5 ZJN FOV10 IF ZERO LENGTH SECTOR
  4199. SHN 2 SET BYTE COUNT
  4200. ADM BFMS+1
  4201. ADN 2
  4202. STD FN+2
  4203. LDN 2 SET STARTING POSITION
  4204. STD FN
  4205. STD FN+1
  4206. FOV6 LDN 5 SET BEGINNING OF SEARCH
  4207. SBD FN+3
  4208. STD T3
  4209. FOV7 LDM BFMS,FN+1 COMPARE BYTES
  4210. LMM AB,T3
  4211. NJN FOV9 IF NOT A MATCH
  4212. AOD T3
  4213. LMN 5
  4214. ZJN FOV8 IF SEARCH COMPLETE
  4215. AOD FN+1
  4216. LMD FN+2
  4217. NJN FOV7 IF NOT END OF SECTOR
  4218. FOV8 LJM SBN DISPLAY BYTE NUMBER
  4219.  
  4220. FOV9 AOD FN
  4221. STD FN+1
  4222. LMD FN+2
  4223. NJN FOV6 IF NOT END OF SECTOR
  4224. FOV10 RJM RCPA RETURN TO MAIN LOOP
  4225. RJM SNS READ NEXT SECTOR
  4226. ZJN FOV11 IF EOI
  4227. RJM RSB READ SECTOR
  4228. MJN FOV12 IF ERROR
  4229. LJM FOV3 LOOP
  4230.  
  4231. FOV11 LJM ERR3 *NOT FOUND.*
  4232.  
  4233. FOV12 LJM RET RETURN
  4234. FST SPACE 4,10
  4235. *** FINDS.CCCCCCC
  4236. * SEARCH FROM THE CURRENT POSITION FOR THE STRING OF CHARACTERS
  4237. * CCCCCCC. IF THE FIRST PART OF THE STRING MATCHES THE
  4238. * END OF THE BUFFER, THE SEARCH IS TERMINATED EVEN THOUGH THE
  4239. * ENTIRE STRING WAS NOT FOUND. THE BYTE NUMBER OF THE BEGIN-
  4240. * ING OF THE STRING IS DISPLAYED. IF THE CARRIAGE RETURN IS
  4241. * ENTERED, THE SEARCH IS BEGUN AGAIN AT THAT POINT.
  4242.  
  4243.  
  4244. FST COMMAND
  4245. LDI CA
  4246. NJN FST1 IF CHARACTER STRING ENTERED
  4247. LJM ERR2 *INCORRECT PARAMETER.*
  4248.  
  4249. FST1 LDD KM CHECK KEYBOARD MESSAGE
  4250. LMC SBNA
  4251. NJN FST2 IF NOT MESSAGE FROM FINDS
  4252. STD KM
  4253. LDN 1
  4254. STD T2
  4255. LJM FST9 CONTINUE SEARCH AT NEXT BYTE
  4256.  
  4257. FST2 LDM BFMS
  4258. ZJN FST3 IF EOF
  4259. LDM BFMS+1
  4260. NJN FST4 IF NOT ZERO LENGTH SECTOR
  4261. FST3 LJM FST10 ADVANCE TO NEXT SECTOR
  4262.  
  4263. FST4 SHN 2 SET BYTE COUNT
  4264. ADM BFMS+1
  4265. ADN 2
  4266. STD FN+2
  4267. LDN 2 SET STARTING BYTE NUMBER
  4268. STD FN
  4269. STD FN+1
  4270. LDD CA SET BEGINNING OF STRING
  4271. STD T3
  4272. FST5 LDN 2 SET FIRST/SECOND HALF OF BYTE FLAG
  4273. STD T2
  4274. FST6 LDM BFMS,FN+1 CHECK FIRST CHARACTER OF BYTE
  4275. SHN -6
  4276. LMI T3
  4277. NJN FST9 IF CHARACTERS DONT MATCH
  4278. AOD T3
  4279. FST7 LDI T3 CHECK SECOND CHARACTER OF BYTE
  4280. ZJN FST8 IF SEARCH COMPLETE
  4281. LMM BFMS,FN+1
  4282. LPN 77
  4283. NJN FST9 IF CHARACTERS DONT MATCH
  4284. AOD T3
  4285. LDI T3
  4286. ZJN FST8 IF SEARCH COMPLETE
  4287. AOD FN+1 ADVANCE TO NEXT 2 CHARACTERS
  4288. LMD FN+2
  4289. NJN FST6 IF NOT END OF SECTOR
  4290. FST8 LJM SBN DISPLAY BYTE NUMBER
  4291.  
  4292. FST9 LDD CA RESET POINTERS
  4293. STD T3
  4294. LDD FN
  4295. STD FN+1
  4296. SOD T2
  4297. NJN FST7 IF STARTED WITH FIRST CHARACTER OF BYTE
  4298. AOD FN ADVANCE SEARCH TO START WITH NEXT BYTE
  4299. STD FN+1
  4300. LMD FN+2
  4301. NJN FST5 IF NOT END OF SECTOR
  4302. FST10 RJM RCPA RETURN TO MAIN LOOP
  4303. RJM SNS SET NEXT SECTOR
  4304. ZJN FST11 IF EOI
  4305. RJM RSB READ SECTOR
  4306. MJN FST12 IF ERROR
  4307. LJM FST2 SEARCH NEW SECTOR
  4308.  
  4309. FST11 LJM ERR3 *NOT FOUND.*
  4310.  
  4311. FST12 LJM RET RETURN
  4312. FSS SPACE 4,10
  4313. *** FINDSS.NNNNNN.
  4314. * STARTING FROM THE CURRENT TRACK AND SEARCHING TO THE END
  4315. * OF THE TRT, FIND AND DISPLAY THE NEXT SYSTEM SECTOR WITH
  4316. * USER INDEX NNNNNN. IF NNNNNN IS NOT SPECIFIED, THE USER
  4317. * INDEX IS NOT CHECKED.
  4318.  
  4319.  
  4320. FSS COMMAND
  4321. LDN 0
  4322. STD SC
  4323. LDI CA
  4324. ZJN FSS1 IF UI NOT ENTERED
  4325. RJM ASD ASSEMBLE USER INDEX
  4326. LDD AB+3
  4327. STD FN+3
  4328. LDD AB+4
  4329. STD FN+4
  4330. FSS1 AOD TK ADVANCE TO NEXT TRACK
  4331. LMD LT
  4332. NJN FSS2 IF NOT END OF TRT
  4333. SOD TK
  4334. LJM ERR3 *NOT FOUND.*
  4335.  
  4336. FSS2 RJM SNT CHECK FOR FLAWED TRACK
  4337. LMC 3777
  4338. ZJN FSS1 IF FLAWED TRACK
  4339. RJM RSB READ SECTOR
  4340. MJN FSS4 IF ERROR
  4341. LDM BFMS
  4342. SHN 6
  4343. ADM BFMS+1
  4344. LMC 377777
  4345. NJN FSS3 IF NOT SYSTEM SECTOR
  4346. LDI CA
  4347. ZJN FSS4 IF NO UI SPECIFIED
  4348. LDM FNSS+4 CHECK FILE TYPE
  4349. SHN -6
  4350. LMN PMFT
  4351. NJN FSS3 IF NOT PERMANENT FILE SYSTEM SECTOR
  4352. LDM CTSS+3
  4353. LMD FN+3
  4354. LPN 37
  4355. NJN FSS3 IF UI DOES NOT MATCH
  4356. LDM CTSS+4
  4357. LMD FN+4
  4358. ZJN FSS4 IF UI MATCHES
  4359. FSS3 RJM RCPA RETURN TO MAIN LOOP
  4360. LJM FSS1 LOOP
  4361.  
  4362. FSS4 LJM RET RETURN
  4363. EFB SPACE 4,10
  4364. *** FNT.NNNN.
  4365. * ENTER DISK ADDRESS FROM GLOBAL FNT ORDINAL NNNN.
  4366. * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT,
  4367. * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
  4368. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY IS NOT
  4369. * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
  4370.  
  4371.  
  4372. EFB COMMAND
  4373. LDN TARN
  4374. RJM LDO LOAD OVERLAY
  4375. LDN PFNT
  4376. RJM /TAR/RFE READ FST ENTRY
  4377. LDD FN+1
  4378. ZJP ERR2 IF TRACK NOT ASSIGNED
  4379. STD TK TRACK
  4380. LDN 0
  4381. STD SC SECTOR
  4382. LJM IMS INITIALIZE MASS STORAGE
  4383. EFL SPACE 4,10
  4384. *** FNTL.NNNN.
  4385. * ENTER DISK ADDRESS FROM LOCAL FNT ORDINAL NNNN.
  4386. * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT,
  4387. * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
  4388. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY IS NOT
  4389. * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
  4390.  
  4391.  
  4392. EFL COMMAND
  4393. LDN TARN
  4394. RJM LDO LOAD OVERLAY
  4395. LDN PNFL
  4396. RJM /TAR/RFE READ FST ENTRY
  4397. LDD FN+1
  4398. ZJP ERR2 IF TRACK NOT ASSIGNED
  4399. STD TK
  4400. LDN 0 CLEAR SECTOR
  4401. STD SC
  4402. LJM IMS INITIALIZE MASS STORAGE
  4403. EFC SPACE 4,10
  4404. *** FNTLC.NNNN.
  4405. * ENTER DISK ADDRESS FROM LOCAL FNT ORDINAL NNNN.
  4406. * (0 .LE. NNNN .LE. LARGEST FNT ORDINAL.) THE EQUIPMENT,
  4407. * TRACK, AND SECTOR ARE SET TO THE CURRENT POSITION OF THE
  4408. * FILE. *INCORRECT PARAMETER.* IS DISPLAYED IF THE FNT ENTRY
  4409. * IS NOT USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
  4410.  
  4411.  
  4412. EFC COMMAND
  4413. LDN TARN
  4414. RJM LDO LOAD OVERLAY
  4415. LDN PNFL
  4416. RJM /TAR/RFE READ FST ENTRY
  4417. LDD T3 CHECK FILE TYPE
  4418. CRD CM
  4419. LDD FN+2 SET TRACK
  4420. ZJN EFC2 IF NO CURRENT TRACK
  4421. STD TK
  4422. LDD FN+3 SET SECTOR
  4423. STD SC
  4424. UJN EFC3 INITIALIZE MASS STORAGE
  4425.  
  4426. EFC2 STD SC SET SECTOR
  4427. LDD FN+1 SET TRACK
  4428. STD TK
  4429. EFC3 LJM IMS INITIALIZE MASS STORAGE
  4430. GTT SPACE 4,10
  4431. *** GETTRT.NNNN.
  4432. * THIS COMMAND IS INTENDED TO BE USED ON THE LABEL TRACK. THE
  4433. * EQUIPMENT AND TRACK MUST BE SET FOR THE LABEL TRACK BEFORE
  4434. * THE COMMAND IS USED. GETTRT READS THE SECTOR THAT CONTAINS
  4435. * THE CHECKPOINTED TRT INFORMATION FOR TRACK NNNN AND DISPLAYS
  4436. * THE BYTE NUMBER WITHIN THE SECTOR FOR THAT TRACK.
  4437.  
  4438.  
  4439. GTT COMMAND
  4440. RJM ASD GET TRACK NUMBER
  4441. LDD AB+4 GET BYTE NUMBER WITHIN CM WORD
  4442. LPC 3777
  4443. STD AB+4
  4444. LPN 3
  4445. STD AB+3
  4446. LDD AB+4 GET CM WORD NUMBER
  4447. SHN -2
  4448. STD AB+2
  4449. SHN -6 SET SECTOR NUMBER
  4450. STD SC
  4451. SHN 6
  4452. STD AB+1
  4453. AOD SC
  4454. LDD AB+2 GET CM WORD NUMBER WITH SECTOR
  4455. SBD AB+1
  4456. STD AB
  4457. SHN 2 CALCULATE BYTE NUMBER
  4458. ADD AB
  4459. ADD AB+3
  4460. ADN 2
  4461. STD FN
  4462. RJM RSB READ SECTOR
  4463. LJM SBN DISPLAY BYTE NUMBER
  4464. HOL SPACE 4,10
  4465. *** HOLD.
  4466. * DROP DISPLAY AND WAIT FOR OPERATOR ASSIGNMENT. RESERVED
  4467. * CHANNEL IS NOT DROPPED.
  4468.  
  4469.  
  4470. HOL COMMAND
  4471. RJM DDS DROP DISPLAY
  4472. LDD MA SAVE DISK DATA
  4473. CWD T3
  4474. RJM RDC REQUEST DISPLAY
  4475. RJM CSB CLEAR SCREEN BUFFER
  4476. LDD MA RESTORE DISK DATA
  4477. CRD T3
  4478. LJM IMS INITIALIZE MASS STORAGE
  4479. EIT SPACE 4,10
  4480. *** QFT.NNNN.
  4481. * ENTER DISK ADDRESS FROM QFT ORDINAL NNNN.
  4482. * (0 .LE. NNNN .LE. LARGEST QFT ORDINAL.) THE EQUIPMENT,
  4483. * TRACK, AND SECTOR ARE SET TO THE BEGINNING OF THE FILE.
  4484. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE QFT ENTRY IS NOT
  4485. * USED OR THE FILE DOES NOT HAVE ANY TRACKS ASSIGNED.
  4486.  
  4487.  
  4488. EIT COMMAND
  4489. LDN TARN
  4490. RJM LDO LOAD OVERLAY
  4491. LDN PQFT
  4492. RJM /TAR/RFE READ FST ENTRY
  4493. LDD FN+1
  4494. ZJP ERR2 IF TRACK NOT ASSIGNED
  4495. STD TK
  4496. LDN 0 CLEAR SECTOR
  4497. STD SC
  4498. LJM IMS INITIALIZE MASS STORAGE
  4499. LSA SPACE 4,10
  4500. *** LOAD.C.
  4501. * RELOAD THE EQUIPMENT, TRACK, AND SECTOR FROM SCRATCH AREA
  4502. * C. C IS A SINGLE ALPHABETIC CHARACTER (LEGAL CHARACTERS ARE
  4503. * DISPLAYED ON THE LEFT SCREEN). (REFER TO THE STORE COMMAND.)
  4504.  
  4505.  
  4506. LSA COMMAND
  4507. RJM CSA GET ADDRESS OF SCRATCH AREA
  4508. LDI T2
  4509. ZJN LSA1 IF STORE NOT DONE
  4510. STD EQ
  4511. LDM 1,T2
  4512. STD TK
  4513. LDM 2,T2
  4514. STD SC
  4515. LDM 3,T2 SET DISPLAY
  4516. SHN -11
  4517. STD RS
  4518. RJM LDO LOAD OVERLAY
  4519. LDM 3,T2
  4520. LPC 777
  4521. STM DRSA+4
  4522. LJM IMS INITIALIZE MASS STORAGE
  4523.  
  4524. LSA1 LJM ERR2 *INCORRECT PARAMETER.*
  4525. EPN SPACE 4,10
  4526. *** PACKNAM.CCCCCCC.
  4527. * USE PERMANENT FILE PACK CCCCCCC. (THE PACK NAME IS SET
  4528. * INTERNALLY IN DDF. *PKNW* IN THE CONTROL POINT AREA IS NOT
  4529. * CHANGED.) THE PACK NAME IS INITIALLY SET TO THE NAME IN
  4530. * *PKNW*.
  4531.  
  4532.  
  4533. EPN COMMAND
  4534. RJM ASN GET NAME
  4535. LDD FN SAVE NAME
  4536. STD PF
  4537. LDD FN+1
  4538. STD PF+1
  4539. LDD FN+2
  4540. STD PF+2
  4541. LDD PF+3
  4542. LPN 77
  4543. LMD FN+3
  4544. STD PF+3
  4545. LJM RET RETURN
  4546. PRD SPACE 4,10
  4547. *** PREAD.
  4548. * READ THE CURRENT SECTOR USING THE *READ PROTECTED SECTOR*
  4549. * FUNCTION. THIS COMMAND REPLACES THE SPACE KEY WHEN READING
  4550. * PROTECTED SECTORS. SPECIAL KEYS LIKE *+* AND *-* CANNOT
  4551. * BE USED TO READ PROTECTED SECTORS. THE KEYBOARD MUST BE
  4552. * UNLOCKED TO USE THIS COMMAND.
  4553.  
  4554.  
  4555. PRD COMMAND
  4556. RJM CLB CHECK LOCK BIT
  4557. RJM CEQ CHECK EQUIPMENT
  4558. LDD TK SAVE TRACK AND SECTOR
  4559. STD FN
  4560. LDD SC
  4561. STD FN+1
  4562. LDD EQ SET EQUIPMENT
  4563. ADC 1000
  4564. STM PRDB
  4565. EXECUTE 0PI,PRDB+1 SET UP DRIVER FOR PROTECTED SECTORS
  4566. LDD FN RESET TRACK AND SECTOR
  4567. STD TK
  4568. LDD FN+1
  4569. STD SC
  4570. LDM KBUF+1
  4571. LMN 1RW
  4572. NJN PRD1 IF NOT *PWRITE* COMMAND
  4573. LDC WDS
  4574. STM PRDA
  4575. PRD1 LDC BFMS READ/WRITE SECTOR
  4576. RJM RDS
  4577. PRDA EQU *-1
  4578. * RJM WDS (*PWRITE* COMMAND)
  4579. MJN PRD2 IF ERROR
  4580. ENDMS
  4581. * LDN 0
  4582. STM RDCT
  4583. PRD2 LDM RDCT RELOAD DRIVER
  4584. STD FN
  4585. LDD T6
  4586. STD FN+1
  4587. RJM CTS
  4588. LDD FN
  4589. STM RDCT
  4590. LDD FN+1
  4591. STD T6
  4592. LJM RET RETURN
  4593.  
  4594.  
  4595. PRDB BSS 0 *0PI* LOAD ADDRESS
  4596. ERRNG 7777-PRDB-1-ZPXL *0PI* OVERFLOWS PP MEMORY
  4597. PTK SPACE 4,10
  4598. *** PTK.NNNN.
  4599. * ENTER PROTECTED TRACK. THIS COMMAND WORKS THE SAME AS THE
  4600. * TK. COMMAND EXCEPT THE NUMBER ENTERED IS NOT CHECKED AND THE
  4601. * KEYBOARD MUST BE UNLOCKED.
  4602.  
  4603.  
  4604. PTK COMMAND
  4605. RJM CLB CHECK LOCK BIT
  4606. RJM ASD ASSEMBLE TRACK NUMBER
  4607. LDD AB+4
  4608. LPC 3777
  4609. LMC 4000
  4610. STD TK
  4611. LJM RET RETURN
  4612. PWT SPACE 4,10
  4613. *** PWRITE.
  4614. * WRITE THE CURRENT SECTOR USING THE *WRITE PROTECTED SECTOR*
  4615. * FUNCTION. THIS COMMAND SHOULD BE USED INSTEAD OF THE *WRITE*
  4616. * COMMAND WHEN WRITING PROTECTED SECTORS.
  4617.  
  4618.  
  4619. QUAL PRESET
  4620. PWT EQU PRD
  4621. PWTL EQU PRDL
  4622. QUAL *
  4623. ERA SPACE 4,20
  4624. *** RANDOM.NNNN.RRRR.
  4625. * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR WITH FIRST TRACK
  4626. * NNNN. *INCORRECT PARAMETER.* IS DISPLAYED IF THE RANDOM
  4627. * ADDRESS IS NOT ON THE TRACK.
  4628. *
  4629. *
  4630. * RANDOM..RRRR.
  4631. * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR USING THE
  4632. * CURRENT TRACK AS THE FIRST TRACK. *INCORRECT PARAMETER.* IS
  4633. * DISPLAYED IF THE RANDOM ADDRESS IS NOT ON THE CHAIN.
  4634. *
  4635. *
  4636. * RANDOM.C.RRRR.
  4637. * SET TRACK AND SECTOR FOR RANDOM ADDRESS RRRR USING THE TRACK
  4638. * SPECIFIED BY SCRATCH REGISTER C AS THE FIRST TRACK.
  4639. * *INCORRECT PARAMETER.* IS DISPLAYED IF THE RANDOM ADDRESS IS
  4640. * NOT ON THE CHAIN.
  4641.  
  4642.  
  4643. ERA COMMAND
  4644. LDD TK SAVE CURRENT TRACK
  4645. STD RC
  4646. LDI CA
  4647. LMN 1R.
  4648. ZJN ERA3 IF TRACK NUMBER NOT ENTERED
  4649. LDI CA
  4650. SBN NSRA+1
  4651. PJN ERA1 IF NOT A SCRATCH AREA
  4652. RJM CSA COMPUTE SCRATCH AREA ADDRESS
  4653. LDM 1,T2 SET TRACK FROM SCRATCH AREA
  4654. UJN ERA2 STORE TRACK
  4655.  
  4656. ERA1 RJM ASD GET FIRST TRACK
  4657. LDD AB+4
  4658. ERA2 STD TK
  4659. ERA3 AOD CA
  4660. RJM CDR GET RANDOM ADDRESS
  4661. LMN 1R.
  4662. NJN ERA4 IF FORMAT ERROR
  4663. RJM CRA CHECK RANDOM ADDRESS
  4664. MJN ERA5 IF NOT ON CHAIN
  4665. LJM RET RETURN
  4666.  
  4667. ERA4 LDD RC RESET TRACK
  4668. STD TK
  4669. LJM ERR1 *FORMAT ERROR.*
  4670.  
  4671. ERA5 LDD RC RESET TRACK
  4672. STD TK
  4673. LJM ERR2 *INCORRECT PARAMETER.*
  4674.  
  4675.  
  4676. *CALL COMPCRA
  4677. ESC SPACE 4,10
  4678. *** SC.NNNN.
  4679. * ENTER SECTOR NUMBER. *INCORRECT PARAMETER.* IS DISPLAYED IF
  4680. * THE SECTOR NUMBER IS TOO LARGE.
  4681.  
  4682.  
  4683. ESC COMMAND
  4684. RJM ASD ASSEMBLE NUMBER
  4685. LDD LS
  4686. SBD AB+4
  4687. MJN ESC1 IF ILLEGAL SECTOR
  4688. LDD AB+4
  4689. STD SC
  4690. LJM RET RETURN
  4691.  
  4692. ESC1 LJM ERR2 *INCORRECT PARAMETER.*
  4693. ELS SPACE 4,10
  4694. *** SC.*.
  4695. * ENTER THE NUMBER OF THE LAST SECTOR ON THE TRACK INTO THE
  4696. * SECTOR NUMBER.
  4697.  
  4698.  
  4699. ELS COMMAND
  4700. LDD LS SET LAST SECTOR
  4701. STD SC
  4702. LJM RET RETURN
  4703. SCN SPACE 4,15
  4704. *** SCAN.
  4705. * SCAN FROM THE CURRENT POSITION UNTIL THE END OF INFORMATION
  4706. * CONTROL BYTES ARE ENCOUNTERED. THE SCAN STOPS IF, AT SOME
  4707. * POINT, THE CONTROL BYTES ARE INCORRECT OR THE TRACK IS NOT
  4708. * RESERVED.
  4709. *
  4710. *
  4711. * SCAN.*.
  4712. * SCAN FROM THE CURRENT POSITION UNTIL THE END OF INFORMATION
  4713. * INDICATED IN THE TRT IS REACHED. THIS IS INTENDED TO BE USED
  4714. * FOR THE INDIRECT ACCESS PERMANENT FILE CHAIN. NOTE - WHEN
  4715. * *PFM* DELINKS A TRACK IN THE MIDDLE OF THE CHAIN, IT DOES NOT
  4716. * UPDATE THE TRACK POINTER IN THE PRECEEDING TRACK. THIS WILL
  4717. * CAUSE SCAN TO STOP AT THIS POINT AND DISPLAY AN ERROR.
  4718.  
  4719.  
  4720. SCN COMMAND
  4721. SCN1 RJM RCPA RETURN TO MAIN LOOP
  4722. RJM SNT CHECK TRT
  4723. LDN 0 SET ERROR MESSAGE NUMBER
  4724. STD T3
  4725. LDM BFMS
  4726. SHN 6
  4727. ADM BFMS+1
  4728. LMC 377777
  4729. NJN SCN2 IF NOT SYSTEM SECTOR
  4730. AOD T3
  4731. LDM NSSS
  4732. UJN SCN3 CHECK SYSTEM SECTOR POINTER
  4733.  
  4734. SCN2 LDM BFMS
  4735. NJN SCN3 IF NOT EOF
  4736. LDM BFMS+1
  4737. NJN SCN3 IF NOT EOI
  4738. LJM SCN9 CHECK EOI PROCESSING
  4739.  
  4740. SCN3 SHN 6
  4741. PJN SCN4 IF NOT A TRACK LINK BYTE
  4742. SHN -6
  4743. LMM CM,T1
  4744. NJN SCN8 IF LINKAGE BYTES DONT MATCH TRT
  4745. LDN 2 SET ERROR MESSAGE NUMBER
  4746. STD T3
  4747. LDD SC
  4748. LMD LS
  4749. NJN SCN8 IF TRACK LINK NOT IN LAST SECTOR
  4750. UJN SCN5 CHECK WORD COUNT
  4751.  
  4752. SCN4 SHN -6
  4753. SBN 1
  4754. LMD SC
  4755. NJN SCN8 IF NEXT SECTOR .NE. CURRENT SECTOR+1
  4756. SCN5 LDN 3 SET MESSAGE NUMBER
  4757. STD T3
  4758. LDM BFMS CHECK WORD COUNT
  4759. ZJN SCN6 IF EOF
  4760. LDD HN
  4761. SBM BFMS+1
  4762. MJN SCN8 IF BAD WORD COUNT
  4763. SCN6 AOD T3
  4764. RJM CTR CHECK TRACK RESERVATION
  4765. PJN SCN8 IF TRACK NOT RESERVED
  4766. RJM SNS ADVANCE TO NEXT SECTOR
  4767. SCN7 RJM RSB READ SECTOR
  4768. MJN SCN11 IF ERROR
  4769. LJM SCN1 LOOP
  4770.  
  4771. SCN8 LDM SCNA,T3 GET MESSAGE
  4772. LJM SKM SET KEYBOARD MESSAGE
  4773.  
  4774. SCN9 LDI CA
  4775. ZJN SCN11 IF NOT SCAN TO TRT EOI
  4776. RJM SNT SET NEXT TRACK
  4777. STD T1
  4778. SHN 6
  4779. MJN SCN10 IF NOT EOI TRACK
  4780. SHN -6
  4781. LMD SC
  4782. ZJN SCN11 IF AT EOI INDICATED IN TRT
  4783. SCN10 AOD SC ADVANCE TO NEXT SECTOR
  4784. SBD LS
  4785. SBN 1
  4786. NJN SCN7 IF NOT END OF TRACK
  4787. STD SC
  4788. LDD T1
  4789. STD TK
  4790. UJN SCN7 READ NEXT SECTOR
  4791.  
  4792. SCN11 LJM RET RETURN
  4793.  
  4794.  
  4795. SCNA CON SCNB,SCNC,SCND,SCNE,SCNF
  4796. SCNB DATA Z*LINKAGE BYTE BAD.*
  4797. SCNC DATA Z*SYSTEM SECTOR LINKAGE BYTE BAD.*
  4798. SCND DATA Z*TRACK LINK IN WRONG SECTOR.*
  4799. SCNE DATA Z*WORD COUNT TOO BIG.*
  4800. SCNF DATA Z*TRACK NOT RESERVED.*
  4801. SPF SPACE 4,10
  4802. *** SHOWPF.
  4803. * DISPLAY THE PERMANENT FILE WHOSE CATALOG ENTRY IS CURRENTLY
  4804. * DISPLAYED. THE *PFC* DISPLAY MUST BE ON THE RIGHT SCREEN TO
  4805. * USE THIS COMMAND. THE DEVICE, TRACK, AND SECTOR FROM THE
  4806. * PFC CURRENTLY DISPLAYED ARE USED TO DISPLAY THE FILE. IF THE
  4807. * DEVICE IS NOT PRESENT, *INCORRECT PARAMETER* IS DISPLAYED.
  4808.  
  4809.  
  4810. SPF COMMAND
  4811. LDD RS CHECK CURRENT DISPLAY
  4812. LMN DFDN
  4813. SHN 12
  4814. ADM /DFD/DFDB
  4815. LMN DPEN
  4816. NJP ERR4 IF PFC DISPLAY NOT UP
  4817. LDM DRSA+4 COMPUTE PFC ADDRESS
  4818. SHN NWCES
  4819. STD FN
  4820. SHN 2
  4821. RAD FN
  4822. LDM BFMS+2+FCDN,FN DETERMINE EQUIPMENT FILE IS ON
  4823. LPN 77
  4824. ZJN SPF2 IF FILE IS ON MASTER DEVICE
  4825. STD CM
  4826. LDD MA SAVE CURRENT DIRECT CELLS
  4827. ADN 4
  4828. CWD T3 - T7
  4829. ADN 1
  4830. CWD CM+3 - CM+7
  4831. LDD T5 SEARCH FOR DEVICE
  4832. RJM SDN
  4833. PJN SPF1 IF DEVICE FOUND
  4834. ADN 1
  4835. ZJN SPF4 IF DEVICE NOT FOUND
  4836. SPF1 LDD MA RESTORE DIRECT CELLS USED BY *COMPSDN*
  4837. ADN 4+1
  4838. CRD CM+3
  4839. SPF2 LDM BFMS+2+FCBT,FN SET TRACK
  4840. STD T6
  4841. LDM BFMS+2+FCBS,FN SET SECTOR
  4842. STD T7
  4843. SHN 21-13
  4844. PJN SPF3 IF INDIRECT ACCESS FILE
  4845. LDN 0
  4846. STD T7
  4847. SPF3 LJM IMS INITIALIZE MASS STORAGE
  4848.  
  4849. SPF4 LDD MA RESTORE PREVIOUS VALUES TO DIRECT CELLS
  4850. ADN 4
  4851. CRD T3
  4852. ADN 1
  4853. CRD CM+3
  4854. LJM ERR2 *INCORRECT PARAMETER*
  4855.  
  4856.  
  4857. *CALL COMPSDN
  4858. SKE SPACE 4,10
  4859. *** SKIPEI.
  4860. * SET TRACK AND SECTOR TO EOI BASED ON CURRENT POSITION AND
  4861. * INFORMATION IN THE TRT. THE NUMBER OF SECTORS SKIPPED IS
  4862. * DISPLAYED ON THE LEFT SCREEN.
  4863.  
  4864.  
  4865. SKE COMMAND
  4866. RJM SEI SEARCH FOR EOI
  4867. LDD T2 SET UP MESSAGE
  4868. SHN -6
  4869. RJM C2D CONVERT TWO DIGITS
  4870. STM SKEB
  4871. LDD T2
  4872. RJM C2D CONVERT TWO DIGITS
  4873. STM SKEB+1
  4874. LDD T3
  4875. SHN -6
  4876. RJM C2D CONVERT TWO DIGITS
  4877. STM SKEB+2
  4878. LDD T3
  4879. RJM C2D CONVERT TWO DIGITS
  4880. STM SKEB+3
  4881. LDC SKEA
  4882. LJM SKM SET KEYBOARD MESSAGE
  4883.  
  4884.  
  4885. SKEA DATA H* LENGTH = *
  4886. SKEB DATA Z*NNNNNNNNB.*
  4887.  
  4888.  
  4889. *CALL COMPSEI
  4890. SKF SPACE 4,10
  4891. *** SKIPF.
  4892. * READ THE FILE STARTING AT THE CURRENT POSITION UNTIL AN EOF
  4893. * IS ENCOUNTERED.
  4894.  
  4895.  
  4896. SKF COMMAND
  4897. SKF1 RJM SNS ADVANCE TO THE NEXT SECTOR
  4898. RJM RSB READ SECTOR
  4899. MJN SKF2 IF ERROR
  4900. RJM RCPA RETURN TO MAIN LOOP
  4901. LDM BFMS
  4902. ADM BFMS+1
  4903. ZJN SKF3 IF EOI
  4904. LDM BFMS
  4905. NJN SKF1 IF NOT EOF
  4906. SKF2 LJM RET RETURN
  4907.  
  4908. SKF3 LJM ERR3 *NOT FOUND.*
  4909. SKR SPACE 4,10
  4910. *** SKIPR.
  4911. * READ THE FILE STARTING AT THE CURRENT POSITION UNTIL AN EOR
  4912. * OR EOF IS ENCOUNTERED.
  4913.  
  4914.  
  4915. SKR COMMAND
  4916. SKR1 RJM SNS ADVANCE TO THE NEXT SECTOR
  4917. RJM RSB READ SECTOR
  4918. MJN SKR2 IF ERROR
  4919. RJM RCPA RETURN TO MAIN LOOP
  4920. LDM BFMS
  4921. ADM BFMS+1
  4922. ZJN SKR3 IF EOI
  4923. LDM BFMS
  4924. ZJN SKR2 IF EOF
  4925. LDM BFMS+1
  4926. SHN -6
  4927. NJN SKR1 IF NOT SHORT PRU
  4928. SKR2 LJM RET RETURN
  4929.  
  4930. SKR3 LJM ERR3 *NOT FOUND.*
  4931. STB SPACE 4,10
  4932. *** STB.
  4933. * SET THE TRACK INTERLOCK BIT FOR THE CURRENT TRACK. THE
  4934. * KEYBOARD MUST BE UNLOCKED TO USE THIS COMMAND.
  4935.  
  4936.  
  4937. STB COMMAND
  4938. RJM CLB CHECK LOCK BIT
  4939. STB1 RJM CTR CHECK TRACK RESERVATION
  4940. MJN STB2 IF TRACK IS RESERVED
  4941. LJM ERR4 *INCORRECT ENTRY.*
  4942.  
  4943. STB2 LDD EQ
  4944. STD CM+1
  4945. LDD TK
  4946. STD CM+2
  4947. LDN STIS
  4948. STD CM+3
  4949. MONITOR STBM
  4950. LDD CM+1
  4951. ZJN STB3 IF REQUEST HONORED
  4952. LDN 0
  4953. STD SB
  4954. RJM RCPA RETURN TO MAIN LOOP
  4955. UJN STB1 LOOP
  4956.  
  4957. STB3 LJM RET RETURN
  4958. SSA SPACE 4,10
  4959. *** STORE.C.COMMENT
  4960. * STORE THE CURRENT EQUIPMENT, TRACK, AND SECTOR INTO SCRATCH
  4961. * AREA C. C IS A SINGLE ALPHABETIC CHARACTER (LEGAL CHARACTERS
  4962. * ARE DISPLAYED ON THE LEFT SCREEN). THE COMMENT IS COPIED TO
  4963. * THE SCRATCH AREA AND DISPLAYED ON THE LEFT SCREEN. THE
  4964. * COMMENT IS FOR CONVENIENCE ONLY AND IS TRUNCATED TO 10
  4965. * CHARACTERS. THE EQUIPMENT, TRACK, AND SECTOR CAN BE RELOADED
  4966. * FROM THE SCRATCH AREA WITH THE *LOAD* COMMAND.
  4967.  
  4968.  
  4969. SSA COMMAND
  4970. RJM CSA GET ADDRESS OF SCRATCH AREA
  4971. LDD EQ SAVE EQUIPMENT
  4972. STI T2
  4973. AOD T2
  4974. LDD TK SAVE TRACK
  4975. STI T2
  4976. AOD T2
  4977. LDD SC SAVE SECTOR
  4978. STI T2
  4979. AOD T2
  4980. LDD RS SAVE DISPLAY INFORMATION
  4981. SHN 11
  4982. ADM DRSA+4
  4983. STI T2
  4984. AOD T2
  4985. LDN 4 COPY COMMENT
  4986. STD T1
  4987. AOD CA
  4988. SSA1 LDI CA
  4989. SHN 6
  4990. ADM 1,CA
  4991. STI T2
  4992. LDN 2
  4993. RAD CA
  4994. AOD T2
  4995. SOD T1
  4996. PJN SSA1 IF MORE BYTES
  4997. LJM RET RETURN
  4998. ETK SPACE 4,10
  4999. *** TK.NNNN.
  5000. * ENTER TRACK NUMBER. *INCORRECT PARAMETER.* IS DISPLAYED IF
  5001. * THE NUMBER IS TOO LARGE.
  5002.  
  5003.  
  5004. ETK COMMAND
  5005. RJM ASD ASSEMBLE NUMBER
  5006. LDD AB+4
  5007. LPC 3777
  5008. ADC 4000
  5009. STD T2
  5010. SBD LT
  5011. SBN 1
  5012. PJN ETK1 IF ILLEGAL TRACK
  5013. LDD T2
  5014. STD TK
  5015. LJM RET RETURN
  5016.  
  5017. ETK1 LJM ERR2 *INCORRECT PARAMETER.*
  5018. SCT SPACE 4,10
  5019. *** UI.NNNNNN.
  5020. * SET EQUIPMENT AND TRACK FOR THE CATALOG ENTRIES FOR USER
  5021. * INDEX NNNNNN (NNNNNN .LE. 377777). *INCORRECT PARAMETER.* IS
  5022. * DISPLAYED IF THE CATALOG IS NOT FOUND (THIS MAY BE THE RESULT
  5023. * OF ENTERING THE WRONG FAMILY OR PACK NAME.) IF THE FAMILY
  5024. * OR PACK NAME ARE CHANGED (AFTER ENTERING THE *UI* COMMAND),
  5025. * THE *UI* COMMAND MUST BE REENTERED.
  5026.  
  5027.  
  5028. SCT COMMAND
  5029. RJM ASD GET USER INDEX
  5030. LDD MA SAVE CURRENT ENTRIES
  5031. ADN 5
  5032. CWD T3
  5033. LDN PF
  5034. RJM SCA SET CATALOG ADDRESS
  5035. PJN SCT1 IF DEVICE FOUND AND ACCESSIBLE
  5036. ADN 1
  5037. NJN SCT2 IF NOT FOUND
  5038. SCT1 LDN DFDN
  5039. STD RS
  5040. RJM LDO LOAD OVERLAY
  5041. LDN 0 SET SECTOR
  5042. STD SC
  5043. STM DRSA+4 SET DISPLAY INDEX
  5044. LJM IMS INITIALIZE MASS STORAGE
  5045.  
  5046. SCT2 LDD MA RESTORE PREVIOUS ENTRIES
  5047. ADN 5
  5048. CRD T3
  5049. LJM ERR2 *INCORRECT PARAMETER.*
  5050.  
  5051.  
  5052. *CALL COMPSCA
  5053. WRT SPACE 4,10
  5054. *** WRITE.
  5055. * WRITE THE CONTENTS OF THE BUFFER TO THE SECTOR CURRENTLY
  5056. * INDICATED. IF THE KEYBOARD IS NOT UNLOCKED, *INCORRECT
  5057. * ENTRY.* IS DISPLAYED.
  5058.  
  5059.  
  5060. WRT COMMAND
  5061. RJM CLB CHECK FOR LOCKED KEYBOARD
  5062. RJM CEQ CHECK EQUIPMENT
  5063. LDC BFMS+WLSF
  5064. RJM WDS WRITE DATA
  5065. ENDMS
  5066. LJM RET RETURN
  5067. SPACE 4,10
  5068. COMMAND
  5069. TAR SPACE 4,10
  5070. ** TAR - TABLE ACCESS ROUTINES.
  5071. *
  5072. * THIS CM RESIDENT OVERLAY CONTAINS THE SUBROUTINES REQUIRED
  5073. * FOR COMMANDS *EJT.*, *FNT.*, *FNTL.*, *FNTLC.*, AND *QFT.*
  5074. * TO ACCESS THE CMR/NFL TABLES INVOLVED TO READ A FST ENTRY.
  5075. *
  5076. * THEY ARE LOADED AT THE END OF THE COMMAND OVERLAY.
  5077.  
  5078.  
  5079. QUAL PRESET
  5080. .1 MAX EETL,EFBL,EFLL,EFCL,EITL
  5081. QUAL *
  5082. QUAL
  5083. TARLA EQU CPLA+/PRESET/.1*5 TAR OVERLAY LOAD ADDRESS
  5084. QUAL *
  5085. TAR ACROVL TARLA
  5086. CFA SPACE 4,10
  5087. ** CFA - CALCULATE FNT ADDRESS.
  5088. *
  5089. * ENTRY (CA) = ADDRESS OF CHARACTER STRING.
  5090. *
  5091. * EXIT (T3) = LOCAL FNT POINTER.
  5092. *
  5093. * USES CM - CM+4.
  5094. *
  5095. * CALL ASD.
  5096.  
  5097.  
  5098. CFA SUBR ENTRY/EXIT
  5099. RJM ASD GET FNT ORDINAL
  5100. LDN LENF COMPUTE FNT NFL ADDRESS (FNTN+NNNN*LENF)
  5101. STD T0
  5102. LDC FNTN
  5103. STD T3
  5104. CFA1 LDD AB+4
  5105. RAD T3
  5106. SHN -14
  5107. NJN CFA2 IF OVERFLOW
  5108. SOD T0
  5109. NJN CFA1 IF MULTIPLY BY LENF INCOMPLETE
  5110. LDD CP
  5111. ADN FLSW GET NFL/100B
  5112. CRD CM
  5113. LDD CM FORM LWA+1 OF LOCAL FNT AREA
  5114. SHN 6
  5115. ADN 1
  5116. STD CM+1
  5117. LDD T3
  5118. SBD CM+1
  5119. MJN CFAX IF LEGAL ORDINAL
  5120. CFA2 LJM ERR2 *INCORRECT PARAMETER.*
  5121. CTO SPACE 4,15
  5122. ** CTO - CHECK TABLE ORDINAL.
  5123. *
  5124. * ENTRY (A) = MANAGED TABLE IDENTIFICATION CODE.
  5125. * (CA) = ADDRESS OF CHARACTER STRING.
  5126. *
  5127. * EXIT (T3) = TABLE ORDINAL.
  5128. * (T1) = MANAGED TABLE IDENTIFICATION CODE.
  5129. *
  5130. * USES CM - CM+4.
  5131. *
  5132. * CALLS ASD.
  5133.  
  5134.  
  5135. CTO SUBR ENTRY/EXIT
  5136. STD T1
  5137. RJM ASD ASSEMBLE TABLE ORDINAL
  5138. LDM TMTP,T1 READ POINTER WORD
  5139. CRD CM
  5140. LDD AB+4 CHECK VALID ORDINAL
  5141. STD T3
  5142. SBD CM+2
  5143. MJN CTOX IF LEGAL ORDINAL
  5144. LJM ERR2 *INCORRECT PARAMETER.*
  5145. RFE SPACE 4,15
  5146. ** RFE - READ FST ENTRY.
  5147. *
  5148. * ENTRY (A) = MANAGED TABLE IDENTIFICATION CODE.
  5149. * (CA) = ADDRESS OF CHARACTER STRING.
  5150. *
  5151. * EXIT (FN - FN+4) = FST ENTRY.
  5152. * (T3) = FNT ADDRESS.
  5153. * (EQ) = EST ORDINAL.
  5154. *
  5155. * USES CM - CM+4.
  5156. *
  5157. * CALLS CFA, CTO, .EJT, .FNT, .QFT.
  5158. *
  5159. * MACROS NFA, SFA.
  5160.  
  5161.  
  5162. RFE4 LDD FN SET EST ORDINAL
  5163. STD EQ
  5164.  
  5165. RFE SUBR ENTRY/EXIT
  5166. LMK PNFL
  5167. NJN RFE1 IF NOT LOCAL FNT
  5168. STD T1
  5169. RJM CFA CALCULATE FNT ADDRESS
  5170. NFA T3,R
  5171. UJN RFE2 READ TABLE ENTRY
  5172.  
  5173. RFE1 LMK PNFL
  5174. RJM CTO CHECK TABLE ORDINAL
  5175. LDM TMTA,T1
  5176. STD CM
  5177. LDD T3 GET ADDRESS OF SPECIFIED ENTRY
  5178. RJM 0,CM
  5179. RFE2 ADM TFSI,T1
  5180. CRD FN READ FST ENTRY
  5181. LDD FN+1
  5182. ZJN RFE3 IF EMPTY FILE
  5183. SFA EST,FN
  5184. ADK EQDE
  5185. CRD CM READ EST ENTRY
  5186. LDD CM
  5187. SHN 21-13
  5188. MJN RFE4 IF MASS STORAGE
  5189. RFE3 LJM ERR2 *INCORRECT PARAMETER.*
  5190.  
  5191.  
  5192. TFSI INDEX LIST OF INDICES TO FST ENTRY
  5193. INDEX PNFL,FSTL
  5194. INDEX PFNT,FSTG
  5195. INDEX PQFT,ENTQ
  5196. INDEX PEJT,SCHE
  5197. INDEX PEJT+1
  5198.  
  5199.  
  5200. TMTA INDEX LIST OF MANAGED TABLE ACCESS ROUTINES
  5201. INDEX PFNT,.FNT
  5202. INDEX PQFT,.QFT
  5203. INDEX PEJT,.EJT
  5204. INDEX PEJT+1
  5205.  
  5206.  
  5207. TMTP INDEX LIST OF MANAGED TABLE POINTER ADDRESSES
  5208. INDEX PFNT,FNTP
  5209. INDEX PQFT,QFTP
  5210. INDEX PEJT,EJTP
  5211. INDEX PEJT+1
  5212.  
  5213.  
  5214. QUAL$ EQU 0 SELECT UNQUALIFIED ASSEMBLY OF COMPGFP
  5215. EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
  5216. FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT
  5217. QFT$ EQU 0 DEFINE *COMPGFP* ACCESS TO QFT
  5218. IFP$ EQU 0 GENERATE *IFP* REMOTE CODE
  5219. .OFFS SET *O-*L
  5220. *CALL COMPGFP
  5221. SPACE 4,10
  5222. ACROVL
  5223. ERRNG EPFW-TARLA-/PRESET/TARL*5 *TAR* OVERFLOWS ERROR PROC.
  5224.  
  5225. * SINCE THE IFP CODE FOR COMPGFP IS EXECUTED DURING PRESET,
  5226. * THE LOCATIONS TO BE PRESET MUST BE REFERENCE VIA THE ORIGIN
  5227. * COUNTER, RATHER THAN THE LOCATION COUNTER (WHICH WAS USED TO
  5228. * DEFINE THE SYMBOLS *EJTB*, *FNTB*, AND *QFT*).
  5229. * TO ACCOMPLISH THIS, THE PRESET CODE IS ASSEMBLED USEING A
  5230. * DIFFERENT QUALIFIER. THIS NECESSITATES REDEFINING THE
  5231. * ASSEMBLY OPTION TAGS AS WELL.
  5232.  
  5233. USE PRESET
  5234. QUAL$ EQU 0 SELECT UNQUALIFIED ASSEMBLY OF COMPGFP
  5235. EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
  5236. EJTB EQU /TAR/EJTB+/TAR/.OFFS
  5237. FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT
  5238. FNTB EQU /TAR/FNTB+/TAR/.OFFS
  5239. QFT$ EQU 0 DEFINE *COMPGFP* ACCESS TO QFT
  5240. QFTB EQU /TAR/QFTB+/TAR/.OFFS
  5241. IFP$ EQU 0 GENERATE *IFP* REMOTE CODE
  5242. IFP HERE ASSEMBLE *IFP* REMOTE CODE HERE
  5243. USE *
  5244. SPACE 4,10
  5245. OVERFLOW /PRESET/OVL
  5246. QUAL * RESUME UNQUALIFIED DEFINITIONS
  5247. OVERLAY /PRESET/OVL,(LISTING FILE COMMAND PROCESSORS.)
  5248. OVL SUBR ENTRY/EXIT
  5249. UJN OVLX RETURN
  5250. SPACE 4,10
  5251. *** THE FOLLOWING COMMANDS ARE USED TO PRINT THE CONTENTS OF THE
  5252. * DISK SECTOR AND MANIPULATE THE LISTING FILE.
  5253. CLF SPACE 4,10
  5254. *** LISTING.CCCCCCC.
  5255. * SET THE LISTING FILE NAME TO CCCCCCC. THE LISTING FILE IS
  5256. * ORIGINALLY *OUTPUT*.
  5257.  
  5258.  
  5259. CLF COMMAND
  5260. RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
  5261. RJM ASN GET NAME
  5262. LDD BA
  5263. SHN 6
  5264. ADD RA
  5265. SHN 6
  5266. ADD BA+1
  5267. CWD FN WRITE NAME TO BUFFER
  5268. LDN 2*2+1
  5269. LJM SCP START CPU
  5270. OUT SPACE 4,10
  5271. *** OUT.
  5272. * RELEASE THE LISTING FILE TO THE OUTPUT QUEUE.
  5273.  
  5274.  
  5275. OUT COMMAND
  5276. RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
  5277. LDN 3*2+1
  5278. LJM SCP START CPU
  5279. PRT SPACE 4,10
  5280. *** PRINT.
  5281. * PRINT THE CURRENT EQUIPMENT, TRACK, SECTOR, TRT INFORMATION,
  5282. * AND THE CONTENTS OF THE SECTOR.
  5283. *
  5284. *
  5285. * PRINT.NNNN.
  5286. * PRINT THE NEXT NNNN (MUST BE AN OCTAL NUMBER) SECTORS START-
  5287. * ING WITH THE CURRENT SECTOR. PRINTING WILL STOP AT EOI IF
  5288. * ENCOUNTERED BEFORE NNNN SECTORS HAVE BEEN PRINTED. ONE PAGE
  5289. * OF OUTPUT IS PRODUCED FOR EACH SECTOR PRINTED.
  5290.  
  5291.  
  5292. PRT COMMAND
  5293. LDI CA
  5294. ZJN PRT1 IF NUMBER NOT ENTERED
  5295. RJM ASD CONVERT NUMBER
  5296. LDD AB+4
  5297. SBN 1
  5298. PRT1 STD FN SAVE COUNT
  5299. PRT2 RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
  5300. RJM SNT GET CONTENTS OF TRT
  5301. STD AB
  5302. LDD CM+4
  5303. STD AB+1
  5304. LDM DLSA
  5305. STD AB+3
  5306. LDM DLSA+1
  5307. STD AB+4
  5308. LDD TK
  5309. SHN -2
  5310. RAD AB+4
  5311. SHN -14
  5312. RAD AB+3
  5313. LDM BFMS
  5314. STD T5+3 (=CM)
  5315. LDM BFMS+1
  5316. STD T5+4 (=CM+1)
  5317. LDD BA
  5318. SHN 6
  5319. ADD RA
  5320. SHN 6
  5321. ADD BA+1
  5322. CWD T5 WRITE OUT EQUIPMENT AND CONTROL BYTES
  5323. ADN 1
  5324. CWD AB
  5325. ADN 1
  5326. CWM BFMS+2,HN WRITE OUT CONTENTS OF BUFFER
  5327. RJM WCC RESET (CM - CM+4)
  5328. SOD FN DECREMENT COUNT
  5329. MJN PRT3 IF DONE
  5330. RJM SNS SET NEXT SECTOR
  5331. ZJN PRT3 IF AT EOI
  5332. LDN 1*2+1 SET FUNCTION CODE
  5333. STD CM+4
  5334. LDD RA
  5335. SHN 6
  5336. ADN D
  5337. CWD CM
  5338. RJM RSB READ NEXT SECTOR
  5339. MJN PRT4 IF ERROR
  5340. LJM PRT2 LOOP
  5341.  
  5342. PRT3 LDN 1*2+1
  5343. LJM SCP START CPU
  5344.  
  5345. PRT4 LJM RET RETURN
  5346. RET SPACE 4,10
  5347. *** RETURN.
  5348. * RETURN THE LISTING FILE.
  5349.  
  5350.  
  5351. RET COMMAND
  5352. RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
  5353. LDN 6*2+1
  5354. LJM SCP START CPU
  5355. REW SPACE 4,10
  5356. *** REWIND.
  5357. * REWIND THE LISTING FILE.
  5358.  
  5359.  
  5360. REW COMMAND
  5361. RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
  5362. LDN 4*2+1
  5363. LJM SCP START CPU
  5364. SID SPACE 4,10
  5365. *** SETID.NN.
  5366. * SET THE ID FOR THE OUTPUT FILE TO NN.
  5367.  
  5368.  
  5369. SID COMMAND
  5370. RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
  5371. RJM ASD CONVERT ID
  5372. LDD BA
  5373. SHN 6
  5374. ADD RA
  5375. SHN 6
  5376. ADD BA+1
  5377. CWD AB
  5378. LDN 7*2+1
  5379. LJM SCP START CPU
  5380. SKL SPACE 4,10
  5381. *** SKIPL.
  5382. * POSITION TO THE END OF THE LISTING FILE.
  5383.  
  5384.  
  5385. SKL COMMAND
  5386. RJM WCC WAIT FOR PREVIOUS REQUEST TO COMPLETE
  5387. LDN 5*2+1
  5388. LJM SCP START CPU
  5389. SPACE 4,10
  5390. COMMAND
  5391. SPACE 4,10
  5392. OVERFLOW /PRESET/OVL
  5393. QUAL *
  5394. OVERLAY /PRESET/OVL,(LABEL/TRT RECONSTRUCTION PROCESSORS.)
  5395. OVL SPACE 4,10
  5396. ** PRESET THE OVERLAY BY LOADING THE AUXILIARY COMMAND
  5397. * PROCESSOR SUBROUTINES TO CM.
  5398.  
  5399.  
  5400. OVL SUBR ENTRY/EXIT
  5401. LDN /PRESET/LRRL SET OVERLAY LENGTH
  5402. STD T1
  5403. LDD AB+3 SAVE CM ADDRESS
  5404. STM /PRESET/TCRO+LRRN*5+2
  5405. LDD AB+4
  5406. STM /PRESET/TCRO+LRRN*5+3
  5407. LDD AB+3 WRITE OVERLAY TO CM
  5408. SHN 6
  5409. ADD RA
  5410. SHN 6
  5411. ADD AB+4
  5412. CWM /PRESET/LRR,T1
  5413. LDD T1 UPDATE CM ADDRESS
  5414. RAD AB+4
  5415. SHN -14
  5416. RAD AB+3
  5417. UJN OVLX EXIT
  5418. SPACE 4,10
  5419. *** THE FOLLOWING COMMANDS CAN BE USED TO RECONSTRUCT THE LABEL
  5420. * AND TRT OF A DEVICE THAT HAS LOST THEM. THE COMMANDS WILL
  5421. * NOT NECESSARILY RECOVER THE DEVICE CORRECTLY. THE COMMANDS
  5422. * (IN APPROXIMATE ORDER OF USE) ARE -
  5423. *
  5424. * BEGINR - BEGIN RECOVERY BY INITIALIZING TABLES;
  5425. * RECOVER - SCAN DEVICE TO FIND FILES;
  5426. * BLDTRT - CHECK FOR LINKAGE ERRORS AND BUILD A SECTOR OF
  5427. * THE TRT FOR THE LABEL TRACK.
  5428. * NEXTAT - FIND AND READ NEXT AVAILABLE TRACK.
  5429. * (A TRACK WITH NO LINKAGE IN THE RECOVERY TABLES.)
  5430. * NEXTSS - FIND AND READ NEXT TRACK IN THE RECOVERY TABLE
  5431. * THAT BEGINS WITH A SYSTEM SECTOR.
  5432. * SETTRT - MODIFY POINTERS FOR RECOVER COMMAND.
  5433. * SETRW - MODIFY RECOVERY DATA FOR A TRACK.
  5434. * BLDSL - CREATE LABEL SECTOR FOR DEVICE.
  5435. *
  5436. * THESE COMMANDS USE A RECOVERY TABLE IN CM TO KEEP TRACK OF
  5437. * LINKAGES. THE TABLE IS INITIALIZED BY THE *BEGINR.* COMMAND.
  5438. * THE OTHER COMMANDS USE OR MODIFY THE DATA IN THE TABLE TO
  5439. * EFFECT DEVICE RECOVERY. THE TABLE IS FORMATTED AS FOLLOWS.
  5440. *
  5441. *
  5442. *T,MST IMAGE OF MST FOR DEVICE. (MSTL WORDS LONG)
  5443. *
  5444. *
  5445. *T,SSDW *FNSS* WORD FROM SYSTEM SECTOR OF CURRENT CHAIN.
  5446. * *FTSS* WORD.
  5447. * *DTSS* WORD. (THREE WORDS FOR FNSS....DTSS)
  5448. *
  5449. *
  5450. *T,RCPW 12/FT, 12/PT, 12/SC, 24/UNUSED (RECOVER POINTERS)
  5451. *
  5452. * FT - FIRST TRACK OF CURRENT CHAIN.
  5453. * PT - PREVIOUS TRACK IN CHAIN.
  5454. * SC - CURRENT SECTOR FOR EOI SEARCH AFTER ERROR.
  5455. *
  5456. *
  5457. *T,ICPW 12/FT, 12/PT, 36/UNUSED (INDIRECT CHAIN POINTERS)
  5458. *
  5459. * FT - FIRST TRACK OF INDIRECT CHAIN IN *BLDIC* COMMAND.
  5460. * PT - PREVIOUS TRACK OF INDIRECT CHAIN.
  5461. *
  5462. *
  5463. *T,BSPW 12/TT, 12/SC, 12/FT, 12/NF, 12/TL (BUILD POINTERS)
  5464. *
  5465. * TT - DESTINATION TRACK FOR WRITING TRT.
  5466. * SC - SECTOR FOR CURRENT PIECE OF TRT.
  5467. * FT - FIRST TRACK FOR CURRENT PIECE OF TRT.
  5468. * NF - DAF FILE COUNT.
  5469. * TL - TRT LENGTH FROM MST.
  5470. *
  5471. *
  5472. * TWO RESERVED WORDS FOLLOW.
  5473. *
  5474. *
  5475. *T,TRCT BEGINNING OF TRACK RECOVERY TABLE.
  5476. * (MSTL+10 WORD FROM BEGINNING OF MST AREA.)
  5477. * (ONE WORD PER TRACK AS FOLLOWS)
  5478. *
  5479. *T 6/TY, 1/RE, 1/SS, 1/FL, 1/, 2/EI, 12/FT, 12/PT, 12/NT, 12/LC
  5480. *
  5481. * TY - FILE TYPE FROM SYSTEM SECTOR.
  5482. * RE - READ ERROR DETECTED IN TRACK.
  5483. * SS - SYSTEM SECTOR IN TRACK AT OTHER THAN SECTOR ZERO.
  5484. * FL - FLAWED TRACK INDICATOR.
  5485. * EI - EOI STATUS FOR TRACK.
  5486. * =0 - NO EOI.
  5487. * =1 - NORMAL EOI IN TRACK.
  5488. * =2 - EOI, WRITTEN BY IMS.
  5489. * FT - FIRST TRACK OF CHAIN LINKED TO THIS TRACK.
  5490. * PT - FIRST TRACK ENCOUNTERED LINKED TO THIS ONE.
  5491. * ((PT) = CURRENT TRACK IF START OF FILE)
  5492. * NT - NEXT TRACK OR EOI SECTOR NUMBER.
  5493. * LC - LINKAGE COUNT. (NUMBER OF TRACKS LINKED
  5494. * TO THIS TRACK.)
  5495. SPACE 4,10
  5496. ** LINKAGE RECOVERY DEFINITIONS.
  5497. *
  5498. * THE FOLLOWING SYMBOLS ARE USED TO REFERENCE THE
  5499. * CM RECOVERY TABLES.
  5500.  
  5501.  
  5502. QUAL
  5503. SSDW EQU MSTL+0 SYSTEM SECTOR DATA WORDS
  5504. RCPW EQU MSTL+3 RECOVERY POINTER WORD
  5505. ICPW EQU MSTL+4 INDIRECT CHAIN RECOVERY POINTER WORD
  5506. BSPW EQU MSTL+5 BUILD SECTOR POINTER WORD
  5507. * MSTL+6 SPARE
  5508. * MSTL+7 SPARE
  5509. TRCT EQU MSTL+10 TRACK RECOVERY TABLE
  5510.  
  5511. CRAL EQU TRCT+4077 CM RECOVERY AREA LENGTH
  5512. QUAL *
  5513. SPACE 4,10
  5514. ** DIRECT CELL USAGE CONVENTIONS.
  5515. *
  5516. * (FN - FN+4) = RECOVERY POINTERS.
  5517. * = (RCPW) FOR BEGINR, NEXXTAT, NEXTSS, RECOVER.
  5518. * = (ICPW) FOR BLDIC. (NOT YET IMPLEMENTED)
  5519. * = (BSPW) FOR BLDSL, BLDTRT.
  5520. * (AB - AB+4) = RECOVERY WORD FOR CURRENT TRACK.
  5521. BTR SPACE 4,10
  5522. *** BEGINR.
  5523. * BEGIN TRACK RECOVERY FOR THE CURRENT SELECTED EQUIPMENT BY
  5524. * RESERVING AND CLEARING THE CM RECOVERY TABLES.
  5525. * THE EQUIPMENT TO BE RECOVERED MUST BE REMOVABLE AND UNLOADED.
  5526. * THE MST IN CMR FOR THE SELECTED EQUIPMENT IS USED TO
  5527. * INITIALIZE THE MST FOR THE LABEL TRACK BUILT BY THE RECOVERY
  5528. * COMMANDS. BE SURE THE EQUIPMENT MNEMONIC IN THE *E,M*
  5529. * DISPLAY MATCHES THE PACK TO BE RECOVERED. IF THIS COMMAND IS
  5530. * USED AGAIN, RECOVERY IS RESTARTED FOR THE CURRENT EQUIPMENT.
  5531.  
  5532.  
  5533. BTR COMMAND
  5534. LDD RT
  5535. NJN BTR2 IF NOT FIRST USE OF *BEGINR.*
  5536. LDD FL REQUEST STORAGE FOR TABLE
  5537. STD RT SAVE TABLE ADDRESS
  5538. ADN CRAL/100B
  5539. STD AB
  5540. LDD CP
  5541. ADN MS1W
  5542. CWM BTRA,TR * WAITING FOR MEMORY.*
  5543. BTR1 LDN ZERL REQUEST STORAGE FOR RECOVERY TABLE
  5544. CRD CM
  5545. LDD AB
  5546. STD CM+1
  5547. MONITOR RSTM
  5548. RJM PSS PAUSE
  5549. LDD AB
  5550. LMD FL
  5551. NJN BTR1 IF MEMORY NOT OBTAINED
  5552. BTR2 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
  5553. STD RS
  5554. LDN LRRN OVERLAY CONTROL WORD INDEX
  5555. RJM LDO LOAD OVERLAY
  5556. SFA EST,EQ READ EST ENTRY
  5557. ADK EQDE
  5558. CRD CM
  5559. LDN MSTL SET UP MST SKELTON FOR RECOVERY
  5560. STD T1
  5561. LDD CM+4 GET MST ADDRESS
  5562. SHN 3
  5563. CRM EPFW,T1
  5564. RJM MST SET MST AREA
  5565. LDD RA WRITE MST TO RECOVERY TABLE
  5566. ADD RT
  5567. SHN 6
  5568. CWM EPFW,T1
  5569. LDN ZERL
  5570. CRD AB CLEAR RECOVERY WORDS
  5571. CRD FN
  5572. LDD CP CLEAR MESSAGE
  5573. ADN MS1W
  5574. CWD FN
  5575. BTR3 LDD RA CLEAR RECOVERY TABLE
  5576. ADD RT
  5577. SHN 6
  5578. ADD T1
  5579. CWD FN
  5580. AOD T1
  5581. ADC -CRAL
  5582. MJN BTR3 IF MORE TO CLEAR
  5583. LDC 4000-1 SET INITIAL TRACK
  5584. STD FN
  5585. RJM /LRR/SRP SAVE RECOVERY POINTERS
  5586. AOD FN READ FIRST SECTOR
  5587. STD TK
  5588. LDN 0
  5589. STD SC
  5590. RJM RSB READ SECTOR TO BUFFER
  5591. LJM RET RETURN
  5592.  
  5593.  
  5594. BTRA DATA C* WAITING FOR MEMORY.*
  5595. MST SPACE 4,10
  5596. ** MST - SET MST RECOVERY TABLE.
  5597. *
  5598. * ENTRY (EPFW - EPFW+MSTL) = MST IMAGE.
  5599. *
  5600. * EXIT MST SET FOR RECOVERY OPERATIONS.
  5601. *
  5602. * USES T3.
  5603.  
  5604.  
  5605. MST SUBR ENTRY/EXIT
  5606. LDC EPFW+ALGL*5
  5607. STD T3
  5608. LDC /LSD/FLTK
  5609. STM 1,T3
  5610. LDN 0
  5611. STI T3 CLEAR INDIRECT POINTER
  5612. STM 2,T3 CLEAR PERMITS POINTER
  5613. STM 3,T3 CLEAR CATALOG TRACK COUNT
  5614. STM 4,T3 CLEAR *DAT* POINTER
  5615. .1 SET STLL-ALGL
  5616. LDN .1*5
  5617. RAD T3
  5618. LDN 2
  5619. STI T3 CLEAR INITIALIZE REQUESTS
  5620. LDN 0
  5621. STM 1,T3 CLEAR ERROR STATUS
  5622. STM 3,T3 CLEAR DAF USER COUNT
  5623. LJM MSTX RETURN
  5624. BLS SPACE 4,20
  5625. *** BLDSL.
  5626. * BUILDS A LABEL SECTOR IMAGE IN THE DATA BUFFER FROM DATA
  5627. * IN THE CM RECOVERY TABLE. ONCE THE OTHER RECOVERY COMMANDS
  5628. * HAVE COMPLETED, THE MEMORY CHANGE COMMANDS CAN FILL IN ANY
  5629. * MISSING DATA. THE BUFFER CAN THEN BE WRITTEN TO DISK WITH
  5630. * THE WRITE COMMAND.
  5631. *
  5632. * NOTE - IF THIS COMMAND IS USED AFTER THE *RECOVER* COMMAND
  5633. * COMPLETES, THE MST IN THE DATA BUFFER WILL SHOW THE
  5634. * POINTERS TO THE FIRST TRACK OF THE PERMIT DATA AND INDIRECT
  5635. * PF CHAIN. SINCE THE *RECOVER* COMMAND IS UNABLE TO FIND THE
  5636. * CATALOG TRACK CHAIN, THESE POINTERS ARE HELPFUL IN LOCATING
  5637. * THE CATALOG TRACK CHAIN, WHICH IS ALLOCATED BY *IMS*
  5638. * IMMEDIATELY PRECEEDING THESE TWO TRACKS. THIS ONLY APPLIES
  5639. * TO THE INITIAL CATALOG TRACKS. OVERFLOW TRACKS ARE LINKED
  5640. * THRU THE LAST SECTOR OF ONE OF THE INITIAL TRACKS.
  5641.  
  5642.  
  5643. BLS COMMAND
  5644. LDD RT
  5645. NJN BLS1 IF RECOVERY TABLES NOT PRESENT
  5646. LJM ERR4 *INCORRECT COMMAND.*
  5647.  
  5648. BLS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
  5649. STD RS
  5650. LDN LRRN OVERLAY CONTROL WORD INDEX
  5651. RJM LDO LOAD OVERLAY
  5652. LDC 3777 SET LINKAGE FOR SYSTEM SECTOR
  5653. STM BFMS
  5654. LDN 77
  5655. STM BFMS+1
  5656. BLS2 LDN ZERL CLEAR SECTOR BUFFER
  5657. CRM FNSS,ON
  5658. BLSA EQU *-1
  5659. LDN 5 ADVANCE BUFFER ADDRESS
  5660. RAM BLSA
  5661. LMC BFMS+2+100*5
  5662. NJN BLS2 IF CLEAR INCOMPLETE
  5663. LDN 2
  5664. STD T1
  5665. BLS3 LDM BLSB,T1 SET FILE NAME = *LABEL*
  5666. STM FNSS,T1
  5667. SOD T1
  5668. PJN BLS3 IF COPY INCOMPLETE
  5669. LDC SYFT*1S6 SET FILE TYPE
  5670. STM FNSS+4
  5671. LDD EQ SET EQUIPMENT ORDINAL
  5672. STM FTSS-1
  5673. LDN PDTL SET DATE AND TIME
  5674. CRM DTSS,ON
  5675. LDN 1
  5676. STM NSSS SET NEXT SECTOR
  5677. STM DTSS SET FLAG
  5678. STM /LSD/LLSS SET LABEL LEVEL
  5679. SFA EST,EQ READ EST ENTRY
  5680. ADK EQDE
  5681. CRD CM
  5682. LDD CM+3 SET EQUIPMENT MNEMONIC
  5683. STM /LSD/E4SS
  5684. LDN MSTL READ MST FROM RECOVERY AREA
  5685. STD T1
  5686. LDD RA
  5687. ADD RT
  5688. SHN 6
  5689. CRM /LSD/N4SS,T1
  5690. LDM /LSD/N4SS+ALGL*5+1 SET LABEL TRACK AND SECTOR
  5691. STD TK
  5692. STM FTSS
  5693. LDN 0
  5694. STD SC
  5695. LJM RET RETURN
  5696.  
  5697.  
  5698. BLSB DATA Z*LABEL*
  5699. BRS SPACE 4,10
  5700. *** BLDSTRT.
  5701. * BUILD NEXT SECTOR OF TRT DATA FOR LABEL TRACK. AFTER LAST
  5702. * SECTOR IS BUILT, THE POINTERS ARE RESET FOR THE FIRST SECTOR
  5703. * AGAIN. TRACK AND SECTOR ARE SET FOR *WRITE* COMMAND.
  5704. *
  5705. * BLDSTRT.N.
  5706. * BUILD SECTOR *N* OF TRT DATA FOR LABEL TRACK. (N .GE. 1)
  5707. *
  5708. * NOTE IT WILL BE NECESSARY TO MANUALLY GENERATE THE EOI
  5709. * SECTOR FOR THE LABEL TRACK.
  5710.  
  5711.  
  5712. BRS COMMAND
  5713. LDD RT
  5714. NJN BRS1 IF TABLES NOT ALLOCATED
  5715. LJM ERR4 *INCORRECT ENTRY.*
  5716.  
  5717. BRS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
  5718. STD RS
  5719. LDN LRRN OVERLAY CONTROL WORD INDEX
  5720. RJM LDO LOAD OVERLAY
  5721. LDN BSPW-RCPW SET POINTER INDEX
  5722. RAM /LRR/RRPA
  5723. STM /LRR/SRPA
  5724. RJM /LRR/RRP RESTORE RECOVERY POINTERS
  5725. LDD FN
  5726. NJN BRS2 IF NOT INITIAL ENTRY
  5727. STD FN+1
  5728. LDD RA GET LABEL TRACK FROM MST
  5729. ADD RT
  5730. SHN 6
  5731. ADN ALGL
  5732. CRD CM
  5733. LDD CM+1
  5734. STD FN
  5735. BRS2 LDI CA CHECK PARAMETER
  5736. ZJN BRS3 IF NO SECTOR SPECIFIED
  5737. SBN 1R1
  5738. MJN BRS4 IF ILLEGAL SECTOR NUMBER
  5739. STD FN+1
  5740. BRS3 AOD FN+1 ADVANCE SECTOR
  5741. SBN 1
  5742. SHN 10 (400B TK/PRU)
  5743. ADC 4000
  5744. STD FN+2 SET STARTING TRACK
  5745. SBD LT
  5746. MJN BRS5 IF LEGAL SECTOR
  5747. BRS4 LJM ERR2 *INCORRECT PARAMETER*
  5748.  
  5749. * CHECK ALL TRACKS FOR ERRORS.
  5750.  
  5751. BRS5 RJM CLE CHECK FOR LINKAGE ERRORS
  5752. RJM BTS BUILD TRT SECTOR
  5753. LDM BFMS+1
  5754. LMC 100
  5755. ZJN BRS8 IF SECTOR FULL, NOT END OF TRT
  5756.  
  5757. * COMPLETE LAST SECTOR OF TRT.
  5758.  
  5759. LDD TK
  5760. LPN 3
  5761. ZJN BRS7 IF LAST WORD FULL
  5762. BRS6 LDC 3777 SET UNUSABLE TRACKS AS FLAWED
  5763. STI T3
  5764. AOD T3
  5765. LDD RC
  5766. SHN 1
  5767. LMN 1
  5768. STD RC
  5769. AOD TK
  5770. LPN 3
  5771. NJN BRS6 IF NOT END OF WORD
  5772. LDD RC SAVE TRACK STATUS BYTE
  5773. STI T3
  5774. AOD T3
  5775. AOM BFMS+1 INCREMENT SECTOR WORD COUNT
  5776. BRS7 LDN 0 CLEAR REMAINDER OF LAST SECTOR
  5777. STI T3
  5778. AOD T3
  5779. ADC -BFMS-2-100*5
  5780. MJN BRS7 IF NOT END OF SECTOR
  5781. LDN 0 RESET POINTER TO START OVER
  5782. STD FN
  5783.  
  5784. * SET POINTERS AND RETURN.
  5785.  
  5786. BRS8 LDD TK SAVE NEXT TRACK
  5787. STD FN+2
  5788. LDD FN SET DESTINATION ADDRESS
  5789. STD TK
  5790. LDD FN+1 SET SECTOR
  5791. STD SC
  5792. LDD RA SAVE POINTERS
  5793. ADD RT
  5794. SHN 6
  5795. ADN BSPW
  5796. CWD FN
  5797. LJM RET RETURN
  5798. BTS SPACE 4,10
  5799. ** BTS - BUILD TRT SECTOR.
  5800. *
  5801. * BUILD A SECTOR OF TRT FROM RECOVERY TABLE.
  5802.  
  5803.  
  5804. BTS SUBR ENTRY/EXIT
  5805. LDD FN+1 SET LINK
  5806. ADN 1
  5807. STM BFMS
  5808. LDN 0
  5809. STD RC
  5810. STM BFMS+1
  5811. LDC BFMS+2
  5812. STD T3
  5813. LDD FN+2
  5814. STD TK
  5815.  
  5816. * BUILD TRT FROM RECOVERY TABLE.
  5817.  
  5818. BTS1 RJM /LRR/STA SET TABLE ADDRESS
  5819. CRD AB READ TRACK RECOVERY WORD
  5820. LDD AB
  5821. LPN 10
  5822. ZJN BTS2 IF NOT FLAWED TRACK
  5823. LDC 3777 SET FLAWED TRACK
  5824. STI T3
  5825. UJN BTS4 SET STATUS
  5826.  
  5827. BTS2 LDD AB+3
  5828. STI T3
  5829. LDD AB
  5830. SCN 77
  5831. ZJN BTS3 IF NOT FIRST TRACK OF FILE
  5832. LDC 401
  5833. UJN BTS5 SET TRACK STATUS
  5834.  
  5835. BTS3 LDD AB+3
  5836. ZJN BTS5 IF TRACK NOT LINKED
  5837. BTS4 LDN 1 SET TRACK STATUS
  5838. BTS5 SHN 21 MERGE STATUS
  5839. LMD RC
  5840. SHN 1
  5841. STD RC
  5842. AOD T3 ADVANCE TRACK POINTERS
  5843. AOD TK
  5844. LPN 3
  5845. NJN BTS6 IF TRT WORD NOT COMPLETE
  5846. LDD RC STORE TRACK STATUS BYTE
  5847. STI T3
  5848. AOD T3
  5849. LDN 0
  5850. STD RC
  5851. AOM BFMS+1 INCREMENT SECTOR WORD COUNT
  5852. LMC 100
  5853. ZJN BTS7 IF SECTOR FULL
  5854. BTS6 LDD TK
  5855. LMD LT
  5856. ZJN BTS7 IF END OF TRT
  5857. LJM BTS1 PROCESS NEXT ENTRY
  5858.  
  5859. BTS7 LJM BTSX RETURN
  5860. CLE SPACE 4,10
  5861. ** CLE - CHECK FOR LINKAGE ERRORS.
  5862. *
  5863. * VERIFY THAT ALL TRACKS RESERVED HAVE UNIQUE LINKAGE.
  5864.  
  5865.  
  5866. CLE SUBR ENTRY/EXIT
  5867. LDC 4000
  5868. STD TK
  5869. CLE1 RJM /LRR/STA SET TABLE ADDRESS
  5870. CRD AB READ TRACK RECOVERY WORD
  5871. LDD AB
  5872. LPN 64
  5873. NJN CLE2 IF ERRORS
  5874. LDD AB+4
  5875. SBN 2
  5876. MJN CLE3 IF LINKAGE UNIQUE
  5877. CLE2 LDC CLEA *ERROR IN TRACK STATUS.*
  5878. LJM ERR OUTPUT MESSAGE
  5879.  
  5880. CLE3 AOD TK
  5881. SBD LT
  5882. MJN CLE1 IF ALL TRACKS NOT CHECKED
  5883. UJN CLEX RETURN - NO ERRORS
  5884.  
  5885.  
  5886. CLEA DATA Z*ERROR IN TRACK STATUS.*
  5887. NAT SPACE 4,10
  5888. *** NEXTAT.
  5889. * LOCATES THE NEXT AVAILABLE TRACK ON THE CURRENT EQUIPMENT,
  5890. * AND READS THE FIRST SECTOR OF THE TRACK. THE SEARCH BEGINS
  5891. * AT THE DISPLAYED TRACK POINTER+1. BY RESETTING THE TRACK
  5892. * POINTER TO TRACK ZERO, AND USING THIS COMMAND, UNRESERVED
  5893. * TRACKS CAN BE FOUND AND CHECKED FOR BEING PART OF THE
  5894. * CATALOG TRACK CHAIN OR INDIRECT FILE CHAIN.
  5895.  
  5896.  
  5897. NAT COMMAND
  5898. LDD RT
  5899. NJN NAT1 IF TABLES ALLOCATED
  5900. LJM ERR4 *INCORRECT ENTRY.*
  5901.  
  5902. NAT1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
  5903. STD RS
  5904. LDN LRRN OVERLAY CONTROL WORD INDEX
  5905. RJM LDO LOAD OVERLAY
  5906. RJM /LRR/RRP RESTORE RECOVERY POINTERS
  5907. UJN NAT3 ENTER LOOP
  5908.  
  5909. NAT2 RJM /LRR/STA SET TABLE ADDRESS
  5910. CRD AB READ TRACK RECOVERY WORD
  5911. LDD AB+1 CHECK FOR LINK
  5912. ZJN NAT4 IF TRACK AVAILABLE
  5913. NAT3 AOD FN
  5914. STD TK
  5915. SBD LT
  5916. MJN NAT2 IF NOT END OF DEVICE
  5917. SOD TK
  5918. LDC NATA *END OF EQUIPMENT.*
  5919. LJM ERR OUTPUT MESSAGE
  5920.  
  5921. NAT4 STD SC
  5922. RJM /LRR/SRP SAVE UPDATED RECOVERY POINTERS
  5923. RJM RSB READ SECTOR TO BUFFER
  5924. LJM RET RETURN
  5925.  
  5926.  
  5927. NATA DATA Z*END OF EQUIPMENT.*
  5928. NSS SPACE 4,10
  5929. *** NEXTSS.
  5930. * LOCATES THE NEXT TRACK IN THE RECOVERY TABLE THAT BEGINS
  5931. * WITH A SYSTEM SECTOR. THE SEARCH BEGINS AT THE DISPLAYED
  5932. * TRACK POINTER+1.
  5933.  
  5934.  
  5935. NSS COMMAND
  5936. LDD RT
  5937. NJN NSS1 IF TABLES ALLOCATED
  5938. LJM ERR4 *INCORRECT ENTRY.*
  5939.  
  5940. NSS1 LDN DFBN SET DEFAULT DISPLAY AND LOAD GUBROUTINES
  5941. STD RS
  5942. LDN LRRN OVERLAY CONTROL WORD INDEX
  5943. RJM LDO LOAD OVERLAY
  5944. RJM /LRR/RRP RESTORE RECOVERY POINTERS
  5945. UJN NSS3 ENTER LOOP
  5946.  
  5947. NSS2 RJM /LRR/STA SET TABLE ADDRESS
  5948. CRD AB READ TRACK RECOVERY WORD
  5949. LDD AB CHECK FOR SYSTEM SECTOR
  5950. SCN 77
  5951. NJN NSS4 IF SYSTEM SECTOR (FIRST TRACK)
  5952. NSS3 AOD FN
  5953. STD TK
  5954. SBD LT
  5955. MJN NSS2 IF NOT END OF DEVICE
  5956. SOD TK
  5957. LDC NSSA *END OF EQUIPMENT.*
  5958. LJM ERR OUTPUT MESSAGE
  5959.  
  5960. NSS4 LDN 0
  5961. STD SC
  5962. RJM /LRR/SRP SAVE UPDATED RECOVERY POINTERS
  5963. RJM RSB READ SECTOR TO BUFFER
  5964. LJM RET RETURN
  5965.  
  5966.  
  5967. NSSA DATA Z*END OF EQUIPMENT.*
  5968. REC SPACE 4,15
  5969. *** RECOVER.
  5970. * RECOVER TRACKS STARTING AT FIRST TRACK OF DEVICE. IF THIS
  5971. * COMMAND IS USED MORE THAN ONCE SINCE A *BEGINR* COMMAND, IT
  5972. * CONTINUES RECOVERY BY FINDING THE NEXT SYSTEM SECTOR TRACK.
  5973. *
  5974. * RECOVER.X. (X = ANY CHARACTER.)
  5975. * CONTINUE RECOVERY BY SCANNING FROM CURRENT POSITION TO EOI.
  5976. *
  5977. * RECOVERY DATA IS ADDED TO THE TABLE BY SEARCHING FOR TRACKS
  5978. * THAT BEGIN WITH A SYSTEM SECTOR, AND FOLLOWING THE LINKAGE
  5979. * TO EOI. ERRORS AND ANOMOLYS ARE FLAGGED. THE INDIRECT CHAIN
  5980. * IS NOT TRACED. THE DISPLAY IS DROPPED UNTIL AN ERROR
  5981. * OCCURS, OR UNTIL THE SEARCH COMPLETES. IT IS THEN
  5982. * REQUESTED AGAIN AS IF A *HOLD* COMMAND HAD BEEN USED.
  5983.  
  5984.  
  5985. REC COMMAND
  5986. LDD RT
  5987. NJN REC1 IF TABLES ALLOCATED.
  5988. LJM ERR4 *INCORRECT COMMAND.*
  5989.  
  5990. REC1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
  5991. STD RS
  5992. LDN LRRN OVERLAY CONTROL WORD INDEX
  5993. RJM LDO LOAD OVERLAY
  5994. RJM /LRR/RRP RESTORE RECOVERY POINTERS
  5995. LDI CA CHECK MODE
  5996. ZJN REC2 IF NO ENTRY SPECIFIED
  5997. RJM DDS DROP DISPLAY
  5998. AOD FN+2 ADVANCE TO NEXT SECTOR
  5999. STD SC
  6000. LJM REC5 CONTINUE FROM NEXT SECTOR.
  6001.  
  6002. REC2 RJM DDS DROP DISPLAY
  6003.  
  6004. * ENTER HERE TO CHECK NEXT TRACK FOR SYSTEM SECTOR.
  6005.  
  6006. REC3 AOD FN SET TRACK AND SECTOR
  6007. STD FN+1
  6008. STD TK
  6009. LMD LT
  6010. NJN REC4 IF NOT END OF EQUIPMENT
  6011. SOD TK
  6012. SOD FN
  6013. LDC RECB *END OF EQUIPMENT.*
  6014. LJM REC14 REPORT ERROR
  6015.  
  6016. REC4 LDN 0
  6017. STD SC
  6018. RJM /LRR/STA SET TABLE ADDRESS
  6019. CRD AB READ TRACK RECOVERY WORD
  6020. LDD AB+1
  6021. NJN REC3 IF TRACK LINKED
  6022. RJM RSB READ SECTOR TO BUFFER
  6023. MJP REC13 IF ERROR
  6024. LDM BFMS CHECK FOR SYSTEM SECTOR
  6025. SHN 6
  6026. ADM BFMS+1
  6027. ZJN REC6 IF EOI AT (SC) = 0
  6028. LMC 377777
  6029. NJN REC3 IF NOT SYSTEM SECTOR
  6030. RJM /LRR/CSS CHECK SYSTEM SECTOR
  6031. ZJN REC7 IF NO CHAIN RECOVERY
  6032.  
  6033. * ENTER HERE TO SCAN FROM CURRENT POSITION TO EOI.
  6034.  
  6035. REC5 RJM /LRR/SRP SAVE RECOVERY POINTERS
  6036. RJM /LRR/WSM WRITE STATUS MESSAGE
  6037. RJM PSS PAUSE FOR SYSTEM
  6038. RJM /LRR/RRP RESTORE RECOVERY POINTERS
  6039. RJM SNS SET NEXT SECTOR
  6040. NJN REC8 IF NOT EOI
  6041.  
  6042. * CHECK EOI SECTOR.
  6043.  
  6044. REC6 RJM /LRR/CEI CHECK EOI
  6045. RJM /LRR/STA SET TABLE ADDRESS
  6046. CWD AB SAVE TRACK RECOVERY WORD
  6047. REC7 LJM REC3 LOOP TO FIND NEXT FILE
  6048.  
  6049. REC8 LDD SC
  6050. ZJN REC10 IF NEW TRACK
  6051. RJM RSB READ SECTOR TO BUFFER
  6052. MJP REC13 IF ERROR
  6053. LDM BFMS CHECK FOR SYSTEM SECTOR IN TRACK
  6054. SHN 6
  6055. ADM BFMS+1
  6056. LMC 377777
  6057. NJP REC5 IF NOT SYSTEM SECTOR
  6058. LDD AB SET SYSTEM-SECTOR-IN-TRACK STATUS
  6059. SCN 20
  6060. LMN 20
  6061. STD AB
  6062. LDC RECC *SYSTEM SECTOR IN TRACK.*
  6063. LJM REC14 PROCESS ERROR
  6064.  
  6065. * ADVANCE TO NEXT TRACK.
  6066.  
  6067. REC10 LDD TK SET FORWARD LINK
  6068. STD AB+3
  6069. LDD FN+1 RESET TRACK
  6070. STD TK
  6071. RJM /LRR/STA SET TABLE ADDRESS
  6072. CWD AB SAVE TRACK RECOVERY WORD
  6073. LDD AB+3 SET NEW TRACK
  6074. STD TK
  6075. RJM /LRR/STA SET TABLE ADDRESS
  6076. CRD AB READ TRACK RECOVERY WORD
  6077. AOD AB+4
  6078. LDD AB+1
  6079. NJN REC12 IF TRACK ALREADY LINKED
  6080. RJM RSB READ SECTOR TO BUFFER
  6081. MJP REC13 IF ERROR
  6082. LDM BFMS CHECK FOR BEGINNING OF ANOTHER FILE
  6083. SHN 6
  6084. ADM BFMS+1
  6085. LMC 377777
  6086. ZJN REC12 IF SYSTEM SECTOR
  6087. LDD FN SET REVERSE LINKS
  6088. STD AB+1
  6089. LDD FN+1
  6090. STD AB+2
  6091. LDD TK
  6092. STD FN+1
  6093. LJM REC5 LOOP
  6094.  
  6095. * TRACK TO BE LINKED IS ALREADY IN USE.
  6096.  
  6097. REC12 LDC RECD *NEXT TRACK IN USE.*
  6098. UJN REC14 PROCESS ERROR
  6099.  
  6100. * PROCESS READ ERROR IN TRACK.
  6101.  
  6102. REC13 LDD AB SET ERROR STATUS
  6103. SCN 40
  6104. LMN 40
  6105. STD AB
  6106. LDN 0
  6107.  
  6108. * TERMINATE PROCESSING.
  6109.  
  6110. REC14 STD T3 SAVE MESSAGE ADDRESS
  6111. LDD SC SAVE CURRENT SECTOR
  6112. STD FN+2
  6113. RJM /LRR/SRP SAVE RECOVERY POINTERS
  6114. RJM /LRR/RDM RESUME DISPLAY MODE
  6115. LDD T3
  6116. LJM ERR REPORT ERROR
  6117.  
  6118.  
  6119. RECB DATA Z*END OF EQUIPMENT.*
  6120. RECC DATA Z*SYSTEM SECTOR IN TRACK.*
  6121. RECD DATA Z*NEXT TRACK IN USE.*
  6122. SRW SPACE 4,10
  6123. *** SETRW.B.NNNN.
  6124. * CHANGE BYTE *B* OF CURRENT TRACK RECOVERY WORD TO *NNNN*.
  6125.  
  6126.  
  6127. SRW COMMAND
  6128. LDD RT
  6129. NJN SRW1 IF TABLES ALLOCATED
  6130. LJM ERR4 *INCORRECT ENTRY.*
  6131.  
  6132. SRW1 LDN DFBN SET DEFAULT DISPLAY AND LOAD SUBROUTINES
  6133. STD RS
  6134. LDN LRRN OVERLAY CONTROL WORD INDEX
  6135. RJM LDO LOAD OVERLAY
  6136. RJM /LRR/STA SET TABLE ADDRESS
  6137. CRD CM READ TRACK RECOVERY WORD
  6138. RJM ASD GET BYTE NUMBER
  6139. LDD AB+4
  6140. STD RC
  6141. SBN 5
  6142. PJN SRW2 IF OUT OF RANGE
  6143. AOD CA ADVANCE CHARACTER ADDRESS
  6144. RJM ASD ASSEMBLE NEW VALUE
  6145. LDD AB+4
  6146. STM CM,RC
  6147. RJM /LRR/STA SET TABLE ADDRESS
  6148. CWD CM SAVE TRACK RECOVERY WORD
  6149. LJM RET RETURN
  6150.  
  6151. SRW2 LJM ERR2 *INCORRECT PARAMETER.*
  6152. STP SPACE 4,10
  6153. *** SETTP.NNNN.
  6154. * SETS RECOVERY TRACK POINTER FOR *RECOVER.*, *NEXTAT.*,
  6155. * *NEXTSS.*, AND *SETRW.* COMMANDS TO *NNNN*.
  6156.  
  6157.  
  6158. STP COMMAND
  6159. LDD RT
  6160. NJN STP1 IF TABLES ALLOCATED
  6161. LJM ERR4 *INCORRECT ENTRY.*
  6162.  
  6163. STP1 ADD RA READ POINTER WORD
  6164. SHN 6
  6165. ADN RCPW
  6166. CRD CM
  6167. RJM ASD ASSEMBLE VALUE
  6168. LDD AB+4
  6169. LPC 3777
  6170. LMC 4000
  6171. STD CM
  6172. STD TK
  6173. LDD RA SAVE UPDATED POINTER WORD
  6174. ADD RT
  6175. SHN 6
  6176. ADN RCPW
  6177. CWD CM
  6178. LDN 0
  6179. STD SC
  6180. RJM RSB READ SECTOR TO BUFFER
  6181. LJM RET RETURN
  6182. SPACE 4,10
  6183. COMMAND TERMINATE COMMANDS
  6184. LRR SPACE 4,10
  6185. ** LRR - LABEL/TRT RECONSTRUCTION SUBROUTINES.
  6186. *
  6187. * THE FOLLOWING ROUTINES ARE SAVED IN CENTRAL TO BE LOADED
  6188. * AT THE END OF THE RIGHT SCREEN PROCESSOR AREA AS NEEDED.
  6189.  
  6190.  
  6191. LRR ACROVL ACRLA
  6192. CEI SPACE 4,15
  6193. ** CEI - CHECK EOI SECTOR.
  6194. *
  6195. * ENTRY (AB - AB+4) = TRACK RECOVERY WORD.
  6196. * (FN - FN+4) = RECOVERY POINTERS.
  6197. *
  6198. * EXIT (A) = 0 IF INDIRECT CHAIN.
  6199. * RECOVERY POINTERS UPDATED.
  6200. *
  6201. * USES T1, CM - CM+4.
  6202. *
  6203. * CALLS STA.
  6204.  
  6205.  
  6206. CEI SUBR ENTRY/EXIT
  6207. LDD SC
  6208. STD AB+3
  6209. AOD AB SET EOI STATUS
  6210. LDD SC
  6211. LMN LS
  6212. ZJN CEIX IF AT END OF TRACK
  6213. AOD SC
  6214. RJM RSB READ SECTOR TO BUFFER
  6215. ZJN CEI1 IF NO READ ERROR
  6216. RJM SRP SAVE RECOVERY POINTERS
  6217. RJM /LRR/RDM RESUME DISPLAY MODE
  6218. LJM RET RETURN
  6219.  
  6220. CEI1 LDN 2
  6221. STD T1
  6222. SOD SC
  6223. LDM BFMS
  6224. ADM BFMS+1
  6225. NJN CEI3 IF NOT ANOTHER EOI SECTOR
  6226. CEI2 LDM BFMS+FNEI,T1 CHECK FOR FILENAME *IMS*
  6227. LMM CEIB,T1
  6228. NJN CEI3 IF NOT CATALOG/PERMIT/DATA TRACK
  6229. SOD T1
  6230. PJN CEI2 IF CHECK NOT COMPLETE
  6231. AOD AB SET IMS EOI STATUS
  6232. CEI3 LDN 0 FORCE EOI STATUS FOR *SNS*
  6233. STM BFMS
  6234. STM BFMS+1
  6235. LJM CEIX RETURN
  6236.  
  6237.  
  6238. CEIB DATA Z*IMS*
  6239. CSS SPACE 4,15
  6240. ** CSS - CHECK SYSTEM SECTOR.
  6241. *
  6242. * ENTRY (AB - AB+4) = TRACK RECOVERY WORD.
  6243. * (FN - FN+4) = RECOVERY POINTERS.
  6244. *
  6245. * EXIT (A) = 0 IF INDIRECT CHAIN.
  6246. * RECOVERY POINTERS UPDATED.
  6247. *
  6248. * USES T1, CM - CM+4.
  6249. *
  6250. * CALLS STA, ERR.
  6251.  
  6252.  
  6253. CSS SUBR ENTRY/EXIT
  6254. LDD RA READ MST RECOVERY AREA
  6255. ADD RT
  6256. SHN 6
  6257. ADN ALGL
  6258. CRD CM
  6259. ADN SSDW-ALGL SAVE FNT/FST/DATE/TIME
  6260. CWM FNSS,TR
  6261. LDD FN SET LINKAGE
  6262. STD AB+1
  6263. STD AB+2
  6264. LDM FNSS+4 SET FILE TYPE
  6265. SHN -6
  6266. STD T1
  6267. SHN 6
  6268. RAD AB
  6269. LDD T1
  6270. LMN SYFT
  6271. NJN CSSX IF NOT SPECIAL FILE
  6272. LDN 2
  6273. STD T1
  6274. CSS1 LDM FNSS,T1 CHECK FOR FILENAME *LABEL*
  6275. LMM CSSA,T1
  6276. NJN CSS2 IF NOT LABEL SECTOR
  6277. SOD T1
  6278. PJN CSS1 IF CHECK NOT COMPLETE
  6279. LDN 1 ALGL BYTE POINTER
  6280. UJN CSS6 SAVE TRACK
  6281.  
  6282. CSS2 LDN 2
  6283. STD T1
  6284. CSS3 LDM FNSS,T1 CHECK FOR FILENAME *DATA*
  6285. LMM CSSB,T1
  6286. NJN CSS4 IF NOT INDIRECT CHAIN
  6287. SOD T1
  6288. PJN CSS3 IF CHECK NOT COMPLETE
  6289. LDN 0 ALGL BYTE POINTER
  6290. UJN CSS6 SAVE TRACK
  6291.  
  6292. CSS4 LDN 2
  6293. STD T1
  6294. LDM FNSS+3
  6295. LMM CSSC+3
  6296. SCN 77
  6297. NJN CSS7 IF NOT PERMIT CHAIN
  6298. CSS5 LDM FNSS,T1 CHECK FOR FILENAME *PERMIT*
  6299. LMM CSSC,T1
  6300. NJN CSS7 IF NOT PERMIT CHAIN
  6301. SOD T1
  6302. PJN CSS5 IF CHECK NOT COMPLETE
  6303. LDN 2 ALGL BYTE POINTER
  6304.  
  6305. * SAVE TRACK IN PROPER *ALGL* BYTE.
  6306.  
  6307. CSS6 STD T1
  6308. LDD TK SAVE TRACK POINTER
  6309. STM CM,T1
  6310. LDD RA
  6311. ADD RT
  6312. SHN 6
  6313. ADN ALGL
  6314. CWD CM
  6315. RJM SRP SAVE RECOVERY POINTERS
  6316. LDD T1
  6317. ZJN CSS7 IF INDIRECTS
  6318. LMN 1
  6319. NJN CSS7 IF NOT LABEL
  6320. RJM RDM RESUME DISPLAY MODE
  6321. LDC CSSA *LABEL*
  6322. LJM ERR OUTPUT MESSAGE
  6323.  
  6324. CSS7 LJM CSSX EXIT
  6325.  
  6326.  
  6327. CSSA DATA Z*LABEL*
  6328. CSSB DATA Z*DATA*
  6329. CSSC DATA Z*PERMIT*
  6330. RDM SPACE 4,10
  6331. ** RDM - RESUME DISPLAY.
  6332. *
  6333. * RESETS PARAMETERS AND REQUESTS DISPLAY.
  6334. *
  6335. * USES T3.
  6336. *
  6337. * CALLS CSB, RDC, MDC.
  6338.  
  6339.  
  6340. RDM SUBR ENTRY/EXIT
  6341. LDD MA SAVE DISK DATA
  6342. CWD T3
  6343. RJM RDC REQUEST DISPLAY CHANNEL
  6344. RJM CSB CLEAR SCREEN BUFFER
  6345. LDD MA RESTORE DISK DATA
  6346. CRD T3
  6347. UJN RDMX RETURN
  6348. RRP SPACE 4,10
  6349. ** RRP - RESTORE RECOVERY POINTERS.
  6350. *
  6351. * ENTRY (TK) = CURRENT TRACK.
  6352. *
  6353. * EXIT (AB - AB+4) = TRACK RECOVERY WORD.
  6354. * (FN - FN+4) = RECOVERY POINTERS.
  6355.  
  6356.  
  6357. RRP SUBR ENTRY/EXIT
  6358. LDD RA
  6359. ADD RT
  6360. SHN 6
  6361. RRPA ADN RCPW
  6362. * ADN ICPW IF INDIRECT CHAIN RECOVERY
  6363. * ADN BSPW IF GENERATION OF TRT (BLDSTRT.)
  6364. CRD FN
  6365. RJM STA SET TABLE ADDRESS
  6366. CRD AB READ TRACK RECOVERY WORD
  6367. UJN RRPX RETURN
  6368. SRP SPACE 4,10
  6369. ** SRP - SAVE RECOVERY POINTERS.
  6370. *
  6371. * ENTRY (TK) = CURRENT TRACK.
  6372. * (AB - AB+4) = TRACK RECOVERY WORD.
  6373. * (FN - FN+4) = RECOVERY POINTERS.
  6374. *
  6375. * EXIT WORDS STORED IN CM RECOVERY AREA.
  6376.  
  6377.  
  6378. SRP SUBR ENTRY/EXIT
  6379. RJM STA SET TABLE ADDRESS
  6380. CWD AB SAVE TRACK RECOVERY WORD
  6381. LDD RA SAVE RECOVERY PARAMETERS
  6382. ADD RT
  6383. SHN 6
  6384. SRPA ADN RCPW
  6385. * ADN ICPW IF INDIRECT CHAIN RECOVERY
  6386. * ADN BSPW IF GENERATION OF TRT (BLDSTRT.)
  6387. CWD FN
  6388. UJN SRPX RETURN
  6389. STA SPACE 4,10
  6390. ** STA - SET TABLE ADDRESS.
  6391. *
  6392. * EXIT (A) = CM ADDRESS FOR CURRENT TRACK RECOVERY WORD.
  6393.  
  6394.  
  6395. STA SUBR ENTRY/EXIT
  6396. LDD RA
  6397. ADD RT
  6398. SHN 6
  6399. ADD TK
  6400. ADC TRCT-4000
  6401. UJN STAX RETURN
  6402. WSM SPACE 4,10
  6403. ** WSM - WRITE STATUS MESSAGE.
  6404. *
  6405. * WRITES MESSAGE TO MS1W FOR RECOVERY STATUS.
  6406.  
  6407.  
  6408. WSM SUBR ENTRY/EXIT
  6409. LDD EQ SET EST IN MESSAGE
  6410. SHN -6
  6411. ADC 2RQ0
  6412. STM WSMA+5
  6413. LDD EQ
  6414. RJM C2D CONVERT TO DISPLAY
  6415. STM WSMA+6
  6416. LDD FN SET TRACK POINTER IN MESSAGE
  6417. SHN -6
  6418. RJM C2D CONVERT TO DISPLAY
  6419. STM WSMA+11
  6420. LDD FN
  6421. RJM C2D CONVERT TO DISPLAY
  6422. STM WSMA+12
  6423. LDD FN+1 SET CURRENT TRACK IN MESSAGE
  6424. SHN -6
  6425. RJM C2D CONVERT TO DISPLAY
  6426. STM WSMA+15
  6427. LDD FN+1
  6428. RJM C2D CONVERT TO DISPLAY
  6429. STM WSMA+16
  6430. LDN ZERL
  6431. CRD CM
  6432. LDD CP WRITE MESSAGE TO MS1W
  6433. ADN MS1W
  6434. CWM WSMA,TR
  6435. CWD CM SET EOL
  6436. LJM WSMX RETURN
  6437.  
  6438.  
  6439. WSMA DATA 30H READING EQXXX TP=XXXX CT=XXXX
  6440. SPACE 4,10
  6441. ACROVL END OF OVERLAY
  6442. ERRNG MACRL-/PRESET/LRRL *LRR* OVERFLOWS DISPLAY OVL AREA
  6443. SPACE 4,10
  6444. OVERFLOW /PRESET/OVL
  6445. QUAL *
  6446. SPACE 4,10
  6447. QUAL
  6448. .L EQU .N LAST OVERLAY LETTER
  6449. MCMDL EQU /PRESET/.MCMDL MAXIMUM COMMAND PROCESSOR LENGTH
  6450. TCMTL EQU /PRESET/.CMTL TOTAL CM REQUIRED FOR RESIDENT OVLS
  6451. SPACE 4,10
  6452. ERRNG EPFW-CPLA-MCMDL*5 COMMAND(S) OVERFLOW ERROR PROCESSOR
  6453. DDF TTL DDF - DISPLAY DISK FILE.
  6454. END