qbasic.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Differences from BASICA
  Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
 The following keywords behave differently in QBasic than in BASICA:
 
 BSAVE, BLOAD     QBasic does not support the cassette device with BSAVE
                  and BLOAD, and memory locations may be different.
 
 CALL ABSOLUTE    Assembly language programs invoked from BASICA that have
                  string arguments must be revised for QBasic because QBasic
                  string descriptors are 4 bytes long. The 4 bytes are the
                  low byte and high byte of the string length followed by
                  the low byte and high byte of the string address.
 
 CHAIN            QBasic does not allow you to specify a line number with
                  CHAIN and does not support the ALL, MERGE, or DELETE
                  options in BASICA.
 
 COMMON, DECLARE  QBasic does not allow executable statements to appear
                  before COMMON and DECLARE statements.
 
 DEFtype          If BASICA encounters a variable without an explicit type
                  (indicated by !, #, &, $, or %), it uses the default type
                  set by the most recent DEFtype statement. For example, the
                  type of the variable IFLAG changes from integer to single
                  precision in the following BASICA code fragment:
 
                      10  DEFINT I
                      20  PRINT IFLAG
                      30  DEFSNG I
                      40  GOTO 20
 
                  In QBasic, a variable's type cannot be changed after it
                  appears in a program.
 
 DIM              All arrays in BASICA are dynamic because BASICA always
                  allocates array storage while a program runs. In QBasic,
                  DIM can declare either a static or dynamic array.
 
 DRAW, PLAY       DRAW and PLAY statements in BASICA that use variables or
                  other command strings within command strings must be
                  modified for QBasic. Use the VARPTR$ function, which
                  returns a string representation of the variable's address:
 
                  BASICA Statement      QBasic Equivalent
                  ══════════════════    ═══════════════════════════════
                  DRAW "Xcmdstring$"    DRAW "X" + VARPTR$ (cmdstring$)
                  DRAW "TA = angle"     DRAW "TA =" + VARPTR$(angle)
 
 EOF              When you direct input from a file to a BASICA program,
                  EOF(0) returns true at the end of the input file.
                  In QBasic, EOF(0) returns true after the next record is
                  read past the end of the input file. For example, the
                  following program runs in BASICA, but generates an
                  "Input past end of file" error message in QBasic:
 
                      5  WHILE NOT EOF(0)
                      10 LINE INPUT ; A$
                      15 WEND
 
 FIELD            When a random-access file is closed in BASICA with a CLOSE
                  or RESET statement, field variables retain the last value
                  assigned to them by a GET statement. In QBasic, all field
                  variables are reset to null strings.
 
 See Also    Converting BASICA Programs   Unsupported Keywords
             Version Differences