Jump to content
IGNORED

Almost playable Cosmic Digger


Recommended Posts


Computer and Video Games issue 37 had an incomplete listing of an extended basic game called Cosmic Digger. See CantStopClicking's post from February 7, 2013.

 

https://forums.atariage.com/topic/194598-computer-video-games-magazine-type-in-games/page/3/

 

The game is a Manic Miner type game. I remember buying this issue of C&VG and being very disappointed that the game could not be played. I realised recently that inserting a few lines could make the screens viewable and playable. See the example code below.

 

The attached zip file is a Classic99 compatible. It can also be used with JS99'er. I've also attached a dsk file which is compatible with both emulators as well.

 

 

Spoiler

1 CALL CLEAR :: CALL SCREEN(5):: CALL MAGNIFY(3)
2 DISPLAY AT(12,1):"DO YOU WANT INSTRUCTIONS?" :: ACCEPT AT(12,26):A$ :: IF SEG$(A$,1,1)="Y" THEN 142
3 CALL CLEAR :: CALL COLOR(3,2,1,4,2,1)
4 CALL CHAR(96,"030702030303070F0D0D0E0E0703030380C080C0800080C0C0C0C0C080000080")
5 CALL CHAR(100,"030702030303070F0F1F1F030706060780C080C0800080C0C0E06080C0C0C0E0")
6 CALL CHAR(104,"030702030303070F0F1F1B070F0C0C0E80C080C0800080C0C0E0E0C0E0606070")
7 CALL CHAR(108,"01030103010001030303030301000001C0E040C0C0C0E0F0B0B07070E0C0C0C0")
8 CALL CHAR(112,"01030103010001030307060103030307C0E040C0C0C0E0F0F0F8F8C0E06060E0")
9 CALL CHAR(116,"0103010301000103030707030706060EC0E040C0C0C0E0F0F0F8D8E0F0303070")
10 CALL CHAR(132,"030303031F1F030303030303030F7FFFC0C0C0C0F8F8C0C0C0C0C0C0C0F0FEFF")
11 SCR=1 :: LV=99 :: SC=0 :: KY=0 :: S=0
12 ON SCR GOSUB 32,48,71,87,100,125
13 RC=96 :: CALL SPRITE(#1,96,10,96,128)
14 IF LV=0 THEN 129
15 DISPLAY AT(2,5)SIZE(7):SC :: DISPLAY AT(2,12)SIZE(3):LV :: DISPLAY AT (2,19):SCR
16 CALL PATTERN(#1,RC):: CALL JOYST(1,A,X):: CALL MOTION(#1,0,A)
17 CALL POSITION(#1,R,C)::R2=R/8+3::CALL GCHAR(-R2*(R2<=24)-24*(R2>24),C/8+1,G):: IF G=32 THEN VM=1 :: GOTO 26 ELSE IF G=128 THEN 133
18 IF G=123 THEN CALL HCHAR(-R2*(R2<=24)-24*(R2>24),C/8+1,120):: GOSUB 123
19 IF G=124 THEN CALL HCHAR(-R2*(R2<=24)-24*(R2>24),C/8+1,120):: GOSUB 124
20 IF X<>0 THEN 25
21 CALL COINC(ALL,H):: IF H THEN 133
22 RC=RC+A :: IF RC>104 AND A=4 THEN RC=96 ELSE IF RC<108 AND A=-4 THEN RC=116
23 IF KY>=1 THEN 114
24 GOTO 16
25 CALL SOUND(-100,300,15):: CALL SOUND(-10,500,15):: VM=-14
26 IF A=-4 THEN CALL PATTERN(#1,116)ELSE CALL PATTERN(#1,104)
27 CALL MOTION(#1,VM,A):: VM=VM+2 :: CALL POSITION(#1,R,C):: R2=R/8+3::CALL GCHAR(-R2*(R2<=24)-24*(R2>24),C/8+1,G)
28 IF G=128 THEN 133
29 CALL COINC(ALL,H):: IF H THEN 133
30 IF VM>8 THEN VM=8
31 IF G<>32 AND VM>1 THEN CALL MOTION(#1,0,0):: GOTO 16 ELSE 27
32 REM SCR 1
33 CALL CHAR(120,"AA55AA",121,"FF8181FFFF1818FF",122,"FF3C18",123,"3838080808081C1C",124,"183C3C18")
34 CALL CHAR(128,"AA55AA55AA55AA55",129,"FF1818FFFF8181FF")
35 CALL COLOR(12,9,1,13,6,12)
36 CALL HCHAR(15,4,120,26):: CALL HCHAR(13,4,120,26):: CALL HCHAR(14,25,121,8):: CALL HCHAR(1,1,122,32)
37 CALL HCHAR(14,1,121,3):: CALL HCHAR(13,7,32,2):: CALL HCHAR(15,21,32,2):: CALL HCHAR(13,21,32,2):: CALL HCHAR(18,21,120,2)
38 CALL HCHAR(19,25,120,28):: CALL HCHAR(24,1,120,32):: CALL HCHAR(22,27,120,8)
39 CALL HCHAR(11,1,120,16):: CALL HCHAR(11,20,120,12):: CALL HCHAR(9,9,120,6)
40 CALL HCHAR(8,17,120):: CALL VCHAR(1,32,128,48):: CALL HCHAR(23,7,129,7):: CALL HCHAR(10,27,129,3)
41 CALL HCHAR(13,26,123):: CALL HCHAR(8,18,123):: CALL HCHAR(20,8,123)
42 CALL HCHAR(15,6,124):: CALL HCHAR(9,11,124):: CALL HCHAR(19,27,124):: CALL HCHAR(13,28,124):: CALL HCHAR(11,29,124)
43 CALL CHAR(136,"3C7EFF9999FF7E3C000000000000000000000000000000000000000000")
44 CALL SPRITE(#2,136,4,85,128,0,-8+S,#3,136,10,85,200,0,-8+S)
45 CALL SPRITE(#4,136,14,180,1,0,6+S,#8,136,3,55,128,0,-7+S)
46 CALL SPRITE(#5,136,13,145,20,0,9+S,#6,136,6,145,45,0,9+S,#7,136,14,145,70,0,9+S)
47 RETURN
48 REM SCR 2
49 CALL DELSPRITE(ALL)::CALL CHAR(64,"00000000000001070F1F3F7F7FFBFD7F1F3FFFFBF9FFFEFFF0EFFFFFFFFFFFFF")
50 CALL CHAR(68,"7F3F1F0F030D1E3F7FFFFF7F3A0F7DFFFFFFFFFFFFFFFFFFFFFFF5F0A0E060C0")
51 CALL CHAR(72,"F8FCFFDF9FFF7FFF0FF7FFFFFFFFFFFF00000000000080E0F0F8FCFEFEDFBFFE")
52 CALL CHAR(76,"FFFFFFFFFFFFFFFFFFFF5F0F05070603FEFCF8F0C0B078FCFEFFFFFF5CF0BEFF")
53 CALL CHAR(80,"000000061F365B376D573D1F060000000000000098C6A067E06CC39800000000")
54 CALL CHAR(84,"000000001963D5E707671A010000000000000060F8DC76DA76DA7CD860000000")
55 CALL CHAR(120,"CC33CC"):: CALL COLOR(12,6,1,13,13,14,5,11,1,6,11,1)
56 CALL HCHAR(1,1,122,32)
57 FOR I=24 TO 8 STEP -3 :: CALL HCHAR(I,1,120,32):: NEXT I
58 CALL HCHAR(9,1,32,11):: CALL HCHAR(12,16,32,4):: CALL HCHAR(15,18,32,4):: CALL HCHAR(18,20,32,4)
59 CALL HCHAR(15,5,32,2):: CALL HCHAR(12,6,32,2):: CALL HCHAR(21,4,32,1)
60 CALL HCHAR(11,31,79):: CALL HCHAR(10,31,78):: CALL HCHAR(11,30,77):: CALL HCHAR(10,30,76)
61 CALL HCHAR(9,31,75):: CALL HCHAR(8,31,74):: CALL HCHAR(9,30,73):: CALL HCHAR(8,30,72)
62 CALL HCHAR(11,29,71):: CALL HCHAR(10,29,70):: CALL HCHAR(11,28,69):: CALL HCHAR(10,28,68)
63 CALL HCHAR(9,29,67):: CALL HCHAR(8,29,66):: CALL HCHAR(9,28,65):: CALL HCHAR(8,28,64)
64 CALL HCHAR(23,20,129,8):: CALL HCHAR(21,20,32,2):: CALL HCHAR(24,5,124,5)
65 CALL HCHAR(24,19,123):: CALL HCHAR(12,27,123):: CALL HCHAR(7,24,123)
66 CALL SPRITE(#2,80,12,72,128,0,-8+S,#3,84,12,96,250,0,8+S,#4,80,12,120,199,0,-7+S)
67 CALL SPRITE(#5,84,12,48,1,0,9+S,#6,84,12,144,220,0,8+S,#7,84,12,168,2,0,6+S)
68 CALL VCHAR(1,32,128,48)
69 CALL HCHAR(12,15,124):: CALL HCHAR(21,28,124,2):: CALL HCHAR(9,24,124):: CALL HCHAR(9,3,124):: CALL HCHAR(12,3,124):: CALL HCHAR(15,3,124)
70 RETURN
71 REM SCR 3
72 CALL DELSPRITE(ALL)::CALL HCHAR(1,1,122,32)
73 CALL CHAR(120,"FF81FF"):: CALL COLOR(12,15,1,13,3,14,14,10,1)
74 CALL HCHAR(10,1,120,32):: CALL HCHAR(24,1,120,32)
75 CALL HCHAR(13,7,120,8):: CALL HCHAR(14,20,120,2):: CALL HCHAR(15,17,120,2)
76 CALL HCHAR(16,14,120,2):: CALL HCHAR(18,7,120,8):: CALL HCHAR(17,17,120,5)
77 CALL HCHAR(21,9,120,8):: CALL HCHAR(12,25,120,3)
78 CALL HCHAR(19,25,123):: CALL HCHAR(21,2,123):: CALL HCHAR(7,28,123)
79 FOR I=5 TO 30 STEP 5 :: CALL HCHAR(24,I,124):: NEXT I
80 CALL HCHAR(10,6,124,3):: CALL HCHAR(15,12,124):: CALL HCHAR(21,12,124,2):: CALL HCHAR(20,22,124)
81 CALL CHAR(64,"020B1A3F1F0F000000000000000000009050A4F0F8F0000000000000000")
82 CALL SPRITE(#3,80,12,110,10,0,-8+S,#4,84,12,130,230,0,8+S)
83 CALL SPRITE(#5,64,6,179,60,0,4+S,#6,64,6,179,180,0,4+S)
84 CALL SPRITE(#7,64,6,67,60,0,-4+S,#8,64,6,67,120,0,-4+S)
85 CALL VCHAR(1,32,128,48)
86 RETURN
87 REM SCR 4
88 CALL DELSPRITE(ALL)::CALL CHAR(120,"FFFFFFFFFFFF"):: CALL COLOR(12,11,1,13,12,6)
89 CALL CHAR(136,"030F172B577FF9F7F5F9FFFFFDFA7F3FC0F0F8FCFEFE9FEFAF9FFFFFBF5EFEFC")
90 CALL HCHAR(1,1,122,32):: CALL HCHAR(24,1,128,32):: CALL HCHAR(23,1,120,32):: CALL HCHAR(20,1,120,6)
91 CALL HCHAR(20,26,120,6):: CALL HCHAR(19,7,120,6):: CALL HCHAR(19,20,120,6)
92 CALL HCHAR(16,9,120,17):: CALL HCHAR(13,1,120,6):: CALL HCHAR(13,26,120,6):: CALL HCHAR(10,7,120,20)
93 CALL VCHAR(8,19,128,16):: CALL VCHAR(8,15,128,3):: CALL VCHAR(19,12,128,4):: CALL HCHAR(10,14,128)
94 CALL HCHAR(10,20,128):: CALL HCHAR(16,20,128):: CALL HCHAR(19,20,128):: CALL HCHAR(19,11,128)
95 CALL HCHAR(23,3,123):: CALL HCHAR(23,20,123):: CALL HCHAR(13,21,123):: CALL VCHAR(1,32,128,48)
96 CALL HCHAR(20,4,124):: CALL HCHAR(23,17,124,2):: CALL HCHAR(19,23,124)
97 CALL HCHAR(20,28,124):: CALL HCHAR(23,26,124,2):: CALL HCHAR(13,28,124)
98 CALL SPRITE(#2,136,3,80,250,0,-12+S,#3,136,14,128,3,0,-10+S,#4,136,16,160,128,0,9+S)
99 RETURN
100 REM SCR 5
101 CALL DELSPRITE(ALL)::CALL CHAR(120,"AAAA5555AAAA5555"):: CALL COLOR(12,8,1,13,14,12)
102 CALL HCHAR(1,1,122,32):: CALL HCHAR(24,1,128,32):: CALL HCHAR(23,1,120,32):: CALL HCHAR(15,9,120,15)
103 CALL VCHAR(10,8,128,6):: CALL VCHAR(9,24,128,6):: CALL HCHAR(12,12,120,9):: CALL HCHAR(9,3,120,16):: CALL HCHAR(8,19,120,14)
104 CALL HCHAR(12,2,120,3):: CALL HCHAR(16,5,120,3):: CALL HCHAR(19,2,120,3):: CALL HCHAR(20,18,120,8)
105 CALL HCHAR(6,1,128,8):: CALL VCHAR(7,12,128,3):: CALL VCHAR(6,21,128,3):: CALL VCHAR(6,25,128,3)
106 CALL VCHAR(21,18,128,3):: CALL VCHAR(15,11,128,6):: CALL VCHAR(21,8,128,3)
107 CALL HCHAR(23,3,123):: CALL HCHAR(23,20,123):: CALL HCHAR(13,21,123):: CALL VCHAR(1,32,128,48)
108 CALL HCHAR(20,4,124):: CALL HCHAR(23,17,124,2):: CALL HCHAR(19,23,124)
109 CALL HCHAR(20,28,124):: CALL HCHAR(23,26,124,2):: CALL HCHAR(13,28,124)
110 CALL CHAR(136,"030F172B577FF9F7F5F9FFFFFDFA7F3FC0F0F8FCFEFE9FEFAF9FFFFFBF5EFEFC")
111 CALL SPRITE(#2,136,3,80,250,0,-12+S,#3,136,14,128,3,0,-10+S,#4,136,16,160,128,0,9+S)
112 RETURN
114 CALL SOUND(200,500,0):: CALL SOUND(200,1000,0):: SCR=SCR+1 :: KY=0  
115 CALL DELSPRITE(ALL)::CALL CLEAR :: GOTO 12
123 CALL SOUND(200,1000,0):: KY=KY+1 :: SC=SC+20 :: GOTO 15
124 CALL SOUND(200,1000,15):: SC=SC+5 :: GOTO 15
125 CALL DELSPRITE(ALL)::CALL CLEAR:: CALL CHARSET
126 PRINT "CONGRATULATIONS" :: PRINT :: PRINT "ALL LEVELS COMPLETED" :: PRINT :: PRINT "SCORE:";SC :: PRINT
127 INPUT "PRESS ENTER TO PLAY AGAIN":A$
128 GOTO 1
129 CALL DELSPRITE(ALL)::CALL CLEAR:: CALL CHARSET
130 PRINT "GAME OVER" :: PRINT :: PRINT "YOU REACHED LEVEL:";SCR :: PRINT :: PRINT "SCORE:";SC :: PRINT
131 INPUT "PRESS ENTER TO PLAY AGAIN":A$
132 GOTO 1
133 CALL SOUND(200,110,0):: LV=LV-1 :: GOTO 14
142 CALL CLEAR
143 DIM INSTR$(20)
144 INSTR$(1)="** INSTRUCTIONS **"
145 INSTR$(2)="COLLECT ALL 3 KEYS TO"
146 INSTR$(3)="ADVANCE TO THE NEXT"
147 INSTR$(4)="LEVEL. THERE ARE 5"
148 INSTR$(5)="LEVELS TO COMPLETE."
149 INSTR$(6)="COLLECT THE ROUND"
150 INSTR$(7)="OBJECTS FOR EXTRA"
151 INSTR$(8)="POINTS. AVOID THE"
152 INSTR$(9)="MOVING OBJECTS. USE"
153 INSTR$(10)="THE JOYSTICK TO MOVE."
154 INSTR$(11)="PRESS ENTER FOR GAME"
155 FOR I=1 TO 11::DISPLAY AT (I*2,0.5*(28-LEN(INSTR$(I)))):INSTR$(I)::NEXT I
156 ACCEPT AT(22,24):A$
157 GOTO 3

 

These are a list of additions and modifications required to make it playable.

 

1. Level 5 is missing code for sprites, keys and round object. This has been made playable by copying code from level 4.
2. The code gives bad values when the miner is on the lowest floor. Inserted location checks, -R2*(R2<=24)-24*(R2>24), into GCHAR and HCHAR statement to avoid bad values. Now I think this extra code is causing the miner to fall through floors.
3. Added a display of the current sceen level to keep track of the screens.
4. Included game over and levels completed messages.
5. Included an instructions screen.
6. Added scoring routines.
7. Added lives routine.
8. Set lives to 99 for testing and seeing all the screens.
9. Added some basic sounds.

 

Screen captures of the different screens are attached.

 

 

 

js99er-20230621142447.png

js99er-20230621142544.png

js99er-20230621142730.png

js99er-20230621142909.png

js99er-20230621142938.png

COSMIC.zip Cosmic.dsk

  • Like 7
Link to comment
Share on other sites

Posted (edited)

Hmmm that looks familiar! I'll have another look at it.

 

It seems a location check is needed for the sides of the screens as well.

 

Adding ON ERROR to line 16 seems to help. 

 

16 CALL PATTERN(#1,RC):: CALL JOYST(1,A,X):: CALL MOTION(#1,0,A) :: ON ERROR 16

 

 

Edited by tibasic
Results from additional testing
  • Like 2
Link to comment
Share on other sites

Posted (edited)

Here is a updated version that is playable. I've used the ON ERROR statement to deal with the bad values and removed the vertical position checking that was possibly slowing the game down. It means occasionally you might get stuck in the lower floor but you can get out by moving the joystick. I guess it's probably now an acceptable quality for a type in game.

 

The filename on the disk has been changed to COSMIC2.

 

updated version:

Spoiler

1 CALL CLEAR :: CALL SCREEN(5):: CALL MAGNIFY(3)
2 DISPLAY AT(12,1):"DO YOU WANT INSTRUCTIONS?" :: ACCEPT AT(12,26):A$ :: IF SEG$(A$,1,1)="Y" THEN 142
3 CALL CLEAR :: CALL COLOR(3,2,1,4,2,1)
4 CALL CHAR(96,"030702030303070F0D0D0E0E0703030380C080C0800080C0C0C0C0C080000080")
5 CALL CHAR(100,"030702030303070F0F1F1F030706060780C080C0800080C0C0E06080C0C0C0E0")
6 CALL CHAR(104,"030702030303070F0F1F1B070F0C0C0E80C080C0800080C0C0E0E0C0E0606070")
7 CALL CHAR(108,"01030103010001030303030301000001C0E040C0C0C0E0F0B0B07070E0C0C0C0")
8 CALL CHAR(112,"01030103010001030307060103030307C0E040C0C0C0E0F0F0F8F8C0E06060E0")
9 CALL CHAR(116,"0103010301000103030707030706060EC0E040C0C0C0E0F0F0F8D8E0F0303070")
10 CALL CHAR(132,"030303031F1F030303030303030F7FFFC0C0C0C0F8F8C0C0C0C0C0C0C0F0FEFF")
11 SCR=1 :: LV=99 :: SC=0 :: KY=0 :: S=0 :: ON ERROR 16
12 ON SCR GOSUB 32,48,71,87,100,125
13 RC=96 :: CALL SPRITE(#1,96,10,96,128)
14 IF LV=0 THEN 129
15 DISPLAY AT(2,5)SIZE(7):SC :: DISPLAY AT(2,12)SIZE(3):LV :: DISPLAY AT(2,19):SCR
16 CALL PATTERN(#1,RC):: CALL JOYST(1,A,X):: CALL MOTION(#1,0,A):: ON ERROR 16
17 CALL POSITION(#1,R,C):: CALL GCHAR(R/8+3,C/8+1,G):: IF G=32 THEN VM=1 :: GOTO 26 ELSE IF G=128 THEN 133
18 IF G=123 THEN CALL HCHAR(R/8+3,C/8+1,120):: GOSUB 123
19 IF G=124 THEN CALL HCHAR(R/8+3,C/8+1,120):: GOSUB 124
20 IF X<>0 THEN 25
21 CALL COINC(ALL,H):: IF H THEN 133
22 RC=RC+A :: IF RC>104 AND A=4 THEN RC=96 ELSE IF RC<108 AND A=-4 THEN RC=116
23 IF KY>=3 THEN 114
24 GOTO 16
25 CALL SOUND(-100,300,15):: CALL SOUND(-10,500,15):: VM=-14
26 IF A=-4 THEN CALL PATTERN(#1,116)ELSE CALL PATTERN(#1,104)
27 CALL MOTION(#1,VM,A):: VM=VM+2 :: CALL POSITION(#1,R,C):: CALL GCHAR(R/8+3,C/8+1,G)
28 IF G=128 THEN 133
29 CALL COINC(ALL,H):: IF H THEN 133
30 IF VM>8 THEN VM=8
31 IF G<>32 AND VM>1 THEN CALL MOTION(#1,0,0):: GOTO 16 ELSE 27
32 REM SCR 1
33 CALL CHAR(120,"AA55AA",121,"FF8181FFFF1818FF",122,"FF3C18",123,"3838080808081C1C",124,"183C3C18")
34 CALL CHAR(128,"AA55AA55AA55AA55",129,"FF1818FFFF8181FF")
35 CALL COLOR(12,9,1,13,6,12)
36 CALL HCHAR(15,4,120,26):: CALL HCHAR(13,4,120,26):: CALL HCHAR(14,25,121,8):: CALL HCHAR(1,1,122,32)
37 CALL HCHAR(14,1,121,3):: CALL HCHAR(13,7,32,2):: CALL HCHAR(15,21,32,2):: CALL HCHAR(13,21,32,2):: CALL HCHAR(18,21,120,2)
38 CALL HCHAR(19,25,120,28):: CALL HCHAR(24,1,120,32):: CALL HCHAR(22,27,120,8)
39 CALL HCHAR(11,1,120,16):: CALL HCHAR(11,20,120,12):: CALL HCHAR(9,9,120,6)
40 CALL HCHAR(8,17,120):: CALL VCHAR(1,32,128,48):: CALL HCHAR(23,7,129,7):: CALL HCHAR(10,27,129,3)
41 CALL HCHAR(13,26,123):: CALL HCHAR(8,18,123):: CALL HCHAR(20,8,123)
42 CALL HCHAR(15,6,124):: CALL HCHAR(9,11,124):: CALL HCHAR(19,27,124):: CALL HCHAR(13,28,124):: CALL HCHAR(11,29,124)
43 CALL CHAR(136,"3C7EFF9999FF7E3C000000000000000000000000000000000000000000")
44 CALL SPRITE(#2,136,4,85,128,0,-8+S,#3,136,10,85,200,0,-8+S)
45 CALL SPRITE(#4,136,14,180,1,0,6+S,#8,136,3,55,128,0,-7+S)
46 CALL SPRITE(#5,136,13,145,20,0,9+S,#6,136,6,145,45,0,9+S,#7,136,14,145,70,0,9+S)
47 RETURN
48 REM SCR 2
49 CALL DELSPRITE(ALL):: CALL CHAR(64,"00000000000001070F1F3F7F7FFBFD7F1F3FFFFBF9FFFEFFF0EFFFFFFFFFFFFF")
50 CALL CHAR(68,"7F3F1F0F030D1E3F7FFFFF7F3A0F7DFFFFFFFFFFFFFFFFFFFFFFF5F0A0E060C0")
51 CALL CHAR(72,"F8FCFFDF9FFF7FFF0FF7FFFFFFFFFFFF00000000000080E0F0F8FCFEFEDFBFFE")
52 CALL CHAR(76,"FFFFFFFFFFFFFFFFFFFF5F0F05070603FEFCF8F0C0B078FCFEFFFFFF5CF0BEFF")
53 CALL CHAR(80,"000000061F365B376D573D1F060000000000000098C6A067E06CC39800000000")
54 CALL CHAR(84,"000000001963D5E707671A010000000000000060F8DC76DA76DA7CD860000000")
55 CALL CHAR(120,"CC33CC"):: CALL COLOR(12,6,1,13,13,14,5,11,1,6,11,1)
56 CALL HCHAR(1,1,122,32)
57 FOR I=24 TO 8 STEP -3 :: CALL HCHAR(I,1,120,32):: NEXT I
58 CALL HCHAR(9,1,32,11):: CALL HCHAR(12,16,32,4):: CALL HCHAR(15,18,32,4):: CALL HCHAR(18,20,32,4)
59 CALL HCHAR(15,5,32,2):: CALL HCHAR(12,6,32,2):: CALL HCHAR(21,4,32,1)
60 CALL HCHAR(11,31,79):: CALL HCHAR(10,31,78):: CALL HCHAR(11,30,77):: CALL HCHAR(10,30,76)
61 CALL HCHAR(9,31,75):: CALL HCHAR(8,31,74):: CALL HCHAR(9,30,73):: CALL HCHAR(8,30,72)
62 CALL HCHAR(11,29,71):: CALL HCHAR(10,29,70):: CALL HCHAR(11,28,69):: CALL HCHAR(10,28,68)
63 CALL HCHAR(9,29,67):: CALL HCHAR(8,29,66):: CALL HCHAR(9,28,65):: CALL HCHAR(8,28,64)
64 CALL HCHAR(23,20,129,8):: CALL HCHAR(21,20,32,2):: CALL HCHAR(24,5,124,5)
65 CALL HCHAR(24,19,123):: CALL HCHAR(12,27,123):: CALL HCHAR(7,24,123)
66 CALL SPRITE(#2,80,12,72,128,0,-8+S,#3,84,12,96,250,0,8+S,#4,80,12,120,199,0,-7+S)
67 CALL SPRITE(#5,84,12,48,1,0,9+S,#6,84,12,144,220,0,8+S,#7,84,12,168,2,0,6+S)
68 CALL VCHAR(1,32,128,48)
69 CALL HCHAR(12,15,124):: CALL HCHAR(21,28,124,2):: CALL HCHAR(9,24,124):: CALL HCHAR(9,3,124):: CALL HCHAR(12,3,124):: CALL HCHAR(15,3,124)
70 RETURN
71 REM SCR 3
72 CALL DELSPRITE(ALL):: CALL HCHAR(1,1,122,32)
73 CALL CHAR(120,"FF81FF"):: CALL COLOR(12,15,1,13,3,14,14,10,1)
74 CALL HCHAR(10,1,120,32):: CALL HCHAR(24,1,120,32)
75 CALL HCHAR(13,7,120,8):: CALL HCHAR(14,20,120,2):: CALL HCHAR(15,17,120,2)
76 CALL HCHAR(16,14,120,2):: CALL HCHAR(18,7,120,8):: CALL HCHAR(17,17,120,5)
77 CALL HCHAR(21,9,120,8):: CALL HCHAR(12,25,120,3)
78 CALL HCHAR(19,25,123):: CALL HCHAR(21,2,123):: CALL HCHAR(7,28,123)
79 FOR I=5 TO 30 STEP 5 :: CALL HCHAR(24,I,124):: NEXT I
80 CALL HCHAR(10,6,124,3):: CALL HCHAR(15,12,124):: CALL HCHAR(21,12,124,2):: CALL HCHAR(20,22,124)
81 CALL CHAR(64,"020B1A3F1F0F000000000000000000009050A4F0F8F0000000000000000")
82 CALL SPRITE(#3,80,12,110,10,0,-8+S,#4,84,12,130,230,0,8+S)
83 CALL SPRITE(#5,64,6,179,60,0,4+S,#6,64,6,179,180,0,4+S)
84 CALL SPRITE(#7,64,6,67,60,0,-4+S,#8,64,6,67,120,0,-4+S)
85 CALL VCHAR(1,32,128,48)
86 RETURN
87 REM SCR 4
88 CALL DELSPRITE(ALL):: CALL CHAR(120,"FFFFFFFFFFFF"):: CALL COLOR(12,11,1,13,12,6)
89 CALL CHAR(136,"030F172B577FF9F7F5F9FFFFFDFA7F3FC0F0F8FCFEFE9FEFAF9FFFFFBF5EFEFC")
90 CALL HCHAR(1,1,122,32):: CALL HCHAR(24,1,128,32):: CALL HCHAR(23,1,120,32):: CALL HCHAR(20,1,120,6)
91 CALL HCHAR(20,26,120,6):: CALL HCHAR(19,7,120,6):: CALL HCHAR(19,20,120,6)
92 CALL HCHAR(16,9,120,17):: CALL HCHAR(13,1,120,6):: CALL HCHAR(13,26,120,6):: CALL HCHAR(10,7,120,20)
93 CALL VCHAR(8,19,128,16):: CALL VCHAR(8,15,128,3):: CALL VCHAR(19,12,128,4):: CALL HCHAR(10,14,128)
94 CALL HCHAR(10,20,128):: CALL HCHAR(16,20,128):: CALL HCHAR(19,20,128):: CALL HCHAR(19,11,128)
95 CALL HCHAR(23,3,123):: CALL HCHAR(23,20,123):: CALL HCHAR(13,21,123):: CALL VCHAR(1,32,128,48)
96 CALL HCHAR(20,4,124):: CALL HCHAR(23,17,124,2):: CALL HCHAR(19,23,124)
97 CALL HCHAR(20,28,124):: CALL HCHAR(23,26,124,2):: CALL HCHAR(13,28,124)
98 CALL SPRITE(#2,136,3,80,250,0,-12+S,#3,136,14,128,3,0,-10+S,#4,136,16,160,128,0,9+S)
99 RETURN
100 REM SCR 5
101 CALL DELSPRITE(ALL):: CALL CHAR(120,"AAAA5555AAAA5555"):: CALL COLOR(12,8,1,13,14,12)
102 CALL HCHAR(1,1,122,32):: CALL HCHAR(24,1,128,32):: CALL HCHAR(23,1,120,32):: CALL HCHAR(15,9,120,15)
103 CALL VCHAR(10,8,128,6):: CALL VCHAR(9,24,128,6):: CALL HCHAR(12,12,120,9):: CALL HCHAR(9,3,120,16):: CALL HCHAR(8,19,120,14)
104 CALL HCHAR(12,2,120,3):: CALL HCHAR(16,5,120,3):: CALL HCHAR(19,2,120,3):: CALL HCHAR(20,18,120,8)
105 CALL HCHAR(6,1,128,8):: CALL VCHAR(7,12,128,3):: CALL VCHAR(6,21,128,3):: CALL VCHAR(6,25,128,3)
106 CALL VCHAR(21,18,128,3):: CALL VCHAR(15,11,128,6):: CALL VCHAR(21,8,128,3)
107 CALL HCHAR(23,3,123):: CALL HCHAR(23,20,123):: CALL HCHAR(13,21,123):: CALL VCHAR(1,32,128,48)
108 CALL HCHAR(20,4,124):: CALL HCHAR(23,17,124,2):: CALL HCHAR(19,23,124)
109 CALL HCHAR(20,28,124):: CALL HCHAR(23,26,124,2):: CALL HCHAR(13,28,124)
110 CALL CHAR(136,"030F172B577FF9F7F5F9FFFFFDFA7F3FC0F0F8FCFEFE9FEFAF9FFFFFBF5EFEFC")
111 CALL SPRITE(#2,136,3,80,250,0,-12+S,#3,136,14,128,3,0,-10+S,#4,136,16,160,128,0,9+S)
112 RETURN
114 CALL SOUND(200,500,0):: CALL SOUND(200,1000,0):: SCR=SCR+1 :: KY=0 :: CALL CLEAR :: GOTO 12
123 CALL SOUND(200,1000,0):: KY=KY+1 :: SC=SC+20 :: GOTO 15
124 CALL SOUND(200,1000,15):: SC=SC+5 :: GOTO 15
125 CALL DELSPRITE(ALL):: CALL CLEAR :: CALL CHARSET
126 PRINT "CONGRATULATIONS" :: PRINT :: PRINT "ALL LEVELS COMPLETED" :: PRINT :: PRINT "SCORE:";SC :: PRINT
127 INPUT "PRESS ENTER TO PLAY AGAIN":A$
128 GOTO 1
129 CALL DELSPRITE(ALL):: CALL CLEAR :: CALL CHARSET
130 PRINT "GAME OVER" :: PRINT :: PRINT "YOU REACHED LEVEL:";SCR :: PRINT :: PRINT "SCORE:";SC :: PRINT
131 INPUT "PRESS ENTER TO PLAY AGAIN":A$
132 GOTO 1
133 CALL SOUND(200,110,0):: LV=LV-1 :: GOTO 14
142 CALL CLEAR
143 DIM INSTR$(10)
144 INSTR$(1)="** INSTRUCTIONS **"
145 INSTR$(2)="COLLECT ALL 3 KEYS TO"
146 INSTR$(3)="ADVANCE TO THE NEXT LEVEL"
147 INSTR$(4)="THERE ARE 5 LEVELS TO"
148 INSTR$(5)="COMPLETE. COLLECT THE"
149 INSTR$(6)="SMALL ROUND OBJECTS FOR"
150 INSTR$(7)="EXTRA POINTS. AVOID THE"
151 INSTR$(8)="MOVING OBJECTS. TO MOVE"
152 INSTR$(9)="USE THE JOYSTICK."
153 INSTR$(10)="PRESS ENTER FOR GAME"
155 FOR I=1 TO 10 :: DISPLAY AT(I*2+2,0.5*(28-LEN(INSTR$(I)))):INSTR$(I):: NEXT I
156 ACCEPT AT(22,24):A$
157 GOTO 3

 

 

 

completed.jpg

Cosmic2.dsk COSMIC2.zip

Edited by tibasic
  • Like 9
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...