Now, if you have been following the development of EndBASIC, this is not surprising. The defining characteristic of the EndBASIC console is that it’s hybrid as the video shows. What’s newsworthy, however, is that the EndBASIC console can now run directly on a framebuffer exposed by the kernel. No X11 nor Wayland in the picture (pun intended).
But how? The answer lies in NetBSD’s flexible wscons framework, and this article dives into what it takes to render graphics on a standard Unix system. I’ve found this exercise exciting because, in the old days, graphics were trivial (mode 13h, anyone?) and, for many years now, computers use framebuffer-backed textual consoles. The kernel is obviously rendering “graphics” by drawing individual letters; so why can’t you, a user of the system, do so too?
↫ Julio Merino
This opens up a lot of interesting use cases and fun hacks for developers to implement in their CLI applications. All the code in the article is – as usual – way over my head, but will be trivial for quite a few of you.
The mentioned EndBASIC project, created by the author, Julio Merino, is fascinating too:
EndBASIC is an interpreter for a BASIC-like language and is inspired by Amstrad’s Locomotive BASIC 1.1 and Microsoft’s QuickBASIC 4.5. Like the former, EndBASIC intends to provide an interactive environment that seamlessly merges coding with immediate visual feedback. Like the latter, EndBASIC offers higher-level programming constructs and strong typing.
EndBASIC’s primary goal is to offer a simplified and restricted DOS-like environment to learn the foundations of programming and computing, and focuses on features that quickly reward the learner. These include a built-in text editor, commands to manipulate the screen, commands to interact with shared files, and even commands to interact with the hardware of a Raspberry Pi.
↫ EndBASIC website
Being able to run this on a machine without having to load either X or Wayland is a huge boon, and makes it accessible fast on quite a lot of hardware on which a full X or Wayland setup would be cumbersome or slow.
As for “EndBASIC” I turned it on, typed “10 Print “hello world!” and it did that in direct mode instead of memorizing it as a program line. I had no experience with Amstrad computers (back in the day I used other 8-bit computers) but I guess they didn’t work that way either.
For the online EndBASIC, to create a program you need to type ‘edit’ and this will take you into an editor. Press ESCAPE to leave the editor, then type ‘run’ to run it.
It doesn’t feature procedures and functions yet, but looks quite complete for a BASIC.
It does support procedures and functions since 0.11! https://www.endbasic.dev/docs.html#lang-callables
They cannot be used from the REPL across multiple “invocations” though… for “reasons”. I need to fix that.
My mistake! I read the GOSUB section, which said that EndBASIC “does not yet support defining custom functions nor procedures” and I didn’t notice the section lower called “User-defined functions and subroutines”!
Great work, btw!
Oh I see. I have fixed the text under that section! Thanks for clarifying.
Making me think about this video :
Retro MS-DOS Coding – Recreating the Iconic Award BIOS Screen : https://www.youtube.com/watch?v=uAHGKanqO6s
Interesting comments.