Discussion
Loading...

#Tag

Log in
  • About
  • Code of conduct
  • Privacy
  • Users
  • Instances
  • About Bonfire
'(vidak) _(:3」∠)_
'(vidak) _(:3」∠)_
@dirtycommo@anticapitalist.party  ·  activity timestamp last week

BASIC ideas:

- BASIC written in Arduino assembly again
- BASIC written in Common Lisp
- yet another 6502 BASIC

Common Lisp (SBCL) ideas:

- a line editor in Common Lisp
- a static site generator the way i actually like to do it... in Common Lisp

special mention:

- try and remove the C primitives from emacs again
- look into guilemacs again

#ideas #showerthoughts #daydreaming #commonlisp #basic #6502 #arduino #emacs #lisp #elisp #commonlisp #projects #passionprojects #hobbies #guile

  • Copy link
  • Flag this post
  • Block
'(vidak) _(:3」∠)_ boosted
Digital Mark λ ☕️ 🕹 👽
Digital Mark λ ☕️ 🕹 👽
@mdhughes@appdot.net  ·  activity timestamp last week

Poking thru Compute!, March 1983, there's a mini-language designed by Bill Wilkinson! (BASIC XL, Action!, C/65)
https://archive.org/details/1983-03-compute-magazine/page/192/mode/2up

Bill shares my loathing of algebraic math in mini-languages: "No precedence of operators."

#retrocomputing #basic #atari

3 media
INSIGHT Atari
Bill Wilkinson
Almost BASIC
BAIT Statements
INSIGHT Atari Bill Wilkinson Almost BASIC BAIT Statements
INSIGHT Atari Bill Wilkinson Almost BASIC BAIT Statements
This Month's Listing
This Month's Listing
This Month's Listing
listing, 1 page
listing, 1 page
listing, 1 page
  • Copy link
  • Flag this post
  • Block
Digital Mark λ ☕️ 🕹 👽
Digital Mark λ ☕️ 🕹 👽
@mdhughes@appdot.net  ·  activity timestamp last week

Poking thru Compute!, March 1983, there's a mini-language designed by Bill Wilkinson! (BASIC XL, Action!, C/65)
https://archive.org/details/1983-03-compute-magazine/page/192/mode/2up

Bill shares my loathing of algebraic math in mini-languages: "No precedence of operators."

#retrocomputing #basic #atari

3 media
INSIGHT Atari
Bill Wilkinson
Almost BASIC
BAIT Statements
INSIGHT Atari Bill Wilkinson Almost BASIC BAIT Statements
INSIGHT Atari Bill Wilkinson Almost BASIC BAIT Statements
This Month's Listing
This Month's Listing
This Month's Listing
listing, 1 page
listing, 1 page
listing, 1 page
  • Copy link
  • Flag this post
  • Block
'(vidak) _(:3」∠)_ boosted
psf
psf
@psf@oldbytes.space  ·  activity timestamp 2 weeks ago

While I was working on this, the article Python Numbers Every Programmer Should Know appeared on the orange website. In #LuaLang, and on a 16-bit target, these overheads are less -- for example, a number weighs 10 bytes instead of 24 bytes -- but overheads don't have much place to hide on a small, slow machine.

(Btw numbers cost 7 bytes each in 8-bit Microsoft BASIC so Lua isn't gratuitously inefficient here, even by the standards of 50 years ago.)

One place that makes overhead really obvious: a 64K segment holds a table of length, at most, 4,096 entries. That's 40,960 bytes, and Lua's strategy is to double allocation size every time it wants to grow the table. 2 x 40,960 exceeds a 64K segment, so 4,096 entries is the growth limit.

On a 640K machine, after deducting the ~250K (!) size of the interpreter (which is also fully loaded into RAM), you'll get maybe five full segments free if you're lucky. So that's like maybe 20,000 datums total, split across five tables.

Meanwhile a tiny-model #Forth / assembly / C program could handle 20,000 datums in a single segment without breaking too much of a sweat!

The efficiency has costs to programmer time, of course. Worrying about data types, limits, overflows, etc. The kinds of things I was hoping to avoid by using Lua on this hardware -- and to its credit, it does a good job insulating me from them. Its cost is that programs must be rewritten for speed in some other language once out of the rapid prototyping phase and having reasonable speed / data capacity becomes important.

I'd estimate the threshold where traditional interpreters like Lua become okay for finished/polished software of any significant scope, is somewhere around 2MB RAM / 16MHz. So think, like, a base model 386. Maybe this is why the bulk of interpreters available in DOS are via DJGPP which requires a 386 or better anyway.

#BASIC was of course used on much smaller hardware, but was famously unsuited to speed or to large programs / data.

I know success stories for #Lisp in kilobytes of memory, but I'm not quite sure how they do it / to what extent the size of the interpreter, and overhead of data representation (tags + cons representation), eats into available memory and limits the scope of the program, as seen with other traditional interpreters.

This is beginning to explain why #Forth has such a niche on small systems. It has damn near zero size overhead on data structures. (The only overhead is for the interpreter core (a few K) and storing string names in the dictionary (which can be eliminated via various tricks)). ~1x size and ~10x speed overhead is the bargain of the century to unlock #repl based development. However, you're still stuck with the agonizing pain of manual memory management and numeric range problems / overflows. Which is probably why the world didn't stop with Forth, but continued on to bigger interpreters.

#retrocomputing

  • Copy link
  • Flag this post
  • Block
'(vidak) _(:3」∠)_ boosted
Federation Bot
Federation Bot
@Federation_Bot  ·  activity timestamp 2 weeks ago

Esta es otra forma de programar en Basic ZX Spectrum.

Redacto el programa en Basic en un editor de texto como nano y lo convierto en cassette de formato .tap con bas2tap, un programita genial hecho por Martijn van der Heide, el creador de la web World of Spectrum.

Es mucho más cómodo programar con el portátil desde GNU/Linux que con el The Spectrum.

#Basic #TheSpectrum #bas2tap

Imagen de la terminal de GNU/Linux en la que converto un programa de Basic en archivo de cassette de formato .tap para Spectrum con el programa bas2tap de Martijn van der Heide y se ve el contenido del programa en Basic.
Imagen de la terminal de GNU/Linux en la que converto un programa de Basic en archivo de cassette de formato .tap para Spectrum con el programa bas2tap de Martijn van der Heide y se ve el contenido del programa en Basic.
Imagen de la terminal de GNU/Linux en la que converto un programa de Basic en archivo de cassette de formato .tap para Spectrum con el programa bas2tap de Martijn van der Heide y se ve el contenido del programa en Basic.
  • Copy link
  • Flag this post
  • Block
'(vidak) _(:3」∠)_
'(vidak) _(:3」∠)_
@dirtycommo@anticapitalist.party  ·  activity timestamp 2 weeks ago

i think the little game i have been coding in BASIC has been coming together quite well

https://git.sr.ht/~vidak/oats-for-my-goats

#basic #programming #gamedev

  • Copy link
  • Flag this post
  • Block
'(vidak) _(:3」∠)_
'(vidak) _(:3」∠)_
@dirtycommo@anticapitalist.party  ·  activity timestamp 2 weeks ago

Arrays and string arrays in BASIC are simple and powerful.

I like the syntax-- A(B,C) or S$(B).

Makes me wonder. Writing a BASIC interpreter with a strong focus on the power of DIM and array operations would be interesting.

#retrocode #retrogame #retrogaming #basic #coding

  • Copy link
  • Flag this post
  • Block
'(vidak) _(:3」∠)_ boosted
People's Permacomputer Project
People's Permacomputer Project
@permacomputer@retro.social  ·  activity timestamp 2 weeks ago

currently live coding in BASIC

https://spectra.video/w/jvves1Y5zC7f7uZpqETm4x

#livecoding #live #basic #retrocomputing #retro #retrogames #retrogaming

  • Copy link
  • Flag this post
  • Block
People's Permacomputer Project
People's Permacomputer Project
@permacomputer@retro.social  ·  activity timestamp 2 weeks ago

currently live coding in BASIC

https://spectra.video/w/jvves1Y5zC7f7uZpqETm4x

#livecoding #live #basic #retrocomputing #retro #retrogames #retrogaming

  • Copy link
  • Flag this post
  • Block
Federation Bot
Federation Bot
@Federation_Bot  ·  activity timestamp 2 weeks ago

Esta es otra forma de programar en Basic ZX Spectrum.

Redacto el programa en Basic en un editor de texto como nano y lo convierto en cassette de formato .tap con bas2tap, un programita genial hecho por Martijn van der Heide, el creador de la web World of Spectrum.

Es mucho más cómodo programar con el portátil desde GNU/Linux que con el The Spectrum.

#Basic #TheSpectrum #bas2tap

Imagen de la terminal de GNU/Linux en la que converto un programa de Basic en archivo de cassette de formato .tap para Spectrum con el programa bas2tap de Martijn van der Heide y se ve el contenido del programa en Basic.
Imagen de la terminal de GNU/Linux en la que converto un programa de Basic en archivo de cassette de formato .tap para Spectrum con el programa bas2tap de Martijn van der Heide y se ve el contenido del programa en Basic.
Imagen de la terminal de GNU/Linux en la que converto un programa de Basic en archivo de cassette de formato .tap para Spectrum con el programa bas2tap de Martijn van der Heide y se ve el contenido del programa en Basic.
  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 2 weeks ago

A Basic Just-in-Time Compiler

https://nullprogram.com/blog/2015/03/19/

#HackerNews #A #Basic #Just-in-Time #Compiler #programming #compiler #technology #just-in-time #learning

A Basic Just-In-Time Compiler

  • Copy link
  • Flag this post
  • Block
psf
psf
@psf@oldbytes.space  ·  activity timestamp 2 weeks ago

By 100x speed difference, I mean the uu encoding/decoding rate is about 30 bytes per second. I'm not accustomed to a correct program being this catastrophically slow ;)

Not throwing shade at #LuaLang for the 100x speed difference: it's astonishing that a modern interpreter can be built for a 4.77 MHz 8088 and run at usable, if lukewarm, speeds. The 100x size difference comes down to the interpreter including Lua's full library, most of which isn't needed for all programs.

If I had to guess, I'd expect most of the time to be spent in string operations and syscalls. Lua translates file contents to (immutable) string when reading, so more conversions are necessary to perform transformations and output results. Moreover, when writing output the program does f:write() 3-4 bytes at a time: if this were unbuffered and translating directly to hundreds of write syscalls, that would also be very slow.

#retrocomputing

psf
psf
@psf@oldbytes.space replied  ·  activity timestamp 2 weeks ago

While I was working on this, the article Python Numbers Every Programmer Should Know appeared on the orange website. In #LuaLang, and on a 16-bit target, these overheads are less -- for example, a number weighs 10 bytes instead of 24 bytes -- but overheads don't have much place to hide on a small, slow machine.

(Btw numbers cost 7 bytes each in 8-bit Microsoft BASIC so Lua isn't gratuitously inefficient here, even by the standards of 50 years ago.)

One place that makes overhead really obvious: a 64K segment holds a table of length, at most, 4,096 entries. That's 40,960 bytes, and Lua's strategy is to double allocation size every time it wants to grow the table. 2 x 40,960 exceeds a 64K segment, so 4,096 entries is the growth limit.

On a 640K machine, after deducting the ~250K (!) size of the interpreter (which is also fully loaded into RAM), you'll get maybe five full segments free if you're lucky. So that's like maybe 20,000 datums total, split across five tables.

Meanwhile a tiny-model #Forth / assembly / C program could handle 20,000 datums in a single segment without breaking too much of a sweat!

The efficiency has costs to programmer time, of course. Worrying about data types, limits, overflows, etc. The kinds of things I was hoping to avoid by using Lua on this hardware -- and to its credit, it does a good job insulating me from them. Its cost is that programs must be rewritten for speed in some other language once out of the rapid prototyping phase and having reasonable speed / data capacity becomes important.

I'd estimate the threshold where traditional interpreters like Lua become okay for finished/polished software of any significant scope, is somewhere around 2MB RAM / 16MHz. So think, like, a base model 386. Maybe this is why the bulk of interpreters available in DOS are via DJGPP which requires a 386 or better anyway.

#BASIC was of course used on much smaller hardware, but was famously unsuited to speed or to large programs / data.

I know success stories for #Lisp in kilobytes of memory, but I'm not quite sure how they do it / to what extent the size of the interpreter, and overhead of data representation (tags + cons representation), eats into available memory and limits the scope of the program, as seen with other traditional interpreters.

This is beginning to explain why #Forth has such a niche on small systems. It has damn near zero size overhead on data structures. (The only overhead is for the interpreter core (a few K) and storing string names in the dictionary (which can be eliminated via various tricks)). ~1x size and ~10x speed overhead is the bargain of the century to unlock #repl based development. However, you're still stuck with the agonizing pain of manual memory management and numeric range problems / overflows. Which is probably why the world didn't stop with Forth, but continued on to bigger interpreters.

#retrocomputing

  • Copy link
  • Flag this comment
  • Block
daltux
daltux
@daltux@snac.daltux.net  ·  activity timestamp 2 weeks ago

O único jogo de macaco (ou gorila?) que consigo lembrar agora vinha de exemplo com MS QBASIC e/ou com MS-DOS 6, salvo engano. Embora também não me lembre do nome disso, mas achava divertido. Tinha que dizer a força e o ângulo da banana a ser arremessada pra ver se atingia o gorila do outro lado. harold

Algo assim.

#old #dev #basic

  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 3 weeks ago

tc-ematch(8) extended matches for use with "basic", "cgroup" or "flow" filters

https://man7.org/linux/man-pages/man8/tc-ematch.8.html

#HackerNews #tc-ematch #extended #matches #basic #cgroup #flow #filters #Linux

tc-ematch(8) - Linux manual page

  • Copy link
  • Flag this post
  • Block
Hacker News
Hacker News
@h4ckernews@mastodon.social  ·  activity timestamp 3 weeks ago

NMH BASIC

https://t3x.org/nmhbasic/index.html

#HackerNews #NMH #BASIC #NMH #BASIC #programming #Hacker #News #tech #news #coding

T3X.ORG nmhbasic/index

  • Copy link
  • Flag this post
  • Block
@reiver ⊼ (Charles) :batman: boosted
Profoundly Nerdy
Profoundly Nerdy
@profoundlynerdy@bitbang.social  ·  activity timestamp last month

If BASIC were to reinvent itself for the modern era, not as a nostalgia exercise, what would it look like? What niche would it fill? Could it ever be a proper sysadmin tool like it was in the 8 and 16 bit eras? #programming #linux #windows #freebsd #openbsd #sysadmin #basic

  • Copy link
  • Flag this post
  • Block
Profoundly Nerdy
Profoundly Nerdy
@profoundlynerdy@bitbang.social  ·  activity timestamp last month

If BASIC were to reinvent itself for the modern era, not as a nostalgia exercise, what would it look like? What niche would it fill? Could it ever be a proper sysadmin tool like it was in the 8 and 16 bit eras? #programming #linux #windows #freebsd #openbsd #sysadmin #basic

  • Copy link
  • Flag this post
  • Block
µP
µP
@stefanhoeltgen@mastodon.social  ·  activity timestamp 2 months ago

Unfolding "Die große #BASIC Referenztabelle der 51 Dialekte" - a chart that compares 51 different BASIC dialects, published in 1984:

https://d-nb.info/840244142

(Get your own copy: https://www.ebay.com/itm/276431614056)

3 media
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
Sorry, no caption provided by author
  • Copy link
  • Flag this post
  • Block
Nils M Holm
Nils M Holm
@AverageDog@mastodon.social  ·  activity timestamp 2 months ago

The latest prototype of my tiny BASIC interpreter can save programs in CCITT-2 encoding, so it can in theory write programs to 5-channel paper tape. I have a paper tape punch, but it has an RS530 interface, so I need a converter to RS232, which seems to be hard to come by these days. I bought a used one that is supposed to be in "good working condition", but comes without any documentation. Why am I even doing this? :)
#retrocomputing #papertape #baudot #BASIC

  • Copy link
  • Flag this post
  • Block
Marc boosted
Lord Doctor Olle W
Lord Doctor Olle W
@ollej@hachyderm.io  ·  activity timestamp 3 months ago

I finally received my PicoCalc yesterday. I’ve installed the included pico and tried out a simple basic program.

Now it’s time to start modifying it. I’m going to upgrade to a Pico 2W, and try out the python firmware.

After that I’m going to try compiling a Rust program for it.

#PicoCalc #Rust #RustLang #Python #Basic

4 media
Photo of the Clockwork PicoCalc. It kind of looks like a graph calculator, but with a qwerty keyboard.
Photo of the Clockwork PicoCalc. It kind of looks like a graph calculator, but with a qwerty keyboard.
Photo of the Clockwork PicoCalc. It kind of looks like a graph calculator, but with a qwerty keyboard.
Photo of a gray box containing the PicoCalc.
Photo of a gray box containing the PicoCalc.
Photo of a gray box containing the PicoCalc.
Photo of unboxing the PicoCalc. There is an instruction manual to the left and the top case with keyboard to right. Where the screen should be there are a Raspberry Pico and an SD card.
Photo of unboxing the PicoCalc. There is an instruction manual to the left and the top case with keyboard to right. Where the screen should be there are a Raspberry Pico and an SD card.
Photo of unboxing the PicoCalc. There is an instruction manual to the left and the top case with keyboard to right. Where the screen should be there are a Raspberry Pico and an SD card.
Photo of the naked PCB of the PicoCalc with the Raspberry Pico mounted on top.
Photo of the naked PCB of the PicoCalc with the Raspberry Pico mounted on top.
Photo of the naked PCB of the PicoCalc with the Raspberry Pico mounted on top.
  • Copy link
  • Flag this post
  • Block

bonfire.cafe

A space for Bonfire maintainers and contributors to communicate

bonfire.cafe: About · Code of conduct · Privacy · Users · Instances
Bonfire social · 1.0.1-beta.35 no JS en
Automatic federation enabled
Log in
  • Explore
  • About
  • Members
  • Code of Conduct