Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Kick Assembler
2006-06-07 21:34
Slammer

Registered: Feb 2004
Posts: 416
Kick Assembler


I recently did a new 6510 assembler and I hereby make it open to the public so you can use it too.

Kick Assembler is the combination of an assembler for doing 6510 machine code and a high level script language. With the assembler functionalities, you can write your assembler programs, and with the script language, you can write programs that generate data to use in the assembler programs. This could be data such as sine waves, coordinates for a vector object, or graphic converters. In addition, you can combine assembler commands and scripting commands which is a powerful combination. A little example: Where other assemblers can do simple unrolling of loops, Kick Assembler can base the unrolling of a loop on a list generated by the script language and select the content of the loop body based on the content of the list. This makes it more flexible when generating speed code.

The script language can handle values such as Numbers, Booleans, Strings, Lists, Vectors, Hashtables, Matrixes and you can define your own structures if the build in doesn’t meet your needs. The assembler contains a replica of the java math library + a special 3d library for doing vector math (Rotation, move and projection matrixes). You can also define your own functions.

Finally, I want to mention that the assembler contains some special objects that makes it easy to import graphics (and convert it into you own spooky format which fits into the part you are working on) and music. Since finding the correct play address for a tune has recently been an issue in the “*stupid* ASM Sid Player Example”- thread I will here show how it’s done in kick Assembler. You simply load you PSID file into a variable in the script language and then read the things you need to know from the variable.

// Load the music into an object in the script language
.var music = LoadSid("C:/C64Music/Tel_Jeroen/Closing_In.sid")


// init the music 
lda #music.startSong-1
jsr music.init

// play the music 
jsr music.play 


(The full example is listed in the manual)

Feel free to check out the assembler at http://www.theweb.dk/KickAssembler.htm
 
... 251 posts hidden. Click here to view all posts....
 
2009-05-31 07:28
LOGAN
Account closed

Registered: Aug 2003
Posts: 71
Hey Slammer, thanks for working on KickAss, it kicks ass. Things like supporting some formats like images and PC formatted SID files is great, innovative and useful as is the import c64 binaries addition. Also macros are useful to create your own libraries. Memory maps generation are also nice.

I switched for compiling MOTAS to KickAss and while it has it's own quirks (ie // as remarks, only lower case opcodes/addressing, specific syntax it's an assembler with advanced options. I hope more and more people will switch to KickAss.

Keep up the good work!
2009-05-31 18:24
Slammer

Registered: Feb 2004
Posts: 416
Mix256: Good observation. I Just upped version 3.2 which takes care of the problem.

Logan: Thanks.
2009-05-31 18:41
Mix256
Account closed

Registered: Dec 2008
Posts: 26
Great, but their length are now -1... :)

-----
v2.25
-----
$62ac-$6bb5 Object Routines - Common
*$6e00-$7966 Object Routines - World 1
*$6e00-$779e Object Routines - World 2

-----
v3.20
-----
$62ac-$6bb5 Object Routines - Common
*$6e00-$6dff Object Routines - World 1
*$6e00-$6dff Object Routines - World 2

2009-05-31 19:07
Slammer

Registered: Feb 2004
Posts: 416
I upped a new one.. Try again :-)
2009-05-31 19:38
Mix256
Account closed

Registered: Dec 2008
Posts: 26
Works like a charm, thanks!

KNG wouldn't (become to) exist if it wasn't for this excellent asm. Great work!
2009-07-21 12:28
assiduous
Account closed

Registered: Jun 2007
Posts: 343
Quote: Cavey: I got the files, and they assembled ok. Jammer told me the problem comes when you place the files in a cetain way, but I havn't been able to reconstruct it.

i get "parsing,null" using plain kickass.jar prog.asm -log textfile.txt if an exclamation mark is used somewhere in the dir path.
2009-07-21 15:04
Slammer

Registered: Feb 2004
Posts: 416
Could you be a little more specific of how you get this error?

I just tried -log test!test/a!b.txt and it works ok.

Then i tried and an exclamation mark in the Kick!Assembler dir, which works fine too:
C:\Download\Kick!Assembler\Examples\MusicIrq>java -jar ..\..\KickAss.jar MusicIr
q.asm
//------------------------------------------------------
//------------------------------------------------------
//   Kick Assembler v3.4 - (C)2006-2009 Mads Nielsen
//------------------------------------------------------
//------------------------------------------------------
parsing
flex pass 1
flex pass 2
Output pass
Writing file: MusicIrq.prg

2009-07-21 15:40
assiduous
Account closed

Registered: Jun 2007
Posts: 343
test.asm:

.pc= $1000

rts


along with the latest version of KickAss.jar located in D:\kickasstest!\

command prompt:

D:\kickasstest!\KickAss.jar test.asm -log textfile.txt

the content of textfile.txt:

parsing
null


then "!" is removed from the dir name and the following prompt is run:

D:\kickasstest\KickAss.jar test.asm -log textfile.txt

the content of textfile.txt:

parsing
flex pass 1
Output pass
Writing file: test.prg
2009-07-21 17:11
Slammer

Registered: Feb 2004
Posts: 416
Ok, now I reconstructed it. You found a bug in Java!! It handles resources wrong in jar-files when the the dir-path ends with an !. So C:\KickAssTest! is bad and but C:\KickAssTest!x is ok. Just place the jarfile in a dir that doesnt end with !.

The funny thing is that if you unpack the jar file to KickAss!, set the CLASSPATH and run KickAssembler without the jarfile, then it works ok. So if you want dirs ending with '!' you can have it, but its a bit easier just to rename you dir.

.. unzip to KickAss!, then 
C:\KickAssTest!>set CLASSPATH=c:\KickAssTest!\KickAss!

C:\KickAssTest!>java cml.kickass.KickAssembler test.asm

parsing
flex pass 1
Output pass
Writing file: test.prg

C:\KickAssTest!> 

2009-07-21 17:21
Slammer

Registered: Feb 2004
Posts: 416
Thread is closed, use "Kick Assembler Thread 2" instead.
Previous - 1 | ... | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 - 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
Peacemaker/CENSOR/Hi..
deetsay
Mike
MWR/Visdom
icon/The Silents, Sp..
WVL/Xenon
csabanw
MCM/ONSLAUGHT
Guests online: 100
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Censor Design  (9.3)
5 Triad  (9.3)
Top Original Suppliers
1 Derbyshire Ram  (9.7)
2 Fungus  (9.3)
3 Black Beard  (9.2)
4 Baracuda  (9.2)
5 hedning  (9.1)

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