home *** CD-ROM | disk | FTP | other *** search
- {$A+,B-,D-,E-,F+,G-,I-,L-,N-,O+,P-,Q-,R-,S-,T-,V-,X-}
- (*===================================================================*)
- (* BGIDRV.PAS *)
- (* BGI-Treiber im Overlay *)
- (* Overlay-Lademodul mit den Treibern *)
- (*===================================================================*)
-
- UNIT BGIDrv;
-
- INTERFACE
-
- USES
- Graph {RegisterBGIDriver};
-
- FUNCTION RegisterDriver(DrvNr, DrvMem: WORD; DrvPtr: POINTER): INTEGER;
-
- IMPLEMENTATION
-
- PROCEDURE EGAVGADriverProc; EXTERNAL; {$L EGAVGA}
- PROCEDURE ATT400DriverProc; EXTERNAL; {$L ATT}
- PROCEDURE CGADriverProc; EXTERNAL; {$L CGA}
- PROCEDURE HercDriverProc; EXTERNAL; {$L HERC}
- PROCEDURE PC3270DriverProc; EXTERNAL; {$L PC3270}
- PROCEDURE IBM8514DriverProc; EXTERNAL; {$L IBM8514}
-
- FUNCTION RegisterDriver(DrvNr, DrvMem: WORD; DrvPtr: POINTER): INTEGER;
- VAR
- p: POINTER;
- BEGIN
- CASE DrvNr OF
- EGA, EGA64,
- VGA, EGAMono: p := @EGAVGADriverProc;
- ATT400: p := @ATT400DriverProc;
- CGA, MCGA: p := @CGADriverProc;
- HercMono: p := @HercDriverProc;
- PC3270: p := @PC3270DriverProc;
- IBM8514: p := @IBM8514DriverProc;
- ELSE p := NIL;
- END;
- IF p <> NIL THEN
- BEGIN
- Move(Ptr(WORD(Ptr((Seg(p^)), $10)^), (* Treiber kopieren ... *)
- WORD(Ptr((Seg(p^)), Succ(Ofs(p^)))^))^, DrvPtr^, DrvMem);
- RegisterDriver := RegisterBGIDriver(DrvPtr); (* registrieren *)
- END
- ELSE RegisterDriver := -1;
- END;
-
- END.
-
- (*===================================================================*)