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

View File

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

View File

@ -203,11 +203,13 @@ id: .byte 0
.endproc .endproc
query_state_params_id := query_state_params::id query_state_params_id := query_state_params::id
;; param block for a 1A call .proc preserve_zp_params
L08D4: .byte $80 flag: .byte A2D_CZP_PRESERVE
.endproc
;; param block for a 1A call .proc overwrite_zp_params
L08D5: .byte $00 flag: .byte A2D_CZP_OVERWRITE
.endproc
;;; ================================================== ;;; ==================================================
;;; Button Definitions ;;; Button Definitions
@ -793,7 +795,7 @@ cursor: .byte px(%0000000),px(%0000000) ; cursor
init: sta ALTZPON init: sta ALTZPON
lda LCBANK1 lda LCBANK1
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_CREATE_WINDOW, create_window_params
A2D_CALL A2D_QUERY_SCREEN, state_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 ; set clipping bounds?
@ -915,7 +917,7 @@ exit: lda LCBANK1
A2D_CALL A2D_DESTROY_WINDOW, destroy_window_params A2D_CALL A2D_DESTROY_WINDOW, destroy_window_params
DESKTOP_CALL DESKTOP_REDRAW_ICONS DESKTOP_CALL DESKTOP_REDRAW_ICONS
lda ROMIN2 lda ROMIN2
A2D_CALL $1A, L08D5 ; ??? one byte input value? A2D_CALL A2D_CONFIGURE_ZP_USE, overwrite_zp_params
.proc do_close .proc do_close
;; Copy following routine to ZP and invoke it ;; Copy following routine to ZP and invoke it