techBASIC 2.3 Release Notes

New Features

  1. Write programs to access Bluetooth LE devices. Program the Internet of Things right from your iOS device!

  2. techBASIC now supports both vector and pixel graphics drawing modes. Use vector graphics when the image will be scaled or shared, and pixel graphics when drawing repeatedly to the graphics screen.

  3. Drawing commands are now available in the Image class. Draw on top of existing images, or create images entirely from scratch, then use them for buttons or to blit to the screen.

  4. Turn antialiasing on or off.

  5. Draw images to the graphics screen using the new drawImage command.

  6. setColor now has an optional alpha value, allowing drawing with translucent colors.

  7. New trig functions include ACOS, ANGLE (two-argument arc tangent), ASIN, COSH, COT, CSC, SEC, SINH and TANH--everything you'll find in most trig classes is now in techBASIC.

  8. New trig helper functions include PI, DEG and RAD.

  9. Logarithms are available for base 10 and base 2.

  10. The MOD operator returns the integer remainder from a division.

  11. PRINT and PRINT USING can now print to strings, making it easy to take advantage of the formatting power of PRINT USING.

  12. The POS string search function allows fast searches within BASIC strings.

  13. The new LTRIM and RTRIM functions make it easy to remove leading and trailing spaces from strings.

Bug Fixes and Minor Changes

  1. Help is now indexed, so you can find help in the long list of functions, statements, classes and methods quicker.

  2. It's now possible to edit at an error location without moving the cursor from outside the error: Tap on the selected error area, and the error disappears and you begin editing at the tap location. As before, tapping on an error other than the one with a visible message displays the error message for that error.

  3. Sharing text with the Share button no longer leaves techBASIC. The email message that is generated still uses Mail for distribution but this is done from within techBASIC.

  4. MOD is now a reserved word. POS is no longer a reserved word.

  5. The SIZE and LBOUND functions failed on passed parameters. They work correctly, now.

  6. could fail to find an answer in some situations. Adjusting the search range returned a valid result. It works correctly in these situations, now.

  7. Disabled and hidden controls still reported touchUpInside events. This no longer happens.

  8. When sharing source code using the Share button, leading spaces are now properly preserved.

  9. Corrected the parameter name for the URL parameter in the documentation for the finishedLoad event.

Byte Works Support


Download the latest documentation for techBASIC on our documentation page, or for the Calculator on our Calculator page. You’ll find the reference manual and quick start guides, all in PDF format so you can print them as needed or move them to iBooks on your iPhone and iPad.

There are dozens of complete programs that illustrate key concepts and commands in techBASIC that are only found in the manual, so don’t skip the reference manual, even if you’re normally the type that doesn’t read them!

Visit Documentation Page

Visit Calculator Page

Apps for people who think.™


See our blogs for a rapidly expanding list of projects, like detailed instructions on how to connect HiJack to an iPhone to use external sensors, a tutorial on creating apps with controls, or to read about our experiences attaching an iPhone to a stunt kite to measure acceleration and rotation.

We also accept guest articles. Get in touch you’d like to share your techBASIC programs or experiences, either by publishing them on our blog page or by getting links from our site to yours.

Visit Blog Page


Like us on Facebook or just visit the page for the latest news and a place to share questions, comments and code.

Visit Facebook Page

techBASIC 2.1 Release Notes

New Features

  1. The LCASE and UCASE functions make it easier to convert strings to uppercase or lowercase.

Bug Fixes and Minor Changes

  1. Several interrelated issues were found with the debugger and source editor. These generally occurred upon leaving techBASIC and returning to it, especially if a program was being debugged at the time. Symptoms included vanishing line indicators in the debugger, hangs, crashes, and source changes being lost. All known issues have been corrected in 2.1.

  2. On the iPad in portrait view, swiping showed the program list, interfering with using plots and controls. Swipes no longer show or hide the program list.

  3. On page 70 of the manual, the toUpper sample uses a + to concatenate strings. This is incorrect; the & operation is used to concatenate strings.

  4. Functions were not able to return objects; they can in 2.1.

  5. On the iPad in portrait view, the program list stayed visible after selecting or running a program; now it is hidden.

  6. The icon bar icons on the iPad were still displayed in standard resolution on retina displays.

  7. BASIC programs ported from Windows that used the Latin extended character set would not load, and generated multiple errors to let you know they would not load. Files that cannot load now display a single error message, and files using Windows Latin characters now load in techBASIC.

techBASIC 2.1.1 Release Notes

Bug Fixes and Minor Changes

  1. techBASIC 2.1 fails to run on iOS 5. This is due to an iOS 5.1-only call made during initialization. This has been corrected in 2.1.1.

  2. techBASIC frequently hangs when programs are paused, to include both the pause button and hitting a breakpoint. This has been corrected in 2.1.1.

  3. Errors reported when a non-existent method name was used appeared a few tokens after the actual use. The error message is correct and appropriate, it’s just in the wrong place. The error now appears on the class variable.

  4. The help file says the range of values for Date.month is 0..11. This has been corrected to read 1..12.

  5. PRINT USING fails on some format specifiers, such as PRINT USING “##,###”; 32767. These work correctly, now.

  6. Running on an iPad in portrait mode, running or editing a program hides the program list if the program is not currently selected, but does not hide the program list if the currently selected program is edited or executed. The program list now hides for all program executions or edits.

  7. Running on an iPad in portrait mode, opening the program list always selected the first program. It now leaves the previously selected program selected.

We want to hear from you, both about any problems you have and about your successes.

Bugs happen. We’d like to be perfect, but we know we’re not. If you find a problem, please tell us. As our long-time customers know, we’ll do everything we can to make it right.

Tell us about what you want to see in future versions of techBASIC, too. The major input when choosing new features is what our customers are asking for, so don’t be shy about telling us what you want to see!

techBASIC 2.2 Release Notes

New Features

  1. Three new functions in the Math class support fast, accurate numeric integration. Choose from two forms of the trapezoid rule or Romberg integration. If you need Simpson’s rule, keep in mind that Romberg integration of order 2 is equivalent to Simpson’s rule.

  2. PlotFunction.setFillColor shades the area under a curve. This is perfect for use with the new integration calls, making it easy to show the area being integrated.

  3. LU decomposition is a workhorse algorithm for linear algebra, especially for systems of linear equations. While the techniques are well known, implementing LU decomposition can be tricky. LUDComp and LUBackSub makes it easy to use this powerful technique on your own problems.

  4. Math.polyFit implements linear regression. Do linear fits of the form y = A + Bx, or polynomial fits like y = A + Bx + Cx^2. Once you have the fit, use Math.poly to evaluate the polynomial for a given X, or Math.rSquare to find the goodness of fit.

  5. Find zeros of a function with the function. This returns the X location where the function crosses the X axis. With a simple subtraction, this allows solving an equation for any Y value.

  6. Math.mean, Math, stDev and Math.var give easy access to statistics about an array filled with sample values.

  7. Math.Gamma, Math.logGamma, Math.err and Math.errc add the basic special functions for probability and statistics.

  8. Get uniformly distributed random numbers designed for Monte Carlo simulation using the new Math.rand call, which generates random numbers using the Mersenne Twister algorithm. Math.norm returns normally distributed numbers, and Math.setSeed sets the seed used for random number generation. Of course, if you don’t set the seed, the system clock will be used.

  9. Math.isNaN and Math.isInf make it easier to test for numeric results that are not a number (like taking the square root of a negative number) or infinity.

  10. Math.PI returns π to full double-precision, so you no longer have to remember that π is about 3.14159265358979323846.

  11. A new preference treats the program list the same in iPad landscape view as portrait view, so it slides out of view when not needed. This gives more room for source, debugging and graphics in landscape view.

  12. Set the keyboard that will be used when entering text in the console with the System.setKeyboardType and System.setKeyboardAppearance. This allows using, for example, a numeric keypad when numbers are expected.

Bug Fixes and Minor Changes

  1. After pausing a program, it took two hits on the run button to unpause it.

Calculator 1.2 Release Notes

Bug Fixes and Minor Changes

  1. Easier navigation of button sets.

  2. New button click sound.

  3. Fixed intermittent crash on startup.

  4. Improved button responsiveness.

Sky Spy 1.1.2 Release Notes

Bug Fixes and Minor Changes

  1. More stable views with iOS 4 and above.

  2. New art for retina displays.

  3. Preferences save in newer versions of iOS.

Sky Spy 1.2 Release Notes

New Features

  1. Supports the iPhone 5 4 inch retina display.

Calculator 1.3 Release Notes

New Features

  1. Bigger button spacing on the iPhone 5 makes hitting buttons easier.

New Features

  1. Supports the iPhone 5 4 inch retina display.

  2. The full screen can be displayed, hiding all techBASIC controls. See System.showGraphics, which now has an optional parameter to show the graphics screen in full-screen mode.

  3. There are now getters for control locations. See the X, Y, WIDTH and HEIGHT methods in the Control class.

  4. Screen rotations can be detected using a didRotate subroutine.

  5. Screen orientations can be allowed or rejected using System.setAllowedOrientations.

  6. techBASIC shows a tools button when running on the iPhone, running on the iPad when a 3D plot is displayed, or on either platform when in full screen mode. This tools button can now be hidden. See System.showGraphics, which now has an optional parameter to hide the tools button.

  7. Added Math.packXXX and Math.unpackXXX methods to move numeric values to and from arrays of bytes--great for Bluetooth LE programs.

  8. There is a new ColorPicker control that lets a user programmatically select a color.

  9. Plot.setBackgroundColor now accepts an alpha value, allowing a background to show through a plot.

  10. Plot.setAllowedGestures gives a way to block unwanted gestures on a plot.

Bug Fixes and Minor Changes

  1. The debugger now shows the class name for variables holding objects.

  2. A crash bug in Button.loadImage that occurred when an image was loaded twice has been corrected.

  3. Tap locations for setting breakpoints, selecting variables, selecting subroutines, and error locations are off under iOS 6 due to a change in the way Apple calculates line heights. These now work correctly in iOS 5 and 6.

  4. Passing NaN as a parameter to Control.setFrame no longer causes techBASIC to crash.

  5. The documentation for RESUME has been updated. The old documentation incorrectly stated that control resumed with the line, not the statement, where the error occurred.

  6. WebView.setScalesPage is now documented.

  7. Calling a function that returned an object more than one time such that the function creates and returns two different objects resulted in a crash; this has been fixed.

  8. Assigning one array of objects to another array of objects resulted in a crash; this has been fixed.

  9. Omitting the subscript form an array of objects used to access a method caused a crash; this has been corrected.

  10. The titles of buttons with transparent backgrounds vanished while the button was tapped; they now show up.

  11. Devices for which Apple's BLE implementation could return an NSNumber for the value of a descriptor caused a crash; they now return a single value in an array.

  12. The debugger did not correctly display the value of a long integer whose value was outside of the valid range for an integer; it now correctly displays long integer values.

  13. DrawText and other font-related commands now work in an Image without the need to explicitly set a font, first. The default font is Helvetica 14.

  14. Errors near the end of very long files now show up in the correct location.

  15. Fixed a leak in

  16. Objects returned by did not set the date until it was accessed, always returning the current time. This has been changed so System.DATE returns the time when the original call was made to

  17. Graphics commands like Graphics.stringWidth now work with the predefined fonts, like "Sans-Serif".

  18. A memory leak that occurs when using pixel graphics has been fixed.

techBASIC 2.4 Release Notes

Moving Source Files

  1. The ability to move source files to and from techBASIC using iTunes has been removed at Apple's insistence. You can still use iTunes to move data files.

We’ve heard from a number of you in the past asking why we didn’t support downloading programs from various file sharing services. Some would patiently explain to us why it was important, and a few even tried to explain to us how to accomplish the task, assuming that if we had not already implemented the feature, it was because we were to ignorant or unskilled to do so. When we pointed out that the reason was Apple’s policy prohibiting programs from downloading source code, many explained to us the arguments we should use to explain to Apple why this made no sense.

As a result, we expect to hear from many of you about this change. So, in advance, let me just say this: We know. We understand. But Apple makes the rules, and we have to follow them. Apple refused to let us release techBASIC 2.4 until this change was made.

We asked them what harm it had done in the year the feature had been in techBASIC. There was none, but that doesn’t matter.

We pointed out that Numbers (Apple’s spreadsheet) FileMaker Go (A database program from an Apple subsidiary) and even Safari download and execute code, breaking their own rule. That apparently has nothing to do with the decision about techBASIC.

So, unfortunately, we will have to live with this decision. Should Apple ever change their mind, it will take a very simple change to restore this feature. Until then, we will have to resort to using the Share feature to get programs off of iOS devices, and email combined with copy and paste to get programs back onto an iOS device. See the Quick Start guides or reference manual for step-by-step instructions.

Our company policies are simple, reflecting how we like to be treated when we are customers. As with our products, we welcome any recommendations you have for changing our policies.

Privacy Policy

Support Email

If you send us email through our support address, Here’s how we will use your email address:

  1. We will reply to your question or comment if it is appropriate.

  2. If you report a bug or make a suggestion, we will let you know when the version that addresses the issue is released, and which bug(s) or feature(s) has been addressed. You might get more than one email for a single release if you reported more than one problem or made more than one suggestion.

  3. We may get back to you with beta test invitations for new or existing products if that seems appropriate.

  4. We may get back to you with other information, such as new blogs or articles, that seem to pertain to questions or comments you have made. For example, several people received emails from us when the Bluetooth low energy blog for the Texas Instruments SensorTag was posted.

  5. We will let you know when the Byte Works releases a related product.

  6. If any of these replies ever annoys you, let us know. We’ll stop. We want you informed, not annoyed!

  7. We will NOT give your email address to anyone else. Ever.

Email Addresses from Orders

We expect to start taking orders for a new, non-App Store product shortly. When that happens, there will be three levels of email notifications you can subscribe to.

  1. Notify me when new versions are available techBASIC for the App Store is a library, not an executable, so the program can’t tell you when a new version is available. If you select this option (which defaults on), we will drop you a quick note when new versions are released so you know it’s time to go get your update.

  2. Notify me of new software The Byte Works will send you notifications when new apps are released.

  3. Notify me of related third-party products The Byte Works will let you know when a related third party product is available. For example, we’ll tell you when books or articles appear that use techBASIC.

  4. If any of these emails ever annoys you, let us know. We’ll stop.

  5. We will NOT give your email address to anyone else. Ever.

Refund Policy

Products Purchased from the Byte Works.

If you don’t like our product, return it within 30 days of purchase for a full refund. We WILL ask questions--we want to know why we didn’t satisfy you--but we will always honor the refund request.

Products Purchased from Apple’s App Store.

Apple handles all refunds and returns to the App Store. We literally don’t know who you are, what you paid, or anything else about you when you buy an app from the App Store. If you need support, drop us a note. If you need a refund or have any other issue with an App Store purchase, you will have to go through Apple. We will be happy to help if needed, but have no special channels for resolving App Store issues.

Scroll down, and you’ll find:

Email link for support, questions, bug reports, or just to say hi!

Our privacy policy.

Our refund policy.

Links for documentation, blogs, and Facebook, where you can chat with other folks using our products.

Release notes for recent updates to our products.

techBASIC 2.5 Release Notes

New Features

  1. Graphics.setUpdate allows automatic graphics screen updates to be turned on and off, making it easier to create flicker-free transitions while painting on the graphics screen.

Bug Fixes and Minor Changes

  1. LOF and LOC support files up to 2147483647 bytes long.

  2. POS, TAB and SPC support long arguments and return long values to support strings up to 2147483647 characters long. The documentation has been updated to indicate that strings up to 2147483647 characters long are allowed throughout techBASIC.

  3. Arrays can now be up to 2147483647 bytes long.

  4. Low battery warnings no longer result in the loss of the text being typed when the warning is displayed.

  5. String values with end of line or carriage returns display these characters as _ in the debugger, preventing issues with the display of string constants.

  6. LINE INPUT did not always scroll the console so the cursor was visible. It is properly scrolled, now.

  7. On the iPhone, use of an external keyboard did not trigger showing the toolbar, making it impossible to do searches, undo, redo, get help or share files. THis has been corrected.

  8. Rotating the screen now resizes plots. This will also reposition them, so if manual positioning is used, be sure to redo the manual positioning in the didRotate subroutine.

  9. Running a program in full screen mode on the iPhone, then running another program that is not in full screen mode, did not reset the size of the graphics screen. It is resized, now.

  10. The documentation for the didRotate subroutine did not point out that it is only valid in full screen mode. The documentation has been corrected.

  11. BLEDescriptor.value flagged an out of memory error if the descriptor value is empty. It now returns an empty array of integer values.

  12. The snippet shown for the discoverDescriptors method has been corrected.

  13. Several samples in the manual had the incorrect syntax

   SUB BLEPeripheralInfo (time AS DOUBLE, peripheral AS BLEPeripheral, kind AS INTEGER, err AS INTEGER, msg AS STRING)

They now show the correct syntax:

   SUB BLEPeripheralInfo (time AS DOUBLE, peripheral AS BLEPeripheral, kind AS INTEGER, msg AS STRING, err AS LONG)

techBASIC App Builder 1.0 Release Notes

This is the initial release. See the documentation for details.

techBASIC 2.6 Release Notes

New Features

  1. TCP/IP commands let you control WiFi sensors and content.

  2. FTP commands support transferring data files to and from FTP sites.

  3. HTTP commands give you programatic access to web sites.

  4. The _ character can now be used to continue a logical line across more than one physical line.

  5. Setting the value of an object to NULL now disposes of the object if the variable was the last reference to the object.

  6. Objects can now be compared to NULL.

Bug Fixes and Minor Changes

  1. The CLEAR command was clearing predefined classes like System; it no longer does this.

  2. Passing an empty string in the array of UUIDs for BLEPeripheralClass.discoverCharacteristics no longer causes a crash.

  3. The keyboard intermittently skipped input running under iOS 6. This has been corrected.

  4. Some sequences of actions on an iPad resulted in a blank help screen. This no longer happens.

  5. Errors on the first line of a program can now be viewed.

  6. Errors reported due to referencing a non-existent method when passing a parameter to a subroutine are now reported in the correct location.

  7. Pressing and holding a button, then releasing it, now correctly fires the button.

  8. For some iOS and iPhone combinations, plots did not appear immediately when using System.showGraphics; this has been corrected.

techBASIC App Builder 2.6.1 Release Notes

Updated to match the techBASIC 2.6.1 release. See the techBAIC 2.6.1 release notes for details.

techBASIC 2.6.1 Release Notes

Bug Fixes and Minor Changes

  1. Presenting dialogs for email, camera or photo picker from an iPhone in full screen mode no longer hangs the application.

  2. Redimensioning an array passed BYREF from within a subroutine no longer crashes techBASIC when the next app is executed.

  3. Swipes on plots no longer switch to creating multiple callouts after 2 seconds of swiping.

  4. Moving a slider control no longer stops after 2 seconds of movement.

  5. A memory leak when using FTP commands has been fixed.

  6. Passing an object whose type conflicts with the declared parameter type for the subroutine is now correctly flagged as an error.

  7. LINE INPUT commands used with HTTP, FTP and TCP/IP streams can now be stopped with the Stop button.

  8. Opening a TCP/IP stream and using it for input, but not output, no longer leaves the connection open when the stream is closed.

techBASIC App Builder 2.6 Release Notes

Updated to match the techBASIC 2.6 release. See the techBAIC 2.6 release notes for details.

techBASIC 3.0 Release Notes

New Features

• Programs can now be organized in folders.

• Lots of new samples are provided; these are organized in folders.

  1. You can move, copy or create aliases of programs.

  2. There is a new Subs button when editing a program on the iPad. Tap it to get a list of subroutines and functions in the program. Tap the name of a subroutine or function to jump to it.

  3. The font size can be changed. See the preferences from the Settings App. Be sure to restart techBASIC after changing the font size so text areas are regenerated.

  4. There is now a System.showSource method to show source; it’s handy just before a program ends to switch back to the source view during development.

  5. HTTP passwords are supported.

Bug Fixes and Minor Changes

  1. Passing an array with empty strings to TableObject.insertRows no longer crashes.

  2. Using NOT, BOTNOT, unary - and unary + on an undefined variable no longer causes a crash.

  3. Documentation has been corrected for System.device, ImageView.loadImage and Button.loadImage.

  4. Setting a text field with a malformed unicode string could cause a crash for some strings. This is now prevented.

  5. Setting the size of a plot to a very small value no longer crashes techBASIC.

  6. The accelerometer no longer hangs or crashes with an out of memory error after running for several seconds.

  7. Deep recursion (deeper than 2048 calls) is now prevented in techBASIC, preventing the memory manager from shutting techBASIC down because it thinks there is a runaway memory leak.

  8. READ now works properly in subroutines, using the DATA statements from the local subroutine.

  9. LOF and EOF now work correctly for TCP/IP connections. TCP/IP has also been rewritten for enhanced performance and stability.

  10. The Japanese keyboard no longer causes problems with sizing of the text screens.

  11. Japanese (and other) unicode characters can now be printed using the PRINT command.

  12. Closing a MapView releases it’s use of the location manager, allowing location services to stop. Remember: The MapView is still in use when the program ends. You must remove it or run another program before it truly goes away.

  13. BLE.retrievePeripherals failed; it works, now.

  14. The documentation for BLE.retrievePeripherals said an empty array could be passed to retrieve all known peripherals. This is not allowed; the documentation has been changed to reflect this.

  15. INPUT statements reading more than 512 characters on a single line could corrupt memory, leading to crashes. This has been corrected.

techBASIC App Builder 3.0 Release Notes

Updated to match the techBASIC 3.0 release. See the techBAIC 3.0 release notes for details.

techBASIC 3.1 Release Notes

New Features

  1. Polygons are now available from Graphics. See Graphics.fillPoly and Graphics.drawPoly.

  2. New samples have been added to the O’Reilly Books folder, including BLE Truck, WiFly Terminal and Serial Servo.

Bug Fixes

  1. Leaving an array subscript off of an array of objects when calling a method no longer causes a crash.

  2. The maintainAspect parameter for Button.loadImage is now documented.

  3. The Move dialog functions better on iPhones.

  4. Graphics.setTranslation now works with pixel graphics.

  5. Assigning one array to another no longer changes the lower bound of the assigned array.

  6. The subroutine drop-down and Move dialogs no longer crash when running under iOS 5.1.

  7. A memory leak involving setting colors in pixel graphics has been corrected.

  8. An issue that occasionally caused the same line typed form the console to be read again by LINE INPUT has been corrected.

  9. The Slime Mold sample has been improved.

Legal Stuff

Apple, the Apple logo, iPad, and iPhone are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc.

The Byte Works is a registered trademark of The Byte Works, Inc.

techBASIC and techBASIC Sampler are trademarks of The Byte Works, Inc.

techBASIC 3.3.3 Release Notes

Includes techBASIC Sampler

Note: The sole change in this version is a change to the editor. No changes were needed or made in techBASIC App Builder.

Bug Fixes

• techBASIC crashed when creating a new program while running under iOS 8. This crash bug has been corrected.

techBASIC 3.3.2 Release Notes

Includes techBASIC Sampler

Note: The sole change in this version is a change to the editor. No changes were needed or made in techBASIC App Builder.

Bug Fixes

• A bug in iOS 10 caused copy and paste to stop working for source code files. A work-around is implemented.

techBASIC 3.3.1 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

• The build number is now shown in the About view.
• GET and PUT now use LONG, not INTEGER, for subscripts, increasing the size of files they can handle.
• Arrays written to files with GET and PUT now use LONG sizes rather than INTEGER sizes, allowing longer arrays.
• The iPad Pro screen sizes are now directly supported.
• The tab key on external keyboard is now supported.

Bug Fixes

• LONG variables could cause a crash when used as function arguments for some functions and when running under the 64 bit techBASIC App Builder.
• An incompatibility with changes in iOS 9 resulted in BLEPeripheral.isConnected failing; this has been corrected.
• BLE classes that support the UUID call failed under iOS 9 due to changes in iOS 9; this has been corrected.
• retreiveConnectedPeripherals and retreivePeripherals are no longer supported by iOS, and has been deprecated in techBASIC. The calls still exists, but no longer do anything.
• An IF statement that has an ELSE clause with no statements in the ELSE clause no longer fails.
• Changes in iOS 9 caused numerous problems with external keyboards. These have been corrected.
• Polar coordinate plots that extended to infinity could leave drawing artifacts. This has been corrected.

techBASIC 3.3 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

• Code completion helps you enter programs with suggested identifiers and reserved words.
• Text is colored by syntax.
• A new programming oriented editor shows lines without wrapping and supports horizontal scrolling.
• UDP support allows communication with devices that use UDP for communication.
• The barometer sensor on the iPhone 6 is supported.
• The keyboardChanged event notifies the program when the keyboard is shown or hidden.
• TextView.replaceText now allows replacement of a range of text in a TextView.
• Image.getCameraImage now has an optional parameter to specify that the image should come from the front camera.
• Comm.readHTTP now has an optional parameter to set the communications time out value.
• When emailing source, the source is now also included as an attachment.
• Integer exponents now get special treatment, so expressions like (-2.3)^2 work with no error.

See the Reference Manual or online help system for details.

Bug Fixes

• A memory leak in Graphics.drawImage has been fixed.
• A memory leak in Image.setImage has been fixed.
• Assignments of string array constants are now supported.
Sensors.locationAvailable always returned YES; it now returns the result from CLLocationManager locationServicesEnabled.
Certain uses of an undeclared variable as an array caused crashes. This has been fixed.
PRINT USING did not always use comma characters correctly for formatting real numbers. This has been fixed.
The PRINT USING format specifier “#.#^^^” now works for the value 1.
Opening an HTTP or TCP/IP file that is already open no longer causes a crash.
Several issues with the placement of breakpoints have been corrected.
Running from a fresh boot, full screen apps no longer have a white band at the top and bottom.
The iPhone 6 is now supported at the native resolution.
Plotting points with a Y value of NaN no longer causes a crash.
The Move dialog is formatted better on iPad.
The debug bar no longer remains visible after a graphics program exits on the iPhone.
Installing a new version of techBASIC no longer messes up aliases.
The about page is formatted better on the iPhone 6.
Assigning an array to itself no longer causes a crash.
techBASIC App Builder sandbox files are no longer automatically included in the iCloud backup.
Running under iOS 8, some camera images were rotated. This has been corrected.
Unicode characters now work correctly with the GET, INPUT, and PUT statements and the LEN function.
Stopping a program that contains a subroutine with no statements no longer causes a crash.
Attempting to insert a row in a table at a negative row position now inserts the row at the start of the table instead of crashing.
Using CLEAR at the start of the program no longer causes object variables to generate type conflicts.
SEEK no longer fails for file positions greater than 32767.
Type mismatch errors where the left operand is an object appear at the correct location, now.

techBASIC 3.2.2 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

• Unicode characters are now fully supported in POS, CHR and ASC.
• Use System.vibrate for tactile feedback in apps. (Vibration must be enabled.)
• The Image class now supports fillPoly and drawPoly for drawing on images.
• System.ticks now reports the same time stamp that is passed in events and so forth.
• System.setNullEventTime allows you to set the delay between reporting of null events when the system is not busy.
• Sensors.heading now reports the deviation from the magnetic heading.

See the Reference Manual or online help system for details.

Bug Fixes

• (iOS 8) The New, Rename, New Folder and Move dialogs have been updated to work with the new iOS 8 view formats.
• (iOS 8) Error highlights are no longer off by one line.
• (iOS 8) Navigation in the Help menu works properly.
• (iOS 8) Text now scrolls when the cursor moves off of the visible part of the view.
• (iOS 8) The location manager now works with the new Apple protocols.
• (iOS 7, 8) The height of the graphics screen is now correct when it is accessed before the graphics screen has been viewed for the first time after a reboot.
• Comm.readHTTP no longer crashes when passed a bad file name.
• Using the Clear button to clear the console now works while a program is running.
• CLEAR no longer crashes when a program contains a SELECT CASE statement with a string case, but no TO case option.
• Reading from a closed file no longer causes a crash.
• Creating a plot with constant Y values for all points now generates a proper Y axis.
• Opening a disk stream after opening a TCP/IP stream no longer causes a crash.
• Comm.openTCP/IP no longer crashes if the IP string is empty.
• Fixed crash bugs in peripheralManagerDidStartAdvertising, peripheralManagerDidUpdateState and peripheralManagerIsReadyToUpdateSubscribers.
• Using ERR.description before an error occurred no longer causes a crash.
• Arcs drawn in an image are now oriented properly.
• Writing a string that is shorter than the buffer in a random access file now writes the entire string, not just the first character.
• Tap events are now reported for all controls, not just buttons.
• PRINT USING properly handles the _ character.
• BLECharacteristicInfo for a kind flag of 4 is now documented.
• (iOS 7) The backspace key now works properly.
• (iOS 7) The up and down keys now work with auto repeat.
• (iOS 7) The screen no longer jumps during scrolling with wrapped lines.
• Errors are automatically dismissed when scrolling is attempted.
• The focus is now placed on Find when the Find view opens.
• The BLEChat sample now sends the correct value for value2 in the SendText subroutine.
• Samples such as SensorTag now respect the techBASIC App Builder flag in System.device.
• Fixed a variable naming issue in the SensorTag and Thermometer samples.

techBASIC 3.2.1 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

Bug Fixes

• Opening a program for the first time opens it at the top. Switching to another file and back opens an edited file approximately at the last cursor position.

• (iOS 7) Formatting some single precision numbers caused a crash; this has been corrected.

• (iOS 7) Breakpoints no longer disappear without warning.

• (iOS 7) The status bar overlapped some views, especially the What's New view on the iPhone. This has been corrected.

• (iOS 7) The up and down arrow keys work on Bluetooth keyboards, again. Holding the key down does not repeat the cursor move, though--that will have to wait for changes in iOS.

• (iOS 7) The size of the graphics screen now updates upon rotation.

• (iOS 7) The Find and Replace commands scroll the text properly.

• (iOS 7) Hitting a breakpoint in Source view, switching to the graphics view, then switching back to the source view no longer crashes techBASIC.

• (iOS 7) The E-M Field sample no longer crashes techBASIC.

• Setting the font style or color failed for text drawn to a pixel graphics screen.

• The status bar is not longer hidden when running an app in full screen mode for the first time.

• Updates of plots on screens that do not use pixel graphics are now faster.

• (iOS 7, techSAMPLER) techBASIC Sampler no longer crashes under iOS 7 when creating new programs or folders.

Calculator 1.3.1 Release Notes

• The user interface has been updated for compatibility with changes in iOS 7.
• The display name has been changed from Calculator to BW Calculator. Apple would not let us use the name Calculator because they have an app with the same name.

techBASIC 3.2 Release Notes

Includes techBASIC App Builder and techBASIC Sampler

New Features

See the Reference Manual or online help system for details.

• The user interface has been reworked to support iOS 7.
• Complete support for BLE slave mode lets you treat an iPhone or iPad as a BLE device. New classes include BLEATTRequest, BLEMutableCharacteristic, BLEMutableService and BLEPeripheralManager. Chapters 9 and 10 of Building iPhone and iPad Electronics Projects show two projects using these commands.
• The following new events to support BLE: BLEMutableCharacteristicInfo, BLEMutableServiceInfo, BLEPeripheralManagerInfo and readyToUpdateSubscribers. The BLE class has a new method to support BLE slave mode: newBLEPeripheralManager. BLEService adds the isPrimary method.
• A new method, Comm.isReadyForOutput, allows an app to check to see if a TCP/IP, HTTP or FTP port is ready to receive output.
• New samples have been added to the O’Reilly Books folder, including BLE Chat A, BLE Chat B, Paddles,  Left Paddle and Right Paddle.
• On the iPhone, dismissing the keyboard now saves the source immediately.

Bug Fixes

• On the iPad, source code no longer overwritten the variable and stack display when the Run button is pressed while the source view is visible, the keyboard is visible when the run button was hit, and a breakpoint is hit.
• Data folders are no longer copied to the source view when techBASIC starts.
• Copying a program while it is being edited now copies the version with editing changes, not the unchanged version on disk.
• Full screen mode on an iPhone no longer shows the button bar at the bottom of the screen.
• The writeDescriptor method’s documentation has been corrected.
• A crash bug has been fixed that appeared in some situations when the color picker processed events.
• A crash bug has been fixed that appears when null strings are used with Picker.insertRow.
• Including a comment line immediately prior to a CASE label no longer causes a compile error.
• PlotPoint circles used to mark points locations were drawn 1/2 pixel to far to the lower right. They are now centered.
• The console view on the iPhone now uses the font size preference.
• The behavior for bitmapped graphics was ill defined on screen size changes. The defined behavior is to repaint the bitmapped image at the top left of the new screen area while maintaining the original image size.
• The date and time formats have been updated to give more information and to respect local time and date preferences.
• Plot.setTitle and other graphics commands now accept Unicode characters.
• Choking the console with too much text may still produce long delays (use System.clearConsole), but will no longer cause iOS to think the app has hung, which resulted in terminating the app.
• Passing an array returned from a built-in method as a parameter to another built-in method no longer causes a crash.

techBASIC App Builder 3.1 Release Notes

Updated to match the techBASIC 3.1 release. See the techBAIC 3.1 release notes for details.