home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / sonderh1 / peekpoke.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1987-05-18  |  2.1 KB  |  50 lines

  1. (**************************************************************************)
  2. (*                           PEEKPOKE.PAS                                 *)
  3. (* Das INCLUDE-Modul "PEEKPOKE" stellt dem Programmierer die von BASIC    *)
  4. (* her bekannten Funktionen PEEK und POKE auch in Pascal zur Verfuegung.  *)
  5. (* Implementiert sind diese fuer den Type BYTE (Werte von 0..255):        *)
  6. (*                                                                        *)
  7. (*    FUNCTION  Peek (adr      : INTEGER): INTEGER                        *)
  8. (*    PROCEDURE Poke (adr, wert: INTEGER)                                 *)
  9. (*                                                                        *)
  10. (**************************************************************************)
  11.  
  12. FUNCTION Peek (adr: INTEGER): INTEGER;
  13.  
  14.  TYPE  BYTE     = 0..255;
  15.        word     = PACKED ARRAY [0..1] OF BYTE;    (* entspricht zwei Byte *)
  16.        speicher = RECORD
  17.                     CASE INTEGER OF
  18.                      1 : (inhalt : ^word  );              (* Speicherwort *)
  19.                      2 : (adresse: INTEGER)           (* absolute Adresse *)
  20.                   END;
  21.  
  22.  VAR   ram: speicher;
  23.  
  24. BEGIN
  25.   ram.adresse := adr;           (* Variante mit absoluter Adresse belegen *)
  26.   Peek := ram.inhalt^[0] (* und diese dann als Wert des Zeigers verwenden *)
  27. END;
  28.  
  29. (*------------------------------------------------------------------------*)
  30.  
  31. PROCEDURE Poke (adr, wert: INTEGER);
  32.  
  33.  TYPE BYTE     = 0..225;
  34.       word     = PACKED ARRAY [0..1] OF BYTE;     (* entspricht zwei Byte *)
  35.       speicher = RECORD
  36.                    CASE BOOLEAN OF
  37.                     1 : (inhalt : ^word  );               (* Speicherwort *)
  38.                     2 : (adresse: INTEGER)            (* absolute Adresse *)
  39.                  END;
  40.  
  41.  VAR   ram: speicher;
  42.  
  43. BEGIN
  44.  ram.adresse := adr;                              (* Vorgang wie bei PEEK *)
  45.  ram.inhalt^[0] := (wert MOD 256)
  46. END;
  47.  
  48. (*------------------------------------------------------------------------*)
  49. (*                        Ende von PEEKPOKE.PAS                           *)
  50.