10
20 INPUT"File: "in$
30 in%=OPENIN(in$)
40 ON ERROR REPORT:PROCClose:PRINT:END
50 DIM mem% 15
60 REPEAT
70 FOR line%=1 TO 16
80 PRINTFNh0(PTR#in%,6);" ";
90 FOR A%=0 TO 15:mem%?A%=BGET#in%:PRINTFNh0(mem%?A%,2);" ";:NEXT
100 FOR A%=0 TO 15:PRINTFNc(mem%?A%);:NEXT
110 IF line%<16:PRINT
120 NEXT
130 A%=GET AND &DF:PRINT
140 IF A%=ASC"B":IF PTR#in%>511:PTR#in%=PTR#in%-512:CLS
150 IF A%=ASC"A":INPUT "ADDRESS &"A$:PTR#in%=EVAL("&"+A$)
160 UNTILEOF#in%
170 CLOSE#in%:in%=0
180 END
190 DEFFNh0(A%,N%)=RIGHT$("0000000"+STR$~A%,N%)
200 DEFFNc(A%):A%=A%AND127:IFA%<32 OR A%=127:="." ELSE =CHR$A%
210 DEFPROCClose:in%=in%:A%=in%:in%=0:IFA%:CLOSE#A%
220 ENDPROC