; BINAS.MAC ; ; A SUBROUTINE TO CONVERT AN INTEGER TO ASCII CHAR AND STORE IN ; LOCATION BUF WHICH HAS CHAR SPACES AVAILABLE. TO USE, GIVE THE ; COMMAND: ; CALL BINAS(I,BUF,LENGTH) ; .TITLE BINAS .GLOBL BINAS BINAS:: MOV @2(R5),R1 ; GET THE INTEGER MOV #TEM,R0 ; TEMPRARILY STORE RESULT HERE MOV #1,R2 ; DON'T SURPRESS ZEROES CALL $CBDMG ; DO CONVERSION MOV #TEM,R0 ; GOING TO SURPRESS LEADING ZEROES SUP: CMPB (R0),#60 ; IS THIS A ZEROE? BNE 1$ ; NO, ALL THROUGH MOVB #40,(R0)+ ; WAS ONE, REPLACE WITH BLANK CMP R0,#TEM+4 ; DON'T DO LAST CHARACTER BLT SUP ; NOT LAST CHARACTER YET 1$: MOV 4(R5),R1 ; STARTING POINT OF DESTINATION MOV @6(R5),R2 ; NUMBER OF CHARACTERS DESIRED ADD R2,R1 ; R1 IS NOW ONE PAST END OF DEST MOV #TEM,R0 ; R0 IS BEGINNING POINT OF SOURCE ADD #5,R0 ; R0 IS 1 PAST END OF SOURCE 2$: TST R2 ; ARE WE THROUGH? BLE 3$ ; YES. MOVB -(R0),-(R1) ; DECREMENT POSITION, THEN MOVE DEC R2 BR 2$ ; GO BACK AND MOVE NEXT CHARACTER 3$: RETURN TEM: .BLKB 6 .END