| |
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.... |
| |
Norrland
Registered: Aug 2011 Posts: 14 |
Hellu...
Tried to code some stuff and ran into some problems, searched the manual but haven't found what I'm looking for.
Is it possible to modify names of variables when declaring or adressing them?
Maybe following snippet of non-working-code explains my question (in this example I would like to create 50 lists with the names list_1, list_2, list_3..):
.for (var i=0 ; i<50 ; i++)
.var list_+i=List() |
| |
Knut Clausen
Registered: Apr 2013 Posts: 18 |
Kickassembler won't let you create dynamic variable names like that.
.var myLists = List(50)
.for(var i = 0;i<myList.size();i++){
.eval myLists.add(List())
}
or
.var ht = Hashtable()
.for(var i = 0;i<50;i++){
.eval ht.put("list_" + i, List())
}
will give you what you need |
| |
Norrland
Registered: Aug 2011 Posts: 14 |
Thx Knut, will try that! |
| |
Jammer
Registered: Nov 2002 Posts: 1289 |
I may have spotted parser error. PseudoPC readressing doesn't modify BNE/BEQ branches. I had tough time to spot why my piece of code, relocated to zeropage, jams and Vice monitor ensured me that's the reason. Haven't checked other branches, yet.
edit: I'm probably wrong here. Branch value is unchanged in original piece of code (contained within PseudoPC block) but is correct after relocation. It's relative addressing after all, silly me. Jam trouble is, unfortunately, unsolved so far. |
| |
Cruzer
Registered: Dec 2001 Posts: 1048 |
Jammer: You might have discovered a special feature that detects the coder's handle and changes the output accordingly. :D |
| |
Jammer
Registered: Nov 2002 Posts: 1289 |
LOL xD Usual foolstart of mine. Vice monitor shows branches with absolute value afterwards hence I got confused for a 'while'. BTW, crash solved. I just forgot to remove .zp markers which left after previous version of code - earlier I moved entire interrupt to zp, later only key routines ;) |
| |
chatGPZ
Registered: Dec 2001 Posts: 11114 |
this is not normal method |
| |
Jammer
Registered: Nov 2002 Posts: 1289 |
Normal is boring? ;) |
| |
TWW
Registered: Jul 2009 Posts: 541 |
Hello
I get the following error:
.if (CopyStop-CopyStart >= 256) {
^
Error: The condition must be able to evaluate in first parse
at line 57, column 5 in Asset Manager.asm
I am using the pseudopc directive. I have found a (messy) workaround but wondered if there is a way to allow two parses?
Also, any future plans to allow pseudopc nesting in the future (useful for cartridge images where you need the assembled code pseudopc to $8000, then pseudopc code to $0800 (example) which is to be copied to RAM while it all in fact is located at $2040 in the .crt image. Again, I have a workaround but wondered if this is planned or if there might be some more delicate way to handle this?
EDIT:
Simplified question:
test1:
test2:
.if ([test1 - test2] == 0) .print "This Works!"
.if ([test3 - test4] == 0) .print "This Does Not Work!"
test3:
test4:
Is there a way to get the 2nd .if statement to work without getting the "Error: The condition must be able to evaluate in first parse" issue? |
| |
Joodas
Registered: Oct 2011 Posts: 8 |
Hi lads
I'am trying to configure (https://goatpower.org/2013/09/11/c64-development-with-kick-asse..) KickAss, Notepad++ and VICE (GTK3VICE-3.7-win64) and compile example code. Unfortunatelly Notepad++ returns error:
java -jar "C:\C64\Tools\KickAssembler\KickAss.jar" -log C:\C64\c64error.txt "C:\C64\GoatPowerExample.asm" -libdir C:\noice\C64\ -o "C:\C64\GoatPowerExample.prg" -vicesymbols -showmem -execute "x64.exe -moncommands C:\C64\GoatPowerExample.vs +confirmexit"
; about to start a child process: "java -jar "C:\C64\Tools\KickAssembler\KickAss.jar" -log C:\C64\c64error.txt "C:\C64\GoatPowerExample.asm" -libdir C:\noice\C64\ -o "C:\C64\GoatPowerExample.prg" -vicesymbols -showmem -execute "x64.exe -moncommands C:\C64\GoatPowerExample.vs +confirmexit""
CreateProcess() failed with error code 2:
Do you know how to change command line:
::KickAss & run
java -jar "C:\C64\Tools\KickAssembler\KickAss.jar" -log $(CURRENT_DIRECTORY)\c64error.txt "$(FULL_CURRENT_PATH)" -libdir C:\noice\C64\ -o "$(CURRENT_DIRECTORY)\$(NAME_PART).prg" -vicesymbols -showmem -execute "x64.exe -moncommands $(CURRENT_DIRECTORY)\$(NAME_PART).vs +confirmexit"
to adopt it to the new VICE (GTK3VICE-3.7-win64)?
Thank you in advance |
Previous - 1 | ... | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 - Next |