1 ' DISPLY.BA 2 ' Copyright (C) 1986,1987 by Gary Weber 3 ' All-purpose RAM/ROM display 4 ' for NEC PC-8201A/8300 and Model 100's. 5 ' May be distributed freely as long 6 ' as lines 1 thru 7 aren't deleted. 7 ' See DISDOC.DO for documentation. 8 DATA 243,219,160,246,1,211,161,126,50,127,243,219,160,230,254,211,161,251,201 9 DATA 243,62,1,211,224,126,50,127,243,175,211,224,251,201 10 SCREEN,0:CLS 11 PRINT"Will you be moving Option ROM contents to RAM (Y/N)? ";:I$=INPUT$(1):PRINTI$:IFI$<>"Y"ANDI$<>"Y"THEN16ELSEIFPEEK(1)=148THENHIMEM=PEEK(62340!)+PEEK(62341!)*256 12 CLEAR256,HIMEM-FRE(0)+300 13 IFPEEK(1)=148THENRA=(PEEK(62340!)+PEEK(62341!)*256)-FRE(0)ELSERA=HIMEM-FRE(0) 14 PRINT"The starting address in RAM is"RA:LINEINPUT"Write this down and press RETURN:";A$ 15 GOTO17 16 CLEAR256,62316! 17 DEFINTA 18 IFPEEK(1)<>148 THEN RESTORE9 19 ONERRORGOTO21 20 FORX=62316!TO62334!:READH:POKEX,H:NEXTX:GOTO22 21 RESUME22 22 CLS:PRINT"RAM/ROM Display 1.0":PRINT:X=0 23 ONERRORGOTO28 24 IFRATHEN30 25 PRINTCHR$(27)"Y"CHR$(32+4)CHR$(32+0);:PRINT"(Use LCD: to send output to screen)" 26 PRINTCHR$(27)"Y"CHR$(32+3)CHR$(32+0);:LINEINPUT "Output filespec: ";C$ 27 OPENC$FOROUTPUTAS1:PRINT:GOTO29 28 PRINT"** INVALID DEVICE or FILENAME **":BEEP:BEEP:RESUME26 29 ONERRORGOTO0 30 PRINT:PRINT"(S)tandard or (O)ption ROM: ";:I$=INPUT$(1):PRINTI$:PRINT:IFI$="O"ORI$="o"THENROM2=1 31 IFRATHENFM=4:GOTO36 32 PRINT"1. Display ASCII CHR$'s" 33 PRINT"2. Display hexadecimal values" 34 PRINT"3. Display address, byte, hex, CHR$" 35 INPUT "Choice";FM:PRINT:IFFM>4THEN32 36 PRINT"Starting address ["X"]:";:INPUTX 37 IFRATHENINPUT"How many bytes to copy to RAM?";BY:IFRA+BY>62316!THENPRINT"Sorry, not enough ROOM.":GOTO37 38 IFROM2THENGOSUB57:A=PEEK(62335!)ELSEA=PEEK(X) 39 ON FM GOSUB 43,44,46,59 40 IFAB=1THENPRINT:PRINTRM"bytes sucessfully moved from ROM to RAM.":END 41 IFRA=0THENGOSUB48 42 X=X+1:GOTO38 43 IF(A>31)AND(A<127)THENPRINT#1,CHR$(A);:RETURNELSERETURN 44 GOSUB54:PRINT#1,H$;:XX=XX+1:IFXX=19THENXX=0:PRINT#1, 45 RETURN 46 GOSUB54:PRINT#1,USING"##### ### ";X;A;:PRINT#1,H$;" ";:IF(A>31)AND(A<127)THENPRINT#1,CHR$(A); 47 PRINT#1,:RETURN 48 I$=INKEY$:IFI$=""THENRETURN 49 IFI$="I"ORI$="i"THENPRINT:GOTO36 50 IFI$="F"ORI$="f"THENPRINT:GOTO32 51 IFI$="R"ORI$="r"THENRUN 52 IFI$="M"ORI$="m"THENMENU 53 RETURN 54 H$="":H1=A\16:GOSUB56 55 H1=AMOD16 56 H$=H$+CHR$(H1+48-7*(H1>9)):RETURN 57 IFPEEK(1)<>148THENCALL62316,,X:RETURN 58 POKE63912!,X-256*INT(X/256):POKE63913!,X/256:EXEC62316!:RETURN 59 POKERA,A:RA=RA+1:RM=RM+1:IFRM=BYTHENAB=1 60 RETURN