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: 449
Kick Assembler Thread 2

The previous thread took a little long to load, so this is a new fresh one..
 
... 647 posts hidden. Click here to view all posts....
 
2013-03-18 09:45
Carlos
Account closed

Registered: Mar 2009
Posts: 15
Yeah.. this was my second approach but, as far as i know, i can't use a memory location as the parameter of a KickAss macro. I have tested it and the assembler gives no error but nothing happens:

read_joy:
lda $dc00
lsr
bcc joy_up
jmp read_joy

joy_up:
inc color
:setBackground(color)
jmp read_joy

color: .byte 0



2013-03-18 10:11
Cruzer

Registered: Dec 2001
Posts: 1051
Change the macro to this, to avoid immediate addressing mode:
.macro setBackground(color) {
	lda color
	sta $d021
}
2013-03-18 10:34
Carlos
Account closed

Registered: Mar 2009
Posts: 15
Great! didn't notice that.. thks Cruzer.
2013-03-18 18:19
Slammer

Registered: Feb 2004
Posts: 449
Once you get more comfortable with the basic stuff, you can start using pseudocommands, which support both things at once.
.pseudocommand setBackground(color) {
	lda color
	sta $d021
}

:setBackground #color     // Use predetermined value (immediate mode)   
:setBackground color      // Use value from memory (absolute mode) 
Btw. The background color macro is just an example of how to create and use a macro. I guess you cant benefit much by using this particular macro..
2013-03-22 12:00
Carlos
Account closed

Registered: Mar 2009
Posts: 15
Interesting Slammer, i will try it.

Another question: User defined structures. Can the fields of the structure be of any size or each field is always a byte?

.struct foo {x , y) (i want x be a word and y a byte)
2013-03-22 17:02
Slammer

Registered: Feb 2004
Posts: 449
The struct directive is just a collection of fields with no particular type. The fields can be anything: Numbers, lists, strings, etc. For example:
  .stuct MyStruct {a, b}

  .var myVar = MyStruct(27, "Hello World")
  .byte myVar.a    // is the same as .byte 27
  .print myVar.b   // is the same as .print "Hello world"

In the above example only the '.byte myVar.a' directive will produce output to the assembled .prg file. It will be a byte because a .byte directive is used, but if you had written .word myVar.a it would have been a word.

hope it helped..
2013-03-22 17:04
chatGPZ

Registered: Dec 2001
Posts: 11523
mmmmh. whats the difference between a struct and a namespace then? *shrug*
2013-03-22 20:32
Pantaloon

Registered: Aug 2003
Posts: 124
groepaz, you dont know the difference between namespace & structs ? i hope you are trolling :)
2013-03-22 21:10
Cruzer

Registered: Dec 2001
Posts: 1051
Groepaz doesn't even know the difference between .align and .fill :P
2013-03-22 21:45
Oswald

Registered: Apr 2002
Posts: 5127
Probably I'm off with this here, but do we really need all this mumbo jumbo for some simple 8 bit demo effects? Namespaces, structs, macros and whatnots ? :) Anyway its just probably only me still stuck in '96 or so, it would be nice to see some examples on how are these *really* useful. when it comes cycle counting and it comes to that even with non timing critical code, you'll WANT to see the code. Speedcode generators have to be written eventually when linking the demo (so why write once a macro, once a real version?)

etc..
Previous - 1 | ... | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | ... | 66 - 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
Mike
Peacemaker/CENSOR/Hi..
O'Dog/LXT
Dwangi/Fairlight
Mason/Unicess
JackAsser/Booze Design
master_hacker
Isildur/Samar
TheRealWanderer
Guests online: 849
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Codeboys & Endians  (9.7)
4 Mojo  (9.6)
5 Coma Light 13  (9.6)
6 Edge of Disgrace  (9.6)
7 Signal Carnival  (9.6)
8 Wonderland XIV  (9.5)
9 Uncensored  (9.5)
10 Comaland 100%  (9.5)
Top onefile Demos
1 Nine  (9.8)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.5)
6 Scan and Spin  (9.5)
7 Onscreen 5k  (9.5)
8 Grey  (9.5)
9 Dawnfall V1.1  (9.5)
10 Rainbow Connection  (9.5)
Top Groups
1 Artline Designs  (9.3)
2 Booze Design  (9.3)
3 Performers  (9.3)
4 Oxyron  (9.3)
5 Censor Design  (9.3)
Top Swappers
1 Derbyshire Ram  (10)
2 Jerry  (9.8)
3 Acidchild  (9.7)
4 Cash  (9.6)
5 Violator  (9.6)

Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.135 sec.