*20 /BINDEC 7 /FOR PDP-12 /D.J.NICHOLS /UNIV. WISCONSIN / /SIGNED OR UNSIGNED 12-BIT BINARY TO DECIMAL / /ENTER WITH BINARY NUMBER IN ACCUMULATOR / AND IR 1 PRESET / VIA: JMP BD7S FOR SIGNED CONVERSION / VIA: JMP BD7NS FOR UNSIGNED CONVERSION /DECIMAL 6-BIT ASCII CODE STORED VIA IR1 / RIGHT JUSTIFIED / LEADING ZEROES SUPPRESSED /NON-INTERRUPTABLE /USES IR 1, 2 ? 3 / /ENTER HERE FOR SIGNED CONVERSION BD7S, SCR I 1 /SIGN TO LINK BIT ROL I 1 APO I /MAKE NEGATIVE COM STC P9BD7 /AND SAVE IT ADD 0 /SAVE RETURN JMP .+5 /ENTER HERE FOR UNSIGNED CONVERSION BD7NS, COM /COMPLEMENT STC P9BD7 /AND SAVE IT CLR /CLEAR LINK BIT ADD 0 /SAVE RETURN STC Q9BD7 LDA I /LOAD POSSIBLE SIGNS L9BD7, 5540 / "- " LZE /GET CORRECT SIGNS ROR 6 STH I 1 /AND STORE IT SET I 2 /SET ADDEND POINTER R9BD7-1 JMP N9BD7 /CONVERT IT AZE /IS IT A LEADING ZERO? JMP M9BD7 /NO LDH 1 /YES: RETRIEVE SIGN STC .+4 ADD L9BD7 /LOAD A SPACE STH 1 /BLANK OUT THE SIGN LDA I /AND MOVE THE SIGN 0 STH I 1 /TO THE NEXT POSITION JMP .-12 /CONVERT THE NEXT DIGIT M9BD7, ADD Q9BD7-2 /MAKE ASCII STH I 1 /STORE THE DIGIT JMP N9BD7 /CONVERT NEXT ONE JMP M9BD7 /AND SAVE IT /LITTLE SUBROUTINE TO DO THE CONVERSION N9BD7, LDA /SAVE RETURN 0 STC Q9BD7-4 SET I 3 /SET DIGIT COUNTER 1777 XSK I 2 /MOVE ADDEND POINTER ADD P9BD7 /LOAD THE VALUE SCR I 1 /SIGN TO LINK ROL I 1 XSK I 3 /BUMP COUNTER STA I /SAVE REMAINING PART P9BD7, 0 ADA 2 /TRIAL ADD APO I /OK? LZE I /MAYBE: WAS IT POSITIVE? JMP .-10 /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 /STORE IT Q9BD7, JMP 0 /AND RTN TO CALLING PGM /ADDEND TABLE R9BD7, 1750 144 12 1 /END BINDEC 7 /