home *** CD-ROM | disk | FTP | other *** search
/ 17 Bit Software 1: Collection A / 17Bit_Collection_A.iso / files / 1065.dms / 1065.adf / Cross / txt / CPCSleep.mod < prev    next >
Text File  |  1987-06-04  |  5KB  |  138 lines

  1. IMPLEMENTATION MODULE CPCSleep;
  2.  
  3.  
  4.  
  5. FROM CPCError
  6.  IMPORT myAssert;
  7.  
  8. FROM CPCGlobal
  9.  IMPORT msg,window;
  10.  
  11. FROM Heap
  12.  IMPORT AllocMem;
  13.  
  14. FROM Intuition
  15.  IMPORT ClearPointer,SetPointer;
  16.  
  17. FROM SYSTEM
  18.  IMPORT ADDRESS,ADR,BITSET,CAST,INLINE;
  19.  
  20.  
  21.  
  22. TYPE
  23.  PtrData=ARRAY[0..200] OF CARDINAL; (* just a dummy declaration *)
  24.  PtrDataPtr=POINTER TO PtrData;
  25.  
  26.  
  27.  
  28. VAR
  29.  pointeractive: BOOLEAN;
  30.  ptrdat,ptrcast: PtrDataPtr;
  31.  
  32.  
  33. (* $E- *)
  34. PROCEDURE SleepPointerData;
  35.  BEGIN
  36.   INLINE(
  37.    CAST(CARDINAL,BITSET{                                               }),
  38.    CAST(CARDINAL,BITSET{                                               }),
  39.  
  40.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  41.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  42.  
  43.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  44.    CAST(CARDINAL,BITSET{15                                          ,00}),
  45.  
  46.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  47.    CAST(CARDINAL,BITSET{15                                          ,00}),
  48.  
  49.    CAST(CARDINAL,BITSET{   14,13,12,11,10,09,08,07,06,05,04,03,02,01   }),
  50.    CAST(CARDINAL,BITSET{   14                                    ,01   }),
  51.  
  52.    CAST(CARDINAL,BITSET{      13                              ,02      }),
  53.    CAST(CARDINAL,BITSET{      13,12,11,10,09,08,07,06,05,04,03,02      }),
  54.  
  55.    CAST(CARDINAL,BITSET{         12                        ,03         }),
  56.    CAST(CARDINAL,BITSET{         12,11,10,09,08,07,06,05,04,03         }),
  57.  
  58.    CAST(CARDINAL,BITSET{            11                  ,04            }),
  59.    CAST(CARDINAL,BITSET{            11,10,09,08,07,06,05,04            }),
  60.  
  61.    CAST(CARDINAL,BITSET{               10            ,05               }),
  62.    CAST(CARDINAL,BITSET{               10,09,08,07,06,05               }),
  63.  
  64.    CAST(CARDINAL,BITSET{                  09      ,06                  }),
  65.    CAST(CARDINAL,BITSET{                  09,08,07,06                  }),
  66.  
  67.    CAST(CARDINAL,BITSET{                     08,07                     }),
  68.    CAST(CARDINAL,BITSET{                     08,07                     }),
  69.  
  70.    CAST(CARDINAL,BITSET{                     08,07                     }),
  71.    CAST(CARDINAL,BITSET{                     08,07                     }),
  72.  
  73.    CAST(CARDINAL,BITSET{                     08,07                     }),
  74.    CAST(CARDINAL,BITSET{                     08,07                     }),
  75.  
  76.    CAST(CARDINAL,BITSET{                  09,08,07,06                  }),
  77.    CAST(CARDINAL,BITSET{                  09      ,06                  }),
  78.  
  79.    CAST(CARDINAL,BITSET{               10,09,08,07,06,05               }),
  80.    CAST(CARDINAL,BITSET{               10            ,05               }),
  81.  
  82.    CAST(CARDINAL,BITSET{            11,10,09,08,07,06,05,04            }),
  83.    CAST(CARDINAL,BITSET{            11                  ,04            }),
  84.  
  85.    CAST(CARDINAL,BITSET{         12,11,10,09,08,07,06,05,04,03         }),
  86.    CAST(CARDINAL,BITSET{         12                        ,03         }),
  87.  
  88.    CAST(CARDINAL,BITSET{      13,12,11,10,09,08,07,06,05,04,03,02      }),
  89.    CAST(CARDINAL,BITSET{      13                              ,02      }),
  90.  
  91.    CAST(CARDINAL,BITSET{   14                                    ,01   }),
  92.    CAST(CARDINAL,BITSET{   14,13,12,11,10,09,08,07,06,05,04,03,02,01   }),
  93.  
  94.    CAST(CARDINAL,BITSET{15                                          ,00}),
  95.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  96.  
  97.    CAST(CARDINAL,BITSET{15                                          ,00}),
  98.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  99.  
  100.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  101.    CAST(CARDINAL,BITSET{15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00}),
  102.  
  103.    CAST(CARDINAL,BITSET{                                               }),
  104.    CAST(CARDINAL,BITSET{                                               })
  105.   );
  106.  END SleepPointerData;
  107.  
  108.  
  109.  
  110. PROCEDURE SleepPointer;
  111.  BEGIN
  112.   IF NOT pointeractive THEN
  113.    SetPointer(CAST(ADDRESS,window),ptrdat,21,16,-8,-11);
  114.    pointeractive:=TRUE;
  115.   END;
  116.  END SleepPointer;
  117.  
  118.  
  119.  
  120. PROCEDURE NormalPointer;
  121.  BEGIN
  122.   IF pointeractive THEN
  123.    ClearPointer(CAST(ADDRESS,window));
  124.    pointeractive:=FALSE;
  125.   END;
  126.  END NormalPointer;
  127.  
  128.  
  129.  
  130. BEGIN
  131.  pointeractive:=FALSE;
  132.  AllocMem(ptrdat,1000,TRUE); (* 1000 is used as an upper limit that will *)
  133.                              (* definitely never be reached.             *)
  134.  myAssert(ptrdat#NIL,ADR(msg[81]),ADR(msg[82]));
  135.  ptrcast:=ADR(SleepPointerData);
  136.  ptrdat^:=ptrcast^;
  137. END CPCSleep.
  138.