"COPYRIGHT 1982 INTEL CORPORATION /Help is available for the following commands and definitions. Type HELP followed by the full command name or . utility - BASE,DEFINE,DISABLE,ENABLE,EVALUATE,EXIT,LIST,LOAD,REMOVE RESET,SAVE,SUFFIX,SYMBOL display - ASM,CBYTE,CDUMP,DASM,DBYTE,DDUMP,INTERRUPT,MEMORY,PBYTE,RBIT RBYTE,REGISTER emulation - BREAK,DTRACE,GO,PREVIOUS,STEP advanced - COUNT,FUNCTION,DIR,IF,INCLUDE,PUT,REPEAT,WRITE -
,,,,, ,,, ,,, , Keyboard - RUBOUT = delete char ESC = cancel CTRL R = echo line Controls CTRL X = delete line CTRL P = literal char CTRL Z = delete line Function Keys are invoked by simultaneously pressing FUNCTION and a number. 1 = MEMORY 3 = DTRACE [ 5 to 9 and 0 are user defined] 2 = BREAK 4 = REGISTER 4
- This notation is used within the descriptions of other commands. An address can be a numeric value, symbolic label, or an expression. Valid addresses are: 100H .ALPHA .ALPHA+5 oASM - 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 8O51 code memory at the address in the assembly program counter, type: ASM (EX: ASM MOV A,RO) After the instruction has been assembled into memory, the updated assembly program counter will be displayed. BASE - Refers to the current 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. Trace data and breakpoint values are always displayed in hex. See SUFFIX for current input base. (1) To display the current base, type: BASE (2) To change the current base, type: BASE = Y (Binary) Q (Octal) H (Hexadecimal) T (Decimal) €BREAK - The BREAK command holds a display of all breakpoints until you enter a non-break command. The legal break commands are : address breaks BR0=
, BR1=
, BR2=
, BR3=
range break BRR=
TO
branch break BRB = ON/OFF value break BV = n (step mode only) ( is numeric value) clear all breaks BC The breakpoint display appears as follows: ;------------------------------------------------------|-------------| ;BREAKPOINT SETTINGS | TYPE | ;------------------------------------------------------|-------------| ;BRO = xxxx BR1 = xxxx BR2 =xxxx BR3 =xxxx | location | ;BRR = xxxx TO xxxx | range | ;BRB = ON/OFF BC disables all| branch | ;BV = n xxx (step mode only) breakpoints. | value | ;------------------------------------------------------|-------------| NOTE: xxxx is an
or supplied by user. OCBYTE - Command and Keyword used to reference 8051 code (program) memory. (1) To display one or more locations, type: CBYTE (EX: CBYTE O TO FFH) (2) To change one or more locations starting at
, type: CBYTE
= [,]@ (EX: CBYTE 0 = 1,3,'TEN') (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. ²CDUMP - The CDUMP command displays code memory to the console in both hex and ASCII. examples: CDUMP 1 to 5 CD 100 to FFF Å - Commands: (1) To change an 8051 register, type: = (EX: RO = 6 + 5 * 4) (2) To change the value of a user symbol, type: = (EX: .PETE = 34 * 5) (3) To change a memory reference, type: CBYTE|DBYTE|PBYTE|RBYTE|RBIT = [,]@ change$expr::= | |CBYTE|DBYTE|PBYTE|RBYTE|RBIT (EX: CBYTE 0 TO 5 = 4 DBYTE 5 = CBYTE 4) See also ASM, BREAK, DTRACE, REGISTER, MEMORY ¦COUNT - The commands in the COUNT command are executed a fixed 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 EMV-51 command = WHILE [] UNTIL [] The looping is exited if the value has a low-order bit=o (FALSE) in a WHILE or a low-order bit=1(TRUE) in an UNTIL. EX: COUNT 5 STEP UNTIL .A=5 END ¯ - 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) ACC Accumulator B B-register SP Stack pointer * The registers are affected by the current setting of RBS. 3DASM - Command to disassemble 8051 code memory into assembly language instructions. User symbols which exactly match opcode addresses are displayed at the left of each 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 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. ÎDBYTE - Command and keyword used to reference 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,CBYTE 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. ---- ---- ::=| | | | | | ---- ---- ©DDUMP - The DDUMP command displays data memory to the console in both hex and ASCII examples: DDUMP 1 to 5 DD 100 to FFF ÝDEFINE - Command to define a new user symbol or macro. (1) To define a new user symbol and add it to the end of the user symbol table, type: DEFINE . = (EX: DEFINE .TOM = 45+63H) (2) To define a macro type: DEFINE : [ ]... EM ::=Any EMV-51 command except a macro definition command or remove macro command. The macro definition may not appear within any other compound command (e.g.REPEAT, IF, COUNT or another macro definition). The formal parameters in the [ ]... list are of the form "%" followed by a digit between 0 and 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 determined until a macro invocation. (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 disable symbolic address display, type: DISABLE SYMBOLIC (2) To disable console display of invoked macros (silent macros), type: DISABLE EXPANSION ä Commands: (1) To display an 8051 register, type: (EX: R3) (2) To display the value of a user symbol or system symbol, type: (EX: .ORANGE) See for displaying the value of a system symbol. (3) To display memory reference(s), type: CBYTE|DBYTE|PBYTE|RBYTE|RBIT (4) To display the 8051 registers, type: REGISTER DTRACE - The DTRACE command holds a display of all trace conditions until you enter a non-trace command. The legal DTRACE commands are: TD = ON/OFF instruction disassembly TR = ON/OFF register display TB0,TB1,TB2,TB3 =
bit flag displays TS = ON/OFF status display TR0,TR1,TR3,TR4 =
,ON/OFF start/stop display at adr TV= n ON/OFF start/stop display if value- DTRACE display: xxx is found in register n ;------------------------------------------------------------------| ; TD = XX instruction display,enter ON or OFF | ; TR = XX register display, enter ON or OFF | ; TB0 = XX TB1 = XX TB2 = XX TB3 = XX | ; TS = XX status display, enter ON or OFF | ;------------------------------------------------------------------| ; DISPLAY START/STOP CONTROLS | ;------------------------------------------------------------------| ; TRO=xxxx sw TR1=xxxx sw TR2=xxxx sw TR3=xxxx sw | ; TV=n xxx sw (xxxx = location sw= ON or OFF) | ;------------------------------------------------------------------| Trace triggers (TRO,TR1,TR2,TR3,TV) set an invisable switch which enables or disables all trace displays. Initially the switch is set on. çENABLE - Command to enable a condition or mode. (1) To enable symbolic address display, type: ENABLE SYMBOLIC (2) To enable console display of invoked macros, type: ENABLE EXPANSION EVALUATE - Command to evaluate an expression. The value is displayed in five bases (binary, octal, decimal, hexadecimal and ASCII). Plus, the symbolic representation and offset is displayed if there is a symbol in the user's symbol table whose value is less than or equal to the value of the expression. If a symbol does not exist which is less than the expression value, the expression is displayed as a hex address. (1) To evaluate an expression, type: EVALUATE (EX: EVALUATE 6T+(NOT 42H)) aEXIT - Command to exit the debugging session and return control to ISIS. EXIT . - Expressions can be used to specify numeric values or boolean conditions. They have the following form: [ ]... =[NOT] [CBYTE,DBYTE,PBYTE,RBYTE,RBIT]
= < , > , <= , >= , <> , = , AND , XOR , OR ôFUNCTION - Function keys can be assigned to a macro name if macro parameters do not need to be passed. examples: FUN = 1 :EX assign function key 1 to macro :EX FUNCTION display all assigned function keys &GO - Command to start emulation. If
is specified, the program counter (PC) is loaded with the value of
before beginning emulation (emulation always starts at the address in PC). If
is missing the PC is unchanged. The BREAK command must be used before typing GO if you wish to stop at an address or range of addresses. Another method of stopping is to use the break (escape) key. (1)To start emulation, type: GO [[FROM]
] + - 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. Dollar 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 EMV-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. ORIF allows an optional second IF clause. In this example STEP is executed if .LOOP=5 otherwise GO is executed. (EX: IF .LOOP=5 THEN STEP ELSE GO END) ¶INCLUDE - A 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 console (:CI:) may be given as the , in which case a control-Z must be used as the end-of- file. The commands input are echoed on the console. Any EMV-51 commands may appear in the INCLUDEd file. INCLUDE is needed to load macros. A macro can be saved using a PUT command, edited using an editor, and then brought back into the emulator using the INCLUDE command. Include has the following form: INCLUDE (EX: INCLUDE :F1:MACRO.SAV) ï - A standard 8051 assembler instruction. When enclosed between a pair of double quotes, an can be used as in an
. Its value is the opcode result of assembling the instruction (only 8-bits used). 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 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)). To display the interrupts type: INTERRUPT The interrupts are displayed in the table format shown below. EA SINT TIMER1 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. ­LIST - Command which sends a copy of all console input and output from the debugging session to an ISIS file. (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. (EX: LIST :F1:TEST.111) (3) To terminate the copying, type: LIST :CO: -LOAD - Command to load object code and/or its symbols. The symbols are added to the end of the EMV-51 symbol table. (1) To load the object code and its symbols, type: LOAD :Fn: where n is the drive number. (EX: LOAD :F2:MYPROG.OBJ) (2) To load only the object code, type: LOAD :Fn: NOSYMBOL (EX: LOAD :F2:MYPROG.OBJ NOSYMBOL) (3) To load only the symbols, type: LOAD :Fn: NOCODE (EX: LOAD :F2:MYPROG.OBJ NOCODE) Note: The LOAD command does not check for duplicate symbols. Thus, two loads of the same program will duplicate all symbols twice. Also, duplicate symbols can be accessed by entering the module name first. example: CBYTE <.module.symbol> ‡ - 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 ] - 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 but recursive macros may cause problems. (1) To invoke a macro without parameters, type: : (EX: :SUM) (2) To invoke a macro with parameters, type: : [,]... (EX: :SQUARE 4 :SASSET '5,6',678) is variable text which must be enclosed in apostrophes if it contains a ',' or . An actual parameter may be null, indicated by consecutive commas in the parameter list or by omitting actual parameters at the end of the list, in this case, the null string is substituted for the formal parameter. 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. 'MEMORY - the memory command can be executed by typing "M" or "MEMORY" or by pressing function key number 1. The purpose of the memory command is to display information about memory display and modify commands. More help information is available for CBYTE, DBYTE, RBYTE, RBIT, and PBYTE. æ - 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) 186 (default suffix) 2 - 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) 7PBYTE - Command and keyword used to reference external data memory. (1) To display one or more locations, type: PBYTE Also type help - CBYTE, DBYTE, RBYTE, or PBYTE (2) To change one or more locations starting at
, type: PBYTE
= [,]........ (EX: PBYTE 0 = 'TEN') (3) To change several locations and perform range-checking or repetition, type: PBYTE = [,]...... (EX: PBYTE 0 TO FH = 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|PBYTE|RBYTE|RBIT | ----- ----- wPREVIOUS - The previous command (P) displays the previous two instructions emulated. To envoke the command type "P". ðPUT - Command to store the definition of user macros in an file. (1) To store one or more of the user's macros, type: PUT : [,:]..... where is an ISIS filename. If already exists, it is overwritten. (EX: PUT :F1:SAVE.MAC PUT :F2:MACROS.SAV,:MULT,:SUB (2) To store all of the user's macros, type: PUT MACRO (EX: PUT :F3:SAVE.IT MACRO) RBIT - 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|PBYTE|RBYTE|RBIT is truncated to the least significant bit. NOTE: Some bit addresses do not exist. Writing and displaying of these causes unpredictable results. ×RBYTE - Command and keyword used to reference 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) (3) To change several locations and perform range-checking or repetition, type: RBYTE = [,] .... 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|PBYTE|RBYTE|RBIT NOTE: Some register immediate addresses do not exist. Writing and displaying of these causes unpredictable results. íREGISTER - The REGISTER command holds a display of selected registers until you enter a non-register command. Register commands are: PC, SP, DPTR, ACC, TM0, TM1, PSW, RBS, BASE, SUFFIX, R0, R1, R2, R3, R4, R5, R6, and R7. The general format for the individual register commands are: - displays register = - change register The REGISTER command causes the following display: ;--------------------------------------------------------------------------| ; PC =XXXXXX TM0=XXXXXX RBS =X R0=XXX R4=XXX | ; SP =XXX TM1=XXXXXX BASE =X R1=XXX R5=XXX | ; DPTR=XXXXXX SUFFIX =X R2=XXX R6=XXX | ; ACC =XXX PSW=XXXXXXXXY R3=XXX R7=XXX | ;--------------------------------------------------------------------------| ;* | ;--------------------------------------------------------------------------| Examples: PC PC=XX display PC PC=11 change PC to 11 éREMOVE Command to remove a symbol 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 .APPLE REMOVE .CAT,.DOG) (2) To remove all the symbols for the user symbol table, type: REMOVE SYMBOL (3) To remove one or more macros from the list of available macros, type: REMOVE : [,:]..... (EX: REMOVE :TRIANGLE REMOVE :TRUCK,:CITY) (4) To remove all the macros from the list of available macros, type: REMOVE MACRO ©REPEAT - The commands in the REPEAT command are executed an unfixed 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 EMV-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) ´RESET - Command to reset. (1) The EMV-51 hardware is reinitialized (2) DTRACE commands are set to default conditions (3) BREAK commands are set to default state ŠSAVE - Command to save code memory and/or symbols in an 8051 object file. (1) To save the last partition loaded and the symbol table, type: SAVE (EX: SAVE :F1:SAVE.IT) where is defined as the name of an ISIS file. For example: :F1:MYPROG.001. (2) To save only the last partition loaded type: SAVE NOSYMBOL (EX: SAVE :F1:FOO NOSYMBOL) (3) To save only the symbol table, type: SAVE NOCODE (EX: SAVE :F2:SYMBOL NOCODE) (4) To save a specified part of code memory and the symbol table, type: SAVE (EX: SAVE :F1:TOO 5 TO 45H) (5) To save a specified part of code memory with no symbols, type: SAVE NOSYMBOL (EX: SAVE :F3:CODE.SAV 100H TO 200H NOSYMBOL) ¦STEP - Command which causes the EMV-51 to emulate one 8051 instruction. During single step emulation trace is always available but will not be displayed unless enabled by the DTRACE Command. To single step, type: STEP [[FROM]
] [COUNT = ] [BR] An
if supplied, 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
is missing the PC is unchanged. The COUNT option can be used to step for a fixed number of instructions. The BR option enables the breakpoints set by the "BREAK" command. If both COUNT and BR are specified, then, the COUNT option will be ignored. EXAMPLE: STEP (step for one instruction, use current PC) STEP 50H (execute one instruction at address 50H) NOTE : see BREAK and DTRACE commands for step controls  - A list of characters preceded by an apostrophe, and extending to the next apostrophe; except that two sequential apostrophe's denotes a single apostrophe and does not terminate the string. (EX: 'THIS IS A STRING' 'RALPH''S STRING')  - One ASCII character enclosed between apostrophes. An apostrophe used as an 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 current base in which numeric values with no explicit suffix are input from the console. Initially hex. See BASE for current display base. (1) To display the current suffix, type: SUFFIX (2) To change the default suffix, type: SUFFIX = Y (Binary) Q (Octal) H (Hexadecimal) T (Decimal) ¿SYMBOL - Command which displays the symbolic name and value of all entries in the EMV-51 user's table. SYMBOL For display of a single symbol see or . G - A reference to a symbol in the user's symbol table or the system symbol table. (1) To access the first symbol in the tables with a specified symbol name, type: . (EX: .ALPHA) (2) To access a multiple symbol, type: . [.]........ To indicate the first occurrence of BETA after the second occurrence of ALPHA in the user's symbol table, type: .ALPHA.ALPHA.BETA See , , and SYMBOL for related commands. ˆ - A set of system predeclared symbols. They function much like user defined symbols except that their address can not be changed or removed. (1) To display the value of a system symbol, type: (EX: .RESET) (2) To display the memory at a system symbol, type: CBYTE|RBYTE|RBIT (EX: RBIT .CY) The code system symbols(CBYTE) are: RESET EXTI0 TIMER0 EXTI1 TIMER1 SINT The data system symbols(RBYTE) are: P0 P1 P2 P3 PSW ACC B SP DPL DPH 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 † - A reference to a symbol in the EMV-51 user symbol table. (1) To display the value of a user symbol, type: (EX: .SYNX) (2) To display the entire EMV-51 user's symbol table, type: SYMBOL (3) To define a new symbol at the end of the user's symbol table and assign it a value, type: DEFINE . = (EX: DEFINE .T2 = 54T) (4) To change the value of an existing user symbol, type: = (EX: .T2 = 64H) (5) To remove one or more symbols from the user's symbol table, type: REMOVE [,] EX: REMOVE .T2,.SYNX) (6) To remove all the symbols in the user's symbol table, type: REMOVE SYMBOL For information on the system symbols, see . IWRITE - An explicit display command which can evaluate an and display it on the console. (1)To write one or more expressions, type: WRITE [,]..... ::= | (EX: WRITE 'ERROR HERE' WRITE 'NOW AT POINT ',.C)