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