mirror of
https://github.com/deater/dos33fsprogs.git
synced 2025-01-14 13:33:48 +00:00
tfv: name entry works
This commit is contained in:
parent
a6595254b8
commit
7b887addd6
@ -12,11 +12,12 @@ zero_name_loop:
|
|||||||
cpx #8
|
cpx #8
|
||||||
bne zero_name_loop
|
bne zero_name_loop
|
||||||
|
|
||||||
|
; set up initial conditions
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta NAMEX
|
sta NAMEX ; name ptr
|
||||||
sta XX
|
sta XX ; x-coord of grid
|
||||||
sta YY
|
sta YY ; y-coord of grid
|
||||||
|
|
||||||
name_loop:
|
name_loop:
|
||||||
; clear screen
|
; clear screen
|
||||||
@ -26,6 +27,8 @@ name_loop:
|
|||||||
|
|
||||||
; print entry string at top
|
; print entry string at top
|
||||||
|
|
||||||
|
jsr normal_text
|
||||||
|
|
||||||
lda #>(enter_name_string)
|
lda #>(enter_name_string)
|
||||||
sta OUTH
|
sta OUTH
|
||||||
lda #<(enter_name_string)
|
lda #<(enter_name_string)
|
||||||
@ -143,6 +146,7 @@ textentry_normal:
|
|||||||
jmp textentry_putc
|
jmp textentry_putc
|
||||||
|
|
||||||
textentry_inverse:
|
textentry_inverse:
|
||||||
|
sta putletter_smc+1
|
||||||
and #$3f ; convert to INVERSE
|
and #$3f ; convert to INVERSE
|
||||||
sta (GBASL),Y
|
sta (GBASL),Y
|
||||||
lda #' '
|
lda #' '
|
||||||
@ -157,25 +161,64 @@ textentry_putc:
|
|||||||
cpy #8
|
cpy #8
|
||||||
bne inner_matrix_loop
|
bne inner_matrix_loop
|
||||||
|
|
||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
cpx #8
|
cpx #8
|
||||||
bne print_char_selector_loop
|
bne print_char_selector_loop
|
||||||
|
|
||||||
|
|
||||||
.if 0
|
; special case bottom buttons
|
||||||
|
lda YY
|
||||||
|
cmp #8
|
||||||
|
bne done_button_normal
|
||||||
|
lda XX
|
||||||
|
cmp #4
|
||||||
|
bcs done_button_normal
|
||||||
|
done_button_inverse:
|
||||||
|
jsr inverse_text
|
||||||
|
jmp done_button_print
|
||||||
|
|
||||||
|
done_button_normal:
|
||||||
|
jsr normal_text
|
||||||
|
|
||||||
|
done_button_print:
|
||||||
|
lda #>(done_button_string)
|
||||||
|
sta OUTH
|
||||||
|
lda #<(done_button_string)
|
||||||
|
sta OUTL
|
||||||
|
jsr move_and_print
|
||||||
|
|
||||||
|
|
||||||
|
lda YY
|
||||||
|
cmp #8
|
||||||
|
bne back_button_normal
|
||||||
|
lda XX
|
||||||
|
cmp #4
|
||||||
|
bcc back_button_normal
|
||||||
|
back_button_inverse:
|
||||||
|
jsr inverse_text
|
||||||
|
jmp back_button_print
|
||||||
|
|
||||||
|
back_button_normal:
|
||||||
|
jsr normal_text
|
||||||
|
|
||||||
|
back_button_print:
|
||||||
|
|
||||||
|
lda #>(back_button_string)
|
||||||
|
sta OUTH
|
||||||
|
lda #<(back_button_string)
|
||||||
|
sta OUTL
|
||||||
|
jsr move_and_print
|
||||||
|
|
||||||
|
|
||||||
|
done_bottom_buttons:
|
||||||
|
|
||||||
if ((cursor_y==8) && (cursor_x<4)) basic_inverse();
|
|
||||||
basic_print(" DONE ");
|
|
||||||
basic_normal();
|
|
||||||
basic_print(" ");
|
|
||||||
if ((cursor_y==8) && (cursor_x>=4)) basic_inverse();
|
|
||||||
basic_print(" BACK ");
|
|
||||||
.endif
|
|
||||||
|
|
||||||
|
;=================
|
||||||
;=================
|
;=================
|
||||||
; handle keypress
|
; handle keypress
|
||||||
|
;=================
|
||||||
|
;=================
|
||||||
|
|
||||||
jsr get_keypress
|
jsr get_keypress
|
||||||
|
|
||||||
@ -241,40 +284,33 @@ textentry_return:
|
|||||||
|
|
||||||
textentry_handle_button:
|
textentry_handle_button:
|
||||||
|
|
||||||
|
lda XX
|
||||||
|
cmp #4
|
||||||
|
bcc button_was_done
|
||||||
|
|
||||||
|
button_was_back:
|
||||||
|
lda #0
|
||||||
|
ldx NAMEX
|
||||||
|
sta HERO_NAME,X
|
||||||
|
dec NAMEX
|
||||||
|
bpl back_not_zero
|
||||||
|
sta NAMEX
|
||||||
|
back_not_zero:
|
||||||
|
jmp done_textentry_keypress
|
||||||
|
|
||||||
|
button_was_done:
|
||||||
|
; done with this, exit routine
|
||||||
|
jmp done_enter_name
|
||||||
|
|
||||||
|
|
||||||
textentry_insert_char:
|
textentry_insert_char:
|
||||||
lda TEMPY
|
|
||||||
|
putletter_smc:
|
||||||
|
lda #$d1
|
||||||
ldx NAMEX
|
ldx NAMEX
|
||||||
sta HERO_NAME,X
|
sta HERO_NAME,X
|
||||||
inc NAMEX
|
inc NAMEX
|
||||||
|
|
||||||
.if 0
|
|
||||||
if (cursor_y==8) {
|
|
||||||
if (cursor_x<4) {
|
|
||||||
ch=27;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
nameo[name_x]=0;
|
|
||||||
name_x--;
|
|
||||||
if (name_x<0) name_x=0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (cursor_y<4) nameo[name_x]=(cursor_y*8)+
|
|
||||||
cursor_x+64;
|
|
||||||
else nameo[name_x]=(cursor_y*8)+cursor_x;
|
|
||||||
name_x++;
|
|
||||||
}
|
|
||||||
else if ((ch>32) && (ch<128)) {
|
|
||||||
nameo[name_x]=ch;
|
|
||||||
name_x++;
|
|
||||||
|
|
||||||
}
|
|
||||||
; if (ch==27) break;
|
|
||||||
|
|
||||||
.endif
|
|
||||||
|
|
||||||
done_textentry_keypress:
|
done_textentry_keypress:
|
||||||
|
|
||||||
|
|
||||||
@ -367,8 +403,15 @@ done_enter_name:
|
|||||||
enter_name_string:
|
enter_name_string:
|
||||||
.byte 0,0,"PLEASE ENTER A NAME:",0
|
.byte 0,0,"PLEASE ENTER A NAME:",0
|
||||||
|
|
||||||
|
done_button_string:
|
||||||
|
.byte 11,21," DONE ",0
|
||||||
|
|
||||||
|
back_button_string:
|
||||||
|
.byte 20,21," BACK ",0
|
||||||
|
|
||||||
default_hero:
|
default_hero:
|
||||||
.byte "DEATER",0
|
.byte "DEATER",0
|
||||||
|
|
||||||
default_heroine:
|
default_heroine:
|
||||||
.byte "FROGGY",0
|
.byte "FROGGY",0
|
||||||
|
|
||||||
|
@ -131,6 +131,8 @@ title_new_game:
|
|||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
bit PAGE0
|
bit PAGE0
|
||||||
|
|
||||||
|
jsr clear_bottom
|
||||||
|
|
||||||
; continue the bottom of the "T"
|
; continue the bottom of the "T"
|
||||||
|
|
||||||
lda #' '
|
lda #' '
|
||||||
|
Loading…
x
Reference in New Issue
Block a user