home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9302 / signals / ts / iodll.mod < prev    next >
Encoding:
Modula Implementation  |  1993-01-19  |  989 b   |  47 lines

  1. (*# call( near_call => off,
  2.           seg_name => BODIO_IOPL,
  3.           iopl => on) *)
  4. (*# data( near_ptr => off) *)
  5. (*%F _fdata *)
  6. (*# data( seg_name => null) *)
  7. (*%E *)
  8. (*# check( stack => off,
  9.            index => off,
  10.            range => off,
  11.            overflow => off,
  12.            nil_ptr => off) *)
  13. (*# module( implementation => off, init_code => off) *)
  14.  
  15. IMPLEMENTATION MODULE IODLL;
  16.  
  17.  
  18. IMPORT Dos;
  19.  
  20.  
  21. CONST   REQUEST = 0;
  22.         RELEASE = 1;
  23.  
  24.  
  25. VAR     res             : CARDINAL;
  26.  
  27.  
  28. PROCEDURE Input( p : CARDINAL) : SHORTCARD;
  29. VAR v : SHORTCARD;
  30. BEGIN
  31.   res := Dos.PortAccess( 0, REQUEST, p, p (* FIRST, LAST *) );
  32.   v := In( p);
  33.   res := Dos.PortAccess( 0, RELEASE, p, p (* FIRST, LAST *) );
  34.   RETURN v;
  35. END Input;
  36.  
  37.  
  38. PROCEDURE Output( p : CARDINAL; v : SHORTCARD);
  39. BEGIN
  40.   res := Dos.PortAccess( 0, REQUEST, p, p (* FIRST, LAST *) );
  41.   Out( p, v);
  42.   res := Dos.PortAccess( 0, RELEASE, p, p (* FIRST, LAST *) );
  43. END Output;
  44.  
  45.  
  46. END IODLL.
  47.