programmerin g til et uortodokst IO kort
Hvordan koder man mod et IO kort i Visual Basic ?Jeg har et uortodokst IO kort (parallel kommunikation, bygget af en ingeniør til styring af en ekstern enhed, når man trykkede på en pedal på den eksterne enhed)
Det bruger register 300,301,302 og 303.
(******************* initier_port **********************)
(* Oppsett av portene ved start: *)
(* PortA = utgang (som er verdi=1). PortB = inngang (som er verdi=0). *)
(***********************************************************************)
(*----------------!verdi!port!port!port!port!port!port!port!port!-------*)
(* ! port nr. ! ! 8 ! 7 ! 6 ! 5 ! 4 ! 3 ! 2 ! 1 ! *)
(*-----!----------------------------------------------------------------*)
(* ! register ! ! ! ! ! ! ! ! ! ! *)
(* ! $301 ! $FF ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 !=av *)
(* A !----------------------------------------------------------------*)
(* ! kontroll ! ! ! ! ! ! ! ! ! !=bare *)
(* ! $303 $FF ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 !utgang *)
(*-----!----------------------------------------------------------------*)
(*----------------!verdi!port!port!port!port!port!port!port!port!-------*)
(* ! port nr. ! ! 16 ! 15 ! 14 ! 13 ! 12 ! 11 ! 10 ! 9 ! *)
(*-----!----------------------------------------------------------------*)
(* ! register ! ! ! ! ! ! ! ! ! ! *)
(* ! $300 ! $FF ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 ! 1 !=av *)
(* B !----------------------------------------------------------------*)
(* ! kontroll ! ! ! ! ! ! ! ! ! !=bare *)
(* ! $302 $00 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 ! 0 !inngang*)
(*-----!----------------------------------------------------------------*)
Det har i fordums dage siddet i en win311 maskine, og Pascal koden var i stil med:
function pedal:byte;
var pedaladr : word;
begin
port(.$303.):=$00;
pedaladr:=(6 mod 64) or $c0;
port(.$300.):=pedaladr;
port(.$300.):=pedaladr and $7F;
pedal:=PORT(.$301.);
port(.$300.):=pedaladr;
port(.$300.):=$FF;
end;
Nu har jeg flyttet det over i en (anden) gammel maskine, der kører win 98 (det skal også virke på win 2000) og skal have koden skrevet om i Visual Basic.
Tiger_webdesign har i spørgsmålet http://www.eksperten.dk/spm/463854 skrevet:
"... Der ligger en dll der hedder IO.dll den kan tricket... " på www.geekhideout.com
Jeg har kigget lidt på den og mangler svar på spørgsmålet om, hvordan jeg detekterer portens nummer på maskinen, -
altså hvordan finder jeg f.eks. værdien til Port i nedenstående kald:
Private Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer)
Dernæst er jeg usikker på, om IO.DLL er til en 'standard' parallel port (hvad det så end er ?..) og om den derfor kan bruges til mit formål ??
Gode råd modtages med tak og points
mvh Anne
