TronMon 2.1

First of all:TurboAssembler is a heavily MODIFIED version of the Omikron original program. TronMon is on the other hand FULLY coded by Tron of FLT, for use with the Xmem Ass package. It's mainly a normal monitor, inspired by the one in ActionReplay.

Mind one thing first:You may use either commas or space to separate the arguments for the different commands.

Eg:

s "pelle",8,0800,4000

s "pelle" 08 0800 4000

s "pelle" 8 800 4000

s "pelle",8 0800,4000

These four examples do EXACTLY the same thing. Note the possibility to MIX the spaces and commas, and also the option  to omit the leading zero(s).

Commands

O Bankselect. All operations are made to the bank you are currently in, unless differently stated! Banks from O0 to OEF are supported. OFX means internal RAM with the X value in $01 at the operation. The ”*” command will toggle $F0/$F7. Eg.
O01
A Assemble. e.g.
A1000 SEI
D

Disassemble e.g.

D1000 [2000]

(D1000- is not implemented yet)

M

MemoryPeek. As the D for the options!

M 1000 [2000]

I Screencode interrogate. (Works as I* in AR).
IZ

Show all bytes but for the zeros. Very handy for scanning the zerofilled memory for small pieces of data.

IZ 1000 2000

Mind that IZ 1000 and scrolling up and down is not a valid option. This is something I asked Tron for, as it's a really fast way to find changes in a zerofilled memory, rather than scroll through using the I command

L

Load e.g.

L "FOOBAR" 08 [1000] [3000]

The last option is for the load to brake at a certain point, if you just want a part of the data.

S

Save (Remarkable, isn't it?  :-) E.g.

S "FOOBAR" 08 1000 2000

This command was notorious for sometimes missing the end. The bug is fixed in version 2.1.

H

Hunt eg.

H 1000 2000 10 [20 30 40 50]

Limitations: No more than 8 bytes and no text yet! Now also supports patternsearch. Any nibble might be replaced by X to indicate that this might be anything. F.ex.

H 0 FFFF 20 XX 1X

will find all JSR:s to the area $1000-$1FFF

T

Transfer eg.

T 1000 3000 [-4] 6000

This transfers in memory and also between banks. The number after the - selects the destinationbank. Default is the current. It now works to transfer both upwards and downwards in the same bank. At last, Tron!! :-)

F

Fill memory e.g.

F 1000 2000 00

It's worth noting that we ourselves thought something was wrong, while filling memory in a REU bank, as the cursor was back in no time, but it does work using the blitter so it IS that fast!

C Compare. Same syntax as T, which enables comparisons between banks!
N

Number conversions! e.g.

N $FCE2

BIN convert bug removed! Also, the monitor quits if you don't send a parameter. Ooops! ;-)

@

The Alfa sign for DOS commands e.g.

@ -  Read channel

@X - Switches to device X (100%)

@$ - Directory. It now features pattern search e.g. @$o.* or $pelle*

Since V2.0 we also have block commands available.

@BR/BW track sector "memory page", eg.

@BR 12 01 C0

@BW 12 01 C0

This is standard Action Replay syntax! Mind that if the program finds a link to another sector, the command to read this sector is generated for you, so you can just press return.

G

For GO

This command uses a routine, a dwarf of the assembler's "return" routine, you might say. It resides in $0380-$0400 (easy to destroy..). The BRK vector and NMI vectors are automatically set to $0380 and also the address is pushed onto the stack for RTS. The routine provides no selective storing, it will simply copy everything in RAM back into the bank that you jumped to. Unfortunately still rather buggy!

G 1000

E

EOR an area with a specified value. No option to EOR with a mask from another area is implemented

E 1000 2000 33

R Shows the current registers
* RAM/ROM mode. If you have selected internal RAM using the O command, this will switch between F0 and F7... (I.e. $01 set to either $30 and $37)
X Exit
Detects if the Assembler is in the memory. If yes; go to the assembler or else do a warmstart
IN

Increases a range

IN 1000 2000 08

This command adds 08 to all bytes in the range. You expected a DE command? You won't get it! The reason is very simple:

IN 1000 2000 F8

This subtracts 08 from every byte in the range!

LS

Load Seq file.

LS "name" 09 1000

SS 

Save Seq file.

SS "name" 08 1000 2000

LL

This is a VERY kewl command. List Labels! It checks the labletable for the results of the most recent assembly.

LL ir

This lists all labels starting with the string supplied, and also the value they represented during the last assembly. This above MIGHT result in something like;

IRQ                 = $EA31

IRQLO            = $0314

IRQHI             = $0315

IRQ2               = $1008

IRINA             = $FCE2

You could swap to the XAss system for this feature alone!

FM

Memdump from a file.

FM “filename“ ,08

BF

FillBank, eg.

BF 1

Note that it fills the CURRENT bank with specified value, in this case current bank will be filled with $01 from $0000 to $FFFF. It’s NOT Zero-fill specified bank as perhaps could be expected...

BE

BasicExit in specified bank.

BE 1

This  brings you to the basic prompt in any specified bank. Great if you’d like to enter a bank without actually starting the program...