⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 net.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 5 页
字号:
; ***************************************************************************
; *     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 + -