home *** CD-ROM | disk | FTP | other *** search
/ Solo Programadores 22 / SOLO_22.iso / disk22 / modosx / 4planos.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-27  |  2.3 KB  |  66 lines

  1. /*▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
  2. ▒▒                                                                         ▒▒
  3. ▒▒  Ejemplo de uso de los planos en MODOX.                                 ▒▒
  4. ▒▒                                                                         ▒▒
  5. ▒▒  1996 Compiler SoftWare                                                 ▒▒
  6. ▒▒                                                                         ▒▒
  7. ▒▒  Creado con Borland C 3.1, pero creo que funcionará con todos los de    ▒▒
  8. ▒▒  Borland a partir de la v2.0, y con Turbo C/C++.                        ▒▒
  9. ▒▒                                                                         ▒▒
  10. ▒▒  Ver COMPILER.NFO                                                       ▒▒
  11. ▒▒                                                                         ▒▒
  12. ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒;-)▒▒▒▒
  13. */
  14.  
  15. #include <stdio.h>
  16. #include "MODOX.H"
  17.  
  18.  
  19. /*   Función principal  */
  20.  
  21.  
  22. void main( )
  23.  {
  24.  unsigned int x;
  25.  
  26.     Set_320x200X();
  27.  
  28.     outportb( 0x3c4, 0x02 );                 /* función seleccionar plano */
  29.     outportb( 0x3c5, 15 );                   /* 1111b = 4 planos */
  30.  
  31. for(x=1 ; x<80 ; x++)                        /* 80 puntos de 4 planos */
  32.    {  
  33.     asm {
  34.                 mov ax, 0xa000
  35.                 mov es, ax
  36.                 mov di, x                    /* offset = x */
  37.                 mov ax, di                   /* color = x */
  38.                 stosb                        /* poner punto */
  39.         }
  40.    }
  41.  
  42.  
  43.     outportb( 0x3c4, 0x02 );                 /* función seleccionar plano */
  44.     outportb( 0x3c5, 5 );                    /* 0101b = planos 1 y 3*/
  45.  
  46. for(x=1 ; x<80 ; x++)                        /* 80 puntos de 2 planos */
  47.    {  
  48.     asm {
  49.                 mov ax, 0xa000
  50.                 mov es, ax
  51.                 mov di, x                 /* offset = x */
  52.                 mov ax, di                /* color = x */
  53.                 add di, 8000              /* linea 100 (le sumamos 80*100)*/
  54.                 stosb                     /* poner punto */
  55.         }
  56.    }
  57.  
  58.  
  59.     asm xor ax, ax
  60.     asm int 16h
  61.     asm mov ax , 3                 
  62.     asm int 10h                               /* volvemos al modo 3 de texto*/
  63.  
  64.  }
  65.  
  66.