COREMAIN.DEF 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. (* Release 3.10 *)
  2. (*-------------------------------------------------------------------------*
  3. * *
  4. * COREMAIN.DEF - Modula-2 interface to COREMAIN.A *
  5. * *
  6. * COPYRIGHT (C) 1989..1992 Clarion Software Corporation. *
  7. * All Rights Reserved *
  8. * *
  9. *--------------------------------------------------------------------------*)
  10. (*# save *)
  11. (*# call(o_a_size=>off, o_a_copy=>off, c_conv=>on, result_optional=>on) *)
  12. (*# module(implementation=>off, init_code=>off) *)
  13. (*# name(prefix=>c) *)
  14. DEFINITION MODULE CoreMain;
  15. TYPE
  16. ParamBlock = RECORD
  17. Env: CARDINAL;
  18. Com: FarADDRESS;
  19. FCB5: FarADDRESS;
  20. FCB6: FarADDRESS;
  21. END;
  22. PROCEDURE exit(Code: INTEGER);
  23. PROCEDURE _exit(Code: INTEGER);
  24. (*# save *)
  25. (*# call(reg_saved => (ds, si, di,st1,st2)) *)
  26. PROCEDURE _exec(Path: ARRAY OF CHAR; VAR PBlock: ParamBlock): CARDINAL;
  27. PROCEDURE _get_retcode(): CARDINAL;
  28. (*# restore *)
  29. PROCEDURE _getheapbase(): FarADDRESS;
  30. VAR
  31. (*# save *)
  32. (*# call(reg_param=>(ax)) *)
  33. _shr_mem: PROCEDURE(): CARDINAL; (* near procedure variable - points to *)
  34. (* routine to shrink heap *)
  35. _fix_mem: PROCEDURE(CARDINAL);
  36. _res_mem: PROCEDURE;
  37. (*# restore *)
  38. _nmemsetup: BOOLEAN;
  39. _fmemsetup: BOOLEAN;
  40. _fmodmemsetup: BOOLEAN;
  41. _heap_size: CARDINAL;
  42. _near_heap_start: SHORTCARD;
  43. _osmajor: CARDINAL;
  44. _osminor: CARDINAL; (* DOS version *)
  45. _psp : CARDINAL;
  46. _argc : CARDINAL;
  47. _argv : ARRAY [0..31] OF POINTER TO ARRAY [0..127] OF CHAR;
  48. _env_var : ARRAY [0..31] OF ADDRESS;
  49. env : CARDINAL;
  50. stklen : CARDINAL;
  51. osmode : CARDINAL;
  52. _exit_io: PROCEDURE();
  53. END CoreMain.
  54.