| |
Dragnet
Registered: Nov 2006 Posts: 16 |
C64 development setup...
Hola coders!
I just found this site a couple of weeks ago and was once again blown away by the cool C64 and the people still keeping it alive. I used to write a few nibbles of code back in 1989-1993, but was never really part of the scene, and thus never had any of the real cool development tools.
Anyways, I would actually like to start again sometime soon, just for fun :) But I guess that by now with all the emulators available it will be much easier to develop code using those, C64-external tools, cross compilers, etc.
Therefore: can anybody recommend a good development setup, including turbo assembler, tools, tips and tricks, or other useful things...!?!
I know this question is kinda vague, but any help will be greatly appreciated. I could be sooo fun to develop on the king of computers again! :)
Regards - Dragnet/Rabiez |
|
| |
Devia
Registered: Oct 2004 Posts: 401 |
Well, since nobody else seems to be willing to try and answer this, I'll try and explain my setup. ;-)
I use UltraEdit on Windows to write the code. I have made a nice wordfile for it which makes it do colorful syntax highlighting. To assemble and link the code I use ca65 and ld65 from the cc65 C compiler found at: http://www.cc65.org/
On top of this I use GNU Make. I then configure my makefile with options for creating D64 images with c1541 (comes with Vice) and options for automatically running the code in Vice or on my C64. To run the code on C64 I use CodeNet to transfer and run the binaries. On the C64 I have Retro Replay cartridge with RR-Net add-on running The Final Replay ROM which contains the CodeNet Server.
So, I can basically assemble and start my code on a REAL C64 or in Vice by simply running "make runc64" or "make runvice" respectively.
In UltraEdit I have added these different "make" options along with others and assigned them to various hotkeys. So I can in fact start UltraEdit, write some code, press my "Make&RunOnC64" hotkey and voila ;-)
The Final Replay and CodeNet: http://www.oxyron.de/html/freplay.html
In my code I then usually setup and NMI interrupt (if I don't use NMI for other stuff) that does something like:
lda #$37
sta $01
lda #$18 ;Select Bank 3
sta $de00 ;in the Retro Replay
jsr $FF81 ;CINT
cli
jmp $9800 ;Jump to CodeNet
This enables me to simply press RESTORE on C64 to terminate my program and return to CodeNet.
|
| |
Dragnet
Registered: Nov 2006 Posts: 16 |
Hola!
Devia - first off, thanks for your reply! Wondering if anybody would post a reply... :)
Anyways - it made me realise that what I wanna do is to write assembler/machine code, not write C cross-compiled code (I get enough of C/C++ at work... hehe). I'm impressed by your setup which sounds - well - kinda professional, but too advanced for me I guess.
What I would like to is to use a Turbo Assembler, but running in an emulator since the whole development process will probably be easier (load, save, import, test, use external memery for the turbo assembler source code, etc). Then use the emulator like a cartridge to generate freeze images, etc, if possible. Besides, my old faithful 1541 disk is rather unstable, and as such has some trouble saving files sometimes - not a nice feature when developing on the C64. Then - after development port the finished "product" to the real c64 (including testing, of cause)...
So - I guess what I am really asking is: can you (or anybody else) recommend a nice turbo assembler, especially one that can store the source code outside the C64 memory?
(I think I used to use Turbo Assembler 3.someting by Anubis/Warriors in my day...)
Regards - Dragnet/Rabiez
|
| |
Style
Registered: Jun 2004 Posts: 498 |
just use kickass or ca65 on PC and use Vice to test.
|
| |
Devia
Registered: Oct 2004 Posts: 401 |
Well, Turbo Macro Pro from Style comes in a REU version: http://turbo.style64.org - but if REU will work with Vice, I don't know.
Hannenz made a tool for remote accessing the C64 memory through RR-Net: Netmon V0.1
Maybe that could be of some use too.
Oh and yes.. while you're checking out new tools, give KickAss a shot before you get too comfortable with one assembler. It looks very interresting, but I guess I'm too used to ca65 to give it a seroious try tho ;-)
I started doing x-dev with text editor, DASM and Vice on PC. That's only three things to master ;-)
..I really miss the DASM Amiga style syntax.. hmm ;-)
|
| |
Radiant
Registered: Sep 2004 Posts: 639 |
VICE has, AFAIK, excellent REU support. Plus the monitor is really helpful when debugging. |
| |
Devia
Registered: Oct 2004 Posts: 401 |
oh.. and just to clear things up for you Dragnet, the Style that made Turbo Macro Pro is the group Style and not the scener ;-)
|
| |
enthusi
Registered: May 2004 Posts: 677 |
Hm, maybe I should post a more simple approach?
vice (http://www.viceteam.org/) is by far the most used emulator these days and admittedly (despite my dislike) rather capable!
There is quite some new hw to make things easier/faster - like RRNET etc.
However I think you'd be happy with a mere cross-assembler.
There are many out there. Easiest to use is maybe:
http://www.esw-heim.tu-clausthal.de/~marco/smorbrod/acme/
Also comes for all main platforms.
Its syntax is rather similar to TASS.
Coding in an emu using a native assembler might be a bit icky - personally I dislike it.
With acme (and others) you can directly prioduce binaries that you can launch up with vice. Vice allows to be given a file as commandline parameter to start up directly.
Also with vice comes a small but handy d64-tool.
You can easyly use that to generate d64 images on the fly more more complex code-projects.
Ok, before this gets complicated, too.
1) get vice
2) get acme
3) assemble with acme 'acme -o uberdemo.prg ripped_source.asm'
4) launch vice with it 'x64 uberdemo.prg' (for unix)
5) TEST ON REAL C64 ;o)
for point 5) there are numerous methods (that's almost another question). I use opencbm0.4.0 (iirc).
Its still in active development and works well under linux/windows and only needs a pretty simple cable.
You can always use tapes for transfer - that is likely to require NO extra hw at all and is by far less evil than people want you to think. Nowadays there is this anti-tape movement going on you should know...
Good luck and enjoy.
Code well,
enthusi
|
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
Dragnet, there's a pc TASS which is 100% c64 tasm compatible source wise. |
| |
Radiant
Registered: Sep 2004 Posts: 639 |
Or just go ahead and use TASS in VICE. Hell, it's good enough for Booze Design. |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
hehe well, I use tass in vice aswell, but.. well no1 should code like that :) a modern text editor gives you so much more than a 40x25 screen :) |
| |
Devia
Registered: Oct 2004 Posts: 401 |
you mean 40x23 with tass ;-) |
| |
enthusi
Registered: May 2004 Posts: 677 |
you can get all your TASS-code into acme compatible syntax by a mere renaming. The other direction is slightly harder since you'd have to truncate long labels, lines etc..
What OS do you use? In unix/bash, this can be done in a simple line.
|
| |
null Account closed
Registered: Jun 2006 Posts: 645 |
Ok, my coding setup...
A c64 w/ 1541 and the Final Cartrige III, using Turbo Assembler V7.4...
BTW, beware with testing in emus... they are somettimes (mostly?) a bit too forgiving, which means that the code will run in an emu, but not on a real c64. So, if possible, _ALWAYS_ test on the real thing before releasing... If you don't have a real c64 yourself, ask someone here to test it for you. |
| |
hannenz Account closed
Registered: Nov 2002 Posts: 24 |
i can recommend TMP/ Style for developing on the real thing.
REU-Support works under Vice.
but i think coding IN the emu isn't that comfortabel, just think about the swapped keyboard layout and all that. that's not the way to go.
Use either TMP on the real thing or get ACME and follow enthusi's suggestions for a fast start or if you really want powerful development suite, get cc65 (this is a c-compiler but you can use the assembler and linker stand-alone and both are by far the most advanced cross-dev tools!)
for transfer to real c64 i can recommend retro replay with rr-net and tfr-rom flashed (codenet) just as devia wrote! btw: tghanks devia for the jump-to-codenet-code-snippet... i always wondered how to do that - in fact we seem to use exactly the same dev environment ;)
|
| |
j0x
Registered: Mar 2004 Posts: 215 |
My coding setup is Linux running my own Dasm hack, connected via RR-net using the CPX Retro Replay ROM 3.8p with hacked-in Codenet support.
Oh, and I use Emacs for editing.
|
| |
Dragnet
Registered: Nov 2006 Posts: 16 |
Whoopa!
Ok, I think there is enough here to get me started! :)
Acme sounds interesting, and so does Kick Assembler (I know Slammer from the university, so perhaps he can help me out if I get stuck when using it - which I will... he he). Until now I was looking at the TMP/Style under Vice with REU, and have not given up on that either. As some of you stated the editor is naturally limited to 40x23, but that is part of the charm of the C64, is it not?!
So, I am looking forward to getting started again, though there is this trivial matter of me needing to finish my thesis first (takes a bit of time, but why is the C64 so much more fun than that?! Damn... )...
Regards to you all - Dragnet |
| |
Radiant
Registered: Sep 2004 Posts: 639 |
Dragnet: I agree fully on the choice of TASS for getting started again - there's a directness about it not present when using a crossassembler. I still code in TASS on the real machine, from time to time.
(Most of the time I use ca65 + ld65 + make, though, with gvim as editor.) |
| |
Oswald
Registered: Apr 2002 Posts: 5094 |
I agree, coding in ultraedit with ca65 or anything like that is like fucking in 5 condoms. You're in safety but you dont feel anything. |
| |
raven Account closed
Registered: Jan 2002 Posts: 137 |
Whats wrong with u people?
All this cross-dev talk is making me sick!
Just use TASM on the C64, nothing beats it for pure C64
feeling during coding ;)
My simple setup:
-An old 486 thrown under the table, serving as storage-slave
for the C64 via custom software.
-C64 with modified TASM which can save/load/compile to either the 486 (using .p00 or .d64) or the 1541.
All testing done on the C64, no emus involved.
I enjoy coding ON the C64. I get to code on PC text-editors
at work. The 40x25 screen & yellow font relax me when I get
home...
|
| |
Slammer
Registered: Feb 2004 Posts: 416 |
I think crossdev is better.. I rememember when programming directly on the c64 that save times was longer, assemble times was longer, disks sometimes fucked up, the assembler and source could accidently be overwritten by your program and so on..
I remember swithing to Einsteins Amiga->C64 assembler in 1992.. that just made things so much easier..
Dragnet: Hey Gunni, There should be enough in the Kick Ass manual to get you startet (In the 'getting started chapter'), but you are welcome ask if you need help. |
| |
algorithm
Registered: May 2002 Posts: 705 |
Crossdev is certainly more convenient and faster, but VIC/Sprite tricks may not always work properly when the prog is run on a real c64. Although the gap between compatibility is getting more narrow now. Particularly with Hoxs64 which seems to be more accurate than vice/ccs |
| |
Radiant
Registered: Sep 2004 Posts: 639 |
Too bad Hoxs64 has none of the VICE niftyness, though. :-( |