
Listing 3. MC68HC711E9 Bootloader ROM
M68HC11 Bootstrap Mode, Rev. 1.1
Freescale Semiconductor
223
52 D000 EPRMSTR EQU $D000 Start of EPROM
53 FFFF EPRMEND EQU $FFFF End of EPROM
54 *
55 0000 RAMSTR EQU $0000
56 01FF RAMEND EQU $01FF
57
58 * DELAY CONSTANTS
59 *
60 0DB0 DELAYS EQU 3504 Delay at slow baud
61 021B DELAYF EQU 539 Delay at fast baud
62 *
63 1068 PROGDEL EQU 4200 2 ms programming delay
64 * At 2.1 MHz
65
66 ****************************************************
67 BF00 ORG $BF00
68 ****************************************************
69
70 * Next two instructions provide a predictable place
71 * to call PROGRAM and UPLOAD even if the routines
72 * change size in future versions.
73 *
74 BF00 7EBF13 PROGRAM JMP PRGROUT EPROM programming utility
75 BF03 UPLOAD EQU * Upload utility
76
77 ****************************************************
78 * UPLOAD - Utility subroutine to send data from
79 * inside the MCU to the host via the SCI interface.
80 * Prior to calling UPLOAD set baud rate, turn on SCI
81 * and set Y=first address to upload.
82 * Bootloader leaves baud set, SCI enabled, and
83 * Y pointing at EPROM start ($D000) so these default
84 * values do not have to be changed typically.
85 * Consecutive locations are sent via SCI in an
86 * infinite loop. Reset stops the upload process.
87 ****************************************************
88 BF03 CE1000 LDX #$1000 Point to internal registers
89 BF06 18A600 UPLOOP LDAA 0,Y Read byte
90 BF09 1F2E80FC BRCLR SCSR,X $80 * Wait for TDRE
91 BF0D A72F STAA SCDAT,X Send it
92 BF0F 1808 INY
93 BF11 20F3 BRA UPLOOP Next...
94
95 ****************************************************
96 * PROGRAM - Utility subroutine to program EPROM.
97 * Prior to calling PROGRAM set baud rate, turn on SCI
98 * set X=2ms prog delay constant, and set Y=first
99 * address to program. SP must point to RAM.
100 * Bootloader leaves baud set, SCI enabled, X=4200
101 * and Y pointing at EPROM start ($D000) so these
102 * default values don't have to be changed typically.
103 * Delay constant in X should be equivalent to 2 ms
104 * at 2.1 MHz X=4200; at 1 MHz X=2000.
105 * An external voltage source is required for EPROM
106 * programming.