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

📄 net.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        LPrint  ReceiveDataSuc
        jmp	jmp_LMAIN

;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;
;\\*********                ************\\;
;\\********     下载数据完毕     ************\\;
;\\*********                ************\\;
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\;

FindSpaceForGame:
        clc
        lda     DataNameL
        adc     #0a0h
        lda     DataNameH
        adc     #0

        lsr
        lsr
        lsr
        lsr
        inc
        tax                     ;x=FileLen/4096 + 1
        sta     GameLen_Count4k

        lda     #88H
        sta     <DrrL
        stz     <DrrH
        lda     #80h
        sta     <INSH
        lda     #8H         ;0CH
        sta     <INSL

FindNextPrr:
        Clc
        lda     <INSL
        adc     #4
        sta     <INSL
        lda     <INSL
        cmp     #10H
        bcc     ?_Continue
        jmp     GameFlashIsFull
?_Continue:

        ldy     #0
        lda     GameLen_Count4k
        cpx     #1      ;4k
        beq     GameIs4k
        jmp     GameIsNot4K

GameIs4k:
        lda     (<INS),y
        cmp     #0ffh
        beq     ?_1
        iny
        cpy     #4
        bcc     GameIs4k
        jmp     FindNextPrr
?_1:
        tya
        sta     <TempY
        sta     GameSectorNo

        jmp     GameSpaceFindOK

GameIsNot4K:
        cpx     #2            ;8k
        beq     GameIs8K
        jmp     GameIsNot8K
GameIs8K:

        ldy     #0
        lda     (<INS),y        ;y=0
        iny
        and     (<INS),y        ;y=1
        cmp     #0ffh
        bne     ?_1

        stz     <TempY
        stz     GameSectorNO


        jmp     GameSpaceFindOK
?_1:
        lda     (<INS),y        ;y=1
        iny
        and     (<INS),y        ;y=2
        cmp     #0ffh
        bne     ?_2

        lda     #1
        sta     <TempY
        sta     GameSectorNO

        jmp     GameSpaceFindOK
?_2:
        lda     (<INS),y        ;y=2
        iny
        and     (<INS),y        ;y=3
        cmp     #0ffh
        bne     ?_3

        lda     #2
        sta     <TempY
        sta     GameSectorNO

        jmp     GameSpaceFindOK
?_3:
        jmp     FindNextPrr

GameIsNot8K:
        cpx     #3      ;12k
        beq     GameIs12k
        jmp     GameIsNot12K
GameIs12k:
        ldy     #1
        lda     (<INS),y        y=1
        iny
        and     (<INS),y        y=2
        cmp     #0ffh
        beq     ?_Xy
        jmp     FindNextPrr
?_Xy:
        ldy     #0
        lda     (<INS),y
        cmp     #0ffh
        bne     ?_1

        stz     <TempY
        stz     GameSectorNO

        jmp     GameSpaceFindOK
?_1:
        ldy     #3
        lda     (<INS),y
        cmp     #0ffh
        bne     ?_2

        lda     #1
        sta     <TempY
        sta     GameSectorNO

        jmp     GameSpaceFindOK
?_2:
        jmp     FindNextPrr
GameIsNot12K:
        cpx     #4      ;16k
        beq     GameIs16K
        jmp     FindNextPrr
GameIs16K:
        ldy     #0
        lda     (<INS),y        ;y=0
        iny
        and     (<INS),y        ;y=1
        iny
        and     (<INS),y        ;y=2
        iny
        and     (<INS),y        ;y=3
        cmp     #0ffh
        beq     ?_888
        jmp     FindNextPrr
?_888:
        stz     <TempY
        stz     GameSectorNO

        jmp     GameSpaceFindOK

FlashProBank:
                ;dw      10fh,10fh,10fh,10fh
                dw      10eh,10eh,10eh,10eh
                ;dw      8fh,8fh,8fh,8fh
                ;dw      8eh,8eh,8eh,8eh

ProAbsPosInFlash:       ;dw      08070h,09000h,0a000h,0b000h
                        dw      0c071h,0d000h,0e000h,0f000h
                        ;dw      080a0h,09000h,0a000h,0b000h
                        ;dw      0c0a0h,0d000h,0e000h,0f000h

ProLogPosInFlash:       dw      4071h,5000h,6000h,7000h
                        ;dw      4070h,5000h,6000h,7000h
                        ;dw     40a0h,5000h,6000h,7000h
                        ;dw     40a0h,5000h,6000h,7000h

GameSpaceFindOK:
        clc
        lda     GameSectorNO
        adc     <INSL
        sec
        sbc     #0cH
        sta     GameSectorNO
        sta     <TempY
        rts

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

        jsr     LJSR
        dw      RemarkBank
        dw      SearchSpareDir-1
        bbr1    <SysF,?2
        jmp     FlashFullMsg
?2:
        jsr     LJSR
        dw      RemarkBank
        dw      SearchSpareData-1       ;output SectorNo SectorOff
        bbr1    <SysF,?1
        jmp     FlashFullMsg
?1:
        jsr     LJSR
        dw      RemarkBank
        dw      PutFatFlag-1

        lda     DataNameL
        sta     <NameBuffL
        lda     DataNameH
        sta     <NameBuffH
        lda     DataClass
        sta     <FileClase

        jsr     LJSR
        dw      RemarkBank
        dw      SearchSpareDir-1

        lda     <INDL
        sta     BINDL
        lda     <INDH
        sta     BINDH

        jsr     LJSR
        dw      RemarkBank
        dw      FillDirName-1

        jsr     LJSR
        dw      RemarkBank
        dw      CalStartAddr-1

        rts

FlashFullMsg:
GameFlashIsFull:
        ldx     #FullAck                ;Flash is over
        jsr     LJSR
        dw      biosbank
        dw      SendByte-1

        jsr     LJSR
        dw      biosbank
        dw      StopSIO-1

        lda     #>DS0Bank
        sta     <DrrH
        lda     #<DS0Bank
        sta     <DrrL
        LCls
        LPrint  FlashOver
        jmp	jmp_LMAIN

;*********************************************

LinkError:
        lda     DataClass
        cmp     #1
        bne     ?_1
        lda     ReceiveGameRightFlag
        cmp     #1
        bne     ?_1

        lda     #87H
        sta     <DrrL
        stz     <DrrH
?_2:
        lda     <TempY
        asl
        tay
        lda     ProAbsPosInFlash,y
        sta     <INDL
        lda     ProAbsPosInFlash+1,y    ;Program address Hight
        sta     <INDH

        jsr     LJSR
        dw      biosbank
        dw      SectorErase-1
        jsr     InitGameData
        dec     GameLen_Count4k
        beq     ?_1
        inc     <TempY
        bra     ?_2

?_1:
        lda     SendErr_EraseFlag
        cmp     #1
        bne     ?_3

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

        lda     BINDL
        sta     <INDL
        lda     BINDH
        sta     <INDH

        lda     (<IND)
        and     #11111101B
        tax
        WriteByte_X
?_3:
LinkError_2:
        jsr     ljsr
        dw      biosbank
        dw      StopSIO-1

        LCls
        lda     #<DS0Bank
        sta     <DrrL
        lda     #>DS0Bank
        sta     <DrrH
        LPrint  LinkErrorMsg
        jmp	jmp_LMAIN

ViewLibKeyTbl:
        db      UpKey
        db      DownKey
        db      EscKey
        db      EnterKey
        db      DelKey
        db      NullKey
ViewLibKeyPrc:
        dw      ViewLibUp-1
        dw      ViewLibDown-1
        dw      ViewLibEse-1
        dw      ViewLibEnter-1
        dw      ViewLibDelet-1

RunCardFun_ToPC:
RunNoteFun_ToPC:
RunAccountFun_ToPC:
RunAlarmFun_ToPC:
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
        bbr1    <NetFlag,RunGameFun             ;功能:单条上传OK,并按Enter
        rmb1    <NetFlag                        ;键后更新屏幕
        lda     #>BCardTLoad_1-1                ;
        pha                                     ;
        lda     #<BCardTLoad_1-1                ;
        pha                                     ;
        lda     #>RemarkBank                    ;
        pha                                     ;
        lda     #<RemarkBank                    ;
        jmp     LongGo                          ;
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
RunGameFun:
RunLibFun:
        ldy     #0ffh
RunLibFun_0:
        iny
        lda     ViewLibKeyTbl,y
        bpl     RunLibFun_1
        jmp     ErrorKeyDown
RunLibFun_1:
        cmp     <KeyNo
        bne     RunLibFun_0
        tya
        asl
        tay
        lda     ViewLibKeyPrc+1,y
        pha
        lda     ViewLibKeyPrc,y
        pha
        rts

ErrorKeyDown:
        jmp	jmp_LMAINU

ViewLibUp:
        lda     #>ViewNameUp-1
        pha
        lda     #<ViewNameUp-1
        pha
        lda     #>RemarkBank
        pha
        lda     #<RemarkBank
        jmp     Longgo

ViewLibDown:
        lda     #>ViewNameDown-1
        pha
        lda     #<ViewNameDown-1
        pha
        lda     #>RemarkBank
        pha
        lda     #<RemarkBank
        jmp     Longgo

ViewLibEse:
        jmp     TLoad_0

ToExecuteProg:
        jsr     LJSR
        dw      RemarkBank
        dw      CopyDataToInputBuff-1

        ldy     #0
CopyProEvent:
        lda     InputBuff+15,y
        sta     NData,y
        iny
        cpy     #20     ;19
        bne     CopyProEvent
        lda     #90h
        sta     <Mode
        lda     #80h
        sta     <EFlag
        jmp	jmp_LMAINU
;;;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
;;;
;;;     是游戏则去执行游戏
;;;     是资料则去显示资料内容
;;;     其他则上传数据
;;;
;;;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
ViewLibEnter:
        lda     <FileClase
        cmp     #1
        beq     ToExecuteProg           ;是游戏则去执行
        lda     <FileClase
        cmp     #2                      ;资料否
        bne     ViewNameEnter
        jsr     LJSR                    ;显示资料内容
        dw      RemarkBank
        dw      ToFindDir-1

        jsr     LJSR
        dw      RemarkBank
        dw      ToFindDataINS-1

        lda     #LibViewState      ;=10置显示资料内容标志
        sta     <GameState
        stz     <TextScreenNo
ForKeChenBiao:
        stz     <TextcountNo
        stz     <Selectfindflag
        lda     <INSL
        sta     <LibTextPL
        sta     <TextHeadaddrL
        lda     INSH
        sta     <LibTextPH
        sta     <TextHeadaddrH
        lda     <DrrL
        sta     <DRRCurrentText
        lda     <DrrH
        sta     <DRRCurrentTextH

ViewLibEnter_0:
        jsr     LJSR
        dw      LibBank
        dw      ShowTextt-1
        jsr     LJSR
        dw      LibBank
        dw      SetTextIconP-1
        jmp	jmp_LMAIN

ViewNameEnter:                          ;上传数据
        smb1    <NetFlag                ;置单条上传标志
        lda     #<Ds0Bank
        sta     <DrrL
        lda     #>Ds0Bank
        sta     <DrrH

        LCls
        LPrint  ConnectPCMsg        ;正在寻找通信对象
        jsr	CALL_LUpdateScreen

        jsr     LJSR
        dw      biosbank
        dw      StartSIO-1

        jsr     LJSR
        dw      RemarkBank
        dw      ToFindDir-1

        lda     (<INS)
        and     #00011100B
        lsr
        lsr
        sta     Relation

        lda     <FileClase      ;file class
        sta     DataClass

        lda     <FileLengthL    ;file length
        sta     DataLenL

        lda     <FileLengthH
        sta     DataLenH

        ldy     #2              ;file name
        lda     (<INS),y
        sta     DataNameL
        ldy     #3
        lda     (<INS),y
        sta     DataNameH
        lda     #6
        sta     Try

⌨️ 快捷键说明

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