Path: csiph.com!news.swapon.de!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Benoit0123 Newsgroups: comp.sys.apple2.programmer Subject: Re: Query about ProDOS 8 Date: Sat, 2 Sep 2017 20:34:48 -0000 (UTC) Organization: Mac GUI Lines: 36 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Sat, 2 Sep 2017 20:34:48 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="8fd257c89236c7474f865581e23e18f3"; logging-data="14771"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+hU/0Rv9XrjpYHD8HeJsa/" User-Agent: Mac GUI Usenet In-Reply-To: Cancel-Lock: sha1:yoHTZVO1JJo6C2zeFEZ8+1gBj+U= Xref: csiph.com comp.sys.apple2.programmer:3892 Thank you John, Roger and James for your quick replies. The point here is that I got a "crash" as a ProDOS device was read from an interrupt routine while the mini assembler was active. This is on an Enhanced Apple //e. a) On the Enhanced //e, interrupts are not disabled (i.e. no SEI instruction) while the internal ROM is selected see code at $FFB4 (GOTOCX), unlike what happens on the "unenhanced //e"; b) When a "!" is issued by the user at the monitor prompt, control is passed to a vector in $CX space (thru the code above) (Y value $0D) to lead in fine to the mini assembler. Unlike other vectors (usually 80col. firmware related), there is no immediate return (chronologically speaking) to the proper "ending" function for deactivating of the internal ROM. c) The final ML code that is finally called is at address $FCF0: LDA #A1 "!" prompt... STA PROMPT *JSR GETLNZ* *STA C006* JMP CF9C (DOINST) Here we see that C006 is updated but only after a GETLNZ call, that is, if an IRQ appears while the program is in GETLNZ processing and that IRQ calls a MLI ProDOS function, chances are high that that the problem rises again. So from now on, I would personally insert a STA C006 before a ProDOS MLI call within interrupt routines just to avoid this state. Best regards, BenoƮt -- Growing old is mandatory.. growing up is optional.. But the other way round is as true.