How to sync Serial.read with digitalRead

I'm attempting to use an Uno to interface with an Atari 800XL and 1050 floppy drive. I know there are SIO libraries I could use but this is more of a learning opportunity than anything. The protocol is similar to regular serial communication but uses three lines rather than two: Tx, Rx, and Command. The command line instructs the attached device to do something and data for reading and writing to the device uses the other two lines. I also understand that Serial.read() is asynchronous and independent of the loop() speed, which as far as I know runs as fast as possible.

Right now I have the Uno in the middle of the computer->floppy drive connection and all I need to do at this point is capture the communication and output it to the serial terminal. Since I have only one dedicated serial Rx line I'd have to use digitalRead() for the other two, but that would cause synchronization issues, unless I could somehow delay the loop to the same baud rate. Or would I be able to digitalRead all three lines simultaneously and use a delay to match the communication rate?

I'm open for ideas!

Do you have a formal description of the protocol?

TheMemberFormerlyKnownAsAWOL:
Do you have a formal description of the protocol?

Right here.

Basically the computer first sends 5 bytes over the command line: the device number, device command (one byte each), two bytes of auxiliary data (depends on the device command), and a checksum byte. The computer then waits for the device to reply on Rx, and depending on whether you're sending or receiving data either the Rx or Tx lines are used to send one chunk at a time. I think these are 128 byte chunks, plus begin and end confirmation bytes. After the chunk transmission the computer will send another 5 byte command and repeats until the entire operation is completed.