|
|
Slammer
Registered: Feb 2004 Posts: 295 |
Kick Assembler Thread 2
The previous thread took a little long to load, so this is a new fresh one.. |
|
|
... 414 posts hidden. Click here to view all posts.... |
| |
JackAsser
Registered: Jun 2002 Posts: 935 |
Quote: @Cruzer: can you show me ex. of precalc how do i
send the $400-$500 to a list and store it back.
i know how do create bytes from list but didn't see
the opposite.
What exactly are you trying to accomplish?!? I mean... the assembler can not know what the memory contents on the real device are when assembling.
If you would like to simply add the value 6 to all bytes between $400-$500 you either write a simple assembly loop, or use Lists and macros to generate speed code. |
| |
The Dr.j
Registered: Feb 2003 Posts: 73 |
i want to do something like that.. but i guess its not possible...
.macro mymacro(location) {
.define mymacro {
.var mylist=List()
.for (i=0;i<256;i++)
mylist.add (value of location)
mylist.add ($06) - lets say add to all elements..
//;dump to memory
.fill mylist.size(),mylist.get(i)
}
}
:mymacro($0400)
|
| |
Cruzer
Registered: Dec 2001 Posts: 720 |
Nope, not possible. But since you're in control of what gets into $0400-$0500 in the first place, you should wait with the dumping to memory and keep the data elsewhere so it can be used in the macro. And when all calculations are done, it's time for dumping. |
| |
The Dr.j
Registered: Feb 2003 Posts: 73 |
Ok Guyz..10x for the help |
| |
Pantaloon
Registered: Aug 2003 Posts: 83 |
Slammer, the bug with .importonce and .struct is really annoying for me :) could you take a look at it and perhaps fix it :) please :)
It's very easy to reproduce:
File1
.importonce
.struct TRACKSECTOR { track, sector }
fILE2
.import source "File1"
.var tracksector_hashtable = Hashtable()
.eval tracksector_hashtable.put("STARTUP",TRACKSECTOR(1,0))
parsing
flex pass 1
.import source "File1.s"
.var tracksector_hashtable = Hashtable()
.eval tracksector_hashtable.put("STARTUP",TRACKSECTOR(1,0))
^
Error: Unknown function : TRACKSECTOR
/Panta |
| |
Slammer
Registered: Feb 2004 Posts: 295 |
I'll check it in the weekend.
(I guess the missing .s in the sourcecode is a typo) |
| |
Pantaloon
Registered: Aug 2003 Posts: 83 |
yes that is a typo :) |
| |
Slammer
Registered: Feb 2004 Posts: 295 |
Ok, bug is corrected. There will be an official released version later, but until then you can use this:
www.theweb.dk/tmp/KickAss.jar
|
| |
Pantaloon
Registered: Aug 2003 Posts: 83 |
thanks alot slammer!!! :) |
| |
Shadow
Registered: Apr 2002 Posts: 264 |
I apologize in advance for discussing non-C64 related stuff on CSDB, but since this is the defacto thread for everything KickAssembler related, I'll take my chances here.
I'm using kickass for my Atari 2600 coding, and I have some minor issues when doing bankswitching stuff.
For example, say I have two 4k banks, each should be assembled with $1000-$1fff addressing. Then I can do like this:
// Bank 1
.pc=$1000
lda foo
sta bar
..
.pc=$1400 "Some routine"
lda this
sta that
...
// Bank 2
.pc=$2000
.pseudopc $1000
{
lda foo
sta bar
..
}
And it works fine. However, say I want to place a routine at $1400 in the second bank. Then I have to break the pseudpc block, set the pc to $2400, and then start a new pseudopc block, like this:
// Bank 2
.pc=$2000
.pseudopc $1000
{
lda foo
sta bar
..
}
.pc=$2400
.pseudopc $1400
{
lda foo
sta bar
..
}
While it works, it gets a bit cumbersome to keep track of all the pc's and pseudopc blocks when you get more than a few.
Anyone have a good idea on how to work around this?
|
| Previous - 1 | ... | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | ... | 43 - Next |