In my
previous post, I have described how I have modified GCC cross compiler made originally for the
moxie platform to generate assembly code for my FPGA platform. I have used my new cross compiler to make a port
of TinyBasic for my platform. I have downloaded TinyBasic C code and modified it to be a bit more
programmer-friendly. That port can be found here:
Besides
standard BASIC commands, I had a freedom to invent my own commands and to play with them. First of all, I have
created a MODE command which is used to set the video card mode: 0 - text mode 1 - graphics mode of
640x480x2 colors, and 2 - graphics mode of 320x240x8 colors.
Besides MODE command, I now have the
following graphics commands: - PLOT x, y, color - LINE x1, y1, x2, y2, color - CIRCLE x, y, r - DRAW
x, y, "TEXT"
I have also added two key-related functions: KEY() and ISKEY(). Both functions return
virtual key that has been pressed, but the first is a blocking one - it waits until some key is pressed, while
the other one just immediately returns the virtual code of a last key being pressed.
I have also played
with the file system on my "hard disk". I have created following commands: - DIR - lists the content of the
"hard disk" root folder, - LOAD PROGRAM.BAS - loads a BASIC program into the computer memory, - SAVE
PROGRAM.BAS - saves a BASIC program on the "hard disk" - EXEC PROGRAM.BIN - loads and executes a binary
executable - SYS ADDRESS - executes a machine program loaded at the given address.
The BASIC now boots
from the SD card and can be used immediately. Here is the video of the computer booting from the SD card into
the BASIC: