Latest release of ProDOS is 2.4.2

ProDOS 2.5 alpha 7 pre-release is available

ProDOS 2.5 Alpha 7

Download ProDOS 2.5 Alpha 7

ProDOS 2.5 Alpha 7

Please help testing!

There may be a lurking problem in 2.5a3 with using EXEC to load Applesoft source code into memory.

LOAD TEST
LIST
RUN

Filename CASE.compatibility

  • Some apps have been identified to break on 2.5a which has introduced lowercase name support.
  • Lowercase name app compatibility issues that have been observed so far include:
App Version Description
MouseDesk v1.1 Crashes if launched from BASIC.system
Copy ][ + All versions Crashes if the volume name contained lowercase.
Diskmaker 8 v1.1 Drops to the monitor
  • If you observe issues when using UPPERCASE names, that would point to a core OS bug
    vs a lowercase name incompatibility.
  • Please make us aware of any isuses discovered with name compatibility.
  • If you believe an app is incompatible with lowercase names:
    Try testing those apps again.
    Change the ProDOS8 MachineID to an Apple II+.
    Using an Apple II+ MachineID will force ProDOS 2.5a to automatically UPPERCASE all names.
    Set the MachineID to Apple II+ using the BASIC command:
POKE 49048,99
  • ProDOS memory location 49048 ($BF98) stores the Machine ID, which can be altered using a BASIC POKE command:
PRINT PEEK(49048)
POKE 49048,99
PRINT PEEK(49048)

In the example above, only the POKE command is required. Use the PEEK commands to view the contents of memory location 49048 before and after the POKE

  • After poking the Machine ID to be 99, you will notice that the Bitsy-Bye catalog is all-UPPERCASE.

FASTChip Compatibility

  • The FASTChip //e accelerates the Apple //e up to 16.6 Mhz by replacing the microprocessor with a faster one.
  • There is a known issue with FASTChip //e NTSC (firmware 0.5b) in slot 1.
  • When booting the machine, with the FASTChip //e installed, the machine will drop to the monitor.
  • ProDOS leverages a CPU call to determine if you are using an Apple IIe, IIc, or IIgs.
  • Specifically, the REP #2 CPU call is used in Bitsy Bye to determine if $C029 can be safely changed because the machine is not a //c+.
ldx   #$ff-$20

:ZpLoop
lda InitZpEnd-$FF,x ;Init ZP vars
sta ZpMoveEnd-$FF&$FF,x
inx
bne :ZpLoop ;Loop ends with Z=1
rep #2  ;Clr Z. Test for 65816 CPU
beq :NotGS
trb IoNewVideo ;Disable SHR
:NotGS
  • That CPU call, REP #2, has documented behavior on the 65c02 and 65816 chips.
    On the 6502 it is undocumented but effectively a NOP.
  • The problem is that FASTChip does not execute this instruction as documented and instead uses it for internal purposes.
  • Unfortunately, the FASTChip is not 100% compatible with the official processors.
  • It has been reported that machines with the FASTChip will boot successfully on ProDOS 2.5a7 or later, although no code changes were made in ProDOS to accomodate the FASTChip, so your mileage may vary.

Copy II Plus 8.5a1

  • Patched to work with ProDOS 2.5’s multi-case filesystem and dates.

Apple III Kernel

  • This release includes the experimental ProDOS kernel for the Apple III.
  • If you are interested in testing the Apple III ProDOS kernel it would be a great help to the ProDOS 2.5 efforts.

KansasFest 2018 Announcement

Changes

  • Lowercase volume support.
  • Lowercase filenames match what GS/OS and the Finder use.
    If an application does not support lowercase filenames they will read the directory and see uppercase filenames.
    There is no case sensitivity in the filenames.
  • Can pass relative path arguments to commands, such as:
CAT ..
PREFIX ../..
  • Year has been expanded from 7-bits (127 years) to 10-bits (1,024 years) to allow date support until the year 2924.
    There is still a year 2040 problem where the 24-bit timer on the Apple IIgs will wrap around to 1900.

Bitsy Bye

  • Upgraded version of Bitsy Bye
  • Bottom border in Bitsy Bye has been removed so the number of files that can be viewed at once is has increased from 20 to 22.
  • Merges in features from Bitsy Boot:
    • When using GS/OS, and running ProDOS, pressing DELETE will take you back to the GS/OS Finder.
    • Can boot to a slot by selecting it and pressing RESET.

BASIC.system

  • Previously, on the Apple IIe or IIc, if you hit the DELETE key you would get the checkerboard. Now if you hit the delete key it will actualy delete the character.
  • New online command will list devices in the system showing the slot, drive, volume name, and free space.
  • Dash (-) will run ProCMD files
    • Runs CMD files at $4000 (ProCMD)
    • Now allows for file arguments
-binfile arg1,arg2

51-file limit on the root directory removed

  • The new ProDOS 2.5 boot loader will find the ProDOS file anywhere in the root directory linked-list.
  • ProDOS 2.5 should allow unlimited files in the root directory level.

GS/OS support for more than 51 files in the root directory

  • There is a new GS/OS PRO.FST driver to support the removal of the 51 files restriction.

No More Wacky Slot Remapping and Raised Max Drive Count

As of ProDOS 2.5 alpha5:

  • Support has been added for up to 8 drives per slot.
  • Up to 37 total drives can be mounted at once.

How ProDOS 2.5 supports 8 drives per slot

Bit layout for the ProDOS 2.5 unitnum:
  • 76543210
  • DSSS00XY
Where
DSSS00XY
Drive bit 0 and Slot bits 2:0 like previous ProDOS versionsDrive bit 2Drive bit 1
To calculate the drive number (1-8) from a ProDOS 2.5 unitnum in Acc:
ASL
AND #7
ADC #1
  • The internal /RAM drive in slot 3, drive 2 has a unitnum of $B0 (vs $BF in 2.4).

  • ProDOS 2.5 now supports up to 37 drives stored at $BF32-$BF56, with a $00 terminator at $BF57.

  • All 8 drives per slot use the per-slot driver handler at $BF12-$BF1F with the drive 2 driver unused.
  • However the internal /RAM driver is still called through the slot 3, drive 2 handler at $BF26 for compatibility with apps which disconnect /RAM in order to use aux memory.

Application support for 37 drives

  • It is likely that Applications which directly call a drive’s card ROM driver, such as Total Replay, will need an update, or modification, to take advantage of drives 3-8 on ProDOS 2.5.
  • In addition to mounting up to 37 drives, a goal of the new 8 drives per slot feature is to make it easier and more reliable for applications which use ProRWTS to find the SmartPort Driver and device from which they are being launched.

Extended Date format

As seen in ProDOS Alpha 4

Legacy ProDOS 8 Date Format:

 49041 ($BF91)49040 ($BF90)
 7654321076543210
DATEyearmonthday
 
 49043 ($BF93)49042 ($BF92)
 7654321076543210
TIME000hour00minute

2.5.0a4+ Extended time/date returned by Clock driver:

 49039 ($BF8F)49038 ($BF8E)
 7654321076543210
SEC00secondsmilliseconds*4
 
  • seconds = 0-59
  • milliseconds = 0-249
 
 49041 ($BF91)49040 ($BF90)
 7654321076543210
TIMEdayhourminute
 
  • day = 1-31
  • hour = 0-23
  • minute = 0-59
 
 49043 ($BF93)49042 ($BF92)
 7654321076543210
DATEmonthyearfrom 0 CE
 
  • month = 2-13
  • year = 0-4095
  • month +1 keeps top 3 bits from being 0,
    differentiating it from pre-2.5 format

ProDOS 2.5 on the Apple /// ?

  • ProDOS 2.5 includes a new Boot Loader that works on Apple ///.
  • With this new Boot Loader, along with some future development work,
    ProDOS could potentially run on the Apple /// !

New Boot Loader

  • The new boot loader can also load all, or just part, of the ProDOS file at boot so new versions of ProDOS can append machine-specific drivers after the core ProDOS kernel without having to load all drivers on all platforms during every boot.

Looking for Contributors

Please contact John Brooks to get involved.

  • Code writers
  • Testers

In-Progress Features

  • Modify Global Page so it’s easier to turn on/off features without changing the machine type.
    Features like the large-date support or the lowercase filenames could then easily be disabled to support apps which do not play nice with those features.
  • Modify COPY+ and Cat Doctor to support lowercase filenames and the longer-date.
    When COPY+ doesn’t see a normal ProDOS filename it assumes that the disk is DOS3.3 and tries to use the DOS3.3 parser.

Conversion of ProDOS source code to Merlin32