[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Problem with Apple II 3.5 Disk Controller Card on Apple IIe
Jose Carlos Lord Apple wrote:
> I found the problem !!!! I have a Super Serial Card in Slot 2. If I
> take off it, the Apple II 3.5 Card works well. If I put the Super
> Serial Card in any slot, the Apple II 3.5 Card shows the error ...
> Does anybody can help me ?
Apple II
Technical Notes
_____________________________________________________________________________
Developer Technical
Support
Apple II Miscellaneous
#3: Super Serial Card Firmware Bug
Revised by: Matt Deatherage November
1988
Written by: Cameron Birse November
1985
This Technical Note documents two bugs in the Super Serial Card
firmware.
_____________________________________________________________________________
The Super Serial Card (SSC) firmware does not access location $CFFF to
clear
the $C800 space before jumping into its bank-switched ROM in that area.
By omitting this access, the Super Serial Card can cause a slot data bus
conflict when a ROM of equal or greater strength on another card "owns"
the
$C800 space when the Super Serial Card wants to use it. For example,
the
UniDisk 3.5 controller card uses the same 74LS245 octal bus driver as
the
Super Serial Card. If you are using the UniDisk 3.5 card and switch to
the
Super Serial Card firmware, there will be a bus conflict . The SSC is
trying
to switch in its own $C800 space while the UniDisk 3.5 card is trying to
keep
the $C800 space, since no one cleared it by accessing $CFFF. Since both
have
the same capability to drive the bus, neither wins the battle.
An easy solution to this problem is to reference $CFFF before calling
any of
the Pascal entry points on the Super Serial Card. For example:
NEWSLOT STA $CFFF ;reset the slot ROM space
LDA Char ;Char = character to output
LDX #$Cn ;n = slot number
LDY #$n0
STX MSLOT ;MSLOT = $7F8, always set it up
JSR PWRITE ;now call the Pascal routine of your
choice
This bug is in the Pascal entry points; the BASIC entry point does not
have
this problem as there is a STA $CFFF instruction at $Cn1B.
This example code stores the slot number (in the form $Cn) in MSLOT, a
screen
hole used to tell the system which peripheral card had control when an
interrupt occurred. The Super Serial Card firmware does set up MSLOT,
but
does not do so until long after it has enabled its $C800 space. If an
IRQ
comes through the system between the call to the card and when the card
stores
MSLOT, the system will crash.
Both bugs can be avoided by using the sample code to call entry points
on the
Super Serial Card.
Further Reference
o Apple IIe Technical Reference Manual
--
Paul R. Santa-Maria
Monroe, Michigan USA