home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / language / modula / gemdos.def < prev    next >
Encoding:
Modula Definition  |  1993-10-23  |  7.7 KB  |  234 lines

  1. (************************************************************************
  2. *                                                                       *
  3. *       Atari Support for the new Single Pass Compiler                  *
  4. *                                                                       *
  5. *       Version:  m1pc                                                  *
  6. *                                                                       *
  7. *       M.Jetter    20/02/87    v0.1                                    *
  8. *                                                                       *
  9. ************************************************************************)
  10.  
  11.  
  12. DEFINITION MODULE GEMDOS;
  13.  
  14. FROM SYSTEM IMPORT ADDRESS ;
  15.  
  16. CONST
  17.  
  18.   (* BIOS error codes *)
  19.   EOK           =   0 ;
  20.   Error         =  -1 ;
  21.   EDrvNR        =  -2 ;         (* Drive not ready *)
  22.   EUnCmd        =  -3 ;         (* Unknown command *)
  23.   ECRC          =  -4 ;         (* CRC error *)
  24.   EBadRq        =  -5 ;         (* Bad request *)
  25.   ESeek         =  -6 ;         (* Seek error *)
  26.   EMedia        =  -7 ;         (* Unknown media *)
  27.   ESecNF        =  -8 ;         (* Sector not found *)
  28.   EPaper        =  -9 ;         (* No paper *)
  29.   EWritF        = -10 ;         (* Write fault *)
  30.   EReadF        = -11 ;         (* Read fault *)
  31.   EGenrl        = -12 ;         (* General error *)
  32.   EWrPro        = -13 ;         (* Write protect *)
  33.   EChng         = -14 ;         (* Media change *)
  34.   EUnDev        = -15 ;         (* Unknown device *)
  35.   EBadSF        = -16 ;         (* Bad sectors on format *)
  36.   EOther        = -17 ;         (* Insert other disk *)
  37.  
  38.   (* BDOS Error codes *)
  39.   EInvFN        = -32 ;         (* Invalid function number *)
  40.   EFilNF        = -33 ;         (* File not found *)
  41.   EPthNF        = -34 ;         (* Path not found *)
  42.   ENHndl        = -35 ;         (* No handles left *)
  43.   EAccDn        = -36 ;         (* Access denied *)
  44.   EIHndl        = -37 ;         (* Invalid handle *)
  45.   ENSMem        = -39 ;         (* Insufficient memory *)
  46.   EIMBA         = -40 ;         (* Invalid memory block address *)
  47.   EDrive        = -46 ;         (* Invaild drive specified *)
  48.   ENMFil        = -49 ;         (* No more files *)
  49.  
  50.   (* Other errors *)
  51.   ERange        = -64 ;         (* Range error *)
  52.   EIntrn        = -65 ;         (* Internal error *)
  53.   EPLFmt        = -66 ;         (* Invalid program load format *)
  54.   EGSBF         = -67 ;         (* Setblock failure due to growth restr *)
  55.  
  56. TYPE
  57.  
  58.   IOMode   = ( read, write ) ;
  59.   SeekMode = ( beginning, relative, end ) ;
  60.   ExecMode = ( loadExecute, resrvd1, resrvd2, load ) ;
  61.   SetOrGet = ( set, get ) ;
  62.  
  63.   DiskInfoBuffer = RECORD 
  64.                      freeSpace   : LONGINT ; (* in clusters *)
  65.                      clusters    : LONGINT ; (* num on disk *)
  66.                      sectorSize  : LONGINT ; (* in bytes *)
  67.                      clusterSize : LONGINT ; (* sectors per cluster *)
  68.                    END ;
  69.  
  70.  
  71. VAR   ErrorNo   :    INTEGER;      (* the return code of the last system *) 
  72.                                    (* call (perhaps an error code)       *)
  73.                                  
  74. PROCEDURE OldTerm () ;
  75. (* Terminate process (old version) *)
  76.  
  77. PROCEDURE ConIn ( VAR Ch : CHAR ) ;
  78. (* Read character from standard input *)
  79.  
  80. PROCEDURE ConScanIn ( VAR Ch, Scan : CHAR ) ;
  81. (* Read character and scan code from standard input *)
  82.  
  83. PROCEDURE ConOut ( Ch : CHAR ) ;
  84. (* Write character to standard output *)
  85.  
  86. PROCEDURE AuxIn ( VAR Ch : CHAR ) ;
  87. (* Read character from auxiliary port *)
  88.  
  89. PROCEDURE AuxOut ( Ch : CHAR ) ;
  90. (* Write character to auxiliary port *)
  91.  
  92. PROCEDURE PrnOut ( Ch : CHAR ) ;
  93. (* Write character to printer port *)
  94.  
  95. PROCEDURE RawIO ( VAR Ch : CHAR ; Mode : IOMode ) ;
  96. (* Raw IO to standard input/output device *)
  97.  
  98. PROCEDURE RawIn ( VAR Ch : CHAR ) ;
  99. (* Raw input from standard input *)
  100.  
  101. PROCEDURE RawScanIn ( VAR Ch, Scan : CHAR ) ;
  102. (* Raw inpput of character and scan code from standard input *)
  103.  
  104. PROCEDURE NecIn ( VAR Ch : CHAR ) ;
  105. (* Read character from standard input with no echo *)
  106.  
  107. PROCEDURE ConWS ( String : ARRAY OF CHAR ) ;
  108. (* Write null terminated string to standard output device *)
  109.  
  110. PROCEDURE ConRS ( VAR String : ARRAY OF CHAR ) ;
  111. (* Read edited string from standard input device *)
  112.  
  113. PROCEDURE ConIS () : BOOLEAN ;
  114. (* Return status of standard input *)
  115.  
  116. PROCEDURE SetDrv ( Drive : CARDINAL ; VAR DriveMap : LONGINT ) ;
  117. (* Set default drive *)
  118.  
  119. PROCEDURE ConOS () : BOOLEAN ;
  120. (* Return output status of standard output *)
  121.  
  122. PROCEDURE PrnOS () : BOOLEAN ;
  123. (* Return output status of standard printer *)
  124.  
  125. PROCEDURE AuxIS () : BOOLEAN ;
  126. (* Return status of standard auxiliary *)
  127.  
  128. PROCEDURE AuxOS () : BOOLEAN ;
  129. (* Return output status of standard auxiliary *)
  130.  
  131. PROCEDURE GetDrv ( VAR Drive : CARDINAL ) ;
  132. (* Get default drive *)
  133.  
  134. PROCEDURE SetDTA ( Address : ADDRESS ) ;
  135. (* Set disk transfer address *)
  136.  
  137. PROCEDURE GetDate ( VAR Date : CARDINAL ) ;
  138. (* Get Date *)
  139.  
  140. PROCEDURE SetDate ( Date : CARDINAL ) ;
  141. (* Set Date *)
  142.  
  143. PROCEDURE GetTime ( VAR Time : CARDINAL ) ;
  144. (* Get Date *)
  145.  
  146. PROCEDURE SetTime ( Time : CARDINAL ) ;
  147. (* Set Date *)
  148.  
  149. PROCEDURE GetDTA ( VAR Addr : ADDRESS ) ;
  150. (* Get disk transfer address *)
  151.  
  152. PROCEDURE Version ( VAR Ver : CARDINAL ) ;
  153. (* Get version number *)
  154.  
  155. PROCEDURE TermRes ( NumBytes : LONGINT ; ExitCode : CARDINAL ) ;
  156. (* Terminate and stay resident *)
  157.  
  158. PROCEDURE DFree (VAR InfoBuffer : DiskInfoBuffer ; Drive : CARDINAL ) ;
  159. (* Get drive free space *)
  160.  
  161. PROCEDURE DirCreate ( Path : ARRAY OF CHAR ) : BOOLEAN ;
  162. (* Create a subdirectory *)
  163.  
  164. PROCEDURE DirDelete ( Path : ARRAY OF CHAR ) : BOOLEAN;
  165. (* Delete a subdirectory *)
  166.  
  167. PROCEDURE SetPath ( Path : ARRAY OF CHAR ) : BOOLEAN ;
  168. (* Set current directory *)
  169.  
  170. PROCEDURE Create ( Name : ARRAY OF CHAR ; Attr : CARDINAL ; 
  171.                    VAR Handle : INTEGER  ) ;
  172. (* Create a file *)
  173.  
  174. PROCEDURE Open ( Name : ARRAY OF CHAR ; Mode : CARDINAL ;
  175.                  VAR Handle : INTEGER ) ;
  176. (* Open a file *)
  177.  
  178. PROCEDURE Close ( Handle : INTEGER ) : BOOLEAN ;
  179. (* Close a file *)
  180.  
  181. PROCEDURE Read ( Handle : INTEGER ; VAR Count : LONGINT ; Buffer: ADDRESS);
  182. (* Read file *)
  183.  
  184. PROCEDURE Write ( Handle : INTEGER ; VAR Count: LONGINT ; Buffer: ADDRESS);
  185. (* Write file *)
  186.  
  187. PROCEDURE Delete ( Name : ARRAY OF CHAR ) : BOOLEAN ;
  188. (* Delete file *)
  189.  
  190. PROCEDURE Seek ( Offset : LONGINT ; Handle : INTEGER ; Mode : SeekMode ;
  191.                  VAR Position : LONGINT ) ;
  192. (* Seek file pointer *)
  193.  
  194.  
  195. PROCEDURE Attrib ( Name : ARRAY OF CHAR ; Which : SetOrGet ; 
  196.                    VAR Attr : CARDINAL ) ;
  197. (* Get/Set file attributes *)
  198.  
  199. PROCEDURE GetPath ( VAR PathName : ARRAY OF CHAR ; Drive : CARDINAL ) ;
  200. (* Get current directory *)
  201.  
  202. PROCEDURE Alloc ( Bytes : LONGINT ; VAR Addr : ADDRESS ) ;
  203. (* Allocate memory *)
  204.  
  205. PROCEDURE Free ( Addr : ADDRESS ) : BOOLEAN ;
  206. (* Free memory *)
  207.  
  208. PROCEDURE Shrink ( Addr : ADDRESS ; NewSize : LONGINT ) : BOOLEAN ;
  209. (* Shrink size of allocated memory *)
  210.  
  211. PROCEDURE Exec ( Mode : ExecMode ; Name : ARRAY OF CHAR ; 
  212.                  Tail : ARRAY OF CHAR ; EnvStr : ARRAY OF CHAR ;
  213.                  VAR Result : INTEGER ) ;
  214. (* Load or execute a process *)
  215.  
  216. PROCEDURE Term ( Code : INTEGER ) : BOOLEAN ;
  217. (* Terminate a process *)
  218.  
  219. PROCEDURE SFirst ( Name : ARRAY OF CHAR ; Attr : CARDINAL ;
  220.                    VAR Result : INTEGER ) ;
  221. (* Search for first file *)
  222.  
  223. PROCEDURE SNext ( VAR Result : INTEGER ) ;
  224. (* Search for next file *)
  225.  
  226. PROCEDURE Rename ( CurrentName, NewName : ARRAY OF CHAR ) ;
  227. (* Rename a file *)
  228.  
  229. PROCEDURE DaTime ( Handle : INTEGER ; Buffer : ADDRESS ; Which : SetOrGet ) ;
  230. (* Get/Set file date and time stamp *)
  231.  
  232.  
  233. END GEMDOS.
  234.