[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Stepping through Rocky's Boots (to possibly P8 it)



Almost got all the information I need.

There is a file on the disk, CLR FINDSLOT BOOT.O, which loads at $0800.

I believe this is the routine used to select the file that ROCKY HELLO.O loads. The challenge is, how does it do this? I did a quick disassembly but it doesn't make a lot of sense. (The code appears to be slightly obfuscated.)

0800: 4C 03 08 A9 00 8D F2 03 A9 08 8D F3 03 49 A5 8D [L..)..r.)..s.I%.]
0810: F4 03 A9 00 8D 00 60 20 63 08 01 60 00 60 FF BF [t.)...` c..`.`.?]
0820: A9 00 8D 00 09 20 63 08 01 09 00 09 FC 1F A9 00 [).... c.....|.).]
0830: 8D F4 03 8D F3 03 8D F2 03 A9 00 85 00 A9 C8 85 [.t..s..r.)...)H.]
0840: 01 A0 07 C6 01 A5 01 C9 C0 F0 F2 8D F8 07 B1 00 [. .F.%.I@pr.x.1.]
0850: D9 5B 08 D0 EC 88 88 10 F5 6C 00 00 20 FF 00 FF [Y[.Pl...ul.. ...]
0860: 03 FF 3C 68 85 00 68 85 01 20 B1 08 85 02 20 B1 [..<h..h.. 1... 1]
0870: 08 85 03 20 B1 08 85 04 20 B1 08 85 05 20 B1 08 [... 1... 1... 1.]
0880: 85 06 20 B1 08 85 07 A0 00 A5 05 C5 07 D0 04 A5 [.. 1... .%.E.P.%]
0890: 04 C5 06 F0 02 B0 13 B1 04 91 02 E6 04 D0 02 E6 [.E.p.0.1...f.P.f]
08A0: 05 E6 02 D0 02 E6 03 4C 89 08 A5 01 48 A5 00 48 [.f.P.f.L..%.H%.H]
08B0: 60 E6 00 D0 02 E6 01 A0 00 B1 00 60             [`f.P.f. .1.`    ]

I think my ProDOS replacement will be somewhat larger than this. I only have 256 bytes to put the code in, so I have to be careful. (The main loader can be larger than 256 bytes.)

Most likely, my loader will use the usual BB00 buffer, and programs which need the BF page will need to find their own place for it and mark it, and the replacement for this file will copy it back.

-uso.