diff --git a/src/raspberrypi/Makefile b/src/raspberrypi/Makefile
index 96ea2bc0..4b59e0ff 100644
--- a/src/raspberrypi/Makefile
+++ b/src/raspberrypi/Makefile
@@ -3,8 +3,12 @@
CC = gcc
CXX = g++
-CFLAGS = -DDISK_LOG -O0 -g -Wall
-CXXFLAGS = -DDISK_LOG -O0 -g -Wall
+# Debug CFLAGS
+#CFLAGS = -DDISK_LOG -O0 -g -Wall
+#CFLAGS = -DDISK_LOG -O0 -g -Wall
+# Release CFLAGS
+CXXFLAGS = -O3 -Wall
+CXXFLAGS = -O3 -Wall
@@ -22,10 +26,14 @@ RASDUMP = rasdump
SASIDUMP = sasidump
SCSIMON = scsimon
+USR_LOCAL_BIN = /usr/local/bin
+MAN_PAGE_DIR = /usr/share/man/man1
+DOC_DIR = ../../doc
+
#BIN_ALL = $(RASCSI) $(RASCTL) $(RASDUMP) $(SASIDUMP) $(SCSIMON)
# Temporarily remove the RASDUMP and RASDUMP tools, since they're not needed
# for my specific use case. If you need them - add them back in!
-BIN_ALL = $(RASCSI) $(RASCTL) $(SCSIMON)
+BIN_ALL = $(RASCSI) $(RASCTL)
SRC_RASCSI = \
@@ -71,13 +79,16 @@ OBJ_RASCTL := $(SRC_RASCTL:%.cpp=%.o)
OBJ_RASDUMP := $(SRC_RASDUMP:%.cpp=%.o)
OBJ_SASIDUMP := $(SRC_SASIDUMP:%.cpp=%.o)
OBJ_SCSIMON := $(SRC_SCSIMON:%.cpp=%.o)
-OBJ_ALL := $(OBJ_RASCSI) $(OBJ_RASCTL) $(OBJ_RASDUMP) $(OBJ_SASIDUMP) $(OBJ_SCSIMON)
+#OBJ_ALL := $(OBJ_RASCSI) $(OBJ_RASCTL) $(OBJ_RASDUMP) $(OBJ_SASIDUMP) $(OBJ_SCSIMON)
+OBJ_ALL := $(OBJ_RASCSI) $(OBJ_RASCTL) $(OBJ_RASDUMP) $(OBJ_SASIDUMP)
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c $< -o $@
-ALL: $(BIN_ALL)
-all: $(BIN_ALL)
+docs: $(DOC_DIR)/rascsi_man_page.txt $(DOC_DIR)/rasctl_man_page.txt
+
+ALL: $(BIN_ALL) docs
+all: $(BIN_ALL) docs
$(RASCSI): $(OBJ_RASCSI)
$(CXX) -o $@ $(OBJ_RASCSI) -lpthread
@@ -98,7 +109,17 @@ clean:
rm -f $(OBJ_ALL) $(BIN_ALL)
run:
- sudo ./$(RASCSI) -ID1 /home/pi/HARDDISK.HDA -ID6 /home/pi/marathon.iso
+ sudo ./$(RASCSI) -ID1 /home/pi/HARDDISK2.hda -ID6 /home/pi/marathon.iso
+
+install: $(MAN_PAGE_DIR)/rascsi.1 $(MAN_PAGE_DIR)/rasctl.1
+ sudo cp $(RASCTL) $(USR_LOCAL_BIN)
+ sudo cp $(RASCSI) $(USR_LOCAL_BIN)
+
+$(MAN_PAGE_DIR)/%.1 : $(DOC_DIR)/%.1
+ sudo cp $< $@
+
+$(DOC_DIR)/%_man_page.txt : $(DOC_DIR)/%.1
+ man -l $< | col -bx > $@
.PHONY: Debug
Debug: scsimon
diff --git a/src/raspberrypi/rascsi.1 b/src/raspberrypi/rascsi.1
deleted file mode 100644
index 32933a62..00000000
--- a/src/raspberrypi/rascsi.1
+++ /dev/null
@@ -1,62 +0,0 @@
-.TH rascsi 1
-.SH NAME
-rascsi \- Emulates SCSI devices using the Raspberry Pi GPIO pins
-.SH SYNOPSIS
-.B rascsi
-[\fB\-IDn\fR \fIfile\fR]
-[\fB\-HDn\fR \fIfile\fR]...
-.SH DESCRIPTION
-.B rascsi
-Emulates SCSI devices using the Raspberry Pi GPIO pins.
-.PP
-In the arguments to RaSCSI, one or more SCSI (-IDn) or SASI (-HDn) devices can be specified.
-The number (n) after the ID or HD idnetifier specifies the ID number for that device.
-For SCSI: The ID is limited from 0-7. However, typically SCSI ID 7 is reserved for the "initiator" (the host computer).Note that SASI is considered rare and only used on very early Sharp X68000 computers.
-.PP
-RaSCSI will determin the type of device based upon the file extension of the FILE argument.
- hdf: SASI Hard Disk image (XM6 SASI HD image - typically only used with X68000)
- hds: SCSI Hard Disk image (XM6 SCSI HD image - typically only used with X68000)
- hdn: SCSI Hard Disk image (NEC GENUINE)
- hdi: SCSI Hard Disk image (Anex86 HD image)
- nhd: SCSI Hard Disk image (T98Next HD image)
- hda: SCSI Hard Disk image (APPLE GENUINE - typically used with Mac SCSI emulation)
- mos: SCSI Magneto-optical image (XM6 SCSI MO image - typically only used with X68000)
- iso: SCSI CD-ROM image (ISO 9660 image)
-
-For example, if you want to specify an Apple-compatible HD image on ID 0, you can use the following command:
- sudo rascsi -ID0 /path/to/drive/hdimage.hda
-
-Once RaSCSI starts, it will open a socket (port 6868) to allow external management commands.
-If another process is using port 6868, RaSCSI will terminate, since it is likely another instance of RaSCSI.
-Once RaSCSI has initialized, the rasctl utility can be used to send commands.
-
-To quit RaSCSI, press Control + C. If it is running in the background, you can kill it using an INT signal.
-
-.SH OPTIONS
-.TP
-.BR\-\-ID\fIn " " \fIFILE
-n is the SCSI ID number (0-7)\n
-.IP
-FILE is the name of the image file to attach to that ID.
-.TP
-.BR\-\-HD\fIn " " \fIFILE
-n is the SASI ID number (0-15)\n
-.IP
-FILE is the name of the image file to attach to that ID.
-.IP
-Note: SASI usage is rare, and is typically limited to early Sharp X68000 systems.
-
-.SH EXAMPLES
-Launch RaSCSI with no emulated drives attached:
- rascsi
-
-Launch RaSCSI with an Apple hard drive image as ID0 and a CD-ROM as ID 2
- rascsi -ID0 /path/to/harddrive.hda -ID2 /path/to/cdimage.iso
-
-To create an empty, 100MB HD image, use the following command:
- dd if=/dev/zero of=/path/to/newimage.hda bs=512 count=204800
-
-.SH SEE ALSO
-rasctl(1), scsidump(1)
-
-Full documentation is available at:
diff --git a/src/raspberrypi/rasctl.1 b/src/raspberrypi/rasctl.1
deleted file mode 100644
index 6364d582..00000000
--- a/src/raspberrypi/rasctl.1
+++ /dev/null
@@ -1,71 +0,0 @@
-.TH rascsi 1
-.SH NAME
-rasctl \- Sends management commands to the rascsi process
-.SH SYNOPSIS
-.B rasctl
-\fB\-l\fR |
-\fB\-i\fR \fIID\fR
-[\fB\-u\fR \fIUNIT\fR]
-[\fB\-c\fR \fICMD\fR]
-[\fB\-t\fR \fITYPE\fR]
-[\fB\-f\fR \fIFILE\fR]
-.SH DESCRIPTION
-.B rasctl
-Sends commands to the rascsi process to make configuration adjustments at runtime or to check the status of the devices.
-
-Either the -i or -l option should be specified at one time. Not both.
-
-You do NOT need root privileges to use rasctl.
-
-Note: The command and type arguments are case insensitive. Only the first letter of the command/type are evaluated by the tool.
-
-.SH OPTIONS
-.TP
-.BR\-\-l\fI
-List all of the devices that are currently being emulated by RaSCSI, as well as their current status. \n
-.TP
-.BR\-\-i\fI " " \fIID
-ID is the SCSI ID that you want to control. (0-7)\n
-.TP
-.BR\-\-u\fI " " \fIUNIT
-Unit number (0 or 1). This will default to 0. This option is only used when there are multiple SCSI devices on a shared SCSI controller. (This is not common)\n
-.TP
-.BR\-\-c\fI " " \fICMD
-Command is the operation being requested. options are:
- attach: attach disk
- detach: detach disk
- insert: insert media (Magneto-Optical and CD only)
- eject: eject media (Magneto-Optical and CD only)
- protect: Write protect the media (Magneto-Optical only)
-.IP
-When the command is omited, rasctl will default to the 'attach' command
-.TP
-.BR\-\-t\fI " " \fITYPE
-Specifies the type of disk. If this disagrees with the file extension of the specified image, the TYPE argument is ignored. Available drive types are:
- hd: Hard disk (SCSI or SASI)
- mo: Magneto-Optical disk)
- cd: CD-ROM
- bridge: Bridge device (This is only applicable to the Sharp X68000)
-.TP
-.BR\-\-f\fI " " \fIFILE
-Path to the disk image file. See the rascsi(1) man page for allowable file types.
-
-.SH EXAMPLES
-Show a listing of all of the SCSI devices and their current status
- rasctl -l
-
-
-Example output:
- +----+----+------+-------------------------------------
- | ID | UN | TYPE | DEVICE STATUS
- +----+----+------+-------------------------------------
- | 0 | 1 | SCHD | /home/pi/harddisk.hda
- +----+----+------+-------------------------------------
-
-Request the RaSCSI process to attach a disk (assumed) to SCSI ID 0 with the contents of the file system image "HDIIMAGE0.HDS".
- rasctl -i 0 -f HDIIMAGE0.HDS
-
-.SH SEE ALSO
-rascsi(1)
-
-Full documentation is available at: