News:

Printed Amstrad Addict magazine announced, check it out here!

Main Menu
avatar_XeNoMoRPH

Masarat khatira

Started by XeNoMoRPH, 05:48, 15 July 24

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

XeNoMoRPH

QuoteThis simple game is programmed almost entirely in Basic, it is a demonstration of how far you can go without resorting to ASM or Makers, it only occupies 35 kb in total, it uses parametric and 4 loops.


more info & download: https://altanerus-dog.itch.io/masarat-khatira







your amstrad news source in spanish language : https://auamstrad.es

abalore

#1
Quote from: XeNoMoRPH on 05:48, 15 July 24This simple game is programmed almost entirely in Basic, it is a demonstration of how far you can go without resorting to ASM or Makers



That is simply not true. The BASIC part is mostly CALLs to assembler code and RSX commands. The biggest part of the frame budget in a game is the sprite painting, which is assembler code, as many other things, including text printing which can actually be done in BASIC.

There is no need to exaggerate things to give value to an otherwise interesting work.

The project page states a bit later:

"The musical themes are samples mixed from Master system games and played with the Targhan player, the alphanumeric characters are provided by the Retropoke routines. Sprite painting and pausing routine by Sean McManus."

So heavy assembler usage :D

1 GOSUB 275:MODE 0:BORDER 1:PAPER 0:CALL &9D6D:|ENCRE,15,0:FOR n=0 TO 34:ORIGIN 140,350-n*10:READ a$:|TYPO,@a$:NEXT:A$=" PRESS J-JOYSTICK OR K-KEYBOARD":CALL &8D68,&8BAF,0
2 INK 1,14,11:PEN 1:C$="MASARAT  KHATIRA":LOCATE 3,3:CALL 42400,@C$:CALL 40000,32900,72,172:p1=115:INK 5,0,25:GOSUB 240
3 ORIGIN 1,1:PLOT 1,1,15:DRAW 1,394:DRAW 634,394:DRAW 634,1:DRAW 1,1:PLOT 5,5,14:DRAW 5,399:DRAW 639,399:DRAW 639,5:DRAW 5,5:c=0:l=1:y=30:h=PEEK(26998):G=PEEK(26999):IF G>h THEN h=G:POKE 26998,G
4 ORIGIN 416,120:g=g+10000:b$=STR$(G):|ENCRE,2,15:GOSUB 273:ORIGIN 416,100:H=H+10000:b$=STR$(h):GOSUB 273:ORIGIN 1,140:|ENCRE,14,0:GOSUB 274
5 MOVE 70+c,y:|TYPO,@a$:c=c-4:IF c=-8 THEN c=0:a$=RIGHT$(a$,LEN(a$)-1)+LEFT$(a$,1):y=y+l:IF y>42 THEN l=-1
6 IF y<18 THEN l=1
7 IF INKEY(45)=0 THEN CLEAR:DEFINT t-z:j1=74:j2=75:j3=72:j4=73:j5=76:GOTO 9
8 IF INKEY(37)=0 THEN CLEAR:DEFINT t-z:j1=34:j2=27:j3=67:j4=69:j5=47:GOTO 9 ELSE 5
9 BORDER 0:CALL 41001:CALL &8D68+3:FOR n=27000 TO 27324 STEP 108:i(m)=n:m=m+1:NEXT:m=0:FOR n=27555 TO 27879 STEP 108:d(m)=n:m=m+1:NEXT:SPEED INK 20,20
10 INK 5,0,26:INK 1,0,26:CALL 40000,30852,68,195:a$="  You have a tough ":n=290:GOSUB 279:a$="mission ahead of you":n=270:GOSUB 279:a$=" recover the rolls,":n=250:GOSUB 279
11 a$=" and finish off the":n=230:GOSUB 279:a$=" clan of the shaira.":n=210:GOSUB 279:a$="    good luck...":n=160:GOSUB 279:INK 5,0:zz=2000:GOSUB 234
12 CALL 41001:x=20:Y=95:sl%=40:w=1:sp=d(3):iv%=1:v=6:sa=40000:sb=40110:sh=40053:cae=27432:su1=27987:su2=28118:su3=28297:su=su1:so=10000:a(0)=28249:a(1)=28273:a(2)=28273:spd=a(1)
13 su4=28428:sc=40053:su5=28850:pa=29023:tin=0:lf=4:ca=29660:kk=6:GOSUB 275:CALL &A500
14 DI:PAPER 0:CLS:ORIGIN x,y/2:WINDOW 1,20,5,22:PAPER 0:CLS:WINDOW#1,1,20,23,25:PAPER#1,0:PEN#1,15:CLS#1:GOSUB 244:GOSUB 258:GOSUB 247:CALL sa,29023,2,198:CALL sa,29142,8,195:CALL sb,28957,81,18
15 GOSUB 248:GOSUB 250:par=9:EI:WINDOW#2,1,20,3,6:INK 1,6,26
16 DI:PAPER#2,0:CLS#2:CLS:x7=x4:dis=0:cl=26:dst=0:find=0:desp%=6:dn=0:apa=0:l1=4:l2=140:l3=182:l4=1:l5=1:l6=125:zz=20:ly=60:zaf=4:b(0)=1:oft=0:EVERY 9,3 GOSUB 251:EVERY 9,2 GOSUB 262:EVERY 300,1 GOSUB 248
17 IF w<>1 THEN 24
18 l5=0:su=su1:p1=1:p2=146:p3=39:MC=35324:GOSUB 238:su=su2:p1=120:p2=130:p3=87:GOSUB 238:p1=68:p2=84:p3=87:GOSUB 238:GOSUB 270:CALL sa,28703,40,51
19 CALL sc,29052,140,44:CALL sc,30013,78,96:p1=48:p2=90:p3=60:GOSUB 268:IF b(0)THEN CALL sb,a(0),124,97
20 IF B(9)THEN GOSUB 274:GOSUB 226:B(9)=0
21 GOTO 201
22 IF(x>119 AND x<126)AND(y<120 AND y>90)AND b(0)THEN CALL sb,a(0),124,97:b(0)=0:GOSUB 245
23 RETURN
24 IF w<>2 THEN 31
25 su=su1:p1=1:p2=146:p3=39:GOSUB 238:su=su2:p1=35:p2=45:p3=87:GOSUB 238:p1=75:p2=85:p3=63:GOSUB 238:su=su2:p1=100:p2=115:p3=87:GOSUB 238:GOSUB 270
26 su=su5:p1=40:p2=126:p3=39:GOSUB 238:IF b(1)THEN CALL sb,pa,43,103
27 IF b(2)THEN CALL sb,pa,110,103
28 GOTO 201
29 IF(x>35 AND x<44)AND(y<120 AND y>90)AND b(1)THEN CALL sb,pa,43,103:b(1)=0:GOSUB 259 ELSE IF(x>99 AND x<110)AND(y<120 AND y>90)AND b(2)THEN CALL sb,pa,110,103:b(2)=0:GOSUB 259
30 RETURN
31 IF w<>3 THEN 36
32 su=su1:p1=1:p2=146:p3=39:GOSUB 238:GOSUB 270:su=su2:p1=18:p2=48:p3=87:GOSUB 238:IF b(3)THEN CALL sb,pa,110,103
33 su=su5:p1=20:p2=126:p3=39:GOSUB 238:x4=75:x7=75:y4=57:w1=57:w2=128:w3=6:en=29382:CALL sb,en,x4,y4:zz=0:p1=48:p2=90:p3=10:GOSUB 268:uz=1:GOTO 201
34 IF(x>99 AND x<110)AND(y<120 AND y>90)AND b(3)THEN CALL sb,pa,110,103:b(3)=0:GOSUB 259
35 RETURN
36 IF w<>4 THEN 41
37 cl=26:zz=0:x4=78:y4=130:w1=70:su=su1:p1=1:p2=146:p3=39:GOSUB 238:su=su2:p1=34:p2=54:p3=105:GOSUB 238:p1=115:p2=125:p3=105:GOSUB 238:GOSUB 270:IF b(4)THEN CALL sb,pa,43,120
38 GOSUB 266:en=29382:CALL sb,en,x4,y4:p1=46:p2=108:p3=130:GOSUB 268:uz=1:GOTO 201
39 IF(x>35 AND x<44)AND(y<125 AND y>110)AND b(4)THEN CALL sb,pa,43,120:b(4)=0:GOSUB 259 ELSE IF((x>33 AND x<55)OR(x>103 AND x<125))AND(y<68 AND y>48)THEN 223
40 RETURN
41 IF w<>5 THEN 47
42 su=su1:p1=1:p2=40:p3=39:GOSUB 238:p1=128:p2=146:p3=39:GOSUB 238:su=su2:p1=86:p2=96:p3=63:GOSUB 238:p1=120:p2=130:p3=87:GOSUB 238:GOSUB 270:IF b(5)THEN CALL sb,pa,43,80
43 CALL sc,29052,140,44:x4=58:x7=58:y4=70:w1=50:en=29382:CALL sb,en,x4,y4:zz=0:uz=1:IF b(0)THEN CALL sb,a(0),124,97
44 GOTO 201
45 IF(x>28 AND x<44)AND(y<86 AND y>65)AND b(5)THEN CALL sb,pa,43,80:b(5)=0:GOSUB 259 ELSE IF(x>119 AND x<126)AND(y<120 AND y>90)AND b(0)THEN CALL sb,a(0),124,97:b(0)=0:GOSUB 245
46 RETURN
47 IF w<>6 THEN 51
48 l4=0:cl=15:apa=1:su=su1:p1=1:p2=146:p3=39:GOSUB 238:GOSUB 270:CALL sc,29052,115,44:su=su5:p1=50:p2=86:p3=39:GOSUB 238:x4=135:x7=135:y4=63:w1=15:w2=136:w3=-6:en=29703:CALL sb,en,x4,y4:uz=2:zz=2:GOTO 201
49 GOSUB 280
50 RETURN
51 IF w<>7 THEN 55
52 l4=1:su=su1:p1=1:p2=146:p3=39:GOSUB 238:su=su2:p1=64:p2=154:p3=87:GOSUB 238:GOSUB 270:GOSUB 278:CALL sc,29505,142,58:GOTO 201
53 IF x>130 AND(y<68 AND y>48)THEN 223
54 RETURN
55 IF w<>8 THEN 61
56 l4=1:zz=2:desp%=0:oft=60:su=su2:p1=0:p2=44:p3=87:GOSUB 238:p1=96:p2=156:p3=105:GOSUB 238:p1=112:p2=152:p3=57:GOSUB 238:GOSUB 270:x4=62:y4=57:w1=57:w2=128:w3=6:en=29382:CALL sb,en,x4,y4:uz=1
57 IF b(7)THEN CALL sb,pa,120,73
58 GOTO 201
59 IF(x>109 AND x<120)AND(y<94 AND y>70)AND b(7)THEN CALL sb,pa,120,73:b(7)=0:GOSUB 259
60 RETURN
61 IF w<>9 THEN 67
62 l4=1:oft=60:desp%=0:zz=0:su=su2:p1=0:p2=24:p3=105:GOSUB 238:p1=0:p2=56:p3=57:GOSUB 238:p1=96:p2=156:p3=57:GOSUB 238:GOSUB 270:x4=73:y4=52:w1=52:w2=100:w3=6:en=29382:CALL sb,en,x4,y4:uz=1
63 p1=66:p2=110:p3=32:GOSUB 268:IF b(0)THEN CALL sb,a(0),124,97
64 GOTO 201
65 IF(x>115 AND x<126)AND(y<120 AND y>90)AND b(0)THEN CALL sb,a(0),124,97:b(0)=0:GOSUB 245
66 RETURN
67 IF w<>10 THEN 71
68 l4=0:apa=1:oft=30:zaf=6:su=su2:p1=0:p2=66:p3=57:GOSUB 238:p1=108:p2=148:p3=57:GOSUB 238:GOSUB 270:CALL sa,28703,130,68:x4=135:y4=81:w1=15:w2=136:w3=-6:en=30104:CALL sb,en,x4,y4:uz=2:zz=0:GOTO 201
69 GOSUB 280
70 RETURN
71 IF w<>11 THEN 78
72 l5=0:su=su1:par=8:p1=1:p2=146:p3=39:MC=34361:GOSUB 278:GOSUB 238:su4=30299:GOSUB 270:x4=99:y4=120:w1=64:w2=98:w3=6:en=30558:CALL sb,en,x4,y4:zz=0
73 su=31295:p1=120:p2=140:p3=87:GOSUB 238:GOSUB 271:CALL sc,29052,130,44:IF B(8)THEN GOSUB 226:GOSUB 258:B(8)=0
74 IF b(0)THEN CALL sb,a(0),124,97
75 uz=1:GOTO 201
76 IF(x>119 AND x<126)AND(y<120 AND y>90)AND b(0)THEN CALL sb,a(0),124,97:b(0)=0:GOSUB 245
77 RETURN
78 IF w<>12 THEN 83
79 l5=1:su=su1:desp%=0:p1=1:p2=146:p3=39:GOSUB 238:su=30721:p1=45:p2=85:p3=39:GOSUB 238:CALL sc,30013,128,48:GOSUB 270:x4=109:x7=109:y4=64:w1=64:w2=98:w3=6:en=30558:CALL sb,en,x4,y4:zz=0:IF b(3)THEN CALL sb,pa,45,123
80 su=31295:p1=44:p2=84:p3=105:GOSUB 238:ca=31418:p1=48:p2=120:p3=92:GOSUB 268:uz=1:GOTO 201
81 IF(x>35 AND x<48)AND(y<130 AND y>110)AND b(3)THEN CALL sb,pa,45,123:b(3)=0:GOSUB 259
82 RETURN
83 IF w<>13 THEN 88
84 l4=0:apa=1:cl=15:su=su1:p1=1:p2=146:p3=39:GOSUB 238:su=30721:p1=75:p2=95:p3=39:GOSUB 238:GOSUB 270:x4=135:y4=63:w1=15:w2=136:w3=-6:en=29703:CALL sb,en,x4,y4
85 p1=48:p2=100:p3=62:GOSUB 271:GOSUB 268:uz=2:zz=0:GOTO 201
86 GOSUB 280
87 RETURN
88 IF w<>14 THEN 91
89 su=su1:p1=1:par=8:p2=46:p3=39:GOSUB 238:su=30721:p1=46:p2=146:p3=39:GOSUB 238:GOSUB 270:p1=36:p2=100:p3=80:GOSUB 268:p1=46:p2=120:p3=120:GOSUB 268:su=31295:p1=140:p2=156:p3=105:GOSUB 238:GOTO 201
90 RETURN
91 IF w<>15 THEN 97
92 oft=60:par=0:su=30721:p1=1:p2=146:zz=20:p3=39:GOSUB 242:GOSUB 238:su=31295:p1=144:p2=158:p3=105:GOSUB 238:p1=1:p2=16:p3=105:GOSUB 238:p1=36:p2=130:p3=60:GOSUB 268:p1=46:p2=150:p3=110:GOSUB 268
93 su=33500:p1=1:p2=146:p3=182:GOSUB 238:l6=140:CALL sb,33916,138,175:IF b(4)THEN CALL sb,pa,60,163
94 GOTO 201
95 IF(x>45 AND x<62)AND(y<170 AND y>150)AND b(4)THEN CALL sb,pa,60,163:b(4)=0:GOSUB 259
96 RETURN
97 IF w<>16 THEN 101
98 oft=60:par=0:su=30721:p1=1:p2=146:p3=39:GOSUB 242:GOSUB 238:su=31295:p1=144:p2=158:p3=105:GOSUB 238:p1=1:p2=16:p3=105:GOSUB 238:p1=36:p2=140:p3=85
99 GOSUB 268:su=33500:p1=1:p2=146:p3=182:l6=140:GOSUB 238:CALL sb,33916,138,175:GOTO 201
100 RETURN
101 IF w<>17 THEN 107
102 oft=60:par=0:su=30721:p1=1:p2=116:p3=39:GOSUB 242:GOSUB 238:su=31295:p1=1:p2=16:p3=105:GOSUB 238:su=su1:p1=112:p2=152:p3=39:GOSUB 238:x4=54:x7=54:y4=54:w1=54:w2=120:w3=6:en=30558:CALL sb,en,x4,y4
103 su=33500:p1=1:p2=146:p3=182:l6=140:GOSUB 238:CALL sb,33916,138,175:IF b(5)THEN CALL sb,pa,74,103::zz=0:uz=1
104 GOTO 201
105 IF(x>65 AND x<78)AND(y<120 AND y>90)AND b(5)THEN CALL sb,pa,74,103:b(5)=0:GOSUB 259
106 RETURN
107 IF w<>18 THEN 115
108 su=su1:apa=1:par=8:p1=1:p2=146:p3=39:GOSUB 238:su4=30299:GOSUB 270:x4=99:y4=64:w1=64:w2=78:w3=6:en=30558:CALL sb,en,x4,y4:zz=0
109 su=31295:p1=1:p2=146:p3=87:GOSUB 238:CALL sc,29052,130,44:uz=1
110 IF b(0)THEN CALL sb,a(0),124,97
111 GOTO 201
112 IF(x>119 AND x<126)AND(y<120 AND y>90)AND b(0)THEN CALL sb,a(0),124,97:b(0)=0:GOSUB 245
113 GOSUB 280
114 RETURN
115 IF w<>19 THEN 120
116 su=su1:p1=1:p2=146:p3=39:GOSUB 238:su4=30299:GOSUB 270:GOSUB 271:GOSUB 278:su=su5:p1=50:p2=66:p3=39:GOSUB 238:IF b(6)THEN CALL sb,pa,110,103
117 x4=105:y4=124:w1=104:w2=78:w3=6:en=30558:CALL sb,en,x4,y4:zz=0:uz=1:GOTO 201
118 IF(x>99 AND x<110)AND(y<120 AND y>90)AND b(6)THEN CALL sb,pa,110,103:b(6)=0:GOSUB 259
119 RETURN
120 IF w<>20 THEN 125
121 l4=0:cl=6:apa=1:zaf=7:su=su1:p1=1:p2=146:p3=39:GOSUB 271:GOSUB 238:su4=30299:GOSUB 270:CALL sa,28703,130,51:x4=135:y4=66:w1=15:w2=136:w3=-6:en=31461:CALL sb,en,x4,y4:uz=2:zz=0
122 CALL sc,29052,30,44:GOSUB 278:GOTO 201
123 GOSUB 280
124 RETURN
125 IF w<>21 THEN 133
126 l5=0:su=31625:cl=6:apa=1:par=11:p1=1:p2=146:p3=39:MC=35759:GOSUB 238:su4=31756:GOSUB 270:su=32047:p1=68:p2=84:p3=87:GOSUB 238
127 x4=50:x7=50:y4=68:w1=68:w2=98:w3=6:en=32306:CALL sc,29052,140,44:CALL sc,29052,40,44:CALL sb,en,x4,y4:zz=0:IF B(9)THEN GOSUB 226:GOSUB 258:B(9)=0
128 IF b(0)THEN CALL sb,a(0),124,97
129 uz=1:GOTO 201
130 IF(x>119 AND x<126)AND(y<120 AND y>90)AND b(0)THEN CALL sb,a(0),124,97:b(0)=0:GOSUB 245
131 GOSUB 280
132 RETURN
133 IF w<>22 THEN 139
134 su=31625:p1=1:cl=6:p2=76:p3=39:GOSUB 238:su4=31756:GOSUB 270:su=32047:p1=68:p2=90:p3=87:GOSUB 238:p1=130:p2=176:p3=105:GOSUB 238
135 x4=40:x7=40:y4=68:w1=68:w2=80:w3=6:en=32306:CALL sb,en,x4,y4:zz=0:CALL sc,29052,62,44:uz=1:IF b(1)THEN CALL sb,pa,15,120
136 GOTO 201
137 IF(x>5 AND x<25)AND(y<125 AND y>110)AND b(1)THEN CALL sb,pa,15,120:b(1)=0:GOSUB 259
138 RETURN
139 IF w<>23 THEN 146
140 su=31625:ca=29660:cl=6:oft=60:p1=96:p2=151:p3=39:GOSUB 238:su4=31756:GOSUB 270:su=32047:p1=1:p2=40:p3=105:GOSUB 238:p1=144:p2=152:p3=105:GOSUB 238:p1=48:p2=100:p3=96:GOSUB 268
141 x4=56:x7=56:y4=99:w1=99:w2=130:w3=6:en=32306:CALL sb,en,x4,y4:zz=0:uz=1:CALL sc,29505,142,58:IF b(2)THEN CALL sb,pa,118,55
142 GOTO 201
143 IF x>128 AND(y<68 AND y>48)THEN 223
144 IF(x>108 AND x<128)AND(y<70 AND y>30)AND b(2)THEN CALL sb,pa,118,55:b(2)=0:GOSUB 259
145 RETURN
146 IF w<>24 THEN 152
147 l4=0:su=31625:cl=15:apa=1:p1=1:p2=146:p3=39:GOSUB 238:su4=31756:GOSUB 270:su=32047:p1=1:p2=125:p3=105:GOSUB 238:p1=16:p2=146:p3=69:GOSUB 238
148 x4=135:y4=63:w1=15:w2=136:w3=-6:en=29703:CALL sb,en,x4,y4:uz=2:zz=0
149 GOTO 201
150 GOSUB 280
151 RETURN
152 IF w<>25 THEN 157
153 l4=0:l5=0:su=31625:cl=6:p1=1:p2=146:p3=39:GOSUB 238:su4=31756:GOSUB 270:CALL sa,32493,74,170:CALL sa,28703,130,51:CALL sb,32900,94,54
154 CALL sc,29052,72,44:GOTO 201
155 IF(x>83 AND x<109)AND(y<58 AND y>48)AND titol=0 THEN IF xy<20 OR xy=20 THEN l5=1:GOSUB 283:ELSE IF xy>20 THEN l5=0:l4=1:titol=1:GOSUB 285
156 RETURN
157 IF w<>26 THEN 162
158 l5=0:desp%=0:su=33023:par=0:p1=1:p2=146:p3=39:GOSUB 238:GOSUB 242:p1=32:p2=146:p3=99:GOSUB 238:ca=su:p1=130:p2=160:p3=144:GOSUB 268:en=33154:x4=76:x7=76:y4=60:w1=60:w2=80:w3=6:CALL sb,en,x4,y4
159 MC=35324:p1=155:GOSUB 240:su=33237:p1=92:p2=102:p3=39:GOSUB 238:IF B(8)THEN GOSUB 226:GOSUB 258:B(8)=0
160 zz=0:uz=1:GOTO 201
161 RETURN
162 IF w<>27 THEN 166
163 su=33023:p1=1:p2=146:p3=39:GOSUB 238:p1=1:p2=146:p3=99:GOSUB 238:su=33237:p1=16:p2=130:p3=39:GOSUB 239:GOSUB 242
164 p1=155:GOSUB 240:GOTO 201
165 RETURN
166 IF w<>28 THEN 171
167 su=33023:desp%=0:p1=1:p2=146:p3=39:GOSUB 238:p1=16:p2=130:p3=109:GOSUB 239:su=33237:p1=16:p2=130:p3=39:GOSUB 239:GOSUB 242:IF b(0)THEN CALL sb,a(0),124,87
168 p1=155:GOSUB 240:en=33154:x4=98:x7=98:y4=60:w1=60:w2=80:w3=6:CALL sb,en,x4,y4:zz=0:uz=1:GOTO 201
169 IF(x>119 AND x<126)AND(y<110 AND y>80)AND b(0)THEN CALL sb,a(0),124,87:b(0)=0:GOSUB 245
170 RETURN
171 IF w<>29 THEN 176
172 su=33023:l4=0:apa=1:oft=30:zaf=6:p1=1:p2=146:p3=39:GOSUB 238:p1=1:p2=146:p3=150:GOSUB 238:GOSUB 242
173 p1=100:GOSUB 241:su=33237:p1=16:p2=130:p3=39:GOSUB 239:x4=135:y4=63:w1=15:w2=136:w3=-6:en=30104:CALL sb,en,x4,y4:uz=2:zz=0:GOTO 201
174 GOSUB 280
175 RETURN
176 IF w<>30 THEN 182
177 l5=0:l6=160:su=33023:p1=1:p2=80:p3=39:GOSUB 238:p1=16:p2=130:p3=87:GOSUB 239:p1=32:p2=146:p3=105:GOSUB 239:p1=48:p2=162:p3=123:GOSUB 239:GOSUB 242
178 p1=165:GOSUB 240:IF b(0)THEN CALL sb,a(0),114,103
179 GOTO 201
180 IF(x>105 AND x<116)AND(y<125 AND y>102)AND b(0)THEN CALL sb,a(0),114,103:b(0)=0:GOSUB 245
181 RETURN
182 IF w<>31 THEN 187
183 oft=90:cl=6:su=33237:apa=1:l6=160:p1=1:p2=146:p3=39:GOSUB 238:su=33023:p1=1:p2=152:p3=123:GOSUB 239:GOSUB 242:p1=80:GOSUB 241
184 p1=112:p2=146:p3=105:GOSUB 239:x4=135:y4=146:w1=15:w2=136:w3=-6:en=31461:CALL sb,en,x4,y4:uz=2:zz=0:GOTO 201
185 GOSUB 280
186 RETURN
187 IF w<>32 THEN 191
188 oft=90:su=33023:p1=90:p2=146:p3=39:GOSUB 238:GOSUB 242
189 p1=1:p3=105:GOSUB 239:su=33237:p1=1:p2=90:p3=39:GOSUB 238:en=33154:x4=72:x7=72:y4=125:w1=125:w2=160:w3=6:CALL sb,en,x4,y4:zz=0:uz=1:CALL sc,29505,102,58:GOTO 201
190 RETURN
191 IF w<>33 THEN 196
192 su=33023:cl=6:p1=1:p2=146:p3=39:GOSUB 238:GOSUB 242:p1=1:p2=146:p3=180:GOSUB 238:su=33237:p1=90:p2=110:p3=39:GOSUB 238:p1=130:GOSUB 241:IF b(0)THEN CALL sb,a(0),124,87
193 en=32306:x4=98:x7=98:y4=60:w1=60:w2=80:w3=6:CALL sb,en,x4,y4:zz=0:uz=1:GOTO 201
194 IF(x>119 AND x<126)AND(y<110 AND y>80)AND b(0)THEN CALL sb,a(0),124,87:b(0)=0:GOSUB 245
195 RETURN
196 IF w<>34 THEN 201
197 l4=0:zaf=9:l2=130:su=33023:apa=1:p1=1:p2=146:p3=39:GOSUB 238:p1=128:p2=138:p3=57:GOSUB 238:p1=128:p2=138:p3=93:GOSUB 238:p1=1:p2=146:p3=160:GOSUB 238:GOSUB 242:ca=su:p1=39:p2=160:p3=144:GOSUB 268
198 p1=130:GOSUB 241:su=33237:p1=90:p2=100:p3=39:GOSUB 238:x4=120:y4=71:w1=15:w2=120:w3=-6:en=33682:CALL sb,en,x4,y4:uz=2:zz=0:GOTO 201
199 GOSUB 280:IF find THEN 288
200 RETURN
201 INK 5,cl,0:GOSUB 207:sp1=sp:x6=x:y6=y:x7=x4:EI
202 IF(INKEY(j1)=0)AND x>l1 AND cae%THEN T%=v:x6=x:y6=y:x=x-(v-2):sp=i(z):GOSUB 205:sp1=sp:ELSE IF(INKEY(j2)=0)AND x<l2 AND cae%THEN T%=v:x6=x:y6=y:x=x+(v-2):sp=d(z):GOSUB 205:sp1=sp
203 IF(INKEY(j3)=0)THEN GOSUB 208 ELSE IF(INKEY(j4)=0)AND y>ly AND cae%=1 AND t%=0 THEN x6=x:y6=y:y=y-v:sp1=sp:sp=cae:GOSUB 205:ELSE IF(INKEY(j5)=0)AND zu>0 AND dis=0 AND NOT sp=cae THEN x3=x:y3=y-4:GOTO 257
204 IF k%THEN 223 ELSE T%=0:GOTO 236
205 CALL &9CAE,sp,x,y:CALL &9CAE,sp1,x6,y6:z=z+1:FOR n=0 TO zz:NEXT:GOSUB 206:IF z>3 THEN z=0:RETURN ELSE RETURN
206 ON w GOSUB 22,29,34,39,45,49,53,59,65,69,76,81,86,90,95,100,105,112,118,123,130,137,143,150,155,161,165,169,174,180,185,190,194,199:RETURN
207 CALL &9CAE,sp,x,y:RETURN
208 IF sp=d(0)OR sp=d(1)OR sp=d(2)OR sp=d(3)THEN 209 ELSE 216
209 y1=y:p%=6:IF t%=v THEN t%=t%-2
210 IF X>L2 THEN T%=0
211 x6=x:y6=y:X=X+T%:Y=y+p%:IF Y>(y1+sl%)OR y>l3 THEN GOSUB 205:GOTO 213
212 sp=d(z):GOSUB 205:sp1=sp:IF k%OR mk%THEN 223 ELSE 210
213 IF X>L2 THEN T%=0
214 x6=x:y6=y:X=X+T%:Y=Y-p%:sp=d(z):GOSUB 205:sp1=sp:z1=TEST(x*4+16,y*2-78):IF z1 AND y<l6 THEN RETURN
215 IF k%OR mk%OR y<45 THEN 223 ELSE 213
216 y1=y:p%=6:IF t%=v THEN t%=t%-2
217 IF X<L1 THEN T%=0
218 x6=x:y6=y:X=X-T%:Y=y+p%:IF Y>(y1+sl%)OR y>l3 THEN GOSUB 205:GOTO 220
219 sp=i(z):GOSUB 205:sp1=sp:IF k%OR mk%THEN 223 ELSE 217
220 IF X<L1 THEN T%=0
221 x6=x:y6=y:X=X-T%:Y=Y-p%:sp=i(z):GOSUB 205:sp1=sp:z1=TEST(x*4+16,y*2-78):IF z1 AND y<l6 THEN RETURN
222 IF k%OR mk%OR y<45 THEN 223 ELSE GOTO 220
223 '
224 GOSUB 207:DI:INK 5,cl:CALL &8D68,&8881,0:GOSUB 227:uz=0:PEN 1:INK 1,6,26:PAPER 6:a$="DEAD":LOCATE 9,8:CALL sh,29274,x,y:CALL 42400,@a$:PAPER 0:k%=0:ti=130:FOR m=1 TO 6000:NEXT:PAPER#2,0:CLS#2:CLS:x=6:y=65+oft:GOSUB 226:INK 5,0,cl
225 CLS#1:lf=lf-1:GOSUB 250:CALL sa,34076,114,22:CALL sb,28957,81,18:GOSUB 247:GOSUB 244:GOSUB 249:IF lf<1 THEN DI:CLS#1:PAPER 6:a$="GAME OVER":LOCATE 6,8:CALL 42400,@a$:FOR m=1 TO 6000:NEXT:PAPER 0:GOTO 293 ELSE 235
226 CALL &8D68,MC,0:RETURN
227 FOR n=1 TO 25:vv=INT(RND*3)+45:OUT &BC00,2:OUT &BD00,vv:OUT &BC00,2:OUT &BD00,46:NEXT:RETURN
228 '
229 IF x>138 AND l4 THEN uz=0:dis=0:GOSUB 207:GOSUB 233:w=w+1:x=6:GOTO 235
230 IF x<4 AND l5 THEN uz=0:dis=0:GOSUB 207:GOSUB 233:w=w-1:x=138:GOTO 235
231 IF y<48 OR mk%THEN 223:ELSE 202
232 '
233 FOR n=1 TO 200:NEXT:RETURN
234 FOR n=1 TO zz:NEXT:RETURN
235 n=reiman(3):n=reiman(2):n=reiman(1):mk%=0:GOTO 16
236 baj%=TEST(x*4+16,y*2-78):IF baj%<>0 AND y<l6 THEN sp1=sp:cae%=1:GOTO 229 ELSE sp1=sp:x6=x:y6=y:cae%=0:y=y-v:GOSUB 205:GOTO 229
237 '
238 FOR n=p1 TO p2 STEP 16:CALL sa,su,n,p3:NEXT:RETURN
239 FOR n=p1 TO p2 STEP 32:CALL sa,su,n,p3:NEXT:RETURN
240 cl=25:CALL 40000,33368,28,p1:CALL 40000,33368,130,p1:RETURN
241 CALL sa,33422,40,p1:CALL sa,33422,120,p1:RETURN
242 WINDOW#2,1,20,3,6:PAPER#2,par:CLS#2:FOR n=p1 TO p2 STEP 32:CALL sa,su,n,p3:NEXT:IF par=9 THEN CALL sa,28766,25+RND*60,175:CALL sa,33869,130,180:ELSE IF par=11 THEN CALL sa,33631,95+RND*20,180
243 RETURN
244 so=FIX(so):a$=STR$(so):a$=RIGHT$(a$,4):PEN#1,15:DI:LOCATE#1,10,3:WINDOW SWAP 1:|RUNE,4,@a$:WINDOW SWAP 1:EI:RETURN
245 zu=9:kk=14:GOTO 247
246 zu=zu-1:IF zu<4 THEN kk=6:ELSE kk=14
247 PEN#1,kk:a$=STR$(zu):DI:LOCATE#1,18,3:WINDOW SWAP 1:|RUNE,5,@a$:WINDOW SWAP 1:EI:CALL sa,33975,142,22:RETURN
248 ti=ti-1:IF ti<115 THEN PEN#1,1:IF ti<101 THEN k%=1:ELSE ELSE PEN#1,15
249 a$=STR$(ti):a$=RIGHT$(a$,2):DI:LOCATE#1,15,3:WINDOW SWAP 1:|RUNE,2,@a$:WINDOW SWAP 1:EI:CALL sa,34076,114,22:RETURN
250 FOR n=0 TO(lf*12)STEP 16:CALL sa,d(1),(n+1),16:NEXT:RETURN
251 IF dis=0 THEN RETURN
252 IF dis=1 THEN GOSUB 256:x3=x3-de:spd=a(r):co=co+1:GOSUB 255:IF co>10 OR x3<6 OR x3>148 THEN GOSUB 256:co=0:dis=0
253 IF(x3>x4-10 AND x3<x4+10)AND(y3>y4-20 AND y3<y4+5)AND dis AND uz<>0 THEN GOSUB 256:co=0:dis=0:zaf=zaf-1:IF zaf<1 THEN uz=0:dst=1:CALL sb,en,x4,y4:GOSUB 260:GOSUB 280
254 RETURN
255 CALL &9CAE,spd,x3,y3:r=r+1:IF r>2 THEN r=0:RETURN ELSE RETURN
256 CALL &9CAE,spd,x3,y3:RETURN
257 GOSUB 246:IF sp=d(0)OR sp=d(1)OR sp=d(2)OR sp=d(3)THEN x3=x3+12:de=-7:GOSUB 256:dis=1:GOTO 202 ELSE x3=x3-2:de=7:GOSUB 256:dis=1:GOTO 202
258 FOR n=0 TO 9:b(n)=1:NEXT:so=so+(ti/4):ti=130:RETURN
259 xy=xy+2:FOR zy=2 TO(xy*3)STEP 6:CALL sc,29023,15+zy,198:CALL 41200:NEXT:so=so+3:GOSUB 244:RETURN
260 so=so+2:CALL sb,29898,x4,y4:GOSUB 244:zz=60:GOSUB 234:l4=1:zz=25:CALL sb,29898,x4,y4:RETURN
261 '
262 IF uz=0 THEN RETURN
263 IF uz=1 THEN y7=y4:CALL &9CAE,en,x4,y7:y4=y4+w3:x4=x7:CALL &9CAE,en,x4,y4:IF y4>w2 THEN x7=x7-desp%:w3=-6:ELSE IF y4<w1 THEN x7=x7+desp%:w3=6
264 IF uz=2 THEN x7=x4:CALL &9CAE,en,x7,y4:x4=x4+w3:CALL &9CAE,en,x4,y4:IF x4>w2 THEN w3=-6:ELSE IF x4<w1 THEN w3=6
265 IF(x>x4-10 AND x<x4+10)AND(y>y4-20 AND y<y4+5)AND uz<>0 THEN mk%=1:RETURN:ELSE RETURN
266 FOR n=45 TO 150 STEP 70:CALL sc,29505,n,58:NEXT:RETURN
267 '
268 FOR n=p1 TO p2 STEP 10:CALL sc,ca,p3,n:NEXT:RETURN
269 '
270 su=su4:p1=1:p2=136:p3=153:GOSUB 242:RETURN
271 FOR n=20 TO 130 STEP 30:CALL sc,33952,n,142:NEXT:RETURN
272 DATA,,,,,"CONTROLS: O-LEFT  P-RIGHT",,"Q-JUMP A-DONW SPACE-ATTACK",," TAB-PAUSE  SPACE-RELEASE",,,,"    OR USE JOYSTICK",,,,,,,,,," YOUR LAST SCORE:",,"THE BOSS'S SCORE:",,,,(C)Antero MartineZ 2024,,," (Ver 1) ALTANERUS DOG",,,,,
273 b$=RIGHT$(b$,4):|TYPO,@b$:RETURN
274 FOR n%=0 TO 25:GOSUB 276:NEXT:RETURN
275 FOR n%=25 TO 0 STEP-1:GOSUB 276:NEXT:RETURN
276 OUT &BC00,6:OUT &BD00,n%:CALL &BD19:CALL &BD19:CALL &BD19:RETURN
277 '
278 CALL sc,30036,78,49:CALL sc,30036,84,51:CALL sc,30013,48,48:RETURN
279 ORIGIN 1,n:FOR g=1 TO LEN(a$):b$=MID$(a$,g,1):|TYPO,@b$:SOUND 1,15,1,12:FOR h=1 TO 95:NEXT:NEXT:RETURN
280 IF dst=0 THEN RETURN
281 IF apa AND dn=0 THEN CALL sb,32170,x4,y4:dn=1:l5=0
282 IF(x>x4-8 AND x<x4+8)AND(y>y4-8 AND y<y4+20)THEN so=so+4:GOSUB 244:CALL 41200:CALL sb,32170,x4,y4:dst=0:find=1:RETURN:ELSE RETURN
283 LOCATE 1,6:PEN 15:d$="You don't have rolls enough. you can't   continue.Y or N?":|RUNE,4,@d$
284 IF INKEY(43)=0 THEN LOCATE 1,6:PRINT STRING$(75," "):RETURN ELSE IF INKEY(46)=0 THEN 12 ELSE 284
285 LOCATE 2,6:PEN 15:d$="Hello, do you have  the rolls. If you   continue you will   face the shaira...":|RUNE,4,@d$
286 WINDOW SWAP 4:PRINT STRING$(38," "):WINDOW SWAP 4:CALL sa,29023,2,198:CALL sa,29142,8,195:so=so+xy:GOSUB 244:GOSUB 287:RETURN
287 FOR n=1 TO 5:nn=RND*50+50:OUT &7F00,0:OUT &7F00,nn:OUT &7F00,50:OUT &7F00,nn:NEXT:RETURN
288 DI:LOCATE 3,8:PEN 15:d$="sahira is dead":|RUNE,4,@d$:GOSUB 287:zz=5000:GOSUB 234:CALL &8D68+3:CALL 41001:MODE 0:INK 5,0,26:CALL 40000,30852,68,195:CALL &9D6D
289 a$="You have shown a lot":n=290:GOSUB 279:a$=" of talent. From now":n=270:GOSUB 279:a$="   on you will be":n=250:GOSUB 279:a$="guardian al-andalus.":n=230:GOSUB 279
290 a$="and you will have a":n=210:GOSUB 279:a$="   reward of gold.":n=190:GOSUB 279:a$=" thank you for your":n=170:GOSUB 279:a$="  services. Now the":n=150:GOSUB 279
291 a$="   roads are safer":n=130:GOSUB 279:a$="   thanks to you.":n=110:GOSUB 279:INK 5,0:GOSUB 234:CALL 41001:a$="Thanks for playing this game ;-)":ORIGIN 1,300:|TYPO,@a$
292 a$="Greetings from Altanerus DoG.":ORIGIN 1,280:|TYPO,@a$:GOSUB 234:CALL 41001
293 so=so-10000:IF so>254 THEN so=255
294 so=FIX(so):CALL &8D68+3:CALL 41001:POKE 26999,so:CLEAR:GOTO 1

XeNoMoRPH

New loading screen thanks to @TITAN (Eric Cubizolle) 

your amstrad news source in spanish language : https://auamstrad.es

TITAN (Eric Cubizolle)

#3
New version of my title-screen. :)
In order to stick a little more to the scenario of the game, I replaced the Asian temples with monuments from an oriental city. :)


shacpc


XeNoMoRPH

your amstrad news source in spanish language : https://auamstrad.es

XeNoMoRPH

your amstrad news source in spanish language : https://auamstrad.es

Jean-Marie

Here's my version. Normally, I don't work on Sundays  ;D

CyrilAmstrad

Amstradiens Facebook Group
AMSTRAD CPC/ _+ /GX4000
Amstradiens Channel

CyrilAmstrad

I had also updated my DSK with Trainer menu,  with infinite lifes .
Amstradiens Facebook Group
AMSTRAD CPC/ _+ /GX4000
Amstradiens Channel

Powered by SMFPacks Menu Editor Mod