.TITLE MR18.. CONVERT BINARY TO ASCII STRING ; .IDENT /MR18../ ; .PAGE .SBTTL . CONVERT BINARY TO TWO ASCII CHARACTERS ; ; ; R$B22C: ;THIS PROCEDURE CONVERTS A BINARY BYTE VALUE ;INTO TWO ASCII CHARACTERS. ; ; ENTRY CONDITIONS ; R0 = BINARY BYTE VALUE TO CONVERT ; ; EXIT CONDITIONS ; R0 = BINARY VALUE DECODED INTO TWO ASCII CHARACTERS ; BIC #177600,R0 ;REMOVE PARITY AND GASH BITS CMP R0,#177 ;IS THIS AN ERASE CHARACTER BNE 10$ ;J IF NOT ERASE BIC #40,R0 ;FORCE CHARACTER TO ? CHARACTER BR 20$ ;PROCESS IN FORM ^? ; 10$: CMP R0,#40 ;IS THIS A CONTROL CHARACTER BGT 30$ ;J IF NOT A CONTROL CHARACTER BIS #100,R0 ;FORCE VALUE INTO ASCII RANGE 20$: SWAB R0 ;MOVE CHARACETER TO TOP OF WORD ADD #'^,R0 ;INDICATE THIS IS A CONTROL CHARACTER BR 40$ ;GO BACK TO CALLING PROGRAM ; 30$: SWAB R0 ;MOV TO HIGH BYTE POSITION ADD #40,R0 ;ADD A SPACE TO DATA CHARACTER 40$: RETURN ;GO BACK TO CALLING PROGRAM ; ; ; ; ; .PAGE .SBTTL . CONVERT BINARY TO FOUR ASCII CHARACTERS ; ; ; ; R$BASC:: ;THIS PROCEDURE CONVERTS A BINARY WORD ;TWO AN ASCII STRING OF 4 CHARACTERS LONG ; ; ENTRY CONDITIONS ; R0 = BINARY VALUE TO CONVERT ; ; EXIT CONDITIONS ; R0 -> ADDRESS OF CHARACTER STRING ; ; MOV R0,102$ ;SAVE INPUT VALUE IN WORD AREA CALL R$B22C ;CONVERT 1ST BYTE MOV R0,101$ ;SAVE CONVERTED CHARACTERS MOVB 102$+1,R0 ;HOLD SECOND BYTE CALL R$B22C ;CONVERT 2ND BYTE MOV R0,102$ ;SAVE CONVERTED CHARACTERS MOV #100$,R0 ;HOLD ADDRESS OF CHARACTER STRING RETURN ;GO BACK TO CALLING PROGRAM ; ; DATA AREA ; .WORD 0 ;WRITE PROTECT 100$: .WORD 4 ;NUMBER OF CHARS IN STRING 101$: .WORD 0 ;1ST TWO CHARACTERS 102$: .WORD 0 ;TEMP STORE AND 2ND TWO CHARACTERS ; ; ; ; .END ; ;