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

📄 24dot.asm

📁 辞典 dict3.asm.grammar.asm,newword.asm 学习 learn.asm 名片 userinf.asm 备忘 userinf.asm 提醒 userinf
💻 ASM
📖 第 1 页 / 共 5 页
字号:
        stz     start_flag
        lsetscreen 0  ;;14
        jsr     display_second_time
        jsr     display_four_pais

        stz     ox
        lda     #76
        sta     oy
        loprintimage  bottom_line
        jsr     ClearNum_hs
        jsr     clear_arg
        jsr     clear_all_input
        stz     key_code
        jsr     init_datastack_point

        jmp     jmplmainu
;;=======================================
_24dot_KeyDown:
        lread_key_again
        LKeyTone
        lda     start_flag
        and     #80h
        beq     ?fhudsi
        jmp     bomb_menu_key_down
?fhudsi:
ggggggggg:
        lda     <KeyNo
        cmp     #ShiftKey
        bne     ?0000000
        jsr     xor_shiftflag
        jmp     display_shift

?0000000:
        cmp     #EscKey
        bne     ?game_bomb_key_down_program
        jmp     display_game_menu_24dot

?game_bomb_key_down_program:
        cmp     #EnterKey
        bne     ?0000001
        jmp     enter_process_in_data_input
?0000001:
        lda     start_flag
        and     #40h
        beq     ?QQQQQQQQQQQQQQQQQQ
        jmp     jmplmainu
?QQQQQQQQQQQQQQQQQQ:
        ldx     #00h
?0:
        lda     KeyNum,x
        cmp     KeyNo
        beq     ?1
        inx
        cpx     #19h

        bcc     ?0
?01:    jmp     jmplmainu
?1:
        bbr5    <ShiftFlag,?K1
        lda     KeyParity2,x
        bra     ?k3

?K1:    lda     KeyParity1,x
        cmp     #code_del
        bne     ?k3
        jmp     del_key_process

?K3:
        ldx     CharNum
        cpx     #15
        bcs     jmplmainu
        inc     CharNum
?12:
        sta     input_string,x
to_disp_input_string:
        jsr     display_input_string
other_key_in:
        jsr     clear_shiftflag
display_shift:
        jsr     ljsr
        dw      SciBank
        dw      ShowShift-1
        bra     jmplmainu
jmplmain:
        lmain
jmplmainu:
_24dot_keypress:
_24dot_KeyUp:
_24dot_min:
_24dot_timer:

        lmainu

del_key_process:
        lda     #0ffh
        ldx     CharNum
        beq     ?93451034
        dec     CharNum
?93451034:
        sta     input_string-1,x
        bra     to_disp_input_string

display_second_time:
        lda     #time_position
        sta     <ox
        stz     <oy
        ldy     #00h
?loop_for_display_second_time:
        lda     second_count3,y
        ora     #30h
        tax
        phy
        LDrawChar12
        ply
        clc
        lda     #08h
        adc     <ox
        sta     <ox

        iny
        cpy     #1
        bne     ?skip_ox_add_3
        clc
        lda     <ox
        adc     #08h
        sta     <ox
?skip_ox_add_3:
        cpy     #3
        bne     ?loop_for_display_second_time

        rts

display_four_pais:
        lda     #120-25
        sta     <ox
?loop_000001:
        stz     <oy
        loprintimage  pai_icon_tab

        lda     <ox
        sec
        sbc     #30
        sta     <ox
        bpl     ?loop_000001

        jsr     get_four_pai_abcd
        ldy     #04h
display_abcd_loop:
        phy
        jsr     count_property_coordinate
        ldx     random_no

        lda     rand_data,x
        tax
        lda     pai_a_property,x
        asl
        tax
        lda     asc_property_address,x
        sta     <image_addrl
        lda     asc_property_address+1,x
        sta     <image_addrh

        loprintimage
        ply
        phy
        jsr     count_abcd_coordinate
        ldx     random_no
        lda     rand_data,x
        tax
        lda     pai_a,x
        asl
        tax
        lda     asc_pai_address,x
        sta     <image_addrl
        lda     asc_pai_address+1,x
        sta     <image_addrh

        loprintimage

        inc     random_no
        lda     #7fh
        and     random_no
        sta     random_no

        ply

        dey
        bne     display_abcd_loop

        rts
;;========================================
count_property_coordinate:
        lda     #02h
        sta     <oy
        lda     #09

count_coordinate_ox:
        clc
?count_property_coordinate_loop:
        dey
        beq     ?count_coordinate_exit
        adc     #30
        bra     ?count_property_coordinate_loop
?count_coordinate_exit:
        sta     <ox
        rts
count_abcd_coordinate:
        lda     #12
        sta     <oy
        lda     #08h
        bra     count_coordinate_ox

get_four_pai_abcd:
        lda     which_game
        and     #01h
        beq     ?init_class_play
        ldx     #<large_than_10_tab
        ldy     #>large_than_10_tab
        bra     _class_play
?init_class_play:
        ldx     #<less_than_10_tab
        ldy     #>less_than_10_tab
_class_play:
        stx     <inxmov
        sty     <inxmov1

        ldx     #09h
random_mul_9_loop:
        dex
        bmi     random_no_mul_9_exit
        clc
        lda     <inxmov
        adc     random_no1
        sta     <inxmov
        bcc     random_mul_9_loop
        inc     <inxmov1
        bra     random_mul_9_loop
random_no_mul_9_exit:
        ldy     #08h
copy_9_datas_from_tab_loop:
        lda     (inxmov),y
        sta     data_buffor,y
        dey
        bpl     copy_9_datas_from_tab_loop
        jsr     get_pai_property_and_abcd

        rts

get_pai_property_and_abcd:
        ldy     #00h
        ldx     #00h
?next_data:
        lda     data_buffor,y
        and     #1fh
        cmp     #14h
        bcs     ?next_y
        lda     data_buffor,y
        and     #7fh
        beq     ?next_y_exit
        and     #1fh
        sta     pai_a,x
        lda     data_buffor,y
        lsr
        lsr
        lsr
        lsr
        lsr
        sta     pai_a_property,x
        inx
?next_y:
        iny
        cpy     #09h
        bcc     ?next_data
?next_y_exit:

        rts

xor_shiftflag:
        lda     ShiftFlag
        eor     #00100000b
        sta     <ShiftFlag
        rts
clear_shiftflag:
        lda     <ShiftFlag
        and     #11011111b
        sta     <ShiftFlag
        rts

display_input_string:

        ldy     #00h
        stz     <ox
display_input_string_loop:
        phy
        lda     #58
        sta     <oy

        lda     input_string,y
        cmp     #0ffh
        bne     ?skip_get_dummy
        lda     #1bh

?skip_get_dummy:
        asl
        tax
        lda     asc6_address,x
        sta     <image_addrl
        lda     asc6_address+1,x
        sta     <image_addrh

        loprintimage
        clc

        lda     #08h
        adc     <ox
        sta     <ox

        ply
        iny
        cpy     #19
        bne     display_input_string_loop

        rts

clear_input_string:
        ldx     #20
        lda     #0ffh
?1:     sta     input_string,x
        dex
        bpl     ?1
        stz     charnum
        rts

ClearNum_hs:
        jsr     clear_fac

Clear_textbuf_hs:
        jsr     clear_input_string

        stz     CharNum
        stz     StatusFlag
        stz     DecExp
        stz     DecText
        stz     DecText+1

        rts
clear_fac:
        ldx     #5
?2:     stz     Fac_Exp,x
        dex
        bpl     ?2
        rts
get_cursor_coordinate:
        lda     #60
        sta     <oy
        lda     CharNum
        asl
        asl
        asl
        sta     <ox
        rts
display_error_result:

⌨️ 快捷键说明

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