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

📄 catalog.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;        ldy     #0
;?_3:    lda     (<StartX),y
;        sta     (<INS),y
;        iny
;        cpy     #20
;        bcc     ?_3
;        lda     <StartX
;        clc
;        adc     #20
;        sta     <StartX
;        lda     <StartY
;        adc     #0
;        sta     <StartY

;        jsr     Delay_xx

;        jsr     inc_temp_num
;        lda     <temp_numl
;        cmp     #04ch		;行数
;        bne     ?_0
;        lda     <temp_numh
;        cmp     #02h
;        bne     ?_0

;        rts

Delay_xx:
        phx
        phy
        ldy     #0
?_1:    ldx     #0
?_0:    inx
        bne     ?_0
        iny
        bne     ?_1

        ldy     #0
?_3:    ldx     #0
?_2:    inx
        bne     ?_2
        iny
        bne     ?_3

        ply
        plx
        rts


show_mulu:
        lda #>MenuLibDataBank
        sta <drrh
        lda #<MenuLibDataBank
        sta <drrl
        lda     #>mulu
        sta     <insh
        lda     #<mulu
        sta     <insl

        stz	<CurX
        stz	<CurY
        ;jsr     LJSR
        ;dw      ps1_Bank
        ;dw      ShowAnim-1
        jsr	ShowAnim_Mend
        jsr	FreshLcd
        ;jsr     show_one_screen
        rts

DrawRowTbl:
        DW      0980H+19,0994H+19,09A8H+19,09BCH+19,09D0H+19,09E4H+19,09F8H+19,0A0CH+19,0A20H+19,0A34H+19
        DW      0A48H+19,0A5CH+19,0A70H+19,0A84H+19,0A98H+19,0AACH+19,0AC0H+19,0AD4H+19,0AE8H+19,0AFCH+19
        DW      0B10H+19,0B24H+19,0B38H+19,0B4CH+19,0B60H+19,0B74H+19,0B88H+19,0B9CH+19,0BB0H+19,0BC4H+19
        DW      0BD8H+19,0BECH+19,0C00H+19,0C14H+19,0C28H+19,0C3CH+19,0C50H+19,0C64H+19,0C78H+19,0C8CH+19
        DW      0CA0H+19,0CB4H+19,0CC8H+19,0CDCH+19,0CF0H+19,0D04H+19,0D18H+19,0D2CH+19,0D40H+19,0D54H+19
        DW      0D68H+19,0D7CH+19,0D90H+19,0DA4H+19,0DB8H+19,0DCCH+19,0DE0H+19,0DF4H+19,0E08H+19,0E1CH+19
        DW      0E30H+19,0E44H+19,0E58H+19,0E6CH+19,0E80H+19,0E94H+19,0EA8H+19,0EBCH+19,0ED0H+19,0EE4H+19
        DW      0EF8H+19,0F0CH+19,0F20H+19,0F34H+19,0F48H+19,0F5CH+19,0F70H+19,0F84H+19,0F98H+19,0FACH+19

Bit_WhiteTable:
        db      11111110b
        db      11111101b
        db      11111011b
        db      11110111b
        db      11101111b
        db      11011111b
        db      10111111b
        db      01111111b

Bit_Table:
        db      00000001b
        db      00000010b
        db      00000100b
        db      00001000b
        db      00010000b
        db      00100000b
        db      01000000b
        db      10000000b

DrawLine:
	jsr	SetPixel
	inc	<OX
	lda	<OX
	cmp	#159
	bcc	DrawLine
	rts

;Input:  (OX,OY)
;Output: 在(OX,OY)位置输出一个黑点
SetPixel:
        pha
        phx
        lda     <OY
        asl
        tax

        lda     <OX
        lsr
        lsr
        lsr     ;OX/8
        sta     <INDL
        lda     DrawRowTbl,x
        sec
        sbc     <INDL
        sta	<INDL

        lda     DrawRowTbl+1,x
        sbc     #0
        sta     <INDH

        lda     <OX
        and     #7      ;OX mode 8
        tax
        lda     (<IND)
        ora     Bit_Table,x
        sta     (<IND)
        plx
        pla
        rts

;Input:  (OX,OY)
;Output: 在(OX,OY)位置输出一个白点
ErasePixel:
        pha
        phx
        lda     <OY
        asl
        tax

        lda     <OX
        lsr
        lsr
        lsr     ;OX/8
        sta     <INDL
        lda     DrawRowTbl,x
        sec
        sbc     <INDL
        sta	<INDL
        lda     DrawRowTbl+1,x
        sbc     #0
        sta     <INDH

        lda     <OX
        and     #7      ;OX mode 8
        tax
        lda     (<IND)
        and     Bit_WhiteTable,x
        sta     (<IND)
        plx
        pla
        rts

inc_temp_num:
        inc     <temp_numl
        bne     ?_0
        inc     <temp_numh
?_0:
        rts
delay2s:
        rmb1    <Eflag
        bbr1    <Eflag,$
	rmb1    <Eflag
        bbr1    <Eflag,$
        rmb1    <Eflag
        rts

;************************************************
FrameChar       equ     CData+0
FrameLen        equ     CData+1
FrameFlag       equ     CData+2
Animy           equ     CData+3
Animx           equ     CData+4
Reanimh         equ     CData+5
Reaniml         equ     CData+6
StoreFrame      equ     CData+7
Frames          equ     CData+8
Repeats         equ     CData+9

;Input: (INSL,INSH),(CurX,CurY)
;
ShowAnim_Mend:
        lda     (<INS)
        sta     <Repeats
        jsr     DrawINCINS
        lda     (<INS)
        sta     <Frames
        sta     <StoreFrame
        jsr     DrawINCINS

        lda     <INSL
        sta     <ReAnimL
        lda     <INSH
        sta     <ReAnimH

        lda     <CurX
        sta     <Animx
        lda     <CurY
        sta     <Animy

frameloop:
        lda     (<INS)
        sta     <FrameFlag
        and     #00001111b
        asl
        asl
        asl
        clc
        adc     <Animy
        sta     <CurY
        jsr     DrawINCINS
        lda     (<INS)
        clc
        adc     <Animx
        sta     <CurX
        jsr     DrawINCINS
        lda     (<INS)
        sta     <FrameLen
        jsr     DrawINCINS

        lda     <FrameFlag
        and     #40h
        bne     reframedata
?_0:
        lda     (<INS)
        jsr     ShowByte_H
        jsr     DrawINCINS
        dec     <FrameLen
        bne     ?_0
        bra     groupend

reframedata:
        lda     (<INS)
        sta     <FrameChar
        jsr     DrawINCINS
?_0:    lda     <FrameChar
        jsr     ShowByte_H
        dec     <FrameLen
        bne     ?_0
groupend:
        lda     <FrameFlag
        and     #80h
        beq     frameloop

        lda     (<INS)
        jsr     DrawINCINS

        bbs3	<EFlag,anim_end

        jsr     DelayForAnim

SkipDelay:
        dec     <Frames
        bne     frameloop

        lda     <Repeats
        cmp     #2
        bcc     anim_end
        dec
        sta     <Repeats

        lda     <ReAnimL
        sta     <INSL
        lda     <ReAnimH
        sta     <INSH

        lda     <StoreFrame
        sta     <Frames

        jsr     DelayForAnim
        jsr     DelayForAnim

        bra      frameloop       ;repeatloop
anim_end:
        rts


DrawINCINS:
        inc     <INSL
        bne     ?_0
        inc     <INSH
?_0:    rts

DelayForAnim:
        ldx     #0
?_0:    lda     #0
?_1:    nop
        dec
        bne     ?_1
        nop
        dex
        bne     ?_0
        rts

;Input: A (CurX,CurY)
;
ShowByte_H:
        phy
        ldy     <CurX
        sty     <OX
        ldy     <CurY
        dey
        sty     <OY
        ldx     #8-1
?_0:    inc     <OY
        lsr
        bcs     ?_1
        bbs4    <SF1,?_2        ;"or"模式,白点不显示
        jsr     ErasePixel
        bra     ?_2
?_1:    jsr     SetPixel
?_2:    dex
        bpl     ?_0
        inc     <CurX
        ply
        rts
jmp_to_lmain:
jmp_lmain:
	LMAIN
jmp_to_lmainu:
jmp_lmainu:
	lmainU
;************************************************
ban_duan_if_left_icon:
	ldy <lblock_item
	dey
	tya
	sta  <temp
	asl
	asl
	asl
	asl
	adc  <temp
	adc  <temp
	adc  <temp
	adc  <temp
	tay

	lda  textbuffor+20,y
	cmp   #41h
	bcc   ban_duan_if_left_icon_end
	cmp   #5ah
	beq   clear_left_icon
	bcs   ban_duan_if_left_icon_end
clear_left_icon:
	loff_lcd_icon iconleft
ban_duan_if_left_icon_end:
	rts

ban_duan_all_icon:
       jsr  ban_duan_if_left_icon
       jsr  ban_duan_all_up_down_icon
       rts
textbuffor_tab:
	db 20,40,60,80

ban_duan_all_up_down_icon:
	ldx  #0
	lda  ItemNo
	cmp  #0ah
	beq  icon_yanyu
	cmp  #0bh
	beq  icon_bugui
icon_en_name:
	lda textbuffor_tab,x
	tay
	lda textbuffor,y
	cmp #'Z'
	beq icon_en_name_0
	inx
	cpx #4
	beq end_all_end
	bra icon_en_name
end_all_end:
	rts
icon_en_name_0:
	ldx  #0
icon_en_name_1:
	lda textbuffor_tab,x
	tay
	lda textbuffor+1,y
	cmp #'o'
	beq icon_en_name_2
	inx
	cpx #4
	beq end_all_end
	bra icon_en_name_1
icon_en_name_2:
	lda textbuffor,y
	cmp #'Z'
	beq is_last_off_icon
	bra end_all_end


icon_yanyu:
	lda textbuffor_tab,x
	tay
	lda textbuffor,y
	cmp #'Z'
	beq is_last_off_icon
	inx
	cpx #4
	beq end_all
	bra icon_yanyu
icon_bugui:
	lda textbuffor_tab,x
	tay
	lda textbuffor,y
	cmp #'w'
	beq is_last_off_icon_bugui_0
	inx
	cpx #4
	beq end_all
	bra icon_bugui
is_last_off_icon_bugui_0:
	ldx #0
is_last_off_icon_bugui_1:
	lda textbuffor_tab,x
	tay
	lda textbuffor+1,y
	cmp #'r'
	beq is_last_off_icon_bugui_2
	inx
	cpx #4
	beq end_all
	bra is_last_off_icon_bugui_1
is_last_off_icon_bugui_2:
	ldx #0
is_last_off_icon_bugui_3:
	lda textbuffor_tab,x
	tay
	lda textbuffor+2,y
	cmp #'i'
	beq is_last_off_icon_bugui_4
	inx
	cpx #4
	beq end_all
	bra is_last_off_icon_bugui_3
is_last_off_icon_bugui_4:
	ldx #0
is_last_off_icon_bugui_5:
	lda textbuffor_tab,x
	tay
	lda textbuffor+3,y
	cmp #'t'
	beq is_last_off_icon
	inx
	cpx #4
	beq end_all
	bra is_last_off_icon_bugui_5
is_last_off_icon:
	loff_lcd_icon icon_downpage
	ldy  <lblock_item
	cpy  #4
	bcc  end_all_00
	bra  end_all_11
end_all_00:
	lda textbuffor_tab,y
	tay
	lda textbuffor,y
	cmp #20h
	bne end_all
end_all_11:
	loff_lcd_icon icondown
end_all:
	rts
ban_duan_yan_yu_end_begin:
	lda <fu_lu_indxd
	cmp #027h
	bne ban_duan_end
	lda <fu_lu_indxd+1
	cmp #97h
	bne  ban_duan_end
	loff_lcd_icon icon_uppage
	rts
ban_duan_end:
	lda <fu_lu_indxd
	cmp #0e6h
	bne ban_duan_end_end
	lda <fu_lu_indxd+1
	cmp #0eeh
	bne ban_duan_end_end
	loff_lcd_icon icon_downpage
ban_duan_end_end:
	rts
ban_duan_bu_gui_end_begin:
	lda <fu_lu_indxd
	cmp #08h
	bne ban_duan_bu_gui_end
	lda <fu_lu_indxd+1
	cmp #0efh
	bne  ban_duan_bu_gui_end
	loff_lcd_icon icon_uppage
	rts

ban_duan_bu_gui_end:
	lda <fu_lu_indxd+2
	cmp #0f5h
	bne ban_duan_bu_gui_end_end
	lda <fu_lu_indxd
	cmp #0fch
	bne ban_duan_bu_gui_end_end
	lda <fu_lu_indxd+1
	cmp #08eh
	bne ban_duan_bu_gui_end_end
	loff_lcd_icon icon_downpage
ban_duan_bu_gui_end_end:
	rts
ban_duan_name_end_begin:
	llight_lcd_icon icon_uppage
	llight_lcd_icon icon_downpage
	lda <fu_lu_indxd
	cmp #0f8h
	bne ban_duan_name_end
	lda <fu_lu_indxd+1
	cmp #0a9h
	bne  ban_duan_name_end
	lda <fu_lu_indxd+2
	cmp #0f5h
	bne  ban_duan_name_end
	loff_lcd_icon icon_uppage
	rts
ban_duan_name_end:
	lda <fu_lu_indxd
	cmp #067h
	bne ban_duan_name_end_end
	lda <fu_lu_indxd+1
	cmp #0abh
	bne ban_duan_name_end_end
	lda <fu_lu_indxd+2
	cmp #0f7h
	bne ban_duan_name_end_end
	loff_lcd_icon icon_downpage
ban_duan_name_end_end:
	rts

FreshLcd:
        lupdate_all_icon
	rts

senddatatopc:
	jsr	LJSR
	dw	BiosBank
	dw	StartSio-1

	lda	#80h
	sta	<DrrL
	stz	<DRRH

	lda	#80h
	sta	<INSH
	stz	<INSL

?0	lda	(<INS)
	tax
	jsr	LJSR
	dw	BiosBank
	dw	SendByte-1

	inc	<INSL
	bne	?0
	inc	<INSH
	bne	?0
	inc	<DRRL
	lda	#80h
	sta	<INSH
	lda	<DRRL
	cmp	#90h
	bcc	?0

	bra	$

; ***************************************************************************
        PUBLIC  lvd_turn_off
lvd_turn_off:
        lda     #icon_battery&0ffh
        tsb     icon_battery>>8

        Lsetscreen 14

        LDX     #0
?START0:
        LDA     LVD_TEXT0,X
        BEQ     ?END0
        STA     TEXTBUFFOR,X
        INX
        BRA     ?START0
?END0:

        LDX     #0
?START1:
        LDA     LVD_TEXT1,X
        BEQ     ?END1
        STA     TEXTBUFFOR+20,X
        INX
        BRA     ?START1
?END1:

        LUpdateScreen

        WAI
        NOP
        WAI
        NOP
        WAI
        NOP
        WAI
        NOP

        jmp     turn_off

LVD_TEXT0:
        DB      "电压低,",0
LVD_TEXT1:
        DB      "请换电池.",0


; ***************************************************************************
        End
; ***************************************************************************

⌨️ 快捷键说明

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