Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 100 REM BASIC Week 2: Halloween Boogaloo
- 110 REM http://reddit.com/r/RetroBattlestations
- 120 REM written by FozzTexx
- 130 REM Atari 8-bit GFX port by Gibstov
- 150 DIM PM0$(128),PM1$(128),PM2$(128),PM3$(128),PM4$(128)
- 160 DIM BAT0$(8),BAT1$(8),WITCH0$(16),WITCH1$(16),SP$(8)
- 170 DIM CLEAR$(128),C$(1),CMD$(4)
- 180 DIM BX(3),BY(3),BW(3),BF(3)
- 200 REM Clear screen and setup variables
- 210 GR.7+16
- 220 CL = 159:RW = 95:REM Columns and Rows of screen
- 300 REM Load background and draw on screen
- 310 GOSUB 3000
- 320 NR = 64:WD = 76:WX = -2
- 330 X = 2:KF = X + WD:IF RND(1) > .5 THEN X = CL - WD - 2:KF = 0
- 340 Y = RW - NR:KW = CL - WD - 4
- 350 GOSUB 1000
- 500 RESTORE 5000:REM Load sprites into variables
- 510 FOR I=1 TO 8:READ D:BAT0$(I,I)=CHR$(D):NEXT I:BC=8
- 520 FOR I=1 TO 8:READ D:BAT1$(I,I)=CHR$(D):NEXT I
- 530 FOR I=1 TO 16:READ D:WITCH0$(I,I)=CHR$(D):NEXT I:WW=16:WH=16
- 540 FOR I=1 TO 16:READ D:WITCH1$(I,I)=CHR$(D):NEXT I
- 610 NB = 3:WX = -2
- 620 FOR I = 1 TO NB
- 630 BX(I) = INT(RND(1) * (KW - BC)):BY(I) = INT(RND(1) * ((RW - 4 - NR / 2) / NB)) * NB + I + 1
- 640 BW(I) = INT(RND(1) * 2):BF(I) = INT(RND(1) * 9)
- 650 NEXT I
- 660 FOR I = 1 TO NB
- 710 BW(I) = BW(I) + 1:IF BW(I) > 1 THEN BW(I) = 0
- 720 BF(I) = INT(RND(1) * 9)
- 730 Y = INT(BF(I) / 3):X = INT((BF(I) / 3 - Y) * 3 + .05)
- 740 X = X + BX(I) + KF :Y = Y + BY(I)
- 741 IF BW(I)=0 THEN SP$=BAT0$
- 742 IF BW(I)=1 THEN SP$=BAT1$
- 745 IF I=1 THEN PM1$(Y+1)=SP$:POKE 53248,X+30
- 746 IF I=2 THEN PM2$(Y+1)=SP$:POKE 53249,X+30
- 747 IF I=3 THEN PM3$(Y+1)=SP$:POKE 53250,X+30
- 750 IF WX = -1 THEN X = 0:Y = 0:POKE 53251,0:POKE 53252,0:POKE 53253,0:POKE 53254,0:POKE 53255,0:WX = -2
- 760 IF WX >= 0 THEN X = WX:Y = 10:PM4$(Y+1)=WITCH0$:PM0$(Y+1)=WITCH1$:POKE 53251,X+40:POKE 53252,X+50:POKE 53253,X+46:POKE 53254,X+42:POKE 53255,X+38:WX = WX - 1
- 770 IF WX = -2 AND WH + NR < RW AND RND(1) * 50 < 2 THEN WX = CL - WW - 1
- 780 NEXT I
- 790 GOTO 660
- 1000 RESTORE 4000:POKE 708,169:POKE 709,175:POKE 710,48
- 1010 CMD$="LCF"
- 1020 READ C$
- 1030 IF C$="E" THEN RETURN
- 1040 C=0
- 1050 FOR I=1 TO LEN(CMD$):IF C$=CMD$(I,I) THEN C=I
- 1055 NEXT I
- 1060 IF C=0 THEN PRINT "UNKNOWN DRAW COMMAND":END
- 1070 ON C GOSUB 2000,2050,2100
- 1080 GOTO 1020
- 2000 READ C,X1,Y1,X2,Y2
- 2010 COLOR C:PLOT X1+X,Y1+Y:DRAWTO X2+X,Y2+Y
- 2020 RETURN
- 2050 READ C,X1,Y1,R
- 2060 COLOR C
- 2070 PLOT X1+X+R*COS(0),Y1+Y+R*SIN(0):FOR I=1 TO 360 STEP 12:DRAWTO X1+X+R*COS(I),Y1+Y+R*SIN(I):NEXT I
- 2080 RETURN
- 2100 READ C,X1,Y1
- 2110 REM FIGURE OUT FILL
- 2150 RETURN
- 3000 A=4*(INT(PEEK(742)/4)-1)
- 3010 POKE 54279,A
- 3020 VSA=256*PEEK(135)+PEEK(134)
- 3030 BOA=256*PEEK(141)+PEEK(140)
- 3040 PM=256*A+384
- 3050 DISP=PM-BOA
- 3060 ADD=2
- 3070 FOR T=1 TO 5
- 3080 PMHIGH=INT(DISP/256)
- 3090 PMLOW=DISP-256*PMHIGH
- 3100 POKE VSA+ADD,PMLOW
- 3110 POKE VSA+ADD+1,PMHIGH
- 3120 DISP=DISP+128:ADD=ADD+8
- 3130 NEXT T
- 3140 CLEAR$(1)=CHR$(0):CLEAR$(128)=CHR$(0):CLEAR$(2)=CLEAR$
- 3150 PM1$=CLEAR$:PM2$=CLEAR$:PM3$=CLEAR$
- 3160 POKE 559,46:POKE 53277,3:POKE 623,16
- 3170 POKE 704,20:POKE 705,20:POKE 706,20:POKE 707,130:POKE 711,200
- 3180 POKE 53260,85
- 3200 RETURN
- 4000 DATA L,1,36,0,16,24
- 4010 DATA L,1,36,0,56,24
- 4020 DATA L,1,16,24,56,24
- 4030 DATA L,2,36,12,32,16
- 4040 DATA L,2,32,16,36,20
- 4050 DATA L,2,36,20,40,16
- 4060 DATA L,2,40,16,36,12
- 4070 DATA L,2,32,16,40,16
- 4080 DATA L,2,36,12,36,20
- 4090 DATA L,1,20,36,4,48
- 4100 DATA L,1,20,36,36,48
- 4110 DATA L,1,4,48,36,48
- 4120 DATA L,1,24,24,24,40
- 4130 DATA L,1,12,48,12,64
- 4140 DATA L,1,12,64,48,64
- 4150 DATA L,1,48,64,48,24
- 4160 DATA L,3,28,52,40,52
- 4170 DATA L,3,40,52,40,64
- 4180 DATA L,3,40,64,28,64
- 4190 DATA L,3,28,64,28,52
- 4200 DATA L,1,28,51,28,48
- 4210 DATA C,2,32,60,1
- 4220 DATA L,2,18,42,22,42
- 4230 DATA L,2,22,42,22,46
- 4240 DATA L,2,22,46,18,46
- 4250 DATA L,2,18,46,18,42
- 4260 DATA L,2,28,28,44,28
- 4270 DATA L,2,44,28,44,40
- 4280 DATA L,2,44,40,28,40
- 4290 DATA L,2,28,40,28,28
- 4300 DATA L,2,36,28,36,40
- 4310 DATA L,2,28,34,44,34
- 4320 DATA L,1,48,60,68,60
- 4330 DATA L,1,68,60,68,44
- 4340 DATA L,1,48,44,72,44
- 4350 DATA L,1,72,44,64,36
- 4360 DATA L,1,64,36,48,36
- 4370 DATA L,2,56,48,64,48
- 4380 DATA L,2,64,48,64,56
- 4390 DATA L,2,64,56,56,56
- 4400 DATA L,2,56,56,56,48
- 4410 DATA L,2,60,48,60,56
- 4420 DATA L,2,56,52,64,52
- 4430 DATA L,3,52,36,52,32
- 4440 DATA L,2,52,32,52,28
- 4450 DATA L,3,56,36,56,32
- 4460 DATA L,2,56,32,56,28
- 4470 DATA L,3,60,36,60,32
- 4480 DATA L,2,60,32,60,28
- 4490 DATA L,3,64,36,64,32
- 4500 DATA L,2,64,32,64,28
- 4600 DATA E
- 5000 DATA 0,0,0,255,60,24,0,0
- 5010 DATA 0,0,129,66,60,24,0,0
- 5020 DATA 0,0,0,4,14,31,0,126
- 5030 DATA 191,62,31,5,0,0,0,0
- 5040 DATA 0,0,0,0,0,0,16,0
- 5050 DATA 3,255,3,0,0,0,0,0
Add Comment
Please, Sign In to add comment