*1000 PACK, 0 /PACK SUBROUTINE DCA STORE /CLEAR STORAGE LOCATION TAD M4 /SET COUNTER FOR DCA COUNT /4 DIGITS TAD K350 /SET POINTER TO DCA TEMP /ASCII INPUT CHARACTERS PAKDIG, TAD STORE /LOAD PARTIAL NUMBER CLL RAL /ROTATE LEFT RTL /THREE TIMES TAD I TEMP /ADD NEXT STORED DIGIT TAD M260 /STRIP OFF THE 260 DCA STORE /STORE PARTIAL NUMBER ISZ TEMP /INCREMENT POINTER ISZ COUNT /PACKED 4 DIGITS YET? JMP PAKDIG /NO: PACK NEXT DIGIT TAD STORE /YES: TAKE PACKED NUMBER JMP I PACK /BACK TO MAINLINE CRLF, 0 TAD K215 /GET ASCII CARRIAGE RETURN JMS TYPE /PRINT IT TAD K212 /GET ASCII LINE FEED JMS TYPE /PRINT IT JMP I CRLF /AND RETURN LISN, 0 /LISN SUBROUTINE KSF /KEYBOARD FLAG RAISED YET JMP .-1 /NO: CHECK AGAIN KRB /YES: READ A CHARACTER TLS /ECHO ON PRINTER JMP I LISN /AND RETURN TYPE, 0 /TYPE SUBROUTINE TSF /PRINTER FLAG RAISED YET JMP .-1 /NO: CHECK AGAIN TLS /YES: PRINT A CHARACTER CLA /CLEAR ACCUMULATOR JMP I TYPE /AND RETURN SETDF, 0 TAD DF /PUT DF IN AC SZA /IS DF = 0? JMP .+3 /NO: JMP TO DF 1 CDF 20 /YES: SET DF =2 JMP I SETDF /RETURN CDF 10 /SET DF = 1 JMP I SETDF /& RETURN DIVIDE, 0 /SUBR TO DIVIDE BY 2 T0 N CLA CLL /RESULT RETURNED IN SUMH & SUML TAD N CIA /STORE -N IN DCA DIV /DIV LOOP, TAD SUMH /CHECK TO SEE IF SPA /NO. IS NEG. CLL CML /YES : SET LINK RAR /DIVIDE HI WORD BY 2 DCA SUMH /AND STORE TAD SUML /DIVIDE LO WORD RAR /BY 2 DCA SUML /AND STORE CLL ISZ DIV /DONE YET? JMP LOOP /NO: GO AROUND AGAIN JMP I DIVIDE /YES: RETURN HEAD, 0 TAD M15 /INITIALIZE CTR TO DCA STARCT /COUNT 15 STARS TAD STAR /GET ASCII FOR STAR JMS TYPE /AND TYPE ISZ STARCT /TYPED 15 STARS? JMP .-3 /NO: GET ANOTHER JMS CRLF /YES: TAD I OUTPTR /GET NEXT CHARACTER ISZ OUTPTR SNA /IS CHARACTER A NULL JMP .+3 /YES JMS TYPE /NO: TYPE IT JMP .-5 /GO BACK TO GET NEXT CHARACTER CLA CLL JMP I HEAD STARCT, 0 AUTO, 0 CLA CLL TAD K260 /ADD IN ASCII ZERO DCA KCNT /INITIALIZE KCNT COUNTER JMS CRLF JMS CRLF TAD I OUTPTR /GET NEXT CHARACTER ISZ OUTPTR /INCREMENT PTR SNA /IS CHARACTER A NULL JMP .+3 /YES: JMS TYPE /NO: TYPE IT JMP .-5 /JMP BACK TO GET NEXT CHAR. JMS CRLF NEXTR, TAD R /GET ASCII FOR R JMS TYPE /TYPE R TAD KCNT /GET ASCII FOR SUBSCRIPT JMS TYPE /TYPE SUBSCRIPT TAD EQUAL /GET ASCII FOR = JMS TYPE /TYPE IT JMS I 7 /ENTER INTERPRETER FGET I 17 /GET ANSWER FOUT /PRINT IT FEXT TAD KCNT /(AC)=KCNT CIA /(AC)=-KCNT TAD M /(AC)=M-KCNT SZA /IS KCNT=M? JMP .+3 /YES ISZ KCNT /INCREMENT SUBSCRIPT JMP NEXTR /GET NEXT R JMP I AUTO /RETURN