From c4565f81a56d75ddb50d588cc29d5d4948453f7f Mon Sep 17 00:00:00 2001 From: Josh Dersch Date: Thu, 24 Mar 2016 17:31:21 -0700 Subject: [PATCH] Fixed drive select logic (multiple drives now work properly -- fingers crossed) and some minor cleanup and dead-code removal. --- Contralto/CPU/Tasks/DiskTask.cs | 15 ++--- Contralto/CPU/Tasks/DisplayHorizontalTask.cs | 4 +- Contralto/CPU/Tasks/EmulatorTask.cs | 16 ++--- Contralto/CPU/Tasks/EthernetTask.cs | 2 +- Contralto/CPU/Tasks/MemoryRefreshTask.cs | 24 ++++--- Contralto/CPU/Tasks/Task.cs | 34 +++------- Contralto/Disk/allgames.dsk | Bin 2601648 -> 2601648 bytes Contralto/Disk/diag.dsk | Bin 2601648 -> 2601648 bytes Contralto/Disk/st76boot.dsk | Bin 2601648 -> 2601648 bytes Contralto/IO/DiskController.cs | 63 ++++++++++++------- 10 files changed, 78 insertions(+), 80 deletions(-) diff --git a/Contralto/CPU/Tasks/DiskTask.cs b/Contralto/CPU/Tasks/DiskTask.cs index ecb2b61..d5c4f53 100644 --- a/Contralto/CPU/Tasks/DiskTask.cs +++ b/Contralto/CPU/Tasks/DiskTask.cs @@ -22,9 +22,7 @@ namespace Contralto.CPU } protected override InstructionCompletion ExecuteInstruction(MicroInstruction instruction) - { - // Log.Write(LogComponent.Debug, "{0}: {1}", Conversion.ToOctal(_mpc), UCodeDisassembler.DisassembleInstruction(instruction, _taskType)); - + { InstructionCompletion completion = base.ExecuteInstruction(instruction); // Deal with SECLATE semantics: If the Disk Sector task wakes up and runs before @@ -89,7 +87,7 @@ namespace Contralto.CPU case DiskF1.LoadKSTAT: // "KSTAT[12-15] are loaded from BUS[12-15]. (Actually BUS[13] is ORed onto - // KSTAT[13].)" + // KSTAT[13].)" // From the schematic (and ucode source, based on the values it actually uses for BUS[13]), BUS[13] // is also inverted. So there's that, too. @@ -170,11 +168,7 @@ namespace Contralto.CPU if (!_diskController.FatalError) { _nextModifier |= 0x1; - } - else - { - Console.WriteLine("fatal disk error on disk {0}", _diskController.Drive); - } + } break; case DiskF2.STROBON: @@ -190,8 +184,7 @@ namespace Contralto.CPU // "NEXT <- NEXT OR (IF disk not ready to accept command THEN 1 ELSE 0) _nextModifier |= GetInitModifier(instruction); if (!_diskController.Ready) - { - Console.WriteLine("disk {0} not ready", _diskController.Drive); + { _nextModifier |= 0x1; } break; diff --git a/Contralto/CPU/Tasks/DisplayHorizontalTask.cs b/Contralto/CPU/Tasks/DisplayHorizontalTask.cs index bc39f0a..4a7d16e 100644 --- a/Contralto/CPU/Tasks/DisplayHorizontalTask.cs +++ b/Contralto/CPU/Tasks/DisplayHorizontalTask.cs @@ -36,10 +36,10 @@ namespace Contralto.CPU break; case DisplayHorizontalF2.SETMODE: - _displayController.SETMODE(_busData); - // "If bit 0 = 1, the bit clock rate is set to 100ns period (at the start of the next scan line), // and a 1 is merged into NEXT[9]." + _displayController.SETMODE(_busData); + if ((_busData & 0x8000) != 0) { _nextModifier |= 1; diff --git a/Contralto/CPU/Tasks/EmulatorTask.cs b/Contralto/CPU/Tasks/EmulatorTask.cs index b2bc3d6..3444e1a 100644 --- a/Contralto/CPU/Tasks/EmulatorTask.cs +++ b/Contralto/CPU/Tasks/EmulatorTask.cs @@ -18,6 +18,12 @@ namespace Contralto.CPU _wakeup = true; } + public override void Reset() + { + base.Reset(); + _wakeup = true; + } + public override void BlockTask() { throw new InvalidOperationException("The emulator task cannot be blocked."); @@ -176,14 +182,11 @@ namespace Contralto.CPU // "...causes (IR[3-4] XOR 3) to be used as the low-order two bits of the RSELECT field. // This address the accumulators from the destination field of the instruction. The selected // register may be loaded or read." - _rSelect = (_rSelect & 0xfffc) | ((((uint)_cpu._ir & 0x1800) >> 11) ^ 3); - break; - case EmulatorF2.LoadDNS: // // "...DNS also addresses R from (3-IR[3 - 4])..." // - _rSelect = (_rSelect & 0xfffc) | ((((uint)_cpu._ir & 0x1800) >> 11) ^ 3); + _rSelect = (_rSelect & 0xfffc) | ((((uint)_cpu._ir & 0x1800) >> 11) ^ 3); break; } @@ -195,12 +198,11 @@ namespace Contralto.CPU switch (ef2) { case EmulatorF2.LoadIR: - // based on block diagram, this always comes from the bus + // Load IR from the bus _cpu._ir = _busData; // "IR<- also merges bus bits 0, 5, 6 and 7 into NEXT[6-9] which does a first level - // instruction dispatch." - // Assuming for now this is an OR operation like everything else that modifies NEXT. + // instruction dispatch." _nextModifier = (ushort)(((_busData & 0x8000) >> 12) | ((_busData & 0x0700) >> 8)); // "IR<- clears SKIP" diff --git a/Contralto/CPU/Tasks/EthernetTask.cs b/Contralto/CPU/Tasks/EthernetTask.cs index 6c0cd55..257763c 100644 --- a/Contralto/CPU/Tasks/EthernetTask.cs +++ b/Contralto/CPU/Tasks/EthernetTask.cs @@ -7,7 +7,7 @@ namespace Contralto.CPU public partial class AltoCPU { /// - /// EthernetTask implements Ethernet-specific task function + /// EthernetTask implements Ethernet-specific task functions /// private sealed class EthernetTask : Task { diff --git a/Contralto/CPU/Tasks/MemoryRefreshTask.cs b/Contralto/CPU/Tasks/MemoryRefreshTask.cs index 61e9900..406b7d1 100644 --- a/Contralto/CPU/Tasks/MemoryRefreshTask.cs +++ b/Contralto/CPU/Tasks/MemoryRefreshTask.cs @@ -3,7 +3,7 @@ public partial class AltoCPU { /// - /// DisplayWordTask provides functionality for the Memory Refresh task + /// DisplayWordTask provides functionality for the Memory Refresh task. /// private sealed class MemoryRefreshTask : Task { @@ -12,18 +12,16 @@ _taskType = TaskType.MemoryRefresh; _wakeup = false; - } - - /* - protected override InstructionCompletion ExecuteInstruction(MicroInstruction instruction) - { - // - // Based on readings of the MRT microcode, the MRT keeps its wakeup - // until it executes a BLOCK. - // "; This version assumes MRTACT is cleared by BLOCK, not MAR<- R37" - // - return base.ExecuteInstruction(instruction); - }*/ + } + + // + // MRT has no special functions or special behavior, but here's a note regarding the MRT + // wakeup behavior, for future reference: + // + // Based on readings of the MRT microcode, the MRT keeps its wakeup + // until it executes a BLOCK. (i.e. no special wakeup handling at all.) + // "; This version assumes MRTACT is cleared by BLOCK, not MAR<- R37" + // } } } diff --git a/Contralto/CPU/Tasks/Task.cs b/Contralto/CPU/Tasks/Task.cs index de3962f..65dd5b0 100644 --- a/Contralto/CPU/Tasks/Task.cs +++ b/Contralto/CPU/Tasks/Task.cs @@ -14,10 +14,11 @@ namespace Contralto.CPU MemoryWait, } - // Task: - // Base task class: provides implementation for non-task-specific microcode execution and - // state. Task subclasses implement and execute Task-specific behavior and are called into - // by the base class as necessary. + /// + /// Base task class: provides implementation for non-task-specific microcode execution and + /// state. Task subclasses implement and execute Task-specific behavior and are called into + /// by the base class as necessary. + /// public abstract class Task { public Task(AltoCPU cpu) @@ -25,9 +26,7 @@ namespace Contralto.CPU _wakeup = false; _mpc = 0xffff; // invalid, for sanity checking _taskType = TaskType.Invalid; - _cpu = cpu; - - _block = false; + _cpu = cpu; } public int Priority @@ -61,15 +60,6 @@ namespace Contralto.CPU set { _firstInstructionAfterSwitch = value; } } - /// - /// Indicates whether the current uInstruction asserts BLOCK. - /// Used by hardware for various tasks. - /// - public bool BLOCK - { - get { return _block; } - } - public virtual void Reset() { // From The Alto Hardware Manual (section 2, "Initialization"): @@ -82,6 +72,8 @@ namespace Contralto.CPU _swMode = false; _wrtRam = false; + _wakeup = false; + _skip = 0; } public virtual void SoftReset() @@ -104,11 +96,7 @@ namespace Contralto.CPU public InstructionCompletion ExecuteNext() { - MicroInstruction instruction = UCodeMemory.GetInstruction(_mpc, _taskType); - - // Grab BLOCK bit so that other tasks / hardware can look at it - _block = instruction.F1 == SpecialFunction1.Block; - + MicroInstruction instruction = UCodeMemory.GetInstruction(_mpc, _taskType); return ExecuteInstruction(instruction); } @@ -309,7 +297,7 @@ namespace Contralto.CPU // It also doensn't appear to affect the execution of the standard Alto uCode in any significant // way, but is included here for correctness. // - //if (!_firstInstructionAfterSwitch) + if (!_firstInstructionAfterSwitch) { // Yield to other more important tasks completion = InstructionCompletion.TaskSwitch; @@ -572,8 +560,6 @@ namespace Contralto.CPU protected bool _wakeup; protected bool _firstInstructionAfterSwitch; - protected bool _block; - // Emulator Task-specific data. This is placed here because it is used by the ALU and it's easier to reference in the // base class even if it does break encapsulation. See notes in the EmulatorTask class for meaning. protected int _skip; diff --git a/Contralto/Disk/allgames.dsk b/Contralto/Disk/allgames.dsk index 16f95c5f22795f0901aa5e3f9cdc15053c15a7ed..d25af00f61fe311ae4fe5b443bae3494b8997a6a 100644 GIT binary patch delta 28248 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 L`h@2vwHf{&#*8n? delta 13994 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 diff --git a/Contralto/Disk/diag.dsk b/Contralto/Disk/diag.dsk index f6f9374535187bd2722563d87af425d42348c07b..d79a0688f56f1458f4da7856c52cdd2ede13d292 100644 GIT binary patch delta 342 zcmYMvJxjw-6b9gPliO%&6B}dvZ2YQMmr`*mg%%VkP8O+DS4W-nCs^ci$BtP<9Q*-= zD0k|jle-{TC_1Q{AkwXaZ@b9h8D4k~oYVTaX03s|VVguWV8sPP))|l6M~}}ep&B^` zhHm7{y*JxIV@SWG_%9PKGSTfZ>=U`fFhpmxb8xs_tyFgNwR+8o-oLzNd|{lh=rheT zjBC^5mnp`T3I`Heg;p_RTUZ^^Pem)s|Fi0qEf|4OuywDT+<0JIiZLltQaDn$QjANH zmco-_;$HZt9cJog#}AC;Pl9L@XMOYN{MFlvZn#xdrLGT?5Wo~n!wk&A9Lz%oLS5=E bvcL&b+ic)s}M*)K|3R&3AVP{=ub$HVak--h*tv=mcP zWTbGVn0^r1vmP~dyO;Hh)DNE8!co60x_ooDqg!Sks7gNzIq+Zx@-Pc?Fb@mhL!c}D d#cnCl+|R3_w*?h8VFd|LvQ2$`X3vtXcGVc diff --git a/Contralto/Disk/st76boot.dsk b/Contralto/Disk/st76boot.dsk index 4580fd7df45d4da69f72cabdcc8804f0940c583d..2add0c3b1cd8104e28acfaf6a584af06625a803d 100644 GIT binary patch delta 91866 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 CZa517 delta 60182 zcmdqq3sh9q|3CaQ!!VA_h+GClL>zEJR75}`G_nCv!3Yu22+2kzBO@IZ6%BDfGDN}= z(Su}&m(A|x`>XYYO9hxq<4zyEsH`aSEv*2DK}`^Elz z_C9;>bDJ4vp!{};tepOHmV0va%Z}5rQqFNQjx#5bZ{o;51^K7u_6N(`WHN65Folzx z6l0XEcwNPcc{Z&0K*NfUZCO!a=Oka>D6`&w*1=xB-q=U6zftQz+y3E90tOeweobHY z{eXT>;s_KvgdIL@DpRIu7O zyr=j6%>z!*0nYGXn^m|gVid;iz0F2%JxFB_Zhz50HlL54V}sp3h!tNBX2pe}thhal z6@L#Gdt9##a3zb;ljED|ND>0*NcIm36r=kML2NdYgIS|@MzLZ=2rD*>X2o6uE4~S1 z#Sh`E_;nmBtRh*__Z3zQf0Y$uC$eJNBv#Cy%!&`Eu;P=~Sh4?gR-B&3ikok+;_;iT zP|swAM-nSun9Yh;lUXrq4l91WX1R*R=iQniiMk5 zvATp6TS{4Ra2qSm?qJ2OoviqCH!FJWWyQeHSuyepR!pp5#asJX@%}+ptP@zV>q}OA zb(j_3f5nPlzGlUqxj#9?`pWj3e`bg0qT4w3^6xsUIF9_E{M*0pZmZ1d zB02cB{=ymy4_I;TR~(9Weq)E?U%#_Hd$-X(uX6kS+E|~@wX^IOJ6JL42`k?2WX1BQ zv^cn4MhoFHxmbR!5X&n{v3#HsOPN|M`}86uIoB0}UvC-Rv@phAjJ)nBmh+s%@`FB7 zW=UT$v!b6E`L4fM{xm==|L_pYo_bQUzCFFf7SDT&kynO@m;$Xijy+jrivNE1hJf!D3`xNQ z)3e3$X0lj5o+Fm(_r%g;o>;yxUo2l;D3-GpiRIEIV!3vySbqAxSRP(3mX}tD<=srN z{AZSf2etEN@ka<)8b-vR9Q@4m>25BdbZt zwh((n+`?N&#mM_LQl#*h7}<3~jC^%cid;PV0l?ZQvDlRNkPtaEQ?TqkKo15V`P73p9dDqBJO ziPOdTu`cCuIy};$GLY6wUovj|Ve7*j*Ey@Mn&V7|243d4(-ksBU&T4=@2&UuXzk&u zTB6GBIn8FdO^MB~>Oa*zei<3~;)pq#nx87PW(~*r*aq}|$F0O}e0z%ad3zuI5c^HN zC%12EOdEVFxjkvXsdKM9`St7#hu1YvH1^ukesb3&yKB9YUH57}b9l3T-IYfBSK8Ot z1i8$vtNv6I-fM;J+r7ux?YDbi=VU*oJ?rtr_LtjZnmEpu>rI9nXJ2f;#Nl@bSI1b# zddEEN6|KhUn-rn(%`do&yY3HDs^`24N&um1AUdE#fSNkufhyBR+Gdv3^jecjxVjjArNCwe^}i z)7t3>|MPzwcc?|iQ*RNR-EkJ3R>O$>u!aiN!w1M>-}B&^%ArGXkaCO zN#XG#J!^`!WMN|B=mToG0!!mNdVTmP{r-$m*JaMMKN2^_8EA$zGSbWU zQ(O#V9blFcD<+VKhQ@_4~G+UAIid?%Q6a;yh$|?^RY@h`t9G(Th_TxbU^U@(|jA&2YJw{XAD0 zXT`0TuaoDJ1BBzO_|W0hn z>+al-D_BRbgneJ<_Wm<6;VUO=$4D~P>X%7lzf9W(w!9ZZ$sl=swymFIuwBQqf81o8 znQU%bU$%bypfU2V=mhVKkxv!UKd?Q@8g-7vK2|3h5@QnCk>u{5zf(Ly`%MB=N9khpIuS>@yjGWOfv7Bb=#Y}$b zQpd4!g_*Be>KGtb{3x_7r4M`P=8bknosmNR9C}^*K6-tWD0dciFL!*3Oh2Q+sH2&K zka>88Gzk)kF|wudM(k21dhwej*YfvPI(Epe3b(Qyd!RF;(PWIFoee>Qe?CBi#J9<0 zTynZ5V>VihCYtGk%)z;0rjYZlJV?gR{K&C^td>yn9@%je2j+?3&&-$CI&d$?M9lJA z;@9a&`XFDW9(>e#M}4=0nP0Zv@hZ8aOp;l1IxfYr;~B@D=ie-J97ua>TqrLk2hm2y zRPr6)zDOP|+}r4Qk{v6WH2F9g-@eK5JdJrSBe(CiV#hly7MzaZL}vg=W?)$sV95q{ zu9BaS@wT5i#?Vb3$wBqyT;N`w2>xllJVEIE!m*legV(N;XA2>fjuy7XA?xMdWHbjH zAJUj%gWO$^S2?z`*i;@Jq->Ih@v+s8UN&?wruo^E*BbbSP4ZQO>ae35%gy>2TP^xT zo+IN=eC?P=J1pBm9x^SfaeT-&ePXM;MTkG{sAu0@-!4BRM11QwfpyUGsXSZ8yPR^g z(00n*@@qoYX~z&2bK4^im+^{P$BQ%;uupzeC_LvlmGu%)MlOz;3y$pK$WJeqy9w@> z$bmyLh15z+AoqYgPpH1)n8TWsR>_|VVb>g;SyI&@d7O+dyY5&+o77gLNz)PeF(IPC zF_tyyI7)Wm{hQc@w%^DjWc-sR$69tenEXrzla8#6{52eHH-455auSI#v4cDwvEOgw zn2q_4oT;jNI8#kVlgY#m?gS+Ezu(n~$z(Pe=?12WG5)u6@)bhmL&q%f?nS~D6Fc4$ z#RQIzsgoOo+((Y&Q9NnLk$9=eOuKjkUA)=iD99XzKEFFgqLWfnxyeFPrlXUM-#BT7 z+*Y#p#6HSXIa4W3cvDOe*0f1OOyyGTOyx9YL~LujIM0pO$hq8jsPA0C>o3Oww&c#& zaj^K*17QtV_V`A5zK|=^t`f(TYD_hyvQ?RlF$v{&b~H9ujB$L%BXSXY z18%AA3o$bS~X4t(?Zv5UcPeF*+?f8!PRuQ$sMVbX~e% zx*bhihQyzIx;pVoH>B%m?0qrDzcS8sj1V+jdsOC1syPylN%x}(>0$zRy!Y|myx$!s zo#5-QtrzD`a*XK)nzbC87%+ltg6%vKF{Q`QSO$9FJC8WI3vthDo6y>nZcaDSj1_48 z$_rfsG^bnAO*BRyS&*kx!i&zs9lYf9NE{u`7ClNoh z9gVFLW4y;`?FHe$IBkGXD1O3meF3ytNAF@D2T?F`-!WR*c5t~pTY`8}^`^>R;7{^D!eas0&~D<$t1uMML$ z#&~TIyC9m&vpI7q?Px7J`Z~y}4}T1K%Gafqv9F6QH+I!Dp~fpg%2|-09i=0EaoJq9 zow=O$Y7u+oe!>^oc5PR_%QV)fkT^{{TgDq_TPb+Y5G#jW*Am628}`|{Y`<(f+D`$N z;MeJ73FyfbWw7!VTxMu-Vb3;X$7K7_%tB=Loh2<6i5RmDG`0b;;cs=tjM=8_7#iD% z*x0v8j6TukNW`3Nq%oe){K{&mV19?3S@hw#nglG_CK@WDp@BmFyX2T*kK8XuSvm4E z=4u^zlKwpJm8o^yxIo)ac=n!lwTw5+(~{Pu+2z?5+PavpcuDTa=cj93g%k6%*I5_# z+2uK0b}5a2EDnmll&+mCcr4JaXSZ^P$z<*g3(4H+N_bDP(g_b2Y1`O$qhGUf5uPm3 zcFNcsa{O`(IXc?a7P={Cq2Ds??<{f7G%I&r=PV~L^QLQC#j$6-VWkyDWoVy@CrFMl z$CSesXPY<fu~zH|BA9 zb~)uVwi~fac_c=c$8WBcmv~N;=8;wQTB|+A=0DCP&fh_BT}SpEn@*lzo*_?1yV*;p z(~l=jG(zBda))KRokU~u{Ahe1o30SFfsBrZ>`B0wXP}|arJ0s!2MRNJawDR{C`lvx zY|bX^vjfY>K1=(!tFbxHlE;>*9K+B21jBF4AlI3qEx69)mFAV_S?E?Ok@)#mlGumT zaCzkxF0Yiv_KPuY^ZHA&enR7RX?hmUVwcBO>3}#r^XFtmR6Dho#pzq@EIQgbCqF1o zuX7iUs_4~LE_~G|BwN3S+#l$KlGcz3`R&7mmVHDfG`bAwmbK&{j4CGwA=`5nqs3&2 zq5W24)NfRhQL`l{5wpceV~5#E#=7~;zWhUS$oZ65c?s=D#YqW< zQY*af5x>ofz1kt9>>yRVO$uYD{&C@3s1;tES?zh`j(oL2eS@xLEcdkRmkkc$i5Z2^MS zYr?Q=+OODm5no#Q2rk#PzmS)J`00nO1_^`fwZDp!So{^4GabK>_qC*L-(Vf8j+1pD z{Ry?-N^8{o9f|SglU54h$!W@qlyQz=(!x4E1yQ8V3VuKb(F z$i>^w#_5bWf`kVolg-)mE8PT}&8puh+157yF2yVVAfnqn`Iu~mH+PV^HvEaGy3|~1 zDP_CxA$<)cNcg(HlZ?IoJ%A@XDA;sL9qFDz2ZI!1j}znyaczwX5&UAMqF!hpx&zSe0)~7B81@2FKL=920J188qWwVGLEwY{T>lbiISeR|0&X=xz%d}=1Tg(1 zka`NpJp+{10#)aM+KWKbWuT)Du>Aqh{|Jn_0mS?S%)SYv-vSDL26o>Dj@||8egW=3 z5K;9A70xYyPb(1C2E?}mb31_SCqQv0Q2tcJ!IRcFZyV&+;$=u(Yw%fD%dT#I|NfAW zx9MR`e*miC1n(Z!ZS16X?@1ba((6gBsn$$O=_iPbIM@8YLphFIQ^-FdPK_25dSP?? z%-+`Y2b| zLi9ka7m(}?WDEfceSkf_K#d=8H2`=R2*_UmTt))EP$Z3x!*4)_6-rf=nqrg0zCvZKgJJ zn~`3R7I(|s+(XK&>?!G#T2ezVsdWd}Vb@kpTfg6}wT*+6snd34`gIsObTl)gTV|At zlsVH?Qkt8je0L&tVbdwaeS63gIIjnqy?`g)fZb5QYZwqR9EkM?l1Bg;&jW=o0DDFP zH7^2JUjiP!tP~%fg`vVF9Pk|nghv1g697{buqqnZ90OFw0;l4DhN%SPIIy;=hNX^8H(9~r-Kqq2pLE{DgUN;Y9oLeX1%%lE@fu*R zEs$*o6gvRrTHvHJ0b9HVmmcB)(&~zssz2a900{JuvZDqf+xQ%+-1Q#2W#phIhdp`f zNs2=92D3|1(mT_Ije~lK_pQ9a=xy6j;LtGO{BWSzA9ykXunPjbf`O1xKx_z*JQ~O_ z0EJ<|o^YUM9B?%PcsK!&zY4fa1boR42H8myJ{d@u0+?O{R=o~vo(5FD0i1dhXqZ93 zR=Ir^*3D+NROOjWs#q|1j-==mNbM){v-e@wslb09rwhwWQl@1=SEj#TsGkR2{};Mt z9$749UQUyAZ<(a0>0PZe{kHnCi&jXt)Ic?v|PIp_G}mT2j#( zNo5~NI^++yp&^rmhkrQOiaYfFam=FX zB%lnLACeg|L-2dzpb>L?&LAX&)k=y#FKO;Ysi8q;un(yaN)(Q0SX?J1m0#^j@;8JU zJcLFYDXIRtl+;=;Np(|_`>n2qnTB!-kWMKx_9=8Q zS%tGELk_7UWD)k^>|D`xYrID(W!9*=GW{b$BiOkzuv_Lsjg%?xEy=}RlCNV|>&%FC z5$s&??$$b?kCbWZOEiQ`f{Un#lF?GSCSKFFtzC5M@!Fwb95+}oTeV*^dNN<^#cjmb))S$#8lph zxeoyXeSitRQua(gX`E>RlJWzI_;R|T9YN^qP_WeE;wa>)WBg-6W7xXA*lp&WqosZv zLM3^Rku-X2SL@7}bunz+4BcAKiIg(UuXJTr#K~f|(sditEpy*QDf8GQN!KPzdNf7l zD7PhT;zHvl#j&F;qFZCv1S!!k5mLv^kIRgkK{xYCx6DMNl(}H0q?{y4C9|d0@v?aP zICi+jbZdQP4vEwK(~v^ek3ENr_m2;aXR9{3TcT#Z)TQS_GznUSy%n_tYp;&aj9(Ye z)-1kT+hy-dZ7s_s?OcIgsxze>cX_20y!U~mryoM<#L&b^iEN#W-MSuRB+9$GgO77PB`erG!rKBs<-xz9S3-xZdOt5?iMCyJe=IkTMHSO4@x&($OttE7eG*$HbGO#_ z&m&%SsVmVxIW(EA(#md$K3AkJ!+wwy|D&Y2H@aG9Ca+6otCZ8Nb@5Fpv;0<9W<`oD zc`H3T)^y9Pzb$39-X-F7^rE4<-$nO_gmk?F9$_gXT7c=TKx!M1+YXd=098*2*j4R( zCpv0+D#i|W^c1grwpM`N8W`0Bi0KK;Ruj;E_>5jX>1&!Va>C|bJ;jHh1-+5A+a5UT z2-G-?KL;`kEfLAmS5(C7>0?Bbe##Ep%9@vur z)Fc8|rvnd-fP5C<@)qFxHW2;}knk>GdJkAN57;~(s9Xq~S_CvK0os-lu(i{qW9@Vq zQdO`SRZ&?;pP3D$tpf7NJN?-4x+52;&I2yy19vPyX93`_0r2L5(VKv{kAXR#0Ol>g z#;w4fN1p+TeSm8j;8zZes{|4c01K*soI^lKHE`evaONn`SOc^l12o?P zp5Fn%r-A6RK+-v2*#*FI3E25PaO4Vb`3KK;cm!N;0a{uC$V*oRIMkt_!Kpkd-U55f6$|E1=36 zsOV>N!+64+4A!17Sl6 zJjvCXE444BcZaSAokzK>wXu4RtC7)vLfSBVUS#fYG|l!0iboKzld1A~8}UMP@&&}| zM*^)c0;|O)BUI#*^ z5wKn9Fx|#s*X%cJ=y}X1ziD&P`I|LvHhP;Vn>jX1ZBE<#ZIh^eN#m*Kqm4ER$~}F~ zMt{+VFEiTEH`)ssGtiB&aTdnB=Phia=565WJHW$t+2{BL`CL@Em;m1eKzJ&Uuoy6< z0jrh)o6~{H4B(U*XvhNEvH_b90o`gKXblkc5ioNtkhTuUUk~iq095n9#ZADSkAcol z0Ebe*dz%P;^bQ*r^6rFJwyFmS89Qw1*o&lbJCQbLH(=faY}^OzD+7*|1J^2nM+X3f z0Jwe$_#FnueFY?b4J`Nu$T<#_dVcgNz>!AaauaZ`8F+dJ(Eeg`KxS97=E|5W)2@thw=Cx_jHyfDuidwypUL2dJg_-5 zz@NJ^t!7Q%o6`T1+a<}kDQgONS%0;5IQbP5--LXT?0uNcYH-++|gfvi7(qQ^klpTLQ~fa`w)E&qr( zs8owrL^nAQpa3GI&~z1QQf+`-4Nz(eRM`Qw4nUI@=x_#X`>M&Or>>0Q&%3JQ=w$T$ zNQL!-;dKeI{9QNoB)Wv7`m2Lv{`~y@>H+@#iIch4xmUT#9{nd-v0Ua{{8=vg~qz?oNo&$Cd z0*(#_>V~RYWr__8$*zs*v~j0ny+2HhRrw*uIRNkp1j2%V_+Vh}C?GooC>{-z8-SBx zKz%sSIu1}p0`9K>fv>6!GDX?@WMFC0>IJgj`3KSJ0fyff{<~0rF8qDr|GZFtF0@LO z7HY~GtJLlpWYs53RJ+NitPzqYs>P2287Ez$b4aWH%G=N&-S=1F^|K@*E%|1t^>g>@fi~3xKPsz{ACWd@11aKH$5Y985}? zEH=Dg4Il2_^BQ}jeBJ!I%(@x$Mk>C=ypR*z29V#iFw>ul4Zko(I$QhR?0)8Et+_=$ z@x^fyZ%w?_aF?E`tM1b8={xBcajz++E8bKX6-kO-TrT|}EjeW9mv|l*4-mnAgPMhi9MB5BTdi%jdrlF`vQSTJY)L2FTRaeYyJ z*X(w8&F*YbE1O*_o88%>yX3nYq82kV$P;*O{hET@rJFeU(`V$Dz>uy7ZPIhQHmzUt*`{}z zN8EH~bux~AMx7oIw8ci&vLKhX^dftowj^gH{URSbUcYA7ro7vG8hR3W$(}u-?}ddntX{DbgfX*a(|dZN3T4)@<<_}Q}+z1SFAH}x&1 zjpSGR7PoC`ZW&fwkV_8b;?z*_Am$&)ipBGdf3T$ZKyeiLA03pOY?9;1?yI=Ajy5OT zCPg9Hbl+lWs3FBm*ie_Sp@tNvkndh0?IspaEau+B3h@u}yT)2kypN2v2f1MN=r&gR zwyzh9Ra{8%tm2*|CciqXn4WJ-$WY%TMD^bn z#m3BWbqN>7(6kWpeO+D(qg6c;a{FTBe~6bb&B|adW5dLPkA53M~?>Atf`S1WJ^Du`a(-KsE4Vs>KoW4Ll=oja9WJZYD>OUWgY`czUHNm;mC$t7)Z<_>(OdWggwr0eX( z`JN*s|IQxuE_!Qr*h}^h-&n6!2tz(6yNK3}{zBSoQ!Avsma-o~^Fb+CBp}F_eW`v* zudNSx({Z)8Gu@kwvPS#*3c5GNPvMYDfXXZ=I1GFm)Xkp;=^MiXjW`1k_)_bAO zYSsMB-<`^nyNsmCjrNTmjqDQj8IH0+jpt>yF2}v+7pksBl#ExqNm+1Bm2uJ2NdTpz5_^&Zza(%nQF zh+hV>w7#n&r^nwiJo+KsVsv$W0^Zn=4$Y;+qRK=+fKr6!HbJ7y-iGszu9 z%eVYKz=khctksgoZnolguRAJw^Yb>4r6$Wio;TO2)x4>vn_@*eSsopEe4xuBbIqcv zSxJ|Se97&|e+-;LWeDSR5oRhK5e?DU@zpE29d2e%^ZbYcDjiW?6Ah9b5!y)hA9*_& zcExc&&eo38uU2H9$l)9fo)Oy=vJ*Kqj)pfq9oFk3xdJv&SmEq!VI2~+rrJ+IUJEgfg;l2K!)Kl(44K&WtsgW3aB_DP1DbQhI}#r z4}SjLevUoOg!JnhK6DHD(Bz^|JniT@^yPO~s%xm?=>^7xeKLv+eNv-8NtW*u2hYzx zu67bK4yk?EMaFl94r@RchkTJ$`p-*^701==km+cQ9K#0k9|Jo$^fF!7xWfj!3jO-i1$0G)~?W7 z9LT{FSrDmHc^b%pWB89thkRmzo_tuh#X%MlIkq6u5Uiy+|9QEPN6;J(a{;G|99Ixo z6QPYDIsbWykdH4IsFx2i%Z+L^&baX*F9>5cvt%`Zc=oi8Z#T$HO?oHiyuub6MuA9mK>L#VPjPq3K zvp8}KBOU*bHz~S(viw^cGYRAsIDG%})-~D^>Z#DnWe%)||HG|IVTtsV>*aE?xrqPM ztxI8{>vPO%h6|VTfBn|=|MFro`M>RALU)1q#g|-E_pvwQJE{DyFC?4QjTOzZ#;v50 zd_OOfDQRpZy}1F(@p`vzBU7x7@UqLMBNa!MZHe#- zR&bm&vTVEY&*=xyxHz(GOO0N^^2L!UR-e-A$@kL86syMT`OJf!ed)Fbc8#o_E)3uJ zhdO{a{i?Pjr=HM$jXdk1(A>b&4|Q{B^Q2~fGCKJox|$c*V^u-fK;C^yFWJJVo6>Wa zm|J-6lJqlaEI!#uzb!=z?n>JI3-XRUkT!BpcF(@Kf^MXSZlq7w7}--Dwq}9C{ol|- zRVzBswqdwK+R>8`))>Z)Ez$SPY^l2mFUx>jzz&@`Yo5Md8YcLY+MfZRSnXVkm#!6K?&M1}K9fX~Z7SSS!b2ADe*$R1B1zJYynBt~EU3W6tJ z1?ndPt&=qAGV+=2d6P9fU078d0`60Rz<6Ln0$@x87Ec$!=NUDv@^6a;^9+rS?pa~m zOr#u2(&Wi{e)HEif2rw9M*OR@H7iI0e}1+m&PvUxd5>VHfkMRFnqtZ!VMf?=?u2Ck9xc5fS$NXa#l0Mj>G-na1 zVlpq0v~elY_Pj5p9a}C1udR^uC{yD|e>tK&8zXaB1^DIw;kiIU9$?A`R#||}1wdsX zaB3saAe|3w#iWLfQu7JMMqc<4&y}F9K-6|%=BGf~E+GFiV8>pd`g7po7r>ngpmRUq zPz87&0!CL8uyIU1f^p0_ikP_u*mw-scY=VO@v1CUL0lERv~&vg=QMbK@%2;EQns9t zq&z3d?SiC$OOhhKmo)tfq}GIKVl@G@Z-rpLQF`xk?vGMt>5Z<;1)40)Oq$uFTW0M| zDYNO8q>i5@+1?>ybFd@7=ge*!ZEfGJ^{D$KP7mi1|n zq_)elE3jKY`?c-X@BJr;SN$V3aehWbH#J1o3;l&z^}^8`Z!KwV4h@Aa5nCuYBZ zu7r${n18{G*v#&ifTJ%1b)mrhF(RtQp~5)=@R|8|RWXA}0X;=ZTWk5(e z5Ssxcn+e##Zq7op!fdH(-zrqqej9GvPvn_a-b_Sz%R_tlV%R+mU-lmlzF*Y(!C>+ zo*wOLo#j{H$JR~Xt@V)OQl{bCuFT3nxgT4%LESP_PD`0tXC)P#lT>y=Y8@CB7#qme z&8J)I>)%V6EmyiS$!G$}x)pQ7yJfmvmofwDB}Ftyn%*e24weTy1hRD-((Q1}ZI&`i z?{sAb1cwE)bsN?#v-ZA}+4N9S$0JF$zZ1#HVeR<`j@{tLK=hwL(qF)`zX{l3UGNW@ z?R+Lx9hKRNmtl2CSV(LLTbU8v#&O>o@hTM{INK1>jStb-N*8lmDHv~uV2T3?(yS~k zP~;4hxd10zf$MHSi#wq70Ne%w0nY&ugMjISfz+Wu?l7QqI8fzJz$SlwgfzzH=P|~P z7m#H;3eblDqecTU1_IVWau}MWha*-n4%i(59Gw8vMFIDtMN~~fh4W;DI5`Wbe+y`R8&J&w+*5$SxxfSy0h`Xu1(?p_RK)TY1KZMoL(72k z=|FP^@Wc$*tpvP2075<_pxaQ#WW^N3kn@OKJ^0Wtn_1%Tq^3tj@){&(d;}D(MJr+7 zI%!WGTQBL_21$>2TSqzl0Z3d}TF1^4A2}`!;PSUpQle*KK%#?CS|=qvJuM|^Yl-M6z0YGS zqb~w+mw`ETfcYx0@fxu2I&iEWxYhtXY6KKN1Fp9Lzq`P=Ux361z=B_aoZov z0B0Tpjei2|e*v0K!1JkygTcMU>q)d6NKydHlz>GA?6d)nXn@PM1a!&y`*ywQXEyrD z1eJYn@uAsM2V`lTfFXSVLtkKOKY|S{8ig>oe{XT6vj!kmNnttgh)KrB4wWEP11JDr$*p3DC{o&Gi9o?5 zVE1I;=oFytHQ@g1BB~Nm;XEDiF#=&Tf%qg~?rb1C87Q6ul&1hE=K}R6pmhPDS_HT+ z0Roo-6W#}m%Ynr!fV@m#+e+Zj2f+Ccf#%h~lQn={KHy~mLJEM`LLhk~kWmB_76W@W z12rYU)l%T$HbDL<;Ia$w{R{}-3nY9Fn7#m3RREj!1C z1JS*Jq~5?Xd%)rd>~sQ-^Z_pS1@83&p7sZ{I$($=V9*0oy?_*NAZrLvj6MZAfS8!a2p8(ya+_R1WbP!NDT#Y#{i{cfvWL9Z6wh23efQ?U>gJIV}Vg|K+IHN zc07=t02CwwyQc$3jX>Q@;C_;bs<%<${0`vrE)ez}5I+x?J0Hki2ox^@%9j8qmjd0z-vCCv3B=3*X3qlB-vSEW26n##9DNt4dk?rjPej!MR5+&sK8t~{G$4K%FgG2@ z&H#$dKzSB$G8?F01+?Y>sx^T7M?m0OV8S}UxE@%%0m$QlZJU5Y9|Pw<0h+e}PqqSf zI{>epK*(+&b`Oxe56CD33d?~#l|an_;A$1{@DLzB47hv+_>#X;!JfZ_e*+{O2Tb1r ztG)v^p9U(=0;kRa4Htm6OMp!spt}kLT?3-712gM^v<4u*5!lfLR5t?`?*Mo10iE{& zhhG8j-+pwR_rcLg;40nY(Ium=!55J-9sST+c-3`Tjr9j>`VA~Gh&`#j|ZlHM&@MIrg_XXfp0fg)aVh;kz0+8_~PKa_x(&>{3#9!5~>s1SdhTL9wx$U}*l+>c> zO4_fnQf(J>>!c(%dnqZvQBs7Hr0IR6hMF;&$(j*D{>M_o+QYF6AV74FXmIX*@1%asA8APgR7e|7D z%cG>E`ynKW?u)9I0l_&G?S_m&x?!x89zPzjlt@&mwPUoCwIk^MQ1h22IgS^uzC!+z z7TsLYt7u;~5jZgkxIP(ZnF1)|0k;GoAQ6a|4oo)!sWXAxB%pLQP?ZeS&HcQ*wFFRY1>Cm-fu8~sb^*rEfW>=(yw8DcUjTL+x+2JHbt1?ER}o}!MO;O7pE(*cQ| zzydvx;{}v>0|$lxXMBK0U!dI&(2M{)p9g|p0HQ|%NiPD+UIHvH13N>3BV&NeV}X0) zfv1sxHVPOL4H#m8sj)yx9FR2?D2fNl5(wB|eG*P4YH^#WpH4(CQY}WLDQ5w0Zvg>s z0}<~Kup5@~U8#e`?-8*-vn1rrlPb5(N3T^2(X@6E(6j{TSPIyt6R=*rGSF<48L^lw zV0Jc;zKVeUxgw!32id!G5j&a()a3*BEh4Jclag)2WrH+GUmoqlHX%FyV=2q@31Zn> z5G&paly3)4ehSp@0$M)9_9);e{mGl7 z(DmnZgz6(?WbBXU2p5lHkj*t{D0Ch}mEE_biv8Uj!TUQ>$L2ozw4}JRlIEO4i;N2x zM&Tu3&-Xyh72xU*z{4N4PU5fB8xuDrV4nlINe2g8z~f{Wp=gv7~<}*`J$P_Kc984f!%B@#?a}3aGXwU>#rX;Up&A=_yq` zRg)?f)Y=k>{SL9CWc?Z(r1(@V5#7QZXVO^wGd5W+QnbibQkfg1Hd+}S6WIbhq6^?f z|DMeazW2QWO5Wn+6vi8MPK)VVd;4s7Q}MiTU5EZ3d1By-=K$A1fZt%cY5J#ZgovTi z2B#0}+Tcp#dgDU+K&G8;upiIA4*kTt5G#-4XL8LAm$@r_F5?^ zV;xCi<0@P)Y0m~UJjx@#ZWD0-V-Zy)sBkVNVC{Xkp;g!psVZS7s^;!SdiEZmcpp$+ z2AnJh>MMcP0|cyZ8$lYI?n`tTcvuQXeI*5FevRN_@>gfsjPs5I+r9-3eFvOB4K$wx zo}2^hE&^Vcfsi^N_9~D}9%rykWLyUd>j}hX9s3$EkeWsWuQmY>n*sS!#22$n#St&r#T%gPZoLB%{ zPX$^Q1IncYY!|w}k6jqB9I=QM!1PQYbtRDd0Z{rOP_-JUT>~_I1azzgYzqK=Apze) z{??xmvJsn&DMD~|F_69)C@2ATmjXw(0d+eF*!Umr6g#T=jMRvSzsp`y#e%+{V=G}_ zpkaIkFn7Py!>WTwDi#nc{}MQPSW0U63Q4VBBc?hAxSs$5PXZH80md`H;#wf@Jh1H| zaOg5{z7A-<3Ou<6*xdlUegZ;n0&@-ufW6KoW+;XT2bNB z2KcrE;T=H269RFG7j$AdRy`Gi2RHW-uO^jp;FJPrPy%f#z(x(|dI3Sbfhc=mrX!H% z1myPtcJu|R`vDjG6Nn?bH=vJree3i<&_Ul79O6ZSVxGafi&KZ7$s8XvG5Z1={eXP| zz_CE!S`hFk7*M0;J_=unOA|vi9q`#KobXe zP6dMFf#?JvDG^vU9k3XIoil+WNx}-k@_+nMN)PRV#UX#Smg=CPM$=p{uI!9hCm#t%{gSbU+Ag}xznp|42k16KuOd+Oh`KKS{xhHxX>UB?UWwmVypjKZ=~NDf?%f);4mEU_6J6f0OFnp=Da|_MxHei9c_FOv3)Ngrf#%qbgXAj73T`} z<6NXqJB3PPZW$v^FJ(3*Na{$GWc#Kh{R|>{2nEl={G#6ilHLZEy#rX@C1A_4`#q_Hqw^%y z%|}=F79#)YB0!r43|R&k(t)WNK#Cd2$|7J}Db7ZZWvdW7kwYNv;`&??6xo`GJmp%c zsrx!q1*}KYhz-DW9!T8;4 z>6HX*xayXbE$ds@zTL@(Uh312{J{zG*TBDY86|Waa4BOy!`NMgW=9VJb=AQABOwNb_Y0g4>*4xXnqJhc?8(~4tV_mgggdf|0H0Oo%0vQn(;Sch5rD1 zo&hzozTySzs+9=-p>Dg^BR1EKnYs|8tBu+<`KMcL>7%ug4#Q*>4>TIB*s`fXGG(*UcO*RlBA|e_Y5pf41 zB0`!WA~K|b(1^&$h=_=Q)QrexxJX0MV8FL^eW-U&+DKyzi?Majau32N^lXt|f* z$bAIE_Y<6ZfWR@0z%!j7D1%^KCP7LT!M1FI(p-YQTL?O~F;MnWqcv;GwAo7gr=@%A z**x0vwxEjAxP78FVHcKgbhOy81bo&Cd%nTW8j# zDC_w}G6&0HPE~^Jt3mEHjFgkbzm|3|vW_6Bo*;WS?XtCaFLLz_p!P;kUlYwWvY(PO z%?##m!`lC_!FgQWN?x#449C7r%QnA5+3oL&!Ls*6w())PIzM2;{A@e^p%@+iNTBTz zhJ4(mmm)rWGcb_=tRY6%v;6C?_st}S-a=ry zl_2dlg8bVVRECAPsH|1%X&amFV9S&p(C7_%lb&DG>!iw0-ih6s+(4w!XY0*+eoe2J zOt&PM{>h-oO`xO{q=QsJI(>_BXyc`HQ7X*3G-2w43_<)P*dUp`88AmOK{Hv5l=2*N z*zWMEg3Li>LAjX(}K+1iSq@uTItnNPqZLI{oR)UeY31;3Q zSky`2)y05c1R>pQMozJZK&gjmE!%s@-*tqbp_ibuk7m$B>LU%2{Fv{Qj`{de%x3!~ z$mImh>+==O68<$o!Z!pN-x8QlG2k0k^BpEQ@I9#K3~1;FB2Ba*+7!(XaD}uX4ihjv zCWVdcd&A}Yy0^@LO3ou4ql(c*^UI-DN*|n~@z(yO^I=VlKE@Ek zn|VbNXH_(AU3?+Pdm$)PBhu!WvKW3j?3L1K7sJfIM3^lmRm^VX`rId(O-?YoF9QuM z0ZlAjN>5NTm`o<#+I}hQ>H*QulSpIAHknPlwYMZQaW%{=Z&2YHP^}Nr391C0iMQ4! zrH}Z*9QGHcKEaT{YkONV9j}Gyc^xR|deFKXMB1ECmcVQ4l+xSQ!YsWBwATpgxEXZx z7SPzOpt;+KG>L{pQzGx`a3#BiTxr#oFCAWBT@wp6%p}z8L~|l9>tks%(i33r*a)gh z1no~kI$4#hOXOwsN$HcDU{0n8Q=e=|=4E{@nQjll^nVBx`7kKy5s@}0mnHMEj!WsH z$6(gw2(u+cmAqRy$G(!x-mNf4o&e1}30jnobc!Lxl){S}lG4Fum@x&y%uX?<@ZL^I z=Jq0(yNW>#C7{kyq*GO?x)k2qX(@fSjK3$~)e~ejPZAuSf<81&($qN`v;Tv@{lAa`|0F5uFSe+%?gabI=B5R1_@ZzDs6@?3 z*_`?d-I$m81@jIr#Av?;bowIl&R@(tC7@l*fbXxj4pyi$$m9Y_bERaS8v+&Xw5ZVo zi@H7G4|stlRugIRRr$K@{P6l(ulZyt{ebU!B}~7ogsIOrbjK!pLI z+G|DHoL`pDFN;7aedKzW!#4=C#jMKbm&J9G=@<^v(*O#J0IiEe+H5eJ%>1$lmD1ay zVV15FX13XE=9k4<$?S-QdDH|NiwDgmfOL0(*4zyWyN5_qs4p}W@~&=?=1#v4=8pS8 zRSz&y4tmprbig!)=EAZwF<;H;-biCB1=3G=9A4z|IZY6scB19E>C=_*x~u8fzHE2X2}hnf6= zF!fc2Dt_{8mCWLgVAg*OYX1b(_bF)fGtl|ZLE2+PnyQu>Rn>0g5Irr;9Wnqj_9Q5E z5R^9rDjNnhj)1yGLB~&n#>YUmKZ0C-0{Q+-q^VOi>1%i=CDun^LGynJ4*y9o_!q&{f@SkZ+g?TBZbzWECx~(&NOmO1T|`i9Kn`52}(8)?7oZO;N1lM_Yj=Emtgijg2kH&yi*B6(-M?aG%bb}Qw!hi8>RHgEifmy2{XIJ+`=#PaLIIg3a0}(!td*V`>;F8<|o|MQ*DjD6J>hyPKe6FTv3Ug0V(|xh4YLn*?j#A_)5r zL3}Ggx|LwZ+XPkbFyKe0`CZzeL+{bp$@eif^#P699i}n29s>U(1d+Y4ll!ofx&4$Y zI*P&iV;F2d4(b~Kjh>{y%pd~VZ)s3-DEpB45I^o4q)J1+Lpb((Q0f^_-VaFksCsmV z_<>K7(v3gC?D|=l`W{0MKk)ZT=J>BLZO?&RW*8|4(dRsEuBOM_Q`WcT4hZ)edQH80CCvV|EI#eh;bNE` zmk2Yv*WAlXdsH%`onUUd476nlsAMV9{i=RlFE5S#oms5s;BuJ#D}<@2LTaKyvd2LTiW>X-{?jS}=fyaYcfeMU= z5ZK;G;Ifv$_a*{^kznJ^1ev!G6x>Qsa~r{d+X;Hs6Aax!FdawWkU-$EksvUUAUcU) zQ!>GpO#~$=1iLpA984wXPa`;;PB5E6u=r5|@5cy2a|le26Qpe=$bW*M;z@$0rx@_x z;ts2Zb%Xq9|D$q2y!)lrk*D3~KhqUqW#BQi4Gzf~m_0>|F`m-3avV z1W_IY$({tcUIfLf3F^HG+Sd^D`4Eiy5}fxV(Efv9bpS!gwFI%(5u{#Ekaq(?*^LB^ zYYDn;A~{P&wtw7?~rz;_*iA%n5>dVXmIzV1P31@=+7ZI z{Wt?Y`P^2DE#6LJ-gyL}>}gm0Y%uL0NHY`U7Z6kw5;PSNbQcp0ln_jmGT zM4yi^W%$RSgik;jpCYX@dacq0DCs6CUHv&5SFYLpU!ar2U$RA&!zY%itb->o&(v4s z*$q;OZbJnA!vv8dm?C);x!lu~D;mRK{aISnHcr9b35<HYInd4>gx?efu2PAX$dYFqtLEd4Y&~Qe|2@z|ctx0A7=$9|ai^OJC zM3K}OO=Df_2#&`n>z!Dq-v(i}`l!A6Dc&uaiFd=yx(8Hv zFR1oDqTlLeu=t+@-a83GpCvH;ivd3?(x0Pz z{_`|e@d80pIYD_|Y@j|zZ_)E2zLYl5tqvRLUk{4h4NBUJbdWm8NzaQo zDW!`VVb(PXGa$$q#EbYwGJBh0jvN5Zw15^_McNWn9>h z{=H;we;?+q4?qncGE%DV_=x&B`Z2-SCj@h!66pE~)*NNPI}ATY`S{~BmOenR<0L`V zAi@42fM84?lmU`>l}0eRm_>kPS# zrqRS$V#;Iq;hdJjY3mWmzXMbe2Wq+#)V%>Ta2IIe?iKXj0;4I;6rh~?|COe8-2~Au zg-Bz{F11`XQ(~)f6t0!hCwIe~+$+q0WMeWv zkAfxB?RA*`Z-64-1SP#C(w5}%WZv72Qo5)WW}Q`-ttskc-dnh2_PzsigBxla>m(v9hH>AWfjY3`^Qn91jbnUiiw=T%)KnZakPT` z(^aI+Rx{wg%q&zFI+^*2ZC`mwi>FhiZ>^`JHSFJ>r{~|o`!Xd$Um-BPN|3gPApbRj zihTr4uM>2?!Jx9MlKo5SlW)>SOuR*dsulv*HUhtPf{23zi5&!4odktl4EX!wE9<&F zUD>mGFSNef?K%H@)|NwL9XU)e+(U5g2m@ZnqED%q%H(Q|N_nmW`_JxwpGRj6{v6H4 zd_kls4Vd?AY!*u9_7gC7eFbXx8r1oXNL!FzB&E-uqVcv-Au5N0|96Qb`ix=9@Ux(V zaZttt(q%@Zouzd36wKynVdlVGBAJ6TFsIIg?EeJ0|Almw8fkYa9d*GZ18Tnr)OWE+i`rI8>GPMu)H(}O^mc`0hPc9vbpxfkgYrC(t`WWYO6f)~ zm|d%dDSEp`GRN1zw7m-Cay7{J8l>w)Z-G*JV*t#|YlSI#yG}A|u7`Qx22jt9prN%Q zEqV);(hdkS zTzn5B<=(ma-j(yW?vVQkV(%wNeSm>-1v@mXY6#e(?4zx<=)slt3!buPzo%E8O?rqu z56xaxzesugC3}6E{i`$^n;f>x#%6|5H+#Ln=7>spZO4XuoEF$LY8$o6YZvyqhmG3W zJk0&2?6vX)aYxm47b@c(EPq0$_&@XUt?c#JY<#nC+*5Xnz@8C~1^jhAdwl_0fsM^R z9?<`7{0{b7-e5oWx|2<4V{?jcVBFtc|9xC}Xyd&9)G4-l8=Hmz_Wvpyn`WDZe40yb zmCa%c|KDaQ&ux`gv+QrLgZ}pVy1%{tyYJ4PJOBSC)cq~s^tacYY!~GXc<+C&tXedVE*cV`dvxn438^I&G>g9>+mYRyPD8JpsolrGsn5&7SGjugTiE)r%=lcni?#oQp7j?cmL zd>$0^0%%=1(#`5-r>0gVog}5Vy$G}PC1D0M8=KkTwz0ieGCN*|dGr;~*sGwqJtA#s zE^p?&ZI;q&8exVt3A43D-OPJ?P%_h-VeU8ps%io4Z$rAp*b>*md&`j0ClA7$>=0&7 zi=~D4_NZjKy${p>15o6LprntGZdbQEwea3@rF79JFzY@QW^P0L{Vc?s4oe5GZKovq{E8{Ve*-1_4$Alg=`MAbQwOiDL`qlx3A6bxVFq*=yLfHS zOXlDOUi1ZGN)58N2e~^CX}T<3m1+aQojFvvGVq%A$=J-oO5QhH+;%*=3Mw)U!fcyDh>W=#al z1CgMfD9}(e(!IvsxL)2{o0N7~57XlgVdnH&dUVBtQ z-dm@XK6o$8{`-U(&~NPLy}d7)vk$;roCfkv2Zd&cw57kipZ9iHN~dMP%+D5P>oIjd z@9ksBY}x{|dmCtAJ7^*g>0`!YamRRXeNx)>8JK<+VdfmO9OJ!xE}4ltVP-uGD*P9y z_Bo^n)B{e(cyGt0^pO`}4wnlvV8A%Qd;3Z<9jjq_)_{U)LF?*7+A>f+z)q9}*?;|~|9(Ee!y-i5zlOMvI{79Gq!^UCW+b@#o)(g|W4;0xCN;)dimf`YY z-rG4TU345~-GDG#N7ci;w?8DacM#^t5NKu?wCFpeM~$O#qrA5{DII(UX3P)5%o(+e z^4=CmkCEQ~6U<#dgBpGTb^eOfx3-Wq$Lv@i!3!JN{9>@NkmJ0U%8 z9FH64tvO5Ss3kCymkKjy+%nEvTOygo%VE~90JX0K^{qmBQa$N3&RcVr(&w*$sr3BeA~T_M73omNls-mZ|$@i3USH-TJ? zAm5vjo;FU$P4nJ-rS!&IVP@VY%$#Ym)OJ6Ut;|%sz_UA%4c|Qp;G!_I?VnIVYbeyXLxUG zC37|l=HeWX_v4_@tw_%rXX9phZxK>D?MayVPYE+;)-ua`yG1gao`KnI0S){UG_iBl zrSm@s+u1nJ^4ivkF#DBd$tryIN-2>;piP9$YUM|T^^$mZ8N|mbKs&2IFIOX6U{hg} ztAyjF@F%qpPt`$eQ`y<2(u z%+j}nnX4*LZC1>CC9|Uy=20tX>}}B8J4oBx**mM+lr($mu~^TVE|_86!VI*Ju;;Bk zD4FSpVeaSwRUHBC?-l6+`wDwr8+-GySkK9Rn3G3^+2&|x&wFEUJ{G3i37Gz0fg-;K zC4GamV}xV8Bkzs9`BYNkl0&Rts_f{aK&)Tk@zpmTV1R8Cd z&Q8l~+bM}Y3u)XMt^p-n1j@J=XV5FPO=zg&F7);lgWsQ8J6yz^wNHwflnl{6xCIrNV{RRx72? z>tSlI6=s{8oeS^n70C>_9%k$fpwt^dd25k&i*So~y#o|#M%vrX+u4hEH7KRi3Ss6K2{X_;!kc&Xtz_&Zn9@2Gx24ZS+9T!Uj^0fLE0z6C*Ftm zrnWBFk7IIVAI#y`LFe88IW~hl4}gMNK@xTjU58b9Tw>VzY0Izm6McS^9jtbPleg0xAWs&xkzUE=P-AC0jl~EwEqOs z`Urizo_DoON}v21=HxfR%+(k8*eS<^eIkH3)7?g3`j3JlPlJ-ikPfm7a@Ox(Q(h21Nw%-q*2-&REw!pgf z>;k$$_~bo9kLxdsTz-v1srO)38 zQyVVKTtk6@_x6!whD5-OjRd7ef%2k}jm^%<*`b zwi`e$cY%EG7U_b>ib&quF)6+AUYMEp39~KQE|T|lLNaR}fO+6SP|ri4p@)%4Q69_M3$n z7!wi0dpjeUvxP7hKMV5y7bx^OkuHd-h~d4BOX;*1VCI(#v(01|!+ZN#GMiq6+5Hk| z;NPH$moKOH*F~7(O}w^gDeSr%qTgO3jVaeuVB)p?E}4mqFteIKh5JFZ&5ZsJS@lJ8 diff --git a/Contralto/IO/DiskController.cs b/Contralto/IO/DiskController.cs index 14a4a2d..96aea6f 100644 --- a/Contralto/IO/DiskController.cs +++ b/Contralto/IO/DiskController.cs @@ -55,13 +55,25 @@ namespace Contralto.IO // position is reached (before any data is transferred)." _dataXfer = (_kAdr & 0x2) != 0x2; + // + // Select disk from bit 14 of KDATA. + // The HW reference claims that the drive is selected by bit 14 of KDATA XOR'd with bit 15 + // of KADR but I can find no evidence in the schematics that this is actually so. + // Page 18 of the controller schematic ("DISK ADDRESSING") shows that the current DATA(14) (KDATA bit 14) + // value is gated into the DISK select lines (running to the drive) whenever a KADR<- F1 is executed. + // It is possible that the HW ref is telling the truth but the XORing is done by the Sector Task uCode + // and not the hardware, but where this is actually occurring is not obvious. + // At any rate: The below behavior appears to work correctly, so I'm sticking with it. + // + _disk = ((_kDataWrite & 0x2) >> 1); + Log.Write(LogComponent.DiskController, "KADR set to {0} (Header {1}, Label {2}, Data {3}, Xfer {4}, Drive {5})", Conversion.ToOctal(_kAdr), Conversion.ToOctal((_kAdr & 0xc0) >> 6), Conversion.ToOctal((_kAdr & 0x30) >> 4), Conversion.ToOctal((_kAdr & 0xc) >> 2), _dataXfer, - _kAdr & 0x1); + _disk); Log.Write(LogComponent.DiskController, " -Disk Address ({0}) is C/H/S {1}/{2}/{3}, Drive {4} Restore {5}", Conversion.ToOctal(_kDataWrite), @@ -77,7 +89,7 @@ namespace Contralto.IO { // Restore operation to cyl. 0: InitSeek(0); - } + } } } @@ -106,19 +118,7 @@ namespace Contralto.IO if (_sendAdr & (_kDataWrite & 0x2) != 0) { - // Select disk if _sendAdr is true - _disk = (_kAdr & 0x1); - _seeking = false; - - // Clear the NOTREADY flag depending on whether the drive is loaded or not - if (_drives[_disk].IsLoaded) - { - _kStat &= (ushort)~NOTREADY; - } - else - { - _kStat |= NOTREADY; - } + _seeking = false; } } @@ -214,7 +214,8 @@ namespace Contralto.IO // return (_kStat & SECLATE) != 0 || (_kStat & SEEKFAIL) != 0 || - (_kStat & NOTREADY) != 0; + (_kStat & NOTREADY) != 0 || + (!Ready); } } @@ -279,6 +280,16 @@ namespace Contralto.IO _kStat = (ushort)((_kStat & 0x0fff) | (_sector << 12)); + // Clear the NOTREADY flag depending on whether the selected drive is loaded or not + if (_drives[_disk].IsLoaded) + { + _kStat &= (ushort)~NOTREADY; + } + else + { + _kStat |= NOTREADY; + } + // Reset internal state machine for sector data _sectorWordIndex = 0; _syncWordWritten = false; @@ -397,7 +408,7 @@ namespace Contralto.IO // // Set "seek fail" bit based on selected cylinder (if out of bounds) and do not // commence a seek if so. - if (destCylinder > SelectedDrive.Pack.Geometry.Cylinders - 1) + if (!SelectedDrive.IsLoaded || destCylinder > SelectedDrive.Pack.Geometry.Cylinders - 1) { _kStat |= SEEKFAIL; @@ -703,11 +714,19 @@ namespace Contralto.IO private bool _debugRead; - // KSTAT bitfields - public static readonly ushort SECLATE = 0x10; - public static readonly ushort NOTREADY = 0x20; - public static readonly ushort STROBE = 0x40; - public static readonly ushort SEEKFAIL = 0x80; + // + // KSTAT bitfields. + // Note that in reality the SECLATE status bit (bit 11) is a bit more nuanced; it's actually the OR of two signals: + // 1) SECLATE while the Sector Task is enabled (meaning that the sector task missed the beginning of a sector and that's bad). + // This is emulated. + // 2) CARRY while the Word Task is enabled. CARRY in this case is the carry out from the disk word shift register, signaling + // a completed word. If the Word Task is still running while a word is completed, this indicates that the word task missed that + // word and that's a fault. This is not currently emulated. + // + public static readonly ushort SECLATE = 0x10; // status bit 11 + public static readonly ushort NOTREADY = 0x20; // 10 + public static readonly ushort STROBE = 0x40; // 9 + public static readonly ushort SEEKFAIL = 0x80; // 8 } }