Commodore Free Magazine, Issue 77 - Part 15
From
Stephen Walsh@39:901/280 to
All on Sun Mar 2 13:15:39 2014
t or wrong
assembler in the list, and you may try several before finding "the one"
that suits you. I primarily use 64Tass and CBM prg Studio for my
programming, just in case you were wondering, although there are others in
the list which have specific features I find valuable. For example, cc65
has a brilliant 6502 symbolic disassembler, which is incredibly fast and
useful for "tearing" programs apart and seeing how they work. Sirius is
good for native SuperCPU work, and Buddy is great for smaller stuff to be easily added later to the larger project.
CBM PRG STUDIO
Developed by Arthur Jordison, a talented guy who has become a good friend
of mine, CBM prg Studio is what you might call a "complete package." Within this IDE (integrated development environment) you can create BASIC and
assembly language programs, design sprites, character sets, and complete screens. CBM prg Studio, or CPS, also includes a debugger (a great
feature) and has facilities for batch program creation, which can be useful
for creating multi-load programs, such as a menu program which loads
different modules based on the menu choice. All of this is housed in a
very nice layout.
Arthur works diligently to fix bugs as they are reported, and he always
seems to be busy working on CPS. He has recently begun work (I would like
to think as a result of my urging) to include instructions for the 65816
and SuperCPU, which when completed, will make this assembler package a true powerhouse. I frequently use Arthur's studio to create sprites because I
can quickly export the data directly into assembly language source code,
which is a world easier than trying to type everything in. Highly
recommended.
C64 STUDIO
Written by Georg Rottensteiner, C64 Studio is a Windows Forms-based IDE for
C64 development on a Windows system. It was made specifically for writing games and targets the hobby developer. C64 Studio provides code editors
for assembler and Basic V2. In conjunction with Vice debugging through the assembler, C64Studio features breakpoints, watches, memory and register
views, and has tools for character set and sprite creation and editing.
The assembler in C64Studio is based on ACME syntax. One of the newer
products in the list, C64Studio is quickly finding a following. I like it.
64TASS
Of all of the assemblers in the list, 64Tass is my personal favorite, and I have yet to find a flaw with the current version. Written by Soci of
Singular, one of the VICE developers, 64Tass can assemble programs of any
size or complexity for any of the 65x processors in the blink of an eye.
64Tass is probably not for the beginner as it makes use of advanced
concepts, but for the experienced programmer it is really a beauty which
uses standard syntax compatible with Turbo Macro Pro (a feature I like a
lot) and outputs any type of file you would need for the c64. An important
but undocumented aspect is that Soci readily and generously answers
questions when you have them. 64Tass is a command line assembler, but can
be easily integrated into any good programmer's text editor which supports
a command line, such as Notepad++.
TMPX V1.0
TMPx v1.0 is billed as the first and only cross assembler that is 100% compatible with the full syntax of the C64-based Turbo Macro Pro, and it
was, in my opinion, the best 6502 cross-assembler I used after migrating to
the pc for full-time development. I may never have moved on to anything
else, but SuperCPU work requires an assembler capable of outputting 65816
code. Otherwise this assembler is excellent, and for those who used the original TMP on the c64, their old code can be made pc-ready by using a companion program, TMPview v1.3, which is a tool that converts binary
source code files saved from Turbo Assembler, Turbo Assembler Macro, and
many variants including Turbo Macro Pro into an ASCII version of the code
which can be fully assembled by TMPx. Powerful, stable, and easy to use,
TMPx is one of the really good ones.
KICK ASSEMBLER
My C/C++ programming skills are shaky at best, but if you do have the background, one assembler I would highly recommend is the popular Kick Assembler. Now in version 3.30, Kick Assembler uses syntax and concepts
that are very similar to those used in C/C++ programming. Many of my programmer friends use and really like Kick Assembler, which has one of the best and most thorough manuals you can find for any pc program. I used
Kick Assembler for a while and liked its speed and features, but as
mentioned before, I did not have a C/C++ background, so something as basic
as curly braces was very foreign to me, and you know the saying about old dogs...
CC65
The final PC assembler in our list, and by no means the least (probably
just the opposite), is a programming suite named cc65. For serious
programming projects, this one if tough to beat. Originally written by
Ullrich von Bassewitz and now maintained by Oliver Schmidt, cc65 has it all
- source archiver, 6502/65816 assembler, linker, assembler-source-to-HTML converter, C compiler, 6502 disassembler, object-file converter, GEOS
resource compiler, object-file analyzer, and a sprite/bitmap utility.
This programming suite is probably not for the beginner as it is very
advanced (and equally capable). Anything is possible, including C-style projects. I frequently use several of the cc65 modules in my work and find
all of them to be solid, blazingly fast, and error-free.
The learning curve could be considered steep, but once you are comfortable
with assembly language, check this one out.
GUI VS. COMMAND LINE
It is important to note that while a GUI is nice to use, with CBM prg
Studio standing as a prime example, any of the command line assemblers may
be used with an advanced text editor such as Notepad++ to achieve very good results. Tabbed text editors allow the programmer to view multiple files
at once, and editors in the Notepad++ category generally include a pseudo-command line interface to assemble and test your programs.
I purposely did not elaborate any of the native c64 assemblers as there is ample information about each to be found on the Internet. Native
assemblers have been in circulation since the 80s and by now are usually
very stable creatures that are no longer in active development. Our list
above names just three but there are many, many native 6502 assemblers to
try and use if you choose to go in that direction.
THE ML MONITOR
Before finishing our discussion today we should mention an important tool
all assembly language programmers should possess called a machine language monitor. The ML monitor is of great use when something doesn't work as planned. It is very helpful to look into memory while the program is
running and see if a data value (or any register) is what you expect it to
be. An ML monitor can do this for you.
If you choose to develop on the PC and use VICE for testing then you can
use the built-in monitor/debugger. It works fine and operates "above" the emulation, so you can literally peer into a program as it executes. Native
c64 developers may want to get themselves a hardware freezer cartridge such
as Action Replay, the Final Cartridge, or Super Sanapshot. An example of a great software monitor is JiffyMon from CMD. Micromon is good, too. At
any rate, have an ML monitor at hand. Great places to find an image of a hardware cartridge or machine language monitor are cbm8bit.com or pokefinder.org.
VICE EMULATOR
Throughout this article I have referenced the VICE emulator, so for those
who are unfamiliar, VICE is a very good multi-platform emulator of the Commodore line of computers. In particular, the c64 version is rock-solid. SuperCPU emulation is relatively new, but works very well in its current version (2.4.5). I use it every day and love it just like the real thing.
Most actual CBM hardware clocks in at nearly 30 years old, and many of the people who worked on or repaired them in the 80s have either passed
--- MBSE BBS v1.0.01 (GNU/Linux-i386)
* Origin: Dragon's Lair ---:- bbs.vk3heg.net -:--- (39:901/280)