Posted on

Back to (Tiny) BASICs!

Waaay back in the 1970s one of my goals was to get a high level language, such as Tiny BASIC, running on my KIM-1.  I never quite had enough RAM for BASIC but there was an article in MICRO magazine about a Tiny PILOT which I did get running on my KIM.  One of my goals was to write a Tiny BASIC interpreter for the 6502 using the IL approach proposed in the first few issues of Dr Dobb’s Journal.  While they published source code for several different BASICs, they were always for the 8080, not the 6502.

Every few years I started to work on my own, then shelved the project, lots the floppy disks with the source, etc.  A few months ago I figured it was time to start again, hopefully being able to put it into the KIM Clone board’s EEPROM.  Well, it still has some rough edges, but is basically working:

0200 4C G

Bob's Tiny BASIC

> 10 LET A = 0
> 20 PRINT "This actually works!"
> 30 LET A = A + 1
> 40 IF A < 5 THEN GOTO 20
> 50 PRINT "THERE ARE "; FREE(); " BYTES FREE"
> RUN
This actually works!
This actually works!
This actually works!
This actually works!
This actually works!
THERE ARE 1536 BYTES FREE
>

There are only 26 variables (A to Z), upper case only, and not many functions: ABS(), RND(), FREE().  There are two bugs I’m aware of but probably many more lurking, waiting to be discovered.

Right now it’s ORG’ed to 0200 and takes just under 3K bytes.  The KIM has 5K in that region, 512 bytes reserved for pages 0 and 1, which is why only 1.5K bytes are free.  I still need to add the functions to save/load programs to the SD card system.

If anyone wants to play with the current test version, email me.

Bob

 

Posted on

What’s On the Bench

Sometimes it’s nice to just enhance an existing product, especially when the supply of blank boards starts running low and more need to be ordered.  I’m running low on the SD shields so it was a good time to make some improvements.  This is a prototype:

The changes from the Rev 4 boards:

  • A DS3231 RTC and backup battery are now on-board instead of having the plug-in RTC.  Too many of those plug-in boards had batteries that died within a year or two, so I decided to just put the chip directly on the board and have a battery connector.  It takes a very common LR44 battery which can be replaced easily when it fails.
  • DIP switches are clearly labeled as to which is which, and which direction is on and off.
  • A pull-down resistor is temporarily added here to fix a problem where the green and red LEDs don’t work right until the host computer initializes the interface to the SD shield.  A pin was left floating and confused the software into thinking the host was sending a byte when it wasn’t.
  • Two I2C pull-up resistors were added but do not seem to be necessary.

There will eventually be a Rev 6 with the new pull-down resistor and maybe the two pull-ups removed, but I’ll use the current Rev 5 boards and manually add the pull-down for now.

The RTC is completely software compatible with the current boards so any version of our Arduino code will work with it.

 

Posted on

New Store Category: Chips

Some customers of our bare boards have a hard time trying to find some of the vintage components, so I started adding them to the store.  Initially it’s just MC14411 baud rate generator, MC6875 clock generation chip and6532 RIOTs.  I’ll add some more parts, but I’m really not in the parts business, these are just for people needing a few odd chips for building one of our bare boards.