English fork of the Japanese RaSCSI project. RaSCSI allows a Raspberry Pi to function as emulated SCSI devices (hard disk, CD-ROM, and others) for vintage SCSI-based computers and devices.
Go to file
Uwe Seimet 5622694701
Host services (SCHS) with realtime clock and shutdown, improved device inheritance (#647)
* Initial RTC skeleton

* Added device info

* Added TEST UNIT READY

* Fixed command dispatcher

* First untested naive implementation

* Comment update

* Code cleanup

* More code cleanup

* Updated date/time encoding

* Updated versioning

* Use standard RaSCSI INQUIRY version for SCRT device

* Manpage update

* Added shortcut for SCRT type

* Added support for rtc "filename"

* RTC supports LUNs > 0

* Fixed LUN count

* Renaming

* Renaming

* Manpage update

* Initial naive implementation

* SCRA is removable

* Updated command list

* Added controller field

* Shut down works, bus free phase is not yet entered

* Clear caches on shutdown

* Expose BusFree()

* Moved code

* Logging update

* Moved code

* Moved code

* Added comment

* Logging update

* Code cleanup

* Service device is not removable anymore (was only needed for testing)

* Manpage update

* Added comment

* Comment update

* Version update

* Renaming

* Comment update

* Comment update

* Renaming

* Fixed typo

* Added convenience method

* Property handling optimization

* Code cleanup

* Code cleanup

* Code cleanup, introduced base class

* Added TODO

* More code cleanup

* Removed unnecessary assignments

* Moved code

* Removed forward declaration

* Added base class

* INclude cleanup

* Moved scsi_command enum

* Fixed warnings

* Addressing circular dependencies

* Removed duplicate enum

* include file cleanup

* Include cleanup

* Reduced dependencies to Disk class (replaced by Device), fixed TODO

* Include cleanup

* PrimaryDevice implements ReportLuns

* Inheritance update

* Removed duplicate code

* Moved code to base class

* Cleanup

* Removed duplicate field

* Updated command dispatchign

* Comment update

* Moved code

* Updated method visibilities

* Moved MODE SENSE/MODE SELECT base code
2022-02-10 12:54:48 -06:00
.github Disable the rpi build for develop and master (#330) 2021-10-14 13:20:57 -07:00
doc Host services (SCHS) with realtime clock and shutdown, improved device inheritance (#647) 2022-02-10 12:54:48 -06:00
docs Merge Hw 2p4 to develop (#109) 2021-06-08 19:06:29 -05:00
hw Delete old, broken RaSCSI revision (#616) 2022-01-16 21:42:42 -08:00
python Create a mapping of human-readable and internationalized device names. Use this in the image file management UI instead of the internal acronyms. Also remove the hard-coded helptext for device types. (#655) 2022-02-07 18:48:55 -06:00
src Host services (SCHS) with realtime clock and shutdown, improved device inheritance (#647) 2022-02-10 12:54:48 -06:00
test/robot Create new test cases for checking that the user can specify the TCP Port number (#154) 2021-07-27 18:40:00 -05:00
_config.yml Set theme jekyll-theme-midnight 2020-07-04 20:39:04 -05:00
.gitignore restructuring towards python client library #455 (#613) 2022-01-21 15:08:29 -08:00
easyinstall.sh Fix typo in the Netatalk install script (#643) 2022-02-06 10:30:06 +01:00
LICENSE Updated copyrights and versions 2021-10-29 21:55:24 -05:00
lido-driver.img improved HD creator with partioning and formatting Drive with HFS. (#51) 2020-11-07 18:10:09 -06:00
README.md Support ICD (Atari ACSI) command semantics (#640) 2022-02-04 19:45:10 -06:00

What is RaSCSI?

RaSCSI is a virtual SCSI device emulator that runs on a Raspberry Pi. It runs in userspace, and can emulate several SCSI devices at one time. There is a control interface to attach / detach drives during runtime, as well as insert and eject removable media. This project is aimed at users of vintage Macintosh and Atari computers and more (see compatibility list) from the 1980's and 1990's.

Please check out the full story with much more detail on the wiki!

How do I contribute?

RaSCSI is using the Gitflow Workflow. A quick overview:

  • The master branch should always reflect the contents of the last stable release
  • The develop branch should contain the latest tested & approved updates. Pull requests should be used to merge changes into develop.
  • The rest of the feature branches are for developing new features
  • A tag will be created for each "release". The releases will be named . (for the first release of the month). Hot fixes, if necessary, will be released as ... For example, the first release in January 2021 will be release "21.01". If a hot-fix is needed for this release, the first hotfix will be "21.01.1".

Typically, releases will only be planned every few months.

I sell on Tindie

Github Sponsors

Thank you to all of the Github sponsors who support the development community!

Special thank you to the Gold level sponsors!

Special thank you to the Silver level sponsors!