Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!sdd.hp.com!apollo!mort From: mort@apollo.HP.COM (Stephen Moriarty) Newsgroups: comp.sys.apple2 Subject: Re: Quadram APIC-A //e compatibility & code debugging Message-ID: <510db948.20b6d@apollo.HP.COM> Date: 18 Apr 91 21:33 GMT References: <50a3ec40.20b6d@apollo.HP.COM> <1991Mar30.131325.24160@lynx.CS.ORST.EDU> <1991Apr02.223712.13868@convex.com> Sender: root@apollo.HP.COM Reply-To: mort@apollo.HP.COM (Stephen Moriarty) Organization: Hewlett-Packard Apollo Division - Chelmsford, MA Lines: 19 In article <1991Mar30.131325.24160@lynx.CS.ORST.EDU>: >It seems that a common technique used by interface cards to find out what >slot they're in is to call an RTS instruction in the monitor and examine >the return address that the JSR pushed onto the stack. Apple guarantees >that there will always be an RTS at $FF58 for this very purpose. >Unfortunately, the Tymac doesn't call $FF58--it calls $FDFF instead. On >the Apple ][+ there was an RTS at $FDFF, so everything worked just fine. >However, on the enhanced //e, that RTS was replaced with some other >instruction (I think it was a NOP), so instead of returning execution fell >through to $FE00, which is part of the monitor's memory dump routine. BINGO! I just changed two references to $FDFF in the driver firmware to $FF58, reprogrammed the EPROM, and voila! it works! Thanks for the help. ARPA: mort@apollo.hp.com UUCP: ...{decvax, umix, mit-eddie}!apollo!mort Apollo, a subsidiary of Hewlett Packard, 300 Apollo Drive, Chelmsford, MA. 01824 Argue for your limitations, and they are yours.