dimanche 9 septembre 2007

Linux et les E/S en pascal

Les programmes DOS que je souhaite porter sous linux sont écrit avec turbo-pascal. Donc voici la version pascal de l'article précédent :


program portout;

Uses ports;

function ioperm(from: Cardinal; num: Cardinal; turn_on: Integer): Integer; cdecl; external 'libc';

const
BASEPORT=$378; //lpt1

begin
// on demande l'accès des adresses BASEPORT à BASEPORT+3
if (ioperm(BASEPORT, 3, 1))<>0 then
Halt(1);

// Initialisation de tous les signaux de données (D0-D7) à l'état bas (0)
port[BASEPORT] := 0;

// on libère l'accès des adresses BASEPORT à BASEPORT+3
if (ioperm(BASEPORT, 3, 0))<>0 then
Halt(1);

end.


Le compilateur utilisé est freepascal. Donc un simple fpc portout.pas suffit à le compiler.