1? "PRESS (#) ON KEYPAD TO CONTINUE"
2 rx=rx-1:IF  NOT PDL(11) THEN 2
3 junk=RND(rx)
1140DIM ps(7)
1150REM        random number seed
1160? CHR$(12)
1170?
1180? "DM'S PERSONNEL SERVICE"
1190? "-------------------------------"
1200?
1210? "PRODUCES CHAR. ABILITY SCORES"
1220?
1230? "            FOR"
1240?
1250? "DUNGEONS & DRAGONS tm"
1260?
1280? "IF YOU ARE READY FOR THE 1ST"
1290? "CHARACTER, ENTER A ONE (1)."
1300INPUT c
1310ON c GOTO 1320
1320? CHR$(12)
1330REM        ********************************
1340REM        BEGIN 3D6 ROLLS FOR ABILITIES
1350REM        ********************************
1360 l=l+1
1370 z=INT((RND(1)*6)+1)
1380 z2=INT((RND(1)*6)+1)
1390 z3=INT((RND(1)*6)+1)
1400 zz=z+z2+z3
1410IF l=1 THEN 1530
1420IF l=2 THEN 1680
1430IF l=3 THEN 1760
1440IF l=4 THEN 2120
1450IF l=5 THEN 2340
1460IF l=6 THEN 2510
1500REM        ********************************
1510REM        CALCULATIONS FOR STRENGTH
1520REM        ********************************
1530? "CHARACTER'S STRENGTH IS "; zz
1540 st=zz
1550IF st=3 THEN  sf=-3
1560IF st>3 AND st<6 THEN  sf=-2
1570IF st>5 AND st<9 THEN  sf=-1
1580IF st>8 AND st<13 THEN  sf=0
1590IF st>12 AND st<16 THEN  sf=1
1600IF st>15 AND st<18 THEN  sf=2
1610IF st=18 THEN  sf=3
1620IF sf=0 THEN 1360
1630? "*ADD "; sf; " TO HIT, DAMAGE & DOORS"
1640GOTO 1360
1650REM       
1660REM       
1670REM        
1680 co=zz
1698 a=st/co
1700IF a<.67 OR a>1.5 THEN 1370
1710?:? "CONSTITUTION SCORE IS "; zz
1720GOTO 1360
1730REM      
1740REM      
1750REM      
1760?:? "CHARACTER'S INTELLIGENCE "; zz
1770 it=zz
1780IF it<9 THEN  iz$="*INTELLIGENCE TOO LOW FOR M.U."
1790IF it=9 THEN  iz$="*35% TO KNOW SPELL / LVL 4-6"
1800IF it>9 AND it<13 THEN  iz$="*45% TO KNOW SPELL / LVL 5-7"
1810IF it>12 AND it<15 THEN  iz$="*55% TO KNOW SPELL / LVL 6-9"
1820IF it>14 AND it<17 THEN  iz$="*65% TO KNOW SPELL / LVL 7-11"
1830IF it=17 THEN  iz$="*75% TO KNOW SPELL / LVL 8-14"
1840IF it=18 THEN  iz$="*85% TO KNOW SPELL / LVL 9-18"
1850IF it=3 THEN 1870
1860GOTO 1880
1870 i$="*DIFFICULT SPEECH - ILLITERATE"
1880IF it>3 AND it<6 THEN 1900
1890GOTO 1910
1900 i$="*EASY SPEECH BUT ILLITERATE"
1910IF it>5 AND it<9 THEN 1930
1920GOTO 1940
1930 i$="*BARELY LITERATE"
1940IF it>8 AND it<13 THEN 1960
1950GOTO 1970
1960 i$="*LITERATE - NATIVE TONGUE"
1970IF it>12 AND it<16 THEN 1990
1980GOTO 2000
1990 i$="*LITERATE/FLUENT - 2 LANGUAGES"
2000IF it>15 AND it<18 THEN 2020
2010GOTO 2030
2020 i$="*LITERATE/FLUENT - 3 LANGUAGES"
2030IF it=18 THEN 2050
2040GOTO 2060
2050 i$="*LITERATE/FLUENT - 4 LANGUAGES"
2060? i$
2070? iz$
2080GOTO 1360
2090REM     
2100REM     
2110REM     
2120?:? "CHARACTER'S DEXTERITY IS "; zz
2130 dx=zz
2140IF dx=3 THEN  df=-3
2150IF dx>3 AND dx<6 THEN  df=-2
2160IF dx>5 AND dx<9 THEN  df=-1
2170IF dx>8 AND dx<13 THEN  df=0
2180IF dx>12 AND dx<16 THEN  df=1
2190IF dx>15 AND dx<18 THEN  df=2
2200IF dx=18 THEN  df=3
2210IF df=-3 THEN GOSUB 5320
2220IF df=-2 THEN GOSUB 5340
2230IF df=-1 THEN GOSUB 5360
2240IF df=1 THEN GOSUB 5380
2250IF df=2 THEN GOSUB 5400
2260IF df=3 THEN GOSUB 5420
2270IF df=0 THEN GOTO 1360
2280? "*ADD "; df; " TO MISSILE/HIT ROLLS"
2290? "*"; x1$; x2$; x3$; " ARMOUR CLASS"
2300GOTO 1360
2310REM     
2320REM     
2330REM     
2340 wi=zz
2350 b=it/wi
2360IF b<.67 OR b>1.5 THEN 1370
2370?:? "CHARACTER'S WISDOM IS "; wi
2380IF wi=3 THEN  wf=-3
2390IF wi>3 AND wi<6 THEN  wf=-2
2400IF wi>5 AND wi<9 THEN  wf=-1
2410IF wi>8 AND wi<13 THEN  wf=0
2420IF wi>12 AND wi<16 THEN  wf=1
2430IF wi>15 AND wi<18 THEN  wf=2
2440IF wi=18 THEN  wf=3
2450IF wf=0 THEN 1360
2460? "*ADD "; wf; " TO MAGIC SAVING THROW"
2470GOTO 1360
2480REM     
2490REM     
2500REM     
2510?:? "CHARACTER'S CHARISMA IS "; zz
2520LET ch=zz
2530IF ch=3 THEN  xf=1
2540IF ch>3 AND ch<6 THEN  xf=2
2550IF ch>5 AND ch<9 THEN  xf=1
2560IF ch>8 AND ch<13 THEN  xf=4
2570IF ch>12 AND ch<16 THEN  xf=5
2580IF ch>15 AND ch<18 THEN  xf=6
2590IF ch=18 THEN  xf=7
2600? "*"; xf; " RETAINERS/MORALE OF "; xf
2610 l=0
2620REM     
2630REM     
2640REM     
2650?:?:?:? "IF YOU HAVE THIS DATA AND ARE":? "READY TO PROCEED, ENTER A (1)."
2660REM     
2670INPUT vg
2680ON vg GOTO 2690
2690HOME
2700? "        CLASS/RACE LIST"
2710? "-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
2720? " (1) FIGHTER     (4) HALFLING"
2730? " (2) MAGIC USER  (5) ELF"
2740? " (3) CLERIC      (6) DWARF"
2750? "           (7) THIEF"
2760?:? "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-="
2770?:? "SELECT THE RACE/CLASS THAT YOU"
2780? "WISH YOUR CHARACTER TO HAVE"
2790? "AND ENTER THE NUMBER FROM THE"
2795INPUT "TABLE ABOVE"; cn
2800IF cn=4 THEN 2820
2810GOTO 2870
2820IF dx<9 OR co<9 THEN 2840
2830GOTO 2870
2840?:? "DEXTERITY/CONSTITUTION TOO LOW"
2850? "FOR HALFLING!"
2860GOTO 2770
2870IF cn=5 AND it<9 THEN 2890
2880GOTO 2900
2890?:? "INTELLIGENCE TOO LOW FOR ELF!":GOTO 2770
2900IF cn=6 AND co<9 THEN 2920
2910GOTO 2960
2920?:? "CONSTITUTION TOO LOW FOR DWARF!":GOTO 2770
2930REM    
2940REM    
2950REM    
2960IF cn=1 THEN  hf=8
2970IF cn=2 THEN  hf=4
2980IF cn=3 THEN  hf=6
2990IF cn=4 THEN  hf=6
3000IF cn=5 THEN  hf=6
3010IF cn=6 THEN  hf=8
3020IF cn=7 THEN  hf=4
3030IF cn=8 THEN 1160
3040?
3050REM    
3060REM    
3070REM    
3080REM    
3090? "CHARACTER LVL RANGE...1 - 5"
3100?
3110? "AT WHICH LVL WILL CHARACTER":INPUT "START?"; ll
3120IF ll>5 THEN ? "# TOO LARGE; RE-ENTER.":GOTO 3110
3130HOME
3140?
3150? "YOUR CHARACTER HAS "; ll; " HIT DICE"
3160?
3170IF co=3 THEN  pf=(-3*ll)
3180IF co>3 AND co<6 THEN  pf=(-2*ll)
3190IF co>5 AND co<9 THEN  pf=(-1*ll)
3200IF co>8 AND co<13 THEN  pf=0
3210IF co>12 AND co<16 THEN  pf=ll
3220IF co>15 AND co<18 THEN  pf=(2*ll)
3230IF co=18 THEN  pf=(3*ll)
3240GOSUB 4330
3250REM    
3260REM    
3270REM    
3280IF cn=3 THEN 3300
3290GOTO 3500
3300IF cn=3 THEN 3320
3310GOTO 3500
3320 cz$="CLERIC vs. UNDEAD TABLE (1d20)"
3330 cu$="SK ZOM GHO WIGT WRA MUM SPE VAM"
3340? cz$
3350?
3360? cu$
3370 z1$=" 7  9   11  --   --  --  --  --"
3380 z2$=" T  7    9  11   --  --  --  --"
3390 z3$=" T  T    7   9   11  --  --  --"
3400 z4$=" D  T    T   7    9  11  --  --"
3410 z5$=" D  D    T   T    7   9  11  --"
3420IF cn=3 AND ll=1 THEN ? z1$
3430IF cn=3 AND ll=2 THEN ? z2$
3440IF cn=3 AND ll=3 THEN ? z3$
3450IF cn=3 AND ll=5 THEN ? z5$
3470REM    
3480REM    
3490REM    
3500IF cn=7 THEN 3520
3510GOTO 3720
3520 ty$="\\\\\ THIEVE'S  ABILITIES /////"
3530 ta$="PIC REM PIC MOV CLIM HIDE HEAR"
3540 tb$="LOC TRP PKT SIL SURF SHDW NOIS"
3550? ty$
3560? ta$
3570? tb$
3580 k1$="15% 10% 20% 20%  87%  10%  1-2"
3590 k2$="20% 15% 25% 25%  88%  15%  1-2"
3600 k3$="25% 20% 30% 30%  89%  20%  1-3"
3610 k4$="30% 25% 35% 35%  90%  25%  1-3"
3620 k5$="35% 30% 40% 40%  91%  30%  1-3"
3630IF ll=1 THEN ? k1$
3640IF ll=2 THEN ? k2$
3650IF ll=3 THEN ? k3$
3660IF ll=4 THEN ? k4$
3670IF ll=5 THEN ? k5$
3680REM    
3690REM    
3700REM    
3710REM    
3720 cc=cc+1
3730?
3740? "THIS IS CHARACTER #[ "; cc; " ]"
3750?
3760? "DO YOU WANT THIS CHARACTER?":INPUT "<Y/N> "; d$
3770IF d$="N" OR d$="n" THEN 1320
3780IF d$="Y" OR d$="y" THEN 3790
3790 cc=0
3800REM    
3810REM    
3820REM    
3830HOME
3840?:?:?
3850? "WHAT IS CHARACTER'S NAME?":?:INPUT na$
3860?
3870? "WHAT IS CHARACTER'S RACE?":?:INPUT ra$
3880?
3890? "WHAT IS CHARACTER'S GENDER?":?:INPUT se$
3900?
3910? "WHAT IS CHARACTER'S CLASS?":?:INPUT cl$
3920HOME
3930REM    
3940REM    
3950REM    
3960?:?
3970LET m1=INT((RND(1)*6)+1)
3980LET m2=INT((RND(1)*6)+1)
3990LET m3=INT((RND(1)*6)+1)
4000LET mt=m1+m2+m3
4010LET gc=(10*mt)
4020REM    
4030REM    
4040REM    
4050REM    
4060IF cn=1 THEN GOSUB 5470
4070IF cn=2 THEN GOSUB 6130
4080IF cn=3 THEN GOSUB 5580
4090IF cn=4 THEN GOSUB 5690
4100IF cn=5 THEN GOSUB 5800
4110IF cn=6 THEN GOSUB 5910
4120IF cn=7 THEN GOSUB 6020
4130GOSUB 4510
4140?
4150REM    
4160REM    
4170REM    
4180INPUT "ANOTHER CHARACTER <Y/N> "; gb$
4190IF gb$="Y" OR gb$="y" THEN 1320
4200HOME
4210?:?:?:?:?
4220? "       THANKS FOR USING ME!"
4230?
4240? "IF YOU CHANGE YOUR MIND AND"
4250? "WANT ANOTHER CHARACTER, JUST"
4260? "ENTER THE WORD <RUN> - BYE..."
4270CLEAR
4280END
4290?
4300REM    
4310REM    
4320REM    
4330 y=y+1
4340 ps=INT((RND(1)*hf)+1)
4350 ps(y)=ps
4360IF y<>ll THEN 4330
4370FOR y=0 TO ll-1
4380 ps=ps+ps(y)
4390NEXT y
4400 pt=ps+pf
4410IF pt<=0 THEN 4430
4420GOTO 4440
4430 pt=ll
4440? "YOUR CHARACTER WOULD HAVE "; pt:? "HIT POINTS!"
4450?
4460 y=0
4470RETURN
4510HOME
4520?
4530? "* RECAP OF CHARACTER ABILITIES"
4540?
4550? "NAME...."; na$
4560?:? "RACE...."; ra$; "    HIT DICE: "; ll
4570?:? "GENDER.."; se$
4580?:? "CLASS..."; cl$; "  HIT POINTS: "; pt
4590?:? "LEVEL..."; ll
4600?
4610? "N O T E ! ! !"
4620?:? "COPY THIS AND THE INFORMATION "
4630? "THAT FOLLOWS TO THE CHARACTER"
4640? "RECORD SHEET.  IT WILL NOT BE"
4650? "AVAILABLE AGAIN ! !"
4655?
4660INPUT "ENTER A ONE (1) TO CONTINUE."; kk
4670ON kk GOTO 4680
4680HOME
4690? na$; "'S STRENGTH IS......"; st
4700IF sf=0 THEN 4720
4710? "*ADD "; sf; " TO HIT, DAMAGE, DOORS"
4720?:? na$; "'S CONTITUTION IS..."; co
4730?:? na$; "'S INTELLIGENCE IS.."; it
4740IF cn=2 THEN ? iz$
4750? i$
4760?:? na$; "'S DEXTERITY IS...."; dx
4770IF dx=0 THEN 4800
4780? "*ADD "; df; " TO HIT/MISSILE ROLLS"
4790? "*"; x1$; x2$; x3$; " ARMOUR CLASS"
4800?:? na$; "'S WISDOM IS........"; wi
4810IF wf=0 THEN 4830
4820? "*ADD "; wf; " TO MAGIC SAVING THROWS"
4830?:? na$; "'S CHARISMA IS......"; ch
4840? "*MAY HAVE "; xf; " RETAINERS/MORALE:"; xf
4850IF cn=3 THEN 4900
4860GOTO 4960
4900? cz$:? cu$
4910IF cn=3 AND ll=1 THEN ? z1$
4920IF cn=3 AND ll=2 THEN ? z2$
4930IF cn=3 AND ll=3 THEN ? z3$
4940IF cn=3 AND ll=4 THEN ? z4$
4950IF cn=3 AND ll=5 THEN ? z5$
4960IF cn=7 THEN 5010
4970GOTO 5070
5010? ty$:? ta$:? tb$
5020IF cn=7 AND ll=1 THEN ? k1$
5030IF cn=7 AND ll=2 THEN ? k2$
5040IF cn=7 AND ll=3 THEN ? k3$
5050IF cn=7 AND ll=4 THEN ? k4$
5060IF cn=7 AND ll=5 THEN ? k5$
5070?:INPUT "TO CONTINUE, ENTER A ONE (1)"; pk
5080ON pk GOTO 5120
5120HOME
5130? "///// SAVING THROW TABLE \\\\\"
5140? "DEATH|      |PARAL|      |RODS"
5150? "RAY/ |MAGIC |/TURN|DRAGON|STVS"
5160? "POISN|WANDS |STONE|BREATH|SPLS"
5170? "-----|------|-----|------|----"
5180? st$
5185?:?
5190? p1$
5200? p2$
5210? p3$
5220? p4$
5230? p5$
5270? "THIS CHARACTER HAS "; gc; " GOLD P."
5280RETURN
5290REM     
5300REM     
5310REM     
5320 x1$="ADD ": x2$="3": x3$=" TO"
5330RETURN
5340 x1$="ADD ": x2$="2": x3$=" TO"
5350RETURN
5360 x1$="ADD ": x2$="1": x3$=" TO"
5370RETURN
5380 x1$="SUBTRACT ": x2$="1": x3$=" FROM"
5390RETURN
5400 x1$="SUBTRACT ": x2$="2": x3$=" FROM"
5410RETURN
5420 x1$="SUBTRACT ": x2$="3": x3$=" FROM"
5430RETURN
5470IF ll<4 THEN  st$="..12....13.....14....15.....16"
5480IF ll>3 AND ll<6 THEN  st$="..10....11.....12....13.....14"
5490 p1$="MAY USE ANY ARMOUR / SHIELD."
5495?
5500 p2$=" "
5510 p3$="MAY USE ANY WEAPON."
5520 p4$=" "
5530 p5$="NO SPLS, MAY USE MAGIC ARTICLE"
5540RETURN
5580IF ll<5 THEN  st$="..11....12.....14....16.....15"
5590IF ll=5 THEN  st$="...9....10.....12....14.....12"
5600 p1$="MAY NOT USE EDGED WEAPONS."
5610 p2$="MAY USE ANY ARMOUR / SHIELD."
5620 p3$="MAY USE SLING."
5630 p4$="HAS ABILITY TO 'TURN' UNDEAD."
5640 p5$="USES CLERICAL SPELLS ONLY."
5650RETURN
5690IF ll<4 THEN  st$="...8.....9.....10....13.....12"
5700IF ll>3 AND ll<6 THEN  st$="...6.....7......8....10.....10"
5710 p1$="CANNOT USE LONGBOW/2-HAND SWORD"
5720 p2$="ADJUST TO HIT/MISSILE BY +1."
5730 p3$="AC -1 VS. > MAN-SIZED OPP."
5740 p4$="10% CHANCE DETECTION IN WOODS."
5750 p5$="UNSEEN IN DUNGEON ON1-2 (1d6)."
5760RETURN
5800IF ll<4 THEN  st$="..12....13.....13....15.....15"
5810IF ll>3 AND ll<6 THEN  st$="..10....11.....11....13.....12"
5820 p1$="HAS 60' INFRAVISION."
5830 p2$="DETECTS OR SECRET DOORS 1-2/1d6"
5840 p3$="IMMUNE TO PARALYSIS/GHOUL ATT."
5850 p4$="SPKS ELVISH,ORC,HOB-GOB,& GNOLL"
5860 p5$="MAY USE SPLS / MAGIC ARTICLES."
5870RETURN
5910IF ll<4 THEN  st$="...8.....9.....10....13.....12"
5920IF ll>3 AND ll<6 THEN  st$="...6.....7......8....10.....10"
5930 p1$="HAS 60' INFRAVISION."
5940 p2$="DET'S TRAPS,ANOMALITIES 1-2/1d6"
5950 p3$="SPKS DWARF,GNOME,KOBOLD,GOBLIN"
5960 p4$="MAY NOT USE LONGBOW/2-HAND SWORD"
5970 p5$=" "
5980RETURN
6020IF ll<5 THEN  st$="..13....14.....13....16.....15"
6030IF ll=5 THEN  st$="..12....13.....11....14.....13"
6040 p1$="LEATHER ARMOUR ONLY/NO SHIELD."
6050 p2$="BACKSTABBING- +4 TO HIT ROLL."
6060 p3$="BACKSTABBING- TWICE NORMAL DMG"
6070 p4$="SEE TABLE FOR OTHER SKILLS."
6080 p5$=" "
6090RETURN
6130 st$="..13....14.....13....16.....15"
6140 p1$="MAY NOT USE ARMOUR / SHIELD."
6150 p2$="ONLY A DAGGER AS A WEAPON."
6160 p3$="CHECK INTELLIGENCE FOR ABILITY"
6170 p4$="TO LEARN SPELLS AND NUMBER OF"
6180 p5$="SPELLS/LEVEL"
6190RETURN
