T18.mod 890 B

1234567891011121314151617181920212223242526272829303132
  1. MODULE T18;
  2. IMPORT FIO, Storage, SYSTEM, Strings, MemUtils, libc;
  3. IMPORT NumberIO;
  4. TYPE
  5. abufType = RECORD
  6. b : SYSTEM.ADDRESS;
  7. len : CARDINAL;
  8. END;
  9. abufTypePtr = POINTER TO abufType;
  10. VAR
  11. (* abuf : abufType; *)
  12. abufPtr : abufTypePtr;
  13. str : ARRAY [0..100] OF CHAR;
  14. i : CARDINAL;
  15. BEGIN
  16. Storage.ALLOCATE(abufPtr,SYSTEM.TSIZE(abufType) );
  17. str := " Bonjour les petits amis!";
  18. Storage.ALLOCATE(abufPtr^.b, Strings.Length(str));
  19. MemUtils.MemCopy(SYSTEM.ADR(str),Strings.Length(str), abufPtr^.b);
  20. abufPtr^.len := Strings.Length(str);
  21. libc.write(FIO.StdOut,abufPtr^.b,abufPtr^.len);
  22. Storage.DEALLOCATE(abufPtr^.b, Strings.Length(str));
  23. Storage.DEALLOCATE(abufPtr,SYSTEM.TSIZE(abufType));
  24. END T18.