*20 /BINDEC 2 /FOR PDP-12 /D. J. NICHOLS /UNIV. WISCONSIN / /UNSIGNED 12-BIT BINARY TO DECIMAL CONVERSION / /ENTER VIA: JMP BD2 / WITH BINARY NUMBER IN THE ACCUMULATOR / AND IR 1 PRESET /DECIMAL 6-BIT ASCII CODE STORED VIA IR1 / LEADING ZEROES SUPPRESSED / RIGHT JUSTIFIED /NON-INTERRUPTABLE /USES IR 1, 2, 3 / BD2, COM /COMPLEMENT VALUE STC L9BD2 / AND SAVE IT ADD 0 /SAVE RETURN STC M9BD2 SET I 2 /SET ADDEND POINTER N9BD2-1 JMP K9BD2 /CONVERT A DIGIT AZE /IS IT A LEADING ZERO? JMP .+5 /NO LDH I /YES:CONVERT IT TO A SPACE 4040 / " " STH I 1 /AND STORE IT JMP .-6 /CONTINUE CONVERSION BSE I /MAKE ASCII 60 STH I 1 /STORE A DIGIT JMP K9BD2 /CONVERT A DIGIT JMP .-4 /AND STORE IT /LITTLE SUBROUTINE TO DO THE CONVERSION K9BD2, LDA /SAVE RETURN 0 STC M9BD2-3 SET I 3 /SET DIGIT COUNTER 1777 XSK I 2 /MOVE ADDEND POINTER ADD L9BD2 /LOAD THE VALUE SCR I 1 /SIGN TO LINK BIT ROL I 1 XSK I 3 /BUMP COUNTER STA I /SAVE REMAINING PART L9BD2, 0 ADA 2 /TRIAL ADD APO I /OK? LZE I /MAYBE: POSITIVE BEFORE? JMP .-10 /YES: COUNT ? ADD AGAIN LDA /NO: GET THE COUNTER 3 SRO I /LAST DIGIT? 3567 JMP 0 /NO: BACK TO SUBROUTINE ADD K9BD2-4 /YES: MAKE ASCII STH I 1 /STORE IT M9BD2, JMP 0 /AND RTN TO CALLING PGM /ADDEND TABLE N9BD2, 1750 144 12 1 /END BINDEC 2 /