📄 myclib.msa
字号:
STRCMP_L11_1
rr h
//(281) ld hl,0
//(284) ld de,1ccbh
pop de
pop af
ret
/******************************************************************************/
?SL_CMP_L03: //----------------------//
ex de,hl
ex (sp),hl
push de
push bc
push af
push de
push bc
ex de,hl
ld hl,0fh
add hl,sp
ld a,(hl)
xor 80h
ld b,a
ld (hl),d
dec hl
ld c,(hl)
ld (hl),e
ex de,hl
pop hl
ld a,h
xor 80h
ld h,a
sbc hl,bc
pop hl
jr nz,SL_CMP_L03_0
ex de,hl
dec hl
ld a,(hl)
dec hl
ld l,(hl)
ld h,a
ex de,hl
and a
sbc hl,de
SL_CMP_L03_0
pop bc
ld a,b
pop bc
pop hl
pop de
inc sp
inc sp
ret
/******************************************************************************/
?L_DECASG_L03: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?L_DEC_L03
jp ?L_END_ASG_L03
/******************************************************************************/
?STRCAT_L11: //----------------------//
push hl
push de
push bc
push af
xor a
ld b,a
ld c,a
cpir
dec hl
ex de,hl
STRCAT_L11_0
cp (hl)
ldi
jr nz,STRCAT_L11_0
pop af
pop bc
pop de
pop hl
ret
/******************************************************************************/
?STRLEN_L11: //----------------------//
push bc
push af
xor a
ld b,a
ld c,a
cpir
ld hl,0ffffh
sbc hl,bc
pop af
pop bc
ret
/******************************************************************************/
?STRCHR_L11: //----------------------//
ld a,(hl)
cp e
ret z
or a
inc hl
jr nz,?STRCHR_L11
ld hl,0
ret
/******************************************************************************/
?SS_CMP_L02: //----------------------//
push bc
push hl
push af
ld a,h
xor 80h
ld h,a
ld a,b
xor 80h
ld b,a
pop af
and a
sbc hl,bc
pop hl
pop bc
ret
/******************************************************************************/
?L_AND_L03: //----------------------//
ex de,hl
ex (sp),hl
push af
push hl
ld hl,6
add hl,sp
ld a,(hl)
and e
ld (hl),a
inc hl
ld a,(hl)
and d
ld (hl),a
pop de
inc hl
ld a,(hl)
ld (hl),e
and c
ld c,a
inc hl
ld a,(hl)
ld (hl),d
and b
ld b,a
pop af
pop de
pop hl
ret
/******************************************************************************/
?L_OR_L03: //----------------------//
ex de,hl
ex (sp),hl
push af
push hl
ld hl,6
add hl,sp
ld a,(hl)
or e
ld (hl),a
inc hl
ld a,(hl)
or d
ld (hl),a
pop de
inc hl
ld a,(hl)
ld (hl),e
or c
ld c,a
inc hl
ld a,(hl)
ld (hl),d
or b
ld b,a
pop af
pop de
pop hl
ret
/******************************************************************************/
?L_XOR_L03: //----------------------//
ex de,hl
ex (sp),hl
push af
push hl
ld hl,6
add hl,sp
ld a,(hl)
xor e
ld (hl),a
inc hl
ld a,(hl)
xor d
ld (hl),a
pop de
inc hl
ld a,(hl)
ld (hl),e
xor c
ld c,a
inc hl
ld a,(hl)
ld (hl),d
xor b
ld b,a
pop af
pop de
pop hl
ret
/******************************************************************************/
?L_NEG_L03: //----------------------//
push af
xor a
sub l
ld l,a
ld a,0
sbc a,h
ld h,a
ld a,0
sbc a,c
ld c,a
ld a,0
sbc a,b
ld b,a
pop af
ret
/******************************************************************************/
?L_ANDASG_L03: //----------------------//
push af
ld a,(hl)
and e
ld (hl),a
ld e,a
inc hl
ld a,(hl)
and d
ld (hl),a
ld d,a
inc hl
ld a,(hl)
and c
ld (hl),a
ld c,a
inc hl
ld a,(hl)
and b
ld (hl),a
ld b,a
dec hl
dec hl
dec hl
pop af
ret
/******************************************************************************/
?L_ORASG_L03: //----------------------//
push af
ld a,(hl)
or e
ld (hl),a
ld e,a
inc hl
ld a,(hl)
or d
ld (hl),a
ld d,a
inc hl
ld a,(hl)
or c
ld (hl),a
ld c,a
inc hl
ld a,(hl)
or b
ld (hl),a
ld b,a
dec hl
dec hl
dec hl
pop af
ret
/******************************************************************************/
?L_XORASG_L03: //----------------------//
push af
ld a,(hl)
xor e
ld (hl),a
ld e,a
inc hl
ld a,(hl)
xor d
ld (hl),a
ld d,a
inc hl
ld a,(hl)
xor c
ld (hl),a
ld c,a
inc hl
ld a,(hl)
xor b
ld (hl),a
ld b,a
dec hl
dec hl
dec hl
pop af
ret
/******************************************************************************/
?L_NOTASG_L03: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?L_NOT_L03
jp ?L_END_ASG_L03
/******************************************************************************/
?L_NEGASG_L03: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?L_NEG_L03
JP ?L_END_ASG_L03
/******************************************************************************/
?L_INCASG_L03: //----------------------//
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ld c,(hl)
inc hl
ld b,(hl)
ex de,hl
call ?L_INC_L03
jp ?L_END_ASG_L03
/******************************************************************************/
?L_S_SWITCH_L06: //----------------------//
ex (sp),hl
push af
push de
push bc
ld a,e
sub (hl)
inc hl
ld e,a
ld a,d
sbc a,(hl)
inc hl
ld d,a
ld a,c
sbc a,(hl)
inc hl
ld c,a
ld a,b
sbc a,(hl)
inc hl
ld b,a
ld a,e
sub (hl)
inc hl
ld a,d
sbc a,(hl)
inc hl
ld a,c
sbc a,0
ld a,b
sbc a,0
pop bc
jp ?S_SWITCH_END_L06
/******************************************************************************/
?L_V_SWITCH_L06: //----------------------//
ex (sp),hl
push af
push bc
push ix
ld ix,0
add ix,sp
ld c,(hl)
inc hl
ld b,(hl)
jr L_V_SWITCH_L06_1
L_V_SWITCH_L06_0
inc hl
inc hl
L_V_SWITCH_L06_1
inc hl
ld a,b
or c
jr z,L_V_SWITCH_L06_2
dec bc
ld a,e
sub (hl)
inc hl
jr nz,L_V_SWITCH_L06_0
ld a,d
sub (hl)
jr nz,L_V_SWITCH_L06_0
inc hl
ld a,(ix+2)
sub (hl)
inc hl
jr nz,L_V_SWITCH_L06_1
ld a,(ix+3)
sub (hl)
jr nz,L_V_SWITCH_L06_1
inc hl
inc hl
inc hl
L_V_SWITCH_L06_2
add hl,bc
add hl,bc
add hl,bc
add hl,bc
pop ix
jp ?V_SWITCH_END_L06
/******************************************************************************/
strchr: //----------------------//
call ?ENT_PARM_DIRECT_L09
ld e,c
ld l,(ix+2)
ld h,d
call ?STRCHR_L11
jp ?LEAVE_DIRECT_L09
/******************************************************************************/
strcmp: //----------------------//
call ?ENT_PARM_DIRECT_L09
ld l,c
ld h,b
call ?STRCMP_L11
jp ?LEAVE_DIRECT_L09
/******************************************************************************/
strcpy: //----------------------//
call ?ENT_PARM_DIRECT_L09
ld e,c
ld d,b
ld l,(ix+2)
ld h,(ix+3)
call ?STRCPY_L11
jp ?LEAVE_DIRECT_L09
/******************************************************************************/
strcspn: //----------------------//
call ?ENT_AUTO_DIRECT_L09
defw 0000h
push iy
ld de,0
strcspn_0
ld l,(ix+2)
ld h,(ix+3)
xor a
or (hl)
jr z,strcspn_4
ld l,(ix+4)
ld h,(ix+5)
push hl
pop iy
strcspn_1
xor a
or (iy+0)
jr z,strcspn_2
ld l,(ix+2)
ld h,(ix+3)
ld a,(iy+0)
cp (hl)
inc iy
jr nz,strcspn_1
jr strcspn_4
strcspn_2
inc (ix+2)
jr nz,strcspn_3
inc (ix+3)
strcspn_3
inc de
jr strcspn_0
strcspn_4
ex de,hl
pop iy
jp ?LEAVE_DIRECT_L09
/******************************************************************************/
?ENT_AUTO_DIRECT_L09: //----------------------//
pop hl
push bc
push de
push ix
ld ix,0
add ix,sp
ld e,(hl)
inc hl
ld d,(hl)
inc hl
ex de,hl
add hl,sp
ld sp,hl
ex de,hl
jp (hl)
/******************************************************************************/
strlen: //----------------------//
call ?ENT_PARM_DIRECT_L09
ex de,hl
call ?STRLEN_L11
jp ?LEAVE_DIRECT_L09
/******************************************************************************/
strncat: //----------------------//
push iy
push ix
push af
push de
pop ix
push bc
pop iy
ld hl,0
add hl,sp
ld (hl),e
inc hl
ld (hl),d
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -