Jose Carlos Lord Apple wrote: > [IIe crashes when booting ProDOS if Super Serial Card is present] > > Rubywand, wrote: > > What are settings for DIP switches (SW1 and SW2) on your Super Serial > > Card? > > > > How is the jumper block set (does the arrow point UP or DOWN)? > > > > SW1 > 1: DOWN > 2: DOWN > 3: DOWN > 4: DOWN > 5: UP > 6: DOWN > 7: DOWN > > SW2 > 1: DOWN > 2: DOWN > 3: DOWN > 4: DOWN > 5: DOWN > 6: UP > 7: DOWN The problem is caused by SW2-6, but I'm surprised that you are getting a crash by simply booting into ProDOS. Your SSC might have a fault. A little theory: SW2-6 controls whether interrupts from the SSC are enabled. They are enabled in the ON (UP) position. If SSC interrupts are enabled, and the CPU has enabled interrupts, _and_ the 6551 chip on the SSC is activated (by turning on the DTR output), then an interrupt will occur for any change of state in the DSR or DCD inputs, or for transmit data complete or receive data pending (if those interrupt sources are enabled in the 6551 registers). If the application doesn't have an interrupt handler installed, then the occurrence of an interrupt will immediately cause the system to crash. The reason that you aren't seeing a problem with DOS 3.3 is that DOS 3.3 disables interrupts (in the CPU) when it starts booting, and doesn't normally enable them again (an application might do so). By comparison, ProDOS-8 version 1.2 and later disables interrupts during boot, but enables them once the PRODOS file has been loaded. (They are disabled during all subsequent 5.25" disk I/O operations, and possibly at other times, but the previous disable/enable state will be restored afterwards.) In theory, with SW2-6 in the ON position, what is supposed to happen is that your machine will run fine as long as you don't try to do anything which enables the serial port hardware (such as a PR#2 command). Enabling the serial port risks a crash due to lack of interrupt handlers. The serial port should only be used while running communications software which has an appropriate interrupt handler. If you are getting crashes when booting ProDOS, then somehow your card is being initialized during the ProDOS boot sequence, or it has some kind of fault which is causing it to generate spontaneous interrupts. If you want to use the SSC as a simple serial port to talk to a printer, without interrupts, then you are supposed to turn SW2-6 OFF, and this might be your best solution - only set SW2-6 ON while you are running communcations software. -- David Empson dempson@actrix.gen.nz 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