Identify INIT/DISABLE_MOUSE

This commit is contained in:
Joshua Bell 2017-10-14 22:09:00 -07:00
parent 7f5924f870
commit 34d651799f
2 changed files with 19 additions and 10 deletions

View File

@ -192,6 +192,13 @@ A2D_CONFIGURE_ZP_USE := $1A ; Configure ZP usage by API (speed vs. convenien
;; (input length 1 byte) ;; (input length 1 byte)
;; .byte flag (AWS_CZP_*; high bit set = preserve ZP during calls) ;; .byte flag (AWS_CZP_*; high bit set = preserve ZP during calls)
A2D_INIT_SCREEN_AND_MOUSE := $1D; Inits state, registers interrupt handler, draws desktop
;; (input length 12 byte)
;; ???
A2D_DISABLE_MOUSE := $1E ; Deallocates interrupt, hides cursor
;; (no parameters; pass $0000 as address)
A2D_SET_CURSOR := $24 ; Set cursor definition A2D_SET_CURSOR := $24 ; Set cursor definition
;; (input not copied) ;; (input not copied)
;; .res 24 bitmap 2x12 byte bitmap ;; .res 24 bitmap 2x12 byte bitmap

View File

@ -314,8 +314,8 @@ a2d_jump_table:
.addr CONFIGURE_ZP_IMPL ; $1A CONFIGURE_ZP_USE .addr CONFIGURE_ZP_IMPL ; $1A CONFIGURE_ZP_USE
.addr L5EDE ; $1B .addr L5EDE ; $1B
.addr L5F0A ; $1C .addr L5F0A ; $1C
.addr L6341 ; $1D .addr INIT_SCREEN_AND_MOUSE_IMPL ; $1D INIT_SCREEN_AND_MOUSE
.addr L64A5 ; $1E .addr DISABLE_MOUSE_IMPL ; $1E DISABLE_MOUSE
.addr L64D2 ; $1F .addr L64D2 ; $1F
.addr L65B3 ; $20 .addr L65B3 ; $20
.addr L8427 ; $21 .addr L8427 ; $21
@ -402,8 +402,8 @@ param_lengths:
PARAM_DEFN 1, $82, 0 ; $1A CONFIGURE_ZP_USE PARAM_DEFN 1, $82, 0 ; $1A CONFIGURE_ZP_USE
PARAM_DEFN 1, $82, 0 ; $1B PARAM_DEFN 1, $82, 0 ; $1B
PARAM_DEFN 0, $00, 0 ; $1C PARAM_DEFN 0, $00, 0 ; $1C
PARAM_DEFN 12, $82, 0 ; $1D PARAM_DEFN 12, $82, 0 ; $1D INIT_SCREEN_AND_MOUSE
PARAM_DEFN 0, $00, 0 ; $1E PARAM_DEFN 0, $00, 0 ; $1E DISABLE_MOUSE
PARAM_DEFN 3, $82, 0 ; $1F PARAM_DEFN 3, $82, 0 ; $1F
PARAM_DEFN 2, $82, 0 ; $20 PARAM_DEFN 2, $82, 0 ; $20
PARAM_DEFN 2, $82, 0 ; $21 PARAM_DEFN 2, $82, 0 ; $21
@ -4099,7 +4099,7 @@ L6340: .byte $00
;;; 12 bytes of params, copied to $82 ;;; 12 bytes of params, copied to $82
L6341: INIT_SCREEN_AND_MOUSE_IMPL:
php php
pla pla
sta L6340 sta L6340
@ -4221,6 +4221,7 @@ L643F: jsr call_mouse
sta L700C sta L700C
L6454: jsr L653F L6454: jsr L653F
jsr L6588 jsr L6588
;; Fills the desktop background on startup (menu left black)
A2D_CALL A2D_SET_PATTERN, checkerboard_pattern A2D_CALL A2D_SET_PATTERN, checkerboard_pattern
A2D_CALL A2D_FILL_RECT, fill_rect_params A2D_CALL A2D_FILL_RECT, fill_rect_params
jmp L6556 jmp L6556
@ -4268,27 +4269,28 @@ L64A4: rts
;;; ================================================== ;;; ==================================================
;;; $1E IMPL ;;; DISABLE_MOUSE IMPL
L64A5: .proc DISABLE_MOUSE_IMPL
ldy #SETMOUSE ldy #SETMOUSE
lda #MOUSE_MODE_OFF lda #MOUSE_MODE_OFF
jsr call_mouse jsr call_mouse
ldy #SERVEMOUSE ldy #SERVEMOUSE
jsr call_mouse jsr call_mouse
bit L6339 bit L6339
bpl L64C7 bpl :+
bit L6337 bit L6337
bpl L64C7 bpl :+
lda alloc_interrupt_params::int_num lda alloc_interrupt_params::int_num
sta dealloc_interrupt_params::int_num sta dealloc_interrupt_params::int_num
MLI_CALL DEALLOC_INTERRUPT, dealloc_interrupt_params MLI_CALL DEALLOC_INTERRUPT, dealloc_interrupt_params
L64C7: lda L6340 : lda L6340
pha pha
plp plp
lda #$00 lda #$00
sta hide_cursor_flag sta hide_cursor_flag
rts rts
.endproc
;;; ================================================== ;;; ==================================================