📄 card.asm
字号:
; ***************************************************************************
; * Project : Electronic Dictionary *
; * Date : 2003.9 *
; * File Name : CARD.ASM *
; ***************************************************************************
;;=====================================================
;; ***** RL268 dictionary *****
;; -----------------------------
;; --------------------------------------
;; RL electronic Co., Ltd.
;; ---------------------------
;; Version 1.00 Date : 1/03
;; --------------------------
;; Written by : Jetty
;; -----------------------
;; MCU : ST2202 ( Sitronix) ( 3 Vol. )
;;============================================================
pw 128 ;;LST's page width = 128 character
case off ;;Don't care Upper-case or lower-case
externs on ;;Make all labels public.
include st2202.def ;; Include ST2100 I/O define.
include Data.def ;; Data RAM define.
include Bios.h ;;some macro define and some"*help" define
include Graphics.h ;;display macro
include Graph.def ;;speech and melody define
include KeyDef.def ;;key define and 十大属性按键定义
include DataBank.def ;;define of rom bank
INCLUDE ST2202.MAC ;;st2202 macro
public bCardEvent ;;card event (label)
public CardEvent ;;card event (label)
;;public cardbank
public SearchSpareDir ;;search spare dir
public SearchSpareData ;;search spare data
public FillDirName ;;文件目录登记
public PutFatFlag ;;写文件相应的FAT
public PutDataToFlash ;;写文件到相应的Flash Data 区
public calstartaddr ;;calculate Write Flash Data StartAddr
;;
public ReadCardNo ;;Search And Get Total Files Of The Class
public ToFindDir ;;Find Dir Addr And Read Some Value
public ToFindDataINS ;;calculate Write Flash Data StartAddr(应该和calstartaddr合并)
public Write1kDataToFlash;;Write 1k Data To Flash from FData
public Read1kDataToRam ;;Read 1k Data To FData from Flash
public EraseFlashBuffor;;Erase Flash Buffor
public CmpCurCard_TotalCard;;比较(CurCardNo+CurCardOff)与(TotalCardNo)的大小
public DeleteCurRecord ;;Delete Current Record
public ShowNameCard ;;
public CopyDataToInputBuff;;读某一记录的内容到InputBuff
;;public InitEndPoint ;;
public initeditcardbox ;;
public CountEdit ;;Get ItemTotal & EditCurLen From InputBuff
public BCardTLoad_1 ;;显示一屏记录
public CharPrepareOK ;;
public editDelKey ;;\
public editrightkey ;; |
public editleftkey ;; |key treat
public UpKeyP ;; |
public DownKeyP ;;/
public cardname ;;
public downviewfun ;;\浏览名片内容状态
public upviewfun ;;/
public viewnamedown ;;\
public viewnameup ;; |浏览名片姓名状态
public ViewNameUpPage ;; |
public ViewNameDownPage;;/
public INCINS ;;\
public INCIND ;; |16 bit add or dec subroutine
public DECINS ;; |
public DECIND ;;/
public DirAddrH ;;\
public DirAddrL ;; |
public DirStructSize ;; |
public FatAddrH ;; |Constant
public FatAddrL ;; |
public FlashBuffH ;; |
public FatEndPointH ;;/
public DeletHintMsg ;;\
public SaveHintMsg ;; |
public NoRecordMessage ;; |message
public DeletConfirmMsg ;; |
public saveornotmsg ;;/
public ShowEditText ;;Show InputBuff
public GetItemHeadLen ;;Get Item head Length
public LoadScanF ;;
public EditKeyDown_6 ;;
public DelayTimer ;;delay time (instruction mode)
public InitEditRenYiZi ;;初始显示化任意字查找
public EditKeypress ;;
public FindMatch ;;查找匹配子程序
public ReinputMsg ;;
;;--Constant Public--
public EditItemNum ;;\
public E_MailItem ;; |Constant
public TotalHeadLen ;; |
public Selectrelathelp ;;/
;;================================================================
;; Ram define
;;================================================================
;;-- CData equ 080h ;; Common data area start location.
;;ram from gamestate to FindRelateBuff can only find in card.asm zl.
GameState equ CData+0 ;indicate state
CardFlag equ CData+1 ;
upordownselect equ CData+33 ;;zl.
RelatItemDir equ CData+34 ;
FindBuffAddrL equ Cdata+35 ;
FindBuffAddrH equ Cdata+36 ;
FindScreenNo equ Cdata+37 ;
CurScreenTotalNum equ Cdata+38 ;
TempRelatItem equ CData+39 ;
FindRelateBuff equ 0700h ;;temp define buff
;;4:------->1: Amend card 0: New card
;--------------------------------------------------------------
globals on ;; Public RAM.
;--------------------------------------------------------------
RelatItem equ CData+2
SectorOff equ CData+3
EndPoint equ CData+8
EndPointL equ CData+8
EndPointH equ CData+9
TempCount equ CData+10
TempCount1 equ CData+11
TotalCardNoL equ CData+12
TotalCardNoH equ CData+13
SectorNo equ CData+14
FileLengthL equ CData+15
FileLengthH equ CData+16
FatFlag equ CData+17
CurCardNoL equ CData+18
CurCardNoH equ CData+19
CurCardOff equ CData+20
CurCardOffBak equ CData+21
NameBuffL equ CData+22
NameBuffH equ CData+23
FirstNameNoL equ CData+24
FirstNameNoH equ CData+25
TempCount3 equ CData+26
TempCount4 equ CData+27
FirstNameOff equ CData+28
TempBak1 equ CData+29
TempBak2 equ CData+30
FileClase equ CData+31
StartNamePos equ CData+32
;;============================================================
;;------Edit Variable Define----
;;============================================================
ItemTotal equ CData+40+1 ;;from 0 start
ItemHeadLen equ CData+40+2
LastCurx equ CData+40+3
LastCurY equ CData+40+4
EditTextL equ CData+40+5
EditTextH equ CData+40+6
EditEndFg equ CData+40+7
DspLineNo equ CData+40+8
EditItemNo equ CData+40+9
EditLen equ CData+40+10 ;;入口为文件长度(from 1 start)
EditLenL equ CData+40+10 ;;进入后变为BUFF结束点(from 1 start)
EditLenH equ CData+40+11
EditCurLen equ CData+40+12 ;;Current file Length(from 1 start)
EditCurLenL equ CData+40+12 ;;当前BUFF结束点(from 1 start)
EditCurLenH equ CData+40+13
BuffCurLocat equ CData+40+14 ;;Current Cursor Location
BuffCurLocatL equ CData+40+14
BuffCurLocatH equ CData+40+15
keynobak equ CData+40+16
;;============================================================
;;HData equ 0ebh ; Help register for help mode.
Itemlan equ NData ;;280h 16个buffor
ItemHeadLenTab equ NData+10h ;;16个buffor
NameBuff3 equ NData+30h ;;Temp value
SaveCurCard equ NData+20h
CurCardBuff equ 260h ;;~~269h 常用一屏名片BUFFOR 10个
;----------------------------------------------------------------
globals off ;;Private RAM
;----------------------------------------------------------------
;;借用编辑器的变量:作常用名片,关系类查询等
FindCurCardNoBuff equ CData+40+1 ;;Save CurCardNo for 常用名片
;;CData+40+1~~~CData+40+10 总共一屏
;;================================================================
;; Constant define
;;================================================================
DirAddrH equ 80h
DirAddrL equ 90h
FatAddrH equ 80h
FatAddrL equ 10h ;48h
FatEndPointH equ 0b0h
DirStructSize equ 8
FlashBuffH equ 0b0h
EditItemNum equ 13 ;;from 0 start
EditTotalLenH equ 01h
EditTotalLenL equ 20h
E_MailItem equ 7
CardItem equ 13 ;;from 0 start
RelateItem equ 1 ;;temp from 0 start
TotalHeadLen equ 86
CardInitBuffLen equ 104 ;86+14+4(4为关系)
;;=====================================================
;; Event vector table.
DS0 .SECTION ;; Data ROM location 10000h(Bank#2)
include bookbmp.asm
; include zhang.asm
;;=====================================================
;;[V]-----------------------------------------------[V]
;; Event process vector.
;;[V]-----------------------------------------------[V]
BCardEvent:
CardEvent:
dw CardBank ;;
dw THSec-1 ;; 半秒钟事件
dw TSec-1 ;; 一秒钟事件
dw TMin-1 ;; 一分钟事件
dw TKeyDown-1 ;; Key Down 事件 ;not blank zl.
dw TKeyUp-1 ;; Key Up 事件
dw TTimer-1 ;; Timer 事件
dw TKeyPress-1 ;; Key press 事件 ;not blank zl.
dw TLoad-1 ;; Enter Mode 事件
dw THelpRet-1 ;; Return from help mode.
CardName: db '姓名: ',0dh
CardRelate: db '组别: ',0dh
CardOff: db '电话: ',0dh ;;
CardFax: db '传真: ',0dh ;;
CardMob: db '手机: ',0dh ;;
CardHom: db '宅电: ',0dh ;;
CardCal: db '传呼: ',0dh ;;
CardEML: db 'E-MAIL: ',0dh ;;E-mail
Corp: db '单位: ',0dh
CardAdd: db '地址: ',0dh ;;
CardCod: db '邮编: ',0dh ;;
QICQ: db 'QICQ: ',0dh
Birthday: db '生日: ',0dh
CardMar: db '备注: ',0
MustInputName: db 0dh
db ' 必须输入姓名',0
DeletConfirmMsg: db 0dh,' 确定删除吗?'
db 0dh,' 确定Y, 返回N',0
SaveHintMsg: db 0dh,0dh
db ' 存储中 ...',0
DeletHintMsg: db 0dh,0dh,' 删除中 ...',0
NoRecordMessage:
db 0dh,' 无记录',0
CardBeenDelete: db '近访名片已被删除!',0
SaveOrNotMsg: db 0dh,0dh,' 存储吗?(Y/N)',0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -