home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
dirs
/
cross_464.lzh
/
Cross
/
txt
/
CPCSleep.mod
< prev
next >
Wrap
Text File
|
1991-03-09
|
5KB
|
138 lines
IMPLEMENTATION MODULE CPCSleep;
FROM CPCError
IMPORT myAssert;
FROM CPCGlobal
IMPORT msg,window;
FROM Heap
IMPORT AllocMem;
FROM Intuition
IMPORT ClearPointer,SetPointer;
FROM SYSTEM
IMPORT ADDRESS,ADR,BITSET,CAST,INLINE;
TYPE
PtrData=ARRAY[0..200] OF CARDINAL; (* just a dummy declaration *)
PtrDataPtr=POINTER TO PtrData;
VAR
pointeractive: BOOLEAN;
ptrdat,ptrcast: PtrDataPtr;
(* $E- *)
PROCEDURE SleepPointerData;
BEGIN
INLINE(
CAST(CARDINAL,BITSET{ }),
CAST(CARDINAL,BITSET{ }),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{15 ,00}),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{15 ,00}),
CAST(CARDINAL,BITSET{ 14,13,12,11,10,09,08,07,06,05,04,03,02,01 }),
CAST(CARDINAL,BITSET{ 14 ,01 }),
CAST(CARDINAL,BITSET{ 13 ,02 }),
CAST(CARDINAL,BITSET{ 13,12,11,10,09,08,07,06,05,04,03,02 }),
CAST(CARDINAL,BITSET{ 12 ,03 }),
CAST(CARDINAL,BITSET{ 12,11,10,09,08,07,06,05,04,03 }),
CAST(CARDINAL,BITSET{ 11 ,04 }),
CAST(CARDINAL,BITSET{ 11,10,09,08,07,06,05,04 }),
CAST(CARDINAL,BITSET{ 10 ,05 }),
CAST(CARDINAL,BITSET{ 10,09,08,07,06,05 }),
CAST(CARDINAL,BITSET{ 09 ,06 }),
CAST(CARDINAL,BITSET{ 09,08,07,06 }),
CAST(CARDINAL,BITSET{ 08,07 }),
CAST(CARDINAL,BITSET{ 08,07 }),
CAST(CARDINAL,BITSET{ 08,07 }),
CAST(CARDINAL,BITSET{ 08,07 }),
CAST(CARDINAL,BITSET{ 08,07 }),
CAST(CARDINAL,BITSET{ 08,07 }),
CAST(CARDINAL,BITSET{ 09,08,07,06 }),
CAST(CARDINAL,BITSET{ 09 ,06 }),
CAST(CARDINAL,BITSET{ 10,09,08,07,06,05 }),
CAST(CARDINAL,BITSET{ 10 ,05 }),
CAST(CARDINAL,BITSET{ 11,10,09,08,07,06,05,04 }),
CAST(CARDINAL,BITSET{ 11 ,04 }),
CAST(CARDINAL,BITSET{ 12,11,10,09,08,07,06,05,04,03 }),
CAST(CARDINAL,BITSET{ 12 ,03 }),
CAST(CARDINAL,BITSET{ 13,12,11,10,09,08,07,06,05,04,03,02 }),
CAST(CARDINAL,BITSET{ 13 ,02 }),
CAST(CARDINAL,BITSET{ 14 ,01 }),
CAST(CARDINAL,BITSET{ 14,13,12,11,10,09,08,07,06,05,04,03,02,01 }),
CAST(CARDINAL,BITSET{15 ,00}),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{15 ,00}),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
CAST(CARDINAL,BITSET{ }),
CAST(CARDINAL,BITSET{ })
);
END SleepPointerData;
PROCEDURE SleepPointer;
BEGIN
IF NOT pointeractive THEN
SetPointer(CAST(ADDRESS,window),ptrdat,21,16,-8,-11);
pointeractive:=TRUE;
END;
END SleepPointer;
PROCEDURE NormalPointer;
BEGIN
IF pointeractive THEN
ClearPointer(CAST(ADDRESS,window));
pointeractive:=FALSE;
END;
END NormalPointer;
BEGIN
pointeractive:=FALSE;
AllocMem(ptrdat,1000,TRUE); (* 1000 is used as an upper limit that will *)
(* definitely never be reached. *)
myAssert(ptrdat#NIL,ADR(msg[81]),ADR(msg[82]));
ptrcast:=ADR(SleepPointerData);
ptrdat^:=ptrcast^;
END CPCSleep.