Tentatively identify CONFIGURE_ZP_USE

This commit is contained in:
Joshua Bell 2017-09-21 08:09:11 -07:00
parent 7559715903
commit 13e8479fc5
3 changed files with 24 additions and 16 deletions

View File

@ -174,9 +174,9 @@ A2D_DRAW_TEXT := $19 ; Drawn at last SET_POS as left, baseline
;; .addr data
;; .byte length
A2D_UNK_1A := $1A ; Unknown - used in calculator before window creation,
; and after destruction
A2D_CONFIGURE_ZP_USE := $1A ; Configure ZP usage by API (speed vs. convenience)
;; (input length 1 byte)
;; .byte flag (AWS_CZP_*; high bit set = preserve ZP during calls)
A2D_SET_CURSOR := $24 ; Change cursor pattern
;; (input not copied)
@ -394,6 +394,10 @@ A2D_CWS_SCROLL_THUMB := 1 << 6
A2D_CWS_SCROLL_TRACK := 1 << 0
A2D_CWS_SCROLL_NORMAL := A2D_CWS_SCROLL_ENABLED | A2D_CWS_SCROLL_THUMB | A2D_CWS_SCROLL_TRACK
;;; Used in A2D_CONFIGURE_ZP_USE
A2D_CZP_PRESERVE := 1<<7
A2D_CZP_OVERWRITE := 0
;;; Used in various state blocks
A2D_DEFAULT_MSKAND := $FF
A2D_DEFAULT_MSKOR := $00

View File

@ -198,11 +198,13 @@ id: .byte 0
.endproc
query_state_params_id := query_state_params::id
;; param block for a 1A call
L08D4: .byte $80
.proc preserve_zp_params
flag: .byte A2D_CZP_PRESERVE
.endproc
;; param block for a 1A call
L08D5: .byte $00
.proc overwrite_zp_params
flag: .byte A2D_CZP_OVERWRITE
.endproc
;;; ==================================================
;;; Button Definitions
@ -760,10 +762,10 @@ title: PASCAL_STRING "Calc"
init: sta ALTZPON
lda LCBANK1
lda LCBANK1
A2D_CALL $1A, L08D4 ; if NOP'd, display renders like a bar code later
A2D_CALL A2D_CONFIGURE_ZP_USE, preserve_zp_params
A2D_CALL A2D_CREATE_WINDOW, create_window_params
A2D_CALL A2D_QUERY_SCREEN, state_params
A2D_CALL A2D_SET_STATE, state_params ; set clipping bounds?
A2D_CALL A2D_SET_STATE, state_params
A2D_CALL $2B ; reset drawing state?
jsr reset_buffer2
@ -870,7 +872,7 @@ ignore_click:
exit: A2D_CALL A2D_DESTROY_WINDOW, destroy_window_params
DESKTOP_CALL DESKTOP_REDRAW_ICONS
lda ROMIN2
A2D_CALL $1A, L08D5 ; ??? one byte input value?
A2D_CALL A2D_CONFIGURE_ZP_USE, overwrite_zp_params
.proc do_close
;; Copy following routine to ZP and invoke it
@ -1045,7 +1047,7 @@ miss: clc
sec
rts
: cpx #col4_left-border_lt ; col 4?
: cpx #col4_left-border_lt ; col 4?
bcc miss
cpx #col4_right+border_br - 1 ; bug in original?
bcs miss

View File

@ -203,11 +203,13 @@ id: .byte 0
.endproc
query_state_params_id := query_state_params::id
;; param block for a 1A call
L08D4: .byte $80
.proc preserve_zp_params
flag: .byte A2D_CZP_PRESERVE
.endproc
;; param block for a 1A call
L08D5: .byte $00
.proc overwrite_zp_params
flag: .byte A2D_CZP_OVERWRITE
.endproc
;;; ==================================================
;;; Button Definitions
@ -793,7 +795,7 @@ cursor: .byte px(%0000000),px(%0000000) ; cursor
init: sta ALTZPON
lda LCBANK1
lda LCBANK1
A2D_CALL $1A, L08D4 ; if NOP'd, display renders like a bar code later
A2D_CALL A2D_CONFIGURE_ZP_USE, preserve_zp_params
A2D_CALL A2D_CREATE_WINDOW, create_window_params
A2D_CALL A2D_QUERY_SCREEN, state_params
A2D_CALL A2D_SET_STATE, state_params ; set clipping bounds?
@ -915,7 +917,7 @@ exit: lda LCBANK1
A2D_CALL A2D_DESTROY_WINDOW, destroy_window_params
DESKTOP_CALL DESKTOP_REDRAW_ICONS
lda ROMIN2
A2D_CALL $1A, L08D5 ; ??? one byte input value?
A2D_CALL A2D_CONFIGURE_ZP_USE, overwrite_zp_params
.proc do_close
;; Copy following routine to ZP and invoke it