
MOTOROLA
8-18
SYNCHRONOUS SERIAL PERIPHERAL INTERFACE
M68HC11
REFERENCE MANUAL
********************************************************************************
* REFORM - This subroutine reformats six 6-bit values into five 8-bit
*
values so they can be sent by the SPI system.
*
* The MC144110 needs 36 bits of information, which is not a multiple
* of 8 bits; however, we can send five 8 bit words (40 bits) and the
* MC144110 will use only the last 36 bits.
*
*
Original format
*
DA1 "-,-,15,14;13,12,11,10" SPI1 "--,--,--,--;65,64,63,62"
*
DA2 "-,-,25,24;23,22,21,20" SPI2 "61,60,55,54;53,52,51,50"
*
DA3 "-,-,35,34;33,32,31,30" SPI3 "45,44,43,42;41,40,35,34"
*
DA4 "-,-,45,44;43,42,41,40" SPI4 "33,32,31,30;25,24,23,22"
*
DA5 "-,-,55,54;53,52,51,50" SPI5 "21,20,15,14;13,12,11,10"
*
DA6 "-,-,65,64;63,62,61,60
********************************************************************************
*
*
*
*
*
*
*
*
*
*
*
*
*
*
Change to this format
c017 37
c018 36
c019 96 00
c01b 48
c01c 48
c01d d6 01
c01f c4 3f
c021 54
c022 46
c023 54
c024 46
c025 97 0a
c027 d7 09
c029 96 03
c02b d6 02
c02d 58
c02e 58
c02f 58
c030 49
c031 58
c032 49
c033 da 09
c035 d7 09
c037 97 08
c039 96 04
c03b 48
c03c 48
c03d d6 05
c03f c4 3f
c041 54
c042 46
c043 54
c044 46
c045 97 07
c047 d7 06
c049 32
c04a 33
c04b 39
[3]
[3]
[3]
[2]
[2]
[3]
[2]
[2]
[2]
[2]
[2]
[3]
[3]
[3]
[3]
[2]
[2]
[2]
[2]
[2]
[2]
[3]
[3]
[3]
[3]
[2]
[2]
[3]
[2]
[2]
[2]
[2]
[2]
[3]
[3]
[4]
[4]
[5]
Figure 8-9 Example 8–1 Software Listing (Sheet 2 of 2)
REFORM PSHB
Save registers B and A
PSHA
IDAA
ASLA
ASLA
LDAB
ANDB
LSRB
RORA
LSRB
RORA
STAA
STAB
LDAA
LDAB
ASLB
ASLB
ASLB
ROLA
ASLB
ROLA
ORAB
STAB
STAA
LDAA
ASLA
ASLA
LDAB
ANDB
LSRB
RORA
LSRB
RORA
STAA
STAB
PULA
PULB
RTS
DA1
A="--,--,15,14;13,12,11,10"
A="--,15,14,13;12,11,10, 0"
A="15,14,13,12;11,10, 0, 0"
B="--,--,25,24;23,22,21,20"
B=" 0, 0,25,24;23,22,21,20"
B=" 0, 0, 0,25;24,23,22,21" C="20
A="20,15,14,13;12,11,10, 0"
B=" 0, 0, 0, 0;25,24,23,22" C="21
A="21,20,15,14;13,12,11,10"
SPI5 is done
SPI4 intermediate value
A="--,--,45,44;43,42,41,40"
B="--,--,35,34;33,32,31,30"
B="--,35,34,33;32,31,30, 0"
B="35,34,33,32;31,30, 0, 0"
B="34,33,32,31;30, 0, 0, 0" C="35
A="--,45,44,43;42,41,40,35"
B="33,32,31,30; 0, 0, 0, 0" C="34
A="45,44,43,42;41,40,35,34"
B="33,32,31,30;25,24,23,22"
SPI4 now complete
SPI3 done
A="--,--,55,54;53,52,51,50"
A="--,55,54,53;52,51,50, 0"
A="55,54,53,52;51,50, 0, 0"
B="--,--,65,64;63,62,61,60"
B=" 0, 0,65,64;63,62,61,60"
B=" 0, 0, 0,65;64,63,62,61" C="60
A="60,55,54,53;52,51,50, 0"
B=" 0, 0, 0, 0;65,64,63,62" C="61
A="61,60,55,54;53,52,51,50"
SPI2 done
SPI1 done
Restore registers A and B
DA2
#$3F
SPI5
SPI4
DA4
DA3
SPI4
SPI4
SPI3
DA5
DA6
#$3F
SPI2
SPI1
** Return **