• R/O
  • SSH
  • HTTPS

oricsdk: Commit


Commit MetaInfo

Revision1538 (tree)
Time2020-08-30 02:59:27
Authordbug

Log Message

Added my old (2001) raycast prototype

Change Summary

Incremental Difference

--- users/dbug/tests/Raycast/Main.c (nonexistent)
+++ users/dbug/tests/Raycast/Main.c (revision 1538)
@@ -0,0 +1,691 @@
1+
2+
3+#include "lib.h"
4+
5+// --------------------------------------
6+// Walls
7+// --------------------------------------
8+// (c) 2001 Mickael Pointier.
9+// This code is provided as-is.
10+// I do not assume any responsability
11+// concerning the fact this is a bug-free
12+// software !!!
13+// Except that, you can use this example
14+// without any limitation !
15+// If you manage to do something with that
16+// please, contact me :)
17+// --------------------------------------
18+// --------------------------------------
19+// For more information, please contact me
20+// on internet:
21+// e-mail: mike@defence-force.org
22+// URL: http://www.defence-force.org
23+// --------------------------------------
24+// Note: This text was typed with a Win32
25+// editor. So perhaps the text will not be
26+// displayed correctly with other OS.
27+
28+
29+
30+char DrawCompleteColumn();
31+
32+
33+
34+
35+extern unsigned char CosTable[];
36+
37+
38+unsigned char TabColor[]=
39+{
40+ // 0
41+ 64+1+2+4+8+16+32,
42+ 64+1+2+4+8+16+32,
43+ 64+1+2+4+8+16+32,
44+ 64+1+2+4+8+16+32,
45+ 64+1+2+4+8+16+32,
46+ 64+1+2+4+8+16+32,
47+ 64+1+2+4+8+16,
48+ 64+1+2+4+8+16,
49+ 64+1+2+4+8+16,
50+ 64+1+2+4+8+16,
51+
52+ // 10
53+ 64+1+2+4+8+16,
54+ 64+1+2+4+8+16,
55+ 64+1+2+4+8,
56+ 64+1+2+4+8+16,
57+ 64+1+2+4+8+16,
58+ 64+1+2+4+8,
59+ 64+1+2+4+8+16,
60+ 64+1+2+4+8,
61+ 64+1+2+4+8,
62+ 64+1+2+4+8,
63+
64+ // 20
65+ 64+1+2+4+8,
66+ 64+1+2+4+8,
67+ 64+1+2+4,
68+ 64+1+2+4+8,
69+ 64+1+2+4,
70+ 64+1+2+4,
71+ 64+1+2+4,
72+ 64+1+2+4,
73+ 64+1+2+4,
74+ 64+1+2+4,
75+
76+ // 30
77+ 64+1+2+4,
78+ 64+1+2+4,
79+ 64+1+2+4,
80+ 64+1+2+4,
81+ 64+1+2+4,
82+ 64+1+2+4,
83+ 64+1+2+4,
84+ 64+1+2+4,
85+ 64+1+2+4,
86+ 64+1+2+4,
87+
88+ // 40
89+ 64+1+2,
90+ 64+1+2+4,
91+ 64+1+2+4,
92+ 64+1+2,
93+ 64+1+2+4,
94+ 64+1+2,
95+ 64+1+2,
96+ 64+1+2,
97+ 64+1+2,
98+ 64+1+2,
99+
100+ // 50
101+ 64+1+2,
102+ 64+1+2,
103+ 64+1+2,
104+ 64+1+2,
105+ 64+1+2,
106+ 64+1+2,
107+ 64+1+2,
108+ 64+1+2,
109+ 64+1+2,
110+ 64+1+2,
111+
112+ // 60
113+ 64+1+2,
114+ 64+1+2,
115+ 64+1,
116+ 64+1+2,
117+ 64+1+2,
118+ 64+1,
119+ 64+1+2,
120+ 64+1,
121+ 64+1,
122+ 64+1,
123+
124+ // 70
125+ 64+1,
126+ 64+1,
127+ 64+1,
128+ 64+1,
129+ 64+1,
130+ 64+1,
131+ 64+1,
132+ 64+1,
133+ 64+1,
134+ 64+1,
135+
136+ // 80
137+ 64+1,
138+ 64+1,
139+ 64+1,
140+ 64+1,
141+ 64,
142+ 64+1,
143+ 64+1,
144+ 64,
145+ 64,
146+ 64+1,
147+
148+ // 90
149+ 64,
150+ 64,
151+ 64,
152+ 64,
153+ 64,
154+ 64,
155+ 64,
156+ 64,
157+ 64,
158+ 64,
159+};
160+
161+
162+
163+unsigned char LY1;
164+unsigned char RY1;
165+
166+unsigned char LA1;
167+unsigned char LA2;
168+
169+unsigned char ColorDraw;
170+
171+
172+
173+extern unsigned char Labyrinthe[];
174+unsigned char FlagScanned[16*16];
175+
176+
177+unsigned char TableVerticalPos[40];
178+unsigned char PosAngle;
179+
180+int PosX;
181+int PosY;
182+int DirX;
183+int DirY;
184+
185+
186+unsigned char Speed;
187+
188+
189+
190+unsigned char Angle;
191+
192+unsigned char XPos;
193+unsigned char YPos;
194+
195+
196+
197+
198+void Raycast()
199+{
200+ unsigned char i;
201+ unsigned char angle;
202+ unsigned char y_value;
203+
204+ int xx,yy;
205+ int ix,iy;
206+
207+ unsigned int distance;
208+
209+ unsigned int d_step;
210+
211+ //
212+ // Clean the buffer ;)
213+ //
214+ i=0;
215+ do
216+ {
217+ FlagScanned[i]=0;
218+ i++;
219+ }
220+ while (i);
221+
222+
223+ FlagScanned[(PosX>>8) + ((PosY>>8)<<4)]=1;
224+
225+ //
226+ // Start angle
227+ //
228+ angle=PosAngle+20;
229+ for (i=0;i<40;i++)
230+ {
231+ //
232+ // Vertical scan
233+ //
234+ xx=PosX;
235+ yy=PosY;
236+
237+ //
238+ // Launch a ray scanning...
239+ //
240+ ix=((int)(CosTable[(angle)&255]>>1) -64);
241+ iy=((int)(CosTable[(angle+64)&255]>>1)-64);
242+ distance=0;
243+
244+
245+ // http://www.permadi.com/tutorial/raycast/rayc8.html
246+ //
247+ // Before drawing the wall, there is one problem that must be taken care of.
248+ // This problem is known as the "fishbowl effect."
249+ // Fishbowl effect happens because ray-casting implementation mixes polar coordinate and Cartesian coordinate together.
250+ // Therefore, using the above formula on wall slices that are not directly in front of the viewer will
251+ // gives a longer distance. This is not what we want because it will cause a viewing distortion such as
252+ // illustrated below.
253+ // Thus to remove the viewing distortion, the resulting distance obtained from equations in Figure 17
254+ // must be multiplied by cos(BETA); where BETA is the angle of the ray that is being cast relative to
255+ // the viewing angle. On the figure above, the viewing angle (ALPHA) is 90 degrees because the player
256+ // is facing straight upward. Because we have 60 degrees field of view, BETA is 30 degrees for the leftmost
257+ // ray and it is -30 degrees for the rightmost ray.
258+ //d_step=CosTable[(256+(i<<1)-40)&255]>>5;
259+ //d_step=CosTable[(256+(i<<2)-80)&255]>>6;
260+ //if (i<5) d_step=2<<8;
261+ //else d_step=3<<8; //CosTable[(256+(i<<2)-80)&255]>>5;
262+
263+ //d_step=((unsigned int)CosTable[(256+(i<<2)-80)&255])<<1; // Fishball
264+ d_step=((unsigned int)CosTable[(256+i-20)&255])<<1; // Fishball nearly gone
265+
266+ //printf("%d ",d_step);
267+
268+ //
269+ // Do the raycast
270+ //
271+ while (!Labyrinthe[(xx>>8) + ((yy>>8)<<4)])
272+ {
273+ //printf("%d %d-",xx>>8,yy>>8);
274+
275+ FlagScanned[(xx>>8) + ((yy>>8)<<4)]=1;
276+ xx+=ix;
277+ yy+=iy;
278+ distance+=d_step; // 4 //(128>>2);
279+ }
280+
281+ //distance>>=4;
282+ //distance=(64*255)/distance;
283+
284+ distance>>=4;
285+
286+ distance=(64<<8)/distance;
287+
288+ //printf("%d ",distance);
289+
290+
291+ //
292+ // Compute the distance
293+ //
294+ if (distance>100)
295+ {
296+ y_value=100;
297+ }
298+ else
299+ {
300+ y_value=distance;
301+ }
302+
303+ // Fake perspective test
304+ y_value=100-y_value;
305+
306+
307+ //
308+ // Store value, and increment angle
309+ // 1F 1E 1E 1E 1D 3A 3A 3A 38 38 54 54 54 51 51 51 51 51 ...
310+
311+ // Projected Slice Height = 64 / Distance to the Slice * 277
312+
313+ // 0=Full size block (200 high)
314+ // 100=Nothing drawn (0 high, horizontal single pixel)
315+ TableVerticalPos[i]=y_value;
316+ angle--;
317+ }
318+
319+}
320+
321+
322+
323+
324+
325+
326+
327+//
328+//
329+//
330+/*
331+void RaycastOld()
332+{
333+ unsigned char i;
334+ unsigned char angle;
335+ unsigned char y_value;
336+
337+ int xx,yy;
338+ int ix,iy;
339+
340+ int distance;
341+
342+
343+ //
344+ // Start angle
345+ //
346+ angle=PosAngle-20;
347+ for (i=0;i<40;i++)
348+ {
349+ //
350+ // Launch a ray scanning...
351+ //
352+ xx=PosX;
353+ yy=PosY;
354+ ix=((int)CosTable[(angle)&255]-127);
355+ iy=((int)CosTable[(angle+64)&255]-127);
356+ ix=ix>>2;
357+ iy=iy>>2;
358+
359+
360+
361+ //
362+ // Do the raycast
363+ //
364+ while (!Labyrinthe[(xx>>8) + ((yy>>8)<<4)])
365+ {
366+ xx+=ix;
367+ yy+=iy;
368+
369+ }
370+
371+ //
372+ // Compute the distance
373+ //
374+ xx-=PosX;
375+ yy-=PosY;
376+
377+ if (xx<0) xx=-xx;
378+ if (yy<0) yy=-yy;
379+
380+ distance=(xx+yy)/2; // Kind of average :)
381+
382+ distance>>=3;
383+
384+ if (distance>100)
385+ {
386+ y_value=100;
387+ }
388+ else
389+ {
390+ y_value=distance;
391+ }
392+
393+
394+ //printf("a:%d y:%d d:%d\n",angle,y_value,distance);
395+
396+
397+ //
398+ // Store value, and increment
399+ //
400+ TableVerticalPos[i]=y_value;
401+ angle++;
402+ }
403+
404+}
405+*/
406+
407+
408+
409+
410+
411+
412+
413+
414+
415+
416+
417+
418+void DisplayWall()
419+{
420+ int x,y;
421+ unsigned int py1;
422+ int iy1;
423+
424+ unsigned char *ptr_dst;
425+
426+ unsigned char *ptr_dst_up;
427+
428+ unsigned char counter;
429+
430+ unsigned char yy;
431+
432+ ptr_dst=(unsigned char*)0xa000+(36*40);
433+
434+ py1=(LY1<<8);
435+
436+ //iy1=1<<8;
437+
438+
439+ iy1=((RY1<<8)-(LY1<<8))/40;
440+
441+
442+
443+ for (x=2;x<40;x++)
444+ //for (x=2;x<24;x++)
445+ {
446+ yy=(py1>>8);
447+
448+ yy=TableVerticalPos[x];
449+
450+
451+ XPos=x;
452+ YPos=yy;
453+
454+
455+ //ColorDraw=TabColor[100-yy];
456+ ColorDraw=TabColor[yy];
457+
458+ //YPos=CosTable[((x<<1)+Angle)&255]>>2;
459+
460+ DrawCompleteColumn();
461+
462+ /*
463+ ptr_dst_up =ptr_dst+x+yy*40;
464+
465+ counter=(64-yy)*2;
466+ while (counter--)
467+ {
468+ *ptr_dst_up =ColorDraw;
469+ ptr_dst_up+=40;
470+ }
471+ */
472+
473+ py1+=iy1;
474+ }
475+
476+ Angle+=3;
477+}
478+
479+
480+/*
481+
482+i*6=
483+
484+i*2 + i*4
485+
486+
487+*/
488+
489+
490+
491+//
492+// Display TWO maps.
493+// The first one is simply the map with walls
494+// The second one show the recasting informations
495+//
496+void DrawMap()
497+{
498+ unsigned char x,y;
499+ unsigned char *ptr_dst;
500+ unsigned char *ptr_src;
501+ unsigned char *ptr_scan;
502+ unsigned char color;
503+
504+ ptr_src=Labyrinthe;
505+ ptr_scan=FlagScanned;
506+ ptr_dst=(unsigned char*)0xa000+24;
507+ for (y=0;y<16;y++)
508+ {
509+ for (x=0;x<16;x++)
510+ {
511+ color=64;
512+
513+ if (*ptr_src)
514+ {
515+ color=64+1+2+4+8+16+32;
516+ }
517+ else
518+ {
519+ color=64;
520+ }
521+ if (*ptr_scan)
522+ {
523+ color|=128;
524+ //printf("%d/%d ",x,y);
525+ }
526+
527+ ptr_dst[x]=color;
528+ ptr_dst[x+40]=color;
529+ ptr_dst[x+80]=color;
530+ ptr_dst[x+120]=color;
531+ ptr_src++;
532+ ptr_scan++;
533+ }
534+ ptr_dst+=40*4;
535+ }
536+
537+ curset(144+((PosX*6)>>8),(PosY>>6),2);
538+}
539+
540+
541+
542+
543+
544+void main()
545+{
546+ int counter;
547+ int y;
548+ int i;
549+
550+ unsigned char truc;
551+
552+
553+ // Inits
554+ Speed=2;
555+ PosAngle=0;
556+ PosX=(8<<8)+128;
557+ PosY=(7<<8)+128;
558+ DirX=((int)(CosTable[(PosAngle)&255]) -127);
559+ DirY=((int)(CosTable[(PosAngle+64)&255])-127);
560+
561+ /*
562+ Raycast();
563+ while(1);
564+ */
565+
566+
567+ /*
568+ printf("%d \n",CosTable[0]);
569+ printf("%d \n",CosTable[64]);
570+ printf("%d \n",CosTable[128]);
571+ printf("%d \n",CosTable[192]);
572+
573+ printf("\n");
574+
575+ printf("%d \n",(int)CosTable[0]-127);
576+ printf("%d \n",(int)CosTable[64]-127);
577+ printf("%d \n",(int)CosTable[128]-127);
578+ printf("%d \n",(int)CosTable[192]-127);
579+
580+ while(1);
581+ */
582+
583+ //paper(0);
584+ //ink(0);
585+ hires();
586+
587+ ink(3);
588+
589+
590+ truc=1;
591+
592+
593+
594+
595+ while (1)
596+ {
597+ //printf("(%d.%d,%d.%d) %d (%d,%d) \n",PosX>>8,PosX&255,PosY>>8,PosY&255,PosAngle,DirX,DirY);
598+
599+ //
600+ // Fill the vertical pos table
601+ //
602+ for (i=0;i<40;i++)
603+ {
604+ TableVerticalPos[i]=i*2;
605+ }
606+
607+
608+ //
609+ // Fill the table
610+ //
611+ Raycast();
612+
613+
614+ //
615+ // Display the table
616+ //
617+ ColorDraw=64+truc;
618+ DisplayWall();
619+
620+ DrawMap();
621+
622+ /*
623+ // Get a value between 0 and 64
624+ // 100-64 => 36
625+ LY1=CosTable[LA1]>>2;
626+ RY1=CosTable[LA2]>>2;
627+
628+ LA1+=1;
629+ LA2+=2;
630+
631+ //ColorDraw=64+1+2+4+8+16+32;
632+ ColorDraw=64+truc;
633+ DisplayWall();
634+
635+ truc=truc<<1;
636+ if (truc==64)
637+ {
638+ truc=1;
639+ }
640+ */
641+
642+
643+ //
644+ // Handle player movement.
645+ // Update angle and coordinates
646+ //
647+ switch (get()) // key
648+ {
649+ case 8: // gauche => tourne gauche
650+ PosAngle+=16;
651+ DirX=((int)(CosTable[(PosAngle)&255]) -127);
652+ DirY=((int)(CosTable[(PosAngle+64)&255])-127);
653+
654+ //DirX=DirX>>1;
655+ //DirY=DirY>>1;
656+ break;
657+
658+ case 9: // droite => tourne droite
659+ PosAngle-=16;
660+ DirX=((int)(CosTable[(PosAngle)&255]) -127);
661+ DirY=((int)(CosTable[(PosAngle+64)&255])-127);
662+
663+ //DirX=DirX>>1;
664+ //DirY=DirY>>1;
665+ break;
666+
667+ case 10: // bas => recule
668+ PosX-=DirX;
669+ PosY-=DirY;
670+ break;
671+
672+ case 11: // haut => avance
673+ PosX+=DirX;
674+ PosY+=DirY;
675+ break;
676+ }
677+
678+ /*
679+ ColorDraw=64;
680+ DisplayWall();
681+ */
682+ }
683+}
684+
685+
686+
687+
688+
689+
690+
691+
--- users/dbug/tests/Raycast/costable.s (nonexistent)
+++ users/dbug/tests/Raycast/costable.s (revision 1538)
@@ -0,0 +1,260 @@
1+
2+; Non signed values, from 0 to 255
3+_CosTable
4+ .byt 254
5+ .byt 253
6+ .byt 253
7+ .byt 253
8+ .byt 253
9+ .byt 253
10+ .byt 252
11+ .byt 252
12+ .byt 251
13+ .byt 250
14+ .byt 250
15+ .byt 249
16+ .byt 248
17+ .byt 247
18+ .byt 246
19+ .byt 245
20+ .byt 244
21+ .byt 243
22+ .byt 241
23+ .byt 240
24+ .byt 239
25+ .byt 237
26+ .byt 235
27+ .byt 234
28+ .byt 232
29+ .byt 230
30+ .byt 229
31+ .byt 227
32+ .byt 225
33+ .byt 223
34+ .byt 221
35+ .byt 218
36+ .byt 216
37+ .byt 214
38+ .byt 212
39+ .byt 209
40+ .byt 207
41+ .byt 205
42+ .byt 202
43+ .byt 200
44+ .byt 197
45+ .byt 194
46+ .byt 192
47+ .byt 189
48+ .byt 186
49+ .byt 184
50+ .byt 181
51+ .byt 178
52+ .byt 175
53+ .byt 172
54+ .byt 169
55+ .byt 166
56+ .byt 163
57+ .byt 160
58+ .byt 157
59+ .byt 154
60+ .byt 151
61+ .byt 148
62+ .byt 145
63+ .byt 142
64+ .byt 139
65+ .byt 136
66+ .byt 133
67+ .byt 130
68+ .byt 127
69+ .byt 124
70+ .byt 121
71+ .byt 118
72+ .byt 115
73+ .byt 112
74+ .byt 109
75+ .byt 106
76+ .byt 103
77+ .byt 100
78+ .byt 97
79+ .byt 94
80+ .byt 91
81+ .byt 88
82+ .byt 85
83+ .byt 82
84+ .byt 79
85+ .byt 76
86+ .byt 73
87+ .byt 70
88+ .byt 68
89+ .byt 65
90+ .byt 62
91+ .byt 60
92+ .byt 57
93+ .byt 54
94+ .byt 52
95+ .byt 49
96+ .byt 47
97+ .byt 45
98+ .byt 42
99+ .byt 40
100+ .byt 38
101+ .byt 36
102+ .byt 33
103+ .byt 31
104+ .byt 29
105+ .byt 27
106+ .byt 25
107+ .byt 24
108+ .byt 22
109+ .byt 20
110+ .byt 19
111+ .byt 17
112+ .byt 15
113+ .byt 14
114+ .byt 13
115+ .byt 11
116+ .byt 10
117+ .byt 9
118+ .byt 8
119+ .byt 7
120+ .byt 6
121+ .byt 5
122+ .byt 4
123+ .byt 4
124+ .byt 3
125+ .byt 2
126+ .byt 2
127+ .byt 1
128+ .byt 1
129+ .byt 1
130+ .byt 1
131+ .byt 1
132+ .byt 0
133+ .byt 1
134+ .byt 1
135+ .byt 1
136+ .byt 1
137+ .byt 1
138+ .byt 2
139+ .byt 2
140+ .byt 3
141+ .byt 4
142+ .byt 4
143+ .byt 5
144+ .byt 6
145+ .byt 7
146+ .byt 8
147+ .byt 9
148+ .byt 10
149+ .byt 11
150+ .byt 13
151+ .byt 14
152+ .byt 15
153+ .byt 17
154+ .byt 19
155+ .byt 20
156+ .byt 22
157+ .byt 24
158+ .byt 25
159+ .byt 27
160+ .byt 29
161+ .byt 31
162+ .byt 33
163+ .byt 36
164+ .byt 38
165+ .byt 40
166+ .byt 42
167+ .byt 45
168+ .byt 47
169+ .byt 49
170+ .byt 52
171+ .byt 54
172+ .byt 57
173+ .byt 60
174+ .byt 62
175+ .byt 65
176+ .byt 68
177+ .byt 70
178+ .byt 73
179+ .byt 76
180+ .byt 79
181+ .byt 82
182+ .byt 85
183+ .byt 88
184+ .byt 91
185+ .byt 94
186+ .byt 97
187+ .byt 100
188+ .byt 103
189+ .byt 106
190+ .byt 109
191+ .byt 112
192+ .byt 115
193+ .byt 118
194+ .byt 121
195+ .byt 124
196+ .byt 127
197+ .byt 130
198+ .byt 133
199+ .byt 136
200+ .byt 139
201+ .byt 142
202+ .byt 145
203+ .byt 148
204+ .byt 151
205+ .byt 154
206+ .byt 157
207+ .byt 160
208+ .byt 163
209+ .byt 166
210+ .byt 169
211+ .byt 172
212+ .byt 175
213+ .byt 178
214+ .byt 181
215+ .byt 184
216+ .byt 186
217+ .byt 189
218+ .byt 192
219+ .byt 194
220+ .byt 197
221+ .byt 200
222+ .byt 202
223+ .byt 205
224+ .byt 207
225+ .byt 209
226+ .byt 212
227+ .byt 214
228+ .byt 216
229+ .byt 218
230+ .byt 221
231+ .byt 223
232+ .byt 225
233+ .byt 227
234+ .byt 229
235+ .byt 230
236+ .byt 232
237+ .byt 234
238+ .byt 235
239+ .byt 237
240+ .byt 239
241+ .byt 240
242+ .byt 241
243+ .byt 243
244+ .byt 244
245+ .byt 245
246+ .byt 246
247+ .byt 247
248+ .byt 248
249+ .byt 249
250+ .byt 250
251+ .byt 250
252+ .byt 251
253+ .byt 252
254+ .byt 252
255+ .byt 253
256+ .byt 253
257+ .byt 253
258+ .byt 253
259+ .byt 253
260+
--- users/dbug/tests/Raycast/gencode.s (nonexistent)
+++ users/dbug/tests/Raycast/gencode.s (revision 1538)
@@ -0,0 +1,813 @@
1+
2+_DrawColumn
3+ sta $a000+0,x
4+ sta $a000+7960,x
5+ sta $a000+40,x
6+ sta $a000+7920,x
7+ sta $a000+80,x
8+ sta $a000+7880,x
9+ sta $a000+120,x
10+ sta $a000+7840,x
11+ sta $a000+160,x
12+ sta $a000+7800,x
13+ sta $a000+200,x
14+ sta $a000+7760,x
15+ sta $a000+240,x
16+ sta $a000+7720,x
17+ sta $a000+280,x
18+ sta $a000+7680,x
19+ sta $a000+320,x
20+ sta $a000+7640,x
21+ sta $a000+360,x
22+ sta $a000+7600,x
23+ sta $a000+400,x
24+ sta $a000+7560,x
25+ sta $a000+440,x
26+ sta $a000+7520,x
27+ sta $a000+480,x
28+ sta $a000+7480,x
29+ sta $a000+520,x
30+ sta $a000+7440,x
31+ sta $a000+560,x
32+ sta $a000+7400,x
33+ sta $a000+600,x
34+ sta $a000+7360,x
35+ sta $a000+640,x
36+ sta $a000+7320,x
37+ sta $a000+680,x
38+ sta $a000+7280,x
39+ sta $a000+720,x
40+ sta $a000+7240,x
41+ sta $a000+760,x
42+ sta $a000+7200,x
43+ sta $a000+800,x
44+ sta $a000+7160,x
45+ sta $a000+840,x
46+ sta $a000+7120,x
47+ sta $a000+880,x
48+ sta $a000+7080,x
49+ sta $a000+920,x
50+ sta $a000+7040,x
51+ sta $a000+960,x
52+ sta $a000+7000,x
53+ sta $a000+1000,x
54+ sta $a000+6960,x
55+ sta $a000+1040,x
56+ sta $a000+6920,x
57+ sta $a000+1080,x
58+ sta $a000+6880,x
59+ sta $a000+1120,x
60+ sta $a000+6840,x
61+ sta $a000+1160,x
62+ sta $a000+6800,x
63+ sta $a000+1200,x
64+ sta $a000+6760,x
65+ sta $a000+1240,x
66+ sta $a000+6720,x
67+ sta $a000+1280,x
68+ sta $a000+6680,x
69+ sta $a000+1320,x
70+ sta $a000+6640,x
71+ sta $a000+1360,x
72+ sta $a000+6600,x
73+ sta $a000+1400,x
74+ sta $a000+6560,x
75+ sta $a000+1440,x
76+ sta $a000+6520,x
77+ sta $a000+1480,x
78+ sta $a000+6480,x
79+ sta $a000+1520,x
80+ sta $a000+6440,x
81+ sta $a000+1560,x
82+ sta $a000+6400,x
83+ sta $a000+1600,x
84+ sta $a000+6360,x
85+ sta $a000+1640,x
86+ sta $a000+6320,x
87+ sta $a000+1680,x
88+ sta $a000+6280,x
89+ sta $a000+1720,x
90+ sta $a000+6240,x
91+ sta $a000+1760,x
92+ sta $a000+6200,x
93+ sta $a000+1800,x
94+ sta $a000+6160,x
95+ sta $a000+1840,x
96+ sta $a000+6120,x
97+ sta $a000+1880,x
98+ sta $a000+6080,x
99+ sta $a000+1920,x
100+ sta $a000+6040,x
101+ sta $a000+1960,x
102+ sta $a000+6000,x
103+ sta $a000+2000,x
104+ sta $a000+5960,x
105+ sta $a000+2040,x
106+ sta $a000+5920,x
107+ sta $a000+2080,x
108+ sta $a000+5880,x
109+ sta $a000+2120,x
110+ sta $a000+5840,x
111+ sta $a000+2160,x
112+ sta $a000+5800,x
113+ sta $a000+2200,x
114+ sta $a000+5760,x
115+ sta $a000+2240,x
116+ sta $a000+5720,x
117+ sta $a000+2280,x
118+ sta $a000+5680,x
119+ sta $a000+2320,x
120+ sta $a000+5640,x
121+ sta $a000+2360,x
122+ sta $a000+5600,x
123+ sta $a000+2400,x
124+ sta $a000+5560,x
125+ sta $a000+2440,x
126+ sta $a000+5520,x
127+ sta $a000+2480,x
128+ sta $a000+5480,x
129+ sta $a000+2520,x
130+ sta $a000+5440,x
131+ sta $a000+2560,x
132+ sta $a000+5400,x
133+ sta $a000+2600,x
134+ sta $a000+5360,x
135+ sta $a000+2640,x
136+ sta $a000+5320,x
137+ sta $a000+2680,x
138+ sta $a000+5280,x
139+ sta $a000+2720,x
140+ sta $a000+5240,x
141+ sta $a000+2760,x
142+ sta $a000+5200,x
143+ sta $a000+2800,x
144+ sta $a000+5160,x
145+ sta $a000+2840,x
146+ sta $a000+5120,x
147+ sta $a000+2880,x
148+ sta $a000+5080,x
149+ sta $a000+2920,x
150+ sta $a000+5040,x
151+ sta $a000+2960,x
152+ sta $a000+5000,x
153+ sta $a000+3000,x
154+ sta $a000+4960,x
155+ sta $a000+3040,x
156+ sta $a000+4920,x
157+ sta $a000+3080,x
158+ sta $a000+4880,x
159+ sta $a000+3120,x
160+ sta $a000+4840,x
161+ sta $a000+3160,x
162+ sta $a000+4800,x
163+ sta $a000+3200,x
164+ sta $a000+4760,x
165+ sta $a000+3240,x
166+ sta $a000+4720,x
167+ sta $a000+3280,x
168+ sta $a000+4680,x
169+ sta $a000+3320,x
170+ sta $a000+4640,x
171+ sta $a000+3360,x
172+ sta $a000+4600,x
173+ sta $a000+3400,x
174+ sta $a000+4560,x
175+ sta $a000+3440,x
176+ sta $a000+4520,x
177+ sta $a000+3480,x
178+ sta $a000+4480,x
179+ sta $a000+3520,x
180+ sta $a000+4440,x
181+ sta $a000+3560,x
182+ sta $a000+4400,x
183+ sta $a000+3600,x
184+ sta $a000+4360,x
185+ sta $a000+3640,x
186+ sta $a000+4320,x
187+ sta $a000+3680,x
188+ sta $a000+4280,x
189+ sta $a000+3720,x
190+ sta $a000+4240,x
191+ sta $a000+3760,x
192+ sta $a000+4200,x
193+ sta $a000+3800,x
194+ sta $a000+4160,x
195+ sta $a000+3840,x
196+ sta $a000+4120,x
197+ sta $a000+3880,x
198+ sta $a000+4080,x
199+ sta $a000+3920,x
200+ sta $a000+4040,x
201+ sta $a000+3960,x
202+ sta $a000+4000,x
203+ rts
204+_EraseColumn
205+ sta $a000+4000,x
206+ sta $a000+3960,x
207+ sta $a000+3960,x
208+ sta $a000+4000,x
209+ sta $a000+3920,x
210+ sta $a000+4040,x
211+ sta $a000+3880,x
212+ sta $a000+4080,x
213+ sta $a000+3840,x
214+ sta $a000+4120,x
215+ sta $a000+3800,x
216+ sta $a000+4160,x
217+ sta $a000+3760,x
218+ sta $a000+4200,x
219+ sta $a000+3720,x
220+ sta $a000+4240,x
221+ sta $a000+3680,x
222+ sta $a000+4280,x
223+ sta $a000+3640,x
224+ sta $a000+4320,x
225+ sta $a000+3600,x
226+ sta $a000+4360,x
227+ sta $a000+3560,x
228+ sta $a000+4400,x
229+ sta $a000+3520,x
230+ sta $a000+4440,x
231+ sta $a000+3480,x
232+ sta $a000+4480,x
233+ sta $a000+3440,x
234+ sta $a000+4520,x
235+ sta $a000+3400,x
236+ sta $a000+4560,x
237+ sta $a000+3360,x
238+ sta $a000+4600,x
239+ sta $a000+3320,x
240+ sta $a000+4640,x
241+ sta $a000+3280,x
242+ sta $a000+4680,x
243+ sta $a000+3240,x
244+ sta $a000+4720,x
245+ sta $a000+3200,x
246+ sta $a000+4760,x
247+ sta $a000+3160,x
248+ sta $a000+4800,x
249+ sta $a000+3120,x
250+ sta $a000+4840,x
251+ sta $a000+3080,x
252+ sta $a000+4880,x
253+ sta $a000+3040,x
254+ sta $a000+4920,x
255+ sta $a000+3000,x
256+ sta $a000+4960,x
257+ sta $a000+2960,x
258+ sta $a000+5000,x
259+ sta $a000+2920,x
260+ sta $a000+5040,x
261+ sta $a000+2880,x
262+ sta $a000+5080,x
263+ sta $a000+2840,x
264+ sta $a000+5120,x
265+ sta $a000+2800,x
266+ sta $a000+5160,x
267+ sta $a000+2760,x
268+ sta $a000+5200,x
269+ sta $a000+2720,x
270+ sta $a000+5240,x
271+ sta $a000+2680,x
272+ sta $a000+5280,x
273+ sta $a000+2640,x
274+ sta $a000+5320,x
275+ sta $a000+2600,x
276+ sta $a000+5360,x
277+ sta $a000+2560,x
278+ sta $a000+5400,x
279+ sta $a000+2520,x
280+ sta $a000+5440,x
281+ sta $a000+2480,x
282+ sta $a000+5480,x
283+ sta $a000+2440,x
284+ sta $a000+5520,x
285+ sta $a000+2400,x
286+ sta $a000+5560,x
287+ sta $a000+2360,x
288+ sta $a000+5600,x
289+ sta $a000+2320,x
290+ sta $a000+5640,x
291+ sta $a000+2280,x
292+ sta $a000+5680,x
293+ sta $a000+2240,x
294+ sta $a000+5720,x
295+ sta $a000+2200,x
296+ sta $a000+5760,x
297+ sta $a000+2160,x
298+ sta $a000+5800,x
299+ sta $a000+2120,x
300+ sta $a000+5840,x
301+ sta $a000+2080,x
302+ sta $a000+5880,x
303+ sta $a000+2040,x
304+ sta $a000+5920,x
305+ sta $a000+2000,x
306+ sta $a000+5960,x
307+ sta $a000+1960,x
308+ sta $a000+6000,x
309+ sta $a000+1920,x
310+ sta $a000+6040,x
311+ sta $a000+1880,x
312+ sta $a000+6080,x
313+ sta $a000+1840,x
314+ sta $a000+6120,x
315+ sta $a000+1800,x
316+ sta $a000+6160,x
317+ sta $a000+1760,x
318+ sta $a000+6200,x
319+ sta $a000+1720,x
320+ sta $a000+6240,x
321+ sta $a000+1680,x
322+ sta $a000+6280,x
323+ sta $a000+1640,x
324+ sta $a000+6320,x
325+ sta $a000+1600,x
326+ sta $a000+6360,x
327+ sta $a000+1560,x
328+ sta $a000+6400,x
329+ sta $a000+1520,x
330+ sta $a000+6440,x
331+ sta $a000+1480,x
332+ sta $a000+6480,x
333+ sta $a000+1440,x
334+ sta $a000+6520,x
335+ sta $a000+1400,x
336+ sta $a000+6560,x
337+ sta $a000+1360,x
338+ sta $a000+6600,x
339+ sta $a000+1320,x
340+ sta $a000+6640,x
341+ sta $a000+1280,x
342+ sta $a000+6680,x
343+ sta $a000+1240,x
344+ sta $a000+6720,x
345+ sta $a000+1200,x
346+ sta $a000+6760,x
347+ sta $a000+1160,x
348+ sta $a000+6800,x
349+ sta $a000+1120,x
350+ sta $a000+6840,x
351+ sta $a000+1080,x
352+ sta $a000+6880,x
353+ sta $a000+1040,x
354+ sta $a000+6920,x
355+ sta $a000+1000,x
356+ sta $a000+6960,x
357+ sta $a000+960,x
358+ sta $a000+7000,x
359+ sta $a000+920,x
360+ sta $a000+7040,x
361+ sta $a000+880,x
362+ sta $a000+7080,x
363+ sta $a000+840,x
364+ sta $a000+7120,x
365+ sta $a000+800,x
366+ sta $a000+7160,x
367+ sta $a000+760,x
368+ sta $a000+7200,x
369+ sta $a000+720,x
370+ sta $a000+7240,x
371+ sta $a000+680,x
372+ sta $a000+7280,x
373+ sta $a000+640,x
374+ sta $a000+7320,x
375+ sta $a000+600,x
376+ sta $a000+7360,x
377+ sta $a000+560,x
378+ sta $a000+7400,x
379+ sta $a000+520,x
380+ sta $a000+7440,x
381+ sta $a000+480,x
382+ sta $a000+7480,x
383+ sta $a000+440,x
384+ sta $a000+7520,x
385+ sta $a000+400,x
386+ sta $a000+7560,x
387+ sta $a000+360,x
388+ sta $a000+7600,x
389+ sta $a000+320,x
390+ sta $a000+7640,x
391+ sta $a000+280,x
392+ sta $a000+7680,x
393+ sta $a000+240,x
394+ sta $a000+7720,x
395+ sta $a000+200,x
396+ sta $a000+7760,x
397+ sta $a000+160,x
398+ sta $a000+7800,x
399+ sta $a000+120,x
400+ sta $a000+7840,x
401+ sta $a000+80,x
402+ sta $a000+7880,x
403+ sta $a000+40,x
404+ sta $a000+7920,x
405+ rts
406+
407+
408+
409+_TableMul6Low
410+ .byt 0
411+ .byt 6
412+ .byt 12
413+ .byt 18
414+ .byt 24
415+ .byt 30
416+ .byt 36
417+ .byt 42
418+ .byt 48
419+ .byt 54
420+ .byt 60
421+ .byt 66
422+ .byt 72
423+ .byt 78
424+ .byt 84
425+ .byt 90
426+ .byt 96
427+ .byt 102
428+ .byt 108
429+ .byt 114
430+ .byt 120
431+ .byt 126
432+ .byt 132
433+ .byt 138
434+ .byt 144
435+ .byt 150
436+ .byt 156
437+ .byt 162
438+ .byt 168
439+ .byt 174
440+ .byt 180
441+ .byt 186
442+ .byt 192
443+ .byt 198
444+ .byt 204
445+ .byt 210
446+ .byt 216
447+ .byt 222
448+ .byt 228
449+ .byt 234
450+ .byt 240
451+ .byt 246
452+ .byt 252
453+ .byt 2
454+ .byt 8
455+ .byt 14
456+ .byt 20
457+ .byt 26
458+ .byt 32
459+ .byt 38
460+ .byt 44
461+ .byt 50
462+ .byt 56
463+ .byt 62
464+ .byt 68
465+ .byt 74
466+ .byt 80
467+ .byt 86
468+ .byt 92
469+ .byt 98
470+ .byt 104
471+ .byt 110
472+ .byt 116
473+ .byt 122
474+ .byt 128
475+ .byt 134
476+ .byt 140
477+ .byt 146
478+ .byt 152
479+ .byt 158
480+ .byt 164
481+ .byt 170
482+ .byt 176
483+ .byt 182
484+ .byt 188
485+ .byt 194
486+ .byt 200
487+ .byt 206
488+ .byt 212
489+ .byt 218
490+ .byt 224
491+ .byt 230
492+ .byt 236
493+ .byt 242
494+ .byt 248
495+ .byt 254
496+ .byt 4
497+ .byt 10
498+ .byt 16
499+ .byt 22
500+ .byt 28
501+ .byt 34
502+ .byt 40
503+ .byt 46
504+ .byt 52
505+ .byt 58
506+ .byt 64
507+ .byt 70
508+ .byt 76
509+ .byt 82
510+ .byt 88
511+ .byt 94
512+ .byt 100
513+ .byt 106
514+ .byt 112
515+ .byt 118
516+ .byt 124
517+ .byt 130
518+ .byt 136
519+ .byt 142
520+ .byt 148
521+ .byt 154
522+ .byt 160
523+ .byt 166
524+ .byt 172
525+ .byt 178
526+ .byt 184
527+ .byt 190
528+ .byt 196
529+ .byt 202
530+ .byt 208
531+ .byt 214
532+ .byt 220
533+ .byt 226
534+ .byt 232
535+ .byt 238
536+ .byt 244
537+ .byt 250
538+ .byt 0
539+ .byt 6
540+ .byt 12
541+ .byt 18
542+ .byt 24
543+ .byt 30
544+ .byt 36
545+ .byt 42
546+ .byt 48
547+ .byt 54
548+ .byt 60
549+ .byt 66
550+ .byt 72
551+ .byt 78
552+ .byt 84
553+ .byt 90
554+ .byt 96
555+ .byt 102
556+ .byt 108
557+ .byt 114
558+ .byt 120
559+ .byt 126
560+ .byt 132
561+ .byt 138
562+ .byt 144
563+ .byt 150
564+ .byt 156
565+ .byt 162
566+ .byt 168
567+ .byt 174
568+ .byt 180
569+ .byt 186
570+ .byt 192
571+ .byt 198
572+ .byt 204
573+ .byt 210
574+ .byt 216
575+ .byt 222
576+ .byt 228
577+ .byt 234
578+ .byt 240
579+ .byt 246
580+ .byt 252
581+ .byt 2
582+ .byt 8
583+ .byt 14
584+ .byt 20
585+ .byt 26
586+ .byt 32
587+ .byt 38
588+ .byt 44
589+ .byt 50
590+ .byt 56
591+ .byt 62
592+ .byt 68
593+ .byt 74
594+ .byt 80
595+ .byt 86
596+ .byt 92
597+ .byt 98
598+ .byt 104
599+ .byt 110
600+ .byt 116
601+ .byt 122
602+ .byt 128
603+ .byt 134
604+ .byt 140
605+ .byt 146
606+ .byt 152
607+ .byt 158
608+ .byt 164
609+ .byt 170
610+
611+
612+
613+_TableMul6High
614+ .byt 0
615+ .byt 0
616+ .byt 0
617+ .byt 0
618+ .byt 0
619+ .byt 0
620+ .byt 0
621+ .byt 0
622+ .byt 0
623+ .byt 0
624+ .byt 0
625+ .byt 0
626+ .byt 0
627+ .byt 0
628+ .byt 0
629+ .byt 0
630+ .byt 0
631+ .byt 0
632+ .byt 0
633+ .byt 0
634+ .byt 0
635+ .byt 0
636+ .byt 0
637+ .byt 0
638+ .byt 0
639+ .byt 0
640+ .byt 0
641+ .byt 0
642+ .byt 0
643+ .byt 0
644+ .byt 0
645+ .byt 0
646+ .byt 0
647+ .byt 0
648+ .byt 0
649+ .byt 0
650+ .byt 0
651+ .byt 0
652+ .byt 0
653+ .byt 0
654+ .byt 0
655+ .byt 0
656+ .byt 0
657+ .byt 1
658+ .byt 1
659+ .byt 1
660+ .byt 1
661+ .byt 1
662+ .byt 1
663+ .byt 1
664+ .byt 1
665+ .byt 1
666+ .byt 1
667+ .byt 1
668+ .byt 1
669+ .byt 1
670+ .byt 1
671+ .byt 1
672+ .byt 1
673+ .byt 1
674+ .byt 1
675+ .byt 1
676+ .byt 1
677+ .byt 1
678+ .byt 1
679+ .byt 1
680+ .byt 1
681+ .byt 1
682+ .byt 1
683+ .byt 1
684+ .byt 1
685+ .byt 1
686+ .byt 1
687+ .byt 1
688+ .byt 1
689+ .byt 1
690+ .byt 1
691+ .byt 1
692+ .byt 1
693+ .byt 1
694+ .byt 1
695+ .byt 1
696+ .byt 1
697+ .byt 1
698+ .byt 1
699+ .byt 1
700+ .byt 2
701+ .byt 2
702+ .byt 2
703+ .byt 2
704+ .byt 2
705+ .byt 2
706+ .byt 2
707+ .byt 2
708+ .byt 2
709+ .byt 2
710+ .byt 2
711+ .byt 2
712+ .byt 2
713+ .byt 2
714+ .byt 2
715+ .byt 2
716+ .byt 2
717+ .byt 2
718+ .byt 2
719+ .byt 2
720+ .byt 2
721+ .byt 2
722+ .byt 2
723+ .byt 2
724+ .byt 2
725+ .byt 2
726+ .byt 2
727+ .byt 2
728+ .byt 2
729+ .byt 2
730+ .byt 2
731+ .byt 2
732+ .byt 2
733+ .byt 2
734+ .byt 2
735+ .byt 2
736+ .byt 2
737+ .byt 2
738+ .byt 2
739+ .byt 2
740+ .byt 2
741+ .byt 2
742+ .byt 3
743+ .byt 3
744+ .byt 3
745+ .byt 3
746+ .byt 3
747+ .byt 3
748+ .byt 3
749+ .byt 3
750+ .byt 3
751+ .byt 3
752+ .byt 3
753+ .byt 3
754+ .byt 3
755+ .byt 3
756+ .byt 3
757+ .byt 3
758+ .byt 3
759+ .byt 3
760+ .byt 3
761+ .byt 3
762+ .byt 3
763+ .byt 3
764+ .byt 3
765+ .byt 3
766+ .byt 3
767+ .byt 3
768+ .byt 3
769+ .byt 3
770+ .byt 3
771+ .byt 3
772+ .byt 3
773+ .byt 3
774+ .byt 3
775+ .byt 3
776+ .byt 3
777+ .byt 3
778+ .byt 3
779+ .byt 3
780+ .byt 3
781+ .byt 3
782+ .byt 3
783+ .byt 3
784+ .byt 3
785+ .byt 4
786+ .byt 4
787+ .byt 4
788+ .byt 4
789+ .byt 4
790+ .byt 4
791+ .byt 4
792+ .byt 4
793+ .byt 4
794+ .byt 4
795+ .byt 4
796+ .byt 4
797+ .byt 4
798+ .byt 4
799+ .byt 4
800+ .byt 4
801+ .byt 4
802+ .byt 4
803+ .byt 4
804+ .byt 4
805+ .byt 4
806+ .byt 4
807+ .byt 4
808+ .byt 4
809+ .byt 4
810+ .byt 4
811+ .byt 4
812+ .byt 4
813+ .byt 4
--- users/dbug/tests/Raycast/osdk_build.bat (nonexistent)
+++ users/dbug/tests/Raycast/osdk_build.bat (revision 1538)
@@ -0,0 +1,35 @@
1+@ECHO OFF
2+
3+
4+::
5+:: Initial check.
6+:: Verify if the SDK is correctly configurated
7+::
8+IF "%OSDK%"=="" GOTO ErCfg
9+
10+
11+::
12+:: Set the build paremeters
13+::
14+CALL osdk_config.bat
15+
16+
17+::
18+:: Launch the compilation of files
19+::
20+CALL %OSDK%\bin\make.bat %OSDKFILE%
21+GOTO End
22+
23+
24+::
25+:: Outputs an error message
26+::
27+:ErCfg
28+ECHO == ERROR ==
29+ECHO The Oric SDK was not configured properly
30+ECHO You should have a OSDK environment variable setted to the location of the SDK
31+GOTO End
32+
33+
34+:End
35+pause
\ No newline at end of file
--- users/dbug/tests/Raycast/osdk_config.bat (nonexistent)
+++ users/dbug/tests/Raycast/osdk_config.bat (revision 1538)
@@ -0,0 +1,16 @@
1+@ECHO OFF
2+
3+::
4+:: Set the build paremeters
5+::
6+SET OSDKADDR=$600
7+SET OSDKNAME=WALLS
8+SET OSDKFILE=main costable scroll gencode
9+
10+:: costable
11+::pat_picture pat_font draw
12+
13+
14+
15+
16+
--- users/dbug/tests/Raycast/osdk_execute.bat (nonexistent)
+++ users/dbug/tests/Raycast/osdk_execute.bat (revision 1538)
@@ -0,0 +1,31 @@
1+@ECHO OFF
2+
3+::
4+:: Initial check.
5+:: Verify if the SDK is correctly configurated,
6+::
7+IF "%OSDK%"=="" GOTO ErCfg
8+
9+::
10+:: Set the build paremeters
11+::
12+CALL osdk_config.bat
13+
14+::
15+:: Run the emulator using the common batch
16+::
17+CALL %OSDK%\bin\execute.bat
18+GOTO End
19+
20+::
21+:: Outputs an error message about configuration
22+::
23+:ErCfg
24+ECHO == ERROR ==
25+ECHO The Oric SDK was not configured properly
26+ECHO You should have a OSDK environment variable setted to the location of the SDK
27+ECHO ===========
28+IF "%OSDKBRIEF%"=="" PAUSE
29+GOTO End
30+
31+:End
--- users/dbug/tests/Raycast/osdk_showmap.bat (nonexistent)
+++ users/dbug/tests/Raycast/osdk_showmap.bat (revision 1538)
@@ -0,0 +1,39 @@
1+@ECHO OFF
2+
3+::
4+:: Initial check.
5+:: Verify if the SDK is correctly configurated
6+::
7+IF "%OSDK%"=="" GOTO ErCfg
8+
9+::
10+:: Set the build paremeters
11+::
12+CALL osdk_config.bat
13+
14+::
15+:: Generate the HTML file
16+::
17+%OSDK%\bin\MemMap.exe build\symbols build\map.htm %OSDKNAME% %OSDK%\documentation\documentation.css
18+
19+::
20+:: Display the HTML file
21+::
22+explorer build\map.htm
23+
24+GOTO End
25+
26+
27+::
28+:: Outputs an error message
29+::
30+:ErCfg
31+ECHO == ERROR ==
32+ECHO The Oric SDK was not configured properly
33+ECHO You should have a OSDK environment variable setted to the location of the SDK
34+pause
35+GOTO End
36+
37+
38+:End
39+
--- users/dbug/tests/Raycast/scroll.s (nonexistent)
+++ users/dbug/tests/Raycast/scroll.s (revision 1538)
@@ -0,0 +1,117 @@
1+
2+
3+
4+
5+
6+
7+Accu
8+ .byt 0
9+
10+_DrawCompleteColumn
11+ ;jmp _DrawCompleteColumn
12+ ;brk
13+ ;.byt $a0
14+
15+ ldy _YPos
16+ clc
17+ lda _TableMul6Low,y
18+ adc #<_DrawColumn
19+ sta modif_draw+1
20+
21+ lda _TableMul6High,y
22+ adc #>_DrawColumn
23+ sta modif_draw+2
24+
25+ ;lda #64+128+1+4+16 ;_ColorDraw ;#64+1+2+4+8+16+32
26+ lda _ColorDraw
27+ ldx _XPos
28+
29+modif_draw
30+ jsr _DrawColumn
31+
32+
33+
34+
35+ sec
36+ lda #100
37+ sbc _YPos
38+ tay
39+ clc
40+ lda _TableMul6Low,y
41+ adc #<_EraseColumn
42+ sta modif_erase+1
43+
44+ lda _TableMul6High,y
45+ adc #>_EraseColumn
46+ sta modif_erase+2
47+
48+ lda #64+1+2+4+8+16+32+128
49+ ldx _XPos
50+
51+modif_erase
52+ jsr _EraseColumn
53+
54+ ;ldx _XPos
55+ ;jsr _DrawColumn
56+ rts
57+
58+
59+
60+
61+
62+_Labyrinthe
63+ .byt 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
64+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
65+ .byt 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1
66+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
67+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
68+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
69+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
70+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
71+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
72+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
73+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
74+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
75+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
76+ .byt 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1
77+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
78+ .byt 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
79+
80+_Labyrinthe2
81+ .byt 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
82+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
83+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
84+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
85+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
86+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
87+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
88+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
89+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
90+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
91+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
92+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
93+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
94+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
95+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
96+ .byt 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
97+
98+
99+_Labyrinthe1
100+ .byt 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
101+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
102+ .byt 1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1
103+ .byt 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1
104+ .byt 1,0,1,0,1,1,0,0,0,0,0,1,0,1,0,1
105+ .byt 1,0,1,0,1,0,0,0,0,0,0,1,0,1,0,1
106+ .byt 1,0,0,0,1,0,0,1,1,1,1,1,0,0,0,1
107+ .byt 1,0,1,0,1,0,0,1,0,0,0,0,0,1,0,1
108+ .byt 1,0,1,0,1,0,0,1,0,1,1,1,1,1,0,1
109+ .byt 1,0,1,0,1,0,0,1,0,1,0,1,0,1,0,1
110+ .byt 1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,1
111+ .byt 1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1
112+ .byt 1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1
113+ .byt 1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1
114+ .byt 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
115+ .byt 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
116+
117+
Show on old repository browser