.TITLE MCC1.. COMMON STRING PROCEDURES FOR CORAL IN MACRO ; .IDENT /MCC1../ ; .PAGE .SBTTL . COMMON GROUP SUBROUTINES C$ RANGE .SBTTL . ASCII TO DECIMAL INTEGER ; ; ; C$DECINT:: ;GENERATE INTEGER FROM ASCII CHARACTERS ; ENTRY CONDITIONS ; ; R3 -> ADDRESS OF FIRST CHARACTER ; R4 = VALUE OF TERMINATING CHARARACTER ; ; EXIT CONDITION ; ; R0 = HOLD VALUE ; R3 -> NEXT CHARACTER AFTER TERMINATOR ; ; SAVE R1,R2 ;SAVE R1 AND R2 CLR R1 ;CLEAR OUT ACUMULATOR ; 10$: MOVB (R3)+,R2 ;HOLD CHARACTER CMP R2,R4 ;IS THIS THE LAST CHARACTER BEQ 20$ ;J IF LAST CHARARACTER SUB #48.,R2 ;CONVERT TO BCD BLT 10$ ;J IF NOT NUMERIC CMP R2,#9. ;IS BCD CODE IN RANGE 0-9 BGT 10$ ;J IF OUT OF ABOVE RANGE MUL #10.,R1 ;SHIFT DECIMAL BASE 1 PLACE LEFT ADD R2,R1 ;ADD IN LEAST SIG DIGIT BR 10$ ;GET NEXT CHARCATER ; 20$: MOV R1,R0 ;HOLD EXIT RESULT UNSAVE R1,R2 ;RESTORE R1 AND R2 RETURN ;EXIT WITH R3 -> CHARACTER FOLLOWING TERMINATOR ; ; .END ;