From 341b38f0123d01addbd1490fa4a386605b318993 Mon Sep 17 00:00:00 2001 From: Curtis F Kaylor Date: Sat, 3 Mar 2018 13:26:47 -0500 Subject: [PATCH] Add/update Apple ][ test programs --- apple2/a2chars.c02 | 24 ++++++++++++++++++++++++ apple2/a2echo.c02 | 18 ++++++++++++++++++ apple2/a2keys.c02 | 16 ++++++++++++++++ apple2/a2test.dsk | Bin 143360 -> 0 bytes apple2/c02.bat | 18 ++++++++++-------- 5 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 apple2/a2chars.c02 create mode 100644 apple2/a2echo.c02 create mode 100644 apple2/a2keys.c02 delete mode 100644 apple2/a2test.dsk diff --git a/apple2/a2chars.c02 b/apple2/a2chars.c02 new file mode 100644 index 0000000..0ed85a2 --- /dev/null +++ b/apple2/a2chars.c02 @@ -0,0 +1,24 @@ +/* C02 Apple II Test Program */ + +#include + +char h,i; + +main: + prchr(' '); + for (i=0; i<16; i++) + prhex(i); + h=0; i=0; + do { + if (!i&15) { + newlin(); + prhex(h); + h++; + prchr(' '); + } + if (i&$F0==$80) echo($A0); + else echo(i); + i++; + } while(i); +goto exit; + diff --git a/apple2/a2echo.c02 b/apple2/a2echo.c02 new file mode 100644 index 0000000..90c5de2 --- /dev/null +++ b/apple2/a2echo.c02 @@ -0,0 +1,18 @@ +/* C02 Apple II Test Program */ + +#include + +char c; + +main: + +loop: + c = plkey(); + if (!c) goto loop; + newlin(); + prbyte(c); + prchr(' '); + echo(c); + prchr(' '); + prchr(c); + goto loop; diff --git a/apple2/a2keys.c02 b/apple2/a2keys.c02 new file mode 100644 index 0000000..94db8b7 --- /dev/null +++ b/apple2/a2keys.c02 @@ -0,0 +1,16 @@ +/* C02 Apple II Test Program */ + +#include + +char c; + +main: + +loop: + c = getkey(); + if (c=$1B) goto exit; + newlin(); + prbyte(c); + prchr(' '); + prchr(c); + goto loop; diff --git a/apple2/a2test.dsk b/apple2/a2test.dsk deleted file mode 100644 index 5877c325bba2b69af97c037d09f29128901fafd8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143360 zcmeI&3wRVoo&fNkC!I+klc+eNU;!FJcxBgDWIaei5(jJ^qT*u_+6Owaps29Nd3Vb0 zGF;@+xnW&}xDIJ1nIzp#PiB}jLm)!}B$xyU%}Yg5<4Q0D2#qKpNOJ$0fbQOR?)SO( zeRsDX|6$V8U0qdO_3P@Y>TV4F5iJRt!#`>Yd=eVm6Q$Yi2@a))UD(SCJ#4U-&Acu) zm399^TQ3Wt?h$Q0Y{jSr6PWHE7QW>59`Z&H8FvxFF0oAi#DsnplVL!TjkTJM$xiZg zWym5iRjaaH+`bCssH!C@M^w$!)}gi?QQMBH+^a$IhcLILf|U7`Znes$oKoeC=L|M? z?wXEV;fT8O7$bD3p%3^515JLHa#q!Uu545FF`mJaLQZ?1TgH+dp-@`7$3kX?7g@;5 zVLgGAgvmwk#u-P*Id6!Ct&oX(E5Nk|xECU2;=Vom_B9FrCNRu~gyLh-;&V~SAe@g1 zT~VbyDtsQ5jKYbiWEM_F17Ai9i%!$sUq@F`Az5O)=gr=wX7WbV*ZX$y@hGkS>pk3Z zukvLy>*Q&g9@d1@(Kbl;eMYeMHAIc?>e=9UE&(D)Hi(;b%pmk`fJ4Dfo{4{yj%eUW zl&I0b$!MXypP1a$)pjCUbdu)S_IXtMjAxe;CKfWKJNWc0Ua3=QW{jXmm2cI_y~6P* zPswwewTnD+qtSL_XO!7s;0-;D;bN4DGK}$f4{v}&8BTr3_!!Yx7@ja?0#ir-N|?=^ z?Xx^5easrI)Avw}sT(=b%ha{nzu~i1j3{1ejR_60;)cwBQJ6Y+n$+w4kA}fT4Ng~= zXm+|t?Z!gwymXLk+$hO(p}=B|I7>6tGIfvkZkA&sH&u-ALJma@h1zj{TGyjYJTSP_ z+80{OY;M-N`r?tz8>LUb&+0f`>xBgz9g_17rwfw6v3Zg4&1%iO2ubHKbs6+;)r988 zH0?Mql0y9nh-|+&`Jnc7SA4BS*1i&F^{pz}ml9LBJgtsKd6d~yo>s!tY2AMr00ruf zM>xc6(yr-C_^D>QlAAs|ixd4S<3-z1a+r8B6 zu{_t)w$$8|<}v!yT9QJBsw~o7Tbr_pFq`}%9OQIu?O?ioG)>zMKMu%Xq$$HPN{%gS zs2Ih|qS!@0N2h7VqxV8n)O6mEnSKiyGWaI?Su{Fr*v*&M-&+0lAH8c!D=Oa&D8cIW zks5VFw06_xy4aTbox9ui?0^4*Lmz#7_>)gR>p1%5v99AMPIjOA>de>QoIUsLg^S-^ z>ggp_70So;c8g>rLKs@>$MwQT^~$CQcghP}C%r?-Z5LO z;yPbhxxXJd(ADaH}1M=@DOe9 zzMBsmBtt(OHvE=b(?+DXfBvU0j*QG0)j4|1*m0RZ`?-Glw%hNx^RBG(caQ(YJ^wIa zqQQ29ks;|uhs}1kEx|l$7(2*jWLb0KFxJd68LXWQGBQRs#l{-bQw(-#k0Va?ii z6vyRgaF{{k$B#E=j31vmsP90Ikz-Tgn=yRo*o+ZF$Fhd3k?F(7jfpSV(abg1kG8Ly z#~OYsvQLg2)iLUplt3YIr6&?{&FI&M+J`b#!?KsT5)ACnyph9LG2eP*WutWtAwHo!1le8(U$|yrtE*7c zp_@2Z2i*iL-hzcchcwpt^XOtCUF78F7Fbai_Tj` zbJ2OTXb3xHF?p|3zj37#R$b0jPB@6j#)@dUwX@K_x#YgX#si%$r>pq9h3+#IYTaz? z^#;)zc9z`9G&k6^v!W?{kNaNH7bRccimgqSy~E z&O+@%@VrGdhn?iHE$LcH`Mvi3^x~vf=eeWzYG=fxuv34m#jHOvpADG^vr)_}T55qb zB(K(UOWRV5{R~{+PKhUPZfQGj)ze`JJ8za4$j$|STwSbu>@Mg^ZlbZ)KqOb&d9&7` zx4NY4bk4a&zniPx0ws1j{o}*|tDG*KZ5pSWC8B*UTEfn%+Ku&1W3<)jo}0+wjclkm z-N&p*BilAY2^_a%iTzhOxqkIL$=K-8C3~pb37GfHcX?PF`PG(bOU=AHgA{M6U24AN zj!aYSd9$$8?9YI8OUZe&-BhyF%!#$}F}8|#QnC5Z+yU`jwm*-;)8e^vB-uSdoCQ5% zUP zWw>X*!()QFuW-f+8(`RUPZXDF#_|F(t1k2_s7mOWqZ9oTTkM__V)F8d@ytr9>I>}` zAj-eh_kCgXD}+oT_u>9A`gM}MslZ=w%-}9)v4m2xc)G&^hxFV8rRa;7=pWOPti=P1 zXyEZIzI;q=Rek0sQZHn`W1_v)pQqXU1#sYw9R)iI9DMJ8`TWYNxr5B|o z@*6TQGv3W=*V>fQVWneB?=R&`7nM%)r~kBN@4-S(GPb-73tLxn=8kuHFkb1KcH|FBsD0Ex$$LSEbY9 zn8TnzQo10Ep=oEzHaV8!b;j&or!rgS`}P<8Qr^_rS^TK% zGsPZ|-@LQcex46TAv11iX%G&_w$$rOnr_oa_>9Ff<=yLL?S@uZX)S(S4n8h>8Dl4` zwFuf0Zg(mC{Hu?Fyw94=QFBaLK}1c5Qa0Und3Y|Sd!HKRnv%#rnE zTJfe*s2J1=_Cl)Qqw?EO*}yMlIA#{V;7&#oxTaFEw`i{1T=b;eJy-TIY%HF!W}tN; z&cKFt zF4lOzsdwVlcva*L>6qbz|R?LNA*f$lWgCqgFTJ(5_mScWl;7naCU65TU` z)UFHNT%}##o)Wr-#%F1$wVe&Mc@kG@tYn0;L8$?Do-8bug=b`8fh;VP$>Dk>UVrUo zsNT8YTv?eX54K5<+a&Fc;8U{xYZxa$NIUGaeUc5eY}L-|8)8$W%zOJoPV=BqJT23M z`;@0;o2|-Upe6Y84m~7!iu?tK9+5nW+V5cdVaa3EzEPf%wLh$x0+C9dmHl}o&&XV- z=#-ZA<>VUqT7M|nVp%(;zeAR-<9=5P+9bFRt};1xGc@8MUMCL?5Y8MlGHbjM26*au z0kqD+04)wI*`!h!I{Lc{z@BX>*Y8Q^+Sb9kX06Ec!)TdxER;F4#TFV&de+U$gPZnw z1y!&L-<9+7+<9x}6}SsLd$M?IURnX4PETMHP14PE>gIG6jf*!xdj^}hC5gW zk073sl?Ae9Qx?i_ff?ZB!X{0+P==(W%LgaM#5GsAbNqSkY%-~mOsgb=D&dR>n^g|( zzGzd^Z>5i9#*^>j$EdD^oM?IDMT7Y8m;&NHw~727_K>$Lbvvo9)Xx&RQa?@83@qcN zgfa8vmIUZY7*R44zD#*p4!k6j_A)3)U_pE(9>VpOaSO`C*NQ%_FZ!q+s!##Z50;Tv z%4q`}Y0#|2FUdtO%McKJNe;X$b1#;Y$IIaAUht9({kl&4@7qn>t_rwgQs6sx=j_fQxv+dQH5&9gTbBCD&WjPVrlpoc*>+hN?Mk5C`7m%it3p6th{EPt7&m) zkvrs`zoL4@a~02)y9ksW3eJ0>O!0VGe(oeM%l@e+pO8KIRgL#~vh@kecdlqH-mVrk zs+_G{v3a2kN}`t*fT1Nc3R_j^>7kgH%cDFYLwJ?K%dm%sQw$orp;Uw5A})SXo&qOf zt=~5|wnX;6A;aLrz2fI-X-%|my`~&mCN0z>UjG#LF8_V*-3w-U$-pbYus-j7_igSE zxqTlfJzIoR5$^E2T_nvP@4V@y39AMeK9gwBz|iu%?2V~# zV0e_ZnY!{)Hna}iqC7*}Xb<#3N`EidN{O_=uP&3U@T=6Tu!D~e*ZNqf`UY7XLRO2u zgjiJeE|y`ihd?;)-g1e+kPiK>0s1xwi^?#x?q=Hc0m8Bd`fC+_Lw|Yt^l-W?)X2&V zSx{wY>d>gQ0pAzlPpj&7@1%^W=Z>6ND3nrH}_pQ95+A6IO*9K zQ1R zn*;~b{tq(;fa+Hp zpipp@h_Mpd1JorrTb4{A(}KsmFg1cQ%UQ>49;+;cA>K;z#U-w}^dt}GP^ecGmn<}> z%6!@a6?jSqEw&$RvHomfy6n#pX2`raxOR!WD!UM-7~+s{c8R1mH>7E2;lW(d{c_Pv z+9g6q{rgJpSpwpD28(R6Pa7oxkzNTC06{1z}S&)T0TQPV6 z?_nAG&3N}F4$1Oo9~-kO+v(3a#x$?WmRns;_*wbGYV*of*=;Z)UN5_{j-^4k6COXq zk2}ZZ&gMEQof6%GFV#(Sxfi<^x!fJB0^i#q4$8saU-3yZFh|CLiFY=QKW$GplLlLv53sIg{J+ z^11v6o4Dzdc0M$XE+=u*A84AHpVOHCNdESRXHI^wX~y&iCO$6 zoS8o@XKK@=oCkBb>F-UQ-ZpJIEN09sn>?*-YR)4Clezr;1={3k2Xg6wa_JFs;c&C^ zXHG6S#0*^|E?NhFea%UFhG%nYnEL;s1q2>%wn z-?)F*zHM8#x9rI#cGhe(G>9ICfoIK(5&rtYUvDqN^uBiauXl9nMrffhjf2VDj6ngo zh-NmJ_1hXO+U%C)`U5ai9M%T&#KClyI%QRQW&zA&J7bKY>vL7Vblxy8WLXgAkTYg;v9-aS>WbXp zE_KDEz)>}8QA#*h{|x4kP$Zc2!i|JO%I<$q6%ML!S**&Pd}S^x*~w$?!Uzwu@hKIH z2ExwCf}Y&{m<+k-g`rwcCHI@P+@{hoYZykqbmJwH>Fb1aA%S5`43lV$b69~Q{vph^ zJ$nv_f8)or95Tsfwrbk0ru}<%9O#U0j%==B8eWYIeb*9rIPgLsLs_kK2fhj19Y|4x z;PuL@kyj(H2i^><2>d=k*JFW}z^1?sSZ`-^BisPYmFeREGC!znR$Kaq65)oTRd&W& zWGBx(6(Q;Ga<4_m;dfy$_(BbCQI(jgS=t$xR|}nL@iCROggtYL--*DW6ibkT??k4A z`g1QwJpH&ogrUDlhwI zHRP@kNvbCAN6GkVhzY%JlNyUhiNzDenrmQC6wa!#FKdKuHP%@poKlMqsZy`dt_q*4 z%AX>_N2-IHQ!O#Fcdy#nK1MqaV-CC-`BqgLRN=g;Y*lUWk&Dl%Qi^Z^hStH=#QK~h3lZ6B&IXFjCD%PA;7yq$uoKnbZx`n&KlDsvQYxO0^)s(TWY zmfW7u=6zRBus=<1?ZdvGKO_E44Y2k z3yX|vRW2uOAR9uV#Bi>Y{4xwL%v?OY$bxvvc9nb-xSWPY4(Gx)q=pnuNCIiEv}Z^N z=R;a1tc}DceQRk2pv1rlv+}i(KKZ_^`f5iHd8!*;*PZR|P`MkG@8iR)?4KhvY5c5s zkJi9b-W@e{@6{CTQ=#?_GN(F}0q0OmDtadp&dp4OTk7U;Zk3C?t_0qRG&gHsD*M&I z0Ts5hLVL-@YB*pP`DDGs_@Ik~3B?7Twl{jh=$UW`-Ut~NgfHCu2P1Sa)6T6ZP|il( zc_f#H!=HYkU2#Zp>B4gD6b(WFU6}V_OsbS@SOHSZDj<)B$4j;vc{bU zjR=OQ++aKe`WtaD)D3oa!k9#}&s^`R46TJyN&Z*UE%Y#WW~yq5WfC98K8j;wCkmTe4S$!Lr%GGx4z6z3Qr5 z8UT|5s~;xGkA(VOW>pUKT>+VFvmjzeR=18Y@!I#utq+ctVYQ>26OoW!OJx@E~ zb84Lc>0?%UH`hQck{^;%0(zvd5Z+}9bu~q?nr3)~2-Da{LV;LKVWvepu|_{iwnfR5 zC{)bH=vJRmGy2T2_ncWpz;WO0{FSvo584B!Fm0fC)PT$G~-&X@4z?8`Vxfr=u!Vns0l;It3@PaBb5SazJ z^bi|}MS^t^%@(Yy(V%QVR=he=v<6NF92Bz74+U380pW(Dw}VUv%{o)pHXB!p_60CzXbL zrh4psA)l%qD_oeK4`6z9L_K*}wLOAoxhp1h zZ>K?x5VVyJ`!MV42N|`&tr6|8&Q(Ki2t9Elv|Ir7M&O3wL)Fp!p-Ov(`@ioQZq6Jg zGH{KDb3fTpquH7phG=J?GlO#qSNX@GJy0)gD_xwr91Z$58tEH|l*K!gcOuUXm)pOA zQH@4g&HZBp+N(aaO;MXB>RH+uH1E%jP@g}dK7SOR z!h8(Fs-vrGA!KkgKD3@x7eXFKAdiL6V&LS#bv6vH*dcIxGe|OP10{==3QtT2a3|}# zB%5Z1I~s?_kj26n4|fSpvecVS-%#)=$qdsy{8~C+>g_eyo<7jBb=&@ZTepc#yAST# z^S-!qe@i2ik_@w}p7@;VuPk1%@n);`v`S0RiDI5O& zbb&;#f$1?=nI$r$UBj$q-nx>9@yg1N{_+Mx%8%~E9VmbTD1ZVefC4Ch0w{n2D1ZVe zfC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch z0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2 zD1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVe zfC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch z0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2 zD1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVefC4Ch0w{n2D1ZVe zfC4Ch0w{n2D1ZVefC4Ch0)IsyCE3IiBBUA^X1JY!vb2oFFv4KwFIl0S(|nm%=E&a}K?a7wPi$D*m%1.out -@if ERRORLEVEL 1 exit /b +@echo off +echo Compiling File %1.c02 +..\c02.exe %1 >%1.dbg +if ERRORLEVEL 1 exit /b -@echo Assembling File %1.asm +echo Assembling File %1.asm dasm %1.asm -f3 -o%1.bin -l%1.lst -s%1.sym -@if ERRORLEVEL 1 exit /b +if ERRORLEVEL 1 exit /b -@echo Building Disk Image +echo Building Disk Image copy /Y boot.dsk %1.dsk echo BRUN %1 |a2tools in t %1.dsk command a2tools in b.0C00 %1.dsk %1 %1.bin -@if ERRORLEVEL 1 exit /b +if ERRORLEVEL 1 exit /b +del %1.bin -@echo Starting Emulator +echo Starting Emulator start C:\Programs\AppleWin\applewin -d1 %1.dsk