.TITLE MRC8.. CONVERT RADIX 50 TO ASCII AND ASCII TO RADIX 50 ; .IDENT /MRC8../ ; ; .PAGE .SBTTL ASCII CHARACTER TO RAD50 CODE ; R$CR50:: ;CHARACTER TO RAD50 CODE ; ; ENTRY CONDITIONS ; ; R0 = ASCII CHARACTER ; ; EXIT CONDITIONS ; ; R0 = RADIX 50 VALUE OR -1 IF ERROR ; ; SAVE R1,R2 CLR R2 ;DEFAULT START SEARCH POSITION MOV #DATA,R1 ;HOLD STRING ADDRESS OF TRANSLATE AREA CALL R$POSC ;LOCATE CODE POSITION MOV R2,R0 ;HOLD RAD50 CODE PLUS ONE ;NOTE RAD50 CODE = POSITION - ONE DEC R0 ;CORRECT CODE VALUE -1 = ERROR VALUE UNSAVE R1,R2 ;RESTORE REGISTERS RETURN ;BACK TO CALLING ROUTINE ; ; ; ; ; ; ; ; .SBTTL RAD50 CODE TO ASCII ; ; R$R50C:: ;RAD50 CODE TO ASCII ; ; ENTRY CONDITIONS ; ; R0 = RADIX 50 VALUE ; ; EXIT CONDITIONS ; ; R0 = ASCII CHARACTER OF -1 IF ERROR ; ; ; ; SAVE R1,R2 ;PROTECT USED REGISTERS MOV R0,R2 ;HOLD RAD50 CODE INC R2 ;CORRECT VALUE FOR POSITION SEARCH MOV #DATA,R1 ;HOLD ADDRESS OF STRING TO SEARCH CALL R$GETC ;GET TRANSLATED CHARACTER UNSAVE R1,R2 ;RESTORE PROTECTED REGISTERS IFSUCCESS 10$ ;J IF TRANSLATE OK MOV #-1,R0 ;SET ERROR CONDITION VALUE 10$: RETURN ;BACK TO CALLING ROUTINE ; ; ; ; SET UP TRANSLATE STRING ; STRING <" ABCDEFGHIJKLMNOPQRSTUVWXYZ$.?0123456789">,DATA ; ; .END ;