home *** CD-ROM | disk | FTP | other *** search
- MODULE IdleLed;
-
- IMPORT
- e:Exec,
- h:Hardware,
- y:SYSTEM,
- c:Cia;
-
- VAR
- mei:e.Interrupt;
- met:e.TaskPtr;
- oldp:SHORTINT;
- proc:e.PROC;
-
- PROCEDURE IdleIrq;
- (* $EntryExitCode- *)
- (* $SaveAllRegs+ *)
- BEGIN;
- y.INLINE(
- 01039H,0BFH,0E001H,0200H,0FDH,013C0H,0BFH,0E001H,04E75H,0F14H,0H,03F2H);
- END IdleIrq;
-
- BEGIN;
- proc:=IdleIrq;
- c.base:=e.OpenResource(c.ciabName);
- IF c.base=NIL THEN;HALT(0);END;
- mei.node.type:=e.interrupt;
- mei.node.pri:=127;
- mei.node.name:=y.ADR("Idle-Led");
- mei.data:=NIL;
- mei.code:=proc;
- IF c.AddICRVector(h.ta,y.ADR(mei))#NIL THEN END;
- met:=e.FindTask(NIL);
- oldp:=met.node.pri;
- met.node.pri:=-127;
- h.ciab.cra:=SHORTSET{};
- h.ciab.talo:=058H;(*58*)
- h.ciab.tahi:=01BH;(*1b*)
- IF c.SetICR(SHORTSET{h.ta,h.setClr})#SHORTSET{} THEN END;
- WHILE ~(12 IN met.sigRecvd) DO
- h.ciab.cra:=SHORTSET{h.craStart,h.craLoad,h.craRunmode};
- h.ciaa.pra:=h.ciaa.pra + SHORTSET{h.led};
- END;
- h.ciab.cra:=SHORTSET{};
- IF c.SetICR(SHORTSET{h.ta})#SHORTSET{} THEN END;
- c.RemICRVector(h.ta,y.ADR(mei));
- met.node.pri:=oldp;
- END IdleLed.
-
-
-
-
-
-