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

📄 tool.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        sta     <INSH
        stz     <INSL
DTDF_17:
        lda     (<INS)
        tax
        WriteByte_X
        
        inc     <INSL
        bne     DTDF_07
        inc     <INSH
DTDF_07:
        lda     <INSH
        cmp     #0c0h
        bcc     DTDF_17
        ;-----Write FlashBuff to Flash Finish-----
        ;-----------------------------------------
DTDF_27:
        jsr     LJSR
        dw      RemarkBank
        dw      EraseFlashBuffor-1
        
DTDF_7:
        inc     <TempII
        lda     <TempII
        cmp     #12     ;6
        bcs     DTDF_8
        ldy     <TempII
        lda     StartINSH,y
        sta     <INSH
        stz     <INSL
        
        jsr     LJSR
        dw      RemarkBank
        dw      Read1kDataToRam-1

        lda     #>FData
        sta     <INSH
        stz     <INSL

        jmp     DTDF_3
DTDF_8:
        rts

;;********************************************************
;StartINSH:      db      80h,88h,90h,98h,a0h,a8h
;FlashBufADD:    db      b0h,b8h,b0h,b8h,b0h,b8h
StartINSH:   db 80h,84h,88h,8ch,90h,94h,98h,9ch,a0h,a4h,a8h,ach
FlashBufADD: db b0h,b4h,b8h,bch,b0h,b4h,b8h,bch,b0h,b4h,b8h,bch
;;********************************************************
ImportantJob:
	stz	<DRRH	;切记切记:当DRRH有可能不为零时。要改动整个文件DRR
	smb2	<SysF	;空间整理不能睡觉
ImportantJob0:

        jsr     ToFindDelFile
        bcc     JobEnd

        jsr     SearchMinOffset
        
        jsr     RefreshTheRightSector

        jsr     DoTheDeletedFile
        
       	;lda	#<-Minu3
	;sta	PowerT
	;lda	#>-Minu3	;空间整理不能睡觉
	;sta	PowerT+1
        
        bra     ImportantJob0
JobEnd:
        rmb2	<SysF
        rts
;;********************************************************
;;
;;Input:  y = SectorNo

;;[s]-------------------------------------[s]
;;       清除4K文件
;;Input:Y(已删除文件的当前扇区号)
;;Output:
;;[s]-------------------------------------[s]
EraseThisSec:
        lda     <DRR
        pha
        tya
        ;;lda    <FileSec        ;;
        lsr                     ;;
        lsr                     ;;
        lsr                     ;;
        clc                     ;;
        adc     #FlashBank      ;;
        sta     <DRR            ;;<DRR=SectorNo/8 + FlashBank

        tya                     ;;lda    <FileSec        ;;
        and     #00000111b      ;;a=a%8
        asl
        asl
        asl
        asl
        ora     #80h
        sta     <INDH
        
;;        lda     #10h
        stz     <INDL
        
        jsr     LJSR
        dw      biosbank
        dw      SectorErase-1

        pla
        sta     <DRR
        rts
;;********************************************************

        
;;SaveKeChB:
;;        LCls
;;        LPrint  SaveHintMsg
;;        LUpDateScreen

;;        jsr     LJSR
;;        dw      RemarkBank
;;        dw      EraseFlashBuffor-1
        
;;        lda     #FlashBank
;;        sta     <DRR
;;        lda     #0b0h
;;        sta     <INDH
;;        stz     <INDL
        
;;        lda     #0c0h
;;        sta     <INSH
;;        stz     <INSL
;;SaveStudyData:
;;        lda     (<INS)
;;        tax
;;        jsr     LJSR
;;        dw      biosbank
;;        dw      WriteFlashByte-1
        
;;        jsr     INCINSX
        
;;        lda     <INSH
;;        cmp     #0c8h
;;        bcc     SaveStudyData

;;        stz     <TempCount
;;        lda     #>FData
;;        sta     <INSH
;;        lda     #<FData
;;        sta     <INSL
;;CopyFDataToInputBuff1:
        
;;        ldy     #0
;;CopyFDataToInputBuff0:
;;        lda     (<INS)
;;        tax
;;        jsr     LJSR
;;        dw      biosbank
;;        dw      WriteFlashByte-1
;;        jsr     INCINS
;;        iny
;;        cpy     #8
;;        bcc     CopyFDataToInputBuff0

;;        inc     <TempCount
;;        lda     <TempCount
;;        cmp     #56
;;        bcc     CopyFDataToInputBuff1

;;        lda     <INDL
;;        sta     <INSL
;;        lda     <INDH
;;        clc
;;        adc     #10h
;;        sta     <INSH
        
;;SaveOtherRecords:
;;        lda     (<INS)
;;        tax
;;        jsr     LJSR
;;        dw      biosbank
;;        dw      WriteFlashByte-1
        
;;        jsr     INCINSX
        
;;        lda     <INSH
;;        cmp     #0d0h
;;        bcc     SaveOtherRecords

;;        lda     #0c0h
;;        sta     <INDH
;;        lda     #10h
;;        sta     <INDL
;;        jsr     LJSR
;;        dw      biosbank
;;        dw      SectorErase-1

;;        lda     #0b0h
;;        sta     <INSH
;;        stz     <INSL
;;        stz     <INDL
;;CopyC0Data:
;;        lda     (<INS)
;;        tax
;;        jsr     LJSR
;;        dw      biosbank
;;        dw      WriteFlashByte-1

;;        jsr     INCINSX
;;
;;        lda     <INSH
;;        cmp     #0c0h
;;        bcc     CopyC0Data

;;        rts

INCINSX:
        inc     <INSL
        bne     INCINSX0
        inc     <INSH
INCINSX0:
        rts

INCINDX:
        inc     <INDL
        bne     INCINDX0
        inc     <INDH
INCINDX0:
        rts

DetermineINDPos3:
        tax
        lda     #<FData
        sta     <INSL
        lda     #>FData
        sta     <INSH
DetermineINDPos0:
        lda     (<INS)
        jsr     INCINSX
        cmp     #0dh
        bne     DetermineINDPos0
        dex
        bpl     DetermineINDPos0
        rts

;;***********************************************************
FillFData_200:
        ldy     #0
        ldx     #0

       lda     #<FData+200h     ;因为100H已经装不下(名片长度已增长)
       sta     <INDL
       lda     #>FData+200h
       sta     <INDH
       
       rmb0     <TempCount
       stz      <TempCount1

FillFData_100_0:
        lda     InputBuff,y
        beq     FillFData_100_4
        cmp     #0dh
        beq     FillFData_100_4
        rmb0     <TempCount
        bra     FillFData_100_5
FillFData_100_4:
        smb0    <TempCount
FillFData_100_5:
        phy
        ldy     <TempCount1
FillFData_100_3:
        lda     CardName,y
        cmp     #0
        beq     FillFData_100_2
        cmp     #0dh
        beq     FillFData_100_2
        bbs0    <TempCount,notfilltofdata_100
        sta     (<IND)
        jsr     INCINDX
notfilltofdata_100:
        inc     <TempCount1
        iny
        bra     FillFData_100_3
FillFData_100_2:
        inc     <TempCount1
        ply
        bbs0    <TempCount,FillFData_100_1
FillFData_100_6:
        lda     InputBuff,y
        sta     (<IND)
        bne     ?1
        lda     #0dh
        sta     (<IND)
?1:        
        jsr     INCINDX
;;        cmp     #0
;;        beq     FillFData_100_1
        cmp     #0dh
        beq     FillFData_100_1
        iny
        bra     FillFData_100_6
FillFData_100_1:
        inx
        iny
        cpx     #EditItemNum+1  ;;10
        bcc     FillFData_100_0
;;       jsr     INCINDX
        lda     #0
        sta     (<ind)
        rts

;;***********************************************************
FillFillInputBuff:      ;;only for Card.asm
       lda     #>DS0Bank
       sta     <DRRH
       lda     #<DS0Bank
       sta     <DRRL
        
        jsr     FillFData_200
       
       lda     #<FData
       sta     <INDL
       lda     #>FData
       sta     <INDH
        
       lda     #<InputBuff
       sta     <INSL
       lda     #>InputBuff
       sta     <INSH

       lda     #<CardName
       sta     <TempCount
       lda     #>CardName
       sta     <TempCount1
        
       ldx     #0
FillFillInputBuff3X:
FillFillInputBuff3:
       lda     (<TempCount)
       beq     FillFillInputBuff31
       cmp      #0dh
       beq     FillFillInputBuff31
       sta     (<IND)
       jsr     INCINDX
       inc     <TempCount
       bne     FillFillInputBuff3
       inc     <TempCount1
       bra     FillFillInputBuff3
        
FillFillInputBuff31:
       inc     <TempCount
       bne     FillFillInputBuff32
       inc     <TempCount1
FillFillInputBuff32:
        
FillFillInputBuff4:
       lda     (<INS)
       sta     (<IND)
       jsr     INCINSX
       jsr     INCINDX
       cmp     #0
       beq     change_od_0
       cmp      #0dh
       bne      FillFillInputBuff4
change_od_0:
       inx
       cpx     #EditItemNum+1   ;;10
       bcc     FillFillInputBuff3X

;       ldy     <INDL
;       sty     <EndPointL
;FillFillInputBuff5:
;       lda     FData,y
;       sta     InputBuff,y
;       dey
;       cpy     #0ffh
;       bne     FillFillInputBuff5
       lda     #<FData
       sta     <InsL
       lda     #>FData
       sta     <InsH
        
       lda     #<InputBuff
       sta     <INdL
       lda     #>InputBuff
       sta     <INdH
?Loop:  lda     (<InsL)
        sta     (<IndL)
        beq     ?End
        jsr     INCINSX
        jsr     INCINDX
        bra     ?Loop
?End:
       rts
;;***********************************************************
;;***********************************************************
;;[s]-----------------------------[s]
;; 名片存储前处理Inputbuff(去掉头)
;;[s]-----------------------------[s]
DealInputBuffToSave:
       lda     #<InputBuff
       sta     <INSL
       lda     #>InputBuff
       sta     <INSH
       ldy     #6
       ldx     #0
DealInputBuffToSave0:
       lda     (<INS),y
       sta     (<INS)
       jsr     INCINSX
       cmp     #0dh
       beq     change_0d
       cmp     #0
       bne     DealInputBuffToSave0
change_0d:
       inx
       cpx     #EditItemNum+1   ;;13+1   ;;10
       bcs     EndDealInputBuffToSave
       tya
       clc
       adc     #6
       tay
       cpx     #E_MailItem              ;;7 ;;6 e-mail
       bne     DealInputBuffToSave0
       clc
       adc     #2
       tay
       bra     DealInputBuffToSave0
       
EndDealInputBuffToSave:
       lda     <EndPointL
       sec
       sbc     #TotalHeadLen    ;;86     ;;62
       sta     <EndPointL
       lda     <EndPointH
       sbc     #0
       sta     <EndPointH
       rts

;;[s]-----------------------------------[s]
;;       把FLASH里的密码读进RAM的FDATA里
;;DataSecretCode EQU     FDATA   ;;B00H
;;GameSecretCode EQU     FDATA   ;;B00H+8
;;[s]-----------------------------------[s]
ReadSecretCodeToBuff:
        lda     <DRRl		;;zl.Data ROM bank pointer Register
        pha
        lda     <DRRh		;;zl.Data ROM bank pointer Register.define in the st2202.def
        pha
        lda     <insh		;;zl.Index Source define in data.def
        pha
        lda     <insl		;;
        pha
        phy			;;
;;      lda     #>flashbank
;;      sta     <drrh
        stz     <drrh		;;zl.set drrh zero
        lda     #<flashbank	;;zl. define in data.def
        sta     <drrl
        lda     #>secret_area_addr;;zl.store secret_area_addr in the ins(Index Source)
        sta     <INSH
        lda     #<secret_area_addr
        sta     <INSL
        ldy     #16-1
?1:
        lda     (<INS),y	;;
        sta     DataSecretCode,y
        dey
        bpl     ?1
        ply
        pla
        sta     <insl
        pla
        sta     <insh
        pla
        sta     <DRRh
        pla
        sta     <drrl

        smb4    <ScanFState
        lda     DataSecretCode
        cmp     #0ffh
        bne     ?2
        lda     DataSecretCode+8
        cmp     #0ffh
        bne     ?2
        rmb4    <ScanFState
?2:
        rts

        end

⌨️ 快捷键说明

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