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

📄 sysgame.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        ldy     #0
?kkk:
        lda     682h,y
        tax
        ;jsr     writeflashbyte
        ;jsr     200h
        SGWRITEFLASHBYTE
        iny
        cpy     #120
        bne     ?kkk
;;=======================================================
;;===== new  ADD ========================================
;;=======================================================
;        lda     #86h                 ;;立即将标志写回
;        sta     <drrl
;        lda     #>8000h
;        sta     <indh
;        stz     <indl
;        ldx     #85h
;        jsr     WriteFlashByte
;        lda     #<8004h
;        sta     <indl
;        ldx     #48h
;        jsr     WriteFlashByte
;;=======================================================
;;==============================================
        lda     <Sys_FileLengthM        ;计算1K  的个数
        sta     <Sys_Count_2k           ;
        lsr     <Sys_FileLengthH        ;
        ror     <Sys_Count_2k           ;
        lsr     <Sys_FileLengthH        ;
        ror     <Sys_Count_2k           ;
        ;lsr    <Sys_FileLengthH        ;
        ;ror    <Sys_Count_2k           ;

        lda     #80h                    ;初始化系统存放地址
        sta     <INDH                   ;
        sta     <DrrL
        stz     <INDL                   ;
        stz     <DrrH                   ;

        lda     #12                     ;
        sta     <Sys_TryTime            ;

Wait_SysData_0:                         ;
        stz     <Sys_CheckSumL          ;
        stz     <Sys_CheckSumH          ;

        lda     #<(NetData-5)           ;
        sta     <INSL                   ;
        lda     #>(NetData-5)           ;
        sta     <INSH                   ;

        stz     <Sys_delaycountL        ;Delay 2 second
        stz     <Sys_delaycountM        ;

        ldx     #ReadyAck_A5H           ;
        jsr     SendByte                ;zjw_Power

        stz     <IREQL
        stz     <IENAL

Wait_SysData:                           ;接收 2k SysData
        lda     <DataComeFlag           ;
        and     #00010000b              ;
        bne     Receive_SysData         ;
        jsr     Delay2Second            ;zjw_Power
        bcc     Wait_SysData            ;
Wait_SysData_1:                         ;
        dec     <Sys_TryTime            ;
        bne     Wait_SysData_0          ;
error_system:
        stz     <drrh
        lda     #<FlashBank
        sta     <drrl
        ldx     #>b000h
        ldy     #<b000h
        stz     <ox
        stz     <oy
        jsr     drawtext
?wait:
        wai
        bra     ?wait

Receive_SysData:                        ;
        lda     <UData                  ;
        sta     (<INS)                  ;
        rmb4    <DataComeFlag           ;
        stz     <Sys_delaycountL        ;Delay 2 Second
        stz     <Sys_delaycountM        ;

        inc     <INSL                   ;
        bne     Wait_SysData            ;
        inc     <INSH                   ;
        lda     <INSH                   ;
        ;cmp    #(>NetData)+8           ;
        cmp     #(>NetData)+4
        bne     Wait_SysData            ;

Check_SysData2048:                      ;校验 2K SysData 的 Sys_CheckSum
        lda     #<NetData               ;
        sta     <INSL                   ;
        lda     #>NetData               ;
        sta     <INSH                   ;

        lda     NetData-2               ;
        sta     <Sys_CheckSumL          ;
        lda     NetData-1               ;
        sta     <Sys_CheckSumH
?_2:
        clc                             ;
        lda     (<INS)                  ;
        adc     <Sys_CheckSumL          ;
        sta     <Sys_CheckSumL          ;
        lda     <Sys_CheckSumH          ;
        adc     #0                      ;
        sta     <Sys_CheckSumH          ;
        inc     <INSL                   ;
        bne     ?_2                     ;
        inc     <INSH                   ;
        lda     <INSH                   ;
        cmp     #(>NetData)+4
        bcc     ?_2                     ;

        lda     <Sys_CheckSumL          ;
        bne     ?_Err                   ;
        lda     <Sys_CheckSumH          ;
        beq     CheckSum_Right          ;

?_Err:                                  ;
        ;jmp    Wait_SysData_1          ;Sys_CheckSum ERROR
        bra     Wait_SysData_1
For_Bra_1to_Wait_SysData:
        bra     Wait_SysData
CheckSum_Right:                         ;
        dec     <Sys_Count_2k           ;
        lda     #<NetData               ;
        sta     <INSL                   ;
        lda     #>NetData               ;
        sta     <INSH                   ;

        ;stz     <Sys_delaycountL        ;Delay 2 second
        ;stz     <Sys_delaycountM        ;

Save_SysData2048:                       ;保存 2K 数据到 Flash
        lda     (<INS)                  ;
        tax                             ;

        ;jsr     WriteFlashByte          ;
        ;jsr     200h
        SGWRITEFLASHBYTE

        inc     <INSL                   ;
        bne     Save_SysData2048        ;
        inc     <INSH                   ;
        lda     <INSH                   ;
        ;cmp    #(>NetData)+8           ;
        cmp     #(>NetData)+4
        bcc     Save_SysData2048        ;

        lda     <Sys_Count_2k           ;
        beq     ?_0                     ;
?_1:                                    ;
        stz     <Sys_delaycountL        ;Delay 2 second
        stz     <Sys_delaycountM        ;
        
        ldx     #ReadyAck_96H           ;
        jsr     SendByte                ;zjw_Power
?_2:                                    ;
        lda     <DataComeFlag           ;
        and     #00010000b              ;
        bne     ?_3                     ;
        jsr     Delay2Second            ;zjw_Power
        bcc     ?_2                     ;
?_4:                                    ;
        dec     <Sys_TryTime            ;
        bne     ?_1                     ;
        jmp     error_system            ;
?_3:                                    ;
        lda     <UData                  ;
        cmp     #DataFirstByt_99H       ;
        bne     ?_4
        lda     #10                     ;
        sta     <Sys_TryTime            ;

        rmb4    <DataComeFlag
        stz     <Sys_CheckSumL          ;
        stz     <Sys_CheckSumH          ;
        lda     #<(NetData-4)           ;
        sta     <INSL                   ;
        lda     #>(NetData-4)           ;
        sta     <INSH                   ;
        stz     <Sys_delaycountL        ;Delay 2 second
        stz     <Sys_delaycountM        ;

        ;jmp    Wait_SysData            ;Receive Next 2K SysData
        bra     For_Bra_1to_Wait_SysData
?_0:                                    ;

        ldx     #ReadyAck_96H           ;
        jsr     SendByte                ;
        ldx     #ReadyAck_96H           ;
        jsr     SendByte                ;                                       ;
        ldx     #ReadyAck_96H           ;
        jsr     SendByte

;;;     bbr0    <YYFlag,?_NoYY
;;;     lda     #>MenuLibDataBank
;;;     sta     <DrrH
;;;     lda     #<MenuLibDataBank
;;;     sta     <DrrL
;;;
;;;     lda     #3
;;;     sta     <YYFlag ;<FatBuffor
;;;     stz     data_lengthh
;;;     lda     #1  ;;1个数据
;;;     sta     data_lengthl
;;;     lda     #>YYFlag        ;FatBuffor
;;;     sta     <flash_pointer_sh
;;;     lda     #<YYFlag        ;FatBuffor
;;;     sta     <flash_pointer_sl
;;;
;;;     lda     #>NetMenuSub1+2
;;;     sta     <flash_pointer_dh
;;;     lda     #<NetMenuSub1+2
;;;     sta     <flash_pointer_dl
;;;     lda     #<MenuLibDataBank
;;;     sta     <flash_object_drr
;;;
;;;     jsr     copy_ram_data_to_flash
;;;
;;;     lda     #3
;;;     sta     <YYFlag ;<FatBuffor
;;;     stz     data_lengthh
;;;     lda     #1  ;;1个数据
;;;     sta     data_lengthl
;;;     lda     #>YYFlag        ;FatBuffor
;;;     sta     <flash_pointer_sh
;;;     lda     #<YYFlag        ;FatBuffor
;;;     sta     <flash_pointer_sl
;;;
;;;     lda     #>DelDownLoadMenu+2
;;;     sta     <flash_pointer_dh
;;;     lda     #<DelDownLoadMenu+2
;;;     sta     <flash_pointer_dl
;;;     lda     #<MenuLibDataBank
;;;     sta     <flash_object_drr
;;;
;;;     jsr     copy_ram_data_to_flash

?_NoYY:
        jmp     GoCoolStartUp
copy_end_x:
        
;//////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\
;////////                              \\\\\\\\\\\
;//////           系统升级               \\\\\\\\\
;////////                              \\\\\\\\\\\
;//////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\        
;///////////        End         \\\\\\\\\\\\\\\\\\
;//////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\

        end

⌨️ 快捷键说明

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