/* Example how to use other, kick2 only librarys from dex.
   We'll pop up a filerequester from the asl.library.       */

PROC main()
  DEF aslbase:LONG, req:LONG
  DEF version:REGINT, ret:REGLONG, suxxes:REGLONG
  DEF file:LONG, dir:LONG
  version := KickVersion(37)
  IF version=FALSE
    WRITE 'Get yourself a kick 2.04 upgrade first.\n'
  ELSE
    aslbase := OpenLibrary('asl.library',36)
    IF aslbase=FALSE
      WRITE 'Could not open asl.library!\n'
    ELSE
      req := allocreq()
      IF req=FALSE
        WRITE 'Could not allocate filerequester!\n'
      ELSE
        WRITE 'Pick a file:\n'
        suxxes := filereq(req)
        IF suxxes=FALSE
          WRITE 'You\are not too bright hmm?\n'
        ELSE
          file := MLONG(req+4)
          dir := MLONG(req+8)
          WRITE 'Guess what! you picked "\s" in "\s" !\n',file,dir
        ENDIF
        VOID freereq(req)
      ENDIF
      VOID CloseLibrary(aslbase)
    ENDIF
  ENDIF
ENDPROC

' We use stubs for these

PROC allocreq()
  CALL aslbase[-30],,ret
ENDPROC ret

PROC freereq(req)
  LOCAL req[regs.32]:LONG
  CALL aslbase[-36],{regs}
ENDPROC

PROC filereq(req)
  LOCAL req[regs.32]:LONG
  CALL aslbase[-42],{regs},ret
ENDPROC ret

STRUCT regs
  LONG 0,0,0,0,0,0,0,0
  LONG 0,0,0,0,0,0
ENDSTRUCT

