{++++++++++++++++++++++++++++++++++++++++++++++++} { PEEK and POKE LIBRARY +} {++++++++++++++++++++++++++++++++++++++++++++++++} FUNCTION PEEK(EXP1: INTEGER): BYTE; { Returns the contents of the memory location given by EXP1. The value returned is an integer ranging from 0 to 255. EXAMPLE: MEMORY := PEEK(1); } TYPE CONTENTS = PACKED RECORD BYT: BYTE { byte in memory } END; FORM = (INTEGR, ADRESS); REFERENCE = RECORD CASE FORM OF INTEGR: (I: INTEGER); ADRESS: (P: ^CONTENTS) END; VAR TEMP: REFERENCE; BEGIN TEMP.I := EXP1; PEEK := TEMP.P^.BYT END; {of PEEK} PROCEDURE POKE(EXP1: INTEGER; EXP2: BYTE); { The low-order eight bits of EXP2 is stored at the memory address selected by EXP1. } TYPE CONTENTS = PACKED RECORD BYT: BYTE { byte in memory } END; FORM = (INTEGR, ADRESS); REFERENCE = RECORD CASE FORM OF INTEGR: (I: INTEGER); ADRESS: (P: ^CONTENTS) END; VAR TEMP: REFERENCE; BEGIN TEMP.I := EXP1; TEMP.P^.BYT := EXP2; END; {of POKE}