.TITLE BINBCD - BINARY TO BCD CONVERSION ROUTINE .IDENT /14APR7/ ;15:12:00 LV ; .ENTRY BINBCD - BINARY TO BCD CONVERSION ROUTINE ;+ ; B I N B C D ; ; PURPOSE: FORTRAN-CALLABLE BINARY TO BCD CONVERSION ROUTINE ; ; INTERFACE: CALLING SEQUENCE: (FORTRAN-CALLABLE SUBROUTINE) ; CALL BINBCD(BIN,BCD) ; ; INPUT: BIN(INTEGER) = BINARY WORD <,= 23417 = 9999. ; ; OUTPUT: BCD(INTEGER) = ADDRESS TO STORE 4-DIGIT BCD WORD ; ; LANGUAGE: MACRO-11 ; ;- ; REVISIONS: ; 01-APR-75 ML WRITTEN ; 10-SEP-76 SS ELIMINATE USE OF SPECIAL MACROS ; 19-APR-77 LV UPDATED TO CONFORM TO STANDARDS ; .MCALL RETURN ; BINBCD:: MOV R0,-(SP) MOV R1,-(SP) MOV R2,-(SP) MOV R3,-(SP) MOV R4,-(SP) CLR R3 MOV @2(R5),R0 ;PICK UP BINARY # CMP R0,#23417 BGT 2$ ;IF #>9999., RETURN MOV #4,R4 1$: MOV R0,R1 CLR R0 DIV #10.,R0 ;N(I+1)=N(I)/10. MOV R1,R2 ;REMAINDER IS NEXT BCD DIGIT ASHC #-4,R2 ;MOVE IT INTO ANSWER SOB R4,1$ ;LOOP 4 TIMES 2$: MOV R3,@4(R5) ;STORE BCD# MOV (SP)+,R4 MOV (SP)+,R3 MOV (SP)+,R2 MOV (SP)+,R1 MOV (SP)+,R0 RETURN ;AND RETURN ; .END