beautypg.com

Motorola DSP56301 User Manual

Page 304

background image

A

-8

DSP56301 User’s Manual

bra

;========================================================================

; This is the routine that loads from the Host Interface in UB (UNIVERSAL) mode,

; with single-strob pin configuration (RD/WR,DS).

; MD:MC:MB:MA=x111 - Host UB

UB1HOSTLD

bset #13,x1 ; HDSM=1 (Double-strob pin mode disabled)

;========================================================================

; This is the routine that loads from the Host Interface in UB (UNIVERSAL) mode,

; with double-strobe pin configuration (RD,WR).

; MD:MC:MB:MA=x110 - Host UB

UB2HOSTLD

movep x1,X:M_DCTR ; Configure HI32 in UB mode Single or Double strobe

do #6,_LOOP0 ; read # of words and start address

jclr #2,X:M_DSR,* ; Wait for SRRQ to go high (i.e. data ready)

movep X:M_DRXR,a2 ;

asr #8,a,a ; Shift 8 bit data into A1

_LOOP0 ;

move a1,r0 ; starting address for load

move a1,r1 ; save it in r1

; a0 holds the number of words

; Download P memory through UB

do a0,_LOOP1 ; Load instruction words

do #3,_LOOP2 ; for each byte

_LBLA

jset #2,X:M_DSR,_LBLB ; Wait for SRRQ to go high (i.e. data ready)

jclr #3,X:M_DSR,_LBLA ; If HF0=1, stop loading new data.

enddo ; Must terminate the do loop

bra

_LBLB

movep X:M_DRXR,a2 ; Store 16-bit data in accumulator

asr #8,a,a ; Shift 8 bit data into A1

_LOOP2 ; and go get another 24-bit word.

movem a1,p:(r0)+ ; Store 24-bit data in P mem

nop ; movem cannot be at LA.

_LOOP1 ; and go get another 24-bit word.

bra

;========================================================================

; This routine loads from the Host Interface in ISA (UNIVERSAL) mode.

; MD:MC:MB:MA=x101 - Host ISA

; 16-bit wide dual-strobe Universal Bus mode (e.g to support

; ISA (slave) glue less connection).

; Using self configuration mode, the base address in CBMA is written with

; $2f which corresponds to an ISA HTXR address of $2fe (Serial Port 2 Modem

; Status read only register).

ISAHOSTLD

move #$5a,b ; b1=$5a0000

movep b1,X:M_DCTR ; Configure HI32 as Self-Config

movep #$00002f,X:M_DPMC ; write to DPMC

rep #4

movep X0,X:M_DPAR ; write to DPAR (CSTR+CCMR,CCCR+CRID,CLAT,CBMA)

; completing 32 bit write