• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

Need help Getting Up To Speed with ProDOS on Apple II

Hey, I'm prepping to make a video on Apple II ProDOS and as a first step I am trying to become familiar with the specifics of the DOS. I have noticed that pathnames are a thing and getting to a file can often require a fully qualified path, going from the volume-name onwards. Fair enough....

Having formatted a disk (using Filer) I had volume names which were a bit long, and as these are required to be typed in, I thought it would be good to rename these volumes to make the names shorter and therefor easier to work with. For this I used the Volume Rename util, and, this is odd, when I rename, it shows the current name in the text field, which is OK, BUT it also won't let me press space to delete any characters from it. I understand DELETE is not a thing on Apple II, so AFAIK the only way to delete characters is to replace them with spaces, right?

So right now, lets say my volume name is MONKEYGRINDER, I can only change it to a string with the same length. I can't shorten it. And this is proving to be a PITA.

So, that aside, I checked in with the great Google AI and asked, can I do this from BASIC and it says yes and shows the syntax on how to to this.

RENAME /OLDNAME / NEWNAME

But this does not work. I am assuming that (as per usual) the AI has been huffing authority gas again and is talking nonsense. So should this work? Im' guessing not?

Cheers

Retronaut
 
You can't change volume names from the ProDOS "shell". You can do it with the ProDOS Utilities or Filer disk.
Also I think the syntax is `RENAME OLDNAME,NEWNAME` for files.

From the Filer and most text-UI programs, you delete characters by going left, typing new chars to overwrite the existing one, and hit Enter. The characters under and after the cursor are discarded. (Only from ProDOS 2.4.3, which is out since December 2023, is there support for the Delete key on the computers that have it available).

This document will probably help you a lot better than AI for your video :-) http://www.applelogic.org/files/PRODOSUM.pdf
 
In addition to what Colin said, a shortcut to access a specific disk from ProDOS without typing the full name is

PREFIX,S6,D1

which would drop you into whatever volume is on the first 5.25” drive and make that your active volume. Sx denotes the physical slot number and Dx denotes the drive number.
 
In addition to what Colin said, a shortcut to access a specific disk from ProDOS without typing the full name is

PREFIX,S6,D1

which would drop you into whatever volume is on the first 5.25” drive and make that your active volume. Sx denotes the physical slot number and Dx denotes the drive number.
Thanks for that tid-bit, I'm not sure I read that in the manual yet. I guess I should give it another read through before recording that section of my video.

Also, I need to gen up a bit of how the .SYSTEM files work to load in apps and about hard disks in general, maybe there is not much to say there, other than the 32mb limit per volume.

Talking of which, I have seen I think DRIVES of larger than 32mb appear (via SCSI on a IIgs), but I am guessing these MUST be partitioned into 32mb chunks to be usable as Volumes right?

Also, I THINK there are drivers, for the IIgs which can handle partitions larger than this, is this a Macintosh format? I'm focussing for now on the Apple IIe and ProDos 8, so is this a ProDos 16 ONLY feature? Im guessing it is?
 
I always found it hard to call BASIC.SYSTEM a true "command shell" given it lacks many built-in commands (ex: you have to load the utilities program to copy files). The reality is most 8-bit Apple II users didn't have a hard drive or used a GUI. The vast majority booted off of a given 5.25" floppy to run programs.
Talking of which, I have seen I think DRIVES of larger than 32mb appear (via SCSI on a IIgs), but I am guessing these MUST be partitioned into 32mb chunks to be usable as Volumes right?

Also, I THINK there are drivers, for the IIgs which can handle partitions larger than this, is this a Macintosh format? I'm focussing for now on the Apple IIe and ProDos 8, so is this a ProDos 16 ONLY feature? Im guessing it is?
The ProDOS file system, like early FAT, is limited to 32MB partitions. GS/OS System 6 added support for Macintosh HFS partitions up to 2GB.
 
The ProDOS file system, like early FAT, is limited to 32MB partitions. GS/OS System 6 added support for Macintosh HFS partitions up to 2GB.

To expand on that, it wasn’t just that GS/OS added support for HFS, it added support for FST extensions which basically meant you could support any file system you could write an FST (file system translator) for.
 
I always found it hard to call BASIC.SYSTEM a true "command shell" given it lacks many built-in commands (ex: you have to load the utilities program to copy files). The reality is most 8-bit Apple II users didn't have a hard drive or used a GUI. The vast majority booted off of a given 5.25" floppy to run programs.

The ProDOS file system, like early FAT, is limited to 32MB partitions. GS/OS System 6 added support for Macintosh HFS partitions up to 2GB.
Yes, I get you, its something I struggled with. I guess Apple did this, as they felt that the extra RAM taken by putting these commands in RAM would make the DOS impractical for users with less RAM. A compromises for sure and it feels odd with ProDOS to have to load a util to COPY a file, not so much a disk, thats ok, but a file... Also, no MOVE command, or am I missing something?
 
Note that BASIC.SYSTEM had an extensibility mechanism that allowed users to install additional commands at runtime. Several were published - the awesome magazine "Nibble" published type-in listings for several commands, such as COPY and TYPE. Installation was usually done by first running a file (e.g. -COPY); the program would allocate memory using the BASIC.SYSTEM buffer reservation system, then hook itself into the command processor. After that, COPY (etc) would function like a built-in command. Less RAM would be available for programs, of course. You could write a STARTUP file that would install several commands at boot, which would then be available until BASIC.SYSTEM was restarted.
 
Hey, i'm having a little trouble using wildcards in ProDOS. So far I have only managed to use them successfully inside the Utils program to copy some files. For example, this works
COPY
SOURCE > /FLOPPY/RAM=
TARGET > /A/UTIL/=

What I find unusual about this, compared to say DOS or LINUX shell for example, is that the TARGET location HAS to be specified using the wildcare AS WELL, I'm used to it only being used to select the source files/folders

Anyway, this works, though the syntax feels odd compared to more modern shells

But, this does NOT work
LOCK /A/UTIL/=
Also changing into that folder using
PREFIX /A/UTIL
And then typing
LOCK =
Also does not work, I get a syntax error. So, are Wildcards ONLY supported in the Utils apps, or in BASIC as well and if so, whats the magic sauce?
 
Note that BASIC.SYSTEM had an extensibility mechanism that allowed users to install additional commands at runtime. Several were published - the awesome magazine "Nibble" published type-in listings for several commands, such as COPY and TYPE. Installation was usually done by first running a file (e.g. -COPY); the program would allocate memory using the BASIC.SYSTEM buffer reservation system, then hook itself into the command processor. After that, COPY (etc) would function like a built-in command. Less RAM would be available for programs, of course. You could write a STARTUP file that would install several commands at boot, which would then be available until BASIC.SYSTEM was restarted.
That sounds pretty cool. Would you happen to have an idea of which issues of this Magazine carry these listings? I assume these are on Archive.org?
 
Hey, i'm having a little trouble using wildcards in ProDOS. So far I have only managed to use them successfully inside the Utils program to copy some files. For example, this works
COPY
SOURCE > /FLOPPY/RAM=
TARGET > /A/UTIL/=

What I find unusual about this, compared to say DOS or LINUX shell for example, is that the TARGET location HAS to be specified using the wildcare AS WELL, I'm used to it only being used to select the source files/folders

Anyway, this works, though the syntax feels odd compared to more modern shells

But, this does NOT work
LOCK /A/UTIL/=
Also changing into that folder using
PREFIX /A/UTIL
And then typing
LOCK =
Also does not work, I get a syntax error. So, are Wildcards ONLY supported in the Utils apps, or in BASIC as well and if so, whats the magic sauce?
BASIC.SYSTEM does not have wildcard support.
 
That sounds pretty cool. Would you happen to have an idea of which issues of this Magazine carry these listings? I assume these are on Archive.org?
I have a list at:


Nibble is not on archive.org; the publisher (who passed away quite recently) was selling digital copies.

I have also written several including a generalized PATH command that allows external commands (like COPY) to be disk-resident, but that's recent so probably out of scope. Also only makes sense with a RAMdisk or modern fast mass storage.
 
Back
Top