Application name will change

I will change this application name from "X-BASIC for iOS" to "X-BASIC'"(Dash).

Because Apple pointed out "An application name must not include the word 'iOS' ".

The application name will change but general name is still "X-BASIC for iOS".

Best regards.


[Important]About progloader.bas

progloader is a sample program that is built into the V3.00.
In fact, this sample has a very important meaning.

The program itself is easy.
Please select a program from the list and tap "Download". The selected program will be downloaded.
You terminate the program by tapping "end" and close the screen by tapping .
Then you will be able to select downloaded program in the program selection menu.
Not only the program , but also the required data files are imported .

 The Zip file is here : XBprogloader.zip
(This is intended to view a sample of the list-file. Program itself is built in X-BASIC for iOS. )


This mechanism does not work out by the progloader alone.
By using this program, if you want to download your program (and data), you will need the following preparations.
  1. Prepare the server to the program downloading
  2. Put the list-file that is described of programs information on server.
    The list-file is UTF8 text file with the following format:
      "program name"    zip-filename
    One line is for one program. The "program name" is the name that appears in the progloader. The zip-filename is the name of the zip file that is downloaded when you select it. The names that appear in program selection menu of X-BASIC are the file name of *.bas archived in zip file.
    Between them are separated by one or more spaces or tabs. A line that begin with ';' is considered a comment, so it will be ignored.

    This list-file is put on the server side. It other words, without rewriting the progloader, you can increase or decrease the program that can be downloaded.

  3. Put the zip file that contains programs and data together
    Usually, the zip file includes * .bas and the required data. It is also allowed to have with the directory structure. It will be expanded in the X-BASIC for iOS same as the original directory structure.

  4. Rewrite the URL written in the progloader.bas
    str baseURL = "~" is the URL.
People who can not understand this method by reading this description, should not be used.

You can delete the program itself from the program selection by "Delete". But the accompanying data is not deleted automatically. So the datas still remains in iOS and eat the storage capacity. Please remove datas by using built-in sample filer.bas.

···From now on···
Since progloader was completed, in the future, I will publish sample programs by using this. When you will run progloader.bas , sometime there may be the new sample program.

···Just in case···
I keep writing for just in case. X-BASIC for iOS has no function for the iOS system hacking. Even if you write any program, you can not be used for hacking.

Latest manuals

The latest version's manuals are here:

About X-BASIC for iOS
Statement & functions manual
iOS dependent functions manual
X68 compatible/Convenient/Card functions manual
About sprite and BG screen
Table of Fonts

In addition, in iPad, you can see all in built-in help.

Note in X-BASIC for iOS v3.00

In X-BASIC for iOS v3.00, some point has been changed from previous versions.
  1. The value of the max string length in settings has been changed.
    This is only changed the interpretation way. The essence does not change.
  2. Display processing of text character has changed.
    Please check because sometimes display different results.
  3. When the function names in the existing program is duplicate and it is difficult to modify program,
    please turn off "X68 Compatible functions" in settings.
  4. The order of the program files list is changed.
    Previous version:
    The first is case-sensitive order in user-created program and the second is case-sensitive built-in samples.
    New version:
    The case-insensitive in total of user-created program and built in samples.
    When there is the same name in the built-in and user-created, user-created is priority.
  5. Revoke the function randomise()
    Because it was misspelled, randomise() was revoked in V3.00. Please rewrite to randomize().

The following is I'm sorry.

  • I have no 64-bit real machine, iPhone6 and iPhone 6 plus.
    So, I tested only on the simulator. Those who has trouble on a real machine, please let me know with as much detail as possible.
  • When an error occurs, editor is scrolled automatically to display the first error source line.
    However, in the case of long source, it may not be scroll automatically. This is the iOS bug. If you tap the error line again to scroll to it.
  • Known bugs in X-BASIC for iOS V3.10

    Known bugs in X-BASIC for iOS V3.10 are below:
    1. Sometimes, text character displays too small.
    2. The system falls when the program source is terminated without 'next' paired with 'for'.
    3. The system falls when the program source is terminated without 'endwhile' paired with 'while'.
    4. The system falls when the program source is terminated without 'until' paired with 'repeat'.
    5. The system falls when the program source is terminated without 'endswitch' paired with 'switch'.
    6. The system falls when the program source is terminated without 'endfunc' paired with 'func'.
    7. The system falls when the program source is terminated without 'endenum' paired with 'enum' or 'fenum'.
    8. system error occurs when you declare a 10-dimensional array.
    9. If you try to save a file from the "Creat New", ".!" is displayed in the file name input field.
    10. The cardInit() does not correspond the SHIFT-JIS filename.
    11. A program line with number can not be read correctly.
    12. "Old display compatibe" in settings does not become ON.
    13. If the first character in the program source is a surrogate pair characters, it does not display the characters in the font selection view.
    14. If you include the surrogate pair characters in symbolt(), it is not displayed correctly.
    15. In the some external function, run-time error is ignored.
    16. Text charater of text screen may be too small.
    17. The beep2()'s argument floadonly is ignored.
    18. You seem that the touch area is not released by removeTouchArea().
    19. It becomes abnormal operation when you do not omit the argument of bitmapImgLoad() or bitmapTileImgLoad().
    20. When you display an integer number by 'print', The displaying space in front of the number is different from the X-BASIC/68.
    21. It issues a new line when you write Print "~"; //.
    22. When you print double-byte characters at last column in the text screen,it does not issue new line before.
    23. The display corrdinate of function keys are illegal.
    24. Sometime system fall at bitmapOpen().
    25. At the first launching, the setup data for v3.0 later are not initialized.
    26. In zipExpand (), you can not expand the Japanese file name files in Zip made under Windows environment.
    27. Sometime th return information of jpegHeader()/pngHeader() is illegal.
    28. The system fall when motionGetRotation()/compassGetData()/symbol(,ht)/fontSize(,wy)/getWidth(,fontWx,fontWy) returns float value to float variables.
    29. After using the motion function, working memory has been still allocated.
    30. When you call 'end' statement without motionEnd(), the motion function has been still run.
    31. The date and time of file creating are not correct at making zip archive with emailSend.
    32. The return value of str$(positive number) is not same as X-BASIC/68.
    33. If you call the bitmapImgLoad () for the same graphics page in a short period of time, sometimes drawing is delayed or lack
    All bugs except last one are resolved in V3.40.

    In addition, the following is a specification:
    1. When you use dimension argument in internal function, you can not use enum constant to the size specified.
      Example : func f(masu(WW,WW);int):// error occur
    2. When writing the enum values using the equation, it is an error to uses some operators consecutively two or more.
        C=1+2+4          OK
        D=1 or 2 or 4    Error
        E=(1 or 2) or 4  OK
    1st is due to the following reasons:
    1. The internal function's name and argument are registered within preprocess of compile.
    2. The enum constant is determined within compile process.
    3. Therefore, in preprocess, the enum constant is not referable.
    This is very difficult to solve. I made a comparison between the frequency of use and the effort of implementation and debugging.
    As a result, I decided this to "limit as a specification".

    2nd is derived from the method of generating internal code, it is very difficult to modified.
    Therefore, this is considered as a specification.
    The formula writing in the enum, please enclose with () in every operator.

    Differences summary from V2.96 to V3.40

    V2.96 as a reference, I have made the changes list In later versions(except application name).
    I listed only the changed part. Make sure the latest version of the manual for more information.
    It should be noted, the currently uploaded manuals are V3.50's.(not v3.40's).

    In front of their names, with "+" means added, "-" means deleted and another means changed only. In addition, I have omit the only bug fixed thing.
    +maxStringLength() +fenum +debugMode()
    +gLocate() fopen() +debugDump()
    +forcedSJIS() +fopenError() +logoAlert()
    +ellipse() +errorCodeFopen() +setTouchKeys()
    -randomise() freads() +resetTouchKeys()
    +sjisStrWidth() rand() +resetAllTouchKeys()
    +utf8StrWidth() rnd() +programName$()
    +toascii() +getScreenSize()
    width() setFunctionKeyBackgroundImage()
    cursorMove() displayFunctionKey()
    imgLoad() displayFunctionKeyAll()
    tileImgLoad() width()
    gTransform() tAtrb()
    sp_def() selectMenu2()
    +X68 compatible functionsgetBitmapSize()
    +Convenient functions+Debug function
    +Card functions devicePlatform()
     iOS9 compatible


    About update this site

    I was very tired to translate this site Japanese to English.
    So, I can not update English site frequently.

    If you want latest information, please read Japanese site with Google Translate.
    Thanking you in advance.

    Postscript November/09 2015

    For the most important thing, I will write also in English in the future.