| |
Stainless Steel
Registered: Mar 2003 Posts: 966 |
Sid Duzz It
Hi'yall,
I was wondering who else is using Shape's SDI editor around here. I would like to talk about the editor with other users about their experiences with it and maybe some technical blah blah aswell.
Cheers! |
|
... 169 posts hidden. Click here to view all posts.... |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
yeah, let geir see your worktune, maybe he can give a crucial hint to fix stuff. |
| |
Magnar
Registered: Aug 2009 Posts: 61 |
Finally, it's my turn to dump a problem into this thread. :)
I've made a song, using the v2 B7 normal speed routine.
When I compile the player and musicdata together in the Shape modified Turbo assembler, it works fine when I have the $0c00 and $1000 as starting pointers for the code of the player+musicdata etc.
Now, I need to recompile the song to $e000 instead. When I try to change the *=$1000 to *=$e000, it f*cks up when I hit F4 to compile the assembler code right after pass 1, with a nice error message of: illegal quantity
Ok, so.. just to try things differently, I changed $0c00 to $e000 and the music data from $1000 to $e400. Same error.
I then tried to change things from $0c00 to $4000 and $4400, and then ended up with branch errors...!
Changed back to $0c00 and $1000 as original, and the compile works fine....
Go figure, tell me what I'm doing wrong! :)
/Cheers Magnar
|
| |
Magnar
Registered: Aug 2009 Posts: 61 |
After some more experimenting in TASM, these are my results:
If I change $0c00 around to $0c12 or $1000 or $1436 or whatever, and the musicdata from $1000 to $2000 or $2402 or $2632 etc... as long as the compilation doesn't overwrite the sourcecode in TASM (which starts apparently around $48eb), it works fine to modify the starting pointers of the player and the music data.
All of this indicates that by changing the start pointer of either player or musicdata works as it should by changing the *= xxxx for each part.
However, trying to compile the musicdata to $e000 just doesn't work. It gives an error quantity error on line 479, which is:
*= *-((*-clear_wav)*rem_voff)
Why Turbo Assembler isn't able to compile this song to $e000 seems very strange to me.
Could it be that it just doesn't support placing code in $e000-$ffff area due to zeropage restrictions for TASM? Is there away around to manipulate this to make it work?
I remember that in old "v18" GT editor and player, all songs was saved and dumped in $e000 area, so I don't think the problem is within the player. It has to do with limits in the TASM somehow?
Good suggestions for an solution is highly appresiated!
Cheers Magnar
EDIT:
I found out that it is TASM that uses memory area $e000-$ffff for labels. I even tried to compile the song as far out as possible (in my case: $e644-$ffff). Which actually made a success in the compile, but the song was f*cked up.
Also, when I got back into TASM, the labels in the source code was altered, so it overwrote something nevertheless.
Is there a way to compile TASM source codes through VICE64 with a external assembler tool which doesn't actually use the memory area of the C64 emulation?
I am looking for work-arounds...
/Magnar
|
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Because TASS is using 9000-CF00 of RAM, if you want to compile to above 9000, you must use the .offs option.
How to do:
.offs $3000 ; (E000+3000 = $1000)
*=$E000
music player+data here.
now the music will compile to $E000 but be relocated for $1000, so you can save it from there.
S"tune",8,1000,2000,e000 ;save+give startaddress e000 on file |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
it is not possible to use another TASS for SDI 2 player source, because the asm is hacked to handle some very complex *=*x* something labels.. |
| |
Spinball
Registered: Sep 2002 Posts: 89 |
i have never used the sdi-tass but in all other tass-versions i have used in the past you could assembel to files.
try "backarrow"+5 and enter a filename. this way you can assemble code that overlaps memory used by the sources, labels or tass. |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
Quote: i have never used the sdi-tass but in all other tass-versions i have used in the past you could assembel to files.
try "backarrow"+5 and enter a filename. this way you can assemble code that overlaps memory used by the sources, labels or tass.
this only works if the whole source is in 1 memchunk.
when 0c00-0e00 and 1000-2000 etc. it dont work.. not in BMTASS anyway. |
| |
Magnar
Registered: Aug 2009 Posts: 61 |
Quote: Because TASS is using 9000-CF00 of RAM, if you want to compile to above 9000, you must use the .offs option.
How to do:
.offs $3000 ; (E000+3000 = $1000)
*=$E000
music player+data here.
now the music will compile to $E000 but be relocated for $1000, so you can save it from there.
S"tune",8,1000,2000,e000 ;save+give startaddress e000 on file
Tried it, but it doesn't work... The song playback is corrupted.
And now I don't know if the reason for that is because the "music shower" from $0c00-1000 is having zeropage issues with init and playback the song from $e000 area, or... if the song I compiled into $1000 and saved to $e000-fa00 isn't working after the relocation.
What a mess! :D How to proceed?
Cheers |
| |
SIDWAVE Account closed
Registered: Apr 2002 Posts: 2238 |
i made a minimal player for Magnar to fix his issues... because changing the SDI 2 standard play in 8 places is stupid.. :) |
| |
Devia
Registered: Oct 2004 Posts: 403 |
Use your favorite x-assembler by changing all the *= *-((*-clear_wav)*rem_voff) into what it really is: Conditional assembly.
Maybe some x-ass even supports this syntax?
|
Previous - 1 | ... | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | ... | 18 - Next |