Name Last Update
doc Loading commit data...
examples Loading commit data...
htdocs Loading commit data...
logo Loading commit data...
screenshots Loading commit data...
src Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
CONTRIBUTING.md Loading commit data...
COPYING Loading commit data...
README Loading commit data...
RELEASE_NOTES Loading commit data...

    X     X    1   1        BBBB
    X     X   11  11        B   B                   i
      X X      1   1        B   B            sss
       X       1   1 -----  BBBB    aaaa    s   s   i   cccc
      X X      1   1        B   B  a   a      s     i  c
    X     X    1   1        B   B  a   a    s   s   i  c   
    X     X    1   1        BBBB    aaa a    sss    i   cccc
    
    
    
                       VERSION 1.25

            (C) 1997-2017 by Markus Hoffmann
              (kollo@users.sourceforge.net)

Name        : X11Basic                    
Version     : 1.25                              Vendor: Markus Hoffmann
Group       : Development/Languages             License: GPL
Packager    : Markus Hoffmann <kollo@users.sourceforge.net>
URL         : http://x11-basic.sourceforge.net/
Summary     : A Basic interpreter and compiler with graphics capabilities
Description :

  X11-Basic is a dialect of the BASIC programming language with graphics
  capability. 

  The structure of the language is similar to the ATARI-ST GFA-BASIC.
 
  This package includes the basic interpreter named xbasic and a set of
  different compilers. 
  A compiler manager (xbc) is included which makes stand alone binaries out of 
  the BASIC programs, which run more than 10 times faster than the interpreted 
  code. 

  X11-Basic programs can also be compiled into a bytecode (see xbbc). This
  bytecode can be interpreted by a virtual machine (see xbvm). Finally, the
  bytecode can be converted to C sourcefiles (see xb2c) which can be compiled
  with the gnu C compiler (or the tiny C compiler) to native excecutables.

  Ancient ANSI-Basic programs (with line numbers) can be converted to X11-Basic
  with the bas2x11basic program (see the man page bas2x11basic(1) ).

  You will find the compiler sourcecode and some other sample programs in 
  /usr/share/doc/packages/X11Basic/examples. However, a much bigger variety of 
  other sample programs can be found in an X11-Basic examples repository on
  gitlab (https://gitlab.com/kollo/X11-Basic_examples/tree/master) or in a
  package X11-Basic-examples-1.25.zip, which you can download from the homepage
  (http://x11-basic.sourceforge.net/). Also an up-to-date pdf-version of the
  manual can be found there.

  Please read the file X11-Basic-manual.txt (or the .pdf manual) 
  for further information.

  X11-BASIC is free software and comes with NO WARRANTY - read the file
  COPYING for details
 
  (Basically that means, free, open source, use and modify as you like, don't
  incorporate it into non-free software, no warranty of any sort, don't blame me
  if it doesn't work.)

  Please read the file INSTALL for compiling instructions.

  Standard Installation
  =====================

  Starting from the src/ directory you should do a
  ./configure
  make
  
  And for a system wide installation

  sudo make install


  To remove the installation a

  sudo make uninstall

  will do.
  
  For further details of the installation process and different install options
  please read the file INSTALL.


  ADDITIONAL CONFIGURATION OPTIONS
  ================================

  (only if you have special needs or if the standard installation fails)

A)  The configure script takes additional arguments.
  
`configure' configures X11-Basic 1.25 to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE.  See below for descriptions of some of the useful variables.

Defaults for the options are specified in brackets.

Configuration:
  -h, --help              display this help and exit
      --help=short        display options specific to this package
      --help=recursive    display the short help of all the included packages
  -V, --version           display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
      --cache-file=FILE   cache test results in FILE [disabled]
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
      --srcdir=DIR        find the sources in DIR [configure dir or `..']

Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX
                          [/usr/local]
  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                          [PREFIX]

By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc.  You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.

For better control, use the options below.

Fine tuning of the installation directories:
  --bindir=DIR            user executables [EPREFIX/bin]
  --sbindir=DIR           system admin executables [EPREFIX/sbin]
  --libexecdir=DIR        program executables [EPREFIX/libexec]
  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
  --libdir=DIR            object code libraries [EPREFIX/lib]
  --includedir=DIR        C header files [PREFIX/include]
  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
  --infodir=DIR           info documentation [DATAROOTDIR/info]
  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
  --mandir=DIR            man documentation [DATAROOTDIR/man]
  --docdir=DIR            documentation root [DATAROOTDIR/doc/x11-basic]
  --htmldir=DIR           html documentation [DOCDIR]
  --dvidir=DIR            dvi documentation [DOCDIR]
  --pdfdir=DIR            pdf documentation [DOCDIR]
  --psdir=DIR             ps documentation [DOCDIR]

X features:
  --x-includes=DIR    X include files are in DIR
  --x-libraries=DIR   X library files are in DIR

Optional Features:
  --disable-option-checking  ignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
  --enable-cryptography   enable cryptographic features [default=no]
  --enable-static         only produce static libraries [default=no]
  --enable-smallram       make version siutable for systems with small RAM
                          [default=no]
  --enable-german         make german version [default=no]

Optional Packages:
  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-bluetooth        support blutooth [default=yes]
  --with-usb              support USB [default=yes]
  --with-readline         support readline library [default=yes]
  --with-framebuffer      support framebuffer [default=no]
  --with-sdl              support SDL library [default=no]
  --with-x                use the X Window System [default=yes]
  --with-x                use the X Window System

Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
              nonstandard directory <lib dir>
  LIBS        libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
              you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  XMKMF       Path to xmkmf, Makefile generator for X Window System

Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.

B) Different make methods:

  standalone excecutables (statically linked)
  ----------------------------------------------
  
  a) the interpreter
  
  To compile the X11-Basic interpreter (called xbasic), simply type 
	
	make static

  at the shell prompt. The produced file is independant of the x11basic 
  library and does not need the x11basic framework to be installed.

  After X11Basic has been compiled and linked successfully, you can start it
  by typing

	./xbasic.static

  The command-line options can be listed with the `-h' option (`./xbasic -h').

  INSTALLING the standalone excecutable:
 
  Put the executable wherever you like. I have mine in ${HOME}/bin/.


  b) compiler and libraries

  If you want to use the compilers, you have to make both the static and dynamic
  libraries.

  cd ./src
  make lib              will generate libx11basic.so
  make x11basic.a       will generate x11basic.a

  -- now you have to be root to install the libraries at a place where the 
     compiler can use them --

  mv libx11basic.so /usr/lib/
  mv x11basic.a /usr/lib/
  -- please also check the permissions of the files:
  chmod 755 	/usr/lib/x11basic.a		
  chmod 755       /usr/lib/libx11basic.so 
  rehash

  make xbbc.static xbvm.static xb2c.static xbc
  
  will produce the statically linkd versions of the compilers.

C) The framebuffer version
  
  It is possible to compile a version of X11-Basic and its libraries, which 
  does not need the X.org framework, but instead uses the systems framebuffer
  and direct mouse device for graphics in and output. This might be useful on
  e.g. the Raspberry Pi or for other handheld devices with low resources.
  
  make clean fb
  
  will produce the framebuffer version of the interpreter called 
  xbasic.framebuffer
  
D) 64bit operating systems

X11-Basic will compile on 64bit systems but it will not be 100% functional.
X11-Basic internally uses 32bit pointers (--> VARPTR()). These are not compatible 
with 64bit. Some tricks have been implemented to make it work anyways, but 
do not expext 100% compatibility. 


E) Crosscompiling for other platforms
     
  a) ATARI ST (with m68k-atari-mint)
     
     make tos

  b) TomTom (with the ARM linux toolchain)
  
     make TomTom

  c) MS WINDOWS (with i586-mingw32msvc-gcc)
  
     make windows
     
  d) 32bit version on 64bit system
  
     make bit3264
  
  For details you may want to look into the Makefile. Improvements are welcome.


best regards and have fun
     Markus Hoffmann