2.90.2 / 6 January 2022
|Operating system||Windows, Unix|
Yabasic (Yet Another BASIC) is a free, open-source BASIC interpreter for Windows and Unix platforms. Yabasic was originally developed by Marc-Oliver Ihm, who released the last stable version 2.77.3 in 2016. From version 2.77.1, the project has adopted the MIT License as well as the source code being moved to GitHub to encourage others to participate in its development.
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 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 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. As of November 2008, the project appears to be halted.
Sony also packaged a version of Yabasic for the PlayStation 2 on the demo disc 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.
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.
#!/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