📄 net.asm
字号:
dw biosbank
dw SendByte-1
ldx Relation ;名片属性
jsr LJSR
dw biosbank
dw SendByte-1
rts
SendOtherData:
jsr LJSR
dw RemarkBank
dw ToFindDataINS-1
stz CheckSumL
stz CheckSumH
ldy #0
?_1:
clc
lda CheckSumL
adc (<INS),y
sta CheckSumL
lda CheckSumH
adc #0
sta CheckSumH
iny
cpy DataLenL
bcc ?_1
ldx #99H
jsr LJSR
dw biosbank
dw SendByte-1
clc
lda DataLenL
adc #4
tax
jsr LJSR
dw biosbank
dw SendByte-1
clc
lda DataLenL
adc #4
lda DataLenH
adc #0
tax
jsr LJSR
dw biosbank
dw SendByte-1
lda #0FFh
Eor CheckSumL
sta CheckSumL
lda #0FFh
Eor CheckSumH
sta CheckSumH
clc
lda CheckSumL
adc #1
sta CheckSumL
lda CheckSumH
adc #0
sta CheckSumH
ldx CheckSumL
jsr LJSR
dw biosbank
dw SendByte-1
ldx CheckSumH
jsr LJSR
dw biosbank
dw SendByte-1
jsr LJSR
dw RemarkBank
dw ToFindDataINS-1
ldy #0
?_2:
lda (<INS),y
tax
jsr LJSR
dw biosbank
dw SendByte-1
iny
cpy DataLenL
bcc ?_2
rts
InitGameData:
lda GameSectorNo
cmp #0
bne ?_Not_0
lda #c0H
sta <INDH
jsr Init_LjsrDataForGame
bra ?_NotAgain
?_Not_0:
cmp #4
bne ?_NotAgain
lda #C0H
sta <INDH
jsr Init_LjsrDataForGame
?_NotAgain:
rts
Delay10Second:
clc ;;Clear C Flag
bbr1 <EFlag,ExitDelay10Sec
rmb1 <EFlag
lda <DelayTime
cmp #10
bcs ExitDelay10Sec
inc <DelayTime
ExitDelay10Sec:
rts
ToFindOtherData:
clc
lda <INSL
adc #8
sta <INSL
lda <INSH
adc #0
sta <INSH
lda #<FlashBank
sta <DrrL
lda #>FlashBank
sta <DrrH
lda <INSH
cmp #0B0H
bcc ?_1
rmb3 <NetFlag ;0 置无记录可供上传标志
rts
?_1:
ldy #0
lda (<INS),y
and #00000011B
cmp #2
bne ToFindOtherData
iny
lda (<INS),y
cmp DataClass
bne ToFindOtherData
lda <INSL
sta BINSL
lda <INSH
sta BINSH
iny
lda (<INS),y
sta DataNameL
iny
lda (<INS),y
sta DataNameH
iny
lda (<INS),y
sta DataLenL
iny
lda (<INS),y
sta DataLenH
iny
lda (<INS),y
sta <SectorNO
iny
lda (<INS),y
sta <SectorOff
smb3 <NetFlag ;置 有 记录可供上传标志
rts
InitDataForDownYY:
lda #<FlashBank
sta <DrrL
lda #>FlashBank
sta <DrrH
lda #B0H ;清除FlashBuffor
sta <INDH ;
stz <INDL ;
jsr Ljsr ;
dw biosbank ;
dw SectorErase-1 ;
lda <StartINSH ;将8000-808F的数据备份到
sta <INSH ;FlashBuffor
stz <INSL ;
lda <INSH
cmp #80H
bne Is_Not80H
write_loop_0:
lda (<INS)
tax
WriteByte_X
inc <INSL
lda <INSL
cmp #27H
bne write_loop_0
;;;;;;;
write_loop_3
lda #FEH
tax
WriteByte_X
inc <INSL
lda <INSL
cmp #50H
bne write_loop_3
write_loop_4
lda #FFH
tax
WriteByte_X
inc <INSL
lda <INSL
cmp #90H
bne write_loop_4
;lda #90H ;因为清FlashBuffor 时
;sta <INSL
;;;;;;;;
Is_Not80H:
loop:
ldx #0
write_loop_1:
cpx #8
beq end_write_loop_1
lda (<INS)
sta FatBuffor,x
inx
inc <INSL
bne write_loop_1
inc <INSH
bne write_loop_1
end_write_loop_1:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lda <FatSectorNo
cmp #15H
bne Is_Not_15H
lda <FatDataLenH
cmp #20H
bcc Is_Not_15H
ldy #0
?_0:
inc <INDL
bne ?1
inc <INDH
bne ?1
smb7 <INDH
inc <DRRl
bne ?1
inc <drrh
?1
iny
cpy #8
bne ?_0
bra judgeContinue
Is_Not_15H:
lda <FatSectorNo
cmp #16H
bne Is_Not_16H
lda <FatDataLenH
cmp #10H
bcc Is_Not_16H
ldy #0
?_0:
inc <INDL
bne ?1
inc <INDH
bne ?1
smb7 <INDH
inc <DRRl
bne ?1
inc <drrh
?1
iny
cpy #8
bne ?_0
Is_Not_16H:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
lda <FatSectorNo
cmp #17H
bcc LessThan_17H
ldy #0
?_0:
inc <INDL
bne ?1
inc <INDH
bne ?1
smb7 <INDH
inc <DRRl
bne ?1
inc <drrh
?1
iny
cpy #8
bne ?_0
bra judgeContinue
LessThan_17H:
ldy #0
?_1:
lda FatBuffor,y
tax
WriteByte_X
iny
cpy #8
bne ?_1
judgeContinue:
lda <INSH
cmp <StopINSH
beq ?_0
jmp loop
?_0:
stz <INDL ;;清80区
lda <StartINSH
sta <INDH
jsr Ljsr
dw Biosbank
dw SectorErase-1
stz <INSL
lda #0b0h
sta <INSH
Rewrite_loop_1:
lda (<INS)
tax
WriteByte_X
inc <INSL
bne Rewrite_loop_1
inc <INSH
lda <INSH
cmp #0C0h
bcc Rewrite_loop_1
rts
ForYYZDInit:
jsr InitSomeData
lda #80H
sta <StartINSH
lda #90H
sta <StopINSH
jsr InitDataForDownYY
lda #90H
sta <StartINSH
lda #A0H
sta <StopINSH
jsr InitDataForDownYY
lda #A0H
sta <StartINSH
lda #B0H
sta <StopINSH
jsr InitDataForDownYY
lda #8AH ;\\\\\\\\\\\\
sta <DrrL ;英英词典专用
stz <DrrH ;////////////
lda <ClrStartINDH ;
sta <INDH ;
lda <ClrDataLen_4K ;
lsr
lsr
tay
jsr Ljsr ;
dw biosbank ;
dw erase_flash_4k_x_n_bytes-1
lda #8AH ;
sta <DrrL ;
stz <DrrH ;
lda #F0H ;
sta <INDH ;
stz <INDL ;\\\\\\\\\\\\
rts
ShowYYMenuSub:
lda #3
sta <FatBuffor
stz data_lengthh
lda #1 ;;1个数据
sta data_lengthl
lda #>FatBuffor
sta <flash_pointer_sh
lda #<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 ljsr
dw biosbank
dw copy_ram_data_to_flash-1
lda #3
sta <FatBuffor
stz data_lengthh
lda #1 ;;1个数据
sta data_lengthl
lda #>FatBuffor
sta <flash_pointer_sh
lda #<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 ljsr
dw biosbank
dw copy_ram_data_to_flash-1
rts
;////////////////////////////////////////////
;;;;
;;;; output: ClrStartINDH , ClrDataLen_4K
;;;; 根据ClrStartINDH , ClrDataLen_4K
;;;; 清除8015H 或(和) 8016H内的内容(DrrL=FlashBank)
;;;; input: 无
;;;;
;////////////////////////////////////////////
InitSomeData:
lda #<FlashBank
sta <DrrL
lda #>FlashBank
sta <DrrH
lda #71H
sta <StartINSH
Big_loop:
Clc
lda <StartINSH
adc #10H
sta <StartINSH
sta <INSH
stz <INSL
adc #10h
sta <StopINSH
lda <INSH
cmp #B0H
bne ?_1
rts
?_1:
lda <INSH
cmp #80H
bne ?Is_Not80H
lda #90H
sta <INSL
?Is_Not80H:
?loop:
ldx #0
?write_loop_1:
cpx #8
beq ?end_write_loop_1
lda (<INS)
sta FatBuffor,x
inx
inc <INSL
bne ?write_loop_1
inc <INSH
bne ?write_loop_1
?end_write_loop_1:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -