[LIBRARY]
[
  description   : BASIC/4G is a functions library that allows use
                  of 32-bit protected mode assembly routines with
                  Microsoft BASIC interpreters and/or compilers.
                  break the DOS memory limit. use all memory your
                  system has with your programs.
   
  version       : 1E-32a (0.00000....1 Alpha)

  date          : Jul/22/2000

  price         : zero (send me a postcard if you want. would be nice :})

  rights        : none. free for use in commercial ;), shareware and
                  freeware applications.

  use           : unlimited (if you know what i mean :])

  source code   : included (do what you want with it)

  requirement   : * a 32-bit processor (386 or great);

                  * an Microsoft BASIC interpreter and/or
                    compiler (QuickBASIC 4.x, PDS 7.x or
                    VBDOS 1) and their tools (LINK, LIB);

                  * a DPMI host (CWSDPMI; 386MAX; Windows 3.x, 9x;
                    OS/2; DOSEmu).

  warranty      : ABSOLUTELY NONE. if your computer explode, don't 
                  blame me ;).
]

[DISTRIBUTION]
[
  readme.txt    this text

  \bi\b4g.bi    BASIC include file with library modules definitions
                and prototypes

  \doc\         (crappy) documentation directory
   core.txt     about core module routines
   mem.txt        /   mem     /      /
   xfile.txt      /   xfile   /      /
   xmap.txt       /   xmap    /      /
   xmem.txt       /   xmem    /      /

  \lib\         compiled library directory
   b4g.lib      to use with QuickBASIC 4.x compiler
   b4g.qlb          /           /       /  interpreter
   b4gv.lib         /       VBDOS 1 compiler
   b4gv.qlb         /          /    interpreter
   b4gx.lib         /       PDS 7.x compiler
   b4gx.qlb         /          /    interpreter
  
  \sample\      (stupid) examples directory
   cwsdpmi.exe  CWS DPMI host (need to run the examples in DOS)
   mk2*.bat     batch files to compile the examples at command line
   ... i'm to lazy to type all file names, browse it if you want :) ...

  \src\         library source code directory
   scr.zip      "unzip -d src.zip" and see (9K lines of well
                written (modestly saying :}) assembly code)

]

[HOSTS]
[
  [works]
  [ Windows vers. 3.1 and 95;
    CWSDPMI rel. 4 (special edition. see CWSDPMI section);
    386MAX ver. 7 and 8.
  ]

  [crashes]
  [ QDPMI vers. 8 and 9: never returns to V86 mode in some cases.
                  cause: unknown. i can't debug it using 386SWAT :(.
  ]

  [untested]
  [ any others older versions of the hosts above;
    Windows vers. 98 and NT/2000 (anyone can report it? please);
    Linux/DOSEmu (same as above);
    OS/2.
  ]
]

[CWSDPMI]
[
  the CWS DPMI host included with this package (the cwsdpmi.exe file)
  _isn't_ the same that comes with DJGPP's programs. it is a modified
  version made to run together with B4G. the changes allow CWS to allocate
  page tables using DOS memory services with BASIC memory manager behind.
  also, this modified version _enables_ hardware interrupts to occur when
  it switches the processor to real mode (while the original version not :P).

  resuming, programs that use B4G library and run in RAW/XMS or VCPI
  modes, _cannot_ use the original CWSDPMI version.
  
  CWSDPMI is copyrighted (C) by CW Sandmann [sandmann@clio.rice.edu].
  original sources: ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2misc/csdpmi4s.zip
  send me an e-mail if you want the modified sources (see CONTACT section).
]

[TODO]
[
  * DPMI emulation in RAW (INT 15h) / XMS (HIMEM.SYS) and
    VCPI (EMM386, QEMM, 386MAX) modes;

  * learn English and be less lazy to write more (and better)
    docs and samples =);

  * ... (add your suggestion here :D) ...
]

[BUGS]
[
  found any? report it, see CONTACT section.
]

[MAKE]
[
  to re-compile the library is need:
  * Microsoft maker      : (NMAKER) version 1.2x
  *     /     assembler  : (MASM 32-bit (ML)) version 6.x
  *     /     linker     : (LINK) version 5.x
  *     /     lib manager: (LIB) version 3.x
]

[NOTES]
[
  * to create executables with QuickBASIC 4.0, you must
    use a newer linker version. the linker that comes with
    QB40 doesn't make correct fixups in USE32 type code
    segments, so the program linked by it will crashes.

  * to load the \bi\b4g.bi include file in the VBDOS IDE,
    you must merge any line that ends with the underscore '_'
    char. VBD doesn't interpret it as a line continuation.
]

[CONTACT]
[
  hp   : www.v1ctor.f2s.com (has nothing right now)

  email: av1ctor@yahoo.com.br
         v1ctor@www.com

  smail: Andre Victor T. Vicentini
         Al. Eduardo Prado, 157 - apto. 21   
         01218-010 / Sao Paulo - SP / BRAZIL [<0>]
]

[DISCLAIMER]
[
  i know, it isn't necessary but...here it goes... 

  this documentation and its associated software are distributed
  without warranties, either expressed or implied, regarding their
  merchantability or fitness for any particular application or purpose.
  in no event shall Andre Victor be liable for any loss of profit or
  any other commercial damage, including but not limited to special,
  incidental, consequential, or other damages resulting from the use
  of or the inability to use this product, even if Andre Victor has been
  notified of the possibility of such damages.

  all brand and product names mentioned in this documentation are
  trademarks or registered trademarks of their respective holders.
]
