A.D.A. Amiga Demoscene Archive

        Welcome guest!




log in with SceneID


Demos Amiga Demoscene Archive Forum / Coding / Getting back into democoding (crossdev options and skeleton code wanted!)


Author Message
#1 - Posted: 22 Feb 2010 14:31
Reply Quote
Hi all!

I am contemplating getting back into Amiga demo coding (about 17 years since last time...)
Back then I used AsmOne on my A500, and I had a code skeleton that set up a copper list etc. that I never really understood, I just used it. I must admit that I have forgotten just about EVERYTHING on how stuff works with the copper and the bitplanes and the blitter and all that jazz...

I've done democoding for quite a lot of platforms in the last years (mostly 8-bitters like C64, MSX, ZX81, Plus4, Vic20, C64DTV etc.) and I have my standard development method that goes something like this.

1) Write code on Windows using UltraEdit and a nice syntax highlighter
2) Compile the code under with a cross assembler
3) Try out code on emulator
4) Repeat steps 1-3 for a while
5) Transfer to real hardware and see that everything works as expected
6) Back to 1 until finished!

Now I'd like to set up something like this for Amiga development.

Step 1 should be no problem, I haven't looked ,but I'm sure there are syntax highlighting files for 68000 assembler for UltraEdit.
Step 2 is the biggest issue, are there any good cross-assemblers available? Would I need some kind of linker as well, or does is an Amiga executable just a raw assembled binary?
Step 3 I'm planning to do via WinUAE and having a directory on the PC mounted as a virtual HD. That way when I compile, the binary is created, I can then switch to WinUAE, type the name of the binary, see if it works, then press moust button or something to exit, and repeat.
Step 5 I think should be solvable by copying the exectuable to a DOS-formatted 720kb and then reading that in the A500 (I recall you could read 720kb PC disks with some utility)

By the way is pure asm the way to go, or could you perhaps combine with C somehow for non-time-critical code?

The second thing I am looking for is a nice skeleton code to start out from, that sets up a copper list and handles any other startup/exit stuff that is necessary.
Preferably in a more system-friendly way than I used to do it, I am targeting my A500 512kb/512kb setup, but it would be nice if it ran on newer Amigas as well.
#2 - Posted: 22 Feb 2010 15:26 - Edited
Reply Quote
Hey sdw :-)

Good for you! You should definitely take up doing some demo coding again!

If you'd like to then go here: http://retro.untergrund.net/contact

and drop me an email.

I can send you the 68000 UltraEdit syntax highlighting file that I made and use and I can also send you details or copies of the assemblers you might want to try (both cross and native) as well as my demo "shell" that has been tested as working on 68000 A500 and also on 68020 and 68060 A1200 Amigas. :-)

For the other stuff you've asked about like using WinUAE, transferring to real hardware etc. I can also give you some pointers and help. :-)
#3 - Posted: 22 Feb 2010 17:06
Reply Quote
Sdw, great to hear that you are considering doing amiga coding again. I have the impression that you have coded on virtually every other platform around so it's going to be interesting to see where this is going.
#4 - Posted: 22 Feb 2010 17:32 - Edited
Reply Quote
For Step 3:

I recommend to set up an OS 3.9 with the WinUAE.
There you can work FULLscreen with ASM one/pro and eliminate the switching and
the cross-assembling.

If you need any advice or UAE config files for this email me at:

dodge [ät] rowdyclub [döt] de

I've got 3 Amiga OS ( 2x3.9, 1x 3.1) on my PC (just as directories) and a bunch of saved configurations and like to do "photoshopping" with ArtEffect 4 for example.

Also with ASM Pro you can do Syntax highlighting.

P.S. Oh, and it's really nice to welcome someone "back home" after such a coding-journey :D
#5 - Posted: 23 Feb 2010 03:09
Reply Quote
I use the exact same dev method as you, and for cross assembling I recommend vasm.

It's fully portable, has a great feature set and allows for flexible formatting. It can produce an AmigaOS executable from a single source directly, or produce object files in various formats. I use the latter method and split code into modules to organize things a bit and link with the matching vlink. If you require a C compiler then there's also the matching vbcc compiler.

These are my startup files. They do full save and restore of the VBR, cache settings, view etc. and offer functionality to conform the system a bit so you can (with good practices) write "A500 code" and have it run on all chipsets and CPUs.

#6 - Posted: 23 Feb 2010 23:25
Reply Quote
Thanks everyone!

Now I have source code from both pmc and zeroblue to start from, so that should be a good beginning.
And both recommended VASM, so that is what I'll start out with. Couldn't find a win32 version of the latest release, but I found the VBCC 0.8j linked here on the forum, and that contained vasm as well.

After looking at the sources a bit, I've come to the conclusion that I'll probably need to refresh both my 68k and Amiga hardware knowledge before diving into any actual coding! :)

dodge: Yeah, I've seen that many coders seem to do it that way (AsmOne in WinUAE) but I'm a bit spoiled by UltraEdit so I think I'd have a hard time with the editor. Thanks for the offer though!
#7 - Posted: 24 Feb 2010 01:53
Reply Quote
Here are the latest versions of vasm and vlink built for Win32. I can't build for 64bit Windows as I'm still on XP32, but it should be possible to run them on 64bit Windows as well. The v-suite is fully portable so If you already have an ANSI C compiler you can just build them yourself for whatever system you're on.

#8 - Posted: 24 Feb 2010 08:22 - Edited
Reply Quote
Yeah, I've seen that many coders seem to do it that way (AsmOne in WinUAE) but I'm a bit spoiled by UltraEdit so I think I'd have a hard time with the editor. Thanks for the offer though!

@ sdw - don't forget you can use UltraEdit to type up your source code and then use AsmOne or an alternative native Amiga assembler (I use Devpac...) to do the actual assembly of it. I do this:

1. Type source in UltraEdit on PC / Windows
2. Fire up WinUAE and run Devpac
3. Load source from PC drive straight into Devpac
4. Assemble & test

gives an alternative to using VASM if you find you want one... :-)
#9 - Posted: 24 Feb 2010 23:33
Reply Quote
@pmc: isn't that method a bit counter productive? You have to fire up winuae each time you want to test your code?
#10 - Posted: 25 Feb 2010 08:15
Reply Quote
@ z5 - not really. Don't forget that even if I used a cross assembler like VASM to do the assembly on the PC I'd still have to fire up WinUAE or a real Amiga to then run the assembled code to test it.

In some ways I actually think my method makes it easier - I can assemble and run the code to test it directly from within Devpac which makes doing little tweaks like positioning scrollers or copper colour changes etc. quick and simple. I just do small edits with Devpac's editor and then re-assemble and run to immediately see the result. :-)
#11 - Posted: 25 Feb 2010 18:24 - Edited
Reply Quote
If there's no real amiga available, I could only recommend running asm-one in an emulator.

It's a great editor/compiler/debugger
#12 - Posted: 12 Mar 2010 00:51
Reply Quote
asmone and asmpro are very good compilers, you can work with them on a real amiga or on winıae.
if you prefer to use a commandline compiler so I recommend you to use phxass (available on aminet) so you can use the great text editor CygnusED (CED). You can add shortcut keys for compile and run in CED.

for cross compiling, vasm is the only choice and it runs very fast, supports amiga executable format (don't forget to put -Fhunk commandline parameter)
you can compile your sources in a folder under windows, and add that folder to winuae as a hdd so you can easily test your exe.
#13 - Posted: 12 Mar 2010 00:54
Reply Quote
The only problem with vasm it is not 100% compatible with other assemblers. So you cannot compile your source if you include commodore's include files (exec/types.i etc.)
You got errors espacially on macro definitions.


  Please log in to comment





A.D.A. Amiga Demoscene Archive, Version 3.0