Download Current Versions
C64 Assemblers
Turbo Macro Pro Sep'06
(+REU, X2, +DTV/PTV)
Cross Assemblers
TMPx v1.1.0
(Win/OSX/Linux/FreeBSD/Solaris)
Source Conversion
TMPview v1.3.1
(Win/OSX/Linux/FreeBSD/Solaris)
--------------- Abbreviations --------------- BA: back arrow TMP: Turbo Macro Pro oTA: original Turbo Assembler oTAM: original Turbo Assembler Macro [xxxx]: feature/bug/issue id FEAT: a feature not present in oTAM BUG: a bug fixed present in TMP or oTAM CHNG: a functionality change from previous versions DOC: a documentation change DELE: a removal of functionality INFO: informational, read me... ------------------------------------- Turbo Macro Pro, Sep'06 ------------------------------------- * TMP+REU v1.2 * TMP v1.2 * TMP(X2) v1.2 * TMP(R2) v1.2 * TMP+DTV v1.2 * TMP+PTV v1.2 FEAT: IDE64 compatibility. All disk-related functionality of TMP should now operate correctly with modern IDE64 hardware/ROM combinations (i.e. v3.x hardware using the most recent ROM image). As a first attempt by someone who doesn't own any real IDE64 hardware, this capability comes without guarentees, but has been tested both on VICE and on a real v3.2 board w/ a 2006 ROM image. Note that TMP continues to work just fine on non-IDE64 devices. [0000026] FEAT: Illegal opcodes are added. Fourteen (14) of the eighteen (18) added mnemonics correspond with those most popularized by Adam Vardy's 1995 Internet documentation which was itself based on several sources including legendary Transactor magazine: ALR ($4B) ANC ($0B) ARR ($6B) DCP ($C3, $C7, $CF, $D3, $D7, $DB, $DF) ISC ($E3, $E7, $EF, $F3, $F7, $FB, $FF) LAS ($BB) LAX ($A3, $A7, $AF, $B3, $B7, $BF) RLA ($23, $27, $2F, $33, $37, $3B, $3F) RRA ($63, $67, $6F, $73, $77, $7B, $7F) SAX ($83, $87, $8F, $97) SLO ($03, $07, $0F, $13, $1B, $1F) SRE ($43, $47, $4F, $53, $57, $5B, $5F) TAS ($9B) XAA ($8B) Four mnemonics correspond with those renamed from the Vardy document by Graham/Oxyron in his recent opcode summary: SHY instead of SAY ($9c) SHX instead of XAS ($9e) AHX instead of AXA ($93, $9f) AXS instead of SAX ($CB) As well, this additional naming modification by Graham from the Vardy document are taken: LAX instead of OAL ($AB) See http://www.ffd2.com/fridge/docs/6502-NMOS.extra.opcodes or http://www.oxyron.de/html/opcodes02.html for additional info. [0000023] FEAT: The five new PTV opcodes ($02, $12, $22, $32, $42) are added using mnemonics CLN, BRA, RTD, SAC, SIR respectively (BRA as designated by Jeri; SAC/SIR as coined by tlr, and CLN/RTD as coined here and which *may* only be useful on the handful of prototype boards out there - but since two belong to Style members...). FEAT: Hitting RUN/STOP in the main editor will now swap the status line between the default line and a new, secondary status line which displays the current number of labels and the remaining free label memory; also shown is the remaining free source code memory. Therefore the secondary status line acts as a kind of free memory status - use caution regarding source memory, as actually assembling source code will use at least ~$200 and more bytes for very "pseudo-op intensive" sources. [0000028] FEAT: New in the RAM submenu is option 'd', for direct-load-to-ram, which can be used to load object files into the object bank which do not have a load address as the first two bytes of the file, such as so-called "level-packed" files, etc. [0000049] FEAT: New input keystrokes for prompt fields: hitting CLR will blank the current field; hitting HOME will place the cursor at the leftmost character of the field; hitting RUN/STOP will cancel input (to effectively cancel input before required deleting all characters in the field and hitting return; RUN/STOP now cancels regardless of what the field currently contains). [0000005] FEAT: Tool uses 20mhz mode setting for assembling when there's a SCPU present, which works the same way as 2mhz/VIC blanking introduced in v1.1 (see below). [0000036] FEAT: Hitting HOME in the main editor places the cursor at the return tab stop (set with BA+7) on the current line. [0000030] FEAT: Hitting CLR in the main editor unsets both the start and end mark, which should be a handy way to clear these block-defining marks instead of using the normal kill-mark method on each. [0000030] FEAT: Cursor line positioning after a block-kill now behaves much more like one might expect - generally speaking whatever line of source code you were currently editing at the time block-kill is invoked should remain the same after the block has been removed. Same will be true for block-move. BUG: .include now no longer gets into an infinite loop when a disk error occurs such as file not found. [oTAM] BUG: .include output colors were a bit odd and not at all nice looking, this is fixed to match the rest of the assembler output. [TMP:0000044] BUG: The granddaddy bug... block-kill on line zero, which formerly corrupted source and/or crashed both the original Turbo Assembler and Turbo Assembler Macro (as well as all other variants), is now properly fixed. Also, a number of additional rare and hard to duplicate cases where block-kill could potentially corrupt source memory have been fixed. Former versions of TMP would ignore any attempt to kill a block that included line zero. [oTAM:0000007] BUG: After attempting to load a file into a RAM bank using the RAM menu load function (BA+R,l) where a disk error occurs (e.g. file not found), several prompts would become messed up. [TMP:0000071] BUG: Add/Subtract (BA++/BA+-) was corrupting the current line edit buffer in some circumstances. [TMP:0000017] BUG: The plain c64 mods were not re-initializing CIA/VIC upon editor re-entry; certain code disabling CIA timer interrupts would then cause the keyboard to be unresponsive after jmp $8000. [TMP] BUG: Default start address is now $1000; v1.1 fixed this for some cases but not all (e.g. try: start oTAM, don't add any code and immediately assemble). Now the assembler will always assume a start of $1000 if not set by "*=". [oTAM:0000010] DELE: Preferences (BA+p) have been removed from the main tool; but see below for info on the new "TMPPREFS" utility! CHNG: oTA/oTAM both save between $0 and $200 extra 'trash bytes' at the end of source code files. TMP now more properly saves only what is really necessary to store all source code data and still maintain backwards compatibility (both with loading/saving old sources and for other Turbo Assembler Macro based versions to load sources saved from TMP). The end result is that your source files should be between 0 and 2 disk blocks shorter from now on. [0000053] * TMP+DTV v1.2 FEAT: DTV palette at $d200 is now reverted to the startup palette when TMP is entered (jmp $8000). [0000052] * TMP+PTV v1.2 FEAT: Bad lines are disabled during assembly to provide a speed up that should be similar to VIC blanking on flat c64 but without the actual blanked screen... FEAT: Skip-cycle and burst mode are also activated during assembly; both this and the previous speed up behave identically to the 2mhz/VIC blanking described below. This was actually present in v1.1 but not documented in the change log... INFO: Be aware that the PTV mod also, of course, works with your hacked Hummer wheels. * TMPPREFS v1.2 INFO: First release of a separate preferences editor. To use, load the prefs editor, then use familiar TMP controls to load any existing TMP v1.2 binary (wtih BA+l). Once loaded, you can use: BA+c = alter color preferences, works like v1.1; you need to hit CTRL or CBM and a number key just like you were setting the current cursor color! BA+o = flip through color sets from some well known versions BA+2 = alter 4 character separator template BA+j = alter jumpback location BA+k = alter function key definitions BA+7 = alter return tab (column that cursor sits after return) BA+8 = alter source tab (column that opcodes/pseudos start) Each change should be reflected in the example source screen. Once you're satisfied with your preferences, use BA+s to save the new binary (use a different filename!). Remember, the v1.2 prefs editor will only work with v1.2 binaries from the Sep'06 release! Also note that using this tool changes the defaults used by TMP; source codes you previously saved will still retain their own return/source tab settings and function key definitions, until you reset those and resave those sources. Finally, BA+d and BA+* have the same effect as from within TMP: increment-device and view-directory. [0000054] ------------------------------------- Turbo Macro Pro, Oct'05 ------------------------------------- * TMP+REU v1.1 * TMP v1.1 * TMP(X2) v1.1 * TMP(R2) v1.1 BUG : The list-labels (BA+u) function was broken when outputting to a file - instead of being sent to the current serial device, output was thrown to the screen. [TMP:0000031] BUG : The .include pseudo was utterly broken, as reported at least twice to comp.sys.cbm. The fix restores this functionality as intended, working with SEQ files - it will not include from a binary/PRG source file! [TMP:0000033] BUG : Poor behavior was seen when starting TMP when there were no serial devices present at all on the bus (devices 8-15); this was particularly troublesome for the DTV mods. TMP now acts better when this occurs. [TMP:0000034] FEAT: Tool uses 2mhz mode setting during assembly phase; this will only affect operation on a c128 of course. 2mhz mode is turned off at the first error during assembly enabling user to view the error reports; also turns off when including a file. [0000003] FEAT: Tool also uses VIC screen blanking during assembly phase, which behaves identical to 2mhz mode above. [0000004] FEAT: A variant of list-labels was added - list-labels-vice (BA+U) will output the label table in a format compatible for loading into the VICE emulator monitor. [0000027] CHNG: PLEASE NOTE THIS CHANGE! The jumpback routine in all applicable versions of TMP has changed it's default location from $0180 to $0140. Be sure and update any code you had that relied on the location of the jumpback code. And as it has ever been in TMP, the location is still configurable using the RAM submenu, which is invoked with BA+R - then use j to set the jumpback location. DOC : Added more details of the preferences system (BA+p). [0000015] DOC : Generally rewrote/reworded almost the entire set of documentation and along the way corrected some minor mistakes. * TMP+DTV v1.1 BUG : There was another problem in bank swapping, as not all memory was swapped in as expected. [TMP+DTV v1.0a] * TMP+PTV v1.1 INFO: First release for the DTV v2 (or PTV, as in PAL) joystick system. This mod behaves in respect to the PTV's extra memory (2 megs) identical to the REU mod, using the eight (8) highest 64k banks of RAM for assembly, object data, and source code. The tweaks made to the DTV mod like the default color scheme and remapped page up/down keys are also active in this mod. The extra RAM commands are activated with BA+R just as in the REU and DTV mods. [0000032] ------------------------------------- Turbo Macro Pro+DTV, Dec'04 ------------------------------------- * TMP+DTV v1.0a BUG : A potentially source-corrupting bug that got introduced into the DTV version was fixed; this is not present in any other version of TMP. [TMP+DTV v1.0] BUG : Discovered that DTV himem locations $1d800-$1dbff are actually mapped to color RAM at $d800, meaning those locations are volatile and overwritten whenever $d800 is written to. This could cause additional source corruption on larger sources so to prevent it, for now the DTV mod maximum line limit was reduced to 3,069 (plain Turbo allows 4,093 and TMP allows 5,117). [TMP+DTV v1.0] BUG : Editing a line and then immediately assembling (without moving the cursor off the line) would cause the edits to the line to be lost. [TMP:0000002] BUG : During make-data, if the c64 is reset or TMP is otherwise interrupted, once TMP was restarted the make-data operation would commence where it left off. The fix stops this from occurring. [TMP:0000001] FEAT: During make-data, run/stop can now be used to abort. FEAT: The make-data (BA+6) function now reads from the DTV himem. ------------------------------------- Turbo Macro Pro+DTV, Dec'04 ------------------------------------- * TMP+DTV v1.00 INFO: First release for the DTV joystick system. Utilizes the extra 64k in the DTV as a combined assembly and object bank in a similar manner as the REU version, allowing full use of the DTV regular memory for assembled code. [0000016] FEAT: The REU commands (BA+R) invokes a similar menu operating on the DTV memory with load-object-file and set-jumpback functions. FEAT: The PS/2 keyboard's page up and page down buttons translate to britpound and uparrow, which are normally invoke the copy-buffer and paste-buffer functions. In the DTV mod, these keys now operate as one might expect, bumping the cursor up or down by 20 lines. The old functions are now invoked by BA+{shift-britpound} and BA+{shift-uparrow}. CHNG: A different editor color scheme is in effect, more appealing with the DTV's slightly different looking (dimmer) colors. ------------------------------------- Turbo Macro Pro, Oct'97 ------------------------------------- * TMP+REU v1.05 * TMP v1.02 BUG : Fixed misc problems that resulted from the absence of a Super Snapshot cartridge. [TMP] BUG : Fixed a bug when detecting and loading 'plain Turbo' binary source files. [TMP] CHNG: Tidier cleanup of zeropage upon a turbo cold start. CHNG: Available devices detected increased from 8-11 to 8-15. DOC : Added description and example for using the .offs pseudo-op. * TMP(X2) v1.00 * TMP(R2) v1.00 INFO: First releases for 'dual c64' systems. Incorporates all mods and bug fixes to date, where applicable. Uses BA+% to assemble across the wire to the slave c64. The R2 mod is a completely unique concept that combines the dual c64 capability with the REU mod's bank switching features. ------------------------------------- Turbo Macro Pro, Mar'97 ------------------------------------- * TMP+REU v1.03 BUG : Performing a block-kill (BA+b k) while the first line of the source code was included in the current block results in corrupted source code. The partial fix simply ignores when block-kill is invoked in this situation. [oTA, oTAM] FEAT: Output during assembly was significantly altered to conserve vertical space - the pass start/end info was reduced from 3 lines to 1; error output was reduced from 3 lines per error to 2 lines. FEAT: Source code that was saved with the famous Panoramic Designs mod which are located at $a000 will now be recognized and loaded transparently, just like regular 'plain Turbo' source. CHNG: All input prompts accepting a filename are reduced in length to 16 characters (was formerly varied, usually 20 or more) * TMP(64) v1.0 INFO: First release for plain (non-REU expanded) c64 systems, with all features and bug fixes to date; main difference is lack of the REU commands function. ------------------------------------- Turbo Macro Pro, Jan'97 ------------------------------------- * TMP+REU v1.0 INFO: First release for REU expanded systems. BUG : During input when the cursor is at the first character of the input field, pressing delete wraps around, placing the cursor at the last character of the input field, but wasn't deleting the character in the last position. [oTA, oTAM] BUG : During an enter-seq (BA+e), literal returns inside quotes such as: .text "line 1[M]line 2[M]" were taken as a syntactic newline, resulting in an incorrect split line in the editor. The fix changes enter-file to track quoted literal text and read it in correctly. [oTA, oTAM] FEAT: Rewritten REU functions that allow on the fly bank swapping to store and access multiple sources at any time, fully integrated into the tool. Removed the separate 'REU menu' and replaced with BA+R to invoke the REU commands. Furthermore replaced all REU bank swapping code from the ATT mod with new code, reducing the required number of banks from 3 to 2 (enabling 128K units to be used). FEAT: Added assemble-to-object (BA+#) which assembles the current source directly into the object bank instead of the assembly bank. CHNG: Changed list-labels from BA++ to BA+u. BUG : The list-labels function was corrupting the line buffer as seen when doing paste-buffer after the list. [oTA, oTAM] CHNG: Changed disk-command from BA+d to BA+@. FEAT: Entering @ by itself during disk-command reads the drive status; this was formerly accomplished by BA+@. FEAT: Added increment-device (BA+d) which selects the next available device number between 8 and 11. FEAT: Added current drive number to the status line. FEAT: Added current REU source/object bank numbers to the status line. FEAT: Added a block-move function (BA+b m) which performs the same as block-copy followed by block-kill. FEAT: The view-directory (BA+*) can now be paused by holding CBM or aborted by hitting run/stop. FEAT: Added cursor-right-edge (BA+{crsr-right}) to push the cursor to the rightmost column. FEAT: Added cursor-left-edge (BA+{crsr-left}) to push the cursor to the leftmost column (same as BA+q). FEAT: Added view-seq (BA+!) which displays the contents of a SEQ file from disk to the screen; CBM pauses and run/stop aborts. FEAT: Added add-hex (BA++) and sub-hex (BA+-) which displays the result as both hex and decimal. FEAT: Added paste-separator (BA+2), a function common in most mods of TA but not present in the original TA and TAM; unlike other mods the separator is composed of a repeated sequence of 4 characters rather than only one character; however the default sequence is '----' which results in typical separators. FEAT: Added make-data (BA+6), another function common in most TA mods but not present in the original TA and TAM. This version reads data from the current REU object bank instead of plain c64 memory. FEAT: Preferences editor has been added which allows changing all seven colors ($d020, $d021, regular text, error text, highlight text, message line, and status line) as well as the four characters used for the separator function. Also enables the user to save a copy of the customized program ($8000-$ca00) to disk. The preferences editor is invoked with BA+p. FEAT: Source code files from 'plain Turbo' (starting at $9000) are automatically recognized and loaded safely and transparently. FEAT: Holding down the CBM key when starting up the editor will force a cold start. FEAT: Added a separate stand alone prg that detects instances of TMP in the REU and allows user to jump to any turbo bank; this is basically a 'rescue' tool if the c64 memory becomes utterly corrupted... FEAT: Displays size of detected REU in message line at startup. DELE: Removed the other-colors function (BA+o). CHNG: Changed fkey-reset from BA+f1 to BA+K. CHNG: New function key defaults: f3 = cursor up 200 f4 = assemble (BA+3) f5 = cursor down 200 f3 = REU commands (BA+R) CHNG: The jumpback code (the short routine placed in memory after choosing to execute the assembled code) was shortened and does reset the VIC now in comparison to the jumpback code in the MO mod. CHNG: Input fields for find-string and replace-string were reduced in length from 24 to 20 characters. CHNG: Most input prompts were altered to use consistent wording and styling. ------------------------------------- Turbo Assembler Macro++ REU, 1993 ------------------------------------- INFO: Modification by Massive Onslaught/Style that was based from Antitrack's earlier mod of Turbo Assembler Macro (TAM) for REU support. MO added an invocable REU menu to allow loading of object data into the object bank, as well as inserting a small routine into memory ($0180) to re-swap the Turbo+source into c64 memory after testing assembled code. This modification was the one which was re-sourced and from which Turbo Macro Pro was derived.