This machine language monitor owns the most standard commands together
with some interesting features taken from my C64
assembler and some commands to
do system calls easier.
All addresses and data bytes can be given in hex, decimal (with
preceding "."), octal (with preceding "&") or in binary (with
preceding "%"). The output of the commands M, B, R, D, G and C can
be piped to a file with "> filename", like in the shell.
X exits monitor (goes to shell) D a b disassemble from address a to b B a b binary list M a b hex dump R shows register contents ; a mnem A a mnem assembles 6502 mnemonic to address a + pc ac xr yr sp sr sets registers to a new value. a "-" instead of a value leaves the register unchanged E a b exchanges environment block a (the a'th MMU register) with with memory block b S "name" a b save memory from a (included) to b (not included) in file "name". The first two bytes in the file are the memory address G a Goto address (executes a JSR) L a b reads b bytes from STDIN and saves them at address a L "name" a Load file "name" to address a or the included load address if a is left out C a b c Compare memory area from a to b with the area starting at c T a b c Transfer (copy) memory from a to b to the address c O a b c Occupy (fill) memory from a to b with c P a b c sets system parameter: a becomes the standard drive (for load/save), b is the number of bytes printed in a line with hex dump and c becomes the number of available memory blocks (a 4kByte) for this task. A "-" leaves the value unchanged. U a b c d e change in the memory area from a to b all three byte assembler opcode addresses pointing to the area between c and d to the area starting at e I a b c ... , a b c ... writes bytes b, c, ... into the memory at address a F a b string tries to Find the string (which is mixed from bytes, separated by spaces and strings, enclosed in double quotes) in the address area from a to b FA a b addressing search all assembler codes in memory from a to b, that have the given addressing mode: "FA a b (**AB)" means to search all absolute indirect addressing modes with low byte equal to $AB FR a b search for relative jumps F- a b c search in memory from a to b for bytes that are not equal to c YD a b c DEVCMD with device a, command b and parameter c YM GETMEM YF a FREMEM memory block a YS GETSTR YR a FRESTR stream a YE GETENV YP adr env stdin stdout stderr FORK YW sem PSEM YV sem VSEM YG a tries to get memory block a with GETBLK YC d:mask show directory