mirror of
https://github.com/mi57730/a2d.git
synced 2025-02-09 04:30:43 +00:00
DeskTop: Insertion point fun
This commit is contained in:
parent
904ce43d49
commit
2da03912a0
@ -5,7 +5,7 @@ CCFLAGS = --config asm.cfg
|
||||
|
||||
OUTDIR = out
|
||||
|
||||
HEADERS = $(wildcard ../*.inc) $(wildcard ../inc/*.inc) $(wildcard *.inc) $(OUTDIR)/desktop_res.inc
|
||||
HEADERS = $(wildcard ../*.inc) $(wildcard ../inc/*.inc) $(wildcard *.inc)
|
||||
|
||||
SEGMENTS = loader mgtk desktop invoker \
|
||||
ovl1 ovl1a ovl1b ovl1c ovl2 ovl34567
|
||||
@ -32,10 +32,10 @@ $(OUTDIR)/desktop_res.inc: desktop_res.s desktop_res_builder.s res/build_res_inc
|
||||
$(OUTDIR)/desktop.o: desktop.s $(HEADERS) desktop_aux.s desktop_lc.s desktop_main.s desktop_res.s
|
||||
$(CC65)/ca65 $(CAFLAGS) --listing $(basename $@).list -o $@ $<
|
||||
|
||||
$(OUTDIR)/ovl34567.o: ovl34567.s $(HEADERS) ovl3.s ovl4.s ovl5.s ovl6.s ovl7.s
|
||||
$(OUTDIR)/ovl34567.o: ovl34567.s $(HEADERS) $(OUTDIR)/desktop_res.inc ovl3.s ovl4.s ovl5.s ovl6.s ovl7.s
|
||||
$(CC65)/ca65 $(CAFLAGS) --listing $(basename $@).list -o $@ $<
|
||||
|
||||
$(OUTDIR)/%.o: %.s $(HEADERS)
|
||||
$(OUTDIR)/%.o: %.s $(HEADERS) $(OUTDIR)/desktop_res.inc
|
||||
$(CC65)/ca65 $(CAFLAGS) --listing $(basename $@).list -o $@ $<
|
||||
|
||||
# Built DeskTop segments
|
||||
|
@ -2864,8 +2864,8 @@ all_label_pos: DEFINE_POINT 325,91
|
||||
.byte $1C,$00,$70,$00
|
||||
.byte $1C,$00,$87,$00
|
||||
|
||||
LAE6C: .byte $00 ; text mask
|
||||
LAE6D: .byte $7F ; text mask
|
||||
textbg_black: .byte $00
|
||||
textbg_white: .byte $7F
|
||||
|
||||
press_ok_to_rect: DEFINE_RECT 39,25,360,80
|
||||
prompt_rect: DEFINE_RECT 40,60,360,80
|
||||
|
@ -115,7 +115,8 @@ main_loop:
|
||||
lda #0
|
||||
sta loop_counter
|
||||
|
||||
jsr L4563 ; called every few ticks ???
|
||||
;; Poll drives for updates
|
||||
jsr L4563
|
||||
beq :+
|
||||
jsr L40E0 ; conditionally ???
|
||||
|
||||
@ -694,7 +695,7 @@ next: dey
|
||||
|
||||
stx L4597
|
||||
stx L45A0
|
||||
jsr L45B2
|
||||
jsr poll_drive
|
||||
ldx L45A0
|
||||
beq done
|
||||
: lda L45A0,x
|
||||
@ -712,17 +713,19 @@ L4559: lda DEVLST,y
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
;;; Determine ejectability?
|
||||
|
||||
.proc L4563
|
||||
lda L45A0
|
||||
beq L4579
|
||||
jsr L45B2
|
||||
beq done
|
||||
jsr poll_drive
|
||||
ldx L45A0
|
||||
L456E: lda L45A0,x
|
||||
cmp L45A9,x
|
||||
bne L457C
|
||||
dex
|
||||
bne L456E
|
||||
L4579: return #0
|
||||
done: return #0
|
||||
|
||||
L457C: lda L45A0,x
|
||||
sta L45A9,x
|
||||
@ -754,7 +757,9 @@ L45A9: .byte $00,$00,$00,$00,$00,$00,$00,$00
|
||||
|
||||
;; Possibly SmartPort STATUS call to determine ejectability ???
|
||||
|
||||
.proc L45B2
|
||||
;; Called in a polling loop - checking drive status?
|
||||
|
||||
.proc poll_drive
|
||||
ptr := $6
|
||||
|
||||
ldx L4597
|
||||
@ -11494,18 +11499,21 @@ dialog_param_addr:
|
||||
asl a
|
||||
tax
|
||||
copy16 dialog_proc_table,x, jump_addr
|
||||
|
||||
lda #0
|
||||
sta LD8EB
|
||||
sta prompt_ip_flag
|
||||
sta LD8EC
|
||||
sta LD8F0
|
||||
sta LD8F1
|
||||
sta LD8F2
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
sta LD8F5
|
||||
sta LD8ED
|
||||
sta cursor_ip_flag
|
||||
lda #$14
|
||||
sta LD8E9
|
||||
|
||||
lda #prompt_insertion_point_blink_count
|
||||
sta prompt_ip_counter
|
||||
|
||||
copy16 #rts1, jump_relay+1
|
||||
jsr set_cursor_pointer
|
||||
|
||||
@ -11518,13 +11526,17 @@ dialog_param_addr:
|
||||
;;; Message handler for OK/Cancel dialog
|
||||
|
||||
.proc prompt_input_loop
|
||||
lda LD8E8
|
||||
lda has_input_field_flag
|
||||
beq :+
|
||||
dec LD8E9
|
||||
|
||||
;; Blink the insertion point
|
||||
dec prompt_ip_counter
|
||||
bne :+
|
||||
jsr LB8F5
|
||||
lda #$14
|
||||
sta LD8E9
|
||||
jsr redraw_prompt_insertion_point
|
||||
lda #prompt_insertion_point_blink_count
|
||||
sta prompt_ip_counter
|
||||
|
||||
;; Dispatch event types - mouse down, key press
|
||||
: MGTK_RELAY_CALL MGTK::GetEvent, event_params
|
||||
lda event_kind
|
||||
cmp #MGTK::event_kind_button_down
|
||||
@ -11535,8 +11547,11 @@ dialog_param_addr:
|
||||
bne :+
|
||||
jmp prompt_key_handler
|
||||
|
||||
: lda LD8E8
|
||||
;; Does the dialog have an input field?
|
||||
: lda has_input_field_flag
|
||||
beq prompt_input_loop
|
||||
|
||||
;; Check if mouse is over input field, change cursor appropriately.
|
||||
MGTK_RELAY_CALL MGTK::FindWindow, event_coords
|
||||
lda findwindow_which_area
|
||||
bne :+
|
||||
@ -11547,7 +11562,7 @@ dialog_param_addr:
|
||||
beq :+
|
||||
jmp prompt_input_loop
|
||||
|
||||
: lda winfo_alert_dialog
|
||||
: lda winfo_alert_dialog ; Is over this window... but where?
|
||||
jsr set_port_from_window_id
|
||||
lda winfo_alert_dialog
|
||||
sta event_params
|
||||
@ -11559,7 +11574,7 @@ dialog_param_addr:
|
||||
jsr set_cursor_insertion_point_with_flag
|
||||
jmp done
|
||||
out: jsr set_cursor_pointer_with_flag
|
||||
done: jsr reset_state
|
||||
done: jsr reset_grafport3a
|
||||
jmp prompt_input_loop
|
||||
.endproc
|
||||
|
||||
@ -11659,7 +11674,7 @@ check_button_cancel:
|
||||
lda #prompt_button_cancel
|
||||
: rts
|
||||
|
||||
LA6ED: bit LD8E8
|
||||
LA6ED: bit has_input_field_flag
|
||||
bmi LA6F7
|
||||
lda #$FF
|
||||
jmp jump_relay
|
||||
@ -11788,7 +11803,7 @@ LA7CF: cmp #$7E
|
||||
|
||||
LA7D8: ldx path_buf1
|
||||
beq LA7E5
|
||||
LA7DD: ldx LD8E8
|
||||
LA7DD: ldx has_input_field_flag
|
||||
beq LA7E5
|
||||
jsr LBB0B
|
||||
LA7E5: return #$FF
|
||||
@ -11806,17 +11821,17 @@ LA806: jsr set_penmode_xor2
|
||||
MGTK_RELAY_CALL MGTK::PaintRect, desktop_aux::all_button_rect
|
||||
return #prompt_button_all
|
||||
|
||||
LA815: lda LD8E8
|
||||
LA815: lda has_input_field_flag
|
||||
beq LA81D
|
||||
jsr LBC5E
|
||||
LA81D: return #$FF
|
||||
|
||||
LA820: lda LD8E8
|
||||
LA820: lda has_input_field_flag
|
||||
beq LA828
|
||||
jsr LBCC9
|
||||
LA828: return #$FF
|
||||
|
||||
LA82B: lda LD8E8
|
||||
LA82B: lda has_input_field_flag
|
||||
beq LA83B
|
||||
bit LD8ED
|
||||
bpl LA838
|
||||
@ -11825,7 +11840,7 @@ LA82B: lda LD8E8
|
||||
LA838: jsr LBBA4
|
||||
LA83B: return #$FF
|
||||
|
||||
LA83E: lda LD8E8
|
||||
LA83E: lda has_input_field_flag
|
||||
beq LA84E
|
||||
bit LD8ED
|
||||
bpl LA84B
|
||||
@ -11848,7 +11863,7 @@ LA86F: lda winfo_alert_dialog
|
||||
MGTK_RELAY_CALL MGTK::PaintRect, desktop_aux::cancel_button_rect
|
||||
return #1
|
||||
|
||||
LA88D: lda LD8E8
|
||||
LA88D: lda has_input_field_flag
|
||||
beq LA895
|
||||
jsr LBB63
|
||||
LA895: return #$FF
|
||||
@ -11897,7 +11912,7 @@ jump_relay:
|
||||
jmp close
|
||||
|
||||
close: MGTK_RELAY_CALL MGTK::CloseWindow, winfo_about_dialog
|
||||
jsr reset_state
|
||||
jsr reset_grafport3a
|
||||
jsr set_cursor_pointer_with_flag
|
||||
rts
|
||||
.endproc
|
||||
@ -11928,7 +11943,7 @@ close: MGTK_RELAY_CALL MGTK::CloseWindow, winfo_about_dialog
|
||||
jmp do5
|
||||
|
||||
: lda #0
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
jsr open_dialog_window
|
||||
addr_call draw_dialog_title, desktop_aux::str_copy_title
|
||||
axy_call draw_dialog_label, 1, desktop_aux::str_copy_copying
|
||||
@ -11990,7 +12005,7 @@ do2: ldy #1
|
||||
addr_call draw_text1, str_file_count
|
||||
rts
|
||||
|
||||
do5: jsr reset_state
|
||||
do5: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
rts
|
||||
@ -12059,7 +12074,7 @@ LAAB1: jsr prompt_input_loop
|
||||
jmp do4
|
||||
|
||||
else: lda #0
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
jsr open_dialog_window
|
||||
addr_call draw_dialog_title, desktop_aux::str_download
|
||||
axy_call draw_dialog_label, 1, desktop_aux::str_copy_copying
|
||||
@ -12109,7 +12124,7 @@ do2: ldy #$01
|
||||
addr_call draw_text1, str_file_count
|
||||
rts
|
||||
|
||||
do3: jsr reset_state
|
||||
do3: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
rts
|
||||
@ -12198,7 +12213,7 @@ do1: ldy #$01
|
||||
yax_call draw_dialog_label, 2, str_file_count
|
||||
rts
|
||||
|
||||
do3: jsr reset_state
|
||||
do3: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
rts
|
||||
@ -12240,7 +12255,7 @@ do2: lda winfo_alert_dialog
|
||||
|
||||
: sta LAD1F
|
||||
lda #$00
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
jsr open_dialog_window
|
||||
addr_call draw_dialog_title, desktop_aux::str_delete_title
|
||||
lda LAD1F
|
||||
@ -12312,7 +12327,7 @@ LADC4: jsr prompt_input_loop
|
||||
lda #$00
|
||||
LADF4: rts
|
||||
|
||||
do5: jsr reset_state
|
||||
do5: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
rts
|
||||
@ -12347,7 +12362,7 @@ LAE42: cmp #$40
|
||||
jmp LAF16
|
||||
|
||||
LAE49: lda #$80
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
jsr LBD69
|
||||
lda #$00
|
||||
jsr LB509
|
||||
@ -12359,7 +12374,7 @@ LAE49: lda #$80
|
||||
rts
|
||||
|
||||
LAE70: lda #$80
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
lda #$00
|
||||
sta LD8E7
|
||||
jsr LBD75
|
||||
@ -12423,7 +12438,7 @@ LAEFF: inx
|
||||
ldx #>path_buf0
|
||||
return #0
|
||||
|
||||
LAF16: jsr reset_state
|
||||
LAF16: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
return #1
|
||||
@ -12442,7 +12457,7 @@ LAF16: jsr reset_state
|
||||
jmp LAFB9
|
||||
|
||||
LAF34: lda #$00
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
lda (ptr),y
|
||||
lsr a
|
||||
lsr a
|
||||
@ -12475,7 +12490,7 @@ LAF92: yax_call draw_dialog_label, 3, desktop_aux::str_info_size
|
||||
LAF9B: yax_call draw_dialog_label, 4, desktop_aux::str_info_create
|
||||
yax_call draw_dialog_label, 5, desktop_aux::str_info_mod
|
||||
yax_call draw_dialog_label, 6, desktop_aux::str_info_type
|
||||
jmp reset_state
|
||||
jmp reset_grafport3a
|
||||
|
||||
LAFB9: lda winfo_alert_dialog
|
||||
jsr set_port_from_window_id
|
||||
@ -12513,7 +12528,7 @@ LAFF8: ldy row
|
||||
bmi :-
|
||||
|
||||
pha
|
||||
jsr reset_state
|
||||
jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer_with_flag
|
||||
pla
|
||||
@ -12555,7 +12570,7 @@ row: .byte 0
|
||||
jmp do4
|
||||
|
||||
: lda #$00
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
jsr open_dialog_window
|
||||
addr_call draw_dialog_title, desktop_aux::str_lock_title
|
||||
yax_call draw_dialog_label, 4, desktop_aux::str_lock_ok
|
||||
@ -12618,7 +12633,7 @@ LB0FA: jsr prompt_input_loop
|
||||
lda #$00
|
||||
LB139: rts
|
||||
|
||||
do4: jsr reset_state
|
||||
do4: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
rts
|
||||
@ -12646,7 +12661,7 @@ do4: jsr reset_state
|
||||
jmp do4
|
||||
|
||||
: lda #$00
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
jsr open_dialog_window
|
||||
addr_call draw_dialog_title, desktop_aux::str_unlock_title
|
||||
yax_call draw_dialog_label, 4, desktop_aux::str_unlock_ok
|
||||
@ -12709,7 +12724,7 @@ LB218: jsr prompt_input_loop
|
||||
lda #$00
|
||||
LB257: rts
|
||||
|
||||
do4: jsr reset_state
|
||||
do4: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
rts
|
||||
@ -12733,7 +12748,7 @@ LB276: cmp #$40
|
||||
LB27D: jsr LBD75
|
||||
jsr copy_dialog_param_addr_to_ptr
|
||||
lda #$80
|
||||
sta LD8E8
|
||||
sta has_input_field_flag
|
||||
jsr LBD69
|
||||
lda #$00
|
||||
jsr LB509
|
||||
@ -12779,7 +12794,7 @@ LB2FD: jsr prompt_input_loop
|
||||
ldx #$D4
|
||||
return #0
|
||||
|
||||
LB313: jsr reset_state
|
||||
LB313: jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
return #1
|
||||
@ -12849,7 +12864,7 @@ draw_string:
|
||||
bmi :-
|
||||
|
||||
pha
|
||||
jsr reset_state
|
||||
jsr reset_grafport3a
|
||||
MGTK_RELAY_CALL MGTK::CloseWindow, winfo_alert_dialog
|
||||
jsr set_cursor_pointer
|
||||
pla
|
||||
@ -13055,7 +13070,7 @@ LB526: bit LD8E7
|
||||
bmi LB537
|
||||
MGTK_RELAY_CALL MGTK::FrameRect, desktop_aux::cancel_button_rect
|
||||
jsr draw_cancel_label
|
||||
LB537: jmp reset_state
|
||||
LB537: jmp reset_grafport3a
|
||||
|
||||
.proc open_dialog_window
|
||||
MGTK_RELAY_CALL MGTK::OpenWindow, winfo_alert_dialog
|
||||
@ -13460,7 +13475,7 @@ click_result:
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
.proc LB8F5
|
||||
.proc redraw_prompt_insertion_point
|
||||
point := $6
|
||||
xcoord := $6
|
||||
ycoord := $8
|
||||
@ -13469,26 +13484,30 @@ click_result:
|
||||
stax xcoord
|
||||
copy16 name_input_textpos::ycoord, ycoord
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, point
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, setportbits_params3
|
||||
bit LD8EB
|
||||
bpl LB92D
|
||||
MGTK_RELAY_CALL MGTK::SetTextBG, desktop_aux::LAE6C
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, name_input_mapinfo
|
||||
bit prompt_ip_flag
|
||||
bpl set_flag
|
||||
|
||||
clear_flag:
|
||||
MGTK_RELAY_CALL MGTK::SetTextBG, desktop_aux::textbg_black
|
||||
lda #$00
|
||||
sta LD8EB
|
||||
beq LB93B
|
||||
LB92D: MGTK_RELAY_CALL MGTK::SetTextBG, desktop_aux::LAE6D
|
||||
sta prompt_ip_flag
|
||||
beq draw
|
||||
|
||||
set_flag:
|
||||
MGTK_RELAY_CALL MGTK::SetTextBG, desktop_aux::textbg_white
|
||||
lda #$FF
|
||||
sta LD8EB
|
||||
sta prompt_ip_flag
|
||||
|
||||
drawtext_params := $6
|
||||
textptr := $6
|
||||
textlen := $8
|
||||
|
||||
LB93B: copy16 #LD8EF, textptr
|
||||
lda LD8EE
|
||||
draw: copy16 #str_insertion_point+1, textptr
|
||||
lda str_insertion_point
|
||||
sta textlen
|
||||
MGTK_RELAY_CALL MGTK::DrawText, drawtext_params
|
||||
MGTK_RELAY_CALL MGTK::SetTextBG, desktop_aux::LAE6D
|
||||
MGTK_RELAY_CALL MGTK::SetTextBG, desktop_aux::textbg_white
|
||||
lda winfo_alert_dialog
|
||||
jsr set_port_from_window_id
|
||||
rts
|
||||
@ -13506,7 +13525,7 @@ LB93B: copy16 #LD8EF, textptr
|
||||
MGTK_RELAY_CALL MGTK::SetPenMode, penXOR
|
||||
MGTK_RELAY_CALL MGTK::FrameRect, name_input_rect
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, name_input_textpos
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, setportbits_params3
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, name_input_mapinfo
|
||||
addr_call draw_text1, path_buf1
|
||||
addr_call draw_text1, path_buf2
|
||||
addr_call draw_text1, str_2_spaces
|
||||
@ -13636,7 +13655,7 @@ LBADE: cpx path_buf2
|
||||
jmp LBADE
|
||||
|
||||
LBAEE: sty LD3C0+1
|
||||
lda LD8EF
|
||||
lda str_insertion_point+1
|
||||
sta LD3C0+2
|
||||
LBAF7: lda LD3C0+1,y
|
||||
sta path_buf2,y
|
||||
@ -13675,7 +13694,7 @@ LBB0B: sta LBB62
|
||||
stax xcoord
|
||||
copy16 name_input_textpos::ycoord, ycoord
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, point
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, setportbits_params3
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, name_input_mapinfo
|
||||
addr_call draw_text1, str_1_char
|
||||
addr_call draw_text1, path_buf2
|
||||
lda winfo_alert_dialog
|
||||
@ -13698,7 +13717,7 @@ LBB63: lda path_buf1
|
||||
stax xcoord
|
||||
copy16 name_input_textpos::ycoord, ycoord
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, point
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, setportbits_params3
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, name_input_mapinfo
|
||||
addr_call draw_text1, path_buf2
|
||||
addr_call draw_text1, str_2_spaces
|
||||
lda winfo_alert_dialog
|
||||
@ -13732,7 +13751,7 @@ LBBBC: ldx path_buf1
|
||||
stax xcoord
|
||||
copy16 name_input_textpos::ycoord, ycoord
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, point
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, setportbits_params3
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, name_input_mapinfo
|
||||
addr_call draw_text1, path_buf2
|
||||
addr_call draw_text1, str_2_spaces
|
||||
lda winfo_alert_dialog
|
||||
@ -13761,7 +13780,7 @@ LBC21: lda path_buf2+1,x
|
||||
bne LBC21
|
||||
LBC2D: dec path_buf2
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, name_input_textpos
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, setportbits_params3
|
||||
MGTK_RELAY_CALL MGTK::SetPortBits, name_input_mapinfo
|
||||
addr_call draw_text1, path_buf1
|
||||
addr_call draw_text1, path_buf2
|
||||
addr_call draw_text1, str_2_spaces
|
||||
@ -13789,7 +13808,7 @@ LBC80: lda path_buf1,x
|
||||
sta path_buf2+1,x
|
||||
dex
|
||||
bne LBC80
|
||||
lda LD8EF
|
||||
lda str_insertion_point+1
|
||||
sta path_buf2+1
|
||||
inc path_buf1
|
||||
lda path_buf1
|
||||
@ -13903,9 +13922,9 @@ LBD33: rts
|
||||
|
||||
;;; ============================================================
|
||||
|
||||
LBD69: lda #$01
|
||||
LBD69: lda #1
|
||||
sta path_buf2
|
||||
lda LD8EF
|
||||
lda str_insertion_point+1
|
||||
sta path_buf2+1
|
||||
rts
|
||||
|
||||
@ -14084,7 +14103,7 @@ set_fill_white:
|
||||
MGTK_RELAY_CALL MGTK::SetPenMode, pencopy
|
||||
rts
|
||||
|
||||
reset_state:
|
||||
reset_grafport3a:
|
||||
MGTK_RELAY_CALL MGTK::InitPort, grafport3
|
||||
MGTK_RELAY_CALL MGTK::SetPort, grafport3
|
||||
rts
|
||||
|
@ -532,7 +532,7 @@ pointD: DEFINE_POINT 40,35, pointD
|
||||
dialog_label_pos:
|
||||
DEFINE_POINT dialog_label_default_x,0, dialog_label_pos
|
||||
|
||||
.proc setportbits_params3
|
||||
.proc name_input_mapinfo
|
||||
DEFINE_POINT 75, 35
|
||||
.addr MGTK::screen_mapbits
|
||||
.byte MGTK::screen_mapwidth
|
||||
@ -635,14 +635,25 @@ buf_filename:
|
||||
.res 16, 0
|
||||
|
||||
LD8E7: .byte 0
|
||||
LD8E8: .byte 0
|
||||
LD8E9: .byte $14
|
||||
has_input_field_flag:
|
||||
.byte 0
|
||||
|
||||
|
||||
prompt_insertion_point_blink_count := $14
|
||||
|
||||
prompt_ip_counter:
|
||||
.byte prompt_insertion_point_blink_count
|
||||
|
||||
.byte $00
|
||||
LD8EB: .byte 0
|
||||
|
||||
prompt_ip_flag:
|
||||
.byte 0
|
||||
|
||||
LD8EC: .byte 0
|
||||
LD8ED: .byte 0
|
||||
LD8EE: .byte 1
|
||||
LD8EF: .byte 6
|
||||
|
||||
str_insertion_point:
|
||||
PASCAL_STRING {GLYPH_INSPT}
|
||||
|
||||
LD8F0: .byte 0
|
||||
LD8F1: .byte 0
|
||||
@ -651,9 +662,13 @@ LD8F3: .byte 0
|
||||
LD8F4: .byte 0
|
||||
LD8F5: .byte 0
|
||||
|
||||
;; Used to draw/clear insertion point; overwritten with char
|
||||
;; to right of insertion point as needed.
|
||||
str_1_char:
|
||||
PASCAL_STRING {0}
|
||||
|
||||
;; Used as suffix for text being edited to account for insertion
|
||||
;; point adding extra width.
|
||||
str_2_spaces:
|
||||
PASCAL_STRING " "
|
||||
|
||||
|
@ -38,7 +38,7 @@ routine_table: .addr $7000, $7000, $7000
|
||||
lda #0
|
||||
sta L5027
|
||||
sta L50A8
|
||||
sta LD8EB
|
||||
sta prompt_ip_flag
|
||||
sta LD8EC
|
||||
sta $D8F0
|
||||
sta $D8F1
|
||||
@ -1112,8 +1112,8 @@ L5C4F: ldx #3
|
||||
bpl :-
|
||||
|
||||
lda machine_type ; Timer for insertion point blink
|
||||
sta L5CEF
|
||||
L5C60: dec L5CEF
|
||||
sta ip_blink_counter
|
||||
L5C60: dec ip_blink_counter
|
||||
beq L5CA6
|
||||
MGTK_RELAY_CALL MGTK::PeekEvent, event_params
|
||||
jsr L5CA9
|
||||
@ -1168,7 +1168,9 @@ L5CE5: lda L5CF4
|
||||
bcs L5CC2
|
||||
L5CEC: return #$00
|
||||
|
||||
L5CEF: .byte 0
|
||||
ip_blink_counter:
|
||||
.byte 0
|
||||
|
||||
L5CF0: .byte 0
|
||||
L5CF1: .byte 0
|
||||
L5CF2: .byte 0
|
||||
@ -2034,15 +2036,15 @@ L658B: cmp #$09
|
||||
stax $06
|
||||
copy16 common_input1_textpos+2, $08
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, $06
|
||||
bit LD8EB
|
||||
bit prompt_ip_flag
|
||||
bpl L65C8
|
||||
MGTK_RELAY_CALL MGTK::SetTextBG, textbg1
|
||||
lda #$00
|
||||
sta LD8EB
|
||||
sta prompt_ip_flag
|
||||
beq L65D6
|
||||
L65C8: MGTK_RELAY_CALL MGTK::SetTextBG, textbg2
|
||||
lda #$FF
|
||||
sta LD8EB
|
||||
sta prompt_ip_flag
|
||||
L65D6: copy16 #$D8EF, $06
|
||||
lda $D8EE
|
||||
sta $08
|
||||
@ -2056,16 +2058,16 @@ L65D6: copy16 #$D8EF, $06
|
||||
stax $06
|
||||
copy16 common_input2_textpos+2, $08
|
||||
MGTK_RELAY_CALL MGTK::MoveTo, $06
|
||||
bit LD8EB
|
||||
bit prompt_ip_flag
|
||||
bpl L6626
|
||||
MGTK_RELAY_CALL MGTK::SetTextBG, textbg1
|
||||
lda #$00
|
||||
sta LD8EB
|
||||
sta prompt_ip_flag
|
||||
jmp L6634
|
||||
|
||||
L6626: MGTK_RELAY_CALL MGTK::SetTextBG, textbg2
|
||||
lda #$FF
|
||||
sta LD8EB
|
||||
sta prompt_ip_flag
|
||||
L6634: copy16 #$D8EF, $06
|
||||
lda $D8EE
|
||||
sta $08
|
||||
|
@ -25,16 +25,16 @@ for (my $i = 0; $i < $num; ++$i) {
|
||||
$chars[$i] = '';
|
||||
}
|
||||
|
||||
# Skip widths
|
||||
my @widths;
|
||||
for (my $i = 0; $i < $num; ++$i) {
|
||||
read(STDIN, $b, 1);
|
||||
push @widths, getbyte();
|
||||
}
|
||||
|
||||
for (my $row = 0; $row < $height; ++$row) {
|
||||
for (my $col = 0; $col < $cols; ++$col) {
|
||||
for (my $c = 0; $c < $num; ++$c) {
|
||||
my $bits = sprintf("%07b", getbyte());
|
||||
$bits =~ tr/01/ #/;
|
||||
$bits =~ tr/01/.#/;
|
||||
$bits = reverse $bits;
|
||||
|
||||
$chars[$c] .= $bits;
|
||||
@ -45,7 +45,13 @@ for (my $row = 0; $row < $height; ++$row) {
|
||||
}
|
||||
}
|
||||
|
||||
for (my $i = 0; $i < $num; ++$i) {
|
||||
$chars[$i] =
|
||||
join("\n",
|
||||
map { substr($_, 0, $widths[$i]) }
|
||||
split("\n", $chars[$i]));
|
||||
}
|
||||
|
||||
for (my $i = 0; $i < $num; ++$i) {
|
||||
print "== 0x".sprintf("%02x",$i)." ==\n$chars[$i]";
|
||||
print "== 0x".sprintf("%02x",$i)." ==\n$chars[$i]\n";
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user