| |
cadaver
Registered: Feb 2002 Posts: 1160 |
Is this safe? (diskdrive memory question)
Hi,
I'd be thankful if someone commented whether this is a "safe" memory arrangement with 1541 & compatibles:
$300-$3ff Used as directory cache
$400-$4ff Buffer 1 used for reading data
$500-$6xx Custom drive code
$700-$7ff Used as directory cache
Custom drive code uses buffer 1 jobcodes to read sectors and doesn't call any drive ROM routines. Every time drive code is reuploaded & restarted $300-$3ff & $700-$7ff are assumed to be corrupted and are re-initialized. I guess this should be safe? |
|
... 10 posts hidden. Click here to view all posts.... |
| |
Krill
Registered: Apr 2002 Posts: 2969 |
Thanks, Cadaver. I think the ROM disassembly won't be very useful, as the only things I use the ROM for is some gcr encoding/decoding tables. Well i never comment anything in my sources, sorry.
There'll be some new versions of the loader, being even faster (a speed similar to interleave 3.5 or something) and easier to use (no specific interleave needed any more to gain maximum performance). I also found a way to change the VIC bank while loading without masking anything (LDA #%00-%11, STA $DD00 is enough, no probs with irqs between the lda and sta with masking) and also to write anything to $dd00 while the loader is idling (so DriveLok can be forgotten).
Zagon: Can't comment on it, don't even have a ROM disassembly. Seems useful, though. Not using the ROM anyways... Once my disk system/calculation progs are enabled, i have control over 2k, afterwards JMP ($FFFC) ;) ... |
| |
cadaver
Registered: Feb 2002 Posts: 1160 |
From comp.sys.cbm I got a suggestion to do a JSR $d005 (Initialize) before exiting the drivecode. The initialize routine does JSR $d042 (Load BAM) in turn. This might do the trick as well? |
| |
Zagon Account closed
Registered: Apr 2002 Posts: 14 |
I expect jmp $(FFFC) or jsr $d005 will work to that effect too :)
But doesn't these routines reset the devicenumber? What if you have software-renumbered your drive? One way to do this is action replay command @8=9 so it's easy to test.
Back in the old days I used to renumber my internal 128D drive to 9, because it was broken, and use an external 1541 as 8 instead as many programs were hardwired to use 8.
This setup also made me hate loaders using the ATN line for transfers :)
By the way, there's a great htmlized dissassembly of the 1541 at http://www.ffd2.com/fridge/ .
|
| |
cadaver
Registered: Feb 2002 Posts: 1160 |
Good point! I tested and the drive number reprogramming survived $d005 call. |
Previous - 1 | 2 - Next |