From 53aa260c21fc3d514a0d25f7d3e4a2b8a8e8e149 Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Sat, 15 Dec 2018 16:42:36 -0800 Subject: [PATCH] Add BUTN2 support --- desk.acc/control.panel.s | 39 +++++++++++++++++++++++++++++++++------ inc/apple2.inc | 2 ++ 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/desk.acc/control.panel.s b/desk.acc/control.panel.s index 8ea2fb6..18ec0e2 100644 --- a/desk.acc/control.panel.s +++ b/desk.acc/control.panel.s @@ -432,14 +432,17 @@ joy_disp_frame_rect: joy_disp_rect: DEFINE_RECT joy_disp_x - 32 + 1, joy_disp_y - 16 + 1, joy_disp_x + 32 + 7 + 1 - 1, joy_disp_y + 16 + 4 + 1 - 1 -joy_btn0: DEFINE_POINT joy_disp_x + 58 + 4, joy_disp_y - 8, joy_btn0 -joy_btn1: DEFINE_POINT joy_disp_x + 58 + 4, joy_disp_y + 6, joy_btn1 +joy_btn0: DEFINE_POINT joy_disp_x + 58 + 4, joy_disp_y - 13, joy_btn0 +joy_btn1: DEFINE_POINT joy_disp_x + 58 + 4, joy_disp_y - 1, joy_btn1 +joy_btn2: DEFINE_POINT joy_disp_x + 58 + 4, joy_disp_y + 11, joy_btn2 -joy_btn0_lpos: DEFINE_POINT joy_disp_x + 48 + 4, joy_disp_y - 8 + 8 -joy_btn1_lpos: DEFINE_POINT joy_disp_x + 48 + 4, joy_disp_y + 6 + 8 +joy_btn0_lpos: DEFINE_POINT joy_disp_x + 48 + 4, joy_disp_y - 13 + 8 +joy_btn1_lpos: DEFINE_POINT joy_disp_x + 48 + 4, joy_disp_y - 1 + 8 +joy_btn2_lpos: DEFINE_POINT joy_disp_x + 48 + 4, joy_disp_y + 11 + 8 joy_btn0_label: DEFINE_STRING "0" joy_btn1_label: DEFINE_STRING "1" +joy_btn2_label: DEFINE_STRING "2" .proc joy_marker viewloc: DEFINE_POINT 0, 0, viewloc @@ -1046,6 +1049,8 @@ loop: lda arg1,y MGTK_CALL MGTK::DrawText, joy_btn0_label MGTK_CALL MGTK::MoveTo, joy_btn1_lpos MGTK_CALL MGTK::DrawText, joy_btn1_label + MGTK_CALL MGTK::MoveTo, joy_btn2_lpos + MGTK_CALL MGTK::DrawText, joy_btn2_label copy #0, last_joy_valid_flag @@ -1352,6 +1357,10 @@ pattern_abrick: and #$80 ; only care about msb sta butn1 + lda BUTN2 + and #$80 ; only care about msb + sta butn2 + ;; Changed? (or first time through) lda last_joy_valid_flag beq changed @@ -1367,6 +1376,9 @@ pattern_abrick: lda butn1 cmp last_b1 bne changed + lda butn2 + cmp last_b2 + bne changed rts changed: @@ -1378,6 +1390,8 @@ changed: sta last_b0 lda butn1 sta last_b1 + lda butn2 + sta last_b2 lda #$80 sta last_joy_valid_flag @@ -1426,24 +1440,37 @@ draw_b1: copy16 joy_btn1::xcoord, unchecked_params::viewloc::xcoord copy16 joy_btn1::ycoord, unchecked_params::viewloc::ycoord MGTK_CALL MGTK::PaintBits, unchecked_params - jmp done_buttons + jmp draw_b2 : copy16 joy_btn1::xcoord, checked_params::viewloc::xcoord copy16 joy_btn1::ycoord, checked_params::viewloc::ycoord MGTK_CALL MGTK::PaintBits, checked_params -done_buttons: +draw_b2: + lda butn2 + bne :+ + copy16 joy_btn2::xcoord, unchecked_params::viewloc::xcoord + copy16 joy_btn2::ycoord, unchecked_params::viewloc::ycoord + MGTK_CALL MGTK::PaintBits, unchecked_params + jmp done_buttons +: + copy16 joy_btn2::xcoord, checked_params::viewloc::xcoord + copy16 joy_btn2::ycoord, checked_params::viewloc::ycoord + MGTK_CALL MGTK::PaintBits, checked_params +done_buttons: MGTK_CALL MGTK::ShowCursor done: rts butn0: .byte 0 butn1: .byte 0 +butn2: .byte 0 last_x: .byte 0 last_y: .byte 0 last_b0:.byte 0 last_b1:.byte 0 +last_b2:.byte 0 pencopy: .byte MGTK::pencopy notpencopy: .byte MGTK::notpencopy diff --git a/inc/apple2.inc b/inc/apple2.inc index 9c060df..34acfa5 100644 --- a/inc/apple2.inc +++ b/inc/apple2.inc @@ -29,6 +29,8 @@ SHADOW := $C035 ; IIgs - inhibit shadowing AN3_ON := $C05F ; AppleColor Adapter Card / Le Chat Mauve AN3_OFF := $C05E +BUTN2 := $C063 + RAMWORKS_BANK := $C071 ; RAMWorks bank selection ??? HR1_ON := $C0B3