home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / Misc / M2V11-1.LHA / modula / ansi-c / StdIO.mod < prev    next >
Encoding:
Modula Implementation  |  1993-11-22  |  1.0 KB  |  48 lines

  1. (* @P- @B- *)
  2. IMPLEMENTATION MODULE StdIO ; (* Entirely DICE specific *)
  3.  
  4. IMPORT StdIO, Iob, SYSTEM ;
  5.  
  6. CONST
  7.   SIF_EOF = BITSET( 00002 ) ;
  8.  
  9. PROCEDURE clearerr( fi : FILEPtr ) ;
  10. BEGIN fi^.sd_Flags := fi^.sd_Flags-SIF_EOF ; fi^.sd_Error := 0 ;
  11. END clearerr ;
  12.  
  13. PROCEDURE feof( fi : FILEPtr ) : BOOLEAN ;
  14. BEGIN RETURN (fi^.sd_Flags*SIF_EOF) # {} ;
  15. END feof ;
  16.  
  17. PROCEDURE ferror( fi : FILEPtr ) : LONGINT ;
  18. BEGIN RETURN fi^.sd_Error
  19. END ferror ;
  20.  
  21. PROCEDURE fileno( fi : FILEPtr ) : LONGINT ;
  22. BEGIN RETURN fi^.sd_Fd
  23. END fileno ;
  24.  
  25. PROCEDURE getc( fi : FILEPtr ) : LONGINT ;
  26. BEGIN RETURN StdIO.fgetc( fi )
  27. END getc ;
  28.  
  29. PROCEDURE putc( c : LONGINT ; fi : FILEPtr ) : LONGINT ;
  30. BEGIN RETURN StdIO.fputc( c , fi )
  31. END putc ;
  32.  
  33. PROCEDURE getchar( ) : LONGINT ;
  34. BEGIN RETURN StdIO.fgetc( stdin )
  35. END getchar ;
  36.  
  37. PROCEDURE putchar( c : LONGINT ) : LONGINT ;
  38. BEGIN RETURN StdIO.fputc( c , stdout )
  39. END putchar ;
  40.  
  41. BEGIN
  42.   stdin  := SYSTEM.ADR( Iob._Iob ) ;
  43.   stdout := SYSTEM.ADDRESS( stdin  ) + SIZE( FILE ) ;
  44.   stderr := SYSTEM.ADDRESS( stdout ) + SIZE( FILE ) ;
  45. END StdIO.
  46.  
  47.  
  48.