home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / TURBOPAS / TURBO9.ZIP / MEMDISP.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1984-07-10  |  1.7 KB  |  56 lines

  1. PROGRAM Memory_Display;
  2.  
  3. {  This program displays the contents of memory onto the IBM PC's screen.   }
  4. {  The user may move though the memory by using the Page Up, Page Dn, Home, }
  5. {  End, and Up Arrow and Down Arrow keys.                                   }
  6.  
  7. {  July 10, 1984.  Jeff Firestone.                                          }
  8.  
  9. VAR
  10.   i  : INTEGER;
  11.   Done : BOOLEAN;
  12.   Mptr, Scrn, Pntr : ^CHAR;
  13.  
  14.  
  15. PROCEDURE ReadCommand;
  16. VAR  key : CHAR;
  17. BEGIN
  18.   READ(KBD, key);
  19.   IF KEYPRESSED THEN
  20.     BEGIN
  21.       READ(KBD, key);
  22.       CASE key OF
  23.         'Q' : memw[SEG(Mptr):OFS(Mptr)+2]:= memw[SEG(Mptr):OFS(Mptr)+2] + 120;
  24.         'I' : memw[SEG(Mptr):OFS(Mptr)+2]:= memw[SEG(Mptr):OFS(Mptr)+2] - 120;
  25.         'P' : memw[SEG(Mptr):OFS(Mptr)+2]:= memw[SEG(Mptr):OFS(Mptr)+2] + 5;
  26.         'H' : memw[SEG(Mptr):OFS(Mptr)+2]:= memw[SEG(Mptr):OFS(Mptr)+2] - 5;
  27.         'G' : memw[SEG(Mptr):OFS(Mptr)+2]:= 0;
  28.         'O' : memw[SEG(Mptr):OFS(Mptr)+2]:= $9F88;
  29.       END;
  30.       memw[SEG(Mptr):OFS(Mptr)]:= 0;
  31.     END;  { IF KeyPressed }
  32.   IF (key = #27) THEN Done:= TRUE;
  33. END;  { PROCEDURE ReadCommand }
  34.  
  35.  
  36. BEGIN
  37.   Done:= FALSE;
  38.   memw[SEG(Mptr):OFS(Mptr)+2]:= $0; memw[SEG(Mptr):OFS(Mptr)]:= 0;
  39.   REPEAT
  40.     Pntr:= Mptr;
  41.     GOTOXY(30,1);
  42.     WRITE('Memory Address = ');
  43.     WRITE(memw[SEG(Mptr):OFS(Mptr)+2],':',memw[SEG(Mptr):OFS(Mptr)]);
  44.     CLREOL;
  45.     memw[SEG(Scrn):OFS(Scrn)+2]:= $B80A; memw[SEG(Scrn):OFS(Scrn)]:= 0;
  46.     FOR i:= 0 TO 1920 DO
  47.     BEGIN
  48.       Scrn^:= Pntr^;
  49.       memw[SEG(Pntr):OFS(Pntr)]:= memw[SEG(Pntr):OFS(Pntr)] + 1;
  50.       memw[SEG(Scrn):OFS(Scrn)]:= memw[SEG(Scrn):OFS(Scrn)] + 2;
  51.     END;
  52.     ReadCommand;
  53.   UNTIL Done;
  54.   CLRSCR;
  55. END.
  56.