• Please review our updated Terms and Rules here

Prodos and fixed disks....

prime

Experienced Member
Joined
Sep 20, 2009
Messages
153
Location
Coventry, UK
Hi there,

I have been having a play round with a design for an SD card interface to the Apple that is accessable in prodos, details here : http://www.applefritter.com/?q=content/building-my-own-sd-card-interface-apple-ii

I was having problems getting it working till I happened to try it with a 64K 80-column card from a friend's Apple (my machines where both //e machines so had 64K onboard). The SD card will only successfully boot with the extra 64K card plugged in. The odd thing is if I boot the same version of prodos from a floppy disk, it boots fine on the bare 64K machine, even if it has no 80-col card in, though it does not see the SD drive even if it's still connected.

Is this a requirement of prodos when used with hard disks and is it documented anywhere?

Cheers.

Phill.
 
I was having problems getting it working till I happened to try it with a 64K 80-column card from a friend's Apple (my machines where both //e machines so had 64K onboard). The SD card will only successfully boot with the extra 64K card plugged in. The odd thing is if I boot the same version of prodos from a floppy disk, it boots fine on the bare 64K machine, even if it has no 80-col card in, though it does not see the SD drive even if it's still connected.
How sure are you that it's exactly the same ProDOS version? Have you tried any other versions (especially earlier ones)? How confident are you that your boot loader code in ROM is correct and is not somehow leaving the machine in a state where the ProDOS boot loader gets confused? Where did you get the boot code that is on tracks 0/1 of your SD card - how confident are you that it is correct?

Is this a requirement of prodos when used with hard disks and is it documented anywhere?
It is not. There is something else wrong, probably in the drive/interface, but it's possibly as simple as the boot loader code.
 
Last edited:
How sure are you that it's exactly the same ProDOS version? Have you tried any other versions (especially earlier ones)?

I created the card image in ciderpress, by asking it to create a new hdd image of 32MB, and copying the prodos files accross from the 2.4.1 floppy distribution, the same one that boots OK from floppy (when copied to the apple via ADTPro).

How confident are you that your boot loader code in ROM is correct and is not somehow leaving the machine in a state where the ProDOS boot loader gets confused?

Well I didn't write the bootloader code, but I have reviewed the source along with the Apple / ProDos technical docs and it *SEEMS* to be reasonable but I'm no expert.

Where did you get the boot code that is on tracks 0/1 of your SD card - how confident are you that it is correct?

The boot code is the code that ciderpress put on there.

It is not. There is something else wrong, probably in the drive/interface, but it's possibly as simple as the boot loader code.
Right I'll go back and pour over the code some more see if I can spot anything.

Cheers.

Phill.
 
Cracked it.

Seems to be a bug in ProDos, the boot rom was doing a JSR to $FF58 (which is an RTS in the ROM), to work out it's execution address by looking at the return address that was just beyond the stack. Problem is that when ProDos has the RAM switched into $d000-$FFFF there isn't an RTS there, unless the AUX RAM is switched in**. This is why the machine would boot with a 64K 80 col card plugged in. Modifying the boot ROM to put an RTS in low ram and call that has enabled this to boot in 64K.

**There are even comments documenting the fact that the RTS is required in the AUX RAM, in the published ProDos 1.7 source, not sure why they didn't put an RTS there in the normal RAM too.

Cheers.

Phill.
 
Thanks,

Aided very much by having a 6502 in circuit emulator so I could trace what the CPU was actually executing, became blindingly obvious as it did the JSR and then didn't return, just tromped off into random Prodos code :(

Anyway the ICE I was using is this : https://github.com/hoglet67/AtomBusMon/wiki/ICE-T65

Also supports Z80 and 6809/6809E

Cheers.

Phill.
 
Back
Top