I did this back in 1984 when I got a Toshiba portable with the new 3"
floppies, just to get files back and forth.
Later somebody made some commercial products (pdq, lablink, ...)
In short I did:
Server end is a program that reads requeste from other pc, and reads or
writes disk sectors.
Client side has a device driver, disk type, so I now has a D: on that
computer.
I took the memdisk example from the tech books, and rewrote the read and
write sectors to go to other computer.
It works very nice. Only trashed a few disks when doing small
programming mistakes ;-)
Now the interface between the pc's, which first was tested for function
of rx/tx, like Send512Bytes(SomeData)
I had the old parallelport, so I had 5 bits and used 4 for data and 1
for strobe.
I did not use interrupts, as the server just sat there waiting for the
other end to start flipping the strobe bit.
Procedure SendHalfByte(Strobe,B: Byte);
begin
Port():= Strobe+ (B and $0F);
SleepShort;
Port():= (1 xor Strobe)+ (B and $0F);
SleepShort;
end;
Procedure Send1Byte(B: Byte);
begin
SendHalfByte($00,B);
SendHalfByte($80,B shr 4);
end;
The receiver end will do
Function Read1Byte: Byte;
var X: Byte;
begin
repeat until StrobeBit0;
X:=Port() and $0F;
repeat until StrobeBit=0;
Result:=X + (Port() shl 4);
end;
Use Send1Byte and Read1Byte, and you have data. Make some framing like
DataToSend:= LF + MyData + CR
and it is easy to check for correct reception.
I managed to put some 50KBytes between two PC's in 198x, at 8MHz I
guess.
PS: All coding above is out of my head, and was done in assembler back
then.
--
Christen Fihl
OZ1AAB
http://HSPascal.Fihl.net/