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....
 
2006-06-10 13:07
Krill

Registered: Apr 2002
Posts: 2870
What HCL said. :D
2006-06-10 15:47
Monte Carlos

Registered: Jun 2004
Posts: 351
Nice Story,

sometimes i have the strange feeling, i'm the only c64 coder not involved in any business software development.

I like especially the features to import sid files, because i have changing the jump adresses always when trieing different musics. 2nd i like all the math function for generating tables, what is not even possible in ca65(the complexest 6510 assembler i know) and the graphics converting option for importing pc painted images without having to convert them again after every little pen strike.

What i dislike a little bit is, that kickass uses its own syntax for macros and recyclelabels, which is not compatible with other assemblers like ca65. If that would be the case one could benefit of the advantages of both assemblers.
Btw.: I already wrote me a library for use with ca65, which makes me a little bit bounded.

But this is a very personal opinion, because other people use dreamass or as64 or some other crossass. They cant all be syntax compatible, but perhaps the commonnesses(english for runaways) could be.

Monte
2006-06-11 21:44
Slammer

Registered: Feb 2004
Posts: 416
Monte: Yep. It would be nice if all assemblers had the same syntax. The recycle lables got to look as the do due to some compilier techincal reasons. Cruzer also complained, but now he has gotten used to it.. (TGD actually talked about doing a converter, but I guess it was only talk..)

However, its kewl with feedback, also the things you miss or dislike. The earlier I get it, the easier it is to change. Btw. I just added a .pseudopc directive which will be in the next release (Thanks to Danzig for pointing out that it was missing)
2006-06-14 20:53
Slammer

Registered: Feb 2004
Posts: 416
Kick Assembler is now supported by Relaunch64, but you will have to use the new release wich can be found on the homepage. I also added a .pseudopc command and a fractal example as a little gimmick:

 
.pc = $0400
.function toRe(i) .return -2+2.7*[i-floor(i/40)*40]/39
.function toIm(i) .return -1.6+3.2*floor(i/40)/24
.function mandelbroot(re,im) {
   .var zr = 0
   .var zi = 0 
   .var iter=0
   .for(;[zr*zr+zi*zi]<4 && iter<20;iter++) {
      .var newZr = zr*zr-zi*zi + re
      .var newZi = 2*zr*zi + im
      .eval zr = newZr
      .eval zi = newZi
   }
   .var colors = List().add($20,$0f,$20,$08)
   .return colors.get(iter&3) 
} 
.fill 25*40,mandelbroot(toRe(i),toIm(i))
2006-08-26 10:03
Slammer

Registered: Feb 2004
Posts: 416
Hi Guys

I decided that the Assembler have been stable long enough to make a offical release which can be found here on CSDB. The imporvements and the latest updates can still be found on www.theweb.dk/KickAssembler.htm
2006-08-27 05:22
LordNikon

Registered: Dec 2001
Posts: 42
even runs on mac osx =)
2006-08-27 21:34
raven
Account closed

Registered: Jan 2002
Posts: 137
What HCL & Krill said :)

I still use the good old Turbo Assembler on the 64 (with
some mods).
Using a PC to program for the 64 just takes all the fun out
of it.. (yeah I know I'm wierd ;)
2006-08-28 05:16
Style

Registered: Jun 2004
Posts: 498
raven: Quetzal/Chrome still uses AR monitor, I believe.

2006-08-28 06:23
Bastet

Registered: Jul 2005
Posts: 88
As long as you dont code in fscking screencodes... ;)

For the assembler, how good is that one for games, especialy RPGs? *g*
2006-08-28 06:31
JackAsser

Registered: Jun 2002
Posts: 1997
@BassetFurry: o_O ?!? :D WTF!
Previous - 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ... | 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
Guests online: 50
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.6)
6 Comaland 100%  (9.6)
7 Uncensored  (9.6)
8 No Bounds  (9.6)
9 Aliens in Wonderland  (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 Birth of a Flower  (9.5)
9 Daah, Those Acid Pil..  (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 Offence  (9.3)
Top Graphicians
1 Mirage  (9.8)
2 Archmage  (9.7)
3 Talent  (9.6)
4 Facet  (9.6)
5 Mermaid  (9.6)

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