XBasic projects maxreason@gmail.com max reason

XBasic web-pages

XBasic overview - features, capabilities, screenshots.
XBasic newsbits - the latest news and views of XBasic.
XBasic freeware - download & installation instructions.
XBasic questions - frequently asked questions -- FAQs.
XBasic quick-start - begin programming XBasic quickly.
QuickBasic to XBasic - translate QuickBasic to XBasic.
QuickBasic keywords - QuickBasic to XBasic keywords.
XBasic documentation - complete HTML documentation online.
XBasic keywords/operators/scopes/types - language reference.
XBasic projects - enhance & extend applications & documentation.
XBasic e-links - other web-sites with XBasic samples and information.
XBasic forum - mail-list forum for all XBasic programmers - questions, answers, advice, samples, etc.

  comments, suggestions, corrections


XBasic projects

XBasic has been a complete and working application for many years.  The XBasic projects described on this web-page are designed to enhance & extend XBasic and its documentation for everyone.

The alt.lang.basic.compiler newsgroup has few messages, little traffic, and seems like the most relevant newsgroup to discuss XBasic.  Therefore I suggest XBasic programmers hang out there.

Please volunteer to perform projects - but only if you can and will do good work.

The main project categories are programming and documentation.

Feel free to suggest additional projects.


XBasic programming projects

The main XBasic programming project categories are enhancements, extensions, applications.

An enhancement is any addition or improvement that requires changing the XBasic source code.
An extension is any addition or improvement that can be developed as function libraries, etc.
An application is any software that does not enhance/extend/augment XBasic programming.

XBasic enhancments

When important new features or capabilities cannot effectively or efficiently be created and maintained as independent function libraries or other components, the ability to modify the original XBasic source code may be necessary.  These projects are the most difficult to manage and are more likely to create bugs that impact every XBasic programmer until they are identified and exterminated.

QuickBasic front-end
Add the ability to load and run QuickBasic programs in the XBasic program development environment.  Though this project requires changes to the XBasic source code, the vast majority of the work would be done by a separate function library that translates QuickBasic source into XBasic source.  Presumably the function library would be written in XBasic.

next enhancement project summary
Add the next enhancement project summary here.


XBasic extensions

Most features and capabilities can be implemented in XBasic function libraries or C function libraries.   Since XBasic functions are C compatible, all that's needed to access some C function libraries are files that declare the functions in the C library in XBasic form.


QuickBasic to XBasic translator
XBasic program qbtoxb.x translates QuickBasic source-code into XBasic source-code.  Work on this program is barely started, so skilled and dedicated volunteers are encouraged to help.  This program is similar to a compiler front-end - it parses QuickBasic source text into symbols and language elements, creates tokens to represent them, puts them in token arrays that correspond to source program lines, and deparses the tokens back to source-code to confirm faithful reproduction of the original source-code text.  To download the current version of this work-in-progress program, click qbtoxb.zip.  This zip-file contains XBasic program qbtoxb.x plus a work-in-progress translation test program qbasic.bas that should someday contain all QuickBasic keywords, language-elements and language-structures.


improve the GIF to BMP and BMP to GIF utilities
XBasic program gif.x contains functions that convert GIF 89a images into BMP images, and vice-versa.  This program can be run in the development environment for testing, enhancement and learning, but will normally be compiled and linked into a .DLL function library so any XBasic program can call its functions.   The companion gifview.x program is a slight modification of gif.x that displays all GIF images in \xb\xxx.  Furthermore, you can make the conversion functions print GIF format information as it processes the image by removing the ' character from the ' print = $$TRUE lines near the beginning of the functions.  You can download gif.zip here and extract the 2 files and 3 images into your \xb and \xb\xxx directories.  The conversion functions seem to work fairly reliably, but they do not understand some of the less common GIF features and also understand only 24-bit and 32-bit RGB forms of the BMP format.  Let me know if you improve these functions, either bug-fix or supporting additional GIF and BMP formats & variations.


DirectDraw and Direct3D function libraries
Make a function library to interface to the DirectDraw library to support super-high-speed graphics, animation, and maybe even - ehhh - games?  :-)


next project idea goes here
Add the next extension project summary here.


XBasic applications

Well written XBasic applications can be valuable to others.  Some people might be able to operate your application as you wrote it, while others may only need to modify it or extract pieces.   Furthermore, every well written XBasic application is a great example for programmers learning XBasic.

orbital computation and display
This program would know the location/orbit/mass of most solar-system objects, and maybe nearby stars.  The program would calculate and track these objects and potential spacecraft, and display their locations from any fixed or moving viewpoint during any time-interval.

next application project summary
Add the next application project summary here.



XBasic documentation projects

XBasic is extensively described in several technical documents.  The existing documentation was written in 1988 to 1992, and barely touched since then.  Though a few reference tables were extracted from the documentation for this web-site, almost all documentation remains in Microsoft Word 97 format only.  Therfore the most important documentation projects are converting existing XBasic documentation into HTML web-pages so everyone with internet access can read, browse and refer to them conveniently.  Thorough hyperlinks throughout will make these documents much more valuable than printed manuals.

XBasic introduction - see \xb\doc\intro.doc
This documentation briefly describes every aspect of the XBasic program development environment, including the fundamental XBasic windows, commands and menus.  This document briefly explains how to operate the program development environment and accomplish various tasks.  intro.doc .

XBasic programming language - see \xb\doc\language.doc
This documentation describes the XBasic programming language.  It covers topics like parsing, scopes, data-types, variables, operators, statements, intrinsics, functions, etc.

XBasic GraphicsDesigner function library - see \xb\doc\graphics.doc
This documentation describes the GraphicsDesigner function library.  Almost all XBasic programs draw graphics exclusively by calling functions in the GraphicsDesigner function library.

XBasic GuiDesigner programmer guide - see \xb\doc\guiguide.doc
This documentation describes the GuiDesigner design-tool and function library, and explains in detail how GuiDesigner programs work.

XBasic GuiDesigner programmer reference - see \xb\doc\guirefer.doc
This documentation describes the GuiDesigner function library functions one-by-one.

XBasic GuiDesigner grids - see \xb\doc\guigrids.doc
This documentation describes the built-in GuiDesigner grids --- called "controls" and "widgets" by others.  This documentation also explains how you can create and control simple GUIs in only a few lines of code with GuiDesigner "convenience functions".

XBasic function libraries - see \xb\doc\library.doc
This documentation describes the XBasic standard library, math library, complex number library, etc.

XBasic advanced topics - see \xb\doc\advanced.doc
This documentation describes various advanced topics, including how to create .EXE and .DLL executables, how to add your own grids to the GuiDesigner toolkit, etc.

XBasic portability guide - see \xb\doc\portable.doc
This documentation explains how to assure portability between Windows XBasic and Linux XBasic.

XBasic glossary - see \xb\doc\glossary.doc
This documentation explains the meaning of XBasic-specific and XBasic-related terms.

QuickBasic keywords + XBasic equivalents - see qbkeywords
This documentation explains how to translate QuickBasic source-code to XBasic.

QuickBasic to XBasic translation - see qbtoxb
This documentation explains how to translate QuickBasic source-code to XBasic.

XBasic keywords - see xbkeywords
This documentation explains how to translate QuickBasic source-code to XBasic.

next documentation project summary
Add the next documentation project summary here.