.TITLE BCD2B BCD TO BINARY CONVERSION .IDENT /18APR7/ ;11;47 JB ; .ENTRY BCD2B BCD TO BINARY CONVERSION ;+ ; B C D 2 B ; ; PURPOSE: BCD TO BINARY CONVERSION ; ; INTERFACE: CALLING SEQUENCE: ; CALL BCD2B ; ; INPUT: R0 -- BCD NUMBER TO CONVERT ; ; OUTPUT: R0 -- CONVERTED NUMBER ; CC C SET IF ILLEGAL BCD DIGIT ENCOUNTERED, ; CLEAR OTHERWISE. ; ; LANGUAGE: MACRO-11 ; ; RESTRICTIONS: NOT FORTRAN-CALLABLE ; ;- ; REVISIONS: ; 20-JAN-77 NS REMOVE PUSH AND POP MACRO DEFINITIONS ; 18-APR-77 JB UPDATED TO CONFORM TO STANDARDS ; .MCALL PUSH,POP,RETURN ; BCD2B:: PUSH R1 ;SAVE REGISTERS PUSH R2 PUSH R3 MOV #4,R2 ;R2 IS DIGIT COUNTER CLR R3 ;R3 ACCUMULATES RESULT MOV R0,R1 10$: ASHC #4,R0 ;SHIFT NEXT DIGIT FROM R1 TO R0 BIC #177760,R0 ;STRIP OUT DIGIT CMP R0,#11 BHI 20$ MUL #10.,R3 ;MULTIPLY PARTIAL PRODUCT BY 10 ADD R0,R3 SOB R2,10$ MOV R3,R0 CLC ;RETURN WITH C BIT CLEAR BR 30$ 20$: SCC ;SET C BIT 30$: POP R3 POP R2 POP R1 RETURN .END