Is Microsoft BASIC Hidden In This Educational Child’s Toy?

The VTech PreComputer 1000 is a rather ancient toy computer that was available in the distant misty past of 1988. It featured a keyboard and a variety of simple learning games, but does it also feature Microsoft BASIC? [Robin] of 8-Bit Show and Tell dove in to find out.

Officially, the PreComputer was programmable in a form of BASIC, referred to by VTech as PRE-BASIC V1.0. Given that the system has a Z80 CPU and there’s little information in the manual about this programming language, [Robin] was suspicious as to whether it was based on Microsoft BASIC-80. Thus, an examination was in order to figure out just how this BASIC implementation worked, and whether it shared anything with Microsoft’s own effort.

We won’t spoil the conclusions, but there are some strong commonalities between VTech’s BASIC and Microsoft’s version from this era. The variable names in particular are a strong hint as to what’s going on under the hood. The video is worth a watch for anyone that’s a fan of early microcomputer history, BASIC, or just the weird computer-like devices of yesteryear. We also love the idea that the PreComputer 1000 was actually quite a capable machine hiding behind a single-line LCD display.

24 thoughts on “Is Microsoft BASIC Hidden In This Educational Child’s Toy?

  1. “We also love the idea that the PreComputer 1000 was actually quite a capable machine hiding behind a single-line LCD display.”

    Hackers first computer. Well, got to start them early.

    1. What’s severely missing though is any type of access to the outside world.
      No PEEK, POKE or IN, OUT.

      IRL, kids started to tinker with electronics by building a crystal radio or a magnet, a house telephone or a torch light.

      Even back in the 80s, there were cheap ZX81 machines out there that could do interface with the outside world.
      Magazines Elexis, Popular Electronics etc had described such interfaces w/ schematics.

      Sure, this learning computer is cool, though it never had been very special, either.

      Those who couldn’t afford a real C64 or Apple II financially could get hold on various clones.
      ZX81, Apple II, ZX Spectrums etc had at least over 100 clones each.

      And that’s were the real fun starts.
      Working with robot arms, building interface cards, interfering a thermistor to a paddle input to read temperature.

      Anyway, these are just my two cents.
      People in the 80s, including kids, weren’t without expectations.
      They had a certain amount of minimum requirements that had to be met.

      1. The closest to an output method would be PLAY command, maybe.

        By using different audio frequencies, an external analogue circuit could recognize them and do various actions.
        Like activating different relays. A seriesof flip-flops could make sure that the toy computer wouldn’t need to output audio all the time.

      2. PEEK and POKE cannot be understated. I had an Amiga 2000 and Amiga Basic to fill a LOT of my time in elementary school. I just wanted to write games, and pushed the language to its limits. I had a books about both Pascal and C, but no compiler. It killed me to see all that power to manipulate the sprite/blitter engines, but couldn’t actually make the call until I learned (via other reading) that I could make them work from basic.

        Thirty years later, I’m an embedded developer – watching these kids come up with devices designed to PREVENT the way I learned from EVER happening.

        1. Around 2012, one of the IT staff told me they were interested in programming a little, i brought in a breadboard with a PIC on it, wrote a quick little c program to flash some leds and let them run wild with tweaking it. – it was the physical part that really got her going. today, she also does embedded work

    2. Even as a gen z “kid”, this thing is still pretty neat.

      Though, VTECH’s Talking Whiz Kid Plus is the better edutainment toy IMO. That thing has voice synthesis/LPC (curtesy of TI), full sound sample playback, and (honestly) better games.

      It does not, however, have a basic interpreter. That thing runs on some mystery microcontroller and simply doesn’t have enough ram to do it.

  2. Back in 80s Germany, we called these Z80 single-board computers “EMUFs”, I believe.

    What’s missing though is an Z80 SIO, to attach a serial ASCII terminal. And a bit of RAM.
    With 48KB, it could run CP/M and true MBASIC atop of it. Or Turbo Pascal.
    A ROM holding a ROM disk of CP/M would be needed, too, maybe.

    Anyhow, the Z80 is the most precious component here, maybe.
    Back in the 80s, VTech made real computers, still.
    ZX81 compatibles, PC compatibles, Apple II compatibles etc.

    Wasn’t the “Laser” line related to VTech, too?
    I don’t know for sure right now.

  3. Quick answer: yes. I’ve known this for a few years now. It’s definitely patched from a TRS-80 Model I or Model III rom, possibly even via some unknown TRS-80 clone. Lots of keywords were simply zapped to disable them, while keeping the same token values. Then the unused code was replaced with their own changes. And the other half of the rom (bank switched) is just your usual “math quiz” toy computer stuff.

    But it is definitely from the TRS-80, since the code for SET/RESET graphics is still there. That particular code is completely useless without the TRS-80 video display circuitry.

    1. the ROM can be analyzed with the “BASCK” tool contained in the Z88DK package:

      # Specific Z80 CPU code detected

      # Microsoft 8080/Z80 BASIC found
      # Earlier version
      # Microsoft signature not found

      BASTXT = $FFFFFFFF ; BASIC program start ptr (aka TXTTAB)

      # DCOMPR/CPDEHL (compare DE and HL), code found at $5C8F

      INPORT = $4094 ; Current port for ‘INP’ function
      OTPORT = $4097 ; Current port for ‘OUT’ statement
      TMPSTR = $40D3 ; aka DSCTMP, temporary string
      CURPOS = $40A6 ; Character position on line (TTYPOS on Ext. Basic)
      VARTAB = $40F9 ; ; BASIC program end ptr (a.k.a. PROGND, Simple Variables)

      […]

  4. I had one of those when I was a kid. I can still hear the 8bit music tones.

    A few years ago I was visiting my mother and came across it. I took it home and the LCD was bad. Cracked it open and saw the z80. I ended up pulling out the main board and modified the main board so much it looked like it went into a meat grinder. I was able to run CPM on it and controlled it via a serial terminal.

  5. If Commodore had just released a C compiler with the Amiga, I bet it would still be around today. Charging extra for the tools to make your hardware useable was a short sighted mistake INSHO.

    And I say this as someone who got an Amiga 1000 back in the day when they first came out. With the 256k expansion board as well. My parents were nice to me that Xmas/Birthday. :-)

    But the cost of the Lattice-C compiler, or any compiler, made exploiting the system beyond a games and BBS engine hard.

    1. Those systems were largely programmed either in assembly or in an interpreted language; compilers really weren’t a big thing in personal computers until the 90’s, and neither was free software.

      Didn’t seem to stop people writing a huge amount of software on that platform; the real problem was Commodore’s own incompetence at continuously trying to market an artist’s machine to business people and wondering why it wasn’t getting any traction.

  6. I own a french clone called “ORDISAVANT” sold by Yeno. It has an AZERTY keyboard with the french accents (é,è,ç,à,ù) but sadly lacks some special characters like @ and %. I found it on eBay a few months ago and thought “Wait what? Kids in the 80s had real cyberdecks?!”. Being born in 1992 my first (toy) computer was a VTech “laptop” with a dot matrix LCD but no Basic and a much worse keyboard!

  7. I am currently studying this computer too, ROM included, and I can definitively affirm this is the Microsoft BASIC. I compared the code to other ROMs I’ve already studied and, apart from some adaptations due to the machine itself, this is the same code (as for example VG5000, MSX1 or Aquarius)

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.