Enter DSK3D /? or DSK3D /HELP to display the command-line options for the debugger.
F1 Help screen F2 40 bit hex display F3 FLOAT display F4 Source/DASM debug toggle F5 Run F6 Display breakpoints F7 Clear all breakpoints F8 Single step F9 Toggle DASM window size F10 Step over function shift+F8 Force Single step shift+F10 Force Function step ALT+D Select Disassembly Window ALT+M Select Memory Window
Page Up Selects first command in buffer Page Down Selects last command in buffer Up/Down Move through the command buffer Left/Right Move cursor Home Move cursor to start End Move cursor to end Shift+End Erase remaining command Insert Insert mode Delete Delete char Tab Re-executes last used command Enter Executes command
? <exp> What is the value of <exp> HELP Display HELP SS Single Step XN n Single step n times STEP <n> Single step <n> times FSTEP <n> Step through functions <n> times XG addr Single Step until <addr> GO addr Run until <addr> RUN Execute with Breakpoints RUNF Execute without Breakpoints MEM <addr> View mem @<addr>, 32 bit hex MEMX <addr> '' , 32 bit hex MEMI <addr> '' , signed MEMD <addr> '' , signed MEML <addr> '' , signed MEMUI <addr> '' , unsigned MEMUD <addr> '' , unsigned MEMUL <addr> '' , unsigned MEMU <addr> '' , unsigned MEMF <addr> '' , TMS float MEMQxx <addr> '' (xx is int) , Qxx format DASM addr Disassemble from <addr> MM addr Modify memory at <addr> MM addr,leng,val Fill memory with <value> SB addr Set breakpoint at <addr> CB addr Clear breakpoint at <addr> CB Clear all breakpoints DB Display breakpoints LF <file> Load file (defaults to last) LOAD <file> Load file RELOAD <file> Load file SLOAD <file> Load symbols BLOAD <file> Load binary only FILE2HEX <file> .dsk|.out to HEX DSK2HEX <file> .dsk to HEX COFF2HEX <file> .out to HEX DSK2COFF file .dsk to COFF MEM2HEX file,a,l Mem at address,length to HEX MEM2COFF file,a,l Mem at address,length to HEX MAXFLEN length Max out file length (no '=') FLF <file> Fast Load from HEX file SCLEAR or SC Clear symbols RESET DSK reset QUIT or EXIT Quit debugger DOS DOS prompt DOS <dos_exec> Execute a DOS program EDIT <name> EDIT <name> (DOS editor) DSK3A <name> DSK3A assemble <name> FLOAT CPU display in Float format REG40 CPU display in 40 bit hex SYMBOLS or SYM View Symbol table MOVE/MOV src,dst,n Move src->dst n<256 times XON/XOFF Enable PG6 extended opcodes CMDxx 'cmd string' Copies 'cmd string' to buffer xx DASM0-DASM3 Set DASM Window display mode PAUSE Pauses a TAKE file END End a take file TAKE <filename> Load commands from a file CREAD <filename> default is CMDFILE.SAV CLOAD <filename> CSAVE <filename> Save DSK3D context to a file CSAVEALL <filename> 'ALL' saves all on-chip memory CSAVEALLHEX <filename> to HEX (default) or COFF file CSAVEALLCOFF <filename> Default name is FULLSAVE.HEX SAVE name,addr,leng,t Saves 'leng' memory at 'addr' <t>ypes L or LONG - ASCII Long U or UNSIGNED - ASCII Unsigned Long F or FLOAT - ASCII Float X or H or HEX - ASCII hexadecimal B or BIN - Binary byte C or CHAR - Binary byte I or INT - Binary Integer W or WORD - Binary Long Word D or DASM - DASM listing
The disassembler output can be changed to see more in the display. The commands, and what the display will look like are shown below. Note that in the case of DASM0 and DASM1, you cannot set a breakpoint by using the breakpoint toggle key 'F2' while in the DASM window. DASM3 is the default mode.
LABEL ADDF 1.75,R0
809801 LABEL ADDF 1.75,R0
07600600 LABEL ADDF 1.75,R0
809803 07600600 LABEL ADDF 1.75,R0
The HEX file conversion and HEX load functions use the the DSK listing to create boot loadable images. A HEX file can be 'smart' loaded since the bootloaders section relocation information can be used to place data into memory using the communications kernel. Hex loading is much faster since the file does not need to be searched and analyzed. If the parant *.DSK file also exists, the symbols from that file are loaded. NOTES: - The HEX file output is essentialy an EPROM boot file that has not been formated for a particular EPROM format (Intel, Mot, TI). If your programmer cannot read hex ascii directly you may need to write a conversion program.
- The first character after the patch command begins the address definition field. - The next blank space (white space) signifies the end of the address field. - Address expressions cannot contain blanks. - The next field is the opcode or directive, followed by the operand expressions. - Expressions use numbers and symbols - Parallel expressions are written using one line - You will lose your patch data when you exit DSK3D unless you perform a CSAVEALL, MEM2HEX, MEM2COFF or binary SAVE command. command Address Opcode/directive operands... ASM 0x809800 .word 0111b PATCH MY_Data+1 .float 1,2,3,4 PATCH MY_CODE B BEGIN PATCH $ ldi *AR0,R0 || ldi *AR1,R1
The DSK3D and DSK3A expression analyzers are identical. Expressions may contain numbers, labels, math functions or logical operations. The 'contents of a pointer' operator '*' is allowed but is restricted to the leftmost column of the assignment and expression field Assignment: <register> = <expression> Evaluation: ? <expression> Registers R0 - R7 Integer of extended precision registers F0 - F7 Float of extended precision registers AR0-AR7 Auxiliary registers DP,PC,IF... All other CPU registers examples: PC = 0x809800 R0 = 1.34 R0 = R0 >> 3 F0 = R0 + 1.34 F7 = 2.5+(R0/2.0) ST = ST | 0x2000 *AR0= *(AR0+3) Numbers : 15 Integer 15.0 Floating point 15h TI Hex (start numeric, end 'h') 0x15 C style hexadecimal 111b Binary (start numeric, end 'b') Operators: | logical OR & logical AND ^ logical XOR ~ negation << left-shift >> right-shift (exp) Evaluate exp first Functions: abs(x) |x| int acos(x) Arc Cosine asin(x) Arc Sine atan(x) Arc Tangent + br(x,y) Bit reverse X with range y ceil(x) Returns int >= x + circ(x,y) Circular mod x over range y cos(x) Cosine cosh(x) Hyperbolic Cosine exp(x) e^x fabs(x) |x| float floor(x) Returns int <= x labs(x) |x| long log(x) Natural log log2(x) Log base 2 log10(x) Log base 10 pow(x,y) x^y pow10(x) 10^x sin(x) Sine sinh(x) Hyperbolic Sine sqrt(x) Square root tan(x) Tangent tanh(x) Hyperbolic Tangent ~ float(x) TI 8:1:23 float ~ sfloat(x) TI 4:1:11 ~ float8(x) TI 4:1: 3 ~ float16(x) TI 8:1: 7 ~ ieee(x) IEEE 1:8:23 $ rand() Random number generator $ srand(x) Seeded random number + Modulo arithmetic functions for lookup tables ~ Returns floating point value as a binary which can then be used in an expression $ Random numbers are 32 bit longs for integer expressions or -1.0<rand<+1.0 for floats shift + F1 Version info shift + F2 Display heap & other parameters
An unpopulated header location is provided on the DSK (JP4) for an XDS510 emulator. However, be aware that if both the emulator and DSK software are used simultaneously, the XDS510 can kill the host communications link killing the application
- Single step lockouts created by loading IE without 0x44 OR'ed into the IE can be forced with the sF8/sF10 forced step functions. If this condition is detected, a warning message is given, telling the user that sF8/sF10 can be used to force the execution of this class of opcodes. If 0x4 and 0x40 (Host INT2 and sstep XINT1) are not OR'd with the IE register these interrupts can be lost when higher level interrupts are serviced. sF8/sF10 forces all INTs to sstep by swapping out the entire vector branch table with branches to the SSTEP routine. Since the normal ISR routines are, bypassed this may cause unserviced peripherals to shut down and not generate new interrupts. An example is the serial port, which can be overrun or underrun. You can force new interrupts using the IF=0xXXX command, but if the peripheral is corrupted a reset may be required. Note that by stepping with sF8/sF10 any IF interrupt bits that were set can be lost. - Setting a breakpoint (or FSTEP-F10) at the end of a repeat block is a special case. A BP 'trap' code at the repeat end (RE) location will reload the PC with the repeat start (RS) address, corrupting the normal BP location. By analyzing RS, RE, RC and BP trap locations a recovery is possible except when a BP is set at BOTH the RE (end) and RS-1 (START-1) locations. A warning is generated for this case. Either BP location can be used, but not both.
Maintained by John Loomis, last updated 13 Jan 1999