WaveyDipole,
I agree with your analysis that a fork of your AR488 code to support a GPIB Device with GPIB commands might be advisable, my software skills are quite rusty and looking at your code - I didn't think I had the skills to do the modifications.
In terms of GPIB bus analysis - I don't think that is necessary, as the Tektronix 4924 Service Manual has very detailed descriptions of the controller to tape drive commands including GPIB cycle by cycle transactions in Appendix B starting on pdf page 192 through page 200:
http://bitsavers.org/pdf/tektronix/405x/4924/070-2131-00_Tektronix_4924_Digital_Cartridge_Tape_Drive_Service_Manual_Feb1982.pdf The 4924 Tape drive was introduced before the 4050 series computers, so there are several of the commands not used by the 4050 computers. I captured a list of those commands in my "code" list in post #512 in this thread.
As for the Tektronix-GPIB-Download project, this project provides one device function - screen print graphics from a Tektronix DSO are converted to an SVG graphics file and saved on a SD Flash card. The DSO (and all the later Tektronix GPIB products) does not use secondary addressing, in fact no commands at all - the Arduino just waits for a GPIB SRQ sent from the DSO when you press the print button on the DSO.
Then I found your project, which supports command parsing (although the commands are from the PC over USB to serial on the Arduino).
I would really appreciate your help as I am not experienced in writing c-code, my coding was in 8-bit assembler and BASIC back in the day.
I'm not familiar with MQTT, but I'm not sure it would apply to this use case. The Tektronix 4050 computers provided BASIC in ROM which included some of the BASIC commands mapped into GPIB secondary addressing - such as tape reads and writes. Since I can't change those controller commands, and indeed want to use them as they are already built into the controller and directly support the 4924 tape drive and all the BASIC programs I have captured and posted use those commands - I think it restricts the device to only need to parse and support those commands.
In addition - I don't think Ethernet or WiFi are needed by the tape emulator device, as I just plan to transfer the programs I have recovered directly to the flash drive from my PC - organized into FAT folders for each tape. The only 'new' command I would want the tape emulator to support is a change directory command - that I would add to the BASIC Menu program that would allow the user to select a particular 'tape' and file.
That "CD" command in my list of supported commands was designed for the Tektronix 4907 8-inch floppy drive system which included hierarchical file storage. I don't need to support any of the other 4907 commands - and I plan to use the PRINT@5,9: BASIC command to send the "CD" to the tape emulator with the file path as a string variable as the only 'new' command in the set of commands needed for interacting with the tape files.
Since this 'fork' of your AR488 may not be very useful to the other folks, maybe you can start a new thread?
I stand ready to help!