mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-04 05:05:13 +00:00
4f96a4e326
This was a dos33fs filesystem driver for Linux 2.4 It is included for historical reasons.
135 lines
4.6 KiB
Plaintext
135 lines
4.6 KiB
Plaintext
NOTE!!!! This driver only works with the ancient Linux-2.4 kernel
|
|
|
|
It will not run on anything recent.
|
|
|
|
Plans are to make a FUSE-capable driver, see the ../dos33fs-fuse directory
|
|
|
|
|
|
|
|
Apple II DOS 3.3 Filesystem for Linux
|
|
|
|
by Vince Weaver (vince@deater.net)
|
|
http://www.deater.net/weave/vmwprod/apple
|
|
|
|
based on ProDos filesystem code
|
|
Copyright (c) 2001 Matt Jensen (mjensen@obvion.com)
|
|
http://www.obvion.com/matt/prodos/
|
|
|
|
[-------------------------------------------------------------------]
|
|
|
|
Background:
|
|
|
|
In January of 1978, Apple Computer demoed the DISK ][ drive,
|
|
arguably the first inexpensive 5 1/4" floppy drive for a personal
|
|
computer. It was a very clever hack by Steve Wozniak, and was
|
|
welcomed by Apple ][ users who until now had to make do with
|
|
a casette tape interface.
|
|
|
|
Dos 3.1 was released in 1978. Dos 3.2 and 3.2.1 were released
|
|
in 1979. While both worked, neither were integrated very well
|
|
with the Apple ][ computers of the time and had their share of bugs.
|
|
|
|
In August of 1980 Dos 3.3 was released. It required not only
|
|
an OS upgrade, but also a hardware one as well. Older DOS's
|
|
could read 113.75k (35 tracks*13 sectors*256bytes). Under
|
|
Dos 3.3 the disks could hold 140k (35tracks*16sectors*256bytes).
|
|
|
|
Dos 3.3 was the standard disk OS on Apple ]['s for a long time,
|
|
but it was limited to only 5 1/4" disks. Eventually it was
|
|
replaced by ProDos, which was a weird combination of Dos 3.3 and HFS+.
|
|
|
|
[------------------------------------------------------------------]
|
|
|
|
Technical Info:
|
|
|
|
* Partition size: 140k (in theory the filesystem can support more,
|
|
but I doubt it ever did it most cases).
|
|
|
|
* sector [block] size: 256bytes. Which makes it fun trying to make
|
|
Linux deal with it properly.
|
|
|
|
* Filenames: up to 30 characters in length, 7-bit ASCII.
|
|
First character had to be > 63. No commas or colons.
|
|
Padded on the right with spaces.
|
|
Besides that, anything goes [including control characters,
|
|
NULL's, and \, which make it interesting as a Unix filesystem]
|
|
|
|
* 7bits of metadata: Indicate file type [binary, BASIC, text, etc]
|
|
|
|
* "Lock": possible to "LOCK" files, that is make read-only
|
|
|
|
* holes: filesystem supports holes in files [though Linux support of
|
|
this a bit troublesome because of 256 byte block issues].
|
|
|
|
* Timestamp: no timestamp possible. The driver assigns an arbitrary
|
|
date of 13 February 1978 to all files. [2 1/2 years
|
|
too early for DOS 3.3, but it is my birthday....]
|
|
|
|
|
|
[---------------------------------------------------------------]
|
|
|
|
Usage:
|
|
|
|
You need to be running a 2.4.x linux kernel. Older versions
|
|
not supported currently.
|
|
|
|
The easiest way to do this is get a "disk image" of the type
|
|
used for Apple II emulators.
|
|
|
|
Various web pages can help you make these from your old Apple Disks,
|
|
assuming you have a working Apple II, a modern PC, and a serial
|
|
connection between the two.
|
|
|
|
First, be sure your Linux kernel has "loopback filesystem support"
|
|
|
|
Then, set up the disk image you want as a loopback device as root:
|
|
|
|
/sbin/losetup /dev/loop0 ./green.dsk
|
|
|
|
Where "green.dsk" can be any image you might have.
|
|
|
|
Next, compile the included driver [ "make"]. As root, install
|
|
the dos33.o module
|
|
|
|
/sbin/insmod ./dos33.o
|
|
|
|
Next, mount the filesystem
|
|
|
|
mount -t dos33 /dev/loop0 /mnt
|
|
|
|
And if all went well, you can now do an "ls /mnt" or wherever,
|
|
and get the file listing.
|
|
|
|
You can use the "asoft_detoken" program in the ./util
|
|
directory to dump Applesoft basic programs into plain text
|
|
|
|
asoft_detoken < /mnt/HELLO
|
|
|
|
[----------------------------------------------------------]
|
|
|
|
Future plans:
|
|
|
|
Make the driver read/write. Right now it is read-only.
|
|
|
|
Maybe add some more utilities.
|
|
|
|
Handle the file-type metadata somehow.
|
|
|
|
Far-out-there.... write a linux block-device for the DISK ][
|
|
drive, so you can actually hook the old drives and disks up
|
|
directly to your linux box....
|
|
|
|
[-------------------------------------------------------------------]
|
|
|
|
References:
|
|
http://apple2history.org/ -- great history site
|
|
http://ground.icaen.uiowa.edu/apple2/ -- treasure trove of apple][ info
|
|
|
|
[-------------------------------------------------------------------]
|
|
|
|
Added note:
|
|
|
|
if anyone has a copy of "Inside Apple DOS" they'd be willing
|
|
to part with, please let me know....
|
|
|