home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / turbo_part1.lha / modula / amiga / Classes.mod < prev    next >
Encoding:
Modula Implementation  |  1995-01-24  |  788 b   |  32 lines

  1. IMPLEMENTATION MODULE Classes ;
  2.  
  3. FROM SYSTEM IMPORT ADDRESS ;
  4. IMPORT I := Intuition{36} ;
  5.  
  6. PROCEDURE INST_DATA( cl : IClassPtr ; o : ADDRESS ) : ADDRESS ;
  7. BEGIN RETURN o+cl^.cl_InstOffset ;
  8. END INST_DATA ;
  9.  
  10. PROCEDURE SIZEOF_INSTANCE( cl : IClassPtr ) : LONGINT ;
  11. BEGIN RETURN ( cl^.cl_InstOffset + cl^.cl_InstSize + SIZE( _Object ) )
  12. END SIZEOF_INSTANCE ;
  13.  
  14. PROCEDURE _OBJ( o : ADDRESS ) : _ObjectPtr ;
  15. BEGIN RETURN o
  16. END _OBJ ;
  17.  
  18. PROCEDURE BASEOBJECT( _obj : ADDRESS ) : _ObjectPtr ;
  19. BEGIN RETURN _ObjectPtr( _obj+SIZE(_Object) )
  20. END BASEOBJECT ;
  21.  
  22. PROCEDURE _OBJECT( o : ADDRESS ) : _ObjectPtr ;
  23. BEGIN RETURN _ObjectPtr( o-SIZE(_Object) )
  24. END _OBJECT ;
  25.  
  26. PROCEDURE OCLASS( o : _ObjectPtr ) : IClassPtr ;
  27. BEGIN RETURN o^.o_Class
  28. END OCLASS ;
  29.  
  30. BEGIN I.Intuition_BEGIN( VERSION )
  31. END Classes.
  32.