ChipMaster's bwBASIC This also includes history going back to v2.10. *WARN* some binary files might have been corrupted by CRLF.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README 8.5 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. README file for
  2. Bywater BASIC Interpreter/Shell, version 2.50
  3. ---------------------------------------------
  4. Copyright (c) 1993, Ted A. Campbell
  5. for bwBASIC version 2.10, 11 October 1993
  6. Version 2.20 modifications by Jon B. Volkoff,
  7. 25 November 1995
  8. Patch level 1 release by Jon B. Volkoff,
  9. 15 March 1996
  10. Patch level 2 release by Jon B. Volkoff,
  11. 11 October 1997
  12. Version 2.30 modifications by Paul Edwards,
  13. 5 March 2008
  14. Version 2.40 modifications by Paul Edwards,
  15. 26 Jan 2009
  16. Version 2.50 modifications by Paul Edwards,
  17. 4 June 2009
  18. DESCRIPTION:
  19. The Bywater BASIC Interpreter (bwBASIC) implements a large
  20. superset of the ANSI Standard for Minimal BASIC (X3.60-1978)
  21. and a significant subset of the ANSI Standard for Full BASIC
  22. (X3.113-1987) in C. It also offers shell programming facilities
  23. as an extension of BASIC. bwBASIC seeks to be as portable
  24. as possible.
  25. This version of Bywater BASIC is released under the terms of the
  26. GNU General Public License (GPL), which is distributed with this
  27. software in the file "COPYING". The GPL specifies the terms
  28. under which users may copy and use the software in this distribution.
  29. A separate license is available for commercial distribution,
  30. for information on which you should contact the author.
  31. OBTAINING THE SOURCE CODE:
  32. The source code for bwBASIC is available from
  33. http://bwbasic.sourceforge.net
  34. COMMUNICATIONS:
  35. email: tcamp@delphi.com (for Ted Campbell)
  36. eidetics@cerf.net (for Jon Volkoff)
  37. fight.subjugation@gmail.com (for Paul Edwards)
  38. A LIST OF BASIC COMMANDS AND FUNCTIONS IMPLEMENTED in bwBASIC:
  39. Be aware that many of these commands and functions will not be
  40. available unless you have set certain flags in the header files.
  41. ABS( number )
  42. ASC( string$ )
  43. ATN( number )
  44. CALL subroutine-name
  45. CASE constant | IF partial-expression | ELSE
  46. CHAIN file-name
  47. CHDIR pathname
  48. CHR$( number )
  49. CINT( number )
  50. CLEAR
  51. CLOSE [[#]file-number]...
  52. CLS
  53. COMMON variable [, variable...]
  54. COS( number )
  55. CSNG( number )
  56. CVD( string$ )
  57. CVI( string$ )
  58. CVS( string$ )
  59. DATA constant[,constant]...
  60. DATE$
  61. DEF FNname(arg...)] = expression
  62. DEFDBL letter[-letter](, letter[-letter])...
  63. DEFINT letter[-letter](, letter[-letter])...
  64. DEFSNG letter[-letter](, letter[-letter])...
  65. DEFSTR letter[-letter](, letter[-letter])...
  66. DELETE line[-line]
  67. DIM variable(elements...)[variable(elements...)]...
  68. DO NUM|UNNUM
  69. DO [WHILE expression]
  70. EDIT (* depends on variable BWB.EDITOR$)
  71. ELSE
  72. ELSEIF
  73. END FUNCTION | IF | SELECT | SUB
  74. ENVIRON variable-string$ = string$
  75. ENVIRON$( variable-string )
  76. EOF( device-number )
  77. ERASE variable[, variable]...
  78. ERL
  79. ERR
  80. ERROR number
  81. EXIT FOR|DO
  82. EXP( number )
  83. FIELD [#] device-number, number AS string-variable [, number AS string-variable...]
  84. FILES filespec$ (* depends on variable BWB.FILES$)
  85. FOR counter = start TO finish [STEP increment]
  86. FUNCTION function-definition
  87. GET [#] device-number [, record-number]
  88. GOSUB line | label
  89. GOTO line | label
  90. HEX$( number )
  91. IF expression THEN [statement [ELSE statement]]
  92. INKEY$
  93. INPUT [# device-number]|[;]["prompt string";]list of variables
  94. INSTR( [start-position,] string-searched$, string-pattern$ )
  95. INT( number )
  96. KILL file-name
  97. LEFT$( string$, number-of-spaces )
  98. LEN( string$ )
  99. LET variable = expression
  100. LINE INPUT [[#] device-number,]["prompt string";] string-variable$
  101. LIST line[-line]
  102. LOAD file-name
  103. LOC( device-number )
  104. LOCATE
  105. LOF( device-number )
  106. LOG( number )
  107. LOOP [UNTIL expression]
  108. LSET string-variable$ = expression
  109. MERGE file-name
  110. MID$( string$, start-position-in-string[, number-of-spaces ] )
  111. MKD$( number )
  112. MKDIR pathname
  113. MKI$( number )
  114. MKS$( number )
  115. NAME old-file-name AS new-file-name
  116. NEW
  117. NEXT counter
  118. OCT$( number )
  119. ON variable GOTO|GOSUB line[,line,line,...]
  120. ON ERROR GOSUB line | label
  121. OPEN O|I|R, [#]device-number, file-name [,record length]
  122. file-name FOR INPUT|OUTPUT|APPEND AS [#]device-number [LEN = record-length]
  123. OPTION BASE number
  124. POS
  125. PRINT [# device-number,][USING format-string$;] expressions...
  126. PUT [#] device-number [, record-number]
  127. RANDOMIZE number
  128. READ variable[, variable]...
  129. REM string
  130. RENUM
  131. RESTORE line
  132. RETURN
  133. RIGHT$( string$, number-of-spaces )
  134. RMDIR pathname
  135. RND( number )
  136. RSET string-variable$ = expression
  137. RUN [line]|[file-name]
  138. SAVE file-name
  139. SELECT CASE expression
  140. SGN( number )
  141. SIN( number )
  142. SPACE$( number )
  143. SPC( number )
  144. SQR( number )
  145. STOP
  146. STR$( number )
  147. STRING$( number, ascii-value|string$ )
  148. SUB subroutine-name
  149. SWAP variable, variable
  150. SYSTEM
  151. TAB( number )
  152. TAN( number )
  153. TIME$
  154. TIMER
  155. TROFF
  156. TRON
  157. VAL( string$ )
  158. WEND
  159. WHILE expression
  160. WIDTH [# device-number,] number
  161. WRITE [# device-number,] element [, element ]....
  162. CHANGE HISTORY
  163. CHANGES FROM 2.40 to 2.50
  164. * Bug fixes
  165. * New compilation procedure for MVS and CMS
  166. CHANGES FROM 2.30 to 2.40
  167. * Bug fixes from Bill Chatfield
  168. * Updated documentation
  169. * Added support for compiling on CMS (another IBM mainframe OS)
  170. CHANGES FROM 2.20pl2 to 2.30
  171. * Minor bug fixes, cosmetic improvements and portability improvements
  172. * Added support for compiling on MVS (IBM mainframe)
  173. CHANGES FROM 2.20pl1 to 2.20pl2
  174. bwb_cmd.c
  175. Fixed calling stack level logic in RETURN statement to prevent erroneous
  176. "RETURN without GOSUB" messages.
  177. bwb_cnd.c
  178. bwb_stc.c
  179. Changed continuation condition for WHILE, ELSEIF, and LOOP UNTIL
  180. to be != FALSE, not == TRUE. More in line with common commercial
  181. BASIC implementations.
  182. bwb_mth.c
  183. Fixed initialization in VAL function so that old results are not later
  184. returned as values.
  185. bwb_var.c
  186. Added parenthesis level checking to dim_getparams. Using multi-level
  187. expressions as array subscripts was causing the program to bomb.
  188. bwx_iqc.c
  189. bwx_tty.c
  190. bwb_mes.h
  191. Added second copyright notice.
  192. bwb_dio.c
  193. bwb_str.c
  194. Added support for strings longer than 255 characters.
  195. bwb_prn.c
  196. Disabled tab expansion and print width checks when not printing to a file.
  197. bwb_inp.c
  198. Fixed LINE INPUT file reads to accommodate strings of length MAXSTRINGSIZE.
  199. bwx_ncu.h
  200. bwx_ncu.c
  201. New files. Code for UNIX ncurses interface, compliments of L.C. Benschop,
  202. Eindhoven, The Netherlands.
  203. Makefile.ncu
  204. New files. Sample makefile for ncurses implementation.
  205. bwbasic.h
  206. Revised defines for MININTSIZE and MAXINTSIZE from 16-bit to 32-bit limits.
  207. Revised define for MAXSTRINGSIZE from 255 to 5000 characters.
  208. Changed string length from unsigned char to unsigned int to support strings
  209. longer than 255 characters.
  210. Added support for new ncurses package.
  211. Revised VERSION define to reflect above changes.
  212. CHANGES FROM 2.20 to 2.20pl1
  213. bwb_cnd.c
  214. Moved init routine for bwb_while so that it would be initialized regardless
  215. of expression value, not just if TRUE. This was causing some segmentation
  216. faults in WHILE-WEND loops.
  217. bwb_elx.c
  218. Plugged gaping memory leak. Temp variable space for expression evaluation
  219. was being allocated but not freed when done (oops!).
  220. bwb_fnc.c
  221. Added check for NULL return from getenv to prevent segmentation faults.
  222. bwbasic.h
  223. Revised VERSION define to reflect above changes.
  224. CHANGES FROM 2.10 to 2.20:
  225. * Plugged numerous memory leaks, resolved memory overruns and allocation
  226. difficulties.
  227. * General cleanup and bug fixes, too many to list in detail here.
  228. The major problem areas addressed were:
  229. - RUN command with file name argument
  230. - nested and cascaded FOR-NEXT loops
  231. - PRINT USING
  232. - EOF, LOF functions
  233. - string concatenation
  234. - operator hierarchy
  235. - multi-level expression evaluation
  236. - hex constant interpretation
  237. - hex and octal constants in INPUT and DATA statements
  238. * Added a CLOSE all files feature (when no argument supplied).
  239. * Added a unary minus sign operator.
  240. * Added a MID$ command to complement the MID$ function.
  241. * Added a RENUM facility in a standalone program.
  242. * Added checking in configure for unistd.h (important on Sun systems).