%include "GDMR_H:IO_F.Inc"

%systemroutinespec phex(%integer i)

%begin
   %ownshortarray buffer(0 : 255) = 0(*)
   %string(255) file
   %integer token = 0, size, flags, i, j, k, bytes, ID, type
      %on 3, 9 %start
         printstring(event_message);  newline
         L close file(nil, token, 0) %if token # 0
         %stop
      %finish
      file = CLI param
      %if file = "" %start
         prompt("Tree: ");  read(file) %until file # ""
      %finish
      L translate path(nil, file, ID)
      printstring("File ID is ");  phex(ID);  newline
      byteinteger(addr(file)    ) = 5
      byteinteger(addr(file) + 1) = 2
      integer    (addr(file) + 2) = ID & 16_3FFFFFFF
      F validate pathnames = 1
      L open file(nil, file, 3, 0, -1, 0, token, size, flags)
      printstring("Opened as ");  phex(token)
      printstring(", size ");  write(size, 0)
      printstring(", flags ");  phex(flags);  newline
      buffer(0) = -1;  buffer(255) = 1
      L write block(nil, token, 0, 512, record(addr(buffer(0))))
      L write block(nil, token, 1, 512, record(addr(buffer(0))))
      L close file(nil, token, 0)
%end %of %program
