'COPYRIGHT 1981, 1982, 1983 INTEL CORP Help is available for the following items. Type HELP followed by the item name. The item name cannot be abbreviated. (For more information, type HELP HELP or HELP INFO.) Emulation: Trace Collection: Misc:
GO GR SY0 TR QR QR0 QR1 SY1 BASE BR BR0 BR1 DISABLE STEP Trace Display: DOMAIN TRACE MOVE PRINT ENABLE OLDEST NEWEST ERROR EVALUATE Change/Display/Define/Remove: HEADINGS DEFINE CBYTE CWORD HELP REMOVE DBYTE DWORD INFO REGISTER RESET XBYTE XWORD LIST SECONDS WRITE RBYTE RBIT LOAD SYMBOLS STACK PBYTE MAP SAVE MODULES LINES DASM ASM SUFFIX SY SYMBOLIC Macro: DISABLE ENABLE INCLUDE Compound Cmds: DEFINE COUNT IF REPEAT DIR P
- A numeric value expressed as an algebraic sequence of operand(s) and operator(s). It typically represents an 8051 memory address, but in some commands it may represent a length, count, or match value. It has the following form: [ ]@ ::= [+|-] ::= (EX: 17T,1110Y,F2H ) | (EX: 'R','3' ) | (EX: ..MAIN.LAP,..SUB#5,.P0 ) | (EX: R0,RBS ) | (EX: BUFFERSIZE,CAUSE ) | (EX: FRAME ADDR,FRAME TOVF ) | "" (EX: "ANL A,R7","RETI" ) | () (EX: (CBYTE 1234H),(.P0+14H) ) ::= MOD | * | / | + | - ASM - Command to assemble instructions into 8051 code memory. (1)To display the current value of the assembly program counter, type: ASM (2)To change the value of the assembly program counter, type: ASM ORG
(EX: ASM ORG 400H ) (3)To assemble an instruction into 8051 code memory at the address in the assembly program counter, type: ASM (EX: ASM MOV A,R0 ) After the instruction has been assembled into memory, the updated assembly program counter will be displayed. This command cannot update memory mapped to USER. BASE - Refers to the default base in which numeric values are displayed on the console. Initially hex. (Note: if symbolic display is enabled, memory addresses are displayed as a symbol or line number, if there is an exact match; otherwise as a hex value. Trace data and breakpoint/qualifier match values are always displayed in hex. BUFFERSIZE is always displayed in decimal and map block addresses are always displayed in hex.) See SUFFIX for default input base. (1)To display the default base, type: BASE (2)To change the default base, type: BASE = Y (Binary) | O,Q (Octal) | H (Hexadecimal) | T (Decimal) | ASCII (Ascii) BR - Refers to both Breakpoint Registers, BR0 and BR1, which may specify a condition for terminating real-time emulation. A breakpoint register has effect only when it has been enabled in a GO or change GR command. The initial condition is all don't cares. (1)To display BR0 and BR1, type: BR (2)To set both BR0 and BR1 identically, type: BR = (EX: BR = P0 IS 4 TO 4F ) BR may also be changed by a GO or change GR command. (EX: GO TILL LOCATION IS 5H ) (3)To reset both BR0 and BR1 to all don't cares, type: RESET BR When used in a GO or change GR command, BR means "BR0 or BR1". BR0 - Breakpoint Register 0. May specify a condition for terminating real-time emulation. It has effect only when it has been enabled in a GO or change GR command. The initial condition is all don't cares. (1)To display BR0, type: BR0 (2)To change BR0, type: BR0 = (EX: BR0 = LOCATION IS 5 AND P0 IS 4 ) BR0 may also be changed by a GO or change GR command. (3)To reset BR0 to all don't cares, type: RESET BR0 BR1 - Breakpoint Register 1. May specify a condition for terminating real-time emulation. It has effect only when it has been enabled in a GO or change GR command. The initial condition is all don't cares. (1)To display BR1, type: BR1 (2)To change BR1, type: BR1 = (EX: BR1 = OPCODE IS 6 TO 16H AND XADDR IS X11XY ) BR1 may also be changed by a GO or change GR command. (3)To reset BR1 to all don't cares, type: RESET BR1 PCBYTE - Command and keyword used to reference 8-bit quantities in 8051 code (program) memory. (1)To display one or more locations, type: CBYTE (EX: CBYTE 0 TO FFH ) (2)To change one or more locations starting at
, type: CBYTE
= [,]@ (EX: CBYTE 0 = 1,2,3,'JUMP' ) (3)To change several locations and perform range-checking, or repetition, type: CBYTE = [,]@ (EX: CBYTE 0 LEN 9 = 1,2,CBYTE 56H ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting words to bytes, only the LSB is used. With ASCII strings, each character is considered as one byte. 8 - Change commands: (1)To change an 8051 register, type: = (EX: R0 = 6 + 5 * 4 ) (2)To change the value of a user symbol, type: = (EX: ..PROG.PETE = 34 * 5 ) (3)To change a memory reference, type: = [,]@ ::= CBYTE|CWORD|DBYTE|DWORD|XBYTE|XWORD | PBYTE|RBYTE|RBIT ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD (EX: CBYTE 0 TO 5 = 4 DBYTE 5 = CBYTE 4 ) See also ASM,BR,BR0,BR1,GR,QR,QR0,QR1,TR. COUNT - The commands in the COUNT command are executed a bounded number of times or until a condition is satisfied, whichever comes first. The is evaluated as decimal if there is no explicit radix. COUNT [ ]@ END ::= | ::=An ICE-51 command ::=WHILE | UNTIL The looping is exited if the value has a low-order bit 0 (FALSE) in a WHILE or a low-order bit 1(TRUE) in an UNTIL. (EX: COUNT 5 STEP UNTIL .A=5 END ) ~ - A keyword reference to the 8051 registers. Each may be displayed by simply typing the keyword. All of them may be changed by typing the keyword followed by "=" and "". R0 Register 0* R1 Register 1* R2 Register 2* R3 Register 3* R4 Register 4* R5 Register 5* R6 Register 6* R7 Register 7* PC Program Counter (16 bits) DPTR Data pointer registers (16 bits) RBS Register Bank Select (2 bits) TM0 Timer 0 (16 bits) TM1 Timer 1 (16 bits) * The registers are affected by the current setting of RBS. }CWORD - Command and keyword used to reference 16-bit quantities in 8051 code (program) memory. (1)To display one or more 2-byte locations, type: CWORD (EX: CWORD 0 TO FEH ) (2)To change one or more 2-byte locations starting at
, type: CWORD
= [,]@ (EX: CWORD 0 = 8765H,4321T,'BLASTOFF' ) (3)To change several 2-byte locations and perform range-checking or repetition, type: CWORD = [,]@ (EX: CWORD 0 LEN 9 = 1,2001H,DWORD 26H ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting bytes to words, the MSB is zero-filled. With ASCII strings, each character is considered as one word, with the MSB=0. DDASM - Command to disassemble 8051 code memory into assembly language instructions. User symbolics which exactly match opcode address are displayed on a separate line. In disassembling addresses of all kinds, the user symbol table is searched first. If an exact match is found, it is displayed. If an exact match is not found, the appropriate system symbol table is searched. If an exact match is found, it is displayed. If not, the address is displayed in hex. (1)To display one or more bytes of code memory, type: DASM (EX: DASM 100H to 150H ) An instruction is displayed if its first byte is within the , even though some subsequent bytes may lie outside the range. DASM assumes that the first byte of memory to display is an opcode. HDBYTE - Command and keyword used to reference 8-bit quantities in 8051 internal data memory. (1)To display one or more locations, type: DBYTE (EX: DBYTE 0 to 1EH ) (2)To change one or more locations starting at
, type: DBYTE
= [,]@ (EX: DBYTE 0 = 4,8,'TEN' ) (3)To change several locations and perform range-checking or repetition, type: DBYTE = [,]@ (EX: DBYTE 0 LEN 9 = 1,2,XBYTE 56H,45H ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting words to bytes, only the LSB is used. With ASCII strings, each character is considered as one byte. lDEFINE - Command to define a new user symbol or macro. (1)To define a new user symbol and add it to the end of a specified module (or to the unnamed module if no module name is given) in the user symbol table, type: DEFINE [..] . = where and are s. (EX: DEFINE ..MAIN.TOM = 45+63H DEFINE .COUNTER = 5 ) (2)To define a macro, type: DEFINE : [ ]@ EM ::=Any ICE-51 command except DEFINE macro or REMOVE macro. The macro definition may not appear within any compound command (REPEAT, IF, COUNT or another macro definition). Formal parameters in the [ ]@ list are of the form "%n", where n is a digit 0-9. They are used to pass text to the macro when it is invoked. The syntax and semantics of the macro are entirely ignored at the point of macro definition, and are not checked until the macro is invoked. (EX: DEFINE :SQUARE .SQ = %0 * %0 EM ) DIR - Command which displays the names of all available macros in the user macro list. The macro text is not displayed. DIR DISABLE - Command to disable a condition or mode. (1)To select the unlatched input mode for SY0 or SY1, type: DISABLE SY0|SY1 LATCH (2)To disable the SY0 or SY1 output type: DISABLE SY0|SY1 OUT (3)To disable addresses from being displayed symbolically, type: DISABLE SYMBOLIC (4)To disable symbolic addresses from displaying as line numbers, and instead display them as symbols, type: DISABLE LINES (5)To disable consol display of invoked macros (silent macros), type: DISABLE EXPANSION (6)To suppress display of column headings for REGISTER & PRINT, and the emulation begun/terminated messages, type: DISABLE HEADINGS NOTE: A special trace display mode is available with DISABLE SYMBOLIC, ENABLE LINES, wherein only line numbers are displayed, and no code. See also: HEADINGS,SY0,SY1,SYMBOLIC.  - Display commands: (1)To display an 8051 register, type: (EX: R3 ) (2)To display an ICE-51 system variable, type: (EX: PPC ) (3)To display the value of a symbol, or line number, type: (EX: ..TREE.ORANGE, ..SUB#9, .SP ) (4)To display all user symbols, all line numbers, or all module names in the user symbol table, type one of the following: SYMBOLS LINES MODULES (5)To display memory reference(s), type: CBYTE|CWORD|DBYTE|DWORD|XBYTE|XWORD|PBYTE|RBYTE|RBIT (6)To display the 8051 registers, type: REGISTER (7)To display the stack pointer and a variable number of stack entries beginning at the current stack top, type: STACK [] (EX: STACK 4 ) If is omitted, the entire contents to location 0 is displayed. (8)To display the ICE-51 microsecond emulation timer, type: SECONDS (9)To display the default module for line number references, type: DOMAIN See also ASM,BR,BR0,BR1,DASM,GR,PRINT,QR,QR0,QR1,TR,. DOMAIN - Command to set or display the default module name to be used when line number references do not specify a module. (1)To display the current default module (if one is defined), type: DOMAIN (2)To define a new default module name, type: DOMAIN = .. (EX: DOMAIN = ..MAIN ) where is defined as . See also: LINES,SYMBOLS, }DWORD - Command and keyword used to reference 16-bit quantities in 8051 internal data memory. (1)To display one or more 2-byte locations, type: DWORD (EX: DWORD 0 to 1EH ) (2)To change one or more 2-byte locations starting at
, type: DWORD
= [,]@ (EX: DWORD 0 = 286T,8080H,'INTEL' ) (3)To change several 2-byte locations and perform range-checking or repetition, type: DWORD = [,]@ (EX: DWORD 0 LEN 9 = 1,.SP,XWORD 56H,4500H ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting bytes to words, the MSB is zero-filled. With ASCII strings, each character is considered as one word, with the MSB=0. RENABLE - Command to enable a condition or mode. (1)To select the latched input mode for SY0 or SY1, type: ENABLE SY0|SY1 LATCH (2)To enable the SY0 or SY1 output, type: ENABLE SY0|SY1 OUT (3)To enable addresses to be displayed in the symbolic format as specified by LINES, type: ENABLE SYMBOLIC (4)To enable symbolic addresses to be displayed as line numbers, and instead of as symbols, type: ENABLE LINES (5)To enable consol display of invoked macros, type: ENABLE EXPANSION (6)To enable full display of column headings & messages, type: ENABLE HEADINGS NOTE: A special trace display mode is available with DISABLE SYMBOLIC, ENABLE LINES, wherein only line numbers are displayed, and no code. See also HEADINGS,SY0,SY1,SYMBOLIC. ERROR - Command to display additional information about a previous error. This command must immediately follow the error message. Only errors caused by the hardware can supply this additional information. See Error Messages Appendix in the ICE-51 Operating Instructions Manual for corrective action. This command provides data which will be useful to service personnel. ERROR iEVALUATE - Command to evaluate an expression. The value is displayed in five bases (binary, octal, decimal, hexadecimal and Ascii), and in symbolic representation plus an offset. Depending on LINES, that representation may be either as a user symbol or a line number. In either case, the symbolic chosen will be that whose value is nearest to, but not greater than, the expression. If LINES is enabled, the user symbol table is searched for a line number. If no line number is found, or if LINES is disabled, it searches for a symbol instead. If no symbol is found which satisfy this requirement, then the value is displayed as a Hex address. When an offset is shown, it represents the difference between the symbolic value and the expression value. (1)To evaluate an expression, type: EVALUATE (EX: EVALUATE 6T+(NOT 42H )) VEXIT - Command to exit the debugging session and return control to ISIS. EXIT r - Expressions can be used to specify numeric values or boolean conditions. They have the following form: [ ]@ ::=[NOT] [ CBYTE|CWORD|DBYTE|DWORD | XBYTE|XWORD|PBYTE|RBYTE|RBIT ]
::=< | > | <= | >= | <> | = | AND | XOR | OR GO - Command to start emulation. A FROM phrase causes the program counter (PC) to be loaded with the value of
before begining emulation (emulation always starts at the address in PC); if it is missing the PC is unchanged. The GR (Go Register) contains the default . If is specified, it is loaded into GR. GR is initially set to FOREVER. (1)To start emulation, type: GO [FROM
] [] ::= FOREVER (Never satisfied) | TILL SY0 (Until sync line 0 goes low) | TILL [] ::= BR (Enable both BR0 and BR1) | BR0 (Enable BR0) | BR1 (Enable BR1) | [OR ] (BR0 is loaded with the first condition and enabled and BR1 with the second (if present)). ::= WITH SY0 (TILL and TILL SY0 are satisfied) | OR SY0 (TILL or TILL SY0 is satisfied) GR - Go Register. Contains the condition upon which real-time emulation is terminated. GR is loaded by a GO or change GR command. It is initially set to FOREVER. (1)To display GR and the breakpoint registers, type: GR (2)To change GR, type: GR = FOREVER (Never satisfied) | TILL SY0 (Until sync line 0 goes low) | TILL [] ::=BR (Enable both BR0 and BR1) | BR0 (Enable BR0) | BR1 (Enable BR1) | [OR ] (BR0 is loaded with the first condition and BR1 with the second (if present), and enable the register(s) loaded.) Note: If a break register is loaded by a GO or GR command, any bits in the break register not affected by the condition are reset. ::=WITH SY0 (TILL and TILL SY0 are satisfied) | OR SY0 (TILL or TILL SY0 is satisfied) -HEADINGS - Keyword used with the ENABLE or DISABLE command to display or suppress the following text: (1)The column headings for the REGISTER and PRINT commands. (2)The "EMULATION BEGUN" and "EMULATION TERMINATED, PC=XXXXH" messages given in response to a GO or STEP command. HELP - Command to display a summary of the syntax of an entire command, or the syntax of a phrase (a part) of a command. The following notational symbols ([],@,|,<>) should not be entered, but are used in the help summaries to explain valid command syntax: [A] means A is optional. [A]@ means A is optional and may be repeated any number of times. A|B|C means either A or B or C may be used. represents a phrase which is broken down and explained further, except for which is a carriage return, line feed. Those phrases within the command syntax which do not have <> around them represent exactly what the user would type. The following describes how to access help displays: (1)To display the list of help items for which there is help available, type: HELP (2)To display the summary of information for individual help items, type: HELP [,]@ (EX: HELP GR,ASM,,IDENTIFIER,address ) (3)To display the summaries of all items, type: HELP * The brackets <> and dollar signs in the help items may be omitted.  - A keyword reference to an ICE-51 system variable. Each may be displayed by simply typing the keyword. All are read only. SY0 - Current level of SYNC0 synchronization line. SY1 - Current level of SYNC1 synchronization line. OPCODE - Last opcode fetched in trace data. PPC - Last address of opcode fetch in trace data. CAUSE - Cause of last break. HTIMER - High order 16 bits of ICE-51 32-bit half- microsecond emulation timer. TIMER - Low order 16 bits of ICE-51 32-bit half- microsecond emulation timer. BUFFERSIZE - Number of frames of valid trace data. 7 - A sequence of one or more of the following characters: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@? The first character must be an alphabetic character and only the first 31 characters are significant. Dollars signs are allowed but ignored. (EX: FOO ERR$ORS A?12 ) IF - The conditional command allows conditional execution of one or more commands based on the values of boolean conditions. IF [THEN] ::= [ ]@ ::= [ ]@ [ ORIF ::= An ICE-51 command. ]@ [ ELSE ] END The s are evaluated in order as 16-bit unsigned integers. If one is reached whose value has low-order bit 1 (TRUE), all commands in the following that are then executed and all commands in the other s and in the are skipped. If all s have value with low- order bit 0 (FALSE), then all commands in all s are skipped and, if ELSE is present, all commands in the are executed. (EX: IF .LOOP=5 THEN STEP ELSE GO END ) INCLUDE - Command which causes input to be taken from the ISIS file specified until an end-of-file, at which point input continues to be taken from the previous source. Nesting of INCLUDEs is permitted. The consol(:CI:) may be given as the , in which case control-Z must be used as the end-of- file. The commands input are echoed on the console. Any ICE-51 commands may appear in the INCLUDEd file. INCLUDE is needed to load macros. A macro can be saved using a PUT command, edited under the ISIS editor, and then brought back into the emulator using the INCLUDE command. It has the following form: INCLUDE (EX: INCLUDE :F1:MACRO.SAV ) where is an ISIS filename. m - General information about user keyboard interface. Keyboard Correction facilities include the following: RUBOUT Deletes the last character typed. CTRL X Deletes the current line of the command being entered. ESC key Deletes the entire command being entered or breaks emulation. CTRL R Echoes the command being entered. CTRL S Stops the console display. CTRL Q Resumes console display after a CTRL S. Command words in the ICE-51 command language can always be abbreviated to three letters. (EX: BUFFERSIZE can be entered BUF REMOVE SYMBOLS can be entered REM SYM ) To enter a comment, precede it with a semicolon(;). To continue a line, type an ampersand (&) anywhere a space is allowed. The continuation line will begin with a double asterisk (**).  - A standard 8051 assembler instruction. When enclosed between a pair of double quotes, an can be used as a primary in an
. Its value is the opcode resulting from the assembling of the instruction. The mnemonics for the 8051 assembly language are as follows: Arithmetic-Instructions: Logical-Instructions: ADD ADDC SUBB INC DEC ANL ORL XRL CLR CPL RL RLC RR MUL DIV DA RRC SWAP Data-Transfer-Instructions: Bit-Manipulation-Instructions: MOV MOVC MOVX PUSH POP CLR SETB CPL ANL ORL MOV XCH XCHD Control-Transfer-Instructions: No-operation-Instruction: AJMP CJNE DJNZ JB JBC JB NOP JMP JNB JNC JNZ RET JZ LJMP RETI SJMP ACALL LCALL INTERRUPT - Command to display the interrupts in progress (priority 0 in progress (IIP0), priority 1 in progress (IIP1), interrupt enable (IE), and interrupt priority (IP)). INTERRUPT The interrupts are displayed in the table format shown below. EA SINT TIMER0 EXTI1 TIMER0 EXTI0 IIP0 X X X X X IIP1 X X X X X IE X X X X X X IP X X X X X The X can be a "1" or "0". For IIP0 and IIP1, the "1" means "in progress". For IE, "1" means "enabled" and for IP, "0" and "1" are the priority levels assigned. Level 1 has a higher priority than 0.  - The three buffer box indicator lights. These are the individual meanings of the lights: YELLOW - Ready to accept an ICE-51 command. GREEN - Emulation in progress. RED - ICE hardware error. The following combinations of lights occur under normal operation: YELLOW - Ready to accept any command. NONE - Ready to accept a command terminator(ESC). GREEN & YELLOW - Emulation in progress and ready to accept an user abort(ESC). RED & YELLOW represents an identifiable, hardware error state. During normal operation, lights may be flashing or changing rapidly, passing through the following states: GREEN, RED, RED & GREEN, or ALL LINES - Command which displays every line number and the address associated with each, for one or all modules in the ICE-51 user's symbol table. To limit display to a single module, append the command with a module name. LINES [..] For display of a single line number see , or . LINES is also a keyword for the ENABLE and DISABLE commands. LIST - Command which sends a copy of all console input and output during the debugging session to a file or device. (1)To direct the copy to a line printer, type: LIST :LP: (2)To direct the copy to an ISIS file, type: LIST where is defined as the name of an ISIS file. If the file exists, it will be overwritten, otherwise it will be created. (EX: LIST :F1:TEST.111 ) (3)To terminate the copying, type: LIST :CO: LOAD - Command to load code, user symbols (system symbols are ignored), line numbers, or any combination thereof, from an ISIS binary object file. Use NOCODE, NOSYMBOL, or NOLINE to prevent loading of code, symbols, or lines. Use SELECT to limit symbol and line loading to only specified module range(s). With EXTERNAL, code locations mapped to USER memory are loaded via a PBYTE command (user must reconfigure hardware for this); else they are ignored. When the symbol table overflows, all loading stops. LOAD []@ [SELECTING [,]@] ::= ISIS filename ::= NOCODE|NOSYMBOL|NOLINE|EXTERNAL ::= [TO ] (omit ".." prefix) EXAMPLES: (1)This loads symbols, lines, and object code (except those memory locations mapped to USER). LOAD :F2:PROG.OBJ (2)This loads only the object code, including code locations mapped to USER memory. LOAD :F2:PROG.OBJ NOSYMBOL NOLINE EXTERNAL (3)This loads all code locations not mapped to USER memory, and only symbols from modules MAIN and TAB through CLR. LOAD :F3:TEST.OBJ NOLINE SELECTING MAIN,TAB TO CLR  - Command to display the text of the macros in the user's macro list. (1)To display the text of one or more macros in the macro list, type: MACRO : [,:]@ (EX: MACRO :TAMAS MACRO :SUM,:DIV ) (2)To display the text of all the macros in the macro list, type: MACRO q - Command to invoke a user macro. If the expansion results in a set of complete, valid commands, the commands are executed. An error results if any command is incomplete or invalid after expansion. Nested macro invocations are allowed if they are not recursive. (1)To invoke a macro without parameters, type: : (EX: :SUM,:T ) (2)To invoke a macro with parameters, type: : [,]@ (EX: :SQUARE 4 :SASSET '5,6',678 ) is variable text which must be enclosed in single apostrophes if it contains a ',' or . An actual parameter may be null, as indicated by consecutive commas in the parameter list or by omitting actual parameters at the end of the list. In either case, the null string is substituted in for the formal parameter(s). If more actual parameters are provided than the number of formals, the extra actuals are ignored. If the macro expansion is enabled the invoked macro will be displayed on the console. See ENABLE,DISABLE. MAP - Command to allow the user to independently move the two 4K map memory blocks to start at any multiple of 4K. The user must supply his own external memory at any address that these memory blocks do not cover. The initial mapping condition is 0000H,1000H. (1)To display the current map memory blocks, type: MAP (2)To change the two map memory blocks, type: MAP = , (EX: MAP = 4096T,2000H ) where the value of must be an multiple of 4K. (3)To remove both memory blocks (CAUTION: The EA pin must be low if this command is used.), type: MAP = USER  - A numeric constant which must contain at least one don't care character('X') and the suffix cannot be decimal(T) or a decimal multiple of 1024. Masked constants will always be displayed in binary. (EX: 1011XXXXXXXXXXXXY, 13XXXXQ, BXXXH, XX10XXY )  - condition for terminating emulation or collecting trace, used in the GO and changing GR and TR commands. ::= [|| IS] [AND IS <$match$value>]@ ::=LOCATION (Address where opcode was fetched) | VLOCATION (Address where data value was) | ADDR (Matchs LOCATION OR VLOCATION) ::=OPCODE (The opcode) | VALUE (The data value) ::=P0 (Contents of P0) | P1 (Contents of P1) | P2 (Contents of P2) | XADDR (External address represented by the concatenation of P2 and P0) ::= |
(EX: LOCATION IS X110Y AND P0 IS 45 AND P1 is 34 ) NOTE: In , can be broken down to ; in it is an
. MODULES - Command to display all modules in the user symbol table, for which either symbols or line numbers were loaded from an object file. Existing modules may be removed, which will also remove all symbols and line numbers associated with the module. Modules cannot be defined by the user; only loaded in from an object file. MODULES See related commands: SYMBOLS, LINES, REMOVE MOVE - Command to move the trace buffer pointer. Depending on the current TRACE mode, the pointer is moved the specified number of frames or instructions. (1)To move toward the newest trace, type: MOVE [[+] ] ::= | (EX: MOVE +4 MOVE .SYM ) MOVE without a tail is the same as "MOVE +1". (2)To move toward the oldest trace, type: MOVE - (EX: MOVE -5 MOVE -.CY ) If does not have an explicit suffix, the default is always decimal. tNEWEST - Command to move the trace buffer pointer to just past the newest trace in the trace buffer. NEWEST  - A sequence of numeric characters (digits) followed by an optional suffix to specify the constant's input base. If no suffix is specified, then the default suffix is assumed (see SUFFIX), unless otherwise stated. Dollar signs may be included to improve readability, but are ignored. (EX: 1001$1110Y (binary) 336Q (octal) 2048T (decimal) 1FA9H (hexadecimal) 1K (decimal multiple of 1024) 186 (default suffix) ) jOLDEST - Command to move the trace buffer pointer to the oldest trace in the trace buffer. OLDEST  - A single address or a range of addresses. (1)For a single address, type:
(EX: 44H ) (2)For a range of addresses, type either
TO
(EX: 0 TO FFH ) or
LENGTH
(EX: .START LENGTH 5 ) where the second
is the number of words or bytes in the range, depending on if it appears in a word or byte access command, respectively. mPBYTE - Command and keyword used to reference 8-bit quantities in external data memory. Unlike XBYTE & XWORD, PBYTE is not verified. (1)To display one or more locations, type: PBYTE (EX: PBYTE 0 TO 4FH ) (2)To change one or more locations starting at
, type: PBYTE
= [,]@ (EX: PBYTE 0 = 0,5,'TEN' ) (3)To change several locations and perform range-checking or repetition, type: PBYTE = [,]@ (EX: PBYTE 0 TO FH = 3,CBYTE 0 TO 8 ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting words to bytes, only the LSB is used. With ASCII strings, each character is considered as one byte. PRINT - Command to display the trace buffer. The buffer is displayed as frames or instructions depending on the TRACE mode. The trace pointer is unchanged. (1)To print toward newest trace, type: PRINT [[+] ] ::= | (EX: PRINT +6 PRINT .LOOP ) PRINT without a tail is the same as "PRINT +1" (2)To print frames or instructions before the current position of the trace pointer, type: PRINT - (EX: PRINT -14H PRINT -.FOO ) If does not have an explicit suffix, the default is always decimal. (3)To display the entire buffer starting with the oldest trace, type: PRINT ALL NOTE: A special trace display mode is available with DISABLE SYMBOLIC, ENABLE LINES, wherein only line numbers are displayed, and no code. PUT - Command to store the definition of user macros in an ISIS file. (1)To store one or more of the user's macros, type: PUT : [,:]@ (EX: PUT :F1:SAVE.MAC :T PUT :F2:MACROS.SAV :MULT,:SUB ) (2)To store all of the user's macros, type: PUT MACRO (EX: PUT :F3:SAVE.IT MACRO ) is defined as any ISIS filename. If the file already exists, it is overwritten. QR - Refers to both Qualifier Registers, QR0 and QR1, which may specify a condition for collecting trace. A qualifier register has effect only when it has been enabled by a change TR command. The initial condition is all don't cares. (1)To display QR0 and QR1, type: QR (2)To set both QR0 and QR1 identically, type: QR = (EX: QR = P2 IS 4 TO 15H ) QR may also be changed by a change TR command. (3)To reset both QR0 and QR1 to all don't cares, type: RESET QR QR0 - Qualifier Register 0. May specify a condition for collecting trace. It has effect only when it has been enabled in a change TR command. The initial condition is all don't cares. (1)To display QR0, type: QR0 (2)To change QR0, type: QR0 = (EX: QR0 = P1 IS 4 TO 15H ) QR0 may also be changed by a change TR command. (3)To reset QR0 to all don't cares, type: RESET QR0 QR1 - Qualifier Register 1. May specify a condition for collecting trace. It has effect only when it has been enabled in a change TR command. The initial condition is all don't cares. (1)To display QR1, type: QR1 (2)To change QR1, type: QR1 = (EX: QR1 = VLOCATION IS 43H AND P2 IS 46H ) QR1 may also be changed by a change TR command. (3)To reset QR1 to all don't cares, type: RESET QR1 cRBIT - Command and keyword used to reference bit-addressable memory. (1)To display one or more locations, type: RBIT (EX: RBIT .CY ) (2)To change one or more locations starting at
, type: RBIT
= [,]@ (EX: RBIT F0H = 1,1,0 ) (3)To change several locations and perform range-checking or repetition, type: RBIT = [,]@ (EX: RBIT PSW LEN 8 = 1,0 ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD is truncated to the least significant bit. NOTE: Some bit addresses do not exist; writing or displaying these cause unpredictable results. See MCS-51 Macro Assembler User's Guide. RBYTE - Command and keyword used to reference 8-bit quantities in immediate addressable register memory. (1)To display one or more locations, type: RBYTE (EX: RBYTE 80H ) (2)To change one or more locations starting at
, type: RBYTE
= [,]@ (EX: RBYTE 81H = 4,0 ) (3)To change several locations and perform range-checking or repetition, type: RBYTE = [,]@ (EX: RBYTE 80H LEN 4 = 'Q',4,XBYTE 5 ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::=| | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting words to bytes, only the LSB is used. With ASCII strings, each character is considered as one byte. NOTE: Some register immediate addresses do not exist; writing or displaying these cause unpredictable results. {REGISTER - Command to display the contents of the 8051 registers (PC, ACC, B, SP, DPTR, R0, R1, and PSW). REGISTER REMOVE Command to remove a symbol, a module, or everything from the user symbol table, or remove a macro from the list of available macros. (1)To remove one or more symbols from the user symbol table, type: REMOVE [,]@ (EX: REMOVE ..SORTER.APPLE, .DOG ) (2)To remove one or more modules (including symbols and line numbers in that module) from the user symbol table, type: REMOVE MODULE .. [,..]@ (EX: REMOVE MODULE ..MAIN, ..COPY ) (3)To remove all the modules, symbols and line numbers from the symbol table, type: REMOVE SYMBOLS (4)To remove one or more macros from the list of available macros, type: REMOVE : [,:]@ (EX: REMOVE :TRUCK,:CITY ) (5)To remove all the macros from the list of available macros, type: REMOVE MACRO REPEAT - The commands in the REPEAT command are executed an unbounded number of times, until a condition is satisfied. Note that the "repeat forever" loop is achieved by a repeat command with no UNTIL or WHILE. REPEAT [ ]@ END ::= | ::=An ICE-51 command ::=WHILE | UNTIL The looping is exited if the value has a low-order bit 0 (FALSE) in a WHILE or a low-order bit 1 (TRUE) in an UNTIL. (EX: REPEAT WHILE DBYTE 0 < .TOTAL STEP DBYTE 0 = (DBYTE 0) + 1 END ) gRESET - Command to reset. (1)To reset 8051 (no reset signal is issued to the user system), type: RESET CHIP (2)To reset the ICE-51 hardware (used only for ICE hardware error recovery), type: RESET ICE (3)To disable SY0 and SY1 latch and output, type: RESET SY (4)To reset one or both breakpoint registers to all don't cares, type: RESET BR | BR0 | BR1 (5)To reset one or both qualifier registers to all don't cares, type: RESET QR | QR0 | QR1 HSAVE - Command to save code memory, user symbols, line numbers, or any combination thereof, to an ISIS file in binary object format. Use NOCODE, NOSYMBOL, or NOLINE to prevent saving of code, symbols, or lines. may include addresses mapped to USER. If absent, will default to the last range LOADed or SAVEd. Symbols in the unnamed module will be saved in a module called ICE51. SAVE []@ [] ::= NOSYMBOL | NOLINE ::= | NOCODE EXAMPLES: (1)This saves symbols, line numbers, and the last code partition loaded or saved. SAVE :F2:CHESS.001 (2)This saves line numbers, and a specific range of code memory. SAVE :F3:YOYO NOSYMBOL ..MAIN.START TO FFF1H (3)This saves symbols, and one byte of code memory. SAVE :F1:TEST NOLINE 00FEH (4)This causes a harmless error, but is useful in displaying the code partition last loaded or saved. SAVE !SECONDS - Command to display the contents of the ICE-51 32-bit microsecond emulation timer. This timer counts the time in emulation but is disabled during single-step emulation. It is zeroed when emulation is entered, if the user has changed the program counter (PC). SECONDS vSTACK - Command to display the contents of the 8051 stack area and the stack pointer. (1)To display the entire stack contents from the current stack top to location 0, type: STACK (2)To display in bytes a variable number of stack entries beginning at the current stack top, type: STACK (EX: STACK 5 ) /STEP - Command which causes the ICE to emulate one 8051 instruction. During single-step emulation trace is always collected; the sync lines are ignored; and the emulation timer is inoperative and is zeroed. To single step, type: STEP [FROM
] A FROM phrase causes the program counter (PC) to be loaded with the value of
before single-step emulation occurs (emulation always starts at the address in PC); if it is missing the PC is unchanged. See also HEADINGS, for suppression of emulation begun/terminated messages. 2 - A list of characters preceded by an apostrophe, and extending to the next apostrophe; except that a double apostrophe is treated as being a single apostrophe intended to be in the text, and not as a terminator for the string. (EX: 'THIS IS A STRING' 'RALPH''S STRING' )  - One ASCII character enclosed between apostrophes. An apostrophe as the ASCII character must be entered as two apostrophes. The value is the ASCII for the character in the low-order 7 bits and zero in the other 9 bits. (EX: 'T', '3' ) SUFFIX - Refers to the default base in which numeric values with no explicit suffix, are input from the console. Initially hex. See BASE for default display base. (1)To display the default suffix, type: SUFFIX (2)To change the default suffix, type: SUFFIX = Y (Binary) | O,Q (Octal) | H (Hexadecimal) | T (Decimal) SY - Refers to the synchronization lines, SY0 and SY1, which may be used to synchronize ICE-51 operation with external events. Sync lines inputs are ignored during single-step operation. (1)To display the state of SY0 and SY1 LATCH and OUT enable, and the level of the sync inputs, enabled or not, type: SY (2)To disable SY0 and SY1 output and latch, type: RESET SY For more information on the synchronization lines, see SY0 and SY1. bSYMBOLS - Command which displays every symbol and the value associated with each, for either one or all modules in the ICE-51 user's symbol table. To limit display to a single module, append the command with a module name. SYMBOLS [..] For display of a single symbol see , or . SYMBOLIC - Keyword used with the ENABLE or DISABLE command to turn on or off "symbolic address" address display. It is used in conjunction with ENABLE or DISABLE LINES, to control how addresses are displayd. -SYMBOLIC- -LINES- -How addresses are displayed- Enabled Disabled -As a symbol Enabled Enabled -As a line number Disabled Disabled -As a Hex value Disabled Enabled -As a Hex value, except for PRINT which displays as a line number & also suppresses code display. The symbolic is displayed with an offset, and is the closest symbol or line number in the user symbol table, whose value is value is not greater than the address value. When displaying memory ranges, disassembling memory, or displaying trace data, a symbolic is displayed only when the address to be displayed exactly matches the value of a symbol. Symbolic display is enabled initially. (EX: ENABLE SYMBOLIC DISABLE SYMBOLIC ) See related commands: ENABLE, DISABLE j - A reference to a symbol or line number in the user's symbol table, or to a symbol in the system symbol table. (1)To access the first occurence of a symbol, type: [..] . (EX: ..MAIN.START .RESET ) If is present, search is limited to a specified module, otherwise the entire symbol table is searched. It must be omitted to access system symbols. (2)To access a multiple occurence of a user symbol, type: [..] . [.]@ (EX: .ALPHA.ALPHA.BETA ;For the first occurence of BETA after the second occurence of ALPHA ) (3)To access a line number (if a module name is not specified, the DOMAIN module is used), type: [..]# (EX: ..SUB#5 ) ::= ::= ::= See related commands: , , , DOMAIN, LINES, MODULES, SYMBOLS.  - A set of system predeclared symbols. They function much like user defined symbols except that they are not changeable or removable. (1)To display the value of a system symbol, type: (EX: .RESET ) (2)To display the memory at a system symbol, type: CBYTE|CWORD|RBYTE|RBIT (EX: RBIT .CY ) The code system symbols (CBYTE/CWORD) are: RESET EXTI0 TIMER0 EXTI1 TIMER1 SINT The data system symbols (RBYTE) are: P0 P1 P2 P3 PSW ACC B SP DPL DPH PCON TCON TMOD TL0 TL1 TH0 TH1 SCON SBUF IE IP The bit system symbols (RBIT) are: CY AC F0 RS1 RS0 OV P TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SM0 SM1 SM2 REN TB8 RB8 TI RI EA ES ET1 EX1 ET0 EX0 PS PT1 PX1 PT0 PX0 RD WR T1 T0 INT1 INT0 TXD RXD SY0 - SY0 is an external signal, which allows emulation to start or break if SY0 is used in a GO or GR command. A one causes emulation to begin. SY0 will also output a signal indicating whether or not the ICE-51 is currently emulating; a one meaning emulation. SY0 is ignored during single-step emulation. (1)To display the current level of the SY0, type: SY0 (2)To select the latched input mode, type: ENABLE SY0 LATCH (3)To select the unlatched input mode(the initial state), type: DISABLE SY0 LATCH (4)To enable the SY0 output, type: ENABLE SY0 OUT (5)To disable the SY0 output(the initial state), type: DISABLE SY0 OUT SY1 - SY1 is an external signal, which allows trace collection to start or stop if SY1 is used in a TR command. A one causes trace collection to begin. SY1 will also output a signal indicating whether or not the ICE-51 is currently collecting trace; a one meaning trace collection. SY1 is ignored during single-step emulation. (1)To display the current level of the SY1, type: SY1 (2)To select the latched input mode, type: ENABLE SY1 LATCH (3)To select the unlatched input mode(the initial state), type: DISABLE SY1 LATCH (4)To enable the SY1 output, type: DISABLE SY1 OUT (5)To disable the SY1 output(the initial state), type: DISABLE SY1 OUT TR - Tracepoint Register. Contains the criteria for trace data collection, has effect whenever real-time emulation is in prog- ress. During single-step emulation, trace is always collected. (1)To display TR and the qualifier registers, type: TR (2)To change TR, type: TR = FOREVER (Always satisfied) | SY1 (Whenever SY1 is high or until SY1 goes low (latched mode)) | [TILL|AFTER] [] TILL - Trace data is collected until the trigger occurs. AFTER - Trace data is collected after the trigger occurs. If no trigger mode is specified, trace collection occurs only while trace$cond is satisfied. ::=QR (QR0 or QR1 satisfies ) | QR0 (QR0 satisfies ) | QR1 (QR1 satisfies ) | [OR ] (If one is entered, it is loaded into QR0. If two are entered, they are loaded into QR0 and QR1.) ::=WITH SY1(When and SY1 are satisfied) | OR SY1(When or SY1 are satisfied) TRACE - Command to set the trace display mode. It is initially INSTRUCTIONS. (1)TRACE = INSTRUCTIONS (Each line of trace display contains the information collected during the execution of one complete instruction.) (2)TRACE = FRAMES (Each line of trace display contains the information collected for one frame.) Related commands: OLDEST, NEWEST, PRINT, MOVE. See also TR for trace data collection.  - Allows values from the trace buffer to be included in . It has the following form: FRAME ::=ADDR 16 bits - 8051E address if address frame | DATA 8 bits - Low order byte of ADDR, data if data frame. | DMUX 1 bit - 0 if address frame, 1 if data frame. | CYC 1 bit - 0 if first fetch, 1 if second, third, or fourth fetch. | P0 8 bits - Port 0 | P1 8 bits - Port 1 | P2 8 bits - Port 2 | XADDR 16 bits - Port 2 concatenated with Port 0. | TOVF 1 bit - Trace overflow flag. Its value is the trace data corresponding to the above entry in the frame pointed to by the trace buffer pointer; an error occurs if the trace buffer is empty or if the pointer points to past the newest entry in the buffer. s are read-only references.  - condition for terminating emulation or collecting trace used in setting breakpoint/qualifier registers. ::= [|| IS] [AND IS ]@ ::=LOCATION (Address where opcode was fetched) | VLOCATION (Address where data value was) | ADDR (Matchs LOCATION or VLOCATION) ::=OPCODE (The opcode) | VALUE (The data value) ::=P0 (Contents of P0) | P1 (Contents of P1) | P2 (Contents of P2) | XADDR (External address represented by the concatenation of P2 and P0) ::= | (EX: VLOCATION IS 45H TO 56H AND XADDR IS XX10XX110011XXY ) NOTE: In , can be broken down to ; in it is an
. O - A reference to a line number in the ICE-51 user's symbol table. Line numbers cannot be created (except by LOAD), or changed. They may be removed only by removing the entire module. (1)To display the value of a single line number, type: (EX: ..MAIN.#3 ) (2)To display every line number for all modules in the user's symbol table, type: LINES (5)To remove one or more existing modules, and all symbols and line numbers associated with it, type: REMOVE MODULE .. [,]@ where is defined as . (EX: REMOVE MODULE ..SUB,..MAIN ) (6)To remove all the modules, symbols, and line numbers from the user's symbol table, type: REMOVE SYMBOLS h - A reference to a symbol in the ICE-51 user's symbol table. (1)To display the value of a user symbol, type: (EX: ..MAIN.VAR1 ) (2)To display the entire ICE-51 user's symbol table, type: SYMBOLS (3)To define a new symbol at the end of a specified module (or unnamed module, if none specified) in the user's symbol table, and assign it a value, type: DEFINE [..]. = where and are s. (EX: DEFINE .VAR1 = 54T ) (4)To change the value of an existing user symbol, type: = (EX: .T2 = 64H ) (5)To remove one or more symbols from a specified module in the user's symbol table, type: REMOVE [..]. [,[..].]@ (EX: REMOVE .VAR1,..SUB.LOOP ) (6)To remove all the modules, symbols, and line numbers from the user's symbol table, type: REMOVE SYMBOLS For information on the system symbols, see . 1VERSION - Version V1.3, June 1983 of ICE51.OVH. bWRITE - An explicit display command which can evaluate an and display it, mainly useful inside macros. (1)To write one or more expressions, type: WRITE [,]@ ::= | (EX: WRITE 'ERROR HERE' WRITE 'NOW AT POINT ',.C ) pXBYTE - Command and keyword used to reference 8-bit quantities in external data memory. Data is verified, that is, read after write. (1)To display one or more locations, type: XBYTE (EX: XBYTE 0 TO 5FH ) (2)To change one or more locations starting at
, type: XBYTE
= [,]@ (EX: XBYTE 0 = 3,'BEARS' ) (3)To change several locations and perform range-checking or repetition, type: XBYTE = [,]@ (EX: XBYTE 0 LEN 9 = 43T,RBYTE 80H,24H ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting words to bytes, only the LSB is used. With ASCII strings, each character is considered as one byte. XWORD - Command and keyword used to reference 16-bit quantities in external data memory. Data is verified, with a read-after-write. (1)To display one or more 2-byte locations, type: XWORD (EX: XWORD 0 TO 5FH ) (2)To change one or more 2-byte locations starting at
, type: XWORD
= [,]@ (EX: XWORD 0 = 'STARDATE', 2314H ) (3)To change several 2-byte locations and perform range-checking or repetition, type: XWORD = [,]@ (EX: XWORD 0 LEN 9 = 403T,RBYTE 80H,24H ) If the data requires more memory than the size of the address range, then a warning occurs. If the data requires less memory, then the data is repeated until the range is filled. ::= | | CBYTE|DBYTE|XBYTE|PBYTE|RBYTE|RBIT | CWORD|DWORD|XWORD When converting bytes to words, the MSB is zero-filled. With ASCII strings, each character is considered as one word, with the MSB=0.