SCAN -- GENERAL PURPOSE ADAPTER FOR LISP SCANNER MACRO 47(113)-2 06:36 25-OCT-73 PAGE 1 SCAN MAC 23-JAN-73 01:25 1 TITLE SCAN -- GENERAL PURPOSE ADAPTER FOR LISP SCANNER 2 3 000001 A=1 4 000002 B=2 5 000003 C=3 6 000013 R=13 7 000006 T=6 8 000014 P=14 9 10 000015 CR=15 11 000012 LF=12 12 000011 TAB=11 13 14 000031 IGCRLF=31 ;^Y FOR UCI LISP 15 16 EXTERNAL CHRTAB,IGSTRT,RATOM,OLDCH,FIX1A,NOINFG,INUM0,SCNVAL 17 18 INTERNAL SCAN,SCANSET,SCANRESET,SCANINIT,LETTER,IGNORE 19 20 000000' 476 00 0 00 000000* SCAN: SETOM NOINFG 21 000001' 260 14 0 00 000000* PUSHJ P,RATOM 22 000002' 334 00 0 00 000000 SKIPA 23 000003' 260 14 0 00 000000* PUSHJ P,FIX1A 24 000004' 202 01 0 00 000000* MOVEM A,SCNVAL 25 000005' 201 01 0 13 000000* MOVEI A,INUM0(R) 26 000006' 263 14 0 00 000000 POPJ P, 27 28 000007' 000000000031 OLDSCN: IGCRLF ;IGSTRT 29 000010' 000000000012 LF ;IGEND 30 000011' 36 04 0 01 000000* POINT 4,CHRTAB(A),5 ;RATFLD 31 000012' 31 02 0 01 000011* POINT 2,CHRTAB(A),10 ;STRFLD 32 000013' 26 03 0 01 000012* POINT 3,CHRTAB(A),13 ;IDFLD 33 34 000014' 000000000000 IGST2: 0 ;IGSTRT 35 000015' 000000000000 IGEND2: 0 ;IGEND 36 000016' 06 04 0 01 000013* RATF2: POINT 4,CHRTAB(A),29 ;RATFLD 37 000017' 04 02 0 01 000016* STRF2: POINT 2,CHRTAB(A),31 ;STRFLD 38 000020' 01 03 0 01 000017* IDF2: POINT 3,CHRTAB(A),34 ;IDFLD 39 40 000021' 334 01 0 00 000127' SCANSET: SKIPA A,[XWD IGST2,IGSTRT] 41 000022' 200 01 0 00 000130' SCANRESET: MOVE A,[XWD OLDSCN,IGSTRT] 42 000023' 251 01 0 00 000004* BLT A,IGSTRT+4 43 000024' 201 01 0 00 000000 FALSE: MOVEI A,0 44 000025' 263 14 0 00 000000 POPJ P, 45 46 000026' 275 01 0 00 000005* SCANINIT: SUBI A,INUM0 47 000027' 275 02 0 00 000026* SUBI B,INUM0 48 000030' 275 03 0 00 000027* SUBI C,INUM0 49 000031' 275 04 0 00 000030* SUBI C+1,INUM0 50 000032' 275 05 0 00 000031* SUBI C+2,INUM0 51 000033' 202 01 0 00 000014' MOVEM A,IGST2 ;IGSTRT 52 000034' 202 02 0 00 000015' MOVEM B,IGEND2 ;IGEND 53 000035' 261 14 0 00 000003 PUSH P,C ;STRBEG SCAN -- GENERAL PURPOSE ADAPTER FOR LISP SCANNER MACRO 47(113)-2 06:36 25-OCT-73 PAGE 1-1 SCAN MAC 23-JAN-73 01:25 54 000036' 261 14 0 00 000004 PUSH P,C+1 ;STREND 55 000037' 261 14 0 00 000005 PUSH P,C+2 ;SLASHIFY 56 000040' 201 02 0 00 000002 MOVEI B,2 57 000041' 201 03 0 00 000003 MOVEI C,3 58 000042' 201 01 0 00 000176 MOVEI A,176 59 000043' 137 02 0 00 000016' DPB B,RATF2 60 000044' 137 03 0 00 000017' DPB C,STRF2 61 000045' 137 02 0 00 000020' DPB B,IDF2 62 000046' 367 01 0 00 000043' SOJG A,.-3 63 000047' 200 01 0 00 000131' MOVE A,[XWD "A"-"Z"-1,"A"] 64 000050' 201 02 0 00 000005 MOVEI B,5 65 000051' 201 03 0 00 000004 MOVEI C,4 66 000052' 137 02 0 00 000016' DPB B,RATF2 67 000053' 137 03 0 00 000020' DPB C,IDF2 68 000054' 253 01 0 00 000052' AOBJN A,.-2 69 000055' 200 01 0 00 000132' MOVE A,[XWD "a"-"z"-1,"a"] 70 000056' 137 02 0 00 000016' DPB B,RATF2 71 000057' 137 03 0 00 000020' DPB C,IDF2 72 000060' 253 01 0 00 000056' AOBJN A,.-2 73 000061' 200 01 0 00 000133' MOVE A,[XWD "0"-"9"-1,"0"] 74 000062' 201 02 0 00 000010 MOVEI B,8 75 000063' 137 02 0 00 000016' DPB B,RATF2 76 000064' 137 03 0 00 000020' DPB C,IDF2 77 000065' 253 01 0 00 000063' AOBJN A,.-2 78 000066' 262 14 0 00 000001 POP P,A ;SLASHIFY 79 000067' 201 02 0 00 000003 MOVEI B,3 80 000070' 137 02 0 00 000020' DPB B,IDF2 81 000071' 137 03 0 00 000016' DPB C,RATF2 82 000072' 262 14 0 00 000001 POP P,A ;STREND 83 000073' 201 02 0 00 000002 MOVEI B,2 84 000074' 137 02 0 00 000017' DPB B,STRF2 85 000075' 262 14 0 00 000001 POP P,A ;STRBEG 86 000076' 201 02 0 00 000011 MOVEI B,9 87 000077' 137 02 0 00 000016' DPB B,RATF2 88 000100' 200 01 0 00 000014' MOVE A,IGST2 89 000101' 201 02 0 00 000000 MOVEI B,0 90 000102' 137 02 0 00 000016' DPB B,RATF2 91 000103' 137 02 0 00 000017' DPB B,STRF2 92 000104' 137 02 0 00 000020' DPB B,IDF2 93 000105' 201 02 0 00 000001 MOVEI B,1 94 000106' 201 01 0 00 000000 MOVEI A,0 ;NULL 95 000107' 137 02 0 00 000016' DPB B,RATF2 96 000110' 137 02 0 00 000020' DPB B,IDF2 97 000111' 137 02 0 00 000017' DPB B,STRF2 98 000112' 201 01 0 00 000056 MOVEI A,"." 99 000113' 201 02 0 00 000007 MOVEI B,7 100 000114' 137 02 0 00 000016' DPB B,RATF2 101 000115' 254 00 0 00 000024' JRST FALSE 102 103 000116' 275 01 0 00 000032* LETTER: SUBI A,INUM0 104 000117' 201 02 0 00 000005 MOVEI B,5 105 000120' 201 03 0 00 000004 MOVEI C,4 106 000121' 137 03 0 00 000020' DPB C,IDF2 SCAN -- GENERAL PURPOSE ADAPTER FOR LISP SCANNER MACRO 47(113)-2 06:36 25-OCT-73 PAGE 1-2 SCAN MAC 23-JAN-73 01:25 107 000122' 137 02 0 00 000016' LET2: DPB B,RATF2 108 000123' 254 00 0 00 000024' JRST FALSE 109 110 000124' 275 01 0 00 000116* IGNORE: SUBI A,INUM0 111 000125' 201 02 0 00 000003 MOVEI B,3 112 000126' 254 00 0 00 000122' JRST LET2 113 114 END NO ERRORS DETECTED PROGRAM BREAK IS 000134 2K CORE USED SCAN -- GENERAL PURPOSE ADAPTER FOR LISP SCANNER MACRO 47(113)-2 06:36 25-OCT-73 PAGE 2 SCAN MAC 23-JAN-73 01:25 SYMBOL TABLE A 000001 B 000002 C 000003 CHRTAB 000020' EXT CR 000015 FALSE 000024' FIX1A 000003' EXT IDF2 000020' IGCRLF 000031 IGEND2 000015' IGNORE 000124' INT IGST2 000014' IGSTRT 000130' EXT INUM0 000124' EXT LET2 000122' LETTER 000116' INT LF 000012 NOINFG 000000' EXT OLDCH 000000 EXT OLDSCN 000007' P 000014 R 000013 RATF2 000016' RATOM 000001' EXT SCAN 000000' INT SCANIN 000026' INT SCANRE 000022' INT SCANSE 000021' INT SCNVAL 000004' EXT STRF2 000017' T 000006 TAB 000011 A 3# 24 25 30 31 32 36 37 38 40 41 42 43 46 51 58 62 63 68 69 72 73 77 78 82 85 88 94 98 103 110 B 4# 47 52 56 59 61 64 66 70 74 75 79 80 83 84 86 87 89 90 91 92 93 95 96 97 99 100 104 107 111 C 5# 48 49 50 53 54 55 57 60 65 67 71 76 81 105 106 CHRTAB 16# 30 31 32 36 37 38 CR 10# FALSE 43# 101 108 FIX1A 16# 23 IDF2 38# 61 67 71 76 80 92 96 106 IGCRLF 14# 28 IGEND2 35# 52 IGNORE 18 110# IGST2 34# 40 51 88 IGSTRT 16# 40 41 42 INUM0 16# 25 46 47 48 49 50 103 110 LET2 107# 112 LETTER 18 103# LF 11# 29 NOINFG 16# 20 OLDCH 16# OLDSCN 28# 41 P 8# 21 23 26 44 53 54 55 78 82 85 R 6# 25 RATF2 36# 59 66 70 75 81 87 90 95 100 107 RATOM 16# 21 SCAN 18 20# SCANIN 18 46# SCANRE 18 41# SCANSE 18 40# SCNVAL 16# 24 STRF2 37# 60 84 91 97 T 7# TAB 12# AOBJN 68 72 77 BLT 42 DPB 59 60 61 66 67 70 71 75 76 80 81 84 87 90 91 92 95 96 97 100 106 107 END 114 EXTERN 16 INTERN 18 JRST 101 108 112 MOVE 41 63 69 73 88 MOVEI 25 43 56 57 58 64 65 74 79 83 86 89 93 94 98 99 104 105 111 MOVEM 24 51 52 POINT 30 31 32 36 37 38 POP 78 82 85 POPJ 26 44 PUSH 53 54 55 PUSHJ 21 23 SETOM 20 SKIPA 22 40 SOJG 62 SUBI 46 47 48 49 50 103 110 TITLE 1 XWD 40 41 63 69 73