[comp.sys.apple] ProDOS date and interrupts

reeder@reed.UUCP (Doug Reeder) (03/30/89)

Is  the "date modified" information for a file only changed when the file
is CLOSEd after being written to?

Does ProDOS 8 set the user interrupt vector to its own interrupt routine
any time after booting?  What special precautions have to be taken when 
using mouse interrupts from the prodos interrupt procedure?

When, if ever, during the interrupt response process are interrupts enabled?

-- 
Doug Reeder                         USENET: ...!tektronix!reed!reeder
Box 971                             BITNET: reeder@reed.BITNET
Imperial University              from ARPA: tektronix!reed!reeder@berkeley.EDU
Trantor                             Box 971 Reed College,Portland,OR 97202

mattd@Apple.COM (Matt Deatherage) (04/01/89)

In article <8903312337.AA29587@wpi> GREYELF@WPI.BITNET writes:
>Yes, Prodos 8 sets up its own interrupt vector to its interrupt handling
>routines on booting.  As for special precautions, first allocate an
>interrupt routine, activate the hardware, then CLI to enable CPU
>recognition of the interrupts.
>
>Interrupts are only enabled after setting the hardware to generate them,
>and issuing a CLI instruction to enable CPU recognition of interrupts.

ACK!  ACK!  ACKI

We officially frown on people who do that.  CLI, that is.  If someone needs
interrupts *disabled*, that's just fine.  That's reasonable.  But most folks
(*especially* low-level routines) should not be directly clearing the flag with
a CLI instruction?

Why?  Because the person who called you might need interrupts disabled, and
it's not reasonable to expect everyone calling a low-level routine to have
to re-set the interrupt flag after any call to an external routine.

What we recommend is that those who need to *disable* interrupts do so with
the sequence PHP/SEI.  When you no longer need interrupts disabled, use PLP.
This disables interrupts when necessary, and returns the processor *to the
previous interrupt state* when done.

GS/OS and ProDOS 8 both keep interrupts enabled at system start time, and don't
leave them disabled (since they generally use PHP/SEI/PLP) when unnecessary.
So unless using DOS 3.3 (which is old enough not to deal with this problem),
try not to specifically turn on interrupts, but rather just restore what was
there before you disabled them.  If you haven't disabled interrupts, assume
they are enabled.

>--
>Michael J Pender Jr  Box 1942 c/o W.P.I.        I wrote SHELL and Daemon,
>greyelf@wpi.bitnet   100 Institute Rd.          send bug reports, suggestions,
>greyelf@wpi.wpi.com  Worcester, Ma 01609        checks to me.

-----------------------------------------------------------------------------
Matt Deatherage, Apple Computer, Inc. | "The opinions expressed in this tome
Send PERSONAL mail ONLY (please) to:  | should not be construed to imply that
AppleLink PE: Matt DTS  GEnie: AIIDTS | Apple Computer, Inc., or any of its
CompuServe: 76703,3030                | subsidiaries, in whole or in part,
Usenet:  mattd@apple.com              | have any opinion on any subject."
UUCP:  (other stuff)!ames!apple!mattd | "So there."
-----------------------------------------------------------------------------