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