Trailing-Edge
-
PDP-10 Archives
-
bb-bt99e-bb
-
glxscn.c08
There is 1 other file named glxscn.c08 in the archive. Click here to see a list.
REP 2/1 ;08C1
SUBTTL Irwin L. Goverman/ILG/LSS/MLB/PJT/WLH/DC 1-Jan-82
WIT
SUBTTL Irwin L. Goverman/ILG/LSS/MLB/PJT/WLH/DC/CTK/LWS 1-Mar-84
REP 32/1 ;08C2
SCNEDT==74 ;VERSION OF MODULE
WIT
SCNEDT==103 ;VERSION OF MODULE
INS 124/3 ;08C3
;**;Begin Galaxy 4.1 code maintence
0075 12 Digit octal numbers sign bit is dropped by S%NUMI
SPR 10-33455 27-SEP-83/CTK
0076 Fix problem when parsing "-" as a token. Always skip
spaces following, EOL or not.
0077 Don't allow defaulted filnames for indirect files.
Don't ABS when indirect file is too long to put in buffer.
0100 Fix problems parsing numeric field that has "+" or
"-" embedded.
3-Jan-84 /LWS/WD
0101 Make a $ALTERNATE that points to a $CRLF always work.
4-Jan-84 /LWS/WD
0102 Don't let ":" be a valid device name. /LWS
0103 Fix problem where $DEFAULTing wasn't being done
correctly for tokens when CRLF was typed instead
of the token.
3-Apr-84 GCO 10020 /LWS thanks to WXD
REP 38/13 ;08C4
NUMI.2: IMULI P3,0(S2) ;SHIFT OVER 1 DIGIT
WIT
NUMI.2:
;**;[75]ADD 3 LINES AT NUMI.2:+0L 27-SEP-83/CTK
CAXN S2,^D8 ;[75] RADIX 8 ???
LSH P3,3 ;[75] YES, USE SHIFT INSTEAD OF MULTIPLY
CAXE S2,^D8 ;[75] NON-RADIX 8 ??
IMULI P3,0(S2) ;SHIFT OVER 1 DIGIT
INS 31/17 ;08C5
;**;[76] Insert 1 line at XCOM2+13L. 21-Dec-83 /LWS
PUSHJ P,INILCH ;[76] SKIP SPACES
INS 50/17 ;08C6
PUSHJ P,CHKCFM ;[101] SEE IF THERE IS A CONFIRM IN THE LIST
SKIPA ;[101] NO, REISSUE PROMPT
JRST XCOM4 ;[101] YES, PROCESS IT
INS 63/17 ;08C7
;[101] CHKCFM - ROUTINE TO SEE IF A .CMCFM FUNCTION APPEARS ON THE USER'S LIST
;[101] ACCEPTS P1/ POINTER TO USER'S FUNCTION BLOCK
;[101] CALL CHKCFM
;[101] RETURNS +1: IF THERE IS NO .CMCFM ON THE LIST, P1 UNCHANGED
;[101] +2: IF A .CMCFM IS ON THE LIST, P1 IS UPDATED FOR THAT BLOCK
;[101] USES T1.
CHKCFM: STKVAR <LSTPTR> ;[101] TO SAVE P1
MOVEM P1,LSTPTR ;[101] SAVE P1 IN CASE WE NEED TO RESTORE IT
CHKCFL: LOAD T1,.CMFNP(P1),CM%FNC ;[101] GET FUNCTION CODE FROM BLOCK
CAIN T1,.CMCFM ;[101] CONFIRM?
RETSKP ;[101] YES, RETURN SKIP, P1 POINTS TO ITS BLOCK
LOAD T1,.CMFNP(P1),CM%LST ;[101] GET THE POINTER TO THE NEXT BLOCK
HRRM T1,P1 ;[101] UPDATE P1 TO THE NEXT BLOCK
JUMPN T1,CHKCFL ;[101] LOOP AND CHECK BLOCK IF IT EXISTS
MOVE P1,LSTPTR ;[101] BUT IF AT END, RESTORE OLD VALUE OF P1
POPJ P, ;[101] AND RETURN NONSKIP
INS 56/18 ;08C8
;[100] RESET EVERYTHING SUCH THAT FIELD CAN BE REREAD.
;[100] THIS ROUTINE IS USEFUL IF FIELD IS READ, AND THEN WE DECIDE WE WANT
;[100] TO REREAD IT WITH A DIFFERENT LENGTH OR BREAK SET SPECIFIED.
CMFSET: PUSHJ P,CMRSET ;[100] PUT MAIN POINTER TO BEGINNING OF FIELD
PUSHJ P,INILCH ;[100] RESET POINTER TO ATOM BUFFER
TXZ F,CM%ESC+CM%EOC+CMCFF+CMQUES ;[100] RESET PARSET
POPJ P, ;[100]
INS 32/22 ;08C9
;**;[77] Insert 1 line at CMIND1+1L. 28-Dec-83 /LWS
JUMPE P3,CMINE1 ;[77] JUMP IF BUFFER FULL
INS 69/22 ;08C10
;**;[77] Insert 3 lines after CMINDE+4L. 28-Dec-83 /LWS
CMINE1: MOVE S1,IIFN ;[77] GET INDIRECT FILE IFN
PUSHJ P,F%REL ;[77] RELEASE THE FILE
NOPARS (IFB) ;[77] GIVE THE ERROR MESSAGE
INS 2/25 ;08C11
;[100] CMRFLN READS EXACTLY N CHARACTERS. IN OTHER WORDS, THE N + 1ST CHARACTER
;[100] IS A BREAK CHARACTER, NO MATTER WHAT IT IS.
;[100]
;[100] ACCEPTS: T1/ -N
CMRFLN: MOVEM T1,CMRBRK ;[100] SET UP SPECIAL COUNT AS BREAK MASK
PJRST CMRFLO ;[100] JOIN COMMON CODE
REP 8/25 ;08C12
TXNE F,CMDEFF ;DEFAULT GIVEN?
JRST CMRATT ;YES, ALREADY IN BUFFER
CMRAT1: PUSHJ P,CMCIN ;GET A CHAR
WIT
CMRFLO: TXNE F,CMDEFF ;[100] DEFAULT GIVEN?
JRST CMRATT ;[100] YES, ALREADY IN BUFFER
CMRAT1: PUSHJ P,CMROOM ;[100] MAKE SURE ROOM FOR ANOTHER CHARACTER
PUSHJ P,CMCIN ;[100] GET A CHAR
SKIPG CMRBRK ;[100] BREAK SET GIVEN?
JRST CMRAT3 ;[100] NO, KEEP READING REGARDLESS OF CHARACTER
REP 17/25 ;08C13
PUSHJ P,STOLCH ;BUILD KEYWORD STRING
WIT
CMRAT3: PUSHJ P,STOLCH ;[100] BUILD KEYWORD STRING
INS 1/26 ;08C14
;[100] CMROOM DECIDES IF WE CAN READ ANOTHER CHARACTER
CMROOM: SKIPLE CMRBRK ;[100] BREAK SET GIVEN?
POPJ P, ;[100] YES, SO KEEP READING
AOSG CMRBRK ;[100] NO, COUNT. HAVE WE READ ENOUGH?
POPJ P, ;[100] COUNT NOT EXHAUSTED, KEEP READING.
MOVEI T1,[EXP -1,-1,-1,-1] ;[100]
MOVEM T1,CMRBRK ;[100] COUNT EXHAUSTED, FOR BREAK ON ANYTHING
POPJ P, ;[100] GO READ NEXT CHARACTER IN CASE ITS "?".
REP 9/44 ;08C15
MOVE S1,.CMABP(P2) ;SETUP NIN
WIT
XCMNX1: MOVE S1,.CMABP(P2) ;[100] SETUP NIN
INS 19/44 ;08C16
LOAD S2,.CMFNP(P1),CM%FNC ;[100] GET FUNCTION CODE
CAIE S2,.CMNUX ;[100] A .CMNUX FUNCTION?
JRST CMNUM1 ;[100] NO, INVALID CHARACTER IN NUMBER
MOVE T2,S1 ;[100] GET POINTER FROM NIN IN T2
MOVE T1,.CMABP(P2) ;[100] AND GET ATOM BUFFER POINTER IN T1
PUSHJ P,SUBBP ;[100] FIND NEG NUMBER OF BYTES ACTUALLY READ
AOJ T1, ;[100] DON'T INCLUDE THE TERMINATOR
PUSH P,T1 ;[100] AND SAVE IT
PUSHJ P,CMFSET ;[100] RESET ALL POINTERS
POP P,T1 ;[100] AND GET BACK NUMBER OF BYTES READ BY NIN
PUSHJ P,CMRFLN ;[100] AND REREAD THE FIELD UP TO TERM NIN SAW
JRST XCMNX1 ;[100] NOW TRY NIN AGAIN.
INS 21/47 ;08C17
;**;[102] Insert 3 lines after CMDEV0+0L. /LWS
ILDB S2,S1 ;[102] GET FIRST BYTE
CAIN S2,0 ;[102] NULL?
NOPARS(NDN) ;[102] YES,,SORRY
INS 41/50 ;08C18
;**;[77] Insert 2 lines after FILIN+13L. 28-Dec-83 /LWS
TXNE F,CMINDF ;[77] IN INDIRECT FILE?
JUMPE T1,.POPJ ;[77] YES,,DON'T ALLOW DEFAULT FILEN
INS 22/51 ;08C19
TXNN F,CMDEFF ;USING DEFAULT STRING?
JRST CMTOK1 ;NO
MOVE Q2,Q1 ;GET TOKEN POINTER IN Q2
MOVE Q1,.CMABP(P2) ;GET POINTER TO ATOM BUFFER (DEFAULT STRING)
XCMTK1: ILDB T1,Q2 ;GET NEXT CHARACTER FROM TOKEN
JUMPE T1,XCOMXI ;SUCCESS IF END OF STRING
ILDB T2,Q1 ;GET CHAR FROM DEFAULT STRING
CAMN T2,T1 ;MATCH?
JRST XCMTK1 ;YES, CONTINUE
NOPARS (NMT) ;NO, DOES NOT MATCH TOKEN
SUM 84293