/[projet1]/public/oric/routines/rasterization/linebench/Main.c
Defence Force logotype

Diff of /public/oric/routines/rasterization/linebench/Main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 224 by dbug, Tue Feb 2 20:17:28 2010 UTC revision 261 by thrust26, Mon Feb 8 14:01:57 2010 UTC
# Line 27  Line 27 
27    
28  // ============================================================================  // ============================================================================
29  //  //
30  //                                                                      Externals  //                                                                      Externals
31  //  //
32  // ============================================================================  // ============================================================================
33    
# Line 36  Line 36 
36  //  //
37  // ===== Display.s =====  // ===== Display.s =====
38  //  //
39  extern unsigned char CurrentPixelX;             // Coordinate X of edited pixel/byte  extern unsigned char CurrentPixelX;             // Coordinate X of edited pixel/byte
40  extern unsigned char CurrentPixelY;             // Coordinate Y of edited pixel/byte  extern unsigned char CurrentPixelY;             // Coordinate Y of edited pixel/byte
41    
42  extern unsigned char OtherPixelX;               // Coordinate X of other edited pixel/byte  extern unsigned char OtherPixelX;               // Coordinate X of other edited pixel/byte
43  extern unsigned char OtherPixelY;               // Coordinate Y of other edited pixel/byte  extern unsigned char OtherPixelY;               // Coordinate Y of other edited pixel/byte
44    
45    
46  //  //
# Line 67  extern int LargeY; Line 67  extern int LargeY;
67    
68  void test0()  void test0()
69  {  {
70          int i;          int i;
71            
72          // Testing all positions from top left          // Testing all positions from top left
73          for (i=0;i<=239;i++)          for (i=0;i<=239;i++)
74          {          {
75                  CurrentPixelX=0;                  CurrentPixelX=0;
76                  CurrentPixelY=0;                  CurrentPixelY=0;
77                  OtherPixelX=i;                  OtherPixelX=i;
78                  OtherPixelY=199;                  OtherPixelY=199;
79    
80                  DrawLine8();                  DrawLine8();
81                  //DrawLine8_toptobottomandlefttoright();                  //DrawLine8_toptobottomandlefttoright();
82          }          }
83            
84          /*          /*
85          // TopLeft to BottomRight                        // TopLeft to BottomRight
86          CurrentPixelX=0;          CurrentPixelX=0;
87          CurrentPixelY=0;          CurrentPixelY=0;
88          OtherPixelX=239;          OtherPixelX=239;
89          OtherPixelY=199;          OtherPixelY=199;
90          */          */
91    
92          /*          /*
93          // TopLeft to BottomRight - diagonal          // TopLeft to BottomRight - diagonal
94          CurrentPixelX=1;          CurrentPixelX=1;
95          CurrentPixelY=0;          CurrentPixelY=0;
96          OtherPixelX=199;          OtherPixelX=199;
97          OtherPixelY=199;          OtherPixelY=199;
98          */          */
99            
100          /*          /*
101          // BottomLeft to TopRight          // BottomLeft to TopRight
102          CurrentPixelX=0;          CurrentPixelX=0;
103          CurrentPixelY=199;          CurrentPixelY=199;
104          OtherPixelX=239;          OtherPixelX=239;
105          OtherPixelY=0;          OtherPixelY=0;
106          */          */
107    
108          /*          /*
109          // TopRight to BottomLeft          // TopRight to BottomLeft
110          CurrentPixelX=239;          CurrentPixelX=239;
111          CurrentPixelY=0;          CurrentPixelY=0;
112          OtherPixelX=0;          OtherPixelX=0;
113          OtherPixelY=199;          OtherPixelY=199;
114          */          */
115                    
116          //DrawLine();          //DrawLine();
117          //DrawLine8();          //DrawLine8();
118            
119          while (1);          while (1);
120  }  }
121    
122    
123  void line_mike_8()  void line_mike_8()
124  {  {
125          int i;      int i, j;
126            
127          for (i=0;i<239;i++)      // test correctness:
128          {      /*for (j=0; j<8; j++)
129                  OtherPixelX=i;      {
130                  OtherPixelY=0;          for (i=2; i<=99; i+=5)
131                  CurrentPixelX=239-i;          {
132                  CurrentPixelY=199;              // very horizontal
133                CurrentPixelX   = 160+j;
134                  DrawLine8();              CurrentPixelY   = 100-i;
135          }              OtherPixelX     =  80-j;
136          for (i=0;i<199;i++)              OtherPixelY     = 100+i;
137          {              DrawLine8();
138                  OtherPixelX=0;  
139                  OtherPixelY=i;              // very horizontal
140                  CurrentPixelX=239;              CurrentPixelX   = 160+j;
141                  CurrentPixelY=199-i;              CurrentPixelY   = 100+i;
142                OtherPixelX     =  80-j;
143                  DrawLine8();              OtherPixelY     = 100-i;
144          }              DrawLine8();
145          /*          }
146          for (i=0;i<239;i++)          // vertical
147          {          CurrentPixelX   =  80-j;
148                  CurrentPixelX=i;          CurrentPixelY   =   0;
149                  CurrentPixelY=0;          OtherPixelX     = CurrentPixelX;
150                  OtherPixelX=239-i;          OtherPixelY     = 200;
151                  OtherPixelY=199;          DrawLine8();
152    
153                  DrawLine8();          // vertical
154          }          CurrentPixelX   = 160+j;
155          for (i=0;i<199;i++)          CurrentPixelY   =   0;
156          {          OtherPixelX     = CurrentPixelX;
157                  CurrentPixelX=0;          OtherPixelY     = 200;
158                  CurrentPixelY=i;          DrawLine8();
159                  OtherPixelX=239;  
160                  OtherPixelY=199-i;          for (i=0; i<50; i++)
161            {
162                  DrawLine8();              // vertical
163          }              CurrentPixelX   =   0;
164          */                    CurrentPixelY   = 199;
165                OtherPixelX     = 239;
166                OtherPixelY     = 199;
167                DrawLine8();
168            }
169    
170            // vertical
171            CurrentPixelX   =  80-j;
172            CurrentPixelY   =   0;
173            OtherPixelX     = CurrentPixelX;
174            OtherPixelY     = 200;
175            DrawLine8();
176    
177            // vertical
178            CurrentPixelX   = 160+j;
179            CurrentPixelY   =   0;
180            OtherPixelX     = CurrentPixelX;
181            OtherPixelY     = 200;
182            DrawLine8();
183    
184            for (i=2; i<=99; i+=5)
185            {
186                // very horizontal
187                CurrentPixelX   = 160+j;
188                CurrentPixelY   = 100-i;
189                OtherPixelX     =  80-j;
190                OtherPixelY     = 100+i;
191                DrawLine8();
192    
193                // very horizontal
194                CurrentPixelX   = 160+j;
195                CurrentPixelY   = 100+i;
196                OtherPixelX     =  80-j;
197                OtherPixelY     = 100-i;
198                DrawLine8();
199            }
200        }*/
201    
202        // benchmark
203        for (i=0;i<239;i++)
204        {
205            OtherPixelX=i;
206            OtherPixelY=0;
207            CurrentPixelX=239-i;
208            CurrentPixelY=199;
209            DrawLine8();
210        }
211        for (i=198;i>=0;i--)
212        {
213            OtherPixelX=0;
214            OtherPixelY=i;
215            CurrentPixelX=239;
216            CurrentPixelY=199-i;
217            DrawLine8();
218        }
219  }  }
220    
221    
222  void line_mike()  void line_mike()
223  {  {
224          int i;          int i;
225    
226            /*
227                    CurrentPixelX=0;
228                    CurrentPixelY=0;
229                    OtherPixelX=0;
230                    OtherPixelY=199;
231    
232                    DrawLine();
233                    */
234    
235                    /*
236            while (1)
237            {
238                    LargeX0=0;
239                    LargeY0=0;
240                    LargeX1=239;
241                    LargeY1=199;
242    
243                    DrawClippedLine();
244            }
245            */
246    
247            /*
248            while (1)
249            {
250            for (i=30;i<50;i++)
251            {
252                    LargeX0=i;
253                    LargeY0=0;
254                    LargeX1=239-i;
255                    LargeY1=199;
256    
257                    DrawClippedLine();
258            }
259            }
260            for (i=0;i<199;i++)
261            {
262                    LargeX0=0;
263                    LargeY0=i;
264                    LargeX1=239;
265                    LargeY1=199-i;
266    
267                    DrawClippedLine();
268            }
269            */
270    
271            for (i=0;i<239;i++)
272            {
273                    OtherPixelX=i;
274                    OtherPixelY=0;
275                    CurrentPixelX=239-i;
276                    CurrentPixelY=199;
277    
278                    DrawLine();
279            }
280            for (i=0;i<199;i++)
281            {
282                    OtherPixelX=0;
283                    OtherPixelY=i;
284                    CurrentPixelX=239;
285                    CurrentPixelY=199-i;
286    
287                    DrawLine();
288            }
289            /*
290            for (i=0;i<239;i++)
291            {
292                    CurrentPixelX=i;
293                    CurrentPixelY=0;
294                    OtherPixelX=239-i;
295                    OtherPixelY=199;
296    
297                    DrawLine();
298            }
299            for (i=0;i<199;i++)
300            {
301                    CurrentPixelX=0;
302                    CurrentPixelY=i;
303                    OtherPixelX=239;
304                    OtherPixelY=199-i;
305    
306                    DrawLine();
307            }
308            */
309    
         /*        
                 CurrentPixelX=0;  
                 CurrentPixelY=0;  
                 OtherPixelX=0;  
                 OtherPixelY=199;  
   
                 DrawLine();  
                 */  
   
                 /*  
         while (1)  
         {  
                 LargeX0=0;  
                 LargeY0=0;  
                 LargeX1=239;  
                 LargeY1=199;  
                   
                 DrawClippedLine();                
         }                
         */  
                   
         /*                
         while (1)  
         {  
         for (i=30;i<50;i++)  
         {  
                 LargeX0=i;  
                 LargeY0=0;  
                 LargeX1=239-i;  
                 LargeY1=199;  
                   
                 DrawClippedLine();  
         }  
         }  
         for (i=0;i<199;i++)  
         {  
                 LargeX0=0;  
                 LargeY0=i;  
                 LargeX1=239;  
                 LargeY1=199-i;  
                   
                 DrawClippedLine();  
         }  
         */  
           
         for (i=0;i<239;i++)  
         {  
                 OtherPixelX=i;  
                 OtherPixelY=0;  
                 CurrentPixelX=239-i;  
                 CurrentPixelY=199;  
   
                 DrawLine();  
         }  
         for (i=0;i<199;i++)  
         {  
                 OtherPixelX=0;  
                 OtherPixelY=i;  
                 CurrentPixelX=239;  
                 CurrentPixelY=199-i;  
   
                 DrawLine();  
         }  
         /*  
         for (i=0;i<239;i++)  
         {  
                 CurrentPixelX=i;  
                 CurrentPixelY=0;  
                 OtherPixelX=239-i;  
                 OtherPixelY=199;  
   
                 DrawLine();  
         }  
         for (i=0;i<199;i++)  
         {  
                 CurrentPixelX=0;  
                 CurrentPixelY=i;  
                 OtherPixelX=239;  
                 OtherPixelY=199-i;  
   
                 DrawLine();  
         }  
         */  
           
310  }  }
311    
312    
313  void line_basic()  void line_basic()
314  {  {
315          unsigned char i;          unsigned char i;
316          for (i=0;i<239;i++)          for (i=0;i<239;i++)
317          {          {
318                  curset(i,0,3);                  curset(i,0,3);
319                  draw(239-i-i,199,2);                  draw(239-i-i,199,2);
320          }          }
321          for (i=0;i<199;i++)          for (i=0;i<199;i++)
322          {          {
323                  curset(0,i,3);                  curset(0,i,3);
324                  draw(239,199-i-i,2);                  draw(239,199-i-i,2);
325          }          }
326  }  }
327    
328    
329  void test()  void test()
330  {  {
331          unsigned int delay;          unsigned int delay;
332                    
333          while (1)          while (1)
334          {          {
335                  // Judd routine first                  // Judd routine first
336                  printf("\nMike 8bit: ");                  printf("\nMike 8bit: ");
337                  *(unsigned int*)0x276=0;                  *(unsigned int*)0x276=0;
338                  line_mike_8();                  line_mike_8();
339                  delay=65536-(*(unsigned int*)0x276);                  delay=65536-(*(unsigned int*)0x276);
340                  printf(" duration: %d",delay);                  printf(" duration: %d",delay);
341                  /*                  /*
342                  // Mike routine first                  // Mike routine first
343                  printf("\nMike 16bit: ");                  printf("\nMike 16bit: ");
344                  *(unsigned int*)0x276=0;                  *(unsigned int*)0x276=0;
345                  line_mike();                  line_mike();
346                  delay=65536-(*(unsigned int*)0x276);                  delay=65536-(*(unsigned int*)0x276);
347                  printf(" duration: %d",delay);                  printf(" duration: %d",delay);
348                    
349                  // Basic routine second                  // Basic routine second
350                  printf("\nBasic: ");                  printf("\nBasic: ");
351                  *(unsigned int*)0x276=0;                  *(unsigned int*)0x276=0;
352                  line_basic();                  line_basic();
353                  delay=65536-(*(unsigned int*)0x276);                  delay=65536-(*(unsigned int*)0x276);
354                  printf(" duration: %d",delay);                  printf(" duration: %d",delay);
355                  */                  */
356          }          }
357  }  }
358    
359    
360    
361    
362  void main()  void main()
363  {        {
364          GenerateTables();          GenerateTables();
365          hires();          hires();
366    
367          test();          test();
368          //test0();          //test0();
369  }  }
370    
371    

Legend:
Removed from v.224  
changed lines
  Added in v.261

  ViewVC Help
Powered by ViewVC 1.1.26