TITLE ONCE ONLY CODE - USER MODE SUBTTL DAVID M NIXON DEC 1969 ;MUST BE LOADED LAST AFTER UDDT LOC 124 JRST ST RELOC ;AC DEFINITIONS TAC=1 TAC1=2 PDP=3 TEM=10 AC1=15 AC2=16 EXTERNAL JOBSYM,JOBSA,JOBDDT,JOBREL,DDTEND ; THIS SUBROUTINE MUST BE FIRST EX: MOVEI TAC,ST HRL TAC,JOBSYM HRRM TAC,JOBSYM MOVE TAC1,MOVSYM ADDM TAC1,.+1 BLT TAC,ST-1 HRRZ TAC,.-1 HRLM TAC,JOBSA HLRZ TAC,JOBSA EX1: TRO TAC,1777 CALLI TAC,11 JFCL EX2: SETZM 124 HRRZ TAC,JOBSA JRST (TAC) ; ************ ST: SETZM MOVSYM MOVE PDP,[XWD -10,STACK] ONCE2: MOVEI TAC,SYSDM PUSHJ PDP,YESNO JRST ONCE3 MOVEI TAC,SYMMES PUSHJ PDP,YESNO JRST ONCE2A MOVEI TAC,ALLMES PUSHJ PDP,YESNO PUSHJ PDP,GETSYM HLRE TAC,JOBSYM MOVNS TAC MOVEM TAC,MOVSYM ADDI TAC,DDTEND HRLM TAC,JOBSA JRST EX ONCE2A: MOVEI TAC,DDTEND HRLM TAC,JOBSA JRST EX2 ONCE3: HRRZ TAC1,JOBDDT HRLM TAC1,JOBSA MOVEI TAC,0 MOVEM TAC,JOBSYM CALLI TAC,2 MOVEI TAC,ST JRST EX1 GETSYM: HLRE TAC,JOBSYM MOVNS TAC HRRZ TAC1,JOBSYM ADDI TAC,-1(TAC1) MOVEM TAC,SYMTOP GETSY1: MOVE TAC,SYMTOP ADD TAC,MOVSYM TRO TAC,1777 CAME TAC,JOBREL JRST REDUCE MOVE TAC,SYMTOP MOVE TAC,-1(TAC) MOVE AC2,[POINT 7,SYMNAM,13] MOVSI TEM,-6 SPT: IDIVI TAC,50 HRLM TAC1,(PDP) AOBJP TEM,.+2 PUSHJ PDP,SPT HLRZ TAC,(PDP) JUMPE TAC,TYPE ADDI TAC,60-1 CAILE TAC,71 ADDI TAC,101-72 CAILE TAC,132 SUBI TAC,134-44 CAIN TAC,43 MOVEI TAC,56 TYPE: MOVEI TAC,40(TAC) IDPB TAC,AC2 SOSLE TEM POPJ PDP, OUT: HLRE TAC,@SYMTOP JUMPE TAC,FIN MOVEI TAC,SYMNAM PUSHJ PDP,YESNO JRST DEL SAV: HLRE TAC1,@SYMTOP MOVNS TAC1 MOVEM TAC1,SIZE MOVE TAC,MOVSYM ADD TAC,TAC1 MOVEM TAC,MOVSYM MOVN TAC,TAC1 ADDM TAC,SYMTOP JRST GETSY1 DEL: HLRE TAC,@SYMTOP ADDM TAC,SYMTOP MOVNS TAC MOVEM TAC,SIZE MOVS TAC,JOBSYM ADD TAC,SIZE MOVSM TAC,JOBSYM SKIPN MOVSYM JRST GETSY1 MOVE TAC,SYMTOP ADDI TAC,1 HRL TAC,TAC ADD TAC,SIZE MOVSS TAC HRRZ TAC1,SYMTOP ADD TAC1,MOVSYM HRRM TAC1,.+1 BLT TAC,. JRST GETSY1 NOSYM: SETZM JOBSYM POPJ PDP, FIN: SKIPN MOVSYM JRST NOSYM HRRZ TAC,JOBSYM HRRZ TAC1,SYMTOP ADDI TAC1,1 HRRM TAC1,JOBSYM SUB TAC1,TAC MOVS TAC,JOBSYM ADD TAC,TAC1 MOVSM TAC,JOBSYM FINISH: POPJ PDP, REDUCE: CALLI TAC,11 JFCL JRST GETSY1 YESNO: TTCALL 3,(TAC) TTCALL 0,TAC1 CAIN TAC1,"N" POPJ PDP, CAIE TAC1,"Y" JRST .-4 AOS (PDP) POPJ PDP, SYSDM: ASCIZ / DO YOU WANT DDT (Y OR N)? / SYMMES: ASCIZ / DO YOU WANT TO PROTECT THE SYMBOLS ? / ALLMES: ASCIZ / ALL OF THEM ? / SYMNAM: ASCIZ / / MOVSYM: BLOCK 1 SIZE: BLOCK 1 SYMTOP: BLOCK 1 STACK: BLOCK 10 IF2,< PURGE TAC,TAC1,PDP,TEM,AC1,AC2,EX,EX1,EX2,ST,ONCE2,ONCE2A,GETSYM,GETSY1 PURGE SPT,TYPE,OUT,SAV,DEL,NOSYM,FIN,FINISH,REDUCE,YESNO,ONCE3,SYSDM PURGE SYMMES,ALLMES,SYMNAM,MOVSYM,SIZE,SYMTOP,STACK > END