Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
 Welcome to our latest new user nurd ! (Registered 2024-06-16) You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Kick Assembler Thread 2
2009-07-21 17:20
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....
 
2017-07-04 22:21
Jammer

Registered: Nov 2002
Posts: 1293
Normal is boring? ;)
2017-08-10 13:25
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?
2023-03-29 21:34
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
2023-03-30 06:41
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.
2023-03-30 20:00
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.
2023-06-13 09:46
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.
2023-06-27 05:40
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,
2023-06-27 17:09
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).
2023-06-27 21:19
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.
2023-07-01 08:58
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
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Nordischsound/Hokuto..
t0m3000/HF^BOOM!^IBX
Didi/Laxity
Flavioweb/🇮🇹HF..
d0c
Barfly/Extend
MCM/ONSLAUGHT
Nith/TRIÉ…D
aeeben
Guests online: 132
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.7)
5 Edge of Disgrace  (9.7)
6 Aliens in Wonderland  (9.6)
7 Comaland 100%  (9.6)
8 No Bounds  (9.6)
9 Uncensored  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 Layers  (9.6)
2 Cubic Dream  (9.6)
3 Party Elk 2  (9.6)
4 Copper Booze  (9.6)
5 Rainbow Connection  (9.5)
6 It's More Fun to Com..  (9.5)
7 Dawnfall V1.1  (9.5)
8 Daah, Those Acid Pil..  (9.5)
9 Birth of a Flower  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Nostalgia  (9.4)
2 Oxyron  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 SHAPE  (9.3)
Top Original Suppliers
1 Black Beard  (9.7)
2 Derbyshire Ram  (9.5)
3 hedning  (9.2)
4 Baracuda  (9.1)
5 Jazzcat  (8.6)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.059 sec.