*20 /DECBIN 1 /FOR PDP-12 /D.J.NICHOLS /UNIV.WISCONSIN / /DECIMAL TO SINGLE-PRECISION-BINARY CONVERSION / /DECBIN 1 LOOKS AT 5 ASCII CHARACTERS /WHICH MUST BE BETWEEN -4095 AND +4095. /RETURNS WITH BINARY NO.IN ACCUMULATOR. /IR 1 MUST BE SET 1/2 WORD AHEAD / OF THE FIRST CHARACTER BEFORE ENTRY / /CALLING SEQUENCE: / JMP DB1 / ERROR RETURN / NORMAL RETURN / /USES IR1-4 /INTERRUPTABLE / DB1, SET 3 /SAVE RETURN 0 SET I 4 /CH COUNTER -6 / - (NO.OF CHS.TO CONVERT) - 1 SET I 2 /MINUS FLAG 1777 CLR B9DB1, STC C9DB1 /SAVE RESULT XSK I 4 /ENOUGH CHS DONE? JMP D9DB1 /NO LDA I 3 /YES: INDEX RETURN LDA I /LOAD RESULT C9DB1, 0 XSK 2 /MINUS? COM /YES JMP 3 /RETURN D9DB1, LDH I 1 /LOAD NEXT CH SHD I /SPACE? 4040 / " " JMP B9DB1+1 /IGNORE IT SHD I /PLUS? 5340 / "+ " JMP B9DB1+1 /IGNORE SHD I /MINUS? 5540 / "- " JMP G9DB1 /YES: SET FLAG ADA I /NO:IS IT A LEGAL DIGIT? -71 APO I / <72 ? JMP 3 /NO: ERROR RETURN ADD F9DB1 /ADD 12 APO / >57 ? JMP 3 /NO:ERROR RTN LDH 1 /YES: GET CH BCL I /MAKE BINARY 7760 STC E9DB1 /SAVE IT ADD C9DB1 MUL /X NUMBER BASE 4\F9DB1 SCR 1 AZE /OVERFLOW? JMP 3 /YES: ERROR RETURN QAC /NO: RETRIEVE IT ROL 1 QLZ ADD F9DB1+1 /+1 LAM I E9DB1, 0 LZE /OVERFLOW? JMP 3 /YES: ERROR RETURN JMP B9DB1 /NO: CONTINUE F9DB1, 12 /NUMBER BASE 1 G9DB1, XSK I 2 /SET MINUS FLAG JMP B9DB1+1 /END DECBIN 1 /