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
- IDENT SMP,SMP
- PERIPH
- BASE MIXED
- SST
- SYSCOM
- *COMMENT SMP - SAMPLE CPU P-REGISTER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TITLE SMP - SAMPLE CPU P-REGISTER.
- SPACE 4
- *** SMP - SAMPLE CPU P-REGISTER.
- * G. R. MANSFIELD. 71/06/05.
- SPACE 4
- *** SMP SAMPLES THE CPU P-REGISTER OVER THE RANGE
- * REQUESTED BY THE USER AND WRITES THE SAMPLE DATA ON A
- * FILE FOR FURTHER PROCESSING. THE SAMPLES ARE TAKEN AT
- * A USER SELECTABLE INTERVAL OF BETWEEN 1 AND 50 MILLISECONDS.
- * THE RANGE IS PARTITIONED INTO 128 EQUAL INTERVALS.
- SPACE 4
- *** THE COMMAND.
- *
- *
- * SMP(FWA,LWA)/RATE
- *
- *
- * CPU PROGRAM CALL.
- *
- *
- * FORM 1
- *T IR 18/ *SMP*,1/1,5/,18/ FWA,18/LWA
- *
- * FWA FIRST WORD ADDRESS OF SAMPLE RANGE.
- * LWA LAST WORD ADDRESS OF SAMPLE RANGE.
- *
- * FORM 2
- *T IR 18/ *SMP*,1/ ,5/,1/1,17/,18/ PARAM
- *
- * PARAM PARAMETER ADDRESS.
- *
- *
- *T PARAM 12/RATE,12/,18/ FWA,18/ LWA
- *
- * RATE SAMPLE RATE (1-50 MILLISECONDS.)
- * FWA FIRST WORD ADDRESS OF SAMPLE RANGE
- * LWA LAST WORD ADDRESS OF SAMPLE RANGE.
- SPACE 4
- *** THE SAMPLE DATA IS PLACED ON THE FILE *PSAMPL* IN
- * THE FOLLOWING FORMAT.
- *
- *
- * FIRST 8 WORDS = COMMAND.
- *
- *T 60/ DATE
- *T 60/ TIME
- *T 60/ REAL TIME CLOCK AT START
- *T 60/ REAL TIME CLOCK AT FINISH
- *T 60/ CPU TIME AT START
- *T 60/ CPU TIME AT FINISH
- *T 60/ FWA
- *T 60/ LWA
- *T 60/ CPU NOT ACTIVE ON JOB COUNT
- *T 60/ CPU IN RECALL COUNT
- *T 60/ CPU ACTIVE AND BELOW SAMPLE RANGE
- *T 60/ CPU ACTIVE AND ABOVE SAMPLE RANGE
- *T 60/ CPU ACTIVE AT SUB-CP
- *
- * NEXT 128 WORDS.
- *
- *T 60/ COUNTS FOR P-REGISTER IN THIS RANGE
- SPACE 4
- *** DAYFILE MESSAGES.
- *
- *
- * * SAMPLE FWA .GE. LWA.* = RANGE PARAMETERS OUT OF ORDER.
- *
- * * INCORRECT SMP REQUEST.* = SMP NOT CALLED FROM CPU WITH
- * AUTO RECALL.
- *
- * * FL TOO SHORT FOR SAMPLES.* = NOT ENOUGH MEMORY FOR SAMPLE
- * DATA.
- *
- * * USER ACCESS NOT VALID.* = NOT CALLED FROM SYOT JOB OR
- * SYSTEM PRIVILEDGES + DEBUG.
- *
- * * INCORRECT SAMPLE RATE.* = SAMPLE RATE SPECIFIED WAS NOT
- * WITHIN THE RANGE OF 1 TO 50 MILLISECONDS.
- *
- * * PARAMETER ADDRESS ERROR.* = PARAMETER ADDRESS IS NOT
- * WITHIN THE USER-S FL.
- *
- * * ERROR IN RATE PARAMETER.* = THE RATE ENTERED ON THE
- * *SMP* COMMAND WAS INCORRECT.
- *
- * * SMP - ABORTED DUE TO ROLLOUT REQUEST.* = THE ROLLOUT
- * REQUEST FLAG IS SET IN THE JOB-S CONTROL POINT
- * AREA. THIS MAY HAPPEN AS A RESULT OF TERMINAL I/O
- * OR *DIS* DROPPING WHILE *SMP* IS RUNNING.
- SPACE 4
- *** OPERATOR MESSAGES.
- *
- *
- * NONE.
- SPACE 4
- ** ROUTINES USED.
- *
- *
- * NONE.
- SPACE 4
- ** PROGRAMS CALLED.
- *
- *
- * 1AJ - ADVANCE JOB STATUS.
- SPACE 4
- *CALL COMPMAC
- *CALL COMSCPS
- *CALL COMSPIM
- SPACE 4
- **** DIRECT LOCATION ASSIGNMENTS.
- CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
- RT EQU 26 SAMPLE RATE
- RC EQU 27 REAL TIME CLOCK
- * ASSEMBLY CONSTANTS.
- FET EQU 2 FET ADDRESS IN CM AREA
- ****
- TITLE MAIN PROGRAM.
- SMP SPACE 4
- ** SMP - MAIN PROGRAM.
- ORG PPFW
- SMP RJM PRS PRESET PROGRAM
- RJM ISB INITIALIZE SAMPLE BUFFER
- MONITOR RCPM REQUEST CPU
- RJM MNP MONITOR P
- LDC RTCL READ FINISH TIME
- CRM RTF,ON
- LDD CP READ CPU TIME
- ADN CPTW
- CRM CTF,ON
- RJM WAC WAIT FOR ACTIVITY TO COMPLETE
- RJM WPS WRITE P-SAMPLES
- DPP SPACE 4
- ** DPP - DROP PP.
- DPP LDC *
- DPPA EQU *-1 (*DIS* FLAG FROM CPA)
- NJN DPP1 IF *DIS* FLAG NOT CHANGED
- LDN 10 SET MASK FOR *JCIW*
- STD CM+4
- LDN CCTS CLEAR *DIS* FLAG IN CPA
- STD CM+1
- MONITOR SJCM
- DPP1 MONITOR DPPM DROP PP
- LJM PPR EXIT TO PP RESIDENT
- MNP SPACE 4
- ** MNP - MONITOR P.
- MNP SUBR ENTRY/EXIT
- MONITOR RCLM ENSURE RCPM COMPLETE
- MNP1 PAUSE
- LDD CM+1
- NJN MNPX RETURN IF ERROR FLAG SET
- LDD CM CHECK CPU STATUS
- LPC 7000
- ZJN MNPX RETURN IF NO CPU ACTIVITY
- SHN 21-13
- PJN MNP2 IF CPU ACTIVE
- SHN 6
- LMN 5
- NJN MNP3 IF CPU NOT IN RECALL
- * COUNT RECALL SAMPLES.
- LDC RCL ADVANCE RECALL COUNT
- LJM MNP7 INCREMENT COUNTER
- MNP2 LDN ZERL READ CURRENT P ADDRESS
- CRD CM
- MONITOR RPNM
- LDD CP COMPARE CONTROL POINT NUMBERS
- LMD CM+2
- NJN MNP3 IF NOT EXECUTING AT THIS CONTROL POINT
- LDD CM+1
- SHN 21-10
- PJN MNP4 IF SUBCONTROL POINT NOT ACTIVE
- LDC ASC CPU ACTIVE AT SUBCONTROL POINT
- UJN MNP7 INCREMENT COUNTER
- MNP3 LDC IAC ADVANCE INACTIVE COUNT
- UJN MNP7 INCREMENT COUNTER
- MNP4 LDD CM+3 ASSEMBLE P ADDRESS
- SHN 14
- LMD CM+4
- MNPA ADC * CHECK LOWER RANGE
- PJN MNP5 IF ABOVE FWA
- LDC BLR ADVANCE BELOW RANGE COUNT
- UJN MNP7 INCREMENT COUNTER
- MNP5 BSS 0
- MNPB SHN -0 SET INTERVAL
- STD T2
- SHN -7
- ZJN MNP6 IF BELOW LWA
- LDC ABR ADVANCE ABOVE RANGE COUNT
- UJN MNP7 INCREMENT COUNTER
- MNP6 LDD T2 SET WORD INDEX
- SHN 2
- ADD T2
- ADC PSM
- * INCREMENT 36-BIT COUNTER.
- MNP7 STD T1
- AOM 4,T1
- SHN -14
- RAM 3,T1
- SHN -14
- RAM 2,T1
- RJM PSE PAUSE TO MAKE SAMPLE TIME CONSTANT
- LJM MNP1 LOOP FOR NEXT SAMPLE
- TITLE SUBROUTINES.
- ABT SPACE 4
- ** ABT - ABORT JOB.
- *
- * ENTRY (A) = ADDRESS OF MESSAGE.
- *
- * EXIT NONE.
- ABT RJM DFM ISSUE MESSAGE
- LDC *
- ABTA EQU *-1 (*DIS* FLAG FROM CPA)
- NJN ABT1 IF *DIS* FLAG NOT CHANGED
- LDN 10 SET MASK FOR *JCIW*
- STD CM+4
- LDN CCTS CLEAR *DIS* FLAG IN CPA
- STD CM+1
- MONITOR SJCM
- ABT1 MONITOR ABTM ABORT JOB
- LJM PPR EXIT TO PP RESIDENT
- ISB SPACE 4
- ** ISB - INITIALIZE SAMPLE BUFFER.
- *
- * ENTRY NONE.
- *
- * EXIT NONE.
- *
- * USES T1, T2.
- *
- * CALLS NONE.
- ISB SUBR ENTRY/EXIT
- LDC CCD-5 SET COMMAND ADDRESS
- STD T1
- LDN MS1W
- STD T2
- ISB1 LDN 5 ADVANCE READ ADDRESS
- RAD T1 SET READ ADDRESS
- STM ISBA+1
- LDD CP READ COMMAND WORD
- ADD T2
- ISBA CRM *,ON
- LDM 4,T1 CHECK WORD
- ZJN ISB2 IF END OF COMMAND
- AOD T2
- LMN MS1W+10
- NJN ISB1 LOOP TO END OF MESSAGE
- ISB2 LDN DTEL READ DATE
- CRM DTE,ON
- LDN TIML READ TIME
- CRM TIM,ON
- LDC 128D*5 CLEAR SAMPLE BUFFER
- STD T1
- ISB3 LDN 0
- STM PSM-1,T1
- SOD T1
- NJN ISB3
- LDC RTCL READ START TIME
- CRM RTS,ON
- LDD CP
- ADN CPTW
- CRM CTS,ON
- LJM ISBX RETURN
- PSE SPACE 4,10
- ** PSE - PAUSE TO MAKE SAMPLE TIME CONSTANT.
- *
- * ENTRY (RC) - PREVIOUS REAL TIME CLOCK VALUE.
- * (RT) - SAMPLE RATE (MILLISECONDS).
- *
- * EXIT (RC) - REAL TIME CLOCK UPON EXIT.
- *
- * USES T1, CM - CM+4.
- PSE4 LDD CM+4
- STD RC SAVE NEW REAL TIME CLOCK SETTING
- PSE SUBR ENTRY/EXIT
- PSE1 LDC RTCL READ REAL TIME CLOCK
- CRD CM
- LDD CM+4
- SBD RC
- PJN PSE2 IF NO OVERFLOW
- ADC 10000
- PSE2 SBD RT
- PJN PSE4 IF DELAY COMPLETED
- LMC -0
- STD T1
- PSE3 LDC 300D
- SBN 1
- NJN *-1
- SOD T1
- NJN PSE3 IF DELAY NOT COMPLETE
- UJN PSE1 CHECK PAUSE COMPLETE
- WAC SPACE 4,10
- ** WAC - WAIT FOR ACTIVITY TO COMPLETE.
- *
- * EXIT NO PP-S IN RECALL.
- * NO PP-S ASSIGNED EXCEPT *SMP* AND POSSIBLY ONE *DIS*
- * TYPE PP (DETERMINED BY *DIS* FLAG).
- *
- * ERROR TO *ABT* IF ROLLOUT REQUESTED.
- * TO *DPP* IF OVERRIDE ERROR FLAG SET.
- *
- * USES T1, CM - CM+4.
- WAC SUBR ENTRY/EXIT
- LDM DPPA
- ZJN WAC0 IF NOT *DIS* JOB ORIGINALLY
- LDN 1 DISCOUNT *DIS* ACTIVE PP
- WAC0 STD T1
- WAC1 PAUSE
- LDD CM+2 CHECK FOR ROLLOUT REQUEST
- LPN 1
- NJN WAC2 IF ROLLOUT REQUESTED
- LDD CM+1 CHECK FOR OVERRIDE
- LMN ORET
- ZJN WAC3 IF OVERRIDE
- LDD CM+4 CHECK FOR PP OR TAPE ACTIVITY
- SHN -4
- NJN WAC1 IF PP RECALL OR TAPE ACTIVITY
- LDD CM
- LPN 77
- SBN 2 DISCOUNT *SMP*
- SBD T1 DISCOUNT *DIS* IF *DIS* JOB ORIGINALLY
- PJN WAC1 IF PP ACTIVITY REMAINS
- UJN WACX RETURN
- WAC2 LDC WACA
- LJM ABT ABORT JOB AND DROP PP
- WAC3 LJM DPP DROP PP
- WACA DATA C* SMP - ABORTED DUE TO ROLLOUT REQUEST.*
- WPS SPACE 4
- ** WPS - WRITE P-SAMPLES.
- WPS SUBR ENTRY/EXIT
- LDD FL CHECK FIELD LENGTH
- SHN 6
- ADC -FET-BUFL
- PJN WPS1 IF ROOM FOR SAMPLE DATA
- LDC =C* FL TOO SHORT FOR SAMPLES.*
- RJM DFM
- LJM DPP DROP PP
- WPS1 LDC BUFL SET WORD COUNT
- STD T1
- LDD RA
- SHN 6
- ADN FET
- CRM TBUF,T1 SAVE CP FL
- ADC -BUFL
- CWM BUF,T1
- EXECUTE CIO,= CALL *CIO*
- WPS2 LDD MA SET *RPPM* PARAMETERS
- CWM WPSA,ON
- LDN ZERL
- CRD CM
- LDD MA CLEAR MB+1
- ADN 1
- CWD CM
- MONITOR RPPM
- LDD CM+1
- NJN WPS4 IF PP ASSIGNED
- PAUSE
- LDD CM+1
- ZJN WPS2 IF ERROR FLAG CLEAR
- LMN ORET
- NJN WPS2 IF NOT OVERRIDE
- WPS3 LJM DPP DROP PP
- WPS4 PAUSE
- LDD CM+1
- ZJN WPS5 IF NO ERROR
- LMN ORET
- ZJN WPS3 IF OVERRIDE
- WPS5 LDD RA
- SHN 6
- ADN FET+1
- CRD CM
- LDD CM+4
- SHN 21-0
- PJN WPS4 IF NOT COMPLETE
- LDD RA
- SHN 6
- ADN FET
- CWM TBUF,T1
- UJN WPS3 DROP PP
- WPSA VFD 18/0LCIO,6/0,18/0,18/FET+1
- SPACE 4,10
- * COMMON DECKS.
- IFP$ EQU 1 ASSEMBLE REMOTE INITIALIZATION CODE
- EJT$ EQU 1 INITIALIZE EJT PROCESSING
- *CALL COMPGFP
- SPACE 4
- ** SAMPLE BUFFERS.
- USE BUFFERS
- BUF VFD 60/
- * FET FOR *PSAMPL* FILE.
- VFD 42/0LPSAMPL,18/26
- VFD 60/FET+6
- VFD 60/FET+BUFL
- VFD 60/FET+6
- VFD 60/FET+BUFL+1
- CCD BSS 8D*5 COMMAND
- DTE VFD 60/ DATE
- TIM VFD 60/ TIME
- RTS VFD 60/ REAL TIME CLOCK AT START
- RTF VFD 60/ REAL TIME CLOCK AT FINISH
- CTS VFD 60/ CPU TIME AT START
- CTF VFD 60/ CPU TIME AT FINISH
- FWA VFD 60/ FWA
- LWA VFD 60/ LWA
- IAC VFD 60/ CPU NOT ACTIVE ON JOB COUNT
- RCL VFD 60/ CPU IN RECALL COUNT
- BLR VFD 60/ CPU ACTIVE AND BELOW SAMPLE RANGE
- ABR VFD 60/ CPU ACTIVE AND ABOVE SAMPLE RANGE
- ASC VFD 60/ CPU ACTIVE AT SUB-CP
- PSM BSS 0 COUNTS FOR P-REGISTER IN THIS RANGE
- .1 SET *-BUF+128D*5
- BUFL EQU .1/5
- TBUF EQU BUF+BUFL*5 FWA OF TEMPORARY FL SAVE BUFFER
- ERRNG 7777B-TBUF-BUFL*5 NOT ENOUGH BUFFER SPACE
- PRS TITLE PRESET.
- ** PRS - PRESET PROGRAM.
- PRS SUBR ENTRY/EXIT
- RJM IFP INITIALIZE FNT PROCESSOR
- LDD CP DETERMINE IF *DIS* FLAG SET
- ADN JCIW
- CRD CM
- LDD CM+3
- SHN -6
- LPN 10
- STM DPPA
- STM ABTA
- NJN PRS1 IF *DIS* FLAG SET
- LDN ZERL SET *DIS* FLAG
- CRD CM
- LDN 2
- STD CM+1
- LDD CP
- STD CM+4
- LDD MA
- CWM PRSD,CM+1
- MONITOR UTEM
- LDD CM+1
- ZJN PRS1 IF FLAG IS SET
- LDD MA RECALL *SMP*
- CWD IR
- LDN ZERL
- CRD CM
- MONITOR RECM
- LJM PPR EXIT
- * CHECK RANGE PARAMETERS.
- PRS1 RJM CUA CHECK USER ACCESS
- ZJN PRS2 IF VALID ACCESS
- LDC =C* USER ACCESS NOT VALID.*
- LJM ABT ABORT CALLING PROGRAM
- PRS2 LDD IA COPY INPUT REGISTER TO CM
- CRD CM
- LDN 10D SET SAMPLE RATE TO 10 MS
- STD CM
- LDD CM+2
- SHN 21-13
- PJN PRS5 IF REQUEST IS OF FORM 1
- LDD IR+3 GET THE PARAMETER ADDRESS
- LPN 77
- STD IR+3
- SHN 14
- LMD IR+4
- MJN PRS3 IF NEGATIVE ADDRESS
- SHN -6
- SBD FL
- MJN PRS4 IF WITHIN FL OF CALLER
- PRS3 LDC =C* PARAMETER ADDRESS ERROR.*
- LJM ABT ABORT SMP
- PRS4 LDD IR+3 READ PARAMETER OF FORM 2 REQUEST
- SHN 6
- ADD RA
- SHN 6
- ADD IR+4
- CRD CM
- PRS5 LDD CM+3 SET FWA
- SCN 77
- SHN 6
- LMD CM+2
- SHN 6
- STD T2
- STM FWA+4
- STM LWA+4
- SHN -14
- STD T1
- STM FWA+3
- STM LWA+3
- LDD CM+3 SET LWA
- LPN 77
- STD IR+3
- SBD T1 CHECK LWA-FWA
- SHN 14
- ADD CM+4
- SBD T2
- SBN 1
- PJN PRS6 IF LWA .GE. FWA
- LDC =C* SAMPLE FWA .GE. LWA.*
- LJM ABT
- PRS6 SHN -7 SET RANGE .GE. 12B
- STD T4
- LDN 1
- STD T3
- PRS7 LDD T4 SET RANGE TO NEXT HIGHER POWER OF 2
- ZJN PRS8 IF ZERO
- SHN -1
- STD T4
- SOM MNPB
- LDD T3
- SHN 1
- STD T3
- UJN PRS7 LOOP
- PRS8 LDC ADCI+77 SET LOWER LIMIT
- LMD T1
- STM MNPA
- LCN 0
- LMD T2
- STM MNPA+1
- LDD T3 SET UPPER LIMIT IN SAMPLE FILE
- SHN 7
- RAM LWA+4
- SHN -14
- RAM LWA+3
- LDD CM+4
- STD IR+4
- LDD CM SAVE SAMPLE RATE
- STD RT
- * CHECK CALL TYPE.
- PAUSE
- LDD CM CHECK CPU STATUS
- SHN -11
- ZJN PRS12 IF CPU NOT ACTIVE
- RJM CRS CHECK RECALL STATUS
- NJN PRS10 IF AUTO RECALL REQUEST
- LDC =C* INCORRECT SMP REQUEST.*
- LJM ABT
- PRS9 LDC =C* INCORRECT SAMPLE RATE.*
- LJM ABT ABORT
- PRS10 LDN 0
- STD CM+1
- MONITOR DCPM DROP CPU
- PRS11 LDN ZERL CLEAR SYSTEM REQUEST (RA+1)
- CRD CM
- LDD RA
- SHN 6
- ADN 1
- CWD CM
- LDD RT CHECK RATE RANGE
- SBN 1
- MJN PRS9 IF LESS THAN 1
- SBN 50D
- PJN PRS9 IF GREATER THAN 50
- LJM PRSX RETURN
- PRS12 RJM CRP CHECK FOR RATE PARAMETER
- LDD RT
- SBN 1
- MJN PRS9 IF RATE .LT. 1
- SBN 50D
- PJN PRS9 IF RATE .GT. 50D
- * CALL NEXT COMMAND.
- LDD CP ENTER CONTROL POINT IN *1AJ* REQUEST
- SHN -7
- RAM PRSA+1
- PRS13 LDD FL ENSURE SOME CM ASSIGNED TO JOB
- NJN PRS14 IF JOB HAS CM ASSIGNED
- STD CM+2 SET CM REQUEST
- LDN 1 REQUEST 100B WORDS CM
- STD CM+1
- MONITOR RSTM
- PAUSE
- LDD CM+1
- ZJN PRS13 IF ERROR FLAG CLEAR
- LJM DPP
- PRS14 LDN ZERL CLEAR (RA+PGNR)
- CRD CM
- LDD RA
- SHN 6
- ADN PGNR
- CWD CM
- LDD MA
- CWM PRSB,ON
- LDN ZERL
- CRD CM
- LDN 40+1 INTERLOCK EJT AND SET JOB ADVANCE
- STD CM+1
- LDD CP SET JOB EJTO
- ADN TFSW
- CRD T1
- LDD T1
- STM PRSC
- SFA EJT
- STD CM+4 INTERLOCK EJT ENTRY
- SHN -14
- STD CM+3
- MONITOR UTEM UPDATE CONTROL POINT AREA
- LDD CM+1
- ZJN PRS15 IF OPERATION COMPLETED
- PAUSE
- LDD CM+1
- ZJP PRS14 IF ERROR FLAG NOT SET
- LJM DPP EXIT
- EXECUTE 1AJ,= CALL *1AJ*
- PRS15 LDD MA REQUEST PP
- CWM PRSA,ON
- LDN 1 SET PRIORITY PP REQUEST
- STD CM+1
- MONITOR RPPM
- LDD CM+1 SET PP ASSIGNMENT
- STD T1
- NJP PRS16 IF PP ASSIGNED
- PAUSE
- LDD CM+1
- ZJN PRS15 IF ERROR FLAG CLEAR LOOP
- LDN 0 CLEAR JOB ADVANCE FLAG
- STM PRSB+4
- LDD MA
- CWM PRSB,ON
- LDN ZERL
- CRD CM
- LDN 40+1 INTERLOCK EJT AND CLEAR JOB ADVANCE
- STD CM+1
- LDC *
- PRSC EQU *-1 (EJTO)
- SFA EJT
- STD CM+4 INTERLOCK EJT ENTRY
- SHN -14
- STD CM+3
- MONITOR UTEM UPDATE CONTROL POINT AREA
- LJM DPP DROP PP
- PRS16 LDD T1 READ INPUT REGISTER
- CRD CM
- LDD CM+1
- LPN 37
- SHN 7
- LMD CP
- NJN PRS18 IF *1AJ* FINISHED
- PAUSE
- LDD CM+1
- ZJN PRS16 IF ERROR FLAG CLEAR LOOP
- PRS17 LJM DPP DROP PP
- PRS18 LDD RA READ (RA+PGNR)
- SHN 6
- ADN PGNR
- CRD CM
- LDD CM
- ZJN PRS17 IF CPU PROGRAM NOT LOADED
- PRS19 PAUSE WAIT FOR LOADER TO COMPLETE
- LDD CM+1
- NJN PRS17 IF ERROR FLAG SET
- LDD CM
- SHN -11
- NJN PRS19 IF LOADER STILL RUNNING
- LJM PRS11 CLEAR SYSTEM REQUEST
- PRSA VFD 18/0L1AJ,6/0,12/2,12/0,12/1
- PRSB VFD 12/1,12/600,36/1 JOB ADVANCE FLAG
- PRSD VFD 1/1,5/STSW,6/1,6/24D,42/0
- VFD 6/JCIW,6/1,6/21D,42/1
- CRP SPACE 4,10
- ** CRP - CHECK FOR RATE PARAMETER.
- *
- * CHECKS THE *SMP* COMMAND FOR THE RATE PARAMETER.
- *
- * EXIT (RT) = SAMPLE RATE.
- * TO *ABT* IF ERROR ENCOUNTERED.
- *
- * USES RT, T1, T2, T3, T4, T5, T6, CBUF - CBUF+35.
- *
- * CALLS NCH.
- CRP SUBR ENTRY/EXIT
- LDD CP READ CURRENT COMMAND
- ADN MS1W
- CRM CBUF,TR
- CRM CBUF+17,TR
- LDN 0
- STD T1
- STD T2
- LDN 10D DEFAULT RATE IS 10 DECIMAL
- STD RT
- CRP1 RJM NCH SKIP TO COMMAND TERMINATOR
- ZJN CRPX IF END OF COMMAND
- LMN 1R.
- ZJN CRP2 IF TERMINATOR FOUND
- LMN 1R)&1R.
- NJN CRP1 IF TERMINATOR NOT YET FOUND
- CRP2 RJM NCH GET NEXT CHARACTER
- LMN 1R/ CHECK FOR SLASH
- NJN CRPX IF NO SLASH
- STD RT DECODE THE SAMPLE RATE
- STD T4 CLEAR OCTAL ASSEMBLY WORD
- STD T5 CLEAR DECIMAL DIGIT FLAG
- CRP3 RJM NCH GET NEXT CHARACTER
- ZJN CRPX IF END OF COMMAND
- SBN 1R0
- MJN CRP5 IF A LETTER
- STD T6
- SBN 10D
- PJN CRP5 IF NOT A DECIMAL DIGIT
- ADN 10D-10B
- MJN CRP4 IF AN OCTAL DIGIT
- AOD T5 SET DECIMAL DIGIT FLAG
- CRP4 LDD RT ADD TO DECIMAL ASSEMBLY
- SHN 2
- RAD RT
- SHN 1
- ADD T6
- STD RT
- LDD T4 ADD TO OCTAL ASSEMBLY
- SHN 3
- ADD T6
- STD T4
- UJN CRP3 GET NEXT DIGIT
- CRP5 LDD T3 CHECK FOR VALID SUFFIX
- LMN 1R
- ZJN CRP6 IF SPACE
- LMN 1RD&1R
- ZJN CRP6 IF DECIMAL SUFFIX
- LMN 1RB&1RD
- NJN CRP7 IF AN INCORRECT CHARACTER
- LDD T5
- NJN CRP7 IF DECIMAL DIGIT IN OCTAL NUMBER
- LDD T4 USE THE OCTAL VERSION
- STD RT
- CRP6 RJM NCH GET NEXT CHARACTER
- ZJN CRP8 IF END OF THE COMMAND
- LMN 1R
- ZJN CRP6 IF SPACE
- CRP7 LDC =C* ERROR IN RATE PARAMETER.*
- LJM ABT ABORT
- CRP8 LJM CRPX RETURN
- NCH SPACE 4,15
- ** NCH - GET THE NEXT CHARACTER.
- *
- * ENTRY (T1) = NEXT BYTE.
- * (T2) = NEXT CHARACTER WITHIN BYTE.
- *
- * EXIT (A) = NEXT CHARACTER FROM STRING.
- * (T3) = NEXT CHARACTER FROM STRING.
- * (T1) = NEXT BYTE IN STRING.
- * (T2) = POSITION OF CHARACTER WITHIN BYTE.
- *
- * USES T1, T2, T3.
- NCH1 SHN -6 EXTRACT DESIRED CHARACTER
- LPN 77
- STD T3
- LDD T2 POSITION TO NEXT CHARACTER
- LMN 1
- STD T2
- NJN NCH2 IF ADVANCED TO NEXT BYTE
- AOD T1
- NCH2 LDD T3
- NCH SUBR ENTRY/EXIT
- LDM CBUF,T1 LOAD BYTE CONTAINING NEXT CHARACTER
- LJM NCH1,T2 EXTRACT CHARACTER
- SPACE 4,10
- CBUF BSS 0 COMMAND
- SPACE 4
- ** COMMON DECKS.
- *CALL COMPCUA
- *CALL COMPCRS
- SPACE 4,10
- IFP HERE
- SPACE 4
- END
cdc/nos2.source/opl871/smp.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator