home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / grafik / nobgi.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-05-09  |  1.5 KB  |  78 lines

  1. {$A+,B-,D-,E-,F-,G-,I-,L-,N-,O-,P-,Q-,R-,S-,T-,V-,X-}
  2. {$M 16384,0,655360}
  3. (*===================================================================*)
  4. (*                              NOBGI.PAS                            *)
  5. (*                 Copyright (C) 1993 te-wi Verlag, München          *)
  6. (*     Demonstration für das Schalten in den Grafikmodus ohne BGI    *)
  7. (*===================================================================*)
  8. PROGRAM NoBGIButGraphics;
  9.  
  10. USES
  11.   DOS;
  12.  
  13. VAR
  14.   LastMode: BYTE;
  15.   Regs    : Registers;
  16.  
  17. FUNCTION GetAttr: BYTE;
  18. BEGIN
  19.   Regs.AH := 8;
  20.   Regs.BH := BYTE(Ptr($40, $62)^);
  21.   Intr($10, Regs);
  22.   GetAttr := Regs.AH;
  23. END;
  24.  
  25. PROCEDURE Locate(x, y: BYTE);
  26. BEGIN
  27.   Regs.AH := 2;
  28.   Regs.BH := 0;
  29.   Regs.DH := x;
  30.   Regs.DL := y;
  31. END;
  32.  
  33. PROCEDURE ClearScreen;
  34. VAR
  35.   color: BYTE;
  36. BEGIN
  37.   color := GetAttr;
  38.   ASM
  39.     MOV AH, 6
  40.     MOV AL, 0
  41.     MOV CH, 0
  42.     MOV CL, 0
  43.     MOV DH, 24
  44.     MOV DL, 79
  45.     MOV BH, color
  46.     INT 10h
  47.   END;
  48. END;
  49.  
  50. PROCEDURE SetGraphMode(Mode: BYTE);
  51. VAR
  52.   om: BYTE;
  53. BEGIN
  54.   ASM
  55.     MOV  BX, 40h
  56.     MOV  DS, BX
  57.     MOV  BX, 49h
  58.     MOV  AL, DS:[BX]
  59.     MOV  om, AL
  60.     XOR  AH, AH
  61.     MOV  AL, Mode;
  62.     INT  10h
  63.   END;
  64.   LastMode := om;
  65. END;
  66.  
  67. BEGIN
  68.   SetGraphMode($10);
  69.   WriteLn('Test 1');
  70.   ReadLn;
  71.   ClearScreen;
  72.   WriteLn('Test 2');
  73.   Locate(79,0);
  74.   ReadLn;
  75.   SetGraphMode(LastMode);
  76. END.
  77.  
  78. (*===================================================================*)