a1200   NEWS   APPS   DOCS   ABOUT
a1200
----
a1200
----
Autodocs
 Libraries:
 exec.library
  AVL_AddNode
  AVL_FindFirstNode
  AVL_FindLastNode
  AVL_FindNextNodeByAddress
  AVL_FindNextNodeByKey
  AVL_FindNode
  AVL_FindPrevNodeByAddress
  AVL_FindPrevNodeByKey
  AVL_RemNodeByAddress
  AVL_RemNodeByKey
  AbortIO
  AddDevice
  AddHead
  AddIntServer
  AddLibrary
  AddMemHandler
  AddMemList
  AddPort
  AddResource
  AddSemaphore
  AddTail
  AddTask
  Alert
  AllocAbs
  AllocEntry
  AllocMem
  AllocPooled
  AllocSignal
  AllocTrap
  AllocVec
  Allocate
  AttemptSemaphore
  AttemptSemaphoreShared
  AvailMem
  CacheClearE
  CacheClearU
  CacheControl
  CachePostDMA
  CachePreDMA
  Cause
  CheckIO
  CloseDevice
  CloseLibrary
  ColdReboot
  CopyMem
  CopyMemQuick
  CreateIORequest
  CreateMsgPort
  CreatePool
  Deallocate
  Debug
  DeleteIORequest
  DeleteMsgPort
  DeletePool
  Disable
  DoIO
  Enable
  Enqueue
  FindName
  FindPort
  FindResident
  FindSemaphore
  FindTask
  Forbid
  FreeEntry
  FreeMem
  FreePooled
  FreeSignal
  FreeTrap
  FreeVec
  GetCC
  GetMsg
  InitCode
  InitResident
  InitSemaphore
  InitStruct
  Insert
  MakeFunctions
  MakeLibrary
  ObtainQuickVector
  ObtainSemaphore
  ObtainSemaphoreList
  ObtainSemaphoreShared
  OldOpenLibrary
  OpenDevice
  OpenLibrary
  OpenResource
  Permit
  Procure
  PutMsg
  RawDoFmt
  ReleaseSemaphore
  ReleaseSemaphoreList
  RemDevice
  RemHead
  RemIntServer
  RemLibrary
  RemMemHandler
  RemPort
  RemResource
  RemSemaphore
  RemTail
  RemTask
  Remove
  ReplyMsg
  SendIO
  SetExcept
  SetFunction
  SetIntVector
  SetSR
  SetSignal
  SetTaskPri
  Signal
  StackSwap
  SumKickData
  SumLibrary
  SuperState
  Supervisor
  TypeOfMem
  UserState
  Vacate
  Wait
  WaitIO
  WaitPort
Include
GuruMeditation
Docs » Autodocs » exec.library » ObtainQuickVector

NAME

	Function to obtain an install a Quick Interrupt vector            (V39)

SYNOPSIS

	vector=ObtainQuickVector(interruptCode)
d0 a0
ULONG ObtainQuickVector(APTR);

FUNCTION

	This function will install the code pointer into the quick interrupt
vector it allocates and returns to you the interrupt vector that
your Quick Interrupt system needs to use.
This function may also return 0 if no vectors are available. Your
hardware should be able to then fall back to using the shared
interrupt server chain should this happen.
The interrupt code is a direct connect to the physical interrupt.
This means that it is the responsibility of your code to do all
of the context saving/restoring required by interrupt code.
Also, due to the performance of the interrupt controller, you may
need to also watch for "false" interrupts. These are interrupts
that come in just after a DISABLE. The reason this happens is
because the interrupt may have been posted before the DISABLE
hardware access is completed. For example:
myInt: move.l d0,-(sp) ; Save d0...
move.w _intenar,d0 ; Get interrupt enable state
btst.l #INTB_INTEN,d0 ; Check if pending disable
bne.s realInt ; If not, do real one...
exitInt: move.l (sp)+,d0 ; Restore d0
rte ; Return from int...
;
realInt: ; Now do your int code... d0 is already saved
; ALL other registers need to be saved if needed
; This includes a0/a1/d0/d1 as this is an interrupt
; and not a function call...
;
bra.s exitInt ; Exit interrupt...
If your interrupt will not play with system (OS) structures and your
own structures are safe to play with you do not need to check for
the disable. It is only needed for when the system is in disable but
that "one last interrupt" still got through.

NOTES

	This function was not implemented fully until V39.  Due to a mis-cue
it is not safe to call in V37 EXEC. (Sorry)

INPUTS

	A pointer to your interrupt code.  This code is not an EXEC interrupt
but is dirrectly connected to the hardware interrupt. Thus, the
interrupt code must not modify any registers and must return via
an RTE.

RESULT

	The 8-bit vector number used for Zorro-III Quick Interrupts
If it returns 0, no quick interrupt was allocatable. The device
should at this point switch to using the shared interrupt server
method.

SEE ALSO

Comments (1)

Name:
E-mail: Use this if you want a message if you get a response, will not be shown.
Comment:
Select correct short for:

Horizon

RZR
HZ
ATX
AFL

Comments:

(anonymous)
at 2022-01-10 22:34:07:
Is there any KS that implements this? The function is just a moveq #0,d0 / rts here.

$VER: d0.se 1.14 Copyright © 2011-2024 Tobias Geijersson support at d0 dot se