'
'
'
'
' ********  *******  *******               *******    *******  ********
' *      *  *     *  *     *               *          *        *      *
' *      *  *     *  *     *               *          *        *      *
' *      *  ******   ******      **        *          *        *      *
' ********  ***      *           **        *  *****   ****     ********
' *      *  * **     *        ********     *      *   *        *      *
' *      *  *  **    *           **        *      *   *        *      *
' *      *  *   **   *           **        ********   *        *      *
'
' Adaption by Heinz Heckeroth
'
' ***************************************************************************
' Variablen:
'
' pfad$  = Übergabevariable Name des aktuellen Verzeichnisses
' window|= Übergabevariable Nummer des aktuellen Fensters
' t$     = Übergabevariable Überschrift des Requesters
' zeiger = Wurde schon dimensioniert
' r%()   = Array der Register a0 bis d0 und Stack
' titel$ = Titel des Requesters
' arpbase%= Adresse der Library
' antwort$= Absoluter Pfadname des angwählten Files
' x      = obere Ecke des Requesters X-Koordinate
' y      = obere Ecke des Requesters Y-Koordinate
'
'
'
OPENW #0
'
GOSUB filereq(0,"dh0:","ARP-Filerequester 1",100,50)
PRINT "Sie haben das File "+antwort$+" ausgewählt !"
PAUSE 50
GOSUB filereq(0,"df0:","ARP-Filerequester 2",250,10)
PRINT "Sie haben das File "+antwort$+" ausgewählt !"
PAUSE 50
GOSUB filereq(0,"dh0:","ARP-Filerequester 3",150,90)
PRINT "Sie haben das File "+antwort$+" ausgewählt !"
PAUSE 50
CLOSEW #0
'
'
PROCEDURE filereq(window|,pfad$,t$,x,y)
  IF zeiger=0 THEN
    DIM r%(15)
    zeiger=1
  ENDIF
  '
  antwort$=""
  titel$=SPACE$(64)+CHR$(0)
  file$=SPACE$(64)+CHR$(0)
  d$=SPACE$(64)+CHR$(0)
  '
  CHAR{V:d$}=pfad$
  CHAR{V:titel$}=t$
  '
  fr_struct%=MALLOC(26,1)
  LONG{fr_struct%+0}=V:titel$
  LONG{fr_struct%+4}=V:file$
  LONG{fr_struct%+8}=V:d$
  LONG{fr_struct%+12}=WINDOW(0)
  BYTE{fr_struct%+16}=0
  BYTE{fr_struct%+17}=0
  LONG{fr_struct%+18}=0
  WORD{fr_struct%+22}=x   !Left Edge des Fensters
  WORD{fr_struct%+24}=y   !Top Edge des Fensters
  '
  lib$="arp.library"+CHR$(0)
  libadr%=VARPTR(lib$)
  arpbase%=OpenLibrary(libadr%,0)
  r%(14)=arpbase%
  r%(8)=fr_struct%
  '
  RCALL arpbase%-294,r%()
  '
  IF r%(0)=0 THEN
    antwort$=""
  ELSE
    z1=0
    z2=0
    FOR x=0 TO 65
      IF ASC(MID$(d$,x,1))=32 THEN
        z1=x-1
        x=65
      ENDIF
    NEXT x
    FOR x=0 TO 65
      IF ASC(MID$(file$,x,1))=32 THEN
        z2=x-1
        x=65
      ENDIF
    NEXT x
    IF MID$(d$,z1-1,1)=":" THEN
      antwort$=LEFT$(d$,z1)+LEFT$(file$,z2)
    ELSE
      antwort$=LEFT$(d$,z1)+"/"+LEFT$(file$,z2)
    ENDIF
  ENDIF
  '
  ~MFREE(fr_struct%,26)
  VOID CloseLibrary(arpbase%)
RETURN
'
