Monday, March 10, 2025

Simple D&D dice roller for C64, Atari XL, and TI-99/4A (Ver 1.0)

I only tested this code with the C64, Atari XL and TI-99/4a (standard basic).
This will likely work on more platforms with little or no modifications
See the note on the bottom for the TI-99/4A.

Atari 800XL output


TI-99/4A output

Code for C64 AND ATARI

10 PRINT "DRAGON AND DICE"
20 PRINT "A) ROLL 4D"
30 PRINT "B) ROLL 6D"
40 PRINT "C) ROLL 8D"
50 PRINT "D) ROLL 10D"
60 PRINT "E) ROLL 12D"
70 PRINT "F) ROLL 20D"
80 PRINT "G) ROLL FOUR 6D"
85 PRINT "Z) QUIT"
90 INPUT A$
100 IF A$="A" THEN 200
110 IF A$="B" THEN 300
120 IF A$="C" THEN 400
130 IF A$="D" THEN 500
140 IF A$="E" THEN 600
150 IF A$="F" THEN 700
160 IF A$="G" THEN 800
170 IF A$="Z" THEN 1000
180 PRINT "----"
190 GOTO 10
200 D=INT(1+4*RND(1))
210 PRINT "YOU ROLLED A "
220 PRINT D
230 PRINT "WITH 4D"
240 PRINT "--"
250 GOTO 10
300 D=INT(1+6*RND(1))
310 PRINT "YOU ROLLED A "
320 PRINT D
330 PRINT "WITH 6D"
340 PRINT "--"
350 GOTO 10
400 D=INT(1+8*RND(1))
410 PRINT "YOU ROLLED A "
420 PRINT D
430 PRINT "WITH 8D"
440 PRINT "--"
450 GOTO 10
500 D=INT(1+10*RND(1))
510 PRINT "YOU ROLLED A "
520 PRINT D
530 PRINT "WITH 10D"
540 PRINT "--"
550 GOTO 10
600 D=INT(1+12*RND(1))
610 PRINT "YOU ROLLED A "
620 PRINT D
630 PRINT "WITH 12D"
640 PRINT "--"
650 GOTO 10
700 D=INT(1+20*RND(1))
710 PRINT "YOU ROLLED A "
720 PRINT D
730 PRINT "WITH 20D"
740 PRINT "--"
750 GOTO 10
800 D1=INT(1+6*RND(1))
802 D2=INT(1+6*RND(1))
804 D3=INT(1+6*RND(1))
806 D4=INT(1+6*RND(1))
810 PRINT "YOU ROLLED A "
820 PRINT D1;" ";D2;" ";D3;" ";D4
830 PRINT "WITH FOUR 6D"
840 PRINT "--  --  --  --"
850 GOTO 10
1000 END

For the TI-99/4A computer, change the randomize calls with this format: 

D=INT(1+4*RND)
D=INT(1+6*RND)

No comments:

Post a Comment

Memory struggle

I have really struggled to do ROM to RAM mapping on the C64 and Atari 8-bit. The processes is very much alike, between the two systems. The ...