home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / pascal / das_buch / overlays / bgidrv.pas next >
Encoding:
Pascal/Delphi Source File  |  1993-05-06  |  1.6 KB  |  51 lines

  1. {$A+,B-,D-,E-,F+,G-,I-,L-,N-,O+,P-,Q-,R-,S-,T-,V-,X-}
  2. (*===================================================================*)
  3. (*                          BGIDRV.PAS                               *)
  4. (*                     BGI-Treiber im Overlay                        *)
  5. (*                Overlay-Lademodul mit den Treibern                 *)
  6. (*===================================================================*)
  7.  
  8. UNIT BGIDrv;
  9.  
  10. INTERFACE
  11.  
  12. USES
  13.   Graph {RegisterBGIDriver};
  14.  
  15. FUNCTION RegisterDriver(DrvNr, DrvMem: WORD; DrvPtr: POINTER): INTEGER;
  16.  
  17. IMPLEMENTATION
  18.  
  19. PROCEDURE EGAVGADriverProc;  EXTERNAL; {$L EGAVGA}
  20. PROCEDURE ATT400DriverProc;  EXTERNAL; {$L ATT}
  21. PROCEDURE CGADriverProc;     EXTERNAL; {$L CGA}
  22. PROCEDURE HercDriverProc;    EXTERNAL; {$L HERC}
  23. PROCEDURE PC3270DriverProc;  EXTERNAL; {$L PC3270}
  24. PROCEDURE IBM8514DriverProc; EXTERNAL; {$L IBM8514}
  25.  
  26. FUNCTION RegisterDriver(DrvNr, DrvMem: WORD; DrvPtr: POINTER): INTEGER;
  27. VAR
  28.   p: POINTER;
  29. BEGIN
  30.   CASE DrvNr OF
  31.     EGA, EGA64,
  32.     VGA, EGAMono: p := @EGAVGADriverProc;
  33.     ATT400:       p := @ATT400DriverProc;
  34.     CGA, MCGA:    p := @CGADriverProc;
  35.     HercMono:     p := @HercDriverProc;
  36.     PC3270:       p := @PC3270DriverProc;
  37.     IBM8514:      p := @IBM8514DriverProc;
  38.     ELSE          p := NIL;
  39.   END;
  40.   IF p <> NIL THEN
  41.   BEGIN
  42.     Move(Ptr(WORD(Ptr((Seg(p^)), $10)^),     (* Treiber kopieren ... *)
  43.              WORD(Ptr((Seg(p^)), Succ(Ofs(p^)))^))^, DrvPtr^, DrvMem);
  44.     RegisterDriver := RegisterBGIDriver(DrvPtr);     (* registrieren *)
  45.   END
  46.   ELSE RegisterDriver := -1;
  47. END;
  48.  
  49. END.
  50.  
  51. (*===================================================================*)