25 March 2010, 20:05 | #161 |
Registered User
Join Date: Mar 2010
Location: Saratoga, CA / US
Posts: 12
|
|
25 March 2010, 20:06 | #162 | ||
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,865
|
Cool! Gotta check your version in a sec! "I'm a bit rusty", yeah, right. ;P
Quote:
Quote:
|
||
25 March 2010, 20:18 | #163 |
Registered User
Join Date: Mar 2010
Location: Saratoga, CA / US
Posts: 12
|
After loading an unspecified number of tracks to $8000 AllocMem() would not have helped, so might as well leave it as it is.
I had a brief idea about AllocMem()ing a big chunk for the loader, MFM buffer, and loaded program, but the loaded program itself is presumably assembled for an absolute address etc... Coming up: bootblock trackloader with amiga hunk loader & relocator? I think not EDIT: loader is already AllocMem()ed of course but still... Last edited by zaz; 25 March 2010 at 20:28. Reason: improving |
25 March 2010, 20:37 | #164 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,865
|
Quote:
That thought actually crossed my mind too. But it would only work if there are no absolute addresses used anywhere. It would be clean and safe! Last edited by StingRay; 25 March 2010 at 20:43. Reason: "typed too fast" typo ;D |
|
25 March 2010, 20:52 | #165 |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,865
|
I checked your version and I can show you what I meant with "I wanted to keep the code readable" and thus didn't use lea dsklen,a5:
Code:
move.w #%0000000000000010,intreq(a5) ;clear disk interrupt bit Code:
move.w #%0000000000000010,intreq-dsklen(a5) ;clear disk interrupt bit |
25 March 2010, 21:09 | #166 |
68k
Join Date: Sep 2005
Location: Somewhere
Posts: 830
|
@Toni, zaz - Thank you for information.
If I understand correctly. Bootblock code is allocated by AllocMem and is not necessary to think about stack pointers relocation, right ? Mean we should use AllocMem for buffer. I know The OS is for wimps |
25 March 2010, 21:10 | #167 |
Registered User
Join Date: Mar 2010
Location: Saratoga, CA / US
Posts: 12
|
@StingRay: Check again, this is what BASEREG does and why I changed all custom reg EQU from $000 etc to $dff000 etc.
Last edited by zaz; 25 March 2010 at 21:11. Reason: clarified who the comment was directed at |
25 March 2010, 22:26 | #168 | ||
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,585
|
Quote:
Quote:
|
||
25 March 2010, 22:36 | #169 |
Registered User
Join Date: Mar 2010
Location: Saratoga, CA / US
Posts: 12
|
Ok 360 bytes version attached.
Last edited by zaz; 25 March 2010 at 22:40. Reason: Am I going cross-eyed? Source assembles to 360 bytes, not 366 |
26 March 2010, 09:35 | #170 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,865
|
Quote:
Edit: I never used BASEREG, looks like a nifty feature! =) And I missed that you changed the custom reg equates, now it does make sense to me. Allocating memory works w/o any problem in the bootblock (see my Bootblock intro for a proof). Besides, the machine has not been taken over at the time I'd allocate memory so it is still the safest (=cleanest) approach as long as no absolute addresses are used anywhere. Last edited by StingRay; 26 March 2010 at 09:51. |
|
18 May 2013, 11:07 | #171 |
FPGAmiga rulez!
Join Date: Dec 2007
Location: South of France
Age: 51
Posts: 155
|
Hello,
FYI, I am using the trackloader code in a verilog testbench to check the correct functionning of Paula / disk emulation. I think I spotted a bug line 403: bne.s .time_not_expired It should be a BEQ not a BNE since ICR bit is set when timer A transitions from 0000 to FFFF. What do you think ? Regards, Frederic |
18 May 2013, 18:12 | #172 |
gone
Join Date: Apr 2007
Location: completely gone
Posts: 1,596
|
Yes, it should. Already fixed in my own version of the trackloader a long time ago - just never said anything about it here.
|
18 May 2013, 20:44 | #173 | |
FPGAmiga rulez!
Join Date: Dec 2007
Location: South of France
Age: 51
Posts: 155
|
Quote:
There is actually another one in the Disk DMA enable instruction, it should be: move.w #%1000001000010000,(a0) ;enable disk DMA Bit #9 has to be set too. Regards, Frederic |
|
18 October 2022, 16:42 | #174 |
Registered User
Join Date: Oct 2022
Location: Switzerland
Posts: 3
|
Hi guys, many thanks for this interesting thread.
There's another bug when you try to read from track 1. I added something like this to line 359: Code:
cmp.b #1,d0 bne .notTrack1 bclr.b #2,(a6) .notTrack1: Last edited by JokerX; 18 October 2022 at 19:18. |
18 October 2022, 17:18 | #175 | |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,536
|
Quote:
cmp.b $1,d0sounds bad to me. Maybe you meant cmp.b #1,d0. |
|
18 October 2022, 19:18 | #176 |
Registered User
Join Date: Oct 2022
Location: Switzerland
Posts: 3
|
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
HD loader example | st! | Coders. General | 4 | 16 October 2012 21:56 |
Game loader stuck on certain track after save state restore | andreas | support.WinUAE | 2 | 26 March 2011 19:59 |
Can't transfer Supaplex cause of CSL track loader ! | Vollldo | support.Games | 4 | 12 March 2011 21:51 |
Hardware File Loader | h0ffman | Coders. General | 9 | 02 December 2010 16:40 |
mfm/custom regs/track loader | snyp | Coders. General | 9 | 06 June 2006 19:42 |
|
|