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

📄 net.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
DownLoadData:
        Lsetscreen_to_ds0      1
        LPrint  ConnectPCMsg            ;正在寻找通信对象
        jsr	CALL_LUpdateScreen

        jsr     LJSR
        dw      biosbank
        dw      StartSIO-1

        stz     <DelayTime
        rmb4    <DataComeFlag
WaitLinkCommand:
        bbs4    <DataComeFlag,JudgeLinkCommand

        jsr     Delay10Second

        bcc     WaitLinkCommand
        jmp     LinkError_2
JudgeLinkCommand:
        rmb4    <DataComeFlag
        lda     <UData
        cmp     #LinkCommand
        beq     LinkToPCOk
        bra     WaitLinkCommand

LinkToPCOk:
        lda     #6
        sta     Try
SendAck_WaitHead:
        rmb4    <DataComeFlag
        ldx     #HeadAck_92H            ;Ready to receive data
        jsr     LJSR
        dw      biosbank
        dw      SendByte-1

        lda     #8
        sta     <DelayTime
        ldy     #0

WaitReceiveHead:
        bbs4    <DataComeFlag,JudgeReceiveHead
        jsr     Delay10Second
        bcc     WaitReceiveHead
SendAck_WaitHead_1:
        dec     Try
        bne     ?_1
        jmp     LinkError_2
?_1:
        bra     SendAck_WaitHead        ;ResendAck_WaitHead
JudgeReceiveHead:
        rmb4    <DataComeFlag
        lda     <UData
        sta     SaveReadyAck,y
        iny
        cpy     #FileHeadLen            ;FileHeadLen=9
        bcc     WaitReceiveHead

        clc
        ldy     #3                      ;from 3 to FileHeadLen
?_1:
        lda     SaveReadyAck,y    ;校验 Head 数据
        adc     CheckSumL
        sta     CheckSumL
        lda     CheckSumH
        adc     #0
        sta     CheckSumH
        iny
        cpy     #FileHeadLen
        bcc     ?_1

        lda     CheckSumL
        bne     HeadCheckSum_Err        ;Head Data Error
        lda     CheckSumH
        beq     HeadCheckSum_Right      ;Head Data Right
HeadCheckSum_Err:

        jmp     SendAck_WaitHead_1

HeadCheckSum_Right:

        lda     #>Ds0Bank
        sta     <DrrH
        lda     #<Ds0Bank
        sta     <DrrL
        LCls
        LPrint  ReceivingMsg            ;数据传输中...
        jsr	CALL_LUpdateScreen

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        lda     DataClass               ;\\\\\\\\\\\\\
        cmp     #1                      ;下载游戏专用
        bne     ?_1                     ;/////////////
        jsr     FindSpaceForGame        ;
        clc                             ;
        lda     DataLenL                ;
        adc     #4                      ;
        sta     <EndPointL              ;
        clc                             ;
        lda     DataLenH                ;
        adc     #>InputBuff             ;
        sta     <EndPointH              ;
        bra     ?_2                     ;
?_1:                                    ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        lda     DataClass
        cmp     #11
        bne     ?_3

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\\\\\\\\\\\
        lda     #>MenuLibDataBank
        sta     <DrrH
        lda     #<MenuLibDataBank
        sta     <DrrL

        lda     NetMenuSub1+2
        cmp     #2
        beq     ?1
        LSetscreen_to_ds0      1
        LPrint  YYZDExist
        jmp	jmp_LMAIN
?1:
        jsr     ShowYYMenuSub

        jsr     ForYYZDInit
        bra     ?_4                     ;英英词典专用
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;////////////

?_3:
        lda     DataLenL
        sta     <EndPointL
        clc
        lda     DataLenH
        adc     #>InputBuff
        sta     <EndPointH
        lda     Relation                ;名片关系
        sta     <RelatItem
?_2:

        stz     SendErr_EraseFlag

        jsr     SaveDownloadData        ;找空间并填写 FAT 表

        lda     #1
        sta     SendErr_EraseFlag
        stz     ReceiveGameRightFlag
?_4:
Init_PackageDataLen_OK:

        lda     DataLenH
        beq     ?_1
        lda     #0ffH
        sta     <PackageDataLen
        bra     ?_3
?_1:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\\\\\\\\\\\
        lda     DataClass       ;英英词典专用
        cmp     #11             ;////////////
        bne     ?_4             ;
        lda     DataNameH       ;
        beq     ?_4             ;
        lda     #0ffH           ;
        sta     <PackageDataLen ;
        bra     ?_3             ;
?_4:                            ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        lda     DataLenL
        bne     ?_2
        jmp     LinkError_2
?_2:
        lda     DataLenL
        dec
        sta     <PackageDataLen
?_3:
        lda     #9
        sta     Try
WaitReceiveNext256:
        lda     #9
        sta     <DelayTime
        rmb4    <DataComeFlag

        lda     #<(ZjwData-5)
        sta     <INSL
        lda     #>(ZjwData-5)
        sta     <INSH

        ldx     #ReadyAck_A5H
        jsr     LJSR
        dw      biosbank
        dw      SendByte-1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        lda     DataClass               ;\\\\\\\\\\\\\
        cmp     #1                      ;下载游戏专用
        bne     ?_1                     ;/////////////
        lda     ReceiveGameRightFlag    ;
        bne     ?_1                     ;
        lda     <tempy                  ;
        asl                             ;
        tay                             ;
        ldx     ProLogPosInFlash,y      ;Program address low
        jsr     LJSR                    ;
        dw      biosbank                ;
        dw      SendByte-1              ;
                                        ;
        lda     <tempy                  ;
        asl                             ;
        tay                             ;
        ldx     ProLogPosInFlash+1,y    ;Program address hight
        jsr     LJSR                    ;
        dw      biosbank                ;
        dw      SendByte-1              ;
?_1:                                    ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
WaitToReceiveData:
        bbs4    <DataComeFlag,WaitToReceiveData_0
        jsr     Delay10Second
        bcc     WaitToReceiveData
WaitReceiveNext256_1:
        dec     Try
        bne     WaitReceiveNext256
        jmp     LinkError
WaitToReceiveData_0:
        rmb4    <DataComeFlag
        lda     #9
        sta     <DelayTime

        lda     <UData
        sta     (<INS)

        lda     <INSH
        cmp     #(>ZjwData)
        bne     ?_3
        lda     <INSL
        cmp     <PackageDataLen
        beq     JudgeReceiveData
?_3:
        inc     <INSL
        lda     <INSL
        bne     WaitToReceiveData
        inc     <INSH
        bra     WaitToReceiveData
JudgeReceiveData:

        lda     #<ZjwData
        sta     <INSL
        lda     #>ZjwData
        sta     <INSH

        lda     ZjwData-2
        sta     CheckSumL
        lda     ZjwData-1
        sta     CheckSumH
?_1:
        clc
        lda     (<INS)
        adc     CheckSumL
        sta     CheckSumL
        lda     CheckSumH
        adc     #0
        sta     CheckSumH
        lda     <INSL
        cmp     <PackageDataLen   ;范围 00H-FFH --->> 1-256Byte
        beq     ?_2
        inc     <INSL
        bra     ?_1
?_2:
        lda     CheckSumL
        bne     DataCheckSum_Err
        lda     CheckSumH
        beq     DataCheckSum_Right

DataCheckSum_Err:
        jmp     WaitReceiveNext256_1

DataCheckSum_Right:

        lda     #<ZjwData
        sta     <INSL
        lda     #>ZjwData
        sta     <INSH

SaveDataToFlash:
        lda     (<INS)
        tax
        WriteByte_X
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////
        lda     <INSL                   ;游戏专用_Begin
        cmp     #14                     ;\\\\\\\\\\\\\
        bne     ?_0                     ;

        lda     DataClass               ;
        cmp     #1                      ;
        bne     ?_0                     ;
        lda     ReceiveGameRightFlag    ;
        bne     ?_0                     ;

        lda     <tempy                  ;
        asl                             ;
        tay                             ;
        ldx     FlashProBank,y          ;program bank is ok
        WriteByte_X

        ldx     FlashProBank+1,y        ;program bank is ok
        WriteByte_X
?_0:                                    ;\\\\\\\\\\\\\
WritePrrOK:                             ;游戏专用_End
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////
        lda     <INSL
        cmp     <PackageDataLen
        beq     ?_0
        inc     <INSL
        bra     SaveDataToFlash
?_0:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;/////////////
        lda     DataClass               ;游戏专用_Begin
        cmp     #1                      ;\\\\\\\\\\\\\
        bne     Is_NotGame              ;
        lda     ReceiveGameRightFlag    ;
        bne     Is_NotGame              ;
        ldx     GameSectorNo            ;
        WriteByte_X

        ldx     GameLen_Count4k         ;
        WriteByte_X

        lda     DataNameL               ;
        sta     DataLenL                ;
        lda     DataNameH               ;
        sta     DataLenH                ;游戏专用

        lda     TempY                   ;
        asl                             ;
        tay                             ;
        lda     ProAbsPosInFlash,y      ;
        sta     <INDL                   ;

        lda     TempY                   ;
        asl                             ;
        tay                             ;
        lda     ProAbsPosInFlash+1,y    ;Program address Hight
        sta     <INDH                   ;

        lda     #87H                    ;
        sta     <DrrL                   ;
        stz     <DrrH                   ;
        lda     #1                      ;游戏专用
        sta     ReceiveGameRightFlag    ;

        lda     DataLenH                ;
        beq     ?_1                     ;
        lda     #0ffH                   ;
        sta     <PackageDataLen         ;
        bra     ?_3                     ;
?_1:
        lda     DataLenL                ;
        bne     ?_2                     ;
        jmp     LinkError               ;
?_2:
        lda     DataLenL                ;
        dec                             ;
        sta     <PackageDataLen         ;
?_3:
        bra     Init_PackageDataLen_Again_OK
Is_NotGame:                                     ;游戏专用_End
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\\\\\\\\\\\\
        lda     DataLenH
        beq     ?_1

        dec     DataLenH
        lda     DataLenH
        beq     ?_7

        lda     #0ffH
        sta     <PackageDataLen
        bra     ?_8     ;?_1
?_7:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        lda     DataClass       ;英英用
        cmp     #11             ;
        bne     ?_9             ;
        lda     DataNameH       ;
        beq     ?_9             ;
        dec     DataNameH       ;
        lda     #ffH            ;
        sta     DataLenH        ;
        sta     <PackageDataLen ;
        bra     ?_8             ;
?_9                             ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

        lda     DataLenL
        beq     ?_8     ;?_1

        lda     DataLenL
        dec
        sta     <PackageDataLen
        bra     ?_8     ;add
?_1:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
        lda     DataClass       ;英英用
        cmp     #11             ;
        bne     ?_8             ;
        lda     DataNameH       ;
        beq     ?_8             ;
        dec     DataNameH       ;
        lda     #ffH            ;
        sta     DataLenH        ;
        sta     <PackageDataLen ;
?_8                             ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Init_PackageDataLen_Again_OK:
?_1:
        ldx     #ReadyAck_96H
        jsr     ljsr
        dw      BiosBank
        dw      SendByte-1
        lda     #8
        sta     <DelayTime
?_2:
        lda     <DataComeFlag
        and     #00010000b
        bne     ?_3

        jsr     Delay10Second
        bcc     ?_2
?_4:
        dec     Try
        bne     ?_1
        jmp     LinkError
?_3:
        rmb4    <DataComeFlag

        lda     <UData
        cmp     #DataFirstByt_99H
        bne     ?_5
        lda     #11
        sta     Try
        lda     #8
        sta     <DelayTime

        stz     CheckSumL
        stz     CheckSumH
        lda     #<(ZjwData-4)
        sta     <INSL
        lda     #>(ZjwData-4)
        sta     <INSH
        jmp     WaitToReceiveData
?_5:
        lda     <UData
        cmp     #OverFlag
        beq     ReceiveDataOK
        lda     <UData
        cmp     #LinkCommand
        bne     ?_4
        jmp     LinkToPCOk
ReceiveDataOK:
        lda     DataClass
        cmp     #1
        bne     ?_1

        lda     #<FlashBank
        sta     <DrrL
        lda     #>FlashBank
        sta     <DrrH

        lda     #80h
        sta     <INSH
        lda     #0cH
        sta     <INSL

        clc
        lda     GameSectorNO
        adc     <INSL
        sta     <INDL
        lda     <INSH
        sta     <INDH
?_2:
        ldx     #0feh
        WriteByte_X

        dec     GameLen_Count4k
        bne     ?_2
?_1:
        ldx     #ReadyAck_96H
        jsr     ljsr
        dw      BiosBank
        dw      SendByte-1
        nop

        ldx     #ReadyAck_96H
        jsr     ljsr
        dw      BiosBank
        dw      SendByte-1

        jsr     ljsr
        dw      BiosBank
        dw      StopSIO-1

        lda     #>Ds0Bank
        sta     <DrrH
        lda     #<Ds0Bank
        sta     <DrrL

        LCls

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -