From 6cd06758c23ca8fcff76bd210da7b0cca5da46b7 Mon Sep 17 00:00:00 2001 From: Chris Torrence <5461379+ct6502@users.noreply.github.com> Date: Wed, 21 Feb 2024 09:13:55 -0700 Subject: [PATCH] Add support for disks with arbitrary number of tracks; add sample disk images --- .gitignore | 1 + 35track.dsk | Bin 0 -> 143360 bytes 35track.po | Bin 0 -> 143360 bytes 40track.dsk | Bin 0 -> 163840 bytes 40track.po | Bin 0 -> 163840 bytes README.md | 10 +++++--- dsk2po.py | 68 ++++++++++++++++++++++++++++------------------------ po2dsk.py | 11 +++++++-- 8 files changed, 54 insertions(+), 36 deletions(-) create mode 100644 .gitignore create mode 100644 35track.dsk create mode 100644 35track.po create mode 100644 40track.dsk create mode 100644 40track.po diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ed097e1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +__pycache__/dsk2po.cpython-311.pyc diff --git a/35track.dsk b/35track.dsk new file mode 100644 index 0000000000000000000000000000000000000000..2b87e0d2cf7b2b71b7acdbc313f35bbe6ac92dae GIT binary patch literal 143360 zcmeI#PiP!f90%}8Hc59vstHudL7D}{B#j^lLKK2k^Jg7}{Ajsz8K`iP;yw$@@ zi9(@*mmY+rI3X(*c0mLofmCbRgp!Q^Q1K`(SV4o-R#BF3} zeW6i2`)=4=`z5<}u50CyaP_h9?C;^~;qbka-5b5X*1}}EcB&ez|5blDDaMsJic9fq zJk^Y!YQ~ebo@61JDGY}77h4NE-()(u-gV};^Fh!4ww`RR){(WRQU8hidzR1aZ_T7L zQN3%ud;7I&M;x6mgu{0)H=^$gVfMpf@3rc^jVL-X5S|_gt9^|qnQZP1Q?($8st4nl zc%d0Tv%AluyZgL9+nU{7(kLZUeNonbuB{d<2kMR%XuEOSx}$yediajL9#Fnp3gm*$ zTlO{gwm^H}2H4vte7khH;QH*ubK}$HnVTz*|9MY72zJNL;IqN~LC_WSx7}=;5!fRF z?^K%E->ro!S2lXDZVrUo`?BwLe%Z!+DJYbt!uAJ`&K(&)Qcf$$c)E~Gyj%?O2OoH1 zV(Rs)-+uA&%ts$Cjr3PaD`8>&pXz~6=EJj%&c)vArQ_i@n-@O4{CV~3t?K2i3m2=| zms=ONzDmo(xkH^JAFRH)R(t4N-$wTD&u!WDrIAWHIlOPZV>p-Z9y*karBhKl`BD@m zPj)BA(urhnX=L@SwZcl+8f=ZV#_GA9>B{0-B|Y4oly}~G&!*+%=;%+!whz=hTIDnC zm&&7s6JdI^zwkY?AH^iKb8`2Wb}+lQe=L2vG=DZIaE)nxT`|a!rNhU?WgS8V%N$;;p!vd!mr`#k?@_<-5Y&B*TQ77cBUGv|51N1DaMsJic9fy zJkgAwXvX8Uo@6eWDh!16=Ua0-Z9E-c?>hI(`Jkt_ttXqUb!6>n)PL&Up5=4Bt*LY> zs&}n-Z@*IQh@rs5k;pCg=Y_i)%}eq8E@`%6SW|Tst4n# zc&-^gwR_IPyXU++-J0J0rBO;I_D5O&Vp}a(eyh^V{%p-%xw6rBb@NcTy)XM_=aX%m zECq$qMA&}+%erurIQ7B%OT+z@(n?r3`B(M8 zM<>IDM(2Fr_0oy(tIZ1^U;ecEd z&TwUZt&$$;PRcvAKAo16nUNokZy%_4w94n&FO^3Mr^0lmzwlC+eP2Bt&*le5F3oOl z_UGrfe+vYGe+lG*>(gV;9Gxsr-JCq}`(61U*zG%mPX>B}peyKaySZ$%X9U`Vjy+S0 zLT+6k7j)iwl8ikg;PvmBtGum3+HU-3+}6I52oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U VAV7cs0RjXF5FkK+0D=Ec;2&1A0t)~D literal 0 HcmV?d00001 diff --git a/40track.dsk b/40track.dsk new file mode 100644 index 0000000000000000000000000000000000000000..f02c548588ac9f27003fa0f251cbd096a7fcf292 GIT binary patch literal 163840 zcmeI#PiP!f90%}8Hc59vqNxsq#LKK2g^JgI;qHsdvNX`Y+kF(_O2Nglmt5r+yFD#=`fGcW?InS__lu+KFng@mKxfq!?G?C@#gb z@l-Q@su@q#dXmLtrZ5=RUu-Sze3R+qM%T)3=YpQzww`Rh){(WRQUB8YJ!e;XTQliQ zRPWm8-hQpx5l80=;n3Y@8`1ZLF#BP-?^^ZVMiea#geM2W>i$NQOg49hsalXk)r0X& zyx5GN**)jc-E-cbZO!hsG)l?T{wV7|-Bt_E2I`I$XuENHbw?xZ;qV=MIGbp<7RUvi zw{Ft0X9d~=e}FxExwjQ87hIp6cy4^UJae=C*q`_0gJ5^;3_cs|4T7# z@J^+f{oPu;a%Hpc>g9oOdtdh5&XjE~l!8KODr|pnZvM#lk#br|#?!@Q;^ktHKls2C z6H~8W{q~EGXFmGy%y56Dv>Fx`{;3}LWFb7&=v?l*UOEmnHD0jGX_=B}K*J}@*-oKgs`*T}%{mgJBogCV?(J_?EcON>OjHXjjI{8u* zB~NxIN7IR9@XYYqTkD0@ur=5kZH?A*JImGO^-4O{os@Upde5fiWNzfAquU4S9j)?8 z`^EA|VJS@K`U|gw*^kxZ@qGT!$i?~X%l-M~?LYR&#fd?H009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ zfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&U zAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C7 z2oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+ z009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBly zK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF z5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk z1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs z0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZ JfWZGQ@E@2!2Pgml literal 0 HcmV?d00001 diff --git a/40track.po b/40track.po new file mode 100644 index 0000000000000000000000000000000000000000..986be50ff0df5275e00424c57eaada5f642c39e0 GIT binary patch literal 163840 zcmeIxL17y#gxY?AH^iKbE{2Wb}+lQe=L2vG<|ZIaE)nxt*Ceu7p$N`YNM#sbdYb2rc=e*^TkRsmK3Wm zG>T{54V$Y!XE)AvEk6>jJQkk$EnFE3-#gj8-uFu_Or~n5s=?Zy^@o#UT#2K&6wkzy z&G@NiJW=aO7Lw`0Kv;jVwXoAB(uuXMrC%=uJ-ux`*<7t7Yfq#86ZiL=U+Qg5r_)ir zYpr|hwQ5HkT_}V@cb{)W-xb2_`^CN+)q5LJbmCBW`cPQi--wcl=1w#*Ry|q zYRk6I4Oh~Mp?zx|L%DqS;NfI6os80nm!c?nvO77Jjwb`>hF9KNEi8wvf!1hiw4U1; zE-$WD(y{KOyi@D5X*ro4`SIA+fqF-)ywrZVJW@CjrnCKpSHkRv>dAO6KR9xEZfm1I zzqs{#APD?NAQx=Uj6Zi|syuyb^7tS3