home *** CD-ROM | disk | FTP | other *** search
- (**************************************************************************)
- (* PEEKPOKE.PAS *)
- (* Das INCLUDE-Modul "PEEKPOKE" stellt dem Programmierer die von BASIC *)
- (* her bekannten Funktionen PEEK und POKE auch in Pascal zur Verfuegung. *)
- (* Implementiert sind diese fuer den Type BYTE (Werte von 0..255): *)
- (* *)
- (* FUNCTION Peek (adr : INTEGER): INTEGER *)
- (* PROCEDURE Poke (adr, wert: INTEGER) *)
- (* *)
- (**************************************************************************)
-
- FUNCTION Peek (adr: INTEGER): INTEGER;
-
- TYPE BYTE = 0..255;
- word = PACKED ARRAY [0..1] OF BYTE; (* entspricht zwei Byte *)
- speicher = RECORD
- CASE INTEGER OF
- 1 : (inhalt : ^word ); (* Speicherwort *)
- 2 : (adresse: INTEGER) (* absolute Adresse *)
- END;
-
- VAR ram: speicher;
-
- BEGIN
- ram.adresse := adr; (* Variante mit absoluter Adresse belegen *)
- Peek := ram.inhalt^[0] (* und diese dann als Wert des Zeigers verwenden *)
- END;
-
- (*------------------------------------------------------------------------*)
-
- PROCEDURE Poke (adr, wert: INTEGER);
-
- TYPE BYTE = 0..225;
- word = PACKED ARRAY [0..1] OF BYTE; (* entspricht zwei Byte *)
- speicher = RECORD
- CASE BOOLEAN OF
- 1 : (inhalt : ^word ); (* Speicherwort *)
- 2 : (adresse: INTEGER) (* absolute Adresse *)
- END;
-
- VAR ram: speicher;
-
- BEGIN
- ram.adresse := adr; (* Vorgang wie bei PEEK *)
- ram.inhalt^[0] := (wert MOD 256)
- END;
-
- (*------------------------------------------------------------------------*)
- (* Ende von PEEKPOKE.PAS *)
-