News and Blog Posts
See below for news about Tiny BASIC, various blog posts from Damian, and other time-limited information about the project.
TinyBASIC 1.0.4 Released!
1 Apr: A minor bug update has been released. TinyBASIC 1.0.3 had an error which prevented it from compiling under Termux on Android devices. This has been fixed, and version 1.0.4 now works on Termux as well as the other systems. No problems were reported compiling 1.0.3 under Windows, DOS or Linux, but it's recommended that users obtain and install the latest release, just in case the bug had any subtle effects so far undetected on those systems. You ... (read more...)
Codebreaker: a New Game for Tiny BASIC
10 Feb: A new game has been added to Games in BASIC page. It's quite a small game compared to the others, but it's an enjoyable little classic. Codebreaker has the player guessing a 4-digit number, being given clues such as how many digits are correct, and how many digits have been guessed but in the wrong place. Like the other games, it's supplied in source code form so you can inspect it, run it and compile it as you ... (read more...)
Tiny BASIC 1.0.3 Released!
9 Feb: The latest version of the Tiny BASIC Interpreter and Compiler Project is now 1.0.3. This is another bug fix release. In version 1.0.2, using the GOTO or GOSUB commands with a line number that didn't exist would result in a Segmentation Fault. Normal behaviour when line numbers are optional is to give a more helpful runtime error. Normal behaviour when line numbers are implied or mandatory is to go to the subsequent line, e.g. where lines are numbered 10, ... (read more...)
Some New Bugs Identified
6 May: Some bugs have been identified in the current release version of Tiny BASIC and are currently being fixed. Here are the details of the bugs, and of workarounds where appropriate. The first bug involves runaway recursion. A line like 10 GOSUB 10 will not only lock up the program with an infinite loop, but will also consume more and more memory as time goes on, potentially using up all of a computer's memory if left long enough. A ... (read more...)
Tiny BASIC 1.0.2 Released!
22 Apr: Another bug fix release is available for the Tiny BASIC Interpreter and Compiler Project. The bug affected error reporting; while the source line number was always reported correctly, the line label was not. When an error occurred on a line with a label, the previous line label was reported. This was particularly confusing for traditional source files where every line had a label. Now, the correct line label is reported. The latest version is 1.0.2, and also includes ... (read more...)
Some Game Improvements
14 Apr: Some games in the repository have been tweaked. There was a bug in the Tic-tac-toe game that prevented the computer from seeing a win under certain conditions, which is now fixed. Some of the comments in the Wumpus game have been improved to make it clearer what some of the variables hold. The downloads do not yet contain these corrections but you can get them from the GitHub repository . On the web site, the Kingdom of the ... (read more...)
Picking Things Back Up
18 Feb: Development of TinyBASIC has been on hiatus since before Christmas, but things are moving again. The task of refactoring TinyBASIC's code into a more object-oriented style is still going on—see Object-oriented Programming in C? for more details). Those who are following the GitHub repository might have noticed a few odd updates today. An unfinished change was accidentally committed to the master branch back in November. That commit has been removed, the change was finished, and everything was committed ... (read more...)
A Better Random Number Generator
22 Nov: The Random Number Generator originally offered on the Subroutine Library has its limitations. Though it uses only one variable, it shows easily discernible patterns and is limited to numbers up to about 6400. So a second random number generator has been added to the subroutine library. The Wichmann-Hill Random Number Generator offers a better sequence of pseudorandom numbers, and has a higher limit - over 24000. It has a couple of downsides: there are three separate seeds to ... (read more...)
Version 1.0.1 Released
17 Nov: Despite the project being "finished", TinyBASIC is still undergoing development, and the first bug fix has been released. There's also been a reorganisation of the git repository. The bug was relatively minor. If you issued a command with a nonexistent filename, prefixed by some options, the first of those options would be reported as a nonexistent file. This was confusing as it implied that the option had been mistyped rather than the filename. The bug fix has ... (read more...)
A New Tiny BASIC Game!
10 Nov: Something new has been added to the Games in BASIC page. As he mentioned in last week's blog post, Damian entered the PROCJAM 2019 programming jam with a simple adventure game. This was finished on time and submitted as an entry, and at the same time uploaded on this site. Kingdom of the Lyre has a standard fantasy setting with a ropey plot that was put together as hastily as the game itself. The jam had an optional ... (read more...)
A Tiny BASIC Entry for PROCJAM
3 Nov: Damian Gareth Walker talks about writing for PROCJAM in this blog post. This weekend I took the plunge and entered PROCJAM 2019 . PROCJAM is short for The Procedural Generation Jam, an event where programmers get together and write programs that do something interesting with procedural generation. Procedural generation is the process of creating something from a series of repeatable pseudorandom numbers, such as a game world. My first exposure to it was the game Elite back ... (read more...)
Compiling Tiny BASIC Programs under Windows
28 Oct: Some notes in blog post form from Damian Gareth Walker. The manual contains an example of how to compile Tiny BASIC programs in a Unix-like environment, because that's what I have access to. After a bit of research, I've managed to gather some notes together on how you might do the same on a Windows-based computer. The notes may be imperfect, as I'm working with Wine under Linux rather than a real Windows machine. The first thing ... (read more...)
Object-oriented Programming in C?
24 Oct: Yes, this blog post about C does concern Tiny BASIC - see later. Despite C not being an object-oriented (OO) language, it's possible to write OO programs in it - within certain limits. C allows you to create pointers to functions, to point them at various functions and call those functions that way. It also allows you to put those function pointers in a structure. So functions that act upon a structure can be put in that structure ... (read more...)
Tiny BASIC for DOS is Now Available
22 Oct: You can now download a DOS package for Tiny BASIC. Tiny BASIC for DOS contains the Tiny BASIC executable, a text manual, and the six BASIC example games all in a single directory. Simply fire up DosBox or your vintage DOS PC, extract files from the ZIP package and start having fun! Tiny BASIC is compiled for the 8086 processor, so it should work on any PC from the original 8088 IBMs to the snazziest 486. If you ... (read more...)
The Sample Games Explained
20 Oct: The Tiny BASIC package comes with six example games. Some of them are simplistic and only really entertaining as programming examples. But some of them are surprisingly playable for scrolling text games. A new set of pages has been added to the web site to cover them, called The Sample Games . You can find them under the Documentation section of the web site. There's one page for each game which describes it, gives you a bit of ... (read more...)
Tiny BASIC Released!
19 Oct: This weekend, Damian Gareth Walker released his Tiny BASIC compiler and interpreter. Conceived as a learning project, this implementation of the 1970s subset of the BASIC programming language works on Linux, Windows and Android. Tiny BASIC was designed as a small language for early microcomputers that had only a few kilobytes of RAM. It was also an early template for the free software movement, with code being shared freely or being made available only at the cost of ... (read more...)
A Tiny BASIC Tutorial
18 Oct: Are you wondering how to get started in Tiny BASIC? The Tiny BASIC Manual was one of the first things added to the web site, but it's more of a reference manual than a tutorial. So another document, the Tiny BASIC Tutorial has been added to the web site. The tutorial moves slowly and and is aimed at those who haven't done much if any programming before. The language is not big, so it's not very long, but ... (read more...)
New Web Site for Tiny BASIC
17 Oct: As Tiny BASIC is nearing release, a new web site has been developed to host it. The web site will have all of the downloadable packages, along with blog posts, extra documentation, and sample programs and subroutines. A comment system has been included to see if we can get some discussion going about this venerable little language. The site may expand in other directions in the future. (read more...)