Disk Copy Overlay disasm

This commit is contained in:
Joshua Bell 2018-11-22 16:20:54 -08:00
parent b379e4236c
commit 014ac606b9
2 changed files with 116 additions and 116 deletions

View File

@ -188,7 +188,7 @@ LD12F: .byte 0
LD133: .byte 0 LD133: .byte 0
LD134: .byte 0 .byte 0
.byte 0 .byte 0
.byte 0 .byte 0
@ -319,8 +319,9 @@ bg_white:
rect_D35B: DEFINE_RECT 0, 0, 150, 0, rect_D35B rect_D35B: DEFINE_RECT 0, 0, 150, 0, rect_D35B
;; TODO: Identify data
LD363: .byte 0 current_drive_selection: ; $FF if no selection
.byte 0
.byte 0 .byte 0
.byte 0 .byte 0
.byte 0 .byte 0
@ -336,16 +337,19 @@ point_D36D: DEFINE_POINT 0, 0, point_D36D
.byte 0 .byte 0
.byte $47 .byte $47
.byte 0 .byte 0
LD375: .byte 0
num_drives:
.byte 0
LD376: .byte 0 LD376: .byte 0
LD377: .res 128, 0 LD377: .res 128, 0
LD3F7: .res 8, 0 drive_unitnum_table: .res 8, 0
LD3FF: .res 8, 0 LD3FF: .res 8, 0
LD407: .res 16, 0 LD407: .res 16, 0
LD417: .byte 0 source_drive_index: .byte 0
LD418: .byte 0 dest_drive_index: .byte 0
str_d: PASCAL_STRING 0 str_d: PASCAL_STRING 0
str_s: PASCAL_STRING 0 str_s: PASCAL_STRING 0
@ -507,7 +511,7 @@ LD61C: lda #$00
sta LD368 sta LD368
sta LD44C sta LD44C
lda #$FF lda #$FF
sta LD363 sta current_drive_selection
lda #$81 lda #$81
sta LD44D sta LD44D
lda #$00 lda #$00
@ -534,13 +538,13 @@ LD674: jsr LD986
MGTK_RELAY_CALL2 MGTK::CloseWindow, winfo_drive_select MGTK_RELAY_CALL2 MGTK::CloseWindow, winfo_drive_select
jmp LD61C jmp LD61C
LD687: lda LD363 LD687: lda current_drive_selection
bmi LD674 bmi LD674
lda #$01 lda #$01
sta LD129 sta LD129
MGTK_RELAY_CALL2 MGTK::DisableMenu, disablemenu_params MGTK_RELAY_CALL2 MGTK::DisableMenu, disablemenu_params
lda LD363 lda current_drive_selection
sta LD417 sta source_drive_index
lda winfo_drive_select lda winfo_drive_select
jsr set_win_port jsr set_win_port
MGTK_RELAY_CALL2 MGTK::SetPenMode, pencopy MGTK_RELAY_CALL2 MGTK::SetPenMode, pencopy
@ -559,11 +563,11 @@ LD6E6: jsr LD986
MGTK_RELAY_CALL2 MGTK::CloseWindow, winfo_drive_select MGTK_RELAY_CALL2 MGTK::CloseWindow, winfo_drive_select
jmp LD61C jmp LD61C
LD6F9: lda LD363 LD6F9: lda current_drive_selection
bmi LD6E6 bmi LD6E6
tax tax
lda LD3FF,x lda LD3FF,x
sta LD418 sta dest_drive_index
lda #$00 lda #$00
sta LD44C sta LD44C
lda winfo_dialog::window_id lda winfo_dialog::window_id
@ -578,8 +582,8 @@ LD734: addr_call show_alert_dialog, $0000 ; Insert Source
LD740: lda #$00 LD740: lda #$00
sta LD44D sta LD44D
ldx LD417 ldx source_drive_index
lda LD3F7,x lda drive_unitnum_table,x
sta disk_copy_overlay4::on_line_params2::unit_num sta disk_copy_overlay4::on_line_params2::unit_num
jsr disk_copy_overlay4::L1291 jsr disk_copy_overlay4::L1291
beq LD77E beq LD77E
@ -613,12 +617,12 @@ LD798: lda $1300
addr_call adjust_case, $1300 addr_call adjust_case, $1300
jsr LE674 jsr LE674
jsr LE559 jsr LE559
LD7AD: lda LD417 LD7AD: lda source_drive_index
jsr LE3B8 jsr LE3B8
jsr LE5E1 jsr LE5E1
jsr LE63F jsr LE63F
ldx LD418 ldx dest_drive_index
lda LD3F7,x lda drive_unitnum_table,x
tay tay
ldx #$00 ldx #$00
@ -628,8 +632,8 @@ LD7AD: lda LD417
beq LD7CC beq LD7CC
jmp LD61C jmp LD61C
LD7CC: ldx LD418 LD7CC: ldx dest_drive_index
lda LD3F7,x lda drive_unitnum_table,x
sta disk_copy_overlay4::on_line_params2::unit_num sta disk_copy_overlay4::on_line_params2::unit_num
jsr disk_copy_overlay4::L1291 jsr disk_copy_overlay4::L1291
beq LD7E1 beq LD7E1
@ -645,11 +649,11 @@ LD7E1: lda $1300
beq LD7F2 beq LD7F2
jmp LD852 jmp LD852
LD7F2: ldx LD418 LD7F2: ldx dest_drive_index
lda LD3F7,x lda drive_unitnum_table,x
and #$0F and #$0F
beq LD817 beq LD817
lda LD3F7,x lda drive_unitnum_table,x
jsr disk_copy_overlay4::L0D26 jsr disk_copy_overlay4::L0D26
ldy #$FF ldy #$FF
lda ($06),y lda ($06),y
@ -665,8 +669,8 @@ LD7F2: ldx LD418
LD817: lda $1300 LD817: lda $1300
and #$0F and #$0F
bne LD82C bne LD82C
ldx LD418 ldx dest_drive_index
lda LD3F7,x lda drive_unitnum_table,x
and #$F0 and #$F0
tax tax
lda #$07 lda #$07
@ -689,11 +693,11 @@ LD84A: lda quick_copy_flag
bne LD852 bne LD852
jmp LD8A9 jmp LD8A9
LD852: ldx LD418 LD852: ldx dest_drive_index
lda LD3F7,x lda drive_unitnum_table,x
and #$0F and #$0F
beq LD87C beq LD87C
lda LD3F7,x lda drive_unitnum_table,x
jsr disk_copy_overlay4::L0D26 jsr disk_copy_overlay4::L0D26
ldy #$FE ldy #$FE
lda ($06),y lda ($06),y
@ -730,11 +734,11 @@ LD8A9: lda winfo_dialog::window_id
jsr set_win_port jsr set_win_port
MGTK_RELAY_CALL2 MGTK::SetPenMode, pencopy MGTK_RELAY_CALL2 MGTK::SetPenMode, pencopy
MGTK_RELAY_CALL2 MGTK::PaintRect, rect_D211 MGTK_RELAY_CALL2 MGTK::PaintRect, rect_D211
lda LD417 lda source_drive_index
cmp LD418 cmp dest_drive_index
bne LD8DF bne LD8DF
tax tax
lda LD3F7,x lda drive_unitnum_table,x
pha pha
jsr disk_copy_overlay4::eject_disk jsr disk_copy_overlay4::eject_disk
pla pla
@ -761,11 +765,11 @@ LD8FB: jsr LE4A8
cmp #$01 cmp #$01
beq LD97A beq LD97A
jsr LE4EC jsr LE4EC
lda LD417 lda source_drive_index
cmp LD418 cmp dest_drive_index
bne LD928 bne LD928
tax tax
lda LD3F7,x lda drive_unitnum_table,x
pha pha
jsr disk_copy_overlay4::eject_disk jsr disk_copy_overlay4::eject_disk
pla pla
@ -782,11 +786,11 @@ LD928: jsr LE491
bmi LD955 bmi LD955
bne LD97A bne LD97A
jsr LE507 jsr LE507
lda LD417 lda source_drive_index
cmp LD418 cmp dest_drive_index
bne LD8FB bne LD8FB
tax tax
lda LD3F7,x lda drive_unitnum_table,x
pha pha
jsr disk_copy_overlay4::eject_disk jsr disk_copy_overlay4::eject_disk
pla pla
@ -799,13 +803,13 @@ LD928: jsr LE491
LD955: jsr LE507 LD955: jsr LE507
jsr disk_copy_overlay4::L10FB jsr disk_copy_overlay4::L10FB
ldx LD417 ldx source_drive_index
lda LD3F7,x lda drive_unitnum_table,x
jsr disk_copy_overlay4::eject_disk jsr disk_copy_overlay4::eject_disk
ldx LD418 ldx dest_drive_index
cpx LD417 cpx source_drive_index
beq :+ beq :+
lda LD3F7,x lda drive_unitnum_table,x
jsr disk_copy_overlay4::eject_disk jsr disk_copy_overlay4::eject_disk
: lda #9 ; Copy success : lda #9 ; Copy success
jsr show_alert_dialog jsr show_alert_dialog
@ -982,19 +986,19 @@ handle_drive_select_button_down:
jsr set_win_port jsr set_win_port
MGTK_RELAY_CALL2 MGTK::ScreenToWindow, screentowindow_params MGTK_RELAY_CALL2 MGTK::ScreenToWindow, screentowindow_params
MGTK_RELAY_CALL2 MGTK::MoveTo, screentowindow_windowx MGTK_RELAY_CALL2 MGTK::MoveTo, screentowindow_windowx
lsr16 screentowindow_windowy lsr16 screentowindow_windowy ; / 8
lsr16 screentowindow_windowy lsr16 screentowindow_windowy
lsr16 screentowindow_windowy lsr16 screentowindow_windowy
lda screentowindow_windowy lda screentowindow_windowy
cmp LD375 cmp num_drives
bcc LDB98 bcc LDB98
lda LD363 lda current_drive_selection
jsr highlight_row jsr highlight_row
lda #$FF lda #$FF
sta LD363 sta current_drive_selection ; $FF if no selection?
jmp LDBCA jmp LDBCA
LDB98: cmp LD363 LDB98: cmp current_drive_selection
bne LDBCD bne LDBCD
bit LD368 bit LD368
bpl LDBC0 bpl LDBC0
@ -1010,11 +1014,11 @@ LDBC0: lda #$FF
LDBCA: return #$FF LDBCA: return #$FF
LDBCD: pha LDBCD: pha
lda LD363 lda current_drive_selection
bmi LDBD6 bmi LDBD6
jsr highlight_row jsr highlight_row
LDBD6: pla LDBD6: pla
sta LD363 sta current_drive_selection
jsr highlight_row jsr highlight_row
jmp LDBC0 jmp LDBC0
@ -1062,15 +1066,15 @@ LDC55: bit LD44C
bne check_up bne check_up
lda winfo_drive_select lda winfo_drive_select
jsr set_win_port jsr set_win_port
lda LD363 lda current_drive_selection
bmi LDC6F bmi LDC6F
jsr highlight_row jsr highlight_row
LDC6F: inc LD363 LDC6F: inc current_drive_selection
lda LD363 lda current_drive_selection
cmp LD375 cmp num_drives
bcc LDC7F bcc LDC7F
lda #$00 lda #$00
sta LD363 sta current_drive_selection
LDC7F: jsr highlight_row LDC7F: jsr highlight_row
jmp LDCA9 jmp LDCA9
.endproc .endproc
@ -1080,15 +1084,15 @@ LDC7F: jsr highlight_row
bne LDCA9 bne LDCA9
lda winfo_drive_select lda winfo_drive_select
jsr set_win_port jsr set_win_port
lda LD363 lda current_drive_selection
bmi LDC9C bmi LDC9C
jsr highlight_row jsr highlight_row
dec LD363 dec current_drive_selection
bpl LDCA3 bpl LDCA3
LDC9C: ldx LD375 LDC9C: ldx num_drives
dex dex
stx LD363 stx current_drive_selection
LDCA3: lda LD363 LDCA3: lda current_drive_selection
jsr highlight_row jsr highlight_row
;; fall through ;; fall through
.endproc .endproc
@ -1226,7 +1230,7 @@ LDE23: lda $1C02
beq LDE31 beq LDE31
LDE2E: return #$FF LDE2E: return #$FF
LDE31: lda LD375 LDE31: lda num_drives
asl a asl a
asl a asl a
asl a asl a
@ -1265,7 +1269,7 @@ LDE4D: cmp #$A5
adc #$31 adc #$31
ldx drive_char ldx drive_char
sta str_dos33_s_d,x sta str_dos33_s_d,x
lda LD375 lda num_drives
asl a asl a
asl a asl a
asl a asl a
@ -1603,7 +1607,7 @@ LE16C: lda #$00
.byte 0 .byte 0
LE17A: lda #$00 LE17A: lda #$00
sta LE263 sta LE263
sta LD375 sta num_drives
LE182: lda #$13 LE182: lda #$13
sta $07 sta $07
lda #$00 lda #$00
@ -1647,16 +1651,16 @@ LE1CD: pha
ldy #$00 ldy #$00
lda ($06),y lda ($06),y
jsr LE285 jsr LE285
ldx LD375 ldx num_drives
sta LD3F7,x sta drive_unitnum_table,x
pla pla
cmp #$52 cmp #$52
bne LE1EA bne LE1EA
lda LD3F7,x lda drive_unitnum_table,x
and #$F0 and #$F0
jsr LDDFC jsr LDDFC
beq LE207 beq LE207
LE1EA: lda LD375 LE1EA: lda num_drives
asl a asl a
asl a asl a
asl a asl a
@ -1671,10 +1675,10 @@ LE1F4: lda str_unknown,x
bne LE1F4 bne LE1F4
lda str_unknown,x lda str_unknown,x
sta LD377,y sta LD377,y
LE207: inc LD375 LE207: inc num_drives
jmp LE255 jmp LE255
LE20D: ldx LD375 LE20D: ldx num_drives
ldy #$00 ldy #$00
lda ($06),y lda ($06),y
and #$70 and #$70
@ -1685,9 +1689,9 @@ LE20D: ldx LD375
LE21D: ldy #$00 LE21D: ldy #$00
lda ($06),y lda ($06),y
jsr LE285 jsr LE285
ldx LD375 ldx num_drives
sta LD3F7,x sta drive_unitnum_table,x
lda LD375 lda num_drives
asl a asl a
asl a asl a
asl a asl a
@ -1708,7 +1712,7 @@ LE23E: inx
LE24D: lda ($06),y LE24D: lda ($06),y
sta LD377,x sta LD377,x
inc LD375 inc num_drives
LE255: inc LE263 LE255: inc LE263
lda LE263 lda LE263
cmp #$08 cmp #$08
@ -1752,24 +1756,24 @@ LE298: lda LE2B0
jsr LE31B jsr LE31B
inc LE2B0 inc LE2B0
lda LE2B0 lda LE2B0
cmp LD375 cmp num_drives
bne LE298 bne LE298
rts rts
LE2B0: .byte 0 LE2B0: .byte 0
LE2B1: lda winfo_drive_select LE2B1: lda winfo_drive_select
jsr set_win_port jsr set_win_port
lda LD363 lda current_drive_selection
asl a asl a
tax tax
lda LD407,x lda LD407,x
sta LE318 sta LE318
lda LD407+1,x lda LD407+1,x
sta LE319 sta LE318+1
lda LD375 lda num_drives
sta LD376 sta LD376
lda #$00 lda #$00
sta LD375 sta num_drives
sta LE317 sta LE317
LE2D6: lda LE317 LE2D6: lda LE317
asl a asl a
@ -1778,16 +1782,16 @@ LE2D6: lda LE317
cmp LE318 cmp LE318
bne LE303 bne LE303
lda LD407+1,x lda LD407+1,x
cmp LE319 cmp LE318+1
bne LE303 bne LE303
lda LE317 lda LE317
ldx LD375 ldx num_drives
sta LD3FF,x sta LD3FF,x
lda LD375 lda num_drives
jsr LE39A jsr LE39A
lda LE317 lda LE317
jsr LE31B jsr LE31B
inc LD375 inc num_drives
LE303: inc LE317 LE303: inc LE317
lda LE317 lda LE317
cmp LD376 cmp LD376
@ -1795,19 +1799,18 @@ LE303: inc LE317
jmp LE2D6 jmp LE2D6
LE311: lda #$FF LE311: lda #$FF
sta LD363 sta current_drive_selection
rts rts
LE317: .byte 0 LE317: .byte 0
LE318: .byte 0 LE318: .addr 0
LE319: .byte 0
.byte 0 .byte 0
LE31B: sta LE399 LE31B: sta LE399
lda #8 lda #8
sta point_D36D::xcoord sta point_D36D::xcoord
MGTK_RELAY_CALL2 MGTK::MoveTo, point_D36D MGTK_RELAY_CALL2 MGTK::MoveTo, point_D36D
ldx LE399 ldx LE399
lda LD3F7,x lda drive_unitnum_table,x
and #$70 and #$70
lsr a lsr a
lsr a lsr a
@ -1821,7 +1824,7 @@ LE31B: sta LE399
sta point_D36D::xcoord sta point_D36D::xcoord
MGTK_RELAY_CALL2 MGTK::MoveTo, point_D36D MGTK_RELAY_CALL2 MGTK::MoveTo, point_D36D
ldx LE399 ldx LE399
lda LD3F7,x lda drive_unitnum_table,x
and #$80 and #$80
asl a asl a
rol a rol a
@ -1864,17 +1867,17 @@ LE3A3: lda #$00
LE3A8: jsr LE3B8 LE3A8: jsr LE3B8
inc LE3B7 inc LE3B7
lda LE3B7 lda LE3B7
cmp LD375 cmp num_drives
bne LE3A8 bne LE3A8
rts rts
LE3B7: .byte 0 LE3B7: .byte 0
LE3B8: pha LE3B8: pha
tax tax
lda LD3F7,x lda drive_unitnum_table,x
and #$0F and #$0F
beq LE3CC beq LE3CC
lda LD3F7,x lda drive_unitnum_table,x
and #$F0 and #$F0
jsr disk_copy_overlay4::L0D26 jsr disk_copy_overlay4::L0D26
jmp LE3DA jmp LE3DA
@ -1929,7 +1932,7 @@ LE415: ldy #$FF
pla pla
pha pha
tax tax
lda LD3F7,x lda drive_unitnum_table,x
and #$F0 and #$F0
sta $43 sta $43
jsr LE445 jsr LE445
@ -1955,7 +1958,7 @@ LE44A: ldy #$FF
pla pla
pha pha
tax tax
lda LD3F7,x lda drive_unitnum_table,x
and #$F0 and #$F0
jsr disk_copy_overlay4::L0D51 jsr disk_copy_overlay4::L0D51
sta LE47D sta LE47D
@ -2011,7 +2014,7 @@ LE4A8: lda winfo_dialog::window_id
LE4BF: lda winfo_dialog::window_id LE4BF: lda winfo_dialog::window_id
jsr set_win_port jsr set_win_port
lda LD417 lda source_drive_index
asl a asl a
tay tay
lda LD407+1,y lda LD407+1,y
@ -2026,10 +2029,7 @@ LE4BF: lda winfo_dialog::window_id
LE4EC: jsr LE522 LE4EC: jsr LE522
MGTK_RELAY_CALL2 MGTK::MoveTo, point_blocks_read MGTK_RELAY_CALL2 MGTK::MoveTo, point_blocks_read
addr_call draw_text, str_blocks_read addr_call draw_text, str_blocks_read
.byte $A9 addr_call draw_text, str_number
LE500: .byte $57
ldx #$D4
jsr draw_text
rts rts
LE507: jsr LE522 LE507: jsr LE522
@ -2067,8 +2067,8 @@ LE559: lda winfo_dialog::window_id
jsr set_win_port jsr set_win_port
MGTK_RELAY_CALL2 MGTK::MoveTo, point_source2 MGTK_RELAY_CALL2 MGTK::MoveTo, point_source2
addr_call draw_text, str_source addr_call draw_text, str_source
ldx LD417 ldx source_drive_index
lda LD3F7,x lda drive_unitnum_table,x
and #$70 and #$70
lsr a lsr a
lsr a lsr a
@ -2077,8 +2077,8 @@ LE559: lda winfo_dialog::window_id
clc clc
adc #'0' adc #'0'
sta str_s + 1 sta str_s + 1
ldx LD417 ldx source_drive_index
lda LD3F7,x lda drive_unitnum_table,x
and #$80 and #$80
clc clc
rol a rol a
@ -2112,8 +2112,8 @@ LE5E1: lda winfo_dialog::window_id
jsr set_win_port jsr set_win_port
MGTK_RELAY_CALL2 MGTK::MoveTo, point_destination MGTK_RELAY_CALL2 MGTK::MoveTo, point_destination
addr_call draw_text, str_destination addr_call draw_text, str_destination
ldx LD418 ldx dest_drive_index
lda LD3F7,x lda drive_unitnum_table,x
and #$70 and #$70
lsr a lsr a
lsr a lsr a
@ -2122,8 +2122,8 @@ LE5E1: lda winfo_dialog::window_id
clc clc
adc #'0' adc #'0'
sta str_s + 1 sta str_s + 1
ldx LD418 ldx dest_drive_index
lda LD3F7,x lda drive_unitnum_table,x
and #$80 and #$80
asl a asl a
rol a rol a

View File

@ -673,12 +673,12 @@ just_rts:
;;; ============================================================ ;;; ============================================================
ldx disk_copy_overlay3::LD418 ldx disk_copy_overlay3::dest_drive_index
lda disk_copy_overlay3::LD3F7,x lda disk_copy_overlay3::drive_unitnum_table,x
sta L0CEC sta L0CEC
and #$0F and #$0F
beq L0CCC beq L0CCC
lda disk_copy_overlay3::LD3F7,x lda disk_copy_overlay3::drive_unitnum_table,x
jsr L0D26 jsr L0D26
ldy #$FF ldy #$FF
lda ($06),y lda ($06),y
@ -798,8 +798,8 @@ L0D51: pha
;;; ============================================================ ;;; ============================================================
L0D5F: ldx disk_copy_overlay3::LD417 L0D5F: ldx disk_copy_overlay3::source_drive_index
lda disk_copy_overlay3::LD3F7,x lda disk_copy_overlay3::drive_unitnum_table,x
sta block_params::unit_num sta block_params::unit_num
lda #$00 lda #$00
sta block_params::block_num sta block_params::block_num
@ -839,7 +839,7 @@ L0DA4: cmp #$A5
L0DB5: lda #$14 L0DB5: lda #$14
jsr L1133 jsr L1133
lda disk_copy_overlay3::LD417 lda disk_copy_overlay3::source_drive_index
asl a asl a
tax tax
lda disk_copy_overlay3::LD407,x lda disk_copy_overlay3::LD407,x
@ -904,8 +904,8 @@ L0E47: lda $06
rts rts
L0E4D: copy16 #6, block_params::block_num L0E4D: copy16 #6, block_params::block_num
ldx disk_copy_overlay3::LD417 ldx disk_copy_overlay3::source_drive_index
lda disk_copy_overlay3::LD3F7,x lda disk_copy_overlay3::drive_unitnum_table,x
sta block_params::unit_num sta block_params::unit_num
copy16 #$1400, block_params::data_buffer copy16 #$1400, block_params::data_buffer
jsr L12AF jsr L12AF
@ -970,16 +970,16 @@ L0ED7: bit KBDSTRB
copy16 disk_copy_overlay3::LD424, disk_copy_overlay3::LD421 copy16 disk_copy_overlay3::LD424, disk_copy_overlay3::LD421
lda disk_copy_overlay3::LD426 lda disk_copy_overlay3::LD426
sta disk_copy_overlay3::LD423 sta disk_copy_overlay3::LD423
ldx disk_copy_overlay3::LD418 ldx disk_copy_overlay3::dest_drive_index
lda disk_copy_overlay3::LD3F7,x lda disk_copy_overlay3::drive_unitnum_table,x
sta block_params::unit_num sta block_params::unit_num
jmp L0F1A jmp L0F1A
L0EFF: copy16 disk_copy_overlay3::LD421, disk_copy_overlay3::LD424 L0EFF: copy16 disk_copy_overlay3::LD421, disk_copy_overlay3::LD424
lda disk_copy_overlay3::LD423 lda disk_copy_overlay3::LD423
sta disk_copy_overlay3::LD426 sta disk_copy_overlay3::LD426
ldx disk_copy_overlay3::LD417 ldx disk_copy_overlay3::source_drive_index
lda disk_copy_overlay3::LD3F7,x lda disk_copy_overlay3::drive_unitnum_table,x
sta block_params::unit_num sta block_params::unit_num
L0F1A: lda #$07 L0F1A: lda #$07
sta disk_copy_overlay3::LD420 sta disk_copy_overlay3::LD420