-
-
Notifications
You must be signed in to change notification settings - Fork 82
Sharp X68000
RaSCSI was originally developed using the SCSI controller code of the X68000 emulator XM6 TypeG, and tested on a X68000 PRO with internal SASI and a genuine SCSI board, internal X68030 SCSI, and XVI Compact internal SCSI. It works also with Mach-2.
Other users have reported it working on a first gen X68000, ACE, EXPERT, XVI, PRO2, SUPER, etc. It is safe to say that it works well on the X68000 platform. The SCSI interface of a SUPER or later is recommended. Multiple SCSI interfaces in one system work well too.
As of RaSCSI Reloaded v22.10.01, SASI support has been deprecated.
Human68k 3.02 is recommended to use all functions, because the Ethernet function and the remote drive function are provided only by the Human68k device driver. If you are using only SCSI mass storage devices, it is no problem to use NetBSD etc.
RaSCSI implements a virtual SCSI device called the Host Bridge in order to bridge the Raspberry Pi host system and the X68000. The Host Bridge together with the following X68000 specific drivers enables a range of features.
There are two special drivers for the X68000 that enable these features.
- RASDRV.SYS -- Host Drive driver
- RASETHER.SYS -- Ethernet driver
Provides equivalent networking functionality of a Neptune-X Ethernet adapter, which is an Ethernet box that's connected over the SCSI bus. It uses a TAP device on the Raspberry Pi to translate network traffic. Similar to Ether+.
It was developed while referencing Shi-MAD's ether_ne.sys ver0.03 +M01 +1 +L12 driver which itself is a modified version of the ether_ne.sys driver for the ISA bus bridge Ethernet adapter Neptune-X. Its use shall therefore be governed by the terms & conditions of those drivers.
It is also possible to use the original Neptune-X driver with RaSCSI.
Source code available at /~https://github.com/rdmark/RASCSI-X68k/tree/main/src/x68k/RASETHER
Provides a similar functionality as WindrvXM, which has become the de-facto standard on X68000 emulators. This makes it possible to mount the Raspberry Pi file system as a remote drive by connecting the X68000 to the host using a Host Bridge device.
You can attach the Host Bridge device to RaSCSI just like any other device, either by passing 'bridge' as the file parameter, or using the 'scbr' device type.
sudo ./rascsi -ID6 bridge
Source code available at /~https://github.com/rdmark/RASCSI-X68k/tree/main/src/x68k/RASDRV
The Ethernet driver (RASETHER.SYS) attaches to the Host Bridge device to send and receive packets.
In the following example, the TAP interface on the Raspberry Pi is assigned IP address 192.168.68.1, while the X68000 is configured with 192.168.68.3.
RASETHER.SYS is simply a retooled version of the Neptune-X driver, so the usage is exactly the same. You need to configure the X68000 environment for network access, for which there are instructions elsewhere on the Web.
Below are excerpts from actual CONFIG.SYS and AUTOEXEC.BAT files:
[CONFIG.SYS excerpt]
PROCESS = 3 10 10
DEVICE = \NETWORK\RASETHER.SYS
[AUTOEXEC.BAT excerpt]
SET SYSROOT=A:/NETWORK/
SET temp=A:\
SET tmp=A:\
SET HOME=A:/NETWORK/ETC/
SET HOST=X68000
XIP.X
IFCONFIG.X lp0 up
IFCONFIG.X en0 192.168.68.3 netmask 255.255.255.0 up
INETDCONF.X +router 192.168.68.1 -rip
INETDCONF.X
The following options can be passed to the driver.
-tx [x is a number] : Specify a trap where x is a number between 0 and 6.
However, if the specified trap number is in use,
it will autodetect another available number starting at 0.
-n : Don't use trap with the API
Extended options for RASETHER
-px [x is a number] : Receive packet polling interval. 1 is default.
1 means a polling interval of about 16ms.
Max setting is 8. Each increment adds about 16ms to the interval.
-ix [x is a number] : The interrupt approach that polling will use.
Default is 0 which uses MFP FPIP interrupt (V-DISP).
1 means Timer-A interrupt.
We will be using a TAP interface, so we need to enable it. It may already be enabled on your system by default. Check for the existence of /dev/net/tun on your system.
Create the TAP interface like this, for example:
[Add to your startup script, such as /etc/rc.local]
ip tuntap add ras0 mode tap user root
ip link set ras0 up
ifconfig ras0 inet 192.168.68.1/8 up
route add -net 192.168.68.0 netmask 255.255.255.0 dev ras0
This enables a network connection between the Raspberry Pi on 192.168.68.1 and X68000 on 192.168.68.3.
Additional configuration may be required depending on your environment. In the case of WiFi, a simple network bridge is not possible, so using packet forwarding and NAT becomes mandatory.
RaSCSI provides similar functionality to Windrv and WindrvXM that are commonly used with X68000 emulators XM6/XM6 Kai/TypeG. Using the RASDRV.SYS driver you can mount and access the Raspberry Pi file system from your X68000 and carry out any file operations.
Registering the device driver is simple. F.e. add this to latter part of CONFIG.SYS:
DEVICE = \SYS\RASDRV.SYS
By default, the Raspberry Pi's root directory gets mounted. When the device driver gets loaded, it will indicate which drive is getting mounted. To mount other directories aside from root, specify the the file system path. For instance, to mount /home/pi and /home/pi/data :
DEVICE = \SYS\RASDRV.SYS /home/pi/app /home/pi/data
By specifying multiple directories, each of them gets mounted as a separate drive.
If you're using SUSIE, please configure RASDRV.SYS to be loaded before SUSIE. It has been reported that it does not get detected if loaded afterwards.
For other options, refer to the documentation for WindrvXM.
RaSCSI contains the original RaSCSI codebase by GIMONS. It maintains the original feature set geared towards X68000, such as the Net Device and Host Services. You may want to try this version of the software out instead if you're using your RaSCSI with a X68000. It's expected to be compatible with RaSCSI Reloaded hardware.
- Home
- Initial Setup
- Documentation
- Companion Apps
- Developer Notes