Na této stránce najdete následující programy a moduly:
O tom, že je implementace použitého jazyka BASIC velmi výkonná, vás může přesvědčit následující program TETRIS. V pouhých 90 řádcích je napsána hra, která s narůstajícím skóre postupně zvyšuje rychlost. Ovládá se čtyřmi klávesami šipek. Program (stejně jako další uvedené příklady) si můžete modifikovat podle svých představ.
PROGRAM:Tetris
01 DA 0,0,0,0,0,0,1,2,3,9
02 DA 16,0,0,0,1,0,1,2,0,2
03 DA 32,0,0,1,1,0,1,1,2,3
04 DA 48,0,0,0,1,0,1,2,1,4
05 DA 64,0,0,1,1,1,2,0,1,5
06 DA 80,0,0,0,1,0,1,2,2,6
07 DA 96,0,0,1,1,0,1,0,1,7
08 WRAP 1: E=0
09 COL 7: FOR I=0 TO 23
10 ? @I,9;%$0F: ? @I,21;%$0F: NEXT
11 POS 19,23: COL 15: ? "Lines"
12 POS 20,24: ? "0"
13 F=16: POS 16,23: ? "Speed"
14 POS 17,24: ? "1"
15 S=0: X=15: Y=0: P=RND(7)
16 W=0: GOS 50 'Try new position
17 IF Z=0 THEN ? @10,14;"END":END
18 H=F: G=1
19 W=2: GOS 50 'Draw new position
20 H=H-1: SYNC 1: IF H=0: GO ~L+18
21 K=KEY(0): IF K=0 THEN R=0
22 IF (K<$E2)#(K=R) THEN GO 20
23 T=S: U=X: V=Y 'Save old posit
24 W=1: GOS 50 'Clear old shape
25 IF K=$E2 THEN X=X-1
26 IF X<10 THEN X=10
27 IF K=$E3 THEN X=X+1
28 IF X>20 THEN X=20
29 IF K=$E4 THEN S=S+1 'Direction
30 IF S>3 THEN S=0
31 IF K=$E5 THEN G=0 'Fall down
32 IF K=$ED THEN END
33 R=K: IF G=0 THEN GO ~L+13
34 W=0: GOS 50 'Try new position
35 IF Z=1 THEN GOTO ~L+2
36 S=T: X=U: Y=V 'Rest old posit
37 GOTO 19
38 T=S: U=X: V=Y 'Save old posit
39 W=1: GOS 50 'Clear old shape
40 H=F: Y=Y+1
41 W=0: GOS 50 'Try new position
42 IF Z=1 THEN GOTO 17
43 S=T: X=U: Y=V 'Rest old posit
44 W=2: GOS 50 'Draw new position
45 GOS 75: GOTO 15
46 W=0: REPEAT
47 Y=Y+1: GOS 50: UNTIL Z
48 Y=Y-1: GOTO 44
49 'Test, clear, draw shape
50 COL AR((P<<4)+8):Z=1:C=1
51 FOR J=0 TO 3
52 GOTO ~L+(S*2+1)
53 A=Y+AR((P<<4)+J)
54 B=X-1+AR((P<<4)+J+4): GO ~L+7
55 A=Y+1-AR((P<<4)+J+4)
56 B=X+AR((P<<4)+J): GO ~L+5
57 A=Y-AR((P<<4)+J)
58 B=X+1-AR((P<<4)+J+4): GO ~L+3
59 A=Y-1+AR((P<<4)+J+4)
60 B=X-AR((P<<4)+J)
61 POS A,B
62 IF W=2 THEN ? %$0F
63 IF W=2 GOTO ~L+7
64 IF W=1 THEN ? %$20: GO ~L+5
65 IF W=1 GOTO ~L+5
66 IF (A>23)#(A<0) Z=0
67 IF (B>20)#(B<10) Z=0
68 IF Z=1 GCH C,A,B
69 IF C<>$20 THEN Z=0
70 NEXT : RET
71
72
73
74 'Clear full lines
75 FOR I=1 TO 23
76 M=1
77 FOR J=10 TO 20
78 GCH N,I,J IF N<>$0F THEN M=0
79 NEXT
80 IF M=0 THEN GOTO ~L+11
81 'Scroll lines down
82 FOR K=0 TO I-1
83 FOR L=10 TO 20
84 D=30*(I-K-1)+L: C=VPEEK(D)
85 VP D+30,C: C=VPEEK(D+690)
86 VP D+720,C
87 NEXT : NEXT
88 POS 20,23: COL 15: E=E+1: ? E
89 NOTE 28: F=16-E/10
90 IF F<2 THEN F=2
91 POS 17,23: COL 15: ? 16-F
92 NEXT
93 RET
#
Na displeji TV byste pak měli vidět něco podobného:

Obrázky jsou focené přímo z obrazovky televizoru, takže kvůli eliminaci odlesků nejsou zrovna moc povedené. Omluvte tedy zhoršenou kvalitu obrazu na vašem přijímači. :-(
Nahlédnete-li do tabulky implementovaných funkcí na stránce BASIC(1) v původním zdroji, může vás překvapit funkce TEMP(x). Určitě nepatří mezi standardní funkce používané v jiných variantách jazyka BASIC. V tomto případě dokáže vyčíst hodnotu okolní teploty z integrovaného obvodu LM75 připojeného na sběrnici I2C. Parametrem je adresa (x) konkrétního obvodu v rozsahu 0 až 7. Na sběrnici tedy můžete zapojit až 8 teplotních snímačů a z nich postupně vyčítat hodnotu teploty.
Zapojení takového modulu je velmi jednoduché. Kromě vlastního integrovaného obvodu LM75 stačí na univerzální destičku pro obvod v pouzdru SOIC8 doplnit SMD kondenzátor 100 nF na blokování napájení a obvodu správně zadefinovat jeho adresu na vstupech A0 až A2. Zapojení vývodů najdete v příslušném technickém listu, přičemž vývod OS zůstane nezapojený. Modul s teplotním senzorem může vypadat např. takto:

Program demonstrující použití jednoduché grafiky a funkce TEMP() je zde.
PROGRAM:TEMP75
01 ' Prepare screen for graph
02 VMODE 1:FONT 1
03 ? @2,0;"50":? @22,0;"40"
04 ? @42,0;"30":? @62,0;"20"
05 ? @82,0;"10":? @94,0;" 0"
06 DRAW 0,8,100,8,3
07 DRAW 100,6,100,167,3
08 FOR B=0 TO 9
09 DRAW B*10,6,B*10,8,3:NEXT
10 FOR B=0 TO 5
11 DRAW B*20,4,B*20,6,3:NEXT
12 FOR B=0 TO 5
13 PLOT 101,B*30+8,3:NEXT
14 FONT 0:POS 105,2:C=0
15 ? "TEMP: F5=End"
16 ' Measure and draw temperature
17 A=TEMP(0)
18 POS 105,42
19 ? !$1C;A*5;%$1C;%$20
20 IF C=159 THEN C=0
21 E=((C+5)%159)+9
22 FBOX 0,E,99,E,0
23 IF (A>100)#(A<0) GOTO 26
24 D=100-A
25 IF C<168 DRAW D,C+9,D,C+9,3
26 C=C+1
27 'Wait 1 sec and test F5 key
28 FOR B=0 TO 10
29 WAIT 1: IF KEY(0)=$F5 END
30 NEXT : GOTO 17
#
Jeho výstupem může být něco takového (obrazovka se stále kruhově přepisuje):

Třetím programem je hra "Patnáct". Asi ji dobře znáte, takže stačí jenom uvést, že k posouvání kostek slouží opět šipky na klávesnici.
PROGRAM:Fifteen
01 'Set playing field
02 ? @22,22;"Esc=End": B=0
03 FOR P=0 TO 14 'Elements 1-15
04 E=P+1: GOS 31: NEXT
05 P=15: GOS 38: M=15 'Clear gap
06 'Shuffle playing field
07 FOR I=0 TO 300
08 L=RND(4) 'Randomly try moves
09 IF L=0 THEN GOS 45
10 IF L=1 THEN GOS 48
11 IF L=2 THEN GOS 51
12 IF L=3 THEN GOS 54
13 NEXT : B=1 'Start sound
14 'Main loop - scan keyboard
15 SYNC 1: K=KEY(0)
16 IF K=0 THEN R=0
17 IF (K<$E2)#(K=R) THEN GO 15
18 R=K: IF K=$E2 THEN GOS 51
19 IF K=$E3 THEN GOS 54
20 IF K=$E4 THEN GOS 45
21 IF K=$E5 THEN GOS 48
22 IF K=$ED THEN END
23 A=1 'Test if it is completed
24 FOR I=0 TO 14
25 P=I: GOS 41
26 IF E<>(I+1) THEN A=0
27 NEXT
28 IF A=0 THEN GOTO 15
29 ? @11,11;"Well done!": END
30 'Draw element E on position P
31 IF P>15 THEN P=15
32 X=(P%4)*4+8: Y=(P/4)*4+3
33 COLOR 7,4:FRAME Y,X,Y+3,X+3
34 C=$30+(E/10): D=$30+(E%10)
35 ? @Y+1,X+1;%C: ? @Y+2,X+2;%D
36 RETURN
37 'Clear position P
38 X=(P%4)*4+8: Y=(P/4)*4+3
39 COLOR 0,0:FRAME Y,X,Y+3,X+3:RET
40 'Get element E from position P
41 X=(P%4)*4+9: Y=(P/4)*4+4
42 GCH F,Y,X: GCH G,Y+1,X+1
43 E=(F&$0F)*10+(G&$0F): RET
44 'Move element up
45 IF M>11 THEN RETURN
46 Q=4: GOTO ~L+10
47 'Move element down
48 IF M<4 THEN RETURN
49 Q=-4: GOTO ~L+7
50 'Move element left
51 IF (M%4)>2 THEN RETURN
52 Q=1: GOTO ~L+4
53 'Move element right
54 IF (M%4)<1 THEN RETURN
55 Q=-1
56 P=M+Q: GOS 41: GOS 38
57 P=M: M=M+Q: GOS 31
58 'Make next line comment
59 IF B THEN NOTE 5 'for silent
60 RETURN
#
Protože má grafika v textovém módu omezené možnosti, jsou čísla zobrazena na dvou řádcích, aby se pole vyplnilo více rovnoměrně.

Abyste výše uvedené programy nemuseli pracně opisovat, najdete je všechny 3 zde.
Jörg Wolfram přichystal ve svém mikropočítači i možnost připojení "harddisku" ve formě přídavné paměti na konektoru SPI sběrnice. Pokud byste chtěli počítač více využívat, jde o velmi užitečný doplněk. Rozšíří se jím možnost uložit si v počítači až 256 dalších programů mimo 8 míst, které jsou k dispozici v paměti samotného mikrořadiče. Programy sice nejdou z flash paměti přímo spouštět, je nutné je nejprve přetáhnout do mikrořadiče.
Jörg použil pro svůj modul paměť typu AT45DB081B, která se bohužel obtížněji shání a má také větší pouzdro. Relativně snadněji dostupné bývají paměti AT45DB081E v pouzdru SOIC 8. Nový typ však nelze použít přímo, protože nemá vstupy tolerantní na signály s úrovní 5 V. (Pozn.: S pamětí AT45DB041E získáte přídavnou flash o poloviční kapacitě.)
Proto bylo zapojení paměťového modulu modifikováno o vstupní rezistory R2 až R6, na kterých dojde k poklesu vstupní úrovně (díky vnitřní ochranné diodě a R1). Takto upravené zapojení už funguje v počítači bez problémů.

Pro přídavnou paměť je možné použít kousek univerzálního plošného spoje s motivem pro pouzdro SOIC 8. Nebo si můžete vyrobit pro tento účel navržený jednostranný plošný spoj o velikosti 17 x 20 mm. Pro získání předlohy opět obrázek vytiskněte v rozlišení 600 dpi.

Rozmístění součástek na desce plošného spoje je asi zřejmé na první pohled. Plošky spoje jsou přímo připájeny na jednu stranu konektoru. Z druhé řady vývodů se pak přivede pouze vodič s +5 V a druhý vodič s GND. Místo obrázku s rozmístěním součástek se můžete držet fotografie s hotovým modulem (klíč na konektoru je vespod).

Uvedený modul poskytne dostatek paměti i na velmi dlouhou dobu používání počítače. Dříve než ji zaplníte, přestane vás to bavit...
| Součástka | Hodnota / typ | Poznámka |
| U1 | AT45DB041E nebo AT45DB081E | pouzdro SO8 nebo SO8W |
| D1 | LED zelená | SMD 1206 |
| R1 | 1K0 | SMD 0805 |
| R2-R6 | 2K2 | SMD 0805 |
| C1 | 10u | SMD 1206 |
| Konektor | PFL10 | bez příchytky kabelu |