--- /dev/null
+/////////////////////////////////////////////////////////////////
+//
+// Pull-Down menu interface .H file
+//
+/////////////////////////////////////////////////////////////////
+typedef struct { char *item_name;
+ void (*routine)(void);
+ char shiftflag;
+ char hotkey;
+ } MenuDef;
+
+typedef struct { int num_items;
+ MenuDef *menu_def;
+ char *menu_name;
+ } MBarDef;
+
+typedef struct { int menux;
+ int menunamelen;
+ int menuwidth;
+ } MInfoType;
+
+typedef struct { char *text;
+ int xoff,yoff,border;
+ } btype;
+
+typedef struct { char *text;
+ int width,height,numbuttons;
+ btype *buttons;
+ void (*hook)(int x,int y);
+ } DialogDef;
+
+typedef struct { int x,y,w,h;
+ void _seg *buffer;
+ } BackSaveStr;
+
+#define SCindex 0x3C4
+#define SCmapmask 2
+#define GCindex 0x3CE
+#define GCreadmap 4
+#define GCmode 5
+#define crtcaddr 0x3d4
+
+#define NUMFLASHES 10
+#define ALT 0x38
+#define CTRL 0x1d
+
+#define MAXFDNAMES 40
+extern struct ffblk f; // more info from GetPath
+
+
+void extern InitDesktop(MBarDef *menubar,int initmouse);
+void extern DeskEventLoop(void (*UserRoutine)(void),void (*ConstantRoutine)(void));
+void extern ClearScreen(void);
+void extern RedrawDesktop(void);
+void extern SaveBackground(int x,int y,int w,int h);
+void extern RestoreBackground(void);
+int extern DoDialog(DialogDef *TheDialog);
+void extern ErrDialog(char *string,char *bstring);
+void extern DrawBorder(int x,int y,int w,int h,int b);
+int extern CheckButtons(DialogDef *TheDialog);
+int extern CheckButtonsRet(DialogDef *TheDialog);
+void extern DrawDialog(DialogDef *TheDialog,int saveback);
+void extern GetButtonXY(DialogDef *TheDialog,int button,unsigned *x,unsigned *y);
+void extern GetDialogXY(DialogDef *TheDialog,unsigned *x,unsigned *y);
+int extern CheckList(int x,int y,int w,int h,void (*oncode)(),void (*offcode)(),int blink);
+int extern Message(char *mstring);
+
+//
+// RETURNS 0=OK,-1=NO FILES MATCH FILTER,-2=CANCELED
+//
+extern char NameList[MAXFDNAMES][13];
+int GetPath(char *string,char *filter,char *path);
+int GetList(char *string,int numnames);
+
+static void FDon(int x,int y,int w);
+static void FDoff(int x,int y,int w);
+static void CancelOn(int x,int y);
+static void CancelOff(int x,int y);