📄 net.asm
字号:
; ***************************************************************************
; * Project : Electronic Dictionary *
; * Date : 2003.9 *
; * File Name : NET.ASM *
; ***************************************************************************
pw 128
case off
externs on
include ST2202.def ; Include ST2100 I/O define.
include Data.def ; Data RAM define.
include Bios.h
include Graphics.h
include Keydef.def
include Graph.def
public NetMenuSub1
public ForKeChenBiao
public UpLibView
public DownLibView
public FlashOver
public net_Load_0
public ReceiveDataSuc
public YYZDExist
public LessTenMsg
public DownLoadData
public DelGameRecord
public NetEvent
Sys_TryTime equ CData+24
Sys_PackLen equ CData+2
Sys_PackLenL equ CData+2
Sys_PackLenH equ CData+3
Sys_CheckSumL equ CData+4
Sys_CheckSumH equ CData+5
Sys_FileClass equ CData+6
Sys_FileLengthL equ CData+7
Sys_FileLengthH equ CData+8
JudgeSys_CheckSumL equ CData+22
JudgeSys_CheckSumH equ CData+23
LibViewState equ 10
FileHeadLen equ 9
;=====================================================
; >>> Data RAM define <<<
; ---------------
DelayTime equ CData+40+1
GameState equ CData+40+2
PackageDataLen Equ CData+40+3
tempy equ CData+40+4
NetFlag equ CData+40+5
;0: 1--->Enter init state
;1: 1--->单条上传 0--->全部上传
;2: 1--->Delete state
;3: 1--->有记录可供上传 (全部上传时用)
StartINSH Equ CData+40+6
StopINSH Equ CData+40+7
ClrStartINDH Equ CData+40+8
ClrDataLen_4K Equ CData+40+9
FatBuffor Equ CData+50 ;8 byte
FatDataLenH Equ Cdata+50+5 ;+4 Error!!!!!!!02-9-26 16:41
FatSectorNO Equ CData+50+6
SaveReadyAck equ NData
CheckSumL Equ NData+1
CheckSumH Equ NData+2
DataClass Equ NData+3
DataNameL Equ NData+4
DataNameH Equ NData+5
DataLenL Equ NData+6
DataLenH Equ NData+7
Relation Equ NData+8
BINDL Equ NData+9
BINDH Equ NData+10
BINSL Equ NData+11
BINSH Equ NData+12
SendErr_EraseFlag Equ NData+15
PackageLenL Equ NData+16
Try Equ NData+18
ReceiveGameRightFlag Equ NData+19
GameLen_Count4k Equ NData+20
BGameLen_Count4k equ NData+23
BGameSectorNo equ NData+24
GameSectorNo Equ NData+21
LinkCommand equ 80h
HeadAck_92H equ 92h
ReadyAck_A5H equ a5h
ReSendAck_A5H equ a5h
ReadyAck_96H equ 96H
DataFirstByt_99H equ 99H
OverFlag Equ 06cH
FullAck Equ 0b2h
MenuLibData .section
NetMenu: ;NET 主菜单
dw 0
db 5-1
db '1.下载',0,0,3
db '2.上传',0,0c0h,0
dw PersonalDocumentB
db '3.已下载内容',0,0,0
dw NetMenuSub1
db '4.系统升级',0,0,4
; db '5.双机互传',0,0,0
; dw NetMenuSub3
NetMenuSub1: ;1.网络资源
dw NetMenu
db 2
db '1.资料',0,0,1
db '2.游戏',0,0,2
;db '3.英英词典 ',0,0,9
PersonalDocumentB: ;3.上传数据
dw NetMenu
db 3
db '1.上传名片',0,0,17
db '2.上传备忘',0,0,18
db '3.上传理财',0,0,19
; db '1.上传名片',0,0,0
; dw CardBackMenuB
; db '2.上传备忘',0,0,0
; dw MemoBackMenuB
; db '3.上传理财',0,0,0
; dw CountBackMenuB
;CardBackMenuB:
; dw PersonalDocumentB
; db 2
; db '1.选择备份',0,0,5
; db '2.全部备份',0,0,17
;MemoBackMenuB:
; dw PersonalDocumentB
; db 2
; db '1.选择备份',0,0,6
; db '2.全部备份',0,0,18
;CountBackMenuB:
; dw PersonalDocumentB
; db 2
; db '1.选择备份',0,0,7
; db '2.全部备份',0,0,19
;NetMenuSub3: ;3.双机互传
; dw NetMenu
; db 2
; db '1.互传发送',0,c0h,0
; dw PersonalDocument
; db '2.互传接收',0,0,10
;PersonalDocument:
; dw NetMenuSub3
; db 3
; db '1.名片',0,0,13
; db '2.备忘',0,0,14
; db '3.理财',0,0,15
;=====================================================
; Event vector table.
DS0 .SECTION
;[V]-----------------------------------------------[V]
; Event process vector.
;[V]-----------------------------------------------[V]
NetEvent:
dw NetBank
dw THSec-1 ;
dw TSec-1 ;
dw TMin-1 ;
dw TKeyDown-1 ; Key Down
dw TKeyUp-1 ; Key Up
dw TTimer-1 ; Timer
dw TKeyPress-1 ; Key press
dw TLoad-1 ; Load
dw TLoad-1 ; Help
LessTenMsg: db 0dh,'行程提醒不能多于10个.',0
ConnectPCMsg: db 0dh,' 正在寻找',0dh,' 通信对象...',0
ReceiveDataSuc: db 0dh,0dh,' 数据下载完毕',0
ReceivingMsg: db 0dh,0dh,' 数据传输中..',0
UpLoadOver: db 0dh,0dh,' 发送完毕',0
LinkErrorMsg: db 0dh,0dh,' 通信失败!',0
FlashOver: db 0dh,'内存空间不够,整理系统空间可留出更多空间',0
FlashOtherOver db 0dh,0dh,'对方内存空间不够',0
YYZDExist: db 0dh,' 已有英英字典',0dh,' 无需下载!',0
NoThingToSendMsg:
db 0dh,' 没有可供',0dh,' 传输的数据',0
SysHintMsg: db 0dh,' 系统升级中',0dh,' 请等待!',0
;=====================================================
PS2 .SECTION
BANKNO EQU NetBank
;[X]-----------------------------------------------[X]
; TLoad 事件
;[X]-----------------------------------------------[X]
TLoad:
stz NetFlag
lda #<NetMenu
sta StrAddrL
lda #>NetMenu
sta StrAddrH
lda #0
sta ItemStart
sta ItemOffset
stz MenuBufNo
TLoad_0:
net_Load_0:
ldx <Mode
stx <ModeSave ; Save last mode。
lda #MenuMode
sta <Mode ; Enter Menu Select Mode
smb7 <EFlag
jmp jmp_LMAINU
TUnLoad:
THSec:
TSec:
TMin:
TKeyUp:
TTimer:
TKeyPress:
jmp jmp_LMAINU
RealKeyPrc:
dw RunLibFun-1 ;1.资料
dw RunGameFun-1 ;2.游戏
dw TLoad_0-1 ;3.下载OK
dw TLoad_0-1 ;4.系统升级Ok
dw RunCardFun_ToPC-1 ;5.上传名片-选择备份
dw RunNoteFun_ToPC-1 ;6.上传备忘-选择备份
dw RunAccountFun_ToPC-1 ;7.上传理财-选择备份
dw RunAlarmFun_ToPC-1 ;8.留给 提醒 用
dw TLoad_0-1 ;9预留
dw TLoad_0-1 ;10互传接收OK
dw ViewLibContext-1 ;11.ItemNO-1=GameState=10
dw TLoad_0-1 ;12
dw RunCardFun_ToPC-1 ;13.互传名片-选择备份
dw RunNoteFun_ToPC-1 ;14.互传备忘-选择备份
dw RunAccountFun_ToPC-1 ;15.互传理财-选择备份
dw RunAlarmFun_ToPC-1 ;16.留给 提醒 用
dw TLoad_0-1 ;17.上传名片-全部备份
dw TLoad_0-1 ;18.上传备忘-全部备份
dw TLoad_0-1 ;19.上传理财-全部备份
InitFunTbl:
dw InitLibNameList-1 ;1.显示 资料 名称列表
dw InitGameName-1 ;2.显示 游戏 名称列表
dw DownLoadData-1 ;3.下载
dw System_Update-1 ;4.系统升级
dw InitCardName_ToPC-1 ;5.上传时显示 名片 名称列表
dw InitNoteName_ToPC-1 ;6.上传时显示 备忘 名称列表
dw InitAccountName_ToPC-1 ;7.上传时显示 理财 名称列表
dw InitAlarmName_ToPC-1 ;8.留给 提醒 用
;dw JmpToYYZd-1 ;9.预留
dw TLoad_0-1 ;9
dw DownLoadData-1 ;10.互传接收
dw TLoad_0-1 ;11
dw TLoad_0-1 ;12
dw InitCardName_ToPC-1 ;13互传时显示 名片 名称列表
dw InitNoteName_ToPC-1 ;14互传时显示 名片 名称列表
dw InitAccountName_ToPC-1 ;15互传时显示 理财 名称列表
dw InitAlarmName_ToPC-1 ;16留给 提醒 用
dw BackAllCardToPC-1 ;17.上传名片-全部备份
dw BackAllMemoToPC-1 ;18.上传备忘-全部备份
dw BackAllCountToPC-1 ;19.上传理财-全部备份
DeleteLibState:
jmp DeletLibKeyPrc
JmpToYYZD:
;lda #1
;sta <ExtraMode ;英英字典加上
;lda #>yy_zd_load-1
;pha
;lda #<yy_zd_load-1
;pha
;lda #>yy_zd_bank
;pha
;lda #<yy_zd_bank
;jmp LongGo
;[X]-----------------------------------------------[X]
; KeyDown 事件
;[X]-----------------------------------------------[X]
TKeyDown:
lread_key_again
LKeyTone
lda menuflag
and #01h
bne EnterInitState
bbs2 <NetFlag,DeleteLibState
lda <GameState
asl
tax
lda RealKeyPrc+1,x
pha
lda RealKeyPrc,x
pha
rts
EnterInitState:
Lsetscreen 1 ;2-5-30 13:50 su
lda #NullHelp-HelpTable
sta <HelpOffset ; Preset null help.
stz menuflag
lda ItemNo
dec
sta <GameState
asl
tax
lda InitFunTbl+1,x
pha
lda InitFunTbl,x
pha
rts
System_Update:
Lsetscreen_to_ds0 1
LPrint ConnectPCMsg ;正在寻找通信对象
jsr CALL_LUpdateScreen
jsr LJSR
dw biosbank
dw StartSIO-1
stz <DelayTime
rmb4 <DataComeFlag
WaitLinkCommand_Sys:
bbs4 <DataComeFlag,JudgeLinkCommand_Sys
jsr Delay10Second
bcc WaitLinkCommand_Sys
jmp LinkError_2
JudgeLinkCommand_Sys:
rmb4 <DataComeFlag
lda <UData
cmp #LinkCommand
beq LinkToPCOk_Sys
bra WaitLinkCommand_Sys
LinkToPCOk_Sys:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lda #12 ;
sta <Sys_TryTime ;Try 12 times
;
SendAckWaitHead: ;
ldx #HeadAck_92H ;Ready to receive data
jsr LJSR
dw BiosBank
dw SendByte-1 ;
;
lda #9 ;
sta <DelayTime
ldy #0 ;
Wait_SysHead: ;接收Head
bbs4 <DataComeFlag,Wait_SysHead_1
jsr Delay10Second ;
bcc Wait_SysHead ;
SendAckWaitHead_1: ;因为 Sys_CheckSum is Error
dec <Sys_TryTime ;
bne SendAckWaitHead ;
jmp LinkError ;
Wait_SysHead_1: ;
rmb4 <DataComeFlag ;
lda <UData ;
sta Sys_PackLen,y ;Head长度
iny ;
cpy <Sys_PackLen ;
bcc Wait_SysHead ;
Check_SysHead: ;校验 Head Sys_CheckSum
ldy #4 ;
lda <Sys_CheckSumL ;
sta JudgeSys_CheckSumL ;
lda <Sys_CheckSumH ;
sta JudgeSys_CheckSumH ; DataClass +
?_0: ; DataLenL +
clc ; DataLenM +
lda Sys_PackLen,y ; DataLenH +
adc JudgeSys_CheckSumL ; =0
sta JudgeSys_CheckSumL ;
lda JudgeSys_CheckSumH ;
adc #0 ;
sta JudgeSys_CheckSumH ;
iny ;
cpy <Sys_PackLen ;
bcc ?_0 ;
lda JudgeSys_CheckSumL ;
bne ?_Err ;
lda JudgeSys_CheckSumH ;
beq ?_Right ;
?_Err: ;
;bra SendAck_WaitHead_1 ;
jmp SendAckWaitHead_1
?_Right: ;
lda <Sys_FileClass ;
cmp #10 ;
beq Linkreallyok ;
jmp LinkError ;
Linkreallyok: ;
LSetScreen 1 ;
LPrint SysHintMsg ;
jsr CALL_LUpdateScreen ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lda #>RealRecieveSysGame-1
pha
lda #<RealRecieveSysGame-1
pha
; lda #>SysLinkToPCOk-1
; pha
; lda #<SysLinkToPCOk-1
; pha
lda #>biosbank
pha
lda #<biosbank
jmp longgo
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
;\\\\\\ \\\\\\\\;
;\\\\\ 网络资源及上传数据之NameView \\\\\; ;
;\\\\\\ \\\\\\\\;
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
InitCardName_ToPC: ;名片
stz <FileClase
stz <StartNamePos
bra InitShowName
InitGameName: ;游戏
lda #1
sta <FileClase
stz <StartNamePos
bra InitShowName
InitLibNameList: ;资料
lda #2
sta <FileClase
stz <StartNamePos
bra InitShowName
InitNoteName_ToPC: ;备忘
lda #3
sta <FileClase
lda #20
sta <StartNamePos
bra InitShowName
InitAccountName_ToPC: ;理财
lda #4
sta <FileClase
lda #6
sta <StartNamePos
bra InitShowName
InitAlarmName_ToPC: ;提醒
lda #5
sta <FileClase
lda #34
sta <StartNamePos
bra InitShowName
InitShowName:
jsr LJSR ;读取资料数目給
dw RemarkBank ;<TotalCardNoL
dw ReadCardNo-1 ;<TotalCardNoH
lda <TotalCardNoL
bne initLibClass_0
lda <TotalCardNoH
bne initLibClass_0
jmp TLoad_0
initLibClass_0:
LSetScreen 1
FileNameView: ;显示名称列表
stz <CurCardNoL
stz <CurCardNoH
stz <CurCardOffBak
stz <CurCardOff
lda #>BCardTLoad_1-1
pha
lda #<BCardTLoad_1-1
pha
lda #>RemarkBank
pha
lda #<RemarkBank
jmp Longgo
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
;\\\\\\\\\ ;
;\\\\\\ 下载数据开始 ;
;\\\\\\\\\ ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -