From e926b394d8037eb71209cbd54a67298a98f90a4d Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 31 May 2018 11:04:33 -0400 Subject: [PATCH] duet: update samples also make duet.s relocatable --- electric_duet/Makefile | 4 ++-- electric_duet/duet.s | 12 +++++++----- electric_duet/eduet.dsk | Bin 143360 -> 143360 bytes electric_duet/hello.bas | 23 +++++++++++++++++++++++ 4 files changed, 32 insertions(+), 7 deletions(-) create mode 100644 electric_duet/hello.bas diff --git a/electric_duet/Makefile b/electric_duet/Makefile index 49caa993..89326b3c 100644 --- a/electric_duet/Makefile +++ b/electric_duet/Makefile @@ -8,14 +8,14 @@ $(DOS33): cd ../dos33fs-utils && make eduet.dsk: $(DOS33) ED HIGHWIND.ED FIGHTING.ED SA.ED KERBAL.ED - $(DOS33) -y eduet.dsk BSAVE -a 0x900 ED + $(DOS33) -y eduet.dsk BSAVE -a 0x0C00 ED $(DOS33) -y eduet.dsk BSAVE -a 0x2000 HIGHWIND.ED $(DOS33) -y eduet.dsk BSAVE -a 0x2000 FIGHTING.ED $(DOS33) -y eduet.dsk BSAVE -a 0x2000 SA.ED $(DOS33) -y eduet.dsk BSAVE -a 0x2000 KERBAL.ED ED: duet.o - ld65 -o ED duet.o -C ../linker_scripts/apple2_900.inc + ld65 -o ED duet.o -C ../linker_scripts/apple2_c00.inc duet.o: duet.s ca65 -o duet.o duet.s -l duet.lst diff --git a/electric_duet/duet.s b/electric_duet/duet.s index d4dac092..09999a95 100644 --- a/electric_duet/duet.s +++ b/electric_duet/duet.s @@ -33,6 +33,8 @@ MADDRH EQU $1F LOC4E EQU $4E LOC4F EQU $4F +STARTADDR EQU $0900 + play_ed: LDA #$01 ; 900: A9 01 ; 2 *!* STA LOC9 ; 902: 85 09 ; 3 @@ -77,23 +79,23 @@ label4: play_note: STA DURATION ; 937: 85 08 ; 3 JSR sub1 ; 939: 20 2D09 ; 6 - STX $0983 ; 93C: 8E 8309 ; 4 self-modify EOR/CMP + STX STARTADDR+$83 ; 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 + STA STARTADDR+$7C ; 947: 8D 7C09 ; 4 ; self-modify JSR sub1 ; 94A: 20 2D09 ; 6 - STX $09BB ; 94D: 8E BB09 ; 4 ; self-modify + STX STARTADDR+$BB ; 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 + STA STARTADDR+$B4 ; 958: 8D B409 ; 4 ; self-modify PLA ; 95B: 68 ; 4 TAY ; 95C: A8 ; 2 PLA ; 95D: 68 ; 4 @@ -111,7 +113,7 @@ label7: BIT $C030 ; 96C: 2C 30C0 ; 4 SPEAKER label9: STA LOC4E ; 96F: 85 4E ; 3 - BIT $C000 ; 971: 2C 00C0 ; 4 + BIT $C000 ; 971: 2C 00C0 ; 4 KEYBOARD DATA BMI label4 ; 974: 30 C0 ; 4 *!* DEY ; 976: 88 ; 2 BNE label10 ; 977: D0 02 ; 4 *!* diff --git a/electric_duet/eduet.dsk b/electric_duet/eduet.dsk index b6037670a3806c325166b99b5b184e71bde7f4df..af57daf70b7aa6a7f9171a0e7fba4b738627a6ee 100644 GIT binary patch delta 2500 zcmeHJZHQD=7(Va0=iYn1?gv{Lt2KLf){Pa`@!najFwsVLR;SkWW48jWNDz$v6cJJo zt$hd;Cc!{Ag2Er+pG6b38MS_x2)V-ARzD;v&>vQ0g{ghAFuiAH#~uA86!fDG9A?h* zzVEs3z3=n9=WIK}x1Hg;;?eiO<&>nv<2E@$dblJ1;gQndU{n|^-CxX-jl2udd@dRoxFZ@Utz0!y8d{kpPx2mw`x@{n zgdZpk^=HW|d_KYpbJ4xU^$#yE3`QfXimP##xA|sr^9jy8&c2xZ#!sZ}OJR-& zVuFk%aU7Fw@mbpb4s?18#OY~hSbUYX??mV!adsLS72l-oKfx`F1STualTtnQE%BXo zxG(OF7a#6Rdi(NZx43BS$S=D6WRfR)#FRCbCpcSL+936`|!oiB>*&Tetf z$;qkLo)yu2U0#{a?Pd}M&JBT(Wb-D#xQB#722#cv@y`SE3|ps z&<3H~oF1XaSu=uv?py^zSbgfk?pzTmN!WCQyA%zlJn8;~1 zTO#1Nx|kxFYZXnk&7>pE^QOr|rD4*g1CS`-Qb{d6Y2Ln>jvxY`BP_uXJl}9rCN(ZV@3E)8#7E z73eXqRe@ezfsMpG;Ym+d(r*!w+p|$Q4kob6K4sC!+3_Y;hm*rwE1Cx^`ENh7%tcT E0+T;oO#lD@ delta 27604 zcmeHw349aRx$hZS%V@JDZ?X+oW8oES?4~a%C212AnHZkI0xX*(v?zclm=t1?G$KvP z7|L*!1SKRX5x%dz85oW2F$qg^Zxc$nbr!%%lp8f^`YyLoOHw1qg6kRr4U6@@Gm_;M zE_U=tZ+{+X&N=g)beVsPL@DCM`+HxOo&?IW!(*D^{*7n zkR2l!zu#J8Z$-g_zuAZXK^_@+qoEy1^fnay!@--sdGO#LfKCubf{-HYA_@kDgRmpx zi#R0^^ynbJ{~*$P(ZPc+B3+f${vw205M`OJ-GdYg5m7A`p0ZeEBHCHVO{M231-f<* zLx;SyGkmU%p2J&tI#g?~4eh4a!jHb!dw(lkeMhx*H_e%T&(kY;>zp<^*cz@D!cV)N z4l_;_{DP2)?+Ufj!ItpZ&1b#gr+J9sf9MSErGqcN%Xjkc3P*$OxSF8fU&Z^KE&i>p zt^O*(8WicZ484|zh$?H9-@=D2ynie2e-ol!q(d~$(CPQTe)Qzj}--#z3F$sG4F4&25H(}3p=z{@C!flPv$!(`~92WgddKg>uYfo@2{$AX69O( zoBhVuCckEE^+RMmPuJ7*+K|*LzqNB~^G~fmZT7#$`(J~2o=$%z-Ai|S={4RD|MS?f z-yJ*l;fGsYPj$C`xQ3@2nj3gpVW;i&++=#o^Ucq1p=obDXQrFENpxs!NTeIM>GaM* zp04EzX!{pjK5b{hUvPP}Jq%thZRf$GXn(QazV{2Sg-iA?x7fqH(aKxk&xZvIXY^b0 zA+?dWTHx;uw^%rXKOd9+%Af6pfB5OA!>yLR{^j}h_GRI)%N1_3?D1P(w~Jv&=dF{uY)C`vw2bLIH78?sAH#2XT|`a`LDL{+tQ+ zG?c_;f}ak)32}uMZi@4Pb_-{AKG0_2a-0u9lZ?~|Y zin0d&P++^ekIa(o>QMDjj3v1hh zlrJK|*5=|2$Y!H>%d^LLn`?(_hu!tKizLC}Z7sL8Mq>2Gc;t22c^5*wi$^UFwIT~- z&>#ExF%gkKb&*~;_md}8&Q|1-==x(^3UZ?EZX}U@j)`g@F-~W9x6|oG0fUqhsW~$W z8VMJU&Ot$hNHs^H+pO}S+{#Twf}G><^P7qGTEVe~tIt}kXT#vY9`2`9TfYh}eT%ZOC=86;1bI(jMdt zx1zs=djw>)2q;W8y@bx6hdhjt@irPCdVp^8!4R4 z%?|-NLQm2nv=3goUSxa;IUjihB90%29QvnQ(4s{MX&C|{cpwM<*zNMFTrDcQ-K(;` zq{2m)eJA)7)JVQc3JA!^3T2Q`(>L8ffOmV8Mj}J9#coV!X>+ipxOQp?Wb2aP{_a%Cd-xxM-HinVp z8o5dSqwgN=Jo;{js-Uh4m_ zZL8pSIXAR*xBH(ChuPC&_o-7K`hnzRm+TN+qW@d; zx`TIBx|Tph(BBDkm)+%JU9MLD*2i70$Gs5V-OV3mI`MN{SqX#EwG%Li6Vy=4&|v z{rvMU(dU>j1Ft8ieJ|Y{3^qd#Gv^uJ39l@>y?!@+?%`TYXCUJK^E^BycD}xy4l`k= z9R{EVJW{mIfpG)|W$|}hGM!GJqtkhsx5BXay2BeQPZ z`gQAm`Cr6cij<-xP1}LpCU#>dcAGM&zI4x&Ji^Qj(1g`2BizSsmSj6ZbC-=E$eUrjcnttLSeOgQhL#??CLh5(Vd1vjT((6qkeS_dBrUXDSnezANvLX0_1uzAP?~{M9y*_RFwvKO>gVXG zz^C1T^zPTwJty;tY0OO~_bn#(-6r=+)7-H8+a~v|CinME?t4uF`x@u zv#o$=@W=~^zbQi5)B?&w6cKr{6_ls2h_Iz8vwgDzve1uxb0v3vKtb)D;&B%dcV)gd z>Bx_%cX9;QM+7p2O}_N9bz&}iS^V(%X~ZOApJ(zkB5xWdJj`AaQ`xhDET2A*2?-5l zDPkVbNuX!4XG8;gmijNsbKf+ATH0k^mC?}WBLkmgh(zwAQ1D{`jW`ujf0w>%7hDZ!!sMEwgcVs zcrj7%9Z1+8Kaj&RBw_S~Uhl~ewm@APt}s^D>0)A%smlzl*Oe{Y1=+*`+(}|SZiu;r zFw4Nd4gBxpL`4ZcS)dem9=<6G*-NV`iwO1%JaG-0`ZMgARh9VZYmiC(BXy@d@ct^c z+aYq4&Ro2(L)5T&ViKDxPGQ5M!1hu09NdjNr+5yP5GG9lbk01fb3A`6AuP-V_JXi! z-n@DB7aGWUY#vpfBW7~wnL@}z-AxUYNnLk=-2$}OR(^X$B)X>Bh89)S*cUCpsjJEtSRrM_f|`m&;FsTCGq-vHnk$us z8NOv4Gs=8J6yHd-?3FS7Za5UB5F3m69#FwYc9PF!q1#UY{W znfy@xTY)bJs6ts$4_n5e{rN>nifHs-9Y9TrQhOp<&NzhAJ-XtW4%~~-U#A_#_6`UU zI8@V7eA7kAtL-RW+<|Y6mr#e{V$}l-ReVo}K_PNgzoRgzz{mA`zi62+Eg%!E@Zyt+ zn*;WJ$F|Y^}w}KtlC8cbgQ5<5`f+g`!j{1LKq#3 zDnl293x{*J6$^#F)@?w@XjsA)hVnvrLY^;an-R`1Z>GQ$e)6C2W-t0AL3+nuSoK!m zH$DF%rm=aB{ctNnK?M#ZZ;~TLlL9H5lt|U2DwMa$3l(jOLS>t>P}Qcg$pdnmBA~D- z14^4Jpt4m}lrOG`z8T7?1?BTAW}*I#l-ps2f;YPz)=jX=LohQh4O=L*47PA@Z?9Yl zs~rRkCM~i+v_%&2H#MOVG5ahs3T=WP#2gAD?H^!S3YoMrDI-En!(;a07z!N7q)0Fz z#(#B;ip=U$fG zs8KwpTWy%7NKnWX3WZXkQjiL@LZi?sbPBy9QIRA^azZYXC&=Y;gT9g;^wp^t@+ec6Ft7~XSXK9vXarm%Rqf4Gx|F2sg}6B+egY?pAHEfYRI{O5pL zD9flnUeDm;F1AGYb4G)@P1Lkg&*cao4Nmh>JsiS3Dw;&-@>zQ1I9ce=p^y;r$peCL zVs03wGwca?I@mwMu-hdn*%J`{NHns?se24CPJV$=q?#U-F=Zmn?HN=vw%XJUbWqL;1kp% zS2w{c_D|I5%P^HVeYvxP4E#w{LCpW^H_?%NOen7W$HjWG^Puh z?_gK3tJy~O2kaX50ro-mN9?2QV=xk|5M}HWaADUoViWrabz7?NSdZ+;W7G;t_^Yoj zkOIAI+@?R$b)+k_9%7-S$9#(eX+WO5PaEnAbsfRvZF1=A$9(0G9^URfDqP{KHYHqq z$B`92YrrTt3^8H?>j|DpuGfYR5*)ti!`UZ1RpET!^==*`51e5Eo{%NYzGGV>phyxmzi{D>j z23(4_;Zi)5w>maxm6FkLJ z2}-{*bx`X(cTOd4WbhK80oq`|ZR=`K4{qC4+H8AR_)$;f%pQs6h8aIzZ%Ajg^9pBs zoV|3!VVf1p`?zD2%;G4S@p>nTy%cf`?W`)4EUaf4n8<20Ge05S9jU@2>;^H+ZiM?n zTAg~< zF@Z)*pb-;j!~_~KfkylTq7k79G~(|Zjp#K;&H% zMBo|wV?ggmA~r;j2w9=oIRhJ79caLkxGoM>}G;!^%Op!v<;u?tohm!yTlC zSV+Jf@Pg)3Pswz`lsK$<3^SA#VjyG`n4xeG%y2_L%y5I*BTOf9>c5Ph2gVXMP}FbD zBe4Vw9sB_n)nbmr*AFGkj2>esp%~(S9XTEqN`P*WpoGGHDB*^FsNe?k5GVoKBtZ#~ zFajk&!U*^Pfx%G14bqtcHZlTAfVw0op>Q-P0U{+R0elHcz=;N+1bkJ0b~Pwr12qgv zcyLrG;Y+C(BT&L5<-bcEGdhfLf{MZjzco`~V4!nUq{QJc0+gs3fDxpl7>pog{T~G* ztTR(jL>M(WnXa0Lue|n75zkUpy{`EsS{SRM( z)6WcH^{>aQesG4e`iFA*aqnYJ|1RA5W90OIKn>^gGci^_E*G=&dzQWr^%x3BWF5o0?F| z)OvNII*CLiLCVMkQcfyJC8;7wQcY?|EvX~*WFncQLMlQfQzfY6Duqg^QmIIlTBT8G zRXUYkm8gm`=Wmjj^S$ui8Uu6ww>Y`Pod2!)ip+Uw0FefSu`uVqb#2V~Z(T3ueDoa; z-eBf@rZgN<>vCYG0WO|e!F~px?I7lS9&m&&QR1v&%=wc4Kg@YtH!$aW&0}EB8-WQM zyR{&omdC`iWol&%57MYfwOXxFYt=fSefBbOV_41%V(P1|H&Y*Y`ph*k_4UI!)f*!0 z?>wOQGxeqU;#HXX86%ncz|+tD3QYZPGeM|-2tz;GuB)^+%FxF%@YB)U5<@?lGwljz zS~G~DkMmx}d6xo~FgWv+D`fu35QctqVts84{peI=I71(1@mFQ&4;lZy0z;pX82ZCS zK+w2Hov{u&jO;7p#Y0A&u?{-7d=XZkvi%l9ce)(6h?$UAI-)2EJ;fw!V!t7XakQmfAS__C8ds?m-UzAVZ1D6Kx`G4i+Nd6xxmW`CtnLM zDHGURG3AH8B-)uyA=-;$X!XSWLgLDwbBpIV5T2M0{$%Bi)!Xny_*|^{PD5 ztFTD7r$puVfkny;;*mz_iYq$V|qJ0;XS# zPY;}e^b`=_8!E;(#~2gi8!E;3>(s9x#fR$#0nGP}6mvWiT69ffe3BF&Xy!zu_;Qj* zk>b181RXI_itk?26{Yx?YZv3YvJ_u!rX;47*j%2tR zu;9PfW*RESHwnb}df`&skRplkmE;VF@eP&Y>&?PaeBky=@j(!z_;@%^DcIp; zqbk_tXM%zqm5HSbahf3tcHhjD6zobeaq}|jZyusxH#@Um!R{6u8b!gbDRY~oVAql9 zp5r-}M|@jn$c*XNb$D*hCvw!WG@kl=;vs!cW)#mppV|G1CzMZ2XTF!^UXkVAl;wUh z3v}olS#CPZ&1Siu$^zxOHCgV5v)tQpL}Qlwku3L)tl`RaFJ$%W(Y=@zRjzBz8c?p= z*-sQ=>3)$ls&d^$;{E4~2xzmXpomzQT9PwDt?u`ptwqG$nWwTrtM0gQ07Z^!)yD` zbGZH(iY+xGhGM@bq1gJNl`ou5h)s=g}c>yua zaTODVw?MiGSPkhSU^N5=gVitekDDXF>g}G-i;2nU+f$&C!`0rld$LOi3L0}Oc;CZG zh9cFQuZC3bNFIh%A5R&q^hUwk+7EB*loWWKS9N-RT|!JIT0F-}h=LKSZsFu8Mh(L- zjDLVpN6PBQsB@sK`yyrKro>d;pyb??7)C8+{rkkIB_2M#oTg#NztrUrmi`eM4%>ls z|BXdW+nSnepnxKeu>Gs=iU(P+R)z(PrX5kL+G z58^F|HEqzo{gB|~JYAv=>qbL2P)Bc3|T*V;q~h z*)?F$qbV!yLR&680eXBeHR)q7Mb<-M@ERDBy*v)vK5-MKXU1pSCvK*FnDN>6iJNI3 zW_-4N;%3^18J}&RxS950B6fbpYTGAnrhS<4+4hN>X&+{MwteDe+J_mRZJ)TA_F=|n z+b3?OeVFmt_KBNmA7*^Eed1=?hZ&!3pSYR!Va8|MCvK*Fz(~?~Z2QE`v=1{r+dh1} zO#7r=$+l0Q{1-ujsFHtMjwpx2L4krU{zDi$*mqDi1bW}M!7<+PY!*ot3nL+LN6vI- zR$44H{Fl?PFSpS7uuBAs#f}JLxplT>HtZ3taWHjQGe}B|q7ELEs-dvqLzuwM%#tm- z!iJXxw3)WRiXne_K5c6{lIsNTMUx%yWu6%SjW{8J*xcP4Ju~Ls0Gs zo)b19wZk*Pa~fo7X@ckUHJMksZo+k=%GNPsGR9(vyDgT2Yc$64_aIz%S3C_K$0jil zNQxSi!7Q|-gd};AB1xHq*=ks5SgV+qq)yT#X_ItG`lQ69q(qcRB+3#K66J}CL}j8X zkxW!4Y7(`HxvY&y4cL~MV98zGw#+|1 zOYZ9w;b2Bs9=pCG9Lx~QW7l7VgBfIR?CTKWV1}x>U3U=iTg(n#s-WqasTMS*nklx z?jJoE8!*De{i6qC14fv*fAnB%zz7rfj~sdN4L%1nz$X98QqM zkJm>J#s-Wq@I`_6e)M2$zzBSzAc5BAan|pgwSy);JdGcA+w%H_mpN6W`grnXA^nKbea4e-#gE3%$!8ZkSR&#d*>IP zkFtqLav8E{JbyBS$YC&>m_a0abY_AAYL47f22@>+Qr_u1+WCKd|MBJ?&o|6Onp}Z$ zw4SmlM7Ek!A`2mZ|1~LMlIK-3k!MLIiU;XQ1^N}rCN=0+mO1tXRL$J^6^kt>mrMoncgbuZS5#HpUbATK?UdDCQA5>L zFZ$mWWF-qB9=7TQqzOVlCNm&qWlfE3R%vNnUEK_8MLAeNpRu5#rnIi2ytbkg?8;(m zvZXb1YAuLeLS~|0&H5F3S*qdAYCASHJG*>#)tyvb`GOj%rW)+5Q#F+p)ST)nu)02X v!5yhj~dEdWl ";: INPUT A + 130 IF A < 0 OR A > 4 THEN GOTO 120 + 140 ON A GOTO 200,210,220,230 + 200 PRINT CHR$ (4)"BLOAD SA.ED,A$2000" + 205 GOTO 1000 + 210 PRINT CHR$ (4)"BLOAD FIGHTING.ED,A$2000" + 215 GOTO 1000 + 220 PRINT CHR$ (4)"BLOAD HIGHWIND.ED,A$2000" + 225 GOTO 1000 + 230 PRINT CHR$ (4)"BLOAD KERBAL.ED,A$2000" + 235 GOTO 1000 +1000 POKE 30,0: POKE 31,32 +1010 CALL 256*12 +1020 GOTO 2