WalterBright 15 hours ago

> a new BASIC interpreter for the 1983 Mattel ECS add-on for Intellivision

Fun fact: Hal Finney (yes, that Hal) wrote a BASIC interpreter for the Intellivision back in 1978 or so in a weekend. It was 2K of code. Mattel shipped it on a cartridge.

ROM space was so tight, the only error message it produced was:

    EH?
Which Hal was very proud of. He showed it to me to make me laugh. At the time I was programming the Mattel Intellivision Roulette cartridge.
  • jacquesm 14 hours ago

    That's hilarious. I wonder how many corners he cut on that. Is there a disassembly floating around somewhere?

    • WalterBright 4 hours ago

      It was written in assembly.

      I don't know that any listings were kept. It never occurred to me to save any of mine. Oh well.

      • jacquesm 4 hours ago

        Likewise, I've lost all of my code from the 8 bit era, no big deal, really, but it would have been fun to read some of it.

        One of the more interesting projects was to make an annotated listing of the 6809 version of MS Basic for the Dragon 32. We learned so much just by studying that code. It was only 16K and yet we spent months on that.

        And for stuff we wrote ourselves, a real-time 3D renderer for simple 3D models in 6502 assembly was probably the pinnacle.

  • bitwize 13 hours ago

    The Level I BASIC for the TRS-80 (which only shipped with 4 KiB of memory originally) had three error messages: WHAT? (syntax errors and the like); HOW? (illegal operations like divide by zero); and SORRY (out of memory).

    BootOS, the 512-byte OS written by Oscar Toledo (author of this article), also has a single error message, "Oops".

kragen 17 hours ago

Very impressive, as usual! I've never written a 100-page assembly program in my life, much less in one month. The string stack part reminded me of http://turboforth.net/downloads/docs/ANS_String_Lib.pdf, with the same motivation of handling string expressions in limited memory without needing a GC.

  • nanochess 5 hours ago

    First time I heard of it. I should know better as the TI-99/4A forum is just one click away from the Intellivision forum. Thanks for the heads up!

    • kragen an hour ago

      I'm delighted to have been of service!

nobody_special 12 hours ago

I wrote a BASIC interpreter that supported integers and strings circa 1979. Written in assembly, it used a simple precedence parser. I measured its CPU utilization under cpu-intensive loads: ~9.5% for lexical/token analysis, ~20% for the parser, and ~69.5% for semantic work.

It was a lot of fun. The assembler I used was really powerful; I used its macro facilities to create ‘rule’ macros that defined the BNF of the language.

Congrats on your own implementation!

le-mark 21 hours ago

This is a very impressive project a really informative post, thanks to the author! There used to be a lot of content like this on the internet, I miss those days.

moron4hire 21 hours ago

Back in 2014, I stumbled on the original source code for the first version of Oregon Trail, which was written in a suspect of BASIC for a timeshare system used by the public schools in Minnesota (probably not the version you're thinking of https://en.wikipedia.org/wiki/The_Oregon_Trail_(1971_video_g...).

I was really into VR at the time and had been working on live-programmable VR environments, primarily through a text editor component that could render to a 3D object texture. As a demo of the component, I wrote a good-enough BASIC interpreter to ruin the Oregon Trail code.

Writing the interpreter was actually a lot of fun and not that hard, considering I already had a lot of code for processing code syntax for the syntax highlighting feature of the code editor.

Sadly, Web standards have changed a bit too much, I couldn't get traction on my project after Mozilla's AFrame released, so now it's some broken code sitting in a GitHub repo somewhere.

  • zahlman 18 hours ago

    > a suspect of BASIC

    subset?

    • moron4hire 16 hours ago

      Dialect. Didn't notice the auto-incorrect.

pjmlp 15 hours ago

Very interesting, this is kind of cool.

Razengan a day ago

Ah the Aquarius :) My uncle got one as a donation to his private little "museum" and all I remember was how different it looked from the other machines of that era and a game that taught you spelling by shooting down letters Space Invaders style.

  • zahlman 18 hours ago

    > a game that taught you spelling by shooting down letters Space Invaders style.

    Sure it wasn't meant to teach typing? (Maybe I'm thinking of a different game...)

    • Razengan 13 hours ago

      Oh yes maybe typing, same thing to me ^^