| |
Slammer
Registered: Feb 2004 Posts: 416 |
Kick Assembler Thread 2
The previous thread took a little long to load, so this is a new fresh one.. |
|
... 590 posts hidden. Click here to view all posts.... |
| |
Dr.j
Registered: Feb 2003 Posts: 276 |
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: 1048 |
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. |
| |
Dr.j
Registered: Feb 2003 Posts: 276 |
Ok Guyz..10x for the help |
| |
Pantaloon
Registered: Aug 2003 Posts: 124 |
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: 416 |
I'll check it in the weekend.
(I guess the missing .s in the sourcecode is a typo) |
| |
Pantaloon
Registered: Aug 2003 Posts: 124 |
yes that is a typo :) |
| |
Slammer
Registered: Feb 2004 Posts: 416 |
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: 124 |
thanks alot slammer!!! :) |
| |
Shadow Account closed
Registered: Apr 2002 Posts: 355 |
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?
|
| |
andym00
Registered: Jun 2009 Posts: 44 |
In a really tenuous connection to Shadow's question above, but I figure now's the time to ask :) Is there ever likely to be support of the .pc directive for addresses >64K ?
It would make life assembling cartridge based stuff that's destined for >64K cartridge images a lot easier without a link stage to bolt all the banks together afterwards, and that's the simple case where there isn't code spanning these other banks and you want to share symbols etc..
I don't imagine it's a small change though, but had too ask :)
|
Previous - 1 | ... | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | ... | 60 - Next |