![]() |
![]() |
#161 |
Registered User
Join Date: Mar 2010
Location: Lkpg/Swe
Posts: 12
|
|
![]() |
![]() |
#162 | ||
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Cool!
![]() Quote:
Quote:
|
||
![]() |
![]() |
#163 |
Registered User
Join Date: Mar 2010
Location: Lkpg/Swe
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 |
![]() |
![]() |
#164 | ||
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
Quote:
![]() Quote:
![]() ![]() Last edited by StingRay; 25 March 2010 at 20:43. Reason: "typed too fast" typo ;D |
||
![]() |
![]() |
#165 |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
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 ![]() |
![]() |
![]() |
#166 |
68k
Join Date: Sep 2005
Location: Somewhere
Posts: 829
|
@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 ![]() |
![]() |
![]() |
#167 |
Registered User
Join Date: Mar 2010
Location: Lkpg/Swe
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 |
![]() |
![]() |
#168 | ||
Natteravn
Join Date: Nov 2009
Location: Herford / Germany
Posts: 2,539
|
Quote:
Quote:
|
||
![]() |
![]() |
#169 |
Registered User
Join Date: Mar 2010
Location: Lkpg/Swe
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 |
![]() |
![]() |
#170 | |
move.l #$c0ff33,throat
Join Date: Dec 2005
Location: Berlin/Joymoney
Posts: 6,863
|
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. |
|
![]() |
![]() |
#171 |
FPGAmiga rulez!
Join Date: Dec 2007
Location: South of France
Age: 50
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 |
![]() |
![]() |
#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.
|
![]() |
![]() |
#173 | |
FPGAmiga rulez!
Join Date: Dec 2007
Location: South of France
Age: 50
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 |
|
![]() |
![]() |
#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. |
![]() |
![]() |
#175 | |
Defendit numerus
Join Date: Mar 2017
Location: Crossing the Rubicon
Age: 54
Posts: 4,491
|
Quote:
cmp.b $1,d0sounds bad to me. Maybe you meant cmp.b #1,d0. |
|
![]() |
![]() |
#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 | |
![]() |
||||
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 |
|
|