User manual
Table Of Contents
- COVER
- TABLE OF CONTENTS
- CHAPTER 1 GENERAL INFORMATION
- CHAPTER 2 DEBUG MONITOR DESCRIPTION
- CHAPTER 3 DEBUG MONITOR COMMANDS
- CHAPTER 4 ASSEMBLER/DISASSEMBLER
- CHAPTER 5 SYSTEM CALLS
- CHAPTER 6 DIAGNOSTIC FIRMWARE GUIDE
- APPENDIX A S-RECORD INFORMATION
- APPENDIX B SELF-TEST ERROR MESSAGES
- APPENDIX C USER CUSTOMIZATION
- LIST OF FIGURES
- LIST OF TABLES
- Table 2-1. Debugger Address Parameter Format
- Table 2-2. CPU32Bug Exception Vectors
- Table 3-1. Debug Monitor Commands
- Table 4-1. CPU32Bug Assembler Addressing Modes
- Table 5-1. CPU32Bug System Call Routines
- Table 6-1. MCU CPU Diagnostic Tests
- Table 6-2. Memory Diagnostic Tests
- Table B-1. Self-Test Error Messages
- Table C-1. CPU32Bug Customization Area
- Table C-2. MCU SCI Communication Formats
- Table C-3. Rev. A Chip Selection Summary
- Table C-4. Rev. B Chip Selection Summary
- Table C-5. BCC Rev. C Chip Selection Summary
- Table C-6. PFB Rev. C Compatibility
- CHAPTER 1 GENERAL INFORMATION
- CHAPTER 2 DEBUG MONITOR DESCRIPTION
- CHAPTER 3 DEBUG MONITOR COMMANDS
- 3.1 INTRODUCTION
- 3.2 BLOCK OF MEMORY COMPARE
- 3.3 BLOCK OF MEMORY FILL
- 3.4 BLOCK OF MEMORY MOVE
- 3.5 BREAKPOINT INSERT/DELETE
- 3.6 BLOCK OF MEMORY SEARCH
- 3.7 BLOCK OF MEMORY VERIFY
- 3.8 DATA CONVERSION
- 3.9 DUMP S-RECORDS
- 3.10 GO DIRECT (IGNORE BREAKPOINTS)
- 3.11 GO TO NEXT INSTRUCTION
- 3.12 GO EXECUTE USER PROGRAM
- 3.13 GO TO TEMPORARY BREAKPOINT
- 3.14 HELP
- 3.15 LOAD S-RECORDS FROM HOST
- 3.16 MACRO DEFINE/DISPLAY/DELETE
- 3.17 MACRO EDIT
- 3.18 MACRO EXPANSION LISTING ENABLE/DISABLE
- 3.19 MEMORY DISPLAY
- 3.20 MEMORY MODIFY
- 3.21 MEMORY SET
- 3.22 OFFSET REGISTERS DISPLAY/MODIFY
- 3.23 PRINTER ATTACH/DETACH
- 3.24 PORT FORMAT
- 3.25 REGISTER DISPLAY
- 3.26 COLD/WARM RESET
- 3.27 REGISTER MODIFY
- 3.28 REGISTER SET
- 3.29 SWITCH DIRECTORIES
- 3.30 TRACE
- 3.31 TRACE ON CHANGE OF CONTROL FLOW
- 3.32 TRANSPARENT MODE
- 3.33 TRACE TO TEMPORARY BREAKPOINT
- 3.34 VERIFY S-RECORDS AGAINST MEMORY
- CHAPTER 4 ASSEMBLER/DISASSEMBLER
- CHAPTER 5 SYSTEM CALLS
- 5.1 INTRODUCTION
- 5.2 SYSTEM CALL ROUTINES
- 5.2.1 Calculate BCD Equivalent Specified Binary Number
- 5.2.2 Parse Value, Assign to Variable
- 5.2.3 Check for Break
- 5.2.4 Timer Delay Function
- 5.2.5 Unsigned 32 x 32 Bit Divide
- 5.2.6 Erase Line
- 5.2.7 Input Character Routine
- 5.2.8 Input Line Routine
- 5.2.9 Input Serial Port Status
- 5.2.10 Unsigned 32 x 32 Bit Multiply
- 5.2.11 Output Character Routine
- 5.2.12 Output String Using Pointers
- 5.2.13 Print Carriage Return and Line Feed
- 5.2.14 Read Line to Fixed-Length Buffer
- 5.2.15 Read String Into Variable-Length Buffer
- 5.2.16 Return to CPU32Bug
- 5.2.17 Send Break
- 5.2.18 Compare Two Strings
- 5.2.19 Timer Initialization
- 5.2.20 Read Timer
- 5.2.21 Start Timer at T=0
- 5.2.22 Output String with Data
- 5.2.23 Output String Using Character Count
- CHAPTER 6 DIAGNOSTIC FIRMWARE GUIDE
- 6.1 INTRODUCTION
- 6.2 DIAGNOSTIC MONITOR
- 6.2.1 Monitor Start-Up
- 6.2.2 Command Entry and Directories
- 6.2.3 Help (HE)
- 6.2.4 Self Test (ST)
- 6.2.5 Switch Directories (SD)
- 6.2.6 Loop-On-Error Mode (LE)
- 6.2.7 Stop-On-Error Mode (SE)
- 6.2.8 Loop-Continue Mode (LC)
- 6.2.9 Non-Verbose Mode (NV)
- 6.2.10 Display Error Counters (DE)
- 6.2.11 Clear (Zero) Error Counters (ZE)
- 6.2.12 Display Pass Count (DP)
- 6.2.13 Zero Pass Count (ZP)
- 6.3 UTILITIES
- 6.4 CPU TESTS FOR THE MCU
- 6.5 MEMORY TESTS (MT)
- 6.6 BUS ERROR TEST
- APPENDIX A S-RECORD INFORMATION
- APPENDIX B SELF-TEST ERROR MESSAGES
- APPENDIX C USER CUSTOMIZATION

ASSEMBLER/DISASSEMBLER
M68CPU32BUG/D 4-12
4.3.3 Entering Branch and Jump Addresses
When entering a source line containing a branch instruction (BRA, BGT, BEQ, etc) do not enter
the offset to the branch’s destination in the instruction operand field. The offset is calculated by
the assembler. The user must append the appropriate size extension to the branch instruction.
To reference a current location in an operand expression use the asterisk (*) character.
EXAMPLES
0000D000 6000BF68 BRA *-4096
0000D000 60FE BRA.B *
0000D000 4EF90000 D000 JMP *
0000D000 4EF00130 0000D000 JMP (*,A0,D0)
In the case of forward branches or jumps, the absolute address of the destination may be
unknown as the program is being entered. The user may enter an asterisk (*) for branch to self in
order to reserve space. After the actual address is discovered, the line containing the branch
instruction can be re-entered using the correct value. Enter branch sizes ’’B’’ or ’’W’’, as opposed to
’’S’’ and ’’L’’.
4.3.4 Assembler Output/Program Listings
Use the MD (Memory Display) command with the ;DI option to obtain a listing of the program.
The MD command requires the starting address and a line count or ending address to be entered
in the command line. When the ;DI option is executed with a line count, the number of
instructions disassembled and displayed is equal to the line count.
Note again, that the listing may not correspond exactly to the program as entered. As discussed in
paragraph 4.2.1.3, the disassembler displays in signed hexadecimal any number it interprets as an
offset of an address register; all other numbers are displayed in unsigned hexadecimal.
SYSTEM CALLS
M68CPU32BUG/D REV 1 5-1
CHAPTER 5
SYSTEM CALLS
5.1 INTRODUCTION
This chapter describes the CPU32Bug TRAP #15 handler, which allows system calls from user
programs. System calls access selected functional routines contained within CPU32Bug,
including input and output routines. TRAP #15 also transfers control back to CPU32Bug at the
end of a user program (refer to the .RETURN function, paragraph 5.2.16).
In the descriptions of some input and output functions, reference is made to the default input port
or the default output port. After power-up or reset, the default input and output port is port 0 (the
BCC terminal port).
5.1.1 Executing System Calls Through TRAP #15
To execute a system call from a user program simply insert a TRAP #15 instruction into the
source program. The code corresponding to the particular system routine is specified in the word
following the TRAP opcode, as shown in the following example.
Format in user program:
TRAP #15 System call to CPU32Bug
DC.W $xxxx Routine being requested (xxxx = code)
In some of the examples shown in the following descriptions, a SYSCALL macro is used with
the Motorola Macro Assembler (M68MASM) for MS-DOS/PC-DOS machines. This macro
automatically assembles the TRAP #15 call followed by the define constant for the function
code. The SYSCALL macro is:
SYSCALL MACRO
TRAP #15
DC.W \1
ENDM
The CPU32Bug input default is hexadecimal, while other assemblers default to decimal. When
programming a CPU32Bug assembler TRAP function it is best to use the SYSCALL macro to
make the conversion.
Using the SYSCALL macro, the system call appears in the user program as:
SYSCALL <routine name>
Fr
eescale S
emiconduct
or
, I
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
nc...