diff --git a/desk.acc/show.text.file/a2d.inc b/desk.acc/show.text.file/a2d.inc index e050e53..26413d5 100644 --- a/desk.acc/show.text.file/a2d.inc +++ b/desk.acc/show.text.file/a2d.inc @@ -73,9 +73,9 @@ A2D_CREATE_WINDOW := $38 ;; .addr title ;; .byte hscroll bits: 7 = enable, 6 = show thumb, 0 = show track ;; .byte vscroll - ;; .byte ??? - ;; .byte ??? - ;; .byte ??? + ;; .byte hscroll_max + ;; .byte hscroll_pos + ;; .byte vscroll_max ;; .byte vscroll_pos ;; .byte ??? ;; .byte ??? @@ -87,8 +87,7 @@ A2D_CREATE_WINDOW := $38 ;; .word height A2D_DESTROY_WINDOW := $39 - ;; .byte id - ;; .byte ??? + ;; pass the same block as passed to A2D_CREATE_WINDOW A2D_GET_MOUSE := $40 ;; .word x diff --git a/desk.acc/show.text.file/stf.list b/desk.acc/show.text.file/stf.list index 25ba226..233660a 100644 --- a/desk.acc/show.text.file/stf.list +++ b/desk.acc/show.text.file/stf.list @@ -150,9 +150,9 @@ Current file: stf.s 000800 2 ;; .addr title 000800 2 ;; .byte hscroll bits: 7 = enable, 6 = show thumb, 0 = show track 000800 2 ;; .byte vscroll -000800 2 ;; .byte ??? -000800 2 ;; .byte ??? -000800 2 ;; .byte ??? +000800 2 ;; .byte hscroll_max +000800 2 ;; .byte hscroll_pos +000800 2 ;; .byte vscroll_max 000800 2 ;; .byte vscroll_pos 000800 2 ;; .byte ??? 000800 2 ;; .byte ??? @@ -164,8 +164,7 @@ Current file: stf.s 000800 2 ;; .word height 000800 2 000800 2 A2D_DESTROY_WINDOW := $39 -000800 2 ;; .byte id -000800 2 ;; .byte ??? +000800 2 ;; pass the same block as passed to A2D_CREATE_WINDOW 000800 2 000800 2 A2D_GET_MOUSE := $40 000800 2 ;; .word x @@ -578,16 +577,19 @@ Current file: stf.s 000994 1 64 id: .byte window_id ; window identifier 000995 1 02 flags: .byte A2D_CWF_ADDCLOSE; window flags (2=include close box) 000996 1 00 10 title: .addr $1000 ; overwritten to point at filename +000998 1 000998 1 00 hscroll:.byte A2D_CWS_NOSCROLL 000999 1 C1 vscroll:.byte A2D_CWS_SCROLL_NORMAL -00099A 1 -00099A 1 20 L099A: .byte $20 ; hscroll? -00099B 1 00 FF L099B: .byte $00,$FF ; more hscroll? -00099D 1 +00099A 1 hscroll_max: +00099A 1 20 .byte 32 +00099B 1 hscroll_pos: +00099B 1 00 .byte 0 +00099C 1 vscroll_max: +00099C 1 FF .byte 255 00099D 1 vscroll_pos: 00099D 1 00 .byte 0 00099E 1 -00099E 1 ;; unreferenced ? +00099E 1 ;; ??? 00099E 1 00 00 C8 00 .byte $00,$00,$C8,$00,$33,$00 0009A2 1 33 00 0009A4 1 @@ -1099,7 +1101,7 @@ Current file: stf.s 000CE7 1 000CE7 1 .proc on_hscroll_after_click 000CE7 1 A2 02 ldx #2 -000CE9 1 AD 9A 09 lda window_params::L099A +000CE9 1 AD 9A 09 lda window_params::hscroll_max 000CEC 1 4C 02 0D jmp hscroll_common 000CEF 1 .endproc 000CEF 1 @@ -1111,7 +1113,7 @@ Current file: stf.s 000CF6 1 000CF6 1 .proc on_hscroll_right_click 000CF6 1 A2 01 ldx #1 -000CF8 1 AD 9A 09 lda window_params::L099A +000CF8 1 AD 9A 09 lda window_params::hscroll_max 000CFB 1 4C 02 0D jmp hscroll_common 000CFE 1 .endproc 000CFE 1 @@ -1124,23 +1126,23 @@ Current file: stf.s 000D02 1 .proc hscroll_common 000D02 1 8D 0C 0D sta compare+1 000D05 1 8E 15 0D stx delta+1 -000D08 1 AD 9B 09 loop: lda window_params::L099B +000D08 1 AD 9B 09 loop: lda window_params::hscroll_pos 000D0B 1 C9 0A compare:cmp #$0A ; self-modified 000D0D 1 D0 01 bne continue 000D0F 1 60 rts 000D10 1 continue: 000D10 1 18 clc -000D11 1 AD 9B 09 lda window_params::L099B +000D11 1 AD 9B 09 lda window_params::hscroll_pos 000D14 1 69 01 delta: adc #1 ; self-modified 000D16 1 30 0D bmi overflow -000D18 1 CD 9A 09 cmp window_params::L099A +000D18 1 CD 9A 09 cmp window_params::hscroll_max 000D1B 1 F0 0A beq store 000D1D 1 90 08 bcc store -000D1F 1 AD 9A 09 lda window_params::L099A +000D1F 1 AD 9A 09 lda window_params::hscroll_max 000D22 1 4C 27 0D jmp store 000D25 1 overflow: 000D25 1 A9 00 lda #0 -000D27 1 8D 9B 09 store: sta window_params::L099B +000D27 1 8D 9B 09 store: sta window_params::hscroll_pos 000D2A 1 20 5E 0D jsr L0D5E 000D2D 1 20 D1 0D jsr update_hscroll 000D30 1 20 30 0E jsr draw_content @@ -1176,7 +1178,7 @@ Current file: stf.s 000D5E 1 000D5E 1 ;;; only used from hscroll code? 000D5E 1 .proc L0D5E -000D5E 1 AD 9B 09 lda window_params::L099B +000D5E 1 AD 9B 09 lda window_params::hscroll_pos 000D61 1 20 EC 10 jsr L10EC 000D64 1 18 clc 000D65 1 A5 06 lda $06 diff --git a/desk.acc/show.text.file/stf.o b/desk.acc/show.text.file/stf.o index f48e2f2..7286126 100644 Binary files a/desk.acc/show.text.file/stf.o and b/desk.acc/show.text.file/stf.o differ diff --git a/desk.acc/show.text.file/stf.s b/desk.acc/show.text.file/stf.s index c632591..6519a45 100644 --- a/desk.acc/show.text.file/stf.s +++ b/desk.acc/show.text.file/stf.s @@ -305,16 +305,19 @@ len: .byte 0 ; length id: .byte window_id ; window identifier flags: .byte A2D_CWF_ADDCLOSE; window flags (2=include close box) title: .addr $1000 ; overwritten to point at filename + hscroll:.byte A2D_CWS_NOSCROLL vscroll:.byte A2D_CWS_SCROLL_NORMAL - -L099A: .byte $20 ; hscroll? -L099B: .byte $00,$FF ; more hscroll? - +hscroll_max: + .byte 32 +hscroll_pos: + .byte 0 +vscroll_max: + .byte 255 vscroll_pos: .byte 0 - ;; unreferenced ? + ;; ??? .byte $00,$00,$C8,$00,$33,$00 width: .word default_width @@ -812,7 +815,7 @@ end: rts .proc on_hscroll_after_click ldx #2 - lda window_params::L099A + lda window_params::hscroll_max jmp hscroll_common .endproc @@ -824,7 +827,7 @@ end: rts .proc on_hscroll_right_click ldx #1 - lda window_params::L099A + lda window_params::hscroll_max jmp hscroll_common .endproc @@ -837,23 +840,23 @@ end: rts .proc hscroll_common sta compare+1 stx delta+1 -loop: lda window_params::L099B +loop: lda window_params::hscroll_pos compare:cmp #$0A ; self-modified bne continue rts continue: clc - lda window_params::L099B + lda window_params::hscroll_pos delta: adc #1 ; self-modified bmi overflow - cmp window_params::L099A + cmp window_params::hscroll_max beq store bcc store - lda window_params::L099A + lda window_params::hscroll_max jmp store overflow: lda #0 -store: sta window_params::L099B +store: sta window_params::hscroll_pos jsr L0D5E jsr update_hscroll jsr draw_content @@ -887,7 +890,7 @@ store: sta window_params::L099B ;;; only used from hscroll code? .proc L0D5E - lda window_params::L099B + lda window_params::hscroll_pos jsr L10EC clc lda $06