-->
Previous Table of Contents Next


What Is FlagShip?

FlagShip is a compiler, meaning it produces executable code with no intermediary pseudo-code. No interpretive version of FlagShip exists, so you may need an interpreter such as FoxPro or dBASE to develop complex applications. FlagShip was designed to allow existing xBase applications to run without modification (or a minimum of modification in some cases to correct filename problems) under Linux and other UNIX versions. No run-time or user royalty fees are charged, so once an application has been developed and compiled, it can be distributed anywhere without you having to pay royalties to the authors.

FlagShip is fully compatible with dBASE and Clipper, as well as most other xBase versions, such as Fox, FoxPlus, and FoxPro, dbMan, QuickSilver, and others. It includes all the really neat features of the xBase compatibles, such as:

  Macro support
  Arrays, objects, and code blocks
  User-defined functions and user-defined commands
  Index and array sorts
  Compatibility with most xBase file formats, including .dbf, .dbt, .mem, .lbl, .frm, and .fmt
  A C API for interfacing C code and FlagShip code in one application


Tip:  
Many Web sites allow you to download the FlagShip demos, and you can find them through a search engine such as AltaVista (http://www.altavista.digital.com) or Yahoo! (http://www.yahoo.com), or direct from the vendor of FlagShip, Multisoft Datentechnik Gmbh, at http://www.fship.com. There is also an FTP server for the company at ftp://fship.com/pub/multisoft. The demo versions are quite large (about 4.5MB). Several documents are available for FlagShip from FTP and Web sites. Make sure you download the English files as most sites have both English and German documents available (Multisoft Datentechnik Gmbh is based in Germany).

FlagShip has no equivalent of the dBASE dot prompt or interactive command interface found in other xBase products. However, there is a public-domain program called dbu that provides the capability to create files and indexes, add, change, or locate records, and browse files interactively.

FlagShip uses the curses toolkit for its user interface. During installation, you get a set of terminfo files specifically for FlagShip. When running a FlagShip program in an xterm, you may get hieroglyphics instead of line drawing characters. Fiddling with the acsc parameter in the fslinxterm terminfo entry may not help. Try using the vga font that comes with DOSemu package.

FlagShip doesn’t have a function specifically for managing pull-down menus. What FlagShip and Clipper programmers normally do is use @PROMPT/MENU TO statements to create the horizontal menu and a function called ACHOICE() for the vertical menus. You can set hot keys with the SET KEY keyid TO statement. Normally, the statement would be a function invocation. Within this function, you can call the READVAR() function to find out which field the cursor was in when the key was pressed. An input field can be validated by adding the VALID statement parameter to the @SAY/GET statement. Again, the statement would normally be a function invocation. Within the function, the value the user typed in could be looked up in a database file.

FlagShip has functions for managing windows that work very nicely, but the functions are not part of the basic package. You have to buy the FStools library. As the name suggests, the FStools library is a clone of the Clipper Tools library. There are also windowing functions in the NanForum library (containing mathematical and statistics functions), which is public domain.

A key feature of FlagShip is the TBROWSE() object. You use this in place of the BROWSE command that exists in other languages. If you don’t have any previous experience with object-oriented programming, setting up TBROWSE() for the first time is not easy. The best course of action is to use the examples and samples in the fsman pages. FlagShip is picky about reserved words. If you have a filename such as browse, you are liable to encounter problems running programs. Keep a list of all the reserved words in FlagShip and avoid using these as file or program names. Check the list of reserved words in the fsman pages.

FlagShip programs can be attached to WWW pages, making it possible for net surfers to access and update databases. This feature, plus the capability to link in your C and C++ programs, makes FlagShip a very powerful data management tool.

FlagShip has an online reference program called fsman, which contains the entire FlagShip manual of more than 1,000 pages, which means that you do not have thick manuals all over your desk. The samples of code in the manual can be saved as text files on disk. This makes it easy to incorporate programming examples in the manual into whatever program you are working on at the time. Of course, you could also use the mouse to copy text from fsman into your program by cutting and pasting between windows.

FlagShip isn’t just a port of a DOS-based compiler. It has been designed to provide full functionality under UNIX. Source code will run faster under Linux than under DOS (compiler with Clipper, for example) because of the better operating system design of Linux. FlagShip also removes many of the limitations of DOS- and Windows-based xBase applications.

If you have any requirement to port dBASE or Clipper applications to Linux, or you are looking for a simple relational database system, FlagShip is an excellent choice.


Previous Table of Contents Next