(*---------------------------------------------------------------------------
 :Program.      FixAmber.mod
 :Author.       Fridtjof Siebert
 :Address.      Nobileweg 67, D-7000 Stuttgart 40
 :Shortcut.     [fbs]
 :Copyright.    PD
 :Language.     OBERON
 :Translator.   Amiga Oberon Compiler V1.36
 :History.      V1.0, 07-Mar-91, [fbs]
 :History.      V2.0, 18-Aub-92, [fbs] no more flickers on dragging big icons
 :History.            Termination know on ^C, no more on restart
 :Usage.        run FixAmber
---------------------------------------------------------------------------*)

MODULE FixAmber;

IMPORT e   := Exec,
       h   := Hardware,
       ol  := OberonLib;

VAR
  VertBIntr: e.InterruptPtr;

PROCEDURE * MyIntProc(); (* $StackChk- *)
VAR
  vhposr[0DFE006H]: INTEGER;
  vposr[0DFE005H]: SHORTINT;
BEGIN
  IF (vhposr<15*100H) & (vhposr>=0) THEN
    IF ~ODD(vposr) THEN
      h.custom.color[0] := 0;
    END;
  END;
END MyIntProc;

(* $StackChk= *)


BEGIN

  INCL(ol.MemReqs,e.public);
  NEW(VertBIntr);
  EXCL(ol.MemReqs,e.public);

  VertBIntr^ := e.Interrupt(NIL,
                            NIL,
                            e.interrupt,
                            0,
                            NIL,
                            NIL,
                            NIL);

  VertBIntr.code := MyIntProc;

  e.AddIntServer(h.vertb,VertBIntr);
  REPEAT UNTIL 12 IN e.Wait(LONGSET{12});
  e.RemIntServer(h.vertb,VertBIntr);

END FixAmber.
