| |
Cybernator
Registered: Jun 2002 Posts: 154 |
Disk ID causing trouble
Apparently when the 1541 seeks a track (using the ROM routines), it _doesn't_ ignore the ID which is inside the header block, but compares it to the ID stored on zeropage (can't recall the exact address right now). The seek command is issued by the "execute" jobcode ($e0) and, unless I loaded something from the disk before, the seek fails. To overcome the problem, I invoke the initialize routine at $d005 as first thing in my loader. Now two problems arise:
1. Unless run on a stock 1541, the loader locks up immediately (e.g. SpeedDOS)
2. If I flip the disk, I need to invoke "initialize" once again, but for some reason it fails this time (locking up). And I'm dangerously low on memory, so I cannot write my own routines which would eventually ignore the ID.
A simple solution is to format both sides with the same ID, but that would complicate copying, which is completely undesirable. I've been trying to catch up something in AAY1541, but no luck so far.
Any suggestions? Is there a way to tell DOS to ignore the ID, or set it as unknown so that DOS reads it from disk before seeking?
Btw, the problem might actually be occuring while seeking a sector using the routine at $f50a. |
|
... 10 posts hidden. Click here to view all posts.... |
| |
Kisiel Account closed
Registered: Jul 2003 Posts: 56 |
Murdock I think it worst solution to fix this problem. As Graham sayed "Shortening the sense will cause a lot of trouble".. the problems will come then you change disk to even other side and traying to write some things with wrong ID (old). To fix this problem you must check every time disk ID before read and write.... for me it's stupid solution. |
| |
V-12
Registered: Nov 2003 Posts: 206 |
Kisiel: check this: it works. ask Reiter:
http://www.filety.lh.pl/index.php?strona=arty/sprzet/pamietnik/..
greetz
Pawel |
| |
Kisiel Account closed
Registered: Jul 2003 Posts: 56 |
murdock this site does not give us any improvments. After adding switch , you have to press the button on every disk change. For me it's very not convenient solution. BTW we talking about 0,2 to 0,5 Eu and few minutes of work... isn't??? Rom change will cost much more. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
A ROM change doesn't help anything. The drive still cannot detect disk changes and still doesn't know when to look for a new ID. |
| |
Kisiel Account closed
Registered: Jul 2003 Posts: 56 |
hmm I have idea to fix this problem, add switch to closing device. So if you have 1541-II you must add switch over the header (placed on top cover of disk drive.. glued or something.. inside cover) and this solution works as is:
when you oppening door drive, the steel plate inside drive will press the button (swich) and will give information abut changes to cpu. So now you will have mechanical detector :o) |
| |
TNT Account closed
Registered: Oct 2004 Posts: 189 |
Better idea would be adding monostable multivibrator and send 50 ms low pulse every time the real protection status changes from high to low. That way 1541 DOS detects disk changes but disk is still write enabled. |
| |
Graham Account closed
Registered: Dec 2002 Posts: 990 |
I've got an even better idea: Leave the write protect sense in place and only deactivate it when you need it deactivated. |
| |
TNT Account closed
Registered: Oct 2004 Posts: 189 |
Probably the best idea is to buy disk notcher :) |
Previous - 1 | 2 - Next |