[Thomson-Basic] Entrer du LM avec des DATAs.

Tout ce qui concerne le logiciel original et sa sauvegarde avec entre autre la régénération des disquettes ou autres supports physiques.

Modérateurs : Papy.G, fneck, Carl

Xavier

[Thomson-Basic] Entrer du LM avec des DATAs.

Message par Xavier »

Salut,
Nouveau défi Hebdogiciel: " L'île du docteur Spounz!"
Je commence à taper ce programme, et me voilà avec un fâcheux problème!
Pour entrer le programme, j'ai fait un petit programme avec des DATAs, car dans l'original, les données étaient à entrer les une après les autres.

J'ai donc un programme LM de &hD5C1 à &hDFFF.
Tout va bien jusqu'en ligne 290 (adresse &hDEB9)... Et là... plantage du TO7 ou TO9 !
Y a-t-il des zones réservées à cette adresse ( buffers contrôleur disquette, affichage...) ?
Le programme basic prend-il trop de place en mémoire ?
Y a t-il une autre solution pour entrer ce code?
vvvvv >>> Merci pour vos réponses ou constatations !

Code : Tout sélectionner

1 RESTORE:CLS:ADD=54721
2 SUM=0:FORA=0TO7:READ B$:C=VAL("&H"+B$):SUM=SUM+C:POKEADD,C:ADD=ADD+1:NEXTA:READSUM$
3 LOCATE 3,3:IF VAL("&H"+SUM$)<>SUM THEN PRINT"Addresse: &H";HEX$(ADD-8);" Erreur ligne:";(ADD-&HD5C1)/8+3,,,,:FORA=0TO7:PRINTHEX$(PEEK(ADD-8+A));" ";:NEXT:PRINT,,HEX$(SUM):ENDELSE PRINT"Ligne: ";(ADD-&HD5C1)/8+3:GOTO 2
4 DATA20,0A,A6,01,02,00,D6,6B,0214
5 DATAD8,74,D6,6A,34,76,A6,8C,0468
6 DATAF2,26,2C,30,8D,00,92,BF,0352
7 DATA60,2D,E6,8D,00,8A,86,08,0318
8 DATA3D,30,8B,A6,84,30,01,AF,0302
9 DATA8C,DC,C6,08,3D,30,8B,A6,03D4
10 DATA84,A7,8C,D0,30,01,AF,8C,03F3
11 DATACF,6F,8C,C9,35,76,39,A6,041D
12 DATA8C,C1,A1,8C,BF,22,5A,BE,0473
13 DATA60,2D,AF,8C,BD,AE,8C,B6,0475
14 DATABF,60,2D,30,8D,00,4D,A6,02FC
15 DATA8C,AB,C6,1B,BD,E8,03,E6,04A6
16 DATA86,BD,E8,03,AE,8C,A1,A6,04AF
17 DATA8C,99,4A,48,EC,86,30,8B,03E4
18 DATA30,1F,A6,8C,90,E6,80,C1,0438
19 DATA04,27,1F,BD,E8,03,C1,08,02BB
20 DATA27,06,C1,0A,27,0B,20,ED,0237
21 DATA85,02,27,E9,BD,E8,03,20,035F
22 DATAE4,85,01,27,E0,BD,E8,03,0419
23 DATA20,DB,AE,8D,FF,6C,BF,60,04C0
24 DATA2D,35,76,39,4C,4D,4E,4F,0247
25 DATA00,41,00,00,00,00,00,00,0041
26 DATA00,FE,00,00,00,00,00,00,00FE
27 DATA37,AC,00,00,00,00,00,00,00E3
28 DATA75,BE,00,00,00,00,02,9E,01D3
29 DATADB,AE,00,00,00,00,00,00,0189
30 DATA00,00,F6,0B,02,00,00,00,0103
31 DATA00,00,D5,E7,31,6E,04,00,025F
32 DATA00,00,7A,26,30,0E,80,00,015E
33 DATA00,00,D3,A8,C0,80,00,00,02BB
34 DATA00,00,01,06,38,66,83,6C,0194
35 DATA90,B6,80,BF,C0,37,AC,56,047E
36 DATAED,FF,D2,CE,AF,4F,1F,E0,0589
37 DATAFC,BD,D4,B7,DE,4A,D6,FF,0641
38 DATA3A,BB,4C,EE,F4,00,6E,9F,0430
39 DATA41,FB,FD,B6,4A,6B,DD,3A,04BB
40 DATA7F,FD,00,C0,BE,0B,79,F7,0475
41 DATAFB,42,00,00,00,A0,6C,B7,0300
42 DATADA,6F,00,00,00,00,00,0F,0158
43 DATA2F,EB,00,01,03,07,0F,FA,022E
44 DATA4A,EC,F0,F0,FE,FF,DC,FF,06EE
45 DATAB5,5E,00,00,00,FD,BF,F2,03C1
46 DATA5D,DD,00,00,00,00,00,00,013A
47 DATAD0,E0,1F,0F,07,03,01,00,01E9
48 DATA00,00,C2,64,44,A8,D0,E0,03C2
49 DATAE0,F0,FF,70,00,00,00,00,033F
50 DATA00,00,DF,0F,07,03,01,00,00F9
51 DATA00,00,FF,50,FF,A4,FF,E0,04D1
52 DATA7F,3E,E1,43,E3,C6,C4,61,04AF
53 DATAC2,62,C4,88,30,40,80,00,0360
54 DATA00,00,1F,EE,F7,FB,FD,FE,04FA
55 DATAFF,FF,DE,F7,FE,F6,FF,FE,07C4
56 DATA7F,BB,BB,FF,BF,FE,F7,FF,06A7
57 DATADB,A4,88,F3,C9,ED,C1,B8,0629
58 DATAB9,90,01,E7,47,8F,1E,BC,03E1
59 DATA70,E3,5F,FC,E0,07,08,70,040D
60 DATA80,00,00,0F,78,80,00,00,0187
61 DATA00,00,1F,E0,00,00,00,00,00FF
62 DATA00,00,87,70,1E,03,00,03,011B
63 DATA7C,FF,FF,7C,00,FF,FF,80,0574
64 DATA00,FF,FF,66,00,00,E0,00,0344
65 DATA00,FF,BB,FB,0C,00,00,00,02C1
66 DATA00,FF,7D,EA,00,00,02,C0,0328
67 DATAFE,FF,0D,FF,00,00,40,08,0351
68 DATA00,FF,76,FF,00,00,84,20,0318
69 DATA00,FF,EF,FE,00,00,10,43,033F
70 DATA7F,FF,FF,07,00,03,06,FF,038C
71 DATABF,3D,FF,FF,01,FF,7F,F6,056F
72 DATAEF,3B,FF,FF,D8,D7,AB,AB,062D
73 DATAFF,F3,FF,BE,9B,7A,E8,DF,068B
74 DATAFF,62,8F,FF,FC,9F,EF,FF,0678
75 DATAFF,FD,F7,EB,FC,FF,FF,FB,07D3
76 DATA7F,FF,FF,FC,FF,DF,FF,FF,0755
77 DATAFF,FF,FF,FF,3F,DF,FF,FB,0714
78 DATA7F,FF,00,03,FF,00,FF,00,037F
79 DATA00,FF,3F,FF,FF,00,FF,00,043B
80 DATA00,FF,C0,FF,FF,00,FF,00,04BC
81 DATA00,FF,1F,E0,FF,00,FF,00,03FC
82 DATA00,FF,FE,00,00,00,FF,00,02FC
83 DATA00,FF,00,0F,00,FF,00,00,020D
84 DATA07,FF,3F,FF,00,FF,00,00,0343
85 DATAFF,FF,FC,FF,00,FF,00,00,04F8
86 DATAFF,FF,00,FF,00,07,FF,1F,0422
87 DATA07,00,00,00,00,FF,FF,FE,0303
88 DATA80,00,00,1F,00,80,FF,00,021E
89 DATA00,00,00,00,00,00,00,00,0000
90 DATAFF,3C,02,00,07,00,10,00,0154
91 DATAD2,1B,43,1B,56,80,81,82,0324
92 DATA83,04,1B,43,1B,56,84,85,025F
93 DATA86,87,88,84,84,1B,44,84,0380
94 DATA08,08,08,08,08,08,08,08,0040
95 DATA0A,1B,43,89,1B,51,8A,8B,0272
96 DATA8C,8D,8E,1B,56,8F,90,08,033F
97 DATA08,08,08,08,08,08,08,0A,0042
98 DATA1B,41,84,91,92,93,94,95,03BF
99 DATA84,84,08,08,08,08,08,08,0138
100 DATA08,08,0A,1B,44,84,84,1B,019C
101 DATA40,96,97,1B,44,84,84,84,0358
102 DATA84,08,08,08,08,08,08,08,00BC
103 DATA08,0A,1B,40,98,99,9A,9B,02D3
104 DATA9C,84,84,84,08,08,08,08,0248
105 DATA08,08,08,08,0A,9D,9E,9F,0204
106 DATAA0,A1,A2,A3,A4,08,08,08,0342
107 DATA08,08,08,08,08,0A,A5,1B,00F2
108 DATA52,A6,A7,A8,A9,AA,AB,AC,04F1
109 DATA08,08,08,08,08,08,08,08,0040
110 DATA0A,1B,56,AD,AE,1B,52,AF,02F2
111 DATAB0,B1,B2,B3,B4,08,08,08,0392
112 DATA08,08,08,08,08,0A,1B,44,0091
113 DATA1B,56,B5,B6,B7,B8,B9,BA,04BE
114 DATABB,BC,08,08,08,08,08,08,01A7
115 DATA08,08,0A,BD,BE,BF,84,84,035C
116 DATAC0,84,84,04,49,4C,45,37,02DD
117 DATA04,49,4C,45,34,04,00,00,0116
118 DATA00,00,00,00,00,00,00,00,0000
119 DATA00,20,0A,A6,01,03,00,DA,01AE
120 DATA04,DC,35,DA,03,34,76,A6,0342
121 DATA8C,F2,26,2C,30,8D,00,92,031F
122 DATABF,60,2D,E6,8D,00,8A,86,03CF
123 DATA08,3D,30,8B,A6,84,30,01,025B
124 DATAAF,8C,DC,C6,08,3D,30,8B,03DD
125 DATAA6,84,A7,8C,D0,30,01,AF,040D
126 DATA8C,CF,6F,8C,C9,35,76,39,0403
127 DATAA6,8C,C1,A1,8C,BF,22,5A,045B
128 DATABE,60,2D,AF,8C,BD,AE,8C,047D
129 DATAB6,BF,60,2D,30,8D,00,4D,030C
130 DATAA6,8C,AB,C6,1B,BD,E8,03,0466
131 DATAE6,86,BD,E8,03,AE,8C,A1,04EF
132 DATAA6,8C,99,4A,48,EC,86,30,03FF
133 DATA8B,30,1F,A6,8C,90,E6,80,0402
134 DATAC1,04,27,1F,BD,E8,03,C1,0374
135 DATA08,27,06,C1,0A,27,0B,20,0152
136 DATAED,85,02,27,E9,BD,E8,03,042C
137 DATA20,E4,85,01,27,E0,BD,E8,0436
138 DATA03,20,DB,AE,8D,FF,6C,BF,0463
139 DATA60,2D,35,76,39,4C,4D,4E,0258
140 DATA4F,00,46,00,00,00,00,00,0095
141 DATA00,03,FF,00,00,00,00,00,0102
142 DATA00,FE,FF,00,00,00,00,00,01FD
143 DATA00,FF,FF,FF,FF,FF,FF,FF,06F9
144 DATAFF,FF,FF,FF,FF,FF,FF,FF,07F8
145 DATAFC,F0,00,FF,FF,FF,FC,E0,06C5
146 DATA00,00,00,FC,E0,00,00,00,01DC
147 DATA00,00,00,00,00,00,00,00,0000
148 DATA00,00,00,FF,FF,FF,FF,FF,04FB
149 DATAF8,E0,C0,FF,FF,FF,FF,FF,0793
150 DATA3F,07,00,FF,FF,FF,FF,FF,0541
151 DATAFF,FE,00,FF,FF,FF,FF,FF,06F8
152 DATAFF,3F,07,FF,FF,FF,FF,FC,063D
153 DATAE0,80,00,FE,F8,E0,00,00,0436
154 DATA00,00,00,00,FC,00,FF,00,01FB
155 DATAFF,FF,FF,00,00,07,E0,00,03E4
156 DATAFF,C0,FF,00,00,00,00,FF,03BD
157 DATAE0,7F,FF,00,00,00,03,80,02E1
158 DATA3F,00,FF,00,00,00,F0,00,022E
159 DATAFF,00,FF,00,00,00,00,00,01FE
160 DATAC0,00,FE,80,63,1E,00,00,02BF
161 DATA00,00,00,78,80,00,00,00,00F8
162 DATA00,00,00,70,1C,07,00,00,0093
163 DATA00,00,00,E3,C2,84,00,00,0229
164 DATAE0,F8,FE,80,00,00,00,01,0357
165 DATA02,04,04,01,0E,18,20,80,00D1
166 DATA00,00,00,00,81,61,39,1F,013A
167 DATA07,01,00,00,00,C0,E0,F0,0298
168 DATA80,C0,E0,00,00,00,03,01,0224
169 DATA07,0E,3C,00,00,00,C0,80,0191
170 DATAF0,1F,00,FE,FE,FE,FE,FC,0603
171 DATAFC,F0,F1,06,0C,38,70,F0,0487
172 DATAE0,C0,C0,0C,08,10,10,20,02B4
173 DATA40,80,80,10,22,22,24,5F,0217
174 DATA60,4F,F0,23,47,C0,3F,C0,03C8
175 DATA80,00,00,01,0F,75,C0,00,01C5
176 DATA00,00,00,FF,FF,FF,0F,07,0313
177 DATA00,00,00,FF,FF,FF,FF,FF,04FB
178 DATA3F,07,01,2A,FF,00,FE,FE,036C
179 DATAFE,FE,FE,0F,F0,07,EF,DE,05CD
180 DATAE9,F3,C3,FF,FF,6F,47,C7,061A
181 DATA87,86,0C,F8,98,8C,04,04,033D
182 DATA08,08,10,27,27,2E,2F,4C,0117
183 DATA1D,1A,20,6E,AF,EE,FA,BE,041A
184 DATABC,EA,30,02,FF,ED,CE,FF,0591
185 DATAA0,0F,FF,3F,00,FF,D4,FB,04BB
186 DATA07,FF,FF,FF,FF,00,00,00,0403
187 DATA00,F3,BD,FF,FF,00,00,0F,03BD
188 DATA7C,80,00,FF,FF,00,00,E1,03DB
189 DATA0E,70,80,FF,FF,10,E0,80,046C
190 DATA00,00,07,FF,FE,3F,00,00,0243
191 DATA07,3E,EE,FF,00,FF,00,00,0331
192 DATAF8,C7,B1,FF,01,E0,00,00,0450
193 DATA0F,FF,F6,FF,FF,00,00,00,0402
194 DATA80,FF,FF,FF,00,FF,00,00,047C
195 DATA00,FF,00,FE,00,FF,00,FF,03FB
196 DATA00,FF,00,00,07,FF,00,FF,0304
197 DATA00,F0,00,00,FF,80,00,F0,035F
198 DATAFF,1F,00,FF,83,FC,03,FF,049E
199 DATA80,FF,00,FF,FC,00,E0,FF,0559
200 DATA00,FF,00,FF,00,00,00,FF,02FD
201 DATA00,FF,00,80,00,00,00,FF,027E
202 DATA00,80,00,00,00,00,00,00,0080
203 DATA00,00,FF,00,00,00,00,3E,013D
204 DATA00,00,FF,00,00,00,00,1F,011E
205 DATA00,00,FF,00,00,3F,FF,E0,031D
206 DATA00,00,FF,00,3F,FF,F0,00,032D
207 DATA00,00,FF,00,F8,FF,3F,03,0338
208 DATA00,00,FF,00,0F,80,FF,FF,038C
209 DATA1F,00,FF,00,FF,1E,C0,FF,03FA
210 DATAF8,00,FF,03,00,09,00,12,0215
211 DATA00,3F,00,BC,1B,43,1B,56,01CA
212 DATA80,81,80,82,04,1B,42,1B,027F
213 DATA56,83,84,85,86,87,87,08,037E
214 DATA08,08,08,08,08,0A,1B,40,008D
215 DATA1B,52,88,89,8A,8B,1B,56,0304
216 DATA8C,8D,08,08,08,08,08,08,0149
217 DATA0A,1B,44,8E,8F,90,91,92,0339
218 DATA93,04,1B,40,1B,56,94,95,028C
219 DATA87,1B,47,87,96,87,87,87,039B
220 DATA08,08,08,08,08,08,08,08,0040
221 DATA0A,1B,40,97,98,99,1B,47,028F
222 DATA9A,9B,9C,9D,87,08,08,08,030D
223 DATA08,08,08,08,08,0A,1B,40,008D
224 DATA9E,9F,A0,A1,A2,A3,A4,A5,050C
225 DATA08,08,08,08,08,08,08,08,0040
226 DATA0A,A6,A7,A8,A9,AA,AB,AC,04A9
227 DATAAD,08,08,08,08,08,08,08,00E5
228 DATA08,0A,AE,AF,B0,B1,B2,B3,0435
229 DATAB4,B5,08,08,08,08,08,08,0199
230 DATA08,08,0A,1B,44,B6,B7,B8,029E
231 DATAB9,BA,BB,BC,BD,08,08,08,03BF
232 DATA08,08,08,08,08,0A,BE,BF,01AF
233 DATAC0,C1,C2,C3,C4,C5,04,49,04DC
234 DATA4C,45,36,04,49,4C,45,38,01DD
235 DATA04,49,4C,45,33,04,00,00,0115
236 DATA00,00,20,0A,A6,01,02,00,00D3
237 DATADD,AD,DF,4E,DA,03,34,76,043E
238 DATAA6,8C,F2,26,2C,30,8D,00,0333
239 DATA92,BF,60,2D,E6,8D,00,8A,03DB
240 DATA86,08,3D,30,8B,A6,84,30,02E0
241 DATA01,AF,8C,DC,C6,08,3D,30,0353
242 DATA8B,A6,84,A7,8C,D0,30,01,03E9
243 DATAAF,8C,CF,6F,8C,C9,35,76,0479
244 DATA39,A6,8C,C1,A1,8C,BF,22,043A
245 DATA5A,BE,60,2D,AF,8C,BD,AE,044B
246 DATA8C,B6,BF,60,2D,30,8D,00,034B
247 DATA4D,A6,8C,AB,C6,1B,BD,E8,04B0
248 DATA03,E6,86,BD,E8,03,AE,8C,0451
249 DATAA1,A6,8C,99,4A,48,EC,86,0470
250 DATA30,8B,30,1F,A6,8C,90,E6,03B2
251 DATA80,C1,04,27,1F,BD,E8,03,0333
252 DATAC1,08,27,06,C1,0A,27,0B,01F3
253 DATA20,ED,85,02,27,E9,BD,E8,0449
254 DATA03,20,E4,85,01,27,E0,BD,0351
255 DATAE8,03,20,DB,AE,8D,FF,6C,048C
256 DATABF,60,2D,35,76,39,4C,4D,02C9
257 DATA4E,4F,00,34,00,00,00,00,00D1
258 DATA00,00,00,00,1C,03,00,00,001F
259 DATA00,00,00,00,C7,FF,F0,00,02B6
260 DATA00,00,00,00,0F,00,00,00,000F
261 DATA00,00,00,00,FF,3E,00,00,013D
262 DATA00,00,00,00,FF,0E,01,00,010E
263 DATA00,00,00,00,FF,3B,9C,4F,0225
264 DATA20,1F,00,00,FF,7F,FE,FF,03BA
265 DATA7F,01,FF,00,FF,FF,FF,3F,04BB
266 DATA80,FF,E7,33,FF,FF,FF,FF,0695
267 DATA00,F8,E0,E0,00,00,10,0F,02D7
268 DATA00,00,00,00,00,00,80,80,0100
269 DATA70,08,00,00,00,80,61,3F,0198
270 DATA01,00,00,00,00,80,A0,C0,01E1
271 DATAC0,60,3C,07,00,00,00,08,016B
272 DATA37,00,00,00,07,07,07,03,004F
273 DATA01,00,00,00,C9,CF,EC,F0,0375
274 DATA0F,F8,00,00,E7,84,03,1C,0291
275 DATAE0,00,00,00,83,3C,E0,00,027F
276 DATA00,00,00,00,7F,3F,3F,3F,013C
277 DATA3F,1F,1F,0F,69,6C,BC,6E,028B
278 DATA27,B7,9B,D3,B2,7B,BF,E9,0521
279 DATAED,EE,65,FF,66,35,B5,FB,058A
280 DATADF,ED,6D,FF,03,01,01,00,033D
281 DATA00,00,00,00,04,80,40,00,00C4
282 DATA61,88,FE,08,9A,65,7A,0B,0373
283 DATA00,0A,DD,0A,9B,00,0A,DD,0273
284 DATA0A,9B,1C,06,01,08,24,FF,01F3
285 DATA08,A3,04,90,DE,89,00,FF,03A5
286 DATA24,FF,1D,54,0F,0E,0F,1A,01DA
287 DATA2A,EA,08,2A,00,07,E3,2A,025A
288 DATAD2,2A,08,2A,00,07,32,03,016A
289 DATA2B,23,81,89,00,88,BA,04,029E
290 DATA81,80,00,00,01,83,60,00,01E5
291 DATA00,00,0A,88,77,81,88,F4,0306
292 DATA88,EB,04,84,80,00,00,01,027C
293 DATA90,5F,FF,00,00,0A,88,5C,02DC
294 DATA00,ED,36,39,46,31,46,31,024A
295 DATA46,33,46,33,46,33,46,33,01E4
296 DATA46,37,46,30,30,30,30,30,01B3
297 DATA45,30,33,43,38,33,33,33,01BC
298 DATA38,34,33,33,33,33,30,34,019C
299 DATA35,33,30,33,30,33,30,33,0191
300 DATA30,33,30,34,36,33,37,34,019B
301 DATA36,33,33,34,36,33,33,34,01A0
302 DATA36,33,33,34,36,33,33,34,01A0
303 DATA36,33,31,34,36,33,31,34,019C
304 DATA36,33,39,33,36,45,44,30,01C4
305 DATA35,43,38,38,41,30,30,46,01CF
306 DATA46,35,46,39,30,31,30,30,01BB
307 DATA38,30,38,34,34,45,42,38,01C7
308 DATA38,46,34,38,38,38,31,37,01C2
309 DATA37,38,38,41,30,30,30,36,01AE
310 DATA35,35,33,36,33,30,33,30,0199
311 DATA33,30,34,31,33,38,33,38,019E
312 DATA33,37,33,37,33,31,33,38,01A3
313 DATA33,38,33,38,33,34,34,36,01A7
314 DATA33,38,33,38,34,32,34,35,01A5
315 DATA33,34,33,34,33,38,33,30,019C
316 DATA33,38,33,30,33,30,33,31,0195
317 DATA33,30,33,39,34,36,33,35,01A1
318 DATA34,36,34,36,33,30,33,30,019A
319 DATA34,31,33,38,33,38,34,33,01A2
320 DATA33,35,33,30,34,34,34,35,019C
321 DATA33,36,33,33,33,39,33,33,01A1
322 DATA33,36,33,34,33,34,33,33,019D
323 DATA33,36,33,33,33,33,33,33,019B
324 DATA33,39,33,33,33,33,33,33,019E
325 DATA33,36,33,33,33,35,33,34,019E
326 DATA33,34,33,34,33,30,33,33,0197
327 DATA33,35,33,33,33,33,33,34,019B
328 DATA33,38,33,33,33,38,33,33,01A2
329 DATA33,31,33,34,33,30,33,33,0194
330 DATA33,30,33,33,33,36,33,34,0199
331 DATA33,36,33,34,33,35,00,44,017C
1000 PRINT,,"DATA OK.","ERREUR:";ERR:PRINT:PRINT
1010 PRINT"SAVEM";CHR$(34);"GRPRES";CHR$(34);",&HD5C1,&HDFFF,&H0"
Pièces jointes
BIN2_TO7.K7.zip
Erreur mémoire!
(4.64 Kio) Téléchargé 156 fois
Daniel
Messages : 17410
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Daniel »

Il manque l'instruction CLEAR au début du programme Basic pour réserver la mémoire à partir de 54721.

A défaut de CLEAR le Basic utilise toute la mémoire pour stocker les variables et la pile. Tôt ou tard un POKE écrase une variable ou la pile et le Basic se plante. Il faut limiter la zone utilisée par le Basic à 54720 (&HD5C0).
Daniel
L'obstacle augmente mon ardeur.
Xavier

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Xavier »

Heu!
?????
Mais, Daniel... tu as toujours réponse à tout !
CLEAR,&hD5C0 en ligne 1.
Donc, CLEAR réserve la zone Basic à la MEMORY du CPC et le VARs du Zx81...
Compris, je continue.
Par contre, le programme était donc (encore spounz!) imposible à taper en l'état.
Encore Merci pour la réponse rapide qui occupera mon week-end.
:wink:
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par __sam__ »

Oui tout à fait. A noter avec le clear: c'est la 1ere adresse utilisée par le LM - 1 qu'il faut indiquer. Le -1 est important, car il indique la dernière adresse utilisable par le basic. Sans lui, le basic va manger la 1ère adresse du prog en LM.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Xavier

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Xavier »

Voilà...
La présentation est tapée !
:shock:
île du docteur Spounz.
île du docteur Spounz.
iledrspounz.jpg (32.07 Kio) Consulté 5580 fois
Je passe au jeu...
Daniel
Messages : 17410
Inscription : 01 mai 2007 18:30
Localisation : Vaucluse
Contact :

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Daniel »

Félicitations pour la saisie des lignes DATA, je sais par expérience le temps qu'il faut :wink:
Le résultat en vaut la peine : pour un programme amateur, l'image de présentation est particulièrement bien réussie.
On en revient toujours à la même conclusion : pour faire un bon jeu il faut un bon scénario, un bon programmeur, mais aussi un bon graphiste.
Daniel
L'obstacle augmente mon ardeur.
Markerror
Messages : 2123
Inscription : 31 oct. 2011 19:21
Localisation : Orléans
Contact :

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Markerror »

Bonjour,

Cette page de présentation est effectivement jolie. L'auteur a dû passer pas mal de temps dessus.
Xavier

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Xavier »

Salut,
Sur les deux opus précédents, la qualité graphique était "approximative" et pour une programmation "Basic" à base de ON X GOSUB...
Oui, la présentation est... était prometteuse.
Car on se retrouve avec un programme basic au traitement linéaire, et au graphisme GROSSIER!
spounz3A
spounz3A
dcmoto07.jpg (23.46 Kio) Consulté 5550 fois
sponz3B
sponz3B
dcmoto08.jpg (23.96 Kio) Consulté 5550 fois
Par contre, c'est pas le pieds à déboguer.
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par __sam__ »

à voir les deux dernier graphismes, j'ai comme l'impression que les images sont bâties à partir de morceaux prédéfinis et changeables à volontés. Il y a la route (immuable), la partie à droite de la route, celle à gauche, et enfin au dessus de la route. Cela permet peut-être au jeu de pouvoir construire procéduralement des images variées à partir de très peu d'éléments de décors. Cela impliquerait une occupation mémoire réduite, ce qui n'est pas du luxe quand on programme en basic (des DATA occupent facilement 3 à 4 fois l'espace mémoire des données qu'elles représentent en binaire).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Xavier

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Xavier »

Très bonne analyse Sam!
Ce sont en effet des blocs graphiques placés à la manière d'un puzzle.
Constitué de 3 routines assembleurs : Une pour les objets, une pour les combattants et une pour les décors.

exemple :
22 POKE&HDB7F,S:POKE&HDB81,T:LOCATEX,Y:EXEC&HDB7C:RETURN
S pour l'id image, T pour la taille et X,Y pour le placement à l'écran.

Bon... cela m'amène à parler d'une erreur dans les DATA...
Surement un mauvais placement de valeur, car les check-sum sont corrects...
erreur ecran
erreur ecran
dcmoto21.jpg (17.37 Kio) Consulté 5540 fois
On peut voire un "V" parasite, qui décale le bloc d'un caractère !

Pour l'afficher, il faut faire:
POKE&HDB7F,11:POKE&HDB81,1:LOCATE10,10:EXEC&HDB7C

Le problème, c'est que je n'arrive pas à visualiser la partie assembleur
pour calculer l'offset du bloc graphique...
Ce qui m'aurai permis de modifier le listing bin3.TXT...

Peut-on désassembler une partie de mémoire &HDB7C en stoppant DCmoto?

Je place ma disquette TO9 en pièce jointe au cas où vous aurriez plus de chance que moi!
faire RUN"PRES" puis A pendant le jeu pour sortir.
goto300 puis un run donne 255 point de vie partout. (nostalgie "Bidouille-grenouille!")
Merci, car je suis plus Zilog que Moto.
:wink:
Pièces jointes
Ile_Dr_spounz[TO7].zip
programme version test
(57.93 Kio) Téléchargé 142 fois
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par __sam__ »

Xavier a écrit :Peut-on désassembler une partie de mémoire &HDB7C en stoppant DCmoto?
Sans même stopper DCMoto tu peux lancer le débugger via F9. Avec lui tu peux désassembler la zone mémoire que tu veux, mettre un point d'arrêt en lecture/écriture/exécution à une adresse, faire une exécution pas à pas, ou à fond jusqu'au prochain point d'arrêt. Bref, cette fonction est très pratique.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Xavier

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par Xavier »

Voilà,
Un rapide coup d'œil pour voir quelle partie est à vérifier...
DCmoto désassembleur.
DCmoto désassembleur.
Capture.jpg (126.85 Kio) Consulté 5516 fois
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par __sam__ »

c'est bizarre ce point d'entrée en $DB7C, il commence par des tests. Or quand il est appelé depuis le basic, on ne sait pas la valeurs des flags du CPU et les sauts réalisés par les tests sont imprédictibles.

En outre quand je regarde les pokes faits en basic juste avant l'exec &hDB7C, ils tapeny pile dans cette zone de code. Ca ne me semble pas très normal. Je vais jeter un oeil de mon coté car ce code m'intrigue.

[edit] en plus les deux codes sont curieux car on a un BVS (branche si V=1) suivi par BVC c'est à dire branche si V=0, le tout suivi par RTS alors que les deux branchements au dessus sont exclusifs l'un de l'autre. Le checksum est une somme simple sans polynôme cyclique ? Dans ce cas il est aisé de commettre deux erreurs qui se compensent (+1 sur une valeur et -1 un peu plus loin).

[edit2] la valeur que l'on poke en &HDB81 indique la valeur de ATTRB: 0=taille normale, 1=taille double en Y, 2=taille double en X, 3=taille double en X et Y.

La valeur pokée en &hDB7F indique le décors à afficher (12=petit démon, 1=bout de rocher, 6=tipi, etc). Le 11 correspond à la foret et de ce que j'ai pu en voir c'est le seul décors à problème. Reste à comprendre où sont les données représentant le décors no 11. Il faut executer la routine d'affichage pas à pas et voir à quelle adresse elle trouve un V.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
__sam__
Messages : 7964
Inscription : 18 sept. 2010 12:08
Localisation : Brest et parfois les Flandres

Re: [Thomson-Basic] Entrer du LM avec des DATAs.

Message par __sam__ »

Le problème est une typo en DF52 je pense:

Code : Tout sélectionner

DF50 1b 42 18 56 a9 aa ab 08 08 08 0a 1b 50 ac ad 1b  .B.V........P...
DF60 56 ae 08 08 08 0a 1b 50 af b0 b1 08 08 08 0a 1b  V......P........
DF70 41 b2 b3 1b 40 1b 53 b4 08 08 08 0a 1b 41 1b 50  A...@.S......A.P
On trouve $18 au lieu de $1B (notez 8<->B). Si on y place $1B les arbres s'affichent bien.

Le problème se situe dans le fichier binaire DCSP.BIN que je ne sais pas modifier facilement (Est-il produit par une série de DATA dans un programme basic tiers?). Cependant une façon de corriger ca en basic pur est de placer un POKE &hDF52,&h1B juste après le LOADM"DCSP" en ligne 350 de PRES.BAS:

Code : Tout sélectionner

350 LOADM"DCSP":POKE &HDF52,&H1B '<== PATCH BY __SAM__
Avec ca tous les décors marchent bien (de ce que j'ai pu observer).
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Répondre