![](http://datasheet.mmic.net.cn/30000/MC68HC711E20CFNE_datasheet_2370038/MC68HC711E20CFNE_251.png)
Application Note
AN1060 — Rev. 1.0
MOTOROLA
251
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.
107
* This routine uses 2 bytes of stack space
108
* Routine does not return. Reset to exit.
109
****************************************************
110 BF13
PRGROUT
EQU
*
111 BF13 3C
PSHX
Save program delay constant
112 BF14 CE1000
LDX
#$1000
Point to internal registers
113 BF17
114
* Send $FF to indicate ready for program data
115
116 BF17 1F2E80FC
BRCLR
SCSR,X $80 *
Wait for TDRE
117 BF1B 86FF
LDAA
#$FF
118 BF1D A72F
STAA
SCDAT,X
119
120 BF1F
WAIT1
EQU
*
121 BF1F 1F2E20FC
BRCLR
SCSR,X $20 *
Wait for RDRF
122 BF23 E62F
LDAB
SCDAT,X
Get received byte
123 BF25 18E100
CMPB
$0,Y
See if already programmed
124 BF28 271D
BEQ
DONEIT
If so, skip prog cycle
125 BF2A 8620
LDAA
#ELAT
Put EPROM in prog mode
126 BF2C A73B
STAA
PPROG,X
127 BF2E 18E700
STAB
0,Y
Write the data
128 BF31 8621
LDAA
#ELAT+EPGM
129 BF33 A73B
STAA
PPROG,X
Turn on prog voltage
130 BF35 32
PULA
Pull delay constant
131 BF36 33
PULB
into D-reg
132 BF37 37
PSHB
But also keep delay
133 BF38 36
PSHA
keep delay on stack
134 BF39 E30E
ADDD
TCNT,X
Delay const + present TCNT
135 BF3B ED16
STD
TOC1,X
Schedule OC1 (2ms delay)
136 BF3D 8680
LDAA
#OC1F
137 BF3F A723
STAA
TFLG1,X
Clear any previous flag
138
139 BF41 1F2380FC
BRCLR
TFLG1,X OC1F * Wait for delay to expire
140 BF45 6F3B
CLR
PPROG,X
Turn off prog voltage
141
*
142 BF47
DONEIT
EQU
*
143 BF47 1F2E80FC
BRCLR
SCSR,X $80 *
Wait for TDRE
144 BF4B 18A600
LDAA
$0,Y
Read from EPROM and...
145 BF4E A72F
STAA
SCDAT,X
Xmit for verify
146 BF50 1808
INY
Point at next location
147 BF52 20CB
BRA
WAIT1
Back to top for next
148
* Loops indefinitely as long as more data sent.
149