home *** CD-ROM | disk | FTP | other *** search
/ Gold Fish 3 / goldfish_volume_3.bin / files / fish / disks / d1115.lha / Programs / CX / Quelltext / CX.mod < prev    next >
Encoding:
Text File  |  1995-07-11  |  2.6 KB  |  104 lines

  1. (*
  2. :Program.       CX
  3. :Contents.      Ersatz für das Commodities Exchange Programm
  4. :Author.        Fin Schuppenhauer
  5. :Copyright.     Postcardware
  6. :Language.      Modula-2
  7. :Translator.    M2Amiga V4.301d
  8. :History        2.2 Fin Schuppenhauer 29.05.95 (Aminet)
  9. :History        2.1 Fin Schuppenhauer 10.05.95 (Aminet)
  10. :History        2.0 Fin Schuppenhauer 26.04.95 (Aminet)
  11. :History.       1.3 Fin Schuppenhauer 19.09.94 (Aminet)
  12. :History.       1.1 Fin Schuppenhauer 13.09.94 (Aminet)
  13. :History.       1.0 Fin Schuppenhauer 06.09.94
  14. :Address.       Fin Schuppenhauer, Braußpark 10, 20537 Hamburg
  15. :Address.       E-Mail: 1schuppe@informatik.uni-hamburg.de
  16. *)
  17. MODULE CX;
  18.  
  19.    (* CX.mod - Ersatz für das "Exchange"-Programm der Workbench
  20.     * Version     : $VER: CX.mod 2.3 (© 1995 Fin Schuppenhauer)
  21.     * Autor       : Fin Schuppenhauer
  22.     *               Braußpark 10
  23.     *               20537 Hamburg
  24.     *               (Germany)
  25.     * E-Mail      : 1schuppe@informatik.uni-hamburg.de
  26.     * Erstellt am : 23 Jan 1995
  27.     * Letzte Änd. : 11 Jul 1995
  28.     *)
  29.  
  30.     (*$ DEFINE DEBUG:=FALSE *)
  31.  
  32. IMPORT
  33.     el:ExecL,
  34.     dd:DosD,
  35.     cxw:CXWindow,
  36.     cxc:CXCommodity,
  37.     cxr:CXARexx;
  38.  
  39. (*$ IF DEBUG *)
  40. IMPORT io:InOut;
  41. (*$ ENDIF *)
  42.  
  43. FROM SYSTEM IMPORT
  44.     LONGSET, CAST;
  45.  
  46. (* --------------------------------------------------------------- *)
  47.  
  48. PROCEDURE CleanUp;
  49. (* Alles aufräumen und uns vom System verabschieden. Bye, bye... *)
  50. BEGIN
  51.     (*$ IF DEBUG *)
  52.     io.WriteString ("CleanUp...\n");
  53.     (*$ ENDIF *)
  54.     cxw.CloseWindow;
  55.     cxc.FreeBroker;
  56.     cxr.FreeARexx;
  57. END CleanUp;
  58.  
  59. (* --------------------------------------------------------------- *)
  60.  
  61. PROCEDURE Schubidu;
  62. (* Hauptprogramm-Warteschleife. Nachrichten empfangen und dann
  63.  * reagieren.
  64.  *)
  65. VAR
  66.     done: BOOLEAN;
  67.     rcvdsigs, waitsigs: LONGSET;
  68. BEGIN
  69.     (*$ IF DEBUG *)
  70.     io.WriteString ("Schubidu...\n");
  71.     (*$ ENDIF *)
  72.     done := FALSE;
  73.  
  74.     WHILE NOT(done) DO
  75.         waitsigs := LONGSET{dd.ctrlC,cxc.brokersignal,cxw.windowsignal,cxr.arexxsignal};
  76.         rcvdsigs := el.Wait(waitsigs);
  77.         IF cxw.windowsignal IN rcvdsigs THEN
  78.             cxw.HandleWindowMsg (done);
  79.         END;
  80.         IF cxc.brokersignal IN rcvdsigs THEN
  81.             cxc.HandleBrokerMsg (done);
  82.         END;
  83.         IF cxr.arexxsignal IN rcvdsigs THEN
  84.             cxr.HandleARexxMsg (done);
  85.         END;
  86.         IF dd.ctrlC IN rcvdsigs THEN
  87.             done := TRUE;
  88.         END;
  89.     END;
  90. END Schubidu;
  91.  
  92. BEGIN (* main *)
  93.     (*$ IF DEBUG *)
  94.     io.WriteString ("Module CX loaded...\n");
  95.     (*$ ENDIF *)
  96.     IF cxr.InitARexx() THEN
  97.         IF cxc.InitBroker() THEN
  98.             Schubidu;
  99.         END;
  100.     END;
  101.  
  102.     CleanUp;
  103. END CX.
  104.