Mount disk images over the Internet on your Apple IIGS
Go to file
Stephen Heumann f524630f1a Work around Marinetti bug 57.
This could cause Marinetti to return more data than it should, starting with valid data but then including corrupt data.

The workaround I'm using is to have Marinetti return a new handle and then copy the data out of it, using the size of the handle as the true size of the data that was read. Because of details of how Marinetti works, that size is correct.

This shouldn't have a major performance impact, because Marinetti would internally read data into a new handle and then copy it anyway.
2019-04-19 17:34:18 -05:00
.gitignore Update .gitignore. 2018-08-12 17:59:34 -05:00
Makefile Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
README.md Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
asmglue.asm Split out non-trivial driver ops into separate functions. 2018-08-10 00:12:24 -05:00
asmglue.h Add basic infrastructure for an installable GS/OS driver. 2018-08-06 20:22:33 -05:00
cdev.c Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
cdev.rez Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
cdevutil.asm Add framework for NetDisk CDev. 2018-08-11 16:33:18 -05:00
diskcopy42.h Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
driver.c Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
driver.h Do actual auto-detection of DOS-order versus ProDOS-order. 2018-10-07 23:59:00 -05:00
driverwrapper.asm Add framework of code for the driver. 2018-08-08 20:12:03 -05:00
driverwrapper.h Add framework of code for the driver. 2018-08-08 20:12:03 -05:00
endian.asm Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
endian.h Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
hostname.c Set up framework of the NetDisk init. 2018-08-05 18:04:34 -05:00
hostname.h Initial code implementing some of the core functionality for reading blocks over HTTP. 2018-07-29 23:40:03 -05:00
http.c HTTP header parsing tweaks. 2018-10-08 21:18:32 -05:00
http.h Switch to unified set of error codes. Also, do more checks for 2IMG files. 2018-08-11 01:53:53 -05:00
httptest.c Enhance mounturl command-line utility. 2018-10-02 18:04:22 -05:00
initstart.asm Set up framework of the NetDisk init. 2018-08-05 18:04:34 -05:00
installdriver.asm Add basic infrastructure for an installable GS/OS driver. 2018-08-06 20:22:33 -05:00
installdriver.h Add basic infrastructure for an installable GS/OS driver. 2018-08-06 20:22:33 -05:00
mounturl.c Enhance mounturl command-line utility. 2018-10-02 18:04:22 -05:00
mounturl.h Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
netdiskerror.c Add support for image format selection and detection. 2018-10-07 22:22:09 -05:00
netdiskerror.h Add support for image format selection and detection. 2018-10-07 22:22:09 -05:00
netdiskinit.c Do actual auto-detection of DOS-order versus ProDOS-order. 2018-10-07 23:59:00 -05:00
readtcp.c Work around Marinetti bug 57. 2019-04-19 17:34:18 -05:00
readtcp.h Detect errors and timeouts when reading data from server. 2018-08-15 21:05:09 -05:00
session.c Give meaningful error messages. 2018-09-26 00:17:31 -05:00
session.h Add support for DiskCopy 4.2 image format. 2018-10-17 20:14:40 -05:00
seturl.c Support spaces in URLs. 2018-10-03 17:40:08 -05:00
seturl.h Switch to unified set of error codes. Also, do more checks for 2IMG files. 2018-08-11 01:53:53 -05:00
strcasecmp.c Add and use code to parse URLs specifying the resource. 2018-07-30 21:35:45 -05:00
strcasecmp.h Add and use code to parse URLs specifying the resource. 2018-07-30 21:35:45 -05:00
systemservices.asm Add wrappers for GS/OS system service calls, and call SET_DISKSW on mount. 2018-08-16 21:39:23 -05:00
systemservices.h Add wrappers for GS/OS system service calls, and call SET_DISKSW on mount. 2018-08-16 21:39:23 -05:00
tcpconnection.c Before sending a request, check if the remote side has closed the connection. 2018-08-14 18:35:11 -05:00
tcpconnection.h Switch to unified set of error codes. Also, do more checks for 2IMG files. 2018-08-11 01:53:53 -05:00
twoimg.h Switch to unified set of error codes. Also, do more checks for 2IMG files. 2018-08-11 01:53:53 -05:00
urlparser.c Set up framework of the NetDisk init. 2018-08-05 18:04:34 -05:00
urlparser.h Add and use code to parse URLs specifying the resource. 2018-07-30 21:35:45 -05:00
version.h Bump version numbers. 2018-10-08 21:23:00 -05:00

README.md

NetDisk

By Stephen Heumann

NetDisk is an Apple IIGS utility that allows you to mount disks images hosted on an HTTP server (a public web server or one on your local network). The mounted disk images behave as if they were normal (but read-only) disks on your IIGS: you can open files and run programs directly off of them, or copy the files to your local disks using the Finder or other standard utilities.

System Requirements

  • An Apple IIGS with System 6.0.1 or later
  • Marinetti
  • A Marinetti-compatible network interface (such as an Ethernet card)

Installation

To install NetDisk, place the NetDiskInit file in the *:System:System.Setup folder (where * indicates your boot disk), and place the NetDisk file in the *:System:CDevs folder. Reboot the system to complete the installation.

Compatibility

NetDisk can access disk image files on most servers that allow unencrypted HTTP access. The server must also support HTTP range requests. Most modern servers support these, but some may not, in which case an error message will be shown.

NetDisk supports raw (aka ProDOS-order and various other names), 2MG, DOS-order, and DiskCopy 4.2 disk images. The images may use any filesystem for which you have an FST installed, except that DOS 3.3 filesystems are not supported due to a limitation in that FST. You can use images of any size (subject to the limitations of the relevant FST), from floppy disks to large hard drive partitions or CD-ROMS.

Usage

To mount a disk image, simply open the NetDisk control panel, enter the http:// URL for the image to be mounted, and click Mount Disk Image. If you do not get an error message, the disk will now be mounted and accessible. If you are in the Finder, it will appear on the desktop.

You can explicitly select the disk image format using the Format pop-up menu. In most cases this can be left at the default "Auto-Detect" setting to let NetDisk detect the format of the image, but you can explicitly specify a format if the auto-detection does not work properly.

The Use Disk Cache check box controls whether the standard GS/OS disk caching mechanism should be used with the disk image. This box should normally be left checked, since it improves performance. You should un-check it if the disk image on the server might change while you have it mounted (but note that such changes can cause problems in some cases even if caching is disabled).

Disk images mounted by NetDisk are read-only. They can be accessed while running any 16-bit GS/OS application, but not in ProDOS 8 mode.

When you are done with a disk image, you can unmount it as you would any other disk (e.g. by dragging it to the trash in the Finder). Up to 16 disk images may be mounted at once.