From 5ae7f19f83485bd473b5d575b84361a65443d5bc Mon Sep 17 00:00:00 2001 From: FeralChild64 Date: Thu, 25 Mar 2021 19:39:57 +0100 Subject: [PATCH] loading from D81 image works now on MEGA65 --- CONFIG.md | 6 ++++++ bin/basic_generic.rom | Bin 8192 -> 8192 bytes bin/basic_generic_crt.rom | Bin 8192 -> 8192 bytes bin/basic_ultimate64.rom | Bin 8192 -> 8192 bytes bin/extrom_generic_crt.crt | Bin 32896 -> 32896 bytes bin/kernal_generic.rom | Bin 8192 -> 8192 bytes bin/kernal_generic_crt.rom | Bin 8192 -> 8192 bytes bin/kernal_ultimate64.rom | Bin 8192 -> 8192 bytes bin/mega65.rom | Bin 131072 -> 131072 bytes bin/mega65_orfont.rom | Bin 131072 -> 131072 bytes src/,,config_mega65.s | 4 ++-- .../filesystem_cbm/fs_cbm_nextfileblock.s | 14 +++++++++++--- 12 files changed, 19 insertions(+), 5 deletions(-) diff --git a/CONFIG.md b/CONFIG.md index 9b0c565f..befc3550 100644 --- a/CONFIG.md +++ b/CONFIG.md @@ -175,6 +175,12 @@ Enable this option if you are using a tape interface adapter with some audio sig Enable this option if you are using a tape interface adapter lacking tape motor control (most likely every adapter currently being sold) - this will eliminate the need to quickly press space when the program header information gets displayed. Note: if you are using a cassette player with REM port, and your adapter is connected to this port too, than you do not need this option. +## Additional storage + +### `UNIT_SDCARD`, `UNIT_FLOPPY`, `UNIT_RAMDISK` + +MEGA65 specific pseudo-IEC devices, handled by internal DOS (work in progress). If set to 0, given unit is disabled. Otherwise - assigns IEC unit number to the given storage. + ## Sound support The original Commodore 64 had one SID sound chip installed. However, mods exists to add more of them for improved sound capabilities. Emulators and FPGA machines typically allow to simulate more than one too. Unfortunately, there is no standard regarding how these additional chips are visible in the processor address space, and there is no sane way to detect it - thus, it has to be configurable. diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 32eca3602680fe9f000b41550a2cd29dac161222..30d54dee02bb1b977dd310c439d49cb380184865 100644 GIT binary patch delta 20 bcmZp0XmHpNBhO)MWUA-ptY_sS)Vvek_ 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 delta 9417 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 W-~|U|<)f;hC@?PC`m=))zw}SZxc9*T diff --git a/bin/mega65_orfont.rom b/bin/mega65_orfont.rom index a3c548c25463aeefb9f5ae3b601dc564c208ad0a..b106ad9afeda7327ddafcbbe6fb806aee7f897c2 100644 GIT binary patch delta 9625 zcmcgwdwf&n`Oi6N+N313AlLu}Pg@EtAT0%LlIB)=NqP}-D=j$b1!7Uz>_sS)Vvek_ z42)p2kuha5B$VLNBIx+BS!Gs%f@l;s20AaRigYNQI4i>Fp69%$O-_HffA;yT`Sg6h z&+~lW_kG^mbJDV`lx3wV=FR%_xX$rxrg&E^Tlz`;;;ea@^Rw>C%4EpTl(p9SD|HnO zHO+}@zOR3_KD|L??5q1z-3z(-nJ!gT>4){u2%dQh^B3ER70Zeq6TuJthsHIHPt-kD z_h?;fUC_z)imx6N2N$xv)YThfdg-f4a#dAuCAziZU@p2}hynMx7*!Qy6&Uiwvz~F7 z6Ih<{tmih4A8pu9VZ2u~FkTD;KB-{mJUJGA<1p;KFs~qWSaL?e4k*ryWe3KbiDL(3 zAP$J;1gJRyy0pLEo1c|Vzgh2nI4j|{Pav@CLAG-o+wycBK7Ui^-I?b_D_q@H>fJfc?cP_4`>O^3JN6!rlDCmU>F zp;fREhqIQt9tlw3gazCk7udaX9=kdI`=IEzz0(IK>=qpbvU@-Z-jm1TL;on9*BGEd z3;{|Qn9%~gtmL-g#{3le>jrPqf&_ZeI`5a+d9J2Y#*ed16f(o(A#S z1eNTWg07Gp^SgPbyemX2y^6akolS7cJoCFC>?!Etf}Zj&WtB(5J{iqE5yL(sW#Lq` z)$J0or{V_#i5>+TnCcme(~e_@uLHRV0nwguyYjm5VCYwuRg-_peVwCSP!N0+-i6WOC( zF3;_-q09t!AZFM0&XZrT-#{2LWjGxq3&i{G-MM3e^=z+npu9K!>I&~PZMI7cZ9EO^ zNrXlYb|%6(nHc&fEWN08U^Z+aY>sCV%Z`Q38JNP^Zm{97;v!H3GqVWnvE9qrsg>;2<)W53 z8@zq$l-O75wu_nc8+dZ!H7N-lBc^*V>^Q4~HZ3zYc#AdDXZK?P1sf*GUH_D<4W#9z z=5LyZnm09fHGj~Y(WGk1ZSwBaY`H_bJ`~?g#h=%$4@tY}`1AVp17l9Y&oRgLk4se> zybE(I(d}#Y+|hl>`^%gkEdna)7PamYJ@-Xua8!MO^q@o>OvSbPmWgWKles4oRuAsk z7S*LpymOg&-8$jADXaF})}6lo@F&`qO;pz5<*(kK3h>6KGKowzT~t{rGG?g{pSzTP zw<{&zq+egO-2Rzkj&p~Twf#Bw$2m!5_uIu~Sc3w(x5#h4USc z7ppsK_|S04@Qq=}5Nl+N6OGRqJB>$;uN&VsUN8Hc@YKUUm}pbYy$i z$nd3ByY+c{xa(!sYU|+$dzJNJ>mMTQwbqT+9*>7*R8ZoW{bBa z*rvhYXYHxBDUKA!Y{z^@jw8=u(wD$5`LtTMTHm)v%>TX0zf@kT91ffGKdxF+wWBI* z)78<{3Dsfy>FVdIUyraqtogF0a78%2XXOhk<@}t{du+wqE7Dem>H3iDw0lN?UX!lk zMc(%3I!u>LFD>1{+a|rnbl%ifQBZO^&xHg2_n!p?I|?FuaTc5r*oz9H3M1pLf!UlPP$w)R-BLwt^HzD;Axg`vzgv174qiS0hy zO4~!W2Jnn=thd=6_c~TM9&$7~Hb4#dDPIR*{-><(SZ^CC3nu*sl^<7rRT)lTW0kw= z*@!w2TRpZqG2-4oUwydxOoV--X3UBu5q03$%C}c0M$~~1SA4lbHCzX9{;C>nP4N%b zfwK{75l-sXY%0`&FQE<`;p@Og!>x70-hUPe_J4!+aqUyuXS5yKL)sPEZmn9EuUo8J zrgQ4*bV<4mI9anpJOBZ&&|P zeXn}AdQeB}6?&yUML$>nkxs3@rlvJxG!ryaH8V7Q>I}`#H0^TD)0(}Spyqd)M$M~7 z9-BpdE%&X>rtYV9`2LzrO#&FqrZQ?D%MM7~g#nQ}-(BD~9WU%}&;J}BefgoUt2U`N ztG51!PdmigM|}dS;m>Ah&7`UrO2s_p^Qfqq)*ac3X`vnsBkD=?Pi11&{zQ26B{Dm* znZ=g8#rXvgT4e^`s)3u=o4;R`RwXrGSoXd-z%a{CuL3`NiF5diurUaI5;e7&GWia+BgnN>9l%B{)eVrN8-_);{&wg)5#|(7#U3~) zZlReLI!WkBZlP0zp6M-gs?al|g`UZKd^`2jJSyNjP2gX8Y6_gKhv~of!7z~T75WpN z#nI<@wv9f+vkbb2XI=DBp1J5Qo(<7{p84hOM8Cp~=iJW#O(HZIXbMNCCuT+;pE{Vx z(oKmzpMjb%3zK-CPvI1eTEoSr73-L$vz#^>TT8WZ6n$~c-*%?O8$H!$dnTS!fYzGf|?5@SsI zJwsn~r}*w!NKJ)<{m??H37~Hwb+-(ToI>=R2pS~kQ8QrS_KCYi^=^2qcjFju({bo& zKuptEH}vj)wLk)5nX&!Z!PCNy1~=@%Cbxy62ZxorGM_#rn9 zf9roHc8ej61bQ1CW1_ifpP*wfGZURaZ0;QN4qbieDtmJe)thvXIB^xha!9r$-??65^liK8aH=oK=LHd7P0+H!%f z3Rmb5&*JFgJljUU%(D#o5YM{k{XBEgzvkHx{d1oAQ{B^{ruHe_i3G69JWOAP=N0;M zc*fBm!*d&b0iFpN^m_nZ^jq+B(I??KM85_nSR-BMt>|$VVJv;-GnlOYcu29%e+6LLAA%4sujrZ{Xng$==`*g1tcp*&B4= zyBr*3Z_oin3msTiIp)R}IylJQpdwjDJTO(?ou$+|So(dX)TaPj@1foYs9nTC-eT$# zSSq-VIKE#-KuSPCKu$nRK;n)fN)DvNQV@_65EGENaSG5i2T}qG0&)Uk1XwDGTS}xH z$cUvNASWOuAmNTEbjqDC838E)IRP;Ni5vg41tkYE0#X7B0%8taFgz|LNI8%ZkP=W3 zkP}EEi@*>_A`@i@B#}8W1d>R;41pxloFR}xnkN%*rI7Z?1X4)*WCAIqeKLU*(mt7h zgu9H8Htsv@9S2eZ3;{6#iJKu4gp_h7UKqdgey!DtUgdm!p#%Balf zZ@*~65tbl7M)(uRw-EjsatGnxA)iM0+$F%jxX86#iTn`Zze3(ZcnEnR;nC&5;|bRy zzwkNNwgLHG!uOX``O(Wh=Vtsh@_53v6~K>w#`zyd-a>e&f+~#8Bs_5`@J~PGG^>#R zlJFOimvVf^GOAt<3rDAqlf~orN#Dj1&mWBF5kJAs=zl0oz4aQv&r8$5uylJ8y0~!+@m%;(rvg=ZFrd5aJSm< z82eD-Lx~S1K9u-S;zNlKB^@Z~KuHHmI;1XqqNW2i9jG~inj@$=f|?`P%@LFwLCF!6 zoIuG5l$=1x36z{b$qAI4K*>3joI}Yul$=A!Ih343$vKo<1c^(35j7W4a}hNcQF9SB z7f~~a-3+2+5G8{s8AQn-N(NB^HAqI4=5t8%7{#NM$9NtY9*sP*E{@ESQT^?+xV~n| z=rDz9HtdB$HcaEglnGN~n6iY%VD2%Pdkp3tgSp3G?lG8q4CbETLQMi{5>S(XngrA& zpe6w|Gf^@VB{NYn6D2cIG7}{;QId_4Y?Nf9BpW5!D9J`iHcCt=F`>kS5)(>Hic&a# zCe)ZvQ;wQ))Rd#995v74?(YlbUU`y!2`%NPbgA zWsZ_W_AsqFvWM;1LwWT`4@uR~!`s!7J#dmyJxujIP(vwTqxeKn125cE_~*cZZqWmz zszeD*nb4F9O@+{u3(X{<$q>^uJW|Rn!+aDrRuIPjmyis(SC=3LZ(pH(S!nwu5;8^Z z4|@2j8x?88w>F_E6`Bg6DHobaLX#1iDMB+DO&6>+`OgB(Q4q&D4oBdtmmmgn6xx@C zwqH^ZF-Mr9(3FKuEYyB!*hW(!H044wNoX=cGeu|$qcBB582*{05eFk@DG0+Xh4y8E t?VIhSN|fBKKQI}-y|Dez0NGsjW4HlNIw>0;)r>@eanU2+IVtI{{tf(^MGpV~ delta 9417 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 W-~|U|<)f;hC@?PC`m=))zw}SZxc9*T diff --git a/src/,,config_mega65.s b/src/,,config_mega65.s index 77ba1b80..d9fadbe2 100644 --- a/src/,,config_mega65.s +++ b/src/,,config_mega65.s @@ -91,8 +91,8 @@ ; --- Built-in DOS configuration ;; #CONFIG# UNIT_SDCARD 28 -;; #CONFIG# UNIT_FLOPPY 29 ; work in progress -;; #CONFIG# UNIT_RAMDISK 0 ; do not change, DOS is not implemented yet +;; #CONFIG# UNIT_FLOPPY 29 +;; #CONFIG# UNIT_RAMDISK 0 ; do not change, ram disk is not implemented yet ; --- Debug options diff --git a/src/dos_m65/filesystem_cbm/fs_cbm_nextfileblock.s b/src/dos_m65/filesystem_cbm/fs_cbm_nextfileblock.s index 27403902..8d2c2803 100644 --- a/src/dos_m65/filesystem_cbm/fs_cbm_nextfileblock.s +++ b/src/dos_m65/filesystem_cbm/fs_cbm_nextfileblock.s @@ -29,13 +29,17 @@ fs_cbm_nextfileblock: @common_chk: - bne @common_load + bne fs_cbm_nextfileblock_common_load + + ; FALLTROUGH + +fs_cbm_nextfileblock_eof: lda #$00 ; end of file sec rts -@common_load: +fs_cbm_nextfileblock_common_load: sta PAR_TRACK stx PAR_SECTOR @@ -87,10 +91,14 @@ fs_cbm_nextfileblock_got_ts: ; Less than a full sector is used - lda SHARED_BUF_1+$100+0 + lda SHARED_BUF_1+$100+1 @not_full_buf: + dec + cmp #$FF + beq fs_cbm_nextfileblock_eof + sta FD_ACPTR_LEN+0 ; FALLTROUGH