tibasic Posted June 21 Share Posted June 21 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. COSMIC.zip Cosmic.dsk 7 Quote Link to comment Share on other sites More sharing options...
sometimes99er Posted June 21 Share Posted June 21 Very nice ! 👍 But sometimes this happens ... 1 Quote Link to comment Share on other sites More sharing options...
tibasic Posted June 21 Author Share Posted June 21 (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 June 21 by tibasic Results from additional testing 2 Quote Link to comment Share on other sites More sharing options...
tibasic Posted June 21 Author Share Posted June 21 (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 Cosmic2.dsk COSMIC2.zip Edited June 21 by tibasic 9 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.