From c390792a038b9dda8b6650036aa21e072def7a05 Mon Sep 17 00:00:00 2001 From: cybernesto Date: Sun, 22 Oct 2017 18:46:06 +0200 Subject: [PATCH] Electric Duet player sources - electricduet.asm is the original source code published by Paul Lutus. - PLAYER.ED.S is a commented source in french written by Deckard - MOCKINGDUET.S is an ED player for a Mockingboard installed on Slot 4. - CRICKETDUET.S is an ED player for an Apple //c with a Cricket! from Street Electronics. --- README.md | 20 ++ dsk/Electric Duet (clean crack).dsk | Bin 0 -> 143360 bytes ...usic Disk for Mockingboard and Cricket.dsk | Bin 0 -> 143360 bytes src/CRICKETDUET.S | 128 +++++++++ src/MOCKINGDUET.S | 137 +++++++++ src/PLAYER.ED.S | 264 ++++++++++++++++++ src/electricduet.asm | 129 +++++++++ 7 files changed, 678 insertions(+) create mode 100644 README.md create mode 100644 dsk/Electric Duet (clean crack).dsk create mode 100755 dsk/The Music Disk for Mockingboard and Cricket.dsk create mode 100644 src/CRICKETDUET.S create mode 100644 src/MOCKINGDUET.S create mode 100644 src/PLAYER.ED.S create mode 100644 src/electricduet.asm diff --git a/README.md b/README.md new file mode 100644 index 0000000..4862f1a --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# electric-mock +## Apple II Electric Duet player for the Mockingboard and the Cricket! + +*Electric Duet* is probably the most popular music format in the Apple II world. +Unfortunately the sound quality of the internal speaker of the Apple II does not do much justice to the songs written with ED. On certain Apple II models like the //c the sound circuitry does not cut off the modulation frequency very well producing a high pitched background noise. + +This motivated me to write my own routines to play ED songs using a sound card to produce pure tones with much higher quality. I chose the Cricket! because I own one and there is not much software compatible with it. A Mockingboard ED Player is also included for the expandable Apple IIs with a Mockingboard Sound, A or C on Slot 4. + +I wanted to keep the player as small as the original one so that it could be handled the same way. This limited a bit the amount of code that I could use, so even though the Cricket! version is able to play in stereo, the Mockingboard version is not. + +A compromise was done for the frequency calculation where only a simple factor is used. A frequency table would have provided more accurate notes, but it would have made the player way bigger, so that it could not be used as a direct replacement. + +The src directory includes the original assembly code as made available by [Paul Lutus](https://arachnoid.com/electric_duet/index.html), as well as the commented source in french written by [Deckard](http://boutillon.free.fr). Also a clean crack of the Electric Duet disk including tools for composing original scores is in the dsk directory. + +The CRICKETDUET.S and MOCKINGDUET.S sources were assembled with Merlin. The binaries are available in *The Music Disk* image which also includes some classical pieces put together with a nice menu system written by Walt Marcinko Jr. + + + + + diff --git a/dsk/Electric Duet (clean crack).dsk b/dsk/Electric Duet (clean crack).dsk new file mode 100644 index 0000000000000000000000000000000000000000..9714be9e1744cea3c631c72c5c7a0f39fe0db378 GIT binary patch literal 143360 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 +* JSR PLAYER_ED +* +* ED_TBL DA adresse datas musique +* DFB flag interruption [0=oui,1=non] +* DA adresse interruption (0 si non inter) +* DA liste des touches autoris{es en sortie +* DFB flag inter clavier [0=temporaire,1=fin] +* DA adresse sortie key temporaire +* DFB arrete @ la fin du morceau [0=oui,1=non] +* +* Au retour d'une sortie par touche: +* carry=0 -> reprise +* carry=1 -> force sortie d{finitive +* +* Utilisation page 0: +* $06/$07/$08/$09/$1D/$1E/$1F/$4E/$4F + +******************************** + +PLAYER_ED ENT + STA $06 ; sauve pointeur table + STY $07 + +* Lecture table + + LDY #10 ; place en pile 11 octets table +:1 LDA ($06),Y + PHA + DEY + BPL :1 + + PLA + STA ED_DATA ; adr datas low + PLA + STA ED_DATA+1 ; adr datas high + PLA + STA ED_FLAG ; flag interruption + PLA + STA ED_INTER+1 ; adr low inter + PLA + STA ED_INTER+2 ; adr high inter + PLA + STA ED_KEYL+1 ; adr low liste touches + PLA + STA ED_KEYL+2 ; adr high liste touches + PLA + STA ED_FLAGK ; flag interruption clavier + PLA + STA ED_INTERK+1 ; adr low inter clavier + PLA + STA ED_INTERK+2 ; adr high inter clavier + PLA + STA ED_AGAIN+1 ; recommence du d{but ou arrete + + +* Player + +ED_M LDA ED_DATA + STA $1E + LDA ED_DATA+1 + STA $1F + + LDA #1 + STA $09 + STA $1D + + PHA + PHA + PHA + BNE H0A2B + +H0A16 INY + LDA ($1E),Y + STA $09 + INY + LDA ($1E),Y + STA $1D + +H0A20 LDA $1E + CLC + ADC #$03 + STA $1E + BCC H0A2B + INC $1F + +H0A2B LDY #$00 + LDA ($1E),Y + CMP #$01 + BEQ H0A16 + BCS H0A45 + + PLA + PLA + PLA +ED_AGAIN LDA #$FF ; [0=fin,1=recommence] + BNE ED_M ; reprise du d{but + RTS ; fin + +H0A38 LDX #$49 + INY + LDA ($1E),Y + BNE :1 + LDX #$C9 +:1 RTS + +H0A45 STA $08 + JSR H0A38 + STX H0A94 + STA $06 + LDX $09 +:1 LSR + DEX + BNE :1 + STA H0A8C+1 + JSR H0A38 + STX H0ACC + STA $07 + LDX $1D +:2 LSR + DEX + BNE :2 + STA H0AC4+1 + +******************************** + +* Interruption par JSR autoris{e ici + + LDA ED_FLAG + BNE ED_NOINTER + +ED_INTER JSR $FFFF ; adr interruption + +******************************** + +ED_NOINTER PLA + TAY + PLA + TAX + PLA + BNE H0A76 + +H0A73 BIT $C030 +H0A76 CMP #0 + BMI H0A7D + NOP + BPL H0A80 + +H0A7D BIT $C030 + +H0A80 STA $4E + BIT $C000 + BPL NOKEY + + JSR ED_KEY ; test touche autoris{e + BCS NOKEY ; non. Pas de prise en compte + + LDA ED_FLAGK ; arret d{finitif? + BNE ED_FIN ; oui + + STX ED_X ; sauve registres + STY ED_Y + LDA ED_KEYINTER ; touche enfonc{e + +ED_INTERK JSR $FFFF ; interruption touche + BCS ED_FIN ; the end (forc{) + + LDX ED_X + LDY ED_Y + JMP NOKEY ; reprise comme si de rien n'{tait + +ED_FIN RTS + +NOKEY DEY + BNE H0A8C + BEQ H0A92 + +H0A8C CPY #$36 + BEQ H0A94 + BNE H0A96 + +H0A92 LDY $06 +H0A94 EOR #$40 +H0A96 BIT $4E + BVC H0AA1 + BVS H0A9C +H0A9C BPL H0AA7 + NOP + BMI H0AAA +H0AA1 NOP + BMI H0AA7 + NOP + BPL H0AAA + +H0AA7 CMP $C030 +H0AAA DEC $4F + BNE H0ABF + DEC $08 + BNE H0ABF + BVC H0AB7 + BIT $C030 +H0AB7 PHA + TXA + PHA + TYA + PHA + JMP H0A20 + +H0ABF DEX + BNE H0AC4 + BEQ H0ACA + +H0AC4 CPX #$0C + BEQ H0ACC + BNE H0ACE + +H0ACA LDX $07 +H0ACC EOR #$80 +H0ACE BVS H0A73 + NOP + BVC H0A76 + RTS + +* Test autorisation touche + +ED_KEY STY ED_Y ; sauve Y + LDY #0 +ED_KEYL LDA $FFFF,Y + BEQ :1 ; fin des touches autoris{es + CMP $C000 + BEQ :2 ; found! + INY ; next + BNE ED_KEYL + +:2 STA ED_KEYINTER + CLC + DFB $24 ; bit + +:1 SEC ; bad key + BIT $C010 + LDY ED_Y + RTS + +******************************** + +ED_FLAG DFB 0 ; flag interruption +ED_FLAGK DFB 0 ; flag interruption clavier +ED_KEYINTER DFB 0 ; touche ayant provoqu{e l'inter +ED_DATA DFB 0,0 ; adr datas +ED_Y DFB 0 ; sauvegarde registre Y +ED_X DFB 0 ; sauvegarde registre X diff --git a/src/electricduet.asm b/src/electricduet.asm new file mode 100644 index 0000000..0a43f6f --- /dev/null +++ b/src/electricduet.asm @@ -0,0 +1,129 @@ +/*************************************************************************** + * 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 */ + +$0900> A9 01: LDA #$01 ; 2 *!* +$0902> 85 09: STA $09 ; 3 +$0904> 85 1D: STA $1D ; 3 +$0906> 48: PHA ; 3 +$0907> 48: PHA ; 3 +$0908> 48: PHA ; 3 +$0909> D0 15: BNE $0920 ; 4 *!* +$090B> C8: INY ; 2 +$090C> B1 1E: LDA ($1E),Y ; 5 *!* +$090E> 85 09: STA $09 ; 3 +$0910> C8: INY ; 2 +$0911> B1 1E: LDA ($1E),Y ; 5 *!* +$0913> 85 1D: STA $1D ; 3 +$0915> A5 1E: LDA $1E ; 3 *!* +$0917> 18: CLC ; 2 +$0918> 69 03: ADC #$03 ; 2 *!* +$091A> 85 1E: STA $1E ; 3 +$091C> 90 02: BCC $0920 ; 4 *!* +$091E> E6 1F: INC $1F ; 5 +$0920> A0 00: LDY #$00 ; 2 *!* +$0922> B1 1E: LDA ($1E),Y ; 5 *!* +$0924> C9 01: CMP #$01 ; 2 +$0926> F0 E3: BEQ $090B ; 4 *!* +$0928> B0 0D: BCS $0937 ; 4 *!* +$092A> 68: PLA ; 4 +$092B> 68: PLA ; 4 +$092C> 68: PLA ; 4 +$092D> A2 49: LDX #$49 ; 2 *!* +$092F> C8: INY ; 2 +$0930> B1 1E: LDA ($1E),Y ; 5 *!* +$0932> D0 02: BNE $0936 ; 4 *!* +$0934> A2 C9: LDX #$c9 ; 2 *!* +$0936> 60: RTS ; 6 +$0937> 85 08: STA $08 ; 3 +$0939> 20 2D09: JSR $092D ; 6 +$093C> 8E 8309: STX $0983 ; 4 +$093F> 85 06: STA $06 ; 3 +$0941> A6 09: LDX $09 ; 3 *!* +$0943> 4A: LSR A ; 2 +$0944> CA: DEX ; 2 +$0945> D0 FC: BNE $0943 ; 4 *!* +$0947> 8D 7C09: STA $097C ; 4 +$094A> 20 2D09: JSR $092D ; 6 +$094D> 8E BB09: STX $09BB ; 4 +$0950> 85 07: STA $07 ; 3 +$0952> A6 1D: LDX $1D ; 3 *!* +$0954> 4A: LSR A ; 2 +$0955> CA: DEX ; 2 +$0956> D0 FC: BNE $0954 ; 4 *!* +$0958> 8D B409: STA $09B4 ; 4 +$095B> 68: PLA ; 4 +$095C> A8: TAY ; 2 +$095D> 68: PLA ; 4 +$095E> AA: TAX ; 2 +$095F> 68: PLA ; 4 +$0960> D0 03: BNE $0965 ; 4 *!* +$0962> 2C 30C0: BIT $C030 ; 4 +$0965> C9 00: CMP #$00 ; 2 +$0967> 30 03: BMI $096C ; 4 *!* +$0969> EA: NOP ; 2 +$096A> 10 03: BPL $096F ; 4 *!* +$096C> 2C 30C0: BIT $C030 ; 4 +$096F> 85 4E: STA $4E ; 3 +$0971> 2C 00C0: BIT $C000 ; 4 +$0974> 30 C0: BMI $0936 ; 4 *!* +$0976> 88: DEY ; 2 +$0977> D0 02: BNE $097B ; 4 *!* +$0979> F0 06: BEQ $0981 ; 4 *!* +$097B> C0 00: CPY #$00 ; 2 +$097D> F0 04: BEQ $0983 ; 4 *!* +$097F> D0 04: BNE $0985 ; 4 *!* +$0981> A4 06: LDY $06 ; 3 *!* +$0983> 49 40: EOR #$40 ; 2 *!* +$0985> 24 4E: BIT $4E ; 3 +$0987> 50 07: BVC $0990 ; 4 *!* +$0989> 70 00: BVS $098B ; 4 *!* +$098B> 10 09: BPL $0996 ; 4 *!* +$098D> EA: NOP ; 2 +$098E> 30 09: BMI $0999 ; 4 *!* +$0990> EA: NOP ; 2 +$0991> 30 03: BMI $0996 ; 4 *!* +$0993> EA: NOP ; 2 +$0994> 10 03: BPL $0999 ; 4 *!* +$0996> CD 30C0: CMP $C030 ; 4 +$0999> C6 4F: DEC $4F ; 5 +$099B> D0 11: BNE $09AE ; 4 *!* +$099D> C6 08: DEC $08 ; 5 +$099F> D0 0D: BNE $09AE ; 4 *!* +$09A1> 50 03: BVC $09A6 ; 4 *!* +$09A3> 2C 30C0: BIT $C030 ; 4 +$09A6> 48: PHA ; 3 +$09A7> 8A: TXA ; 2 +$09A8> 48: PHA ; 3 +$09A9> 98: TYA ; 2 +$09AA> 48: PHA ; 3 +$09AB> 4C 1509: JMP $0915 ; 3 +$09AE> CA: DEX ; 2 +$09AF> D0 02: BNE $09B3 ; 4 *!* +$09B1> F0 06: BEQ $09B9 ; 4 *!* +$09B3> E0 00: CPX #$00 ; 2 +$09B5> F0 04: BEQ $09BB ; 4 *!* +$09B7> D0 04: BNE $09BD ; 4 *!* +$09B9> A6 07: LDX $07 ; 3 *!* +$09BB> 49 80: EOR #$80 ; 2 *!* +$09BD> 70 A3: BVS $0962 ; 4 *!* +$09BF> EA: NOP ; 2 +$09C0> 50 A3: BVC $0965 ; 4 *!* \ No newline at end of file