?? myclib.msa
字號:
name cliball
public strcat //added by vicky 20040816
public strchr //added by vicky 20040816
public strcmp //added by vicky 20040816
public strcpy //added by vicky 20040816
public strcspn //added by vicky 20040816
public strlen //added by vicky 20040816
public strncat //added by vicky 20040816
public strncpy //added by vicky 20040816
public strpbrk //added by vicky 20040816
public strrchr //added by vicky 20040816
public strspn //added by vicky 20040816
public strstr //added by vicky 20040816
public strcoll //added by vicky 20050126
public strncmp //added by vicky 20050126
public memmove
public memchr //added by vicky 20050126
public memcmp //added by vicky 20050126
public memcpy //added by vicky 20050126
public memset //added by vicky 20050126
public ?C_LSH_L01
public ?UC_RSH_L01
public ?SC_RSH_L01
public ?UC_DIV_L01
public ?SC_DIV_L01
public ?UC_MOD_L01
public ?SC_MOD_L01
public ?C_FIND_SIGN_L01
public ?C_DIVMOD_L01
public ?C_MUL_L01
public ?C_LSHASG_L01
public ?UC_RSHASG_L01
public ?SC_RSHASG_L01
public ?C_MULASG_L01
public ?S_LSH_L02
public ?US_RSH_L02
public ?SS_RSH_L02
public ?US_DIV_L02
public ?SS_DIV_L02
public ?US_MOD_L02
public ?SS_MOD_L02
public ?S_FIND_SIGN_L02
public ?S_DIVMOD_L02
public ?S_MUL_L02
public ?SS_CMP_L02 //added by vicky 20040816
public ?S_LSHASG_L02
public ?US_RSHASG_L02
public ?SS_RSHASG_L02
public ?SS_MODASG_L02
public ?US_MODASG_L02
public ?SS_DIVASG_L02
public ?US_DIVASG_L02
public ?S_MULASG_L02
public ?L_LSH_L03
public ?UL_RSH_L03
public ?SL_RSH_L03
public ?L_MUL_L03
public ?UL_DIV_L03
public ?SL_DIV_L03
public ?UL_MOD_L03
public ?SL_MOD_L03
public ?L_FIND_SIGN_L03
public ?L_DIVMOD_L03
public ?L_AND_L03 //added by vicky 20040816
public ?L_OR_L03 //added by vicky 20040816
public ?L_XOR_L03 //added by vicky 20040816
public ?SL_CMP_L03 //added by vicky 20040816
public ?L_INC_L03
public ?L_DEC_L03 //added by vicky 20040816
public ?L_NOT_L03
public ?L_NEG_L03 //added by vicky 20040816
public ?L_MULASG_L03
public ?UL_DIVASG_L03
public ?SL_DIVASG_L03
public ?UL_MODASG_L03
public ?SL_MODASG_L03
public ?L_END_MULDIVASG_L03
public ?L_ADDASG_L03
public ?L_SUBASG_L03
public ?L_ANDASG_L03 //added by vicky 20040816
public ?L_ORASG_L03 //added by vicky 20040816
public ?L_XORASG_L03 //added by vicky 20040816
public ?L_LSHASG_L03
public ?UL_RSHASG_L03
public ?SL_RSHASG_L03
public ?L_NOTASG_L03 //added by vicky 20040816
public ?L_NEGASG_L03 //added by vicky 20040816
public ?L_INCASG_L03 //added by vicky 20040816
public ?L_DECASG_L03 //added by vicky 20040816
public ?L_END_ASG_L03
//switch
public ?C_S_SWITCH_L06
public ?S_S_SWITCH_L06 //added by vicky 20040816
public ?L_S_SWITCH_L06 //added by vicky 20040816
public ?S_SWITCH_END_L06 //added by vicky 20040816
public ?C_V_SWITCH_L06
public ?S_V_SWITCH_L06 //added by vicky 20040816
public ?L_V_SWITCH_L06 //added by vicky 20040816
public ?V_SWITCH_END_L06
public ?ENT_PARM_DIRECT_L09 //added by vicky 20040816
public ?ENT_AUTO_DIRECT_L09 //added by vicky 20040816
public ?LEAVE_DIRECT_L09 //added by vicky 20040816
public ?MONITOR_LEAVE_IX_L09
public ?MONITOR_LEAVE_IX_PA_L09
public ?BF_UC_MODASG_L10
public ?BF_SC_EXT_L10
public ?BF_UC_LD_SHIFT_DOWN_L10
public ?BF_C_SHIFT_UP_L10
public ?BF_C_RET_VAL_L10
public ?BF_SS_MODASG_L10
public ?BF_SS_EXT_L10
public ?BF_MASKED_LD_L10
public ?BF_SS_LD_SHIFT_DOWN_L10
public ?BF_US_LD_SHIFT_DOWN_L10
public ?BF_S_SHIFT_UP_L10
public ?BF_MASKED_ST_L10
public ?BF_S_RET_VAL_L10
public ?STRCPY_L11
public ?STRLEN_L11 //added by vicky 20040816
public ?STRCAT_L11 //added by vicky 20040816
public ?MEMSET_L11
public ?MEMCMP_L11 //added by vicky 20040816
public ?STRCMP_L11 //added by vicky 20040816
public ?STRCHR_L11 //added by vicky 20040816
public itoa1 //added by vicky 20040816
public itoa2 //added by vicky 20040816
public itoa3 //added by vicky 20040816
public itoa4 //added by vicky 20040816
public delay //added by vicky 20040816
rseg MATHLIB
/******************************************************************************/
strcat: //----------------------//
call ?ENT_PARM_DIRECT_L09
ld e,c
ld d,b
ld l,(ix+2)
ld h,(ix+3)
call ?STRCAT_L11
jp ?LEAVE_DIRECT_L09
/******************************************************************************/
?SC_RSH_L01: //----------------------//
inc b
dec b
ret z
SC_RSH_L01_0
sra a
djnz SC_RSH_L01_0
ret
/******************************************************************************/
?SC_RSHASG_L01: //----------------------//
ld a, (hl)
call ?SC_RSH_L01
ld (hl),a
ret
/******************************************************************************/
?SS_RSH_L02: //----------------------//
inc b
dec b
ret z
SS_RSH_L02_0
sra d
rr e
djnz SS_RSH_L02_0
ret
/******************************************************************************/
?SS_RSHASG_L02 //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
call ?SS_RSH_L02
ld (hl),d
dec hl
ld (hl),e
ret
/******************************************************************************/
?SL_RSH_L03: //----------------------//
or a
ret z
SL_RSH_L03_0
sra b
rr c
rr h
rr l
dec a
jr nz,SL_RSH_L03_0
ret
/******************************************************************************/
?SL_RSHASG_L03: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?SL_RSH_L03
jp ?L_END_ASG_L03
/******************************************************************************/
?C_LSH_L01: //----------------------//
inc b
dec b
ret z
C_LSH_L01_0
add a,a
djnz C_LSH_L01_0
ret
/******************************************************************************/
?UC_RSH_L01: //----------------------//
inc b
dec b
ret z
UC_RSH_L01_0
srl a
djnz UC_RSH_L01_0
ret
/******************************************************************************/
?C_MUL_L01: //----------------------//
push bc
ld c,a
xor a
C_MUL_L01_0
srl b
jr c,C_MUL_L01_1
jr z,C_MUL_L01_2
sla c
jr C_MUL_L01_0
C_MUL_L01_1
add a,c
sla c
jr C_MUL_L01_0
C_MUL_L01_2
pop bc
ret
/******************************************************************************/
?C_LSHASG_L01: //----------------------//
ld a,(hl)
call ?C_LSH_L01
ld (hl),a
ret
/******************************************************************************/
?UC_RSHASG_L01: //----------------------//
ld a,(hl)
call ?UC_RSH_L01
ld (hl),a
ret
/******************************************************************************/
?C_MULASG_L01: //----------------------//
push bc
ld b,a
ld a,(hl)
call ?C_MUL_L01
ld (hl),a
pop bc
ret
/******************************************************************************/
?S_LSH_L02: //----------------------//
inc b
dec b
ret z
ex de,hl
S_LSH_L02_0:
add hl,hl
djnz S_LSH_L02_0
ex de,hl
ret
/******************************************************************************/
?US_RSH_L02: //----------------------//
inc b
dec b
ret z
US_RSH_L02_0
srl d
rr e
djnz US_RSH_L02_0
ret
/******************************************************************************/
?L_ADDASG_L03: //----------------------//
push af
ld a,(hl)
add a,e
ld (hl),a
ld e,a
inc hl
ld a,(hl)
adc a,d
ld (hl),a
ld d,a
inc hl
ld a,(hl)
adc a,c
ld (hl),a
ld c,a
inc hl
ld a,(hl)
adc a,b
ld (hl),a
ld b,a
dec hl
dec hl
dec hl
pop af
ret
/******************************************************************************/
?L_SUBASG_L03: //----------------------//
push af
ld a,(hl)
sub e
ld (hl),a
ld e,a
inc hl
ld a,(hl)
sbc a,d
ld (hl),a
ld d,a
inc hl
ld a,(hl)
sbc a,c
ld (hl),a
ld c,a
inc hl
ld a,(hl)
sbc a,b
ld (hl),a
ld b,a
dec hl
dec hl
dec hl
pop af
ret
/******************************************************************************/
?L_LSHASG_L03: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?L_LSH_L03
jp ?L_END_ASG_L03
/******************************************************************************/
?UL_RSHASG_L03: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?UL_RSH_L03
jp ?L_END_ASG_L03
/******************************************************************************/
?L_END_ASG_L03: //----------------------//
ex de,hl
ld (hl),b
dec hl
ld (hl),c
dec hl
ld (hl),d
dec hl
ld (hl),e
ret
/******************************************************************************/
?S_MUL_L02: //----------------------//
push af
push bc
push hl
ld hl,0
S_MUL_L02_L0:
srl b
rr c
jr c,S_MUL_L02_L1
ld a,b
or c
jr z,S_MUL_L02_L2
sla e
rl d
jr S_MUL_L02_L0
S_MUL_L02_L1
add hl,de
sla e
rl d
jr S_MUL_L02_L0
S_MUL_L02_L2:
ex de,hl
pop hl
pop bc
pop af
ret
/******************************************************************************/
?S_LSHASG_L02: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
call ?S_LSH_L02
ld (hl),d
dec hl
ld (hl),e
ret
/******************************************************************************/
?US_RSHASG_L02 //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
call ?US_RSH_L02
ld (hl),d
dec hl
ld (hl),e
ret
/******************************************************************************/
?S_MULASG_L02: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
call ?S_MUL_L02
ld (hl),d
dec hl
ld (hl),e
ret
/******************************************************************************/
?L_LSH_L03: //----------------------//
or a
L_LSH_L03_L0:
ret z
cp 8
jr c,L_LSH_L03_L1
ld b,c
ld c,h
ld h,l
ld l,0
sub 8
jr L_LSH_L03_L0
L_LSH_L03_L1:
add hl,hl
rl c
rl b
dec a
jr nz,L_LSH_L03_L1
ret
/******************************************************************************/
?L_MUL_L03: //----------------------//
ex (sp),hl
push de
push ix
ld ix,0
add ix,sp
ld d,(ix+9)
ld (ix+9),h
ld e,(ix+8)
ld (ix+8),l
push de
push bc
push af
ld hl,0
ld de,0
ld b,0x20
ld c,(ix-3)
L_MUL_L03_0
srl (ix-1)
rr (ix-2)
rr (ix+7)
rr (ix+6)
jr nc,L_MUL_L03_1
ld a,l
add a,(ix+4)
ld l,a
ld a,h
adc a,(ix+5)
ld h,a
ld a,e
adc a,(ix-4)
ld e,a
ld a,d
adc a,c
ld d,a
L_MUL_L03_1
sla (ix+4)
rl (ix+5)
rl (ix-4)
rl c
djnz L_MUL_L03_0
ld (ix-3),c
ld b,d
ld c,e
pop af
pop de
pop de
pop ix
pop de
inc sp
inc sp
inc sp
inc sp
ret
/******************************************************************************/
?L_MULASG_L03: //----------------------//
push bc
push de
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?L_MUL_L03
jp ?L_END_MULDIVASG_L03
/******************************************************************************/
?L_END_MULDIVASG_L03: //----------------------//
ex de,hl
ld (hl),b
dec hl
ld (hl),c
dec hl
ld (hl),d
dec hl
ld (hl),e
ret
/******************************************************************************/
?UL_RSH_L03: //----------------------//
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -