📄 parity.dsp
字号:
/************************************************************************/
/* $$01/10/2000 checked parity module data variables and function */
/* $$01/16/2001 modified and printed,Author: Jason.wang (zhigang wang) */
/* $$01/16/2001 Email: wzg119@yeah.net, BP: 86+02195950-161452 */
/* $$01/16/2001 This modlue is not optimized! should be test on Emulator*/
/************************************************************************/
.MODULE/SEG=App_PM ParityCheck;
#include "ld8a.inc"
/*************************************************************************
* Parity_pitch - compute parity bit for first 6 MSBs *
* $$01/10/2000 used in encoder and decoder *
* Calling Parameters *
* AR=index for which parity to compute *
* Return Values *
* AR=parity bit (XOR of 6 MSB bits) *
* Altered Registers: CNTR,SR1,SR0,SI,AR,AF *
* Computation Time : 23 cycles *
**************************************************************************/
.ENTRY Parity_Pitch;
Parity_Pitch: //CNTR=6;
SR=LSHIFT AR BY -1(LO);
AR=PASS H#0001;
CNTR=6;
DO parity_sum UNTIL CE;
SR=LSHIFT SR0 BY -1(LO);
AF=SR0 AND H#0001;
parity_sum: AR=AR+AF;
AR=AR AND H#0001;
RTS;
/*************************************************************************
* check_parity_pitch - check parity of index with transmitted parity *
* $$01/10/2000 used in encoder and decoder *
* Calling Parameters *
* SI=index of parameter *
* AY0=parity bit *
* Return Values *
* AR=0 : no error, 1: error *
* Altered Registers: CNTR,SR1,SR0,SI,AR,AF,AY0 *
* Computation Time : 24 cycles *
*************************************************************************/
.ENTRY Check_Parity_Pitch;
Check_Parity_Pitch:
// CNTR=6;
AR=PASS H#0001;
SR=LSHIFT SI BY -1(LO);
CNTR=6;
DO check_loop UNTIL CE;
SR=LSHIFT SR0 BY -1(LO);
AF=SR0 AND H#0001;
check_loop: AR=AR+AF;
AR=AR+AY0;
AR=AR AND H#0001;
RTS;
/**********************************************************************/
.ENDMOD;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -