home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol021 / peek.pas < prev    next >
Pascal/Delphi Source File  |  1984-04-29  |  1KB  |  56 lines

  1.  
  2. (*****************************************************
  3. *
  4. *        PEEK/POKE PROGRAM
  5. *
  6. *  Bob Harsch said he needed this for a program and
  7. *  afterward thought someone else could use it so he
  8. *  gave us a copy for the Pascal/Z Users Group.
  9. *
  10. *  August 1980
  11. *
  12. *******************************************************
  13.  
  14. {$E+ }
  15. PROGRAM PEEKPOKE;
  16.  
  17. TYPE    BYTE= 0..255;
  18.     CONTENTS= PACKED RECORD
  19.             BYT: BYTE { byte in memory }
  20.         END; { of record }
  21.     FORM=(INTEGR,ADDRESS);
  22.     REFERENCE= RECORD
  23.         CASE FORM OF
  24.             INTEGR:  (I: INTEGER);
  25.             ADDRESS: (P: ^CONTENTS)
  26.         END;
  27.  
  28. VAR    K,I: INTEGER;
  29.  
  30. FUNCTION PEEK(ADDR: INTEGER): BYTE;
  31.     VAR    TEMP: REFERENCE;
  32.     BEGIN { of function peek }
  33.         TEMP.I:= ADDR;
  34.         PEEK:= TEMP.P^.BYT
  35.     END; { of function peek }
  36.  
  37. PROCEDURE POKE(ADDR: INTEGER; BITS8: BYTE);
  38.     VAR    TEMP: REFERENCE;
  39.     BEGIN { of procedure poke }
  40.         TEMP.I:= ADDR;
  41.         TEMP.P^.BYT:= BITS8
  42.     END; { of procedure poke }
  43.  
  44.  
  45.  
  46. BEGIN { of main program }
  47.     K:= -1024 + 5*64;  { screen address }
  48.     WRITE(PEEK(128):3,'--');
  49.     FOR I:= 129 TO 160 DO
  50.         BEGIN
  51.         WRITE(CHR(PEEK(I)));
  52.         POKE(K, PEEK(I));
  53.         K:= K + 1;
  54.         END;
  55.     WRITELN
  56. END.