-
-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tape support #480
Comments
I'd be quite interested in that to try out Amiga UNIX on my A3000 too actually |
I would like to register my interest in tape emulation as well. I am currently looking into what it would take on the scsi2sd as well to emulate the 3M 40m tape drive which has the neat ability to also be a full blockdevice with read/write any block on the formatted tape. So the hard part is essentially done there. The easier but still alluding me part is handling EOT emulation and tape direction changes. Would love to use this in the Apple Tape 40SC and rig up proper lights and simulate the tape action. Other tape drive types would be interesting as well through the SCSI QIC types. I have a few SUN tapes in the archive as well. Then there is the whole early DAT/ADAT and the DDS variants. Some of the older software requires the vendor check etc to validate before use so setting that is the first part. |
I'm not that good at coding. It was just a suggestion/wishlist type of thing. It is probably not worth the effort for the small audience. It looks like @ppuskari may have a better chance than me. |
@Pacjunk This is a ticket (like some others we have), which make sense and is jiustified, but is out of scope because of the required resources. Only somebody who has enough time to spare, a tape drive hardware, a vintage computer with the required drivers and good C++ and SCSI knowledge can resolve it. |
I'd like to give it a try. According to http://www.bitsavers.org/components/ncr_symbios/scsi/SCSI-2_Standard_1994.pdf
Because Also ZuluSCSI implemented it https://github.com/ZuluSCSI/ZuluSCSI-firmware/blob/main/src/ZuluSCSI_tape.cpp ;-) |
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/ TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
Implements the mandatory and a few optional commands for tandberd see https://bitsavers.org/pdf/tandbergData/TDC4100/6047-1_TDC-4100_SCSI-2_Interface_Functional_Specification_Aug1991.pdf for more info. Fixed PiSCSI#480
@bog-dan-ro In the meantime I have added a branch issue_93 with initial tape drive support to SCSI2Pi. This implementation is completely new, i.e. it is not based on any existing code. @akuker @rdmark I would like to avoid incompatibilities between a potential future PiSCSI streamer implementation and the SCSI2Pi implementation, which would at least affect users of the SCSI Control app. It would be great if we could agree on these conventions:
Please provide feedback on these conventions. In order to not only support files that tar has written to a filesystem, but also more elaborate tools that use filemarks, SCSI2Pi switches to a tar file compatibility mode when the file extension is .tar. Any other extension results in the full-featured mode with filemarks support. |
@uweseimet Supporting tar and tap file endings sounds reasonable to me. Right now the PR against piscsi uses I'm in the middle of a major life event so my own ability to work on the piscsi project is severely limited (access to hardware, living situation, priorities etc.) This is one reason activities in this project has stalled. |
@rdmark Thank you for your feedback. @bog-dan-ro Can you please comment on the device type? I'd prefer SCTP, because BlueSCSI uses TP (and not ST), and the .tap extension is used for files, and not .st or something like that. This is why I think SCTP is more consistent. @bog-dan-ro I just noticed that you have not added any tape device to the .proto file? Without protobuf support clients like scsictl and the SCSI Control app cannot support tape devices. I guess that the web UI would also suffer from your device not being supported in the protobuf interface. |
@rdmark @uweseimet it doesn't really matter what name are we using I choose Regarding the
Where is that file?
IMHO the best option is to have only one implementation. |
@bog-dan-ro You need more than one extension, because you cannot use regular .tar files as image files when non-block objects like filemarks and end-of-data are supported. .tar files do not contain/support these, so you need an additional file type. You have chosen .tap, and I am fine with this. I don't think that .cpio should be used, because the non-tar format is proprietary. This is because of the non-block objects, where the representation in the image file may differ depending on the device implementation, just like the phyiscal formats used by different streamers differ.
Let's decide on SCTP with enum value 10, and extensions .tar and .tap (the latter for files with non-block objects). This way PiSCSI and SCSI2Pi will be compatible (at least for tar files) even in case the implementations should differ. The extensions are not really that important, but the protobuf definitions are, because they describe the external interface. |
@uweseimet I'm okay with |
@bog-dan-ro Great, thank you! |
@bog-dan-ro By the way, when backporting I recommend using grep to find all occurrences of sctp, otherwise you might miss something else besides the protobuf-related changes. |
@bog-dan-ro Please see my latest comment in uweseimet/scsi2pi#93, regarding the fact that the .tap extension is already a well-defined file format, which is not compatible with what SCSI2Pi and (maybe) PiSCSI is using. |
@uweseimet wait a minute, I thought that we just see |
@bog-dan-ro Yes, initially I also thought that we would use .tap for raw images with our own (potentially proprietary) format. But .tap appears to be used for a well-defined format already, i.e. if we support .tap the files with this extension would have to be compatible with this format. |
I've seen lots of emulators use ".tap" files (e.g. early home computer cassettes), not just simh. I'm sure they are in no way compatible. Since the data structure is up to the operating system, I assume the only unique thing about simh is the tape mark used? |
@Pacjunk Without knowing details on the simh format it is impossible to tell which features it supports. But using .tap as an extension for non-simh files is not such a good idea. You tried to use simh .tap files with SCSI2Pi, because you thought .tap support in SCSI2Pi means support for simh files, didn't you? At least that is what can easily happen if you use well-defined extensions in the wrong context: You download a .tap file (simh) and expect it to work. |
No, of course I didn't expect that! I didn't know anything about tape formats and assumed a raw stream of data might be readable. I certainly didn't think or expect that SCSI2Pi supported simh. I'm not really expecting virtual tapes to work on my system anyway - I was just trying to help you out with testing. On a positive note, I managed to label a tape with your code. Out of interest, the spec is here: http://simh.trailing-edge.com/docs/simh_magtape.pdf |
@Pacjunk Sorry for the misunderstanding: my impression was that you expected simh .tap to be the same as SCSI2Pi .tap. Other users might think so, and using a different default extension will prevent that. In /etc/s2p.conf you can configure additional extensions any time and make .tap an additional default extension. Thank you for the link. I will have a look at it later, but for the present I would like to concentrate on the native tape drive support. This would also be usable with platforms for which there is no simh/tap support. |
Info
Describe the issue
Has anyone thought about SCSI tape support? I know this is probably not a thing in the Mac world, but it is a big thing in the workstation space, as they were often used for software distribution. There are websites where people have archived software distribution tapes (in the .tap format) and these can be loaded in to simulators.
I was thinking a good place to look for inspiration would be the SIMH project, as they have a defined tape file format and the source code for a SCSI tape driver available. Running the VAX simulator in SIMH, I can read and create "tapes" without a problem. It might be nice to do this on real hardware.
Thanks,
The text was updated successfully, but these errors were encountered: