?? evmlogic.c
字號:
/*
* Copyright (C) 2001, Spectrum Digital, Inc. All Rights Reserved.
*/
#include "5509.h"
#include "util.h"
#define LATCH_ADDR ((volatile unsigned *)0x401000)
#define FLASH_BASE 0x200000
#define N 256
extern short receive_channel_m1[N];
extern short receive_channel_m2[N];
extern short receive_channel_m3[N];
extern short transmit_channel_m[N];
extern short transmit_channel_p[N];
extern short plut_buffer[N];
extern short sin_buffer[N];
extern short cos_buffer[N];
void Logic_SetPage(unsigned int highaddr)
{
*LATCH_ADDR = highaddr;
}
void Logic_ReadFlash(unsigned long addr)
{
/*
*LATCH_ADDR = (addr >> 12 & 0xff);
return *((unsigned short *)(FLASH_BASE + (addr & 0x0fff)));
*/
asm(" AMAR *(#401000h),XAR3 ");
asm(" SFTL AC0,#-12,AC0 ");
asm(" AND #255,AC0,AC0 ");
asm(" MOV AC0,*AR3 ");
asm(" AMAR *(#200000h),XAR3 ");
asm(" MOV dbl(*sp(#00h)),AC0 ");
asm(" AND #4095,AC0,AC1 ");
asm(" MOV AR3,AC0 ");
asm(" ADD AC1,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV *AR3,T0 ");
}
void Logic_WriteFlash(unsigned long addr, unsigned int data)
{
/*
*LATCH_ADDR = (addr >> 12 & 0xff);
*((unsigned short *)(FLASH_BASE + (addr & 0x0fff))) = data;
*/
asm(" AMAR *(#401000h),XAR3 ");
asm(" SFTL AC0,#-12,AC0 ");
asm(" AND #255,AC0,AC0 ");
asm(" MOV AC0,*AR3 ");
asm(" AMAR *(#200000h),XAR3 ");
asm(" MOV dbl(*sp(#00h)),AC0 ");
asm(" AND #4095,AC0,AC1 ");
asm(" MOV AR3,AC0 ");
asm(" ADD AC1,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV *sp(#02h),AR1 ");
asm(" MOV AR1,*AR3 ");
}
void Sin_load(void)
{
unsigned long addr;
unsigned long i;
addr = 0x00080000;
for(i = 0; i < 65536; i++)
{
asm(" MOV #255,T0 ");
Logic_WriteFlash(addr, 0x00ff);
Logic_ReadFlash(addr);
asm(" AMAR *(#040000h),XAR3 ");
asm(" MOV #4<<16,AC0 ");
asm(" ADD dbl(*sp(#02h)),AC0,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV T0,*AR3 ");
addr++;
}
asm(" AMAR *(#000000h),XAR3 ");
}
void Cos_load(void)
{
unsigned long addr;
unsigned long i;
addr = 0x00090000;
for(i = 0; i < 65536; i++)
{
asm(" MOV #255,T0 ");
Logic_WriteFlash(addr, 0x00ff);
Logic_ReadFlash(addr);
asm(" AMAR *(#050000h),XAR3 ");
asm(" MOV #5<<16,AC0 ");
asm(" ADD dbl(*sp(#02h)),AC0,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV T0,*AR3 ");
addr++;
}
asm(" AMAR *(#000000h),XAR3 ");
}
void MLUT_load(void)
{
unsigned long addr;
unsigned long i;
addr = 0x000a0000;
for(i = 0; i < 32768; i++)
{
asm(" MOV #255,T0 ");
Logic_WriteFlash(addr, 0x00ff);
Logic_ReadFlash(addr);
asm(" AMAR *(#060000h),XAR3 ");
asm(" MOV #6<<16,AC0 ");
asm(" ADD dbl(*sp(#02h)),AC0,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV T0,*AR3 ");
asm(" AMAR *(#080000h),XAR3 ");
asm(" MOV #8<<16,AC0 ");
asm(" ADD dbl(*sp(#02h)),AC0,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV T0,*AR3 ");
addr++;
}
asm(" AMAR *(#000000h),XAR3 ");
}
void PLUT_load(void)
{
unsigned long addr;
unsigned long i;
addr = 0x000a8000;
for(i = 0; i < 32768; i++)
{
asm(" MOV #255,T0 ");
Logic_WriteFlash(addr, 0x00ff);
Logic_ReadFlash(addr);
asm(" AMAR *(#070000h),XAR3 ");
asm(" MOV #7<<16,AC0 ");
asm(" ADD dbl(*sp(#02h)),AC0,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV T0,*AR3 ");
asm(" AMAR *(#090000h),XAR3 ");
asm(" MOV #9<<16,AC0 ");
asm(" ADD dbl(*sp(#02h)),AC0,AC0 ");
asm(" MOV AC0,AR3 ");
asm(" MOV T0,*AR3 ");
addr++;
}
asm(" AMAR *(#000000h),XAR3 ");
}
void Hsp50215_init(void)
{
asm(" AMAR *(#400014h),XAR3 ");
asm(" MOV #0,*AR3+ "); /* pucdata[20] = 0;*/
asm(" MOV #0,*AR3 "); /* pucdata[21] = 0;*/
asm(" AMAR *(#400002h),XAR3 ");
asm(" MOV #020h,*AR3+ "); /* pucdata[2] = 0x0020;*/
asm(" MOV #0h,*AR3 "); /* pucdata[3] = 0;*/
asm(" MOV #0h,*AR3+ "); /* pucdata[3] = 0;*/
asm(" MOV #01d70h,*AR3+ "); /* pucdata[4] = 0x1d70;*/
asm(" MOV #0a3d7h,*AR3 "); /* pucdata[5] = 0xa3d7;*/
asm(" AMAR *(#400010h),XAR3 ");
asm(" MOV #00ch,*AR3+ "); /* pucdata[16] = 0x000c;*/
asm(" MOV #0ffh,*AR3+ "); /* pucdata[17] = 0x00ff;*/
asm(" MOV #006h,*AR3+ "); /* pucdata[18] = 0x0006;*/
asm(" MOV #03fh,*AR3 "); /* pucdata[19] = 0x003F;*/
asm(" AMAR *(#400016h),XAR3 ");
asm(" MOV #0h,*AR3+ "); /* pucdata[22] = 0;*/
asm(" MOV #0h,*AR3 "); /* pucdata[23] = 0;*/
asm(" AMAR *(#400200h),XAR3 ");
asm(" AMAR *(#400300h),XAR4 ");
asm(" MOV #1h,*AR3+ "); /* pucdata[512]= 1;*/
asm(" MOV #1h,*AR4+ "); /* pucdata[768]= 1;*/
asm(" MOV #16,*AR3+ "); /* pucdata[513]= 16;*/
asm(" MOV #16,*AR4+ "); /* pucdata[769]= 16;*/
asm(" MOV #14,*AR3+ "); /* pucdata[514]= 14;*/
asm(" MOV #14,*AR4+ "); /* pucdata[770]= 14;*/
asm(" MOV #20,*AR3+ "); /* pucdata[515]= 20;*/
asm(" MOV #20,*AR4+ "); /* pucdata[771]= 20;*/
asm(" MOV #27,*AR3+ "); /* pucdata[516]= 27;*/
asm(" MOV #27,*AR4+ "); /* pucdata[772]= 27;*/
asm(" MOV #34,*AR3+ "); /* pucdata[517]= 34;*/
asm(" MOV #34,*AR4+ "); /* pucdata[773]= 34;*/
asm(" MOV #43,*AR3+ "); /* pucdata[518]= 43;*/
asm(" MOV #43,*AR4+ "); /* pucdata[774]= 43;*/
asm(" MOV #52,*AR3+ "); /* pucdata[519]= 52;*/
asm(" MOV #52,*AR4+ "); /* pucdata[775]= 52;*/
asm(" MOV #62,*AR3+ "); /* pucdata[520]= 62;*/
asm(" MOV #62,*AR4+ "); /* pucdata[776]= 62;*/
asm(" MOV #72,*AR3+ "); /* pucdata[521]= 72;*/
asm(" MOV #72,*AR4+ "); /* pucdata[777]= 72;*/
asm(" MOV #82,*AR3+ "); /* pucdata[522]= 82;*/
asm(" MOV #82,*AR4+ "); /* pucdata[778]= 82;*/
asm(" MOV #91,*AR3+ "); /* pucdata[523]= 91;*/
asm(" MOV #91,*AR4+ "); /* pucdata[779]= 91;*/
asm(" MOV #99,*AR3+ "); /* pucdata[524]= 99;*/
asm(" MOV #99,*AR4+ "); /* pucdata[780]= 99;*/
asm(" MOV #106,*AR3+ "); /* pucdata[525]= 106;*/
asm(" MOV #106,*AR4+ "); /* pucdata[781]= 106;*/
asm(" MOV #110,*AR3+ "); /* pucdata[526]= 110;*/
asm(" MOV #110,*AR4+ "); /* pucdata[782]= 110;*/
asm(" MOV #112,*AR3+ "); /* pucdata[527]= 112;*/
asm(" MOV #112,*AR4+ "); /* pucdata[783]= 112;*/
asm(" MOV #110,*AR3+ "); /* pucdata[512+1*16]= 110;*/
asm(" MOV #110,*AR4+ "); /* pucdata[768+1*16]= 110;*/
asm(" MOV #106,*AR3+ "); /* pucdata[513+1*16]= 106;*/
asm(" MOV #106,*AR4+ "); /* pucdata[769+1*16]= 106;*/
asm(" MOV #96,*AR3+ "); /* pucdata[514+1*16]= 110;*/
asm(" MOV #96,*AR4+ "); /* pucdata[770+1*16]= 110;*/
asm(" MOV #83,*AR3+ "); /* pucdata[515+1*16]= 83;*/
asm(" MOV #83,*AR4+ "); /* pucdata[771+1*16]= 83;*/
asm(" MOV #65,*AR3+ "); /* pucdata[516+1*16]= 65;*/
asm(" MOV #65,*AR4+ "); /* pucdata[772+1*16]= 65;*/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -