ZX81 Listing for dl.p


ZX81 program listing for **DRAGONS LAIR SLR/1985

**DRAGONS LAIR SLR/1985 (dl.p)

My version of the classic arcade game. Use Z for left, X for right, M for up and . for down.


SYSTEM VARIABLES

PROG  : 16509
D-FILE: 23094
VARS  : 23887
E-LINE: 24263
STKBOT: 24263
STKEND: 24263


LEGEND

9999 means line number
PRINT means treat as KEYWORD P


PROGRAM LISTING

  10 REM **DRAGONS LAIR SLR/1985
  11 LET H$="COM"
  12 LET H=400
  20 LET M=5
  30 LET S=0
  35 CLS
  40 PRINT ,,,,"DRAGONS LAIR...T
HE EXCITMENT IS úúúúúúúúúúúú   A
BOUT TO BEGIN**"
  50 PRINT ,,,,"WHAT ARE YOUR IN
ITIALS?";
  60 INPUT S$
  70 PRINT S$
  80 PRINT ,,,,"                
                         ÷µ÷    
                  ¹¹¸¸  ÷ñ ·    
¸¸¸¸¸¸¸¸¸¸¹¹    ¹¹¸¸¸º  ²       
ºº¸¸¸¸¸¸¸¸¸¸¸¹ ¸¸¸¸¸º     ¸     
  º¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸º     ¸¸     
   ººº¸¸¸¸¸¸¸¸¸¸¸¸¸¸¹¹¸  ¸¸¸   ¸
¸¹¹¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸
¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸
¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸"
  90 PRINT ,,,,"PRESS ENTER TO B
EGIN............"
 100 PAUSE 4E4
 110 CLS
 120 FOR A=0 TO 12
 130 PRINT AT A,0;"!!!!!!!!!!!! 
        !!!!!!!!!!!"
 140 NEXT A
 150 PRINT AT 5,0;"!!!!!!!!!!!!º
        !!!!!!!!!!!"
 160 PRINT AT 7,0;"!!!!!!!!!!!!º
        !!!!!!!!!!!"
 165 PRINT AT 0,0;"SCORE:";S;AT
1,0;"MEN:";M
 170 LET C$="!!!!"
 180 LET B$="  ²óö"
 190 FOR A=0 TO 9
 200 PRINT AT A,14;"      ";AT A
+1,14;B$;AT A+2,14;C$
 210 IF INKEY$="Z" THEN GOTO 230
 220 NEXT A
 230 IF A<>3 AND A<>5 THEN GOTO
300
 240 PRINT AT A+1,16;"³ó´";AT A,
15;"²ó";AT A+1,17;"ö "
 250 PRINT AT A,14;"²´ ";AT A+1,
16;"ö ";AT A-1,13;"²´";AT A,14;"
 ö";AT A+1,16;" "
 260 PRINT AT A-1,13;"  ";AT A,1
2;"ñ   ";AT A+1,13;"ö";AT A+1,12
;"µ "
 270 LET S=S+(50 AND A=3)+(100
AND A=5)
 280 PRINT AT A,11;" ";AT A+1,11
;" ";AT A,11;"÷µ";AT A+1,11;"÷ö"
;AT A,11;"ñ ";AT A+1,11;"õ ";AT
A,11;"!";AT A+1,11;"!"
 290 GOTO 330
 300 PRINT AT A+1,14;"ö¶ö¶ö"
 310 LET M=M-1
 320 IF M=0 THEN GOTO 1000
 325 GOTO 100
 330 PRINT AT 0,0;"SCORE:";S;AT
1,0;"MEN:";M
 340 PAUSE 4E4
 350 CLS
 360 FOR A=0 TO 10
 370 PRINT AT A,0;"!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!"
 380 PRINT AT A+1,0;"           
                     "
 390 NEXT A
 400 PRINT AT 9,15;"ñ´";AT 10,15
;"¶´"
 401 FOR A=1 TO 50
 402 NEXT A
 410 PRINT AT 5,12;"        "
 420 FOR A=6 TO 10
 430 PRINT AT A,11;"÷÷";AT A,19;
"´´"
 440 NEXT A
 450 LET L=SIN PI
 460 IF INKEY$="M" THEN GOTO 530
 470 PRINT AT 9,15;"¶¶";AT 10,15
;"³ó"
 480 LET M=M-1
 485 IF M=0 THEN GOTO 1000
 490 PRINT AT 0,0;"SCORE:";S;AT
1,0;"MEN:";M
 500 PAUSE 4E4
 510 CLS
 520 GOTO 680
 530 LET S=S+25
 531 PRINT AT 8,15;"ñ´";AT 9,15;
"¶´";AT 10,15;"!!"
 535 IF INKEY$<>"" THEN GOTO 535
 540 FOR G=1 TO 10
 550 PRINT AT 6,13;"  ÷±  ";AT 7
,13;"  ²´  "
 560 IF INKEY$="M" THEN GOTO 630
 570 PRINT AT 6,13;" ÷  ± ";AT 7
,13;" ²  ´ "
 580 IF INKEY$="M" THEN GOTO 600
 590 NEXT G
 600 PRINT AT 7,15;"ñ´";AT 8,15;
"¶´";AT 9,15;"!!"
 610 PRINT AT 6,13;"  ÷±  ";AT 7
,13;"  ²´  "
 620 GOTO 480
 630 PRINT AT 7,15;"ñ´";AT 8,15;
"¶´";AT 9,15;"!!"
 640 PRINT AT 6,13;" ÷  ± ";AT 7
,13;"  ñ´  "
 650 PRINT AT 6,15;"ñ´";AT 7,15;
"¶´";AT 8,15;"!!"
 660 PRINT AT 6,13;"  ÷±  ";AT 7
,13;"  ²´  "
 665 LET S=S+100
 670 GOTO 490
 680 LET A$="        !!!!!!!!!!!
!!!!!                 !!!!!!  !!
!!!!                   !!!!    !
!!!                     !!! ñ´ !
!!                       !!!¶´ !
!                               
                                
                                
                                
             "
 690 FOR G=1 TO 9 STEP 2
 700 PRINT AT 0,0;A$
 710 IF INKEY$<>"" THEN GOTO 710
 720 PRINT AT 2,11;"±²";AT 3,11;
"´÷"
 730 IF INKEY$<>"" THEN GOTO 730
 740 PRINT AT 2,11;"!!";AT 3,11;
"!!";AT 3,12;"±²";AT 4,12;"´÷"
 750 IF INKEY$="X" THEN GOTO 790
 760 PRINT AT 3,12;"!±²";AT 4,12
;"!´÷"
 770 IF INKEY$="X" THEN GOTO 790
 780 GOTO 950
 790 PRINT AT 0,0;A$
 795 LET S=S+25
 800 IF INKEY$<>"" THEN GOTO 800
 810 PRINT AT 2,19;"±²";AT 3,19;
"´÷"
 820 IF INKEY$<>"" THEN GOTO 820
 830 PRINT AT 2,19;"!!";AT 3,19;
"!!";AT 3,18;"±²";AT 4,18;"´÷"
 840 IF INKEY$="X" THEN GOTO 870
 850 PRINT AT 3,17;"±²!";AT 4,17
;"´÷!"
 860 IF INKEY$<>"X" THEN GOTO 95
0
 865 LET S=S+25
 870 NEXT G
 880 PRINT AT 0,0;A$
 890 PRINT AT 6,14;"ó  ó";AT 7,1
4;"³  ³"
 895 LET O=0
 900 FOR A=1 TO 10
 910 LET L=SIN PI
 920 IF INKEY$="X" THEN LET O=O+
1
 930 NEXT A
 940 IF O=2 THEN GOTO 1080
 950 PRINT AT 3,15;"öö";AT 4,15;
"³ó"
 960 LET M=M-1
 970 IF M=0 THEN GOTO 1000
 980 PRINT AT 0,0;"SCORE:";S;AT
1,0;"MEN:";M
 990 GOTO 1050
1000 CLS
1010 PRINT "DRAGONS LAIR...GAME 
OVER******  úúúúúúúúúúúú   SCORE
:";S
1012 IF S>H THEN LET H$=S$
1014 IF S>H THEN LET H=S
1016 PRINT ,,,,"HIGH SCORE......
................";H$;"----";H
1020 PRINT ,,,,"YOU DIED, TOO BA
D FOR YOU...TRY AGAIN?(PRESS ENT
ER TO BEGIN...) "
1030 PAUSE 4E4
1040 GOTO 20
1050 PAUSE 4E4
1060 CLS
1070 GOTO 1110
1080 LET S=S+100
1090 PRINT AT 0,0;A$;AT 1,15;"!!
";AT 2,14;"!!!!";AT 3,14;"!ñ´!"
1100 GOTO 980
1110 FOR A=0 TO 10
1120 PRINT AT A,0;"             
                   ";AT A+1,0;"!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
1230 NEXT A
1250 PRINT AT 10,1;"µ";AT 9,5;"ñ
´";AT 10,5;"¶´";AT 9,28;"ñ´";AT
10,28;"ñ´";AT 3,20;"÷ó";AT 4,18;
"óó ôò µ";AT 5,17;"õñ·÷  ÷ò";AT
6,17;"ñ·  ö   ";AT 7,17;"±µ ñ  ·
·";AT 8,20;"ô  µµ";AT 9,21;"  ±"
;AT 10,19;"·  ò"
1260 FOR A=1 TO 20
1270 IF INKEY$="Z" THEN GOTO 131
0
1280 NEXT A
1290 PRINT AT 10,5;"¸¸";AT 9,5;"
¹¸"
1300 GOTO 1500
1310 FOR A=5 TO 1 STEP -1
1320 PRINT AT 9,A;"ñ´ ";AT 10,A;
"¶´ "
1330 NEXT A
1335 LET S=S+25
1340 IF INKEY$<>"" THEN GOTO 134
0
1350 LET O=0
1360 FOR A=1 TO 10
1370 LET L=SIN PI
1380 IF INKEY$="." THEN LET O=O+
1
1390 NEXT A
1400 IF O=2 THEN GOTO 1430
1410 PRINT AT 10,1;"¸¸";AT 9,1;"
¸¹"
1420 GOTO 1500
1430 LET S=S+50
1431 FOR A=0 TO 16
1440 PRINT AT 9,A;" õó";AT 10,A;
" ¶´"
1450 IF INKEY$="M" THEN GOTO 149
0
1460 NEXT A
1470 PRINT AT 9,A;" ¸¹";AT 10,A;
" ¸¸"
1480 GOTO 1500
1490 GOTO (1470 AND A<15)+(1550
AND A>14)
1500 LET M=M-1
1510 IF M=0 THEN GOTO 1000
1520 PRINT AT 0,0;"SCORE:";S;AT
1,0;"MEN:";M
1530 PAUSE 4E4
1540 GOTO 110
1550 PRINT AT 8,21;"¸¸"
1560 LET L=SIN PI+SIN PI+SIN PI
1570 FOR A=1 TO 6
1580 FOR G=10 TO 3 STEP -1
1590 PRINT AT G,17;("¸¸¸¸¸¸¸¸"
AND A/2<>INT (A/2))+("        "
AND A/2=INT (A/2))
1591 PRINT AT 9,15;"ñ´";AT 10,15
;"¶´"
1600 NEXT G
1601 NEXT A
1610 FOR A=1 TO 100
1620 NEXT A
1630 LET S=S+200+INT (RND*5+100)
1640 PRINT AT 9,0;"             
 õóóµ                           
 ¶´÷ò              "
1650 GOTO 1520
1660 CLS
1670 SAVE "DL"
1680 PRINT "PROGRAM LOADED...PRE
SS ENTER... "
1690 PAUSE 4E4
1700 GOTO 20