mirror of
https://github.com/mi57730/a2d.git
synced 2024-11-25 10:30:50 +00:00
Merge remote-tracking branch 'origin/disasm'
This commit is contained in:
commit
6e8e5a4cd4
34
MGTK.md
34
MGTK.md
@ -378,16 +378,16 @@ otherwise:
|
|||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
event_kind_no_event := 0 ; No mouse or keypress
|
event_kind_no_event = 0 ; No mouse or keypress
|
||||||
event_kind_button_down := 1 ; Mouse button was depressed
|
event_kind_button_down = 1 ; Mouse button was depressed
|
||||||
event_kind_button_up := 2 ; Mouse button was released
|
event_kind_button_up = 2 ; Mouse button was released
|
||||||
event_kind_key_down := 3 ; Key was pressed
|
event_kind_key_down = 3 ; Key was pressed
|
||||||
event_kind_drag := 4 ; Mouse button still down
|
event_kind_drag = 4 ; Mouse button still down
|
||||||
event_kind_apple_key := 5 ; Mouse button was depressed, modifier key down
|
event_kind_apple_key = 5 ; Mouse button was depressed, modifier key down
|
||||||
event_kind_update := 6 ; Window update needed
|
event_kind_update = 6 ; Window update needed
|
||||||
|
|
||||||
event_modifier_open_apple := 1 << 0
|
event_modifier_open_apple = 1 << 0
|
||||||
event_modifier_solid_apple := 1 << 1
|
event_modifier_solid_apple = 1 << 1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Menu
|
### Menu
|
||||||
@ -443,15 +443,15 @@ _title bar_ which in turn has an optional _close box_. Within the content area a
|
|||||||
optional _resize box_ and optional _scroll bars_.
|
optional _resize box_ and optional _scroll bars_.
|
||||||
|
|
||||||
```
|
```
|
||||||
option_dialog_box := 1 << 0
|
option_dialog_box = 1 << 0
|
||||||
option_go_away_box := 1 << 1
|
option_go_away_box = 1 << 1
|
||||||
option_grow_box := 1 << 2
|
option_grow_box = 1 << 2
|
||||||
|
|
||||||
scroll_option_none := 0
|
scroll_option_none = 0
|
||||||
scroll_option_present := 1 << 7
|
scroll_option_present = 1 << 7
|
||||||
scroll_option_thumb := 1 << 6
|
scroll_option_thumb = 1 << 6
|
||||||
scroll_option_active := 1 << 0
|
scroll_option_active = 1 << 0
|
||||||
scroll_option_normal := scroll_option_present | scroll_option_thumb | scroll_option_active
|
scroll_option_normal = scroll_option_present | scroll_option_thumb | scroll_option_active
|
||||||
```
|
```
|
||||||
## Commands
|
## Commands
|
||||||
|
|
||||||
|
@ -88,7 +88,7 @@ call_init:
|
|||||||
sta RAMWRTON
|
sta RAMWRTON
|
||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
sizeof_routine := * - routine
|
sizeof_routine = * - routine
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
@ -152,31 +152,31 @@ flag: .byte MGTK::zp_overwrite
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Button Definitions
|
;;; Button Definitions
|
||||||
|
|
||||||
button_width := 17
|
button_width = 17
|
||||||
button_height := 9
|
button_height = 9
|
||||||
|
|
||||||
col1_left := 13
|
col1_left = 13
|
||||||
col1_right := col1_left+button_width ; 30
|
col1_right = col1_left+button_width ; 30
|
||||||
col2_left := 42
|
col2_left = 42
|
||||||
col2_right := col2_left+button_width ; 59
|
col2_right = col2_left+button_width ; 59
|
||||||
col3_left := 70
|
col3_left = 70
|
||||||
col3_right := col3_left+button_width ; 87
|
col3_right = col3_left+button_width ; 87
|
||||||
col4_left := 98
|
col4_left = 98
|
||||||
col4_right := col4_left+button_width ; 115
|
col4_right = col4_left+button_width ; 115
|
||||||
|
|
||||||
row1_top := 22
|
row1_top = 22
|
||||||
row1_bot := row1_top+button_height ; 31
|
row1_bot = row1_top+button_height ; 31
|
||||||
row2_top := 38
|
row2_top = 38
|
||||||
row2_bot := row2_top+button_height ; 47
|
row2_bot = row2_top+button_height ; 47
|
||||||
row3_top := 53
|
row3_top = 53
|
||||||
row3_bot := row3_top+button_height ; 62
|
row3_bot = row3_top+button_height ; 62
|
||||||
row4_top := 68
|
row4_top = 68
|
||||||
row4_bot := row4_top+button_height ; 77
|
row4_bot = row4_top+button_height ; 77
|
||||||
row5_top := 83
|
row5_top = 83
|
||||||
row5_bot := row5_top+button_height ; 92
|
row5_bot = row5_top+button_height ; 92
|
||||||
|
|
||||||
border_lt := 1 ; border width pixels (left/top)
|
border_lt = 1 ; border width pixels (left/top)
|
||||||
border_br := 2 ; (bottom/right)
|
border_br = 2 ; (bottom/right)
|
||||||
|
|
||||||
.proc btn_c
|
.proc btn_c
|
||||||
viewloc: DEFINE_POINT col1_left - border_lt, row1_top - border_lt
|
viewloc: DEFINE_POINT col1_left - border_lt, row1_top - border_lt
|
||||||
@ -381,7 +381,7 @@ port: .word col4_left,row4_top,col4_right,row5_bot
|
|||||||
;; drawing the shadowed buttons.
|
;; drawing the shadowed buttons.
|
||||||
|
|
||||||
;; bitmaps are low 7 bits, 0=black 1=white
|
;; bitmaps are low 7 bits, 0=black 1=white
|
||||||
bitmap_stride := 3 ; bytes
|
bitmap_stride = 3 ; bytes
|
||||||
button_bitmap: ; bitmap for normal buttons
|
button_bitmap: ; bitmap for normal buttons
|
||||||
.byte px(%0000000),px(%0000000),px(%0000001)
|
.byte px(%0000000),px(%0000000),px(%0000001)
|
||||||
.byte px(%0111111),px(%1111111),px(%1111100)
|
.byte px(%0111111),px(%1111111),px(%1111100)
|
||||||
@ -397,7 +397,7 @@ button_bitmap: ; bitmap for normal buttons
|
|||||||
.byte px(%0000000),px(%0000000),px(%0000000)
|
.byte px(%0000000),px(%0000000),px(%0000000)
|
||||||
.byte px(%1000000),px(%0000000),px(%0000000)
|
.byte px(%1000000),px(%0000000),px(%0000000)
|
||||||
|
|
||||||
wide_bitmap_stride := 8
|
wide_bitmap_stride = 8
|
||||||
wide_button_bitmap: ; bitmap for '0' button
|
wide_button_bitmap: ; bitmap for '0' button
|
||||||
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%1111111)
|
.byte px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%0000000),px(%1111111)
|
||||||
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111111),px(%1111111),px(%1111111),px(%1111110),px(%0111111)
|
.byte px(%0111111),px(%1111111),px(%1111111),px(%1111111),px(%1111111),px(%1111111),px(%1111110),px(%0111111)
|
||||||
@ -483,10 +483,10 @@ white_pattern:
|
|||||||
backcolor: .byte $7F
|
backcolor: .byte $7F
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
display_left := 10
|
display_left = 10
|
||||||
display_top := 5
|
display_top = 5
|
||||||
display_width := 120
|
display_width = 120
|
||||||
display_height := 17
|
display_height = 17
|
||||||
|
|
||||||
.proc frame_display_params
|
.proc frame_display_params
|
||||||
left: .word display_left
|
left: .word display_left
|
||||||
@ -514,7 +514,7 @@ textptr: .addr text_buffer1
|
|||||||
textlen: .byte 15
|
textlen: .byte 15
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
text_buffer_size := 14
|
text_buffer_size = 14
|
||||||
|
|
||||||
text_buffer1:
|
text_buffer1:
|
||||||
.res text_buffer_size+2, 0
|
.res text_buffer_size+2, 0
|
||||||
@ -595,7 +595,7 @@ textfont: .addr 0
|
|||||||
|
|
||||||
.byte 0 ; ???
|
.byte 0 ; ???
|
||||||
|
|
||||||
menu_bar_height := 13
|
menu_bar_height = 13
|
||||||
|
|
||||||
;; params for MGTK::SetPortBits when decorating title bar
|
;; params for MGTK::SetPortBits when decorating title bar
|
||||||
.proc screen_port
|
.proc screen_port
|
||||||
@ -619,10 +619,10 @@ penmode: .byte MGTK::pencopy
|
|||||||
penmode: .byte MGTK::notpenXOR
|
penmode: .byte MGTK::notpenXOR
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
window_width := 130
|
window_width = 130
|
||||||
window_height := 96
|
window_height = 96
|
||||||
default_left := 210
|
default_left = 210
|
||||||
default_top := 60
|
default_top = 60
|
||||||
|
|
||||||
.proc winfo
|
.proc winfo
|
||||||
window_id: .byte da_window_id
|
window_id: .byte da_window_id
|
||||||
@ -786,7 +786,7 @@ exit: MGTK_CALL MGTK::CloseWindow, closewindow_params
|
|||||||
sta RAMWRTOFF
|
sta RAMWRTOFF
|
||||||
jmp exit_da
|
jmp exit_da
|
||||||
.endproc
|
.endproc
|
||||||
sizeof_routine := * - routine ; Can't use .sizeof before the .proc definition
|
sizeof_routine = * - routine ; Can't use .sizeof before the .proc definition
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
: cmp #MGTK::Area::dragbar ; Title bar?
|
: cmp #MGTK::Area::dragbar ; Title bar?
|
||||||
@ -1479,8 +1479,8 @@ loop: ldy #0
|
|||||||
;;; Draw the title bar decoration
|
;;; Draw the title bar decoration
|
||||||
|
|
||||||
draw_title_bar:
|
draw_title_bar:
|
||||||
offset_left := 115 ; pixels from left of client area
|
offset_left = 115 ; pixels from left of client area
|
||||||
offset_top := 22 ; pixels from top of client area (up!)
|
offset_top = 22 ; pixels from top of client area (up!)
|
||||||
ldx winfo::left+1
|
ldx winfo::left+1
|
||||||
lda winfo::left
|
lda winfo::left
|
||||||
clc
|
clc
|
||||||
@ -1549,7 +1549,7 @@ loop: inc TXTPTR
|
|||||||
end: rts
|
end: rts
|
||||||
.endproc
|
.endproc
|
||||||
.org save_org + .sizeof(adjust_txtptr_copied)
|
.org save_org + .sizeof(adjust_txtptr_copied)
|
||||||
sizeof_adjust_txtptr_copied := .sizeof(adjust_txtptr_copied)
|
sizeof_adjust_txtptr_copied = .sizeof(adjust_txtptr_copied)
|
||||||
|
|
||||||
|
|
||||||
CALL_FLOAT:
|
CALL_FLOAT:
|
||||||
|
@ -31,7 +31,7 @@ filename:
|
|||||||
|
|
||||||
write_buffer:
|
write_buffer:
|
||||||
.byte 0,0
|
.byte 0,0
|
||||||
sizeof_write_buffer := * - write_buffer
|
sizeof_write_buffer = * - write_buffer
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
@ -128,10 +128,10 @@ start_da:
|
|||||||
;; The following 7 rects are iterated over to identify
|
;; The following 7 rects are iterated over to identify
|
||||||
;; a hit target for a click.
|
;; a hit target for a click.
|
||||||
|
|
||||||
num_hit_rects := 7
|
num_hit_rects = 7
|
||||||
first_hit_rect := *
|
first_hit_rect = *
|
||||||
up_rect_index := 3
|
up_rect_index = 3
|
||||||
down_rect_index := 4
|
down_rect_index = 4
|
||||||
|
|
||||||
ok_button_rect:
|
ok_button_rect:
|
||||||
.word $6A,$2E,$B5,$39
|
.word $6A,$2E,$B5,$39
|
||||||
@ -209,7 +209,7 @@ which_area:.byte 0
|
|||||||
window_id: .byte 0
|
window_id: .byte 0
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
da_window_id := 100
|
da_window_id = 100
|
||||||
|
|
||||||
.proc screentowindow_params
|
.proc screentowindow_params
|
||||||
window_id: .byte da_window_id
|
window_id: .byte da_window_id
|
||||||
@ -520,12 +520,12 @@ decrement_table:
|
|||||||
.addr 0, decrement_day, decrement_month, decrement_year
|
.addr 0, decrement_day, decrement_month, decrement_year
|
||||||
|
|
||||||
|
|
||||||
day_min := 1
|
day_min = 1
|
||||||
day_max := 31
|
day_max = 31
|
||||||
month_min := 1
|
month_min = 1
|
||||||
month_max := 12
|
month_max = 12
|
||||||
year_min := 0
|
year_min = 0
|
||||||
year_max := 99
|
year_max = 99
|
||||||
|
|
||||||
increment_day:
|
increment_day:
|
||||||
clc
|
clc
|
||||||
@ -598,7 +598,7 @@ decrement_year:
|
|||||||
|
|
||||||
ptr := $07
|
ptr := $07
|
||||||
str := month_string + 3
|
str := month_string + 3
|
||||||
len := 3
|
len = 3
|
||||||
|
|
||||||
copy16 #str, ptr
|
copy16 #str, ptr
|
||||||
|
|
||||||
@ -661,7 +661,7 @@ skip: jmp dest
|
|||||||
sta RAMWRTOFF
|
sta RAMWRTOFF
|
||||||
jmp save_date_and_exit
|
jmp save_date_and_exit
|
||||||
.endproc
|
.endproc
|
||||||
sizeof_routine := * - routine
|
sizeof_routine = * - routine
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
@ -64,7 +64,7 @@ stash_stack: .byte 0
|
|||||||
jmp create_window
|
jmp create_window
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
da_window_id := 51
|
da_window_id = 51
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Redraw the screen (all windows) after a EventKind::drag
|
;;; Redraw the screen (all windows) after a EventKind::drag
|
||||||
@ -98,7 +98,7 @@ skip: lda #0
|
|||||||
sta RAMWRTON
|
sta RAMWRTON
|
||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
sizeof_routine := * - routine
|
sizeof_routine = * - routine
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
@ -176,16 +176,16 @@ a_grafport: .addr setport_params
|
|||||||
getwinport_params_window_id := getwinport_params::window_id
|
getwinport_params_window_id := getwinport_params::window_id
|
||||||
|
|
||||||
;; Puzzle piece row/columns
|
;; Puzzle piece row/columns
|
||||||
cw := 28
|
cw = 28
|
||||||
c1 := 5
|
c1 = 5
|
||||||
c2 := c1 + cw
|
c2 = c1 + cw
|
||||||
c3 := c2 + cw
|
c3 = c2 + cw
|
||||||
c4 := c3 + cw
|
c4 = c3 + cw
|
||||||
rh := 16
|
rh = 16
|
||||||
r1 := 3
|
r1 = 3
|
||||||
r2 := r1 + rh
|
r2 = r1 + rh
|
||||||
r3 := r2 + rh
|
r3 = r2 + rh
|
||||||
r4 := r3 + rh
|
r4 = r3 + rh
|
||||||
|
|
||||||
space_positions: ; left, top for all 16 holes
|
space_positions: ; left, top for all 16 holes
|
||||||
.word c1,r1
|
.word c1,r1
|
||||||
@ -579,10 +579,10 @@ setport_params:
|
|||||||
.byte $00,$2F,$02,$B1,$00,$00,$01,$02
|
.byte $00,$2F,$02,$B1,$00,$00,$01,$02
|
||||||
.byte $06
|
.byte $06
|
||||||
|
|
||||||
default_left := 220
|
default_left = 220
|
||||||
default_top := 80
|
default_top = 80
|
||||||
default_width := $79
|
default_width = $79
|
||||||
default_height := $44
|
default_height = $44
|
||||||
|
|
||||||
.proc winfo
|
.proc winfo
|
||||||
window_id: .byte da_window_id
|
window_id: .byte da_window_id
|
||||||
@ -743,7 +743,7 @@ destroy:
|
|||||||
sta RAMWRTOFF
|
sta RAMWRTOFF
|
||||||
jmp exit_da
|
jmp exit_da
|
||||||
.endproc
|
.endproc
|
||||||
sizeof_routine := * - routine
|
sizeof_routine = * - routine
|
||||||
|
|
||||||
;; title bar?
|
;; title bar?
|
||||||
check_title:
|
check_title:
|
||||||
@ -844,7 +844,7 @@ nope: clc
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Process piece click
|
;;; Process piece click
|
||||||
|
|
||||||
hole_piece := 12
|
hole_piece = 12
|
||||||
|
|
||||||
.proc process_click
|
.proc process_click
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ call_main_addr := call_main_trampoline+7 ; address patched in her
|
|||||||
sta RAMWRTON
|
sta RAMWRTON
|
||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
sizeof_call_main_template := * - call_main_template
|
sizeof_call_main_template = * - call_main_template
|
||||||
|
|
||||||
.proc call_init
|
.proc call_init
|
||||||
;; run the DA
|
;; run the DA
|
||||||
@ -160,7 +160,7 @@ params_start:
|
|||||||
|
|
||||||
io_buf := $0C00
|
io_buf := $0C00
|
||||||
default_buffer := $1200
|
default_buffer := $1200
|
||||||
read_length := $0100
|
read_length = $0100
|
||||||
|
|
||||||
DEFINE_OPEN_PARAMS open_params, pathbuf, io_buf
|
DEFINE_OPEN_PARAMS open_params, pathbuf, io_buf
|
||||||
DEFINE_READ_PARAMS read_params, default_buffer, read_length
|
DEFINE_READ_PARAMS read_params, default_buffer, read_length
|
||||||
@ -185,10 +185,10 @@ black_pattern:
|
|||||||
white_pattern:
|
white_pattern:
|
||||||
.res $8, $FF
|
.res $8, $FF
|
||||||
|
|
||||||
da_window_id := 100
|
da_window_id = 100
|
||||||
|
|
||||||
line_spacing := 10
|
line_spacing = 10
|
||||||
right_const := 506
|
right_const = 506
|
||||||
|
|
||||||
L095A: .byte $00
|
L095A: .byte $00
|
||||||
L095B: .word right_const
|
L095B: .word right_const
|
||||||
@ -279,10 +279,10 @@ textptr: .addr 0 ; address
|
|||||||
textlen: .byte 0 ; length
|
textlen: .byte 0 ; length
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
default_width := 512
|
default_width = 512
|
||||||
default_height := 150
|
default_height = 150
|
||||||
default_left := 10
|
default_left = 10
|
||||||
default_top := 28
|
default_top = 28
|
||||||
|
|
||||||
.proc winfo
|
.proc winfo
|
||||||
window_id: .byte da_window_id ; window identifier
|
window_id: .byte da_window_id ; window identifier
|
||||||
@ -582,7 +582,7 @@ no_mod:
|
|||||||
jsr redraw_screen
|
jsr redraw_screen
|
||||||
jsr calc_window_size
|
jsr calc_window_size
|
||||||
|
|
||||||
max_width := default_width
|
max_width = default_width
|
||||||
lda #>max_width
|
lda #>max_width
|
||||||
cmp winfo::maprect::x2+1
|
cmp winfo::maprect::x2+1
|
||||||
bne :+
|
bne :+
|
||||||
@ -731,7 +731,7 @@ end: rts
|
|||||||
end: rts
|
end: rts
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
vscroll_max := $FA
|
vscroll_max = $FA
|
||||||
|
|
||||||
.proc on_vscroll_below_click
|
.proc on_vscroll_below_click
|
||||||
loop: jsr page_down
|
loop: jsr page_down
|
||||||
@ -1481,8 +1481,8 @@ ignore: clc ; Click ignored
|
|||||||
|
|
||||||
fixed_str: DEFINE_STRING "Fixed "
|
fixed_str: DEFINE_STRING "Fixed "
|
||||||
prop_str: DEFINE_STRING "Proportional"
|
prop_str: DEFINE_STRING "Proportional"
|
||||||
label_width := 50
|
label_width = 50
|
||||||
title_bar_height := 12
|
title_bar_height = 12
|
||||||
|
|
||||||
.proc mode_mapinfo ; bounding port for mode label
|
.proc mode_mapinfo ; bounding port for mode label
|
||||||
viewloc: DEFINE_POINT 0, 0, viewloc
|
viewloc: DEFINE_POINT 0, 0, viewloc
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
|
|
||||||
dir_data_buffer := $0E00
|
dir_data_buffer := $0E00
|
||||||
dir_data_buffer_len := $0E00
|
dir_data_buffer_len = $0E00
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
@ -139,7 +139,7 @@ on_line_buffer:
|
|||||||
|
|
||||||
io_buf := $1C00
|
io_buf := $1C00
|
||||||
buffer := dir_data_buffer
|
buffer := dir_data_buffer
|
||||||
buffer_len := dir_data_buffer_len
|
buffer_len = dir_data_buffer_len
|
||||||
|
|
||||||
DEFINE_OPEN_PARAMS open_params, path_buf, io_buf
|
DEFINE_OPEN_PARAMS open_params, path_buf, io_buf
|
||||||
DEFINE_READ_PARAMS read_params, buffer, buffer_len
|
DEFINE_READ_PARAMS read_params, buffer, buffer_len
|
||||||
|
78
desktop.inc
78
desktop.inc
@ -2,8 +2,8 @@
|
|||||||
;;; DeskTop Internals
|
;;; DeskTop Internals
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
screen_width := 560
|
screen_width = 560
|
||||||
screen_height := 192
|
screen_height = 192
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
@ -11,7 +11,7 @@ VERSION_MAJOR = 1
|
|||||||
VERSION_MINOR = 2
|
VERSION_MINOR = 2
|
||||||
.define VERSION_SUFFIX "-alpha1"
|
.define VERSION_SUFFIX "-alpha1"
|
||||||
|
|
||||||
DA_FILE_TYPE := $F1
|
DA_FILE_TYPE = $F1
|
||||||
|
|
||||||
max_desk_acc_count = 12
|
max_desk_acc_count = 12
|
||||||
|
|
||||||
@ -20,7 +20,7 @@ INVOKER_FILENAME := $280 ; File to invoke (PREFIX must be set)
|
|||||||
|
|
||||||
DA_LOAD_ADDRESS := $800 ; Loaded into MAIN
|
DA_LOAD_ADDRESS := $800 ; Loaded into MAIN
|
||||||
DA_IO_BUFFER := $1C00 ; ...through $1FFF
|
DA_IO_BUFFER := $1C00 ; ...through $1FFF
|
||||||
DA_MAX_SIZE := DA_IO_BUFFER - DA_LOAD_ADDRESS
|
DA_MAX_SIZE = DA_IO_BUFFER - DA_LOAD_ADDRESS
|
||||||
;; Can't load DA past I/O Buffer at MAIN $1C00,
|
;; Can't load DA past I/O Buffer at MAIN $1C00,
|
||||||
;; but icon tables start at AUX $1B00 so can't clone there.
|
;; but icon tables start at AUX $1B00 so can't clone there.
|
||||||
|
|
||||||
@ -79,24 +79,24 @@ DESKTOP := $8E00
|
|||||||
|
|
||||||
;; Implementation bounces to $93BC, uses jump table at $939E
|
;; Implementation bounces to $93BC, uses jump table at $939E
|
||||||
|
|
||||||
DT_ADD_ICON := $01 ; { .addr icondata }
|
DT_ADD_ICON = $01 ; { .addr icondata }
|
||||||
DT_HIGHLIGHT_ICON := $02 ; { .byte icon }
|
DT_HIGHLIGHT_ICON = $02 ; { .byte icon }
|
||||||
DT_REDRAW_ICON := $03 ; { .byte icon }
|
DT_REDRAW_ICON = $03 ; { .byte icon }
|
||||||
DT_REMOVE_ICON := $04 ; { .byte icon }
|
DT_REMOVE_ICON = $04 ; { .byte icon }
|
||||||
DT_HIGHLIGHT_ALL := $05 ; { .byte window_id }
|
DT_HIGHLIGHT_ALL = $05 ; { .byte window_id }
|
||||||
DT_UNHIGHLIGHT_ALL := $06
|
DT_UNHIGHLIGHT_ALL = $06
|
||||||
DT_CLOSE_WINDOW := $07 ; { .byte window_id }
|
DT_CLOSE_WINDOW = $07 ; { .byte window_id }
|
||||||
DT_GET_HIGHLIGHTED := $08 ; { .res 20 }
|
DT_GET_HIGHLIGHTED = $08 ; { .res 20 }
|
||||||
DT_FIND_ICON := $09 ; { .word mousex, .word mousey, .byte result }
|
DT_FIND_ICON = $09 ; { .word mousex, .word mousey, .byte result }
|
||||||
DT_DRAG_HIGHLIGHTED := $0A ; { .byte param }
|
DT_DRAG_HIGHLIGHTED = $0A ; { .byte param }
|
||||||
; Input: specific icon being dragged
|
; Input: specific icon being dragged
|
||||||
; Output: 0 = on desktop (no-op)
|
; Output: 0 = on desktop (no-op)
|
||||||
; hi bit clear: low bits are target icon
|
; hi bit clear: low bits are target icon
|
||||||
; hi bit set: low bits are target window
|
; hi bit set: low bits are target window
|
||||||
DT_UNHIGHLIGHT_ICON := $0B ; { .addr iconentry }
|
DT_UNHIGHLIGHT_ICON = $0B ; { .addr iconentry }
|
||||||
DT_REDRAW_ICONS := $0C ; Repaints desktop icons *
|
DT_REDRAW_ICONS = $0C ; Repaints desktop icons *
|
||||||
DT_ICON_IN_RECT := $0D ; { .byte icon, rect bounds }
|
DT_ICON_IN_RECT = $0D ; { .byte icon, rect bounds }
|
||||||
DT_REDRAW_ICON_IDX := $0E ; { .byte icon_index }
|
DT_REDRAW_ICON_IDX = $0E ; { .byte icon_index }
|
||||||
|
|
||||||
;;; `icon` is the icon number, i.e. first field in icon entry
|
;;; `icon` is the icon number, i.e. first field in icon entry
|
||||||
;;; `icon_index` is the index in the icon table
|
;;; `icon_index` is the index in the icon table
|
||||||
@ -209,17 +209,17 @@ last_menu_click_params := $E25A
|
|||||||
name .res 17 ; 15 chars plus leading/trailing spaces
|
name .res 17 ; 15 chars plus leading/trailing spaces
|
||||||
.endstruct
|
.endstruct
|
||||||
|
|
||||||
max_icon_count := 127
|
max_icon_count = 127
|
||||||
|
|
||||||
icon_entry_open_mask := %10000000
|
icon_entry_open_mask = %10000000
|
||||||
icon_entry_type_mask := %01110000
|
icon_entry_type_mask = %01110000
|
||||||
icon_entry_winid_mask := %00001111
|
icon_entry_winid_mask = %00001111
|
||||||
icon_entry_type_dir := %00000000
|
icon_entry_type_dir = %00000000
|
||||||
icon_entry_type_sys := %00010000
|
icon_entry_type_sys = %00010000
|
||||||
icon_entry_type_bin := %00100000
|
icon_entry_type_bin = %00100000
|
||||||
icon_entry_type_bas := %00110000
|
icon_entry_type_bas = %00110000
|
||||||
icon_entry_type_txt := %01010000
|
icon_entry_type_txt = %01010000
|
||||||
icon_entry_type_trash := %01110000
|
icon_entry_type_trash = %01110000
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Internals - Default Font
|
;;; Internals - Default Font
|
||||||
@ -249,19 +249,19 @@ DEFAULT_FONT := $8800
|
|||||||
;;; $0E = (C) $1E = solid apple (MT:@)
|
;;; $0E = (C) $1E = solid apple (MT:@)
|
||||||
;;; $0F = (R) $1F = open apple (MT:A)
|
;;; $0F = (R) $1F = open apple (MT:A)
|
||||||
|
|
||||||
GLYPH_FOLDERL := $01
|
GLYPH_FOLDERL = $01
|
||||||
GLYPH_FOLDERR := $02
|
GLYPH_FOLDERR = $02
|
||||||
|
|
||||||
GLYPH_SPC := $00
|
GLYPH_SPC = $00
|
||||||
GLYPH_INSPT := $06
|
GLYPH_INSPT = $06
|
||||||
|
|
||||||
GLYPH_LARROW := $09
|
GLYPH_LARROW = $09
|
||||||
GLYPH_RARROW := $15
|
GLYPH_RARROW = $15
|
||||||
GLYPH_UARROW := $0B
|
GLYPH_UARROW = $0B
|
||||||
GLYPH_DARROW := $0A
|
GLYPH_DARROW = $0A
|
||||||
GLYPH_RETURN := $0D
|
GLYPH_RETURN = $0D
|
||||||
GLYPH_OAPPLE := $1F
|
GLYPH_OAPPLE = $1F
|
||||||
GLYPH_SAPPLE := $1E
|
GLYPH_SAPPLE = $1E
|
||||||
|
|
||||||
;;; Menu (by default) uses:
|
;;; Menu (by default) uses:
|
||||||
;;; Solid Mod $1E
|
;;; Solid Mod $1E
|
||||||
|
@ -638,7 +638,7 @@ done: rts
|
|||||||
|
|
||||||
open_io_buffer := $A000
|
open_io_buffer := $A000
|
||||||
dir_buffer := $A400
|
dir_buffer := $A400
|
||||||
dir_bufsize := BLOCK_SIZE
|
dir_bufsize = BLOCK_SIZE
|
||||||
|
|
||||||
entry_length_offset := $23
|
entry_length_offset := $23
|
||||||
file_count_offset := $25
|
file_count_offset := $25
|
||||||
|
@ -12,12 +12,12 @@
|
|||||||
|
|
||||||
;;; Constants needed in both main and aux
|
;;; Constants needed in both main and aux
|
||||||
|
|
||||||
menu_id_apple := 1
|
menu_id_apple = 1
|
||||||
menu_id_file := 2
|
menu_id_file = 2
|
||||||
menu_id_view := 4
|
menu_id_view = 4
|
||||||
menu_id_special := 5
|
menu_id_special = 5
|
||||||
menu_id_startup := 8
|
menu_id_startup = 8
|
||||||
menu_id_selector := 3
|
menu_id_selector = 3
|
||||||
|
|
||||||
;;; Various routines callable from MAIN
|
;;; Various routines callable from MAIN
|
||||||
|
|
||||||
|
@ -24,15 +24,15 @@ dst_path_buf := $1FC0
|
|||||||
dynamic_routine_7000 := $7000
|
dynamic_routine_7000 := $7000
|
||||||
dynamic_routine_9000 := $9000
|
dynamic_routine_9000 := $9000
|
||||||
|
|
||||||
dynamic_routine_disk_copy := 0
|
dynamic_routine_disk_copy = 0
|
||||||
dynamic_routine_format_erase := 1
|
dynamic_routine_format_erase = 1
|
||||||
dynamic_routine_selector1 := 2
|
dynamic_routine_selector1 = 2
|
||||||
dynamic_routine_common := 3
|
dynamic_routine_common = 3
|
||||||
dynamic_routine_file_copy := 4
|
dynamic_routine_file_copy = 4
|
||||||
dynamic_routine_file_delete := 5
|
dynamic_routine_file_delete = 5
|
||||||
dynamic_routine_selector2 := 6
|
dynamic_routine_selector2 = 6
|
||||||
dynamic_routine_restore5000 := 7
|
dynamic_routine_restore5000 = 7
|
||||||
dynamic_routine_restore9000 := 8
|
dynamic_routine_restore9000 = 8
|
||||||
|
|
||||||
|
|
||||||
.org $4000
|
.org $4000
|
||||||
@ -12128,17 +12128,17 @@ driver: jmp (RAMSLOT)
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Dialog Launcher (or just proc handler???)
|
;;; Dialog Launcher (or just proc handler???)
|
||||||
|
|
||||||
index_about_dialog := 0
|
index_about_dialog = 0
|
||||||
index_copy_dialog := 1
|
index_copy_dialog = 1
|
||||||
index_delete_dialog := 2
|
index_delete_dialog = 2
|
||||||
index_new_folder_dialog := 3
|
index_new_folder_dialog = 3
|
||||||
index_get_info_dialog := 6
|
index_get_info_dialog = 6
|
||||||
index_lock_dialog := 7
|
index_lock_dialog = 7
|
||||||
index_unlock_dialog := 8
|
index_unlock_dialog = 8
|
||||||
index_rename_dialog := 9
|
index_rename_dialog = 9
|
||||||
index_download_dialog := $A
|
index_download_dialog = 10
|
||||||
index_get_size_dialog := $B
|
index_get_size_dialog = 11
|
||||||
index_warning_dialog := $C
|
index_warning_dialog = 12
|
||||||
|
|
||||||
invoke_dialog_proc:
|
invoke_dialog_proc:
|
||||||
.assert * = $A500, error, "Entry point used by overlay"
|
.assert * = $A500, error, "Entry point used by overlay"
|
||||||
@ -13492,13 +13492,13 @@ warning_message_table:
|
|||||||
.addr desktop_aux::str_too_many_windows,desktop_aux::str_1_space
|
.addr desktop_aux::str_too_many_windows,desktop_aux::str_1_space
|
||||||
.addr desktop_aux::str_save_selector_list,desktop_aux::str_on_system_disk
|
.addr desktop_aux::str_save_selector_list,desktop_aux::str_on_system_disk
|
||||||
.endproc
|
.endproc
|
||||||
warning_msg_insert_system_disk := 0
|
warning_msg_insert_system_disk = 0
|
||||||
warning_msg_selector_list_full := 1
|
warning_msg_selector_list_full = 1
|
||||||
warning_msg_selector_list_full2 := 2
|
warning_msg_selector_list_full2 = 2
|
||||||
warning_msg_window_must_be_closed := 3
|
warning_msg_window_must_be_closed = 3
|
||||||
warning_msg_window_must_be_closed2 := 4
|
warning_msg_window_must_be_closed2 = 4
|
||||||
warning_msg_too_many_windows := 5
|
warning_msg_too_many_windows = 5
|
||||||
warning_msg_save_selector_list := 6
|
warning_msg_save_selector_list = 6
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
@ -13568,8 +13568,8 @@ set_penmode_xor2:
|
|||||||
.proc detect_double_click
|
.proc detect_double_click
|
||||||
.assert * = $B445, error, "Entry point used by overlay"
|
.assert * = $B445, error, "Entry point used by overlay"
|
||||||
|
|
||||||
double_click_deltax := 5
|
double_click_deltax = 5
|
||||||
double_click_deltay := 4
|
double_click_deltay = 4
|
||||||
|
|
||||||
;; Stash initial coords
|
;; Stash initial coords
|
||||||
ldx #3
|
ldx #3
|
||||||
@ -13722,7 +13722,7 @@ done: jmp reset_grafport3a
|
|||||||
;;; A,X has pointer to DrawText params block
|
;;; A,X has pointer to DrawText params block
|
||||||
;;; Y has row number (1, 2, ... ) with high bit to center it
|
;;; Y has row number (1, 2, ... ) with high bit to center it
|
||||||
|
|
||||||
DDL_CENTER := $80
|
DDL_CENTER = $80
|
||||||
|
|
||||||
.proc draw_dialog_label
|
.proc draw_dialog_label
|
||||||
.assert * = $B590, error, "Entry point used by overlay"
|
.assert * = $B590, error, "Entry point used by overlay"
|
||||||
|
@ -457,7 +457,7 @@ nextwinfo: .addr 0
|
|||||||
;;; "About Apple II Desktop" Dialog
|
;;; "About Apple II Desktop" Dialog
|
||||||
|
|
||||||
.proc winfo_about_dialog
|
.proc winfo_about_dialog
|
||||||
width := 400
|
width = 400
|
||||||
|
|
||||||
window_id: .byte $18
|
window_id: .byte $18
|
||||||
options: .byte MGTK::Option::dialog_box
|
options: .byte MGTK::Option::dialog_box
|
||||||
@ -494,7 +494,7 @@ winfo_about_dialog_port := winfo_about_dialog::port
|
|||||||
;;; Dialog used for Edit/Delete/Run an Entry ...
|
;;; Dialog used for Edit/Delete/Run an Entry ...
|
||||||
|
|
||||||
.proc winfo_entry_picker
|
.proc winfo_entry_picker
|
||||||
width := 350
|
width = 350
|
||||||
|
|
||||||
window_id: .byte $1B
|
window_id: .byte $1B
|
||||||
options: .byte MGTK::Option::dialog_box
|
options: .byte MGTK::Option::dialog_box
|
||||||
@ -537,7 +537,7 @@ pos_dialog_title: DEFINE_POINT 0, 18, pos_dialog_title
|
|||||||
point7: DEFINE_POINT 40,18, point7
|
point7: DEFINE_POINT 40,18, point7
|
||||||
pointD: DEFINE_POINT 40,35, pointD
|
pointD: DEFINE_POINT 40,35, pointD
|
||||||
|
|
||||||
dialog_label_default_x := 40
|
dialog_label_default_x = 40
|
||||||
dialog_label_pos:
|
dialog_label_pos:
|
||||||
DEFINE_POINT dialog_label_default_x,0, dialog_label_pos
|
DEFINE_POINT dialog_label_default_x,0, dialog_label_pos
|
||||||
|
|
||||||
@ -652,7 +652,7 @@ has_input_field_flag:
|
|||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
|
|
||||||
prompt_insertion_point_blink_count := $14
|
prompt_insertion_point_blink_count = $14
|
||||||
|
|
||||||
prompt_ip_counter:
|
prompt_ip_counter:
|
||||||
.byte prompt_insertion_point_blink_count
|
.byte prompt_insertion_point_blink_count
|
||||||
@ -1247,11 +1247,11 @@ LE6C1:
|
|||||||
.addr winfo8title_ptr
|
.addr winfo8title_ptr
|
||||||
|
|
||||||
;; (low nibble must match menu order)
|
;; (low nibble must match menu order)
|
||||||
view_by_icon := $80
|
view_by_icon = $80
|
||||||
view_by_name := $81
|
view_by_name = $81
|
||||||
view_by_date := $82
|
view_by_date = $82
|
||||||
view_by_size := $83
|
view_by_size = $83
|
||||||
view_by_type := $84
|
view_by_type = $84
|
||||||
|
|
||||||
win_view_by_table:
|
win_view_by_table:
|
||||||
.res 8, 0
|
.res 8, 0
|
||||||
|
@ -422,14 +422,10 @@ max_page:
|
|||||||
.org $280
|
.org $280
|
||||||
|
|
||||||
SLOT1 := $C100
|
SLOT1 := $C100
|
||||||
TAB := $09
|
|
||||||
LF := $0A
|
|
||||||
CR := $0D
|
|
||||||
ESC := $1B
|
|
||||||
|
|
||||||
hbasl := $6
|
hbasl := $6
|
||||||
screen_width := 560
|
screen_width = 560
|
||||||
screen_height := 192
|
screen_height = 192
|
||||||
|
|
||||||
;; Test for OpenApple+SolidApple+P
|
;; Test for OpenApple+SolidApple+P
|
||||||
pha
|
pha
|
||||||
@ -484,7 +480,7 @@ done: rts
|
|||||||
bne :-
|
bne :-
|
||||||
rts
|
rts
|
||||||
init_graphics:
|
init_graphics:
|
||||||
.byte ESC,"G0560" ; Graphics, 560 data bytes
|
.byte CHAR_ESCAPE,"G0560" ; Graphics, 560 data bytes
|
||||||
.endproc
|
.endproc
|
||||||
|
|
||||||
.proc send_row
|
.proc send_row
|
||||||
@ -560,9 +556,9 @@ done: sta PAGE2OFF ; Read main mem $2000-$3FFF
|
|||||||
|
|
||||||
;; Print a row (560x8), CR+LF
|
;; Print a row (560x8), CR+LF
|
||||||
loop: jsr send_row
|
loop: jsr send_row
|
||||||
lda #CR
|
lda #CHAR_RETURN
|
||||||
jsr cout
|
jsr cout
|
||||||
lda #LF
|
lda #CHAR_DOWN
|
||||||
jsr cout
|
jsr cout
|
||||||
|
|
||||||
lda y_coord
|
lda y_coord
|
||||||
@ -571,9 +567,9 @@ loop: jsr send_row
|
|||||||
bcc loop
|
bcc loop
|
||||||
|
|
||||||
;; Finish up
|
;; Finish up
|
||||||
lda #CR
|
lda #CHAR_RETURN
|
||||||
jsr cout
|
jsr cout
|
||||||
lda #CR
|
lda #CHAR_RETURN
|
||||||
jsr cout
|
jsr cout
|
||||||
jsr send_restore_state
|
jsr send_restore_state
|
||||||
sta ALTZPON
|
sta ALTZPON
|
||||||
@ -612,7 +608,7 @@ loop: jsr send_row
|
|||||||
sta COUT_HOOK+1
|
sta COUT_HOOK+1
|
||||||
lda #<SLOT1
|
lda #<SLOT1
|
||||||
sta COUT_HOOK
|
sta COUT_HOOK
|
||||||
lda #(CR | $80)
|
lda #(CHAR_RETURN | $80)
|
||||||
jsr invoke_slot1
|
jsr invoke_slot1
|
||||||
rts
|
rts
|
||||||
.endproc
|
.endproc
|
||||||
@ -633,15 +629,15 @@ col_num:.byte 0 ; 0...79
|
|||||||
.byte 0, 0
|
.byte 0, 0
|
||||||
|
|
||||||
spacing_sequence:
|
spacing_sequence:
|
||||||
.byte ESC,'e' ; 107 DPI (horizontal)
|
.byte CHAR_ESCAPE,'e' ; 107 DPI (horizontal)
|
||||||
.byte ESC,"T16" ; distance between lines (16/144")
|
.byte CHAR_ESCAPE,"T16" ; distance between lines (16/144")
|
||||||
.byte TAB,$4C,$20,$44,$8D ; ???
|
.byte CHAR_TAB,$4C,$20,$44,$8D ; ???
|
||||||
.byte TAB,$5A,$8D ; ???
|
.byte CHAR_TAB,$5A,$8D ; ???
|
||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
restore_state:
|
restore_state:
|
||||||
.byte ESC,'N' ; 80 DPI (horizontal)
|
.byte CHAR_ESCAPE,'N' ; 80 DPI (horizontal)
|
||||||
.byte ESC,"T24" ; distance between lines (24/144")
|
.byte CHAR_ESCAPE,"T24" ; distance between lines (24/144")
|
||||||
.byte 0
|
.byte 0
|
||||||
|
|
||||||
invoke_slot1:
|
invoke_slot1:
|
||||||
|
@ -87,9 +87,9 @@ key_mods := * + 3
|
|||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Menu definition
|
;;; Menu definition
|
||||||
|
|
||||||
menu_id_apple := 1
|
menu_id_apple = 1
|
||||||
menu_id_file := 2
|
menu_id_file = 2
|
||||||
menu_id_facilities := 3
|
menu_id_facilities = 3
|
||||||
|
|
||||||
menu_definition:
|
menu_definition:
|
||||||
DEFINE_MENU_BAR 3
|
DEFINE_MENU_BAR 3
|
||||||
|
@ -208,24 +208,24 @@ WRMODE := $C08F ; Turn on write mode
|
|||||||
|
|
||||||
;;; Firmware Routines
|
;;; Firmware Routines
|
||||||
|
|
||||||
SETMOUSE := $12
|
SETMOUSE = $12
|
||||||
SERVEMOUSE := $13
|
SERVEMOUSE = $13
|
||||||
READMOUSE := $14
|
READMOUSE = $14
|
||||||
CLEARMOUSE := $15
|
CLEARMOUSE = $15
|
||||||
POSMOUSE := $16
|
POSMOUSE = $16
|
||||||
CLAMPMOUSE := $17
|
CLAMPMOUSE = $17
|
||||||
HOMEMOUSE := $18
|
HOMEMOUSE = $18
|
||||||
INITMOUSE := $19
|
INITMOUSE = $19
|
||||||
|
|
||||||
;;; Constants
|
;;; Constants
|
||||||
|
|
||||||
CLAMP_X := 0
|
CLAMP_X = 0
|
||||||
CLAMP_Y := 1
|
CLAMP_Y = 1
|
||||||
|
|
||||||
MOUSE_MODE_OFF := $00
|
MOUSE_MODE_OFF = $00
|
||||||
MOUSE_MODE_TRANS:= $01
|
MOUSE_MODE_TRANS= $01
|
||||||
MOUSE_MODE_INT := $03
|
MOUSE_MODE_INT = $03
|
||||||
MOUSE_MODE_BTN := $05
|
MOUSE_MODE_BTN = $05
|
||||||
|
|
||||||
;;; RAM Locations
|
;;; RAM Locations
|
||||||
|
|
||||||
@ -249,16 +249,16 @@ MOUSE_MODE := $0738
|
|||||||
;;; Character Constants (Screen/Key Codes)
|
;;; Character Constants (Screen/Key Codes)
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
CHAR_MASK := $7F
|
CHAR_MASK = $7F
|
||||||
CASE_MASK := $DF
|
CASE_MASK = $DF
|
||||||
|
|
||||||
CHAR_CTRL_C := $03
|
CHAR_CTRL_C = $03
|
||||||
CHAR_LEFT := $08
|
CHAR_LEFT = $08
|
||||||
CHAR_TAB := $09
|
CHAR_TAB = $09
|
||||||
CHAR_DOWN := $0A
|
CHAR_DOWN = $0A
|
||||||
CHAR_UP := $0B
|
CHAR_UP = $0B
|
||||||
CHAR_RETURN := $0D
|
CHAR_RETURN = $0D
|
||||||
CHAR_CTRL_O := $0F
|
CHAR_CTRL_O = $0F
|
||||||
CHAR_RIGHT := $15
|
CHAR_RIGHT = $15
|
||||||
CHAR_ESCAPE := $1B
|
CHAR_ESCAPE = $1B
|
||||||
CHAR_DELETE := $7F
|
CHAR_DELETE = $7F
|
||||||
|
130
inc/prodos.inc
130
inc/prodos.inc
@ -13,7 +13,7 @@ DEVNUM := $BF30 ; Most recent accessed device
|
|||||||
DEVCNT := $BF31 ; Number of on-line devices minus 1
|
DEVCNT := $BF31 ; Number of on-line devices minus 1
|
||||||
DEVLST := $BF32 ; Up to 14 units ($BF32-$BF3F)
|
DEVLST := $BF32 ; Up to 14 units ($BF32-$BF3F)
|
||||||
BITMAP := $BF58 ; System memory bitmap
|
BITMAP := $BF58 ; System memory bitmap
|
||||||
BITMAP_SIZE := $18 ; Bits for pages $00 to $BF
|
BITMAP_SIZE = $18 ; Bits for pages $00 to $BF
|
||||||
DATELO := $BF90 ; Date lo
|
DATELO := $BF90 ; Date lo
|
||||||
DATEHI := $BF91 ; Date hi
|
DATEHI := $BF91 ; Date hi
|
||||||
TIMELO := $BF92 ; Time lo
|
TIMELO := $BF92 ; Time lo
|
||||||
@ -27,45 +27,45 @@ KVERSION := $BFFF ; ProDOS Kernel Version
|
|||||||
;;; Patch Locations
|
;;; Patch Locations
|
||||||
SELECTOR := $D100
|
SELECTOR := $D100
|
||||||
|
|
||||||
BLOCK_SIZE := $200
|
BLOCK_SIZE = $200
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; MLI Calls
|
;;; MLI Calls
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
;;; Housekeeping Calls
|
;;; Housekeeping Calls
|
||||||
CREATE := $C0
|
CREATE = $C0
|
||||||
DESTROY := $C1
|
DESTROY = $C1
|
||||||
RENAME := $C2
|
RENAME = $C2
|
||||||
SET_FILE_INFO := $C3
|
SET_FILE_INFO = $C3
|
||||||
GET_FILE_INFO := $C4
|
GET_FILE_INFO = $C4
|
||||||
ON_LINE := $C5
|
ON_LINE = $C5
|
||||||
SET_PREFIX := $C6
|
SET_PREFIX = $C6
|
||||||
GET_PREFIX := $C7
|
GET_PREFIX = $C7
|
||||||
|
|
||||||
;;; Filing Calls
|
;;; Filing Calls
|
||||||
OPEN := $C8
|
OPEN = $C8
|
||||||
NEWLINE := $C9
|
NEWLINE = $C9
|
||||||
READ := $CA
|
READ = $CA
|
||||||
WRITE := $CB
|
WRITE = $CB
|
||||||
CLOSE := $CC
|
CLOSE = $CC
|
||||||
FLUSH := $CD
|
FLUSH = $CD
|
||||||
SET_MARK := $CE
|
SET_MARK = $CE
|
||||||
GET_MARK := $CF
|
GET_MARK = $CF
|
||||||
SET_EOF := $D0
|
SET_EOF = $D0
|
||||||
GET_EOF := $D1
|
GET_EOF = $D1
|
||||||
SET_BUF := $D2
|
SET_BUF = $D2
|
||||||
GET_BUF := $D3
|
GET_BUF = $D3
|
||||||
|
|
||||||
;;; System Calls
|
;;; System Calls
|
||||||
GET_TIME := $82
|
GET_TIME = $82
|
||||||
ALLOC_INTERRUPT := $40
|
ALLOC_INTERRUPT = $40
|
||||||
DEALLOC_INTERRUPT := $41
|
DEALLOC_INTERRUPT = $41
|
||||||
QUIT := $65
|
QUIT = $65
|
||||||
|
|
||||||
;;; Direct Disk Access Commands
|
;;; Direct Disk Access Commands
|
||||||
READ_BLOCK := $80
|
READ_BLOCK = $80
|
||||||
WRITE_BLOCK := $81
|
WRITE_BLOCK = $81
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Device Types (low nibble of unit number in DEVLST)
|
;;; Device Types (low nibble of unit number in DEVLST)
|
||||||
@ -73,10 +73,10 @@ WRITE_BLOCK := $81
|
|||||||
|
|
||||||
;;; As used by DeskTop; these are not actually correct...
|
;;; As used by DeskTop; these are not actually correct...
|
||||||
|
|
||||||
DT_DISKII := $0
|
DT_DISKII = $0
|
||||||
DT_PROFILE := $4
|
DT_PROFILE = $4
|
||||||
DT_REMOVABLE := $B
|
DT_REMOVABLE = $B
|
||||||
DT_RAM := $F
|
DT_RAM = $F
|
||||||
|
|
||||||
;;; See ProDOS Tech Note #21 - other than the above types, there
|
;;; See ProDOS Tech Note #21 - other than the above types, there
|
||||||
;;; is not an "ID nibble". The nibble is a copy of $CnFE's high
|
;;; is not an "ID nibble". The nibble is a copy of $CnFE's high
|
||||||
@ -90,48 +90,48 @@ DT_RAM := $F
|
|||||||
;;; File Types
|
;;; File Types
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
FT_TYPELESS := $00
|
FT_TYPELESS = $00
|
||||||
FT_BAD := $01
|
FT_BAD = $01
|
||||||
FT_TEXT := $04
|
FT_TEXT = $04
|
||||||
FT_BINARY := $06
|
FT_BINARY = $06
|
||||||
FT_DIRECTORY := $0F
|
FT_DIRECTORY = $0F
|
||||||
FT_SRC := $B0 ; IIgs system type; re-used?
|
FT_SRC = $B0 ; IIgs system type; re-used?
|
||||||
FT_S16 := $B3 ; IIgs Application Program
|
FT_S16 = $B3 ; IIgs Application Program
|
||||||
FT_BASIC := $FC
|
FT_BASIC = $FC
|
||||||
FT_SYSTEM := $FF
|
FT_SYSTEM = $FF
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Access
|
;;; Access
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
ACCESS_DEFAULT := %11000011
|
ACCESS_DEFAULT = %11000011
|
||||||
ACCESS_LOCKED := %00100001
|
ACCESS_LOCKED = %00100001
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Storage Types
|
;;; Storage Types
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
ST_STANDARD_FILE := $01
|
ST_STANDARD_FILE = $01
|
||||||
ST_LINKED_DIRECTORY := $0D
|
ST_LINKED_DIRECTORY = $0D
|
||||||
ST_VOLUME_DIRECTORY := $0F
|
ST_VOLUME_DIRECTORY = $0F
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Errors
|
;;; Errors
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
ERR_DEVICE_NOT_CONNECTED := $28
|
ERR_DEVICE_NOT_CONNECTED = $28
|
||||||
ERR_WRITE_PROTECTED := $2B
|
ERR_WRITE_PROTECTED = $2B
|
||||||
ERR_INVALID_PATHNAME := $40
|
ERR_INVALID_PATHNAME = $40
|
||||||
ERR_INVALID_REFERENCE := $43
|
ERR_INVALID_REFERENCE = $43
|
||||||
ERR_PATH_NOT_FOUND := $44
|
ERR_PATH_NOT_FOUND = $44
|
||||||
ERR_VOL_NOT_FOUND := $45
|
ERR_VOL_NOT_FOUND = $45
|
||||||
ERR_FILE_NOT_FOUND := $46
|
ERR_FILE_NOT_FOUND = $46
|
||||||
ERR_DUPLICATE_FILENAME:= $47
|
ERR_DUPLICATE_FILENAME= $47
|
||||||
ERR_OVERRUN_ERROR := $48
|
ERR_OVERRUN_ERROR = $48
|
||||||
ERR_VOLUME_DIR_FULL := $49
|
ERR_VOLUME_DIR_FULL = $49
|
||||||
ERR_END_OF_FILE := $4C
|
ERR_END_OF_FILE = $4C
|
||||||
ERR_ACCESS_ERROR := $4E
|
ERR_ACCESS_ERROR = $4E
|
||||||
ERR_DUPLICATE_VOLUME := $57
|
ERR_DUPLICATE_VOLUME = $57
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Misc Structures
|
;;; Misc Structures
|
||||||
@ -148,8 +148,8 @@ ERR_DUPLICATE_VOLUME := $57
|
|||||||
;;; Directory Structures
|
;;; Directory Structures
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
|
||||||
STORAGE_TYPE_MASK := $F0
|
STORAGE_TYPE_MASK = $F0
|
||||||
NAME_LENGTH_MASK := $0F
|
NAME_LENGTH_MASK = $0F
|
||||||
|
|
||||||
;;; Volume Directory Header structure
|
;;; Volume Directory Header structure
|
||||||
.struct VolumeDirectoryHeader
|
.struct VolumeDirectoryHeader
|
||||||
@ -225,10 +225,10 @@ DRIVER_BUFFER := $44
|
|||||||
DRIVER_BLOCK_NUMBER := $46
|
DRIVER_BLOCK_NUMBER := $46
|
||||||
|
|
||||||
;;; Commands
|
;;; Commands
|
||||||
DRIVER_COMMAND_STATUS := 0
|
DRIVER_COMMAND_STATUS = 0
|
||||||
DRIVER_COMMAND_READ := 1
|
DRIVER_COMMAND_READ = 1
|
||||||
DRIVER_COMMAND_WRITE := 2
|
DRIVER_COMMAND_WRITE = 2
|
||||||
DRIVER_COMMAND_FORMAT := 3
|
DRIVER_COMMAND_FORMAT = 3
|
||||||
|
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
|
222
mgtk.inc
222
mgtk.inc
@ -78,112 +78,112 @@ MLI := $4000
|
|||||||
;; row0right .res N bits (double-width only)
|
;; row0right .res N bits (double-width only)
|
||||||
.endstruct
|
.endstruct
|
||||||
|
|
||||||
NoOp := $00 ; No-op
|
NoOp = $00 ; No-op
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
;;; Initialization Commands
|
;;; Initialization Commands
|
||||||
|
|
||||||
InitGraf := $01
|
InitGraf = $01
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
SetSwitches := $02 ; Configure display switches
|
SetSwitches = $02 ; Configure display switches
|
||||||
;;; .byte flags bit 0=hires, 1=page2, 2=mixed, 3=text
|
;;; .byte flags bit 0=hires, 1=page2, 2=mixed, 3=text
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
;;; GrafPort Commands
|
;;; GrafPort Commands
|
||||||
|
|
||||||
InitPort := $03 ; Initialize GrafPort to standard values
|
InitPort = $03 ; Initialize GrafPort to standard values
|
||||||
;;; (input is address of GrafPort record)
|
;;; (input is address of GrafPort record)
|
||||||
|
|
||||||
SetPort := $04 ; Set current port as specified
|
SetPort = $04 ; Set current port as specified
|
||||||
;;; (input is address of GrafPort record)
|
;;; (input is address of GrafPort record)
|
||||||
|
|
||||||
GetPort := $05 ; Get pointer to current port
|
GetPort = $05 ; Get pointer to current port
|
||||||
;;; .addr port (out)
|
;;; .addr port (out)
|
||||||
|
|
||||||
SetPortBits := $06 ; Set just the mapinfo (viewloc, mapbits)
|
SetPortBits = $06 ; Set just the mapinfo (viewloc, mapbits)
|
||||||
;;; (input is address of MapInfo record)
|
;;; (input is address of MapInfo record)
|
||||||
|
|
||||||
SetPenMode := $07 ; Set the current pen mode
|
SetPenMode = $07 ; Set the current pen mode
|
||||||
;;; .byte mode pen*/notpen*
|
;;; .byte mode pen*/notpen*
|
||||||
|
|
||||||
SetPattern := $08 ; Set the current pattern
|
SetPattern = $08 ; Set the current pattern
|
||||||
;;; .res 8 pattern 8x8 pixel pattern for PaintRect calls
|
;;; .res 8 pattern 8x8 pixel pattern for PaintRect calls
|
||||||
|
|
||||||
SetColorMasks := $09 ; Set the current color masks
|
SetColorMasks = $09 ; Set the current color masks
|
||||||
;;; .byte and_mask
|
;;; .byte and_mask
|
||||||
;;; .byte or_mask
|
;;; .byte or_mask
|
||||||
|
|
||||||
SetPenSize := $0A ; Set the current pen size
|
SetPenSize = $0A ; Set the current pen size
|
||||||
;;; .byte penwidth horizontal pen thickness
|
;;; .byte penwidth horizontal pen thickness
|
||||||
;;; .byte penheight vertical pen thickness
|
;;; .byte penheight vertical pen thickness
|
||||||
|
|
||||||
SetFont := $0B ; Set the current font
|
SetFont = $0B ; Set the current font
|
||||||
;;; .addr textfont font definition
|
;;; .addr textfont font definition
|
||||||
|
|
||||||
SetTextBG := $0C ; Set the current text background
|
SetTextBG = $0C ; Set the current text background
|
||||||
;;; .byte backcolor 0=black, $7F=white
|
;;; .byte backcolor 0=black, $7F=white
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
;;; Drawing Commands
|
;;; Drawing Commands
|
||||||
|
|
||||||
Move := $0D ; Set current pen location (relative)
|
Move = $0D ; Set current pen location (relative)
|
||||||
;;; .word xdelta
|
;;; .word xdelta
|
||||||
;;; .word ydelta
|
;;; .word ydelta
|
||||||
|
|
||||||
MoveTo := $0E ; Set current pen location (absolute)
|
MoveTo = $0E ; Set current pen location (absolute)
|
||||||
;;; Point pos
|
;;; Point pos
|
||||||
|
|
||||||
Line := $0F ; Draw line from current pen location (relative)
|
Line = $0F ; Draw line from current pen location (relative)
|
||||||
;;; .word xdelta
|
;;; .word xdelta
|
||||||
;;; .word ydelta
|
;;; .word ydelta
|
||||||
|
|
||||||
LineTo := $10 ; Draw line from current pen location (absolute)
|
LineTo = $10 ; Draw line from current pen location (absolute)
|
||||||
;;; Point pos
|
;;; Point pos
|
||||||
|
|
||||||
PaintRect := $11 ; Fill rectangle with selected simple pattern/thickness
|
PaintRect = $11 ; Fill rectangle with selected simple pattern/thickness
|
||||||
;;; Rect rect
|
;;; Rect rect
|
||||||
|
|
||||||
FrameRect := $12 ; Draw rectangle with selected simple pattern/thickness
|
FrameRect = $12 ; Draw rectangle with selected simple pattern/thickness
|
||||||
;;; Rect rect
|
;;; Rect rect
|
||||||
|
|
||||||
InRect := $13 ; Is current position in bounds? A=$80 true, 0 false
|
InRect = $13 ; Is current position in bounds? A=$80 true, 0 false
|
||||||
;;; Rect rect
|
;;; Rect rect
|
||||||
|
|
||||||
PaintBits := $14 ; Draw pattern
|
PaintBits = $14 ; Draw pattern
|
||||||
;;; (input is address of MapInfo record)
|
;;; (input is address of MapInfo record)
|
||||||
|
|
||||||
PaintPoly := $15
|
PaintPoly = $15
|
||||||
;;; (input is address of PolyList record)
|
;;; (input is address of PolyList record)
|
||||||
|
|
||||||
FramePoly := $16 ; Draw multiple closed polygons
|
FramePoly = $16 ; Draw multiple closed polygons
|
||||||
;;; (input is address of PolyList record)
|
;;; (input is address of PolyList record)
|
||||||
|
|
||||||
InPoly := $17 ; Is current position in bounds? A=$80 true, 0 false
|
InPoly = $17 ; Is current position in bounds? A=$80 true, 0 false
|
||||||
;;; (input is address of PolyList record)
|
;;; (input is address of PolyList record)
|
||||||
|
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
;;; Text Commands
|
;;; Text Commands
|
||||||
|
|
||||||
TextWidth := $18 ; Measure the width of a string in pixels
|
TextWidth = $18 ; Measure the width of a string in pixels
|
||||||
;;; .addr data
|
;;; .addr data
|
||||||
;;; .byte length
|
;;; .byte length
|
||||||
;;; .word width (out) result in pixels
|
;;; .word width (out) result in pixels
|
||||||
|
|
||||||
DrawText := $19 ; Drawn at penpos as left, baseline
|
DrawText = $19 ; Drawn at penpos as left, baseline
|
||||||
;;; .addr data
|
;;; .addr data
|
||||||
;;; .byte length
|
;;; .byte length
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
;;; Utility Commands
|
;;; Utility Commands
|
||||||
|
|
||||||
SetZP1 := $1A ; Configure lower half of ZP usage by API (speed vs. convenience)
|
SetZP1 = $1A ; Configure lower half of ZP usage by API (speed vs. convenience)
|
||||||
SetZP2 := $1B ; Configure upper half ZP usage by API (speed vs. convenience)
|
SetZP2 = $1B ; Configure upper half ZP usage by API (speed vs. convenience)
|
||||||
;;; .byte preserve 0=stash/no auto restore; 1=restore now and onward
|
;;; .byte preserve 0=stash/no auto restore; 1=restore now and onward
|
||||||
|
|
||||||
Version := $1C ; Get toolkit version
|
Version = $1C ; Get toolkit version
|
||||||
;;; .byte (out) major
|
;;; .byte (out) major
|
||||||
;;; .byte (out) minor
|
;;; .byte (out) minor
|
||||||
;;; .byte (out) patch
|
;;; .byte (out) patch
|
||||||
@ -197,7 +197,7 @@ Version := $1C ; Get toolkit version
|
|||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
;;; Initialization Calls
|
;;; Initialization Calls
|
||||||
|
|
||||||
StartDeskTop := $1D ; Inits state, registers interrupt handler, draws desktop
|
StartDeskTop = $1D ; Inits state, registers interrupt handler, draws desktop
|
||||||
;;; .byte machine ROM FBB3 ($06 = IIe or later)
|
;;; .byte machine ROM FBB3 ($06 = IIe or later)
|
||||||
;;; .byte subid ROM FBC0 ($EA = IIe, $E0 = IIe enh/IIgs, $00 = IIc/IIc+)
|
;;; .byte subid ROM FBC0 ($EA = IIe, $E0 = IIe enh/IIgs, $00 = IIc/IIc+)
|
||||||
;;; .byte op_sys 0=ProDOS, 1=Pascal
|
;;; .byte op_sys 0=ProDOS, 1=Pascal
|
||||||
@ -207,25 +207,25 @@ StartDeskTop := $1D ; Inits state, registers interrupt handler, draw
|
|||||||
;;; .addr savearea buffer for saving screen data (e.g. behind menus)
|
;;; .addr savearea buffer for saving screen data (e.g. behind menus)
|
||||||
;;; .word savesize bytes
|
;;; .word savesize bytes
|
||||||
|
|
||||||
StopDeskTop := $1E ; Deallocates interrupt, hides cursor
|
StopDeskTop = $1E ; Deallocates interrupt, hides cursor
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
SetUserHook := $1F
|
SetUserHook = $1F
|
||||||
;;; .byte hook_id 0=before, 1=after event checking
|
;;; .byte hook_id 0=before, 1=after event checking
|
||||||
;;; .addr routine_ptr 0=remove hook_id
|
;;; .addr routine_ptr 0=remove hook_id
|
||||||
|
|
||||||
AttachDriver := $20 ; Install pointer driver; A=0 on success, $95 if mouse disabled
|
AttachDriver = $20 ; Install pointer driver; A=0 on success, $95 if mouse disabled
|
||||||
;;; .addr hook Mouse hook routine to install
|
;;; .addr hook Mouse hook routine to install
|
||||||
;;; .addr mouse_state (out) Address of mouse state (.word x, y; .byte status)
|
;;; .addr mouse_state (out) Address of mouse state (.word x, y; .byte status)
|
||||||
|
|
||||||
ScaleMouse := $21 ; Set mouse/screen scaling
|
ScaleMouse = $21 ; Set mouse/screen scaling
|
||||||
;;; .byte x_exponent x-scale factor for mouse, 0...3
|
;;; .byte x_exponent x-scale factor for mouse, 0...3
|
||||||
;;; .byte y_exponent y-scale factor for mouse, 0...3
|
;;; .byte y_exponent y-scale factor for mouse, 0...3
|
||||||
|
|
||||||
KeyboardMouse := $22 ; Next operation will be performed by keyboard
|
KeyboardMouse = $22 ; Next operation will be performed by keyboard
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
GetIntHandler := $23 ; Get address of interrupt handler
|
GetIntHandler = $23 ; Get address of interrupt handler
|
||||||
;;; .addr handler (out) Address of interrupt handler (after cld)
|
;;; .addr handler (out) Address of interrupt handler (after cld)
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
@ -234,8 +234,8 @@ GetIntHandler := $23 ; Get address of interrupt handler
|
|||||||
;;; Cursor record:
|
;;; Cursor record:
|
||||||
;;;
|
;;;
|
||||||
|
|
||||||
cursor_height := 12
|
cursor_height = 12
|
||||||
cursor_width := 2
|
cursor_width = 2
|
||||||
|
|
||||||
.struct Cursor
|
.struct Cursor
|
||||||
bits .byte 24 ; 2x12 byte bitmap (XOR'd after mask)
|
bits .byte 24 ; 2x12 byte bitmap (XOR'd after mask)
|
||||||
@ -243,19 +243,19 @@ cursor_width := 2
|
|||||||
hotspot .byte 2 ; x, y - hotspot coords (pixels)
|
hotspot .byte 2 ; x, y - hotspot coords (pixels)
|
||||||
.endstruct
|
.endstruct
|
||||||
|
|
||||||
SetCursor := $24 ; Set cursor definition
|
SetCursor = $24 ; Set cursor definition
|
||||||
;;; (input is address of Cursor record)
|
;;; (input is address of Cursor record)
|
||||||
|
|
||||||
ShowCursor := $25 ; Return cursor to visibility
|
ShowCursor = $25 ; Return cursor to visibility
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
HideCursor := $26 ; Cursor hidden until ShowCursor call
|
HideCursor = $26 ; Cursor hidden until ShowCursor call
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
ObscureCursor := $27 ; Cursor hidden until moved
|
ObscureCursor = $27 ; Cursor hidden until moved
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
GetCursorAddr := $28 ; Get cursor definition
|
GetCursorAddr = $28 ; Get cursor definition
|
||||||
;;; .addr definition (out) Address of cursor record
|
;;; .addr definition (out) Address of cursor record
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
@ -280,22 +280,22 @@ GetCursorAddr := $28 ; Get cursor definition
|
|||||||
.endunion
|
.endunion
|
||||||
.endstruct
|
.endstruct
|
||||||
|
|
||||||
CheckEvents := $29 ; Process mouse/kbd if GetEvent will be delayed.
|
CheckEvents = $29 ; Process mouse/kbd if GetEvent will be delayed.
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
GetEvent := $2A
|
GetEvent = $2A
|
||||||
;;; (parameter is address of Event record)
|
;;; (parameter is address of Event record)
|
||||||
|
|
||||||
FlushEvents := $2B
|
FlushEvents = $2B
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
PeekEvent := $2C
|
PeekEvent = $2C
|
||||||
;;; (parameter is address of Event record)
|
;;; (parameter is address of Event record)
|
||||||
|
|
||||||
PostEvent := $2D ; Post event to queue
|
PostEvent = $2D ; Post event to queue
|
||||||
;;; (parameter is address of Event record)
|
;;; (parameter is address of Event record)
|
||||||
|
|
||||||
SetKeyEvent := $2E ; If set, keypresses are ignored by Tool Kit
|
SetKeyEvent = $2E ; If set, keypresses are ignored by Tool Kit
|
||||||
;;; .byte handle_keys high bit set = ignore keyboard, otherwise check
|
;;; .byte handle_keys high bit set = ignore keyboard, otherwise check
|
||||||
|
|
||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
@ -329,43 +329,43 @@ SetKeyEvent := $2E ; If set, keypresses are ignored by Tool Kit
|
|||||||
name .addr ; Address of length-prefixed string
|
name .addr ; Address of length-prefixed string
|
||||||
.endstruct
|
.endstruct
|
||||||
|
|
||||||
InitMenu := $2F
|
InitMenu = $2F
|
||||||
;;; .byte solid_char char code to use for solid apple glyph
|
;;; .byte solid_char char code to use for solid apple glyph
|
||||||
;;; .byte open_char char code to use for open apple glyph
|
;;; .byte open_char char code to use for open apple glyph
|
||||||
;;; .byte check_char char code to use for checkmark glyph
|
;;; .byte check_char char code to use for checkmark glyph
|
||||||
;;; .byte control_char char code to use for control key glyph
|
;;; .byte control_char char code to use for control key glyph
|
||||||
|
|
||||||
SetMenu := $30 ; Configure (and draw) menu
|
SetMenu = $30 ; Configure (and draw) menu
|
||||||
;;; (input is address of Menu Bar record)
|
;;; (input is address of Menu Bar record)
|
||||||
|
|
||||||
MenuSelect := $31 ; Enter modal loop for handling mouse-down on menu bar
|
MenuSelect = $31 ; Enter modal loop for handling mouse-down on menu bar
|
||||||
;;; .byte menu_id (out) Top level menu identifier, or 0 if none
|
;;; .byte menu_id (out) Top level menu identifier, or 0 if none
|
||||||
;;; .byte menu_item (out) Index (1-based) of item in menu, or 0 if none
|
;;; .byte menu_item (out) Index (1-based) of item in menu, or 0 if none
|
||||||
|
|
||||||
MenuKey := $32 ; Find menu item corresponding to keypress
|
MenuKey = $32 ; Find menu item corresponding to keypress
|
||||||
;;; .byte menu_id (out)
|
;;; .byte menu_id (out)
|
||||||
;;; .byte menu_item (out)
|
;;; .byte menu_item (out)
|
||||||
;;; .byte which_key
|
;;; .byte which_key
|
||||||
;;; .byte key_mods bit 0=OA, bit 1=SA
|
;;; .byte key_mods bit 0=OA, bit 1=SA
|
||||||
|
|
||||||
HiliteMenu := $33 ; Toggle highlight state of menu
|
HiliteMenu = $33 ; Toggle highlight state of menu
|
||||||
;;; .byte menu_id
|
;;; .byte menu_id
|
||||||
|
|
||||||
DisableMenu := $34
|
DisableMenu = $34
|
||||||
;;; .byte menu_id
|
;;; .byte menu_id
|
||||||
;;; .byte disable 0=enable, 1=disable
|
;;; .byte disable 0=enable, 1=disable
|
||||||
|
|
||||||
DisableItem := $35
|
DisableItem = $35
|
||||||
;;; .byte menu_id
|
;;; .byte menu_id
|
||||||
;;; .byte menu_item
|
;;; .byte menu_item
|
||||||
;;; .byte disable 0=enable, 1=disable
|
;;; .byte disable 0=enable, 1=disable
|
||||||
|
|
||||||
CheckItem := $36
|
CheckItem = $36
|
||||||
;;; .byte menu_id
|
;;; .byte menu_id
|
||||||
;;; .byte menu_item
|
;;; .byte menu_item
|
||||||
;;; .byte check 0=unchecked, 1=checked
|
;;; .byte check 0=unchecked, 1=checked
|
||||||
|
|
||||||
SetMark := $37
|
SetMark = $37
|
||||||
;;; .byte menu_id
|
;;; .byte menu_id
|
||||||
;;; .byte menu_item
|
;;; .byte menu_item
|
||||||
;;; .byte set_char 0=use checkmark, 1=use mark_char
|
;;; .byte set_char 0=use checkmark, 1=use mark_char
|
||||||
@ -394,68 +394,68 @@ SetMark := $37
|
|||||||
nextwinfo .addr ; address of next lower window in stack
|
nextwinfo .addr ; address of next lower window in stack
|
||||||
.endstruct
|
.endstruct
|
||||||
|
|
||||||
OpenWindow := $38
|
OpenWindow = $38
|
||||||
;;; (input is address of Winfo record)
|
;;; (input is address of Winfo record)
|
||||||
|
|
||||||
CloseWindow := $39
|
CloseWindow = $39
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
|
|
||||||
CloseAll := $3A
|
CloseAll = $3A
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
GetWinPtr := $3B ; Get pointer to window params by id; A=0 on success
|
GetWinPtr = $3B ; Get pointer to window params by id; A=0 on success
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
;;; .addr window_ptr (out) winfo address
|
;;; .addr window_ptr (out) winfo address
|
||||||
|
|
||||||
GetWinPort := $3C ; Get drawing state of window (possibly clipped)
|
GetWinPort = $3C ; Get drawing state of window (possibly clipped)
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
;;; .addr port address of grafport to populate
|
;;; .addr port address of grafport to populate
|
||||||
|
|
||||||
SetWinPort := $3D ; Update port of window
|
SetWinPort = $3D ; Update port of window
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
;;; .addr port GrafPort to copy from
|
;;; .addr port GrafPort to copy from
|
||||||
|
|
||||||
BeginUpdate := $3E ; Respond to update event for window
|
BeginUpdate = $3E ; Respond to update event for window
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
|
|
||||||
EndUpdate := $3F
|
EndUpdate = $3F
|
||||||
;;; (no parameters)
|
;;; (no parameters)
|
||||||
|
|
||||||
FindWindow := $40
|
FindWindow = $40
|
||||||
;;; .word mousex screen coordinates
|
;;; .word mousex screen coordinates
|
||||||
;;; .word mousey
|
;;; .word mousey
|
||||||
;;; .byte which_area (out) area_*
|
;;; .byte which_area (out) area_*
|
||||||
;;; .byte window_id (out) of window
|
;;; .byte window_id (out) of window
|
||||||
|
|
||||||
FrontWindow := $41 ; Get id of top window
|
FrontWindow = $41 ; Get id of top window
|
||||||
;;; .byte window_id (out) window, or 0 if none
|
;;; .byte window_id (out) window, or 0 if none
|
||||||
|
|
||||||
SelectWindow := $42 ; Make window topmost
|
SelectWindow = $42 ; Make window topmost
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
|
|
||||||
TrackGoAway := $43
|
TrackGoAway = $43
|
||||||
;;; .byte clicked (out) 0 = cancelled, 1 = close
|
;;; .byte clicked (out) 0 = cancelled, 1 = close
|
||||||
|
|
||||||
DragWindow := $44
|
DragWindow = $44
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
;;; .word dragx mouse coords
|
;;; .word dragx mouse coords
|
||||||
;;; .word dragy
|
;;; .word dragy
|
||||||
;;; .byte moved high bit set if moved, clear if not
|
;;; .byte moved high bit set if moved, clear if not
|
||||||
|
|
||||||
GrowWindow := $45
|
GrowWindow = $45
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
;;; .word mousex
|
;;; .word mousex
|
||||||
;;; .word mousey
|
;;; .word mousey
|
||||||
;;; .byte itgrew (out) 0 = no change, 1 = moved
|
;;; .byte itgrew (out) 0 = no change, 1 = moved
|
||||||
|
|
||||||
ScreenToWindow := $46 ; Map screen coords to content coords
|
ScreenToWindow = $46 ; Map screen coords to content coords
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
;;; .word screenx
|
;;; .word screenx
|
||||||
;;; .word screeny
|
;;; .word screeny
|
||||||
;;; .word windowx (out)
|
;;; .word windowx (out)
|
||||||
;;; .word windowy (out)
|
;;; .word windowy (out)
|
||||||
|
|
||||||
WindowToScreen := $47 ; Map content coords to screen coords
|
WindowToScreen = $47 ; Map content coords to screen coords
|
||||||
;;; .byte window_id
|
;;; .byte window_id
|
||||||
;;; .word windowx
|
;;; .word windowx
|
||||||
;;; .word windowy
|
;;; .word windowy
|
||||||
@ -465,28 +465,28 @@ WindowToScreen := $47 ; Map content coords to screen coords
|
|||||||
;;; --------------------------------------------------
|
;;; --------------------------------------------------
|
||||||
;;; Control Manager Calls
|
;;; Control Manager Calls
|
||||||
|
|
||||||
FindControl := $48
|
FindControl = $48
|
||||||
;;; .word mousex
|
;;; .word mousex
|
||||||
;;; .word mousey
|
;;; .word mousey
|
||||||
;;; .byte which_ctl ctl_*
|
;;; .byte which_ctl ctl_*
|
||||||
;;; .byte which_part part_*
|
;;; .byte which_part part_*
|
||||||
|
|
||||||
SetCtlMax := $49
|
SetCtlMax = $49
|
||||||
;;; .byte which_ctl ctl_*_scroll_bar
|
;;; .byte which_ctl ctl_*_scroll_bar
|
||||||
;;; .byte ctlmax maximum value
|
;;; .byte ctlmax maximum value
|
||||||
|
|
||||||
TrackThumb := $4A
|
TrackThumb = $4A
|
||||||
;;; .byte which_ctl ctl_*_scroll_bar
|
;;; .byte which_ctl ctl_*_scroll_bar
|
||||||
;;; .word mousex
|
;;; .word mousex
|
||||||
;;; .word mousey
|
;;; .word mousey
|
||||||
;;; .byte thumbpos (out) 0...255
|
;;; .byte thumbpos (out) 0...255
|
||||||
;;; .byte thumbmoved (out) 0 = no change, 1 = moved
|
;;; .byte thumbmoved (out) 0 = no change, 1 = moved
|
||||||
|
|
||||||
UpdateThumb := $4B
|
UpdateThumb = $4B
|
||||||
;;; .byte which_ctl ctl_*_scroll_bar
|
;;; .byte which_ctl ctl_*_scroll_bar
|
||||||
;;; .byte thumbpos new position 0...250
|
;;; .byte thumbpos new position 0...250
|
||||||
|
|
||||||
ActivateCtl := $4C ; Activate/deactivate scroll bar
|
ActivateCtl = $4C ; Activate/deactivate scroll bar
|
||||||
;;; .byte which_ctl ctl_*_scroll_bar
|
;;; .byte which_ctl ctl_*_scroll_bar
|
||||||
;;; .byte activate 0=deactivate, 1=activate
|
;;; .byte activate 0=deactivate, 1=activate
|
||||||
|
|
||||||
@ -500,28 +500,28 @@ ActivateCtl := $4C ; Activate/deactivate scroll bar
|
|||||||
;;; Graphics Primitives Constants
|
;;; Graphics Primitives Constants
|
||||||
|
|
||||||
;;; Used in GetWinPort / SetPortBits
|
;;; Used in GetWinPort / SetPortBits
|
||||||
screen_mapbits := $2000 ; Screen address
|
screen_mapbits = $2000 ; Screen address
|
||||||
screen_mapwidth := $80 ; Stride in bytes
|
screen_mapwidth = $80 ; Stride in bytes
|
||||||
|
|
||||||
;;; Used in SetPenMode
|
;;; Used in SetPenMode
|
||||||
pencopy := 0
|
pencopy = 0
|
||||||
penOR := 1
|
penOR = 1
|
||||||
penXOR := 2
|
penXOR = 2
|
||||||
penBIC := 3
|
penBIC = 3
|
||||||
notpencopy := 4
|
notpencopy = 4
|
||||||
notpenOR := 5
|
notpenOR = 5
|
||||||
notpenXOR := 6
|
notpenXOR = 6
|
||||||
notpenBIC := 7
|
notpenBIC = 7
|
||||||
|
|
||||||
;;; Used in SetZP1
|
;;; Used in SetZP1
|
||||||
zp_overwrite := 0
|
zp_overwrite = 0
|
||||||
zp_preserve := 1<<7
|
zp_preserve = 1<<7
|
||||||
|
|
||||||
;;; Used in GrafPorts
|
;;; Used in GrafPorts
|
||||||
colormask_and := $FF
|
colormask_and = $FF
|
||||||
colormask_or := $00
|
colormask_or = $00
|
||||||
textbg_black := $00
|
textbg_black = $00
|
||||||
textbg_white := $7F
|
textbg_white = $7F
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; MouseGraphics ToolKit Constants
|
;;; MouseGraphics ToolKit Constants
|
||||||
@ -537,8 +537,8 @@ textbg_white := $7F
|
|||||||
update = 6 ; Window update needed
|
update = 6 ; Window update needed
|
||||||
.endenum
|
.endenum
|
||||||
|
|
||||||
event_modifier_open_apple := 1 << 0
|
event_modifier_open_apple = 1 << 0
|
||||||
event_modifier_solid_apple := 1 << 1
|
event_modifier_solid_apple = 1 << 1
|
||||||
|
|
||||||
;;; Used in FindWindow
|
;;; Used in FindWindow
|
||||||
.enum Area
|
.enum Area
|
||||||
@ -596,29 +596,29 @@ event_modifier_solid_apple := 1 << 1
|
|||||||
disable_flag = 1 << 7
|
disable_flag = 1 << 7
|
||||||
.endenum
|
.endenum
|
||||||
|
|
||||||
disablemenu_enable := 0
|
disablemenu_enable = 0
|
||||||
disablemenu_disable := 1
|
disablemenu_disable = 1
|
||||||
disableitem_enable := 0
|
disableitem_enable = 0
|
||||||
disableitem_disable := 1
|
disableitem_disable = 1
|
||||||
|
|
||||||
checkitem_uncheck := 0
|
checkitem_uncheck = 0
|
||||||
checkitem_check := 1
|
checkitem_check = 1
|
||||||
|
|
||||||
;;; Used in ActivateCtl
|
;;; Used in ActivateCtl
|
||||||
activatectl_deactivate := 0
|
activatectl_deactivate = 0
|
||||||
activatectl_activate := 1
|
activatectl_activate = 1
|
||||||
|
|
||||||
;;; Response from InRect/InPoly
|
;;; Response from InRect/InPoly
|
||||||
inrect_inside := $80
|
inrect_inside = $80
|
||||||
inrect_outside := $00
|
inrect_outside = $00
|
||||||
inpoly_inside := $80
|
inpoly_inside = $80
|
||||||
inpoly_outside := $00
|
inpoly_outside = $00
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Offsets
|
;;; Offsets
|
||||||
|
|
||||||
short_event_size := 4 ; events that don't have mouse coordinates
|
short_event_size = 4 ; events that don't have mouse coordinates
|
||||||
event_size := 5 ; any kind of event
|
event_size = 5 ; any kind of event
|
||||||
|
|
||||||
;;; ============================================================
|
;;; ============================================================
|
||||||
;;; Errors
|
;;; Errors
|
||||||
|
Loading…
Reference in New Issue
Block a user