1 IF A=0 THEN A=1:LOAD "PGM.BIN",8,1 2 POKE 55,255:POKE 56,131:CLR 3 BA=33792:REM BASE ADDRESS 4 DP=BA+3:REM DE-ACTIVATE PGM 5 SA=BA+6:REM SET ADDRESS 6 BS=BA+9:REM BSAVE 7 BL=BA+12:REM BLOAD 8 DS=BA+15:REM DOS COMMANDS 9 FM=BA+18:REM FILL MEMORY 10 XF=BA+21:REM XFER MEMORY 11 HO=BA+24:REM HIRES ON 12 HF=BA+27:REM HIRES OFF 13 MO=BA+30:REM MULTICOLOR ON 14 MF=BA+33:REM MULTICOLOR OFF 15 CE=BA+36:REM 80 COLUMN CHAR DRIVER 16 CD=BA+39:REM CHAR DRIVER 17 DC=BA+42:REM DATA COMPRESS 18 UC=BA+45:REM UNCOMPRESS DATA 19 CW=BA+48:REM COPY WINDOW 20 RW=BA+51:REM RESTORE WINDOW 21 PL=BA+54:REM PLOT A POINT 22 UP=BA+57:REM UNPLOT A POINT 23 DR=BA+60:REM DRAW A LINE 24 UD=BA+63:REM UNDRAW A LINE 25 BF=BA+66:REM BITMAP FILL 26 SB=BA+69:REM SPLIT BORDER 27 BR=BA+72:REM 3D BAR 28 SE=BA+75:REM EIGHT SPRITE MODE 29 FS=BA+78:REM FOURTEEN SPRITE MODE 30 SO=BA+81:REM SPRITE ON 31 SD=BA+84:REM SPRITE DEFINE 32 SP=BA+87:REM SPRITE PLOT 33 SR=BA+90:REM SPRITE REFLECT 34 RS=BA+93:REM SPRITE REVERSE 35 SX=BA+96:REM SPRITE XFER 36 AN=BA+99:REM ANIMATE SPRITE 37 CA=BA+102:REM CEASE ANIMATE 38 JO=BA+105:REM JOYSTICK ON 39 JF=BA+108:REM JOYSTICK OFF 40 WC=BA+111:REM COLOR WINDOW 41 RW=BA+114:REM REVERSE WINDOW 42 FW=BA+117:REM FILL WINDOW 43 RD=BA+120:REM DIR READER 44 SYS SA,57344,52224:REM SET ADDRESS 45 SYS BA:REM ACTIVATE PGM 46 SYS HO:REM HIRES ON 47 SYSSE:REM EIGHT SPRITE MODE 48 REM 49 REM PROGRAM BEGINS HERE 50 POKE 53280,0:POKE53281,0 51 RAT=0 52 SYSBL,49152,"ALFREDO.SPR,P" 53 ADR=PEEK(781)+PEEK(782)*256 54 SD=54272 55 SYSCD,55296,1,1,"[144][147]" 60 SYSDR,0,0,319,0,1,0 65 SYSDR,319,0,319,150 70 SYSDR,319,150,0,150 75 SYSDR,0,150,0,0 80 SYSDR,0,150,319,150 85 SYSDR,200,150,200,75 90 SYSDR,200,75,319,75 100 SYSDR,200,75,319,50 110 SYSDR,220,100,250,100 115 SYSDR,250,100,250,110 120 SYSDR,250,110,220,110 125 SYSDR,220,110,220,100 130 REM SYSSE:REM EIGHT SPRITE MODE 135 SYSBA+3*28,0,0,0,0,0,1 140 SYSBA+3*29,0,25,183,0 145 SYSBA+3*27,1,0 150 FR=25:TM=100:Y=183:SL=1:MN=0:MX=3:GOSUB7000 160 SYSUD,80,150,110,150 161 SYSDR,135,YY,188,YY 162 GOSUB4005 165 SYSDR,80,150,110,180 170 FORX=091TO125STEP2:R=0:Y=Y+2:PT=4:GOSUB9000:NEXT 175 REM ** SCENE 2 ** 177 SYSBA+81,0,0 179 X=180:Y=50:GOSUB9000 180 SYSCD,55296,1,1,"[144][147]" 185 SYSDR,130,0,130,199:SYSDR,190,0,190,199 190 SYSDR,160,100,160,199:SYSDR,135,100,185,100 192 SYSBA+81,1,0 195 FORY=50TO133STEP3:X=180:R=0:PT=8:GOSUB9000:NEXT:PT=5:GOSUB9000 200 FOR YY=100TO190STEP4:SYSDR,135,YY,185,YY:SYSUD,135,YY,185,YY 202 SYSUD,160,YY-4,160,YY 205 Y=Y+4:GOSUB9000 210 NEXT 220 REM ** SCENE 3 ** 225 SYSBA+81,0,0 227 Y=53:GOSUB9000 230 SYSCD,55296,1,1,"[144][147]" 235 SYSDR,130,0,130,199:SYSDR,130,199,190,199:SYSDR,190,199,190,195 240 SYSDR,190,195,319,195:SYSDR,190,0,190,165:SYSDR,190,165,319,165 245 SYSDR,160,20,160,199 247 SYSBA+81,1,0 250 Y=53:FOR YY=20TO195STEP4:SYSDR,135,YY,185,YY:SYSUD,135,YY,185,YY 252 SYSUD,160,YY-4,160,YY 255 Y=Y+4:GOSUB9000 260 NEXTYY 262 SYSDR,135,YY,188,YY 264 SYSUD,160,YY-4,160,YY-1 265 FR=180:TM=320:SL=3:MN=15:MX=19:GOSUB7000 270 REM ** SCENE 4 ** 275 SYSBA+81,0,0 280 SYSCD,55296,1,1,"[144][147]" 285 SYSDR,0,100,319,100:SYSDR,0,150,160,150:SYSDR,160,150,180,170 290 SYSDR,180,170,319,170 291 Y=183:X=24:GOSUB9000 292 SYSBA+81,1,0 295 Y=183:FR=24:TM=171:SL=3:MN=15:MX=19:GOSUB7000 300 PT=4:GOSUB9000 305 FORX=171TO192:Y=Y+1:GOSUB9000:NEXT 310 Y=203:FR=195:TM=320:SL=3:MN=15:MX=19:GOSUB7000 320 REM ** SCENE 5 *** 325 SYSBA+81,0,0 330 SYSCD,55296,1,1,"[144][147]" 335 SYSDR,0,100,200,100:SYSDR,200,100,200,0:SYSDR,0,199,200,199 340 SYSDR,200,199,319,80 342 Y=232:X=24:GOSUB9000 345 SYSBA+81,1,0 350 Y=232:FR=24:TM=210:SL=3:MN=15:MX=19:GOSUB7000 355 Y=234:RAT=-3:FR=215:TM=320:SL=3:MN=15:MX=19:GOSUB7000 360 REM ** SCENE 6 ** 365 SYSBA+81,0,0 370 SYSCD,55296,1,1,"[144][147]" 375 SYSDR,0,199,100,99:SYSDR,100,99,100,199:SYSDR,180,99,180,199 380 SYSDR,180,99,319,99 382 Y=227:X=24:GOSUB9000 385 SYSBA+81,1,0 390 Y=227:RAT=-3:FR=24:TM=110:SL=3:MN=15:MX=19:GOSUB7000 395 Y=142:RAT=-2:FR=108:TM=130:SL=3:MN=16:MX=16:GOSUB7000 400 Y=128:FORX=130TO150STEP3:PT=18:Y=Y+2:GOSUB9000:NEXT 410 Y=140:RAT=3:FR=150:TM=151:SL=.033707:MN=8:MX=10:GOSUB7000 420 REM ** SCENE 7 ** 425 SYSBA+81,0,0 430 SYSCD,55296,1,1,"[144][147]" 435 SYSDR,100,0,100,125:SYSDR,180,0,180,125:SYSDR,180,125,319,125 440 SYSDR,0,125,100,125:SYSDR,0,199,319,199:SYSDR,0,175,319,175,6,0 442 Y=50:X=150:GOSUB9000 445 SYSBA+81,1,0 450 Y=50:RAT=3:FR=150:TM=151:SL=.018:MN=8:MX=10:GOSUB7000 452 GOSUB 4015 455 RAT=0:FR=150:TM=320:Y=218:SL=3:MN=12:MX=13:GOSUB7000 460 REM ** SCENE 8 ** 465 SYSBA+81,0,0 470 SYSCD,55296,1,1,"[144][147]" 475 SYSDR,0,125,100,125,1,0:SYSDR,100,125,100,0:SYSDR,100,0,300,0 480 SYSDR,300,0,300,125:SYSDR,300,125,319,125:SYSDR,0,175,100,175 485 SYSDR,100,175,100,199:SYSDR,100,199,319,199 490 SYSDR,0,165,95,165,6,0:SYSDR,95,165,103,175:SYSDR,103,175,103,190 495 SYSDR,103,190,319,190 497 X=24:Y=210:GOSUB9000 500 SYSBA+81,1,0 505 RAT=0:FR=24:TM=120:Y=210:SL=3:MN=12:MX=13:GOSUB7000 510 FORY=210TO229STEP4:PT=14:R=0:X=120:GOSUB9000:NEXT 512 GOSUB 4015 515 RAT=0:FR=120:TM=193:Y=232:SL=3:MN=12:MX=13:GOSUB7000 520 SYSUD,165,0,185,0 521 FORYZ=0TO175STEP5:SYSDR,165,YZ,165,YZ+5,1,0:SYSDR,185,YZ,185,YZ+5:NEXT 527 SYSDR,175,0,175,185,1,0 530 PT=8:X=X+3:GOSUB9000 532 Y=Y-2 535 FORYY=185TO1STEP-1:SYSUD,175,YY,175,YY:Y=Y-1:GOSUB9000 536 IF YY=180THENSYSDR,175,190,175,190,6,0 537 NEXT 540 REM ** SCENE 9 ** 545 SYSBA+81,0,0 550 SYSCD,55296,1,1,"[144][147]" 555 SYSDR,0,0,0,175,1,0:SYSDR,0,175,250,175:SYSDR,250,175,250,0 560 SYSDR,250,0,0,0 561 FORYZ=0TO194STEP5:SYSDR,25,YZ,25,YZ+5,1,0:SYSDR,45,YZ,45,YZ+5:NEXT 562 SYSUD,25,175,45,175 565 SYSDR,35,0,35,190 570 X=55:Y=239:GOSUB9000 575 SYSBA+81,1,0 580 FORYY=199TO170STEP-1:SYSUD,35,YY,35,YY:Y=Y-1:GOSUB9000:NEXT 585 SYSUD,25,0,25,199:SYSUD,45,0,45,199 590 SYSUD,35,0,35,190 595 SYSDR,0,175,90,175,1,0 600 SYSDR,0,0,90,0 610 PT=6:GOSUB9000:FORT=1TO1010:NEXT 615 PT=7:GOSUB9000:FORT=1TO1010:NEXT 620 Y=Y-1:FR=55:TM=250:SL=1:MN=0:MX=3:GOSUB7000 630 PT=2:GOSUB9000 635 FORT=165TO155STEP-1:SYSDR,250,T,319,T:SYSDR,250,165+(165-T),319,165+(165-T) 640 SYSUD,250,T,319,T:SYSUD,250,165+(165-T),319,165+(165-T):NEXT 645 SYSDR,250,155,319,155:SYSDR,250,175,319,175 650 FR=250:TM=320:SL=3:MN=15:MX=19:GOSUB7000 655 REM ** SCENE 10 ** 660 SYSBA+81,0,0 665 SYSCD,55296,1,1,"[144][147]" 670 SYSDR,0,150,250,150:SYSDR,250,150,250,100:SYSDR,250,100,50,100 675 SYSDR,50,100,50,130:SYSDR,50,130,0,130 676 Y=183:X=24:GOSUB9000 677 SYSBA+81,1,0 680 FR=24:TM=182:Y=183:SL=3:MN=15:MX=19:GOSUB7000 685 PT=6:GOSUB9000:FORT=1TO1000:NEXT 690 SYSUD,0,150,50,150:SYSUD,0,130,50,130:SYSDR,50,130,50,150 693 PT=5:GOSUB9000 695 FORXX=75TO160STEP4:SYSDR,XX,101,XX,149:SYSDR,160+(160-XX),101,160+(160-XX),149 700 SYSUD,XX,101,XX,149:SYSUD,160+(160-XX),101,160+(160-XX),149 702 IF XX=155THENSYSBA+81,0,0 705 NEXT 707 SYSBA+81,1,0 710 SYSUD,150,150,170,150:SYSDR,160,100,160,150:Y=Y+14:PT=8:GOSUB 9000 715 SYSDR,150,150,150,199:SYSDR,170,150,170,199 720 FORYY=150TO190STEP3 725 Y=Y+3:GOSUB9000:NEXT 730 REM ** SCENE 11 ** 735 SYSBA+81,0,0 740 SYSCD,55296,1,1,"[144][147]" 745 SYSDR,0,0,0,75:SYSDR,20,0,20,75:SYSDR,20,75,319,75:SYSDR,0,75,75,150 750 SYSDR,75,150,319,150 755 X=29:Y=49:GOSUB9000 760 SYSBA+81,1,0 765 FORYY=2TO70STEP3 770 Y=Y+3:GOSUB9000:NEXT 780 X=29:Y=127:PT=4:R=0:GOSUB9000 785 FORY=127TO182STEP2:X=X+2:GOSUB9000:NEXT 790 X=X+5 795 FR=X:TM=320:SL=3:MN=15:MX=19:GOSUB7000 800 REM ** SCENE 12 ** 805 SYSBA+81,0,0 810 SYSCD,55296,1,1,"[144][147]" 815 SYSDR,0,50,319,50:SYSDR,0,150,319,150:SYSDR,150,50,150,137 820 SYSDR,170,50,170,137:SYSDR,170,137,150,137 823 Y=183:X=24:GOSUB9000 825 SYSBA+81,1,0 830 FR=24:TM=178:Y=183:SL=3:MN=15:MX=19:GOSUB7000 835 PT=8:GOSUB9000 837 SYSUD,148,150,172,150:SYSDR,148,150,148,199:SYSDR,172,150,172,199 840 FORYY=137TO190:Y=Y+1:GOSUB9000:SYSUD,151,YY-1,169,YY-1 845 SYSDR,150,YY,170,YY:NEXT 850 REM ** SCENE 13 ** 855 SYSBA+81,0,0 860 SYSCD,55296,1,1,"[144][147]" 865 SYSDR,148,0,148,130:SYSDR,148,130,0,130:SYSDR,0,150,172,150 870 SYSDR,172,150,172,0 875 Y=46:GOSUB9000 880 SYSBA+81,1,0 885 FORYY=1TO122STEP4:Y=Y+4:GOSUB9000 886 SYSUD,150,YY,170,YY 887 SYSDR,150,YY+4,150,YY:SYSDR,170,YY+4,170,YY:SYSDR,150,YY+4,170,YY+4 890 NEXT 895 FOR Y=176TO183STEP2:GOSUB9000:NEXT 900 FOR XX=171TO165STEP-1:SYSDR,XX+1,140,XX+1,140:SYSDR,XX,131,XX,149 902 SYSUD,XX,131,XX,149 905 NEXT 907 PT=15:GOSUB9000 910 FOR XX=165TO10STEP-4:SYSDR,XX+1,140,XX+5,140:SYSDR,XX,131,XX,149 911 SYSUD,XX,131,XX,149 912 X=X-4 915 PT=PT+1:IFPT=20THENPT=15 920 GOSUB9000 922 GOSUB 9100 925 NEXT 930 REM ** SCENE 14 ** 935 SYSBA+81,0,0 940 SYSCD,55296,1,1,"[144][147]" 945 SYSDR,319,130,160,130:SYSDR,160,130,160,50:SYSDR,160,50,0,50 950 SYSDR,0,50,0,150:SYSDR,0,150,25,150:SYSDR,25,150,25,199 955 SYSDR,50,199,50,150:SYSDR,50,150,319,150 957 X=325:GOSUB9000:SYSBA+81,1,0 960 FOR XX=313TO48STEP-5:SYSDR,XX+1,140,XX+6,140:SYSDR,XX,131,XX,149 965 SYSUD,XX,131,XX,149 970 X=X-5 975 PT=PT+1:IFPT=20THENPT=15 977 GOSUB 9100 980 GOSUB9000 985 NEXT 987 SYSDR,48,131,48,149,1,0 990 PT=8:FORY=183TO229:GOSUB9000:NEXT 995 REM ** SCENE 15 ** 997 PT=8 1000 SYSBA+81,0,0 1005 SYSCD,55296,1,1,"[144][147]" 1010 SYSDR,150,0,150,50:SYSDR,150,50,145,55:SYSDR,170,0,170,50 1015 SYSDR,170,50,175,55:SYSDR,150,125,150,150:SYSDR,170,125,170,150 1020 SYSDR,150,150,170,150:SYSDR,150,150,145,155:SYSDR,170,150,175,155 1025 SYSDR,0,155,319,155:SYSDR,250,155,250,135:SYSDR,250,135,270,135 1030 SYSDR,270,135,270,155:SYSBA+39,53248,14,30,"EXIT" 1035 X=178:Y=50:GOSUB9000:SYSBA+81,1,0 1040 FORY=50TO183STEP3:GOSUB9000:NEXT 1045 PT=5:X=175:C=181:GOSUB9000 1047 SYSBA+81,0,0 1049 CL=1:GOSUB9100:FORXX=169TO151STEP-1:SYSDR,XX,125,XX,149,CL,0:NEXT 1050 FORCL=2TO10:GOSUB9100:FORXX=169TO151STEP-3:SYSDR,XX,125,XX,149,CL,0: 1052 NEXT:NEXT 1055 SYSDR,150,133,0,133:SYSDR,150,137,0,137 1057 SYSDR,149,135,0,135,1,0 1060 FORCL=1TO10:SYSDR,149,134,0,134,CL,0:SYSDR,149,136,0,136,CL,0:NEXT 1061 FORYY=133TO137:SYSUD,149,YY,0,YY:NEXT 1065 SYSCD,53248,22,12,"TO BE CONTINUED" 1070 FORA=1TO1000:NEXT 1075 SYSCD,53248,24,13,"PRESS ANY KEY" 1080 POKE198,.:WAIT 198,1:SYSHF:PRINT"[147]";:SYSDP:POKE178,28 1090 OPEN15,8,15,"R0:HELLO CONNECT=HELLO CONNECT":INPUT#15,ER:CLOSE15 1095 IFER<>63THENEND 1100 LOAD "HELLO CONNECT",8 4000 REM ** SOUND FX ** 4005 S=54272:POKES+24,15:POKES+5,190:POKES+6,25:FORX=127TO10STEP-17:POKES+1,2*X 4010 POKES+1,129-X:POKES+4,17:FORL=1TO4:NEXT:POKES+1,4:NEXT:POKES+4,16:RETURN 4015 S=54272:POKES+24,15:POKES+6,240:POKES+4,17:FORLA=1TO2:FORLX=255TO1STEP-55 4020 POKES+1,LX/2:POKES+1,255-LX/2:NEXT:NEXT:POKES+4,16:RETURN 7000 Z=0:R=0:PT=MN:FORF=FRTOTMSTEPSL 7005 Z=Z+1:IFZ<3THEN7020 7010 IFPT14THENZ=2 7025 NEXT 7030 RETURN 9000 REM ** POSITION SPRITE ** 9005 SYSBA+3*29,R,X,Y,PT 9010 RETURN 9100 POKESD+24,.:POKESD+24,15:RETURN