NSCSI is basically always a rewrite.

I assume you know about the NSCSI.txt, nicely marked up here: https://docs.mamedev.org/techspecs/nscsi.html

But it helps to understand the underlying SCSI state machine first. There's 3 state bits, C/D (Control or Data), I/O (transfer direction: host to device or vice versa), and MSG (bus contains message or command/data) and 8 states (called "bus phases" in SCSI), and a very simple set of rules as to what states can go in what order.

http://mirror.informatimago.com/next/developer.apple.com/documentation/mac/Devices/Devices-120.html has a pretty clear description of the 8 bus phases, a diagram showing what state transitions are valid (not many), and a description of how the handshaking works for selection and the like.