From c5d661b51379b3d571fcf5e00ee7cecc0f989e64 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 30 May 2018 14:39:47 -0400 Subject: [PATCH] ed: I have a bad feeling about this --- electric_duet/FIGHTING.ED | 1 + electric_duet/HIGHWIND.ED | Bin 0 -> 144 bytes electric_duet/Makefile | 23 ++++ electric_duet/duet.s | 172 +++++++++++++++++++++++++ electric_duet/eduet.dsk | Bin 0 -> 143360 bytes {tfv => linker_scripts}/apple2_900.inc | 0 tfv/Makefile | 2 +- 7 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 electric_duet/FIGHTING.ED create mode 100644 electric_duet/HIGHWIND.ED create mode 100644 electric_duet/Makefile create mode 100644 electric_duet/duet.s create mode 100644 electric_duet/eduet.dsk rename {tfv => linker_scripts}/apple2_900.inc (100%) diff --git a/electric_duet/FIGHTING.ED b/electric_duet/FIGHTING.ED new file mode 100644 index 00000000..3644daa4 --- /dev/null +++ b/electric_duet/FIGHTING.ED @@ -0,0 +1 @@ +l`P`l`l ll`P`l`l llflPlHPV` V`lPlPPlPH PPHPPrV6V0`+`(V$V?V9V`l`P`l`l ll`P`l`l llPlPlHPV` V`lPlPlH PPV` V` ?lVVV lll  6 $  ?lVVV lll  6 $  ?99099?&9`V?99?&9?$? 9`V99$$?999Hl$H l$?9lH`$ < `$`lll```lll ``$`lll`l?$9? 9$$?$?9???l?r$0`+`+l$(`$`$l?`$`9l?`??l???$$r$6$0+$$$+++l+r$``l$``l`$ `l`l$?$9$$Hl$V`ll`P`l`l l \ No newline at end of file diff --git a/electric_duet/HIGHWIND.ED b/electric_duet/HIGHWIND.ED new file mode 100644 index 0000000000000000000000000000000000000000..066a6d56a34dec0c5b9978f3358b52448f710a66 GIT binary patch literal 144 zcmV~$!3n@15JXWA{}>g-fS_Ojb6-eX+rYG*_b8?$<)eseZgPVwjycH*j@V`=JJ@2G um8_2?Uh^hz@QP_>GJ`3G8OaESkm#l-{iBO!TGE0hs;Nm0s(8$kJn;j|brd}S literal 0 HcmV?d00001 diff --git a/electric_duet/Makefile b/electric_duet/Makefile new file mode 100644 index 00000000..d4541602 --- /dev/null +++ b/electric_duet/Makefile @@ -0,0 +1,23 @@ +include ../Makefile.inc + +DOS33 = ../dos33fs-utils/dos33 + +all: eduet.dsk + +$(DOS33): + cd ../dos33fs-utils && make + +eduet.dsk: $(DOS33) ED HIGHWIND.ED FIGHTING.ED + $(DOS33) -y eduet.dsk BSAVE -a 0x900 ED + $(DOS33) -y eduet.dsk BSAVE -a 0x2000 HIGHWIND.ED + $(DOS33) -y eduet.dsk BSAVE -a 0x2000 FIGHTING.ED + +ED: duet.o + ld65 -o ED duet.o -C ../linker_scripts/apple2_900.inc + +duet.o: duet.s + ca65 -o duet.o duet.s -l duet.lst + +clean: + rm -f *~ *.o *.lst ED + diff --git a/electric_duet/duet.s b/electric_duet/duet.s new file mode 100644 index 00000000..d4dac092 --- /dev/null +++ b/electric_duet/duet.s @@ -0,0 +1,172 @@ +; *************************************************************************** +; * Copyright (C) 1979-2015 by Paul Lutus * +; * http://arachnoid.com/administration * +; * * +; * This program is free software; you can redistribute it and/or modify * +; * it under the terms of the GNU General Public License as published by * +; * the Free Software Foundation; either version 2 of the License, or * +; * (at your option) any later version. * +; * * +; * This program is distributed in the hope that it will be useful, * +; * but WITHOUT ANY WARRANTY; without even the implied warranty of * +; * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * +; * GNU General Public License for more details. * +; * * +; * You should have received a copy of the GNU General Public License * +; * along with this program; if not, write to the * +; * Free Software Foundation, Inc., * +; * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * +; *************************************************************************** + +; Electric Duet Player Routine circa 1980 + +.define EQU = + +; These are all "Free" zero page locations +LOC6 EQU $06 +LOC7 EQU $07 +DURATION EQU $08 +LOC9 EQU $09 +LOC1D EQU $1D +MADDRL EQU $1E +MADDRH EQU $1F +LOC4E EQU $4E +LOC4F EQU $4F + +play_ed: + LDA #$01 ; 900: A9 01 ; 2 *!* + STA LOC9 ; 902: 85 09 ; 3 + STA LOC1D ; 904: 85 1D ; 3 + PHA ; 906: 48 ; 3 + PHA ; 907: 48 ; 3 + PHA ; 908: 48 ; 3 + BNE label1 ; 909: D0 15 ; 4 *!* +label2: + INY ; 90B: C8 ; 2 + LDA (MADDRL),Y ; 90C: B1 1E ; 5 *!* + STA LOC9 ; 90E: 85 09 ; 3 + INY ; 910: C8 ; 2 + LDA (MADDRL),Y ; 911: B1 1E ; 5 *!* + STA LOC1D ; 913: 85 1D ; 3 +loop: + LDA MADDRL ; 915: A5 1E ; 3 *!* + CLC ; 917: 18 ; 2 + ADC #$03 ; 918: 69 03 ; 2 *!* + STA MADDRL ; 91A: 85 1E ; 3 + BCC label1 ; 91C: 90 02 ; 4 *!* + INC MADDRH ; 91E: E6 1F ; 5 +label1: + LDY #$00 ; 920: A0 00 ; 2 *!* Set Y to zero + LDA (MADDRL),Y ; 922: B1 1E ; 5 *!* Load first byte + CMP #$01 ; 924: C9 01 ; 2 Compare to 1 + BEQ label2 ; 926: F0 E3 ; 4 *!* If one ? + BCS play_note ; 928: B0 0D ; 4 *!* If >1, then duration + PLA ; 92A: 68 ; 4 POP + PLA ; 92B: 68 ; 4 POP + PLA ; 92C: 68 ; 4 POP + +sub1: + LDX #$49 ; 92D: A2 49 ; 2 *!* X=0x49 (EOR opcode) + INY ; 92F: C8 ; 2 increment to next byte + LDA (MADDRL),Y ; 930: B1 1E ; 5 *!* load next byte + BNE label4 ; 932: D0 02 ; 4 *!* if not zero + LDX #$C9 ; 934: A2 C9 ; 2 *!* X=0xC9 (CMP opcode) +label4: + RTS ; 936: 60 ; 6 return + +play_note: + STA DURATION ; 937: 85 08 ; 3 + JSR sub1 ; 939: 20 2D09 ; 6 + STX $0983 ; 93C: 8E 8309 ; 4 self-modify EOR/CMP + STA LOC6 ; 93F: 85 06 ; 3 + LDX LOC9 ; 941: A6 09 ; 3 *!* +label5: + LSR A ; 943: 4A ; 2 + DEX ; 944: CA ; 2 + BNE label5 ; 945: D0 FC ; 4 *!* + STA $097C ; 947: 8D 7C09 ; 4 ; self-modify + JSR sub1 ; 94A: 20 2D09 ; 6 + STX $09BB ; 94D: 8E BB09 ; 4 ; self-modify + STA LOC7 ; 950: 85 07 ; 3 + LDX LOC1D ; 952: A6 1D ; 3 *!* +label6: + LSR A ; 954: 4A ; 2 + DEX ; 955: CA ; 2 + BNE label6 ; 956: D0 FC ; 4 *!* + STA $09B4 ; 958: 8D B409 ; 4 ; self-modify + PLA ; 95B: 68 ; 4 + TAY ; 95C: A8 ; 2 + PLA ; 95D: 68 ; 4 + TAX ; 95E: AA ; 2 + PLA ; 95F: 68 ; 4 + BNE label8 ; 960: D0 03 ; 4 *!* +label99: + BIT $C030 ; 962: 2C 30C0 ; 4 SPEAKER +label8: + CMP #$00 ; 965: C9 00 ; 2 + BMI label7 ; 967: 30 03 ; 4 *!* + NOP ; 969: EA ; 2 + BPL label9 ; 96A: 10 03 ; 4 *!* +label7: + BIT $C030 ; 96C: 2C 30C0 ; 4 SPEAKER +label9: + STA LOC4E ; 96F: 85 4E ; 3 + BIT $C000 ; 971: 2C 00C0 ; 4 + BMI label4 ; 974: 30 C0 ; 4 *!* + DEY ; 976: 88 ; 2 + BNE label10 ; 977: D0 02 ; 4 *!* + BEQ label11 ; 979: F0 06 ; 4 *!* +label10: + CPY #$00 ; 97B: C0 00 ; 2 + BEQ label12 ; 97D: F0 04 ; 4 *!* !!! + BNE label13 ; 97F: D0 04 ; 4 *!* +label11: + LDY LOC6 ; 981: A4 06 ; 3 *!* +label12: + EOR #$40 ; 983: 49 40 ; 2 *!* !!! +label13: + BIT LOC4E ; 985: 24 4E ; 3 + BVC label14 ; 987: 50 07 ; 4 *!* + BVS label15 ; 989: 70 00 ; 4 *!* +label15: + BPL label16 ; 98B: 10 09 ; 4 *!* + NOP ; 98D: EA ; 2 + BMI label17 ; 98E: 30 09 ; 4 *!* +label14: + NOP ; 990: EA ; 2 + BMI label16 ; 991: 30 03 ; 4 *!* + NOP ; 993: EA ; 2 + BPL label17 ; 994: 10 03 ; 4 *!* +label16: + CMP $C030 ; 996: CD 30C0 ; 4 SPEAKER +label17: + DEC LOC4F ; 999: C6 4F ; 5 + BNE label18 ; 99B: D0 11 ; 4 *!* + DEC DURATION ; 99D: C6 08 ; 5 + BNE label18 ; 99F: D0 0D ; 4 *!* + BVC label19 ; 9A1: 50 03 ; 4 *!* + BIT $C030 ; 9A3: 2C 30C0 ; 4 SPEAKER +label19: + PHA ; 9A6: 48 ; 3 + TXA ; 9A7: 8A ; 2 + PHA ; 9A8: 48 ; 3 + TYA ; 9A9: 98 ; 2 + PHA ; 9AA: 48 ; 3 + JMP loop ; 9AB: 4C 1509 ; 3 +label18: + DEX ; 9AE: CA ; 2 + BNE label20 ; 9AF: D0 02 ; 4 *!* + BEQ label21 ; 9B1: F0 06 ; 4 *!* +label20: + CPX #$00 ; 9B3: E0 00 ; 2 + BEQ label22 ; 9B5: F0 04 ; 4 *!* !!! + BNE label23 ; 9B7: D0 04 ; 4 *!* +label21: + LDX LOC7 ; 9B9: A6 07 ; 3 *!* +label22: + EOR #$80 ; 9BB: 49 80 ; 2 *!* !!! +label23: + BVS label99 ; 9BD: 70 A3 ; 4 *!* + NOP ; 9BF: EA ; 2 + BVC label8 ; 9C0: 50 A3 ; 4 *!* + diff --git a/electric_duet/eduet.dsk b/electric_duet/eduet.dsk new file mode 100644 index 0000000000000000000000000000000000000000..547647185a9e106d8b3e76556d2086210ff45625 GIT binary patch literal 143360 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