home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / dirs / pfiler_396.lzh / PFiler / PFilerDemo.asm < prev    next >
Assembly Source File  |  1990-10-29  |  2KB  |  95 lines

  1.  
  2. ;    OPT O+
  3. ;    OPT O1+        ;Tells when a branch could be optimised to short
  4. ;    OPT i+        ;Tells when '#' is probably missing
  5.  
  6.     incdir    "INCLUDE:"
  7.     include "exec/exec_lib.i"
  8.     include "libraries/dosextens.i"
  9.     incdir    "DF0:PFiler/"
  10.         include "PFiler.i"
  11.  
  12.         XREF        _FileSelect
  13.         XREF        _FreeFileSelect
  14.  
  15. * A few macro's
  16. LoadBase    MACRO
  17.         IFNC        '\1','ExecBase'
  18.         movea.l        \1(PC),A6
  19.         ENDC
  20.         IFC        '\1','ExecBase'
  21.         movea.l        4.W,A6
  22.         ENDC
  23.         ENDM
  24. CallLib        MACRO
  25.         jsr        _LVO\1(A6)
  26.         ENDM
  27. Call        MACRO
  28.         bsr        \1
  29.         ENDM
  30. Push        MACRO
  31.         movem.l        \1,-(SP)
  32.         ENDM
  33. Pop        MACRO
  34.         movem.l        (SP)+,\1
  35.         ENDM
  36.  
  37.     SECTION DEMOCODE,CODE
  38. * Here is a example of how to use FileSelect and FreeFileSelect
  39. Start        LoadBase    ExecBase
  40.         suba.l        A1,A1
  41.         CallLib        FindTask        ;Find us
  42.         movea.l        D0,A2
  43.         tst.l        pr_CLI(A2)
  44.         bne.S        CLIAndWBStartup
  45. WBenchStartup    lea        pr_MsgPort(A2),A0
  46.         CallLib        WaitPort        ;wait for a message
  47.         lea        pr_MsgPort(A2),A0
  48.         CallLib        GetMsg
  49.         move.l        D0,WBenchMsg        ;save it for later reply
  50. CLIAndWBStartup
  51. Loop        pea        FSReq(PC)
  52.         move.w        #FSF_NOINFO,FSReq+4
  53.         jsr        _FileSelect        ;FileSelect(&FSReq);
  54.         addq.l        #4,SP
  55.         tst.l        D0
  56.         bne.S        Loop
  57.         pea        FSReq(PC)
  58.         jsr        _FreeFileSelect        ;FreeFileSelect(&FSReq);
  59.         addq.l        #4,SP
  60.         move.l        WBenchMsg(PC),D0
  61.         beq.S        ExitDemo
  62.         CallLib        Forbid
  63.         movea.l        D0,A1
  64.         CallLib        ReplyMsg        ;Reply WBenchMessage if we are started from WB
  65. ExitDemo    moveq        #0,D0
  66.         rts
  67.  
  68. PCHARS        =100
  69. FCHARS        =33
  70. *This is a FileSelectRequest-structure
  71. FSReq        dc.w        130        ;FR_LeftEdge
  72.         dc.w        50        ;FR_TopEdge
  73.         dc.w        0        ;FR_Flags
  74.         dc.w        PCHARS        ;FR_PathChars
  75.         dc.w        FCHARS        ;FR_FileChars
  76.         dc.l        PathBuff    ;FR_PathBuf
  77.         dc.l        FileBuff    ;FR_FileBuf
  78.         dc.l        TitleTxt    ;FR_TitleTxt
  79.         dc.l        LoadTxt        ;FR_PosTxt
  80.         dc.l        ExitTxt        ;FR_NegTxt
  81.         dc.l        0        ;FR_Screen
  82.         dcb.b        20,0
  83.  
  84. WBenchMsg    dc.l        0
  85. LoadTxt        dc.b        ' Try it',0
  86. ExitTxt        dc.b        '  Exit',0
  87. TitleTxt    dc.b        'Click the Menu-button.',0
  88.         EVEN
  89.  
  90.     SECTION BUFFERBSS,BSS
  91. PathBuff    ds.b        PCHARS
  92. FileBuff    ds.b        FCHARS
  93.         END
  94.  
  95.