
MOTOROLA
10-56
MAIN TIMER AND REAL-TIME INTERRUPT
M68HC11
REFERENCE MANUAL
Listing - Timer Examples
Sheet 13 of 16
***
* General purpose subroutines
***
***
* P5DEC - Subroutine to display a five digit decimal
* number at "DBUFR".
* Prints in the form “xx,xxx” with leading zeros
* suppressed. Prints 6 columns, leading spaces,
* units always prints (0-9)
*
* Calls EVB routine ".OUTA"
* Calls "SKP1" with BSR to advance X and print a
* leading space SKP1 subroutine follows P5DEC
* All registers are unchanged upon return from P5DEC
***
c2df 3c
c2e0 37
c2e1 36
c2e2 ce d0 17
c2e5 86 30
c2e7 a1 00
c2e9 26 19
c2eb 8d 3d
c2ed a1 00
c2ef 26 19
c2f1 8d 37
c2f3 8d 35
c2f5 09
c2f6 a1 00
c2f8 26 1b
c2fa 8d 2e
c2fc a1 00
c2fe 26 1b
c300 8d 28
c302 20 1d
c304 a6 00
c306 bd ff b8
c309 08
c30a a6 00
c30c bd ff b8
c30f 86 2c
c311 bd ff b8
c314 08
c315 a6 00
c317 bd ff b8
c31a 08
c31b a6 00
c31d bd ff b8
c320 08
c321 a6 00
c323 bd ff b8
c326 32
c327 33
c328 38
c329 39
[4]
[3]
[3]
[3]
[2]
[4]
[3]
[6]
[4]
[3]
[6]
[6]
[3]
[4]
[3]
[6]
[4]
[3]
[6]
[3]
[4]
[6]
[3]
[4]
[6]
[2]
[6]
[3]
[4]
[6]
[3]
[4]
[6]
[3]
[4]
[6]
[4]
[4]
[5]
[5]
PSDEC
PSHX
PSHB
PSHA
LDX
LDAA
CMPA
BNE
BSR
CMPA
BNE
BSR
BSR
DEX
CMPA
BNE
BSR
CMPA
BNE
BSR
BRA
LDAA
JSR
INX
LDAA
JSR
LDAA
JSR
INX
LDAA
JSR
INX
LDAA
JSR
INX
LDAA
JSR
PULA
PULB
PULX
RTS
Save registers
#DBUFR
# $30
0,X
P10K
SKP1
0,X
P1K
SKP1
SKP1
Point at decimal (MS character)
Chk for leading 0s (ASCII)
Check 10,000s digit
Start at 10k digit
INX & print a space
Chk 1,000s (A still=ASCII<sp>)
Start at 1k digit
INX & print a space
INX & print extra sp for “,”
just wanted <sp> so back up 1
Check 100s digit
Start at 100s digit
INX & print a space
Check 10s digit
Start at 10s digit
INX & print a space
Start at 1s digit (default)
10,000s digit
Print 10,000s digit
Advance pointer to next digit
1,000s digit
Print it
ASCII comma
Print
Advance pointer to next digit
100s digit
Print it
Advance pointer to next digit
10s digit
Print it
Advance pointer to next digit
1s digit
Print it
Restore registers
0,X
P100
SKP1
0,X
P10
SKP1
P1
0,X
OUTA
P10K
P1K
0,X
OUTA
#’,’
OUTA
P100
0,X
.OUTA
P10
0,X
OUTA
P1
0,X
OUTA
**Return from P5DEC**