Skip to content
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

Re-add SASI Functionality #809

Open
akuker opened this issue Aug 26, 2022 · 13 comments
Open

Re-add SASI Functionality #809

akuker opened this issue Aug 26, 2022 · 13 comments
Assignees
Labels
compatibility Compatibility with particular computing platforms major effort New feature/change with significant implementation effort

Comments

@akuker
Copy link
Member

akuker commented Aug 26, 2022

Info

The team has removed SASI support from the current PiSCSI code. The current design/architecture makes it very difficult to make changes and has substantial maintainability impacts.

This issue is to gauge interest in SASI support.

How can you help?

If you are interested in having SASI support re-added into PiSCSI, please leave a comment with some information so we can understand your use case. Some info that I would like to collect:

  • What target hardware platform are you using (including add-on card/mod if applicable)?
  • What software version are you using?
  • What features/drive types do you typically use? (Hard disk, CD-ROM, Magneto Optical, etc)

Feel free to add duplicates to the comments chain. Or, if you use multiple systems, feel free to add them to the list

How else can you help?

If you are in the continental US and have an extra SASI host that you are willing to part with for a reasonable price, feel free to reach out to me on discord.

@rdmark
Copy link
Member

rdmark commented Aug 27, 2022

@philpem @drdpj @wohali Tagging you for feedback, since you have raised your interest in SASI support in the past. It would be very helpful if you helped us understand your hardware and use cases here!

@uweseimet uweseimet added major effort New feature/change with significant implementation effort and removed enhancement New feature or request labels Aug 27, 2022
@uweseimet
Copy link
Contributor

uweseimet commented Aug 30, 2022

If somebody wants to re-add SASI support, this is how it should be done:

  • The scsidev_ctrl.cpp code from release 22.08.01 can be used as reference for a new SasiController class. Remember, this code is outdated. The current ScsiController class provides guidance on how a controller compaible with the current codebase should look like.
  • The new SasiController class has to be a subclass of AbstractController, just like ScsiController.
  • If it turns out that AbstractController is too SCSI-specific, the affected methods should be moved to the ScsiController. AbstractController should just contain everything all controller implementations have in common.
  • A ControllerType enum and a ControllerFactory class (similar to the DeviceFactory) that instantiates the required controller based on its type might be added. ControllerManager::CreateScsiController() belongs into this factory, together with a new CreateSasiController() method and potentially code that returns the number of LUNs supported (32 for SCSI, but as far as I can tell only 2 for SASI).
  • The piscsi process (piscsi.cpp, piscsi_executor.cpp and related files in the piscsi folder) shall only know what's absolutely required about specific controller implementations, most likely only the new factory. AbstractController has be used whenever possible.
  • Except for changes in piscsi (SCSI/SASI controller selection) and potentially in the AbstractController, besides the new SasiController and ControllerFactory class no other changes should be required.
  • Unit tests have to be added, at least on the same level as the exiting tests for the SCSI controller.
  • Ensure that there are no new SonarCloud issues.

@rdmark rdmark added the compatibility Compatibility with particular computing platforms label Sep 2, 2022
@wohali
Copy link

wohali commented Sep 6, 2022

Here are my direct use cases:

My understanding is that GIMONS' original RaSCSI was for the X68k. I understand he isn't involved in the project anymore (no need to rehash this). X68k is still relevant to me.

sasidump has been useful in rescuing old SASI drives, including those on e.g. an old Plessey PDP-11 SASI controller that is largely undocumented I have here. It would be nice to have an emulator that supported this controller.

Finally I have several Sony/Panasonic/Pinnacle Micro 650MB MO drives, which are SASI and sometimes lived behind a (fairly buggy) SASI-SCSI bridge. Quirks of these drives from oddball controllers mean they often don't emulate right purely on SCSI buses, and in one instance I have one connected directly to a SASI controller. Would be good to replace it, it's an increasingly unreliable mechanism.

I suspect others may have a need for SASI (ACSI) support for Atari machines.

@wohali
Copy link

wohali commented Sep 6, 2022

Adding a link to the Xebec controller that was often paired with the Plessey SASI PDP-11 controller I have: https://deramp.com/swtpc.com/SASI/XEBEC.htm

@uweseimet
Copy link
Contributor

@wohali Regarding Ataris, what you need is SCSI support, for both ACSI and SCSI. I am using RaSCSI with a MegaSTE (internal host adapter), a TT and a Falcon.

@hlide
Copy link

hlide commented Nov 12, 2022

I'm owner of two X68000 PRO and they are SASI. I see the removal of SASI has a very bad move since you deprive us of the possibility to use your version of RaSCSI (which is open-source) for those X68000s with SASI (that is, models under XVI).

@akuker
Copy link
Member Author

akuker commented Nov 12, 2022

I'm owner of two X68000 PRO and they are SASI.

Are you using this fork of the RaSCSI software?

I see the removal of SASI has a very bad move since you deprive us of the possibility to use your version of RaSCSI (which is open-source) for those X68000s with SASI (that is, models under XVI).

The previous release of RaSCSI still supports SASI, and is available for download. There are archives of GIMONS's original code available from multiple sources (including archive.org).

None of the developers have access to a X68000 (yet). SASI functionality was broken for several releases and no one noticed because we don't have a way to test it.

The plan is to re-add this capability in the future. If you have a X68000 that is available for sale at a low price, or if you are willing to volunteer time to test/troubleshoot/support the SASI functionality, it would help us get this functionality re-added sooner.

Please keep in mind that we are all volunteers and doing our best. Please take this ticket as proof that we have not permanently removed this functionality and have intentions of adding it back in.

@rdmark
Copy link
Member

rdmark commented Nov 12, 2022

sasidump has been useful in rescuing old SASI drives, including those on e.g. an old Plessey PDP-11 SASI controller that is largely undocumented I have here. It would be nice to have an emulator that supported this controller.

@wohali When did you last use sasidump and did it work properly then? The reason for deprecating the code is that it hadn't been tested for years. If you can confirm that sasidump in the Aug 2022 release works properly, we can look into adding it back.

The sasidump tool is not coupled with SASI support in RaSCSI proper, AFAIK.

@wohali
Copy link

wohali commented Nov 12, 2022

It was prior to Aug 2022. I can attempt again in December - booked out the rest of this month, I'm afraid.

@hlide
Copy link

hlide commented Nov 12, 2022

None of the developers have access to a X68000 (yet). SASI functionality was broken for several releases and no one noticed because we don't have a way to test it.

Fine, I understand the point as I wasn't aware of that issue. I was glad to see there is an attempt to recreate RaSCSI in a true open-source form. What I fear is "This issue is to gauge interest in SASI support" means "No SASI support" at the end. That occurs too often. SASI may sound like a niche because I think it mostly touches X68000 folks (a lot of them being Japanese) and I won't expect for them to advocate their concerns here, hence my reaction.

The plan is to re-add this capability in the future. If you have a X68000 that is available for sale at a low price, or if you are willing to volunteer time to test/troubleshoot/support the SASI functionality, it would help us get this functionality re-added sooner.

  • I have no X68000 available for sale but I can certainly test on my working X68000 PRO (SASI and maybe SCSI with an extension card). I also have a working X68000 Compact XVI (SCSI but the external connector is non standard).
  • I have an RaSCSI + PI4 that I didn't prepare due to crazy time, crazy work, etc. because I think I miss some components: µSD and fitting SASI/SCSI cables to complete it. I also have an SCSI card (unknown state though) slotted in the PRO. If I have clear instructions of what I need to make it work with your software, I can certainly test it. My main obstacle is, I think, the cables I need to get as they are not really standard.
  • I'm a C++ developer on PC (mostly Windows, Linux marginally). While I coded on Arduino, I never coded for Raspberry.

EDIT: I also think I made the wrong choice to take that kind of connector:
IMG_20221112_204443

@akuker
Copy link
Member Author

akuker commented Sep 23, 2023

What I fear is "This issue is to gauge interest in SASI support" means "No SASI support" at the end.

the-office-dwight-schrute-minh-gpopp

We may be slow, but we haven't forgotten the x68000 community! (See previous comment about volunteers :) )

Last week I purchased an original Sharp x68000 and am trying to "learn" it. (If I knew Japanese it might help)

So far, I'm able to boot the device using a Human 68k version 3.02 image. It seems that basic communication is working with the regular SCSI functionality in PiSCSI. I haven't been able to launch any games from the HD image, but that could be user error, or I just might not have enough memory. (This is a very basic, original machine - I think with only 1MB RAM).

This ticket hasn't died, it has just been a slow process for me to track down a x68000 to tinker with.

@jjlopezg
Copy link

Hello, I have recently bought an x68000, I would like to be able to buy the pcb to assemble and carry out tests until it works correctly. Could you tell me where I can buy the PCB alone. I have pytho experience to help. thank you

@rdmark
Copy link
Member

rdmark commented Feb 15, 2024

@jjlopezg Everything you need to know is written on the landing page of www.piscsi.com

You either buy a kit from one of the resellers, or produce your own PCBs via a PCB manufacturer.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
compatibility Compatibility with particular computing platforms major effort New feature/change with significant implementation effort
Projects
None yet
Development

No branches or pull requests

6 participants