Trailing-Edge
-
PDP-10 Archives
-
decuslib10-04
-
43,50322/scan.mac
There are 38 other files named scan.mac in the archive. Click here to see a list.
TITLE SCAN -- GENERAL PURPOSE ADAPTER FOR LISP SCANNER
A=1
B=2
C=3
R=13
T=6
P=14
CR=15
LF=12
TAB=11
IGCRLF=31 ;^Y FOR UCI LISP
EXTERNAL CHRTAB,IGSTRT,RATOM,OLDCH,FIX1A,NOINFG,INUM0,SCNVAL
INTERNAL SCAN,SCANSET,SCANRESET,SCANINIT,LETTER,IGNORE
SCAN: SETOM NOINFG
PUSHJ P,RATOM
SKIPA
PUSHJ P,FIX1A
MOVEM A,SCNVAL
MOVEI A,INUM0(R)
POPJ P,
OLDSCN: IGCRLF ;IGSTRT
LF ;IGEND
POINT 4,CHRTAB(A),5 ;RATFLD
POINT 2,CHRTAB(A),10 ;STRFLD
POINT 3,CHRTAB(A),13 ;IDFLD
IGST2: 0 ;IGSTRT
IGEND2: 0 ;IGEND
RATF2: POINT 4,CHRTAB(A),29 ;RATFLD
STRF2: POINT 2,CHRTAB(A),31 ;STRFLD
IDF2: POINT 3,CHRTAB(A),34 ;IDFLD
SCANSET: SKIPA A,[XWD IGST2,IGSTRT]
SCANRESET: MOVE A,[XWD OLDSCN,IGSTRT]
BLT A,IGSTRT+4
FALSE: MOVEI A,0
POPJ P,
SCANINIT: SUBI A,INUM0
SUBI B,INUM0
SUBI C,INUM0
SUBI C+1,INUM0
SUBI C+2,INUM0
MOVEM A,IGST2 ;IGSTRT
MOVEM B,IGEND2 ;IGEND
PUSH P,C ;STRBEG
PUSH P,C+1 ;STREND
PUSH P,C+2 ;SLASHIFY
MOVEI B,2
MOVEI C,3
MOVEI A,176
DPB B,RATF2
DPB C,STRF2
DPB B,IDF2
SOJG A,.-3
MOVE A,[XWD "A"-"Z"-1,"A"]
MOVEI B,5
MOVEI C,4
DPB B,RATF2
DPB C,IDF2
AOBJN A,.-2
MOVE A,[XWD "a"-"z"-1,"a"]
DPB B,RATF2
DPB C,IDF2
AOBJN A,.-2
MOVE A,[XWD "0"-"9"-1,"0"]
MOVEI B,8
DPB B,RATF2
DPB C,IDF2
AOBJN A,.-2
POP P,A ;SLASHIFY
MOVEI B,3
DPB B,IDF2
DPB C,RATF2
POP P,A ;STREND
MOVEI B,2
DPB B,STRF2
POP P,A ;STRBEG
MOVEI B,9
DPB B,RATF2
MOVE A,IGST2
MOVEI B,0
DPB B,RATF2
DPB B,STRF2
DPB B,IDF2
MOVEI B,1
MOVEI A,0 ;NULL
DPB B,RATF2
DPB B,IDF2
DPB B,STRF2
MOVEI A,"."
MOVEI B,7
DPB B,RATF2
JRST FALSE
LETTER: SUBI A,INUM0
MOVEI B,5
MOVEI C,4
DPB C,IDF2
LET2: DPB B,RATF2
JRST FALSE
IGNORE: SUBI A,INUM0
MOVEI B,3
JRST LET2
END