	    ApBasic Latest Features			Feb 26, 1991
	    			

			(c) 1987-1990 Comptech Software and Consulting, Inc.
				      By Keith Murray  Compuserve 71601,3673
							      (813) 980-2087


  Nov 1,1987  Version 1.00
Editor Changes:
   <Alt-N> can be used to change the current file name.


  Dec 1,1987  Version 1.00a
Editor Changes:
   A bug was fixed that corrupted the source program in the edit
    buffer whenever a drop-down menu was used.

  Dec 18,1987  Version 1.1
Language Changes:
   Line numbers are now accepted before statements as per normal BASICA.
    They are also acceptable wherever a normal line label is used as well
    as :
	IF Expression THEN line.number

   The VAL() function now recognizes &H, &O, &B and & preceding a number
    and does the necessary conversion.

   Included on the master diskette is a program called 'SOUND.INC'. This
    file contains a SOUND procedure similiar to the BASICA SOUND statement.
    The file can be included into a program using:

        $INCLUDE "SOUND.INC"

    There is a test program also on the master diskette called 'SIREN.BAS'
    that demonstrates the SOUND statement.

   Single precision floating point variables are now supported. Those
    variables with a type character of '!' or defined as single precision
    by using the DEFSNG statement occupy 4 bytes. All floating point math
    is done in double precision. Single precision numbers are converted when
    used or stored.

   Four new functions were added to aid in reading and writing data files
    that contain floating point numbers in the Microsoft format.

Summary:      CVDM(String$)

Description:  The String$ is a double precision floating point number in
              the Microsoft format. The number returned is in IEEE format
              used within ApBasic.

See Also:     CVSM()
              CVD()
              CVI()
 _________________________________________________________________________

Summary:      CVSM(String$)

Description:  The String$ is a single precision floating point number in
              the Microsoft format. The number returned is in IEEE format
              used within ApBasic.

See Also:     CVDM()
              CVD()
              CVI()
 _________________________________________________________________________

Summary:      MKDM$(Numeric)

Description:  This function returns an eight byte string that is the value
              of the numeric expression converted to the Microsoft format.

See Also:     MKSM$()
              MKD$()
              MKI$()
 ________________________________________________________________________

Summary:      MKSM$(Numeric)

Description:  This function returns a four byte string that is the value of
              the numeric expression converted to the Microsoft format.

See Also:     MKDM$()
              MKD$()
              MKI$()


  April 11,1988  Version 1.12
Editor changes:
   When function keys were pressed with a menu dropped down, the screen
    would be corrupted but the program was not disturbed.

Compiler changes:
   Metacommands are now allowed on lines with line numbers.
   String garbage collection routines were speeded up.
   Expression using OR/AND/XOR/SHL/SHR with non-integer types
    would produce code that would crash if the expression was executed
    many times (ie. loops).
   The FRE() function was not returning the correct amount of free string
    space.

  October 1, 1990 Version 1.13
Editor changes:
   Bug with on-line help would sometimes corrupt the display.
   The /M option can be used when starting ApBasic to force it to run
    in monochrome mode. For example:
       C:\>apb /m
    This is for users who are running laptops that APB.EXE thinks is color
    but is in reality a mono LCD screen.

  December 14, 1990 Version 1.5
Editor changes:
   Some Wordstar keys are now accepted. The following are allowed:
     ^A 	 : Word left
     ^E ^D ^S ^X : Cursor up, right, left and down
     ^R ^C	 : Page up / Page down
     ^F 	 : Word right
     ^G 	 : Delete character under cursor
     ^L 	 : Search again.
     ^U 	 : Undelete line
     ^Y 	 : Delete line
     ^KD	 : Save file and exit
     ^KQ	 : Exit
     ^KR	 : Append a file
     ^KS	 : Save file
     ^KX	 : Save and exit
     ^QA	 : Search and replace
     ^QC	 : End of file
     ^QS ^QD	 : Beginning and end of line
     ^QF	 : Search for a string
     ^QR	 : Beginning of file
  
   Because of adding the WS keys, the Ctrl-R command that previously would
    compile and run now is used to do Page Up. The F9 key is now 
    assigned to the compile/run task. The 'Run' drop-down menu was 
    changed to reflect this change.

Compiler changes:
   REM and REMARK are now allowed. Before, the only way to put a comment
    into the program was to use a '. All are now valid.
   The ENV$() function was left out of the manual. It's definition follows.

Summary:      ENV$(String)

Description:  This function returns the evironment data for a given 
	      environment variable.
Example:
	      print ENV$("COMSPEC")     ' print COMMAND.COM path

   Fixed length strings are now supported. The data area for these variables
    is shared with the numeric data. See following note about the DIM and
    DEF/SUB command changes. Whenever data is assigned to a fixed length
    string, the new data is padded with spaces or truncated to fit within
    the declared size.
   Changes were made to various commands to allow variables to be declared
    as a type without having to use the standard Basic type identifiers.
    The DIM command has been changed as follows:
	
	DIM X AS INTEGER	 ' X is an integer variable
	DIM Y(1 to 10) as SINGLE ' Y is an array of 10 single precision #'s
	DIM S AS STRING 	 ' S is a variable length string
	DIM T AS STRING * 10	 ' T is a fixed length string of 10 characters

    The DEF/SUB declarations can now define the type of data being returned
    from the DEF and the type of parameters being passed. For example:

	DEF F(X AS INTEGER) AS SINGLE
		' Code goes here
	END DEF
	SUB S(A(1) AS STRING * 10)
		' Code goes here
	END SUB

    The F() function takes a single integer parameter and returns a single
    precision number. The S subprogram takes an array of 10 character fixed
    length strings.

   Several bugs were corrected in the debugger. If LOCAL, STATIC or SHARED
    variables were used in a SUB or DEF and the debugger option was selected,
    the compile would crash. The debugger also had problems with finding
    variables.


  January 23, 1991 Version 1.6
Editor changes:
   Bug was fixed when loading programs with long lines. The size of the
    longest line was increased from 180 to 255.
  
   Fixed editor help screen to reflect KBD changes made in last version.

   Fixed problem that caused lines to be highlighted while scrolling through
    the program.

   The Search and Search Again would not position the cursor correctly when
    they found text past column 80.

Compiler changes:
   The GOSUB command was enhanced to be more like GWBasic. Multiple labels
    can be specified by:

	GOSUB LABEL1, LABEL2,.., LABELn
  
   The ON ERROR GOTO statement now accepts a number as a line label.

   The RETURN statement would fail if used in the following IF statement:

	IF (expression) then RETURN else (statement)

    The ELSE would be signaled as an error.

   Bug in compiler would generate bad code for a unary operation. For example:
	M%=-25 : PRINT -M%
    This prints "24" instead of "25".

  February 26, 1991 Version 1.7
New Files:
   A new program was added to the system. STRIPHLP.BAS will create a APB.DOC
    file from the APB.HLP file. The file can be sent to the printer. A form
    feed is output after each statement or function.

Compiler changes:
   A bug was introduced in 1.5 that would build incorrect .EXE files.


