On Tue, Nov 16, 2021 at 6:09 PM Christian Gauger-Cosgrove <captainkirk...@gmail.com> wrote: > On Tue, 16 Nov 2021 at 16:27, Ethan Dicks via cctalk > <cctalk@classiccmp.org> wrote: > ... I have experience with IEEE-488 from my many hours > > spent with Commodore PETs. > > > Hmm now that I'm reminded that a large proportion of Commodore's > "stuff" was IEEE 488 or a serialized version thereof.
Yep. All PETs have true IEEE-488, albeit a software-driven implementation so it's not high-speed (few kb/sec). Starting with the VIC-20, they used that serialized version, because Jack Tramiel was tired of the cost of cables and connectors. > I kind of want to see now if an IBV11 and Commodore 1541 can be abused > into cooperating. I think it could be done. The IBV11 can certainly keep up with the 6502 in the drive that's banging out the IEEE-488 protocol. > (There'd need to be a small "box of stuff" to turn the real 488 bus to CBM's > serial thing.) You would need a box like that (they do exist) for talking to a later device like the abundant 1541 floppy drive, but you could just plug the cable right into an older drive for the PET, a 4040 dual-double-density 5.25 drive, or an 8050/8250 drive (higher density, more tracks), or even a D9060/D9090 hard drive (5MB or 7.5MB, internally has an MFM drive and a SASI-ST506 bridge). The "DOS" is in ROM in the disk drives, including everything about files and filesystem layout. You wouldn't have to port that to the PDP-11. You talk to all the drives with the usual IEEE protocol of secondary addresses and command strings. On the PET side, it's LOAD/SAVE, OPEN/CLOSE, and PRINT#/INPUT# (later ROMs added a command layer for "disk commands" but they are just wrappers around the primitive calls). The directory is a special file named "$"; to get a directory, you open that file and read the contents. The drive sends the directory not as plain text, but as a loadable BASIC program so you do have to convert "line numbers" (file block sizes) to ASCII, and you have to convert all the text contents from PETSCII to ASCII. All doable in a couple of pages of code. There are a number of books for how the Commodore side works. You can even use the later serialized drive books to understand the higher protocol. At a character level, it's identical. In terms of using it as a more generic device, there are block-level primitive commands (U1 and U2 for read and write-block) but the physical block size is 256 bytes, even on the D9060/D9090 hard drives. I'm sure it's possible to write a native driver for RT-11, bypassing the Commodore filesystem, but it sure would be slow. -ethan