Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Yabasic
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Interpreter for BASIC software}} {{Infobox programming language | name = Yabasic | screenshot = Samegame yabasic example.png | screenshot caption = '''Yabasic''' running an implementation of [[SameGame]]. | developer = Marc-Oliver Ihm | discontinued = Yesn't | latest_release_version = 2.91.2<ref>{{cite web | url=http://2484.de/yabasic/whatsnew.html | title=Yabasic, Yet another Basic for Unix and Windows }}</ref> | latest_release_date = {{Start date and age|df=yes|2025|03|23}} | operating_system = [[Microsoft Windows]], [[Unix]], [[PlayStation 2|PS2]] | platform = [[x86]], [[MIPS architecture|MIPS]] [[Emotion Engine|(EE)]] | file_ext = <code>.bas</code>,<code>.yab</code> | license = [[MIT License]] | website = Website: {{URL|www.yabasic.de}} Repository: {{URL|https://github.com/marcIhm/yabasic}} }} '''Yabasic''' ('''Yet Another BASIC''') is a [[Freeware|free]], [[open-source software|open-source]] [[BASIC]] [[Interpreter (computing)|interpreter]] for [[Microsoft Windows]] and [[Unix]] platforms.<ref>{{cite web|author=Marc-Oliver Ihm |url=http://www.yabasic.de |title=Yabasic, Yet another Basic for Unix and Windows |publisher=Yabasic.de |access-date=2013-04-22}}</ref> Yabasic was originally developed by Marc-Oliver Ihm, who released the last stable version 2.91.2 in 2025. From version 2.77.1, the project has adopted the [[MIT Licence|MIT License]] as well as the source code being moved to [[GitHub]] to encourage others to participate in its development.<ref>{{Citation|last=Ihm|first=Marc|title=marcIhm/yabasic|date=2020-04-03|url=https://github.com/marcIhm/yabasic|access-date=2020-04-21}}</ref> ==Features== * No line numbers (they can be used but are optional) * [[2D computer graphics|Line graphics]] in color * [[Structured programming]]—various [[Block (programming)|block structures]], named [[subroutines]] with local variables and return values * Code modules/[[Library (computer science)|libraries]] with separate [[namespaces]] (On the other hand, [[Composite type|composite data structures]] are missing) * Option to use a [[graphical user interface]] based on the [[GTK]] library * [[Self-modifying code]] * "Binding" a Yabasic program to the interpreter, creating a standalone [[executable]] in a single file ==Other versions== ===Yab=== A version optimized for [[BeOS]], [[ZETA (operating system)|ZETA]] and [[Haiku]].<ref>{{cite web|url=https://besly.de/index.php/development/yab-2/yab-beginners-tutorial|first=Christian|last=Albrecht|title=yab Beginners tutorial|website=BeSly - BeOS, Haiku & Zeta|date=2022-10-02|access-date=2024-02-25|others=Translation by Luc Schrijvers (Begasus)}}</ref> === Flyab === A port of Yabasic to the [[Fltk]] toolkit called "Flyab" was under development. It would have been source-compatible with programs written in yab, a variant of Yabasic that enables graphical programs to be written using the [[BeOS]] [[API]]. After [[BeOS]] and its successor [[Magnussoft ZETA|ZETA]] finally were gone, the team members around yab for BeOS decided to move to Linux and therefore chose [[FLTK]] to implement the UI parts. Ports for Microsoft Windows, [[Mac OS X]], and Linux would have been possible. Flyab added the ability to Yabasic to create native graphical user interfaces on all supported platforms. Main difficulty was to fully implement the layout commands to FLTK, as used from the BeOS version. {{Citation needed|date=September 2011}} As of November 2008, the project appears to be halted. ===PlayStation 2=== Sony also packaged a version of Yabasic for the [[PlayStation 2]] on the demo disc<ref>Archived at [https://ghostarchive.org/varchive/youtube/20211211/ZnXpzczPc38 Ghostarchive]{{cbignore}} and the [https://web.archive.org/web/20200229101139/https://www.youtube.com/watch?v=ZnXpzczPc38 Wayback Machine]{{cbignore}}: {{Citation|last=Cameron Gray|title=How/Why Sony Classed the PlayStation 2 as a Home Computer - Demo of Yabasic|date=2018-02-26|url=https://www.youtube.com/watch?v=ZnXpzczPc38|access-date=2018-02-26}}{{cbignore}}</ref> shipped with PS2 consoles in PAL territories so it could be considered a home computer, not just a games machine, thus bypassing European import taxes.<ref name="The Register">{{cite web|last1=Smith|first1=Tony|title=Sony adds Basic to PlayStation to sidestep EC import tax|website=[[The Register]] |url=https://www.theregister.co.uk/2000/11/07/sony_adds_basic_to_playstation/|date=2000-07-11|access-date=8 September 2014}}</ref> ===Yabasic 3.0 (Unofficial)=== As a continuation of the project prior to new changes by the original author, version 3 was being developed by a team centered on Pedro Sá and Thomas Larsen, but development has halted and the project now appears to be abandoned.{{Citation needed|date=March 2019}} ==Yabasic example== <syntaxhighlight lang="Basic"> #!/usr/bin/yabasic REM Program Name: cbm-mtudemo.yab REM Author: mtu REM REM Purpose: demonstration for their CBM-PET graphics card 320x200 open window 320, 200 20 P=160: Q=100 30 XP=144: XR=1.5*3.1415927 40 YP=56: YR=1: ZP=64 50 XF=XR/XP: YF=YP/YR: ZF=XR/ZP 60 FOR ZI=-Q TO Q-l 70 IF ZI<-ZP OR ZI>ZP GOTO 150 80 ZT=ZI*XP/ZP: ZZ=ZI 90 XL=INT(0.5+SQRT(XP*XP-ZT*ZT)) 100 FOR XI=-XL TO XL 110 XT=SQRT(XI*XI+ZT*ZT)*XF: XX=XI 120 YY=(SIN(XT)+0.4*SIN(3.0*XT))*YF 130 GOSUB 170 140 NEXT XI 150 NEXT ZI 160 PAUSE 10 END 170 X1=XX+ZZ+P 180 Y1=YY-ZZ+Q:Y1=199-Y1 190 LINE X1,Y1,X1,Y1-1 200 IF Y1=0 GOTO 220 210 CLEAR LINE X1,Y1+1,X1,199 220 RETURN </syntaxhighlight> ==References== {{reflist}} ==External links== * {{Official website|www.yabasic.de}} — Downloads and documentation for Yabasic 2.90.2 * [https://github.com/marcIhm/yabasic/ Yabasic GitHub] — Source code for Yabasic on GitHub. {{Use dmy dates|date=March 2020}} {{BASIC}} [[Category:Articles with example BASIC code]] [[Category:BASIC interpreters]] [[Category:BASIC programming language family]] [[Category:Software using the MIT license]] [[Category:Free and open source interpreters]] [[Category:Procedural programming languages]] [[Category:Linux programming tools]] [[Category:Programming tools for Windows]] [[Category:Programming languages created in 1995]]
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:BASIC
(
edit
)
Template:Cbignore
(
edit
)
Template:Citation
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Official website
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Search
Search
Editing
Yabasic
Add topic