home *** CD-ROM | disk | FTP | other *** search
/ Programming Tool Box / SIMS_2.iso / libbasic / readme.txt < prev    next >
Text File  |  1994-04-18  |  11KB  |  328 lines

  1. Liberty BASIC 1.1 Beta release
  2.  
  3. Please support shareware!
  4.  
  5. --------------------------------------------------------------------------
  6.  
  7. New with version 1.1!
  8.  
  9. The most exciting feature is the addition of a redesigned *.TKN format file,
  10. giving Liberty BASIC 'Compile on Demand' capability.  When you run a *.TKN
  11. program, it starts right up, even if it is very large.  More importantly,
  12. when you register Liberty BASIC, you will receive a copy of the runtime
  13. engine, letting you distribute your programs royalty-free!
  14.  
  15. New OS/2 beta version available!
  16. Look for LB05.ZIP on your local BBS.  This OS/2 port of Liberty BASIC is
  17. designed to provide portability from the Windows version!  Or send us
  18. $5, and we'll send you a copy!
  19.  
  20. To our knowledge, Liberty BASIC is now the only shareware cross-platform
  21. programming tool for Windows and OS/2!!!
  22.  
  23. ---------------------------------------------------------------------
  24.  
  25. NOTES:
  26.  
  27. The first twenty-four items listed here represent the difference between
  28. release 1.0 and 1.0a of Liberty BASIC:
  29.  
  30. 12/30/92
  31.  
  32. ** item 1) has been removed because it caused incompatibility with
  33.    other BASICs ***
  34. 1) Random file PUTs are forced to disk (later a more intelligent
  35. and efficient scheme will be added ;
  36.  
  37.  
  38. 2) Variable names can now start with reserved words.  For example,
  39. the variable name 'tools' would not have been permitted before
  40. because it starts with 'to', which is a reserved word ;
  41.  
  42.     (for x = 1 TO 10)
  43.                ^--- reserved word
  44.  
  45.  
  46. 3) Trapclose is now effective for the window and dialog window
  47. types ;
  48.  
  49.  
  50. 4) Now individual texteditor panes can be added to windows of type
  51. graphics, window, and dialog.  These panes can accept the same
  52. commands as windows of type text, and any number can be added to
  53. a single window.  For examples, see the included programs.
  54.  
  55. 01/06/92
  56.  
  57. 5) Added the LOF(#handle) function, which returns the length of the file
  58. referenced by #handle.
  59.  
  60. 6) Fixed a bug in the  !origin row column  command for windows of type
  61. text, and for the texteditor panes.  Unfortunately use of !origin would
  62. sometimes cause a stack overflow, causing the entire Windows
  63. session to abruptly terminate, requiring a reboot to proceed safely.
  64.  
  65.  
  66. 01/14/92
  67.  
  68. 7) Corrected a problem that caused the last line of text printed to
  69. text panes to not be displayed.  This is for windows opened as type
  70. text (the various types), and for text panes added to windows using
  71. the texteditor command.
  72.  
  73. 8) Added the checkbox command, which lets one add checkboxes to
  74. Liberty BASIC windows of type: window, graphics, dialog.  The syntax
  75. is like this:
  76.  
  77.     checkbox #handle.ext, "label", [branchOn], [branchOff], 
  78.                 xOrigin, yOrigin, width, height
  79.  
  80.     [branchOn] is executed if the box is checked on
  81.     [branchOff] is executed if the box is checked off
  82.  
  83. Currently there is no way to set or reset the checkbox from program
  84. control.
  85.  
  86.  
  87. 1-22-93
  88.  
  89. 9) The TextBox object has been modified so that it can contain more
  90. than one line of text.  Simply specifying a vertical size large enough
  91. to accomodate the desired number of lines is all that is required to
  92. do so.
  93.  
  94. 10) Sometimes if a program terminates with a runtime error, there is
  95. no way to close the window(s) for that program.  A new system menu
  96. option has been added to force the termination of all open BASIC
  97. programs, even if they stubbornly refuse to close using the
  98. normal means.  Simply pull down the system menu and select 'Kill
  99. BASIC Apps...'.  This will usually take 10 or so seconds (16 MHz 386sx).
  100.  
  101.  
  102. 2-3-93
  103.  
  104. 11) Modified the select command for Listbox so that it will be able
  105. to select items that have spaces in them, either leading spaces,
  106. internally embedded spaces, or trailing spaces.  The same was done
  107. for Combobox.
  108.  
  109. 12) Added the selectionindex? command for Listbox and Combobox so that
  110. the numerical index of the current selection can be determined.
  111.  
  112.   Format is:
  113.       print #handle.ext, "selectionindex?"
  114.       input #handle.ext, i
  115.  
  116.   where the index (0 if no selection) is placed in i.
  117.  
  118.  
  119. 2-4-93
  120.  
  121. 13) Font selection is now cached.  When a font/size is first selected,
  122. it will take time to sift through and find a good match.  The second
  123. time that font/size is selected, the font will be returned almost
  124. instantly.
  125.  
  126. 14) Now the font command works with listboxes, not just texteditors.
  127.  
  128. 15) Now when the font command is used with the texteditor/textbox/listbox
  129. objects, fonts with spaces in their names can be selected.  Previously
  130. only those fonts with only one word in their name were selectable.
  131.  
  132.  
  133. 2-5-93
  134.  
  135. 16) The TRIM$() function did not work at all.  Now it does.
  136.  
  137. 17) The SORT command has been added.  This command sorts both double
  138. and single dimensioned arrays.  Arrays can be sorted in part or in whole,
  139. and with double dimensioned arrays, the specific column to sort by
  140. can be declared.  When this option is used, all the rows are sorted
  141. against each other according to the items in the specified column.
  142.  
  143.   Here is the syntax for the sort command:
  144.  
  145.     sort arrayName(, i, j {,n}
  146.  
  147.   This sorts the array named arrayName( starting with element i,
  148.   and ending with element j.  If it is a double dimensioned array
  149.   then the column parameter tells which nth element to use as a
  150.   sort key.  Each WHOLE row moves with its corresponding key as
  151.   it moves during the sort.  So let's say you have a double
  152.   dimensioned array holding sales rep activity:
  153.  
  154.     repActivity(x, y)
  155.  
  156.   So you're holding data, one record per x position, and your
  157.   record keys are in y.  So for example:
  158.  
  159.     repActivity(1,1) = "Tom Maloney" : repActivity(1,2) = "01-09-93"
  160.     repActivity(2,1) = "Mary Burns" : repActivity(2,2) = "01-10-93"
  161.      .
  162.      .
  163.      .
  164.     repActivity(100,1) = "Tom Maloney" : repActivity(100,2) = "01-08-93"
  165.  
  166.   So you want to sort the whole 100 items by the date field.  This is
  167.   how the command would look:
  168.  
  169.     sort repActivity(, 1, 100, 2
  170.  
  171.   If you wanted to sort by name instead, then change the 2 to a 1, like
  172.   this:
  173.  
  174.     sort repActivity(, 1, 100, 1
  175.  
  176. 18) The 'Watch Variables?' messageBox no longer appears when running the
  177. debugger.  It is now assumed that you want to watch variables.
  178. This saves time.
  179.  
  180. 19) The NOMAINWIN command is now effective when debugging programs.  This
  181. saves you from needing to close the main program window every time when
  182. debugging.
  183.  
  184. 20) Now there are three commands that can be sent to checkboxes:
  185.  
  186.   print #handle.ext, "set"
  187.  
  188.     This sets the checkbox.
  189.  
  190.   print #handle.ext, "reset"
  191.  
  192.     This clears the checkbox.
  193.  
  194.   print #handle.ext, "value?"
  195.   input #handle.ext, r$
  196.  
  197.     This returns either "SET" or "RESET" into r$, depending on
  198.     the state of the checkbox.
  199.  
  200. 2-12-93
  201.  
  202. 21) The 1) item has been removed.  Random file record PUTs are now
  203. NOT forced every time to disk.
  204.  
  205. 2-24-93
  206.  
  207. 22) Bug fix - When there was no THEN or GOTO in an IF...THEN
  208. statement, the compiler crashed.  Problem corrected.
  209.  
  210. 2-28-93
  211.  
  212. 23) WHILE and WEND are now more GWBASIC compatible.  They will not
  213. execute a loop even once if the condition of the WHILE expression
  214. evaluates to false.
  215.  
  216. 24) The File and Files menus have been merged, and redundant items
  217. have been removed.
  218.  
  219.  
  220. Changes constituting release 1.1 beta
  221. --------------------------------------------------------------
  222.  
  223. 25) A Setup menu has been added.  Font selection is part of the
  224. setup, and now there is an option to save the selected font as the
  225. default font.
  226.  
  227. 26) The LPRINT command now works, but still needs some work.
  228.  
  229. 27) The DUMP command has been added.  This completes the LPRINT
  230. fix by permitting a Liberty BASIC program to force dump everything
  231. to the printer at will.
  232.  
  233. 28) Added the LOADBMP and DRAWBMP commands so that any *.bmp file
  234. can be loaded and drawn in a graphics window either at x,y or
  235. centered on x,y.  Look at the included TTT.BAS and related *.BMP files.
  236.  
  237. 29) Eliminated the dreaded "Sharing Violation" bug that appeared when
  238. trying to run *.TKN files.  Now you can load SHARE.EXE and still use
  239. Liberty BASIC.
  240.  
  241. 30) Corrected a limitation in the input$() function that prevented
  242. the use of anything but a numeric literal as the second parameter.
  243. When an arithmetic expression was used before, it would not produce
  244. an error, but it would just act unpredictably.
  245.  
  246. 31) Added the command singleClickSelect to the listbox control.
  247. Example:   print #window.listbox, "singleclickselect"
  248. This tells the listbox to branch on a single-click, instead of a
  249. double-click, if so desired.
  250.  
  251. 32) Added the option to use an extension with the statictext command.
  252. When this option is chosen, a BASIC program can print to the control
  253. to change its text contents.  It can also perform an input to get its
  254. contents.  Example:
  255.  
  256.     'paste this code into Liberty BASIC and try it!
  257.     statictext #win.status, "help on", 10, 10, 100, 20
  258.     button #win, "Put", [put], UL, 10, 40
  259.     button #win, "Get", [get], UL, 10, 40
  260.     open "Application" for dialog as #win
  261. [inputLoop]
  262.     input r$
  263. [put]
  264.     prompt "Please type something"; text$
  265.     print #win.status, text$
  266.     goto [inputLoop]
  267. [get]
  268.     input #win.status, text$
  269.     notice text$
  270.     goto [inputLoop]
  271.  
  272. 33) The browser/editor now automatically selects the current default
  273.    drive and directory when Liberty BASIC loads.
  274.  
  275. 34) The File and Files menus are now integrated into one File menu, and
  276.    duplicate items are eliminated.
  277.  
  278. 35) Variable names can now start with reserved words.
  279.  
  280. 36) Boolean AND & OR are more GWBASIC compatible, but bitwise operations
  281.    are still not supported.
  282.  
  283. 37) The PgUp and PgDn keys now work when viewing Help files.  Previously
  284.    it was necessary to operate the scroll bars using the mouse.
  285.  
  286. 38) The WHILE...WEND commands are now GWBASIC compatible.
  287.  
  288. 39) The trim$() function now works.  It didn't before.
  289.  
  290. 40) A zoom text option has been added to the Source menu.
  291.  
  292. 41) Improved the font selection capability to include TrueType fonts.  When 
  293. naming a font with more than one word in its name replace the spaces with
  294. the underscore character.  For example:
  295.  
  296.     print #main.text, "font Ms_Sans_Serif 5 13"
  297.  
  298. 42) Because we now have an OS/2 native version of Liberty BASIC, the
  299. variables Platform$ and Version$ have been added.  They contain the
  300. name of the platform (either "OS/2" or "Windows") and the version #
  301. so that when differences between the versions become a problem, you
  302. can test to see which platform and version you're running, and write
  303. case specific code, letting you write one source for both platforms.
  304.  
  305. 43) Radiobutton support has been added.  Syntax is identical to
  306. checkbox support.  Grouppanes are not supported yet, so all radio-
  307. buttons in a window are linked.
  308.  
  309. 44) RULE XOR | OVER is added to graphics windows.  This lets you
  310. draw, and simply redraw to erase (using xor).  RULE OVER is the
  311. default, and it simply draws over whatever is there already.  See
  312. the DRAW.BAS program included. 
  313.  
  314. 45) A fix was added concerning a bug in Cursor management, which
  315. often caused GPFs when loading on some systems.
  316.  
  317. That's all for now!
  318.  
  319.  
  320. Shoptalk Systems
  321. PO BOX 1062
  322. Framingham, MA  01701
  323.  
  324. 508-872-5315
  325. Carl Gundel   CIS 71231,1532
  326.  
  327.  
  328.