
  ----------------------------------------------------------------
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |         ================================================     |
  |         |                                              |     |
  |         |                                              |     |
  |         |     *****  CBASIC Compiler  (CB86)  *****    |     |
  |         |                                              |     |
  |         |             for the CP/M Family of           |     |
  |         |              of Operating Systems            |     |
  |         |                                              |     |
  |         |                ---------------               |     |
  |         |                                              |     |
  |         |               READ.ME File Notes             |     |
  |         |                                              |     |
  |         |                 - June 1983 -                |     |
  |         |                                              |     |
  |         |             Digital Research Inc.            |     |
  |         |                 P.O. Box 579                 |     |
  |         |           Pacific Grove, CA  93950           |     |
  |         |                                              |     |
  |         ================================================     |
  |                                                              |
  |                                                              |
  |                                                              |
  |       This file presents enhancements  and  modifications    |
  |       made to CBASIC Compiler  software and documentation.   |
  |       Changes  described  in  this  file  apply to CBASIC    |
  |       Compiler (CB86) Version 2.0  and supercede existing    |
  |       product documentation.                                 |
  |                                                              |
  |       You can print  the information in this file on your    |
  |       line  printer  using  8 by 11 inch  paper  with the    |
  |       printer set to 6 lines per inch.   You can trim the    |
  |       pages along the dotted  lines and place  the  pages    |
  |       in your product documentation binder.                  |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  ----------------------------------------------------------------















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes         June 1983 |
  |                                                              |
  |                                                              |
  |                                                              |
  |                         Table of Contents                    |
  |         ================================================     |
  |                                                              |
  |         Bug Fixes . . . . . . . . . . . . . . . . . .  1     |
  |         CHAIN Statement . . . . . . . . . . . . . . .  5     |
  |         DATE$ Function (NEW!) . . . . . . . . . . . .  6     |
  |         TIME$ Function (NEW!) . . . . . . . . . . . .  7     |
  |         Graphics Extension Error Messages (NEW!)  . .  8     |
  |                                                              |
  |         ================================================     |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                i.                            |
  |                                                              |
  ----------------------------------------------------------------















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes         Bug Fixes |
  |                                                              |
  |                                                              |
  |                                                              |
  |                        Bug Fixes for CB86                    |
  |         ===============================================      |
  |                                                              |
  |       * The listing file  would  be  empty if the %NOLIST    |
  |         directive appeared last in a %LIST / %NOLIST pair    |
  |         within the source code.                              |
  |                                                              |
  |       * The  system  did  not  issue  execution  error NS    |
  |         causing the system to hang if a program attempted    |
  |         to format output for an unassigned string variable   |
  |         when no string field existed in the format string.   |
  |                                                              |
  |       * The compiler  would issue error message 41 for an    |
  |         executable statement with a line number when that    |
  |         statement was preceded by a blank line  or remark    |
  |         that had a line number.                              |
  |                                                              |
  |       * Compiler  toggle O  did  not  work if used in the    |
  |         same command line with toggle I.                     |
  |                                                              |
  |       * The run-time system did not trap integer division    |
  |         by zero.                                             |
  |                                                              |
  |       * The ERRX function  returned  MP/M  extended error    |
  |         codes multiplied by 256.                             |
  |                                                              |
  |       * The trigonometric functions  have been  rewritten    |
  |         to resolve certain parameter remove inaccuracies.    |
  |                                                              |
  |       * Compiler error 101  occured  when  a  keyword was    |
  |         used as a formal  parameter  in  a  multiple-line    |
  |         function definition.                                 |
  |								 |
  |	  * The  compiler  issued   error  message  373  when    |
  |         compiling   source   code   that   contained   no    |
  |         executable statements.  (i.e., code that contains    |
  |         only  remark statements,  data declarations or an    |
  |         END statement.)					 |
  |								 |	
  |	  * The ATTACH and DETACH functions did not work.	 |
  |								 |
  |								 |
  |                             Page 1				 |
  |								 |
  ----------------------------------------------------------------

          














  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes         Bug Fixes |
  |                                                              |
  |                                                              |
  |                                                              |
  |       * The compiler did not do signed integer arithmetic    |
  |         correctly.  For example,   i% = -1 / 16000  would    |
  |         assign the value 4 to i%.                            |
  |                                                              |
  |	  * The first read  of  a  fixed  file,  designed  to	 |
  |	    position  the file pointer to  the desired record	 |
  |	    number, did not work in conjunction with the  GET	 |
  |	    function.						 |
  |								 |
  |       * The  system  did  not  close  INCLUDE files after    |
  |         reading.                                             |
  |                                                              |
  |       * INCLUDE files were not opened in  read-only mode.    |
  |                                                              |
  |       * DELETE and RENAME statements  did  not  trap MP/M    |
  |         extended errors.                                     |
  |                                                              |
  |       * If a program  attempted  to  open  a file with an    |
  |         improper filename, the system marked that file ID    |
  |         as  open.    Therefore,  if  execution  continued    |
  |         through an "ON ERROR" statement and a second open    |
  |         was attempted for that ID, the system issued a DF    |
  |         execution   error  message.     Similarly,  if  a    |
  |         program  attempted  to  open a file with a proper    |
  |         filename,  but  detected  an MP/M extended error,    |
  |         the buffer space was released but the file ID was    |
  |         not released.  Therefore, a close error  resulted    |
  |         at the end of the program or when chaining.  This    |
  |         problem also applied to the CREATE function.         |
  |                                                              |
  |       * The CREATE function did not trap extended errors.    |
  |                                                              |
  |       * Execution error TL  was  not detected for the TAB    |
  |         function.                                            |
  |                                                              |
  |       * Compiler  error  message  213  was issued for the    |
  |         following source lines:                              |
  |                        PRINT #1; T,OPEN                      |
  |                        PRINT #1; T,,                         |
  |                                                              |
  |                                                              |
  |                                                              |
  |                            Page 2                            |
  |                                                              |
  |______________________________________________________________|
















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes         Bug Fixes |
  |                                                              |
  |                                                              |
  |                                                              |
  |       * The  INITIALIZE  function  would return execution    |
  |         error message  EX  under MP/M II  upon failure of    |
  |         BDOS functions 13 or 37.    (disk system reset or    |
  |         drive reset).					 |
  |								 |
  |	  * A  code  generation  bug   caused  bad  code  for	 |
  |         statements  of  the  form:  I% = I% - J%   Random	 |
  |         memory locations were affected as a result.		 |
  |								 |
  |       * The   runtime   system   failed   under   certain	 |
  |         CP/M-86-like   operating  systems  that  returned	 |
  |         a  version  of  BDOS  function  12  that  was not	 |
  |         commensurate with CP/M-86 or MP/M-86.		 |	
  |								 |	
  |       * An  attempt  to  chain  to  a  .CMD   file  would	 |
  |         occasionally  fail with an operating system error	 |
  |         message  indicating  that  the  file could not be	 |
  |         found.						 |
  |								 |
  |       * CONCHAR% and INKEY% would hang the system polling	 |
  |         for a character and destroy portions of  MP/M-86.	 |
  |								 |
  |       * The LOCK and UNLOCK functions did not work.		 |
  |								 |
  |       * The run-time system  would yield a wild interrupt	 |
  |          for integer division-by-zero.			 |
  |								 |
  |       * A  constant  integer  expression  that included a	 |
  |         zero  denominator  caused  a  wild  interrupt  at	 |
  |         compile time.					 |
  |								 |
  |       * Attempts to open a file in  READONLY mode did not	 |
  |	    work.  Files were opened in locked mode instead.	 |
  |								 |
  |	  * If a  program  began with a label, a later branch	 |
  |	    to  that  label   caused   re-initialization   of	 |
  |         data-statement  data  and resetting of the column	 |
  |	    position to 1.					 |
  |								 |
  |								 |
  |								 |
  |								 |
  |                             Page 3				 |
  |								 |
  ----------------------------------------------------------------
          
          
          
          
          

          
          
          
          
          
          
          



  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes         Bug Fixes |
  |								 |
  |								 |	
  |								 |
  |       * Declared external names that were not referenced     |
  |         were placed in the  object file by the compiler.     |
  |         Therefore,  the  linker  would link modules from     |
  |         libraries that were  not  actually  required  at     |
  |         runtime.                                             |
  |								 |
  |       * With  the  P-toggle  in  effect under Concurrent     |
  |         CP/M-86,  the  compiler  did  not  first  try to     |
  |         attach the printer before attempting to  use it.     |
  |         The compiler now attaches the printer first, but     |
  |         if  it  is  not  available,   the   F-toggle  is     |
  |         activated automatically  and the listing is sent     |
  |	    to a file.						 |
  |								 |
  |       * The  ATTACH  and  DETACH statements did not work     |
  |         under Concurrent CP/M-86.			         |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |	
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |	
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |	
  |								 |
  |                            Page 4                            |
  |                                                              |
  ----------------------------------------------------------------















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes   CHAIN Statement |
  |								 |
  |								 |
  |								 |
  |                        CHAIN Statement                       |
  |         ===============================================      |
  |								 |
  |       The CHAIN  statement  loads  another  program  into    |
  |       memory and starts execution.                           |
  |								 |
  |								 |	
  |       Syntax:  CHAIN <filespec>                              |
  |								 |
  |								 |
  |       Explanation: The CHAIN statement can load two types    |
  |       of programs - an overlay program  generated  by the    |
  |       linker, or a  directly executable file.   CHAIN can    |
  |       load files generated by languages other than CBASIC.   |
  |       However,  before  you chain to an overlay file, the    |
  |       linker  must  create  that  overlay  and  the  root    |
  |       program at the same time.                              |
  |                                                              |
  |       The filespec can be a string expression, a variable,   |
  |       or a constant.  CB80 assumes a filetype of .OVL and    |
  |       CB86  assumes  a  filetype  of  .OVR  if you do not    |
  |       specify otherwise in the filespec.                     |
  |                                                              |
  |       When a program chains to a second program, all open    |
  |       files in  the  original  program are closed and all    |
  |       data   is   reinitialized   to  0.     Refer to the    |
  |       Programming Guide for more information  on chaining    |
  |       modules and programs.                                  |
  |                                                              |
  |                                                              |
  |       Examples:  CHAIN "B:AVERAGES"                          |
  |                                                              |
  |                  CHAIN NEW.PROG$                             |
  |                                                              |
  |                  TOTALS$ = "ACCOUNTS.OVL"                    |
  |                                                              |
  |                  CHAIN CDRIVE$ + TOTAL$                      |
  |								 |
  |								 |
  |								 |
  |								 |
  |								 |
  |                            Page 5                            |
  |                                                              |
  ----------------------------------------------------------------

















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes    DATE$ Function |
  |                                                              |
  |                                                              |
  |                                                              |
  |                      DATE$ Function (NEW!)                   |
  |         ===============================================      |
  |                                                              |
  |       The DATE$ function returns a string indicating the     |
  |       current year,  month,  and  day  set  through  the     |
  |       operating system.                                      |
  |                                                              |
  |                                                              |
  |       Syntax:  a$ = DATE$                                    |
  |                                                              |
  |                                                              |
  |       Explanation:  DATE$ returns a six character string     |
  |       in the form YYMMDD.   YY is the last two digits of     |
  |       a year reference, such as 84 for 1984.   MM is one     |
  |       of  twelve  digit  combinations  representing  the     |
  |       month  such as 02 for February or 11 for November.     |
  |       DD  is  one  of   thirty-one   digit  combinations     |
  |       representing the day of the month. The string that     |
  |       DATE$ returns is undefined if the operating system     |
  |       is set to a date later than  December 31, 1999  or     |
  |       earlier than January 1, 1978.                          |
  |                                                              |
  |       If your operating system does not support time and     |
  |       date functions,  the CBASIC DATE$ function returns     |
  |       a string consisting of six blanks.   Refer to your     |
  |       operating system manuals to see if  your operating     |
  |       system supports time and date functions.               |
  |                                                              |
  |                                                              |
  |       Example:  CURRDATE$ = DATE$                            |
  |                 PRINT "Today's date is: "; CURRDATE$         |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                            Page 6                            |
  |                                                              |
  ----------------------------------------------------------------
















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes    TIME$ Function |
  |                                                              |
  |                                                              |
  |                                                              |
  |                      TIME$ Function (NEW!)                   |
  |         ================================================     |
  |                                                              |
  |       The TIME$ function returns a string  indicating the    |
  |       current time of day.                                   |
  |                                                              |
  |                                                              |
  |       Syntax:  a$ = TIME$                                    |
  |                                                              |
  |                                                              |
  |       Explanation:  TIME$ returns  a six character string    |
  |       of  the  form  HHMMSS.   HH  is  one  of  24  digit    |
  |       combinations  representing the hour, such as 06 for    |
  |       6:00 AM  or  15  for  3:00 PM.   MM is one of sixty    |
  |       digit combinations representing the minute.   SS is    |
  |       one  of  sixty  digit combinations representing the    |
  |       second.                                                |
  |                                                              |
  |       If your operating system does not support  time and    |
  |       date functions, the CBASIC TIME$ function returns a    |
  |       string consisting  of  six  blanks.   Refer to your    |
  |       operating system manuals  to  see if your operating    |
  |       system supports time and date functions.               |
  |                                                              |
  |                                                              |
  |       Example:  CURRTIME$ = TIME$                            |
  |                 PRINT "The current time is: "; CURRTIME$     |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                             Page 7                           |
  |                                                              |
  ----------------------------------------------------------------
















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes   Graphics Errors |
  |                                                              |
  |                                                              |
  |                                                              |
  |             Graphics Extension Error Messages (NEW!)         |
  |         ================================================     |
  |                                                              |
  |       The following error messages indicate compilation      |
  |       errors  that  can  occur  during compilation of a      |
  |       graphics  statement  in  a program.   Compilation      |
  |       continues after the error is recorded.                 |
  |                                                              |
  |       Error  numbers  180  through  240  inclusive  are      |
  |       reserved for use with the CBASIC Compiler              |
  |       graphics extention.                                    |
  |                                                              |
  |                                                              |
  |       Error   Meaning                                        |
  |                                                              |
  |       180     A  left parenthesis is missing.    A  left     |
  |               parenthesis is inserted.                       |
  |                                                              |
  |       181     A right parenthesis is missing.   A  right     |
  |               parenthesis  is inserted.                      |
  |                                                              |
  |       182     A comma is  missing  in a  PLOT statement.     |
  |               A  comma  is inserted.                         |
  |                                                              |
  |       183     The keyword  STYLE is missing in a  SET or     |
  |               ASK  statement.  STYLE is inserted.            |
  |                                                              |
  |       184     A comma is missing  in a SET statement.  A     |
  |               comma is inserted.                             |
  |                                                              |
  |       185     The keyword HEIGHT is missing in a  SET or     |
  |               ASK  CHARACTER  statement.      HEIGHT  is     |
  |               inserted.                                      |
  |                                                              |
  |       186     The keyword ANGLE is  missing in a  SET or     |
  |               ASK TEXT statement.    ANGLE  is inserted.     |
  |                                                              |
  |       187     A comma is missing in a SET or  ASK WINDOW     |
  |               statement. A comma is inserted.                |
  |                                                              |
  |                                                              |
  |                                                              |
  |                             Page 8                           |
  |                                                              |
  ----------------------------------------------------------------

















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes   Graphics Errors |
  |                                                              |
  |                                                              |
  |                                                              |
  |       188     A  comma  is  missing  in  a  SET  or  ASK     |
  |               VIEWPORT statement.   A comma is inserted.     |
  |                                                              |
  |       189     The  keyword  PAGE  is  missing  in a  SET     |
  |               statement.   PAGE  is inserted.                |
  |                                                              |
  |       190     Not used.					 |
  |                                                              |
  |       191     The keyword  COUNT  is  missing  in a  ASK     |
  |               STYLE statement.   COUNT is inserted.          |
  |                                                              |
  |       192     A  comma  is missing in an  ASK statement.     |
  |               A comma  is inserted.                          |
  |                                                              |
  |       193     Not used.                                      |
  |                                                              |
  |       194     Not used.                                      |
  |                                                              |
  |       195     The  keyword  COUNT is  missing in  a  SET     |
  |               COLOR  statement.   COLOR is inserted.         |
  |                                                              |
  |       196     Not used.                                      |
  |                                                              |
  |       197     Not used.                                      |
  |                                                              |
  |       198     Not used.                                      |
  |                                                              |
  |       199     Not used.					 |
  |                                                              |
  |       200     Not used.					 |
  |                                                              |
  |       201     Not used.					 |
  |                                                              |
  |       202  	  Not used.					 |
  |								 |
  |                                                              |
  |                                                              |
  |                                                              |
  |								 |
  |                                                              |
  |                                                              |
  |                                                              |
  |                             Page 9                           |
  |                                                              |
  ----------------------------------------------------------------















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes   Graphics Errors |
  |								 |
  |								 |	
  |								 |
  |       203  A  comma  is missing in an GRAPHIC statement.     |
  |            A comma is inserted.                              |
  |								 |
  |       204  The keyword following GRAPHIC is  unexpected.     |
  |            INPUT is inserted.                                |
  |								 |
  |       205  A left parenthesis  is  missing  in a GRAPHIC     |
  |            statement.  A left parenthesis is inserted.       |
  |								 |
  |       206  A right parenthesis is missing  in a  GRAPHIC     |
  |            statement.  A right parenthesis is inserted.      |
  |								 |
  |       207  A  colon  is missing in a GRAPHIC  statement.     |
  |            A colon is inserted.                              |
  |								 |
  |       208  The variable in an  ASK  statement is of type     |
  |            real  or  string.    An  integer  variable is     |
  |            required.                                         |
  |								 |
  |       209  The  variable  in an ASK statement is of type     |
  |            integer  or  string.    A  real  variable  is     |
  |            required.                                         |
  |								 |
  |       210  The variable in an  ASK  statement is of type     |
  |            integer  or  real.    A  string  variable  is     |
  |            required.                                         |
  |								 |
  |       211  Not used.					 |
  |								 |
  |       212  Not used.					 |
  |								 |
  |       213  Not used.                                         |
  |								 |
  |       214  Not used.                                         |
  |								 |
  |       215  Not used.                                         |
  |                                                              |
  |								 |
  |								 |
  |								 |	
  |								 |
  |								 |
  |                             Page 10				 |
  |								 |
  ----------------------------------------------------------------


















  ----------------------------------------------------------------
  |  CBASIC Compiler (CB86) READ.ME File Notes   Graphics Errors |
  |                                                              |
  |                                                              |
  |                                                              |
  |       216  A  comma  is missing  in a GRAPHIC statement.     |
  |            A comma is inserted.                              |
  |                                                              |
  |       217  The  variable  in a MAT statement is  of type     |
  |            integer  or  string.    A  real  variable  is     |
  |            required.                                         |
  |                                                              |
  |       218  Not used.                                         |
  |                                                              |
  |       219  Not used.                                         |
  |                                                              |
  |       220  Not used.                                         |
  |                                                              |
  |       221  The  keyword  following  MAT  is   unexpected.    |
  |            FILL is inserted.                                 |
  |                                                              |
  |       222  A colon is missing in a MAT statement. A colon    |
  |            is inserted.                                      |
  |                                                              |
  |       223  An identifier is missing in  a  MAT  statement.   |
  |            An identifier is inserted.                        |
  |                                                              |
  |       224  A comma is  missing  in  a  MAT  statement.  A    |
  |            comma is inserted.                                |
  |                                                              |
  |                                                              |
  |                                                              |
  |                                                              |
  |                             VVVVVVV                          |
  |                              VVVVV                           |
  |                               VVV                            |
  |                               VVV                            |
  |                               VVV                            |
  |                              VVVVV                           |
  |                               VVV                            |
  |                                V                             |
  |                                                              |
  |                       END OF READ.ME FILE                    |
  |                                                              |
  |								 |	
  |								 |
  |								 |
  |                             Page 11				 |
  |								 |
  ----------------------------------------------------------------
