home *** CD-ROM | disk | FTP | other *** search
/ TopWare Tools / TOOLS.iso / tools / top1014 / gepackt.exe / ICA / BSPL / BSPL.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-08-20  |  4.8 KB  |  130 lines

  1. PROGRAM Bspl;
  2. (* TXT2EXE und TXT2EXE-Interprogram-Communication-Area *)
  3.  
  4. (*****************************************************************************)
  5. (*                                                                           *)
  6. (*    A C H T U N G !!!                                                      *)
  7. (*                                                                           *)
  8. (*                                                                           *)
  9. (* Dieses Programm ist nur korrekt lauffähig, wenn es aus der Stapeldatei    *)
  10. (* "START.BAT" gestartet wird.                                               *)
  11. (* Über diese Stapeldatei wird zuerst T2EICA, anschließend das TSR HELP.EXE  *)
  12. (* geladen                                                                   *)
  13. (*                                                                           *)
  14. (*****************************************************************************)
  15.  
  16. USES crt, dos { wg TYPE Registers } ;
  17.  
  18. TYPE
  19.   TXT2EXEMode = (Zeile, Seite, UeberSchrift);
  20.  
  21.   FUNCTION TXT2EXEset(mode : TXT2EXEMode; value : LongInt) : Boolean;
  22.  (*************************************************************************)
  23.  (*  Setzt Zeile, Seite, Ueberschrift für die Stelle an der mit TXT2EXE   *)
  24.  (*  erzeugte Programme mit der Anzeige beginnen sollen. Jedoch muß       *)
  25.  (*  zuvor das TSR T2EICA (600 Bytes) installiert sein.                   *)
  26.  (*    AUFRUF INT 2Fh                                                     *)
  27.  (*      AX = 5547h                                                       *)
  28.  (*      Bh = Function : 0 -- installed // 1 -- set val // 2 -- get val   *)
  29.  (*      Bl = Modus : 0 -- Zeile // 1 -- Seite // 2 -- Ueberschrift       *)
  30.  (*      CX = Wert div 65536 (Hi-Word)                                    *)
  31.  (*      DX = Wert mod 65536 (Lo-Word)                                    *)
  32.  (*    Zurück :                                                           *)
  33.  (*      AX = 524Eh wenn OK                                               *)
  34.  (*************************************************************************)
  35.   CONST
  36.     TXT2EXE_ICA_KENNUNG = $5547;                 { "GU" }
  37.     TXT2EXE_ICA_ANTWORT_OK = $524e;              { "NR" }
  38.   TYPE
  39.     Long = RECORD
  40.              l, h : Word;
  41.            END;
  42.   VAR
  43.     r : registers;
  44.   BEGIN
  45.     r.ax := TXT2EXE_ICA_KENNUNG;                 { Kennung in AX }
  46.     r.bh := 0;                                   { ICA installiert ? }
  47.     intr($2f, r);
  48.     IF r.ax = TXT2EXE_ICA_ANTWORT_OK THEN        { OK=Antwort }
  49.       BEGIN
  50.         CASE mode OF
  51.           Zeile : r.bl := 0;                     { Zeile : bl = 0 }
  52.           Seite : r.bl := 1;                     { Seite : bl = 1 }
  53.           UeberSchrift : r.bl := 2               { Ueberschrift : bl = 2 }
  54.         END;
  55.         r.bh := 1;                               { Funktion PUT-Value to ICA }
  56.         r.ax := TXT2EXE_ICA_KENNUNG;
  57.         r.cx := Long(value).h;                   { Typecasting longint --> word }
  58.         r.dx := Long(value).l;                   { Typecasting longint --> word }
  59.         intr($2f, r);
  60.         IF r.ax = TXT2EXE_ICA_ANTWORT_OK THEN    { OK=Antwort }
  61.           TXT2EXEset := True                     { Alles glatt gegangen }
  62.         ELSE
  63.           TXT2EXEset := False                    { schiefgeganen ... }
  64.       END
  65.     ELSE
  66.       TXT2EXEset := False                        { T2EICA nicht installiert }
  67.   END;
  68.  
  69.  
  70.  
  71.   (* Programm-Abbruch mit Meldung via String S *)
  72.   PROCEDURE Abort(s : String);
  73.   BEGIN
  74.     WriteLn(s);
  75.     Halt(1);
  76.   END;
  77.  
  78.   (* MAIN *)
  79. BEGIN
  80.  
  81.   textattr := Blue SHL 4+White;
  82.   clrscr;
  83.  
  84.   WriteLn('Beispiel-Programm zu TXT2EXE und T2EICA');
  85.   WriteLn;
  86.  
  87.   IF NOT TXT2EXEset(UeberSchrift, 1) THEN
  88.     Abort(^g+'T2EICA nicht installiert'+^g);
  89.  
  90.   WriteLn('Wenn Sie jetzt <F1> drücken, so wird HELP.EXE aktiviert und');
  91.   WriteLn('bekommt von T2EICA die Information "Überschrift Nr. 1"');
  92.   WriteLn;
  93.   WriteLn('Weiter mit <ESC>');
  94.  
  95.   REPEAT
  96.   UNTIL readkey = #27;
  97.  
  98.   TXT2EXEset(Seite, 1);
  99.  
  100.   WriteLn('Wenn Sie jetzt <F1> drücken, so wird HELP.EXE aktiviert und');
  101.   WriteLn('bekommt von T2EICA die Information "Seite Nr. 1"');
  102.   WriteLn;
  103.   WriteLn('Weiter mit <ESC>');
  104.  
  105.   REPEAT
  106.   UNTIL readkey = #27;
  107.  
  108.   TXT2EXEset(UeberSchrift, 18);
  109.  
  110.   WriteLn('Wenn Sie jetzt <F1> drücken, so wird HELP.EXE aktiviert und');
  111.   WriteLn('bekommt von T2EICA die Information "Überschrift 18"');
  112.   WriteLn;
  113.   WriteLn('Weiter mit <ESC>');
  114.  
  115.   REPEAT
  116.   UNTIL readkey = #27;
  117.  
  118.  
  119.   TXT2EXEset(Zeile, 56);
  120.  
  121.   WriteLn('Wenn Sie jetzt <F1> drücken, so wird HELP.EXE aktiviert und');
  122.   WriteLn('bekommt von T2EICA die Information "Zeile 56"');
  123.   WriteLn;
  124.   WriteLn('Weiter mit <ESC>');
  125.  
  126.   REPEAT
  127.   UNTIL readkey = #27;
  128.  
  129. END.
  130. (* MAIN Ends *)