CONTENTS Title Page Copyright Page Preface 1 Program Elements and Structure 1.1 Components of Program Lines 1.1.1 Line Numbers 1.1.1.1 Programs With Line Numbers 1.1.1.2 Programs Without Line Numbers 1.1.2 Labels 1.1.3 Statements 1.1.3.1 Keywords 1.1.3.2 Single-Statement Lines and Continued Statements 1.1.3.3 Multistatement Lines 1.1.4 Compiler Directives 1.2 BASIC Character Set 1.3 BASIC Data Types 1.3.1 Implicit Data Typing 1.3.2 Explicit Data Typing 1.4 Variables 1.4.1 Variable Names 1.4.2 Implicitly Declared Variables 1.4.3 Explicitly Declared Variables 1.4.4 Subscripted Variables and Arrays 1.4.5 Initialization of Variables 1.5 Constants 1.5.1 Numeric Constants 1.5.1.1 Floating-Point Constants 1.5.1.2 Integer Constants 1.5.1.3 Packed Decimal Constants 1.5.2 String Constants 1.5.3 Named Constants 1.5.3.1 Naming Constants Within a Program Unit 1.5.3.2 Naming Constants External to a Program Unit 1.5.4 Explicit Literal Notation 1.5.5 Predefined Constants 1.6 Expressions 1.6.1 Numeric Expressions 1.6.1.1 Floating-Point and Integer Promotion Rules 1.6.1.2 DECIMAL Promotion Rules 1.6.2 String Expressions 1.6.3 Conditional Expressions 1.6.3.1 Numeric Relational Expressions 1.6.3.2 String Relational Expressions 1.6.3.3 Logical Expressions 1.6.4 Evaluating Expressions 1.7 Program Documentation 1.7.1 Comment Fields 1.7.2 REM Statements 2 VAX BASIC Environment Commands ! your-comment $ system-command APPEND ASSIGN COMPILE CONTINUE DELETE EDIT EXIT HELP IDENTIFY INQUIRE LIST and LISTNH LOAD LOCK NEW OLD RENAME REPLACE RESEQUENCE RUN SAVE SCALE SCRATCH SEQUENCE SET SHOW UNSAVE 3 Compiler Directives %ABORT %CROSS %DECLARED %IDENT %IF-%THEN-%ELSE-%END %IF %INCLUDE %LET %LIST %NOCROSS %NOLIST %PAGE %PRINT %REPORT %SBTTL %TITLE %VARIANT 4 Statements and Functions ABS ABS% ASCII ATN BUFSIZ CALL CAUSE ERROR CCPOS CHAIN CHANGE CHR$ CLOSE COMMON COMP% CONTINUE COS CTRLC CVT$$ CVT xx DATA DATE$ DECIMAL DECLARE DEF DEF * DELETE DET DIF$ DIMENSION ECHO EDIT$ END ERL ERN$ ERR ERT$ EXIT EXP EXTERNAL FIELD FIND FIX FNEND FNEXIT FOR FORMAT$ FREE FSP$ FUNCTION FUNCTIONEND FUNCTIONEXIT GET GETRFA GOSUB GOTO HANDLER IF INKEY$ INPUT INPUT LINE INSTR INT INTEGER ITERATE KILL LBOUND LEFT$ LEN LET LINPUT LOC LOG LOG10 LSET MAG MAGTAPE MAP MAP DYNAMIC MAR MARGIN MAT MAT INPUT MAT LINPUT MAT PRINT MAT READ MAX MID$ MIN MOD MOVE NAME...AS NEXT NOECHO NOMARGIN NUM NUM2 NUM$ NUM1$ ON ERROR GO BACK ON ERROR GOTO ON ERROR GOTO 0 ON...GOSUB ON...GOTO OPEN OPTION PLACE$ POS PRINT PRINT USING PROD$ PROGRAM PUT QUO$ RAD$ RANDOMIZE RCTRLC RCTRLO READ REAL RECORD RECOUNT REM REMAP RESET RESTORE RESUME RETRY RETURN RIGHT$ RMSSTATUS RND RSET SCRATCH SEG$ SELECT SET PROMPT SGN SIN SLEEP SPACE$ SQR STATUS STOP STR$ STRING$ SUB SUBEND SUBEXIT SUM$ SWAP% TAB TAN TIME TIME$ TRM$ UBOUND UNLESS UNLOCK UNTIL UPDATE VAL VAL% VMSSTATUS WAIT WHEN ERROR WHILE XLATE$ A ASCII Character Codes B BASIC Keywords C Compatibility Between DEC BASIC and VAX BASIC C.1 Functionality Differences C.1.1 VAX BASIC Features Not Available in DEC BASIC Version 1.0 C.1.2 VAX BASIC Functionality for Which There Are No Plans of Support by DEC BASIC C.1.3 DEC BASIC Functionality Not Available in VAX BASIC C.2 Behavior Differences C.2.1 Data Types C.2.1.1 Implicit Use of the HFLOAT Data Type C.2.1.2 Double Data Type C.2.1.3 HFLOAT Data Type and HFLOAT COMPLEX Data Type in CDD/Repository C.2.2 Array Parameters C.2.3 /LINES Qualifier C.2.4 Appending Files at the DCL Prompt C.2.5 Unreachable Code Error C.2.6 Line Numbers C.2.7 Error Handling Semantics C.2.8 Generation of Object Modules C.2.9 RESUME and DEF C.2.10 Exceptions C.2.11 Error Status Returned to DCL C.2.12 SYS$INPUT C.2.13 FSS$ Function C.2.14 BAS$K_FAC_NO Constant C.2.15 Floating Point Errors C.3 Common Language Environment Differences C.3.1 Creating PSECTs with COMMON and MAP Statements C.3.2 64-Bit Floating-Point Data