97 pointsby nanochess21 hours ago7 comments
  • WalterBright10 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.
    • jacquesm8 hours ago
      That's hilarious. I wonder how many corners he cut on that. Is there a disassembly floating around somewhere?
    • bitwize8 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".

  • kragen12 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.
  • nobody_special7 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-mark16 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.
  • pjmlp10 hours ago
    Very interesting, this is kind of cool.
  • moron4hire16 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.

    • zahlman12 hours ago
      > a suspect of BASIC

      subset?

      • moron4hire11 hours ago
        Dialect. Didn't notice the auto-incorrect.
  • Razengan21 hours 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.
    • zahlman12 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...)

      • Razengan8 hours ago
        Oh yes maybe typing, same thing to me ^^