binni@rhi.hi.is (Brynjolfur Thorsson) (02/08/89)
I am currently developing a measurement program for use in one of our laboratorys using Turbo Pascal 5.0. My computer is equipped with a Hercules card and I use entirely graphics mode. Now I am trying to incorporate a mouse in the program. Below is a listing of my sample program. Program MouseTst; Uses Dos,Graph; Var Regs:Registers; Function GraphInit:Boolean Var GD,GM:Integer; Begin GD := Detect; InitGraph(GD,GM,'c:\tp\drivers4); GraphInit:=GraphResult=GrOk; End; Begin If Not GraphInit Then Halt; With Regs Do Begin Ax:=0; Intr($33,Regs); If Ax <> $FFFF Then Halt; Ax:=1; Intr($33,Regs); ReadLn; Ax:=2; Intr($33,Regs); End; RestoreCrtMode; End. This Program works fine in Text Mode (If I skip GraphInit), but if I try it like it is above I get strange results. It is as though the mousedriver thinks that the screen is in text mode. I sholud also mention that I have tried it wiht different combinations of hardware, different computers, mouse drivers and different mouses. The above program works fine on a computer with an EGA monitor and driver. If someone understands my problem and knows what I am doing I would appreciate a mailed answer. Sincerely Brynjolfur Thorsson.
dmurdoch@watdcsu.waterloo.edu (D.J. Murdoch - Statistics) (02/10/89)
In article <744@krafla.rhi.hi.is> binni@rhi.hi.is (Brynjolfur Thorsson) writes: >I am currently developing a measurement program for use in one of our >laboratorys using Turbo Pascal 5.0. My computer is equipped with a >Hercules card and I use entirely graphics mode. Sorry for posting, but my mail hasn't been making it out lately. The Microsoft Mouse Programmer's Reference talks about exactly this situation, and you have to do something special. The trouble is that the driver can't determine whether a Herc card is in text mode or graphics mode, so you have to tell it explicitly. I don't have the manual handy, but the following code should work: gd = detect; initgraph(gd,gm,driver_path); { Change display to graphics mode } if gd = HercMono then mem[$40:$49] := 6; { Change "video mode" byte to 6 for page 0, 5 for page 1 } mReset; { Now reset the mouse. } Duncan Murdoch