DOWNLOAD QB64 DEMO V0.7 NOW!

by

Download (~5.7MB) is available here:
http://www.mediafire.com/?dbpdnibw9xj

Demo #7 is the first major version of QB64 which is self-compiled. Demo #7 contains around 50 bug fixes (this was the main focus) and also provides some newly implemented commands.

Enjoy it,
Galleon

--------------------------------------------------------------
The following is copied from README.TXT
--------------------------------------------------------------
QB64 COMPILER V0.7 DOCUMENTATION
================================
(V0.7 does not have the SC extension (ie. V0.7SC) because it can now be assumed)

Thanks for trying QB64!
The goal of QB64 is to create programs from BASIC source for Windows, Mac OSX and Linux whilst being 100% compatible with Microsoft QBASIC/QB4.5

At present, QB64 only compiles programs on/for Microsoft Windows.

To compile a .BAS program simply run the program COMPILE.EXE
It will prompt you to enter the .BAS file's name, or you can enter the file name on the command line (example compiles test.bas):
COMPILE test

Make sure your .BAS file was saved in text format not the QB4.5 compressed file format.

Check "SAMPLES.TXT" for information about included .BAS example programs.
Newly added samples include:
djsok,temple,mclock,mzupd2,frac1,frac2,frac3,acalc,tower,scramble,chess,intrprtr

UNIMPLEMENTED FEATURES
======================
The majority of QBASIC commands are implemented.
Only the following are NOT IMPLEMENTED yet:
CONST
User defined TYPEs
ON ... GOTO/GOSUB EVENTS (however, ON ERROR GOTO is implemented)
$INCLUDE metacommand
Devices (COM...,SCRN:,LPT...,KYBD:,CONS:) in an OPEN statement
Calling machine code (CALL ABSOLUTE, CALL INTERRUPT)
Port access very limited (OUT &H3C8, &H3C9 INP &H3DA, &H60 work)
STATIC command in subs/functions (The $STATIC metacommand is implemented)
Multimodular support (COMMON, etc.)
Other commands: TRON/TROFF, CHAIN, RUN, FILES, FILEATTR, ENVIRON, ENVIRON$, PRINT USING, LPRINT, LPOS, DRAW, PLAY, CLEAR, FIELD, LOCK, UNLOCK, IOCTL, IOCTL$, PEN, STICK, STRING, SETMEM, FRE, FIELD

QB64 SPECIFIC FEATURES (THAT QBASIC DOESN'T HAVE)
=================================================

INPUT Protection
----------------
"Intelligently" restricts keyboard input. Avoids "redo from start" messages. Limits screen space used by input for fixed length strings and numbers (eg. INTEGER cannot use more than 6 spaces)

New Data Types
--------------
_BIT name`
_UNSIGNED _BIT name~`
_BIT*4 name`4
_UNSIGNED _BIT*4 name~`4
_BYTE name%%
_UNSIGNED _BYTE name~%%
INTEGER name%
_UNSIGNED INTEGER name~%
LONG name&
_UNSIGNED LONG name~&
_INTEGER64 name&&
_UNSIGNED _INTEGER64 name~&&
SINGLE name!
DOUBLE name#
_FLOAT name##
STRING name$
STRING*100 name$100

_DEFINE Command
---------------
Instead of having DEFBIT,DEFUBT,DEFBYT,DEFUBY etc. for all the new data types there is a simple command which can be used like DEFINT for new types (or old types if you want to) as follows:
_DEFINE A-C,Z AS DOUBLE 'the same as DEFDBL A-C,Z

Larger Maximum RANDOM File Access Field Sizes
---------------------------------------------
For RANDOM access files, record lengths can now be greater than 32767 bytes. Variable length string headers allow for larger strings whilst still being 100% QBASIC compatible with smaller strings.
-------------------------------------------------

BLOAD/BSAVE Limit
-----------------
Can save/load 65536 bytes, not just 65535.

_ROUND
------
This can be used to round values to integers (CINT & CLNG imposed limitations on the output)

Graphics GET/PUT
----------------
GET supports a new optional argument. If used the area to store can be partially/all off-screen and off-screen pixels are set to the value specified:
GET (-10,-10)-(10,10),a,3
PUT format has been extended to PUT[{STEP}](?,?),?[,[{_CLIP}][{PSET|PRESET|AND|OR|XOR}][,?]] where _CLIP allows drawing partially/all off-screen and the final optional argument can specify a mask color to skip when drawing.

Better Sound/Audio Support
--------------------------
Support for playing .MID, .WAV, .MP3 and many other formats.
Commands include:
_SNDPLAYFILE Simple command to play a sound file (with limited options)
_SNDOPEN Returns a handle to a sound file
_SNDCLOSE Unloads a sound file (waits until after it has finished playing)
_SNDPLAY Plays a sound
_SNDSTOP Stops a playing (or paused) sound
_SNDPLAYING Returns whether a sound is being played
_SNDLOOP Like _SNDPLAY but sound is looped
_SNDLIMIT Stops playing a sound after it has been playing for a set number of seconds
_SNDGETPOS Returns to current playing position in seconds
_SNDCOPY Copies a sound (so two or more of the same sound can be played at once)
_SNDPLAYCOPY Copies a sound, plays it and automatically closes the copy
_SNDPAUSE Pauses a sound
_SNDPAUSED Checks if a sound is paused
_SNDLEN Returns the length of a sound in seconds
_SNDVOL Sets the volume of a sound
_SNDBAL Sets the balance/3D position of a sound
_SNDSETPOS Changes the current/starting playing position of a sound in seconds
For more information, read "AUDIO.TXT" in your "QB64" folder.
Also check out "AUDIO.BAS" in the samples folder, you'll need some audio files to test this with!

Posted on Apr 12, 2008, 4:06 AM
from IP address 58.106.166.186

Respond to this message   

Return to Index


Response TitleAuthor and Date
* Great! And I have the day off to play with it.Dav on Apr 12
Quick test with MEroy on Apr 12
 RE: Quick test with ME on Apr 12
  Chessroy on Apr 12
   *Thanks for the clarification (if possible could you check some other examples too) on Apr 12
    I see that you have now solved the problem and I will try it later.roy on Apr 13
     mzupd2 is the only program that does not compile.roy on Apr 13
      *mzupd2 failure caused by "Out of memory".roy on Apr 14
 * Naw, ME should have had that warning LOL on Apr 12
 *This problem has now been fixed. on Apr 13
My partial testing of QB64 v0.7 with XPDav on Apr 12
 Thanks for the feedback Dav on Apr 13
  You're very welcome. A little more info...Dav on Apr 15
Problem with typing ENTERKim on Apr 13
 more informationKim on Apr 13
Unsigned values - no space for a sign to be output?rpgfan3233 on Apr 13
 * Why would you need one? Perhaps for a + ? on Apr 13
  * Yes, I know that, but it is a question of consistency. Normal integers output a space.rpgfan3233 on Apr 13
   * PRINT also prints out a trailing space when numbers are printed on Apr 15
    *That explains why people add RTRIM$ as well as LTRIM$, even if STR$ removes it at the endrpgfan3233 on Apr 15
     * True, but STR$ can remove the RTRIM$ code also on Apr 16
 *Unsigned variables should be PRINTed with a leading space, I'll fix this. on Apr 14
  While your at it, perhaps a _TRIM function would be nice on Apr 14
   *It would be nice to have a built-in function rather than creating a QB TRIM function.rpgfan3233 on Apr 14
   There won't be an inbuilt TRIM function (to do LTRIM and RTRIM at once)... on Apr 14
    * Well I don't need a ROUND function either then thankyou on Apr 15
     *How were you planning on rounding a DOUBLE to a 64 BIT INTEGER then? on Apr 15
      * Can't you do DEF FN ROUND(X)=SGN(X)*INT(ABS(X)+0.5) ?qbguy on Apr 15