ARTICLE BY RON MITCHELL, PRESIDENT OF AUFG (Adam User Friendly Group) of Ontario Canada. 
 
We appreciate Ron Mitchell sharing this information with us.  

 
 
0REM VIDEO RAM READER BY R.H. Mitchell...June 15, 1988 
1LOMEM :29000 
5DIM bit%(8) 
10HOME: m=0:POKE 16953, 32 
20HTAB 10:VTAB 12:? "VRAM-READER" 
30HTAB 5:VTAB 23:? "PRESS ANY KEY TO START" 
40GET a$ 
45IF a$=CHR$(27) THEN 450 
50HOME:HTAB 5:VTAB 5:? "MENU" 
52HTAB 5:VTAB 6:? "____" 
55?:? 
60? " I. Hex Listing" 
65? 
70? "II. Binary Listing" 
75HTAB 3:VTAB 23:? "SELECT CHOICE WITH SMARTKEYS" 
80GET a$: key=ASC(a$)-128 
90ON (key=1) OR (key=2) GOTO 120, 120 
100GOTO 80 
120 g=0 
140 x$="0123456789ABCDEF" 
150POKE 17115, 31:POKE 17059, 31:POKE 17126, 23:TEXT 
160DATA 62,0,211,191,62,0,211,191,0,0,0,0,219,190,50,84,111,201 
170FOR x=28000 TO 28017 
180READ d:POKE x, d:NEXT 
190TEXT:INPUT " WHAT PAGE?  "; p 
195IF p<0 OR p>63 THEN HOME:VTAB 10:HTAB 10:? "ILLEGAL VALUE":FOR i=1 TO 3000:NEXT:GOTO 190 
200POKE 28005, p 
202POKE 16995, 6 
203HTAB 2:VTAB 1 
210?:? "PAGE "; p; " VRAM ADDRESSES "; p*256:? " TO "; p*256+255:?:? 
211HTAB 1:VTAB 1:? SPC(15) 
212HTAB 1:VTAB 5:? " BINARY ASCII DEC ADDRESS" 
213HTAB 1:VTAB 6:? "------------------------------" 
214HTAB 1:VTAB 7 
220FOR e=0 TO 15 
230FOR s=0 TO 15 
240POKE 28001, e*16+s 
250CALL 28000 
260 g=PEEK(28500) 
265IF key=2 THEN 310 
280? MID$(x$, INT(g/16)+1, 1); 
290? MID$(x$, (g/16-INT(g/16))*16+1, 1); " "; 
305IF key=1 THEN 470 
310REM 000 then print 
320FOR j=7 TO 0 STEP -1 
330 b=2^j 
340IF g-b<0 THEN bit%(j)=0:GOTO 370 
350 bit%(j)=1 
360 g=g-b 
370NEXT j 
380FOR j=7 TO 0 STEP -1 
390IF bit%(j)=l THEN INVERSE:? bit%(j); :NORMAL:GOTO 420 
400? bit%(j); 
420NEXT j 
425IF p>7 THEN 435 
430? "chr$("; INT(((p*256)+e*16+s)/8); ")"; SPC(2); PEEK(28500); 
431HTAB 25:? (p*256)+e*16+s 
432IF p<=7 THEN 440 
435? SPC(3); PEEK(28500); SPC(10); (p*256)+e*16+s 
436HTAB 10:VTAB 5:? "DECIMAL ADDRESS" 
437HTAB 1:VTAB 7 
440GET a$ 
445 m=m+1 
450IF a$=CHR$(27) THEN POKE 17115, 240:POKE 17059, 240:POKE 17126, 15:POKE 16953, 95:TEXT:END 
460IF a$=CHR$(32) THEN ? 
462IF a$=CHR$(145) THEN m=0:GOTO 190 
465IF m/8=INT(m/8) AND p<8 THEN ? 
470NEXT s 
475NEXT e 
480GOTO 190

   
