• 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)