1 rem dragons druids n dice c64 1.2.1 2 rem written by michael gibson 3 for i=0 to 26: read x: poke 828+i,x: next i 4 data 169,000,160,208,133,095,132,096 5 data 169,000,160,224,133,090,132,091 6 data 169,000,160,064,133,088,132,089 7 data 076,191,163 8 poke 56334,peek(56334) and 254 9 poke 1,peek(1) and 251 10 sys 828 11 poke 1,peek(1) or 4 12 poke 56334,peek(56334) or 1 13 poke 53272,peek(53272) and 240 or 12 14 for a=12552 to 12559: read ze: poke a,ze: poke a+1024,255-ze: next a: rem 33 15 data 1, 1, 1, 1, 1, 1, 1, 1 16 for a=12624 to 12631: read ze: poke a,ze: poke a+1024,255-ze: next a 17 data 0, 0, 7, 8, 16, 32, 64, 255 18 rem ascii 42 19 for a=12632 to 12639: read ze: poke a,ze: poke a+1024,255-ze: next a 20 data 0, 0, 252, 12, 20, 36, 68, 132 21 rem ascii 43 24 for a=12288 to 12295: read ze: poke a,ze: poke a+1024,255-ze: next a 25 data 133, 133, 133, 137, 145, 161, 193, 129 26 rem 64 ascii is 0 RAM 29 for a=12528 to 12535: read ze: poke a,ze: poke a+1024,255-ze: next a 30 data 255, 0, 0, 0, 0, 0, 0, 0 31 rem 94 ASCII it 30 RAM 34 for a=12576 to 12583: read ze: poke a,ze: poke a+1024,255-ze: next a 35 data 0, 0, 255, 0, 0, 0, 0, 255 39 for a=12648 to 12655: read ze: poke a,ze: poke a+1024,255-ze: next a 40 data 133, 133, 133, 133, 133, 133, 133, 133 44 for a=12664 to 12671: read ze: poke a,ze: poke a+1024,255-ze: next a 45 data 1, 2, 4, 8, 16, 32, 64, 128 49 for a=12760 to 12767: read ze: poke a,ze: poke a+1024,255-ze: next a 50 data 128, 64, 32, 16, 8, 4, 2, 1 54 for a=12568 to 12575: read ze: poke a,ze: poke a+1024,255-ze: next a 55 data 0, 0, 0, 0, 24, 36, 66, 129 59 rem for a=13272 to 13279: read ze: poke a,ze: poke a+1024,255-ze: next a 60 rem data 0, 0, 0, 0, 255, 36, 66, 129 61 rem char 123,"00 00 00 00 ff 24 42 81" 64 for a=12752 to 12759: read ze: poke a,ze: poke a+1024,255-ze: next a 65 data 03, 12, 48, 192,128,128,128,128 66 rem call char(124,"03 0c 30 c0 80 80 80 80") 124 for c58 69 for a=12584 to 12591: read ze: poke a,ze: poke a+1024,255-ze: next a 70 data 0, 0, 0, 0, 3, 12, 48, 192 71 rem call char(125,"00 00 00 00 03 0c 30 c0") replace 125 with 37 73 for a=12504 to 12511: read ze: poke a,ze: poke a+1024,255-ze: next a 74 data 128, 128, 128, 128, 128, 128, 128, 128 75 rem call char(91,"8080808080808080") ascii 91 is ram 27 [ 76 for a=12520 to 12527: read ze: poke a,ze: poke a+1024,255-ze: next a 77 data 128,128,128,128,128,128,128,255 78 rem call char(93,"80808080808080ff") ascii 93 is ram 29 80 rem call char(126,"ff300c03") 83 for a=12496 to 12503: read ze: poke a,ze: poke a+1024,255-ze: next a 84 data 255,0,0,0,192,48,12,3 85 rem call char(122,"ff 00 00 00 c0 30 0c 03") z=26 90 rem call char(121,"ff0c30c0") 93 for a=12480 to 12487: read ze: poke a,ze: poke a+1024,255-ze: next a 94 data 255,0,0,0,3,12,48,192 95 rem call char(120,"ff 00 00 00 03 0c 30 c0") x=24 100 rem call char(119,"c33c18") 104 for a=12784 to 12791: read ze: poke a,ze: poke a+1024,255-ze: next a 105 data 192, 48, 12, 03, 01, 01, 01, 01 106 rem 62,"c0300c0301010101") 109 for a=12536 to 12543: read ze: poke a,ze: poke a+1024,255-ze: next a 110 data 0,0,0,0,0,0,0,255 111 rem call char(95,"00000000000000ff") 95 ASCI is 31 114 for a=12464 to 12471: read ze: poke a,ze: poke a+1024,255-ze: next a 115 data 01, 01, 01, 01, 01, 01, 01, 255 116 rem call char(118,"01010101010101ff") TI ascii 118 is c64 ram 22 v 119 for a=12656 to 12663: read ze: poke a,ze: poke a+1024,255-ze: next a 120 data 0,0,0,0,192,48,12,03 121 rem call char(97,"00 00 00 00 c0 30 0c 03") swap 97 for c64 46 '.' 123 for a=12368 to 12375: read ze: poke a,ze: poke a+1024,255-ze: next a 124 data 240, 72, 36, 34, 17, 16, 8, 8 125 rem call char(98,"f0 48 24 22 11 10 08 08") 126 rem 98is b on TI - 66 B on c64 - 2 B ROM but we need j 128 for a=12376 to 12383: read ze: poke a,ze: poke a+1024,255-ze: next a 129 data 4,4,4,4,1,1,0,0 130 rem call char(99,"04 04 02 02 01 01") 131 rem make k instead 133 for a=12608 to 12615: read ze: poke a,ze: poke a+1024,255-ze: next a 134 data 0,0,0,0,0,128,64,32 135 rem call char(100,"00 00 00 00 00 80 40 20") ( 138 for a=12768 to 12775: read ze: poke a,ze: poke a+1024,255-ze: next a 139 data 16,08,04,02,01,0,128,128 140 rem call char(101,"10 08 04 02 01,00,8080") < 145 rem call char(102,"4040202010100808") 150 rem call char(103,"1008040201061860") 180 print chr$(147):rem call clear 185 poke 53281,1 :rem call screen(16) 186 poke 53280,1 :rem frame white 200 print " ____ # #" 201 print "/;__/; dragons" 202 print "]/ ;v druids &" 203 print ";>.%:/ dice" 204 print " ;v / " 205 print " ^^ " 209 print "a) roll d4 b) roll d6" 215 print "c) roll d8 d) roll d10" 225 print "e) roll d12 f) roll d20" 230 print " " 235 print "g) roll four d6" 240 print "h) roll two d20" 242 print "i) roll d4 and d6" 245 print "q) quit" 250 input a$ 255 if a$="a" then 1200 260 if a$="b" then 1300 265 if a$="c" then 1400 270 if a$="d" then 1500 275 if a$="e" then 1600 280 if a$="f" then 1700 285 if a$="g" then 1800 290 if a$="h" then 1900 292 if a$="i" then 2000 295 if a$="q" then 3000 300 print "=====" 305 goto 200 1200 d=int(1+4*rnd(1)) 1205 print chr$(147):rem call clear 1210 print "you rolled a " 1212 print " /j(" 1214 print " / k<(" 1220 print "/";d;" <(" :rem removed f and 6 1225 print "^^^^^^" 1230 print "with d4" 1240 print "=====" 1250 goto 200 1300 d=int(1+6*rnd(1)) 1305 print chr$(147):rem call clear 1310 print "you rolled a " 1315 print " *$$+" 1318 print "! -" 1320 print "!";d;"-" 1322 print "! @" 1325 print " ^^^ " 1330 print "with d6" 1340 print "=====" 1350 goto 200 1400 d=int(1+8*rnd(1)) 1405 print chr$(147):rem call clear 1410 print "you rolled a " 1415 print " %# " :rem { 1420 print " :/ ;>" 1425 print "!/";d;";[" 1430 print " z^x " :rem removed ~ and y 1432 print " " :rem was w 1435 print "with d8" 1440 print "=======" 1450 goto 200 1500 d=int(1+10*rnd(1)) 1505 print chr$(147):rem call clear 1510 print "you rolled a " 1520 print d 1530 print "with d10" 1540 print "=====" 1550 goto 200 1600 d=int(1+12*rnd(1)) 1605 print chr$(147):rem call clear 1610 print "you rolled a " 1620 print d 1630 print "with d12" 1640 print "=====" 1650 goto 200 1700 d=int(1+20*rnd(1)) 1705 print chr$(147):rem call clear 1710 print "you rolled a " 1720 print d 1730 print "with d20" 1740 print "=====" 1750 goto 200 1800 d1=int(1+6*rnd(1)) 1802 d2=int(1+6*rnd(1)) 1804 d3=int(1+6*rnd(1)) 1806 d4=int(1+6*rnd(1)) 1808 print chr$(147):rem call clear 1810 print "you rolled a " 1815 print " *$$+*$$+*$$+*$$+" 1818 print "! - - - -" 1820 print "!";d1;"-";d2;"-";d3;"-";d4;"-" 1822 print "! @ @ @ @" 1825 print " ^^^ ^^^ ^^^ ^^^" 1830 print "with four d6" 1840 print "================" 1850 goto 200 1900 d1=int(1+20*rnd(1)) 1905 d2=int(1+20*rnd(1)) 1910 print chr$(147):rem call clear 1915 print "you rolled a " 1930 print d1;" ";d2 1945 print "with two d20" 1950 print "============" 1955 goto 200 2000 d1=int(1+4*rnd(1)) 2005 d2=int(1+6*rnd(1)) 2010 print chr$(147):rem call clear 2015 print "you rolled a " 2020 print " /j( *$$+" 2025 print " / k<( ! -" 2030 print "/";d1;" <( !";d2;"-" 2035 print "^^^^^^ ! @" 2040 print " ^^^ " 2045 print "with a d4 and d6" 2050 print "================" 2055 goto 200 3000 end