Intel 9800758-02 manual String Constants, String Variables, This is a string constant

Page 18

Language Elements

BASIC-80

If a variable is referenced before it has been assigned a value, its value is zero. The NEW, RUN, CLEAR, LOAD, and MERGE instructions set all variables to zero.

Individual variables can be specified by individual type identifier suffixes, which override group type identifiers used to specify blocks of variables. Table 2-5 shows these suffixes.

Blocks of variables beginning with specific characters can be specified as integer, single-precision, or double-precision with the DEFINT, DEFSNG, and DEFDBL statements. The general form of these statements is: DEFxxx m[-n], where n is any letter A through Z, and m is any letter A through Z that precedes n in the alphabet, (Le., the block L-Q is legal, but Q-L is not). In this way, all variables beginning with a certain letter or letters may be defined as one type.

The variable default type is single precision, as if a DEFSNG A-Z had been executed at the start of a given program. If certain variables should be of another type, you should define them at the start of the program to prevent errors. In all cases, the type identifiers (% for integer,! for single-precision, and I for double-precision) override any variable block type assignment.

Note that A$, AOJo, A!, and AI are four different variables. If the default variable type for variables beginning with the letter A is single precision, then A and A! are the same variable.

To economize on memory space and execution time, you should use integer representation rather than single-precision representation, and single-precision rather than double-precision, when this is possible.

String Data

BASIC-80 accepts strings of characters as data. Like numeric values, strings can be either constants or variables.

String Constants

A string constant is a group of characters, enclosed in quotation marks. Quotation marks cannot be used within string constants. String constants can be up to 255 characters long. Some string constants are:

"This is a string constant."

"48, 23H, 373799"

String Variables

String variables are string values which can change during program execution. A string variable name is one or more characters, the first of which must be a letter, followed by $. If more than two characters are entered as a variable name, onlv the first two are read.

String variables can contain strings of from 0-255 characters. When you first invoke BASIC-80, however, there is only storage space for 100 characters. The CLEAR command must be used to increase the amount of available string space. Here are some examples of assignments to strip.g variables:

A$ = "Enter next data string"

B$ = "40 * 1. 7234E + 3"

NAMES$ = "Warren, Mark, Evan"

2-8

Image 18
Contents BASIC-SO Reference Manual A108/0979/7500 FL Preface Page Contents Illustrations Chapter Introduction to BASIC-80 Invoking BASIC-80Basic filename MEMTOPaddress ExamplesIntroduction to BASIC-80 FilenameChanging File Attributes Listing the Directory of a DiskRenaming a File Deleting a FileYou can now run, list, or edit the program Save LP ,ACommands StatementsBASIC-80 Commands Contd BASIC-80 StatementsBASIC-80 Statements Contd BASIC-80 FunctionsBASIC-80 Functions Contd Representing Data FunctionsDecimal Integer Constants ConstantsInteger Constants Hexadecimal Integer ConstantsOctal Integer Constants Single-Precision Floating-Point ConstantsDouble-Precision Floating-Point Constants This is a string constant String ConstantsString Variables $ = Enter next data stringL4! = Csng l4 YI,1String Arrays Arithmetic Operators BASIC-SO Operators in Order of Precedence ContdNumeric Expressions Logical OperatorsString Operator String ExpressionsEntering and Editing Programs 30 A=8*52 30 A=8*37 30 A=8*5230 A=8 30 A--=8xx*522537 Control-R a = 8*37Integer D SubcommandCommand 3D press 3, then D results If AB thenIf AB then 120 Else Null SET Syntax of the X subcommand is At this point, the other editing subcommands may be usedMove the cursor to PRINT. Enter 2C RE L Print Undefined SET The E subcommand is enteredInteger C character character Print Undefined SET. Enter a LBASIC-80 Error Messages Syntax Error MessagesOverflow, Underflow, and Divide-by-Zero Error Trapping Trace Facility Restarting Program Execution Error SimulationError Handling If line 40 is replaced withOpening a Sequential File Open 1,#1,F1DATESReading from a Sequential File Refer to for further details of Print UsingWriting to a Sequential File If executed four times, it would read all eight valuesClosing a Sequential File Value of R$ would beBuffers Defining a Random 1/0 Field-FIELDField #3, 20 AS N$ Disk File Input/Output Field #3, 20 AS N$, 9 AS SS$Any of the parameters can be variables Opening and Closing a Random Disk FileReading from a Random 1/0 File To read the next recordSingle-precision value Writing to a Random 1/0 FileInteger Double-precision valueMKI$ Auto first lineJ, increment Attrib Fdrive numberfilename, W1Attrib Fdrive numberfilename, WO Clear expression,addressCommands and Statements CloseDEF FNX Rules for function name are the same as for variable nameDefsng Defdbl Defstr Defint DIM DeleteEdit ErrorDIR ENDField Error expressionExit FOR-NEXT-STEPFor variable=expression to expression Step expression GETGosub GET I file number ,record numberIF-THEN-ELSE InputGoto Line Input KillLET ListLSET, Rset LoadMerge NEWNext 9 16On ... Gosub On ... GotoOpen Option Base OUTPoke Print Using PrintString Fields Numeric fields If X$=SEVEN and Y$=EIGHT, the results of line 40 would bePrun PUTRandomize ReadREM Resume ReturnLine number RUN filename SaveRUN line numberlstring expression ,F 60 ENDTRON, Troff ? 5,8,2Wait WidthABS ATNCHR$ CintFunctions 10 A# = 1.00/3.00 CsngCVI CVS AO/o =Dskf EOFFIX Ok·Hexs INPInputs INT InstrLEFT$ LOF LENLOC LOGMID$ MKI$ MKS$ MKD$OCT$ POS integer RightsPeek expression RIGHT$ string,integerSpaces SGNSIN 10 a =1If A$ = 2 then Print Correct Else Goto SPCSPC integer SQRexpressionSTR$ expression TAB expressionTAN expression Here is an example of how the USRn statement is used 60 AO/o =Appendix a BASIC-SO Error Codes Table A-I. BASIC-80 Error CodesTable A-I. BASIC-SO Error Codes Contd Appendix B BASIC-SO Reserved Words Page To tab across the line To halt program execution and return to commandLevel To resume program execution after it is stopped byPage Table D-l. Ascii Code List Appendix D Ascii CodesTable D-2. Ascii Code Definition BELAppendixe Calling Subroutines Figure B-1. Internal Representation of Numbers and Strings Some Real Examples RESULT=USR%1VARPTRA, VARPTRB, VARPTRC» PRINTA+B+C= ResultFigure E-2 /8085 Assembly Language Program Figure E-3. PL/M-80 Program Appendix F RMX/SO BASIC-SO Initializing the Predefined RMX/SO BASIC-SO Configuration ISIS-II BASIC-SOTable F-l. Sample Configuration Jumper Wiring OOOOH-OFFFHBASIC-80 Object Files Generating Boot-Loaded and PROM-Based VersionsBASIC-80 Source Files BASIC-80 Executable FilesGenerating a Boot-Loaded RMX/80 BASIC-80 Setting baud rates, refer to the RMX/SO Users Guide That are not boot loadedThis option is used to allocate memory. It is 1 if the boot This option enables your user-written I/O drivers if youISBC 80/20-4 Generating a PROM-Based RMX/80 BASIC-80 Prom F1 RMX820.L1BSTART, & FOBASCM.OBJ,& FORMXBAS.LlB F1 DFSDIR. L1BDIRECTORY ,RENAM E,& F1 MTI810.L1B Configuration Requirements Configuring DFS on an iSBC 80/10Adding BASIC-SO to an Existing RMX/SO Configuration ISBC SO/10 System ClockPublic Variables Adding User-Written I/O Drivers to RMX/SO BASIC-SO Open 0,#1, L1LlSTFigure F-S. Sample User-Written 1/0 Driver Routine Altering BASIC-80 Workspace Burning a BASIC-80 Program Into PromBaprom F1HEATER.BAS Page Index Ase BASIC-80 RIGHT$,7-1O Request for Readerscomments 111111