"stomper"
and it seems not complete and i have troubles with reading the copy
and sorry for the UGLY form off printing, thats PlusD over FUSE in a txt file
i have to find the correct UDG to replace it all
and i GUESS those ar not complete
last article on page
https://www.computinghistory.org.uk/det ... gust-1983/
its 99% complete, an UDG problem
Code: Select all
5 DIM t(16): RANDOMIZE : GO SUB 9000: GO SUB 4000: LET score=0: LET level=1: LET hi=0
10 PAPER 7: INK 2: BORDER 7
20 LET cntr=0: CLS
99 REM *****DRAW SCREEN*******
100 FOR a=0 TO 21 STEP 2
110 FOR b=0 TO 31 STEP 2
120 PRINT AT a,b;"K\00\FF\FF\FF\FF\FF\FF\FF\FFK\00\FF\FF\FF\FF\00\00\00\00";AT a+1,b;"K\00\F0\F0\F0\F0\F0\F0\F0\F0K\00\F0\F0\F0\F0\00\00\00\00"
130 NEXT b: NEXT a
145 REM ****DRAW SKULLS******
150 FOR i=1 TO 4: LET a=1+INT (RND*5)+5*(i=3 OR i=4): LET b=1+INT (RND*8)+7*(i=2 OR i=4)
160 PRINT AT a*2,b*2; INK 0;"..";AT a*2+1,b*2;".."
170 NEXT i
1000 REM ******MOVE BOOT******
1010 LET a1=0: LET b1=0
1020 GO SUB 8500: GO TO 2010
1030 GO SUB 8600: IF INKEY$="" THEN GO TO 1030
1040 IF INKEY$="i" THEN LET b1=b-2: LET a1=a: IF b1<0 THEN LET b1=30
1050 IF INKEY$="s" THEN LET a1=a+2: LET b1=b: IF a1>20 THEN LET a1=0
1060 IF INKEY$="w" THEN LET a1=a-2: LET b1=b: IF a1<0 THEN LET a1=20
1070 IF INKEY$="o" THEN LET b1=b+2: LET a1=a: IF b1>30 THEN LET b1=0
1080 IF INKEY$="1" THEN GO SUB 7000: LET time=time+.2*level: LET a1=a: LET b1=b: GO TO 1110
1090 IF INKEY$="0" THEN LET time=time+.2*level: GO SUB 7500: LET a1=a: LET b1=b: GO TO 1110
1100 IF ATTR (a1,b1)=60 THEN GO TO 1030
1110 IF ATTR (a1,b1)=56 THEN GO TO 8000
1120 IF ATTR (a1,b1)=57 THEN LET score=score+(time*100)*level: LET cntr=cntr+1: GO SUB 8500
2000 PRINT AT a,b; INK 4;" ";AT a+1,b; INK 4;" "
2010 LET a=a1: LET b=b1
2020 PRINT AT a,b; INK 3;"K\00\FF\FF\FFK\00\00\00\00\00";AT a+1,b;"K\00\F0\F0\F0\E0\E0\E0\E0\E0K\00\F0\F0\F0\A0\00\00\00\00": BEEP .003,5: LET score=score+50*level
2025 IF cntr=diff THEN GO TO 6000
2030 GO TO 1030
4000 REM ********TITLES******
4010 BORDER 2: PAPER 6: INK 0: CLS : PRINT AT 6,11;"STOMPER";AT 8,13;"by";AT 10,8;"Barry H Clayton"
4020 PRINT AT 12,12;"1983"
4030 PAUSE 50: LET t$=" K\00\FF\FF\FFK\00\00\00\00\00 K\00\F0\F0\F0\E0\E0\E0\E0\E0K\00\F0\F0\F0\A0\00\00\00\00 "
4040 FOR i=1 TO 12: PRINT AT 0,i;" K\00\FF\FF\FFK\00\00\00\00\00";AT 1,i;" K\00\F0\F0\F0\E0\E0\E0\E0\E0K\00\F0\F0\F0\A0\00\00\00\00": BEEP .05,4: PAUSE 5: NEXT i
4050 PAUSE 15: FOR i=0 TO 20: IF i>0 THEN PRINT AT i-1,16; INK 2;"K\00\FF\FF\FF\FF\FF\FF\FF\FFK\00\FF\FF\FF\FF\FF\FF\FF\FF"
4060 PRINT AT i,0; PAPER 2; INK 0;t$: BEEP .05,i: NEXT i
4070 FOR i=1 TO 150: NEXT i
5000 REM ******DIFFICULTY******
5010 POKE 23692,255: PRINT AT 21,0
5020 PAPER 7: PAUSE 5
5030 PRINT TAB 5; INK 3;"HOW BRAVE ARE YOU ?": PAUSE 5
5040 PRINT 'TAB 9;"1)DEAD EASY": PAUSE 5
5050 PRINT 'TAB 9;"2)EASY": PAUSE 5
5060 PRINT 'TAB 9;"3)MODERATE": PAUSE 5
5070 PRINT 'TAB 9;"4)DIFFICULT": PAUSE 5
5080 PRINT 'TAB 9;"5)VERY DIFFICULT": PAUSE 5
5090 PRINT 'TAB 9;"5)IMPOSSIBLE": PAUSE 5
5100 PRINT '': PAUSE 5: PRINT ''': PAUSE 5: PRINT TAB 9;"PICK A NUMBER"''''
5110 LET n=CODE INKEY$: LET a=n-48: IF a<1 OR a>6 THEN GO TO 5110
5120 LET diff=3*(a=1)+5*(a=2)+7*(a=3)+10*(a=4)+12*(a=5)+20*(a=6)
5130 RETURN
6000 REM *****NEXT STAGE*****
6010 LET t$="11234": FOR i=1 TO 4: BEEP .2,VAL t$(i): BEEP .4,VAL t$(i+1): NEXT i
6020 FOR i=1 TO 300: NEXT i:: LET level=level+1: CLS : PRINT AT 5,10;"LEVEL ";level: RESTORE : PRINT : PRINT TAB 8;"SCORE=";score: PAUSE 100: GO TO 20
7000 REM ****ROTATE LEFT******
7010 LET t(16)=ATTR (a,0)
7015 FOR i=1 TO 15: LET t(i)=ATTR (a,i*2): NEXT i
7020 FOR i=15 TO 0 STEP -1
7030 IF t(i+1)=58 THEN PRINT AT a,i*2; INK 2;"K\00\FF\FF\FF\FF\FF\FF\FF\FFK\00\FF\FF\FF\FF\00\00\00\00";AT a+1,i*2;"K\00\F0\F0\F0\F0\F0\F0\F0\F0K\00\F0\F0\F0\F0\F0\F0\F0\F0": GO TO 7100
7040 IF t(i+1)=60 THEN PRINT AT a,i*2; INK 4;" ";AT a+1,i*2;" ": GO TO 7100
7050 IF t(i+1)=55 THEN PRINT AT a,i*2; INK 0;",,";AT a+1,i*2;"''": GO TO 7100
7060 IF t(i+1)=57 THEN PRINT AT a,i*2; INK 1;CHR$ (144+time);" ";AT a+1,i*2;"''": LET y1=y1-1
7070 PRINT AT a,b-2; INK 4;" ";AT a+1,b-2;" "
7080 IF y1<0 THEN LET y1=15
7100 NEXT i
7110 RETURN
7500 REM *****ROTATE RIGHT*****
7510 LET t(1)=ATTR (a,30)
7520 FOR i=0 TO 14: LET t(i+2)=ATTR (a,i*2): NEXT i
7530 FOR i=0 TO 15
7540 IF t(i+1)=58 THEN PRINT AT a,i*2; INK 2;"K\00\FF\FF\FF\FF\FF\FF\FF\FFK\00\FF\FF\FF\FF\00\00\00\00";AT a+1,i*2;"K\00\F0\F0\F0\F0\F0\F0\F0\F0K\00\F0\F0\F0\F0\00\00\00\00": GO TO 7600
7550 IF t(i+1)=60 THEN PRINT AT a,i*2; INK 4;" ";AT a+1,i*2;" ": GO TO 7600
7560 IF t(i+1)=56 THEN PRINT AT a,i*2; INK 4;"K\00 K\00\00~ ~\00";AT a+1,i*2;"''": GO TO 7600
7570 IF t(i+1)=57 THEN PRINT AT a,i*2; INK 1;CHR$ (144+time);" ";AT a+1,i*2;"K\00\C0\C0pp\00\00\00\00 ": LET y1=y1+1
7580 PRINT AT a,b+2; INK 4;" ";AT a+1,b+2;" "
7590 IF y1>15 THEN LET y1=0
7600 NEXT i
7610 RETURN
8000 REM ******HIT SKULL*******
8005 PRINT AT a,b; INK 4;" ";AT a+1,b;" "
8010 FOR i=a1 TO 20: PRINT AT i-1,b1; INK 4;" ";AT i+1,b1;" "
8020 PRINT AT i,b1; INK 3;"K\00\FF\FF\FFK\00\00\00\00\00";AT i+1,b1;"K\00\F0\F0\F0\E0\E0\E0\E0\E0K\00\F0\F0\F0\A0\00\00\00\00"
8030 BEEP (21-i)/300,30-i: NEXT i
8040 FOR i=152 TO 135 STEP -1: PRINT AT 21,b1; INK 3; OVER 1;CHR$ i;CHR$ (i+1);AT 20,b1; OVER 1;CHR$ (i+2);CHR$ (i+3)
8050 NEXT i
8060 PRINT AT 20,b1;" ";AT 21,b1; INK 3;"K\00 K\00 "
8070 GO TO 9500
8200 REM ******EXPLOSION*******
8210 BORDER 0: PAPER 0: RANDOMIZE USR 23300: BEEP 1,0: BEEP 1,0: BEEP .2,0: BEEP 1.1,0
8220 GO TO 9500
8500 REM *****DRAW A BOMB******
8510 LET time=0: LET x1=INT (RND*10): LET y1=INT (RND*15): IF x1=a1 OR ATTR (x1*2,y1*2)<>58 THEN GO TO 8510
8520 PRINT AT x1*2,y1*2; INK 1;"K\00=\E0\C0@\00\00\00\00 ";AT x1*2+1,y1*2; INK 1;"K\00\C0\C0pp\00\00\00\00 "
8600 REM ****BURN THE FUSE*****
8610 LET time=time+.01*level: IF time>7 THEN GO TO 8200
8620 PRINT AT x1*2,y1*2; INK 1;CHR$ (144+time)
8630 RETURN
9000 REM ******GRAPHICS********
9020 DATA 96,112,54,31,22,22,15,15
9030 DATA 31,104,239,192,0,0,0,0
9040 DATA 96,112,192,128,128,128,0,128
9050 DATA 192,240,48,48,0,0,0,0
9060 DATA 32,16,16,12,4,4,8,16
9070 DATA 48,120,120,48,0,0,0,0
9080 DATA 152,248,248,248,248,248,250,255
9085 DATA 0,0,0,0,0,0,160,240
9090 DATA 255,255,255,224,0,0,0,0
9100 DATA 240,224,240,224,0,0,0,0
9110 DATA 0,0,0,136,199,144,188,207
9120 DATA 62,255,33,1,0,17,0,88,1,0,3,237,176,61,35,32,244,201
9130 FOR n=159 TO 162: FOR i=0 TO 7: READ a: POKE USR CHR$ n+i,a: NEXT i: NEXT n
9140 FOR n=0 TO 7: FOR x=0 TO n: READ a: POKE USR CHR$ (144+n)+x,0: NEXT x: FOR x=n TO 7: READ a: POKE USR CHR$ (144+n)+x,a: NEXT x
9150 RESTORE 9060: NEXT n
9160 RESTORE 9070: FOR i=0 TO 7: READ a: POKE USR "u"+i,a: NEXT i
9170 FOR n=152 TO 156: FOR i=0 TO 7: READ a: POKE USR CHR$ n+i,a: NEXT i: NEXT n
9180 FOR i=23300 TO 23317: READ a: POKE i,a: NEXT i
9190 RETURN
9500 REM ****END OF GAME*******
9510 PRINT AT 5,9;"YOU SCORED :";AT 7,11;score
9520 IF score>hi THEN LET hi=score: PRINT '"Congratulations that is the best score today.Please type in your name followed by 'enter'": INPUT h$: GO TO 9560
9530 IF score=hi THEN PRINT '"Well done youeqalled ";h$;"'s high score.Better luck next time.": GO TO 9560
9540 LET t$=STR$ (hi-score): IF VAL t$>6000 THEN LET t$="a long way"
9550 PRINT : PRINT TAB 4;"YOU were ";t$;" short of "'TAB 5;h$;"'s high score."
9560 PRINT AT 18,0;"WOULD YOU LIKE ANOTHER GAME(Y/N)"
9570 IF INKEY$="" THEN GO TO 9570
9590 IF INKEY$="y" THEN LET score=0: LET level=1: LET cntr=0: GO SUB 5000: GO TO 10
9600 IF INKEY$="n" THEN STOP
9610 GO TO 9570
9900 CLEAR : SAVE "stomper" LINE 1
9999 REM K\00\00\00\C3$8\00\00K\00\00\00C$8\00\00K\00\00\00$8\00\00K\00\00\00\00\00K\00\00\00\00\00K\00\00\00\00\00\00K\00\00\00\00\00\00\00K\00\00\00\00\00\00\00K\00\FF\FF\FFK\00\00\00\00\00K\00\F0\F0\F0\E0\E0\E0\E0\E0K\00\F0\F0\F0\A0\00\00\00\00K\00 K\00\00~ ~\00K\00\00<BBBB<\00K\00\00\C0\E0|??K\000p`\80ࠠ\A0K\00=\E0\C0@\00\00\00\00K\00\C0\C0pp\00\00\00\00K\00@@@~@@@\00K\00\00`\F0\F0`\00\00\00
EDIT:
maybe with an emulator you can SEE the UDG:
Code: Select all
1 POKE @5,32: POKE @10,0: POK
E 11,0: LPRINT : LLIST : LPRINT
: REM AK\00\00>HHHH>\00
BK\00\00~RRRR,\00
CK\00\00<BBBB$\00
DK\00\00~BBB$\00
EK\00\00~RRRRB\00
FK\00\00~PPPP@\00
GK\00\00<BBJJ,\00
HK\00\00~~\00
IK\00\00\00BB~BB\00
JK\00\00|\00
KK\00\00~(D\00
LK\00\00~\00
MK\00\00~ ~\00
NK\00\00~ ~\00
OK\00\00<BBBB<\00
PK\00\00~HHHH0\00
QK\00\00<BJFB<\00
RK\00\00~HHHL2\00
SK\00\00$RRRR\00
TK\00@@@~@@@\00
UK\00\00||\00
10 PRINT "LINE 1 IS A LIST WIT
H AL 21 UDG FOR PRINTER TRICK WI
TH PLUSD OR DISCILPE, IT WILL PR
INT THE UDG VALUES"
;these special encodings can be used in the text file:
;{00}-{FF} .for hex byte values $00-$FF
;{80}-{87} .for unshifted block graphics
;{88}-{8F} .for shifted block graphics
; {A}-{U} ..for UDGs A-U