; OPT O+ ; OPT O1+ ;Tells when a branch could be optimised to short ; OPT i+ ;Tells when '#' is probably missing incdir "INCLUDE:" include "exec/exec_lib.i" include "libraries/dosextens.i" incdir "DF0:PFiler/" include "PFiler.i" XREF _FileSelect XREF _FreeFileSelect * A few macro's LoadBase MACRO IFNC '\1','ExecBase' movea.l \1(PC),A6 ENDC IFC '\1','ExecBase' movea.l 4.W,A6 ENDC ENDM CallLib MACRO jsr _LVO\1(A6) ENDM Call MACRO bsr \1 ENDM Push MACRO movem.l \1,-(SP) ENDM Pop MACRO movem.l (SP)+,\1 ENDM SECTION DEMOCODE,CODE * Here is a example of how to use FileSelect and FreeFileSelect Start LoadBase ExecBase suba.l A1,A1 CallLib FindTask ;Find us movea.l D0,A2 tst.l pr_CLI(A2) bne.S CLIAndWBStartup WBenchStartup lea pr_MsgPort(A2),A0 CallLib WaitPort ;wait for a message lea pr_MsgPort(A2),A0 CallLib GetMsg move.l D0,WBenchMsg ;save it for later reply CLIAndWBStartup Loop pea FSReq(PC) move.w #FSF_NOINFO,FSReq+4 jsr _FileSelect ;FileSelect(&FSReq); addq.l #4,SP tst.l D0 bne.S Loop pea FSReq(PC) jsr _FreeFileSelect ;FreeFileSelect(&FSReq); addq.l #4,SP move.l WBenchMsg(PC),D0 beq.S ExitDemo CallLib Forbid movea.l D0,A1 CallLib ReplyMsg ;Reply WBenchMessage if we are started from WB ExitDemo moveq #0,D0 rts PCHARS =100 FCHARS =33 *This is a FileSelectRequest-structure FSReq dc.w 130 ;FR_LeftEdge dc.w 50 ;FR_TopEdge dc.w 0 ;FR_Flags dc.w PCHARS ;FR_PathChars dc.w FCHARS ;FR_FileChars dc.l PathBuff ;FR_PathBuf dc.l FileBuff ;FR_FileBuf dc.l TitleTxt ;FR_TitleTxt dc.l LoadTxt ;FR_PosTxt dc.l ExitTxt ;FR_NegTxt dc.l 0 ;FR_Screen dcb.b 20,0 WBenchMsg dc.l 0 LoadTxt dc.b ' Try it',0 ExitTxt dc.b ' Exit',0 TitleTxt dc.b 'Click the Menu-button.',0 EVEN SECTION BUFFERBSS,BSS PathBuff ds.b PCHARS FileBuff ds.b FCHARS END