JSB READ READ FROM TTY JMP *-3 JSB YCHEK JMP TS6.8 LDA .4 WORD II X10, 20VOLTS IOR UNIT STA TEMP SAVE IT LDB .10MA WORD I 100MA JSB OUTP CALL UNIT JSB PRINT GREATER THAN 9 VOLTS DEF MES76 JSB READ READ FROM TTY JMP *-3 JSB YCHEK JMP VLIM LDA CLEAR IOR UNIT WORD II SYSTEM CLEAR LDB .10MA WORD I 100MA JSB OUTP CALL UNIT JSB PRINT VOLTAGE LESS THAN 4 VOLTS? DEF MES77 JSB READ JMP *-3 JSB YCHEK JSB TS6.9 .FNSH LDB FAIL6 CHECK FAIL FLAG SZB JMP TS6.2 FLAG SET, GO LOAD FAIL ADDRESS JSB OK TEST OK LDA A61 LOAD PASSED ADDRESS INA TS6.3 LDB STAR STORE A STAR AT PROPER POSITION STB A,I LDB BLANK STORE A BLANK AT LDA A63 "NOT PERFORMED" POSITION STB A,I JSB ZERO PROGRAM ZERO JSB PRINT SET DCS VOLTMETER TO 100 VOLT RANGE DEF MES80 JSB PRINT REMOVE SHORT FROM 10 OHMS DEF MES74 JSB READ JMP *-3 JSB YCHEK JMP *-5 LDA GO CHECK GO FLAG SZA IF SET JMP TST GO PRINT TEST TABLE JMP TEST IF NOT GO TO "TEST #?" TS6.0 NOP CMPUTER DIDN'T HLT FOR JSB NCHEK TIMING MODE INTERRUPT JMP TS6.6 PRINT MESSAGE JSB PRINT DEF MES61 ISZ FAIL6 SET FAIL FLAG JMP TS6.0,I TS6.1 NOP CMPUTER DIDN'T HLT FOR JSB NCHEK ALARM MODE INTERRUPT JMP TS6.7 JSB PRINT PRINT MESSAGE DEF MES62 ISZ FAIL6 SET FAIL FLAG JMP TS6.1,I TS6.2 LDA A62 LOAD FAIL ADDRESS JMP TS6.3 TS6.9 NOP JSB NCHEK JMP TS6.8 WASN'T Y OR N, RESTART JSB PRINT SYSTEM CLEAR MALFUNCTION DEF MES79 ISZ FAIL6 JMP TS6.9,I VLIM JSB NCHEK WAS ANSWER NO? JMP TS6.8 INVALID REPEAT TEST JSB PRINT DO TEST #3 DEF MES25 ISZ FAIL6 SET FAIL FLAG JMP .FNSH GO END TEST * * TEST TABLE * TST LDA TSTA SET TST.2 AS TTY INTERRUPT STA CHRIN RETURN ADDRESS JSB PRINT CR/LF DEF MES0 JSB PRINT CR/LF DEF MES0 JSB PRINT PRINT TITLE DEF TABLE LDA M6 SET COUNTER STA CNT LDA AD1 STA AA1 LDA TAT INITIALIZE EACH TABLE ENTRIES STA TABA TST.1 JSB PRNTT PRINT TABLE DEF TABA,I JSB PRNTT DEF AA1,I ISZ TABA ISZ AA1 ISZ CNT JMP TST.1 JSB PRINT CR/LF DEF MES0 JSB PRINT CR/LF DEF MES0 JSB PRINT CR/LF DEF MES0 JSB PRINT SERIAL # DEF MES63 JSB PRINT TESTED BY: DATE: DEF MES0 JSB PRINT DEF MES64 TST.2 LDA M6 INITIALIZE TABLE TO STA CNT ALL "NOT PERFORMED" LDA AD1 STA AA1 LDA AD2 STA AA2 LDA AD3 STA AA3 TST.3 LDB BLANK LDA AA1,I INA STB A,I STB AA2,I LDB STAR STB AA3,I ISZ AA1 ISZ AA2 ISZ AA3 ISZ CNT JMP TST.3 JSB PRINT CR/LF DEF MES0 JSB PRINT CR/LF DEF MES0 JMP NEXT GO TO NEXT UNIT TAT DEF TB TB DEF TAB1 DEF TAB2 DEF TAB3 DEF TAB4 DEF TAB5 DEF TAB6 TABLE DEC 56 ASC 28, PASSED FAILED NOT PERFORMED TAB1 DEC -28 ASC 14,TEST 1- UNIT RESPONSE TAB2 DEC -28 ASC 14,TEST 2- FRONT PANEL TAB3 DEC -28 ASC 14,TEST 3- CURRENT AMPLIF. TAB4 DEC -28 ASC 14,TEST 4- CURRENT RANGE TAB5 DEC -28 ASC 14,TEST 5- VOLTAGE LIMIT TAB6 DEC -28 ASC 14,TEST 6- INTERRUPT BLANK ASC 1, STAR ASC 1,* PFN1 DEC 24 ASC 12, * PFN2 DEC 24 ASC 12, * PFN3 DEC 24 ASC 12, * PFN4 DEC 24 ASC 12, * PFN5 DEC 24 ASC 12, * PFN6 DEC 24 ASC 12, * AD1 DEF A11 A11 DEF PFN1 A21 DEF PFN2 A31 DEF PFN3 A41 DEF PFN4 A51 DEF PFN5 A61 DEF PFN6 AD2 DEF A12,I A12 DEF PFN1+6 A22 DEF PFN2+6 A32 DEF PFN3+6 A42 DEF PFN4+6 A52 DEF PFN5+6 A62 DEF PFN6+6 AD3 DEF A13,I A13 DEF PFN1+12 A23 DEF PFN2+12 A33 DEF PFN3+12 A43 DEF PFN4+12 A53 DEF PFN5+12 A63 DEF PFN6+12 FWAM2 EQU * ORG 4000B HED TTY DRIVER SKP * ******************* TTY INPUT DRIVER *********************** * * INPUTS FROM AN ASR 33/35 THROUGH THE * TELETYPE CONTROL BOARD. * * CALL: JSB 104B,I * * (A) = POSITION IN BUFFER FOR FIRST CHARACTER. * * RETURN: (A) = -1 TOO MANY CHARACTERS IN RECORD * (A) = -2 RECORD DELETED * (A) = NUMBER OF CHARACTERS IN RECORD. * * THE CHARACTERS ARE PACKED TWO TO A WORD IN THE BUFFER. * * ALL RECORDS MUST BE TERMINATED WITH A CARRIAGE RETURN. * THE NULL AND LINE FEED CHARACTERS ARE IGNORED. * * AN ALT MODE ANYWHERE BEFORE THE CARRIAGE RETURN DELETES * ALL CHARACTERS IN THE RECORD. THE RECORD IS IGNORED. * * TTY.I NOP ENTRY POINT. LDB BUFA SET STB BADDR BUFFER ADDRESS. STA B SET CHARACTER COUNTER. LDA .16 SET MAXIMUM RECORD LENGTH STA COUNT T_ 32 CHARACTERS. LDA IMODE TI.1 OTA TTY SET TTY TO INPUT MODE. TI.2 STC TTY,C REQUEST CHARACTER. TI.3 SFS TTY JMP *-1 WAIT FOR CHARACTER INPUT. TI.4 LIA TTY LOAD CHARACTER. JSB PROCS PROCESS CHARACTER. JMP TI.2 GET NEXT CHARACTER. TI.5 CLC TTY JMP TTY.I,I RECORD COMPLETE RETURN. HED INPUT CHARACTER PROCESSING * * PROCESS CHARACTER FOR INPUT * PROCS NOP ENTRY POINT. AND B177 STRIP BIT 7 CPA LNFD LINE FEED? JMP PROCS,I YES, IGNORE. CPA B177 RUBOUT? JMP CMPLT-1 YES, CANCEL RECORD. CPA AMODE NO. ALT MODE? JMP CMPLT-1 YES, CANCEL RECORD. CPA OMODE NO. OLD ALT MODE? JMP CMPLT-1 YES, CANCEL RECORD. CPA EMODE NO. ESCAPE MODE? JMP CMPLT-1 YES, CANCEL RECORD. CPA CRTN NO. CARRIAGE RETURN? JMP CMPLT YES, COMPLETE RECORD. CPB COUNT NO. BUFFER OVERFLOW? CCB YES, LOOK FOR CARRIAGE RETURN. SSB LOOKING FOR CARRIAGE RETURN. JMP PROCS,I YES, RETURN. SLB,INB NO, CHECK ODD/EVEN FLAG. JMP PROC2 B0 = 0, EVEN CHARACTER. PROC1 ALF,ALF B0 = 1, ODD CHARACTER. STA BADDR,I RECORD HIGH CHARACTER. JMP PROCS,I PROC2 IOR BADDR,I PACK TWO CHARACTERS. STA BADDR,I PUT IN BUFFER. ISZ BADDR INDEX BUFFER ADDRESS POINTER. JMP PROCS,I * * THIS SECTION PUTS COUNT IN A AND RETURNS TO P+2 * LDB M2 SET DELETE FLAG. CMPLT LDA B PUT CHARACTER COUNT IN A. ISZ PROCS SET FOR (P+2) RETURN. JMP PROCS,I SKP HED TTY OUTPUT DRIVER * ****************** TTY OUTPUT DRIVER ********************* * * OUTPUTS ASCII RECORDS THROUGH THE TELETYPE. * * CALL: JSB 102B,I * * (A) = NUMBER OF CHARACTERS TO BE OUTPUT * (B) = STARTING ADDRESS OF BUFFER * * IF (A) >= O THEN OUTPUT (A) CHARACTERS * FOLLOWED BY A CARRIAGE RETURN/LINE FEED. * * IF (A) < 0 THEN OUTPUT -(A) CHARACTERS ONLY. * * BUFFER CONTAINS ASCII CHARACTERS PACKED TWO PER WORD. * * IF (B) = 0 ON ENTRY OUTPUT (A) FEED FRAMES. * IF (A) = 0 ON ENTRY ONLY A CR/LF IS OUTPUT. * * TTY.P NOP ENTRY POINT. JSB INIT INITIALIZE AND SET UP. LDA LMODE TP.1 OTA TTY SET TTY TO OUTPUT MODE. TP.3 JSB GETCH GET NEXT CHARACTER. JMP TP.8 BUFFER EMPTY. TP.4 OTA TTY LOAD TTY BOARD BUFFER. TP.6 STC TTY,C GIVE PRINT COMMAND. TP.5 SFS TTY WAIT FOR JMP *-1 FLAG. * * THIS SECTION CHECKS IF A CHARACTER HAS BEEN TYPED FROM THE * KEYBOARD DURING OUTPUT ON TELETYPE. * TP.9 LIA TTY LOAD FROM BOARD BUFFER. CPA B377 FIRST 8 BITS SHOULD BE 1'S. JMP TP.3 NO KEY STRUCK, CONTINUE. JMP CHRIN,I GO RESPOND TO INTERRUPT. TP.8 CLC TTY TURN OFF TTY. SEZ,CLE,RSS RECORD COMPLETE? CLEAR E. JMP TTY.P,I E=0, RECORD OUTPUT COMPLETE. LDA M2 E=1, ADD A RETURN AND LINE FEED. LDB CRLFA LOAD ADDRESS OF CR AND LF. JMP TTY.P+1 DO CR/LF. SKP * * SUBROUTINE GETCH * * RETURN TO P+1 ON EMPTY BUFFER. * IF THE BUFFER IS NOT EMPTY, * RETURN TO P+2 WITH CHARACTER IN (A). * GETCH NOP ENTRY POINT. CPB COUNT JMP GETCH,I BUFFER EMPTY. P+1 RETURN. LDA BUFAD,I GET TWO CHARACTERS. SLB,RSS ALF,ALF B EVEN, POSITION CHARACTER RIGHT SLB,INB CHECK O/E, AND INDEX COUNT. ISZ BUFAD B ODD, INCREMENT ADDRESS POINTER FINSH AND B177 STRIP LEFT CHARACTER. IOR B200 ADD BIT 7. ISZ GETCH JMP GETCH,I RETURN TO P+2. * * INITIALIZES FOR OUTPUTTING A RECORD * INIT NOP ENTRY POINT CCE,SSA SET E = 1, CHECK FOR (A) < 0. CMA,CLE,INA SET E = 0, (A) = -(A). STA COUNT SAVE CHARACTER COUNT. STB BUFAD SET BUFFER STARTING ADDRESS. LDB IORI RESTORE INSTRUCTION STB FINSH+1 TO ADD BIT 7. LDB BUFAD RESTORE B. SZA SZB LEADER/TRAILER ONLY. JMP *+4 NO. LDA CLAI YES, (B) = 0. STA FINSH+1 SET CLEAR INSTRUCTION. CLE SET NO CR/LF. CLB INITIALIZE OUTPUT COUNT. JMP INIT,I HED TTY MESSAGES * * TTY MESSAGES * MES0 DEC 0 MES1 DEC -16 ASC 8,COMPUTER MODEL? MES2 DEC -6 ASC 3,UNIT? MES3 DEC -13 ASC 7,TEST NUMBER? MES4 DEC 15 ASC 8,X1 MAX POSITIVE MES5 DEC 21 ASC 11,TEST 1, UNIT RESPONSE MES6 DEC 48 ASC 24,UNLESS OTHERWISE SPECIFIED, CONNECT 100 OHM LOAD MES7 DEC -17 ASC 9,TTY I/O ADDRESS? MES8 DEC -22 ASC 11,DVS CARD I/O ADDRESS? MES9 DEC -25 ASC 13,SYSTEM DUMP I/O ADDRESS? MES10 DEC 34 ASC 17,TURN ON PUNCH, PRESS RUN FOR TAPE. MES11 DEC 40 ASC 20,TO RUN TEST LOAD ADDRESS 100B, PRESS RUN MES13 DEC 40 ASC 20,NORMAL PROGRAM FLAG NOT RETURNED IN TIME MES14 DEC -26 ASC 13,DOES DVM READ 50MV,+-10MV? MES15 DEC -28 ASC 14,DOES DVM READ 500MV,+-100MV? MES16 DEC 37 ASC 19,NORMAL PROGRAM FLAG RETURNED TOO SOON MES17 DEC 20 ASC 10,X1 DOES NOT RESPOND. MES18 DEC 38 ASC 19,RANGE CHANGE FLAG NOT RETURNED IN TIME MES19 DEC 35 ASC 18,RANGE CHANGE FLAG RETURNED TOO SOON MES20 DEC 21 ASC 11,X10 DOES NOT RESPOND. MES21 DEC 20 ASC 10,TEST 2, FRONT PANEL. MES22 DEC -31 ASC 16,SET AMMETER TO 16MA RANGE,DONE? MES23 DEC 27 ASC 14,INPUT METER READING IN MA MES24 DEC 22 ASC 11,VOLTMETER NOT ACCURATE MES25 DEC 45 ASC 23,CURRENT AMPLIFIER MALFUNCTION,PERFORM TEST #3 MES26 DEC -36 ASC 18,SHORT 10 OHM SENSING RESISTOR,DONE? MES27 DEC 30 ASC 15,INPUT VOLTAGE READING IN VOLTS MES28 DEC 20 ASC 10,AMMETER NOT ACCURATE MES29 DEC 26 ASC 13,TEST 3, CURRENT AMPLIFIER. MES31 DEC 36 ASC 18,ADJUST POS. 0 (A3R18),IF DONE TYPE Y MES32 DEC 17 ASC 9,CHECK 81.92MA BIT MES33 DEC 17 ASC 9,CHECK 40.96MA BIT MES34 DEC 17 ASC 9,CHECK 20.48MA BIT MES35 DEC 17 ASC 9,CHECK 10.24MA BIT MES36 DEC 16 ASC 8,CHECK 5.12MA BIT MES37 DEC 16 ASC 8,CHECK 2.56MA BIT MES38 DEC 16 ASC 8,CHECK 1.28MA BIT MES39 DEC 16 ASC 8,CHECK .64MA BIT MES40 DEC 15 ASC 8,CHECK .32MA BIT MES41 DEC 15 ASC 8,CHECK .16MA BIT MES42 DEC 15 ASC 8,CHECK .08MA BIT MES43 DEC 15 ASC 8,CHECK .04MA BIT MES44 DEC 15 ASC 8,CHECK .02MA BIT MES45 DEC 15 ASC 8,CHECK .01MA BIT MES46 DEC 16 ASC 8,CHECK .005MA BIT MES47 DEC 40 ASC 20,TEST 6, INTERRUPT/VOLTAGE LIMIT OVERRIDE MES48 DEC 21 ASC 11,TEST 4, CURRENT RANGE MES51 DEC 15 ASC 8,X1 MAX NEGATIVE MES52 DEC 14 ASC 7,OUTPUT IS OFF MES53 DEC 22 ASC 11,TEST 5, VOLTAGE LIMIT MES55 DEC 41 ASC 21,OUTPUT LIMITED BELOW PROGRAMMED TOLERANCE MES56 DEC 13 ASC 7,DID NOT LIMIT MES57 DEC 8 ASC 4,TEST OK. MES58 DEC 39 ASC 20,PRESS RUN IF HLT, NOTE HLT SELECT CODE MES59 DEC 16 ASC 8,X10 MAX POSITIVE MES60 DEC 50 ASC 25,HLT XX? WHERE XX IS I/O SLOT FOR DVS CARD (Y OR N) MES61 DEC 37 ASC 19,TIMING MODE INTERRUPT NOT FUNCTIONING MES62 DEC 37 ASC 19,ALARM MODE INTERRUPT NOT FUNCTIONING MES63 DEC 14 ASC 7,SERIAL NUMBER: MES64 DEC 35 ASC 18,TESTED BY: DATE: MES65 DEC -15 ASC 8,ALL SIX TESTS? MES66 DEC 32 ASC 16,Y AND N FOR YES AND NO QUESTIONS MES67 DEC 24 ASC 12,INPUT DVM READING IN MV. MES68 DEC 16 ASC 8,X10 MAX NEGATIVE MES69 DEC 34 ASC 17,SET DCS VOLTMETER TO 20 VOLT RANGE MES70 DEC 24 ASC 12,FOR VOLTAGE LIMIT CODE 0 MES71 DEC 24 ASC 12,FOR VOLTAGE LIMIT CODE 1 MES72 DEC 25 ASC 13,FOR VOLTAGE LIMIT CODE 2 MES73 DEC 25 ASC 13,FOR VOLTAGE LIMIT CODE 3 MES74 DEC -47 ASC 24,REMOVE SHORT FROM 10 OHM SENSING RESISTOR,DONE? MES75 DEC 28 ASC 14,SET AMMETER TO 160 MA RANGE MES76 DEC -46 ASC 23,IS DCS VOLTMETER READING GREATER THAN 9 VOLTS? MES77 DEC -43 ASC 22,IS DCS VOLTMETER READING LESS THAN 4 VOLTS? MES78 DEC 43 ASC 22,RESISTOR AND 10 OHM SENSING RESISTOR TO DCS MES79 DEC 34 ASC 17,VOLTAGE LIMIT OVERRIDE MALFUNCTION MES80 DEC 36 ASC 18,SET DCS VOLTMETER TO 100 VOLT RANGE HED DVS CONFIGURATION TABLE * * CONFIGURATION TABLES * PUNT DEF PUNE HIGH SPEED PUNCH DEF DUMP1 I/O INSTRUCTIONS. DEF POUT1 DEF POUT2 DEF POUT3 DEF PNCH5 PUNE EQU * * TTYT DEF TTYE TELETYPE DEF ION+5 I/O INSTRUCTIONS. DEF ION+6 DEF INTCR+1 DEF TI.1 DEF TI.2 DEF TI.3 DEF TI.4 DEF TI.5 DEF TP.1 DEF TP.4 DEF TP.5 DEF TP.6 DEF TP.8 DEF TP.9 DEF TTAD1 TTYE EQU * * PSLST DEF PSLE DEF TS1.0-6 DEF TS1.7-6 DEF OUTP+1 DEF OUTP+2 DEF OUTP+3 DEF ZERO+6 DEF TS5.3-15 DEF TS5.3-4 DEF T.06+7 DEF T.06+8 DEF TS6.4 DEF TS6.4+1 DEF TS6.4+2 DEF TS6.4+3 DEF TS6.4+4 DEF TS6.5 DEF TS6.5+1 DEF TS6.5+4 DEF TS6.5+5 DEF TS6.5+6 DEF TS6.5+7 DEF TS6.5+8 PSLE EQU * * SKP HED FLOATING POINT SUBROUTINES FPADD NOP ENTRY FOR FLOATING ADD JSB UNPAK JMP ADMUP .FSB NOP ENTRY FOR FSB. EXIT FOR FAD/FSB. JSB UNPAK LDA A2 CMA CMB,INB,SZB JMP OK2 SSA,INA,RSS SSA,RSS JMP OK2 RAR ISZ X2 OK2 STB B2 STA A2 ADMUP ISZ .FSB LDA X2 AGAIN CMA,INA ADA Z1 SSA,RSS JMP ADDEM LDA A1 LDB A2 STA A2 STB A1 LDA B1 LDB B2 STA B2 STB B1 LDA Z1 LDB X2 STB Z1 STA X2 JMP AGAIN ADDEM ADA M25 LDB B1 SSA,RSS JMP TAKIT CMA,CLE ADA M25 STA X2 LDA A2 LDB B2 LOOP ISZ X2 JMP SHFTA * DOUBLE ADD SECTION * ADB B1 CLO SEZ CLE,INA SOS JMP *+5 ADA A1 SSA,RSS JMP DONE JMP *+4 ADA A1 SOS JMP DONE ERA ERB ISZ Z1 JMP DONE RSS TAKIT LDA A1 DONE JSB .PACK Z1 BSS 1 JMP .FSB,I SHFTA CLE,SLA,ARS CME ERB,CLE JMP LOOP UNPAK NOP STA A1 SZA,RSS CLB,INB JSB .FLUN STB B1 STA Z1 LDA UNPAK ADA M2 LDA A,I STA .FSB LDA A,I DLD A,I STA A2 SZA,RSS CLB,INB JSB .FLUN STB B2 STA X2 JMP UNPAK,I * * * * FPMPY NOP ENTRY FOR FLOATING POINT MULTIPLY STA A1 JSB .FLUN STA EXPOM RBR STB B1 LDA FPMPY,I DLD A,I STA A2 JSB .FLUN ADA EXPOM INA STA EXPOM RBR STB A MPY A1 STA B2 LDA B1 STB B1 MPY A2 ADB B1 CLE ADA B2 SEZ INB STB B2 LDA A1 MPY A2 CLE,ERA ADA B2 CLE,ELA SEZ,RSS JMP *+4 SOC INB,RSS ADB M1 STA A1 LDA B LDB A1 JSB .PACK EXPOM BSS 1 ISZ FPMPY JMP FPMPY,I * * FLOAT NOP ENTRY POINT INTEGER TO FP CLB JSB .PACK DEC 15 JMP FLOAT,I * * .PACK NOP ENTRY POINT STA A1 CLA STA EXPON LDA A1 SZA,RSS SZB JMP NORML BACK CLO ISZ .PACK JMP .PACK,I SHIFT ISZ EXPON NORML CLE,ELB ELA SEZ,SSA,RSS JMP SHIFT SEZ,SSA JMP SHIFT ERA ERB,CLE ADB B177 SSA,RSS INB CLO SEZ CLE,INA SOS RAL SSA,SLA,RSS JMP *+3 ISZ EXPON ARS,SLA,ALS RAR STA A1 LDA B AND MASKH STA B LDA EXPON CMA,INA ADA .PACK,I SOC INA ADA P200 SSA JMP XUNDR ADA M400 SSA,RSS JMP XOVER ADA P200 RAL AND B377 ADB 0 LDA A1 JMP BACK XUNDR CLA CLB JMP SETOV XOVER LDA INF1A LDB INF2 SETOV STO JMP BACK+1 * * .FLUN NOP ENTRY POINT UNPACKING ROUTINE LDA 1 AND B377 CMB ADB 0 CMB SLA,RAR IOR XSEXP JMP .FLUN,I RNDAF NOP ENTRY POINT JSB CONST CALL CONSTANT CONVERTION ROUTINE JMP RNDAF,I NO INTEGER, RETURN LDB NEGFL GET POLARITY STB SIGN SAVE IT JSB FLOAT CONVERT TO FLOATING POINT JSB FPMPY MULTIPLY DEF .100 TIMES 100 DST FPN1 SAVE PRODUCT LDB M3 -3 IN B FOR 2 OR MORE CHAR. LDA CCNT LOAD CHARC. LEFT COUNTER CMA,INA MAKE POSITVE ADA M3 SUBTRACT 3 SSA,RSS IF 2 OR MORE JMP TWLFT LEFT, TAKE INA,SZA ONLY 2. JMP NLEFT NONE LEFT LDB M2 LOAD FOR 1 CHARC. LEFT ISZ MAG DECREMENT PACK COUNT TWLFT STB CCNT SET CHARC. COUNTER JSB CONST CALL CONSTANT CONV. ROUTINE JMP RNDAF,I NO INTEGER, RETURN LDB SIGN GET PROPER SZB POLARITY FOR CMA,INA LAST TO NUMBERS JSB FLOAT CONVERT TO FLOATING POINT ISZ MAG WAS IT ONE DIGIT? JMP *+3 NO JSB FPMPY YES,MULTIPLY DEF .10 TIMES 10 JSB FPADD ADD PARTIALS, SAVE DEF FPN1 TOTAL VALUE IN UA. DST FPN1 SAVE IT NLEFT CLA STA SIGN1 INITIALIZE SIGN LDA AMPS GET PROGRAMMED VALUE SSA,RSS WAS IT NEGATIVE? JMP *+4 NO ISZ SIGN1 YES, SET SIGN CMA IF (-) TAKE 1'S COMPLIMENT ADA T4X1 ADD -1 IF X1 RANGE, 0 IF X10 RANGE JSB FLOAT CONVERT TO FLOATING POINT JSB FPMPY MULTIPLY DEF .5 TIMES 5 DST FPN2 SAVE IT LDA SIGN1 IF NEGATIVE SZA,RSS POLARITY JMP *+5 ADD 5 OFFSET LDA FPN2 TO FLOATING JSB FPADD POINT DEF .5 NUMBER DST FPN2 SAVE IT LDA FPN2 JSB FPMPY MULTIPLY DEF FP11 TIMES 0.0011 DST FPN3 SAVE IT LDA RANGE WHAT RANGE SZA JMP X10R DLD FPN3 JSB FPADD DEF .1 JMP SAV1 X10R DLD FPN3 JSB FPADD DEF .10 SAV1 DST FPN3 LDA FPN2 LDB SIGN1 CHECK SIGN OF PROG. VALUE SZB IF NEGATIVE JMP *+5 LEAVE IT. LDB FPN2+1 JSB FPMPY DEF .M1 JMP *+2 LDB FPN2+1 ADD MONITORED INPUT JSB FPADD TO NEGATIVE OF PROGRAMMED VALUE DEF FPN1 SSA IF SUM JMP *+3 POSIVTE JSB FPMPY MAKE DEF .M1 NEGATIVE JSB FPADD SUBTRACT TRUE ERROR DEF FPN3 FROM ALLOWABLE ERROR CLB SSA IF SUM POSITVE INB WITHIN TOLERANCE PASS ISZ RNDAF TEST JMP RNDAF,I RETURN FWAM3 EQU * * END