NORMAL MODE IS INTEGER 000010 R CHANGE MADE DEC 2024 TO SATISFY COMMON AREA REQS 000012 PROGRAM COMMON AVSL,W 000014 DIMENSION W(100) 000016 R END OF CHANGE 000012 DIMENSION KEY(32),MYTRAN(4) 000020 INITAS.(0) 000030 PRINT COMMENT $WHICH SCRIPT DO YOU WISH TO PLAY$ 000060 READ FORMAT SNUMB,SCRIPT 000070 R CHANGE MADE DEC 2024 TO INIT PUBLIC LIST W(1) 000072 LIST.(W(1)) 000074 R END OF CHANGE 000076 LIST.(TEST) 000080 LIST.(INPUT) 000090 LIST.(OUTPUT) 000100 LIST.(JUNK) 000110 LIMIT=1 000120 LSSCPY.(TREAD.(INPUT,SCRIPT),JUNK) 000130 MTLIST.(INPUT) 000140 T'H MLST, FOR I=1,1, I .G. 4 000150 MLST LIST.(MYTRAN(I)) 000160 MINE=0 000170 LIST.(MYLIST) 000180 T'H KEYLST, FOR I=0,1, I .G. 32 000220 KEYLST LIST.(KEY(I)) 000230 R* * * * * * * * * * READ NEW SCRIPT 000240 BEGIN MTLIST.(INPUT) 000250 NODLST.(INPUT) 000260 LISTRD.(INPUT,SCRIPT) 000270 W'R LISTMT.(INPUT) .E. 0 000280 TXTPRT.(JUNK,0) 000290 MTLIST.(JUNK) 000300 T'O START 000310 E'L 000320 W'R TOP.(INPUT) .E. $NONE$ 000330 NEWTOP.(LSSCPY.(INPUT,LIST.(9)),KEY(32)) 000340 T'O BEGIN 000350 OR W'R TOP.(INPUT) .E. $MEMORY$ 000360 POPTOP.(INPUT) 000370 MEMORY=POPTOP.(INPUT) 000380 T'H MEM, FOR I=1,1, I .G. 4 000390 MEM LSSCPY.(POPTOP.(INPUT),MYTRAN(I)) 000400 T'O BEGIN 000410 O'E 000420 NEWBOT.(LSSCPY.(INPUT,LIST.(9)),KEY(HASH. 000430 1 (TOP.(INPUT),5))) 000440 T'O BEGIN 000450 E'L 000460 R* * * * * * * * * * BEGIN MAJOR LOOP 000470 START TREAD.(MTLIST.(INPUT),0) 000480 KEYWRD=0 000490 PREDNC=0 000500 LIMIT=LIMIT+1 000510 W'R LIMIT .E. 5, LIMIT=1 000520 W'R LISTMT.(INPUT) .E. 0, T'O ENDPLA 000530 IT=0 000540 W'R TOP.(INPUT) .E. $+$ 000550 CHANGE.(KEY,MYTRAN) 000560 T'O START 000570 E'L 000580 W'R TOP.(INPUT) .E. $*$, T'O NEWLST 000590 S=SEQRDR.(INPUT) 000600 NOTYET W'R S .L. 0 000610 SEQLR.(S,F) 000620 T'O NOTYET 000630 O'E 000640 WORD=SEQLR.(S,F) 000650 W'R WORD .E. $.$ .OR. WORD .E. $,$ .OR. WORD .E. $BUT$ 000660 W'R IT .E. 0 000670 NULSTL.(INPUT,LSPNTR.(S),JUNK) 000680 MTLIST.(JUNK) 000690 T'O NOTYET 000700 O'E 000710 NULSTR.(INPUT,LSPNTR.(S),JUNK) 000720 MTLIST.(JUNK) 000730 T'O ENDTXT 000740 E'L 000750 E'L 000760 E'L 000770 W'R F .G. 0, T'O ENDTXT 000780 I=HASH.(WORD,5) 000790 SCANER=SEQRDR.(KEY(I)) 000800 SF=0 000810 T'H SEARCH, FOR J=0,0, SF .G. 0 000820 CAND= SEQLR.(SCANER,SF) 000830 W'R SF .G. 0, T'O NOTYET 000840 SEARCH W'R TOP.(CAND) .E. WORD, T'O KEYFND 000850 KEYFND READER=TESTS.(CAND,S) 000860 W'R READER .E. 0, T'O NOTYET 000870 W'R LSTNAM.(CAND) .NE. 0 000880 DL=LSTNAM.(CAND) 000890 SEQ W'R S .L. 0 000900 SEQLR.(S,F) 000910 T'O SEQ 000920 O'E 000930 NEWTOP.(DL,LSPNTR.(S)) 000940 E'L 000950 O'E 000960 E'L 000970 NEXT=SEQLR.(READER,FR) 000980 W'R FR .G. 0, T'O NOTYET 000990 W'R IT .E. 0 .AND. FR .E. 0 001000 PLCKEY IT=READER 001010 KEYWRD=WORD 001020 OR W'R FR .L. 0 .AND. NEXT .G. PREDNC 001030 PREDNC=NEXT 001040 NEXT=SEQLR.(READER,FR) 001050 T'O PLCKEY 001060 O'E 001070 T'O NOTYET 001080 E'L 001090 T'O NOTYET 001100 R* * * * * * * * * * END OF MAJOR LOOP 001110 ENDTXT W'R IT .E. 0 001120 W'R LIMIT .E. 4 .AND. LISTMT.(MYLIST) .NE. 0 001130 OUT=POPTOP.(MYLIST) 001140 TXTPRT.(OUT,0) 001150 IRALST.(OUT) 001160 T'O START 001170 O'E 001180 ES=BOT.(TOP.(KEY(32))) 001190 T'O TRY 001200 E'L 001210 OR W'R KEYWRD .E. MEMORY 001220 I=HASH.(BOT.(INPUT),2)+1 001230 NEWBOT.(REGEL.(MYTRAN(I),INPUT,LIST.(MINE)),MYLIST) 001240 SEQLL.(IT,FR) 001250 T'O MATCH 001260 O'E 001270 SEQLL.(IT,FR) 001280 R* * * * * * * * * * MATCHING ROUTINE 001290 MATCH ES=SEQLR.(IT,FR) 001300 W'R TOP.(ES) .E. $=$ 001310 S=SEQRDR.(ES) 001320 SEQLR.(S,F) 001330 WORD=SEQLR.(S,F) 001340 I=HASH.(WORD,5) 001350 SCANER=SEQRDR.(KEY(I)) 001360 SCAN ITS=SEQLR.(SCANER,F) 001370 W'R F .G. 0, T'O NOMACH(LIMIT) 001380 W'R WORD .E. TOP.(ITS) 001390 S=SEQRDR.(ITS) 001400 SCANI ES=SEQLR.(S,F) 001410 W'R F .NE.0, T'O SCANI 001420 IT=S 001430 T'O TRY 001440 O'E 001450 T'O SCAN 001460 E'L 001470 E'L 001480 W'R FR .G. 0, T'O NOMACH(LIMIT) 001490 TRY W'R YMATCH.(TOP.(ES),INPUT,MTLIST.(TEST)) .E. 0,T'O MATCH 001500 ESRDR=SEQRDR.(ES) 001510 SEQLR.(ESRDR,ESF) 001520 POINT=SEQLR.(ESRDR,ESF) 001530 POINTR=LSPNTR.(ESRDR) 001540 W'R ESF .E. 0 001550 NEWBOT.(1,POINTR) 001560 TRANS=POINT 001570 T'O HIT 001580 O'E 001590 T'H FNDHIT,FOR I=0,1, I .G. POINT 001600 FNDHIT TRANS=SEQLR.(ESRDR,ESF) 001610 W'R ESF .G. 0 001620 SEQLR.(ESRDR,ESF) 001630 SEQLR.(ESRDR,ESF) 001640 TRANS=SEQLR.(ESRDR,ESF) 001650 SUBST.(1,POINTR) 001660 T'O HIT 001670 O'E 001680 SUBST.(POINT+1,POINTR) 001690 T'O HIT 001700 E'L 001710 E'L 001720 HIT TXTPRT.(ASSMBL.(TRANS,TEST,MTLIST.(OUTPUT)),0) 001730 T'O START 001740 E'L 001750 R* * * * * * * * * * INSERT NEW KEYWORD LIST 001760 NEWLST POPTOP.(INPUT) 001770 NEWBOT.(LSSCPY.(INPUT,LIST.(9)),KEY(HASH. 001780 1(TOP.(INPUT),5))) 001790 T'O START 001800 R* * * * * * * * * * DUMP REVISED SCRIPT 001810 ENDPLA PRINT COMMENT $WHAT IS TO BE THE NUMBER OF THE NEW SCRIPT$ 001820 READ FORMAT SNUMB,SCRIPT 001830 LPRINT.(INPUT,SCRIPT) 001840 NEWTOP.(MEMORY,MTLIST.(OUTPUT)) 001850 NEWTOP.($MEMORY$,OUTPUT) 001860 T'H DUMP, FOR I=1,1, I .G. 4 001870 DUMP NEWBOT.(MYTRAN(I),OUTPUT) 001880 LPRINT.(OUTPUT,SCRIPT) 001890 MTLIST.(OUTPUT) 001900 T'H WRITE, FOR I=0,1, I .G. 32 001910 POPMOR W'R LISTMT.(KEY(I)) .E. 0, T'O WRITE 001920 LPRINT.(POPTOP.(KEY(I)),SCRIPT) 001930 T'O POPMOR 001940 WRITE CONTINUE 001950 LPRINT.(MTLIST.(INPUT),SCRIPT) 001960 EXIT. 001970 R* * * * * * * * * * SCRIPT ERROR EXIT 001980 NOMACH(1) PRINT COMMENT $PLEASE CONTINUE $ 002200 T'O START 002210 NOMACH(2) PRINT COMMENT $HMMM $ 002220 T'O START 002230 NOMACH(3) PRINT COMMENT $GO ON , PLEASE $ 002240 T'O START 002250 NOMACH(4) PRINT COMMENT $I SEE $ 002260 T'O START 002270 VECTOR VALUES SNUMB= $I3 * $ 002280 E'M 002290