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-08-28 09:51
Bastet

Registered: Jul 2005
Posts: 88
Its Bastet, like the pen and paper rpg or the egypt goddes ;)

And i heard from someone from Triad(?) that he coded in screencodes inside the basic editor. A little SYS1024 in the end and the programm ran. *g*

2006-08-28 10:16
Quetzal

Registered: Jul 2002
Posts: 71
Yeah, it's true, all of my stuff, including an entire game (Xiom) was coded in the monitor of my AR IV cart. Used an assembler one time only to write a RLE depacker for use in a demo part... Probably goes a long way towards explaining my totally destructured programming style, looks just like something has exploded in the memory :) Never went as far as using screencodes, but an Amiga friend was VERY shocked when watching me code that I remembered the numbers for all the opcodes and was doing stuff like typing 60 to do an RTS and save myself a keystroke....
Having said all that, this new Kick Assembler sounds very nice indeed from what I've read so far. Might even be enough for me to turn over a new leaf and start coding in a more normal fashion?
2006-08-28 10:17
Jetboy

Registered: Jul 2006
Posts: 242
what are screencodes?
assembler is assembler - its good to write programs in. There are no assemblers designed especialy to make RPGs... huh!
2006-08-28 10:46
tlr

Registered: Sep 2003
Posts: 1736
Quote: what are screencodes?
assembler is assembler - its good to write programs in. There are no assemblers designed especialy to make RPGs... huh!


You type characters at the top of the screen that you know resembles the right opcodes in ram, then SYS1024.
I once coded a raster interrupt split this way at a museum.
Pretty stupid actually.
I think I had to rewrite it 4 times or so. Pressing restore clears the screen... :P
2006-08-28 10:49
tlr

Registered: Sep 2003
Posts: 1736
@Quetzal: A lot of demo coders work/used to work this way.

Mastermind of Horizon even made it a point not to save the memory before the demo part actually worked. It has bitten him a number of times, especially at parties where the power was cut at some point. ;)

Kjer of Horizon coded most stuff in a monitor, and so does Crossbow AFAIK.
2006-08-28 11:05
JackAsser

Registered: Jun 2002
Posts: 1997
@Bastetfurry: Ahh, sorry about the typo. I actually meant your statement: "For the assembler, how good is that one for games, especialy RPGs?". Is that a joke I don't get? :D
2006-08-28 11:22
Scout

Registered: Dec 2002
Posts: 1568
Quote: You type characters at the top of the screen that you know resembles the right opcodes in ram, then SYS1024.
I once coded a raster interrupt split this way at a museum.
Pretty stupid actually.
I think I had to rewrite it 4 times or so. Pressing restore clears the screen... :P


You just admitted that you're autistic :)

---
8Bit Mayhem - The C64 Scenemusic Podcast
http://8bitmayhem.untergrund.net
2006-08-28 11:35
tlr

Registered: Sep 2003
Posts: 1736
Quote: You just admitted that you're autistic :)

---
8Bit Mayhem - The C64 Scenemusic Podcast
http://8bitmayhem.untergrund.net


Well... we kind of practised doing some simple code one afternoon before going there... ;)
(not that particular code though)

You'd be surprised how few different values you really need to enter to implement it.

You'll need to know the value of the actual opcodes though.
2006-08-28 11:55
enthusi

Registered: May 2004
Posts: 675
I did some poking into screenram to change a loader-code there but actual petscii is another thing :) way different....
On one c64 I had no $-key working and poked it into screen to load directories. Did that for weeks before I changed kb - hm, that makes me look lazier than I usually am
2006-08-28 13:13
Bastet

Registered: Jul 2005
Posts: 88
Quote: @Bastetfurry: Ahh, sorry about the typo. I actually meant your statement: "For the assembler, how good is that one for games, especialy RPGs?". Is that a joke I don't get? :D

No, i realy meant it, how good is the assembler to write games especialy _r_ole_p_laying_g_ames(BardsTale, Ultima,...)?
I tryed my luck with Xlang but gave up as he simply ignored a second org directive.
And dont mention cc65 ,ok unfair its a c compiler but, it steals too much power from the programmer. ;)
ATM i am using acme, but i am not that happy with it.
What i realy want is some middlething betwhen assembler and compiler, ok, that would be Slang, but its useless when i want my basic start at $0801, want to insert some music from external file to $1000, some charset at $2000 and my code at $4000.
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
enthusi/PriorArt
Guests online: 51
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 Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

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