deater / dos33fsprogs

Tools for manipulating Apple II dos33 filesystems
http://www.deater.net/weave/vmwprod/apple/dos33fs.html
Other
142 stars 23 forks source link

Clarify that mkdos33fs does not create bootable disks #1

Open ao2 opened 10 years ago

ao2 commented 10 years ago

Hi,

it looks like mkdos33fs does not generate valid "boot" disks.

Let me explain better what I mean.

I wanted to test an AppleSoft BASIC program of which I had the listing, so the plan was to generate a disk image with the tokenized BAS version of it and run it under an emulator, linapple was my choice (http://linapple.sourceforge.net/).

So this is what I first tried:

./mkdos33fs ao2.dsk
./tokenize_asoft < PROGRAM.bas > PROGRAM
./dos33 ao2.dsk SAVE A PROGRAM

but it looks like mkdos33fs does not generate a full functioning disk image, and linapple bails out with a weird prompt, which i don't know what it is (maybe this is a linapple issue?): linapple_wrong_disk_image

On the other hand, reusing tests/empty.dsk worked just fine:

cp tests/empty.dsk ao2.dsk
./tokenize_asoft < PROGRAM.bas > PROGRAM
./dos33 ao2.dsk DELETE HELLO
./dos33 ao2.dsk SAVE A PROGRAM

BTW thanks a lot for dos33fsprogs, I first managed to create a working image with CiderPress (http://sourceforge.net/projects/ciderpress/) under Windows but a linux-only workflow works a lot better for me, CiderPress has some command line tools which work under linux but they are incomplete at best.

Regards, Antonio

ohmpossum commented 7 years ago

That is the disassembler built in to the //. The top line is giving you the register contents Accumulator, X, Y index registers, P may be the processor status register, and S is the stack pointer. 0803 is the address where the program stopped. It may be an interrupt that jumps to 800 and there is no code at 800 to execute so it generates an exception that dumps you to this utility. It has been a while. The is the prompt like > is integer basic and ] is applesoft basic prompt. If you wanted to start executing machine code, I belive you would type the address followed by G but I would have to try a couple things to verify this. 300G at the prompt should start execution there. Hit Return to get more memory contents or L to get a disassembly. I'm sure you can find documentation on line.

ao2 commented 7 years ago

@ohmpossum thanks for the info about the disassembler.

I hope @deater could have a look at the original issue with mkdos33fs too sooner or later.

Danl2620 commented 5 years ago

I don't know if this is a more recent feature, but you have to tell mkdos33fs to copy the first 3 tracks from another bootable image using the -d bootable.dsk option, like this:

mkdos33fs -d bootable.dsk my_new_image.dsk
ao2 commented 5 years ago

Thanks for the followup @Danl2620

I guess this is more or less equivalent to what i did when reusing empty.dsk, but faster. Maybe adding code to to create a bootable disk from scratch is not really worth it?

BTW I don't think this is a recent feature, in the end my initial issue was basically about not knowing that I needed a bootable disk.