📄 card.asm
字号:
;;--------显示一屏记录(最多)------
BCardTLoad_1:
LCls
lda #IconDown&0ffh ;;zl.IconDown equ 17e10h in data.def
trb IconDown>>8 ;;zl.trb:test and reset bit
stz <CurCardOff
lda #<TextBuffor
sta <INDL
lda #>TextBuffor
sta <INDH
jsr ReadNameToBuff
inc <CurCardOff
jsr CmpCurCard_TotalCard
bcs NoNextCard
lda #<TextBuffor+20
sta <INDL
lda #>TextBuffor+20
sta <INDH
jsr ReadNameToBuff
inc <CurCardOff
jsr CmpCurCard_TotalCard
bcs NoNextCard
lda #<TextBuffor+40
sta <INDL
lda #>TextBuffor+40
sta <INDH
jsr ReadNameToBuff
inc <CurCardOff
jsr CmpCurCard_TotalCard
bcs NoNextCard
lda #<TextBuffor+60
sta <INDL
lda #>TextBuffor+60
sta <INDH
jsr ReadNameToBuff
inc <CurCardOff
jsr CmpCurCard_TotalCard
bcs NoNextCard
lda #<TextBuffor+80
sta <INDL
lda #>TextBuffor+80
sta <INDH
jsr ReadNameToBuff
inc <CurCardOff
jsr CmpCurCard_TotalCard
bcs NoNextCard
lda #IconDown&0ffh
tsb IconDown>>8
NoNextCard:
stz <CurCardOff
TLoad_2:
lda #IconUp&0ffh
tsb IconUp>>8
lda <CurCardNoL
bne Tload_4
lda <CurCardNoH
bne Tload_4
lda #IconUp&0ffh
trb IconUp>>8
Tload_4:
lda <CurCardOffBak
sta <CurCardOff
sta <FirstNameOff
jmp InvertDspItem
;;------------------StateTable-----------------------
KeyDownFunTbl:
dw SecCodeIn-1 ;;0.密码输入状态
dw EditBoxEnter-1 ;;1.名片编辑状态
dw EditSelectRelat-1 ;;2.编辑名片关系选择状态
dw Save_or_Not-1 ;;3.询问保存状态
dw ViewCardName-1 ;;4.浏览名片姓名状态
dw ViewCardCon-1 ;;5.浏览名片内容状态
dw DelRecordYN-1 ;;6.询问删除状态
dw FindSelect-1 ;;7.选择查询方式状态
dw BaiJiaXingSelect-1 ;;8.选择百家姓状态
dw EditSelectRelat-1 ;;9.选择查找名片关系状态
dw EditRenYiZi-1 ;;10.编辑任意字状态
dw RecentCards-1 ;;11.浏览常用名片状态
dw ViewFindBJXName-1 ;;12.按姓浏览名片姓名状态
dw ScanFindRelatName-1 ;;13.按关系浏览名片姓名状态
dw LoadNameCard-1 ;;14.空间满按任意键返回主菜单
dw NoCardRecord-1 ;;15.无名片记录状态
dw EditGroupKeyDown-1 ;;16.组别编辑状态 ZL.
;;------------------StateNo.Table-----------------------
SecCodeInN equ 0
EditBoxEnterN equ 1
EditSelectRelatN equ 2
Save_or_NotN equ 3
ViewCardNameN equ 4
ViewCardConN equ 5
DelRecordYNN equ 6
FindSelectN equ 7
BaiJiaXingSelectN equ 8
FindSelectRelatN equ 9
EditRenYiZiN equ 10
RecentCardsN equ 11
ViewFindBJXNameN equ 12
ScanFindRelatNameN equ 13
FlashOverWait equ 14
NoCardRecordN equ 15
groupeditkeydownN equ 16 ;ZL.
;;[ST]-----------------------------------[ST]
;; 15.无名片记录状态
;;[ST]-----------------------------------[ST]
NoCardRecord:
lda <KeyNo
cmp #EscKey
beq RetMenuMode
jmp EditNewCard
RetMenuMode: lda #Card_bakMode
sta <Mode
lda #80h
sta <EFlag
jmp ExitNoUpdate
;;[ST]-----------------------------------[ST]
;; 浏览常用名片状态
;;[ST]-----------------------------------[ST]
RecentCards:
ldy #0ffh
RecentLoop: iny
lda RecentCardsKey,y
bmi RecentLoopEnd
cmp <KeyNo
bne RecentLoop
tya
asl
tay
lda RecentCardsKeyP+1,y
pha
lda RecentCardsKeyP,y
pha
rts
RecentCardsKey:
db UpKey,DownKey,FindKey,EnterKey,EscKey,NullKey
RecentCardsKeyP:
dw RecentCardsUP-1,RecentCardsDown-1
dw ViewNameFind-1,RecentCardEnter-1
dw ViewNameFind_0-1
RecentLoopEnd: jmp ExitWithoutUpdate
;;-----Enter----
RecentCardEnter:
lda <CurCardOffBak
asl
tax
lda CurCardBuff,x
sta <CurCardNOH
lda CurCardBuff+1,x
sta <CurCardNOL
jsr DecCurCardNo
stz <CurCardOff ;;only for Curcardbuff
stz <CurCardoffBak
jmp ViewNameEnter
;;----UP------
RecentCardsUP:
lda <CurCardOffBak
beq RecentLoopEnd
dec <CurCardOffBak
jmp Tload_4
;;---Down-----
RecentCardsDown:
lda <CurCardOffBak
cmp #4
bcs RecentLoopEnd
inc
asl
tax
lda CurCardBuff+1,x
bne ?1
lda CurCardBuff,x
beq RecentLoopEnd
?1: inc <CurCardOffBak
jmp Tload_4
;;[ST]-----------------------------------[ST]
;; 按关系浏览名片姓名状态
;;[ST]-----------------------------------[ST]
ScanFindRelatName:
ldy #0ffh
?0: iny
lda ScanFindRelatNameKeyTab,y
bmi ReturnLmainU
cmp <KeyNo
bne ?0
tya
asl
tay
lda ScanFindRelatNameKeyP+1,y
pha
lda ScanFindRelatNameKeyP,y
pha
rts
ScanFindRelatNameKeyTab:
db UpKey,DownKey,pgup,pgdown,EnterKey,EscKey,NullKey
ScanFindRelatNameKeyP:
dw ScanFindRelatNameUp-1,ScanFindRelatNameDown-1
dw ScanFindRelatNameUPpg-1,ScanFindRelatNameDownpg-1
dw ScanFindRelatNameEnter-1,InitSelecRelatFind-1
ReturnLmainU: jmp ExitWithoutUpdate
;;------UpKey------
ScanFindRelatNameUp:
lda <FirstNameOff
beq ScanFindRelatNameUppg
dec <FirstNameOff
jmp InvertDspItem
;;------DownKey------
ScanFindRelatNameDown:
lda <FirstNameOff
cmp #4
bcs ?1
cmp <CurScreenTotalNum
bcs ReturnLmainU
inc <FirstNameOff
jmp InvertDspItem
?1: bra ScanFindRelatNameDownpg
;;------pgup------
ScanFindRelatNameUppg:
lda <FindScreenNo
beq ReturnLmainU
rmb0 <CardFlag
dec <FindScreenNo
jsr DspRelevantCard
jmp InvertDspItem
;;-----pgdown------
ScanFindRelatNameDownpg:
bbs0 <CardFlag,ReturnLmainU
inc <FindScreenNo
jsr DspRelevantCard
jmp InvertDspItem
;;------EnterKey------
ScanFindRelatNameEnter:
;;jsr CountCurCardNo
;;CountCurCardNo:
lda <FirstNameOff
asl
tay
lda FindCurCardNoBuff,y
sta <CurCardNoH
lda FindCurCardNoBuff+1,y
sta <CurCardNoL
jmp ViewNameEnter
;;------EscKey------
;;ScanFindRelatNameEsc:
;;jmp InitSelecRelatFind
;;[P]-----------------------[P]
;; Key Down ㄆン矪瞶祘
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -