|
Long time ago,
with a computer far, far away...
Around 10 years back, my dad had got the Casio PB 110 as a present. Well, he wasn't really
interested in computers back then, but, I was ! I took me around 2 weeks to
learn most of its functions. I bet you can do it in a week or less. Soon I found
out how powerful the little thing was. It possible to create pretty useful
program specially math and science formulae and lab work programs. I even
managed to churn out a few games. Ofcourse, databank programming (address book
type of) applications were a favorite of mine. Almost all the programs I have
written are present in this page. If you are lucky enough to have one of these
machines, you can type in one of these programs and use them right away!
Here is a small picture of the PB - 110.
Cute isn't it? It may look small but, the stuff you can do with is really cool. First lets have a
look at its technical specs:
Parameter |
Value |
Total RAM |
1024 bytes |
Total RAM |
544 bytes |
CPU |
VLSI specific |
Display |
DOT Matrix LCD |
Resolution |
1 line X 12 characters |
Speaker |
Internal |
Sound capability |
2 tone beep |
Size |
165 x 71 x 10 mm |
Weight |
116 grams with batteries |
Year of launch |
1983 |
Power source |
CR-2032 x 2 |
Expansions |
OR1-E RAM expansion pack
FP-12 / FP-12S thermal printer
FA-3 /FA-5 / FP-40 external tape interface
|
Finally we come to the most interesting section: the programs. The program listed here
are free for use. I however do not take any responsibility for any damages caused by these programs.
They have been tested and run on my personal PB 110 pocket computer. To my knowledge goes, they are safe
and will not cause any corruption of data.
Program #1 - DataPro
Type: Business / personal application
Description: Data processing and storage program. Stores telephone numbers against names. Uses typed
commands for retrieving / storing data.
Program listing:
10 PRINT "DATAPRO";:FOR I=1 TO 50:NEXT I
25 RESTORE#:RESTORE# "*",,29:READ# A$,$:INPUT "Key:",C$
26 IF C$=$ THEN 29
27 GOTO 2000
29 PRINT:INPUT "COM",C$:IF C$="" THEN 20
30 IF C$="MODE" THEN GOTO 80
40 IF C$="LOCK" THEN 300
50 END
80 INPUT "MODE:", M$
90 IF M$="WRITE" THEN 140
100 IF M$="ERASE" THEN 190
110 IF M$="PRINT" THEN 240
120 IF M$="ESCAPE" THEN END
130 END
140 INPUT "No of entries", T
141 FOR X=1 TO T
145 INPUT "Name",N$:INPUT "Telephone",A$
150 FOR I=1 TO 100:RESTORE# STR$(I),,170
160 NEXT I
170 WRITE# N$+","+A$:IF N$="LOCK" THEN END
180 NEXT X:GOTO 80
190 INPUT "NAME:", N$
200 RESTORE#:RESTORE# N$,,230
210 WRITE#:WRITE#
220 GOTO 80
230 PRINT "No Data !":GOTO 80
240 INPUT "No of entries", T
242 FOR X=1 TO T
245 INPUT "Name", N$
250 RESTORE#:RESTORE#,,230
260 READ# $,$
270 PRINT $
280 NEXT X:GOTO 80
290 GOTO 80
1000 INPUT "Lock On/Off",L$:IF L$="ON" THEN INPUT "Key:",K$
1110 WRITE# "*" + "," + K$:GOTO 29
2000 PRINT "Invalid password":END
|
Program #2 - Printing Text on Screen
Type: Utility code
Description: When you use the PRINT command, the text comes up on the screen directly. This code-snippet
adds a little spice to the other-wise boring text displays.
Program listing:
5 REM *LISTING ONE*
10 CLEAR:B=1
20 I=I+1:IF I>5 THEN B=B+1
30 IF B>11 THEN B=1
40 $="SIDDHARTH":BEEP
50 PRINT CSRB;MID$(B,1);
60 IF I>5 THEN I=0
70 GOTO 20
5 REM *LISTING TWO*
10 CLEAR
20 INPUT A
30 DATA S,I,D,D,H,A,R,T,H
40 IF C>=11 THEN STOP:END
50 READ $:C=C+1:FOR I=1 TO A:NEXT I
60 PRINT $
70 BEEP 0
80 GOTO 30
Note:In the last program, speed control is done using variable 'A'
|
Program #3 - Digital Scheduler
Type: Business / personal application
Description: A simple program that allows you to schedule your work. It lets you
enter the date/time and activity information.
Program listing:
10 INPUT "DEL/PASS", G$:IF G$="P" THEN 30
20 INPUT "DEL DAY",M$:RESTORE# M$:WRITE#
30 INPUT "R/W", E$:IF E$="R" THEN
40 INPUT "NEW/OLD", A$
50 IF A$="NEW" THEN CLEAR:WRITE#:A$="NEW":WRITE#
60 IF A$="OLD" THEN
70 H=H+1:WRITE#:IF H>30 THEN
80 GOTO 70
90 X=X+1
100 WRITE# STR$(X)
110 IF X=15 THEN 130
120 GOTO 90
130 INPUT "PROG:",$:INPUT "DAY",D$:INPUT "TIME",T$:S=S+1
140 IF A$="OLD" THEN RESTORE# STR(S)
150 IF A$="NEW" THEN RESTORE#
160 WRITE# D$+","+$+","+T$
170 MODE 4:END
180 INPUT "DAY:",F$
190 RESTORE# F$
200 READ# F$,$,T$
210 PRINT F$;",";$:PRINT:PRINT "at:";T$
|
Program #4 - Timer Programs
Type: Digital clocks and timers
Description: The PB 110 never had a clock. I however wanted one, bad. So I wrote some program that makes
the Casio act like a clock/timer. Pretty good fun for sports and other activites which require time keeping. There are
altogether four time programs, each providing a slightly better control and functionality.
Program listing:
5 REM * SIMPLE COUNTER PROGRAM *
10 CLEAR
20 INPUT "Count (sec):",X
30 FOR B=1 TO 8
40 IF A=X THEN BEEP:BEEP: PRINT A;":";A:STOP
50 PRINT A;":";B;
60 IF B=8 THEN A=A+1
70 PRINT
80 NEXT B
90 GOTO 30
5 REM * ADVANCED COUNTER PROGRAM *
8 REM * DISPLAYS SECONDS AND HAS A CONTROL STOP VARIABLE *
10 CLEAR
20 INPUT "Count",A
30 PRINT B;":";A;
40 FOR C=1 TO 17
50 IF C=17 THEN B=B+1
60 IF B=A THEN BEEP:BEEP:PRINT:PRINT B;":";A:STOP
70 NEXT C
80 PRINT
90 GOTO 30
5 REM * ADVANCED DIGITAL TIMER *
10 PRINT "DIGI-TIMER"
20 CLEAR
30 PRINT Z;":";INT B;":";A;
40 FOR I=1 TO 13
50 IF I=13 THEN A=A+1
60 IF A=60 THEN B=B+0.07142857143
70 IF A>60 THEN A=0
80 NEXT I
90 PRINT
100 GOTO 30
5 REM * TIMER - CLOCK PROGRAM *
10 PRINT "-TIMER-"
20 CLEAR
30 FOR A=1 TO 5
40 PRINT C;":";B;":";A;
50 IF A=5 THEN B=B+1
60 IF B=60 THEN C = C + 0.2
70 PRINT
80 IF B > 60 THEN B=0
90 IF Z > 300 THEN Z=0
100 NEXT A
110 GOTO 30
|
Program #5 - Alarm Sound
Type: Utility code
Description: All well behaved alarm program must be able to produce an alarm sound. Use the code
below to add an alarm sound to your program.
Program listing:
10 FOR I=1 TO 70:NEXT I
20 BEEP 1: FOR I=1 TO 3:NEXT I: BEEP 1
30 GOTO 10
|
Program #6 - Hi-Fi Digital Timer Alarm Clock
Type: Time program
Description: The final version of the Digital Alarm Clock. This program has many new features like
non-blinking characters and improved accuracy.
Program listing:
10 INPUT "OVERRIDE", $: IF $="YES" THEN X=77: GOTO 40
20 CLEAR: INPUT "Curr min=",C: INPUT "curr hrs=",R
30 X=77: INPUT "alarm min=", M: INPUT "alarm hrs=", H
40 PRINT: FOR I=1 TO 60
50 PRINT CSR8;I;CSR4;C;CSR1;R;CSR4;":";CSR7;":";
60 FOR D=1 TO X: NEXT D
70 NEXT I: C=C+1+I=0
80 IF C=60 THEN R=R+1: C=0
90 IF (H*60)+M <> (R*60)+C THEN 10
100 IF (H*60)+M = (R*60)+C THEN FOR I=1 TO 70:NEXT I:BEEP 1
110 FOR I=1 TO 70:NEXT I: BEEP 1
120 FOR I=1 TO 3: NEXT I: BEEP 1
130 GOTO 110
|
Program #7 - Contra (game)
Type: 2 player game
Description: This is a cool 2 player game where both players try to reach the other's
Head Quarter. Use 'Q', 'A', 'Z' for Player 1 and '9', '6', '3' for Player 2 keys.
Program listing:
10 CLEAR: D=11:M=1
20 PRINT CSR2;"-CONTRA-"
30 INPUT "PLAYER 1 NAME:", P$
40 INPUT "PLAYER 2 NAME:", P$(2)
50 H=1:S=0:D=11:M=1:J=100
60 IF H > 300 THEN GOTO 800: IF S > 300 THEN GOTO 900
70 PRINT CSRN;">";CSR0;"|";CSRD;"<";CSR11;"|"
80 IF S > 300 THEN GOTO 900
90 K$ = KEY$
100 IF K$ = "Q" THEN N=N+1:IF N > 11 THEN N=0
110 IF K$ = "A" THEN IF D-N <= 5 THEN D=11:M=0
120 IF K$ = "Z" THEN IF D-N = 0 THEN D=11
130 IF N=10 THEN H=H+100:IF H > 300 THEN GOTO 60
140 IF D=1 THEN S=S+100:IF S > 300 THEN GOTO 10
150 IF K$="9" THEN M=M+1:D=12-M:IF D <=1 THEN M=0
160 IF K$="6" THEN IF D-N <= 5 THEN N=0
170 IF K$="3" THEN IF D-N=0 THEN N=0
180 PRINT
190 GOTO 70
800 PRINT:PRINT P$;" ";"WINS !":END
810 PRINT:PRINT P$(2);" ";"WINS !":END
|
Program #8 - Galaxian (game)
Type: A shoot'em space game
Description: A simple shoot 'em space game where enemies randomly popup all over the
screen and you have to shoot them.
Program listing:
10 PRINT "GALAXIAN"
20 INPUT "DATA Y/N",N$:IF N$="N" THEN 60
30 PRINT "DESTROY: ¥&Ω"
40 PRINT "KEYS: Q,P,4"
50 PRINT "Q=BACK, P=FRONT, 4=LASER, LIVES=15"
60 INPUT "PRESS EXE", U$
70 IF U$="" THEN 10
80 GOTO 70
90 CLEAR:Z$="¥":I=INT(RAN#*11):IF I < 3 THEN 90
100 I=INT(RAN#*12)
110 PRINT CSRX;"Σ";CSRX(1);H$;CSRI;Z$;
120 H$=""
130 K$=KEY$:IF K$="P" THEN X=X+1:IF X>10 THEN X=11
140 IF K$="Q" THEN X=X-1:IF X < 0 THEN X=0
150 IF K$="/" THEN PRINT:PRINT "SC:";P;"LIVES:";15-M
160 IF K$="4" THEN H$="-":X(1)=X+1:IF I-X<=6 THEN IF I-X>1 THEN GOTO 100
170 IF X(1) > 11 THEN X(1)=11
180 IF I-X <= 6 THEN P=P+1
190 IF I-X <= 3 THEN M=M+1:IF M=15 THEN PRINT "GAME OVER":END
200 IF P > 35 THEN Z$="Ω"
210 IF P > 70 THEN GOTO 250
220 IF P >= 20 THEN IF P < 22 THEN M=M-15:BEEP
230 PRINT
240 GOTO 100
250 FOR F=1 TO 10:IF F=10 THEN D=D+1:IF D > 11 THEN PRINT "VICTORY":END
260 PRINT:PRINT CSRD;"Σ";
270 NEXT F
280 GOTO 250
|
Program #9 - Shooting (game)
Type: Shooting game
Description: A simple shooting game.
Program listing:
10 PRINT "SHOOTING"
20 CLEAR:M=0:Y=INT(RAN#*3)+1:T=100
30 INPUT "LEVEL: 1-4",L
40 IF M>5-L THEN Y=INT(RAN#*3)+1:IF M>5-L THEN M=0
50 PRINT CRS0;"Ω";CSR2;Y;CSR9;INT T;
60 K$=KEY$:M=M+1:T=T-0.2040816327
70 IF K$=STR$(Y) THEN P=P+1
80 IF P=10 THEN PRINT:PRINT "SCORE=";INT T
90 GOTO 40
|
Program #10 - Rescue (game)
Type: Simple reflex game
Description: I have no idea what this game is about. You'll have to type it in and see.
Program listing:
10 PRINT "RESCUE":CLEAR:M=10
20 I=INT(RAN#*5)+5:Y=INT(RAN#*4)+4
30 IF X+1 > 12 THEN X=12
40 PRINT CSRX;"Σ";CSRX+1;B$;CSRI;"*";CSRY;"+";
50 PRINT CSR11;"Ω"
60 B$=""
70 K$ = KEY$
80 IF K$="Q" THEN X=X-1:IF X < 0 THEN X=0
90 IF K$="E" THEN X=X+1
100 IF K$="*" THEN I=0:Y=0:E=0
110 IF K$="4" THEN B$="--":IF I-X<=7 THEN I=0:P=P+1
120 IF K$="4" THEN IF Y-X <= 7 THEN Y=0:P=P+1
130 IF I-X=3 THEN X=0:M=M-1
140 IF Y-X=3 THEN X=0:M=M-1
150 IF M=0 THEN PRINT "GAME OVER"
160 IF P > 40 THEN IF P < 15 THEN M=M+2:BEEP
170 IF X=11 THEN PRINT "VICTORY", "SCORE=",P:GOTO 170
180 PRINT
190 GOTO 20
|
Program #11 - StarWars (game)
Type: Space shooter game
Description: Simple shoot 'em space game with an amazing name.
Program listing:
10 CLEAR
20 INPUT "??STARWARS?", $:IF $="R2D2" THEN G=70-20
30 M=M+20+G
40 I=INT(RAN#*5)+5:Y=INT(RAN#*4)+4
50 K$=KEY$
60 PRINT CSRX;"Σ";CSRX+1;L$;CSRI;"¥";CSRY;"*";
70 L$=""
80 IF K$="Q" THEN X=X-1:IF X<0 THEN X=0
90 IF K$="4" THEN L$="--":IF I-X<=6 THEN I=0:P=P+1
100 IF K$="4" THEN L$="--":IF Y-X<=6 THEN Y=0;P=P+1
110 IF K$="E" THEN X=X+1:IF X>11 THEN X=11
120 IF P > 100 THEN PRINT "MISSION OVER", "SCORE=";P,"LIVES=";M
130 IF X>= 3 THEN P=P+5
140 IF Y-X <= 3 THEN M=M-1
150 IF Y-X <= 3 THEN X=X-2:IF X < 0 THEN X=0:M=M-1
160 IF M < 0 THEN PRINT "GAME OVER":IF P=50 THEN PRINT "VICTORY": END
170 PRINT
180 GOTO 40
|
Program #12 - RoboCop (game)
Type: Fast reflex action game
Description: One of my favorite games. A very very primitive form of a FPS shooter game, but, still...
It is capable of storing the highest and latest scores.
Check it out.
Program listing:
10 PRINT "ROBOCOP****"
20 IF V=0 THEN V=1
30 G=(S*100)/V:PRINT "LAST SCORE:","KILLS:";G;"%","HITS:";C+E
40 C=0:S=0:V=0:E=0:INPUT "1)[+] 2)[x]",A$:X=5
50 PRINT "CALIBERATION"
60 IF A$="1" THEN A$="[+]"
70 IF A$="2" THEN A$="[x]"
80 S=S+1
90 I=INT(RAN#*7)+1:T=0:Z=0:V=V+1
100 PRINT:PRINT CSRX;A$;CSRX+1;F$;CSRX+1;F$;CSRI;B$;CSR9;C
110 F$=":B$="¥":T=T+1:IF T=8 THEN 90
120 K$=KEY$
130 IF Z=4 THEN B$="****":BEEP:BEEP:GOTO 80
140 IF K$="Q" THEN X=X-1:IF X < 0 THEN X=0
150 IF V >= 40 THEN 200
160 IF K$="W" THEN X=X+1:IF X > 7 THEN X=7
170 IF C=99 THEN E=E+99:C=0
180 IF K$="4" THEN F$="*":IF X+1=I THEN C=C+1:Z=Z+1
190 GOTO 100
200 J=(S*100)/V
210 IF H=0 THEN H=J
220 IF J>H THEN H=J
230 PRINT "KILLS:";J;"%","HITS:";C+E
240 PRINT "HI KILLS";H;"%"
250 END
|
Program #13 - Cards
Type: Card luck game
Description: Simple card game for two players.
Program listing:
10 CLEAR
20 INPUT "P-1",F$,G$:INPUT "P-2",V$,Z$
30 PRINT "CARD-GAME":I=1:P=56/2:P(1)=56/2
40 PRINT "READY"
50 $="♠♣♥♦"
60 IF P <= 0 THEN 500
70 IF P(1) <= 0 THEN 500
80 IF K$="Q" THEN IF W=0 THEN I=INT(RAN#*4)+1:M$=MID$(I,1):GOTO 200
90 PRINT:PRINT CSR0;P;CSR5;M$;CSR6;N$;CSR8;P(1);
100 IF K$="P" THEN IF X=0 THEN Y=INT(RAN#*4)+1:N$=MID$(Y,1):GOTO 300
110 GOTO 50
200 T=T+1:P=P-1
210 S=S+1:X=0:W=W+1:D=0:IF I=Y THEN IF C=0 THEN P=P+S:C=C+1:S=0
220 GOTO 80
300 T=T+1:P(1)=P(1)-1
310 S=S+1:W=0:X=X+1:C=0:IF Y=I THEN IF D=0 THEN P(1)=P(1)+S:D=D+1:S=0
320 GOTO 110
500 IF P>P(1) THEN PRINT "WIN";" ";F$+G$:END
510 IF P(1)>P THEN PRINT "WIN";" ";V$+Z$:END
520 PRINT "NO WIN!!!":END
|
Program #14 - Jumbled Words (game)
Type: Vocabular game
Description: A vocabulary games where words once entered are jumbled and have to be put back together.
Program listing:
10 CLEAR
20 DATA BEAUTIFUL,COMPUTER,VOCABULARY,VISION,GUN,GAMBLE,GREAT
30 DATA LEGAL,ADVICE,RENT,MAGIC,RETENTION,LIGHT,CROWN
40 DATA KNIGHT,MYSTIQUE,MUSICIAN,PENANCE,SOLITARY,JADE,E
50 READ $
60 IF $="E" THEN PRINT "SCORE=";P;"/20":END
70 L=LEN($)
80 I=INT(RAN#*L)+2
90 PRINT MID$(I,L);MID$(1,I-1);:INPUT X$,Z$
100 IF X$ + Z$ = $ THEN P=P+1:PRINT:PRINT "CORRECT !"
110 GOTO 20
|
|