SKP * TOP OF FORM SPC 1 FF NOP STA SAVE3 SAVE A-REG LDA VFU0 TOP OF FORM CODE JSB OTCH TRANSMIT CODE LDA LS00 DELAY UNTIL JSB OTCH FF IS FINISHED LDA SAVE3 RESTORE A-REG. JMP FF,I RETURN P+2 SAVE3 OCT 0 SPC 4 * OUTPUT A CR/LF TO LINE PRINTER SPC 1 RTLF NOP STA SAVE LDA VFU2 SINGLE SPACE CODE JSB OTCH SEND CHARACTER LDA SAVE RESTORE A JMP RTLF,I SAVE OCT 0 SKP * OUTPUT A-REG TO L.P. USING INTERRUPT * SYSTEM FOR PRINT COMPLETED. SPC 1 OUTI NOP STA SAVE1 SAVE A-REG STB SAVE2 SAVE B-REG OUTIA OTA CH TRANSFER WORD STF 0 TURN ON INTERRUPT SYS OUTIB STC CH,C SEND WORD SPC 1 LDA TIMEA DELAY FOR JSB TMRR,I TRANSMISSION CLF 0 TURN OFF INTERRUPT JSB RDY,I CHECK LP STATUS RSS LP NOT READY JMP *+3 LP READY LDA SAVE1 RESTORE A-REG JMP OUTIA TRY AGAIN OUTID CLC CH,C E031 JSB ERMS,I REPORT ERROR DEF MS031 CLC 0,C JMP TSTNN,I EXIT CURRENT TEST SPC 1 OUTIC CLF 0 TRANSMISSION COMPLETED LDA SAVE1 RESTORE A-REG LDB SAVE2 RESTOR B-REG JMP OUTI,I RETURN * * * OUTPUT A-REG TO L.P. USING SKIP ON * FLAG SET FOR PRINT COMPLETED. SPC 1 OTCH NOP STA SAVE1 SAVE A-REG STB SAVE2 SAVE B-REG CLB SET UP TIMEOUT COUNT OTCHA OTA CH TRANSFER WORD TO BUFFER OTCHB STC CH,C TRANSMIT WORD OTCHC SFS CH WORD COMPLETED ? JMP OTC1 NO OTCHG LDA SAVE1 RESTORE A-REG LDB SAVE2 RESTORE B-REG OTCHE CLC CH,C JMP OTCH,I RETURN OTC1 INB,SZB TIMEOUT ? JMP OTCHC LOOP LDA M1000 WAIT 1000 MS MAX FOR FORM FEED STA SCP OTCHX CLA,INA =1 FOR A 1 MS WAIT JSB TMRR,I OTCHF SFC CH INCREASE DELAY TIME JMP OTCHG FOR A ISZ SCP DONE WITH 48 1 MS WAITS? JMP OTCHX NO - GO DO ANOTHER 1 MS WAIT JSB RDY,I CHECK LP STATUS RSS LP NOT RDY JMP *+4 REPORT ERROR TIMEOUT LDA SAVE1 RESTORE A-REG CLB RESET TIMEOUT COUNT JMP OTCHA TRY AGAIN E030 JSB ERMS,I FLAG FAILED TO SET AFTER OUTPUT DEF MS030 CLC 0,C JMP TSTNN,I EXIT CURRENT TEST SAVE1 BSS 1 SAVE2 BSS 1 SAVE4 OCT 0 MS031 ASC 11,E031 LP FAILED TO INT/ MS030 ASC 12,E030 FLAG FAILED TO SET/ SKP TCJMP NOP LDA JMPI TRAP CELL JUMP TCJ STA CH STORE IN TRAP CELL LDA TCJMP,I LOCATION TO JUMP STA JMPIL STORE INSTRUCTION ISZ TCJMP INCREMENT RETURN JMP TCJMP,I RETURN P+2 JMPI JMP *+1,I JUMP INSTRUCTION JMPIL NOP SPC 4 PRTT NOP LDA EVFC GET VFU CODE JSB OUTI OUTPUT VFU JSB OTLP TELL OPERATOR JMP PRTT,I RETURN EVFC NOP PITB NOP EXCT NOP EXPN NOP SKP * OTLP PERFORMS TEXT STRING OUTPUT TO LP SPC 1 OTLP NOP JSB RDY,I CHECK LP STATUS NOP OTPP LDA B,I GET FIRST CHARACTER ALF,ALF POSITION UPPER CHARACTER AND .377 MASK CPA .57 TEST FOR '/' JMP OTLP,I EXIT JSB OUTI WRITE CHARACTER LDA B,I GET CHARACTER AGAIN AND .377 MASK LOWER CHARACTER CPA .57 TEST FOR '/' JMP OTLP,I EXIT JSB OUTI WRITE CHARACTER INB MOVE PTR TO NEXT WORD JMP OTPP CONTINUE SPC 2 .377 OCT 377 .57 OCT 57 SKP ORG ZCEND TST.0 EQU * CLEAR LP TST1 NOP BEFORE LDA TST1 RUN STA TSTNN * CLC 0,C * CLA INSURE WD ON CONTROLLER NOT PRINT CM TSTO OTA CH * JSB TST2,I CALL BI/O JMP *+2 TST2 DEF TST00 CLC 0,C CLEAR LP JSB RDY,I CHECK LP STATUS NOP JMP TST.0,I SPC 2 * TEST 01 * MANUAL CONTROL TEST (MCT) SPC 1 TST01 EQU * MCT NOP MANUAL CONTROL TEST LDA MCT STORE STA TSTNN RETURN ADDRESS LDB BTCK CHECK JSB SWRT,I FOR OPERATOR JMP MCT,I INTERVENTION H040 JSB MSGH,I TURN LP PWR OFF PRESS RUN DEF MCTM0 LDA EXP1 EXPECTED DATA LDB ER50 STATUS ERROR MESSAGE JSB CKST CHECK STATUS SPC 1 H041 JSB MSGH,I TURN LP PWR ON, DEF MCTM1 READY LP,PRESS RUN LDA EXP2 EXPECTED STATUS LDB ER51 STATUS ERROR MESSAGE JSB CKST CHECK STATUS SPC 1 H042 JSB MSGH,I SET LP TO OFF LINE PRESS RUN DEF MCTM2 LDA EXP3 EXPECTED STATUS LDB ER52 STATUS ERROR MESSAGE JSB CKST CHECK STATUS SPC 1 H043 JSB MSGH,I SET LP TO ON LINE PRESS RUN DEF MCTM3 LDA EXP2 EXPECTED STATUS LDB ER53 STATUS ERROR MESAGE JSB CKST CHECK STATUS SPC 1 H044 JSB MSGH,I OPEN DRUM GATE DEF MCTM4 LDA EXP4 EXPECTED STATUS LDB ER54 STATUS ERROR MESSAGE JSB CKST CHECK STATUS SPC 1 SPC 1 H046 JSB MSGH,I REMOVE PAPER,CLOSE DRUM GATE DEF MCTM6 LDA EXP4 EXPECTED STATUS LDB ER55 STATUS ERROR MESSAGE JSB CKST CHECK STATUS SPC 1 H047 JSB MSGH,I RESTORE PAPER DEF MCTM7 JSB FF TOP OF FORM JMP MCT,I EXIT SPC 2 ER50 ASC 01,50 ER51 ASC 01,51 ER52 ASC 01,52 ER53 ASC 01,53 ER54 ASC 01,54 ER55 ASC 01,55 DMSG DEF MSG50 SKP * TEST 02 * RIPPLE PRINT TEST (RPT) SPC 1 TST02 EQU * RPT NOP RIPPLE PRINT TEST LDA RPT STORE STA TSTNN RETURN ADDRESS JSB TCJMP TRAP CELL JUMP DEF OUTIC LDA DM96 -96 NUMBER OF PRINTING STA CNTR CHARACTERS LDA .40 FIRST PRINTING CHARACTER STA CHAR STORE STA CHAR1 CHARACTER RPTC LDB DM136 -136 NUMBER OF CHARACTER/LINE RPTA LDA CHAR GET CHARACTER JSB OUTI SEND CHARACTER ISZ CHAR NEXT LDA CHAR CHARACTER CPA .200 LAST CHARACTER ? JMP *+2 YES JMP RPTB NO LDA .40 FIRST CHARACTER STA CHAR RESTORE CHARACTER RPTB INB,SZB LAST CHARACTER/LINE JMP RPTA NO JSB RTLF CARRIAGE RETURN LINE FEED ISZ CHAR1 INCREMENT CHARACTER LDA CHAR1 FOR NEXT STA CHAR ROW ISZ CNTR LAST ROW ? JMP RPTC LOOP JSB FF TOP OF FORM JMP RPT,I EXIT SKP * TEST 03 * TRIANGULAR PRINT TEST (TPT) SPC 1 TST03 EQU * TPT NOP TRIANGULAR PRINT TEST LDA TPT STORE STA TSTNN RETURN ADDRESS JSB TCJMP TRAP CELL JUMP DEF OUTIC LDB DM136 -136 STB TMP STORE COUNT TPTA LDA CHARM " M " LDB TMP NUMBER OF PRINT POSITION/LINE TPTB JSB OUTI SEND CHARACTER INB,SZB END OF LINE JMP TPTB NO ISZ TMP DECREMENT LINE NUMBER RSS JMP TPTC EXIT JSB RTLF CARRIAGE RETURN LINE FEED JMP TPTA LOOP TPTC JSB FF TOP OF FORM JMP TPT,I EXIT SKP * TEST 04 * VERTICAL FORMAT CONTROL TEST (VFCT) SPC 1 TST04 EQU * VFCT NOP VERTICAL FORMAT CONTROL TEST LDA VFCT STORE STA TSTNN RETURN ADDRESS JSB TCJMP TRAP CELL JUMP DEF OUTIC CLA POINT TO STA PITB TABLE VF1 LDA DT1 NUMBER OF TIMES, TABLE ADDRESS ADA PITB NEXT ADDRESS LDA A,I GET NUMBER CMA,INA MAKE NEG STA EXCT STORE NUMBER LDA DT2 VFU TABLE ADDRESS ADA PITB NEXT ADDRESS LDA A,I GET VFU CODE STA EVFC STORE CODE EVFD LDA DT3 MESSAGE TABLE ADDRESS ADA PITB NEXT ADDRESS LDB A,I GET MESSAGE JSB PRTT PRINT VFU CODE AND MESSAGE ISZ EXCT PRINT CODE AGAIN ? JMP EVFD YES LDA PITB TABLE POINTER CPA D27 LAST VFU CODE & MESSAGE ? JMP VF2 ISZ PITB NEXT POINT IN TABLE JMP VF1X,I LOOP (USE BASE PAGE LINK) SPC 1 VF2 CLA POINT TO STA PITB TABLE VF3 LDA DT1E EXPECTED DATA TABLE ADA PITB NEXT ADDRESS LDA A,I GET DATA STA EXPN AND STORE LDA DT2E VFU TABLE ADDRESS ADA PITB NEXT ADDRESS LDA A,I GET VFU CODE STA EVFC AND STORE LDA DT3E MESSAGE TABLE ADDRESS ADA PITB NEXT ADDRESS LDB A,I GET MESSAGE JSB PRTT PRINT VFU CODE AND MESSAGE LDA DT4E ERROR CODE TABLE ADA PITB NEXT ADDRESS LDB A,I GET ERROR CODE LDA EXPN AND STORE JSB CKST CHECK STATUS LDA PITB TABLE POINTER CPA .3 LAST VFU CODE & MESSAGE ? JMP VF4 YES ISZ PITB NEXT POINTER IN TABLE JMP VF3 LOOP VF4 JSB FF TOP OF FORM JMP VFCTX,I EXIT (DOUBLE INDIR THRU BASE PAGE) SPC 1 SKP * TEST 05 * CHARACTER SET TEST (CST) SPC 1 TST05 EQU * CST NOP CHARACTER SET TEST LDA CST STORE STA TSTNN RETURN ADDRESS CLA FIRST CHARACTER CSTA LDB DM136 -136 NUMBER OF CHARACTER/LINE JSB OTCH SEND CHARACTER INB,SZB LAST CHARACTER IN COLUMN JMP *-2 NO JSB RTLF CR/LF INA NEXT CHARACTER CPA .200 LAST CHARACTER ? RSS YES JMP CSTA NO JSB FF TOP OF FORM JMP CST,I EXIT SKP * TEST 06 * OVER PRINT TEST SPC 1 TST06 EQU * OPT NOP OVER PRINT TEST LDA OPT STA TSTNN LDA DH CHARACTER "H" LDB DM136 -136 NUMBER OF CHARACTER/LINE JSB OTCH SEND CHARACTER INB,SZB LAST CHARACTER IN COLUMN ? JMP *-2 NO LDA LS00 JSB OTCH LDA DI CHARACTER "I" LDB DM136 -136 JSB OTCH SEND CHARACTER INB,SZB LAST CHARACTER IN COLUMN ? JMP *-2 NO JSB RTLF PRINT CHARACTER LDB DM136 SET UP COUNT LDA AA ASCII A JSB OTCH SEND CHARACTER INB,SZB LAST CHARACTER ? JMP *-2 NO LOOP LDB DM136 SET UP COUNT INA ASCII B JSB OTCH SEND CHARACTER INB,SZB LAST CHARACTER ? JMP *-2 NO LOOP JSB RTLF PRINT ONLY CHARACTER ' A ' JSB FF TOP OF FORM JMP OPT,I EXIT SKP * TEST 07 * DMA OPERATION TEST (DMA) SPC 1 TST07 EQU * DMA NOP DMA OPERATION TEST LDA DMA STORE STA TSTNN RETURN ADDRESS LDA CPTO CHECK FOR AND .204 DMA OPTION SZA,RSS DMA HARDWARE ? JMP H033 NO DMA JSB RDY,I CHECK LP STATUS NOP LDA DM96 NUMBER OF STA TMP LINE TO PRINT LDA .177 RESET PRINTING STA CYLC CHARACTER DMAA JSB CYBFI SET CYCLIC PATTERN IN BUFFER LDA USSC CONFIGURE DMA CONTROL AND .77 MASK OFF OPTION BITS IOR CW " OR " IN CONTROL BITS OTA DMAH INITALIZE DMA CLC DMAL * LDA CYBFD * OTA DMAL * STC DMAL * LDA WCNT * OTA DMAL * DMSC1 STF CH START LP STC DMAH,C START DMA OPERATION CLB START TIME-OUT- LPA INB,SZB LOOP FOR DMA RSS * JMP LPB * SFS DMAH * JMP LPA * JMP LCC1 * LPB CLC 0 REPORT TIME-OUT ERROR E034 JSB ERMS,I DMA FLAG FAILED DEF DMA2 TO SET AFTER DMA COMPLETION JMP DMAB ABORT CURRENT TEST LCC1 CLB START TIME-OUT- LPD INB,SZB LOOP FOR INTERFACE RSS * JMP LPC * DMSC2 SFS CH * JMP LPD * JMP LCC * LPC CLC 0 REPORT TIME-OUT ERROR E035 JSB ERMS,I INTERFACE FLAG DID'NT SET DEF DMA3 AFTER DMA COMPLETION JMP DMAB ABORT CURRENT TEST LCC CLC DMAH IS DMA TEST ISZ TMP FINISHED ? JMP DMAA NO DMAB JSB FF TOP OF FORM JMP DMA,I EXIT H033 JSB MSGC,I REPORT MESSAGE DEF DMA1 MESSAGE ADDRESS JMP DMA,I EXIT SPC 1 DMAL EQU 2 DMAH EQU 6 WCNT EQU DM137 SPC 1 CW OCT 100000 DMA2 ASC 9,E034 DMA TIME OUT/ DMA1 ASC 10,H033 DMA NOT CONFIG/ DMA3 ASC 19,E035 I-O FLAG NOT SET AFTER DMA COMP/ SKP * OPERATOR DESIGN SECTION * OPDSN NOP LDA 112B CHECK FOR CONSOLE DEVICE SZA,RSS JMP OPDSN,I NO SO DONT DO OPDSN LDB BTCK CHECK JSB SWRT,I FOR OPERATOR JMP OPDSN,I INTERVENTION LDA OPTR STORE STA TSTNN RETURN ADDRESS CLA,CLE TELL OPERATOR THAT LDB MSG1 HE IS IN OPERATOR DESIGN JSB FMTR,I OPDSI LDA FWAM INITIALIZE PROGRAM STA PRPTR POINTER CLA AND STA PRPTR,I END OF PROGRAM STA DBC BUFFER COUNT STA DBT BUFFER TYPE IRQ LDA .2 LDB .MSG1 OUTPUT @ JSB SLOP,I LDB IBUFD LDA .D25 JSB SLIN,I GET INPUT FROM OPERATOR SZA,RSS WAS THERE ANY INPUT JMP *-4 NO - SO ASK AGAIN * LDB IBUFD * RBL * ADB A * STB IBUFP * ADD CR TO LDA .15 * END OF BUFFER JSB A2BUF * LDB IBUFD SET-UP RBL INPUT BUFFER STB IBUFP POINTER * JSB GETB GET INPUT BLOCK JMP INER NO INPUT SEZ,RSS IF IT'S ASCII JMP PCMD IT'S A COMMAND STA TMP SAVE IT * SZA,RSS IF IT'S A ZERO JMP INER THEN IT'S AN ERROR SSA IF NEG THEN ERROR JMP INER LDA MXNM CHECK FOR MAX NUMBER CMA ADA TMP SSA,RSS IF OVER 999 JMP INER THEN ERROR JSB GETB GET STATEMENT TYPE JMP INER NO MORE ERROR SEZ SHOULD BE ASCII JMP INER NO-SO ERROR SKP JSB FNDST FIND STATEMENT TYPE JMP INER NOT FOUND STA SVB STB TMP+1 ALF,ALF INPRN AND .177 CPA AA IS IT ASCII? JMP TAA YES CPA AI IS IT INTEGER? JMP TAI YES CPA AK IS IT OCTAL? JMP TAK YES JMP INPRC-1 * TAA JSB GETB GET NEXT BLOCK JMP INPRC-1 NO MORE DATA SEZ IS IT ASCII JMP INER NO - THEN ERROR JMP INPRC OK * TAI JSB GETB GET NEXT BLOCK JMP INPRC-1 NO MORE DATA SEZ,RSS IS IT A NUMBER JMP INER NO - THEN ERROR JMP INPRC OK * TAK JSB GETB GET NEXT BLOCK JMP INPRC-1 NO MORE DATA SEZ,RSS IS IT A NUMBER JMP INER NO - THEN ERROR LDA B OK JMP INPRC * CLA NO DATA SO MAKE IT ZERO INPRC LDB SVB SZB STA TMP+2 SZB,RSS STA TMP+3 LDA SVB IS THIS FIRST PRAM SZA,RSS ? JMP *+4 CLB STB SVB JMP INPRN SKP * PUT STATEMENT IN QUE * JSB FNDLN FIND LINE NUMBER JMP INSTR NOT FOUND ISZ PRPTR FOUND IT LDA TMP+1 JUST REPLACE IT STA PRPTR,I JUST REPLACE IT LDA TMP+2 JUST REPLACE IT ISZ PRPTR JUST REPLACE IT STA PRPTR,I JUST REPLACE IT LDA TMP+3 JUST REPLACE IT ISZ PRPTR JUST REPLACE IT STA PRPTR,I JUST REPLACE IT JMP IRQ ASK FOR MORE * INSTR LDA PRPTR CHECK ADA .5 TO CMA,INA SEE IF ADA LWAM QUE FULL SSA,RSS ? JMP .STR NO - OK STORE IT LDB MSG4 YES- TELL OPERATOR CLA,CLE JSB FMTR,I JMP IRQ * MSG4 DEF *+1 ASC 15,QUE FULL STATEMENT NOT LOADED/ .STR LDA TMP MOVE LINE NUMBER LDB PRPTR,I INTO PLACE STA PRPTR,I SZA,RSS IF NUMBER=0 THEN JMP IRQ STOP STB TMP ELSE ISZ PRPTR MOVE BLOCK LDA TMP+1 IN LDB PRPTR,I TO END STA PRPTR,I OF STB TMP+1 PROGRAM ISZ PRPTR LDA TMP+2 LDB PRPTR,I STA PRPTR,I STB TMP+2 ISZ PRPTR LDA TMP+3 LDB PRPTR,I STA PRPTR,I STB TMP+3 ISZ PRPTR JMP .STR SKP * FIND STATEMENT * E=0=ASCII COMPARE * E=1=POINTER COMPARE * FNDST NOP STA SVB SAVE TYPE LDB STTBD STATEMENT TABLE DEF SEZ ASCII OR POINTER? ADB .2 IT'S THE POINTER FNDSL LDA B,I CPA .M2 END OF STANDARD TABLE RSS YES JMP *+3 NO LDB STUD GET STANDARD USER TABLE JMP FNDST+3 TRY IT CPA .M1 IS IT THE TERMINATOR JMP FNDST,I YES - NOT FOUND CPA SVB IS IT THIS CHARACTER JMP *+3 YES ADB .3 NO - MOVE TO NEXT STATEMENT JMP FNDSL AND TRY IT ISZ FNDST FOUND - ADJUST RETURN SEZ ASCII OR POINTER? ADB .M3 IT'S THE POINTER INB LDA B,I RETRIEVE PARAMETER TYPES INB AND LDB B,I PROCESSOR POINTER JMP FNDST,I * * FIND LINE NUMBER IN QUE =TMP * FNDLN NOP LDB FWAM START AT FIRST STATEMENT STB PRPTR LDA B,I SZA,RSS IF ZERO JMP FNDLN,I THEN NOT FOUND CMA,INA ADD THE TWO ADA TMP NUMBERS SZA,RSS IF EQUAL JMP *+5 THEN FOUND SSA IF IT GOES NEG. JMP FNDLN,I THEN NOT FOUND ADB .4 TRY NEXT STATEMENT JMP FNDLN+2 ISZ FNDLN JMP FNDLN,I SKP * GET A CHARACTER FROM INPUT BUFFER * GETC NOP LDB IBUFP JSB BUF2A CPA .15 IF CR RETURN P+1 JMP GETC,I YES ISZ IBUFP MOVE POINTER TO NEXT CHARACTER ISZ GETC ADJUS GOOD RETURN P+2 JMP GETC,I RETURN * BUF2A NOP CLE,ERB E _ UPPER LOWER FLAG LDA B,I 2CHR TO AREG SEZ,RSS UPPER OR LOWER? ALF,ALF UPPER AND .177 MASK UNWANTED CHARACTER JMP BUF2A,I RETURN. * A2BUF NOP STA GETC SAVE CHARACTER LDB IBUFP GET SLB,INB OPPSITE ADB .M2 CHARACTER JSB BUF2A ALF,ALF IOR GETC ADD NEW CHARACTER SEZ SHOULD IT BE SWAPPED? ALF,ALF YES STA B,I STORE IT ISZ IBUFP MOVE TO NEXT CHR. SPACE JMP A2BUF,I * * * * * * * * * * * * * * * SKP * GET INPUT BLOCK FROM INPUT BUFFER * GETB NOP JSB GETC GET A CHARACTER JMP GETB,I NO DATA JSB CSC COMMA OR SPACE CHECK ISZ GETB ADJUST RETURN CPA MINUS IF IT'S NEG SIGN JMP NUMIN+1 THEN PROCESS AS A NUMBER JSB DGCK IF IT'S A NUMBER JMP NUMIN THEN PROCESS AS A NUMBER ALF,ALF NO - PROCESS A ASCII STA AIN SAVE FIRST CHARACTER JSB GETC GET SECOND CHARACTER LDA SPC NO DATA USE SPACE CLE INDICATE ASCII JSB CSC IOR AIN ADD FIRST STA AIN SAVE IT JSB GETC MOVE TO COMMA OR SPACE LDA SPC NO DATA USE SPACE CLE JSB CSC READ TO JMP *-4 NEXT SPACE OR COMMA * CSC NOP CPA COMA IS IT A COMMA JMP *+4 YES CPA SPC IS IT A SPACE JMP *+2 YES JMP CSC,I NEITHER SO RETURN LDA AIN RETRIEVE CHR LDB BIN JMP GETB,I RETURN * * * * * * * * * * * * * * * SKP NUMIN CCB,RSS INDICATE POSITIVE CLB INDICATE NEGATIVE STB NFLG SAVE FLAG ADB IBUFP MOVE POINTER BACK IF NECESSARY CLE,ERB SET UPPER LOWER FLAG CLA CALL FOR INTEGER JSB AS2N,I CONVERT IT STA AIN SAVE IT LDB NFLG ADB IBUFP CLE,ERB CCA CALL FOR OCTAL JSB AS2N,I CONVERT IT STA BIN SAVE IT LDA AIN RETRIEVE LDB BIN NUMBERS ISZ NFLG WAS A NEG ENTERED? RSS JMP *+3 NO CMA,INA YES CMB,INB STA AIN SAVE NUMBER STB BIN JSB GETC GET NEXT CHARACTER LDA SPC NO DATA USE SPACE CCE INDICATE IT'S A NUMBER JSB CSC READ TO JMP *-4 NEXT SPACE OR COMMA * AIN NOP BIN NOP NFLG NOP * * CHECK IF AREG = DIGIT * DGCK NOP STA BUF2A SAVE CHARACTER ADA .M60 ADD -60 OCTAL SSA SHOULD STILL BE POS.? ISZ DGCK NO - NOT A DIGIT ADA .M10 ADD -10 SSA,RSS SHOULD GO NEG? ISZ DGCK NO - ADJUST RETURN LDA BUF2A RETRIEVE CHARACTER JMP DGCK,I RETURN