BEWARE: This is a legacy static copy!
This is an old old old archive. Please don't trust any information you find on this wiki. Looking for up-to-date information? Go to hsbxl.be or join our Matrix channel.
This is an old old old archive. Please don't trust any information you find on this wiki. Looking for up-to-date information? Go to hsbxl.be or join our Matrix channel.
FrHackNight023
From Hackerspace Brussels
|
- Due to lack of preparation, we will just collect documentation about the parallel port for a few future projects:
- Simple printer emulation, to study the timing and handshaking. Good moment to dust off our logic analyser.
- LCD interface
- Eprom programmer
- Relay board for The Gate
- Add your own :-)
What we have so far[edit]
- A bunch of links to documentation
- A breadboard with LEDs and a DIP switch
- Some code to make it work (Free Pascal FTW)
Talk is cheap. Show me the code !![edit]
program lpttest;
uses crt, go32, strings;
CONST ppdata=$378; ppstatus=ppdata+1; ppcontrol=ppdata+2; eppdata=ppdata+4;
var i: byte;
function bytetobits (bytetodump: byte): string[8];
const bits: ARRAY[0..1] of char='_�';
var j: byte;
begin
bytetobits[0]:=#8;
for j:=8 downto 1 do
begin
bytetobits[j]:=bits[(bytetodump and 1) mod 2];
bytetodump:=bytetodump shr 1;
end;
end;
begin
outportb (ppcontrol, (inportb (ppcontrol) or 32 ));
clrscr;
gotoxy (10,8); write ('statusport:'); gotoxy (40,8); write ('dataport:');
gotoxy (10,9); write ('76543210'); gotoxy (40,9); write ('76543210');
gotoxy (10,18); write ('controlport:'); gotoxy (40,18); write ('eppdata:');
gotoxy (10,19); write ('76543210'); gotoxy (40,19); write ('76543210');
{for i:=0 to 255 do
begin
gotoxy (6,10); write (i);
gotoxy (10,10);
write (bytetobits (i));
outportb (ppdata,i);
delay (100);
end;
}
repeat
i:=inportb (ppstatus);
gotoxy (3,10); write (' ',i,' ');
gotoxy (10,10);
write (bytetobits (i));
{ outportb (eppdata,0);}
i:=inportb (ppdata);
gotoxy (33,10); write (' ',i,' ');
gotoxy (40,10);
write (bytetobits (i));
i:=inportb (ppcontrol);
gotoxy (3,20); write (' ',i,' ');
gotoxy (10,20);
write (bytetobits (i));
i:=inportb (eppdata);
gotoxy (33,20); write (' ',i,' ');
gotoxy (40,20);
write (bytetobits (i));
delay (100);
until keypressed;
readkey;
{repeat
outportb (ppdata,$aa);
delay (200);
outportb (ppdata,$55);
delay (200 );
until keypressed;
}
{for i:=1 to 255 do
begin
outportb (ppdata,i);
delay (200);
end;
}
{
outportb (ppdata,$55);
delay (400);
outportb (ppcontrol, $00);
delay (400);
outportb (ppdata,$aa);
delay (400);
outportb (ppcontrol, $ff);
delay (400);
outportb (ppdata,$55);
}
end.
In pictures:
The goal:
also[edit]
and also (unrelated) : a first look at Gameduino FPGA/gameduino