*20 /BINDEC 3 /FOR PDP-12 /D. J. NICHOLS /UNIV. WISCONSIN / /SIGNED 12-BIT BINARY TO DECIMAL CONVERSION / /ENTER VIA: JMP BD3 / WITH BINARY NUMBER IN ACCUMULATOR / AND IR 1 PRESET /DECIMAL 6-BIT ASCII CODE STORED VIA IR1 / LEADING ZEROES SUPPRESSED / LEFT JUSTIFIED / FIELD NOT FILLED WITH SPACES /NON-INTERRUPTABLE /USES IR 1, 2, 3 / BD3, SCR I 1 /SIGN TO LINK BIT ROL I 1 APO I /MAKE IT NEGATIVE COM STC L9BD3 /AND SAVE IT ADD 0 /SAVE RETURN STC M9BD3 LDA I /LOAD POSSIBLE SIGNS 5540 / "- " LZE /GET CORRECT SIGN ROR 6 STH I 1 /AND STORE IT SET I 2 /SET ADDEND POINTER N9BD3-1 JMP K9BD3 /CONVERT A DIGIT AZE I /IS IT A LEADING ZERO? JMP .-2 /YES: IGNORE IT ADD M9BD3-2 /NO: MAKE ASCII STH I 1 /STORE DIGIT JMP K9BD3 /CONVERT A DIGIT JMP .-3 /AND STORE IT /LITTLE SUBROUTINE TO DO THE CONVERSION K9BD3, LDA /SAVE RETURN 0 STC M9BD3-4 SET I 3 /SET DIGIT COUNTER 1777 XSK I 2 /MOVE ADDEND POINTER ADD L9BD3 /LOAD THE VALUE XSK I 3 /BUMP COUNTER STA I /SAVE REMAINING PART L9BD3, 0 ADA 2 /TRIAL ADD APO /STILL OK? JMP .-5 /YES: COUNT ? ADD AGAIN LDA /NO: GET THE COUNTER 3 SRO I /LAST DIGIT? 3567 JMP 0 /NO: BACK TO SUBROUTINE BSE I /YES: MAKE ASCII 60 STH I 1 /AND STORE IT M9BD3, JMP 0 /AND RTN TO CALLING PGM /ADDEND TABLE N9BD3, 1750 144 12 1 /END BINDEC 3 /