IDENT SCRCCK ENTRY SCRCCK SYSCOM B1 TITLE SCRCCK - CAPSULE CHECK. *COMMENT SCRCCK - CAPSULE CHECK. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CCK SPACE 4,10 *** SCRCCK - CAPSULE CHECK. * * M. L. SWANSON. 84/05/09. CCK SPACE 4,10 *** *SCRCCK* VERIFIES THAT THE CAPSULE LOADED IS A VALID * *TDU* PRODUCED CAPSULE, CHECKING THE TERMINAL MNEMONIC * AND THE VERSION NUMBER AGAINST THE SPECIFIED MNEMONIC * AND THE CURRENT *TDU* VERSION NUMBER. IT ALSO CONDITIONALLY * SETS A FLAG IN THE FIRST WORD OF THE DYNAMICALLY LOADED * CAPSULE TO SIGNIFY THE LOCATION OF THE *TERMLIB* FILE USED * BY THE SCREEN/LINE DIRECTIVE. IF THE CAPSULE IS VALIDATED, * *SCRCCK* RETURNS THE LENGTH OF THE TERMINAL CAPSULE. CCK SPACE 4,10 ** COMMON DECKS. LIST X *CALL COMSTIR LIST -X CCK SPACE 4,15 *** SCRCCK - CAPSULE CHECK. * * CALLING SEQUENCE. * *SYMPL* CALL - * * SCRCCK(ADDRESS,TERMINAL,VALIDATION,LENGTH,TSTATUS); * * (ADDRESS) = LOADED CAPSULE ADDRESS. * (TERMINAL) = TERMINAL MNEMONIC. * (VALIDATION) = TERMCAP VALIDATION FLAG. * (LENGTH) = TERMCAP LENGTH IN WORDS. * (TSTATUS) = STATUS OF *TERMLIB* USED BY *SCREX* * ( 0 - SOURCE OF TERMLIB IS UN=LIBRARY, * 1 - SOURCE IS LOCAL FILE OR PFN CATALOG ) CCK SPACE 4,10 ** SCRCCK - CAPSULE CHECK. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF LOADED CAPSULE ADDRESS. * * USES X - 2, 3, 4, 5, 6, 7. * A - 2, 3, 6, 7. * B - 1, 2, 3. SCRCCK SUBR ENTRY/EXIT SB1 1 * INITIALIZE TERMCAP VALIDATION FLAG TO FALSE. SB2 2 SA2 A1+B2 GET ADDRESS OF FLAG SX7 B0 INITIALIZE FLAG TO FALSE SA7 X2 STORE INITIALIZED FLAG * CHECK IF HEADER WORD HAS TERMINAL MNEMONIC. SA2 X1 GET LOADED CAPSULE ADDRESS SA2 X2 GET FIRST WORD OF CAPSULE SA3 A1+B1 GET MNEMONIC ADDRESS SA3 X3 GET TERMINAL MNEMONIC LX3 6 SHIFT TO REMOVE *Z* PREFIX MX4 42 BX3 X3*X4 GET UNPREFIXED MNEMONIC BX5 X4*X2 MASK OFF FIRST SEVEN CHARACTERS BX6 X5-X3 COMPARE MNEMONIC TO CAPSULE HEADER NZ X6,SCRCCKX IF NOT MATCH, INVALID CAPSULE * CHECK IF VALID VERSION NUMBER. SX3 TDUV GET CURRENT *TDU* VERSION NUMBER BX5 -X4*X2 MASK OFF VERSION NUMBER FIELD BX6 X5-X3 CHECK FOR MATCHING VERSION NUMBER NZ X6,SCRCCKX IF NOT MATCH, INVALID CAPSULE * CONDITIONALLY SET THE *TERMLIB* STATUS FLAG. SA3 A1+4 ADDRESS OF *TERMLIB* STATUS FLAG SA3 X3+ ZR X3,CCK1 IF *TERMLIB* FOUND FROM UN=LIBRARY MX4 59 LX4 17 SA3 X1 SA2 X3 FIRST WORD OF TERMINAL CAPSULE BX6 -X4+X2 SET *TERMLIB* STATUS FLAG SA6 X3 REPLACE HEADER OF CAPSULE * GET LENGTH OF CAPSULE FROM TERMCAP HEADER TABLE. CCK1 SA2 X1 ADDRESS OF LOADED CAPSULE ADDRESS SA2 X2 GET FIRST WORD OF TERMCAP * THIS TAKES THE LENGTH FROM THE CAPSULE HEADER. SB3 -3 SA2 A2+B3 GET CAPSULE HEADER MX3 42 MASK FOR LENGTH OF CAPSULE BX6 -X3*X2 EXTRACT CAPSULE LENGTH SA2 A1+3 GET LENGTH ADDRESS SA6 X2 STORE TERMCAP LENGTH SA3 A1+B2 GET FLAG ADDRESS SX7 B1 SET TERMCAP VALID FLAG TO TRUE SA7 X3 STORE FLAG EQ SCRCCKX RETURN END IDENT SCRCIS ENTRY SCRCIS SYSCOM B1 SST TITLE SCRCIS - CHECK INTERACTIVE STATUS. *COMMENT SCRCIS - CHECK INTERACTIVE STATUS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CIS SPACE 4,10 *** SCRCIS - CHECK INTERACTIVE STATUS. * * M. L. SWANSON. 84/10/29. CIS SPACE 4,10 *** *SCRCIS* CHECKS TO SEE IF THE CURRENT RUNNING JOB IS * OF INTERACTIVE ORIGIN TYPE. IF SO, IT RETURNS TRUE TO * THE CALLING ROUTINE, FALSE IF NOT. CIS SPACE 4,15 *** SCRCIS - CHECK INTERACTIVE STATUS. * * CALLING SEQUENCE. * *SYMPL* CALL - * * SCRCIS(INTFLAG); * * (INTFLAG) - INTERACTIVE STATUS FLAG. * = 1, IF INTERACTIVE JOB ORIGIN TYPE. * = 0, IF NOT INTERACTIVE TYPE. CIS SPACE 4,10 ** SCRCIS - CHECK INTERACTIVE STATUS. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF INTERACTIVE STATUS FLAG. * * USES X - 0, 2, 3, 4, 6. * A - 2, 3, 4, 6. * B - 1. SCRCIS SUBR ENTRY/EXIT SB1 1 SA2 X1 MX0 48 SA3 JOPR GET JOB ORIGIN TYPE LX3 36 BX3 -X0*X3 SX4 IAOT IX4 X4-X3 SX2 B0 RESET INTERACTIVE STATUS FLAG NZ X4,CIS1 IF NOT INTERACTIVE JOB TYPE SX2 B1+ SET INTERACTIVE STATUS FLAG CIS1 BX6 X2 SA6 X1 SAVE FLAG EQ SCRCISX RETURN END IDENT SCRCZF ENTRY SCRCZF SYSCOM B1 TITLE SCRCZF - CREATE ZZZZTRM FILE. *COMMENT SCRCZF - CREATE ZZZZTRM FILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CZF SPACE 4,10 *** SCRCZF - CREATE ZZZZTRM FILE. * * M. L. SWANSON. 84/05/09. CZF SPACE 4,10 *** *SCRCZF* CREATES A FILE NAMED *ZZZZTRM* WHICH * CONTAINS THE CONTENTS OF THE LOADED TERMINAL * CAPSULE . CZF SPACE 4,10 ** COMMON DECKS. LIST X *CALL COMSTIR LIST -X CZF SPACE 4,10 ** FETS. ZZZZTRM RFILEB ZBUF,ZBFL,EPR,(FET+7B) CZF SPACE 4,10 *** SCRCZF - CREATE ZZZZTRM FILE. * * CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRCZF(ADDRESS,LENGTH); * * ADDRESS = LOADED TERMCAP ADDRESS; * LENGTH = TERMCAP LENGTH. CZF SPACE 4,15 ** SCRCZF - CREATE ZZZZTRM FILE. * * ENTRY (A1) - FWA OF FORMAL PARAMETER LIST. * (X1) - ADDRESS OF LOADED CAPSULE ADDRESS. * * EXIT OBJECT ROUTINE EXECUTED - ZZZZTRM FILE CREATED, * MARKED NON-RETURNABLE BY GLOBAL CLEAR. * * USES X - 1, 2, 3, 4, 5, 6, 7. * A - 1, 2, 3, 4, 5, 6, 7. * B - 1, 2. * * MACROS SETFS, WRITEF, WRITEO, WRITER. SCRCZF SUBR ENTRY/EXIT SB1 1 SA2 X1 GET ADDRESS OF LOADED CAPSULE SX6 X2 SA6 CZFA SAVE FWA OF LOADED CAPSULE SA3 X6 GET FIRST WORD OF LOADED CAPSULE BX6 X3 PREPARE FOR *WRITEO* SA4 A1+B1 GET ADDRESS OF LENGTH SA4 X4 GET TERMCAP LENGTH BX7 X4 ADD TERMCAP HEADER LENGTH SA7 A6+B1 SAVE LENGTH OF TERMCAP CZF1 WRITEO ZZZZTRM WRITE FIRST WORD INTO I/O BUFFER SA2 CZFB SB2 -1 SX7 X2+B2 DECREMENT COUNTER OF TABLE LENGTH SA7 A2 SAVE REMAINING LENGTH SA1 CZFA GET FWA OF LOADED CAPSULE SX7 X1+B1 GET NEXT WORD OF LOADED CAPSULE SA7 A1 STORE CURRENT POINTER SA5 X7 BX6 X5 PREPARE FOR *WRITEO* SA3 A2+ CHECK IF END OF TABLE NZ X3,CZF1 IF NOT END OF TABLE WRITER ZZZZTRM WRITE EOR ON *ZZZZTRM* FILE WRITEF ZZZZTRM WRITE EOF ON *ZZZZTRM* FILE SETFS ZZZZTRM,NAD MARK NON-RETURNABLE BY GLOBAL CLEAR EQ SCRCZFX RETURN ZBUF BSS ZBFL CZFA VFD 60/0 CURRENT POINTER TO CAPSULE CZFB VFD 60/0 CAPSULE LENGTH COUNTER END IDENT SCRFST ENTRY SCRFST SYSCOM B1 TITLE SCRFST - FILE STATUS CHECK. *COMMENT SCRFST - FILE STATUS CHECK. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. FST SPACE 4,10 *** SCRFST - FILE STATUS CHECK. * * M. L. SWANSON. 84/05/13. FST SPACE 4,10 *** *SCRFST* USES THE *STATUS* MACRO TO CHECK * IF THE SPECIFIED FILE IS LOCAL. IF FOUND LOCAL, * *SCRFST* REWINDS THE FILE. FST SPACE 4,10 ** COMMON DECKS. *CALL COMCCMD *** CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRFST(FILE,STATUS); * * FILE = SPECIFIED FILE. * STATUS = LOCAL STATUS OF FILE (0 = NOT LOCAL, * 1 = LOCAL). FST SPACE 4,10 ** SCRFST - CHECK FILE STATUS. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF FIRST PARAMETER. * * USES X - 0, 2, 3, 6. * A - 2, 3, 6. * B - 1. * * MACROS REWIND, SETFET, STATUS. FST SPACE 4,10 * FETS. ZZZFET FILEB BUF,BUFL BUFL EQU 1 BUF BSS BUFL * SCRFST SUBR ENTRY/EXIT SB1 1 SA2 A1+B1 GET ADDRESS OF *STATUS* ADDRESS SX6 X2 GET ADDRESS OF *STATUS* PARAMETER SA6 FSTA STORE ADDRESS OF *STATUS* PARAMETER SA2 X1 GET *FILENAME* PARAMETER SETFET ZZZFET,(LFN=X2) REPLACE FILE NAME IN FET STATUS ZZZFET CHECK IF FILE IS LOCAL * *STATUS* RETURNS 0 IN BITS 11-0 OF FET+0 IF FILE NOT FOUND. SA2 ZZZFET GET FET+0 REPLY WORD MX0 11 LX0 12 BX3 X0*X2 MASK OFF LOW 12 BITS OF FET+0 SA2 FSTA GET ADDRESS OF *STATUS* PARAMETER NZ X3,FST1 IF SPECIFIED FILE IS FOUND BX6 X6-X6 SET *STATUS* TO FALSE JP FST2 NO *REWIND* FST1 SX6 B1 SET *STATUS* TO TRUE SA6 X2 SAVE *STATUS* REWIND ZZZFET,R REWIND WITH AUTO RECALL FST2 SA6 X2 SAVE *STATUS* EQ SCRFSTX RETURN FSTA VFD 60/0 ADDRESS OF *STATUS* PARAMETER END IDENT SCRGIS ENTRY SCRGIS SYSCOM B1 TITLE SCRGIS - GET INITIALIZATION SEQUENCE. *COMMENT SCRGIS - GET INITIALIZATION SEQUENCE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. GIS SPACE 4,10 *** SCRGIS - GET INITIALIZATON SEQUENCE. * * M. L. SWANSON. 84/05/09. GIS SPACE 4,10 *** *SCRGIS* RETRIEVES THE SPECIFIED INITIALIZATION * SEQUENCE FROM THE LOADED CAPSULE, CONVERTING THE * CAPSULE-S 7-BIT BYTES INTO 12-BIT XPARENT BYTES, * AND RETURNING THE ADDRESS OF THE BUFFER. GIS SPACE 4,10 ** COMMON DECKS. *CALL COMCCMD LIST X *CALL COMSTIR LIST -X GIS SPACE 4,15 *** SCRGIS - GET INITIALIZATION SEQUENCE. * * CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRGIS(ADDRESS,MODE,BUFFER); * * (ADDRESS) = LOADED CAPSULE ADDRESS. * (MODE) = TERMINAL MODE. * (BUFFER) = PACKED SEQUENCE BUFFER. GIS SPACE 4,10 ** SCRGIS - GET INITIALIZATION SEQUENCE. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF LOADED CAPSULE ADDRESS. * * USES X - 1, 2, 3, 4, 5, 6, 7. * A - 1, 2, 3, 4, 5, 6, 7. * B - 1, 2, 3, 4, 5, 6, 7. SCRGIS SUBR ENTRY/EXIT SB1 1 SX6 A1 SAVE FWA OF *SYMPL* PARAMETERS SA2 X1 GET ADDRESS OF TERMCAP SA6 GISA SA3 X2+B1 GET SECOND WORD OF TERMCAP MX4 12 CREATE MASK FOR POINTER OFFSET LX4 36 POSITION MASK AT SEQUENCE FIELD BX5 X4*X3 GET SEQUENCE TABLE OFFSET LX5 36 * GET FIRST WORD OF INITIALIZATION TABLE. SB2 X5 SA2 X2+B2 GET FIRST WORD OF SEQUENCE TABLE * DETERMINE WHICH SEQUENCE TO OUTPUT (SCREEN OR LINE). SA3 A1+1 GET ADDRESS OF MODE PARAMETER SA3 X3 GET MODE ZR X3,GIS1 IF LINE MODE LX4 12 POSITION MASK AT SCREEN SEQUENCE BX5 X4*X2 GET BYTE OFFSET OF SCREEN SEQUENCE LX5 24 REPOSITION LX4 48 REPOSITION MASK FOR NEXT FIELD BX6 X4*X2 GET NEXT FIELD LX6 36 REPOSITION EQ GIS2 GET BYTE LENGTH OF FIELD GIS1 LX4 24 POSITION MASK AT LINE SEQUENCE BX5 X4*X2 GET BYTE OFFSET OF LINE SEQUENCE LX5 12 REPOSITION LX4 48 REPOSITION MASK FOR NEXT FIELD BX6 X4*X2 GET NEXT FIELD LX6 24 REPOSITION GIS2 IX6 X6-X5 CALCULATE BYTE LENGTH OF FIELD ZR X6,SCRGISX IF EMPTY INITIALIZATION SEQUENCE SX7 A2 GET CAPSULE POINTER SA6 GISB STORE BYTE LENGTH OF SEQUENCE BX6 X5 GET OFFSET * CALCULATE POSITION OF MODE INDICATED SEQUENCE. BX3 X5 OFFSET OF SEQUENCE SX2 8 NUMBER OF BYTES IN WORD PX3 X3 PACK NUMERATOR PX4 X2 PACK DENOMINATOR NX4 X4 NORMALIZE FX5 X3/X4 CALCULATE NUMBER OF WORDS UX5 B7,X5 UNPACK RESULT LX5 B7,X5 SHIFT RESULT BX3 X7 CURRENT CAPSULE POINTER IX3 X3+X5 MOVE TO BEGINNING OF SEQUENCE BX4 X6 BYTE OFFSET OF SEQUENCE IX5 X5*X2 GET TOTAL BYTES BYPASSED IX4 X4-X5 CALCULATE CURRENT BYTE FIELD IX4 X2-X4 REVERSE TO REFLECT BYTE FIELD SB3 X4+ SAVE CAPSULE FIELD COUNTER SA4 GISB SB2 X4+ SAVE BYTE COUNTER SA4 GISC INITIALIZE FIRST OUTPUT WORD BX7 X4 MX4 7 CREATE CAPSULE 7-BIT BYTE MASK SB4 4 INITIALIZE BUFFER FIELD COUNTER SB6 GISC INITIALIZE BUFFER POINTER SX5 7 BYTE LENGTH SX2 B3 GET CAPSULE BYTE FIELD IX5 X2*X5 CALCULATE INITIAL BYTE POSITION SB5 X5 COLUMNS TO SHIFT * THE FOLLOWING REGISTERS ARE USED AS FOLLOWS * * X3 - CAPSULE POINTER. * X4 - CAPSULE BYTE MASK. * X7 - BUFFER WORD. * B2 - BYTE COUNTER OF INIT. SEQUENCE. * B3 - CAPSULE BYTE FIELD COUNTER. * B4 - BUFFER BYTE FIELD COUNTER. * B5 - CAPSULE COLUMNS TO SHIFT. * B6 - BUFFER POINTER. LX4 B5 MOVE MASK TO FIRST BYTE SB5 B5-7 ADJUST COLUMNS TO SHIFT GIS3 SA1 X3 GET CURRENT CAPSULE WORD BX6 X4*X1 EXTRACT CAPSULE BYTE SX2 B4 GET BUFFER BYTE COUNTER AX6 B5 REPOSITION BYTE TO LOW BITS SX6 X6+4000B CONVERT TO 12-BIT XPARENT BYTE SX5 12 XPARENT BYTE LENGTH IX5 X5*X2 CALCULATE POSITION IN BUFFER WORD SB7 X5-12 CALCULATE COLUMNS TO SHIFT LX6 B7 REPOSITION BX7 X6+X7 PLACE NEW BYTE IN BUFFER WORD * DECREMENT NUMBER OF SEQUENCE BYTES LEFT TO OUTPUT. SB2 B2-B1 DECREMENT SEQUENCE BYTE COUNTER ZR B2,GIS8 IF DONE WITH SEQUENCE * DECREMENT CAPSULE BYTE FIELD. SB3 B3-1 DECREMENT CAPSULE BYTE FIELD ZR B3,GIS4 IF END OF CAPSULE WORD SB5 B5-7 DECREMENT CAPSULE COLUMNS TO SHIFT EQ GIS5 NOT END OF CAPSULE WORD * IF END OF CAPSULE WORD. GIS4 SX3 X3+1 MOVE TO NEXT WORD IN CAPSULE SA1 X3+ GET CAPSULE WORD SB3 8 RESET CAPSULE BYTE FIELD SB5 49 RESET CAPSULE COLUMNS TO SHIFT LX4 49 RESET CAPSULE MASK TO FIRST BYTE EQ GIS6 NEW CAPSULE WORD GIS5 LX4 53 SHIFT MASK TO NEXT CAPSULE BYTE * DECREMENT BUFFER BYTE FIELD. GIS6 SB4 B4-1 DECREMENT BUFFER BYTE FIELD ZR B4,GIS7 IF END OF BUFFER WORD EQ GIS3 GET NEXT BYTE * IF END OF BUFFER WORD. GIS7 SA7 B6 STORE FULL WORD INTO BUFFER SX7 B0 RESET WORD TO ZERO SB6 B6+1 INCREMENT BUFFER POINTER SB7 48 RESET COLUMNS TO SHIFT SB4 5 RESET BUFFER BYTE FIELD EQ GIS3 GET NEXT BYTE * IF END OF SEQUENCE. GIS8 SA7 B6+ STORE LAST WORD * RETURN SEQUENCE BUFFER TO CALLING ROUTINE. SA2 GISA GET ADDRESS OF *SYMPL* PARAMETERS SA2 X2+2 GET ADDRESS OF BUFFER PARAMETER SA3 GISC GET ADDRESS OF SEQUENCE BUFFER SX7 A3 SA7 X2 STORE ADDRESS OF SEQUENCE BUFFER EQ SCRGISX RETURN GISA VFD 60/0 ADDRESS OF *SYMPL* PARAMETERS GISB VFD 60/0 SEQUENCE BYTE COUNTER GISC VFD 12/7,48/0 FIRST WORD OF BUFFER BSSZ ISBL OUTPUT BUFFER END IDENT SCRISR ENTRY SCRISR SYSCOM B1 TITLE SCRISR - ISSUE SYSTEM REQUEST. *COMMENT SCRISR - ISSUE SYSTEM REQUEST. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. ISR SPACE 4,10 *** SCRISR - ISSUE SYSTEM REQUEST. * * M. L. SWANSON. 84/05/09. ISR SPACE 4,10 *** *SCRISR* ISSUES A SYSTEM REQUEST TO SET THE SCREEN * BIT IN TERMINAL TABLE WORD *VSTT*. ISR SPACE 4,10 *** SCRISR - ISSUE SYSTEM REQUEST. * * CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRISR(MODE); * * MODE = 0, TERMINAL IN LINE MODE. * = 1, TERMINAL IN SCREEN MODE. ISR SPACE 4,10 ** SCRISR - ISSUE SYSTEM REQUEST. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF FIRST PARAMETER. * * USES X - 1. * A - 2. * B - 1. * * MACROS SYSTEM. SCRISR SUBR ENTRY/EXIT SB1 1 SA2 X1+ GET DIRECTIVE PARAMETER ZR X2,ISR1 IF LINE MODE SYSTEM TLX,R,0,13B*100B SET SCREEN BIT IN *VSTT* EQ SCRISRX RETURN ISR1 SYSTEM TLX,R,0,14B*100B CLEAR SCREEN BIT IN *VSTT* EQ SCRISRX RETURN END IDENT SCRLCP ENTRY SCRLCP SYSCOM B1 TITLE SCRLCP - LOAD TERMINAL CAPSULE. *COMMENT SCRLCP - LOAD TERMINAL CAPSULE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. LCP SPACE 4,10 *** SCRLCP - LOAD TERMINAL CAPSULE. * * M. L. SWANSON. 84/05/09. LCP SPACE 4,10 *** *SCRLCP* INVOKES THE FAST DYNAMIC LOADER TO LOAD * THE SPECIFIED TERMINAL CAPSULE, RETURNING THE * ADDRESS OF THE LOADED CAPSULE AND A STATUS FLAG. LCP SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRLCP(TERMINAL,ADDRESS,STATUS); * * TERMINAL = TERMINAL MNEMONIC(CAPSULE NAME). * ADDRESS = LOADED CAPSULE ADDRESS. * STATUS = CAPSULE LOADED SUCCESSFULLY FLAG. LCP SPACE 4,10 ** SCRLCP - LOAD TERMINAL CAPSULE. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF FIRST PARAMETER. * * USES X - 0, 1, 2, 3, 4, 6, 7. * A - 1, 2, 3, 4, 6, 7. * B - 1, 2. * * CALLS FDL.LDC. SCRLCP SUBR ENTRY/EXIT SB1 1 SX6 A1 SAVE ADDRESS OF *SYMPL* PARAMETERS MX0 42 MASK OUT SEVEN CHARACTER NAME SA6 SLCA SA1 X1 GET CAPSULE NAME BX6 X0*X1 MX0 -6 MASK OFF BLANK FILL SB2 6 AT LEAST ONE NON-BLANK CHARACTER LX6 6 START AT SECOND CHARACTER SLC1 LX6 6 PROCESS NEXT CHARACTER BX2 -X0*X6 CHECK FOR BLANK CHARACTER SX3 X2-1R NZ X3,SLC2 IF NOT BLANK BX6 X0*X6 MASK OFF BLANK CHARACTER SLC2 SB2 B2-B1 NZ B2,SLC1 IF NOT DONE LX6 18 REPOSITION NAME SA6 SLCC PUT NAME INTO LIST FOR *FDL* CALL SA6 SLCG PUT NAME INTO ENTRY POINT LIST SA1 SLCB SET PARAMETERS FOR *FDL* CALL SA2 A1+1 SET CAPSULE NAME SA3 A2+B1 SET LIBRARY LIST ADDRESS SA4 A3+B1 SET ENTRY POINT LIST ADDRESS RJ =XFDL.LDC LOAD CAPSULE SA1 SLCA GET ADDRESS OF *SYMPL* PARAMETERS SA1 X1+B1 GET LOADED CAPSULE ADDRESS SA2 A1+B1 GET ADDRESS OF CAPSULE-LOADED FLAG SA3 SLCG MASK ENTRY POINT ADDRESS OUT OF LIST MX0 -18 BX7 -X0*X3 SA7 X1 ENTRY POINT ADDR INTO CAPSULE ADDR SA6 X2 PUT LOAD STATUS IN STATUS PARAMETER EQ SCRLCPX RETURN SLCA VFD 60/0 FWA OF *SYMPL* PARAMETER LIST * LOADER REPLY BLOCK. SLCB VFD 60/0LVIRTERM GROUPNAME SLCC VFD 60/0 CAPSULE NAME (TERMINAL MNEMONIC) VFD 60/SLCD ADDRESS OF LIBRARY LIST VFD 60/SLCE ADDRESS OF LIST OF ENTRY POINTS SLCD VFD 60/0LTERMLIB LIST OF LIBRARIES VFD 60/0 END OF LIST SLCE VFD 60/SLCF LIST OF ADDRS OF ENTRY POINT LISTS VFD 60/0 END OF LIST SLCF VFD 24/00210001B HEADER WORD OF ENTRY POINT LIST VFD 36/0 SLCG VFD 60/0 ENTRY POINT NAME AND ADDRESS END IDENT SCRPKP ENTRY SCRPKP SYSCOM B1 TITLE SCRPKP - PROCESS SCREEN/LINE PARAMETERS. *COMMENT SCRPKP - PROCESS SCREEN/LINE PARAMETERS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. PKP SPACE 4,10 *** SCRPKP - PROCESS SCREEN/LINE PARAMETERS. * * M. L. SWANSON. 84/05/09. PKP SPACE 4,10 *** *SCRPKP* PROCESSES PARAMETERS FOR THE SCREEN AND * LINE DIRECTIVES. PKP SPACE 4,10 ** COMMON DECKS. *CALL COMCARG *CALL COMCARM *CALL COMCCPA *CALL COMCPOP *CALL COMCUSB PKP SPACE 4,10 *** SCRPKP - PROCESS SCREEN/LINE PARAMETERS. * * CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRPKP(TERMINAL); * * (TERMINAL) = USER INPUT TERMINAL MNEMONIC. PKP SPACE 4,10 ** SCRPKP - PROCESS SCREEN/LINE PARAMETERS. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF TERMINAL MNEMONIC. * * USES X - 3, 6, 7. * A - 3, 6. * B - 1. * * CALLS PKP. SCRPKP SUBR ENTRY/EXIT SB1 1 SX6 X1+ STORE FWA OF *SYMPL* PARAMETER LIST SA6 SPPA SX6 TSLA ARGUMENT TABLE ADDRESS SX7 TSLAL ARGUMENT TABLE LENGTH RJ PKP PROCESS PARAMETERS NZ X1,SCRPKPX IF NO ARGUMENTS SA3 SPPA GET FWA OF FORMAL PARAMETER LIST BX6 X2 SA6 X3 PUT MNEMONIC IN PARAMETER LIST EQ SCRPKPX RETURN SPPA BSS 1 FWA OF *SYMPL* PARAMETER LIST PKP SPACE 4,10 ** TABLE OF VALID ARGUMENTS. TSLA BSS 0 TM ARG ZR,TCKA,400B TERMINAL MNEMONIC ARG TSLAL EQU *-TSLA-1 LENGTH OF *TSLA* TABLE ZR CON 0 PKP SPACE 4,20 ** PKP - PROCESS KEYWORD OR POSITIONAL ARGUMENTS. * * ENTRY (X6) = ARGUMENT TABLE ADDRESS. * (X7) = ARGUMENT TABLE LENGTH. * * EXIT (B1) = 1. * (X1) .NE. 0 IF NO ARGUMENTS SPECIFIED. * (X2) = TERMINAL MNEMONIC. * TO *ERR* IF ARGUMENT ERROR. * * USES X - 1, 2, 6, 7. * A - 1, 2, 6, 7. * B - 1, 2, 3, 4, 6. * * CALLS ARM, CPA, USB. * * MACROS ABORT, MESSAGE. PKP SUBR ENTRY/EXIT SB1 1 SA6 PKPA SAVE ADDRESS AND LENGTH SA7 PKPB SB2 CCDR UNPACK CONTROL CARD RJ USB UNPACK STRING BUFFER SA1 A6 ASSURE TERMINATION SX6 1R. SA6 X1+B1 * SKIP TO FIRST ARGUMENT. PKP1 SA1 B6 SKIP OVER CONTROL CARD NAME SB6 B6+B1 ADVANCE CHARACTER ADDRESS SB2 X1-1R9-1 NG B2,PKP1 IF NOT END OF NAME SB2 X1-1R ZR B2,PKP1 IF A BLANK SB3 X1-1R. SB4 X1-1R) ZR B3,PKPX IF NO ARGUMENTS ZR B4,PKPX IF NO ARGUMENTS * PROCESS ARGUMENTS. SA1 PKPA RETRIEVE ADDRESS AND LENGTH SA2 PKPB SB3 X1 ARGUMENT TABLE ADDRESS SB2 X2 SB4 ABUF RJ CPA CONVERT POSITIONAL ARGUMENTS NG B5,ERR IF ARGUMENT ERROR SX6 B5+ SET LWA OF ARGUMENTS SB6 ABUF SET FWA OF ARGUMENTS SA6 USBC RJ ARM PROCESS ARGUMENTS NZ X1,ERR IF ARGUMENT ERROR EQ PKPX RETURN PKPA CON 0 ARGUMENT TABLE ADDRESS PKPB CON 0 ARGUMENT TABLE LENGTH PKP SPACE 4,10 ERR MESSAGE (=C* ERROR IN COMMAND PARAMETERS.*) ABORT PKP SPACE 4,10 TCKA BSSZ TSLAL CRACKED ARGUMENT VALUES CPALN EQU 40 CPA ARGUMENT LENGTH ABUF EQU * ARGUMENT STRING BUFFER SBUF EQU ABUF+CPALN SCRATCH BUFFER TBUF BSS SBUF-ABUF+1 END IDENT SCRRET ENTRY SCRRET SYSCOM B1 TITLE SCRRET - RETURN LOCAL FILE. *COMMENT SCRRET - RETURN LOCAL FILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. RET SPACE 4,10 *** SCRRET - RETURN LOCAL FILE. * * M. L. SWANSON. 84/05/09. RET SPACE 4,10 *** *SCRRET* PROVIDES AN INTERFACE FOR HIGH-LEVEL * LANGUAGES USING THE *RETURN* MACRO. RET SPACE 4,10 ** COMMON DECKS. *CALL COMCCMD LIST X *CALL COMSTIR LIST -X RET SPACE 4,10 ** FETS. RETFET RFILEB RBUF,RBFL RET SPACE 4,10 *** SCRRET - RETURN LOCAL FILE. * * CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRRET(FILE); * * (FILE) = LOCAL FILE NAME. RET SPACE 4,10 ** SCRRET - RETURN LOCAL FILE. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF LOCAL FILE NAME. * * USES X - 1. * A - 1. * B - 1. * * MACROS RETURN, SETFET. SCRRET SUBR ENTRY/EXIT SB1 1 SA1 X1 SETFET RETFET,(LFN=X1) RETURN RETFET,R EQ SCRRETX RETURN RET SPACE 4,10 ** BUFFER. RBUF BSS RBFL FET BUFFER END IDENT SCRRTA ENTRY SCRRTA SYSCOM B1 TITLE SCRRTA - RETRIEVE TERMCAP ADDRESS. *COMMENT SCRRTA - RETRIEVE TERMCAP ADDRESS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. RTA SPACE 4,10 *** SCRRTA - RETRIEVE RESIDENT TERMCAP ADDRESS. * * M. L. SWANSON. 84/04/24. RTA SPACE 4,10 *** *SCRRTA* CALLS *GTO* TO RETRIEVE A RESIDENT * TERMINAL CAPSULE ADDRESS, GIVEN THE TERMINAL * MNEMONIC (CAPSULE NAME). RTA SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRRTA(TERMINAL,ADDRESS); * * TERMINAL = TERMINAL MNEMONIC(CAPSULE NAME). * ADDRESS = RESIDENT CAPSULE ADDRESS. RTA SPACE 4,10 ** SCRRTA - RETRIEVE RESIDENT TERMCAP ADDRESS. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF FIRST PARAMETER. * * USES X - 2, 6, 7. * A - 2, 6, 7. * B - 1. * * CALLS GTO. SCRRTA SUBR ENTRY/EXIT SB1 1 SX6 A1 SAVE ADDRESS OF *SYMPL* PARAMETERS SA2 X1 GET TERMINAL MNEMONIC SA6 RTAA STORE PARAMETER LIST * GET RESIDENT TERMCAP ADDRESS. RJ GTO * *GTO* RETURNS ADDRESS OF TERMCAP IN X3. SA2 RTAA GET ADDRESS OF *SYMPL* PARAMETERS SA2 X2+1 GET ADDRESS PARAMETER BX7 X3 SA7 X2 STORE ADDRESS IN PARAMETER LIST EQ SCRRTAX RETURN LIST X *CALL COMCGTO LIST -X RTAA VFD 60/0 ADDRESS OF SYMPL PARAMETER LIST. END IDENT SCRRZF ENTRY SCRRZF SYSCOM B1 TITLE SCRRZF - READ ZZZZTRM FILE. RZF SPACE 4,10 COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. *** SCRRZF - READ ZZZZTRM FILE. * * M. L. SWANSON. 84/05/14. RZF SPACE 4,10 *** *SCRRZF* CALLS *READEI* TO FILL A BUFFER WITH * THE CONTENTS OF THE *ZZZZTRM* FILE. THE ADDRESS * OF THIS BUFFER IS THEN RETURNED TO THE CALLING * ROUTINE. RZF SPACE 4,10 ** COMMON DECKS. *CALL COMCCMD *** CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRRZF(FILE,ADDRESS); * * FILE = SPECIFIED FILE. * ADDRESS = ADDRESS OF BUFFER TO WHICH FILE IS READ. RZF SPACE 4,10 ** SCRRZF - READ ZZZZTRM FILE. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF FIRST PARAMETER. * * USES X - 0, 1, 2. 3, 6. * A - 1, 2, 6. * B - 1, 2. * * MACROS SETFET, READEI. RZF SPACE 4,10 * FETS. ZZZFET RFILEB BUF,BUFL BUFL EQU 1001B BUF BSS BUFL * SCRRZF SUBR ENTRY/EXIT SB1 1 SA2 A1+B1 GET ADDRESS OF *ADDRESS* ADDRESS SX6 X2 GET ADDRESS OF *ADDRESS* PARAMETER SA6 RZFA STORE ADDRESS OF *ADDRESS* PARAMETER SA1 X1 GET *FILENAME* PARAMETER MX0 42 MASK OFF SEVEN CHARACTER NAME BX6 X0*X1 MX0 -6 MASK OFF BLANK FILL SB2 6 AT LEAST ONE NON-BLANK CHARACTER LX6 6 START AT SECOND CHARACTER RZF1 LX6 6 PROCESS NEXT CHARACTER BX2 -X0*X6 CHECK FOR BLANK CHARACTER SX3 X2-1R NZ X3,RZF2 IF NOT BLANK BX6 X0*X6 MASK OFF BLANK CHARACTER RZF2 SB2 B2-B1 NZ B2,RZF1 IF NOT DONE LX6 18 REPOSITION NAME SETFET ZZZFET,(LFN=X6) REPLACE FILE NAME IN FET READEI ZZZFET,R READ UNTIL EOI OR BUFFER IS FILLED SA2 RZFA GET ADDRESS OF *ADDRESS* PARAMETER SX6 BUF GET CIO BUFFER ADDRESS SA6 X2 RETURN BUFFER ADDRESS EQ SCRRZFX RETURN RZFA VFD 60/0 ADDRESS OF *ADDRESS* PARAMETER END IDENT SCRUGD ENTRY SCRUGD SYSCOM B1 TITLE SCRUGD - UNLOAD GROUP DIRECTORY *COMMENT SCRUGD - UNLOAD GROUP DIRECTORY. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. UGD SPACE 4,10 *** SCRUGD - UNLOAD GROUP DIRECTORY. * * M. L. SWANSON. 84/09/06. UGD SPACE 4,10 *** *SCRUGD* INVOKES THE FAST DYNAMIC LOADER TO UNLOAD * THE *VIRTERM* GROUP DIRECTORY. UGD SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * SCRUGD; UGD SPACE 4,10 ** SCRUGD - UNLOAD GROUP DIRECTORY. * * ENTRY OBJECT ROUTINE CALLED. * * EXIT *VIRTERM* GROUP DIRECTORY UNLOADED. * * USES X - 1. * A - 1. * B - 1. * * CALLS FDL.UGD. SCRUGD SUBR ENTRY/EXIT SB1 1 SA1 UGDA GROUP NAME RJ =XFDL.UGD UNLOAD GROUP DIRECTORY EQ SCRUGDX RETURN UGDA VFD 42/0LVIRTERM,18/0 GROUP NAME END IDENT SFCNP$ ENTRY SFCNP$ SYSCOM B1 TITLE SFCNP$ - COPY NEXT PARAMETER. *COMMENT SFCNP$ - COPY NEXT PARAMETER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CNP SPACE 4,10 *** SFCNP$ - COPY NEXT PARAMETER. * * E.D. REDIG. 83/01/14. CNP SPACE 4,10 *** *SFCNP$* PROVIDES AN INTERFACE TO *SMF* ROUTINES FOR * COPYING A PARAMETER TO A NEW PARAMETER LIST. CNP SPACE 4,10 ** SFCNP$ - COPY NEXT PARAMETER. * * ENTRY (A1) = FWA OF PARAMETER. * (X1) = ACTUAL PARAMETER. * (B2) = FWA OF NEW PARAMETER. * * EXIT (A1) = POINTS TO NEXT PARAMTER. * (B2) = POINTS TO NEXT NEW PARAMETER. * * USES X - 1, 6. * A - 1, 6. * B - 1, 2. SFCNP$ SUBR ENTRY/EXIT SB1 1 SX6 X1 SAVE ADDRESS OF PARAMETER SA6 B2 SA1 A1+B1 POINT TO NEXT PARAMETER SB2 B2+B1 POINT TO NEXT NEW PARAMETER EQ SFCNP$X RETURN END IDENT SFCSP$ ENTRY SFCSP$ SYSCOM B1 TITLE SFCSP$ - COPY STRING PARAMETER. *COMMENT SFCSP$ - COPY STRING PARAMETER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CSP SPACE 4,10 *** SFCSP$ - COPY STRING PARAMETER. * * E.D. REDIG. 83/01/14. CSP SPACE 4,10 *** *SFCSP$* PROVIDES AN INTERFACE TO *SMF* ROUTINES FOR * COPYING A STRING PARAMETER, ITS LENGTH, AND OFFSET TO * A NEW PARAMETER LIST. CSP SPACE 4,10 ** SFCSP$ - COPY STRING PARAMETER. * * ENTRY (A1) = FWA OF PARAMETER. * (X1) = ACTUAL PARAMETER. * (B2) = ADDRESS OF NEXT NEW PARAMETER. * (B3) = ADDRESS OF LENGTH OF STRING PARAMETER. * * EXIT (A1) = POINTS TO NEXT PARAMTER. * (B2) = POINTS TO NEXT NEW PARAMETER. * (B3) = POINTS TO NEXT NEW LENGTH AND OFFSET. * * USES X - 0, 1, 6, 7. * A - 1, 6, 7. * B - 1, 2, 3. CSP2 SB2 A6+B1 SB3 A7+B1 SA1 A1+1 SFCSP$ SUBR ENTRY/EXIT SB1 1 SX6 X1 COPY STRING ADDRESS MX0 -3 EXTRACT CLASS OF DATA SA6 B2 LX1 0-21 BX7 -X0*X1 MX0 -18 ZR X7,CSP1 IF *FORTRAN5* CALL LX1 0-36-0+21 EXTRACT *COBOL5* LENGTH BX7 -X0*X1 SX6 B3 SA7 B3 LENGTH MX0 -6 SA6 A6+B1 ADDRESS OF LENGTH LX1 0-30-0+36 EXTRACT OFFSET BX7 -X0*X1 SA7 A7+B1 OFFSET SX6 A7 SA6 A6+1 ADDRESS OF OFFSET EQ CSP2 INCREMENT POINTERS CSP1 LX1 0-30-0+21 EXTRACT LENGTH BX7 -X0*X1 SX6 B3 SA7 B3 LENGTH MX0 -4 SA6 A6+B1 ADDRESS OF LENGTH LX1 0-24-0+30 EXTRACT OFFSET BX7 -X0*X1 SA7 A7+1 OFFSET SX6 A7+ SA6 A6+1 ADDRESS OF OFFSET EQ CSP2 INCREMENT POINTERS END IDENT VDTABT$ ENTRY VDTABT$ SYSCOM B1 TITLE VDTABT$ - ABORT JOB. *COMMENT ABORT JOB. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. ABT SPACE 4,10 *** VDTABT$ - ABORT JOB. * * G.K. CHACE. 83/02/03. ABT SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * VDTABT$; VDTABT$ SPACE 4,10 *** VDTABT$ - ABORT JOB. * * USES B - 1. * * MACROS ABORT. VDTABT$ SUBR ENTRY/EXIT SB1 1 ABORT END *IF DEF,CRM IDENT VDTCRM$ ENTRY VDTCLO$ ENTRY VDTOPN$ SYSCOM B1 TITLE VDTCRM$ - CRM OUTPUT ROUTINES. *COMMENT CRM OUTPUT ROUTINES. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. CRM SPACE 4,10 *** VDTCRM$ - CRM OUTPUT ROUTINES. * * E.D. REDIG. 83/08/17. CRM SPACE 4,10 ** FILE INFORMATION TABLE. OUTPUT FILE LFN=ZZZZZSF,BT=C,RT=S,CNF=YES,PD=OUTPUT,DFC=3,EFC=3,MRL ,=131071,ASCII=2,BFS=513 CRM SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * VDTCLO$; CRM SPACE 4,10 *** VDTCLO$ - CLOSE THE FILE. * * USES X - 1, 5, 6. * A - 0, 1, 6. * B - 1. * * MACROS CLOSEM, FETCH. VDTCLO$ SUBR ENTRY/EXIT SB1 1 SX6 A0+ SAVE (A0) SA6 CLOA FETCH OUTPUT,OC,X5 GET OPEN/CLOSE FLAG SX6 #CLO# FILE CLOSED IX5 X5-X6 ZR X5,CLO1 IF FILE CLOSED CLOSEM OUTPUT,RET,FILE CLO1 SA1 CLOA RESTORE (A0) SA0 X1+ EQ VDTCLO$X RETURN CLOA BSSZ 1 (A0) CRM SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * VDTOPN$; CRM SPACE 4,10 *** VDTOPN$ - INITIALIZE THE *TERMIO* MODULE. * * USES X - ALL. * A - 0, 1, 2, 6, 7. * B - 1, 2, 3, 4, 5. * * MACROS FETCH, GETLOF, OPENM, PUTP. VDTOPN$ SUBR ENTRY/EXIT SB1 1 SX6 A0 SAVE (A0) SX7 X1 SA6 OPNA SA7 OPNB SAVE FET ADDRESS FETCH OUTPUT,OC,X5 GET OPEN/CLOSE FLAG SX6 #OPE# FILE OPENED IX5 X5-X6 ZR X5,OPN1 IF FILE OPENED OPENM OUTPUT,OUTPUT,N INITIALIZE *TERMIO* MODULE PUTP OUTPUT,OPNB,0,,,0 OPN1 GETLOF OPNC-1 GET LIST OF FILES SA2 OPNC-1 LX2 30 SX1 X2 POINTER ADDRESS SA2 X1+B1 READ UP FIRST ENTRY SX6 X2 SA1 OPNB SA2 X1 SA6 A2+ RETURN FET ADDRESS SA1 X6+B1 FIRST SA2 A1+B1 IN SA3 A2+B1 OUT SA4 A3+B1 LIMIT SX6 X1-OPNC ZR X6,OPN4 IF BUFFER ALREADY SWITCHED SX6 X1 SX7 X4 IX7 X7-X6 CURRENT BUFFER LENGTH SX7 X7-OPNCL PL X7,OPN4 IF CURRENT BUFFER LARGE ENOUGH SX6 OPNC ALLOCATE LARGER BUFFER MX0 42 SB2 X1 FIRST SB3 X2 IN SB4 X3 OUT SB5 X4 LIMIT BX7 X0*X1 SET NEW FIRST BX7 X7+X6 SA7 A1 BX7 X0*X4 SET NEW LIMIT SX4 OPNC+OPNCL BX7 X7+X4 SA7 A4 SA6 A3 SET NEW OUT SA7 OPNC-1 SET DESTINATION ADDRESS OPN2 EQ B4,B3,OPN3 IF OLD BUFFER IS EMPTY SA1 B4 TRANSFER OLD DATA TO NEW BUFFER SB4 B4+B1 ADVANCE POINTER BX7 X1 SA7 A7+B1 PLACE WORD INTO NEW BUFFER NE B4,B5,OPN2 IF NO WRAP AROUND SB4 B2 RESET POINTER EQ OPN2 CONTINUE TRANSFER OPN3 SX6 A7+1 SET IN SA6 A2+ OPN4 BSS 0 SA1 OPNA RESTORE (A0) SA0 X1+ EQ VDTOPN$X RETURN OPNA BSSZ 1 (A0) OPNB BSSZ 1 FET ADDRESS BSS 1 OPNC BSS 401B OUTPUT BUFFER OPNCL EQU *-OPNC END *ENDIF IDENT VDTFUN ENTRY VDTFUN SYSCOM B1 TITLE VDTFUN - GET FUNCTION NAME. *COMMENT VDTFUN - GET FUNCTION NAME. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. FUN SPACE 4,10 *** VDTFUN - GET FUNCTION NAME. * * E.D. REDIG. 83/02/11. FUN SPACE 4,10 *** *VDTFUN* PROVIDES AN INTERFACE TO *VDTFUN$* FOR PROGRAMS * WRITTEN IN HIGHER LEVEL LANGUAGES. FUN SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTFUN(FUNCTION,NAME,LENGTH) * * *COBOL5* CALL - * * ENTER VDTFUN USING FUNCTION, NAME, LENGTH. * * FUNCTION = UNSHIFTED FUNCTION NUMBER (1-16). * = SHIFTED FUNCTION NUMBER (MINUS 1-16). * NAME = FUNCTION NAME. * LENGTH = NUMBER OF CHARACTERS IN NAME. FUN SPACE 4,10 ** VDTFUN - GET FUNCTION NAME. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF FUNCTION NUMBER. * * USES A - 1. * B - 1, 2, 3. * * CALLS SFCNP$, SFCSP$, VDTFUN$. VDTFUN SUBR ENTRY/EXIT SB1 1 SB2 FUNA FWA OF PARAMETER LIST SB3 FUNB LENGTH AND OFFSET RJ =XSFCNP$ COPY FUNCTION RJ =XSFCSP$ COPY NAME RJ =XSFCNP$ COPY LENGTH SA1 FUNA SET NEW PARAMETER LIST ADDRESS RJ =XVDTFUN$ GET FUNCTION NAME EQ VDTFUNX RETURN FUNA BSSZ 6 NEW PARAMETER LIST FUNB BSSZ 2 LENGTH AND OFFSET FOR NAME END IDENT VDTGEN ENTRY VDTGEN SYSCOM B1 TITLE VDTGEN - GET GENERIC FUNCTION NAME. *COMMENT VDTGEN - GET GENERIC FUNCTION NAME. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. GEN SPACE 4,10 *** VDTGEN - GET GENERIC FUNCTION NAME. * * E.D. REDIG. 83/02/11. GEN SPACE 4,10 *** *VDTGEN* PROVIDES AN INTERFACE TO *VDTGEN$* FOR PROGRAMS * WRITTEN IN HIGHER LEVEL LANGUAGES. GEN SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTGEN(FUNCTION,NAME,LENGTH) * * *COBOL5* CALL - * * ENTER VDTGEN USING FUNCTION, NAME, LENGTH. * * FUNCTION = UNSHIFTED FUNCTION NUMBER (1-32). * = SHIFTED FUNCTION NUMBER (MINUS 1-16). * NAME = FUNCTION NAME. * LENGTH = NUMBER OF CHARACTERS IN NAME. GEN SPACE 4,10 ** VDTGEN - GET GENERIC FUNCTION NAME. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF FUNCTION NUMBER. * * USES A - 1. * B - 1, 2, 3. * * CALLS SFCNP$, SFCSP$, VDTGEN$. VDTGEN SUBR ENTRY/EXIT SB1 1 SB2 GENA FWA OF PARAMETER LIST SB3 GENB LENGTH AND OFFSET RJ =XSFCNP$ COPY FUNCTION RJ =XSFCSP$ COPY NAME RJ =XSFCNP$ COPY LENGTH SA1 GENA SET NEW PARAMETER LIST ADDRESS RJ =XVDTGEN$ GET FUNCTION NAME EQ VDTGENX RETURN GENA BSSZ 6 NEW PARAMETER LIST GENB BSSZ 2 LENGTH AND OFFSET FOR NAME END *IF UNDEF,RETRO IDENT VDTGSL ENTRY VDTGSL SYSCOM B1 TITLE VDTGSL - GET SCREEN/LINE MODE. *COMMENT VDTGSL - GET SCREEN/LINE MODE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. GSL SPACE 4,10 *** VDTGSL - GET SCREEN/LINE MODE. * * E.D. REDIG. 83/02/09. GSL SPACE 4,10 *** *VDTGSL* PROVIDES AN INTERFACE TO *SETSLM* FOR PROGRAMS * WRITTEN IN HIGHER LEVEL LANGUAGES. GSL SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTGSL(MODEL,SCREEN) * * *COBOL5* CALL - * * ENTER VDTGSL USING MODEL, SCREEN. * * MODEL = TERMINAL MODEL NUMBER. * SCREEN = 0, IF LINE MODE. * = 1, IF SCREEN MODE. GSL SPACE 4,10 ** VDTGSL - GET SCREEN/LINE MODE. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF MODEL NUMBER. * * USES X - 0, 1, 2, 6. * A - 1, 2, 6. * B - 1. * * CALLS SETSLM. VDTGSL SUBR ENTRY/EXIT SB1 1 SX6 X1 SA1 A1+B1 SA6 GSLA SAVE ORDINAL ADDRESS SX6 X1 SA6 A6+B1 SAVE SCREEN/LINE ADDRESS SETSLM GSLC READ SCREEN/LINE MODE SA1 GSLC MX0 -6 BX6 -X0*X1 EXTRACT ORDINAL SA2 GSLA LX1 0-6 MX0 -1 SA6 X2 STORE ORDINAL BX6 -X0*X1 EXTRACT SCREEN/LINE SA2 GSLB SA6 X2+ STORE SCREEN/LINE EQ VDTGSLX RETURN GSLA CON 0 ORDINAL ADDRESS GSLB CON 0 SCREEN/LINE ADDRESS GSLC CON 0 *SETSLM* PARAMETER WORD END *ENDIF IDENT VDTGTA ENTRY VDTGTA SYSCOM B1 TITLE VDTGTA - GET TEXT PARAMETER. *COMMENT VDTGTA - GET RESIDENT TERMCAP ADDRESS. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. GTA SPACE 4,10 *** VDTGTA - GET RESIDENT TERMCAP ADDRESS. * * M. L. SWANSON. 84/05/09. GTA SPACE 4,10 *** *VDTGTA* CALLS *GTN* TO RETRIEVE A RESIDENT TERMCAP * ADDRESS CORRESPONDING TO THE GIVEN TERMINAL MODEL. GTA SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * VDTGTA(MODEL,ADDRESS); * * MODEL = TERMINAL MODEL. * ADDRESS = CORRESPONDING RESIDENT CAPSULE ADDRESS. GTA SPACE 4,10 ** VDTGTA - GET RESIDENT TERMCAP ADDRESS. * * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF FIRST PARAMETER. * * USES X - 2, 6, 7. * A - 2, 6, 7. * B - 1. * * CALLS GTN. VDTGTA SUBR ENTRY/EXIT SB1 1 SX6 A1 SAVE ADDRESS OF SYMPL PARAMETERS SA2 X1 GET TERMINAL MODEL SA6 GTAA STORE PARAMETER LIST * GET RESIDENT TERMCAP ADDRESS. RJ GTN * *GTN* RETURNS ADDRESS OF TERMCAP IN X1. SA2 GTAA GET ADDRESS OF SYMPL PARAMETERS SA2 X2+1 GET ADDRESS PARAMETER SX7 X1 EXTRACT RESIDENT TERMCAP ADDRESS SA7 X2 STORE ADDRESS IN PARAMETER LIST EQ VDTGTAX RETURN LIST X *CALL COMCGTO LIST -X GTAA VFD 60/0 ADDRESS OF SYMPL PARAMETER LIST END IDENT VDTGTO ENTRY VDTGTO SYSCOM B1 TITLE VDTGTO - GET TERMINAL ORDINAL. *COMMENT VDTGTO - GET TERMINAL ORDINAL. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. GTO SPACE 4,10 *** VDTGTO - GET TERMINAL ORDINAL. * * E.D. REDIG. 83/02/03. GTO SPACE 4,10 *** *VDTGTO* PROVIDES AN INTERFACE TO *COMCGTO* FOR * PROGRAMS WRITTEN IN HIGHER LEVEL LANGUAGES. GTO SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTGTO(ORDINAL,MNEMONIC) * * *COBOL5* CALL - * * ENTER VDTGTO USING ORDINAL, MNEMONIC. * * ORDINAL = TERMINAL MODEL NUMBER. * MNEMONIC = TERMINAL MNEMONIC. GTO SPACE 4,10 ** VDTGTO - GET TERMINAL ORDINAL. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF MODEL NUMBER. * * USES X - 1, 6. * A - 1, 6. * B - 1, 2, 3. * * CALLS SFCNP$, SFCSP$, VDGTO. VDTGTO SUBR ENTRY/EXIT SB1 1 SB2 GTOA FWA OF PARAMETER LIST SB3 GTOB LENGTH AND OFFSET RJ =XSFCNP$ COPY ORDINAL RJ =XSFCSP$ COPY MNEMONIC SA1 GTOB GET MNEMONIC LENGTH NZ X1,VGO1 IF VALID LENGTH SX6 10 ONE WORD LENGTH SA6 GTOB RESTORE MNEMONIC LENGTH VGO1 SA1 GTOA SET NEW PARAMETER LIST ADDRESS RJ VDGTO GET TERMINAL ORDINAL EQ VDTGTOX RETURN GTO SPACE 4,10 ** VDGTO - GET TERMINAL ORDINAL. * * ENTRY (A1) = FWA OF NEW PARAMETER LIST. * (X1) = FWA OF MODEL NUMBER. * * EXIT RETURN TERMINAL ORDINAL CORRESPONDING TO MNEMONIC. * * USES X - 0, 1, 2, 3, 4, 5, 6. * A - 1, 2, 3, 6. * B - 1, 2, 3, 4, 5, 6, 7. * * CALLS GTO. VDGTO SUBR ENTRY/EXIT SB1 1 SB7 X1 SAVE RETURN ADDRESS SA1 A1+B1 GET MNEMONIC SA2 A1+B1 GET LENGTH SA3 A2+B1 GET OFFSET SA1 X1 SA2 X2 SA3 X3+ SX4 6 SB6 X2 SAVE LENGTH IX4 X4*X3 COMPUTE SHIFT COUNT SB2 X4+ SB4 X3 SAVE OFFSET LX1 B2 LEFT JUSTIFY FIRST WORD OF MNEMONIC SX4 10 SB3 60 SHIFT COUNT IX4 X4-X3 COMPUTE CHARACTERS LEFT IN FIRST WORD BX6 X6-X6 CLEAR TERMINAL NAME SB5 X4 SAVE CHARACTERS LEFT IN FIRST WORD LX1 6 POSITION MNEMONIC SB2 6 SX0 1R+ MX3 -6 ONE CHARACTER MASK BX2 X2-X2 VDG1 BX4 -X3*X1 GET A CHARACTER ZR X4,VDG3 IF END OF NAME IX5 X4-X0 PL X5,VDG4 IF NOT ALPHANUMERIC LX6 6 SB3 B3-B2 DECREMENT SHIFT COUNT BX6 X6+X4 TRANSFER A CHARACTER SB5 B5-B1 DECREMENT FIRST WORD COUNT LX1 6 SB6 B6-B1 DECREMENT LENGTH COUNT ZR B6,VDG3 IF ENOUGH CHARACTERS GT B5,VDG1 IF MORE IN THIS WORD ZR B3,VDG2 IF FULL WORD SA1 A1+1 GET NEXT WORD SB5 B4 NUMBER OF CHARACTERS LEFT LX1 6 POSITION MNEMONIC EQ VDG1 LOOP FOR NEXT CHARACTER VDG2 NZ B6,VDGTOX IF TOO MANY CHARACTERS VDG3 NG B3,VDGTOX IF TOO MANY CHARACTERS VDG4 ZR X6,VDGTOX IF ZERO LENGTH NAME LX6 X6,B3 POSITION NAME BX2 X6 RJ GTO GET TERMINAL ORDINAL SX6 X1 SA6 B7 STORE ORDINAL EQ VDGTOX RETURN LIST X *CALL COMCGTO LIST * GTOA BSSZ 1 TERMINAL ORDINAL BSSZ 1 MNEMONIC BSSZ 1 ADDRESS OF MNEMONIC LENGTH BSSZ 1 ADDRESS OF MNEMONIC OFFSET BSSZ 1 ZERO TERMINATOR GTOB BSSZ 1 MNEMONIC LENGTH BSSZ 1 MNEMONIC OFFSET END IDENT VDTGTN ENTRY VDTGTN SYSCOM B1 TITLE VDTGTN - GET TERMINAL MNEMONIC. *COMMENT VDTGTO - GET TERMINAL MNEMONIC. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. GTN SPACE 4,10 *** VDTGTN - GET TERMINAL MNEMONIC. * * E.D. REDIG. 83/02/03. GTN SPACE 4,10 *** *VDTGTN* PROVIDES AN INTERFACE TO *COMCGTO* FOR * PROGRAMS WRITTEN IN HIGHER LEVEL LANGUAGES. GTN SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTGTN(ORDINAL,MNEMONIC) * * *COBOL5* CALL - * * ENTER VDTGTN USING ORDINAL, MNEMONIC. * * ORDINAL = TERMINAL MODEL NUMBER. * MNEMONIC = TERMINAL MNEMONIC. GTN SPACE 4,10 ** VDTGTN - GET TERMINAL NAME. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF MODEL NUMBER. * * USES X - 1, 6. * A - 1, 6. * B - 1, 2, 3. * * CALLS SFCNP$, SFCSP$, VDGTN. VDTGTN SUBR ENTRY/EXIT SB1 1 SB2 GTNA FWA OF PARAMETER LIST SB3 GTNB LENGTH AND OFFSET RJ =XSFCNP$ COPY ORDINAL RJ =XSFCSP$ COPY MNEMONIC SA1 GTNB GET MNEMONIC LENGTH NZ X1,VGN1 IF VALID LENGTH SX6 10 ONE WORD LENGTH SA6 GTNB RESTORE MNEMONIC LENGTH VGN1 SA1 GTNA SET NEW PARAMETER LIST ADDRESS RJ VDGTN GET TERMINAL NAME EQ VDTGTNX RETURN GTN SPACE 4,10 ** VDGTN - GET TERMINAL MNEMONIC. * * ENTRY (A1) = FWA OF NEW PARAMETER LIST. * (X1) = FWA OF MODEL NUMBER. * * EXIT RETURN TERMINAL MNEMONIC CORRESPONDING TO ORDINAL. * * USES X - ALL. * A - 1, 2, 3, 4, 6. * B - 1, 2, 3, 4, 5, 6, 7. * * CALLS GTN. VDGTN SUBR ENTRY/EXIT SB1 1 SA2 X1 GET ORDINAL SA1 A1+B1 GET MNEMONIC SB7 X1 SAVE RETURN ADDRESS SA3 A1+B1 GET LENGTH SA4 A3+B1 GET OFFSET SA3 X3 SA4 X4+ RJ GTN GET TERMINAL MNEMONIC SA2 B7+ SX5 6 SB6 X3 SAVE LENGTH IX5 X5*X4 COMPUTE SHIFT COUNT SB2 X5+ SB4 X4 SAVE OFFSET LX2 B2 LEFT JUSTIFY FIRST WORD OF MNEMONIC SB5 10 SX7 B2 SAVE SHIFT COUNT SB3 60 SHIFT COUNT SB5 B5-B4 COMPUTE CHARACTERS LEFT IN FIRST WORD LX1 6 POSITION MNEMONIC SB2 6 MX3 -6 ONE CHARACTER MASK VDN1 BX4 -X3*X1 GET A CHARACTER NZ X4,VDN2 IF NOT END OF NAME SX4 1R VDN2 LX2 6 BX2 X3*X2 CLEAR CHARACTER SB3 B3-B2 DECREMENT SHIFT COUNT BX2 X2+X4 TRANSFER A CHARACTER SB5 B5-1 DECREMENT FIRST WORD COUNT LX1 6 SB6 B6-B1 DECREMENT LENGTH COUNT ZR B6,VDN4 IF ENOUGH CHARACTERS GT B5,VDN1 IF MORE IN THIS WORD ZR B3,VDN3 IF FULL WORD SB5 X7 SB3 B3-B5 SHIFT COUNT SX7 B0 LX6 X2,B3 POSITION MNEMONIC SA6 B7 STORE WORD ONE SA2 B7+B1 GET NEXT WORD SB7 A2+ SAVE RETURN ADDRESS SB5 B4 NUMBER OF CHARACTERS LEFT LX2 6 POSITION MNEMONIC SB3 60 EQ VDN1 LOOP FOR NEXT CHARACTER VDN3 NZ B6,VDGTNX IF TOO MANY CHARACTERS VDN4 NG B3,VDGTNX IF TOO MANY CHARACTERS SB2 X7 SB3 B3-B2 SHIFT COUNT LX6 X2,B3 POSITION NAME SA6 B7 STORE MNEMONIC EQ VDGTNX RETURN LIST X *CALL COMCGTO LIST * GTNA BSSZ 1 TERMINAL ORDINAL BSSZ 1 MNEMONIC BSSZ 1 ADDRESS OF MNEMONIC LENGTH BSSZ 1 ADDRESS OF MNEMONIC OFFSET BSSZ 1 ZERO TERMINATOR GTNB BSSZ 1 MNEMONIC LENGTH BSSZ 1 MNEMONIC OFFSET END IDENT VDTLOF$ ENTRY VDTLOF$ SYSCOM B1 TITLE VDTLOF$ - SET LIST OF FILES. *COMMENT VDTLOF$ - SET LIST OF FILES. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. LOF SPACE 4,10 *** VDTLOF$ - SET LIST OF FILES. * * G.K. CHACE. 83/02/03. LOF SPACE 4,10 ** COMMON DECKS. *CALL COMCCMD LOF SPACE 4,15 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * VDTLOF$(PARAMETER); * * PARAMETER = ADDRESS TO LIST OF FILES TABLE. LOF SPACE 4,10 ** VDTLOF$ - SET LIST OF FILES. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF LIST OF FILES TABLE. * * USES B - 1. * * MACROS SETLOF. VDTLOF$ SUBR ENTRY/EXIT SB1 1 SETLOF X1 EQ VDTLOF$X RETURN END IDENT VDTMSG$ ENTRY VDTMSG$ SYSCOM B1 TITLE VDTMSG$ - SEND MESSAGE. *COMMENT SEND MESSAGE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. MES SPACE 4,10 *** VDTMSG$ - SEND MESSAGE. * * G.K. CHACE. 83/02/03. MES SPACE 4,25 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTMSG$ (TEXT,OPTION,R) * * *SYMPL* CALL - * * VDTMSG$(TEXT,OPTION,1); * * (TEXT) = MESSAGE ARRAY, TERMINATED BY ZERO BYTE. * (OPTION) = 0, SEND MESSAGE TO SYSTEM DAYFILE, * LOCAL JOB DAYFILE, AND A AND B DISPLAYS. * = 1, SEND MESSAGE TO LINE 1 OF CONTROL POINT. * = 2, SEND MESSAGE TO LINE 2 OF CONTROL POINT. * = 3, SEND MESSAGE TO USER DAYFILE AND LINE * 1 OF CONTROL POINT. * = 4, SEND MESSAGE TO ERROR LOG DAYFILE. * = 5, SEND MESSAGE TO ACCOUNT DAYFILE. * = 6, SAME AS 0. * = 7, SAME AS 3. * = 9, SEND MESSAGE TO BINARY MAINTENANCE LOG. * = 5HLOCAL, SEND MESSAGE TO LOCAL JOB DAYFILE. MES SPACE 4,15 *** VDTMSG$ - SEND MESSAGE. * * ENTRY (TEXT) - AN ARRAY WITH THE TEXT IN IT, OR AN ITEM * WITH TEXT IN IT. * (OPTION) - AN ITEM CONTAINING ONE OF THE OPTIONS. * (R) = 1, IF RECALL. * * USES X - 2, 3, 4. * A - 2, 3. * B - 1. * * MACROS MESSAGE. VDTMSG$ SUBR ENTRY/EXIT SB1 1 SA2 A1+B1 ADDRESS OF OPTION SA2 X2 OPTION SA3 =0HLOCAL BX4 X2-X3 ZR X4,MES1 IF LOCAL MESSAGE X1,X2,R EQ VDTMSG$X RETURN MES1 MESSAGE X1,LOCAL,R EQ VDTMSG$X RETURN END IDENT VDTPRT$ ENTRY VDTPRT$ SYSCOM B1 TITLE VDTPRT$ - DISABLE/ENABLE PROMPT. *COMMENT VDTPRT$ - DISALBE/ENABLE PROMPT. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. PRT SPACE 4,10 *** VDTPRT$ - DISABLE/ENABLE PROMPT. * * E.D. REDIG. 84/05/21. PRT SPACE 4,10 *** CALLING SEQUENCE. * * *SYMPL* CALL - * * VDTPRT$(PARAMETER); * * PARAMETER = PARAMETER TO PASS TO PROMPT MACRO. * = 0, DISABLE PROMPT. * = 1, ENABLE PROMPT. PRT SPACE 4,10 ** VDTPRT$ - DISABLE/ENABLE PROMPT. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * * USES X - 1. * A - 1. * B - 1. * * MACROS PROMPT. VDTPRT$ SUBR ENTRY/EXIT SB1 1 SA1 X1+ ZR X1,PRP1 IF PROMPT OFF PROMPT ON EQ VDTPRT$X RETURN PRP1 PROMPT OFF EQ VDTPRT$X RETURN END IDENT VDTRD$ ENTRY VDTRD$ SYSCOM B1 TITLE VDTRD$ - READ FILE TO *CIO* BUFFER. *COMMENT READ FILE TO *CIO* BUFFER. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. TRD SPACE 4,10 *** VDTRD$ - READ FILE TO *CIO* BUFFER. * * G.K. CHACE. 83/02/03. TRD SPACE 4,10 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTRD$ (FILE,R) * * *SYMPL* CALL - * * VDTRD$(FILE,1); * * (FILE) = FIRST WORD OF THE FET. * (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED. TRD SPACE 4,10 *** VDTRD$ - READ FILE TO *CIO* BUFFER. * * ENTRY (FILE) - AN ARRAY THAT CONTAINS THE FET. * (R) = RECALL IF .NE. 0, RECALL IS REQUESTED. * * USES X - 2. * A - 2. * B - 1. * * MACROS READ. VDTRD$ SUBR ENTRY/EXIT SB1 1 SA2 A1+B1 GET RECALL PARAMETER SA2 X2 NZ X2,TRD1 IF RECALL READ X1 EQ VDTRD$X RETURN TRD1 READ X1,R EQ VDTRD$X RETURN END IDENT VDTREC$ ENTRY VDTREC$ SYSCOM B1 TITLE VDTREC$ - READ CODED LINE IN *C* FORMAT. *COMMENT READ CODED LINE IN *C* FORMAT. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. REC SPACE 4,10 *** VDTREC$ - READ CODED LINE IN *C* FORMAT. * * G.K. CHACE. 83/02/03. REC SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTREC$ (FILE,BUF,N,STATUS) * * *SYMPL* CALL - * * VDTREC$(FILE,BUF,N,STATUS); * * (FILE) = FIRST WORD OF THE FET. * (BUF) = FIRST WORD OF THE WORKING BUFFER. * (N) = WORD COUNT OF THE WORKING BUFFER. REC SPACE 4,25 *** VDTREC$ - READ CODED LINE IN *C* FORMAT. * * TRANSFERS DATA UNTIL THE END OF LINE BYTE (0000) IS SENSED. * * ENTRY (FILE) = FWA OF THE FET. * (BUF) = FWA OF WORKING BUFFER. * (N) = WORD COUNT OF THE WORKING BUFFER. * * EXIT (STATUS) = 0, TRANSFER COMPLETE. * = -1, END-OF-FILE DETECTED ON FILE. * = -2, END-OF-INFORMATION DETECTED ON FILE. * = LWA, END-OF-RECORD DETECTED ON FILE BEFORE * TRANSFER WAS COMPLETE. * LWA = ADDRESS + 1 OF LAST WORD TRANSFERRED TO * WORKING BUFFER. * * USES X - 3, 4, 5, 6. * A - 3, 4, 5, 6. * B - 1. * * MACROS READC. VDTREC$ SUBR ENTRY/EXIT SB1 1 SA3 A1+B1 FWA OF WORKING BUFFER SA4 A3+B1 ADDRESS OF WORD COUNT SA5 A4+B1 (X5) = ADDRESS OF STATUS WORD SA4 X4 WORD COUNT READC X1,X3,X4 BX6 X1 SA6 X5 EQ VDTREC$X RETURN END IDENT VDTREO$ ENTRY VDTREO$ SYSCOM B1 TITLE VDTREO$ - READ ONE WORD. *COMMENT READ ONE WORD. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. REO SPACE 4,10 *** VDTREO$ - READ ONE WORD. * * G.K. CHACE. 83/02/03. REO SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTREO$ (FILE,WORD,STATUS) * * *SYMPL* CALL - * * VDTREO$(FILE,WORD,STATUS); * * (FILE) = FIRST WORD OF THE FET. REO SPACE 4,20 *** VDTREO$ - READ ONE WORD. * * ENTRY (FILE) = FIRST WORD OF THE FET. * * EXIT (WORD) = WORD READ IF (STATUS) = 0. * (STATUS) = 0, TRANSFER COMPLETE. * = -1, END-OF-FILE DETECTED ON FILE. * = -2, END-OF-INFORMATION DETECTED ON FILE. * = LWA, END-OF-RECORD DETECTED ON FILE BEFORE * TRANSFER WAS COMPLETE. * LWA = ADDRESS + 1 OF LAST WORD TRANSFERRED TO * WORKING BUFFER. * * USES X - 3, 5, 6, 7. * A - 3, 5, 6, 7. * B - 1. * * MACROS READO. VDTREO$ SUBR ENTRY/EXIT SB1 1 SA3 A1+B1 ADDRESS OF WORD SA5 A3+B1 ADDRESS OF STATUS WORD BX0 X3 READO X1 SA6 X0 RETURN WORD READ BX7 X1 RETURN STATUS SA7 X5 EQ VDTREO$X RETURN END *IF UNDEF,RETRO IDENT VDTSSL ENTRY VDTSSL SYSCOM B1 TITLE VDTSSL - SET SCREEN/LINE MODE. *COMMENT VDTSSL - SET SCREEN/LINE MODE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. SSL SPACE 4,10 *** VDTSSL - SET SCREEN/LINE MODE. * * E.D. REDIG. 83/02/09. SSL SPACE 4,10 *** *VDTSSL* PROVIDES AN INTERFACE TO *SETSLM* FOR PROGRAMS * WRITTEN IN HIGHER LEVEL LANGUAGES. SSL SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTSSL(MODEL,SCREEN) * * *COBOL5* CALL - * * ENTER VDTSSL USING MODEL, SCREEN. * * MODEL = TERMINAL MODEL NUMBER. * SCREEN = 0, IF LINE MODE. * = 1, IF SCREEN MODE. SSL SPACE 4,10 ** VDTSSL - SET SCREEN/LINE MODE. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = FWA OF MODEL NUMBER. * * USES X - 1, 2, 6. * A - 1, 2, 6. * B - 1. * * CALLS SETSLM. VDTSSL SUBR ENTRY/EXIT SB1 1 SA2 A1+B1 GET SCREEN/LINE SA1 X1 GET ORDINAL SA2 X2 SX6 X1 ZR X2,SSL1 IF LINE MODE SX2 B1+ SET SCREEN MODE LX2 6 BX6 X6+X2 SSL1 SA6 SSLA SET PARAMETER WORD SETSLM SSLA,W SET SCREEN/LINE MODE EQ VDTSSLX RETURN SSLA CON 0 *SETSLM* PARAMETER WORD END IDENT VDTRWD ENTRY VDTRWD SYSCOM B1 TITLE VDTRWD - REWIND LOCAL FILE. *COMMENT VDTRWD - REWIND LOCAL FILE. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. RWD SPACE 4,10 *** VDTRWD - REWIND LOCAL FILE. * * M. L. SWANSON. 84/05/09. RWD SPACE 4,10 *** *VDTRWD* PROVIDES AN INTERFACE TO HIGH-LEVEL * LANGUAGES USING THE *REWIND* MACRO. RWD SPACE 4,10 *** REWIND SPECIFIED LOCAL FILE. * * CALLING SEQUENCE. * * *SYMPL* CALL - * * VDTRWD(ADDRESS,RECALL); * * ADDRESS = ADDRESS OF FET. * RECALL = AUTO RECALL ( 0 = NO RECALL ). RWD SPACE 4,10 ** VDTRWD - REWIND SPECIFIED LOCAL FILE. * * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST. * (X1) = ADDRESS OF FIRST PARAMETER. * * USES X - 2, 3. * A - 2, 3. * B - 1. * * MACROS REWIND. VDTRWD SUBR ENTRY/EXIT SB1 1 SA3 A1 GET ADDRESS OF FET PARAMETER SA2 A1+B1 GET RECALL PARAMETER ADDRESS SA2 X2+ GET RECALL PARAMETER ZR X2,RWD1 IF NO AUTO RECALL SPECIFIED REWIND X3 REWIND FILE WITHOUT RECALL EQ VDTRWDX RETURN RWD1 REWIND X3,1 REWIND WITH AUTO RECALL EQ VDTRWDX RETURN END *ENDIF IDENT VDTWRC$ ENTRY VDTWRC$ SYSCOM B1 TITLE VDTWRC$ - WRITE CODED LINE IN *C* FORMAT. *COMMENT WRITE CODED LINE IN *C* FORMAT. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. WRC SPACE 4,10 *** VDTWRC$ - WRITE CODED LINE IN *C* FORMAT. * * G.K. CHACE. 83/02/03. WRC SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTWRC$ (FILE,BUF) * * *SYMPL* CALL - * * VDTWRC$(FILE,BUF); * * (FILE) = FIRST WORD OF THE FET. * (BUF) = FIRST WORD OF THE WORKING BUFFER. WRC SPACE 4,15 *** VDTWRC$ - WRITE CODED LINE IN *C* FORMAT. * * TRANSFERS DATA UNTIL THE END OF LINE BYTE (0000) IS SENSED. * * ENTRY (FILE) = FIRST WORD OF THE FET. * (BUF) = FIRST WORD OF THE WORKING BUFFER. * * USES X - 3. * A - 3. * B - 1. * * MACROS WRITEC. VDTWRC$ SUBR ENTRY/EXIT SB1 1 SA3 A1+B1 FWA OF WORKING BUFFER WRITEC X1,X3 EQ VDTWRC$X RETURN END IDENT VDTWRO$ ENTRY VDTWRO$ SYSCOM B1 TITLE VDTWRO$ - WRITE ONE WORD. *COMMENT WRITE ONE WORD. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. WRO SPACE 4,10 *** VDTWRO$ - WRITE ONE WORD. * * G.K. CHACE. 83/02/03. WRO SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTWRO$ (FILE,WORD) * * *SYMPL* CALL - * * VDTWRO$(FILE,WORD); * * (FILE) = FIRST WORD OF THE FET. * (WORD) = WORD TO BE TRANSFERRED. WRO SPACE 4,10 *** VDTWRO$ - WRITE ONE WORD. * * ENTRY (FILE) = FIRST WORD OF THE FET. * (WORD) = WORD TO BE TRANSFERRED. * * USES X - 3, 6. * A - 3. * B - 1. * * MACROS WRITEO. VDTWRO$ SUBR ENTRY/EXIT SB1 1 SA3 A1+B1 ADDRESS OF WORD SA3 X3 WORD BX6 X3 WRITEO X1 EQ VDTWRO$X RETURN END IDENT VDTWRR$ ENTRY VDTWRR$ SYSCOM B1 TITLE VDTWRR$ - WRITE END OF RECORD. *COMMENT WRITE END OF RECORD. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992. WRR SPACE 4,10 *** VDTWRR$ - WRITE END OF RECORD. * * G.K. CHACE. 83/02/03. WRR SPACE 4,15 *** CALLING SEQUENCE. * * *FORTRAN5* CALL - * * CALL VDTWRR$ (FILE,R) * * *SYMPL* CALL - * * VDTWRR$(FILE,R); * * (FILE) = FIRST WORD OF THE FET. * (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED. WRR SPACE 4,10 *** VDTWRR$ - WRITE END OF RECORD. * * ENTRY (FILE) = FIRST WORD OF THE FET. * (R) = RECALL, IF .NE. 0, RECALL IS REQUESTED. * * USES X - 2. * A - 2. * B - 1. * * MACROS WRITER. VDTWRR$ SUBR ENTRY/EXIT SB1 1 SA2 A1+B1 GET RECALL PARAMETER SA2 X2 NZ X2,WRT1 IF RECALL REQUESTED WRITER X1 EQ VDTWRR$X RETURN WRT1 WRITER X1,R EQ VDTWRR$X RETURN END