📄 sysgame.asm
字号:
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 + -