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.