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 > Need a coder
2013-01-27 15:27
xIII

Registered: Nov 2008
Posts: 210
Need a coder

I made two hires pictures for the 'C64 Double Screen Compo 2013'. I need someone to make it into a screenscroller (going left-right)and a sound needs to be added.

The WOW coders are inactive and allthough I got some help from Jox (thx mate) I don't think I can code this myself in time.

Don't expect too much from the pics (Made them in HermIRES but I'm not a good graphician :)).

So if you want to help me out, PM me.
2013-01-28 18:45
xIII

Registered: Nov 2008
Posts: 210
Thx to Hermit I found the routine I needed on codebase64.

this thread can be closed.
2013-01-29 13:43
Bitbreaker

Registered: Oct 2002
Posts: 508
I added a simple vertical version to codebase64, just in case someone is in need of one.
http://www.codebase64.org/doku.php?id=base:double_screen_vertic..
2013-01-29 18:16
Dr.j

Registered: Feb 2003
Posts: 277
10x Bitbreaker for the source
but its on "ACME" and i ain't familiar with this tool so well , can someone please translate it to Kick Assembler ? i believe its not such a big work. (i didn't understand the "For" sentences )


2013-01-29 19:57
Bitbreaker

Registered: Oct 2002
Posts: 508
I simplified the code a bit and enriched it with a bunch of comments. The tables at the end are pointers into the bitmaps/screens for different y-offsets. For lazy typers i decided to use the for command which most macro-assemblers should support in some similiar syntax. Of course you can also just write out those tables.
2013-01-29 22:13
FATFrost
Account closed

Registered: Sep 2003
Posts: 211
@Bitbreaker, many thanks for the code but when i compile it says errors on line 129,134,148,150 and 168.

1, value not yet defined
2, garbage data
3, no string given
4, macro not yet defined
5,and so on....

any chance to fix this little problem mate? ;)

Many Thanks,

/FF
2013-01-30 08:18
Bitbreaker

Registered: Oct 2002
Posts: 508
I am afraid, this little problem can only be fixed on your side. I suspect something got wrong during copy & paste. beq + and + as label are pretty valid, that are the first two errors you get in line 129 and 134. I just did a copy & paste of my code into a new file, and it complies like a charm.
I use the svn-version of acme, but it even works with 0.91, so no idea what you are doing wrong. Compile with: acme -f cbm -o crap.prg source.asm
2013-01-30 08:43
Dr.j

Registered: Feb 2003
Posts: 277
Thanks very much BitBreaker , i will check it during the day.appreciate
2013-01-30 21:20
FATFrost
Account closed

Registered: Sep 2003
Posts: 211
yeah i got it working, i had old stinky version of acme.... thanks for your help. :)
2013-01-30 21:30
FATFrost
Account closed

Registered: Sep 2003
Posts: 211
Sorry, just one more question... can we make it scroll koala with a quick modification too?? ;)
2013-01-30 23:01
Slammer

Registered: Feb 2004
Posts: 416
Dr J.:
About converting to Kick Ass. Note that the parameter to align is $100 in KickAss but $ff in Acme (Tricky if you aren't aware of it).

For convenience you can define you own bin command in KickAss like this.
   .macro LoadBin(filename, length, startOffset) {
	.var file = LoadBinary(filename) 
	.fill length, file.get(startOffset+i)
   }
You use it like:
    screens:
    //glue together screen data
    :LoadBin("pic1.prg",$3e8,$1f42)
    :LoadBin("pic2.prg",$3e8,$1f42)
  
    .align $100
    bitmaps:
    //glue together bitmap data
    :LoadBin("pic1.prg",$1f40,2)
    :LoadBin("pic2.prg",$1f40,2)
(I saw in another thread that others was missing this feature)

I have a converted version you can have, just pm if you need it.
2013-01-30 23:06
chatGPZ

Registered: Dec 2001
Posts: 11386
thats a really nice example of how kickass is not designed properly btw - try to explain yourself why incbin must be implemented by a macro and align is a directive =P
2013-01-30 23:16
Slammer

Registered: Feb 2004
Posts: 416
Groepaz: I really don't understand your aggression. I thought you needed that command and did the post half as a favor to you.
2013-01-30 23:43
chatGPZ

Registered: Dec 2001
Posts: 11386
"I thought you needed that command and did the post half as a favor to you."
you must be kidding o_O
2013-01-31 00:52
Slammer

Registered: Feb 2004
Posts: 416
Groepaz: No, I'm not.
2013-01-31 01:26
chatGPZ

Registered: Dec 2001
Posts: 11386
if i didnt find out how to do that, artphosis would look really empty =)

i just find it seriously awkward that a lot of this kind of basic assembler features must be implemented as macros, when on the other hand some other things that dont really need another directive have one (for convenience ofcourse). eg you dont need .align when you have .fill in an assembler that has no linker - its the same thing in that case :)
2013-01-31 07:53
Slammer

Registered: Feb 2004
Posts: 416
I both use .align and .fill. When i see .align i immediately know that here we are skipping bytes to reach a page boundary, while .fill can be used in so many other ways, as a nice way of for generating data. If you don't like .align then just ignore it.

I agree that the incbin syntax is convenient, I noticed it some time ago as a 'nice to have feature', which probably come in a future version. Until then you will have to live with the .import directive (only complete files), the LoadBinary function, or sacrifice 4 lines of code in your standard library to define it.

Since I can't know every feature of every assembler, I really like getting feedback to where to improve the assembler, even though I think you have really aggressive way of formulating it.

I don't know how many posts this is going to take, but how about moving this to the 'Kick Assembler Thread' before completely hijacking this subject.
2013-01-31 09:57
Bitbreaker

Registered: Oct 2002
Posts: 508
For everyones convenience i removed the !align directives, as they are not needed anyway :-P Now multicolor mode can be enabled by uncommenting the MULTICOLOR label at the beginning. I have not tried with koala pics as i just had two hires pics at hand. But when i copy junk as colram data it looks sane however. So have a try :-)
2013-01-31 15:19
Pantaloon

Registered: Aug 2003
Posts: 124

Groepaz: eg you dont need .align when you have .fill

Well, align is totally different from fill and both have their usage. Sometimes you really dont want to fill the data to align something, and thats when align gets handy :P

Just because you use the assembler in a certain way doesnt mean it's the right way :)
2013-01-31 15:35
chatGPZ

Registered: Dec 2001
Posts: 11386
"Sometimes you really dont want to fill the data to align something, and thats when align gets handy :P"

but to do that you need an assembler that has a linker. else you always fill with some value (you can not output bytes that contain "nothing"). hence

.align $100

equals

.fill $100 - (* & $ff), 0

(assuming the skip/fillvalue for align is 0). actually you'd be surprised how many assemblers do exactly this internally when you use .align :) (never wondered why acme wants $ff to align to page boundary? see above =))
2013-01-31 15:44
Cruzer

Registered: Dec 2001
Posts: 1048
Quote:
.align $100

equals

.fill $100 - (* & $ff), 0
Yeah, it's really stupid of KickAss to have that cumbersome .align feature when it's much easier with .fill :P
2013-01-31 15:53
chatGPZ

Registered: Dec 2001
Posts: 11386
its just an example of how the decision to support one thing with a directive and not another is rather arbitrary and doesnt follow a design rule. ofcourse you want an .align directive for convinience. just like .incbin :)
2013-01-31 16:58
Glasnost
Account closed

Registered: Aug 2011
Posts: 26
.byte is a useless syntax too as the following example show:

.fill $1,'G'
.fill $1,'r'
.fill $1,'o'
.fill $1,'e'
.fill $1,'p'
.fill $1,'a'
.fill $1,'z'

:D
2013-01-31 17:04
chatGPZ

Registered: Dec 2001
Posts: 11386
Quote:
.byte is a useless syntax too as the following example show:

correct. actually .fill is one of the very few directives that an assembler *must* support :) once you have .fill and a half working macro facility, you can even implement the mnemonics as macros easily (and again, you'd be surprised how many assembler work just like that internally)
2013-01-31 17:26
Slammer

Registered: Feb 2004
Posts: 416
Making an intermediate language of .fill and .macro is the way to go then ;-)
2013-01-31 17:34
Count Zero

Registered: Jan 2003
Posts: 1932
grp: Name 15 please!
:)
2013-01-31 17:38
chatGPZ

Registered: Dec 2001
Posts: 11386
and you'd be surprised how many assemblers work like that - it makes a lot of sense actually (implement a minimal subset in actual code, then implement all the rest in macros and tables - once done properly you have a nice target architecture and -cpu agnostic assembler).

the point however is, no matter how you actually do it (only pedantic idiots like me care about inner workings of an assembler, obviously =P) that you shouldnt leave that implementation to the user - because that only creates a lot of unnecessary confusion (as you can see in this thread even). that could even be solved as having a builtin set of macros, which then can be important using a specific directive (eg in ca65 .macpack cbm or .macpack longjump)
2013-01-31 17:44
Stainless Steel

Registered: Mar 2003
Posts: 966
Hey, stay on topic plz!! Or i'll have to alert the mods! err ... wait :-D (/me ducks and runs)
2013-01-31 17:50
Bitbreaker

Registered: Oct 2002
Posts: 508
Yes, better draw some ugly koalas to test with my routine, fuckers :-)
2013-02-01 09:39
enthusi

Registered: May 2004
Posts: 677
I always use .dsb ((*+$100)/$100)*$100-*,0
and I find it rather intuitive. Groepaz' solution is a bit more elegant though ;-)
2013-02-01 10:50
Frantic

Registered: Mar 2003
Posts: 1648
Hmm.. Gpz smoked too much crack again. :)
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
cba
Epyx/TSA
Case/Padua
Stone/Prosonix/Offence
Steffan/BOOM!
MCM/ONSLAUGHT
Guests online: 102
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 Triad  (9.3)
5 Censor Design  (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.067 sec.