Intel 9800758-02 manual Altering BASIC-80 Workspace, Burning a BASIC-80 Program Into Prom

Page 108

RMX/SO BASIC-SO

BASIC-SO

Altering BASIC-80 Workspace

The BASIC-80 work.space stores the current BASIC-80 program, variables, con- stants, file buffers, strings. It should be as large as is practical.

Table F-2. Sample Configuration Memory Requirements

Module

PROM (bytes)

RAM (bytes)

 

 

 

RMXBAS.LlB

22287

1415

BOOTCM.OBJ

87

197

BASCM.OBJ

151

538

BOMEM.OBJ

18

Note 1

BOBMEM.OBJ

 

 

 

 

 

Note 1: BQMEM.ASM allocates DFS memory areas and the BASIC-80 workspace. DFS requires 700 bytes, plus 400 bytes per DFS file. An additional 80 bytes are required for the controller stack on a non-boot loaded DFS system. On a boot loaded system, BQBMEM.ASM allocates controller stack area.

The BQMEM.ASM module contains two labels: BQSMEM and BQEMEM. These labels correspond to the starting and ending addresses of the BASIC-80 workspace. The distributed code is written to make the greatest possible area of memory available as workspace:

BQMEM.OBJ is the last module linked, so the starting address of the workspace is at the top of all data areas. BQSMEM uses this address.

ASEG and ORO force the controller addressable areas (if DFS is specified) and boot loader code (in a boot loaded system) to the top of memory. A variable FREE addresses the last free byte below these. FREE is used by BQMEM. Note: the boot loader work area RQPOOL is re-used by BASIC-80.

If you wish to fix the BASIC-80 work area to a specific length or location, BQSMEM and BQEMEM must be modified accordingly. If you want to reserve free memory for BASIC-80 to POKE data into, you need to know the address loaded by BQMEM. This can be determined by examining the code of BQMEM in BQMEM.ASM. In the distributed version, this address is OFI23H. Accordingly, to reserve 1500 bytes of string space and lK bytes to POKE into, the command

CLEAR 1500,OF123H 1024

should be given. If you give this command, the memory between OED24H and OF123H will be unused and available to BASIC-80.

Burning a BASIC-80 Program Into PROM

To burn a BASIC-80 program into a programmable read-only memory (PROM), you must first convert the BASIC-80 program to Intel relocatable object file for- mat. Included with BASIC-80 is a program that does this conversion.

These are the steps required to burn a BASIC-80 program into PROM:

1.Save the program on disk in ASCII format (the A option of the SAVE command). This can be done with either RMX/80 or ISIS-II BASIC-80.

2.Convert the ASCII program file to a relocatable object file with BAPROM.

3.Convert the file to absolute object file format with LOCATE.

4.Read the converted object file into PROM using the UPM READ command with the OBJECT option.

5.Burn the file into PROM with the PROGRAM command.

F-16

Image 108
Contents BASIC-SO Reference Manual A108/0979/7500 FL Preface Page Contents Illustrations Chapter Introduction to BASIC-80 Invoking BASIC-80Examples Introduction to BASIC-80Basic filename MEMTOPaddress FilenameListing the Directory of a Disk Renaming a FileChanging File Attributes 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 FunctionsConstants Integer ConstantsDecimal Integer Constants Hexadecimal Integer ConstantsOctal Integer Constants Single-Precision Floating-Point ConstantsDouble-Precision Floating-Point Constants String Constants String VariablesThis is a string constant $ = Enter next data stringL4! = Csng l4 YI,1String Arrays Arithmetic Operators BASIC-SO Operators in Order of Precedence ContdLogical Operators String OperatorNumeric Expressions String ExpressionsEntering and Editing Programs 30 A=8*52 30 A=830 A=8*52 30 A=8*37 30 A--=8xx*522537 Control-R a = 8*37Subcommand Command 3D press 3, then D resultsInteger D If AB thenIf AB then 120 Else Null SET Syntax of the X subcommand is At this point, the other editing subcommands may be usedPrint Undefined SET The E subcommand is entered Integer C character characterMove the cursor to PRINT. Enter 2C RE L Print Undefined SET. Enter a LBASIC-80 Error Messages Syntax Error MessagesOverflow, Underflow, and Divide-by-Zero Error Trapping Trace Facility Error Simulation Error HandlingRestarting Program Execution If line 40 is replaced withOpening a Sequential File Open 1,#1,F1DATESRefer to for further details of Print Using Writing to a Sequential FileReading from 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$Opening and Closing a Random Disk File Reading from a Random 1/0 FileAny of the parameters can be variables To read the next recordWriting to a Random 1/0 File IntegerSingle-precision value Double-precision valueMKI$ Attrib Fdrive numberfilename, W1 Attrib Fdrive numberfilename, WOAuto first lineJ, increment Clear expression,addressCommands and Statements CloseDEF FNX Rules for function name are the same as for variable nameDefsng Defdbl Defstr Defint DIM DeleteError DIREdit ENDError expression ExitField FOR-NEXT-STEPGET GosubFor variable=expression to expression Step expression GET I file number ,record numberIF-THEN-ELSE InputGoto Kill LETLine Input 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 ReturnSave RUN line numberlstring expression ,FLine number RUN filename 60 ENDTRON, Troff ? 5,8,2Wait WidthABS ATNCHR$ CintFunctions Csng CVI CVS10 A# = 1.00/3.00 AO/o =Dskf EOFFIX Ok·Hexs INPInputs INT InstrLEFT$ LEN LOCLOF LOGMID$ MKI$ MKS$ MKD$OCT$ Rights Peek expressionPOS integer RIGHT$ string,integerSGN SINSpaces 10 a =1SPC SPC integerIf A$ = 2 then Print Correct Else Goto 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 halt program execution and return to command LevelTo tab across the line 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-OFFFHGenerating Boot-Loaded and PROM-Based Versions BASIC-80 Source FilesBASIC-80 Object Files BASIC-80 Executable FilesGenerating a Boot-Loaded RMX/80 BASIC-80 That are not boot loaded This option is used to allocate memory. It is 1 if the bootSetting baud rates, refer to the RMX/SO Users Guide 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 Configuring DFS on an iSBC 80/10 Adding BASIC-SO to an Existing RMX/SO ConfigurationConfiguration Requirements 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