$1500 [PROG TYPDEC WITH BINDEC LABELS CHANGED FROM [9 TO 8. ALSO ENTRY ELIMINATED [MOD BY L. MATIN [ ****** BINDEC 1 ****** [BINDEC 1 [ DJN 7| 5|68 [SIGNED 12-BIT BINARY TO DECIMAL CONVERSION [ RIGHT JUSTIFIED [ ENTER WITH BINARY NUMBER IN ACCUMULATOR VIA A JMP 9J [ DECIMAL KBD CODES STORED VIA IR 1 [ LEADING ZEROES SUPPRESSED [ NON-INTERRUPTABLE [ ALSO USES IR 2,3 [ USES TAGS 9J-9Q [CHANGED BY L. MATIN [TO TAGS 8J-8Q [ [TIMING- CLASSIC LINC [ 1.4 TO 3.5 MSEC [ #A28J SCRi1 [SIGN TO LINK BIT ROLi1 APOi [MAKE NEGATIVE COM STC A28N [SAVE IT ADD 0 [SAVE RETURN STC A28P LDAi [LOAD POSSIBLE SIGNS #A28K "- " LZE [GET CORRECT SIGNS ROR 6 STHi1 [AND STORE IT SETi2 [SET ADDEND POINTER A28Q-1 JMP A28M [CONVERT A DIGIT AZE [IS IT A LEADING ZERO JMP A28L [NO ADD A28K [YES: MOVE THE SIGN RIGHT ONE PLACE STH 1 [STORE A SPACE OVER THE SIGN LZE [GET THE CORRECT SIGN ROR 6 STHi1 [AND STORE IT JMP p-10 [ THEN CONTINUE CONVERTING #A28L STHi1 [STORE A DIGIT JMP A28M [CONVERT NEXT DIGITI JMP A28L [AND STORE IT [LITTLE SUBROUTINE TO DO THE CONVERSION #A28M LDA [SAVE RETURN 0 STC A28P-2 SETi3 [SET DIGIT COUNTER 1777 XSKi2 [MOVE ADDEND POINTER ADD A28N [LOAD THE VALUE XSKi3 [BUMP COUNTER STAi [SAVE REMAINING PART #A28N ** ADA 2 [TRIAL ADD APO [STILL NEGATIVE JMP p-5 [YES: COUNT AND ADD AGAIN LDA [NO: GET THE COUNTER 3 SROi [LAST DIGIT 3567 JMP ** [NO: BACK TO THE SUBROUTINE STHi1 [YES: STORE IT #A28P JMP ** [ AND RETURN TO CALLING PGM [ADDEND TABLE #A28Q 1750 144 12 1 [END BINDEC 1 [ 7| 5|68 T [TECSUB [TELETYPE SUB [FOR DEC INT- [ERFACE---- [TAGS 4T 5T [6T 7T AND [INDEX REG. [16 AND 17 #A27T SET 17 0 [FORM RETURN ROL 4 [CODE TEST APO JMP A26T-1 [TELETYPE CODE ROR 4 [LINC CODE SAE i 12 [EOL TEST JMP p+4 [NOT EOL LDA i 5215 [MAKE CR LF JMP A26T [OUTPUT ADA i -11 [NUMBER TEST APO i JMP p+4 [NOT A NUMBER ADA i [CONVERT NUMBER 271 JMP A26T [OUTPUT ADA i -12 [1ST SPECIAL [CHARACTER TEST APO i JMP p+6 [NOT SPECIAL [CHAR. TYPE 1 ADA i A25T+10 STC 16 [CONVRT SPECIAL [CHARACTERS ADA 16 JMP A26T [OUTPUT ADA i -32 [LETTER TEST APO i JMP A27T+27 [CONVRT SPECIAL [CHAR. TYPE II ADA i [CONVRT LETTER 332 JMP A26T [OUTPUT ROR 4 #A26T APO i [CR LF--HUH JMPp+4 514 LDA i 212 514 [ PRNT CHAR. JMP 17 [RETURN #A24T SET 17 0 LDA i 5215 JMP A26T+2 #A25T 207 [BELL FOR DEL 240 [SPACE 246 [AMPERSAND FOR [ i 247 [APOSTROPHE [FOR p 255 [- 253 [+ 257 [SLASH 243 [ TAG SYMBOL 0 [NO OUTPUT FOR [CASE 275 [= 300 [AT SIGN FOR u 254 [COMMA 256 [PERIOD 244 [DOLLAR SIGN [FOR ORIGN SIGN 333 [COMMENT SYMBOL T [DECBIN 1 [ DJN 9|20|68 [ [DECIMAL-TO-SINGLE PRECISION BINARY [ CONVERTS FROM -4095 TO +4095 [ [CALLING SEQUENCE [ JMP 9A [ ERROR RETURN [ NORMAL RETURN [ [IR1 MUST BE SET JUST BEFORE THE FIRST CH [ DECBIN 1 LOOKS AT 5 CHARACTERS [ USES IR1-4 [ TAGS 9A-9G [ INTERRUPTABLE [ [TIMING- CLASSIC LINC [ 0.7 - 2.1 MSEC [ #A29A SET 3 [SAVE RETURN 0 SETi4 [CH COUNTER #A29H -4 [MOD L. MATIN SETi2 [MINUS FLAG 1777 CLR #A29B STC A29C [SAVE RESULT XSKi4 [ENOUGH CHS DONE JMP A29D [NO LDAi3 [YES: INDEX RETURN LDAi [LOAD RESULT #A29C ** XSK 2 [MINUS COM [YES JMP 3 [RETURN #A29D LDHi1 [LOAD NEXT CH SHDi [SPACE " " JMP A29B+1 [ IGNORE SHDi [PLUS "+ " JMP A29B+1 [ IGNORE SHDi [MINUS "- " JMP A29G [ SET FLAG COM [NONE OF THOSE ADD A29F APO [IS IT A LEGAL DIGIT JMP 3 [NO: ERROR RETURN LDH 1 [YES: SAVE IT STC A29E ADD A29C MUL [ X # BASE 4|A29F SCR 1 AZE [OVERFLOW JMP 3 [YES: ERROR RETURN ZTA [NO: RETRIEVE IT ROL 1 ZZZ ADD A29F+1 [+1 LAMi #A29E ** LZE [OVERFLOW JMP 3 [YES: ERROR RETURN JMP A29B [NO: CONTINUE #A29F 12 [NUMBER BASE 1 #A29G XSKi2 [SET MINUS FLAG