From 66def3bead080b88651ff71d1095e3d5b9ba1f40 Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Thu, 31 Aug 2017 08:10:51 -0700 Subject: [PATCH] scrolling labels --- desk.acc/show.text.file/a2d.inc | 3 ++ desk.acc/show.text.file/stf.list | 57 +++++++++++++++++-------------- desk.acc/show.text.file/stf.o | Bin 19939 -> 19935 bytes desk.acc/show.text.file/stf.s | 54 +++++++++++++++-------------- 4 files changed, 62 insertions(+), 52 deletions(-) diff --git a/desk.acc/show.text.file/a2d.inc b/desk.acc/show.text.file/a2d.inc index 7fd72a1..1b57b4f 100644 --- a/desk.acc/show.text.file/a2d.inc +++ b/desk.acc/show.text.file/a2d.inc @@ -38,6 +38,9 @@ A2D_QUERY_CLIENT:= $48 ;; .byte part (0 = client, 1 = vertical scroll bar, 2 = ???) ;; .byte scroll (1 = up, 2 = down, 3 = above, 4 = below, 5 = thumb) +A2D_UPDATE_SCROLL:= $4B + ;; .byte type (1 = vertical, 2 = horizontal) + ;; .byte pos (new position 0...250) ;;; Macros .macro A2D_CALL op, addr diff --git a/desk.acc/show.text.file/stf.list b/desk.acc/show.text.file/stf.list index 59e9e1e..340f6f4 100644 --- a/desk.acc/show.text.file/stf.list +++ b/desk.acc/show.text.file/stf.list @@ -108,6 +108,9 @@ Current file: stf.s 000800 2 ;; .byte part (0 = client, 1 = vertical scroll bar, 2 = ???) 000800 2 ;; .byte scroll (1 = up, 2 = down, 3 = above, 4 = below, 5 = thumb) 000800 2 +000800 2 A2D_UPDATE_SCROLL:= $4B +000800 2 ;; .byte type (1 = vertical, 2 = horizontal) +000800 2 ;; .byte pos (new position 0...250) 000800 2 000800 2 ;;; Macros 000800 2 .macro A2D_CALL op, addr @@ -371,7 +374,7 @@ Current file: stf.s 00097E 1 00 00 .byte 0,0 000980 1 .endproc 000980 1 -000980 1 .proc query_client_params ; queried after a click to identify target +000980 1 .proc query_client_params ; queried after a client click to identify target 000980 1 00 00 xcoord: .word 0 000982 1 00 00 ycoord: .word 0 000984 1 00 part: .byte 0 ; 0 = client, 1 = scroll bar, 2 = ????? @@ -380,8 +383,11 @@ Current file: stf.s 000986 1 000986 1 00 L0986: .byte $00 000987 1 00 L0987: .byte $00 -000988 1 00 L0988: .byte $00 -000989 1 00 L0989: .byte $00 +000988 1 +000988 1 .proc update_scroll_params ; called to update scroll bar position +000988 1 00 type: .byte $00 ; 1 = vertical, 2 = horizontal ? +000989 1 00 pos: .byte $00 ; new position (0...250) +00098A 1 .endproc 00098A 1 00098A 1 ;;; Used when dragging vscroll thumb 00098A 1 .proc thumb_drag_params @@ -398,7 +404,7 @@ Current file: stf.s 000993 1 text_string_len: 000993 1 00 .byte 0 ; length 000994 1 -000994 1 64 02 L0994: .byte $64,$02 ; window params??? +000994 1 64 02 L0994: .byte $64,$02 ; window params??? $64 = window id? 000996 1 00 L0996: .byte $00 000997 1 10 L0997: .byte $10 000998 1 00 C1 L0998: .byte $00,$C1 @@ -663,9 +669,9 @@ Current file: stf.s 000BC9 1 .endproc 000BC9 1 000BC9 1 .proc on_vscroll_click -000BC9 1 A9 01 L0BC9: lda #$01 ; ?? +000BC9 1 A9 01 L0BC9: lda #1 ; 1 = vertical ? 000BCB 1 8D 8A 09 sta thumb_drag_params::type -000BCE 1 8D 88 09 sta L0988 +000BCE 1 8D 88 09 sta update_scroll_params::type 000BD1 1 AD 85 09 lda query_client_params::scroll 000BD4 1 C9 05 cmp #5 000BD6 1 F0 14 beq on_vscroll_thumb_click @@ -686,7 +692,7 @@ Current file: stf.s 000BEF 1 AD 90 09 lda thumb_drag_params::unk2 000BF2 1 F0 1C beq end 000BF4 1 AD 8F 09 lda thumb_drag_params::unk1 -000BF7 1 8D 89 09 sta L0989 +000BF7 1 8D 89 09 sta update_scroll_params::pos 000BFA 1 20 7C 0D jsr L0D7C 000BFD 1 20 ED 0D jsr L0DED 000C00 1 20 30 0E jsr L0E30 @@ -707,7 +713,7 @@ Current file: stf.s 000C1D 1 ED 6E 09 sbc track_scroll_delta 000C20 1 B0 02 bcs :+ 000C22 1 A9 00 lda #$00 -000C24 1 8D 89 09 : sta L0989 +000C24 1 8D 89 09 : sta update_scroll_params::pos 000C27 1 20 73 0C jsr update_scroll_pos 000C2A 1 90 E5 bcc loop ; repeat while button down 000C2C 1 60 end: rts @@ -718,7 +724,7 @@ Current file: stf.s 000C30 1 F0 0B beq end 000C32 1 38 sec 000C33 1 E9 01 sbc #1 -000C35 1 8D 89 09 sta L0989 +000C35 1 8D 89 09 sta update_scroll_params::pos 000C38 1 20 73 0C jsr update_scroll_pos 000C3B 1 90 F0 bcc loop ; repeat while button down 000C3D 1 60 end: rts @@ -739,7 +745,7 @@ Current file: stf.s 000C53 1 90 02 bcc store ; nope, it's good 000C55 1 overflow: 000C55 1 A9 FA lda #vscroll_max ; set to max -000C57 1 8D 89 09 store: sta L0989 +000C57 1 8D 89 09 store: sta update_scroll_params::pos 000C5A 1 20 73 0C jsr update_scroll_pos 000C5D 1 90 DF bcc loop ; repeat while button down 000C5F 1 60 end: rts @@ -751,7 +757,7 @@ Current file: stf.s 000C65 1 F0 0B beq end 000C67 1 18 clc 000C68 1 69 01 adc #1 -000C6A 1 8D 89 09 sta L0989 +000C6A 1 8D 89 09 sta update_scroll_params::pos 000C6D 1 20 73 0C jsr update_scroll_pos 000C70 1 90 EE bcc loop ; repeat while button down 000C72 1 60 end: rts @@ -782,9 +788,9 @@ Current file: stf.s 000C95 1 000C95 1 ;;; Haven't been able to trigger this yet - click on ??? 000C95 1 ;;; Possibly horizontal scroll bar? (unused in this DA - generic code?) -000C95 1 A9 02 L0C95: lda #$02 +000C95 1 A9 02 L0C95: lda #2 000C97 1 8D 8A 09 sta thumb_drag_params::type -000C9A 1 8D 88 09 sta L0988 +000C9A 1 8D 88 09 sta update_scroll_params::type 000C9D 1 AD 85 09 lda query_client_params::scroll 000CA0 1 C9 05 cmp #5 000CA2 1 F0 11 beq L0CB5 @@ -897,7 +903,7 @@ Current file: stf.s 000D7C 1 A9 00 L0D7C: lda #$00 000D7E 1 8D B2 09 sta L09B2 000D81 1 8D B3 09 sta L09B3 -000D84 1 AE 89 09 ldx L0989 +000D84 1 AE 89 09 ldx update_scroll_params::pos 000D87 1 F0 12 L0D87: beq L0D9B 000D89 1 18 clc 000D8A 1 AD B2 09 lda L09B2 @@ -919,7 +925,7 @@ Current file: stf.s 000DB1 1 A9 00 lda #$00 000DB3 1 8D 6A 09 sta L096A 000DB6 1 8D 6B 09 sta L096B -000DB9 1 AE 89 09 ldx L0989 +000DB9 1 AE 89 09 ldx update_scroll_params::pos 000DBC 1 F0 12 L0DBC: beq L0DD0 000DBE 1 18 clc 000DBF 1 AD 6A 09 lda L096A @@ -932,21 +938,21 @@ Current file: stf.s 000DD0 1 000DD0 1 60 L0DD0: rts 000DD1 1 -000DD1 1 A9 02 L0DD1: lda #$02 -000DD3 1 8D 88 09 sta L0988 +000DD1 1 A9 02 L0DD1: lda #2 +000DD3 1 8D 88 09 sta update_scroll_params::type 000DD6 1 AD B0 09 lda L09B0 000DD9 1 85 06 sta $06 000DDB 1 AD B1 09 lda L09B1 000DDE 1 85 07 sta $07 000DE0 1 20 DF 10 jsr L10DF -000DE3 1 8D 89 09 sta L0989 -000DE6 1 20 00 40 4B A2D_CALL $4B, L0988 +000DE3 1 8D 89 09 sta update_scroll_params::pos +000DE6 1 20 00 40 4B A2D_CALL A2D_UPDATE_SCROLL, update_scroll_params 000DEA 1 88 09 000DEC 1 60 rts 000DED 1 -000DED 1 A9 01 L0DED: lda #$01 -000DEF 1 8D 88 09 sta L0988 -000DF2 1 20 00 40 4B A2D_CALL $4B, L0988 +000DED 1 A9 01 L0DED: lda #1 +000DEF 1 8D 88 09 sta update_scroll_params::type +000DF2 1 20 00 40 4B A2D_CALL A2D_UPDATE_SCROLL, update_scroll_params 000DF6 1 88 09 000DF8 1 60 rts 000DF9 1 @@ -960,7 +966,7 @@ Current file: stf.s 000E09 1 90 03 bcc L0E0E 000E0B 1 20 D1 0D jsr L0DD1 000E0E 1 AD 9D 09 L0E0E: lda vscroll_pos -000E11 1 8D 89 09 sta L0989 +000E11 1 8D 89 09 sta update_scroll_params::pos 000E14 1 20 ED 0D jsr L0DED 000E17 1 20 30 0E jsr L0E30 000E1A 1 4C D1 0A jmp input_loop @@ -1387,7 +1393,7 @@ Current file: stf.s 0011BA 1 8D 85 11 sta label_left+1 0011BD 1 .endproc 0011BD 1 .proc draw_mode -0011BD 1 20 00 40 06 A2D_CALL $06, label_left ; guess: setting up draw location +0011BD 1 20 00 40 06 A2D_CALL $06, label_left ; guess: setting up draw location ??? 0011C1 1 84 11 0011C3 1 20 00 40 0E A2D_CALL $0E, L1194 0011C7 1 94 11 @@ -1398,8 +1404,7 @@ Current file: stf.s 0011D4 1 4C DD 11 jmp endif 0011D7 1 20 00 40 19 else: A2D_CALL A2D_DRAW_TEXT, prop_str 0011DB 1 75 11 -0011DD 1 endif: -0011DD 1 A2 0F ldx #$0F +0011DD 1 A2 0F endif: ldx #$0F 0011DF 1 BD CE 09 loop: lda L09CE,x 0011E2 1 9D A8 09 sta L09A8,x 0011E5 1 CA dex diff --git a/desk.acc/show.text.file/stf.o b/desk.acc/show.text.file/stf.o index d5b96df3aa05b347eb44d8efddeb26b5b0e3e014..4cc66d69e97f844472f088c518edc1802c7732b8 100644 GIT binary patch literal 19935 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 F@ZaLILEiuX literal 19939 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 diff --git a/desk.acc/show.text.file/stf.s b/desk.acc/show.text.file/stf.s index 8f02205..4d674e5 100644 --- a/desk.acc/show.text.file/stf.s +++ b/desk.acc/show.text.file/stf.s @@ -238,7 +238,7 @@ state: .byte 0 ; 0 = aborted, 1 = clicked .byte 0,0 .endproc -.proc query_client_params ; queried after a click to identify target +.proc query_client_params ; queried after a client click to identify target xcoord: .word 0 ycoord: .word 0 part: .byte 0 ; 0 = client, 1 = scroll bar, 2 = ????? @@ -247,8 +247,11 @@ scroll: .byte 0 ; 1 = up, 2 = down, 3 = above, 4 = below, 5 = th L0986: .byte $00 L0987: .byte $00 -L0988: .byte $00 -L0989: .byte $00 + +.proc update_scroll_params ; called to update scroll bar position +type: .byte $00 ; 1 = vertical, 2 = horizontal ? +pos: .byte $00 ; new position (0...250) +.endproc ;;; Used when dragging vscroll thumb .proc thumb_drag_params @@ -265,7 +268,7 @@ text_string_addr: text_string_len: .byte 0 ; length -L0994: .byte $64,$02 ; window params??? +L0994: .byte $64,$02 ; window params??? $64 = window id? L0996: .byte $00 L0997: .byte $10 L0998: .byte $00,$C1 @@ -513,9 +516,9 @@ end: rts .endproc .proc on_vscroll_click -L0BC9: lda #$01 ; ?? +L0BC9: lda #1 ; 1 = vertical ? sta thumb_drag_params::type - sta L0988 + sta update_scroll_params::type lda query_client_params::scroll cmp #5 beq on_vscroll_thumb_click @@ -536,7 +539,7 @@ end: rts lda thumb_drag_params::unk2 beq end lda thumb_drag_params::unk1 - sta L0989 + sta update_scroll_params::pos jsr L0D7C jsr L0DED jsr L0E30 @@ -557,7 +560,7 @@ loop: lda vscroll_pos sbc track_scroll_delta bcs :+ lda #$00 -: sta L0989 +: sta update_scroll_params::pos jsr update_scroll_pos bcc loop ; repeat while button down end: rts @@ -568,7 +571,7 @@ loop : lda vscroll_pos beq end sec sbc #1 - sta L0989 + sta update_scroll_params::pos jsr update_scroll_pos bcc loop ; repeat while button down end: rts @@ -589,7 +592,7 @@ loop: lda vscroll_pos bcc store ; nope, it's good overflow: lda #vscroll_max ; set to max -store: sta L0989 +store: sta update_scroll_params::pos jsr update_scroll_pos bcc loop ; repeat while button down end: rts @@ -601,7 +604,7 @@ loop: lda vscroll_pos beq end clc adc #1 - sta L0989 + sta update_scroll_params::pos jsr update_scroll_pos bcc loop ; repeat while button down end: rts @@ -632,9 +635,9 @@ loop: inx ;;; Haven't been able to trigger this yet - click on ??? ;;; Possibly horizontal scroll bar? (unused in this DA - generic code?) -L0C95: lda #$02 +L0C95: lda #2 sta thumb_drag_params::type - sta L0988 + sta update_scroll_params::type lda query_client_params::scroll cmp #5 beq L0CB5 @@ -745,7 +748,7 @@ L0D5E: lda L099B L0D7C: lda #$00 sta L09B2 sta L09B3 - ldx L0989 + ldx update_scroll_params::pos L0D87: beq L0D9B clc lda L09B2 @@ -767,7 +770,7 @@ L0D9B: clc lda #$00 sta L096A sta L096B - ldx L0989 + ldx update_scroll_params::pos L0DBC: beq L0DD0 clc lda L096A @@ -780,20 +783,20 @@ L0DCC: dex L0DD0: rts -L0DD1: lda #$02 - sta L0988 +L0DD1: lda #2 + sta update_scroll_params::type lda L09B0 sta $06 lda L09B1 sta $07 jsr L10DF - sta L0989 - A2D_CALL $4B, L0988 + sta update_scroll_params::pos + A2D_CALL A2D_UPDATE_SCROLL, update_scroll_params rts -L0DED: lda #$01 - sta L0988 - A2D_CALL $4B, L0988 +L0DED: lda #1 + sta update_scroll_params::type + A2D_CALL A2D_UPDATE_SCROLL, update_scroll_params rts L0DF9: jsr UNKNOWN_CALL @@ -805,7 +808,7 @@ L0DF9: jsr UNKNOWN_CALL bcc L0E0E jsr L0DD1 L0E0E: lda vscroll_pos - sta L0989 + sta update_scroll_params::pos jsr L0DED jsr L0E30 jmp input_loop @@ -1219,15 +1222,14 @@ L1194: .byte $00,$00,$0A,$00 sta label_left+1 .endproc .proc draw_mode - A2D_CALL $06, label_left ; guess: setting up draw location + A2D_CALL $06, label_left ; guess: setting up draw location ??? A2D_CALL $0E, L1194 lda fixed_mode_flag beq else ; is proportional? A2D_CALL A2D_DRAW_TEXT, fixed_str jmp endif else: A2D_CALL A2D_DRAW_TEXT, prop_str -endif: - ldx #$0F +endif: ldx #$0F loop: lda L09CE,x sta L09A8,x dex