Use combo build for overlays 3+

This commit is contained in:
Joshua Bell 2018-02-25 19:02:34 -08:00
parent d4ac9c7a32
commit e34f63fa12
9 changed files with 141 additions and 247 deletions

View File

@ -8,7 +8,7 @@ OUTDIR = out
HEADERS = $(wildcard ../*.inc) $(wildcard ../inc/*.inc) $(wildcard *.inc)
SEGMENTS = loader mgtk desktop invoker \
ovl1 ovl1a ovl2 ovl3 ovl4 ovl5 ovl6 ovl7
ovl1 ovl1a ovl2 ovl34567
TARGETS = $(patsubst %,$(OUTDIR)/%.built,$(SEGMENTS))

Binary file not shown.

View File

@ -1,12 +1,6 @@
.setcpu "6502"
.include "apple2.inc"
.include "../inc/apple2.inc"
.include "../inc/auxmem.inc"
.include "../inc/prodos.inc"
.include "../mgtk.inc"
.include "../desktop.inc"
.include "../macros.inc"
;;; NB: Compiled as part of ovl34567.s
;;; ==================================================
;;; Overlay for Selector (part of it, anyway)
@ -15,9 +9,6 @@
.org $9000
.proc selector_overlay2
;;; Routines in common overlay segment ($5000-$6FFF)
L5000 := $5000
;;; Entry points in desktop_main
launch_dialog := $A500
set_cursor_watch := $B3E7
@ -72,7 +63,7 @@ L9052: lda #$00
sta $D443
ldy #$03
lda #$02
jsr L5000
jsr common_overlay::L5000
pha
txa
pha

39
desktop/ovl34567.s Normal file
View File

@ -0,0 +1,39 @@
.setcpu "6502"
.include "apple2.inc"
.include "../inc/apple2.inc"
.include "../inc/auxmem.inc"
.include "../inc/prodos.inc"
.include "../mgtk.inc"
.include "../desktop.inc"
.include "../macros.inc"
.macro entry arg1, arg2
.byte arg1
.addr arg2
.endmacro
;;; ==================================================
;;; Resources from language card area
winfo12 := $D5B7
winfo15 := $D5F1
path_buf0 := $D402
path_buf1 := $D443
path_buf2 := $D484
grafport3 := $D239
dialog_rect1 := $DA9E
dialog_rect2 := $DAAA
;;; ==================================================
;;; Interdependent Overlays
.include "ovl3.s" ; Selector (1/2) @ $9000-$9FFF
.include "ovl4.s" ; Common @ $5000-$6FFF
.include "ovl5.s" ; File Copy @ $7000-$77FF
.include "ovl6.s" ; File Delete @ $7000-$77FF
.include "ovl7.s" ; Selector (2/2) @ $7000-$77FF

View File

@ -1,12 +1,6 @@
.setcpu "6502"
.include "apple2.inc"
.include "../inc/apple2.inc"
.include "../inc/auxmem.inc"
.include "../inc/prodos.inc"
.include "../mgtk.inc"
.include "../desktop.inc"
.include "../macros.inc"
;;; NB: Compiled as part of ovl34567.s
;;; ==================================================
;;; Overlay for Common Routines (Selector, File Copy/Delete)

View File

@ -1,12 +1,6 @@
.setcpu "6502"
.include "apple2.inc"
.include "../inc/apple2.inc"
.include "../inc/auxmem.inc"
.include "../inc/prodos.inc"
.include "../mgtk.inc"
.include "../desktop.inc"
.include "../macros.inc"
;;; NB: Compiled as part of ovl34567.s
;;; ==================================================
;;; Overlay for File Copy
@ -15,52 +9,19 @@
.org $7000
.proc file_copy_overlay
winfo12 := $D5B7
winfo15 := $D5F1
path_buf0 := $D402
path_buf1 := $D443
path_buf2 := $D484
grafport3 := $D239
dialog_rect1 := $DA9E
dialog_rect2 := $DAAA
;;; Routines in common overlay segment ($5000-$6FFF)
L5106 := $5106
L55BA := $55BA
L5CF7 := $5CF7
L5E0A := $5E0A
L5E57 := $5E57
L5E6F := $5E6F
L5E87 := $5E87
L5F49 := $5F49
L5F5B := $5F5B
L606D := $606D
L6129 := $6129
L6161 := $6161
L6163 := $6163
L61B1 := $61B1
L6227 := $6227
L62C8 := $62C8
L647C := $647C
L6D27 := $6D27
L6D30 := $6D30
jsr L5CF7
L7000: jsr common_overlay::L5CF7
jsr L7052
jsr L5E87
jsr L5F5B
jsr L6161
jsr L61B1
jsr L606D
jsr common_overlay::L5E87
jsr common_overlay::L5F5B
jsr common_overlay::L6161
jsr common_overlay::L61B1
jsr common_overlay::L606D
jsr L7026
jsr L6D30
jsr L6D27
jsr common_overlay::L6D30
jsr common_overlay::L6D27
lda #$FF
sta $D8EC
jmp L5106
jmp common_overlay::L5106
L7026: ldx L709B
L7029: lda L709B+1,x
@ -83,10 +44,10 @@ L7029: lda L709B+1,x
rts
L7052: lda winfo12
jsr L62C8
addr_call L5E0A, $DA67 ; "Copy a File ..."
addr_call L5E57, $DA77 ; "Source filename:"
addr_call L5E6F, $DA88 ; "Destination filename:"
jsr common_overlay::L62C8
addr_call common_overlay::L5E0A, $DA67 ; "Copy a File ..."
addr_call common_overlay::L5E57, $DA77 ; "Source filename:"
addr_call common_overlay::L5E6F, $DA88 ; "Destination filename:"
MGTK_RELAY_CALL MGTK::SetPenMode, $D202 ; penXOR
MGTK_RELAY_CALL MGTK::FrameRect, dialog_rect1
MGTK_RELAY_CALL MGTK::FrameRect, dialog_rect2
@ -94,11 +55,6 @@ L7052: lda winfo12
MGTK_RELAY_CALL MGTK::SetPort, grafport3
rts
.macro entry arg1, arg2
.byte arg1
.addr arg2
.endmacro
L709B: .byte $29 ; length of following data block
entry 0, L70F1
entry 0, L71D8
@ -139,7 +95,7 @@ L70F1: lda #1
sta path_buf2
lda #$20
sta $D485
jsr L6D27
jsr common_overlay::L6D27
ldx L70C6
: lda L70C6+1,x
@ -158,18 +114,18 @@ L70F1: lda #1
sta $D921
lda #$FF
sta $D920
jsr L5E87
jsr L5F5B
jsr L6161
jsr L61B1
jsr common_overlay::L5E87
jsr common_overlay::L5F5B
jsr common_overlay::L6161
jsr common_overlay::L61B1
jsr L606D
jsr common_overlay::L606D
ldx $5028
L7137: lda $5028,x
sta path_buf1,x
dex
bpl L7137
addr_call L6129, path_buf1 ; path_buf1
addr_call common_overlay::L6129, path_buf1 ; path_buf1
lda #$01
sta path_buf2 ; path_buf2
lda #$06
@ -193,7 +149,7 @@ L7165: cpx path_buf0
iny
jmp L7165
L7178: jsr L6D27
L7178: jsr common_overlay::L6D27
lda $D8F0
sta $D8F1
lda $D8F2
@ -204,13 +160,13 @@ L7178: jsr L6D27
;;; ==================================================
L7189: addr_call L647C, path_buf0
L7189: addr_call common_overlay::L647C, path_buf0
beq L7198
L7192: lda #$40
jsr JUMP_TABLE_ALERT_0
rts
L7198: addr_call L647C, path_buf1
L7198: addr_call common_overlay::L647C, path_buf1
bne L7192
MGTK_RELAY_CALL MGTK::CloseWindow, winfo15
MGTK_RELAY_CALL MGTK::CloseWindow, winfo12
@ -218,7 +174,7 @@ L7198: addr_call L647C, path_buf1
sta $50A8
lda #0
sta $D8EC
jsr L55BA
jsr common_overlay::L55BA
copy16 #path_buf0, $6
copy16 #path_buf1, $8
ldx $50AA
@ -233,7 +189,7 @@ L71D8: MGTK_RELAY_CALL MGTK::CloseWindow, winfo15
MGTK_RELAY_CALL MGTK::CloseWindow, winfo12
lda #0
sta $D8EC
jsr L55BA
jsr common_overlay::L55BA
ldx $50AA
txs
return #$FF
@ -244,7 +200,7 @@ L71F9: lda #1
sta path_buf2
lda #' '
sta $D485
jsr L6D27
jsr common_overlay::L6D27
ldx L709B
L7209: lda L709B+1,x
sta $6D1E,x
@ -275,34 +231,34 @@ L7209: lda L709B+1,x
dex
bpl :-
jsr L5F49
jsr common_overlay::L5F49
bit $D8F0
bpl L726D
jsr L5E87
jsr common_overlay::L5E87
lda #0
jsr L6227
jsr L5F5B
jsr L6161
jsr L61B1
jsr L606D
jsr L6D27
jsr common_overlay::L6227
jsr common_overlay::L5F5B
jsr common_overlay::L6161
jsr common_overlay::L61B1
jsr common_overlay::L606D
jsr common_overlay::L6D27
jmp L7295
L726D: lda $5028
bne L7281
L7272: jsr L5E87
L7272: jsr common_overlay::L5E87
lda #$00
jsr L6227
jsr L5F5B
jsr common_overlay::L6227
jsr common_overlay::L5F5B
lda #$FF
bne L7289
L7281: jsr L5F5B
L7281: jsr common_overlay::L5F5B
bcs L7272
lda $D921
L7289: sta $D920
jsr L6163
jsr L61B1
jsr L606D
jsr common_overlay::L6163
jsr common_overlay::L61B1
jsr common_overlay::L606D
L7295: rts
;;; ==================================================

View File

@ -1,12 +1,6 @@
.setcpu "6502"
.include "apple2.inc"
.include "../inc/apple2.inc"
.include "../inc/auxmem.inc"
.include "../inc/prodos.inc"
.include "../mgtk.inc"
.include "../desktop.inc"
.include "../macros.inc"
;;; NB: Compiled as part of ovl34567.s
;;; ==================================================
;;; Overlay for File Delete
@ -15,47 +9,19 @@
.org $7000
.proc file_delete_overlay
winfo12 := $D5B7
winfo15 := $D5F1
path_buf0 := $D402
path_buf1 := $D443
path_buf2 := $D484
grafport3 := $D239
dialog_rect1 := $DA9E
dialog_rect2 := $DAAA
;;; Routines in common overlay segment ($5000-$6FFF)
L5106 := $5106
L55BA := $55BA
L5CF7 := $5CF7
L5E0A := $5E0A
L5E57 := $5E57
L5E87 := $5E87
L5F5B := $5F5B
L606D := $606D
L6161 := $6161
L61B1 := $61B1
L62C8 := $62C8
L647C := $647C
L6D27 := $6D27
L6D30 := $6D30
jsr L5CF7
L7000: jsr common_overlay::L5CF7
jsr L704D
jsr L5E87
jsr L5F5B
jsr L6161
jsr L61B1
jsr L606D
jsr common_overlay::L5E87
jsr common_overlay::L5F5B
jsr common_overlay::L6161
jsr common_overlay::L61B1
jsr common_overlay::L606D
jsr L7026
jsr L6D30
jsr L6D27
jsr common_overlay::L6D30
jsr common_overlay::L6D27
lda #$FF
sta $D8EC
jmp L5106
jmp common_overlay::L5106
L7026: ldx L7086
L7029: lda L7087,x
@ -76,20 +42,15 @@ L7029: lda L7087,x
rts
L704D: lda winfo12
jsr L62C8
addr_call L5E0A, $DAB6 ; "Delete a File ..."
addr_call L5E57, $DAC8 ; "File to delete:"
jsr common_overlay::L62C8
addr_call common_overlay::L5E0A, $DAB6 ; "Delete a File ..."
addr_call common_overlay::L5E57, $DAC8 ; "File to delete:"
MGTK_RELAY_CALL MGTK::SetPenMode, $D202 ; penXOR
MGTK_RELAY_CALL MGTK::FrameRect, dialog_rect1
MGTK_RELAY_CALL MGTK::InitPort, grafport3
MGTK_RELAY_CALL MGTK::SetPort, grafport3
rts
.macro entry arg1, arg2
.byte arg1
.addr arg2
.endmacro
L7086: .byte $29 ; length of the following data block
L7087: entry 0, L70B1
entry 0, L70EA
@ -107,7 +68,7 @@ L7087: entry 0, L70B1
entry 0, $66D8
L70B1: addr_call L647C, path_buf0
L70B1: addr_call common_overlay::L647C, path_buf0
beq L70C0
lda #$40
jsr JUMP_TABLE_ALERT_0
@ -117,7 +78,7 @@ L70C0: MGTK_RELAY_CALL MGTK::CloseWindow, winfo15
MGTK_RELAY_CALL MGTK::CloseWindow, winfo12
lda #0
sta $D8EC
jsr L55BA
jsr common_overlay::L55BA
copy16 #path_buf0, $6
ldx $50AA
txs
@ -130,7 +91,7 @@ L70EA: MGTK_RELAY_CALL MGTK::CloseWindow, winfo15
MGTK_RELAY_CALL MGTK::CloseWindow, winfo12
lda #0
sta $D8EC
jsr L55BA
jsr common_overlay::L55BA
ldx $50AA
txs
return #$FF

View File

@ -1,12 +1,6 @@
.setcpu "6502"
.include "apple2.inc"
.include "../inc/apple2.inc"
.include "../inc/auxmem.inc"
.include "../inc/prodos.inc"
.include "../mgtk.inc"
.include "../desktop.inc"
.include "../macros.inc"
;;; NB: Compiled as part of ovl34567.s
;;; ==================================================
;;; Overlay for Selector (part of it, anyway)
@ -15,58 +9,21 @@
.org $7000
.proc selector_overlay
winfo12 := $D5B7
winfo15 := $D5F1
path_buf0 := $D402
path_buf1 := $D443
path_buf2 := $D484
grafport3 := $D239
dialog_rect1 := $DA9E
dialog_rect2 := $DAAA
;;; Routines in common overlay segment ($5000-$6FFF)
L5106 := $5106
L55BA := $55BA
L5CF7 := $5CF7
L5DED := $5DED
L5E0A := $5E0A
L5E57 := $5E57
L5E6F := $5E6F
L5E87 := $5E87
L5F49 := $5F49
L5F5B := $5F5B
L606D := $606D
L6129 := $6129
L6163 := $6163
L61B1 := $61B1
L62C8 := $62C8
L647C := $647C
L6516 := $6516
L6586 := $6586
L6693 := $6693
L6D27 := $6D27
L6D30 := $6D30
;;; ==================================================
L7000: stx L73A9
sty L73AA
jsr L5CF7
jsr common_overlay::L5CF7
jsr L7101
jsr L70AD
jsr L5E87
jsr common_overlay::L5E87
lda path_buf0
beq L7056
addr_call L6129, path_buf0
addr_call common_overlay::L6129, path_buf0
ldy path_buf0
L7021: lda path_buf0,y
sta $5028,y
dey
bpl L7021
jsr L5F49
jsr common_overlay::L5F49
ldy path_buf0
L7030: lda path_buf0,y
cmp #$2F
@ -86,25 +43,25 @@ L7046: iny
cpy path_buf0
bne L7046
stx L709D
L7056: jsr L5F5B
L7056: jsr common_overlay::L5F5B
lda #$00
bcs L706A
addr_call L6516, $709D
addr_call common_overlay::L6516, $709D
sta $D920
jsr L6586
L706A: jsr L6163
jsr L61B1
jsr L606D
jsr common_overlay::L6586
L706A: jsr common_overlay::L6163
jsr common_overlay::L61B1
jsr common_overlay::L606D
lda path_buf0
bne L707B
jsr L6D30
jsr common_overlay::L6D30
L707B: copy16 #$2001, $D484
jsr L6D27
jsr L6693
jsr common_overlay::L6D27
jsr common_overlay::L6693
copy16 #$2001, $D484
lda #$FF
sta $D8EC
jmp L5106
jmp common_overlay::L5106
;;; ==================================================
@ -128,7 +85,7 @@ L70B0: lda L7207+1,x
sta $5104
copy16 #$0601, $D484
lda winfo12
jsr L62C8
jsr common_overlay::L62C8
lda L73A9
jsr L7467
lda L73AA
@ -146,33 +103,33 @@ L70B0: lda L7207+1,x
rts
L7101: lda winfo12
jsr L62C8
jsr common_overlay::L62C8
lda path_buf0
beq L7116
addr_call L5E0A, $D729
addr_call common_overlay::L5E0A, $D729
jmp L711D
L7116: addr_call L5E0A, $D718
L711D: addr_call L5E6F, $D849
L7116: addr_call common_overlay::L5E0A, $D718
L711D: addr_call common_overlay::L5E6F, $D849
MGTK_RELAY_CALL MGTK::SetPenMode, $D202 ; penXOR
MGTK_RELAY_CALL MGTK::FrameRect, dialog_rect1
MGTK_RELAY_CALL MGTK::FrameRect, dialog_rect2
addr_call L5E57, $D769
addr_call L5E6F, $D797
addr_call common_overlay::L5E57, $D769
addr_call common_overlay::L5E6F, $D797
MGTK_RELAY_CALL MGTK::MoveTo, $D922
addr_call L5DED, $D7DE
addr_call common_overlay::L5DED, $D7DE
MGTK_RELAY_CALL MGTK::MoveTo, $D926
addr_call L5DED, $D7F6
addr_call common_overlay::L5DED, $D7F6
MGTK_RELAY_CALL MGTK::MoveTo, $D92A
addr_call L5DED, $D802
addr_call common_overlay::L5DED, $D802
MGTK_RELAY_CALL MGTK::MoveTo, $D92E
addr_call L5DED, $D814
addr_call common_overlay::L5DED, $D814
MGTK_RELAY_CALL MGTK::MoveTo, $D932
addr_call L5DED, $D81F
addr_call common_overlay::L5DED, $D81F
MGTK_RELAY_CALL MGTK::MoveTo, $D936
addr_call L5DED, $D830
addr_call common_overlay::L5DED, $D830
MGTK_RELAY_CALL MGTK::MoveTo, $D93A
addr_call L5DED, $D840
addr_call common_overlay::L5DED, $D840
MGTK_RELAY_CALL MGTK::SetPenMode, $D202
MGTK_RELAY_CALL MGTK::FrameRect, $D93E
MGTK_RELAY_CALL MGTK::FrameRect, $D946
@ -187,11 +144,6 @@ L711D: addr_call L5E6F, $D849
.byte $00
.macro entry arg1, arg2
.byte arg1
.addr arg2
.endmacro
L7207: .byte $29
entry 0, $725D
entry 0, $732F
@ -227,7 +179,7 @@ L7233: entry 0, $72CD
;;; ==================================================
copy16 #$2001, $D484
jsr L6D27
jsr common_overlay::L6D27
ldx L7232
L726D: lda L7232+1,x
sta $6D1E,x
@ -266,10 +218,10 @@ L72AF: iny
bne L72AF
sty $D443
L72BF: copy16 #$0601, $D484
jsr L6D27
jsr common_overlay::L6D27
rts
addr_call L647C, path_buf0
addr_call common_overlay::L647C, path_buf0
bne L72E2
lda $D443
beq L72E7
@ -290,7 +242,7 @@ L72EE: MGTK_RELAY_CALL MGTK::InitPort, grafport3
MGTK_RELAY_CALL MGTK::CloseWindow, winfo15
MGTK_RELAY_CALL MGTK::CloseWindow, winfo12
sta $D8EC
jsr L55BA
jsr common_overlay::L55BA
copy16 #$59B8, $5B24
ldx $50AA
txs
@ -304,14 +256,14 @@ L72EE: MGTK_RELAY_CALL MGTK::InitPort, grafport3
MGTK_RELAY_CALL MGTK::CloseWindow, winfo12
lda #$00
sta $D8EC
jsr L55BA
jsr common_overlay::L55BA
copy16 #$59B8, $5B24
ldx $50AA
txs
return #$FF
copy16 #$2001, $D484
jsr L6D27
jsr common_overlay::L6D27
ldx L7207
L737C: lda L7207+1,x
sta $6D1E,x
@ -322,7 +274,7 @@ L737C: lda L7207+1,x
dex
bpl L737C
copy16 #$0601, $D484
jsr L6D27
jsr common_overlay::L6D27
lda #$00
sta $5105
sta $51AE
@ -461,7 +413,7 @@ L74E1: MGTK_RELAY_CALL MGTK::SetPenMode, $D202
rts
lda winfo12
jsr L62C8
jsr common_overlay::L62C8
lda $D20A
bne L7500
rts

View File

@ -31,7 +31,8 @@ function stats {
#do_make clean
do_make all
TARGETS="loader mgtk desktop invoker ovl1 ovl1a ovl2 ovl3 ovl4 ovl5 ovl6 ovl7"
TARGETS="loader mgtk desktop invoker ovl1 ovl1a ovl2 ovl34567"
SOURCES="loader mgtk desktop invoker ovl1 ovl1a ovl2 ovl3 ovl4 ovl5 ovl6 ovl7"
# Verify original and output match
echo "Verifying diffs:"
@ -41,6 +42,6 @@ done;
# Compute stats
echo "Unidentified symbols:"
for t in $TARGETS; do
for t in $SOURCES; do
stats "$t.s"
done;