(***************************************************** * * PEEK/POKE PROGRAM * * Bob Harsch said he needed this for a program and * afterward thought someone else could use it so he * gave us a copy for the Pascal/Z Users Group. * * August 1980 * ******************************************************* {$E+ } PROGRAM PEEKPOKE; TYPE BYTE= 0..255; CONTENTS= PACKED RECORD BYT: BYTE { byte in memory } END; { of record } FORM=(INTEGR,ADDRESS); REFERENCE= RECORD CASE FORM OF INTEGR: (I: INTEGER); ADDRESS: (P: ^CONTENTS) END; VAR K,I: INTEGER; FUNCTION PEEK(ADDR: INTEGER): BYTE; VAR TEMP: REFERENCE; BEGIN { of function peek } TEMP.I:= ADDR; PEEK:= TEMP.P^.BYT END; { of function peek } PROCEDURE POKE(ADDR: INTEGER; BITS8: BYTE); VAR TEMP: REFERENCE; BEGIN { of procedure poke } TEMP.I:= ADDR; TEMP.P^.BYT:= BITS8 END; { of procedure poke } BEGIN { of main program } K:= -1024 + 5*64; { screen address } WRITE(PEEK(128):3,'--'); FOR I:= 129 TO 160 DO BEGIN WRITE(CHR(PEEK(I))); POKE(K, PEEK(I)); K:= K + 1; END; WRITELN END. .