diff --git a/desktop/README.md b/desktop/README.md index fb51ef1..837659b 100644 --- a/desktop/README.md +++ b/desktop/README.md @@ -117,8 +117,8 @@ $4000 +------------+ +------------+ | | | | | | | | $2000 +------------+ +------------+ - | Desk Acc | | Desk Acc | - | | | | + | Init & | | Desk Acc | + | Desk Acc | | | | | | | $0800 +------------+ +------------+ | Text | | Text | diff --git a/desktop/desktop.s b/desktop/desktop.s index 0ab315a..cd77486 100644 --- a/desktop/desktop.s +++ b/desktop/desktop.s @@ -5308,7 +5308,7 @@ L4015: jmp L40F2 L4018: jmp DESKTOP_RELAY jmp L8E81 L401E: jmp L6D2B -L4021: jmp L46BA +L4021: jmp MLI_RELAY jmp DESKTOP_COPY_TO_BUF jmp DESKTOP_COPY_FROM_BUF jmp L490E @@ -5977,7 +5977,8 @@ L46AE: jsr L678A sta $E26F rts -L46BA: sty L46CE +MLI_RELAY: + sty L46CE sta L46CF stx L46CF+1 php @@ -5995,6 +5996,14 @@ L46CF: .addr L0000 txa rts +.macro MLI_RELAY_CALL call, addr + ldy #(call) + lda #<(addr) + ldx #>(addr) + jsr MLI_RELAY +.endmacro + + L46DE: jmp L46F3 .byte $0A,$20,$02,$00 @@ -6018,10 +6027,7 @@ L470C: iny cpy $D345 bne L470C stx $0220 - ldy #$C4 - lda #$E1 - ldx #$46 - jsr L46BA + MLI_RELAY_CALL $C4, $46E1 beq L472B jsr DESKTOP_SHOW_ALERT0 rts @@ -6094,10 +6100,7 @@ L47D7: inx cpy L4817 bne L47D7 stx $1800 - ldy #$C4 - lda #$A6 - ldx #$47 - jsr L46BA + MLI_RELAY_CALL $C4, $47A6 bne L47F3 rts @@ -6424,10 +6427,7 @@ L4ADC: iny L4AEA: jsr L4B5F sta L4991 stx L4992 - ldy #$C4 - lda #$90 - ldx #$49 - jsr L46BA + MLI_RELAY_CALL $C4, $4990 rts L4AFD: sta ALTZPOFF @@ -6584,9 +6584,9 @@ L4C4A: jsr L489A rts L4C4E: ldy #$C8 - ldx #$4C - lda #$77 - jsr L46BA + ldx #>$4C77 + lda #<$4C77 + jsr MLI_RELAY bne L4C5A rts @@ -6597,14 +6597,14 @@ L4C5A: lda #$00 rts L4C64: ldy #$CA - ldx #$4C - lda #$7D - jmp L46BA + ldx #>$4C7D + lda #<$4C7D + jmp MLI_RELAY L4C6D: ldy #$CC - ldx #$4C - lda #$85 - jmp L46BA + ldx #>$4C85 + lda #<$4C85 + jmp MLI_RELAY .byte $00,$03,$88,$4C,$00,$1C L4C7C: .byte $00,$04 @@ -6979,10 +6979,7 @@ L5000: lda $BF90,x sta L4F72,x dex bpl L5000 - ldy #$C0 - lda #$6A - ldx #$4F - jsr L46BA + MLI_RELAY_CALL $C0, $4F6A beq L5027 jsr DESKTOP_SHOW_ALERT0 lda L504E @@ -10726,10 +10723,7 @@ L7296: lda L0006 L72A7: .byte 0 L72A8: .byte 0 L72A9: .byte 0 -L72AA: ldy #$C8 - lda #$57 - ldx #$70 - jsr L46BA +L72AA: MLI_RELAY_CALL $C8, $7057 beq L72CD jsr DESKTOP_SHOW_ALERT0 jsr L8B1F @@ -10742,16 +10736,10 @@ L72C9: ldx $E256 txs L72CD: rts -L72CE: ldy #$CA - lda #$9E - ldx #$70 - jsr L46BA +L72CE: MLI_RELAY_CALL $CA, $709E rts -L72D8: ldy #$CC - lda #$A6 - ldx #$70 - jsr L46BA +L72D8: MLI_RELAY_CALL $CC, $70A6 rts L72E2: lda $0C04 @@ -10760,10 +10748,7 @@ L72E2: lda $0C04 beq L72EC rts -L72EC: ldy #$C4 - lda #$A8 - ldx #$70 - jsr L46BA +L72EC: MLI_RELAY_CALL $C4, $70A8 beq L72F8 rts @@ -13425,10 +13410,7 @@ L89B6: sta L8AC3 sty L8AC4 and #$F0 sta L89B3 - ldy #$C5 - lda #$B2 - ldx #$89 - jsr L46BA + MLI_RELAY_CALL $C5, $89B2 beq L89DD L89CC: pha ldy L8AC4 @@ -13984,10 +13966,7 @@ L8E8F: pla sta L8E78 lda L8E51,y sta L8E79 -L8EBE: ldy #$C8 - lda #$62 - ldx #$8E - jsr L46BA +L8EBE: MLI_RELAY_CALL $C8, $8E62 beq L8ED6 lda #$00 ora L8E80 @@ -13999,18 +13978,9 @@ L8EBE: ldy #$C8 L8ED6: lda L8E67 sta L8E77 sta L8E72 - ldy #$CE - lda #$71 - ldx #$8E - jsr L46BA - ldy #$CA - lda #$76 - ldx #$8E - jsr L46BA - ldy #$CC - lda #$7E - ldx #$8E - jsr L46BA + MLI_RELAY_CALL $CE, $8E71 + MLI_RELAY_CALL $CA, $8E76 + MLI_RELAY_CALL $CC, $8E7E rts .byte 0 diff --git a/desktop/s5.s b/desktop/s5.s index 0224c77..2372167 100644 --- a/desktop/s5.s +++ b/desktop/s5.s @@ -1,15 +1,13 @@ -.org $800 -; da65 V2.16 - Git f5e9b401 -; Created: 2018-01-05 09:39:35 -; Input file: orig/DESKTOP2_s5 -; Page: 1 - - .setcpu "6502" + .include "apple2.inc" + .include "../inc/auxmem.inc" + .include "../inc/prodos.inc" + .include "../a2d.inc" + .include "../desktop.inc" + L0006 := $0006 -A2D := $4000 -L46BA := $46BA + L4AFD := $4AFD L4B3A := $4B3A L6365 := $6365 @@ -25,35 +23,21 @@ L87BA := $87BA L87F6 := $87F6 L8813 := $8813 L89B6 := $89B6 -UNKNOWN_CALL := $8E00 -MLI := $BF00 -RAMRDOFF := $C002 -RAMRDON := $C003 -RAMWRTOFF := $C004 -RAMWRTON := $C005 -ALTZPOFF := $C008 -ALTZPON := $C009 -LCBANK1 := $C08B -AUXMOVE := $C311 -XFER := $C314 -A2D_RELAY := $D000 -DESKTOP_RELAY := $D040 + LD05E := $D05E -FSUB := $E7A7 -FADD := $E7BE -FMULT := $E97F -FDIV := $EA66 -ROUND := $EB2B -FLOAT := $EB93 -FIN := $EC4A -FOUT := $ED34 -INIT := $FB2F -BELL1 := $FBDD -HOME := $FC58 -COUT := $FDED LFE1F := $FE1F -SETKBD := $FE89 -SETVID := $FE93 + +MLI_RELAY := $46BA +.macro MLI_RELAY_CALL call, addr + ldy #(call) + lda #<(addr) + ldx #>(addr) + jsr MLI_RELAY +.endmacro + + .org $800 + +start: lda #$00 sta L0853 lda $FBC0 @@ -67,7 +51,7 @@ L0815: ldx $FBB3 ldy $FBC0 cpx #$06 beq L0820 - brk + .byte 0 L0820: sta ALTZPON lda LCBANK1 lda LCBANK1 @@ -90,7 +74,8 @@ L084B: lda #$FA sta $D2AB jmp L0854 -L0853: brk +L0853: .byte 0 + L0854: sta $C00C sta $C05E sta $C05F @@ -119,26 +104,11 @@ L088C: lda $BF32,x bpl L088C bmi L089B L0898: jsr L0E35 -L089B: ldy #$1D - lda #$9C - ldx #$D2 - jsr A2D_RELAY - ldy #$30 - lda #$72 - ldx #$E6 - jsr A2D_RELAY - ldy #$1A - lda #$A7 - ldx #$D2 - jsr A2D_RELAY - ldy #$24 - lda #$11 - ldx #$D3 - jsr A2D_RELAY - ldy #$25 - lda #$00 - ldx #$00 - jsr A2D_RELAY +L089B: A2D_RELAY_CALL A2D_INIT_SCREEN_AND_MOUSE, $D29C + A2D_RELAY_CALL A2D_SET_MENU, $E672 + A2D_RELAY_CALL A2D_CONFIGURE_ZP_USE, $D2A7 + A2D_RELAY_CALL A2D_SET_CURSOR, $D311 + A2D_RELAY_CALL A2D_SHOW_CURSOR, $0000 jsr L87F6 lda #$63 sta L0006 @@ -189,11 +159,7 @@ L090F: sta $1F00,x sta RAMWRTOFF jmp L092F -L0927: .byte $07 - jsr L7254 - adc ($73,x) - pla - .byte $20 +L0927: PASCAL_STRING " Trash " L092F: lda #$00 sta $DE9F lda #$01 @@ -255,7 +221,7 @@ L09A2: stx L09B5 adc L09B5 sta L09B5 .byte $AD -L09B5: brk +L09B5: .byte 0 .byte $BF sta $07 lda #$00 @@ -273,7 +239,7 @@ L09B5: brk adc #$03 sta L0006 jsr L09F9 - brk + .byte 0 .byte $FC ora #$B0 ora $AD,y @@ -289,28 +255,20 @@ L09E6: lda $BF33,x dec $BF31 L09F5: jmp L0A03 -L09F8: brk +L09F8: .byte 0 L09F9: jmp (L0006) .byte $03 - brk - brk + .byte 0 + .byte 0 .byte $1F - brk -L0A01: brk -L0A02: brk -L0A03: ldy #$29 - lda #$00 - ldx #$00 - jsr A2D_RELAY - ldy #$C7 - lda #$F1 - ldx #$8A - jsr L46BA - ldy #$29 - lda #$00 - ldx #$00 - jsr A2D_RELAY + .byte 0 +L0A01: .byte 0 +L0A02: .byte 0 + +L0A03: A2D_RELAY_CALL $29, $0000 + MLI_RELAY_CALL GET_PREFIX, $8AF1 + A2D_RELAY_CALL $29, $0000 lda #$00 sta L0A92 jsr L0AE7 @@ -363,9 +321,10 @@ L0A7F: lda (L0006),y L0A8F: jmp L0B09 -L0A92: brk -L0A93: brk - brk +L0A92: .byte 0 +L0A93: .byte 0 + .byte 0 + L0A95: jsr L86A7 clc adc #$02 @@ -408,42 +367,28 @@ L0ABC: jsr L86C1 .byte $03 .byte $CF - asl a - brk + .byte $0A + .byte 0 .byte $10 -L0ACE: brk -L0ACF: ora $6553 - jmp (L6365) +L0ACE: .byte 0 + +L0ACF: PASCAL_STRING "Selector.List" - .byte $74 - .byte $6F - .byte $72 - rol $694C - .byte $73 - .byte $74 .byte $04 -L0ADE: brk - brk +L0ADE: .byte 0 + .byte 0 .byte $14 - brk + .byte 0 .byte $04 - brk - brk - ora ($00,x) -L0AE7: ldy #$C8 - lda #$C9 - ldx #$0A - jsr L46BA + .byte 0 + .byte 0 + .byte 1,0 + +L0AE7: MLI_RELAY_CALL OPEN, $0AC9 lda L0ACE sta L0ADE - ldy #$CA - lda #$DD - ldx #$0A - jsr L46BA - ldy #$CC - lda #$E5 - ldx #$0A - jsr L46BA + MLI_RELAY_CALL READ, $0ADD + MLI_RELAY_CALL CLOSE, $0AE5 rts L0B09: lda #$DC @@ -508,16 +453,11 @@ L0B09: lda #$DC sta $EBE8 jmp L0BA2 -L0BA0: brk -L0BA1: brk -L0BA2: ldy #$29 - lda #$00 - ldx #$00 - jsr A2D_RELAY - ldy #$C4 - lda #$E5 - ldx #$0C - jsr L46BA +L0BA0: .byte 0 +L0BA1: .byte 0 + +L0BA2: A2D_RELAY_CALL $29, $0000 + MLI_RELAY_CALL GET_FILE_INFO, $0CE5 beq L0BB9 jmp L0D0A @@ -526,17 +466,11 @@ L0BB9: lda L0CE9 beq L0BC3 jmp L0D0A -L0BC3: ldy #$C8 - lda #$D7 - ldx #$0C - jsr L46BA +L0BC3: MLI_RELAY_CALL OPEN, $0CD7 lda L0CDC sta L0CDE sta L0CF9 - ldy #$CA - lda #$DD - ldx #$0C - jsr L46BA + MLI_RELAY_CALL READ, $0CDD lda #$00 sta L0D04 sta L0D05 @@ -628,10 +562,7 @@ L0C96: inc L0D08 lda L0D08 cmp L0D07 bne L0CBA - ldy #$CA - lda #$DD - ldx #$0C - jsr L46BA + MLI_RELAY_CALL READ, $0CDD lda #$04 sta L0006 lda #$14 @@ -649,60 +580,55 @@ L0CBA: lda L0006 sta $07 jmp L0C0C -L0CCB: ldy #$CC - lda #$F8 - ldx #$0C - jsr L46BA +L0CCB: MLI_RELAY_CALL CLOSE, $0CF8 jmp L0D0A .byte $03 .byte $FA .byte $0C - brk + .byte 0 .byte $10 -L0CDC: brk +L0CDC: .byte 0 .byte $04 -L0CDE: brk - brk +L0CDE: .byte 0 + .byte 0 .byte $14 - brk + .byte 0 .byte $02 - brk - brk + .byte 0 + .byte 0 asl a .byte $FA .byte $0C - brk -L0CE9: brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk + .byte 0 +L0CE9: .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 .byte $01 -L0CF9: brk - php - .byte $44 - adc $73 - .byte $6B - rol $6361 - .byte $63 -L0D03: brk -L0D04: brk -L0D05: brk -L0D06: brk -L0D07: brk -L0D08: brk -L0D09: brk +L0CF9: .byte 0 + + PASCAL_STRING "Desk.acc" + +L0D03: .byte 0 +L0D04: .byte 0 +L0D05: .byte 0 +L0D06: .byte 0 +L0D07: .byte 0 +L0D08: .byte 0 +L0D09: .byte 0 + L0D0A: ldy #$00 sty $599F sty L0E33 @@ -725,10 +651,7 @@ L0D12: lda L0E33 lda $BF32,y jsr L89B6 sta L0E34 - ldy #$29 - lda #$00 - ldx #$00 - jsr A2D_RELAY + A2D_RELAY_CALL $29, $0000 pla tay pla @@ -797,7 +720,7 @@ L0DB8: iny lda (L0006),y sta ($08),y .byte $C0 -L0DBE: brk +L0DBE: .byte 0 bne L0DB8 tay L0DC2: pla @@ -865,9 +788,9 @@ L0E25: lda L0E33 bcs L0E4C L0E2F: jmp L0D12 -L0E32: brk -L0E33: brk -L0E34: brk +L0E32: .byte 0 +L0E33: .byte 0 +L0E34: .byte 0 L0E35: dex L0E36: inx lda $BF33,x @@ -913,7 +836,7 @@ L0E79: sta L0EAF tax lda L0EB0,x sta L0E9A - lda L0EB1,x + lda L0EB0+1,x sta L0E9B ldx $E44C dex @@ -932,54 +855,34 @@ L0E9B: .byte $12 L0EA8: stx $E2D6 jmp L0EE1 -L0EAE: brk -L0EAF: brk -L0EB0: .byte $4C -L0EB1: cpx $54 - cpx $5C - cpx $64 - cpx $6C - cpx $74 - cpx $7C - cpx $0A - .byte $62 - pha - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk +L0EAE: .byte 0 +L0EAF: .byte 0 +L0EB0: .byte $4C,$E4,$54,$E4,$5C,$E4,$64,$E4,$6C,$E4,$74,$E4,$7C,$E4,$0A,$62,$48 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 + .byte 0 ora ($62,x) pha -L0ED4: .byte $0C - .byte $53 - adc $7473,y - adc $6D - .byte $2F - .byte $53 - .byte $74 - adc ($72,x) - .byte $74 +L0ED4: PASCAL_STRING "System/Start" L0EE1: lda #$00 sta $4861 jsr L4AFD cmp #$80 beq L0EFE - ldy #$C7 - lda #$D1 - ldx #$0E - jsr L46BA + MLI_RELAY_CALL GET_PREFIX, $0ED1 bne L0F34 dec $4862 jmp L0F05 @@ -1001,25 +904,13 @@ L0F14: inx cpy L0ED4 bne L0F14 stx $4862 - ldy #$C4 - lda #$BE - ldx #$0E - jsr L46BA + MLI_RELAY_CALL GET_FILE_INFO, $0EBE bne L0F34 lda #$80 sta $4861 -L0F34: ldy #$29 - lda #$00 - ldx #$00 - jsr A2D_RELAY - ldy #$30 - lda #$44 - ldx #$AC - jsr A2D_RELAY - ldy #$24 - lda #$AD - ldx #$D2 - jsr A2D_RELAY +L0F34: A2D_RELAY_CALL $29, $0000 + A2D_RELAY_CALL A2D_SET_MENU, $AC44 + A2D_RELAY_CALL A2D_SET_CURSOR, $D2AD lda #$00 sta $EC25 jsr L66A2 @@ -1027,163 +918,5 @@ L0F34: ldy #$29 jsr L670C jmp A2D - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk - brk + ;; Pad out to $800 + .res $800 - (* - start), 0