RESET: reset annunciators for //e and Base64A

This commit is contained in:
tomcw 2020-07-07 20:54:46 +01:00
parent f1f16d4fc2
commit b35ba0b04a
5 changed files with 29 additions and 2 deletions

View File

@ -8,7 +8,7 @@
link="#008000" vlink="#008000">
<h2 style="COLOR: rgb(0,128,0)">Acknowledgements</h2>
<hr size="4">
<p>The team&nbsp;would like to thank the following people for their contributions:</p>
<p>The team would like to thank the following people for their contributions:</p>
<p style="MARGIN-LEFT: 40px">Brian Broker: This HTML / CHM help file</p>
<p style="MARGIN-LEFT: 40px">Thomas Stahl: TV emulation mode (up to v1.25.0.4)</p>
<p style="MARGIN-LEFT: 40px">Greg Hedger: SSI263 phoneme samples</p>
@ -21,5 +21,9 @@
<p style="MARGIN-LEFT: 40px">Bob Sander-Cederlof: Applesoft Symbols (<a href="http://www.txbobsc.com/scsc/scdocumentor/index.html">http://www.txbobsc.com/scsc/scdocumentor/</a> S-C DocuMentor: Applesoft)</p>
<p style="MARGIN-LEFT: 40px">David Schmidt: Updates to this help file</p>
<p style="MARGIN-LEFT: 40px">Mike Harvey, Founder &amp; Editor of Nibble Magazine: For providing us Apple fans the pleasure of eagerly awaiting each next month's issue to learn about the Apple! (<a href="http://www.nibblemagazine.com/">http://www.nibblemagazine.com/</a>)</p>
<p style="MARGIN-LEFT: 40px">Andrea Odetti: numerous pull-requests</p>
<p style="MARGIN-LEFT: 40px">Iván Izaguirre: Taiwanese Copam Base64A Apple II clone</p>
<p style="MARGIN-LEFT: 40px">Arnaud C: debugger suggestions and help with 6502/6522/video timing issues</p>
<p style="MARGIN-LEFT: 40px">Cyril Lambin: debugger improvements</p>
</body>
</html>

View File

@ -22,7 +22,9 @@ emulation by pressing the F12 key.</p>
<p><strong>Clone:</strong><br>
If you have specified Computer as 'Clone' on the main Configuration
page, then this drop-down menu can be used to specify the clone type.<br>
NB. Pravets 82, 8M and 8A are Bulgarian Apple II clones.<br>
NB. Pravets 82, 8M and 8A are Bulgarian Apple II clones;
TK3000 is a Brazilian //e clone;
Base 64A is a Taiwanese Apple II clone.<br>
</p>
<p><strong>Printer settings </strong>(Printer is emulated in slot 1)
</p>

View File

@ -2344,6 +2344,13 @@ void CtrlReset()
VideoResetState(); // Switch Alternate char set off
}
if (IsAppleIIeOrAbove(GetApple2Type()) || IsCopamBase64A(GetApple2Type()))
{
// For A][ & A][+, reset doesn't reset the annunciators (UTAIIe:I-5)
// Base 64A: on RESET does reset to ROM page 0 (GH#807)
MemAnnunciatorReset();
}
PravetsReset();
g_CardMgr.GetDisk2CardMgr().Reset();
HD_Reset();

View File

@ -1957,6 +1957,7 @@ void MemReset()
// INITIALIZE PAGING, FILLING IN THE 64K MEMORY IMAGE
ResetPaging(TRUE); // Initialize=1, init memmode
MemAnnunciatorReset();
// INITIALIZE & RESET THE CPU
// . Do this after ROM has been copied back to mem[], so that PC is correctly init'ed from 6502's reset vector
@ -2157,6 +2158,18 @@ LPVOID MemGetSlotParameters(UINT uSlot)
//===========================================================================
void MemAnnunciatorReset(void)
{
for (UINT i=0; i<kNumAnnunciators; i++)
g_Annunciator[i] = 0;
if (IsCopamBase64A(GetApple2Type()))
{
SetMemMode(memmode & ~(MF_ALTROM0|MF_ALTROM1));
UpdatePaging(FALSE); // Initialize=FALSE
}
}
bool MemGetAnnunciator(UINT annunciator)
{
return g_Annunciator[annunciator];

View File

@ -83,6 +83,7 @@ void MemReset ();
void MemResetPaging ();
void MemUpdatePaging(BOOL initialize);
LPVOID MemGetSlotParameters (UINT uSlot);
void MemAnnunciatorReset(void);
bool MemGetAnnunciator(UINT annunciator);
bool MemHasNoSlotClock(void);
void MemInsertNoSlotClock(void);