home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / program / compiler / m2posx14 / test / showcmd.mpp < prev    next >
Encoding:
Text File  |  1994-05-29  |  2.2 KB  |  101 lines

  1. MODULE ShowCMD;
  2. __IMP_SWITCHES__
  3. __DEBUG__
  4. #ifdef HM2
  5. #ifdef __LONG_WHOLE__
  6. (*$!i+: Modul muss mit $i- uebersetzt werden! *)
  7. (*$!w+: Modul muss mit $w- uebersetzt werden! *)
  8. #else
  9. (*$!i-: Modul muss mit $i+ uebersetzt werden! *)
  10. (*$!w-: Modul muss mit $w+ uebersetzt werden! *)
  11. #endif
  12. #endif
  13. (* Test und Anwendungsbeispiel fuer Modul 'cmdline'.
  14.  *
  15.  * 29-Mai-94, Holger Kleinschmidt
  16.  *)
  17.  
  18. #if (defined MM2) && (defined __DEBUG_CODE__)
  19. IMPORT Debug;
  20. #endif
  21.  
  22. FROM PORTAB IMPORT
  23. (* CONST*) NULL;
  24.  
  25. FROM types IMPORT
  26. (* TYPE *) StrPtr, StrArray, StrRange, ArrayRange;
  27.  
  28. FROM cstr IMPORT
  29. (* PROC *) AssignCToM2;
  30.  
  31. FROM DosSystem IMPORT
  32. (* TYPE *) BasePage, BasePtr,
  33. (* VAR  *) BASEP;
  34.  
  35. FROM cmdline IMPORT
  36. (* VAR  *) environ,
  37. (* PROC *) main;
  38.  
  39. FROM InOut IMPORT
  40. (* PROC *) WriteString, WriteLn, Write, Read;
  41.  
  42. VAR argc : ArrayRange;
  43.     argv : StrArray;
  44.     str  : ARRAY[0..255] OF CHAR;
  45.     i    : ArrayRange;
  46.     c    : CHAR;
  47.     max  : CARDINAL;
  48.     idx  : CARDINAL;
  49.  
  50. BEGIN
  51.  WriteString("Basepage-Kommandozeile:"); WriteLn;
  52.  WriteString("-----------------------"); WriteLn;
  53.  WITH BASEP^ DO
  54.    max := ORD(pCmdlin[0]);
  55.    IF max > 127 THEN
  56.      max := 127;
  57.    END;
  58.    idx := 0;
  59.    Write('"');
  60.    WHILE (idx < max) AND (pCmdlin[idx+1] >= ' ') DO
  61.      Write(pCmdlin[idx+1]);
  62.      INC(idx);
  63.    END;
  64.    Write('"');
  65.    WriteLn;
  66.  END;
  67.  WriteLn;
  68.  
  69.  main(argc, argv);
  70.  
  71.  IF argc = 0 THEN
  72.    WriteString("Kein Speicher frei!"); WriteLn;
  73.  ELSE
  74.    WriteString("Programmname:"); WriteLn;
  75.    WriteString("-------------"); WriteLn;
  76.    AssignCToM2(argv^[0], 0, str);
  77.    Write('"'); WriteString(str); Write('"'); WriteLn;
  78.    WriteLn;
  79.  
  80.    WriteString("Programmargumente:"); WriteLn;
  81.    WriteString("------------------"); WriteLn;
  82.    i := 1;
  83.    WHILE argv^[i] <> NULL DO
  84.      AssignCToM2(argv^[i], 0, str);
  85.      Write('"'); WriteString(str); Write('"'); WriteLn;
  86.      INC(i);
  87.    END;
  88.    WriteLn;
  89.  
  90.    WriteString("Environment:"); WriteLn;
  91.    WriteString("------------"); WriteLn;
  92.    i:=0;
  93.    WHILE environ^[i] <> NULL DO
  94.      AssignCToM2(environ^[i], 0, str);
  95.      Write('"'); WriteString(str); Write('"'); WriteLn;
  96.      INC(i);
  97.    END;
  98.  END;
  99.  Read(c);
  100. END ShowCMD.
  101.