VOGONS


First post, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

New today: the DaynaPORT SCSI/Link Ethernet packet driver for DOS, rewritten in x86 assembly!

https://github.com/mbbrutman/daynaport-dos-pa … -driver-asm.git

In the land of DOS nobody in their right mind ever woke up and wanted to run an Ethernet adapter on their SCSI bus; that was something Mac people often had to do because of their limited expansion capabilities. But hey, now it's possible to do this to yourself under DOS!

Requirements:

  • BlueSCSI or ZuluSCSI with the WiFi module, or a real DaynaPORT SCSI/Link
  • A SCSI card with an ASPI layer

This is a rewrite of an existing packet driver which was written in C. That packet driver was a great "proof of concept", but it was a memory hog and it used some terrible coding practices. This version requires much less memory (6.5KB compared to 29KB), is faster, and it has more features. BlueSCSI and ZuluSCSI users with WiFi have DaynaPORT emulation already - just load an ASPI driver & this packet driver and you can fulfill your lifelong ambition to do networking over SCSI!

Bonus - It works in Windows 3 if you use WINPKT with it.

Reply 1 of 5, by weedeewee

User metadata
Rank l33t
Rank
l33t

Wow, Thanks ! Always wanted to try network over scsi but lacking the adapter, got to looking at rascsi but only driver for X68k computer afaiR.

Right to repair is fundamental. You own it, you're allowed to fix it.
How To Ask Questions The Smart Way
Do not ask Why !
https://www.vogonswiki.com/index.php/Serial_port

Reply 3 of 5, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

With mTCP it's reasonable. (Use the "-i" option to tell the packet driver to hook the DOS Idle interrupt.)

Test: 8MB data transfer using TCP/IP, no file I/O:

  • Pentium 133 & Adaptec 2940: Send at 1120KB/sec, Receive at 970KB/sec
  • 486-66 & TMC-845: Send at 208KB/sec, Receive at 182KB/sec

That's a big difference, but the TMC-845 is a low end card - 8 bit ISA bus and a 5MB/sec SCSI bus speed. Moving up to an Adaptec 1542 would make that much faster.

WATTCP programs can be altered to run faster, but are slower by default. I didn't cheat to make mTCP faster; mTCP has always called the DOS Idle interrupt (0x28) and the MS-DOS multiplex interrupt for "Release Timeslice" interrupt to play nice with power saving TSRs and virtual machines. Because of the nature of SCSI this packet driver has to poll the hardware, and it does that under the BIOS hardware timer interrupt. But as an option ("-i", mentioned above) it can also hook the DOS Idle interrupt and poll under that too which works out great - mTCP signals it is idle and the TSR takes that opportunity to poll the hardware. Other networking code should have been doing that all along, but most of them are not actively maintained.)

mTCP Netdrive has the same problem - it's in DOS because it is a device driver, so it can't call the DOS Idle handler. I'll figure out some way to speed it up.

Reply 5 of 5, by mbbrutman

User metadata
Rank Oldbie
Rank
Oldbie

Thanks, but also not really a fair comparison. Macs have real operating systems. : )