-- print out filetypes of objects in the same directory

 local sys , dim , dir ,! ,$  in require "riscos"
 local name  = dim (12)
 ![name+8] = 0
 local thisdir  = (arg[0]):gsub ("(%.[^%.]+)$", "")
 local sep , fmt , blank , tab  =
       ".", "  %s%s%s", " ", 32
 local folder  = {
  [0x1000] = "directory",
  [0x2000] = "application",
  [-1] = "untyped",
              }
 local decode  = \ (x)
    local s = folder[x]
    if s then => s end -- if
    local r0, r1, r2, r3 = sys (0x29, 18, 0, x) -- OS_FSControl
    assert (r0, r1)
    ![name] = r2
    ![name+4] = r3
    => $[name]
    end -- function

 print "-------"
 for leaf, ftype in dir (thisdir) do
  print (fmt:format (leaf, blank:rep (tab - #leaf), decode (ftype)))
 end -- for
