cdc:nos2.source:opl871:fselib
Table of Contents
FSELIB
Table Of Contents
- [00004] GETUTAB - GET USER TABLE.
- [00037] GETUTAB - GET USER TABLE.
- [00100] SAVUTAB - SAVE USER TABLE ENTRY.
- [00136] SAVUTAB - SAVE USER TABLE ENTRY.
- [00218] FINDBIT - FIND BIT ON IN SMFEX BITMAP.
- [00246] FINDBIT - FIND BIT ON IN SMFEX BITMAP.
- [00303] SPREAD - SPREAD RETURN JUMP WORDS TO ENTRIES.
- [00330] SPREAD - SPREAD RETURN JUMP WORDS TO ENTRIES.
- [00377] GATHER - GATHER RETURN JUMP WORDS FROM ENTRIES.
- [00409] GATHER - GATHER RETURN JUMP WORDS FROM ENTRIES.
- [00471] READECS - READ EXTENDED MEMORY BLOCK.
- [00497] READECS - READ EXTENDED MEMORY BLOCK.
- [00542] WRITECS - WRITE EXTENDED MEMORY BLOCK.
- [00568] WRITECS - WRITE EXTENDED MEMORY BLOCK.
- [00613] FLDLEN - CHANGE FIELD LENGTH.
- [00631] FLDLEN - CHANGE FIELD LENGTH.
- [00649] TESTECS - TEST FOR ECS AVAILABILITY.
- [00669] TESTECS - TEST FOR ECS AVAILABILITY.
- [00700] FLDLENE - CHANGE ECS FIELD LENGTH.
- [00718] FLDLENE - CHANGE ECS FIELD LENGTH.
- [00741] LINESZ - MEASURE LINE SIZE AND REPAIR.
- [00780] LINESZ - MEASURE LINE SIZE AND REPAIR.
- [00859] LENGTH - COUNT CHARACTERS IN LINE.
- [00900] LENGTH - COUNT CHARACTERS IN LINE.
- [00974] NOSWDSZ - MEASURE ZERO BYTE TERMINATOR.
- [00997] NOSWDSZ - MEASURE ZERO BYTE TERMINATOR.
- [01049] MOVELN - MOVE AND MEASURE INTERNAL LINE.
- [01079] MOVELN - MOVE AND MEASURE INTERNAL LINE.
- [01156] FASTCNI - CONVERT NORMAL INPUT.
- [01185] FASTCNI - CONVERT NORMAL INPUT.
- [01268] FASTCNO - CONVERT NORMAL OUTPUT.
- [01296] FASTCNO - CONVERT NORMAL OUTPUT.
- [01379] FASTCAI - CONVERT ASCII INPUT.
- [01416] FASTCAI - CONVERT ASCII INPUT.
- [01580] FASTCAO - CONVERT ASCII OUTPUT.
- [01608] FASTCAO - CONVERT ASCII OUTPUT.
- [01757] FASTFND - FIND STRING IN LINE.
- [01793] FASTFND - FIND STRING IN LINE.
- [01935] FASTRLC - RELOCATE VALUES IN VECTOR.
- [01958] FASTRLC - RELOCATE VALUES IN VECTOR.
- [01997] MOVEWD - MOVE WORDS.
- [02017] MOVEWD - MOVE WORDS.
- [02140] ZEROWD - ZERO WORDS.
- [02159] ZEROWD - ZERO WORDS.
- [02182] FIXCTL - FIX CONTROL BYTES.
- [02203] FIXCTL - FIX CONTROL BYTES.
- [02284] FASTLNB - IDENTIFY LAST NON BLANK.
- [02309] FASTLNB - IDENTIFY LAST NON BLANK.
- [02404] EXCHWD - EXCHANGE BLOCKS OF WRODS.
- [02424] EXCHWD - EXCHANGE BLOCKS OF WRODS.
- [02470] SFMSSTF - USE SFM TO ENABLE SUBSYSTEM.
- [02492] SFMSSTF - USE SFM TO ENABLE SUBSYSTEM.
- [02509] SFMCSTF - USE SFM TO DISABLE SUBSYSTEM.
- [02531] SFMCSTF - USE SFM TO DISABLE SUBSYSTEM.
- [02550] SETNAD - SET NO AUTO DROP FLAG.
- [02569] SETNAD - SET NO AUTO DROP FLAG.
- [02588] SETAUC - COMPUTE AND SET APPLICATION UNIT CHARGE.
- [02614] SETAUC - COMPUTE AND SET APPLICATION UNIT CHARGE.
- [02695] ONSW - SET SENSE SWITCHES.
- [02711] ONSW - SET SENSE SWITCHES.
- [02731] DISSJ - DISABLE/ENABLE SSJ=.
- [02754] DISSJ - DISABLE/ENABLE SSJ=.
- [02775] SETRFLE - SET RFL FOR EXTENDED MEMORY.
- [02791] SETRFLE - SET RFL FOR EXTENDED MEMORY.
- [02811] GETFLCE - DETERMINE EXTENDED MEMORY FIELD LENGTH.
- [02827] GETFLCE - DETERMINE EXTENDED MEMORY FIELD LENGTH.
- [02844] PROTEON - PROTECT EXTENDED MEMORY FIELD LENGTH.
- [02860] PROTEON - PROTECT EXTENDED MEMORY FIELD LENGTH.
- [02877] GETFNT - ACCESS LOCAL FNT-S.
- [02893] GETFNT - ACCESS LOCAL FNT-S.
- [02912] FILINFO - ACCESS FILE INFORMATION.
- [02928] FILINFO - ACCESS FILE INFORMATION.
- [02947] GETJO - GET JOB ORIGIN.
- [02963] GETJO - GET JOB ORIGIN.
- [02980] USERNUM - GET USER NUMBER.
- [02996] USERNUM - GET USER NUMBER.
- [03013] GETSS - GET SUBSYSTEM TYPE.
- [03029] GETSS - GET SUBSYSTEM TYPE.
- [03046] SETLOF - SET LIST OF FILES.
- [03062] SETLOF - SET LIST OF FILES.
- [03079] EXCST - EXECUTE CONTROL STATEMENT.
- [03095] EXCST - EXECUTE CONTROL STATEMENT.
- [03114] DISTCON - DISABLE TERMINAL CONTROL.
- [03130] DISTCON - DISABLE TERMINAL CONTROL.
- [03149] CSETA - SET 6/12 ASCII CHARACTER SET.
- [03163] CSETA - SET 6/12 ASCII CHARACTER SET.
- [03178] CSETN - SET NORMAL CHARACTER SET.
- [03192] CSETN - SET NORMAL CHARACTER SET.
- [03207] TSTATUS - GET TERMINAL STATUS.
- [03223] TSTATUS - GET TERMINAL STATUS.
- [03242] SYSREQ - PARAMETERIZED SYSTEM REQUEST.
- [03261] SYSREQ - PARAMETERIZED SYSTEM REQUEST.
- [03294] EESET - ENABLE EVENT.
- [03310] EESET - ENABLE EVENT.
Source Code
- FSELIB.txt
- IDENT GETUTAB
- ENTRY GETUTAB
- SYSCOM B1
- TITLE GETUTAB - GET USER TABLE.
- *COMMENT GETUTAB - GET USER TABLE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- GUT SPACE 4,10
- *** GETUTAB - GET USER TABLE.
- *
- * G.K. CHACE. 83/02/03.
- GUT SPACE 4,10
- *** GETUTAB READS A PACKED SMFEX USER TABLE ENTRY INTO
- * AN EXPANDED VECTOR. THE SYMPL CODE IN SMFEX MUST AGREE
- * WITH THIS ALGORITHM AS TO FORMAT OF EACH ARRAY.
- *
- * THE VECTOR HAS ONE WORD PER VALUE. ONE-BIT VALUES
- * ARE IN THE SIGN BITS. LARGER FIELDS ARE AT RIGHT OF WORD.
- GUT SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * GETUTAB(UTAB,VECTOR);
- *
- * UTAB = PACKED USER TABLE.
- * FIRST WORD OF USERTABLE ENTRY
- * FOURTEEN 1-BIT FIELDS
- * FOUR UNUSED BITS
- * THREE SIX-BIT FIELDS
- * TWO TWELVE BIT FIELDS
- * SECOND WORD OF USERTABLE ENTRY
- * TWO TWELVE BIT FIELDS
- * ONE THIRTY-BIT FIELD
- * SIX UNUSED BITS
- * VECTOR = ONE WORD PER FIELD.
- GUT SPACE 4,10
- ** GETUTAB - GET USER TABLE.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 2, 3, 4, 6, 7.
- * A - 2, 3, 4, 6, 7.
- * B - 1, 2, 7.
- GETUTAB SUBR ENTRY/EXIT
- SB1 1
- SA2 A1+B1 GET ADDR SECOND PARM
- SA3 X1 READ FIRST TABLE WORD
- SA4 X1+B1 READ SECOND (LAST) TABLE WORD
- SB7 X2 ADDRESS OF VECTOR
- SB2 14 LOOP COUNT
- MX0 1 MASK
- LOOP1 BX7 X3*X0 ISOLATE ONE BIT TO SIGN
- LX3 1 BRING UP ANOTHER BIT
- SA7 B7 STORE IT
- SB2 B2-B1 DECREMENT LOOP COUNT
- SB7 B7+B1 INCREMENT VECTOR POINTER
- NZ B2,LOOP1 UNTIL ALL 14 FLAGS COPIED
- LX3 4+6 WASTE UNUSED BITS AND GET 6 BITS TO RIGHT
- MX0 -6 MASK TO ISOLATE 6 BITS AT BOTTOM
- SB2 3 LOOP COUNT
- LOOP2 BX7 -X0*X3 ISOLATE 6 BITS AT RIGHT
- LX3 6 BRING UP NEXT 6 BITS
- SA7 B7 STORE IT
- SB2 B2-B1 DECREMENT LOOP COUNT
- SB7 B7+B1 INCREMENT VECTOR POINTER
- NZ B2,LOOP2 UNTIL ALL 3 FIELDS COPIED
- LX3 6 ROTATE TO ALIGN 12 BITS AT BOTTOM
- MX0 -12 MASK TO ISOLATE 12 BITS AT BOTTOM
- BX6 -X0*X3 ISOLATE FIRST 12-BIT FIELD
- LX3 12 BRING UP LAST 12-BIT FIELD OF FIRST WORD
- SA6 B7 SAVE
- BX7 -X0*X3 ISOLATE LAST DATA OF FIRST WORD
- SA7 A6+B1 SAVE LAST DATA FROM FIRST WORD
- LX4 12 BRING FIRST DATA OF SECOND WORD TO RIGHT
- BX6 -X0*X4
- LX4 12 BRING SECOND 12-BIT FIELD OF SECOND WORD
- BX7 -X0*X4
- SA6 A7+B1
- SA7 A6+B1
- LX4 30 BRING 30-BIT FIELD TO BOTTOM
- MX0 -30
- BX7 -X0*X4
- SA7 A7+B1
- EQ GETUTAB RETURN
- END
- IDENT SAVUTAB
- ENTRY SAVUTAB
- SYSCOM B1
- TITLE SAVUTAB - SAVE USER TABLE ENTRY.
- *COMMENT SAVUTAB - SAVE USER TABLE ENTRY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SUT SPACE 4,10
- *** SAVUTAB - SAVE USER TABLE ENTRY.
- *
- * G.K. CHACE. 83/02/03.
- SUT SPACE 4,10
- *** *SAVUTAB* PRODUCES A COMPACTED USER TABLE FOR *SMFEX*
- * FROM THE EXPANDED VECTOR FORMAT. THE DEFINITIONS AND CODE
- * IN SMFEX MUST AGREE WITH THIS ROUTINE.
- *
- * THE EXPANDED TABLE USES ONE WORD PER ENTRY, WITH ONE-BIT
- * FIELDS AT THE SIGN BITS, ALL LARGER FIELDS RIGHT-JUSTIFIED.
- SUT SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SAVUTAB(UTAB,VECTOR);
- *
- * UTAB = PACKED USER TABLE.
- * FIRST WORD OF USERTABLE ENTRY
- * FOURTEEN 1-BIT FIELDS
- * FOUR UNUSED BITS
- * THREE SIX-BIT FIELDS
- * TWO TWELVE BIT FIELDS
- * SECOND WORD OF USERTABLE ENTRY
- * TWO TWELVE BIT FIELDS
- * ONE THIRTY-BIT FIELD
- * SIX UNUSED BITS
- * VECTOR = ONE WORD PER FIELD.
- *
- * ORDINAL = TERMINAL MODEL NUMBER (1-5).
- * MNEMONIC = USER, VKX, 722, VT100, OR Z19.
- SUT SPACE 4,10
- ** SAVUTAB - SAVE USER TABLE ENTRY.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 1, 2, 7.
- * A - 1, 2, 7.
- * B - 1, 2, 7.
- SAVUTAB SUBR ENTRY/EXIT
- SB1 1
- SA2 A1+B1 GET ADDR SECOND PARM
- SB7 X1
- SA1 X2 START FETCHING VECTOR WORDS
- SA2 A1+B1
- MX7 0 CLEAR ACCUMULATOR
- MX0 1 FIELD ISOLATION MASK
- SB2 7 LOOP COUNTER
- LOOP1 BX1 X1*X0 PURIFY DATA
- BX7 X7+X1 ACCUMULATE A FLAG
- SA1 A2+B1 PREFETCH ANOTHER
- LX7 1 MAKE ROOM FOR MORE DATA
- BX2 X2*X0
- BX7 X7+X2 ACCUMULATE ANOTHER FLAG
- SA2 A1+B1 PREFETCH ANOTHER
- SB2 B2-B1 DECREMENT LOOP COUNT
- LX7 1 MAKE ROOM FOR MORE DATA
- NZ B2,LOOP1 UNTIL 14 FLAGS COPIED
- LX7 4+6 ALLOW FOUR SPARES, ALLOCATE 6 BITS
- MX0 -6 FIELD ISOLATION MASK
- BX1 -X0*X1 PURIFY DATA - FIRST 6-BIT FIELD
- BX7 X7+X1 ACCUMULATE
- SA1 A2+B1 PREFETCH ANOTHER
- LX7 6 ROOM FOR NEXT
- BX2 -X0*X2 SAME SEQUENCE - SECOND 6-BIT
- BX7 X7+X2
- SA2 A1+B1
- LX7 6
- BX1 -X0*X1 SAME - THIRD AND LAST 6-BIT FIELD
- BX7 X7+X1
- SA1 A2+B1
- LX7 12 NOW MAKE ROOM FOR 12-BITS
- MX0 -12 FIELD ISOLATION MASK
- BX2 -X0*X2 ISOLATE FIRST 12-BIT FIELD
- BX7 X7+X2
- SA2 A1+B1
- LX7 12
- BX1 -X0*X1 SECOND 12-BIT FIELD
- BX7 X7+X1
- SA1 A2+B1
- SA7 B7 STORE FIRST PACKED WORD
- MX7 0 CLEAR NEW ACCUMULATOR
- BX2 -X0*X2 ISOLATE NEXT 12-BIT FIELD
- BX7 X7+X2
- SA2 A1+B1
- LX7 12
- BX1 -X0*X1 ISOLATE LAST 12-BIT FIELD
- BX7 X7+X1
- LX7 30 ALLOCATE 30 BITS
- MX0 -30 ISOLATION MASK
- BX2 -X0*X2 ISOLATE 30-BIT DATA FIELD
- BX7 X7+X2
- LX7 6 FINAL BIT ALIGNMENT IN SECOND WORD
- SA7 A7+B1
- EQ SAVUTAB RETURN
- END
- IDENT FINDBIT
- ENTRY FINDBIT
- SYSCOM B1
- TITLE FINDBIT - FIND BIT ON IN SMFEX BITMAP.
- *COMMENT FINDBIT - FIND BIT ON IN SMFEX BITMAP.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- FBO SPACE 4,10
- *** FINDBIT - FIND BIT ON IN SMFEX BITMAP.
- *
- * G.K. CHACE. 83/02/03.
- FBO SPACE 4,10
- *** *FINDBIT* SEARCHES AN *SMFEX* BITMAP TO FIND THE FIRST BIT
- * WHICH IS ON. WE CHECK UP TO *LIMIT* WORDS TO FIND A BIT ON.
- * IF WE DONT FIND ANY, WE RETURN -1. THE NORMAL FUNCTION
- * RESULT IS A BIT INDEX. THE FORMAT IS 32 BITS PER WORD,
- * STARTING 12 BITS FROM THE LEFT. THE BOTTOM 16 BITS MUST BE
- * ZERO. THIS FORMAT ALLOWS EFFICIENT SCANNING OF THE WORD
- * WITH NORMALIZE AND ALSO ALLOWS EASY SPLITTING OF THE BIT
- * POSITION INTO WORD OFFSET AND BIT-WITHIN-WORD OFFSET. THE
- * RESULT MUST BE SATISFIED BY BOTH BITMAP AND BITMASK.
- FBO SPACE 4,10
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * INDEX=FINDBIT(LIMIT,BITMAP,BITMASK);
- *
- * LIMIT = NUMBER OF WORDS IN BITMAP AND BITMASK.
- * BITMAP = ALLOCATION BITS.
- * BITMASK = ADDITIONAL BITS AND-ED WITH BITMAP.
- FBO SPACE 4,10
- ** FINDBIT - FIND BIT ON IN SMFEX BITMAP.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4.
- * B - 1, 6, 7.
- FINAL SB6 B6+B1 CORRECT WORD OFFSET
- SX7 B7-B6 COMPUTE WORD OFFSET
- LX7 5 MULT BY 32 TO MERGE BIT OFFSET
- IX6 X6+X7 FINAL RESULT
- FINDBIT SUBR ENTER HERE
- SB1 1
- SA2 A1+B1 X2->BITMAP
- SA1 X1 X1=LIMIT
- SA3 A2+B1 X3->BITMASK
- MX0 1 GEN 2000 MASK
- LX0 59
- SB6 X1 REMEMBER
- SB7 X1 DITTO
- SA1 X2 START PREFETCH BOTH ARRAYS
- SA3 X3
- SA2 A1+B1
- SA4 A3+B1
- LOOP BX6 X1*X3 MERGE MAP,MASK IN SCRATCH REG
- SA1 A2+B1 PREFETCH MORE
- SA3 A4+B1 DITTO
- BX7 X2*X4 SAME SEQUENCE
- SA2 A1+B1
- SA4 A3+B1
- BX6 X6+X0 MERGE 2000 DUMMY EXPONENTS
- BX7 X7+X0
- NX5 X6,B4 SEARCH FOR BIT ON
- SB6 B6-B1 CHECK LOOP EXPIRED
- MI B6,EXHAUST
- SX6 B4 TENTATIVE RESULT
- NZ X5,FINAL IF REALLY FOUND ONE
- NX5 X7,B4 SAME SEQUENCE
- SB6 B6-B1
- MI B6,EXHAUST
- SX6 B4
- NZ X5,FINAL
- EQ LOOP AND GO AROUND
- EXHAUST SX6 -1
- EQ FINDBIT
- END
- IDENT SPREAD
- ENTRY SPREAD
- SYSCOM B1
- TITLE SPREAD - SPREAD RETURN JUMP WORDS TO ENTRIES.
- *COMMENT SPREAD - SPREAD RETURN JUMP WORDS TO ENTRIES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SRJ SPACE 4,10
- *** SPREAD - SPREAD RETURN JUMP WORDS TO ENTRIES.
- *
- * G.K. CHACE. 83/02/03.
- SRJ SPACE 4,10
- *** *SPREAD* IS A SPECIAL-PURPOSE ROUTINE FOR THE SMFEX
- * SUBSYSTEM. SMFEX CALLS SPREAD JUST BEFORE INVOKING A NEW
- * USER SUBTASK, TO RESTORE ALL RETURN JUMP WORDS TO THEIR
- * PREVIOUS STATE. WE ASSUME THE STACK WAS USED IN THE GATHER
- * ROUTINE EARLIER TO SAVE THE RJ WORDS. THE STACK CONSISTS
- * OF SINGLE-WORD ENTRIES. THE UPPER 30 BITS ARE THE
- * MACHINE-GENERATED *EQ* INSTRUCTION USED TO RETURN OUT OF
- * THE SUBROUTINE. THE LOWEST 18 BITS ARE THE ADDRESS OF THE
- * SUBROUTINE.
- SRJ SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SPREAD(RSTKPTR,RENTSTK);
- *
- * RSTKPTR = NUMBER OF WORDS IN STACK ARRAY.
- * RENTSTK = THE STACK ARRAY BUILT BY GATHER ROUTINE.
- SRJ SPACE 4,10
- ** SPREAD - SPREAD RETURN JUMP WORDS TO ENTRIES.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 1, 2, 4, 7.
- SPREAD SUBR
- SB1 1
- SA2 A1+B1 GET ADDR STACK
- SA1 X1 GET VALUE STACK LEVEL
- SB2 B1+B1 CONSTANT 2
- SB4 B2+B2 CONSTANT 4
- SB7 X1 LOOP CONTROL
- SA1 X2 START PREFETCH
- SA2 X2+B1
- SA3 A1+B2
- SA4 A2+B2
- LOOP BX6 X1
- SB7 B7-B1
- SA1 A1+B4 PREFETCH ANOTHER
- ZR B7,SPREAD CHECK IF DONE
- SA6 X6
- BX7 X2
- SB7 B7-B1
- SA2 A2+B4
- ZR B7,SPREAD
- SA7 X7
- BX6 X3
- SB7 B7-B1
- SA3 A3+B4
- ZR B7,SPREAD
- SA6 X6
- BX7 X4
- SB7 B7-B1
- SA4 A4+B4
- ZR B7,SPREAD
- SA7 X7
- EQ LOOP
- END
- IDENT GATHER
- ENTRY GATHER
- SYSCOM B1
- TITLE GATHER - GATHER RETURN JUMP WORDS FROM ENTRIES.
- *COMMENT GATHER - GATHER RETURN JUMP WORDS FROM ENTRIES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- GRJ SPACE 4,10
- *** GATHER - GATHER RETURN JUMP WORDS FROM ENTRIES.
- *
- * G.K. CHACE. 83/02/03.
- GRJ SPACE 4,10
- *** *GATHER* SCANS AN ARRAY WHICH STACKS THE ADDRESSES OF THE
- * ENTRY POINTS FOR ALL ACTIVE *SYMPL* SUBROUTINES. THE SMFEX
- * SUBSYSTEM AND FSE EDITOR ARE ONLY CAPABLE OF KEEPING ENTRY
- * POINT ADDRESSES, AND CANNOT KEEP RETURN ADDRESSES, DUE TO
- * THE CODE-GENERATION LIMITATIONS OF THE SYMPL COMPILER.
- * SMFEX CALLS GATHER WHEN HALTING ONE USER SUBTASK. GATHER
- * SCANS THE VECTOR OF ENTRY ADDRESSES, AND READS UP THE
- * RETURN JUMP WORDS AT EACH ENTRY POINT, THEN PACKS THE
- * RETURN JUMP BACK INTO THE VECTOR. THE ENHANCED VECTOR THEN
- * CONTAINS ENTRY/EXIT CODE IN THE TOP 30 BITS OF EACH ENTRY,
- * AND THE ADDRESS FOR RESTORATION OF THAT CODE, IN THE LOWER
- * 18 BITS. SMFEX SAVES THIS VECTOR AND USES THE *SPREAD*
- * ROUTINE TO RESTORE THE ENTRY POINTS FOR RESUMPTION OF THE
- * SUBTASK.
- GRJ SPACE 4,10
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * GATHER(RSTKPTR,RENTSTK);
- *
- * RSTKPTR = NUMBER OF WORDS IN STACK.
- * RENTSTK = THE REENTRANCY STACK.
- GRJ SPACE 4,10
- ** GATHER - GATHER RETURN JUMP WORDS FROM ENTRIES.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 1, 2, 6, 7.
- GATHER SUBR
- SB1 1
- SA2 A1+B1 GET ADDR STACK
- SA1 X1 GET VALUE STACKLEVEL
- SB2 B1+B1 CONSTANT 2
- SB6 X2+B2 BRACKETED BY PRE AND POST PROCESSES
- SB7 X1 LOOP CONTROL
- SA1 X2 START PREFETCH
- SA2 X2+B1
- SA3 A1+B2
- SA4 A2+B2
- MX0 30
- LOOP SA1 X1 NOW LOAD RJ-GENERATED WORDS
- SA2 X2
- SA3 X3
- SA4 X4
- SX6 A1 PREPARE TO MERGE HALVES
- SX7 A2
- BX1 X1*X0 PURIFY
- BX2 X2*X0
- IX6 X6+X1 MERGE ENTRY AND RETURN ADDRESSES
- IX7 X7+X2
- SA1 B6+B2 PREFETCH MORE FROM STACK
- SB7 B7-B1 LOOPCONTROL
- SA2 A1+B1
- ZR B7,GATHER WHEN DONE
- SB7 B7-B1
- SA6 B6-B2
- ZR B7,GATHER
- SA7 A6+B1
- SB6 B6+B2
- SX6 A3 PREPARE OTHER MERGES
- SX7 A4
- BX3 X3*X0
- BX4 X4*X0
- IX6 X6+X3
- IX7 X7+X4
- SA3 B6+B2
- SB7 B7-B1
- SA4 A3+B1
- ZR B7,GATHER
- SB7 B7-B1
- SA6 B6-B2
- ZR B7,GATHER
- SA7 A6+B1
- SB6 B6+B2
- EQ LOOP
- END
- IDENT READECS
- ENTRY READECS
- SYSCOM B1
- TITLE READECS - READ EXTENDED MEMORY BLOCK.
- *COMMENT READECS - READ EXTENDED MEMORY BLOCK.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- REM SPACE 4,10
- *** READECS - READ EXTENDED MEMORY BLOCK.
- *
- * G.K. CHACE. 83/02/03.
- REM SPACE 4,10
- *** *READECS* READS A BLOCK OF TEXT FROM THE EXTENDED MEMORY
- * FIELD LENGTH AND REPORTS THE SUCCESS OR FAILURE.
- REM SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * READECS(NWORDS,FROMECS,TOCM,ERRFLG);
- *
- * NWORDS = NUMBER OF WORDS IN BLOCK.
- * FROMECS = EXTENDED MEMORY ARRAY OF TEXT.
- * TOCM = CENTRAL MEMORY ARRAY TO RECEIVE TEXT.
- * ERRFLG = SUCCESS/FAILURE RESULT.
- * 0 = SUCCESSFUL ON FIRST TRY.
- * 1 = SUCCESSFUL AFTER ONE RETRY.
- * 2 = SUCCESS AFTER WORD-BY-WORD RETRY.
- * 3 = FAILURE.
- REM SPACE 4,10
- ** READECS - READ EXTENDED MEMORY BLOCK.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 1, 2, 3, 4, 6.
- * A - 0, 1, 2, 3, 4, 6.
- * B - 1, 2, 7.
- TOP SA6 X4 STORE RESULT FLAG
- SA0 B2 RESTORE A0
- READECS SUBR ENTRY/EXIT
- SB1 1
- SA2 A1+B1 ->FROMECS
- SA3 A2+B1 ->TOCM
- SA4 A3+B1 ->ERRFLG
- SA1 X1 =NWORDS
- SB2 A0 SAVE FOR LANGUAGES
- BX0 X2 ->ECS
- SA0 X3 ->CM
- SB7 X1 =NWORDS
- MX6 0 NORMAL ERRFLAG
- RE B7 FAST TRANSFER
- EQ ERROR IF TROUBLE
- EQ TOP NORMAL EXIT
- ERROR SX6 X6+B1 BAD NEWS
- RE B7 TRY ENTIRE BLOCK AGAIN
- EQ ERROR2 IF SECOND ERROR
- EQ TOP NORMAL EXIT
- ERROR2 SX6 X6+B1 WORSE NEWS
- SX1 B1 60-BIT ONE
- LOOP RE B1 TRY SINGLE WORD LOOP
- EQ ERROR3 TERRIBLE
- SA0 A0+B1 INCREMENT POINTERS
- IX0 X0+X1
- SB7 B7-B1 DECREMENT WORD COUNT
- GT B7,LOOP
- EQ TOP
- ERROR3 SX6 X6+B1 HIGHER ERROR LEVEL
- EQ TOP
- END
- IDENT WRITECS
- ENTRY WRITECS
- SYSCOM B1
- TITLE WRITECS - WRITE EXTENDED MEMORY BLOCK.
- *COMMENT WRITECS - WRITE EXTENDED MEMORY BLOCK.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- WEM SPACE 4,10
- *** WRITECS - WRITE EXTENDED MEMORY BLOCK.
- *
- * G.K. CHACE. 83/02/03.
- WEM SPACE 4,10
- *** *WRITECS* COPIES A BLOCK OF TEXT FROM CENTRAL MEMORY TO
- * THE EXTENDED MEMORY FIELD LENGTH.
- WEM SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * WRITECS(NWORDS,TOECS,FROMCM,ERRFLG);
- *
- * NWORDS = NUMBER OF WORDS IN BLOCK.
- * TOECS = EXTENDED MEMORY ARRAY TO RECEIVE TEXT.
- * FROMCM = CENTRAL MEMORY ARRAY OF TEXT.
- * ERRFLG = SUCCESS/FAILURE RESULT.
- * 0 = SUCCESSFUL ON FIRST TRY.
- * 1 = SUCCESSFUL AFTER ONE RETRY.
- * 2 = SUCCESS AFTER WORD-BY-WORD RETRY.
- * 3 = FAILURE.
- WEM SPACE 4,10
- ** WRITECS - WRITE EXTENDED MEMORY BLOCK.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 1, 2, 3, 4, 6.
- * A - 0, 1, 2, 3, 4, 6.
- * B - 1, 2, 7.
- TOP SA6 X4 STORE RESULT FLAG
- SA0 B2 RESTORE A0
- WRITECS SUBR ENTRY/EXIT
- SB1 1
- SA2 A1+B1 ->FROMCM
- SA3 A2+B1 ->TOECS
- SA4 A3+B1 ->ERRFLG
- SA1 X1 =NWORDS
- SB2 A0 SAVE FOR LANGUAGES
- BX0 X3 ->ECS
- SA0 X2 ->CM
- SB7 X1 =NWORDS
- MX6 0 NORMAL ERRFLAG
- WE B7 FAST TRANSFER
- EQ ERROR IF TROUBLE
- EQ TOP NORMAL EXIT
- ERROR SX6 X6+B1 BAD NEWS
- WE B7 TRY ENTIRE BLOCK AGAIN
- EQ ERROR2 IF SECOND ERROR
- EQ TOP NORMAL EXIT
- ERROR2 SX6 X6+B1 WORSE NEWS
- SX1 B1 60-BIT ONE
- LOOP WE B1 TRY SINGLE WORD LOOP
- EQ ERROR3 TERRIBLE
- SA0 A0+B1 INCREMENT POINTERS
- IX0 X0+X1
- SB7 B7-B1 DECREMENT WORD COUNT
- GT B7,LOOP
- EQ TOP
- ERROR3 SX6 X6+B1 HIGHER ERROR LEVEL
- EQ TOP
- END
- IDENT FLDLEN
- ENTRY FLDLEN
- SYSCOM B1
- TITLE FLDLEN - CHANGE FIELD LENGTH.
- *COMMENT FLDLEN - CHANGE FIELD LENGTH.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CFL SPACE 4,10
- *** FLDLEN - CHANGE FIELD LENGTH.
- *
- * G.K. CHACE. 83/02/03.
- CFL SPACE 4,10
- *** *FLDLEN* CHANGES THE JOB*S FIELD LENGTH.
- CFL SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FLDLEN(CMWORDS);
- *
- * CMWORDS = DESIRED FIELD LENGTH.
- CFL SPACE 4,10
- ** FLDLEN - CHANGE FIELD LENGTH.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 2
- * A - 2
- *
- * MACROS MEMORY.
- FLDLEN BSS 1 STAT,WORDS
- SA2 X1 GET DESIRED SIZE
- MEMORY CM,,R,X2
- EQ FLDLEN
- END
- IDENT TESTECS
- ENTRY TESTECS
- SYSCOM B1
- TITLE TESTECS - TEST FOR ECS AVAILABILITY.
- *COMMENT TESTECS - TEST FOR ECS AVAILABILITY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- TEC SPACE 4,10
- *** TESTECS - TEST FOR ECS AVAILABILITY.
- *
- * G.K. CHACE. 83/02/03.
- TEC SPACE 4,10
- *** *TESTECS* DETERMINES HOW LARGE OF AN EXTENDED MEMORY FIELD
- * LENGTH THE JOB IS VALIDATED TO OBTAIN AND THE SYSTEM IS
- * ABLE TO DELIVER.
- TEC SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * TESTECS(FLAG)
- *
- * FLAG .NE. 0 IF USER ECS ENABLED AND VALIDATED.
- TEC SPACE 4,10
- ** TESTECS - TEST FOR ECS AVAILABILITY.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1, 2, 6.
- * A - 1, 2, 6.
- * B - 1.
- *
- * MACROS MEMORY.
- TESTECS SUBR
- SB1 1
- BX6 X1 SAVE PARAMETER ADDRESS
- SA6 SAVE
- MX6 29 GENERATE -1 IN UPPER HALF
- SA6 STAT
- MEMORY ECS,STAT,R
- SA1 STAT WILL RETURN UPPER HALF
- SA2 SAVE
- MX6 30
- BX6 X6*X1
- SA6 X2
- EQ TESTECS
- SAVE BSSZ 1
- STAT BSSZ 1
- END
- IDENT FLDLENE
- ENTRY FLDLENE
- SYSCOM B1
- TITLE FLDLENE - CHANGE ECS FIELD LENGTH.
- *COMMENT FLDLENE - CHANGE ECS FIELD LENGTH.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CFL SPACE 4,10
- *** FLDLENE - CHANGE ECS FIELD LENGTH.
- *
- * G.K. CHACE. 83/02/03.
- CFL SPACE 4,10
- *** *FLDLENE* CHANGES THE JOB*S FIELD LENGTH.
- CFL SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FLDLENE(ECSWORDS);
- *
- * ECSWORDS = DESIRED FIELD LENGTH.
- CFL SPACE 4,10
- ** FLDLENE - CHANGE ECS FIELD LENGTH.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 2.
- * A - 2.
- * B - 1.
- *
- * MACROS MEMORY.
- FLDLENE SUBR
- SB1 1
- SA2 X1 GET DESIRED SIZE
- MEMORY ECS,STAT,R,X2
- EQ FLDLENE
- STAT DATA 1
- END
- IDENT LINESZ
- ENTRY LINESZ
- EXT FATAL
- EXT LINSIZ
- SYSCOM B1
- TITLE LINESZ - MEASURE LINE SIZE AND REPAIR.
- *COMMENT LINESZ - MEASURE LINE SIZE AND REPAIR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- MLS SPACE 4,10
- *** LINESZ - MEASURE LINE SIZE AND REPAIR.
- *
- * G.K. CHACE. 83/02/03.
- MLS SPACE 4,10
- *** *LINESZ* SCANS A TEXT LINE, CODED IN INTERNAL CHARACTER
- * SET, TO MEASURE ITS LENGTH IN WORDS. THIS ROUTINE ALSO
- * REPAIRS THE TOP FOUR BITS OF EACH WORD IN THE LINE IMAGE,
- * SO THAT THE SIGN BIT INDICATES WHETHER A WORD IS THE LAST
- * WORD OF A LINE.
- *
- * THE FULL SCREEN EDITOR INTERNAL CHARACTER SET USES 7 BITS
- * PER CHARACTER, 8 CHARACTERS PER WORD, WITH THE TOP FOUR
- * BITS OF EACH WORD NOT BELONGING IN ANY CHARACTER FIELD.
- * THE SIGN BIT IS A FLAG FOR THE LAST WORD IN EACH LINE
- * IMAGE, AND THE NEXT THREE BITS ARE RESERVED AND NORMALLY
- * ZEROED. EACH LINE IMAGE IS TERMINATED BY A CHARACTER WHOSE
- * SEVEN BITS ARE ALL ONES. THE EDITING CODE NORMALLY
- * MAINTAINS THE END OF LINE CHARACTER BUT NEGLECTS THE LAST
- * WORD SIGN BIT, WHILE THE WORKFILE MANAGER LOOKS ONLY FOR
- * THE SIGN BIT.
- *
- * THE ALGORITHM IS TO *AND* A WORD AGAINST ITSELF SHIFTED
- * EVERY BIT SUCCESSIVELY, THEN *AND* IT WITH A MASK
- * CONTAINING 1'S AT THE TOP BIT FOR EACH SEVEN-BIT CHARACTER
- * POSITION. IF THE RESULT IS NON-ZERO, THEN THE WORD MUST
- * HAVE CONTAINED A 177 CHARACTER.
- MLS SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * NUMWORDS=LINESZ(LINEBUF);
- *
- * LINEBUF = INTERNALLY FORMATTED LINE BUFFER.
- MLS SPACE 4,10
- ** LINESZ - MEASURE LINE SIZE AND REPAIR.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 1, 2, 4, 5, 6, 7.
- * B - 1, 2, 3, 5, 6.
- *
- * CALLS LINSIZ, FATAL.
- FINAL BX7 X1+X0 SET LAST WORD FLAG
- SX6 A1-B5 COMPUTE FUNCTION RESULT
- SA7 A1 STORE FLAGGED WORD
- SX6 X6+B1 FIX FUNCTION RESULT
- LINESZ SUBR ENTRY POINT
- SA5 MASK TOP BIT EACH CHARACTER
- SA4 LINSIZ LIMITATION
- SB1 1
- SB5 X1 ADDR OF TEXT LINE
- SA1 X1 START FETCHING DATA
- SA2 B5+B1 FETCH MORE
- SB2 B1+B1 2
- SB3 B2+B1 3
- SB6 X4 MAX NUM WORDS
- LOOP MX0 1 WILL FIX TOP BIT WORD 1
- BX6 -X0*X1
- BX0 X2 MERELY SAVE SECOND WORD
- SA6 A1
- LX3 X1,B1 COPY AND SHIFT 1
- LX4 X2,B1 DITTO
- BX6 X1*X3 FIRST MERGE
- BX7 X2*X4 DITTO
- SA1 A1+B2 PREFETCH NEXT
- SA2 A2+B2 DITTO
- LX3 X6,B2 START FUNNY CUT AND PASTE
- LX4 X7,B2
- BX6 X6*X3
- BX7 X7*X4
- LX3 X6,B3
- LX4 X7,B3
- BX6 X6*X3
- BX7 X7*X4
- BX6 X6*X5 ISOLATE CRUCIAL BITS
- BX7 X7*X5 DITTO
- EQ B6,B0,ERROR NO CHANCE
- NZ X6,FOUND1
- EQ B6,B1,ERROR LAST CHANCE
- NZ X7,FOUND2
- SB6 B6-B2 DECREMENT LOOP
- MX6 1 NOW CAN FIX TOP BIT 2ND WORD
- BX7 -X6*X0
- SA7 A2-B2
- EQ LOOP
- FOUND1 SA1 A1-B2 RE-FETCH LAST WORD TO FIX
- MX0 1 NEED TO FIX TOP BIT AGAIN
- EQ FINAL
- FOUND2 SA1 A2-B2 AS ABOVE
- MX0 1 NEED TO FIX TOP BIT AGAIN
- EQ FINAL
- ERROR SA1 PARM
- RJ FATAL
- MASK DATA 02010040201004020100B
- PARM CON STRING
- STRING DATA C*LINESZ TOO LONG$*
- END
- IDENT LENGTH
- ENTRY LENGTH
- EXT FATAL
- EXT LINSIZ
- SYSCOM B1
- TITLE LENGTH - COUNT CHARACTERS IN LINE.
- *COMMENT LENGTH - COUNT CHARACTERS IN LINE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CCL SPACE 4,10
- *** LENGTH - COUNT CHARACTERS IN LINE.
- *
- * G.K. CHACE. 83/02/03.
- CCL SPACE 4,10
- *** *LENGTH* SCANS A TEXT LINE, CODED IN INTERNAL CHARACTER
- * SET, TO MEASURE ITS LENGTH IN CHARACTERS. THIS LENGTH
- * VALUE IS EQUIVALENT TO THE ZERO-BASED CHARACTER POSITION
- * OF THE END OF LINE CHARACTER.
- *
- * THE FULL SCREEN EDITOR INTERNAL CHARACTER SET USES 7 BITS
- * PER CHARACTER, 8 CHARACTERS PER WORD, WITH THE TOP FOUR
- * BITS OF EACH WORD NOT BELONGING IN ANY CHARACTER FIELD.
- * THE SIGN BIT IS A FLAG FOR THE LAST WORD IN EACH LINE
- * IMAGE, AND THE NEXT THREE BITS ARE RESERVED AND NORMALLY
- * ZEROED. EACH LINE IMAGE IS TERMINATED BY A CHARACTER WHOSE
- * SEVEN BITS ARE ALL ONES. THE EDITING CODE NORMALLY
- * MAINTAINS THE END OF LINE CHARACTER BUT NEGLECTS THE LAST
- * WORD SIGN BIT, WHILE THE WORKFILE MANAGER LOOKS ONLY FOR
- * THE SIGN BIT. *LENGTH* DOES NO REPAIR OF THE SIGN BITS,
- * WHILE THE *LINESZ* ROUTINE DOES REPAIR THE SIGN BITS.
- *
- * THE ALGORITHM IS TO *AND* A WORD AGAINST ITSELF SHIFTED
- * EVERY BIT SUCCESSIVELY, THEN *AND* IT WITH A MASK
- * CONTAINING 1'S AT THE TOP BIT FOR EACH SEVEN-BIT CHARACTER
- * POSITION. IF THE RESULT IS NON-ZERO, THEN THE WORD MUST
- * HAVE CONTAINED A 177 CHARACTER. WITH THE LAST WORD FOUND,
- * THE LAST PHASE OF THE ALGORITHM ROTATES THE LAST WORD ON
- * A CHARACTER BY CHARACTER BASIS TO IDENTIFY THE END OF LINE.
- CCL SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * NUMCHARS=LENGTH(LINEBUF);
- *
- * LINEBUF = INTERNALLY FORMATTED LINE BUFFER.
- CCL SPACE 4,10
- ** LENGTH - COUNT CHARACTERS IN LINE.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 1, 2, 4, 5.
- * B - 1, 2, 3, 5, 6.
- *
- * CALLS FATAL, LINSIZ.
- FOUND1 LX7 X6,B0 SPECIFY PARTIAL RESULT
- SX6 A1-B2 SPECIFY WORD OFFSET
- LX7 57 GET IT A CHAR POS OFF
- FINAL IX6 X6-X0 WORD OFFSET
- LX6 3 CHAR OFFSET
- SB5 B0-B1 GEN CONSTANT -1
- SX6 X6+B5 TRICK OFFSET DOWN 1
- FINLOOP LX7 7 TEST NEXT CHAR FLAG
- SX6 X6+B1
- PL X7,FINLOOP
- LENGTH SUBR ENTRY POINT
- SA4 LINSIZ LIMITATION
- SA5 MASK TOP BIT EACH CHARACTER
- SB1 1
- SX0 X1 ADDR OF TEXT LINE
- SA1 X1 START FETCHING DATA
- SA2 X0+B1 FETCH MORE
- SB2 B1+B1 2
- SB3 B1+B2 3
- SB6 X4 MAX NUM WORDS
- LOOP LX3 X1,B1 COPY AND SHIFT 1
- LX4 X2,B1 DITTO
- BX6 X1*X3 FIRST MERGE
- BX7 X2*X4 DITTO
- SA1 A1+B2 PREFETCH NEXT
- SA2 A2+B2 DITTO
- LX3 X6,B2 START FUNNY CUT AND PASTE
- LX4 X7,B2
- BX6 X6*X3
- BX7 X7*X4
- LX3 X6,B3
- LX4 X7,B3
- BX6 X6*X3
- BX7 X7*X4
- BX6 X6*X5 ISOLATE CRUCIAL BITS
- BX7 X7*X5 DITTO
- EQ B6,B0,ERROR NO CHANCE
- NZ X6,FOUND1
- EQ B6,B1,ERROR LAST CHANCE
- NZ X7,FOUND2
- SB6 B6-B2 DECREMENT LOOP
- EQ LOOP
- FOUND2 LX7 57 SPECIFY PARTIAL RESULT
- SX6 A2-B2 NEED WORD OFFSET
- EQ FINAL
- ERROR SA1 PARM
- RJ FATAL
- MASK DATA 02010040201004020100B
- PARM CON STRING
- STRING DATA C*LENGTH TOO LONG$*
- END
- IDENT NOSWDSZ
- ENTRY NOSWDSZ
- SYSCOM B1
- TITLE NOSWDSZ - MEASURE ZERO BYTE TERMINATOR.
- *COMMENT NOSWDSZ - MEASURE ZERO BYTE TERMINATOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- MZB SPACE 4,10
- *** NOSWDSZ - MEASURE ZERO BYTE TERMINATOR.
- *
- * G.K. CHACE. 83/02/03.
- MZB SPACE 4,10
- *** *NOSWDSZ* DETERMINES THE LENGTH IN WORDS OF A DISPLAY CODE
- * LINE OF TEXT. IF IT NO END OF LINE IS FOUND WITHIN THE
- * SIZE LIMIT, THE VALUE RETURNED IS ONE MORE THAN THE LIMIT.
- * THE ALGORITHM IS SIMPLY TO LOOK FOR A WORD WITH THE LAST 12
- * BITS ZERO.
- MZB SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * NUMWORDS=NOSWDSZ(LIMIT,LINEBUF);
- *
- * LIMIT = MAXIMUM ALLOWABLE LINE SIZE.
- * LINEBUF = THE LINE BUFFER.
- MZB SPACE 4,10
- ** NOSWDSZ - MEASURE ZERO BYTE TERMINATOR.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4.
- * B - 1, 2, 4, 6, 7.
- FOUND SX6 B6-B7 INDICATE WORD COUNT
- MI B7,EXHAUST IN CASE SLIPPING OFF END
- NOSWDSZ SUBR ENTRY EXIT
- SB1 1 CONSTANT
- SA2 A1+B1 GET TEXT ADDR
- SA1 X1 GET LIMIT VALUE
- SB2 B1+B1 CONSTANT
- SB4 B2+B2 CONSTANT
- SB6 X1 REMEMBER FOR FINAL COMPUTATION
- SB7 X1 COUNTS EACH WORD DOWN
- SA1 X2 START PREFETCH
- SA2 X2+B1 DITTO
- SA3 A1+B2 DITTO
- SA4 A2+B2 DITTO
- LOOP MX0 -12 GEN MASK
- BX5 -X0*X1 FOR TESTING FIRST EOL
- SA1 A1+B4 START ANOTHER PREFETCH
- BX6 -X0*X2 SAME SEQUENCE
- SA2 A2+B4
- BX7 -X0*X3
- SA3 A3+B4
- BX0 -X0*X4
- SA4 A4+B4
- SB7 B7-B1 DECR FOR FIRST TEST
- ZR X5,FOUND THIS IS FIRST EOL TEST
- SB7 B7-B1 SAME SEQUENCE
- ZR X6,FOUND
- SB7 B7-B1
- ZR X7,FOUND
- SB7 B7-B1
- ZR X0,FOUND
- GT B7,LOOP WHILE NOT OUTRIGHT EXHAUSTED
- EXHAUST SX6 B6+B1 SHOW LIMIT+1
- EQ NOSWDSZ NOW GET OUT
- END
- IDENT MOVELN
- ENTRY MOVELN
- EXT LINSIZ MAX LENGTH OF LINE
- SYSCOM B1
- TITLE MOVELN - MOVE AND MEASURE INTERNAL LINE.
- *COMMENT MOVELN - MOVE AND MEASURE INTERNAL LINE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- MML SPACE 4,10
- *** MOVELN - MOVE AND MEASURE INTERNAL LINE.
- *
- * G.K. CHACE. 83/02/03.
- MML SPACE 4,10
- *** *MOVELN* MOVES A LINE IMAGE FROM ONE BUFFER TO ANOTHER, AND
- * MEASURES THE NUMBER OF WORDS. THE LINE IMAGES MUST BE
- * CODED IN THE FULL SCREEN EDITOR INTERNAL CHARACTER SET, AND
- * MUST BE IN THE REPAIRED FORMAT AS PRODUCED BY THE *LINESZ*
- * ROUTINE. THE INTERNAL CHARACTER SET USES SEVEN BITS PER
- * CHARACTER, EIGHT CHARACTER PER WORDS, WITH THE 56 DATA BITS
- * RIGHT JUSTIFIED IN EACH WORD. ONCE REPAIRED BY *LINESZ*,
- * THE SIGN BIT OF EACH WORD INDICATES THE LAST WORD OF EACH
- * LINE.
- *
- * THIS ROUTINE PERFORMS THE MEASUREMENT FUNCTION ONLY, WITH
- * NO MOVE, IF THE TARGET ADDRESS IS ZERO.
- MML SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * NUMWORDS=MOVELN(FROM,TO);
- *
- * FROM = SOURCE BUFFER, INTERNAL CHARACTER SET.
- * TO = TARGET BUFFER, INTERNAL CHARACTER SET.
- MML SPACE 4,10
- ** MOVELN - MOVE AND MEASURE INTERNAL LINE.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1, 2, 3, 4, 5, 6, 7.
- * A - 1, 2, 3, 4, 5, 7.
- * B - 1, 3.
- *
- * CALLS FATAL, LINSIZ.
- EOL SB3 -B3
- SX6 X5+B3
- MOVELN SUBR
- SB1 1
- SA5 LINSIZ
- SA4 A1+B1 ADDR OF TO
- SA1 X1 START PREFETCH
- SA2 A1+B1
- SA3 A2+B1
- SB3 X5 INIT LOOP COUNTER
- ZR X4,SCAN ONLY COMPUTE SIZE IF NULL TARGET
- BX7 X1 STORE FIRST WORD
- SA7 X4
- SA4 A3+B1 ONE LAST PREFETCH
- LOOP SB3 B3-B1 HERE GOES
- MI X7,EOL
- BX7 X2
- SA1 A4+B1
- SA7 A7+B1
- SB3 B3-B1
- MI X7,EOL
- BX7 X3
- SA2 A1+B1
- SA7 A7+B1
- SB3 B3-B1
- MI X7,EOL
- BX7 X4
- SA3 A2+B1
- SA7 A7+B1
- SB3 B3-B1
- MI X7,EOL
- BX7 X1
- SA4 A3+B1
- SA7 A7+B1
- LE B3,FULL IF OVERFLOWED LIMIT
- EQ LOOP
- SCAN SB3 B3-B1 DECREMENT COUNT
- MI X1,EOL WHEN DONE
- SA1 A3+B1 PICK UP NEXT WORD
- SB3 B3-B1
- MI X2,EOL
- SA2 A1+B1
- SB3 B3-B1
- MI X3,EOL
- SA3 A2+B1
- EQ SCAN SCAN ANOTHER THREE WORDS IN PARALLEL
- FULL SA1 PARM
- RJ =XFATAL
- PARM CON MSG
- MSG DIS ,/MOVELN - LINE TOO LONG$/
- END
- IDENT FASTCNI
- ENTRY FASTCNI
- SYSCOM B1
- TITLE FASTCNI - CONVERT NORMAL INPUT.
- *COMMENT FASTCNI - CONVERT NORMAL INPUT.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CNI SPACE 4,10
- *** FASTCNI - CONVERT NORMAL INPUT.
- *
- * G.K. CHACE. 83/02/03.
- CNI SPACE 4,10
- *** *FASTCNI* PROVIDES AN OPTIMIZED ALGORITHM TO CONVERT LINE
- * IMAGES FROM THE DISPLAY CODE CHARACTER SET AND ZERO-BYTE
- * TERMINATION, TO THE FULL SCREEN EDITOR INTERNAL CHARACTER
- * SET AND END OF LINE CHARACTER TERMINATION. THE FSE
- * CHARACTER SET USES SEVEN BITS PER CHARACTER AND EIGHT
- * CHARACTERS PER WORD, WITH THE 56 DATA BITS RIGHT JUSTIFIED
- * IN EACH WORD. END OF LINE IS SIGNALLED BY A CHARACTER OF
- * ALL ONE BITS. THE REMAINING BITS OF THE LAST WORD ARE
- * RANDOM. CHARACTER VALUES ARE IDENTICAL.
- CNI SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FASTCNI(FSELINE,NOSLINE,FSEWORDS,NOSWORDS);
- *
- * FSELINE = FSE-FORMAT LINE BUFFER.
- * NOSLINE = NOS-FORMAT LINE BUFFER.
- * FSEWORDS = MAXIMUM CAPACITY OF FSELINE.
- * NOSWORDS = MAXIMUM CAPACITY OF NOSLINE.
- CNI SPACE 4,10
- ** FASTCNI - CONVERT NORMAL INPUT.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 2, 3, 4, 5, 6, 7.
- * A - 2, 3, 4, 5, 6.
- * B - ALL.
- FASTCNI SUBR
- SB1 1
- * X1->FSELINE
- SA2 A1+B1 X2->NOSLINE
- SA3 A2+B1 X3->FSELIMIT
- SA4 A3+B1 X4->NOSLIMIT
- SA3 X3 X3=FSELIMIT
- SA4 X4 X4=NOSLIMIT
- SB3 X3 REMEMBER
- SB4 X4 REMEMBER
- SB7 X1 REMEMBER OUTPUT ADDR
- SA5 X2 FETCH FIRST INPUT
- SA4 A5+B1 EXTRA PREFETCH
- SX7 10 USEFUL CONSTANT
- SB5 X7 INPUT CHAR COUNT
- SB6 8 OUTPUT CHAR COUNT
- MX6 0 CLEAR OUTPUT ACCUM
- MX0 6 INPUT CHAR ISOLATION
- SB2 55 INITAL ROTATE COUNT
- LOOP ZR B5,NXTINPT NO INPUT TO USE
- ZR B6,NXTOUTP MUST CLEAR OUTPUT
- BX3 X5*X0 ISOLATE INPUT CHAR
- ZR X3,COLON TO TELL COLON FROM EOL
- DOCHAR LX3 B2 LINE UP UNDER NOSWORD
- BX5 -X0*X5 REMOVE INPUT CHAR
- BX6 X6+X3 ADD OUTPUT CHAR
- LX5 6 NEXT INPUT CHAR
- SB2 B2-7 NEXT ROTATE COUNT
- SB5 B5-B1 DECR CHAR COUNTS
- SB6 B6-B1
- EQ LOOP DO MORE CHARACTERS
- * NXTOUTP IS RIGHT AFTER THE LOOP, BEFORE NXTINPT, SINCE
- * IT USED FIRST AND MORE OFTEN, THE STACK PREFETCH WILL
- * WORK WELL AND A CYBER175 WILL NEVER VOID STACK TILL COLON.
- NXTOUTP SA6 B7 STORE THE FULL WORD
- SB7 B7+B1 POINT TO NEXT
- MX6 0 CLEAR FOR MORE ACCUM
- SB3 B3-B1 DECR LIMIT
- SB6 8 RESET CHAR CTR
- SB2 55 RESET ROTATE CTR
- LE B3,FORCEOL WE ARE IN TROUBLE
- EQ LOOP USUAL EXIT
- NXTINPT BX5 X4 BRING UP PREFETCHED
- SA4 A4+B1 PREFETCH ANOTHER
- SB5 X7 RESET CHAR CTR
- SB4 B4-B1 CHECK LIMIT
- LE B4,GOTEOL NO MORE INPUT
- EQ LOOP USUAL EXIT
- COLON NZ X5,DOCHAR DEFINITELY NOT EOL
- SX0 B5-B1 SEE IF 10-TH CHAR
- NZ X0,GOTEOL DEFINITELY EOL
- MX0 6 REBUILD MASK
- NZ X4,DOCHAR NOT EOL IF NXT WORD NOT EOL
- GOTEOL MX3 7 GEN AN EOL FSE CHAR
- LX3 B2 LINE UP
- LX3 1 LINE UP
- BX6 X6+X3 ACCUMULATE IT
- SA6 B7 STORE IT
- EQ FASTCNI NORMAL COMPLETION
- FORCEOL MX6 7 EMERGENCY TERMINATE
- LX6 56
- SA6 B7-B1 STORE AGAIN IN LAST WORD
- EQ FASTCNI
- END
- IDENT FASTCNO
- ENTRY FASTCNO
- SYSCOM B1
- TITLE FASTCNO - CONVERT NORMAL OUTPUT.
- *COMMENT FASTCNO - CONVERT NORMAL OUTPUT.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CNO SPACE 4,10
- *** FASTCNO - CONVERT NORMAL OUTPUT.
- *
- * G.K. CHACE. 83/02/03.
- CNO SPACE 4,10
- *** *FASTCNO* PROVIDES AN OPTIMIZED ALGORITHM TO CONVERT LINE
- * IMAGES FROM THE FULL SCREEN EDITOR CHARACTER SET TO THE NOS
- * DISPLAY CODE CHARACTER SET. THE FSE CHARACTER SET USES
- * SEVEN BITS PER CHARACTER, EIGHT CHARACTERS PER WORD, WITH
- * THE 56 DATA BITS RIGHT JUSTIFIED. END OF LINE IS INDICATED
- * BY A CHARACTER CONTAINING ALL ONE BITS. THE NOS LINE
- * FORMAT USES DISPLAY CODE WITH A ZERO BYTE TERMINATOR. THE
- * CHARACTER VALUES ARE IDENTICAL.
- CNO SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FASTCNO(FSELINE,NOSLINE,FSEWORDS,NOSWORDS);
- *
- * FSELINE = FSE-FORMAT LINE IMAGE BUFFER.
- * NOSLINE = NOS-FORMAT LINE IMAGE BUFFER.
- * FSEWORDS = MAXIMUM CAPACITY OF FSELINE.
- * NOSWORDS = MAXIMUM CAPACITY OF NOSLINE.
- CNO SPACE 4,10
- ** FASTCNO - CONVERT NORMAL OUTPUT.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 2, 3, 4, 5, 6.
- * B - ALL.
- FASTCNO SUBR
- SB1 1
- * X1->FSELINE
- SA2 A1+B1 X2->NOSLINE
- SA3 A2+B1 X3->FSELIMIT
- SA4 A3+B1 X4->NOSLIMIT
- SA3 X3 X3=FSELIMIT
- SA4 X4 X4=NOSLIMIT
- SB3 X3 REMEMBER
- SB4 X4 REMEMBER
- SB7 X2 REMEMBER FIRST OUT ADDR
- SA5 X1 PREFETCH FIRSTINPUT
- SA4 A5+B1 PREFETCH EXTRA
- MX6 0 CLEAR OUTPUT ACCUMULATOR
- SX7 8 USEFUL CONSTANT
- SB5 X7 INPUT CHAR CTR
- SB6 10 OUTPUT CHAR CTR
- MX0 7 ISOLATION MASK
- MX1 59 CLEAR SEVENTH BIT AWAY
- LX0 56
- SB2 60 INITIAL ROTATE CTR
- LOOP ZR B5,NXTINPT IF NEED MORE INPUT
- ZR B6,NXTOUTP IF MUST CLEAR OUTPUT
- BX3 X5*X0 ISOLATE INPUT
- BX2 X3-X0 SEE IF ALL ONES - EOL
- ZR X2,GENEOL
- LX3 5 TO TOP AND SPILL SURPLUS BIT
- LX5 7 NEXT INPUT CHAR
- BX3 X3*X1 GET RID OF SEVENTH BIT
- LX3 B2 NOW ALIGN UNDER ACCUM
- SB2 B2-6 NEXT ROTATE COUNT
- BX6 X6+X3 ACCUMULATE IT
- SB5 B5-B1 DECR CHAR CTRS
- SB6 B6-B1
- EQ LOOP DO ANOTHER CHAR
- * NXTINPT COMES NEXT AND BEFORE NXTOUTO, SINCE NXTINPT IS
- * FIRST AND MORE OFTEN, THE STACK PREFETCH WILL GET BOTH
- * NXTINPT AND NXTOUTP INTO THE STACK QUICKLY ENOUGH THAT
- * WE NEVER VOID THE CYBER175 STACK.
- NXTINPT BX5 X4 BRING UP PREFETCHED
- SA4 A4+B1 PREFETCH ANOTHER
- SB5 X7 RESET CHAR CTR TO 8
- SB3 B3-B1 CHEC LIMIT
- LE B3,GENEOL EMERGENCY EXIT
- EQ LOOP USUAL EXIT
- NXTOUTP SA6 B7 STORE
- SB7 B7+B1 POINT TO NEXT
- MX6 0 CLEAR ACCUM
- SB4 B4-B1 CHECK LIMIT
- SB6 10 RESET CHAR CTR
- SB2 60 RESET ROTATE CTR
- LE B4,FORCEOL EMERGENCY EXIT
- EQ LOOP NORMAL EXIT
- GENEOL SA6 B7 STORE WHAT WE HAVE
- MX0 48 ASSURE 12 BIT ENDOFLINE
- BX6 -X0*X6
- ZR X6,FASTCNO
- MX6 0 PREVIOUS WORD NOT EOL ITSELF
- SA6 B7+B1
- EQ FASTCNO
- FORCEOL MX6 0 CLOBBER AN EOL
- SA6 B7-B1 STORE AGAIN TO ASSURE EOL
- EQ FASTCNO
- END
- IDENT FASTCAI
- ENTRY FASTCAI
- SYSCOM B1
- TITLE FASTCAI - CONVERT ASCII INPUT.
- *COMMENT FASTCAI - CONVERT ASCII INPUT.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CAI SPACE 4,10
- *** FASTCAI - CONVERT ASCII INPUT.
- *
- * G.K. CHACE. 83/02/03.
- CAI SPACE 4,10
- *** *FASTCAI* PROVIDES AN OPTIMIZED ALGORITHM TO CONVERT LINE
- * IMAGES FROM THE NOS LINE FORMAT WITH 6/12 ASCII CHARACTERS,
- * TO THE FULL SCREEN EDITOR INTERNAL FORMAT AND CHARACTER
- * SET. THE FSE CHARACTER SET USES SEVEN BITS PER CHARACTER
- * AND EIGHT CHARACTERS PER WORD, WITH THE 56 DATA BITS RIGHT
- * JUSTIFIED IN EACH WORD. END OF LINE IS DENOTED BY A
- * CHARACTER OF ALL ONE BITS, AND THE REST OF THE LAST WORD
- * MAY BE RANDOM.
- *
- * THE TOP BIT OF EACH FSE CHARACTER IS AN ESCAPE FLAG WHICH
- * EFFECTIVELY MIMICS THE UPARROW OF THE 6/12 FORMAT. THE
- * LOWER SIX BITS OF EACH FSE CHARACTER EQUAL THE DISPLAY CODE
- * VALUES OF THE 6/12 FORMAT. UNTRANSLATABLE CHARACTERS ARE
- * CHANGED TO COMMERCIAL AT SYMBOLS. A STATUS CODE IS RETURNED
- * TO THE CALLER TO INDICATE WHETHER UNTRANSLATABLE CHARACTERS
- * AND/OR 00B FORMAT COLONS WERE ENCOUNTERED.
- CAI SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FASTCAI(FSELINE,NOSLINE,FSELIMIT,NOSLIMIT,ZEROFLG);
- *
- * FSELINE = FSE-FORMAT LINE IMAGE BUFFER.
- * NOSLINE = 6/12 NOS ASCII LINE IMAGE BUFFER.
- * FSELIMIT = MAXIMUM CAPCITY OF FSELINE.
- * NOSLIMIT = MAXIMUM CAPACITY OF NOSLINE.
- * ZEROFLG = BAD CHARACTER AND/OR 00B COLON STATUS.
- CAI SPACE 4,10
- ** FASTCAI - CONVERT ASCII INPUT.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * EXIT NOSLINE CONTAINS CONVERTED LINE IN INTERNAL FORMAT.
- * ZEROFLG = 0 IF NO BAD CHARACTERS OR 00B COLONS FOUND.
- * = 1 IF 00B COLON(S) FOUND.
- * = 2 IF BAD CHARACTER CODE(S) CHANGED.
- * = 3 IF BOTH 00B COLON(S) AND BAD CHARACTER(S).
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 5, 6, 7.
- * B - ALL.
- FASTCAI SUBR
- SB1 1
- SA2 A1+B1 X1->FSELINE, X2->NOSLINE
- SA3 A2+B1 X3->FSELIMIT
- SA4 A3+B1 X4->NOSLIMIT
- SA5 A4+B1 GET ZEROFLG
- SA3 X3 X3=FSELIMIT
- SA4 X4 X4=NOSLIMIT
- BX6 X5 SAVE POINTER TO ZEROFLG
- SA6 SAVADDR
- MX7 0 CLEAR ACCUMULATOR
- SA7 SAVBADC CLEAR FLAGS
- SA7 SAVZCOL
- SB7 X1 OUTPUT POINTER
- SB3 X3 REMEMBER LIMIT COUNTERS
- SB4 X4 DITTO
- SA5 X2 PREFETCH FIRST NOS WORD
- SA4 A5+B1 ADDITIONAL PREFETCH
- MX0 6 6-BIT MASK
- SB6 8 NUM FSE CHAR/WORD
- SB5 8 NUM NOS CHAR/WORD MINUS PRE-FETCH
- SB2 49 INIT ALIGNMENT SHIFTER
- LX0 6 WE WILL WORK AT BOTTOM OF WORD
- LX5 6 DITTO
- BX1 X0*X5 PRELOAD FIRST TWO CHARS
- BX5 -X0*X5
- LX5 6
- BX2 X0*X5
- BX5 -X0*X5
- LX5 6
- LOOP ZR B5,NXTINPT IF NEED ANOTHER CM READ
- ZR B6,NXTOUTP IF NEED ANOTHER CM WRITE
- ZR X1,COLON SPECIAL CASE
- SX3 X1-1R@ SPECIAL CASE
- ZR X3,ATSIGN
- SX3 X1-1R^ PARTLY SPECIAL
- NZ X3,GENCHAR
- SX1 X2+100B SHIFTED ALPHA CHAR
- SX2 X2-77B CHECK FOR *US* CONTROL CHARACTER
- ZR X2,BADCHAR IF *US* CONTROL CHARACTER MUST DISCARD
- EXTRACH BX2 X0*X5 GEN NEXT CHAR
- BX5 -X0*X5
- LX5 6
- SB5 B5-B1 DECR CHAR/WORD
- NZ B5,GENCHAR IF NORMAL
- RJ GETINPT IF ENDING WORD
- GENCHAR LX1 B2 ALIGN FSE CHAR UNDER ACCUM
- SB2 B2-7
- BX7 X7+X1 ACCUMULATE
- BX1 X2 ADVANCE THE TWO CHARACTERS
- BX2 X0*X5
- BX5 -X0*X5
- LX5 6
- SB6 B6-B1 DECR CHAR/WORD COUNTERS
- SB5 B5-B1
- EQ LOOP
- NXTOUTP SA7 B7 WRITE A RESULT WORD
- SB7 B7+B1 INCR PTR FOR NXT
- MX7 0 CLEAR ACCUM
- SB3 B3-B1 CHECK LIMIT
- SB6 8
- SB2 49
- LE B3,FORCEOL IF IN TROUBLE
- EQ LOOP
- NXTINPT BX5 X4 ADVANCE PREFETCH
- SA4 A4+B1 PREFETCH ANOTHER
- SB5 10 RESET COUNTER
- SB4 B4-B1 CHECK LIMIT
- LX5 6 PRE-SHIFT TO BOTTOM
- LE B4,GOTEOL
- EQ LOOP
- GETINPT BSSZ 1
- BX5 X4 ADVANCE PREFETCHED
- SA4 A4+B1 PREFETCH ANOTHER
- SB5 10 RESET COUNTERS
- SB4 B4-B1 CHECK LIMIT
- LX5 6 PRE-SHIFT TO BOTTOM
- LE B4,GOTEOL
- EQ GETINPT
- ATSIGN SX3 X2-1RA CHECK FOUR KNOWN SEQUENCES
- ZR X3,ATSIGNA
- SX3 X2-1RB
- ZR X3,ATSIGNB
- SX3 X2-1RD
- ZR X3,ATSIGND
- SX3 X2-1RG
- ZR X3,ATSIGNG
- BADCHAR SX6 2 NOTE THAT BAD CHARACTER OCCURRED
- SA6 SAVBADC
- ATSIGNA SX1 74B
- EQ EXTRACH
- ATSIGNB SX1 76B
- EQ EXTRACH
- ATSIGND SX1 0
- EQ EXTRACH
- ATSIGNG SX1 100B FSE ACCENT-GRAVE
- EQ EXTRACH
- ZERCHAR SX6 B1 NOTE THAT 00B FORMAT COLON OCCURRED
- SA6 SAVZCOL
- MX1 0 REGENERATE INTERNAL CHARACTER VALUE
- EQ GENCHAR PROCEED TO GENERATE THE COLON
- COLON NZ X2,ZERCHAR IF NEXT CHAR NOT ALSO COLON
- SX3 B5-10 SEE IF LAST 2 CHARS OF WORD
- ZR X3,GOTEOL THATS THE WHOLE STORY
- NZ X5,ZERCHAR IF MORE TO CHECK
- * EQ GOTEOL DRIFT INTO END-OF-LINE
- GOTEOL SX1 177B FSE EOL CHAR
- LX1 B2 POSITION UNDER ACCUM
- BX7 X7+X1
- SETFLAG SA3 SAVBADC GET BAD CHARACTER FLAG
- SA2 SAVZCOL GET 00B COLON FLAG
- SA7 B7 PUT LINE TERMINATOR IN PLACE
- SA1 SAVADDR GET STATUS WORD ADDRESS
- BX7 X2+X3 RETURN 00B COLON / BAD CHARACTER STATUS
- SA7 X1+
- EQ FASTCAI NORMAL EXIT
- FORCEOL SX7 177B EMERGENCY EXIT
- LX7 49
- SB7 B7-B1 BACK UP ONE WORD
- EQ SETFLAG SET 00B COLON AND BAD CHARACTER FLAGS
- SAVADDR CON 0 ADDRESS OF STATUS RETURN WORD
- SAVBADC CON 0 BAD CHARACTER FLAG
- SAVZCOL CON 0 00B FORMAT COLON FLAG
- END
- IDENT FASTCAO
- ENTRY FASTCAO
- SYSCOM B1
- TITLE FASTCAO - CONVERT ASCII OUTPUT.
- *COMMENT FASTCAO - CONVERT ASCII OUTPUT.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CAO SPACE 4,10
- *** FASTCAO - CONVERT ASCII OUTPUT.
- *
- * G.K. CHACE. 83/02/03.
- CAO SPACE 4,10
- *** *FASTCAO* COPIES AND CONVERTS A LINE IMAGE FROM THE FULL
- * SCREEN EDITOR CHARACTER SET AND LINE FORMAT, TO THE 6/12
- * ASCII NOS CHARACTER SET AND LINE FORMAT. THE FSE CHARACTER
- * SET USES SEVEN BITS PER CHARACTER, EIGHT CHARACTERS PER
- * WORD, WITH THE 56 DATA BITS RIGHT JUSTIFIED. THE END OF
- * LINE IS DENOTED BY A CHARACTER OF ALL ONE BITS. THE TOP
- * BIT OF EACH CHARACTER MIMICS THE UPARROW ESCAPE CONVENTION
- * OF THE 6/12 CHARACTER SET, AND THE LOWER SIX BITS OF EACH
- * CHARACTER EQUAL THE DISPLAY CODES. THE 6/12 LINE IMAGE
- * USES THE NOS ZERO BYTE TERMINATOR.
- CAO SPACE 4,10
- * *SYMPL* CALL -
- *
- * FASTCAO(FSELINE,NOSLINE,FSELIMIT,NOSLIMIT);
- *
- * FSELINE = FSE-FORMAT LINE IMAGE BUFFER.
- * NOSLINE = 6/12 ASCII LINE IMAGE BUFFER.
- * FSELIMIT = MAXIMUM CAPACITY OF FSELINE.
- * NOSLIMIT = MAXIMUM CAPACITY OF NOSLINE.
- CAO SPACE 4,10
- ** FASTCAO - CONVERT ASCII OUTPUT.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 0, 2, 3, 4, 5, 7.
- * B - ALL.
- FASTCAO SUBR
- SB1 1
- SA2 A1+B1 X1->FSELINE, X2->NOSLINE
- SA3 A2+B1 X3->FSELIMIT
- SA4 A3+B1 X4->NOSLIMIT
- SA5 A4+B1 X5->COLONFLG
- SB7 X2 REMEMBER OUTPUT ADDR
- SA3 X3 X3=FSELIMIT
- SA4 X4 X4=NOSLIMIT
- SA5 X5 X5=COLONFLG
- MX0 7 ISOLATE FSE CHARACTER
- LX0 56 IN POSITION
- SB2 54 INITIAL ROTATE COUNT
- SB5 8 CHAR/WORD
- SB6 10 CHAR/WORD
- SA0 -6 USEFUL CONSTANT
- SB3 X3 REMEMBER
- SB4 X4
- BX6 X5
- SA5 X1 PREFETCH FIRST FSE WORD
- SA4 A5+B1 PREFETCH ANOTHER
- MX7 0 CLEAR ACCUMULATOR
- MX3 54 HELPS FIND SPECIAL CHARS
- EQ LOOP START ITERATION
- GENCHAR LX1 B2 POSITION THE CHARACTER
- SB2 B2+A0 DECR SHIFT COUNT
- BX7 X7+X1 ACCUMULATE IT
- LX5 7 BRING UP NEXT FSE CHAR
- SB6 B6-B1 DECR CHAR/WORD
- SB5 B5-B1 DECR CHAR/WORD
- LOOP ZR B5,NXTINPT
- ZR B6,NXTOUTP
- BX1 X0*X5 ISOLATE CURRENT FSE CHAR
- BX2 X1-X0 CHECK FOR FSE EOL CHAR
- ZR X2,GENEOL
- LX1 11 PUT IT AT BOTTOM OF WORD
- BX2 -X3*X1 LOOK FOR COLON + ACCENT
- ZR X2,SPECIAL
- SX2 X2-73B LOOK FOR OTHER SPECIALS
- PL X2,SPECIAL SOME WILL COME RIGHT BACK
- TSTSHFT SX2 X1-100B NOW LOOK FOR SHIFTED
- MI X2,GENCHAR NORMAL
- SX2 1R^ ESTABLISH SHIFT CHAR
- LX2 B2 GEN EXTRA CHAR
- SB6 B6-B1 DECR COUNTER
- SB2 B2+A0 DECR SHIFT COUNTER
- BX7 X7+X2 ACCUMULATE POSITIONED CHAR
- BX1 -X3*X1 GET RID OF SHIFT BIT IN CHAR
- NZ B6,GENCHAR IF USUAL CASE, GENERATE OTHER CHAR
- EQ GENOUTP WHEN CROSSING WORDS RIGHT NOW
- NXTINPT BX5 X4 ADVANCE PREFETCHED
- SA4 A4+B1 PREFETCH ANOTHER
- SB5 8 RESET CHAR/WORD
- SB3 B3-B1 CHECK LIMIT
- LE B3,GENEOL
- EQ LOOP
- NXTOUTP SA7 B7 STORE IT
- SB7 B7+B1
- MX7 0 CLEAR ACCUM
- SB4 B4-B1 CHECK LIMIT
- SB6 10 RESET CHAR/WORD
- SB2 54 RESET POSITIONER
- LE B4,FORCEOL ABNORMAL SITUATION
- EQ LOOP
- GENOUTP SA7 B7
- SB7 B7+B1
- MX7 0
- SB4 B4-B1
- SB6 10
- SB2 54
- LE B4,FORCEOL
- EQ GENCHAR
- SPECIAL ZR X1,COLON
- SX2 X1-1R@ CHECK EACH SPECIAL CASE
- ZR X2,ATSIGN
- SX2 X1-1R^
- ZR X2,UPARROW
- SX2 X1-100B
- ZR X2,ACCENT
- EQ TSTSHFT ONE OF THE NORMAL CHARS 73-77
- COLON ZR X6,GENCHAR IF GEN 00
- SX1 04B IF GEN 7404
- SX2 74B
- EQ GENSPEC
- ATSIGN SX2 74B
- SX1 01B
- EQ GENSPEC
- UPARROW SX2 74B
- SX1 02B
- EQ GENSPEC
- ACCENT SX2 74B
- SX1 07B
- * EQ GENSPEC
- GENSPEC LX2 B2 ALIGN UNDER ACCUM
- SB6 B6-B1 DECR COUNTERS
- SB2 B2+A0
- BX7 X7+X2
- NZ B6,GENCHAR IF USUAL CASE
- EQ GENOUTP WHEN CROSSING WORD BOUNDARY
- GENEOL SA7 B7 STORE CURRENT WORD
- MX0 48 ASSURE 12 BIT ENDOFLINE
- BX7 -X0*X7
- ZR X7,FASTCAO
- MX7 0 PREVIOUS WORD NOT EOL ITSELF
- SA7 A7+B1
- EQ FASTCAO
- FORCEOL MX7 0 GENERATE CRISIS END-OF-LINE
- SA7 B7-B1 STORE LAST WORD AGAIN
- EQ FASTCAO
- END
- IDENT FASTFND
- ENTRY FASTFND
- SYSCOM B1
- TITLE FASTFND - FIND STRING IN LINE.
- *COMMENT FASTFND - FIND STRING IN LINE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- FSL SPACE 4,10
- *** FASTFND - FIND STRING IN LINE.
- *
- * G.K. CHACE. 83/02/03.
- FSL SPACE 4,10
- *** *FASTFND* SEARCHES AN INTERNALLY FORMATTED LINE IMAGE FOR A
- * CHARACTER STRING. THE INTERNAL LINE FORMAT USES SEVEN BITS
- * PER CHARACTER AND EIGHT CHARACTERS PER WORD, WITH THE 56
- * DATA BITS RIGHT JUSTIFIED. THE CALLER PROVIDES BOUNDARIES
- * FOR THE FIRST AND LAST CHARACTER POSITIONS WITHIN THE LINE
- * WHERE THE SEARCH CAN BE ATTEMPTED. THE CALLER PROVIDES A
- * MASK WHICH EFFECTIVELY DETERMINES WHETHER THE TOP BIT OF
- * EACH CHARACTER (THE LOWER CASE FLAG) SHALL BE CHECKED OR
- * IGNORED. THIS ROUTINE RETURNS A TRUE/FALSE FUNCTION VALUE
- * FOR THE SUCCESS OR FAILURE OF THE SEARCH, PLUS A CHARACTER
- * POSITION WHERE THE SEARCH SUCCEEDS.
- FSL SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SUCCESS=FASTFND(LINE,LAST,FIRST,STRING,STRLEN,SLTS,POS,MASK);
- *
- * SUCCESS = BOOLEAN SEARCH RESULT.
- * LINE = LINE IMAGE BUFFER.
- * LAST = LAST POSITION TO SEARCH IN.
- * FIRST = FIRST POSITION TO SEARCH IN.
- * STRING = LINE IMAGE BUFFER WITH SEARCH KEY.
- * STRLEN = NUMBER OF SEVEN-BIT CHARACTERS IN STRING.
- * SLTS = LENGTH OF STRING LESS TRAILING SPACES.
- * POS = IF SEARCH SUCCEEDS, POSITION WHERE FOUND.
- * MASK = UPPER/LOWER SIGNIFICANCE BITMASK.
- FSL SPACE 4,10
- ** FASTFND - FIND STRING IN LINE.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * EXIT (X6) = 0, IF STRING NOT FOUND.
- * (X6) = 1, IF STRING FOUND.
- * (POS) = POSITION OF STRING IN LINE, IF STRING FOUND.
- *
- * USES X - ALL.
- * A - 0, 1, 2, 3, 4, 5, 6.
- * B - ALL.
- FASTFND BSS 1
- SB1 1
- SX6 A1+
- SA6 FNDA
- * X1 = LINE
- SA2 A1+B1 X2 = LEN
- SA3 A2+B1 X3 = START
- SA5 A3+B1 X5 = FOR
- SA4 A5+B1 X4 = FORLEN
- SA2 X2 X2 = LEN
- SA3 X3 X3 = START
- SA5 X5 X5 = FOR[0]
- SX6 X3 X6 = WHERE (INIT TO START)
- SA3 A4+B1
- SA4 X4 X4 = FORLEN
- SA3 X3 X3 = FORLEN LESS TRAILING SPACES
- PL X3,FND0 IF SOME NON-SPACE CHARACTERS
- BX3 X3-X3
- FND0 NG X4,FND12 IF NULL KEY
- IX0 X2-X6 GET NUMBER TO LOOK FOR IN OUTER
- IX0 X0-X3
- SB6 X0+B1
- LE B6,FND12 IF NOT ENOUGH CHARACTERS
- LX3 30
- BX4 X4+X3 X4 = FORLEN-T.S.(59-30), FORLEN(29-0)
- BX7 X6 X7 = START/8
- AX7 3
- MX0 -3 X0 = MOD(START,8)
- BX0 -X0*X6
- SB3 X7 A3,X3 = LINE[START/8]
- SA3 X1+B3
- SA1 A1+7 READ CHARACTER MASK ADDRESS
- SA1 X1+
- BX7 X1 X7 = CHAR MASK
- BX1 X4 X1 = FORLEN-T.S.(59-30), FORLEN(29-0)
- ZR X0,FND1 IF ON WORD BOUNDRY
- SX2 8 B2 = # CHARS LEFT IN WORD
- IX2 X2-X0
- SB2 X2
- BX2 X3 X2 = LINE[START/8]
- SX3 7 LEFT SHIFTED MOD(START,8) CHARS
- IX3 X3*X0
- SB3 X3
- LX2 B3
- SA3 A3+1 ENTER BYTE LOOP
- SB6 B6-B2
- GT B6,FND2 IF NOT LAST WORD
- SB2 B6+B2 FIX LAST WORD
- SB6 X0+B2
- SB6 -B6
- EQ FND2 BEGIN FIRST BYTE COMPARISON
- FND1 LE B6,FND12 IF END OF LINE
- BX2 X3 GET NEXT WORD
- SB2 8
- SA3 A3+B1
- GE B2,B6,FND4 IF ON THE LAST WORD
- SB6 B6-B2
- FND2 BX0 X5-X2 COMPARE CHAR
- BX0 X0*X7
- ZR X0,FND5 IF FIRST CHARACTERS MATCH
- FND3 SX6 X6+1 STEP TO NEXT CHARACTER
- LX2 7
- SB2 B2-B1
- NE B2,FND2 IF WORD NOT EXHAUSTED
- EQ FND1 GET NEXT WORD
- FND4 SB2 B6 FIX UP LAST WORD
- SB6 -B6
- EQ FND2 CONTINUE FIRST BYTE COMPARISON
- FND5 SB7 X1+
- LX1 30
- SB4 B2+X1
- LX1 30
- LT B6,FND6 IF WORKING ON LAST WORD
- SB4 B4+B6
- FND6 GT B4,B7,FND7 IF MORE LEFT THAN STRING LENGTH
- SB7 B4-1 ONLY COMPARE REMAINDER
- FND7 LE B7,FND13 IF ZERO STRING LENGTH
- BX4 X5 X4 = WORKING FOR WORD
- SB5 A5+B1 B5 = WORKING FOR ADDR
- SB4 8 B4 = # CHARS LEFT IN X4
- SA0 B2+ SAVE B2
- BX3 X2 SAVE X2
- SB3 A3 B3 = WORKING LINE ADDR
- GE B6,FND8 IF NOT LAST WORD
- SB2 B4+B2 CORRECT CHAR COUNT OF X2
- SB2 B2+B6
- FND8 LX2 7 SHIFT LINE WORD
- SB2 B2-B1
- NE B2,FND9 IF NOT END OF WORD
- SA2 B3
- SB3 B3+B1
- SB2 8
- FND9 LX4 7 SHIFT FOR WORD
- SB4 B4-B1
- NE B4,FND10 IF NOT END OF WORD
- SA4 B5
- SB5 B5+B1
- SB4 8
- FND10 BX0 X4-X2 COMPARE CHARS
- BX0 X0*X7
- NZ X0,FND11 IF COMPARISON FAILED
- SB7 B7-1
- NE B7,FND8 IF MORE TO COMPARE
- EQ FND13 EXIT WITH STRING MATCH
- FND11 BX2 X3 RESTORE X2
- SA3 A3 START UP PREFETCH
- SB2 A0+
- EQ FND3 REENTER OUTER LOOP
- FND12 SX6 B0+ FASTFND = FALSE
- EQ FASTFND RETURN
- FND13 SA1 FNDA RETURN DISP OF FOUND STRING
- SA1 X1+6 IN *POS* PARM
- SA6 X1
- SX6 B1 FASTFND = TRUE
- EQ FASTFND RETURN
- FNDA BSS 1 PARAMETER LIST ADDRESS
- END
- IDENT FASTRLC
- ENTRY FASTRLC
- SYSCOM B1
- TITLE FASTRLC - RELOCATE VALUES IN VECTOR.
- *COMMENT FASTRLC - RELOCATE VALUES IN VECTOR.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- RLC SPACE 4,10
- *** FASTRLC - RELOCATE VALUES IN VECTOR.
- *
- * G.K. CHACE. 83/02/03.
- RLC SPACE 4,10
- *** *FASTRLC* PROVIDES AN OPTIMIZED ALGORITHM TO CHECK A VECTOR
- * OF INTEGERS FOR VALUES EQUAL TO OR GREATER THAN A THRESHOLD
- * AND INCREMENT OR DECREMENT THOSE VALUES BY AN OFFSET.
- RLC SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FASTRLC(STACK,NWORDS,THRESH,INCR);
- *
- * STACK = THE ARRAY OF RELOCATABLE VALUES.
- * NWORDS = SIZE OF STACK.
- * THRESH = THRESHOLD VALUE FOR RELOCATION TO OCCUR.
- * INCR = OFFSET TO BE ADDED.
- RLC SPACE 4,10
- ** FASTRLC - RELOCATE VALUES IN VECTOR.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 2, 3, 4, 5, 7.
- * A - 2, 3, 4, 7.
- * B - 1, 2.
- FASTRLC SUBR
- * A1->PARMS, X1->STACK
- SA2 A1+1 X2->NWORDS
- SA3 A1+2 X3->CURL
- SA4 A1+3 X4->INCR
- SB1 1
- SA2 X2 X2=NWORDS
- SA3 X3 X3=CURL
- SA4 X4 X4=INCR
- SB2 X2 B2=NWORDS, X2 FREE
- SA2 X1 X2=FIRST WORD, X1 FREE
- MX0 30 USEFUL MASK
- LOOP BX1 X2 BRING IN THE PREFETCHED WORD
- SA2 A2+B1 PREFETCH NEXT
- SB2 B2-B1 DECREMENT LOOP COUNT
- IX5 X1-X3 COMPARE FOR RELOCATION
- NG B2,FASTRLC WHEN EXHAUSTED
- NG X5,LOOP IF NEEDS NO HELP
- IX7 X1+X4 RELOCATE IT
- SA7 A2-B1 RE-STORE IT
- EQ LOOP
- END
- IDENT MOVEWD
- ENTRY MOVEWD
- SYSCOM B1
- TITLE MOVEWD - MOVE WORDS.
- *COMMENT MOVEWD - MOVE WORDS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- MVW SPACE 4,10
- *** MOVEWD - MOVE WORDS.
- *
- * G.K. CHACE. 83/02/03.
- MVW SPACE 4,10
- *** *MOVEWD* MOVES A BLOCK OF CENTRAL MEMORY TO ANOTHER LOCATION.
- MVW SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * MOVEWD(LENGTH,FROM,TO);
- *
- * LENGTH = NUMBER OF WORDS.
- * FROM = SOURCE ARRAY.
- * TO = TARGET ARRAY.
- MVW SPACE 4,10
- ** MOVEWD - MOVE WORDS.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- * B - ALL.
- MOVEWD BSS 1
- SB1 1
- SA2 A1+B1
- SA3 A2+B1
- SA1 X1
- * NOW X1=COUNT, X2 POINTS FROM, X3 POINTS WHERE
- ZR X1,MOVEWD IF NULL COUNT
- SB5 X1 B5 = COUNT
- SB6 X2 B6 POINTS FROM
- SB7 X3 B7 POINTS TO
- SB3 B7-B6 ADDRESS OFFSET
- ZR B3,MOVEWD IF NULL OFFSET
- PL B3,HIGHER IF MOVE TO HIGHER ADDRESS
- SB2 1
- SB3 2
- SB4 8
- EQ START
- HIGHER SB2 -1
- SB3 -2
- SB4 -8
- SB6 B6+B5
- SB7 B7+B5
- SB6 B6-B1 LWA OF FROM
- SB7 B7-B1 LWA OF TO
- START SA1 B6 START PREFETCH OF DATA
- SA2 A1+B2
- SA3 A2+B2
- SA4 A3+B2
- SB5 B5-8 SEE IF ALREADY NEAR DONE
- NG B5,FINAL
- LOOP BX6 X1
- SA1 A3+B3 PREFETCH MORE
- BX7 X2
- SA2 A4+B3
- SA6 B7
- SA7 B7+B2
- BX6 X3
- SA3 A1+B3
- BX7 X4
- SA4 A2+B3
- SA6 A6+B3
- SA7 A7+B3
- BX6 X1
- SA1 A3+B3
- BX7 X2
- SA2 A4+B3
- SA6 A6+B3
- SA7 A7+B3
- BX6 X3
- SA3 A1+B3
- BX7 X4
- SA4 A2+B3
- SA6 A6+B3
- SA7 A7+B3
- SB5 B5-8 DECREMENT COUNT
- SB7 B7+B4 INCREMENT OUTPUT ADDRESS
- PL B5,LOOP IF NOT WITHIN 7 OR LESS WORDS
- * HANDLE LAST 1 TO 7 WORDS IN LINE
- FINAL SB5 B5+8
- ZR B5,MOVEWD
- BX6 X1
- SB5 B5-B1
- SA6 B7
- ZR B5,MOVEWD
- BX6 X2
- SB5 B5-B1
- SA6 A6+B2
- ZR B5,MOVEWD
- BX6 X3
- SB5 B5-B1
- SA6 A6+B2
- ZR B5,MOVEWD
- BX6 X4
- SB5 B5-B1
- SA6 A6+B2
- ZR B5,MOVEWD
- SA1 A3+B3
- BX6 X1
- SB5 B5-B1
- SA6 A6+B2
- ZR B5,MOVEWD
- SA2 A4+B3
- BX6 X2
- SB5 B5-B1
- SA6 A6+B2
- ZR B5,MOVEWD
- SA3 A1+B3
- BX6 X3
- SB5 B5-B1
- SA6 A6+B2
- EQ MOVEWD
- END
- IDENT ZEROWD
- ENTRY ZEROWD
- SYSCOM B1
- TITLE ZEROWD - ZERO WORDS.
- *COMMENT ZEROWD - ZERO WORDS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ZWD SPACE 4,10
- *** ZEROWD - ZERO WORDS.
- *
- * G.K. CHACE. 83/02/03.
- ZWD SPACE 4,10
- *** *ZEROWD* ZEROES OUT A BLOCK IN MEMORY.
- ZWD SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * ZEROWD(ARRAY,LENGTH);
- *
- * ARRAY = TARGET ADDRESS.
- * LENGTH = NUMBER OF WORDS.
- ZWD SPACE 4,10
- ** ZEROWD - ZERO WORDS.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 2, 6.
- * A - 2, 6.
- * B - 1, 2.
- ZEROWD BSS 1 FROM,NW
- SB1 1 MAKE SURE
- SA2 A1+B1 X2=NW ADR
- MX6 0 GET A ZERO
- SA2 X2 X2=NW
- SB2 X2-1 B2=MAX OFFSET
- ZEROWD1 MI B2,ZEROWD
- SA6 X1+B2 ZERO TOPMOST WORD
- SB2 B2-B1 DECREMENT
- EQ ZEROWD1 LOOP
- END
- IDENT FIXCTL
- ENTRY FIXCTL
- SYSCOM B1
- TITLE FIXCTL - FIX CONTROL BYTES.
- *COMMENT FIXCTL - FIX CONTROL BYTES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- FCB SPACE 4,10
- *** FIXCTL - FIX CONTROL BYTES.
- *
- * G.K. CHACE. 83/02/03.
- FCB SPACE 4,10
- *** *FIXCTL* SCANS A ZERO-TERMINATED LINE IMAGE IN EITHER
- * DISPLAY CODE OR 6/12 ASCII, SUPPRESSING ANY CONTROL BYTES
- * BY CHANGING THEIR COLONS TO SEMICOLONS.
- FCB SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FIXCTL(LIMIT,LINE);
- *
- * LIMIT = MAXIMUM CAPACITY OF LINE BUFFER.
- * LINE = THE LINE BUFFER.
- FCB SPACE 4,10
- ** FIXCTL - FIX CONTROL BYTES.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 1, 2, 4, 5, 7.
- * B - 1, 2, 3, 4, 6, 7.
- *
- * CALLS NOSWDSZ.
- FIXCTL SUBR
- SX7 A1 SAME PARAMETER LIST ADDR
- SA7 SAVPARM
- RJ =XNOSWDSZ GET LENGTH IN WORDS
- SB1 1
- SB6 X6 SAVE LENGTH COMPUTED BY NOSWDSZ
- MX6 0 DEFAULT RESULT IS NO CTL BYTES
- MX0 48 USEFUL MASK
- START SA1 SAVPARM
- SA1 X1+B1
- SB2 B6 THIS IS LENGTH OF LINE
- SA1 X1 FETCH FIRST DATA
- SA2 A1+B1 PREFETCH ANOTHER
- OUTLOOP SB7 60 BIT POINTER FOR REPAIR
- BX7 X1 SAVE VIRGIN COPY DATA FOR REPAIR
- INLOOP ZR X1,ENDWORD SEE IF ANYTHING TO DO
- LX1 12 ROTATE NEXT DOUBLE BYTE
- BX3 -X0*X1 ISOLATE
- BX1 X0*X1 REMOVE
- SX4 X3-0001B LOWEST CONTROL BYTE
- SX5 X3-0016B LARGEST PLUS ONE
- BX4 -X4*X5 LOOK FOR X4 PLUS, X5 MINUS
- MI X4,GOT THIS IS A CONTROL BYTE
- NOGOT SB7 B7-12 ADJUST BIT POINTER
- EQ INLOOP
- ENDWORD BX1 X2 BRING UP PREFETCHED DATA
- SA2 A2+B1 PREFETCH MORE
- SB2 B2-B1 DECREMENT WORD COUNT
- NZ B2,OUTLOOP
- EQ FIXCTL WHEN ALL DONE
- GOT SA4 MASK CONTROLS WHICH TESTS
- SB3 X3 NEED ORDINAL FOR ROTATE COUNT
- LX4 B3 EOL FLAG TO SIGN BIT
- PL X4,GOT2 NOT INTERESTED IN EOL
- NZ X1,NOGOT DEFINITELY NOT EOL
- SB4 B7-12
- NZ B4,GOT2 DEFINITELY IS EOL
- NZ X2,NOGOT NOT EOL
- GOT2 LX4 20 BOW FLAG TO SIGN
- PL X4,GOT3 NOT INTERESTED IN BEGIN-WORD
- SB4 B7-60
- NZ B4,NOGOT NOT BEGIN OF WORD
- GOT3 LX4 20 BOL FLAG TO SIGN
- PL X4,ZAP NOT INTERESTED IN BEGIN-LINE
- SA5 SAVPARM
- SA5 X5+B1
- SB4 X5
- SB4 A2-B4 COMPARE ADDRESSES
- SB4 B4-B1
- NZ B4,NOGOT IF NOT BEGIN OF LINE
- ZAP MX6 -1 SHOW SOME WERE FOUND
- MX5 6 GENERATE A SEMICOLON
- LX5 B7 LINE UP TO POINTED BIT
- BX7 X7+X5 INSERT SEMICOLON
- SA7 A2-B1 STORE BACK WHERE CAME FROM
- EQ START RE-SCAN ALL OVER
- SAVPARM BSSZ 1
- MASK DATA 37132000751000130000B
- END
- IDENT FASTLNB
- ENTRY FASTLNB
- SYSCOM B1
- TITLE FASTLNB - IDENTIFY LAST NON BLANK.
- *COMMENT FASTLNB - IDENTIFY LAST NON BLANK.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- LNB SPACE 4,10
- *** FASTLNB - IDENTIFY LAST NON BLANK.
- *
- * G.K. CHACE. 83/02/03.
- LNB SPACE 4,10
- *** *FASTLNB* COMPUTES THE NUMBER OF TRAILING BLANKS IN AN FSE
- * LINE BUFFER. THESE CODED LINES ARE IN THE SPECIAL
- * CHARACTER SET AND LINE FORMAT USED INTERNALLY BY FSE.
- *
- * *FASTLNB* THEN SUBTRACTS THIS FROM THE LINE LENGTH, ALREADY
- * COMPUTED VIA LENGTH FUNCTION, TO SHOW WHERE AN END-OF-LINE
- * CHARACTER MAY BE OVERWRITTEN TO TRIM THE LINE BUFFER.
- LNB SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * LASTNON=FASTLNB(LINE);
- *
- * LASTNON = FUNCTION RESULT IS POSITION OF NON BLANK.
- * LINE = LINE IMAGE BUFFER, FSE INTERNAL FORMAT.
- LNB SPACE 4,10
- ** FASTLNB - IDENTIFY LAST NON BLANK.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - ALL.
- * A - 1, 2, 3, 4, 5.
- * B - ALL.
- *
- * CALLS LENGTH.
- TOP SX6 B7-B6 SUBTRACT TRAIL COUNT FROM LENGTH
- FASTLNB SUBR
- SX6 X1 SAVE TEXT POINTER
- SA6 SAVPARM
- RJ =XLENGTH CALL LENGTH FUNCTION, SAME PARM
- SA1 SAVPARM REBUILD PARM CHAIN
- SB1 1
- SB2 -8 USEFUL CONSTANT
- * X6=LENGTH IN CHARACTERS
- ZR X6,FASTLNB IF NOTHING TO DO
- BX4 X6 BREAK TOTAL INTO WORDS, CHARS
- MX0 57D
- AX4 3
- BX5 -X0*X6
- SB4 X4 B4=WORDS-1
- SB5 X5 B5=EXTRA CHARS
- SB6 B0 NOW B6 IS RESULT ACCUMULATOR
- SB7 X6+8 OFFSET LENGTH BY 8 ...
- SB7 B7-B5 ... AND BY SURPLUS CHARACTERS
- SA3 X1+B4 LOAD ENDING WORD
- SA4 DIVIDE USEFUL FOR DIVISION
- SA5 FLIP USEFUL TO CHANGE 055 TO 000
- SA1 A3-B1 PREFETCH MORE WORDS DOWN FROM TOP
- SA2 A1-B1 DITTO
- SX6 B5 NEED TO MULTIPLY CHAR COUNT BY 7
- SX0 7
- IX6 X6*X0
- MX7 4 WILL BE 4+7*CHARS LONG
- SX0 B1 FOR FUTURE 60-BIT DECREMENT
- SB3 X6 GET VARIABLE BIT COUNT
- AX7 B3 THIS IS 4+7*CHARS BITS LONG
- BX3 X3-X5 CONVERT ANY 055 FIELD TO 000
- BX3 X3*X7 FORCE TRAILER TO ARTIFICIAL BLANKS
- IX6 X3-X0 CHANGE LOW ZEROES TO LOW ONES
- BX3 X3-X6 ELIMINATE MOST SIGNIFICANT UPPER BITS
- BX3 X3*X4 CONSIDER ONLY TOPS OF CHAR FIELDS
- CX3 X3 HOW MANY REAL+ARTIFICAL TRAIL BLANKS
- SB6 B6+X3 ACCUMULATE RESULT
- SX3 X3+B2 SEE IF ALL EIGHT BLANKS
- ZR B4,TOP IF NO OTHER WORDS TO DO
- NZ X3,TOP DONT DO MORE IF NON-BLANK
- LOOP BX6 X1 MOVE PREFETCHED TO SCRATCH
- BX7 X2 DITTO
- SA1 A2-B1 PREFETCH MORE
- SA2 A1-B1 DITTO
- BX6 X6-X5 CONVERT 055 FIELDS TO 000
- BX7 X7-X5 DITTO
- IX3 X6-X0 CHANGE LOW ZEROES TO LOW ONES
- BX6 X6-X3 REMOVE MOST UPPER BITS
- IX3 X7-X0 CHANGE LOW ZEROES TO LOW ONES
- BX7 X7-X3 REMOVE MOST UPPER BITS
- BX6 X6*X4 CONSIDER ONLY TOPS OF CHAR FIELDS
- BX7 X7*X4 DITTO
- CX6 X6 COUNT TRAILING BLANKS
- CX7 X7 DITTO
- SB6 B6+X6 ACCUMULATE RESULT
- SX6 X6+B2 SEE IF ALL EIGHT WERE BLANKS
- SB4 B4-B1 DECREMENT WORD COUNT
- NZ X6,TOP NO, NOTHING MORE TO DO
- ZR B4,TOP WHEN ALL WORDS DONE
- SB6 B6+X7 ACCUMULATE ANOTHER RESULT
- SX7 X7+B2 SEE IF ALL EIGHT BLANKS
- SB4 B4-B1 DECREMENT WORD COUNT
- NZ X7,TOP MUST NOT DO MORE SINCE A NON-BLANK
- ZR B4,TOP WHEN ALL WORDS DONE
- EQ LOOP DO SOME MORE
- SAVPARM BSSZ 1
- FLIP VFD 4/0,7/55B,7/55B,7/55B,7/55B,7/55B,7/55B,7/55B,7/55B
- DIVIDE VFD 4/0,7/100B,7/100B,7/100B,7/100B,7/100B,7/100B,7/100B,7/100B
- END
- IDENT EXCHWD
- ENTRY EXCHWD
- SYSCOM B1
- TITLE EXCHWD - EXCHANGE BLOCKS OF WRODS.
- *COMMENT EXCHWD - EXCHANGE BLOCKS OF WRODS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- XCH SPACE 4,10
- *** EXCHWD - EXCHANGE BLOCKS OF WRODS.
- *
- * G.K. CHACE. 83/02/03.
- XCH SPACE 4,10
- *** *EXCHWD* EXCHANGES THE TEXT BETWEEN TWO BLOCKS OF WORDS
- * IN CENTRAL MEMORY.
- XCH SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * EXCHWD(LENGTH,ARRAY1,ARRAY2);
- *
- * LENGTH = NUMBER OF WORDS.
- * ARRAY1, ARRAY2 = THE TWO AREAS TO EXCHANGE.
- XCH SPACE 4,10
- ** EXCHWD - EXCHANGE BLOCKS OF WRODS.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1, 2, 3, 4, 6, 7.
- * A - 1, 2, 3, 4, 6, 7.
- * B - 1, 2, 5.
- EXCHWD SUBR
- SB1 1
- SA2 A1+B1 X2 -> A
- SA3 A2+B1 X3 -> B
- SA1 X1 X1 = N
- SB2 B1+B1
- ZR X1,EXCHWD
- MI X1,EXCHWD
- SB5 X1 B5 = N
- SA1 X2 PREFETCH DATA
- SA3 X3
- SA2 A1+B1
- SA4 A3+B1
- LOOP BX6 X1
- SA1 A1+B2
- BX7 X3
- SA3 A3+B2
- SB5 B5-B1
- SA6 A3-B2
- SA7 A1-B2
- ZR B5,EXCHWD
- BX6 X2
- SA2 A2+B2
- BX7 X4
- SA4 A4+B2
- SB5 B5-B1
- SA6 A4-B2
- SA7 A2-B2
- ZR B5,EXCHWD
- EQ LOOP
- END
- IDENT SFMSSTF
- ENTRY SFMSSTF
- SYSCOM B1
- TITLE SFMSSTF - USE SFM TO ENABLE SUBSYSTEM.
- *COMMENT SFMSSTF - USE SFM TO ENABLE SUBSYSTEM.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SST SPACE 4,10
- *** SFMSSTF - USE SFM TO ENABLE SUBSYSTEM.
- *
- * G.K. CHACE. 83/02/03.
- SST SPACE 4,10
- *** *SFMSSTF* CALLS *SFM* WITH THE *SSTF* FUNCTION CODE TO
- * SET THE SUBSYSTEM ACCESSABILITY FLAG.
- SST SPACE 4,10
- ** COMMON DECKS.
- *CALL COMSSFM
- SST SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SFMSSTF;
- SST SPACE 4,10
- ** SFMSSTF - USE SFM TO ENABLE SUBSYSTEM.
- *
- * USES B - 1.
- *
- * MACROS SYSTEM.
- SFMSSTF SUBR
- SB1 1
- SYSTEM SFM,R,XXX,SSTF*100B
- EQ SFMSSTF
- XXX CON 0
- END
- IDENT SFMCSTF
- ENTRY SFMCSTF
- SYSCOM B1
- TITLE SFMCSTF - USE SFM TO DISABLE SUBSYSTEM.
- *COMMENT SFMCSTF - USE SFM TO DISABLE SUBSYSTEM.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CST SPACE 4,10
- *** SFMCSTF - USE SFM TO DISABLE SUBSYSTEM.
- *
- * G.K. CHACE. 83/02/03.
- CST SPACE 4,10
- *** *SFMCSTF* CALLS *SFM* WITH THE *CSTF* FUNCTION CODE TO
- * CLEAR THE SUBSYSTEM ACCESSABILITY FLAG.
- CST SPACE 4,10
- ** COMMON DECKS.
- *CALL COMSSFM
- CST SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SFMCSTF;
- CST SPACE 4,10
- ** SFMCSTF - USE SFM TO DISABLE SUBSYSTEM.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES B - 1.
- *
- * MACROS SYSTEM.
- SFMCSTF SUBR
- SB1 1
- SYSTEM SFM,R,XXX,CSTF*100B
- EQ SFMCSTF
- XXX CON 0
- END
- IDENT SETNAD
- ENTRY SETNAD
- SYSCOM B1
- TITLE SETNAD - SET NO AUTO DROP FLAG.
- *COMMENT SETNAD - SET NO AUTO DROP FLAG.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- NAD SPACE 4,10
- *** SETNAD - SET NO AUTO DROP FLAG.
- *
- * G.K. CHACE. 83/02/03.
- NAD SPACE 4,10
- *** *SETNAD* USES *LFM* TO SET THE NO-AUTO-DROP FLAG ON
- * THE SPECIFIED FILE.
- NAD SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SETNAD(FET);
- *
- * FET = FET FOR THE FILE TO BE PROCESSED.
- NAD SPACE 4,10
- ** SETNAD - SET NO AUTO DROP FLAG.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 2.
- * B - 1.
- *
- * MACROS SETFS.
- SETNAD SUBR
- SB1 1
- BX2 X1
- SETFS X2,NAD
- EQ SETNAD
- END
- IDENT SETAUC
- ENTRY SETAUC
- SYSCOM B1
- TITLE SETAUC - COMPUTE AND SET APPLICATION UNIT CHARGE.
- *COMMENT SETAUC - COMPUTE AND SET APPLICATION UNIT CHARGE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- AUC SPACE 4,10
- *** SETAUC - COMPUTE AND SET APPLICATION UNIT CHARGE.
- *
- * G.K. CHACE. 83/05/27.
- AUC SPACE 4,10
- *** *SETAUC* USES *CPM* TO SET THE APPLICATION UNIT CHARGE.
- AUC SPACE 4,10
- ** COMMON DECKS.
- *CALL COMCCMD
- *CALL COMSSRU
- AUC SPACE 4,10
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SETAUC(CIO,SECTOR,TERMINAL);
- *
- * CIO = NUMBER OF CIO CALLS.
- * SECTOR = NUMBER OF SECTORS TRANFERRED VIA CIO.
- * TERMINAL = NUMBER OF WORDS OF TERMINAL OUTPUT.
- AUC SPACE 4,10
- ** SETAUC - COMPUTE AND SET APPLICATION UNIT CHARGE.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 1, 2, 3, 6, 7.
- * A - 1, 2, 3, 6, 7.
- * B - 1.
- *
- * MACROS SETAUC.
- SETAUC SUBR ENTRY/EXIT
- SB1 1
- SA2 A1+B1
- SA3 A2+B1
- SA1 X1 NUMBER OF CIO CALLS
- SA2 X2 NUMBER OF PRU-S
- SA3 X3+ NUMBER OF WORDS OF TERMINAL OUTPUT
- SX0 IMRD READ OPERATION CHARGE
- IX1 X1*X0
- LX2 IMPT PRU TRANSFER CHARGE
- IX6 X1+X2 MS UNITS
- SX0 1000 TEMPORARY SCALE TO PREVENT TRUNCATION
- IX3 X3*X0
- SA6 AUCD
- SX0 IFCO CPU PER OUTPUT, MSEC PER WORD
- IX3 X3*X0
- SX0 "IFCO_D"
- IX6 X3/X0 CP TIME
- SA6 AUCC
- AUC1 SA1 AUCC GET CP TIME
- SA2 A1+B1 GET MS UNITS
- IX3 X1+X2
- ZR X3,SETAUCX IF NO MORE INCREMENTS
- SX6 B0
- BX3 X3-X3
- SA2 AUCE MAXIMUM CP TIME
- ZR X1,AUC2 IF NO MORE CP TIME
- IX6 X1-X2
- BX3 X2
- PL X6,AUC2 IF MAXIMUM CP TIME EXCEEDED
- BX3 X1 CP TIME INCREMENT
- SX6 B0 NO MORE CP TIME
- AUC2 SA6 A1 CP TIME OVERFLOW
- SX7 B0
- SA2 AUCA
- SA7 A2+B1 WORD ZERO
- BX6 X2+X3
- SA6 A7+1 CP TIME WORD ONE
- SA1 AUCD MS UNITS
- SX2 1777B MAXIMUM MS UNITS
- BX3 X3-X3
- SX6 B0
- ZR X1,AUC3 IF NO MORE MS UNITS
- IX6 X1-X2
- BX3 X2
- PL X6,AUC3 IF MAXIMUM MS UNITS EXCEEDED
- SX6 B0 NO MORE MS UNITS
- BX3 X1 MS UNITS INCREMENT
- AUC3 SA6 AUCD MS UNITS OVERFLOW
- LX3 40-0
- BX6 X3
- SA6 AUCB+2 MS UNITS WORD TWO
- SX7 B0
- SA7 A6+B1 WORD THREE
- SA7 A7+1 WORD FOUR
- SETAUC AUCB APPLY CHARGES
- EQ AUC1 LOOP FOR NEXT INCREMENT
- AUCA VFD 6/1,54/0
- AUCB BSSZ 5 SETAUC PARAMETER BLOCK
- AUCC CON 0 CP TIME
- AUCD CON 0 MS UNITS
- AUCE CON 37777777777B MAXIMUM CP TIME INCREMENT
- *CALL COMCCPM
- END
- IDENT ONSW
- ENTRY ONSW
- SYSCOM B1
- TITLE ONSW - SET SENSE SWITCHES.
- *COMMENT ONSW - SET SENSE SWITCHES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- ONS SPACE 4,10
- *** ONSW - SET SENSE SWITCHES.
- *
- * G.K. CHACE. 83/02/03.
- ONS SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * ONSW(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO ONSW MACRO.
- ONS SPACE 4,10
- ** ONSW - SET SENSE SWITCHES.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1.
- * A - 1.
- * B - 1.
- *
- * MACROS ONSW.
- TOP ONSW X1
- ONSW SUBR
- SB1 1
- SA1 X1
- EQ TOP
- END
- IDENT DISSJ
- ENTRY DISSJ
- SYSCOM B1
- TITLE DISSJ - DISABLE/ENABLE SSJ=.
- *COMMENT DISSJ - DISABLE/ENABLE SSJ=.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- DISSJ SPACE 4,10
- *** DISSJ - DISABLE/ENABLE SSJ=.
- *
- * E.D. REDIG. 84/03/01.
- DISSJ SPACE 4,15
- ** COMMON DECKS.
- *CALL COMCMAC
- DISSJ SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * DISSJ(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO DISSJ MACRO.
- * = 2, DISABLE SSJ= PRIVILEGES.
- * = 3, ENABLE SSJ= PRIVILEGES.
- DISSJ SPACE 4,10
- ** DISSJ - DISABLE/ENABLE SSJ=.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1.
- * A - 1.
- * B - 1.
- *
- * MACROS DISSJ.
- DISSJ SUBR ENTRY/EXIT
- SB1 1
- SA1 X1+
- DISSJ X1
- EQ DISSJX RETURN
- END
- IDENT SETRFLE
- ENTRY SETRFLE
- SYSCOM B1
- TITLE SETRFLE - SET RFL FOR EXTENDED MEMORY.
- *COMMENT SETRFLE - SET RFL FOR EXTENDED MEMORY.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- RFL SPACE 4,10
- *** SETRFLE - SET RFL FOR EXTENDED MEMORY.
- *
- * G.K. CHACE. 83/02/03.
- RFL SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SETRFLE(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO SETRFL MACRO.
- RFL SPACE 4,10
- ** SETRFLE - SET RFL FOR EXTENDED MEMORY.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1.
- * A - 1.
- * B - 1.
- *
- * MACROS SETRFL.
- TOP SETRFL ,X1
- SETRFLE SUBR
- SB1 1
- SA1 X1
- EQ TOP
- END
- IDENT GETFLCE
- ENTRY GETFLCE
- SYSCOM B1
- TITLE GETFLCE - DETERMINE EXTENDED MEMORY FIELD LENGTH.
- *COMMENT GETFLCE - DETERMINE EXTENDED MEMORY FIELD LENGTH.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- FLC SPACE 4,10
- *** GETFLCE - DETERMINE EXTENDED MEMORY FIELD LENGTH.
- *
- * G.K. CHACE. 83/02/03.
- FLC SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * GETFLCE(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO GETFLC MACRO.
- FLC SPACE 4,10
- ** GETFLCE - DETERMINE EXTENDED MEMORY FIELD LENGTH.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES B - 1.
- *
- * MACROS GETFLC.
- TOP GETFLC ,X1
- GETFLCE SUBR
- SB1 1
- EQ TOP
- END
- IDENT PROTEON
- ENTRY PROTEON
- SYSCOM B1
- TITLE PROTEON - PROTECT EXTENDED MEMORY FIELD LENGTH.
- *COMMENT PROTEON - PROTECT EXTENDED MEMORY FIELD LENGTH.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- PRO SPACE 4,10
- *** PROTEON - PROTECT EXTENDED MEMORY FIELD LENGTH.
- *
- * G.K. CHACE. 83/02/03.
- PRO SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * PROTEON(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO PROTECT MACRO.
- PRO SPACE 4,10
- ** PROTEON - PROTECT EXTENDED MEMORY FIELD LENGTH.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES B - 1.
- *
- * MACROS PROTECT.
- TOP PROTECT ON
- PROTEON SUBR
- SB1 1
- EQ TOP
- END
- IDENT GETFNT
- ENTRY GETFNT
- SYSCOM B1
- TITLE GETFNT - ACCESS LOCAL FNT-S.
- *COMMENT GETFNT - ACCESS LOCAL FNT-S.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- FNT SPACE 4,10
- *** GETFNT - ACCESS LOCAL FNT-S.
- *
- * G.K. CHACE. 83/02/03.
- FNT SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * GETFNT(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO GETFNT MACRO.
- FNT SPACE 4,10
- ** GETFNT - ACCESS LOCAL FNT-S.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 2.
- * B - 1.
- *
- * MACROS GETFNT.
- TOP GETFNT X2
- GETFNT SUBR
- SB1 1
- BX2 X1
- EQ TOP
- END
- IDENT FILINFO
- ENTRY FILINFO
- SYSCOM B1
- TITLE FILINFO - ACCESS FILE INFORMATION.
- *COMMENT FILINFO - ACCESS FILE INFORMATION.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- FIL SPACE 4,10
- *** FILINFO - ACCESS FILE INFORMATION.
- *
- * G.K. CHACE. 83/02/03.
- FIL SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * FILINFO(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO FILINFO MACRO.
- FIL SPACE 4,10
- ** FILINFO - ACCESS FILE INFORMATION.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 2.
- * B - 1.
- *
- * MACROS FILINFO.
- TOP FILINFO X2
- FILINFO SUBR
- SB1 1
- BX2 X1
- EQ TOP
- END
- IDENT GETJO
- ENTRY GETJO
- SYSCOM B1
- TITLE GETJO - GET JOB ORIGIN.
- *COMMENT GETJO - GET JOB ORIGIN.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- GJO SPACE 4,10
- *** GETJO - GET JOB ORIGIN.
- *
- * G.K. CHACE. 83/02/03.
- GJO SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * GETJO(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO GETJO MACRO.
- GJO SPACE 4,10
- ** GETJO - GET JOB ORIGIN.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES B - 1.
- *
- * MACROS GETJO.
- TOP GETJO X1
- GETJO SUBR
- SB1 1
- EQ TOP
- END
- IDENT USERNUM
- ENTRY USERNUM
- SYSCOM B1
- TITLE USERNUM - GET USER NUMBER.
- *COMMENT USERNUM - GET USER NUMBER.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- GUN SPACE 4,10
- *** USERNUM - GET USER NUMBER.
- *
- * G.K. CHACE. 83/02/03.
- GUN SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * USERNUM(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO USERNUM MACRO.
- GUN SPACE 4,10
- ** USERNUM - GET USER NUMBER.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES B - 1.
- *
- * MACROS USERNUM.
- TOP USERNUM X1
- USERNUM SUBR
- SB1 1
- EQ TOP
- END
- IDENT GETSS
- ENTRY GETSS
- SYSCOM B1
- TITLE GETSS - GET SUBSYSTEM TYPE.
- *COMMENT GETSS - GET SUBSYSTEM TYPE.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- GSS SPACE 4,10
- *** GETSS - GET SUBSYSTEM TYPE.
- *
- * G.K. CHACE. 83/02/03.
- GSS SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * GETSS(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO GETSS MACRO.
- GSS SPACE 4,10
- ** GETSS - GET SUBSYSTEM TYPE.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES B - 1.
- *
- * MACROS GETSS.
- TOP GETSS X1
- GETSS SUBR
- SB1 1
- EQ TOP
- END
- IDENT SETLOF
- ENTRY SETLOF
- SYSCOM B1
- TITLE SETLOF - SET LIST OF FILES.
- *COMMENT SETLOF - SET LIST OF FILES.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- LOF SPACE 4,10
- *** SETLOF - SET LIST OF FILES.
- *
- * G.K. CHACE. 83/02/03.
- LOF SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SETLOF(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO SETLOF MACRO.
- LOF SPACE 4,10
- ** SETLOF - SET LIST OF FILES.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES B - 1.
- *
- * MACROS SETLOF.
- TOP SETLOF X1
- SETLOF SUBR
- SB1 1
- EQ TOP
- END
- IDENT EXCST
- ENTRY EXCST
- SYSCOM B1
- TITLE EXCST - EXECUTE CONTROL STATEMENT.
- *COMMENT EXCST - EXECUTE CONTROL STATEMENT.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- XCS SPACE 4,10
- *** EXCST - EXECUTE CONTROL STATEMENT.
- *
- * G.K. CHACE. 83/02/03.
- XCS SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * EXCST(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO EXCST MACRO.
- XCS SPACE 4,10
- ** EXCST - EXECUTE CONTROL STATEMENT.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 2.
- * B - 1.
- *
- * MACROS EXCST.
- TOP SYSTEM TCS,R,X1,X2
- EXCST SUBR
- SB1 1
- SX2 500B
- EQ TOP
- END
- IDENT DISTCON
- ENTRY DISTCON
- SYSCOM B1
- TITLE DISTCON - DISABLE TERMINAL CONTROL.
- *COMMENT DISTCON - DISABLE TERMINAL CONTROL.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- DTC SPACE 4,10
- *** DISTCON - DISABLE TERMINAL CONTROL.
- *
- * G.K. CHACE. 83/02/03.
- DTC SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * DISTCON(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO DISTC MACRO.
- DTC SPACE 4,10
- ** DISTCON - DISABLE TERMINAL CONTROL.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 5.
- * B - 1.
- *
- * MACROS DISTC.
- DISTCON SUBR
- SB1 1
- BX5 X1
- DISTC ON,X5
- EQ DISTCON
- END
- IDENT CSETA
- ENTRY CSETA
- SYSCOM B1
- TITLE CSETA - SET 6/12 ASCII CHARACTER SET.
- *COMMENT CSETA - SET 6/12 ASCII CHARACTER SET.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CSA SPACE 4,10
- *** CSETA - SET 6/12 ASCII CHARACTER SET.
- *
- * G.K. CHACE. 83/02/03.
- CSA SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * CSETA;
- CSA SPACE 4,10
- ** CSETA - SET 6/12 ASCII CHARACTER SET.
- *
- * USES B - 1.
- *
- * MACROS CSET.
- CSETA SUBR
- SB1 1
- CSET ASCII
- EQ CSETA
- END
- IDENT CSETN
- ENTRY CSETN
- SYSCOM B1
- TITLE CSETN - SET NORMAL CHARACTER SET.
- *COMMENT CSETN - SET NORMAL CHARACTER SET.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- CSN SPACE 4,10
- *** CSETN - SET NORMAL CHARACTER SET.
- *
- * G.K. CHACE. 83/02/03.
- CSN SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * CSETN;
- CSN SPACE 4,10
- ** CSETN - SET NORMAL CHARACTER SET.
- *
- * USES B - 1.
- *
- * MACROS CSET.
- CSETN SUBR
- SB1 1
- CSET NORMAL
- EQ CSETN
- END
- IDENT TSTATUS
- ENTRY TSTATUS
- SYSCOM B1
- TITLE TSTATUS - GET TERMINAL STATUS.
- *COMMENT TSTATUS - GET TERMINAL STATUS.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- GTS SPACE 4,10
- *** TSTATUS - GET TERMINAL STATUS.
- *
- * G.K. CHACE. 83/02/03.
- GTS SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * TSTATUS(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO TSTATUS MACRO.
- GTS SPACE 4,10
- ** TSTATUS - GET TERMINAL STATUS.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 5.
- * B - 1.
- *
- * MACROS TSTATUS.
- TSTATUS SUBR
- SB1 1
- BX5 X1
- TSTATUS X5
- EQ TSTATUS
- END
- IDENT SYSREQ
- ENTRY SYSREQ
- SYSCOM B1
- TITLE SYSREQ - PARAMETERIZED SYSTEM REQUEST.
- *COMMENT SYSREQ - PARAMETERIZED SYSTEM REQUEST.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- SYS SPACE 4,10
- *** SYSREQ - PARAMETERIZED SYSTEM REQUEST.
- *
- * G.K. CHACE. 83/02/03.
- SYS SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * SYSREQ(STRING,R,PARM1,PARM2);
- *
- * STRING = THREE-CHARACTER NAME OF RA+1 REQUEST.
- * R = ZERO OR ONE FOR AUTO RECALL.
- * PARM1 = FIRST PARAMETER.
- * PARM2 = SECOND PARAMETER.
- SYS SPACE 4,10
- ** SYSREQ - PARAMETERIZED SYSTEM REQUEST.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 0, 1, 2, 4, 6.
- * A - 1, 2, 3, 4.
- * B - 1.
- *
- * MACROS SYSTEM.
- TOP LX2 40
- LX4 18
- BX6 X1+X2
- BX6 X6+X3
- BX6 X6+X4
- SYSTEM
- SYSREQ SUBR
- SB1 1
- SA2 A1+1
- SA3 A1+2
- SA4 A1+3
- SA1 X1
- SA2 X2
- SA3 X3
- SA4 X4
- MX0 18
- BX1 X0*X1
- EQ TOP
- END
- IDENT EESET
- ENTRY EESET
- SYSCOM B1
- TITLE EESET - ENABLE EVENT.
- *COMMENT EESET - ENABLE EVENT.
- COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
- EES SPACE 4,10
- *** EESET - ENABLE EVENT.
- *
- * G.K. CHACE. 83/02/03.
- EES SPACE 4,15
- *** CALLING SEQUENCE.
- *
- * *SYMPL* CALL -
- *
- * EESET(PARAMETER);
- *
- * PARAMETER = PARAMETER TO PASS TO EESET MACRO.
- EES SPACE 4,10
- ** EESET - ENABLE EVENT.
- *
- * ENTRY (A1) = FWA OF FORMAL PARAMETER LIST.
- *
- * USES X - 1.
- * A - 1.
- * B - 1.
- *
- * MACROS EESET.
- TOP EESET X1
- EESET SUBR
- SB1 1
- SA1 X1
- EQ TOP
- END
cdc/nos2.source/opl871/fselib.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator