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 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..
 
... 590 posts hidden. Click here to view all posts....
 
2013-05-12 21:50
Cruzer

Registered: Dec 2001
Posts: 1048
Hehe @ TWW... Yeah, very good example by Slammer. Other uses:

Generating small chunks of speedcode and data, that are so small that it doesn't make sense to do a c64 generator for them, e.g.
lda spriteColor
.for (var i=0; i<8; i++) {
	sta $d027 + i
}
Generating bigger chunks of speedcode and data that are so complex that generating it on c64 would take longer than loading it from disk.

And my favorite, randomizing parameters and printing them out. Then you can just assemble the code over and over to see new variants of the effect, and whenever something looks good, copy/paste the params into the code.
2013-05-12 21:53
chatGPZ

Registered: Dec 2001
Posts: 11114
slammer: convince peacemaker to use another assembler, and i won't touch kickass ever again - promised =P
2013-05-13 06:22
Slammer

Registered: Feb 2004
Posts: 416
Gropaz: Lol. You do realise that your behaviour have put all of your requests to the backend of the queue, right? If you really are forced to use Kick Assembler, putting yourself in a position with no influence on future features, really seams like an excellent strategy. ;-)
2013-05-13 07:04
Oswald

Registered: Apr 2002
Posts: 5017
sorry, couldnt resist:

;                 x1    y1      etc
effect1: .byte Param1, Param2, Param3, Param4  ;circle1
effect2: .byte Param1, Param2, Param3, Param4  ;circle2

init

lda #<effect1
sta zp+0
lda #>effect1
sta zp+1
rts

setupeffect

ldy #$00
lda (zp),y
sta durationlo
iny
lda (zp),y
sta durationhi
iny
lda (zp),y
sta xadd1
iny
lda (zp),y
sta xadd2
iny
lda (zp),y
asl
asl
asl
asl
iny
ora (zp),y
sta xstart1&xstart2
iny
lda (zp),y
sta yadd1
iny
lda (zp),y
sta yadd2
iny
lda (zp),y
asl
asl
asl
asl
iny
ora (zp),y
sta ystart1&ystart2
iny
lda (zp),y
sta xeor
iny
lda (zp),y
sta xand
iny
lda (zp),y
sta yeor
iny
lda (zp),y
sta yand
iny
lda (zp),y
clc
adc #>scaletab
sta xscale1
iny
lda (zp),y
clc
adc #>scaletab
sta xscale2
iny
lda (zp),y
clc
adc #>scaletab
sta yscale1
iny
lda (zp),y
clc
adc #>scaletab
sta yscale2
iny
tya
clc
adc zp
sta zp
bcc *+4
inc zp+1
2013-05-13 07:30
JackAsser

Registered: Jun 2002
Posts: 1989
Quote: sorry, couldnt resist:

;                 x1    y1      etc
effect1: .byte Param1, Param2, Param3, Param4  ;circle1
effect2: .byte Param1, Param2, Param3, Param4  ;circle2

init

lda #<effect1
sta zp+0
lda #>effect1
sta zp+1
rts

setupeffect

ldy #$00
lda (zp),y
sta durationlo
iny
lda (zp),y
sta durationhi
iny
lda (zp),y
sta xadd1
iny
lda (zp),y
sta xadd2
iny
lda (zp),y
asl
asl
asl
asl
iny
ora (zp),y
sta xstart1&xstart2
iny
lda (zp),y
sta yadd1
iny
lda (zp),y
sta yadd2
iny
lda (zp),y
asl
asl
asl
asl
iny
ora (zp),y
sta ystart1&ystart2
iny
lda (zp),y
sta xeor
iny
lda (zp),y
sta xand
iny
lda (zp),y
sta yeor
iny
lda (zp),y
sta yand
iny
lda (zp),y
clc
adc #>scaletab
sta xscale1
iny
lda (zp),y
clc
adc #>scaletab
sta xscale2
iny
lda (zp),y
clc
adc #>scaletab
sta yscale1
iny
lda (zp),y
clc
adc #>scaletab
sta yscale2
iny
tya
clc
adc zp
sta zp
bcc *+4
inc zp+1


Yes and Slammer's point was that you get the same readability in the code (i.e. parameters kept together in chucks _AND_ directly in the source). However Slammer's example will produce more effective code on the C64-side. Instead of having to "parse" the params manually on the C64 each time you setup the effect this is done at compile time. This yields:

* Smaller code
* Faster code
* Same readability

win/win/win

And yes, the faster/smaller point will probably be insignificant anyway so... use whatever method you're comfy with.

:D
2013-05-13 08:40
Oswald

Registered: Apr 2002
Posts: 5017
agreed.

for me more of a selling point is the nice capability of importing gfx/textures, or calculating sines, but am simply yet too lazy to make the move.
2013-05-13 10:46
Cruzer

Registered: Dec 2001
Posts: 1048
Just make the move for new stuff. No need to convert all your unreleased stuff right away. I still have old crappy routines in MxAss and TurboAss format lying around.
2013-05-13 12:09
soci

Registered: Sep 2003
Posts: 473
Right, 1.46 is quite bit outdated now. Creating sine and other tables is easy on 1.5x if that helps.

Importing raw data is no problem with almost any assembler. If it needs serious processing beyond chopping it up into pieces (e.g. conversion, compression, etc.) it's better to use the most suitable language/tool to do that part of the job first.
2013-05-13 13:49
chatGPZ

Registered: Dec 2001
Posts: 11114
Quote:
Gropaz: Lol. You do realise that your behaviour have put all of your requests to the backend of the queue, right? If you really are forced to use Kick Assembler, putting yourself in a position with no influence on future features, really seams like an excellent strategy. ;-)

i realised its pointless to argue about these things many moons ago, and that omitting certain core features is apparently a design goal of this assembler. if you think i am still expecting you to fix them, no. you have made clear you dont care at all and dont even understand why you should do that. (another point for ca65 here, or rather for Uz)
2013-05-13 16:21
Oswald

Registered: Apr 2002
Posts: 5017
tastes are different there are enough types of assemblers out there for everyone, kickass is amongst the best, and I respect slammer for it. compilers are amongst the most complex things one may code.
Previous - 1 | ... | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | ... | 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
Brataccas/HF
Apollyon/ALD
Didi/Laxity
Guests online: 109
Top Demos
1 Next Level  (9.8)
2 Mojo  (9.7)
3 Coma Light 13  (9.7)
4 Edge of Disgrace  (9.6)
5 Comaland 100%  (9.6)
6 No Bounds  (9.6)
7 Uncensored  (9.6)
8 Wonderland XIV  (9.6)
9 Memento Mori  (9.6)
10 Bromance  (9.5)
Top onefile Demos
1 It's More Fun to Com..  (9.7)
2 Party Elk 2  (9.7)
3 Cubic Dream  (9.6)
4 Copper Booze  (9.5)
5 TRSAC, Gabber & Pebe..  (9.5)
6 Rainbow Connection  (9.5)
7 Onscreen 5k  (9.5)
8 Wafer Demo  (9.5)
9 Dawnfall V1.1  (9.5)
10 Quadrants  (9.5)
Top Groups
1 Oxyron  (9.3)
2 Nostalgia  (9.3)
3 Booze Design  (9.3)
4 Censor Design  (9.3)
5 Crest  (9.3)
Top Graphicians
1 Sulevi  (10)
2 Mirage  (9.8)
3 Lobo  (9.7)
4 Mikael  (9.7)
5 Archmage  (9.7)

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