CB2 micro
Games/Applications
Go back to the main site
About this page

This page includes the CB2 firmware (opensource) and all the games and application programs that have been written for the CB2 micro, as long as I am aware of. This page will be updated constantly with new programs, so make sure you check it out regularly!

Have you written a game or an application for the CB2 micro that you think it will be useful or just fun for other people to have? Please email it to me to upload it on this page. KIT discounts can be arranged if you have your programs listed on this page!



Quick index reference


Click on a word in the table below to navigate to the relevant section/application. Then use "back" on your browser to return to this table.

Note, to download the code of the BASIC programs, copy it to a notepad and save it as a text file. Then transfer this file to your CB2 micro through the serial port. Alternatively, you can always type in the programs manually. In this case, you do not need to type in the first line (PROGRAM:programname), the last line (#) and the line numbers of the program.


1 Games
1.1 SetFree
1.2 Arkanoid
1.3 Eatman
1.4 Racer
1.5 Pong
1.6 Snake
1.7 PongOne
1.8 H-Tron
1.9 Reverse Number
2.0 2048
2.1 MastermindRK
2.2 SuperBrain
2.3 Reversi
2.4 Escape
2.5 Bounce
2.6 TicTacToe
2.7 Lights Out
2.8 15-Puzzle
2.9 RainbowRunner
3.0 Batnum
3.1 Hammarubi
3.2 Horse
3.3 Lunar

2 Networked Games

2.1 None yet


3 Applications
3.1 Submenus
3.2 Charset
3.3 SinusCosinus
3.4 Face
3.5 Marquee
3.6 Tilemode
3.7 CB2Matrix
3.8 Alarm-clock
3.9 Charset 2
4.0 Develop
4.1 CB2demos
4.2 Xeeprom
4.3 Mondphasen
4.4 Kalender

4 Networked Applications
4.1 microBBS
4.2 Colterm
4.3 ColtermSRV
4.4 microBBS2
4.5 printSRV
4.6 AsciiTERM
4.7 microBBS3

5 Lab
5.1 Oscilloscope

6 HAM radio
6.1 None yet

7 System files

8 Additional programs






1 Games

Name Description Controls Requirements Code/Download Screenshot
1.1 SetFree SetFree is a game written by KOS. You shoot missiles from your plane to hit prisons and try to free up prisoners. If you hit your plane on a prison or a man or the walls, a life is lost. After a number of free men has been reached, level goes up. You have limited amount of missiles, but you gain more missiles when freeing prisoners.
Left, Right, Up, Down arrows and SPACE
None
1.2 Arkanoid
Arkanoid is the classic game. You control the bar to repel the ball which hits on brick targets. In this version you play forever no matter how many lives you have lost.
Left and Right arrows
None
1.3 Eatman
This game is a clone of the packman game. If you catch a red fruit, the spirits for a short time whiten and can be hunted by you. The spirits, however, are "stupid", because they only move randomly through the labyrinth.
Left, Right , Up and Down arrows
None
1.4 Racer
A purple bonus point brings 20 points, high score is stored in the internal EEPROM.
Left and Right arrows
None
1.5 Pong
This is the well known pong game. It is a dual player version, two people are needed to play this.
Player one: left CTRL and SHIFT keys

Player two: right CTRL and SHIFT keys
Two players
1.6 Snake
This is the well known snake game.
Left, Right , Up and Down arrows None
1.7 PongOne
This is the well known pong game. It is a single player version, you play against the computer. Left, Right , Up and Down arrows None
1.8 H-Tron
This is the well known tron game. It is a single player version, you play against the computer. This version has been written for the CB2 micro by RobertK.
Left, Right, P, SPACE and ESC None
1.9 Reverse Number
A sorting game in which a 9-digit number should be sorted in ascending order with the minimum number of moves. Written by Wolfgang Schmidt

Moves examples:
L5 means: Rotate all numbers from 1 to 5 on the left side.
R6 means: Rotate all numbers from 1 to 6 on the right side.

The goal can of course be achieved through consistent sorting, by always rotating the next number to one end and then to the desired position. This also works if  you only rotate always from the right side or always from the left side. However, this means that too many rotations are required, which can be minimized by clever moves
L and R keys followed by numbers.

None
2.0 2048 The goal of the game is to create a tile with the number 2048 by moving and combining the tiles. Please see the README file inside the zip package for more information on the rules of the game. Up, Down, Left, Right arrows and N, U, E keys Needs 3 program positions, P1, P2, P3. P1:


P2:



P3:



Download zip file

2.1 MastermindRK
This is the classic board game "Mastermind".  The computer will generate a 4-digit colour code that you have to break. Press Cursor Up/Down to change colour, Left/Right to change position, Space or Enter to accept your guess, or Escape to exit. For each guesss you get feedback made up of up to four digits: O...Correct colour at correct position. o...Correct colour at wrong position. This version has been written for the CB2 micro by RobertK. Up, Down, Left, Right arrows and SPACE, ENTER, ESC keys None
2.2 SuperBrain
Wolfgang's SUPERBRAIN is a variant of the classic "MASTERMIND". There are a few differences from the classic game. 1. There are only 10 solution attempts. 2. Code colors never appear twice in a code. 3. The answer is numerical and not with symbols. For each turn, "C+P" (color & position correct) and "COL" (color correct, position incorrect) are displayed in a table. "SUPERBRAIN" is well suited for training and exercise purposes. The desired code can be shown at any time using the (H)elp function.
This is useful for beginners who want to analyze their moves or to uncover weaknesses in thinking. Strategies can also be trained very well if the result is known. But: Ambitious players will surely not uncover the code beforehand. The code you are looking for is always announced at the end of the game.
Up, Down, Left, Right arrows and N, ENTER, ESC keys None


Download zip file
2.3 Reversi This is the famous Reversi game, ported to the CB2 micro by Wolfgang. Please see the Read_Me file inside the zip package for the documentation of the game. Up, Down, Left, Right arrows and Esc key. Needs 3 program positions, P6, P7, P8. P1:


P2:



P3:



Download zip file

2.4 Escape
This game has been written by Franko (Walker Computing). You try to collect elements and escape through the door, without get hitted by the monster.
Up, Down, Left, Right arrows None
2.5 Bounce
This game has been written by Franko (Walker Computing). You try to collect the keys and climb on the walls to open the door without falling down.
Up, Down, Left, Right arrows None
2.6 TicTacToe
This game has been written by Saul. It is the classic Tic Tac Toe game. Play against the computer or another player, or watch the demo (computer to computer)
Numeric keypad or numbers (representing the positions of X,O elements) and ENTER. None
2.7 Lights Out
This game has been written by Wolfgang Schmidt. "LIGHTS OUT" is a puzzle game from the 90's and was made as a handheld brought
on the market. Please see the README file inside the zip package for more information about the game.

R, S, N, ESC, arrow keys and ENTER. None


Download zip file
2.8 15-Puzzle
This game has been written by Wolfgang Schmidt. The aim is to get the numbers from top left to bottom right to be arranged in ascending order. Only the arrow keys are required for this. The number of steps required is counted.Please see the README file inside the zip package for more information about the game.
R, N, ESC and arrow keys. None


Download zip file
2.9 RainbowRunner
This game has been written by KOS.The aim is to collect all the jewels before the time runs out, without hit on the walls. Your rainbow tail blocks you from passing trough it. The game has been written as a demonstration of the Dithering technique for creating more than 16 colors that the CB2 micro supports, using special block characters with different foreground and background colors. Notice how colorful your tail is!
Arrow keys. None
3.0 Batnum At the beginning, you choose the number of parts (coins, stones, whatever) that should be onto the table. Choose how many parts (min, max) can be taken away per turn (e.g. 1-3). The aim of the game is to win the game either by removing the last stone or to avoid leaving the last stone. The game is played against the AVR.
Numbers None
3.1 HammurabiThis is the famous Hammurabi game, ported to the CB2 micro by Dominik Kristen. None. Needs 2 program positions, P7, P8. P7:


P8:


3.2 HorseThis is a horse racing game, ported to the CB2 micro by Dominik Kristen. None None

3.3 LunarThis is a text mode lunar lander game written by Dominik Kristen. None None





2 Networked Games


Name Description Controls Requirements Code/Download Screenshot











3 Applications

Name Description Controls Requirements Code/Download Screenshot
3.1 Submenus Submenus is an example of how tabbed menus, submenus and screens can be created on the CB2. Within each screen a separate function of yours could be implemented. The menus and submenus names can be changed according to your needs.
ESC, F1, F2, F3 and F4 keys
None

3.2 Charset It prints out the full charset.
None
None

3.3 SinusCosinus It prints out sine and cosine in graphic mode 2.
None
None

3.4 Face It prints out a happy face in graphic mode 2.
None
None

3.5 Marquee It prints out a scrolling marquee.
None
None

3.6 Tilemode This little program shows the usage of the Tilemode. By means of the cursor keys the visible cutout in the 32x32 tiles large field can be scrolled.
Cursor keys
Tilemode library (from firmware package v1.42) loaded at any position P1-P8

3.7 CB2Matrix CB2Matrix is a screen saver of random characters and colors. If "The Matrix" has been written for the CB2 micro, it would probably look like this.
None None
3.8 Alarm-clock
Wolfgang's nice digital clock with alarm which sounds on the TV speaker. None None


Download zip file
3.9 Charset 2
This application has been written by Franko (Walker Computing). It prints out the charset with their corresponding codes. ENTER None

4.0 Develop
This application is written by KOS. It displays the colors and their codes, the characters and their codes (keep pressing F2 for more characters) and generates random dithering colors (extended colors) and their codes. It is useful during programs development. It uses a menu-driven approach. F1-F4 and ESC keys. None
4.1 CB2demos A collection of demos written by Saul. There are 9 demos in total. Five on VMODE 1 and four on VMODE 0.
You can select an endless loop demo secuence with CTRL + ESC on the selection menu. You can exit this mode with CTRL+C.
You can go back to menu (or skip the current demo on endless loop secuence) by pressing a key. In 'Lines+' demo, you must hold a key until the detection works (waiting for a 'FOR...NEXT' loop to finish, because you can't put a goto inside a 'for...next' loop)
None None
4.2 Xeeprom
Dominik Kristen's internal and external EEPROM viewer and writer.None None


4.3 Mondphasen
Dominik Kristen's Moon phases calculator.None None


4.4 Kalender
Dominik Kristen's calendar.None None







4 Networked Applications

Name Description Controls Requirements Code/Download Screenshot
4.1 microBBS microBBS is a simple Bulletin Board System. The program handles the modem auto-answer and all the communications after the establishment of the dialup connection. With microBBS callers can write their own public messages and preview the list of public messages. They can also view information about the system. The program stores the messages in the internal EEPROM of the MCU, which is limited, so keep messages short. microBBS is designed to display the information correctly aligned on the CBterm of other CB2 micro clients. On connection of a client from a PC, you may need to alter the printed messages spaces, to line up the information better on the PC terminal. If you want to run your own BBS, you may need to change the name of the BBS as well as the system information messages, to suit your needs.
None
External serial dial-up modem, connected to the RS-232 port of the CB2 micro, or external serial to ethernet adapters if it is to be accessed through internet.
4.2 Colterm
Colterm is a terminal communication program that allows the CB2 micro to communicate through the serial port with another CB2 micro that runs a server program compatible with Colterm, written by the users. The advantage of Colterm compared to the CBterm mini, is that Colterm supports transfer of color text and pseudographics as well as sound. The disadvantage is that the data rate can be slower, depended on how you refresh the page, since additional information is being transfered along with every character. Colterm uses a proprietary communication protocol so it is not compatible to "ordinary" terminals. This means that you cannot use it to communicate with a PC or other device or control smart modems etc. For that reason you use CBterm instead. The Colterm client must run on a CB2 micro and the server must be a CB2 micro that is running a server program compatible with Colterm. This server program, be it a game, application or whatever, is supposed to be written by you and must be written to be compatible with the Colterm communication protocol.
Left, Right, Up, Down arrows, ~. Also, [, ],  ENTER and any character. See the Colterm documentation.
The CB2 micro that runs the Colterm, must be connected through the RS-232 port, to another CB2 micro that runs a compatible server program such as ColTermSRV
4.3 ColtermSRV
This is just a test server program to test the Colterm communication. This server just sends out to the Colterm client a page of random characters, then waits for user input, then repeats the process.
None
The CB2 micro that runs the ColTermSRV, must be connected through the RS-232 port, to another CB2 micro that runs the Colterm

4.4 microBBS2microBBS2 is a simple Bulletin Board System. This is the second version of the microBBS, which does not care about the modem connected to it. With microBBS2 callers can write their own public messages, preview the list of public messages, play games and view information about the system. The program stores the messages in the internal EEPROM of the MCU, which is limited, so keep messages short. microBBS2 is designed to display the information correctly aligned on the teraterm or other compatible terminal that auto detects line end characters. If you want to run your own BBS, you may need to change the name of the BBS as well as the system information messages, to suit your needs. None. Needs 2 program positions, P1 (for the BBS) and P2 (for the games). Users connected to the BBS, need to press ESC before they can receive data. Edit the last lines of P1 to add your own list of games and P2 to create your own games. P1:


P2:



 
4.5 printSRVprintSRV is a tiny printer server program. It converts serial data from the LAN, to parallel, ready for printing on an LPT-port printer, where the CB2 micro that is running the printSRV is connected to. Simply, connect a CB2 micro to your printer and whatever data is comming in to its serial port, will be printed to the printer. It is useful on printers that do not have an RS-232 port, but only a parallel (LPT). It works great on user-typed text speeds, but on higher data speeds, if your printer prints garbage, you must set the sender terminal program (eg. PC) to include a 10ms delay after each character sent. See how you can connect a serial printer to the CB2 micro LAN. None. It needs at least one CB2 micro to act as a client and a second CB2 micro (with the printer connector extension) connected to the LPT of a printer, to act as a server. printSRV runs on the server CB2 micro, which is configured to auto-run the printSRV at boot time (config page).


 

4.6 AsciiTERMAsciiTERM is a small serial terminal program, implemented in BASIC, with printer support. Simply, connect a CB2 micro to your printer and whatever you type in the CB2 micro, will be printed on the printer and the screen and also sent to the RS-232 port. Whatever data is comming from the RS-232 port, will be printed to the printer and displayed on the screen. It can be useful as an ascii printer only serial terminal (TTY-like). It works great on user-typed text speeds, but on higher data speeds, if your printer prints garbage, you must set the sender terminal program (eg. PC) to include a 10ms or greater delay after each character sent.

The serial terminal program works with TR/RX sessions. At the start, the program listens for data. When you want to transmit data you press ESC. When you want to receive data again, you press ENTER.

When the terminal is in RX mode, the first ESC pressed, turns terminal to TX mode (this first ESC, is not sent to RS232). All next ESC pressed, are sent to RS232. All ESC, first and others, enter new line in screen and printer (replaces printer and screen new line if one wants to inset a new line). Pressing ENTER goes to RX mode. ENTER is sent to RS232. After each ENTER, some data has to be received before you can press ESC again.

On BBSes, when issuing single letter commands, one has to press the letter and then quickly ENTER, to switch terminal to RX mode again.
ESC (send data) and ENTER (receive data). It needs the CB2 micro to be connected with a parallel port printer (with the printer connector extension).


 

4.7 microBBS3microBBS3 is a simple Bulletin Board System. This is the third version of the microBBS, which does not care about the modem connected to it and it uses the external EEPROM extension to store messages, instead of the internal MCU memory. Some bugs from the previous versions have been corrected too. With microBBS3 callers can write their own public messages, preview the list of public messages, play games and view information about the system. If you want to run your own BBS, you may need to change the name of the BBS as well as the system information messages, to suit your needs. None. Needs 2 program positions, P1 (for the BBS) and P2 (for the games). A sample game is provided on P2. Users connected to the BBS, need to press ESC before they can receive data. Edit the last lines of P1 to add your own list of games and P2 to create your own games. It also needs a preformatted external EEPROM. You can use the small Ftool program provided, to fill in a 24C512 EEPROM with FF (255) that the microBBS requires, prior to using it. P1:


P2 (sample game):



Ftool utility (Fille external 24C512 with FF):








5 Lab

Name Description Controls Requirements Code/Download Screenshot
5.1 Oscilloscope This is a small oscilloscope program. The analogue input 0 (PIN2 of the printer connector) is evaluated, the sampling takes place 50 times per second. Since the reference voltage is 2.56V by default, the parameter range 0x100 ... 0x1FF (direct access to ADMUX) is used to set AVCC as the reference voltage. To turn off the demonstration, line 16 of the program must be commented out.
None
None






6 HAM radio

Name Description Controls Requirements Code/Download Screenshot









7 System files

Here is the list of system files (sources, documents, binaries) for the latest and the archived versions of the firmware of the CB2 micro. Note that some versions, although newest, may not include all the files in them (eg. Xmem libraries). In this case you may look in the archived versions for these files. Also, in version 1.52 there are no binaries provided, apart from the system HEX.

Version Files Date
V1.52
Unreleased version. Internal EEPROM bug fix performed on runtime.asm
main_644_152.hex
runtime.asm
avr-chipbasic2_1.52-source.zip
27.5.2019
V1.51 avr-chipbasic2_151-binary.tar.bz2
avr-chipbasic2_151-doc.tar.bz2
avr-chipbasic2_151-source.tar.bz2
26.3.2017
V1.50 avr-chipbasic2_150-binary.tar.bz2
avr-chipbasic2_150-doc.tar.bz2
avr-chipbasic2_150-source.tar.bz2
11.1.2015
V1.49 avr-chipbasic2_149-binary.tar.gz
avr-chipbasic2_149-doc.tar.gz
avr-chipbasic2_149-source.tar.gz
16.6.2014
V1.48 avr-chipbasic2_148-binary.tar.gz
avr-chipbasic2_148-doc.tar.gz
avr-chipbasic2_148-source.tar.gz
23.5.2014
V1.45 avr-chipbasic2_145-binary.tar.gz
avr-chipbasic2_145-doc.tar.gz
avr-chipbasic2_145-source.tar.gz
6.1.2013
V1.44 avr-chipbasic2_144-binary.tar.gz
avr-chipbasic2_144-doc.tar.gz
avr-chipbasic2_144-source.tar.gz
14.11.2012
V1.43 avr-chipbasic2_143-binary.tar.gz
avr-chipbasic2_143-doc.tar.gz
avr-chipbasic2_143-source.tar.gz
27.04.2012
V1.42 avr-chipbasic2_142-binary.tar.gz
avr-chipbasic2_142-doc.tar.gz
avr-chipbasic2_142-source.tar.gz
07.03.2012
V1.39 avr-chipbasic2_139-binary.tar.gz
avr-chipbasic2_139-doc.tar.gz
avr-chipbasic2_139-source.tar.gz
08.10.2011
V1.36 avr-chipbasic2_136-binary.tar.gz
avr-chipbasic2_136-doc.tar.gz
avr-chipbasic2_136-source.tar.gz
15.01.2011
V1.28 avr-chipbasic2_128-binary.tar.gz
avr-chipbasic2_128-doc.tar.gz
avr-chipbasic2_128-source.tar.gz
11.04.2010





8 Additional programs

Here is a list of additional useful programs related to the project. Such programs include chip8 games, basic games not documented on the above tables and utilities for firmware building and programming.

Description Files Date added
Package of 8080, converter and Chip8 programs (allready converted to run on the system)
chipbasic_additional_ch8_programs.zip
23.1.2019
Package of a few more BASIC games (some incomplete)
games2.zip
7.3.2019
Ponyprog, Windows programmer software for the MCU. PonyProg_V207c.zip 23.1.2019
HyperTerminal (extracted from Win2K) for exchanging files with the PC
HyperTerminal.zip 22.3.2020
Linux compiler for building the sources.
cb2_linux_compiler.zip
16.9.2019