MGTK: More structs

This commit is contained in:
Joshua Bell
2018-05-25 18:49:36 -07:00
parent 8b3d056d7f
commit f0ef581a16
5 changed files with 64 additions and 62 deletions

View File

@@ -2549,11 +2549,11 @@ L5464: lda active_window_id
lda active_window_id lda active_window_id
jsr window_lookup jsr window_lookup
stax $06 stax $06
ldy #MGTK::winfo_offset_port+MGTK::GrafPort::maprect ldy #MGTK::Winfo::port+MGTK::GrafPort::maprect
L5479: lda ($06),y L5479: lda ($06),y
sta rect_E230-(MGTK::winfo_offset_port+MGTK::GrafPort::maprect),y sta rect_E230-(MGTK::Winfo::port+MGTK::GrafPort::maprect),y
iny iny
cpy #MGTK::winfo_offset_port+MGTK::GrafPort::maprect+8 cpy #MGTK::Winfo::port+MGTK::GrafPort::maprect+8
bne L5479 bne L5479
ldx #$00 ldx #$00
L5485: cpx cached_window_icon_count L5485: cpx cached_window_icon_count
@@ -4394,7 +4394,7 @@ L650D: .word 0
lda active_window_id lda active_window_id
jsr window_lookup jsr window_lookup
stax ptr stax ptr
ldy #MGTK::winfo_offset_port + MGTK::GrafPort::maprect + 7 ldy #MGTK::Winfo::port + MGTK::GrafPort::maprect + 7
ldx #7 ldx #7
: lda grafport2::cliprect,x : lda grafport2::cliprect,x
sta (ptr),y sta (ptr),y
@@ -8227,7 +8227,7 @@ port_copy:
jsr window_lookup jsr window_lookup
stax ptr stax ptr
ldx #0 ldx #0
ldy #MGTK::winfo_offset_port ldy #MGTK::Winfo::port
: lda (ptr),y : lda (ptr),y
sta port_copy,x sta port_copy,x
iny iny
@@ -8247,7 +8247,7 @@ port_copy:
jsr window_lookup jsr window_lookup
stax ptr stax ptr
ldx #0 ldx #0
ldy #MGTK::winfo_offset_port ldy #MGTK::Winfo::port
: lda port_copy,x : lda port_copy,x
sta (ptr),y sta (ptr),y
iny iny
@@ -8277,7 +8277,7 @@ port_copy:
stax winfo_ptr stax winfo_ptr
;; Screen space ;; Screen space
ldy #MGTK::winfo_offset_port + MGTK::GrafPort::viewloc + 3 ldy #MGTK::Winfo::port + MGTK::GrafPort::viewloc + 3
ldx #3 ldx #3
: lda (winfo_ptr),y : lda (winfo_ptr),y
sta pos_screen,x sta pos_screen,x
@@ -8286,7 +8286,7 @@ port_copy:
bpl :- bpl :-
;; Window space ;; Window space
ldy #MGTK::winfo_offset_port + MGTK::GrafPort::maprect + 3 ldy #MGTK::Winfo::port + MGTK::GrafPort::maprect + 3
ldx #3 ldx #3
: lda (winfo_ptr),y : lda (winfo_ptr),y
sta pos_win,x sta pos_win,x
@@ -8370,7 +8370,7 @@ pos_win: .word 0, 0
jsr window_lookup jsr window_lookup
stax winfo_ptr stax winfo_ptr
ldy #MGTK::winfo_offset_port + MGTK::GrafPort::viewloc + 3 ldy #MGTK::Winfo::port + MGTK::GrafPort::viewloc + 3
ldx #3 ldx #3
: lda (winfo_ptr),y : lda (winfo_ptr),y
sta pos_screen,x sta pos_screen,x
@@ -8378,7 +8378,7 @@ pos_win: .word 0, 0
dex dex
bpl :- bpl :-
ldy #MGTK::winfo_offset_port + MGTK::GrafPort::maprect + 3 ldy #MGTK::Winfo::port + MGTK::GrafPort::maprect + 3
ldx #3 ldx #3
: lda (winfo_ptr),y : lda (winfo_ptr),y
sta pos_win,x sta pos_win,x

View File

@@ -6822,7 +6822,7 @@ target_window_id:
;; The root window is not a real window, but a structure whose ;; The root window is not a real window, but a structure whose
;; nextwinfo field lines up with current_window. ;; nextwinfo field lines up with current_window.
root_window_addr: root_window_addr:
.addr current_window - MGTK::winfo_offset_nextwinfo .addr current_window - MGTK::Winfo::nextwinfo
which_control := $8C which_control := $8C
@@ -6889,7 +6889,7 @@ end: rts
;; window params block (also returned in X,A). ;; window params block (also returned in X,A).
.proc next_window .proc next_window
copy16 window, previous_window copy16 window, previous_window
ldy #MGTK::winfo_offset_nextwinfo+1 ldy #MGTK::Winfo::nextwinfo+1
lda (window),y lda (window),y
beq top_window::end ; if high byte is 0, end of chain beq top_window::end ; if high byte is 0, end of chain
tax tax
@@ -6913,11 +6913,11 @@ get_from_ax:
bpl :- bpl :-
; copy first 16 bytes of grafport to $B7 ; copy first 16 bytes of grafport to $B7
ldy #MGTK::winfo_offset_port + MGTK::GrafPort::pattern-1 ldy #MGTK::Winfo::port + MGTK::GrafPort::pattern-1
: lda (window),y : lda (window),y
sta current_winport - MGTK::winfo_offset_port,y sta current_winport - MGTK::Winfo::port,y
dey dey
cpy #MGTK::winfo_offset_port-1 cpy #MGTK::Winfo::port-1
bne :- bne :-
return_window: return_window:
@@ -7610,7 +7610,7 @@ not_selected:
copy16 params_addr, window copy16 params_addr, window
ldy #MGTK::winfo_offset_window_id ldy #MGTK::Winfo::window_id
lda (window),y lda (window),y
bne :+ bne :+
exit_call MGTK::error_window_id_required exit_call MGTK::error_window_id_required
@@ -7622,7 +7622,7 @@ not_selected:
: copy16 params_addr, window : copy16 params_addr, window
ldy #MGTK::winfo_offset_status ldy #MGTK::Winfo::status
lda (window),y lda (window),y
ora #$80 ora #$80
sta (window),y sta (window),y
@@ -7645,7 +7645,7 @@ not_selected:
: jsr link_window : jsr link_window
do_select_win: do_select_win:
ldy #MGTK::winfo_offset_nextwinfo ldy #MGTK::Winfo::nextwinfo
lda current_window lda current_window
sta (window),y sta (window),y
iny iny
@@ -7679,7 +7679,7 @@ do_select_win := SelectWindowImpl::do_select_win
.proc link_window .proc link_window
ldy #MGTK::winfo_offset_nextwinfo ldy #MGTK::Winfo::nextwinfo
lda (window),y lda (window),y
sta (previous_window),y sta (previous_window),y
iny iny
@@ -7820,11 +7820,11 @@ win_port: .addr 0
rts rts
;; Load window's grafport into current_grafport. ;; Load window's grafport into current_grafport.
: ldy #MGTK::winfo_offset_port : ldy #MGTK::Winfo::port
: lda (window),y : lda (window),y
sta current_grafport - MGTK::winfo_offset_port,y sta current_grafport - MGTK::Winfo::port,y
iny iny
cpy #MGTK::winfo_offset_port + .sizeof(MGTK::GrafPort) cpy #MGTK::Winfo::port + .sizeof(MGTK::GrafPort)
bne :- bne :-
ldx #2 ldx #2
@@ -7882,7 +7882,7 @@ win_port: .addr 0
jsr window_by_id_or_exit jsr window_by_id_or_exit
lda ptr lda ptr
clc clc
adc #MGTK::winfo_offset_port adc #MGTK::Winfo::port
sta ptr sta ptr
bcc :+ bcc :+
inc ptr+1 inc ptr+1
@@ -8057,11 +8057,11 @@ return_moved:
rts rts
changed: changed:
ldy #MGTK::winfo_offset_port ldy #MGTK::Winfo::port
: lda current_winport - MGTK::winfo_offset_port,y : lda current_winport - MGTK::Winfo::port,y
sta (window),y sta (window),y
iny iny
cpy #MGTK::winfo_offset_port + 16 cpy #MGTK::Winfo::port + 16
bne :- bne :-
jsr HideCursorImpl jsr HideCursorImpl
@@ -8099,11 +8099,11 @@ maxheight: .word 0
;; Copy mincontwidth..maxcontheight from the window to content ;; Copy mincontwidth..maxcontheight from the window to content
ldy #MGTK::winfo_offset_port-1 ldy #MGTK::Winfo::port-1
: lda (window),y : lda (window),y
sta content - MGTK::winfo_offset_mincontwidth,y sta content - MGTK::Winfo::mincontwidth,y
dey dey
cpy #MGTK::winfo_offset_mincontwidth-1 cpy #MGTK::Winfo::mincontwidth-1
bne :- bne :-
ldx #0 ldx #0
@@ -8209,7 +8209,7 @@ DragWindowImpl_drag_or_grow := DragWindowImpl::drag_or_grow
jsr winframe_to_set_port jsr winframe_to_set_port
jsr link_window jsr link_window
ldy #MGTK::winfo_offset_status ldy #MGTK::Winfo::status
lda (window),y lda (window),y
and #$7F and #$7F
sta (window),y sta (window),y
@@ -8228,7 +8228,7 @@ DragWindowImpl_drag_or_grow := DragWindowImpl::drag_or_grow
jsr top_window jsr top_window
beq :+ beq :+
ldy #MGTK::winfo_offset_status ldy #MGTK::Winfo::status
lda (window),y lda (window),y
and #$7F and #$7F
sta (window),y sta (window),y
@@ -8481,11 +8481,11 @@ activate:
bpl :+ bpl :+
lda current_winfo::vscroll lda current_winfo::vscroll
ldy #MGTK::winfo_offset_vscroll ldy #MGTK::Winfo::vscroll
bne toggle bne toggle
: lda current_winfo::hscroll : lda current_winfo::hscroll
ldy #MGTK::winfo_offset_hscroll ldy #MGTK::Winfo::hscroll
toggle: eor params::activate toggle: eor params::activate
and #1 and #1
@@ -8851,11 +8851,11 @@ got_ctl:
exit_call MGTK::error_no_active_window exit_call MGTK::error_no_active_window
: ldy #MGTK::winfo_offset_hthumbmax : ldy #MGTK::Winfo::hthumbmax
bit params::which_ctl bit params::which_ctl
bpl :+ bpl :+
ldy #MGTK::winfo_offset_vthumbmax ldy #MGTK::Winfo::vthumbmax
: lda params::ctlmax : lda params::ctlmax
sta (window),y sta (window),y
sta current_winfo,y sta current_winfo,y
@@ -9073,12 +9073,12 @@ ctl_bound1:
;; Set thumb_max and thumb_pos according to the control indicated ;; Set thumb_max and thumb_pos according to the control indicated
;; in which_control. ;; in which_control.
.proc get_thumb_vals .proc get_thumb_vals
ldy #MGTK::winfo_offset_hthumbmax ldy #MGTK::Winfo::hthumbmax
bit which_control bit which_control
bpl is_horiz bpl is_horiz
ldy #MGTK::winfo_offset_vthumbmax ldy #MGTK::Winfo::vthumbmax
is_horiz: is_horiz:
lda (window),y lda (window),y
sta thumb_max sta thumb_max
@@ -9157,11 +9157,11 @@ check_win:
bne :+ bne :+
exit_call MGTK::error_no_active_window exit_call MGTK::error_no_active_window
: ldy #MGTK::winfo_offset_hthumbpos : ldy #MGTK::Winfo::hthumbpos
bit which_control bit which_control
bpl :+ bpl :+
ldy #MGTK::winfo_offset_vthumbpos ldy #MGTK::Winfo::vthumbpos
: lda params::thumbpos : lda params::thumbpos
sta (window),y sta (window),y

View File

@@ -6,7 +6,7 @@
.addr $85E9 .addr $85E9
L8522: php L8522: php
lda winfo7+MGTK::winfo_offset_port+5,x lda winfo7+MGTK::Winfo::port+5,x
sta $08+1 sta $08+1
ldy #$14 ldy #$14
ldx #$00 ldx #$00

View File

@@ -589,10 +589,10 @@ inpoly_outside := $00
.struct MapInfo .struct MapInfo
viewloc .tag Point viewloc .tag Point
mapbits .word mapbits .word
mapwidth .byte mapwidth .byte
reserved .byte reserved .byte
maprect .tag Rect maprect .tag Rect
.endstruct .endstruct
.struct GrafPort .struct GrafPort
@@ -611,23 +611,25 @@ inpoly_outside := $00
textfont .addr textfont .addr
.endstruct .endstruct
winfo_offset_window_id := 0 .struct Winfo
winfo_offset_options := 1 window_id .byte
winfo_offset_title := 2 options .byte
winfo_offset_hscroll := 4 title .addr
winfo_offset_vscroll := 5 hscroll .byte
winfo_offset_hthumbmax := 6 vscroll .byte
winfo_offset_hthumbpos := 7 hthumbmax .byte
winfo_offset_vthumbmax := 8 hthumbpos .byte
winfo_offset_vthumbpos := 9 vthumbmax .byte
winfo_offset_status := 10 vthumbpos .byte
winfo_offset_mincontwidth := 12 status .byte
winfo_offset_mincontheight := 14 reserved .byte
winfo_offset_maxcontwidth := 16 mincontwidth .word
winfo_offset_maxcontheight := 18 mincontheight .word
winfo_offset_port := 20 maxcontwidth .word
winfo_offset_nextwinfo := 56 maxcontheight .word
winfo_size := 58 port .tag GrafPort
nextwinfo .addr
.endstruct
menu_size := 12 menu_size := 12

View File

@@ -5,7 +5,7 @@ use warnings;
sub nospace($) { sub nospace($) {
my ($s) = @_; my ($s) = @_;
$s =~ s/ //g; $s =~ s/\s//g;
return $s; return $s;
} }
@@ -93,7 +93,7 @@ while (<STDIN>) {
$_ =~ s/\s+$//; # trim right $_ =~ s/\s+$//; # trim right
die unless nospace($_) eq nospace($orig); die "Mismatch:\n> $orig\n<$_\n"unless nospace($_) eq nospace($orig);
print $_, "\n"; print $_, "\n";
} }