0100
0100
0010
0010
0010
0010
0000
0000
0000
0000
0000
0000
0000
0000
0000
0000
;
EP8INSZ
EP8OUTSZ
EP9INSZ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
256
256
16
16
16
16
0
0
0
0
0
; Iso FIFO sizes in bytes
EP9OUTSZ
EP10INSZ
EP10OUTSZ
EP11INSZ
EP11OUTSZ
EP12INSZ
EP12OUTSZ
EP13INSZ
EP13OUTSZ
EP14INSZ
EP14OUTSZ
EP15INSZ
EP15OUTSZ
0
0
0
0
0
0000
0040
0044
0048
0048
0048
0048
0048
0048
0088
008C
0090
0090
0090
0090
0090
8OUTAD
9OUTAD
10OUTAD
11OUTAD
12OUTAD
13OUTAD
14OUTAD
15OUTAD
8INAD
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
0
; Load these 16 bytes into ADDR regs starting OUT8ADDR
8OUTAD + Low(EP8OUTSZ/4)
9OUTAD + Low(EP9OUTSZ/4)
10OUTAD + Low(EP10OUTSZ/4)
11OUTAD + Low(EP11OUTSZ/4)
12OUTAD + Low(EP12OUTSZ/4)
13OUTAD + Low(EP13OUTSZ/4)
14OUTAD + Low(EP14OUTSZ/4)
15OUTAD + Low(EP15OUTSZ/4)
9INAD
8INAD
9INAD
+ Low(EP8INSZ/4)
+ Low(EP9INSZ/4)
10INAD
11INAD
12INAD
13INAD
14INAD
15INAD
10INAD + Low(EP10INSZ/4)
11INAD + Low(EP11INSZ/4)
12INAD + Low(EP12INSZ/4)
13INAD + Low(EP13INSZ/4)
14INAD + Low(EP14INSZ/4)
Figure 8-5. Assembler Translates FIFO Sizes to Addresses
The assembler computes starting addresses in Figure 8-5 by adding the previous end-
point’s address to the desired size shifted right twice. This aligns A9 with bit 7 as shown
in Table 8-1. The LOW operator takes the low byte of the resulting 16 bit expression
The user of this code must ensure that the sizes given in the first equate block are all mul-
tiples of 16. This is easy to tell by inspection—the least significant digit of the hex values
in the first column should be zero.
EZ-USB TRM v1.9
Chapter 8. EZ-USB CPU
Page 8-7