--------------------------------- TEMPLEMON ----------------------------------- Copyright (C) 1986, Thomas Tempelmann Thomas Tempelmann, Nordendstr. 64, D-8000 Mnchen 40, West Germany ------------------------------------------------------------------------------- The versions 1.xx of TEMPLEMON may be considered Freeware and can be freely copied under the following condition: TEMPLEMON.PRG must be in a folder named TEMPLEMON when a copy is made for others. The files READ.ME and INSTRUCT.TXT must be included in the folder. ------------------------------------------------------------------------------- TEMPLEMON short command summary /Version 1.20/ 11/12/90 Call Templemon by pressing CONTROL + HELP! NOTE: All values are displayed/entered in hexadecimal. "!" is the monitor's prompt. stands for first address. stands for the first excluded address (roughly expressed - ending address). can optionally be replaced with X (n = number of bytes) and in some cases with Z (n = number of lines to be displaed). The ending address can be replaced with a "." (i.e. "M 1000.") when used in the functions "M", "D" and "I" to achieve an open-ended listing. The contents of a register may also be used in place of an address using "R" as a prefix followed by the register (i.e. "D R PC."). Decimal values can be entered with "&". The value of any register can be entered with "R". The plus- and minus-signs can be used to build expressions (i.e. "M RA0+2"). Any address can be prefixed with the offset-variable "O" (i.e. "M O24E."). See the "O " command later in the overview for information on setting the offset-variable. The prefix "P" indirects the following address. E.g, "P84" will mean the long value standing at address $84 (points to the TRAP #1 handler). "P RA0-4" mean the value standing at address . Use brackets to exclude following expressions: "(P RA0)-4" will load the value where Reg A0 points to and then subtracts four. All output to the screen can be stopped and restarted with the /SPACE/ key or aborted with any other key. Try out the F1 and F2 keys! F1 displays the monitor, while F2 displays the original screen (TEMPLEMON uses its own screen to protect the original). M Memory dump (byte size). MW Memory dump (word size). ML Memory dump (longword size). : ... Store bytes starting at . :W ... Store words... :L ... Store longwords... D Disassemble an area of memory. O Set the offset variable "O" to the value . C Copy bytes from ..-1 to ..+(-). V Verify bytes (see "C" function for range information). H ... Hunt (search for bytes). Use "?" as joker. H ' Hunt (search for string). Use "?" as joker. F ... Fill memory with bytes. Use "?" as joker. F ' Fill memory with a string. Use "?" as joker. I ASCII dump. ' /SPACE/ Store ASCII-characters (bytes) into memory B Display all breakpoints B Set breakpoint number to address B- Clear all breakpoints G Leave TEMPLEMON and continue execution at address (NOTE: is optional). GS Call a subroutine at , then return to TEMPLEMON. T+ Trace-mode on. T- Trace-mode off. NOTE: If Trace-mode is on a "G"-function will not execute directly, but will wait for one of the following keys: /SPACE/ for executing displayed instruction /ESC/ to enter monitor commands (enter "G" to continue tracing). /O/ to execute without display (stops only at breakpoints or when ALT/HELP is pressed). /R/ to return from a subroutine (execute without display until return) /A/ similar to "O", but forces all instructions to be traced. All Traps can be traced and breakpoints can even be checked in ROM. (NOTE: Trace will be disabled while the interrupt-mask is set to 6 or 7, or the system-variable $43E (flock) is non-zero.) /F/ similar to "O", but the program will run with full speed (no tracing). /D/ disassembles next instructions. /B/ sets breakpoint at next or displayed line. You can use this command whenever you want to skip over a subroutine call or a loop: If the next line looks like "JSR
", simply press "B" then "F" (or "O") and the subroutine will be called without having to trace it step by step. If you want to skip over a loop, press "D" several times until you have displayed a line behind the loop. Then press "B" and "F" (or "O") and you will get behind the loop. R ... Show selected registers (D0-A7,SR or F,PC,SSP,USP). R = Store longword into register . R F = Sets flag to value (i.e. "R FC=0" to clear the carry-flag). R: ... Set register-default-display (i.e. for Trace). R Show all registers. RS Saves all registers RR Restores all saved registers. P Clear screen (output a form feed). S , Saves memory to a file named P Open a protocol file. All outputs will be send to the file (i.e. "P PRN:" sends output to printer). PC Closes an opened protocol file. Q Quit ( calls Pterm0() ). VI Vector init. Re-inits exception vectors trapped by the monitor. Displays only vectors that didn't point to Templemon any more. Then the old, overwritten, value will be printed, too. & Calculates the hex value from the given decimal value. ? Operates the two values with the operator (+, -, *, /, A (and), O (or), E (eor)) and prints the result. All system/exception vectors modified by TEMPLEMON are notified with the XBRA-ID "TMon". TEMPLEMON also works with the overscan modification (larger screen resolution for less than $10). This and some other extensions were implemented by Johannes Hill, Alicenstr. 30, D-6100 Darmstadt 1, West Germany Thanks a lot! I hope that you will find TEMPLEMON useful and that your bug-swatting problems are eased by my monitor. Thomas Tempelmann E-mail: Nordendstr. 64 GEnie: T.TEMPELMANN D-8000 Mnchen 40 BIX: 'tempel' West Germany CIS: 72377,351