Freescale Semiconductor Microcontrollers User Manual

Page 316

Advertising
background image

HC08 Full Chip Simulation

Configuration Procedure

316

Microcontrollers Debugger Manual

ldhx #8
SAVE_SETUP:
lda {UE0D0-1},x ; save data to array
sta {Setup_packet-1},x ; Setup_packet holds info
dbnzx SAVE_SETUP
lda bmReqType ; if request type is standard
and #$60 ; then go handle standard request
bne SETUP_STALL ; otherwise, force stall

STANDARD:
lda bRequest ; get request type
cbeqa #GET_DESC,GET_DESCR ; if getting descriptors then
; ready the next IN packets for
; the descriptor information
bra SETUP_STALL ; otherwise, force stall

GET_DESCR:
jsr GETDESC_PROC ; packet received was GET_DESCRIPTOR
bra SETUP_EXIT ; go exit

SETUP_STALL:
jsr FORCE_STALL ; error, force stall on endpoint 0

SETUP_EXIT:
lda UEP0CSR ; setup endpoint 0 for more packets
and #$fc
sta UEP0CSR
bclr 5,USBSR ; clear setup flags
rts

****************************************************************
* IN_PROC - This procedure handles the IN packets that come *
* into the USB peripheral through endpoint 0. *
****************************************************************
IN_PROC:
lda control ; is this IN packet for data stage
cmp #GET_DESC ; of GET_DESCRIPTOR?
bne IN_PROC2
ldhx #0 ; clear index into data buffer
sthx buffptr
IN_SEND_DATA:
ldhx descptr ; get pointer to descriptor
lda 0,x ; get descriptor byte
aix #1
sthx descptr ; save pointer to descriptor
ldhx buffptr ; get index to data buffer
sta UE0D0,x ; place byte in buffer
aix #1

Advertising