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