Compucolor.org – Virtual Media

Listing of file='HEXDMP.BAS;01' on disk='vmedia/ncc_4-sector.ccvf'

1 REM 
5 REM 	PROGRAM NAME:	DUMP
10 REM 	PROGRAMMER:	JIM PARKER
15 REM
20 REM   THIS PROGRAM DUMPS MEMORY TO THE SCREEN OR PRINTER
30 REM
35 PLOT 6,2
40 INPUT "
DUMP TO SCREEN OR PRINTER ? ";AN$
50 SP$= LEFT$ (AN$,1)
60 IF SP$< > "S"AND SP$< > "P"GOTO 40
70 PRINT "
INPUT DECIMAL NUMBER OR HEX DIGITS ENDING IN H"
75 N$= "0123456789ABCDEF"
80 INPUT "
STARTING ADDRESS : ";SA$:REM 
90 SA= VAL (SA$)
100 IF RIGHT$ (SA$,1)= "H"THEN AD$= SA$:GOSUB 10000:SA= AD
110 INPUT "
  ENDING ADDRESS : ";EA$
120 EA= VAL (EA$)
130 IF RIGHT$ (EA$,1)= "H"THEN AD$= EA$:GOSUB 10000:EA= AD
140 BL= INT (SA/ 8):SB= BL* 8:EB= SB+ 7
145 IF SP$= "S"THEN PRINT :PRINT
149 REM  
150 REM    CONVERT BLOCK ADDRESS TO HEX
151 REM
155 DN= INT (SB/ 256):GOSUB 11000:B1$= HX$
160 DN= INT (SB- (256* DN)):GOSUB 11000:B2$= HX$
161 IF SP$= "S"THEN PLOT 6,2
162 SB$= STR$ (SB):PRINT TAB( 7- LEN (SB$))SB$;TAB( 10);
163 IF SP$= "S"THEN PLOT 6,5
164 PRINT B1$B2$;
165 IF SP$= "S"THEN PLOT 6,2
166 REM 
167 REM   PRINT LINE OF DUMP
169 S$= ""
170 FOR I= SBTO EB
175 DN= PEEK (I):GOSUB 11000
180 IF I< SATHEN HX$= "  "
185 IF I> EATHEN HX$= "  "
190 PRINT "  "HX$;
192 C= DNAND 127
193 IF I< SAOR I> EATHEN C= 32
194 IF C< 32THEN C= 32
196 S$= S$+ CHR$ (C)
200 NEXT I
210 PLOT 32,32,6,6
212 IF SP$= "S"THEN PLOT 110
214 IF SP$= "P"THEN PLOT 124
216 PLOT 32,32,6,7
220 PRINT S$
230 IF I> EAGOTO 60000
250 SB= SB+ 8:EB= SB+ 7
270 GOTO 150
10000 REM 
10010 REM    CONVERT HEX STRING TO DECIMAL NUMBER
10020 REM
10025 AD= 0
10030 L= LEN (AD$)
10040 FOR I= 1TO 4
10050 L= L- 1
10060 IF L< 1THEN RETURN
10070 HA$= MID$ (AD$,L,1)
10080 FOR M= 1TO 16
10090 IF MID$ (N$,M,1)< > HA$GOTO 10200
10100 AD= AD+ (M- 1)* (16^ (I- 1))
10110 GOTO 10300
10200 NEXT M
10250 PRINT "
ILLEGAL HEXIDECIMAL DIGIT
":END :REM 
10300 NEXT I
11000 REM  
11010 REM    CONVERT DN TO A TWO DIGIT HEX NUMBER IN ASCII HX$
11020 REM
11030 H1= INT (DN/ 16)
11040 H2= DN- H1* 16
11050 D1$= MID$ (N$,H1+ 1,1)
11060 D2$= MID$ (N$,H2+ 1,1)
11070 HX$= D1$+ D2$
11080 RETURN
60000 REM 
60010 REM    TURN OFF PRINTER
60020 REM
60030 POKE 33265,0
60040 PLOT 6,2
60100 REM  		RETURN TO MENU
60200 LOAD "MENU":RUN