QBtoTP Translator 0.5.2 (GNU/GPL)       Created with PowerBASIC for DOS 3.50
Copyright (C) 2001-2002 by Bla Valek   E-mail: bvalek2@freemail.hu
MS-DOS QBasic 1.1 -> Turbo Pascal 7.0

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


Files:

QBtoTP  .EXE   executable translator (PowerBASIC for DOS 3.50)
QBtoTP  .BAS   translator sourcecode (PowerBASIC for DOS 3.50)
BASIC   .TPU   unit (Turbo Pascal 7.0)
BASIC   .PAS   unit sourcecode (Turbo Pascal 7.0)
COPYING        GNU/GPL document
OLVASSEL.TXT   this file (hungarian)
README  .TXT   this file (english)

The following switches of QBtoTP.EXE 0.5.2 are
    working: /A /C /M /Z /? /H /I /D (dos info)
    not working: /E /S /U /W
The /D (DATA) switch works but it does not matters because the DATA handling
routines are not translated yet.

The TURBO.EXE, whitch created the BASIC.TPU unit, is corrected. It does not
has the Pentium-bug.


Minimal requirements:

- IBM or compatible PC
- Intel 8086 processor
- DOS 2.0 operating system
- 199152 byte base memory for the program, and
  300000 byte bas memory more for translation with memory arrays.
- 294089 byte free space on a drive for the files, and
  unspecified free space for translation with temporary files.


Version differences/changes:

QBtoTP 0.5.2

 - Bug fix: IF statement Bug fix in 0.5.2 had a bug... now it is fixed...

QBtoTP 0.5.1

 - New: Exit codes added
 - New: several procedures and functions added to Basic unit
 - Bug fix: SCREEN statement translation error fixed
 - Bug fix: QBscreen procedure in Basic unit fixed
 - Bug fix: IF statement translation error fixed
 - Missing data: author's e-mail added

QBtoTP 0.5.0

 - First published version


Translation process:

To see the translator's command line switches, type:
QBtoTP.EXE /?

To see the translator's limits, type:
QBtoTP /I

To see the translator's exit codes, type:
QBtoTP /D

The QBtoTP.EXE application is a high-level-programming-language tranlator.
It compares QBASIC's and Turbo Pascal's similar structures. The limits of
translation depends on the similarities of the syntactical elements. The
QBASIC sub's and function's whitch are not present in the Turbo Pascal
standard units must be written per hand. Some of them are ready. The QBtoTP
translator expects, that the are collected in the Basic unit, and they were
created using some rules.

The BASIC.TPU unit is not completed yet because I had no time. You are free
to complete the unit's source code. The prewritten empty procedures and
functions are compatible, it is recommended to use them.


Goal of translation:

1: The user is not familiar with the Pascal language, but he/she is with
Basic, then he/she writes his/her programs in QBASIC, he/she translates it
with QBtoTP, and he/she creates fast and small running applications with
Turbo Pascal.

2: The user is not familiar with the Basic language, but he/she is with
Pascal, and he/she becomes some QBASIC sourcecode then he/she translates them
with QBtoTP and now he/she can easily use them.

3: The user wants to port his program written in QBASIC to many computers and
operating systems, but QuickBasic has only on a few platform native code
compilers. FreePascal however, totally compatible with Turbo Pascal, exists
on many platforms. So he/she translates his/her program with QBtoTP and
he/she can make it to an universal application with FreePascal.


Recognised and not recognised QBASIC 1.1 keywords:

total translation:   + (147)
partial translation: o  (33)
no translation:      -  (61)
                       (241 total)

translation with Basic unit:         (85)
partial translation with Basic unit: (82)

QBASIC 1.1 keyword:        translation:  used unit, comment:

ABS Function                     +       System
ABSOLUTE Keyword                 -
ACCESS Keyword                   -
AND Operator                     +       reserved word
ANY Keyword                      -
APPEND Keyword                   o       System
AS Keyword                       o       colon ":"
ASC Function                     +       System
ATN Function                     +       System
BASE Keyword                     o       QBtoTP internal directive
BEEP Statement                   +       Basic
BINARY Keyword                   o       System
BLOAD Statement                  +       Basic
BSAVE Statement                  +       Basic
CALL Statement                   o       keyword stripped
CALL ABSOLUTE Statement          -
CASE Keyword                     o       reserved word
CDBL Function                    +       Basic
CHAIN Statement                  +       Basic
CHDIR Statement                  +       System
CHR$ Function                    +       System
CINT Function                    +       Basic
CIRCLE Statement                 +       Basic
CLEAR Statement                  +       Basic, metacommand
CLNG Function                    +       Basic
CLOSE Statement                  +       System
CLS Statement                    +       Basic
COLOR Statement                  +       Basic
COM Statement                    -
COMMON Statement                 o       pascal structure "var"
CONST Statement                  +       reserved word
COS Function                     +       System
CSNG Function                    +       Basic
CSRLIN Function                  +       Crt
CVD Function                     +       Basic
CVDMBF Function                  +       Basic
CVI Function                     +       Basic
CVL Function                     +       Basic
CVS Function                     +       Basic
CVSMBF Function                  +       Basic
DATA Statement                   +       keyword stripped
DATE$ Function                   +       Basic
DATE$ Statement                  +       Basic
DECLARE Statement                +       line stripped
DEF FN Statement                 +       pascal structure "function"
DEF SEG Statement                +       BASIC.TPU internal variable
DEFDBL Statement                 +       QBtoTP internal directive
DEFINT Statement                 +       QBtoTP internal directive
DEFLNG Statement                 +       QBtoTP internal directive
DEFSNG Statement                 +       QBtoTP internal directive
DEFSTR Statement                 +       QBtoTP internal directive
DIM Statement                    o       pascal structure "var"
DO...LOOP Statement              o       reserved word
DOUBLE Keyword                   +       pascal data type
DRAW Statement                   +       Basic
$DYNAMIC Metacommand             -
ELSE Keyword                     +       reserved word
ELSEIF Keyword                   +       QBtoTP structure tracing -> "if"
END Statement                    +       System, reserved word
ENVIRON Statement                o       Basic
ENVIRON$ Function                +       Basic
EOF Function                     o       System
EQV Operator                     -
ERASE Statement                  -
ERDEV Function                   +       Basic
ERDEV$ Function                  +       Basic
ERL Function                     -
ERR Function                     +       Basic
ERROR Statement                  +       Basic
EXIT Statement                   +       System
EXP Function                     +       System
FIELD Statement                  -
FILEATTR Function                -
FILES Statement                  +       Basic
FIX Function                     +       System
FOR...NEXT Statement             +       reserved word "for", "while"
FRE Function                     o       Basic
FREEFILE Function                -
FUNCTION Statement               +       reserved word
GET (File I/O) Statement         o       System
GET (Graphics) Statement         -
GOSUB Statement                  -
GOTO Statement                   +       reserved word
HEX$ Function                    +       Basic
IF...THEN...ELSE Statement       +       reserved word
IMP Operator                     -
INKEY$ Function                  +       Basic
INP Function                     +       System
INPUT Statement                  o       System
INPUT$ Function                  +       Basic
INSTR Function                   +       Basic
INT Function                     +       System
INTEGER Keyword                  +       pascal data type
IOCTL Statement                  -
IOCTL$ Function                  -
IS Keyword                       -
KEY (Assignment) Statement       -
KEY (Event Trapping) Statement   -
KILL Statement                   +       Basic
LBOUND Function                  -
LCASE$ Function                  +       Basic
LEFT$ Function                   +       Basic
LEN Function                     +       System
LET Statement                    +       keyword stripped
LINE (Graphics) Statement        +       Basic
LINE INPUT Statement             o       System
LIST Keyword                     -
LOC Function                     o       System
LOCATE Statement                 +       Crt, Basic
LOCK...UNLOCK Statements         -
LOF Function                     o       System
LOG Function                     +       System
LONG Keyword                     +       pascal data type
LOOP Keyword                     o       reserved word
LPOS Function                    -
LPRINT Statement                 +       Printer
LPRINT USING Statement           -
LSET Statement                   -
LTRIM$ Function                  +       Basic
MID$ Function                    +       Basic
MID$ Statement                   +       Basic
MKD$ Function                    +       Basic
MKDIR Statement                  +       System
MKDMBF$ Function                 +       Basic
MKI$ Function                    +       Basic
MKL$ Function                    +       Basic
MKS$ Function                    +       Basic
MKSMBF$ Function                 +       Basic
MOD Operator                     +       reserved word
NAME Statement                   +       Basic
NEXT Keyword                     +       reserved word "end"
NOT Operator                     +       reserved word
OCT$ Function                    +       Basic
OFF Keyword                      -
ON COM Statement                 -
ON ERROR Statement               -
ON Keyword                       -
ON KEY Statement                 -
ON PEN Statement                 -
ON PLAY Statement                -
ON STRIG Statement               -
ON TIMER Statement               -
ON...GOSUB Statement             -
ON...GOTO Statement              -
OPEN Statement                   o       System
OPEN COM Statement               -
OPTION BASE Statement            o       QBtoTP internal directive
OR Operator                      +       reserved word
OUT Statement                    +       System
OUTPUT Keyword                   o       System
PAINT Statement                  +       Basic
PALETTE Statements               o       Basic
PCOPY Statement                  +       Basic
PEEK Function                    +       System
PEN Function                     -
PEN Statement                    -
PLAY Function                    -
PLAY (Music) Statement           +       Basic
PLAY (Event Trapping) Statements -
PMAP Function                    +       Basic
POINT Function                   +       Graph
POKE Statement                   +       System
POS Function                     +       Basic
PRESET Statement                 +       Basic
PRINT Statement                  o       System
PRINT USING Statement            -
PSET Statement                   +       Basic
PUT (File I/O) Statement         o       System
PUT (Graphics) Statement         -
RANDOM Keyword                   o       System
RANDOMIZE Statement              +       Basic
READ Statement                   -
REDIM Statement                  o       pascal structure "var"
REM Statement                    +       pascal comment "{}"
RESET Statement                  -
RESTORE Statement                -
RESUME Statement                 -
RETURN Statement                 -
RIGHT$ Function                  +       Basic
RMDIR Statement                  +       System
RND Function                     +       System
RSET Statement                   -
RTRIM$ Function                  +       Basic
RUN Statement                    +       Basic
SCREEN Function                  +       Basic
SCREEN Statement                 +       Basic
SEEK Function                    o       System
SEEK Statement                   o       System
SELECT CASE Statement            o       reserved word
SGN Function                     +       Basic
SHARED Statement                 o       pascal structure "var"
SHELL Statement                  +       Basic
SIN Function                     +       System
SINGLE Keyword                   +       pascal data type
SLEEP Statement                  +       Basic
SOUND Statement                  +       Basic
SPACE$ Function                  +       Basic
SPC Function                     +       Basic
SQR Function                     +       System
STATIC Statement                 -
$STATIC Metacommand              -
STEP Keyword                     +       reserved word "while"
STICK Function                   -
STOP Statement                   +       System
STR$ Function                    +       Basic
STRIG Function                   +       Basic
STRIG Statements                 -
STRING Keyword                   +       pascal data type
STRING$ Function                 +       Basic
SUB Statement                    o       pascal structure "procedure"
SWAP Statement                   +       Basic
SYSTEM Statement                 +       System
TAB Function                     +       Basic
TAN Function                     +       Basic
THEN Keyword                     +       reserved word
TIME$ Function                   +       Basic
TIME$ Statement                  +       Basic
TIMER Function                   +       Basic
TIMER Statements                 -
TO Keyword                       +       reserved word, ".."
TROFF Statement                  -
TRON Statement                   -
TYPE Statement                   +       pascal structure "type"
UBOUND Function                  -
UCASE$ Function                  +       Basic
UNLOCK Statement                 -
UNTIL Keyword                    o       reserved word
USING Keyword                    -
VAL Function                     +       Basic
VARPTR Function                  +       System
VARPTR$ Function                 +       System
VARSEG Function                  +       System
VIEW Statement                   +       Basic
VIEW PRINT Statement             +       Basic
WAIT Statement                   +       Basic
WEND Keyword                     +       reserved word "end"
WHILE...WEND Statement           +       reserved word
WIDTH Statements                 -
WINDOW Statement                 +       Basic
WRITE Statement                  o       System
XOR Operator                     +       reserved word
