| |
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.. |
|
... 592 posts hidden. Click here to view all posts.... |
| |
Jammer
Registered: Nov 2002 Posts: 1293 |
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 |
| |
Endurion
Registered: Mar 2007 Posts: 72 |
Error Code 2 is file/path not found.
Make sure the paths are correct, and there's no quoting issue. Also not sure if java can cope with backslashes. Try replacing all backslashes with slashes. Windows has no problems with them. |
| |
Frostbyte
Registered: Aug 2003 Posts: 174 |
Hopefully not too late to the game, but as far as I know x64 doesn't exist anymore on official VICE distributions. If that is the case on yours, change x64.exe to x64sc.exe in the command.
x64 is (was) the less resource-demanding but less accurate C64 emu, whereas x64sc is the more resource-demanding but more accurate one. |
| |
TWW
Registered: Jul 2009 Posts: 541 |
Think I found a bug (and a workaround):
When processing (ZP,X) (Indirect Zero Page,X) inside a pseudocommand, the "AT_IZEROPAGEX" isn't recognized properly.
For example (source = Some (zp,x) type/value):
.if (source.getType() == AT_IZEROPAGEX) - Does not work
.if (source.getType() == -5) - does work.
(-5 seems to be the value connected to AT_IZEROPAGEX which was found by doing a .print source.getType() when passing a (ZP,X) value. |
| |
Frodo
Registered: May 2020 Posts: 2 |
Quote: 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?
Thanks for posting this!
Were you able to get this resolved by any chance?
I have the same issue with Kick Assembler v5.25.
My workaround isn't great either, e.g. bne_perf(*+2)
Thank you, |
| |
TWW
Registered: Jul 2009 Posts: 541 |
Quote: Thanks for posting this!
Were you able to get this resolved by any chance?
I have the same issue with Kick Assembler v5.25.
My workaround isn't great either, e.g. bne_perf(*+2)
Thank you,
Yes, you can do it like that since *+2 is known when you call the pseudo. Another workaraound is to use .label to pre-define memory locations in advance, but for branches and such this isn't a very good solution. Maybee there is a way with segments (as they seem flexible of sorts) but perhaps combersome when dealing with pseudo/macros.
An example is to get a branch-pseudo to determine if a branch should be long or short (bne label or beq *+4 + jmp label) to a label further down your code. Not trivial...
It has been explained that it's a chicken/egg issue as the unresolved label may change depending on the conditional checks (.if(sometthing) - change something) made inside the pseudocommand or macro. What perhaps could solve it is to allow additional passes to try and resolve "resolvable" labels and then tap out if it not able to do it in n times.
Either way, not sure if this is the right forum to discuss this anymore. There is a facebook group which exists (I am not on FB!) which perhaps could yield a response :)
Another feature request: Make assertions which passes silent (or an option to do so). |
| |
Avalanche
Registered: Aug 2002 Posts: 6 |
I am working with Kick-Ass now for a while. Though Slammer is giving his best, I'd love to see Kick-Ass going "open-source". Some things are buggy, some features missing, and sometimes old socks need to be cut off for better understanding of how to do things.
The FB group is a place to post, and others can like it or write comments on it. But thats all about it. Its not really a good way of taking care and responsibility upon a product-like tool. Plus: you cut off anybody else that is willing to help or would take the responsibility to add improvements/features by himself.
When it comes down to Kick-Ass' future its all depending upon Slammer, in good aswell as in bad terms. |
| |
Style
Registered: Jun 2004 Posts: 498 |
Apologies if this has been covered, I havent been following the thread, but two things Id love in kickass:
1) Overloading macros and functions
2) naming parameters in calls, cos it's clearer and will support 1
Thoughts? |
Previous - 1 | ... | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 - Next |