It is currently Fri Apr 19, 2019 12:20 am




 Page 2 of 3 [ 40 posts ]  Go to page Previous  1, 2, 3  Next
Author Message
 Post subject:
PostPosted: Sun Sep 16, 2007 7:44 am 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
OK.

As far as I see it now, it is not so easy to completely bug-out this BUG.

But if you are satisfied with 8MB partitions in stead of 16MB, you can fix the bug the way as described.

The problem seems to be that the "check partition info" routine uses the same routine as the normal drive acces routine. If this routine was a seperate one, or when the Partition info was already fixed in memory, this problem was gone.

It takes a rewritten OS to fix this.

but... with the LDA #$80 in stead of LDA #$48 on mem location $c984 it works great on Single Density partitions.

$FF won't do the trick, because double density is 256 bytes a sector and not 255. So when you change it to #$FF it still miss last byte on the first double dens sector. And besides... I have no idea what might happen when this could be #$0100, and then you run this on single density partitions. Strange behaviour I guess.

Only thing i really need to know:

Is it ok to change that LDA #$48 into LDA #$80.

I did already erase the Cassette Driver from OS.

If there are more idea's of comments, or ideas to fix this further, let me know.

For now I will test this better.
Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 7:57 am 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
WOEHAAAAAA

Fixed this also for Double Density.

Strange fix...

I hope Mr. Atari could tell something more about it.

I have changed

Memlocation c984

LDA #$48 ->>>> LDA #$00

I don't think this is a bright solution.
I think this will result into problems when you use Single Density partitions.

Or other problems?

I'm testing further.

Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 8:25 am 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
Test ROM 3.1

Hi Folks,

This is MyIDE 3.1 with:

* SHIFT + RESET = Cold Boot atari
* keyboard controled Image Routine (joystick still works)
* NO Cassette Driver
* Hopefully a copy<>partition-bug fixed

External cart version.

If this thing works, I'll make an internal version.

You still need the joystick to copy to or from images.

When you want to load an image. Chose one with the arrows, and press enter.

Marius

p.s. attachment deleted. Use updated version below.


Last edited by Sysop*Marius on Sun Sep 16, 2007 2:27 pm, edited 1 time in total.

Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 12:39 pm 

Joined: Sat Sep 13, 2003 12:21 am
Posts: 251
Marius, there's your bug!

The "load new partition info" at $C959 overwrites $308. It should be saving it and then restoring it before it returns back to the main MyIDE SIO code. The main code compares the number of bytes read (at $C8A4) to what's in $308.

I don't think you want to replace the byte at C959, as that might cause the code to overwrite buffers in a user program.

Is there enough space in the ROM to fix this by adding a PHA/PLA for $308?



_________________
MyIDE Tools
Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 12:47 pm 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
At this moment I'm testing the fix as posted...

I did not change anything on $c959, but on $c984.

Could that result in problems, like you described?

I have to take a look at what you said.

What part of routine should be rewritten? I have space, because I removed the Cassette Handler.

Thanks
Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 1:20 pm 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
I'll check on that later (new routine)

Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 2:00 pm 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
Yes I have space!!!

This is my idea:

C984 = JMP $FD00

on FD00

LDA $0308
PHA
LDA #$48
LDX #$00
LDY #$04
JSR $C959
BMI ERROR
PLA
STA $0308
JMP $C98F ; continue with next process
ERROR LDA #$FF
RTS

This fits perfectly.
Let's check it out.

Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 2:27 pm 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
This works indeed!

Here is the new ROM.

I'll erase the previous one.

Marius

p.s. I also have rom for internal... but I want to test it first.


There are images and/or files attached to this posting. You must be logged-in to view or download this content.


Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 2:33 pm 

Joined: Sat Sep 13, 2003 12:21 am
Posts: 251
Nice work!

So this ROM has no PBI and no cassette drivers right?

I'll try it out here too. I was running SpartaDOS with ATOS with that older ROM, so I'll try that out again and see if it works still. And copy some files back and forth between partitions too.



_________________
MyIDE Tools
Offline
 Profile  
 
 Post subject:
PostPosted: Sun Sep 16, 2007 2:49 pm 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
I took the ORIGINAL MyIDE 3.1 rom and erased the C: handler.

As far as I know the original did not have PBI routines.

Even that is possible to arrange, but then I have to study real hard, and that is a little too much for now....

On this post I attach the INTERNAL rom. Seems to work great.

Addressed to $d100 ofcourse.

Marius

p.s. In a few days I will write some more info. Where all my custom routines are stored. etc.

btw. I found a little ugly thing in my image-choser. The keybuffer is not reset when pressed a (arrow)key. So when you boot a BASIC disk this results in a character on the screen after booting. I will fix that later. I'm tired of burning and erasing eproms now :s


There are images and/or files attached to this posting. You must be logged-in to view or download this content.


Offline
 Profile  
 
 Post subject:
PostPosted: Mon Sep 17, 2007 3:42 am 
User avatar

Joined: Sun Nov 02, 2003 8:15 am
Posts: 1354
Location: netherlands
Shawn Jefferson wrote:
The "load new partition info" at $C959 overwrites $308. It should be saving it and then restoring it before it returns back to the main MyIDE SIO code. The main code compares the number of bytes read (at $C8A4) to what's in $308.


Nice work Marius!
Thank you!

Some stupid bug I have looked over for this long.....

Cheers,
Sijmen.


Offline
 Profile  
 
 Post subject:
PostPosted: Mon Sep 17, 2007 9:27 am 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
You're Welcome Sijmen,

It took me also long testing and thoughts to find where the problem was.

This discovery (that LDA #$48 thing) made things clear to Shawn, so he could say what the REAL bug was. After he wrote this, lights went on here, and was the fix-routine a piece of cake. Happily I already had some space left, so I had not to re-compile the whole OS.

Hehe Shawn en Marius... like Waldorf and Stadler (Muppet Show)

Anyway.
I'm VERY happy with 3.1... it is such a brilliant MyIDE release.

I'm very curious what the experiences of other users are!

Greetz
Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Mon Sep 17, 2007 1:54 pm 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
I was wondering:

Does it matter that this HDINFO routine is stored on FD00 ('far' away from the rest of the routine on Cxxx)?

Might this cause timing problems?

Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Wed Sep 19, 2007 11:08 am 

Joined: Thu Feb 05, 2004 10:34 am
Posts: 259
Location: NL
At this moment I still noticed problems with copying.

Problems I did not have with the 'not so nice' solution (LDA $48 -> LDA #$00) ....

So I think storing this HDINFO routine on FD00 is causing timing trouble.

I hope someone could tell me if that is a possible option.

Perhaps this problem lies somewhere else (PSU, bad HD, etc.) but I have the feeling it is the distance between the Cxxx routines and FDxx routine.

Marius


Offline
 Profile  
 
 Post subject:
PostPosted: Wed Sep 19, 2007 8:23 pm 

Joined: Sat Sep 13, 2003 12:21 am
Posts: 251
Sysop*Marius wrote:
So I think storing this HDINFO routine on FD00 is causing timing trouble.

I hope someone could tell me if that is a possible option.

Perhaps this problem lies somewhere else (PSU, bad HD, etc.) but I have the feeling it is the distance between the Cxxx routines and FDxx routine.


I don't think it is very likely. Can you reproduce the problem easily?



_________________
MyIDE Tools
Offline
 Profile  
 
Display posts from previous:  Sort by  
 Page 2 of 3 [ 40 posts ]  Go to page Previous  1, 2, 3  Next


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

cron