DisAssem Monitor Disassembly Programs - Monitor, MonXXX ======================================================= J.G.Harston, 70 Camm Street, Walkley, Sheffield, S6 3TR jgh@mdfs.net Core Version 2.00 - Date: 16-Mar-2007 Monitor allows you to disassemble machine code for a variety of processors using the disassembly routines in the DisAssem ROM. Mon09, Mon32, Mon65, MonPDP and MonZ80 disassemble the 6809, 32000, 6502, PDP-11 and Z80. When running in a 40-column screen mode, the disassembly is shown at the top of the screen, with a summary the instructions at the bottom. In an 80-column screen mode, the disassembly is shown at the left, with the instructions at the right. The following keys are recognised: 0-9, A-F: Enter bytes. Up to 16 bytes can be entered as a single string of digits. G: Get to buffer. The specified file will be loaded into the code buffer. H: Hex data. This toggles between displaying the data in hex and octal. J: Set data width. This cycles through data byte widths of 4 to 8 L: List disassembly. The specified code is disassembled M: Set memory address. The display listing is changed to start at the specified address. N: Display named labels. This cycles through four options for displaying MOS entry points at &FFxx. It cycles through "&FFxx", "OSxxxx", "&FFxx :\ OSxxxx" and "OSxxxx :\ &FFxx". O: Set code origin. This sets the address that will be interpreted as address &0000 for disassembly. If the entered address is prefixed by '=', then the currently displayed memory address is recalculated to be the specified address. Otherwise, the entered address is used as the origin address. P: Put from buffer. The code buffer is saved, using the length entered. TAB: Dump bytes/List disassembly. The display can be toggled between disassembly and hex/ascii dump. When in dump display mode, pressing + and - will move the memory address by 128 byte, instead of 8. Q: Quit. This terminates the program. R: ROM number. If the program is running in the I/O processor, you can disassemble from a specific sideways ROM or RAM bank. You can also enter the address directly as &FFFrxxxx. S: Set Screen mode. If there is sufficient memory, the entered mode will be switched to. T: Enter text string. The entered text string of up to 32 characters is entered straight into memory. W: Set address width. This cycles through an address width of 4 to 8 bytes. Y: Enter bit7-terminated text string. The entered text string of up to 32 characters is entered into memory with bit 7 of the final character set. Z: Set CPU. If the program can disassemble more than one processor, this allows you to select one. If disassembly routines for the selected processor do not exist, you are prompted to re-enter until a valid number is entered. If the disassembly subroutines specify an address with, this will be changed to suit. *: Enter *commands. At this prompt *commands can be entered. Press RETURN to finish. You can also select 'G'et file and 'P'ut file from the *command prompt. + - : Advance or go back by 8 bytes, or 128 bytes in dump mode RETURN DELETE : Advance or go back by 1 byte SPACE : Advance past a single opcode Hints ----- You can create a file containing a disassembly listing by spooling output to a file with *Spool. Enter *Spool , then use (L)ist to list the disassembly. When finished, do *Spool with no filename. The outputted file will only have the disassembly listing, the Monitor menu and other displays are not spooled. Version History --------------- v2.00 Main monitor core completely rewritten. v1.43 ... : v1.00 About 1985 Original MonZ80 program