From 249e6c2600627725971377ffb253c0a719f330ed Mon Sep 17 00:00:00 2001 From: Egan Ford Date: Wed, 3 May 2017 10:38:56 -0600 Subject: [PATCH] completely removed all hacks for scratchpad ram, loader and bar asm only write to text RAM, no scratchpad ram. --- Makefile | 30 ++++++++++---- asm/bar.s | 28 +++++++++++-- asm/loader.s | 1 - barloader.textpage | Bin 1024 -> 1024 bytes bin/c2d | Bin 156984 -> 156944 bytes bin/c2d.exe | Bin 185612 -> 185594 bytes bin/page2text.exe | Bin 28529 -> 28529 bytes bin/text2page | Bin 8512 -> 8480 bytes bin/text2page.exe | Bin 28370 -> 28352 bytes c2d.c | 26 +----------- c2d.h | 84 +++++++++++++++++++++++++------------- c2d.h.0 | 4 +- gameserverclient.textpage | Bin 1024 -> 1024 bytes holes.h | 10 ----- mandelbrotgr.c | 3 +- test.sh | 4 +- text2page.c | 3 +- 17 files changed, 109 insertions(+), 84 deletions(-) delete mode 100644 holes.h diff --git a/Makefile b/Makefile index c561ad7..ea2b22d 100644 --- a/Makefile +++ b/Makefile @@ -10,16 +10,16 @@ dist: all windows c2d.h: c2d.h.0 asm/loader.s asm/bar.s makeheader ./makeheader -bin/c2d: c2d.c c2d.h holes.h +bin/c2d: c2d.c c2d.h gcc -Wall -Wno-missing-braces -I. -O3 -o $@ $< -lm -bin/c2d.exe: c2d.c c2d.h holes.h +bin/c2d.exe: c2d.c c2d.h $(WIN32GCC) -Wall -Wno-missing-braces -I. -O3 -o $@ $< -bin/text2page: text2page.c holes.h +bin/text2page: text2page.c gcc -Wall -O3 -o $@ $< -lm -bin/text2page.exe: text2page.c holes.h +bin/text2page.exe: text2page.c $(WIN32GCC) -Wall -O3 -o $@ $< bin/page2text: page2text.c @@ -28,6 +28,9 @@ bin/page2text: page2text.c bin/page2text.exe: page2text.c $(WIN32GCC) -Wall -O3 -o $@ $< +bin/mandelbrotgr: mandelbrotgr.c + gcc -Wall -O3 -o $@ $< -lm + clean: rm -f bin/* *.dsk c2d.h c2d.h.1 (cd asm; make clean) @@ -61,15 +64,26 @@ barloader.text: Makefile barloader.textpage: barloader.text bin/text2page bin/text2page <$< >$@ -gameserverclientbar.dsk: barloader.textpage gameserverclient bin/c2d +gameserverclientbar.dsk: barloader.textpage gameserverclient bin/c2d Makefile bin/c2d -b -t $< gameserverclient,800 $@ -fulltest: gameserverclient gameserverclient.mon gameserverclient.text dist +bargrloader.textpage: bin/mandelbrotgr + bin/mandelbrotgr >$@ + +gameserverclientbargr.dsk: bargrloader.textpage gameserverclient bin/c2d Makefile + bin/c2d -b -g -r 23 -t $< gameserverclient,800 $@ + +gameserverclient.dsk: gameserverclient bin/c2d Makefile + bin/c2d gameserverclient,800 $@ + +dsk: gameserverclient.dsk gameserverclientbar.dsk gameserverclientbargr.dsk + +fulltest: gameserverclient gameserverclient.mon gameserverclient.text gameserverclient.tiff gameserverclientsplash.tiff test.sh test.scrp dist EMU=1 WIN=1 ./test.sh -disttest: gameserverclient gameserverclient.mon gameserverclient.text dist +disttest: gameserverclient gameserverclient.mon gameserverclient.text test.sh dist EMU=0 WIN=1 ./test.sh -test: gameserverclient gameserverclient.mon gameserverclient.text all +test: gameserverclient gameserverclient.mon gameserverclient.text test.sh all EMU=0 WIN=0 ./test.sh diff --git a/asm/bar.s b/asm/bar.s index ed839f9..2167bdb 100644 --- a/asm/bar.s +++ b/asm/bar.s @@ -21,7 +21,7 @@ rwts = $B7B5 ; rwts jsr ; vars -stage1 = $800 +stage1 = $C00 stage2 = $300 ; $300 looks open invsp = $20 ; inverse space for draw trkcnt = $00 ; track counter @@ -37,12 +37,32 @@ barptr = $06 ; bar pointer grcheck: lda *+(gr-loader)+(moved-grcheck) - beq text + beq movetext lda #0 ; GR mode sta $C050 sta $C053 -text: - +movetext: + ldx #0 +movetx: + lda $800,x + sta $400,x + lda $880,x + sta $480,x + lda $900,x + sta $500,x + lda $980,x + sta $580,x + lda $A00,x + sta $600,x + lda $A80,x + sta $680,x + lda $B00,x + sta $700,x + lda $B80,x + sta $780,x + inx + cpx #120 + bne movetx ; move 120 bytes init: lda #0 ; reset pointer and counter sta barcnt diff --git a/asm/loader.s b/asm/loader.s index 1f7e122..d7454f5 100644 --- a/asm/loader.s +++ b/asm/loader.s @@ -19,7 +19,6 @@ rwts = $B7B5 ; rwts jsr ; vars stage1 = $C00 -;stage2 = $B600 ; overwrite track 0/sector 0, not needed any more? stage2 = $300 ; $300 looks open ;;;run time trkcnt = $00 ; track counter diff --git a/barloader.textpage b/barloader.textpage index 1eddabfc229edcadec9fe1ddeb46b6edd23b755b..32d028f387f31964bff7fdf01c1dcb0809e09d3f 100644 GIT binary patch delta 96 ycmZqRXyBMo!NC9plNFhCC$9BogK#JQtAes7*D=DG{}9YNCWI)0S;t%jHxK|fau0$4 delta 96 zcmZqRXyBMo!D0TNf#E+8PgZ2oow(MU4aolg|Nq2)RZ!OCIz}*4{Qv*S{~%1Dg2{DE XU{MhBAB1@UB+6XHaqK?>JIFu)3HUKh diff --git a/bin/c2d b/bin/c2d index b05afb0c17386253d6bf99840fdb7fbae4601bb9..1a5eb865a2d268796bc4b4162f24fe0c13ec2643 100755 GIT binary patch delta 4294 zcmc&%dvFuy5&!P2GqPiIvU$IZoE!=N*@ghsg%C${gVOFaxebbhGLxEMYXaQOg$!T{lm3 zPkCtejO^csKi*S2Yju^jQ5ef(L%W4716pB^@Z)g1aKrw-O%qRZT30`jTd#HZTg~6f z)aEPeH8Dm-b%-H zDjtuY3ee*_yaTlOUHG5u#5KqgUiNXY`&+O(u$v9IpRso}1r*`IlNp!4j>jpGCiAhy z3^kb#z$k%;P%?-y&tVebaCVoNhoirWv`{u3p<|KN-o;Bi<(?&;XFN+g5a((HSBVzX z5s3)SKI&8RWBNj9UOj?|I|IM5i*v!D8jEPjh;SA&hvV*j|wJWG|5Uha!X(n!2oXXf? zGNZTSIXmjOgfT15zo@8n(qnFKq)xa=?&W#aOG-2(QI-)uwp2ZGHCG(Hk>J`}54i(7 zps!5R*PmB{C*q2)!>isWG%c@6}NTW1XSMDME zns7iJ4U>?+ub@FI>M?ykFikNr^b)n8Xu%7n_`JTu76;7E1bxg+!YXYow^lg7M1-YSy*U4R z{u$FJWZ5k`eQbt^>D6{qptTsxr5-pP!D{b8w)ZP@YdYzJOs+oMH>S;6ch$$~s zkC8z)EWHSy@?(^1wXhV7aRD*(KGhRkbLZbSD@y-4EfV}X-Y`QPZK4gYdJoD^LYY*b zAl2S@!ycqwxe`3e1v|KKaa?SXrNuMS8@A2JT=&K*;88JHK%s@Zgxfomv5pr-aGPkLaamV#`C z=GT}suJ^{{GVII6>Q~gT731~)Qs8GkSH#<|KHX2iBLI5Ue;o=~Cr8UfXU=!Sqd6GU zE*}F8HsT8e&QFt&H%&z;ges`RDIGjWK~s-?`G)5(4N+Lg_wgN+?-JgY-e`e<4Hrji zxH-Oy`e|sE`aV2JpG{O61V`{a;gI%PcJ}nMXdwCom6tu?ZK*VYBXw#wvWF^gF(DLN%A}FN3EzmQ@R1lUF|-Yyav#~g!r!NbxwP^S ztPEpC+Ux<1ff9Icra`9=fwy!}+YpIPAp~w{r?3aR=Q@R5AfgrcdNh}V^tQ&qq>(nV zmEzO{H48D%Y^=gHEC%^&kdyD$Tmj~gM=tUTttlXmHy!g(|Fu6A_gi{fpohS8S$bdN z;35MN67MMb(D*GdZFik8|C_|J^hJoN=P-4M!Ld$Z5WMyRvmKaD!3hq82g$IE?&1Qb ziVT%RlihBbu^LDOifABn9%igWY_SgLfd-OJzMA<+pJ>Lo|4{a!!C=uE?9@2(RXpA) zOBD$ zlWBzNWX4#Gu;xU#bMOKLcCOOUc-Jh6r|2whU`<1TPl(f8`sOK%7POiBEu$)={`oSg zq!1)pE|pWwkV|N6?-A7_7IR;23Q_uXQn|hwQ`8j7wVc62^5%X!umQjV6A0^V|8~l0 zUmBy}{8p`T@Q)sikGY6#$H!bYpStMCQ4g zeItkaIql66Pvq3N>sQxR)-QLjuB`F9YwO)BYd83-+$*20^1Dms?|Xkl7q9Kena)i;bZRRE1-e@p*#DAW|r!{}!<0p*6>6?G%hk*{qJpwnbBI*Hn2{3$!F=QIE;F%A= Pn;);@CpTAD@hATesqAGj delta 4491 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 diff --git a/bin/c2d.exe b/bin/c2d.exe index 95c8f6b189e3c6f8d1bb6a0fad1e492cb0e16286..4690f1f7cafe4a9ea6b0bc925c9e71f0d4066241 100755 GIT binary patch delta 2356 zcmc&!drVVT7(e%L!4^B}3n5bR77uVi6iJw(Vz@%p>eO`;ov%!tFwps610&g*02W+J zt%Dt7by25mQ@6Nf#z%cD3}lMVWkXFC9WgU|*&AJEbO=81?)z?wZi)Y|$?f?bzu$Mh z^L^hrn?LLS;M4vMZsV$c(F@6DO6D{+PN(&=8-Lm-3^`mQ^qK_1t71mL|A#TL0y%s% zCUu~Y!LN-N!9__*uj$n^SC3|{?IMJ@f_bi<@f)satZwVZe9~@XiU8)D?I30FIa0C^ z%PXXe#M?kRu6r)-bu{R}98^6vmaRJY1<5j~86e09E1Df@62C85<~M*D)Ld6joOw&n zV;z$l2N?AxD4r{$B5%E!PwaaO_vRDxmNZS%YTCe&=W0=aCbo+#8o|^jUhc6b2@(9D)gsvWd8;MYY9yq-Ffqb)UUL_+w>;fE| zhmx{N+aBsCmwmNt59I9;S@7U*U}~#tG1oevdQdI#mFj%mvk$;vuam%j3M(6CA!cb9 zQ;z}Lk-e}VAzs_gQuJ2vnIjVyK9BrPbL}5UwJ~Q_CsdDlZ7fFtkR7bp6br~Qlvrym zViuFYYntEkD1UjL0+3HxVV@;aHteHxsyZ|B68 zDGIsy2}W9skt{5@79!zE&%rEY&Foaq!iwht0)tQVJuT{iTbkyrWeuSt+Vwomwarm_ z{`Ra(2!~8^l=?y@^IdG%i?I;glgom*Vvc|?!79UQ&<7DSX@X3A3lvP|=zYL1c{+@! z!!{1G-heb7m24GcE+;eN5O+Sg1`Ic!mpmph9<-)C1q$&^6PotJiY^+Gj(}q?YNq1eM8=HZpzs=K9lLy;s zLeoDD2>SD)GQK=DC1ENCfIVxgn@MuTEb`kAx6ZrROaRd9hJsgY(y29_Jjm$puH;(FfE!?R`$P5h_ zp5B1bw*UkP24V`;SLU&Krf*sDc5*1FH*ow%HsX_EDlqXLhLaS4-yaR~23xcKFyMv%|9HH3cn0A3%jKzKqlEl{lpQv_a?afp6? zgVW3cK4;7@y4u87joH>X*0?cqQ>Jh%leUZ%D*UZWX{s>5uP&vl{qvX65rN8ORH9Y$ zGZbR{|GroMv-zxNB$5xdXC;~Q4D1cCoq+G7u+QmVzk;R+C4rqQXtCf=DW;i;B~p3W z>gDC7QrYs7VrgZ$v}R>xagnrUT~V<#{pG+5#q>KmsCp71)f3>$gKr8JJ0O?Rxd{UC zJ6$wEFa@@|=;Qv8d2k8p{lYdH8~E})TAxm@r}~#|qr?33PtxtE+&)Q@B1M@H!9Q>- vjSGx9MTZJNpZXQuK?M@{xtYETtG}d`o&k0AX}SyD7ux7jA&`59c9{PGI0}EV delta 2657 zcmc&#eQZ-z6uVaN=RQLq@5MvCEMfst)-CPap`irS=u zc4Kd)z;X#40hAGgPLz=F(E$n_h!ac{h$hJJBT=J7Ctrq?=34R_KVT1p7M~o5t z`won7juc${dz(#g^P4tj@tc3CYP3%^$EZL^G&3#QH~Ee8Dr;(AQ%QQfOad;s)B}`@ z&$2s&;e46h9m#-FmnJz25;s!H0##Kz{2Mi`a^%QfR;J7tz!h_W3wQ%;L^iNYCzwGW z+S$we%9w%Zp}-!9ejCtWvm)B($TP3MbWhW*$ODw}103Y@6LT)Fs3g9QKu0Apueb7& z0?T6+pp-Cd&w8-NXPV+=?VjFC=2pYF3U_dHOU$|hgfrwamdWs7LE+R=BO$GUaYFQz z+7e(5^6hJTZl6uerL(7;H8+QJA=QN|`h|lu;S2n1ft5Oq{7Qi(2f)P0O@;Zw*W6WT zo%(^OnH{2QzTU4X&Yp7G99^voMP2wtztE@&7xGAtYgCFH&$wrHUI;^$p-u*Sdpw2Vyd&45E|@3?dBnb#J$_bcKF-!f!R0FQEo zz60I|dM4Nz?0T9pyj>7pV!nhCcH9Ac6*Kf07`_SZ49@)|Bxcq8aFj?;1V#TVDj{Y# zmlJc-Iq(eEXMD7S87(c9X zqTQk#Eq@V8#w*}IdPfTN0=g8^8UdGG>3I@g?<^c@&8GFMTl}!oZw}wm6ZBn}Ej;hA z^RccH$m?uZeyOWv?a6syNV5@p2P)}Fw|W^Hq_;p-ua{L_9PY}RyK$3ma;nDhbT=EI7u78`H}wk4ji_?_I!Tmv1Y9Jr~fpLFbaus8Yvh^L`fqBPmCxB zk;*~pBcxyw69rqL3%@5yJ5o>=qO3=XA~iLJB)&f7Eu^4i?L}oQ_e?B^*dYFaj~F3n4#rJu6|2pt*RV;Uh_#45k<1~WPo2mj zaOjqnOAsj`s+ww)gy{lr7_`(n8G1t17eF++f6q(iN>?8?) zIx#ohNt$w+26qZOOj|OkPO?M9jW!u}l24x$`O-<7*OWAu2nS1Ox>Q(|>|R2hLUmGE zLYE1ldo}g3IN%mJ7WA diff --git a/bin/text2page b/bin/text2page index 8420445352d014a1e7c3245b9b4c16bfa508f4e2..be9f31ce97c18d3035a83dfed5a6fb0b3768d162 100755 GIT binary patch delta 805 zcmZuv-)qxQ6h1e}=-h15N`=BYnz0pHD`OEA)IyutNgnzj&JIOKR%ho1Zj{kT1!0a1 zv9Rjq{R15MpuPz{$QVMaQ}*KK{s5ukn3YEud4 ze~_buqY8JQ`uQFr)3f~XLp^BX5N2%>=odchm{?de zg66T%y{{WQV zZqI|7Y823|J{^e1fL;?lQ&*5^N8T8pquF9KyQ%)HU{Uzx4Lr*Urvfj{ zEiT=zn#)AXmR0kQ+jyc)FS8Mq{JBB(ygK-NiG9$>oMM%NSeRvEd@rxEHx$;%EZU;E z{gGNvUL`L+xGW6cDq1byYXCdMa_x)A)PBqNkjA8g1DBC`5JOwcYFXQ-4gx!B(UIc> z_RB^0EHAJNA<8#|df_*l1RGPTHsLqs7SS)@sOS&~-IVst4>jA*G_Jx0mhtc3m8jel zy(6Cpa{BnFp3EeNjdW5UO(rfTC!u3JF*X4{wjU4GHcTw4^s4Nc!o9aICL0$io2C{% pTzB&Be|WtgfKazbwz&-Ye}>R&L+F>1>EY4DB<* zt$AzTwiX0-E}66F?>!eu1GVDg@=VSHp0ceK6% z@+^2M_^^mj9^e|F3|Iu-4!+SiARLKt4kk_RabDY{!LP}l)+0^BB@e2fwJT|o;hc;{ zcHrA3Ln1;2Q0@YU?y!9_g{KQh##&U-B?Y9;K!+UrqQQ=`I$D{<#78-i?h_m%P)>I7 zWv&;|#TNI9d!@y_2(lj`V_mYstM%v+ug4ns<|!0L7RUvDzx^dV=Fy|6Hg(?=6u?7* zV;D39Kpye-8+Rd=8|R~|{zUpoS0E7ZCqDiB3?#MYa6MP?Dc4+losBr8_$(tQmZkXb z(r8kS&C=oA+L>_PlF7%v01NqAOg|p)H1Z;5$%3%=WV?CSPMdg0 zhq(-g#@RTB+fAO!=kOKP=X8{>>&e}=`@$XZ*a1%I4=bUeP){@xQo^BNZ)gxX`-2y+ zpqlX2%b{z?O%K2!tqhh)5n_!Di1za^a_;JugDAkEa=%jraG>;5-3^ame!9HjWO6d z4@JFHQY7?HUIPn>nUok2s|T^rQu@P;P>C?o>Fqmn_v&&Uxaa=v@Av!8`Oe38?)y>f z9>q@U+QtZ_31uSG?s6HJlo8j*`ff7?BOE9t0y>jai|SwKA9^ z84+2S6B;8*!nZ5Z^vI4x&m9UZZnlHI{U3JJ?r!-!*k57$X8D2eycZJ1z!VvO~`b4qkHVj8MPYFjkuOg>5-oqZERL3Q8-lhdnw3qXowQrx;A~*`Q zj#geZP{1n?3|j%uks`G&m$SYG%-W*({ay`3Smsh%hMbP(ZO9JRr?4=xz37`w`198? z%QWw#q-7vQ4>1Z$E3Y6=)LYGke37k?Z+CC7z6HA-b~0jHrS=uYvNW{1^l5eJ`|8r9 zB$-!kHX~^(rG?d{a2%Zd#1t(dRBC|bA&M4_^$tPZmyTsi6-Dz3j}Yuh6jv_e47O-O zSek+@>JXMmBYAt;$Yhq1WSi8)nX3Q=Zb}YIl-XzC-o4wO z1dNhA%h!|Vc~autJc6wtH{^d+w^s{E)n{s Wv+gAr$hi}5iLw3$M#4n>1osbEH#I^4 delta 1669 zcmZuye@qis9Dnb6f)at0Ayh2mYM+ixMl5kKn1Mq(+DXScZIKcKVw~BWZc8SK*)Scu zXs&IVw0nOnnc0FfTSnp^&clQmvJ~A$To%GeR5TKrIFqaThwhKL0o(2S+TKNJUvlq# z-skiAzW05j6G0~vg9}%$_(ON4 z2eoGe8%-8J%L%s6O3I;DDoS25txuW|QsLUU@X#NH#X;Ik*yH!2< zpQc58#41m2*9MhnhY%ei!jzL(5R{OUSgE_LzRfEC3YZU-lbvc6L`X}ugV$rxW1CR~ ztUtiOD0F#pvF7nV(js?k8zZHuS`lI_(h#xGi)EXFfG>6X{r<=Im^}G+&GVO|)@y8< zu!LY?vXfLsI*2>eK~5%0Wh+J~0_nJMs7nZYNTs|wEa6<=xqLn@*B5*zpV5?S+?>zH z=lbqI<~a$j%Jq$8e8HzzQn1o^{NRegU@yX_3&EDzk>gtoUACl#;1C?Mu#wiVk5p#Q zMje3DPR$vTd`lPH%UV!NxeevXpcf(NKFu9$9UIK2<(p@52_$n~X@N=8c_!*5>Q79I z=3#I+0vl+oZ8a@v7HG1Sr$sGC z;K~2K(+*4#y|kl>{+MQTU)L+k*v)k1z3uf}2GT_9n1M1u6K!)@W?W?2(e`(tzS*uo zYApEt4gsfOmZ0A`V;PC=d-WcmNtc}-?&!@T)j)?_8SX?@IpEekNdxu0rgOIq)VoXP z<_y%`$++)3^|5w)bkB@|x?b10-wd>?YYgJp9<2>j)3!H0f2vnNtG&T&b_uT@-TJ1E zCJfZFTj$0N)VPOn@jZG@4L;p--az$!ojYfs7rLL!sb=rWoc`S#FZaOdbLh@N6hr2Ku>l#e+9ng>da@q=;h&0ak|gN31<37-w10? o^>2iGGur<%80ZK4r;GdFe*ef@AEswQ9Bm%>5{t@>fz;an0c8|-IRF3v diff --git a/c2d.c b/c2d.c index 5fd829b..b6db471 100644 --- a/c2d.c +++ b/c2d.c @@ -41,7 +41,6 @@ Bugs: #include #include #include "c2d.h" -#include "holes.h" #define VERSION "Version 0.57" #define INFILE argv[argc-2] @@ -56,7 +55,7 @@ char *getext(char *filename); int main(int argc, char **argv) { FILE *ifp, *ofp; - int c, i, j, k, start = 0, loadaddress, inputtype, warm = 0, filesize = 0, unpatch = 0; + int c, i, j, k, start = 0, loadaddress, inputtype, warm = 0, filesize = 0; int loaderstart, loader = 0, loadersize = 0, loaderbasesize = 0, textpagesize = 0; int bar = 0, row = 19, gr = 0; struct stat st; @@ -64,7 +63,7 @@ int main(int argc, char **argv) char *ext, filename[256], load_address[10], *textpage = NULL; opterr = 1; - while ((c = getopt(argc, argv, "gr:t:vmh?s:ub")) != -1) + while ((c = getopt(argc, argv, "gr:t:vmh?s:b")) != -1) switch (c) { case 't': // load a splash page while loading binary loader = 1; @@ -86,9 +85,6 @@ int main(int argc, char **argv) if (row > 23) row = 23; break; - case 'u': - unpatch = 1; - break; case 'b': bar = 1; break; @@ -229,20 +225,6 @@ int main(int argc, char **argv) fread(&blank.track[1].sector[0].byte[0], textpagesize, 1, ifp); fclose(ifp); - // patch holes - if(!unpatch) { - uint64_t *p = (uint64_t *)&blank.track[1].sector[0].byte[0]; // set to start of splash page - uint64_t *h = (uint64_t *)&holes; // holes are 64-bits - int i; - - p -= 1; // back up virtual hole - - for(i = 0; i < 8; i++) { - p += 16; // 3 lines x 40 columns + last hole / 8 (64-bit); - *p = *h++; // copy screen hole data - } - } - if(!bar) { loaderbasesize = sizeof(loadercode); if ((loadersize = sizeof(loadercode)) > 256) { @@ -302,10 +284,6 @@ int main(int argc, char **argv) blank.track[1].sector[4].byte[loadersize + 8 + i] = i * num_sectors / bar_length; } - // this version loads text page right into place, however can cause - // issues with scratchpad RAM - // loaderstart = 0x400; - // load here and move to 0x400 just the text data loaderstart = 0x800; // temp hack to effect the sound of the drive, i.e. to make consistent diff --git a/c2d.h b/c2d.h index 9d3ce25..e2b8797 100644 --- a/c2d.h +++ b/c2d.h @@ -13,15 +13,15 @@ typedef struct d { const char *usagetext="\n\ usage: c2d [-vh?]\n\ - c2d [-bum] [-r row] [-t filename] [-s start address override] input[.mon],[load_address] output.dsk\n\ + c2d [-bgm] [-r row] [-t filename] [-s start address override] input[.mon],[load_address] output.dsk\n\ \n\ -h|? this help\n\ -m jump to monitor after booting\n\ -s XXXX jump to XXXX after booting\n\ -t filename, where filename is a 1K $400-$7FF text page splash screen\n\ The splash screen will display while the binary is loading\n\ - -u do not patch screen holes\n\ -b animated loading bar (experimental)\n\ + -g splash page is mixed mode GR\n\ -r override row default of 19 with 'row'\n\ -v print version number and exit\n\ \n\ @@ -9032,7 +9032,6 @@ rwts = $B7B5 ; rwts jsr ; vars stage1 = $C00 -;stage2 = $B600 ; overwrite track 0/sector 0, not needed any more? stage2 = $300 ; $300 looks open ;;;run time trkcnt = $00 ; track counter @@ -9221,7 +9220,7 @@ rwts = $B7B5 ; rwts jsr ; vars -stage1 = $800 +stage1 = $C00 stage2 = $300 ; $300 looks open invsp = $20 ; inverse space for draw trkcnt = $00 ; track counter @@ -9237,12 +9236,32 @@ barptr = $06 ; bar pointer grcheck: lda *+(gr-loader)+(moved-grcheck) - beq text + beq movetext lda #0 ; GR mode sta $C050 sta $C053 -text: - +movetext: + ldx #0 +movetx: + lda $800,x + sta $400,x + lda $880,x + sta $480,x + lda $900,x + sta $500,x + lda $980,x + sta $580,x + lda $A00,x + sta $600,x + lda $A80,x + sta $680,x + lda $B00,x + sta $700,x + lda $B80,x + sta $780,x + inx + cpx #120 + bne movetx ; move 120 bytes init: lda #0 ; reset pointer and counter sta barcnt @@ -9386,26 +9405,33 @@ bar: end: */ unsigned char barcode[] = { - 0xAD,0xB0,0x08,0xF0,0x08,0xA9,0x00,0x8D, - 0x50,0xC0,0x8D,0x53,0xC0,0xA9,0x00,0x85, - 0x05,0x85,0x06,0xA9,0x01,0xA0,0x0C,0x99, - 0xE8,0xB7,0xA9,0x00,0xA0,0x08,0x99,0xE8, - 0xB7,0xA9,0x02,0x85,0x04,0xA2,0x00,0xBD, - 0x35,0x08,0x9D,0x00,0x03,0xE8,0xE0,0xD0, - 0xD0,0xF5,0x4C,0x00,0x03,0xAD,0x78,0x03, - 0x85,0x02,0xAE,0x76,0x03,0xCA,0xCA,0x86, - 0x00,0xA5,0x04,0xA0,0x04,0x99,0xE8,0xB7, - 0xA5,0x00,0xD0,0x05,0xAD,0x77,0x03,0x10, - 0x02,0xA9,0x0F,0x85,0x03,0xA5,0x03,0xA0, - 0x05,0x99,0xE8,0xB7,0xA5,0x02,0x18,0x65, - 0x03,0xA0,0x09,0x99,0xE8,0xB7,0xA0,0xE8, - 0xA9,0xB7,0x20,0xB5,0xB7,0xB0,0x39,0xA9, - 0x00,0x85,0x48,0xE6,0x05,0xA6,0x06,0xBD, - 0x7F,0x03,0xC5,0x05,0xD0,0x16,0xA5,0x06, - 0x18,0x6D,0x7D,0x03,0x8D,0x5B,0x03,0xAD, - 0x7E,0x03,0x8D,0x5C,0x03,0xA9,0x20,0x8D, - 0x00,0x04,0xE6,0x06,0xC6,0x03,0x10,0xBD, - 0xA5,0x02,0x18,0x69,0x10,0x85,0x02,0xE6, - 0x04,0xC6,0x00,0x10,0x9C,0x6C,0x79,0x03, - 0x4C,0x69,0xFF + 0xAD,0xE7,0x0C,0xF0,0x08,0xA9,0x00,0x8D, + 0x50,0xC0,0x8D,0x53,0xC0,0xA2,0x00,0xBD, + 0x00,0x08,0x9D,0x00,0x04,0xBD,0x80,0x08, + 0x9D,0x80,0x04,0xBD,0x00,0x09,0x9D,0x00, + 0x05,0xBD,0x80,0x09,0x9D,0x80,0x05,0xBD, + 0x00,0x0A,0x9D,0x00,0x06,0xBD,0x80,0x0A, + 0x9D,0x80,0x06,0xBD,0x00,0x0B,0x9D,0x00, + 0x07,0xBD,0x80,0x0B,0x9D,0x80,0x07,0xE8, + 0xE0,0x78,0xD0,0xCB,0xA9,0x00,0x85,0x05, + 0x85,0x06,0xA9,0x01,0xA0,0x0C,0x99,0xE8, + 0xB7,0xA9,0x00,0xA0,0x08,0x99,0xE8,0xB7, + 0xA9,0x02,0x85,0x04,0xA2,0x00,0xBD,0x6C, + 0x0C,0x9D,0x00,0x03,0xE8,0xE0,0xD0,0xD0, + 0xF5,0x4C,0x00,0x03,0xAD,0x78,0x03,0x85, + 0x02,0xAE,0x76,0x03,0xCA,0xCA,0x86,0x00, + 0xA5,0x04,0xA0,0x04,0x99,0xE8,0xB7,0xA5, + 0x00,0xD0,0x05,0xAD,0x77,0x03,0x10,0x02, + 0xA9,0x0F,0x85,0x03,0xA5,0x03,0xA0,0x05, + 0x99,0xE8,0xB7,0xA5,0x02,0x18,0x65,0x03, + 0xA0,0x09,0x99,0xE8,0xB7,0xA0,0xE8,0xA9, + 0xB7,0x20,0xB5,0xB7,0xB0,0x39,0xA9,0x00, + 0x85,0x48,0xE6,0x05,0xA6,0x06,0xBD,0x7F, + 0x03,0xC5,0x05,0xD0,0x16,0xA5,0x06,0x18, + 0x6D,0x7D,0x03,0x8D,0x5B,0x03,0xAD,0x7E, + 0x03,0x8D,0x5C,0x03,0xA9,0x20,0x8D,0x00, + 0x04,0xE6,0x06,0xC6,0x03,0x10,0xBD,0xA5, + 0x02,0x18,0x69,0x10,0x85,0x02,0xE6,0x04, + 0xC6,0x00,0x10,0x9C,0x6C,0x79,0x03,0x4C, + 0x69,0xFF }; diff --git a/c2d.h.0 b/c2d.h.0 index 8323ebc..26dfd6d 100644 --- a/c2d.h.0 +++ b/c2d.h.0 @@ -13,15 +13,15 @@ typedef struct d { const char *usagetext="\n\ usage: c2d [-vh?]\n\ - c2d [-bum] [-r row] [-t filename] [-s start address override] input[.mon],[load_address] output.dsk\n\ + c2d [-bgm] [-r row] [-t filename] [-s start address override] input[.mon],[load_address] output.dsk\n\ \n\ -h|? this help\n\ -m jump to monitor after booting\n\ -s XXXX jump to XXXX after booting\n\ -t filename, where filename is a 1K $400-$7FF text page splash screen\n\ The splash screen will display while the binary is loading\n\ - -u do not patch screen holes\n\ -b animated loading bar (experimental)\n\ + -g splash page is mixed mode GR\n\ -r override row default of 19 with 'row'\n\ -v print version number and exit\n\ \n\ diff --git a/gameserverclient.textpage b/gameserverclient.textpage index 2113df035b08cd3c5c3eb3e7e0efbb52c565c29f..39ef856178bd11cd1a16043fe5d960f6026f73e0 100644 GIT binary patch delta 90 ucmZqRXyBMo!Nvdv6YHvAtbZ`p delta 90 zcmZqRXyBMo!DjxSf#LuEiFH+M|NjFS|0n)~u_o6sf|=s~|4;r0VFDFQu44j=f|&mx T%nKk<<|>Y3{~6eUhA;pCq3tke diff --git a/holes.h b/holes.h deleted file mode 100644 index e6d6bf5..0000000 --- a/holes.h +++ /dev/null @@ -1,10 +0,0 @@ -unsigned char holes[] = { - 0x37, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, - 0xff, 0xff, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x17, 0xff, 0xff, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00, - 0xff, 0xff, 0x00, 0xd0, 0xff, 0xff, 0x00, 0x00, - 0xc6, 0xff, 0x00, 0x07, 0xff, 0xff, 0x00, 0x00 -}; diff --git a/mandelbrotgr.c b/mandelbrotgr.c index 5c3f626..dadfe5a 100644 --- a/mandelbrotgr.c +++ b/mandelbrotgr.c @@ -3,7 +3,6 @@ #include #include #include -#include "holes.h" #define MAX 15 #define NORMAL 0x80 @@ -88,7 +87,7 @@ int main(int argc, char **argv) putchar(screen[i][j]); if (i % 3 == 2) for (k = 0; k < 8; k++) - putchar(holes[(i / 3) * 8 + k]); + putchar(0x0); } return 0; diff --git a/test.sh b/test.sh index ebca5bf..ee31438 100755 --- a/test.sh +++ b/test.sh @@ -60,7 +60,7 @@ then fi fi -SUM=7d509bcef9a53c89839a0622514955fd +SUM=df792a2715bb9f7b91aed94e19e5f46c rm -f ${BIN}.dsk echo @@ -158,7 +158,7 @@ rm -f ${BIN}.dsk fi fi -SUM=7d509bcef9a53c89839a0622514955fd +SUM=df792a2715bb9f7b91aed94e19e5f46c rm -f ${BIN}.dsk echo diff --git a/text2page.c b/text2page.c index 98780eb..fe4f0ec 100644 --- a/text2page.c +++ b/text2page.c @@ -1,5 +1,4 @@ #include -#include "holes.h" #define NORMAL 0x80 #define BLINK 0x40 @@ -39,7 +38,7 @@ int main() putchar(screen[i][j]); if (i % 3 == 2) for (k = 0; k < 8; k++) - putchar(holes[(i / 3) * 8 + k]); + putchar(0x0); } return 0;