Appendices-Deprecated keywords, operators, and delimiters

Will Pittenger

Some items from classic BASIC syntax aren't needed in ASIL. Those are listed below. Most were seen as redundant. Some were deprecated to strengthen the language. All items listed here remain reserved to prevent their use. Such usage would just be confusing to those used to other BASIC dialects and derivatives.


If you need one of these, prefix it with "@". This list includes only those that were keywords in either AppleSoft or a typical early BASIC dialect. It also doesn't list any functions. Those were replaced with methods of various built-in types. Of the types of structured statements built into most BASIC dialects, only if and switch statements are built-in. Others will be defined later as being written in ASIL itself.

  • LET—It was commonly implied anyway when you wrote an assignment. So it was dropped.
  • AS—Switching the order of the identifier and type meant that the syntax was simpler and the AS keyword wasn't needed. The resulting declarations look a little more like something from C/C++/C#/Java.
  • END—Because ASIL uses the indentation to control where blocks end, END really has no use. ASIL technically isn't derived from any BASIC dialect that used END as a keyword. ASIL's only real direct ancestor is AppleSoft, which lacked an END keyword entirely. All IF statements had to be one line. FOR statements ended with the NEXT keyword.
  • PRINT/TAB/AT/LPRINT/CLS/HOME/IN#/PR#/HTAB/VTAB—Because ASIL will probably provide a real console class, these really have no use. Some other classic BASIC global commands might also be dropped. However, most would be easy to write in ASIL. It is possible that TAB and AT would be removed from this list if they can't be used outside a PRINT statement.
  • INPUT—See the notes on PRINT.
  • GOSUB—Use procedures instead.
  • USR—Use an external procedure instead.
  • DATA—Use ASIL's built-in array types instead.
  • TRON/TROFF—Since ASIL lacks line numbers, these aren't useful. Rely on modern debugging techniques.
  • ON ERROR/ONERR/RESUME—Use try/catch blocks instead.
  • END—In DASIL scripts, use return instead. Otherwise, a script ends when it runs out of code. As for SASIL code, SASIL doesn't support global code. With either derivative, use return to end a procedure explicitly. All procedures implicitly end when they run out of code.
  • DEF/FN—Just use normal ASIL functions instead.
  • &/CALL—Use external procedures instead.
  • STORE/RECALL—AppleSoft used these commands for operating tape drives. Given tape isn't used anymore...
  • WAIT—Use a timer instead.
  • HIMEM/LOMEM—AppleSoft used these for something related to memory range control. The ASIL replacement would it's memory management services.
  • TRACE/NOTRACE—Use a modern debugger instead.
  • POP—Use return instead.
  • TEX/TEXT/All other AppleSoft graphics commands—ASIL doesn't specify any screen modes.


None yet, but that might change as ASIL is compared to BASIC. Something might have been missed.


: (the statement delimiter from BASIC)—A pet peeve of ASIL's creator is multiple statements on one line. This makes it harder to debug code in cases. Without this delimiter, fewer bugs will hide.


Wiki: Derivatives-DASIL
Wiki: Derivatives-SASIL
Wiki: Home
Wiki: keywords-catch
Wiki: keywords-if
Wiki: keywords-return
Wiki: keywords-switch
Wiki: keywords-try