*NEW
> New commands and changes to dBASE II version 2.31

	New commands:

	HELP	- user aid command
	REINDEX - rebuild index file
	TEXT	- display multiple lines of text, terminated by ENDTEXT

	Supplemented Commands:

	APPEND, INSERT, EDIT, CREATE - can use a format file for screen control
	BROWSE		- can be given a list of fields to work with
	DISPLAY STATUS	- shows databases/indexes in use and SET settings
	READ & REPLACE	- can be directed to NOT update indexes via NOUPDATE
	RELEASE		- can release subsets of memory variables
	RESTORE		- can restore additively to existing memory variables
	SAVE		- can save subsets of memory variables
	SET RAW ON	- eliminates extra spaces in DISPLAY and ? commands
	UPDATE		- replace clause can have WITH phrases
*END
*?
*??
> ?	- displays an expression list

	? <exp> [,<exp>]

> ??	- display an expression list without a preceeding line eject
*END
*@
> @	- displays user formated data on CRT or printer

	@  <coordinates> [SAY <exp> [USING '<picture>']]
		[GET <variable> [PICTURE '<picture>']]

	<coordinates> can be numeric expressions or
		$+<expression> for relative addressing

	e.g. @ $,$+5 say 'HI'


Possible error messages:

SYNTAX ERROR IN FORMAT SPECIFICATION

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*ACCEPT
> ACCEPT - allows input of character strings into memory variables

	ACCEPT ["<cstring>"] TO <memvar>


Possible error messages:

SYNTAX ERROR IN FORMAT SPECIFICATION

"TO" PHRASE NOT FOUND

*END
*APPEND
> APPEND - append dBASE files or files in System Data Format (SDF) or
		delimited files

	APPEND [FROM <file> [SDF] [DELIMITED [WITH <delimiter>]]
		[FOR <exp>]] or [BLANK]


Possible error messages:

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*BROWSE
> BROWSE - full screen window viewing and editing

	BROWSE [<field list>]
*END
*CANCEL
> CANCEL - cancels command file execution

	CANCEL
*END
*CASE
> CASE - one possible execution path in a DO CASE structure

	CASE <expression>

   e.g.	DO CASE
		CASE X=1
			. any statements
			.
		CASE X="
			. any statements
			.
		OTHERWISE
			. any statements
			.
	ENDCASE
*END
*CHANGE
> CHANGE  - edit columns of fields

	CHANGE FIELD <list> [<scope>] [FOR <exp>]


Possible error messages:

"FIELD" PHRASE NOT FOUND

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*CLEAR
> Clear out database files in use OR screen variables
	CLEAR [GETS]
*END
*CONTINUE
> Continue the action of a LOCATE command
	CONTINUE
*END
*COPY
> COPY	- copy existing databases to create copies

	COPY TO <file> [<scope>] [FIELD <list>] [FOR <exp>]
		[SDF] [DELIMITED [WITH <delimiter>]] or [STRUCTURE]

NOTE: COPY always destroys the previous contents of the TO file


Possible error messages:

BAD FILE NAME
	Syntax error in filename.

"TO" PHRASE NOT FOUND

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*COUNT
> COUNT	- count the number of records that meet some
		conditional expression

	COUNT [<scope>] [FOR <exp>] [TO <memvar>]


Possible error messages:

OUT OF MEMORY FOR MEMORY VARIABLES
	Reduce the number or size of memory variables.

*END
*CREATE
> CREATE - create new structured database files

	CREATE [<filename>]

Possible error messages:

BAD DECIMAL WIDTH FIELD

BAD FILE NAME
	Syntax error in filename.

BAD NAME FIELD

BAD TYPE FIELD
	Must be C, N, or L.

BAD WIDTH FIELD

RECORD LENGTH EXCEEDS MAXIMUM SIZE (OF 1000)

SYNTAX ERROR IN FORMAT SPECIFICATION

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*DELETE
> DELETE - delete files and mark records for deletion

	DELETE [<scope>] [FOR <exp>]
	DELETE FILE <file>
*END
*DISPLAY
> DISPLAY - displays records, fields, and expressions

	DISPLAY [<scope>] [FOR <exp>] [<exp list>] [OFF]
	DISPLAY STRUCTURE
	DISPLAY MEMORY
	DISPLAY FILES [ON <disk drive>] [LIKE <skeleton>]
	DISPLAY STATUS
*END
*DO
> DO	- causes command files to be executed and
		allows structured loops in command files

	DO <file>
	DO WHILE <exp>
	DO CASE


Possible error messages:

COMMAND FILE CANNOT BE FOUND
	Check spelling.


NESTING LIMIT VIOLATION EXCEEDED

*END
*EDIT
> EDIT	- alter specific data fields in a database

	EDIT [<record number>]


Possible error messages:

RECORD OUT OF RANGE
	Record number greater than number of records in database.  The
	Record doesn't exist.

SYNTAX ERROR IN FORMAT SPECIFICATION

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*EJECT
> EJECT	- ejects a page on the list device

	EJECT
*END
*ELSE
> ELSE	- alternate path of command execution within IF

	ELSE
*END
*ENDCASE
> ENDCASE - terminate a CASE structure

	ENDCASE
*END
*ENDDO
> ENDDO	- terminator for DO WHILE command

	ENDDO
*END
*ENDIF
> ENDIF	- terminator for IF command

	ENDIF
*END
*ERASE
> ERASE	- clears the CRT

	ERASE
*END
*FIND
> FIND	- positions to record corresponding to a key on indexed files

	FIND <key>  or FIND '<key>'


Possible error messages:

DATABASE IN USE IS NOT INDEXED
	FIND is only permitted on indexed databases.

NO FIND
	More  a diagnostic type message than an error  message.  dBASE
	couldn't find the key.

*END
*GO
*GOTO
> GOTO	- position to a specific record

	GO or GOTO [RECORD], or [TOP], or [BOTTOM], <n>


Possible error messages:

RECORD NOT IN INDEX
	Index file was not updated after a record was added. Reindex.

RECORD OUT OF RANGE
	Record number greater than number of records in database.  The
	Record doesn't exist.

*END
*HELP
> ?	- displays an expression list
> ??	- display an expression list without a preceeding line eject
> @	- displays user formated data on CRT or printer
> ACCEPT - allows input of character strings into memory variables
> APPEND - append dBASE files or files in System Data Format (SDF) or
		delimited files
> BROWSE - full screen window viewing and editing
> CANCEL - cancels command file execution
> CASE - one possible execution path in a DO CASE structure
> CHANGE  - edit columns of fields
> CLEAR - Clear out database files in use OR screen variables
> CONTINUE - Continue the action of a LOCATE command
> COPY	- copy existing databases to create copies
> COUNT	- count the number of records that meet some
> CREATE - create new structured database files
> DELETE - delete files and mark records for deletion
> DISPLAY - displays records, fields, and expressions
> DO	- causes command files to be executed and
		allows structured loops in command files
> EDIT	- alter specific data fields in a database
> EJECT	- ejects a page on the list device
> ELSE	- alternate path of command execution within IF
> ENDCASE - terminate a CASE structure
> ENDDO	- terminator for DO WHILE command
> ENDIF	- terminator for IF command
> ERASE	- clears the CRT
> FIND	- positions to record corresponding to a key on indexed files
> GOTO	- position to a specific record
> IF	- allows conditional execution of commands
> INDEX  - creates an index file
> INPUT	- allows input of expressions into memory variables
> INSERT - insert data into a file
> JOIN	- outputs the JOIN of two databases
> LIST - identical to the DISPLAY command except that the default scope
> LOCATE  - find a record that fits a condition
> LOOP	- skips to beginning of DO WHILE
> MODIFY  - allows editing of command files and database structures
> PACK	- removes records marked for deletion
> QUIT - terminate dBASE and return to the system optionally
> READ	- displays data and prompting  information  in full-screen mode
> RECALL  - erases mark for deletion
> REINDEX - realigns an old index file
> RELEASE - eliminates unwanted memory variables and returns space to dBASE
> RENAME - rename a file
> REPLACE - replaces data fields with values
> REPORT  - format and display a report of data
> RESET - Reset system to allow diskette swapping
> RESTORE - retrieves sets of stored memory variables
> RETURN  - ends a command file
> SAVE	- copy the memory variables to mass storage
> SELECT - switches between USE file
> SET	- sets dBASE control parameters
> SKIP	- position forwards or backwards
> SORT	- create a copy of a database which is sorted on one of the data fields
> STORE	- stores expressions into memory variables
> SUM	- compute and display the sum of an expression
> TEXT - heads a block of information for output only
> TOTAL  - outputs a database of totalled records
> UPDATE  - allows batch updates of a database
> USE	- specifies the database file to be used for
	all operations until another USE is issued
> WAIT	- suspends command file processing

  OTHER TOPICS

> NEW (FEATURES)
> LIMITATIONS (AND CONSTRAINTS)
> ERROR (MESSAGES)
*END
*IF
> IF	- allows conditional execution of commands

	IF <exp>
	.
	.  (any statements)
	.
	ELSE			] ELSE is optional
	.			]
	.  (any statements)	]
	.			]
	ENDIF
*END
*INDEX
> INDEX  - creates an index file

	INDEX ON <char string expression> TO <index file name>

Possible error messages:

BAD FILE NAME
	Syntax error in filename.

"ON" PHRASE NOT FOUND

"TO" PHRASE NOT FOUND

*END
*INPUT
> INPUT	- allows input of expressions into memory variables

	INPUT ["<cstring>"] TO <memvar>


Possible error messages:

"TO" PHRASE NOT FOUND

*END
*INSERT
> INSERT - insert data into a file

	INSERT [BEFORE], or [BLANK]


Possible error messages:

CANNOT INSERT - THERE ARE NO RECORDS IN DATABASE FILE
	Use the APPEND command instead.

SYNTAX ERROR IN FORMAT SPECIFICATION

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*JOIN
> JOIN	- outputs the JOIN of two databases

	JOIN TO <file> FOR <expression> [FIELDS <field list>]


Possible error messages:

JOIN ATTEMPTED TO GENERATE MORE THAN 65,534 RECORDS
	The FOR clause allows too many joined output records,  make it
	more stringent.


NO "FOR" PHRASE

*END
*LIST
> LIST - identical to the DISPLAY command except that the default scope
		is ALL records

	LIST
*END
*LOCATE
> LOCATE  - find a record that fits a condition

	LOCATE [<scope>] [FOR <exp>]


Possible error messages:

NO "FOR" PHRASE

*END
*LOOP
> LOOP	- skips to beginning of DO WHILE

	LOOP
*END
*MODIFY
> MODIFY  - allows editing of command files and database structures

	MODIFY STRUCTURE
	MODIFY COMMAND <command file>

Possible error messages:

BAD FILE NAME
	Syntax error in filename.

RECORD LENGTH EXCEEDS MAXIMUM SIZE (OF 1000)

*END
*NOTE
	NOTE or *
*END
*PACK
> PACK	- removes records marked for deletion

	PACK
*END
*QUIT
> QUIT - terminate dBASE and return to the system optionally
		starts up other programs

	QUIT [TO <list of CP/M level commands or .COM files>]
*END
*READ
> READ	- displays data and prompting  information  in full-screen mode

	READ


Possible error messages:

SYNTAX ERROR IN FORMAT SPECIFICATION

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
*RECALL
> RECALL  - erases mark for deletion

	RECALL [<scope>] [FOR <exp>]
*END
*REINDEX
> REINDEX  realigns an old index file

	REINDEX
*END
*RELEASE
> RELEASE - eliminates unwanted memory variables and returns space to dBASE

	RELEASE [<memvar list>], or [ALL]
	RELEASE ALL LIKE <skeleton>
	RELEASE ALL EXCEPT <skeleton>
*END
*REMARK
	REMARK
*END
*RENAME
> RENAME - rename a file

	RENAME <current file name> TO <new file name>
*END
*REPLACE
> REPLACE - replaces data fields with values

	REPLACE [<scope>] <field> WITH <exp> [AND <field> WITH <exp>]


Possible error messages:

DATA ITEM NOT FOUND

SOURCE AND DESTINATION DATA TYPES ARE DIFFERENT

*END
*REPORT
> REPORT  - format and display a report of data

	REPORT [<scope>] [FORM <form file>] [TO PRINT] [FOR <exp>] [PLAIN]


Possible error messages:

SYNTAX ERROR,  RE-ENTER

*END
*RESET
> Reset system to allow diskette swapping

	RESET [<drive>]
*END
*RESTORE
> RESTORE - retrieves sets of stored memory variables

	RESTORE [ADDITIVE]


Possible error messages:

CANNOT OPEN FILE

*END
*RETURN
> RETURN  - ends a command file

	RETURN
*END
*SAVE
> SAVE	- copy the memory variables to mass storage

	SAVE TO <file> [ALL LIKE <skeleton>]

Possible error messages:

BAD FILE NAME
	Syntax error in filename.

"TO" PHRASE NOT FOUND

*END
*SELECT
> SELECT - switches between USE file

	SELECT [PRIMARY or SECONDARY]
*END
*SET
> SET	- sets dBASE control parameters

	SET <parm> [ON], or [OFF]
	SET ALTERNATE TO <file>
	SET DEFAULT TO <drive>
	SET DATE TO <string>
	SET FORMAT TO <format file name>
	SET HEADING TO <string>
	SET INDEX TO <index file list>
	SET MARGIN TO <n>
*END
*SKIP
> SKIP	- position forwards or backwards

	SKIP <+/-> [<n>]
*END
*SORT
> SORT	- create a copy of a database which is sorted
		on one of the data fields

	SORT ON <field> TO <file> [ASCENDING], or [DESCENDING]
*END
*STORE
> STORE	- stores expressions into memory variables

	STORE <exp> TO <memvar>


Possible error messages:

OUT OF MEMORY FOR MEMORY VARIABLES
	Reduce the number or size of memory variables.

"TO" PHRASE NOT FOUND

*END
*SUM
> SUM	- compute and display the sum of an expression
		over a group of database records

	SUM <field> [<scope>] [TO <memvar list>] [FOR <exp>]


Possible error messages:

MORE THAN 5 FIELDS TO SUM

NO EXPRESSION TO SUM

NON-NUMERIC EXPRESSION

*END
*TOTAL
> TOTAL  - outputs a database of totalled records

	TOTAL TO <file> ON <key variable> [FIELDS <field list>]
*END
*UPDATE
> UPDATE  - allows batch updates of a database

	UPDATE  FROM  <file>  ON <key variable> [ADD  <field  list>]
		[REPLACE [    <field list>    ] ]
			 [<field> WITH <field>]


Possible error messages:

NO "FROM" PHRASE

"ON" PHRASE NOT FOUND

*END
*USE
> USE	- specifies the database file to be used for
	all operations until another USE is issued

	USE <file> [INDEX <index file name list>]

Possible error messages:

BAD FILE NAME
	Syntax error in filename.

END OF FILE FOUND UNEXPECTEDLY
	The  database  in USE is not in the  correct  format.  If  all
	records  are correct and present,  then PACK and re-INDEX  the
	database.

INDEX DOES NOT MATCH DATABASE
	dBASE  cannot  match the key with the  database.  Try  another
	index file.

INDEX FILE CANNOT BE OPENED
	Check spelling or INDEX the database.

*END
*WAIT
> WAIT	- suspends command file processing

	WAIT [TO <memvar>]
*END
*@
	@(<string1>,<string2>) - AT function
*END
**
	* - deleted record function
*END
*#
	# - record number function
*END
*!
	!(<char string>) - upper case function
*END
*$
	$(<char string>,<start>,<length>) - substring function
*END
*CHR
	CHR(<numeric expression>) - numeric to ASCII
*END
*DATE
	DATE() - system date function
*END
*EOF
	EOF - end-of-file function
*END
*FILE
	FILE(<file>) - existance function
*END
*INT
	INT(<numeric expression>) - integer function
*END
*LEN
	LEN(<char string>) - length function
*END
*STR
	STR(<numeric expression>,<width>[,<decimals>])	string function
*END
*VAL
	VAL(<char string>) - value function
*END
*TRIM
	TRIM(<char string>) - trims strings
*END
*TYPE
	TYPE(<exp>) - supplies data type
*END
*LIMITATIONS
number of fields per record			   32 max
number of characters per record			 1000 max
number of records per database			65535 max
number of characters per character string	  254 max
accuracy of numeric fields			   10 digits
largest number				 1.8 x 10**63 approx
smallest number				1.0 x 10**-63 approx
number of memory variables			   64 max
number of characters per command line		  254 max
number of expressions in SUM command		    5 max
number of characters in REPORT header		  254 max
number of characters in index key		  100 max
number of pending GETS				   64 max
number of files open at one time		   16 max
*END
*ERROR

BAD DECIMAL WIDTH FIELD

BAD FILE NAME
	Syntax error in filename.

BAD NAME FIELD

BAD TYPE FIELD
	Must be C, N, or L.

BAD WIDTH FIELD

CANNOT INSERT - THERE ARE NO RECORDS IN DATABASE FILE
	Use the APPEND command instead.

CANNOT OPEN FILE

COMMAND FILE CANNOT BE FOUND
	Check spelling.

DATA ITEM NOT FOUND

DATABASE IN USE IS NOT INDEXED
	FIND is only permitted on indexed databases.

DIRECTORY IS FULL
	The CP/M disk directory cannot hold anymore files.

DISK IS FULL

END OF FILE FOUND UNEXPECTEDLY
	The  database  in USE is not in the  correct  format.  If  all
	records  are correct and present,  then PACK and re-INDEX  the
	database.

"FIELD" PHRASE NOT FOUND

FILE ALREADY EXISTS

FILE DOES NOT EXIST

FILE IS CURRENTLY OPEN
	Type a USE or CLEAR command to close the file.

FORMAT FILE CANNOT BE OPENED

FORMAT FILE HAS NOT BEEN SET

ILLEGAL DATA TYPE

ILLEGAL GOTO VALUE

ILLEGAL VARIABLE NAME
	Only  alphanumerics  and  colons are allowed in  variable  and
	field names.

INDEX DOES NOT MATCH DATABASE
	dBASE  cannot  match the key with the  database.  Try  another
	index file.

INDEX FILE CANNOT BE OPENED
	Check spelling or INDEX the database.

JOIN ATTEMPTED TO GENERATE MORE THAN 65,534 RECORDS
	The FOR clause allows too many joined output records,  make it
	more stringent.

KEYS ARE NOT THE SAME LENGTH

MACRO IS NOT A CHARACTER STRING
	&macros must be character strings.

MORE THAN 5 FIELDS TO SUM

NESTING LIMIT VIOLATION EXCEEDED

NO EXPRESSION TO SUM

NO "FOR" PHRASE

NO "FROM" PHRASE

NO FIND
	More  a diagnostic type message than an error  message.  dBASE
	couldn't find the key.

NON-NUMERIC EXPRESSION

NONEXISTENT FILE

"ON" PHRASE NOT FOUND

OUT OF MEMORY FOR MEMORY VARIABLES
	Reduce the number or size of memory variables.

RECORD LENGTH EXCEEDS MAXIMUM SIZE (OF 1000)

RECORD NOT IN INDEX
	Index file was not updated after a record was added. Reindex.

RECORD OUT OF RANGE
	Record number greater than number of records in database.  The
	Record doesn't exist.

SOURCE AND DESTINATION DATA TYPES ARE DIFFERENT

*** SYNTAX ERROR ***

SYNTAX ERROR IN FORMAT SPECIFICATION

SYNTAX ERROR,  RE-ENTER

"TO" PHRASE NOT FOUND

TOO MANY CHARACTERS

TOO MANY FILES ARE OPEN
	There is a maximum of 16 files allowed to be open at one time.

TOO MANY MEMORY VARIABLES
	There is a maximum of 64 memory variables.

TOO MANY RETURNS ENCOUNTERED
	Probably an error in the structure of a command file.

"WITH" PHRASE NOT FOUND

UNASSIGNED FILE NUMBER
	Internal error, contact dealer for support.

*** UNKNOWN COMMAND

VARIABLE CANNOT BE FOUND
	Need to create the variable, or check the spelling.
*END
