Blame view
firmware/dsp56k/bootstrap.asm
2.86 KB
7f127d5ed dsp56k: use reque... |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
; Author: Frederik Noring <noring@nocrew.org> ; ; This file is subject to the terms and conditions of the GNU General Public ; License. See the file COPYING in the main directory of this archive ; for more details. ; DSP56k loader ; Host Interface M_BCR EQU $FFFE ; Port A Bus Control Register M_PBC EQU $FFE0 ; Port B Control Register M_PBDDR EQU $FFE2 ; Port B Data Direction Register M_PBD EQU $FFE4 ; Port B Data Register M_PCC EQU $FFE1 ; Port C Control Register M_PCDDR EQU $FFE3 ; Port C Data Direction Register M_PCD EQU $FFE5 ; Port C Data Register M_HCR EQU $FFE8 ; Host Control Register M_HSR EQU $FFE9 ; Host Status Register M_HRX EQU $FFEB ; Host Receive Data Register M_HTX EQU $FFEB ; Host Transmit Data Register ; SSI, Synchronous Serial Interface M_RX EQU $FFEF ; Serial Receive Data Register M_TX EQU $FFEF ; Serial Transmit Data Register M_CRA EQU $FFEC ; SSI Control Register A M_CRB EQU $FFED ; SSI Control Register B M_SR EQU $FFEE ; SSI Status Register M_TSR EQU $FFEE ; SSI Time Slot Register ; Exception Processing M_IPR EQU $FFFF ; Interrupt Priority Register org P:$0 start jmp <$40 org P:$40 ; ; Zero 16384 DSP X and Y words ; clr A #0,r0 ; clr B #0,r4 ; do #64,<_block1 ; rep #256 ; move A,X:(r0)+ B,Y:(r4)+ ;_block1 ; Zero (32768-512) Program words ; clr A #512,r0 ; do #126,<_block2 ; rep #256 ; move A,P:(r0)+ ;_block2 ; Copy DSP program control move #real,r0 move #upload,r1 |
842ffabbf make firmware/dsp... |
54 55 56 57 58 |
do #upload_end-upload,_copy movem P:(r0)+,x0 movem x0,P:(r1)+ _copy movep #4,X:<<M_HCR movep #$c00,X:<<M_IPR |
7f127d5ed dsp56k: use reque... |
59 60 61 62 63 64 |
and #<$fe,mr jmp upload real org P:$7ea9 upload |
842ffabbf make firmware/dsp... |
65 66 |
movep #1,X:<<M_PBC movep #0,X:<<M_BCR |
7f127d5ed dsp56k: use reque... |
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
next jclr #0,X:<<M_HSR,* movep X:<<M_HRX,A move #>3,x0 cmp x0,A #>1,x0 jeq <$0 _get_address jclr #0,X:<<M_HSR,_get_address movep X:<<M_HRX,r0 _get_length jclr #0,X:<<M_HSR,_get_length movep X:<<M_HRX,y0 cmp x0,A #>2,x0 jeq load_X cmp x0,A jeq load_Y |
842ffabbf make firmware/dsp... |
83 |
load_P do y0,_load_P |
7f127d5ed dsp56k: use reque... |
84 85 |
jclr #0,X:<<M_HSR,* movep X:<<M_HRX,P:(r0)+ |
842ffabbf make firmware/dsp... |
86 87 |
_load_P jmp next load_X do y0,_load_X |
7f127d5ed dsp56k: use reque... |
88 89 |
jclr #0,X:<<M_HSR,* movep X:<<M_HRX,X:(r0)+ |
842ffabbf make firmware/dsp... |
90 91 |
_load_X jmp next load_Y do y0,_load_Y |
7f127d5ed dsp56k: use reque... |
92 93 |
jclr #0,X:<<M_HSR,* movep X:<<M_HRX,Y:(r0)+ |
842ffabbf make firmware/dsp... |
94 |
_load_Y jmp next |
7f127d5ed dsp56k: use reque... |
95 96 97 |
upload_end end |