User Tools

Site Tools


cdc:nos2.source:opl871:smp

Table of Contents

SMP

Table Of Contents

  • [00008] SMP - SAMPLE CPU P-REGISTER.
  • [00010] SAMPLE CPU P-REGISTER.
  • [00130] MAIN PROGRAM.
  • [00132] MAIN PROGRAM.
  • [00148] DPP - DROP PP.
  • [00162] MNP - MONITOR P.
  • [00230] SUBROUTINES.
  • [00232] ABT - ABORT JOB.
  • [00251] ISB - INITIALIZE SAMPLE BUFFER.
  • [00295] PSE - PAUSE TO MAKE SAMPLE TIME CONSTANT.
  • [00327] WAC - WAIT FOR ACTIVITY TO COMPLETE.
  • [00368] WPS - WRITE P-SAMPLES.
  • [00471] PRS - PRESET PROGRAM.
  • [00731] CRP - CHECK FOR RATE PARAMETER.
  • [00807] NCH - GET THE NEXT CHARACTER.

Source Code

SMP.txt
  1. IDENT SMP,SMP
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. SYSCOM
  6. *COMMENT SMP - SAMPLE CPU P-REGISTER.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE SMP - SAMPLE CPU P-REGISTER.
  9. SPACE 4
  10. *** SMP - SAMPLE CPU P-REGISTER.
  11. * G. R. MANSFIELD. 71/06/05.
  12. SPACE 4
  13. *** SMP SAMPLES THE CPU P-REGISTER OVER THE RANGE
  14. * REQUESTED BY THE USER AND WRITES THE SAMPLE DATA ON A
  15. * FILE FOR FURTHER PROCESSING. THE SAMPLES ARE TAKEN AT
  16. * A USER SELECTABLE INTERVAL OF BETWEEN 1 AND 50 MILLISECONDS.
  17. * THE RANGE IS PARTITIONED INTO 128 EQUAL INTERVALS.
  18. SPACE 4
  19. *** THE COMMAND.
  20. *
  21. *
  22. * SMP(FWA,LWA)/RATE
  23. *
  24. *
  25. * CPU PROGRAM CALL.
  26. *
  27. *
  28. * FORM 1
  29. *T IR 18/ *SMP*,1/1,5/,18/ FWA,18/LWA
  30. *
  31. * FWA FIRST WORD ADDRESS OF SAMPLE RANGE.
  32. * LWA LAST WORD ADDRESS OF SAMPLE RANGE.
  33. *
  34. * FORM 2
  35. *T IR 18/ *SMP*,1/ ,5/,1/1,17/,18/ PARAM
  36. *
  37. * PARAM PARAMETER ADDRESS.
  38. *
  39. *
  40. *T PARAM 12/RATE,12/,18/ FWA,18/ LWA
  41. *
  42. * RATE SAMPLE RATE (1-50 MILLISECONDS.)
  43. * FWA FIRST WORD ADDRESS OF SAMPLE RANGE
  44. * LWA LAST WORD ADDRESS OF SAMPLE RANGE.
  45. SPACE 4
  46. *** THE SAMPLE DATA IS PLACED ON THE FILE *PSAMPL* IN
  47. * THE FOLLOWING FORMAT.
  48. *
  49. *
  50. * FIRST 8 WORDS = COMMAND.
  51. *
  52. *T 60/ DATE
  53. *T 60/ TIME
  54. *T 60/ REAL TIME CLOCK AT START
  55. *T 60/ REAL TIME CLOCK AT FINISH
  56. *T 60/ CPU TIME AT START
  57. *T 60/ CPU TIME AT FINISH
  58. *T 60/ FWA
  59. *T 60/ LWA
  60. *T 60/ CPU NOT ACTIVE ON JOB COUNT
  61. *T 60/ CPU IN RECALL COUNT
  62. *T 60/ CPU ACTIVE AND BELOW SAMPLE RANGE
  63. *T 60/ CPU ACTIVE AND ABOVE SAMPLE RANGE
  64. *T 60/ CPU ACTIVE AT SUB-CP
  65. *
  66. * NEXT 128 WORDS.
  67. *
  68. *T 60/ COUNTS FOR P-REGISTER IN THIS RANGE
  69. SPACE 4
  70. *** DAYFILE MESSAGES.
  71. *
  72. *
  73. * * SAMPLE FWA .GE. LWA.* = RANGE PARAMETERS OUT OF ORDER.
  74. *
  75. * * INCORRECT SMP REQUEST.* = SMP NOT CALLED FROM CPU WITH
  76. * AUTO RECALL.
  77. *
  78. * * FL TOO SHORT FOR SAMPLES.* = NOT ENOUGH MEMORY FOR SAMPLE
  79. * DATA.
  80. *
  81. * * USER ACCESS NOT VALID.* = NOT CALLED FROM SYOT JOB OR
  82. * SYSTEM PRIVILEDGES + DEBUG.
  83. *
  84. * * INCORRECT SAMPLE RATE.* = SAMPLE RATE SPECIFIED WAS NOT
  85. * WITHIN THE RANGE OF 1 TO 50 MILLISECONDS.
  86. *
  87. * * PARAMETER ADDRESS ERROR.* = PARAMETER ADDRESS IS NOT
  88. * WITHIN THE USER-S FL.
  89. *
  90. * * ERROR IN RATE PARAMETER.* = THE RATE ENTERED ON THE
  91. * *SMP* COMMAND WAS INCORRECT.
  92. *
  93. * * SMP - ABORTED DUE TO ROLLOUT REQUEST.* = THE ROLLOUT
  94. * REQUEST FLAG IS SET IN THE JOB-S CONTROL POINT
  95. * AREA. THIS MAY HAPPEN AS A RESULT OF TERMINAL I/O
  96. * OR *DIS* DROPPING WHILE *SMP* IS RUNNING.
  97. SPACE 4
  98. *** OPERATOR MESSAGES.
  99. *
  100. *
  101. * NONE.
  102. SPACE 4
  103. ** ROUTINES USED.
  104. *
  105. *
  106. * NONE.
  107. SPACE 4
  108. ** PROGRAMS CALLED.
  109. *
  110. *
  111. * 1AJ - ADVANCE JOB STATUS.
  112. SPACE 4
  113. *CALL COMPMAC
  114. *CALL COMSCPS
  115. *CALL COMSPIM
  116. SPACE 4
  117. **** DIRECT LOCATION ASSIGNMENTS.
  118.  
  119.  
  120. CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
  121. RT EQU 26 SAMPLE RATE
  122. RC EQU 27 REAL TIME CLOCK
  123.  
  124.  
  125. * ASSEMBLY CONSTANTS.
  126.  
  127.  
  128. FET EQU 2 FET ADDRESS IN CM AREA
  129. ****
  130. TITLE MAIN PROGRAM.
  131. SMP SPACE 4
  132. ** SMP - MAIN PROGRAM.
  133.  
  134.  
  135. ORG PPFW
  136. SMP RJM PRS PRESET PROGRAM
  137. RJM ISB INITIALIZE SAMPLE BUFFER
  138. MONITOR RCPM REQUEST CPU
  139. RJM MNP MONITOR P
  140. LDC RTCL READ FINISH TIME
  141. CRM RTF,ON
  142. LDD CP READ CPU TIME
  143. ADN CPTW
  144. CRM CTF,ON
  145. RJM WAC WAIT FOR ACTIVITY TO COMPLETE
  146. RJM WPS WRITE P-SAMPLES
  147. DPP SPACE 4
  148. ** DPP - DROP PP.
  149.  
  150.  
  151. DPP LDC *
  152. DPPA EQU *-1 (*DIS* FLAG FROM CPA)
  153. NJN DPP1 IF *DIS* FLAG NOT CHANGED
  154. LDN 10 SET MASK FOR *JCIW*
  155. STD CM+4
  156. LDN CCTS CLEAR *DIS* FLAG IN CPA
  157. STD CM+1
  158. MONITOR SJCM
  159. DPP1 MONITOR DPPM DROP PP
  160. LJM PPR EXIT TO PP RESIDENT
  161. MNP SPACE 4
  162. ** MNP - MONITOR P.
  163.  
  164.  
  165. MNP SUBR ENTRY/EXIT
  166. MONITOR RCLM ENSURE RCPM COMPLETE
  167. MNP1 PAUSE
  168. LDD CM+1
  169. NJN MNPX RETURN IF ERROR FLAG SET
  170. LDD CM CHECK CPU STATUS
  171. LPC 7000
  172. ZJN MNPX RETURN IF NO CPU ACTIVITY
  173. SHN 21-13
  174. PJN MNP2 IF CPU ACTIVE
  175. SHN 6
  176. LMN 5
  177. NJN MNP3 IF CPU NOT IN RECALL
  178.  
  179. * COUNT RECALL SAMPLES.
  180.  
  181. LDC RCL ADVANCE RECALL COUNT
  182. LJM MNP7 INCREMENT COUNTER
  183.  
  184. MNP2 LDN ZERL READ CURRENT P ADDRESS
  185. CRD CM
  186. MONITOR RPNM
  187. LDD CP COMPARE CONTROL POINT NUMBERS
  188. LMD CM+2
  189. NJN MNP3 IF NOT EXECUTING AT THIS CONTROL POINT
  190. LDD CM+1
  191. SHN 21-10
  192. PJN MNP4 IF SUBCONTROL POINT NOT ACTIVE
  193. LDC ASC CPU ACTIVE AT SUBCONTROL POINT
  194. UJN MNP7 INCREMENT COUNTER
  195.  
  196. MNP3 LDC IAC ADVANCE INACTIVE COUNT
  197. UJN MNP7 INCREMENT COUNTER
  198.  
  199. MNP4 LDD CM+3 ASSEMBLE P ADDRESS
  200. SHN 14
  201. LMD CM+4
  202. MNPA ADC * CHECK LOWER RANGE
  203. PJN MNP5 IF ABOVE FWA
  204. LDC BLR ADVANCE BELOW RANGE COUNT
  205. UJN MNP7 INCREMENT COUNTER
  206.  
  207. MNP5 BSS 0
  208. MNPB SHN -0 SET INTERVAL
  209. STD T2
  210. SHN -7
  211. ZJN MNP6 IF BELOW LWA
  212. LDC ABR ADVANCE ABOVE RANGE COUNT
  213. UJN MNP7 INCREMENT COUNTER
  214.  
  215. MNP6 LDD T2 SET WORD INDEX
  216. SHN 2
  217. ADD T2
  218. ADC PSM
  219.  
  220. * INCREMENT 36-BIT COUNTER.
  221.  
  222. MNP7 STD T1
  223. AOM 4,T1
  224. SHN -14
  225. RAM 3,T1
  226. SHN -14
  227. RAM 2,T1
  228. RJM PSE PAUSE TO MAKE SAMPLE TIME CONSTANT
  229. LJM MNP1 LOOP FOR NEXT SAMPLE
  230. TITLE SUBROUTINES.
  231. ABT SPACE 4
  232. ** ABT - ABORT JOB.
  233. *
  234. * ENTRY (A) = ADDRESS OF MESSAGE.
  235. *
  236. * EXIT NONE.
  237.  
  238.  
  239. ABT RJM DFM ISSUE MESSAGE
  240. LDC *
  241. ABTA EQU *-1 (*DIS* FLAG FROM CPA)
  242. NJN ABT1 IF *DIS* FLAG NOT CHANGED
  243. LDN 10 SET MASK FOR *JCIW*
  244. STD CM+4
  245. LDN CCTS CLEAR *DIS* FLAG IN CPA
  246. STD CM+1
  247. MONITOR SJCM
  248. ABT1 MONITOR ABTM ABORT JOB
  249. LJM PPR EXIT TO PP RESIDENT
  250. ISB SPACE 4
  251. ** ISB - INITIALIZE SAMPLE BUFFER.
  252. *
  253. * ENTRY NONE.
  254. *
  255. * EXIT NONE.
  256. *
  257. * USES T1, T2.
  258. *
  259. * CALLS NONE.
  260.  
  261.  
  262. ISB SUBR ENTRY/EXIT
  263. LDC CCD-5 SET COMMAND ADDRESS
  264. STD T1
  265. LDN MS1W
  266. STD T2
  267. ISB1 LDN 5 ADVANCE READ ADDRESS
  268. RAD T1 SET READ ADDRESS
  269. STM ISBA+1
  270. LDD CP READ COMMAND WORD
  271. ADD T2
  272. ISBA CRM *,ON
  273. LDM 4,T1 CHECK WORD
  274. ZJN ISB2 IF END OF COMMAND
  275. AOD T2
  276. LMN MS1W+10
  277. NJN ISB1 LOOP TO END OF MESSAGE
  278. ISB2 LDN DTEL READ DATE
  279. CRM DTE,ON
  280. LDN TIML READ TIME
  281. CRM TIM,ON
  282. LDC 128D*5 CLEAR SAMPLE BUFFER
  283. STD T1
  284. ISB3 LDN 0
  285. STM PSM-1,T1
  286. SOD T1
  287. NJN ISB3
  288. LDC RTCL READ START TIME
  289. CRM RTS,ON
  290. LDD CP
  291. ADN CPTW
  292. CRM CTS,ON
  293. LJM ISBX RETURN
  294. PSE SPACE 4,10
  295. ** PSE - PAUSE TO MAKE SAMPLE TIME CONSTANT.
  296. *
  297. * ENTRY (RC) - PREVIOUS REAL TIME CLOCK VALUE.
  298. * (RT) - SAMPLE RATE (MILLISECONDS).
  299. *
  300. * EXIT (RC) - REAL TIME CLOCK UPON EXIT.
  301. *
  302. * USES T1, CM - CM+4.
  303.  
  304.  
  305. PSE4 LDD CM+4
  306. STD RC SAVE NEW REAL TIME CLOCK SETTING
  307.  
  308. PSE SUBR ENTRY/EXIT
  309.  
  310. PSE1 LDC RTCL READ REAL TIME CLOCK
  311. CRD CM
  312. LDD CM+4
  313. SBD RC
  314. PJN PSE2 IF NO OVERFLOW
  315. ADC 10000
  316. PSE2 SBD RT
  317. PJN PSE4 IF DELAY COMPLETED
  318. LMC -0
  319. STD T1
  320. PSE3 LDC 300D
  321. SBN 1
  322. NJN *-1
  323. SOD T1
  324. NJN PSE3 IF DELAY NOT COMPLETE
  325. UJN PSE1 CHECK PAUSE COMPLETE
  326. WAC SPACE 4,10
  327. ** WAC - WAIT FOR ACTIVITY TO COMPLETE.
  328. *
  329. * EXIT NO PP-S IN RECALL.
  330. * NO PP-S ASSIGNED EXCEPT *SMP* AND POSSIBLY ONE *DIS*
  331. * TYPE PP (DETERMINED BY *DIS* FLAG).
  332. *
  333. * ERROR TO *ABT* IF ROLLOUT REQUESTED.
  334. * TO *DPP* IF OVERRIDE ERROR FLAG SET.
  335. *
  336. * USES T1, CM - CM+4.
  337.  
  338.  
  339. WAC SUBR ENTRY/EXIT
  340. LDM DPPA
  341. ZJN WAC0 IF NOT *DIS* JOB ORIGINALLY
  342. LDN 1 DISCOUNT *DIS* ACTIVE PP
  343. WAC0 STD T1
  344. WAC1 PAUSE
  345. LDD CM+2 CHECK FOR ROLLOUT REQUEST
  346. LPN 1
  347. NJN WAC2 IF ROLLOUT REQUESTED
  348. LDD CM+1 CHECK FOR OVERRIDE
  349. LMN ORET
  350. ZJN WAC3 IF OVERRIDE
  351. LDD CM+4 CHECK FOR PP OR TAPE ACTIVITY
  352. SHN -4
  353. NJN WAC1 IF PP RECALL OR TAPE ACTIVITY
  354. LDD CM
  355. LPN 77
  356. SBN 2 DISCOUNT *SMP*
  357. SBD T1 DISCOUNT *DIS* IF *DIS* JOB ORIGINALLY
  358. PJN WAC1 IF PP ACTIVITY REMAINS
  359. UJN WACX RETURN
  360.  
  361. WAC2 LDC WACA
  362. LJM ABT ABORT JOB AND DROP PP
  363.  
  364. WAC3 LJM DPP DROP PP
  365.  
  366. WACA DATA C* SMP - ABORTED DUE TO ROLLOUT REQUEST.*
  367. WPS SPACE 4
  368. ** WPS - WRITE P-SAMPLES.
  369.  
  370.  
  371. WPS SUBR ENTRY/EXIT
  372. LDD FL CHECK FIELD LENGTH
  373. SHN 6
  374. ADC -FET-BUFL
  375. PJN WPS1 IF ROOM FOR SAMPLE DATA
  376. LDC =C* FL TOO SHORT FOR SAMPLES.*
  377. RJM DFM
  378. LJM DPP DROP PP
  379.  
  380. WPS1 LDC BUFL SET WORD COUNT
  381. STD T1
  382. LDD RA
  383. SHN 6
  384. ADN FET
  385. CRM TBUF,T1 SAVE CP FL
  386. ADC -BUFL
  387. CWM BUF,T1
  388. EXECUTE CIO,= CALL *CIO*
  389. WPS2 LDD MA SET *RPPM* PARAMETERS
  390. CWM WPSA,ON
  391. LDN ZERL
  392. CRD CM
  393. LDD MA CLEAR MB+1
  394. ADN 1
  395. CWD CM
  396. MONITOR RPPM
  397. LDD CM+1
  398. NJN WPS4 IF PP ASSIGNED
  399. PAUSE
  400. LDD CM+1
  401. ZJN WPS2 IF ERROR FLAG CLEAR
  402. LMN ORET
  403. NJN WPS2 IF NOT OVERRIDE
  404. WPS3 LJM DPP DROP PP
  405.  
  406. WPS4 PAUSE
  407. LDD CM+1
  408. ZJN WPS5 IF NO ERROR
  409. LMN ORET
  410. ZJN WPS3 IF OVERRIDE
  411. WPS5 LDD RA
  412. SHN 6
  413. ADN FET+1
  414. CRD CM
  415. LDD CM+4
  416. SHN 21-0
  417. PJN WPS4 IF NOT COMPLETE
  418. LDD RA
  419. SHN 6
  420. ADN FET
  421. CWM TBUF,T1
  422. UJN WPS3 DROP PP
  423.  
  424. WPSA VFD 18/0LCIO,6/0,18/0,18/FET+1
  425. SPACE 4,10
  426. * COMMON DECKS.
  427.  
  428.  
  429. IFP$ EQU 1 ASSEMBLE REMOTE INITIALIZATION CODE
  430. EJT$ EQU 1 INITIALIZE EJT PROCESSING
  431. *CALL COMPGFP
  432. SPACE 4
  433. ** SAMPLE BUFFERS.
  434.  
  435.  
  436. USE BUFFERS
  437. BUF VFD 60/
  438.  
  439. * FET FOR *PSAMPL* FILE.
  440.  
  441. VFD 42/0LPSAMPL,18/26
  442. VFD 60/FET+6
  443. VFD 60/FET+BUFL
  444. VFD 60/FET+6
  445. VFD 60/FET+BUFL+1
  446.  
  447. CCD BSS 8D*5 COMMAND
  448. DTE VFD 60/ DATE
  449. TIM VFD 60/ TIME
  450. RTS VFD 60/ REAL TIME CLOCK AT START
  451. RTF VFD 60/ REAL TIME CLOCK AT FINISH
  452. CTS VFD 60/ CPU TIME AT START
  453. CTF VFD 60/ CPU TIME AT FINISH
  454. FWA VFD 60/ FWA
  455. LWA VFD 60/ LWA
  456. IAC VFD 60/ CPU NOT ACTIVE ON JOB COUNT
  457. RCL VFD 60/ CPU IN RECALL COUNT
  458. BLR VFD 60/ CPU ACTIVE AND BELOW SAMPLE RANGE
  459. ABR VFD 60/ CPU ACTIVE AND ABOVE SAMPLE RANGE
  460. ASC VFD 60/ CPU ACTIVE AT SUB-CP
  461.  
  462. PSM BSS 0 COUNTS FOR P-REGISTER IN THIS RANGE
  463.  
  464. .1 SET *-BUF+128D*5
  465. BUFL EQU .1/5
  466.  
  467. TBUF EQU BUF+BUFL*5 FWA OF TEMPORARY FL SAVE BUFFER
  468.  
  469. ERRNG 7777B-TBUF-BUFL*5 NOT ENOUGH BUFFER SPACE
  470. PRS TITLE PRESET.
  471. ** PRS - PRESET PROGRAM.
  472.  
  473.  
  474. PRS SUBR ENTRY/EXIT
  475. RJM IFP INITIALIZE FNT PROCESSOR
  476. LDD CP DETERMINE IF *DIS* FLAG SET
  477. ADN JCIW
  478. CRD CM
  479. LDD CM+3
  480. SHN -6
  481. LPN 10
  482. STM DPPA
  483. STM ABTA
  484. NJN PRS1 IF *DIS* FLAG SET
  485. LDN ZERL SET *DIS* FLAG
  486. CRD CM
  487. LDN 2
  488. STD CM+1
  489. LDD CP
  490. STD CM+4
  491. LDD MA
  492. CWM PRSD,CM+1
  493. MONITOR UTEM
  494. LDD CM+1
  495. ZJN PRS1 IF FLAG IS SET
  496. LDD MA RECALL *SMP*
  497. CWD IR
  498. LDN ZERL
  499. CRD CM
  500. MONITOR RECM
  501. LJM PPR EXIT
  502.  
  503. * CHECK RANGE PARAMETERS.
  504.  
  505. PRS1 RJM CUA CHECK USER ACCESS
  506. ZJN PRS2 IF VALID ACCESS
  507. LDC =C* USER ACCESS NOT VALID.*
  508. LJM ABT ABORT CALLING PROGRAM
  509.  
  510. PRS2 LDD IA COPY INPUT REGISTER TO CM
  511. CRD CM
  512. LDN 10D SET SAMPLE RATE TO 10 MS
  513. STD CM
  514. LDD CM+2
  515. SHN 21-13
  516. PJN PRS5 IF REQUEST IS OF FORM 1
  517. LDD IR+3 GET THE PARAMETER ADDRESS
  518. LPN 77
  519. STD IR+3
  520. SHN 14
  521. LMD IR+4
  522. MJN PRS3 IF NEGATIVE ADDRESS
  523. SHN -6
  524. SBD FL
  525. MJN PRS4 IF WITHIN FL OF CALLER
  526. PRS3 LDC =C* PARAMETER ADDRESS ERROR.*
  527. LJM ABT ABORT SMP
  528.  
  529. PRS4 LDD IR+3 READ PARAMETER OF FORM 2 REQUEST
  530. SHN 6
  531. ADD RA
  532. SHN 6
  533. ADD IR+4
  534. CRD CM
  535. PRS5 LDD CM+3 SET FWA
  536. SCN 77
  537. SHN 6
  538. LMD CM+2
  539. SHN 6
  540. STD T2
  541. STM FWA+4
  542. STM LWA+4
  543. SHN -14
  544. STD T1
  545. STM FWA+3
  546. STM LWA+3
  547. LDD CM+3 SET LWA
  548. LPN 77
  549. STD IR+3
  550. SBD T1 CHECK LWA-FWA
  551. SHN 14
  552. ADD CM+4
  553. SBD T2
  554. SBN 1
  555. PJN PRS6 IF LWA .GE. FWA
  556. LDC =C* SAMPLE FWA .GE. LWA.*
  557. LJM ABT
  558.  
  559. PRS6 SHN -7 SET RANGE .GE. 12B
  560. STD T4
  561. LDN 1
  562. STD T3
  563. PRS7 LDD T4 SET RANGE TO NEXT HIGHER POWER OF 2
  564. ZJN PRS8 IF ZERO
  565. SHN -1
  566. STD T4
  567. SOM MNPB
  568. LDD T3
  569. SHN 1
  570. STD T3
  571. UJN PRS7 LOOP
  572.  
  573. PRS8 LDC ADCI+77 SET LOWER LIMIT
  574. LMD T1
  575. STM MNPA
  576. LCN 0
  577. LMD T2
  578. STM MNPA+1
  579. LDD T3 SET UPPER LIMIT IN SAMPLE FILE
  580. SHN 7
  581. RAM LWA+4
  582. SHN -14
  583. RAM LWA+3
  584. LDD CM+4
  585. STD IR+4
  586. LDD CM SAVE SAMPLE RATE
  587. STD RT
  588.  
  589. * CHECK CALL TYPE.
  590.  
  591. PAUSE
  592. LDD CM CHECK CPU STATUS
  593. SHN -11
  594. ZJN PRS12 IF CPU NOT ACTIVE
  595. RJM CRS CHECK RECALL STATUS
  596. NJN PRS10 IF AUTO RECALL REQUEST
  597. LDC =C* INCORRECT SMP REQUEST.*
  598. LJM ABT
  599.  
  600. PRS9 LDC =C* INCORRECT SAMPLE RATE.*
  601. LJM ABT ABORT
  602.  
  603. PRS10 LDN 0
  604. STD CM+1
  605. MONITOR DCPM DROP CPU
  606. PRS11 LDN ZERL CLEAR SYSTEM REQUEST (RA+1)
  607. CRD CM
  608. LDD RA
  609. SHN 6
  610. ADN 1
  611. CWD CM
  612. LDD RT CHECK RATE RANGE
  613. SBN 1
  614. MJN PRS9 IF LESS THAN 1
  615. SBN 50D
  616. PJN PRS9 IF GREATER THAN 50
  617. LJM PRSX RETURN
  618.  
  619. PRS12 RJM CRP CHECK FOR RATE PARAMETER
  620. LDD RT
  621. SBN 1
  622. MJN PRS9 IF RATE .LT. 1
  623. SBN 50D
  624. PJN PRS9 IF RATE .GT. 50D
  625.  
  626. * CALL NEXT COMMAND.
  627.  
  628. LDD CP ENTER CONTROL POINT IN *1AJ* REQUEST
  629. SHN -7
  630. RAM PRSA+1
  631. PRS13 LDD FL ENSURE SOME CM ASSIGNED TO JOB
  632. NJN PRS14 IF JOB HAS CM ASSIGNED
  633. STD CM+2 SET CM REQUEST
  634. LDN 1 REQUEST 100B WORDS CM
  635. STD CM+1
  636. MONITOR RSTM
  637. PAUSE
  638. LDD CM+1
  639. ZJN PRS13 IF ERROR FLAG CLEAR
  640. LJM DPP
  641.  
  642. PRS14 LDN ZERL CLEAR (RA+PGNR)
  643. CRD CM
  644. LDD RA
  645. SHN 6
  646. ADN PGNR
  647. CWD CM
  648. LDD MA
  649. CWM PRSB,ON
  650. LDN ZERL
  651. CRD CM
  652. LDN 40+1 INTERLOCK EJT AND SET JOB ADVANCE
  653. STD CM+1
  654. LDD CP SET JOB EJTO
  655. ADN TFSW
  656. CRD T1
  657. LDD T1
  658. STM PRSC
  659. SFA EJT
  660. STD CM+4 INTERLOCK EJT ENTRY
  661. SHN -14
  662. STD CM+3
  663. MONITOR UTEM UPDATE CONTROL POINT AREA
  664. LDD CM+1
  665. ZJN PRS15 IF OPERATION COMPLETED
  666. PAUSE
  667. LDD CM+1
  668. ZJP PRS14 IF ERROR FLAG NOT SET
  669. LJM DPP EXIT
  670.  
  671. EXECUTE 1AJ,= CALL *1AJ*
  672. PRS15 LDD MA REQUEST PP
  673. CWM PRSA,ON
  674. LDN 1 SET PRIORITY PP REQUEST
  675. STD CM+1
  676. MONITOR RPPM
  677. LDD CM+1 SET PP ASSIGNMENT
  678. STD T1
  679. NJP PRS16 IF PP ASSIGNED
  680. PAUSE
  681. LDD CM+1
  682. ZJN PRS15 IF ERROR FLAG CLEAR LOOP
  683. LDN 0 CLEAR JOB ADVANCE FLAG
  684. STM PRSB+4
  685. LDD MA
  686. CWM PRSB,ON
  687. LDN ZERL
  688. CRD CM
  689. LDN 40+1 INTERLOCK EJT AND CLEAR JOB ADVANCE
  690. STD CM+1
  691. LDC *
  692. PRSC EQU *-1 (EJTO)
  693. SFA EJT
  694. STD CM+4 INTERLOCK EJT ENTRY
  695. SHN -14
  696. STD CM+3
  697. MONITOR UTEM UPDATE CONTROL POINT AREA
  698. LJM DPP DROP PP
  699.  
  700. PRS16 LDD T1 READ INPUT REGISTER
  701. CRD CM
  702. LDD CM+1
  703. LPN 37
  704. SHN 7
  705. LMD CP
  706. NJN PRS18 IF *1AJ* FINISHED
  707. PAUSE
  708. LDD CM+1
  709. ZJN PRS16 IF ERROR FLAG CLEAR LOOP
  710. PRS17 LJM DPP DROP PP
  711.  
  712. PRS18 LDD RA READ (RA+PGNR)
  713. SHN 6
  714. ADN PGNR
  715. CRD CM
  716. LDD CM
  717. ZJN PRS17 IF CPU PROGRAM NOT LOADED
  718. PRS19 PAUSE WAIT FOR LOADER TO COMPLETE
  719. LDD CM+1
  720. NJN PRS17 IF ERROR FLAG SET
  721. LDD CM
  722. SHN -11
  723. NJN PRS19 IF LOADER STILL RUNNING
  724. LJM PRS11 CLEAR SYSTEM REQUEST
  725.  
  726. PRSA VFD 18/0L1AJ,6/0,12/2,12/0,12/1
  727. PRSB VFD 12/1,12/600,36/1 JOB ADVANCE FLAG
  728. PRSD VFD 1/1,5/STSW,6/1,6/24D,42/0
  729. VFD 6/JCIW,6/1,6/21D,42/1
  730. CRP SPACE 4,10
  731. ** CRP - CHECK FOR RATE PARAMETER.
  732. *
  733. * CHECKS THE *SMP* COMMAND FOR THE RATE PARAMETER.
  734. *
  735. * EXIT (RT) = SAMPLE RATE.
  736. * TO *ABT* IF ERROR ENCOUNTERED.
  737. *
  738. * USES RT, T1, T2, T3, T4, T5, T6, CBUF - CBUF+35.
  739. *
  740. * CALLS NCH.
  741.  
  742.  
  743. CRP SUBR ENTRY/EXIT
  744. LDD CP READ CURRENT COMMAND
  745. ADN MS1W
  746. CRM CBUF,TR
  747. CRM CBUF+17,TR
  748. LDN 0
  749. STD T1
  750. STD T2
  751. LDN 10D DEFAULT RATE IS 10 DECIMAL
  752. STD RT
  753. CRP1 RJM NCH SKIP TO COMMAND TERMINATOR
  754. ZJN CRPX IF END OF COMMAND
  755. LMN 1R.
  756. ZJN CRP2 IF TERMINATOR FOUND
  757. LMN 1R)&1R.
  758. NJN CRP1 IF TERMINATOR NOT YET FOUND
  759. CRP2 RJM NCH GET NEXT CHARACTER
  760. LMN 1R/ CHECK FOR SLASH
  761. NJN CRPX IF NO SLASH
  762. STD RT DECODE THE SAMPLE RATE
  763. STD T4 CLEAR OCTAL ASSEMBLY WORD
  764. STD T5 CLEAR DECIMAL DIGIT FLAG
  765. CRP3 RJM NCH GET NEXT CHARACTER
  766. ZJN CRPX IF END OF COMMAND
  767. SBN 1R0
  768. MJN CRP5 IF A LETTER
  769. STD T6
  770. SBN 10D
  771. PJN CRP5 IF NOT A DECIMAL DIGIT
  772. ADN 10D-10B
  773. MJN CRP4 IF AN OCTAL DIGIT
  774. AOD T5 SET DECIMAL DIGIT FLAG
  775. CRP4 LDD RT ADD TO DECIMAL ASSEMBLY
  776. SHN 2
  777. RAD RT
  778. SHN 1
  779. ADD T6
  780. STD RT
  781. LDD T4 ADD TO OCTAL ASSEMBLY
  782. SHN 3
  783. ADD T6
  784. STD T4
  785. UJN CRP3 GET NEXT DIGIT
  786.  
  787. CRP5 LDD T3 CHECK FOR VALID SUFFIX
  788. LMN 1R
  789. ZJN CRP6 IF SPACE
  790. LMN 1RD&1R
  791. ZJN CRP6 IF DECIMAL SUFFIX
  792. LMN 1RB&1RD
  793. NJN CRP7 IF AN INCORRECT CHARACTER
  794. LDD T5
  795. NJN CRP7 IF DECIMAL DIGIT IN OCTAL NUMBER
  796. LDD T4 USE THE OCTAL VERSION
  797. STD RT
  798. CRP6 RJM NCH GET NEXT CHARACTER
  799. ZJN CRP8 IF END OF THE COMMAND
  800. LMN 1R
  801. ZJN CRP6 IF SPACE
  802. CRP7 LDC =C* ERROR IN RATE PARAMETER.*
  803. LJM ABT ABORT
  804.  
  805. CRP8 LJM CRPX RETURN
  806. NCH SPACE 4,15
  807. ** NCH - GET THE NEXT CHARACTER.
  808. *
  809. * ENTRY (T1) = NEXT BYTE.
  810. * (T2) = NEXT CHARACTER WITHIN BYTE.
  811. *
  812. * EXIT (A) = NEXT CHARACTER FROM STRING.
  813. * (T3) = NEXT CHARACTER FROM STRING.
  814. * (T1) = NEXT BYTE IN STRING.
  815. * (T2) = POSITION OF CHARACTER WITHIN BYTE.
  816. *
  817. * USES T1, T2, T3.
  818.  
  819.  
  820. NCH1 SHN -6 EXTRACT DESIRED CHARACTER
  821. LPN 77
  822. STD T3
  823. LDD T2 POSITION TO NEXT CHARACTER
  824. LMN 1
  825. STD T2
  826. NJN NCH2 IF ADVANCED TO NEXT BYTE
  827. AOD T1
  828. NCH2 LDD T3
  829.  
  830. NCH SUBR ENTRY/EXIT
  831. LDM CBUF,T1 LOAD BYTE CONTAINING NEXT CHARACTER
  832. LJM NCH1,T2 EXTRACT CHARACTER
  833. SPACE 4,10
  834. CBUF BSS 0 COMMAND
  835. SPACE 4
  836. ** COMMON DECKS.
  837.  
  838.  
  839. *CALL COMPCUA
  840. *CALL COMPCRS
  841. SPACE 4,10
  842. IFP HERE
  843. SPACE 4
  844. END
cdc/nos2.source/opl871/smp.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator