• Lunes 6 de Mayo de 2024, 11:30

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - shadowpucci

Páginas: [1]
1
C/C++ / Re: Problema con graphics.h
« en: Viernes 17 de Julio de 2009, 04:23 »
estas usando xp?? a mi me paso que bajo xp no corre la bgi ni las interrupciones 10H de video... tenes que correrlo bajo dosbox o en una maquina con win95-98

2
C/C++ / Re: Problema!
« en: Viernes 10 de Julio de 2009, 02:39 »
no me puse a depurar tu codigo, pero aparentemente tenes el mismo problema que tuve yo.... asi que consulto: estas corriendo bajo winXP/2000 o superior?? yo me volvi loco para ver porque no andaba ni la BGI de borland ni la interrupcion 10 para activar el modo grafico 0x13 y al final era problema del modo grafico que no permite emularse en los win nuevos. Luego probe en un win95 en una maquina del año del traste que encontre en casa y ahi salio andando excelente....


solo un consejo, usa la utilidad para que tu codigo quede prolijo sino es un lio leer eso. Saludos y espero no estar errado, es mi primer aporte a esta comunidad

3
La taberna del BIT / Re: muestrame tu escritorio
« en: Lunes 8 de Junio de 2009, 21:34 »
shadow_rev... excelentes escritorios.... sobre todo lo COLGADO que esta el zeliosoft entre esa cantidad de juegos....


muestro el de la pc 1 del trabajo (oficina)



a la noche subo los de casa :D

4
C/C++ / Re: Utilizacion de memoria de video
« en: Miércoles 3 de Junio de 2009, 20:32 »
Bueno, gracias a un estado gripal hoy en cama estoy divirtiendome con los proyectos de la facultad....

resulta que gracias al tutorial que encontre, arme un programita para testear el modo 13h de video.... muy sencillo y muy basico, pasandole a la memoria de video el dato de la tecla pulsada en el teclado (similarmente ya habia testeado esto en modo texto de la memoria de video y funcionaba, ponia caracteres de cualquier color y fondo, pero da una idea de si el modo funciona).

el programita es
Código: C
  1.  
  2. #include <dos.h>
  3. #include <stdio.h>
  4. #include <conio.h>
  5.  
  6. #define memvideo (unsigned char*) 0xA0000000
  7.  
  8.  
  9.  void modo13h(void)
  10. {
  11.         union REGS r;
  12.  
  13.         r.h.ah=0;
  14.         r.h.al=0x13;
  15.         int86(0x10, &r, &r);
  16. }
  17.  
  18. unsigned char far *DIR_VGA=(unsigned char far *) 0xA0000000;
  19.  
  20. void main(){
  21.  
  22. int a;
  23. modo13h();
  24. for(a=1;a>60000;a++)
  25.     {*(DIR_VGA+a)=getch();}
  26. return;
  27. }
  28.  

y el tema es que no empieza siquiera la aplicacion que me tira el winxp la siguiente pantalla:


luego se cuelga y no me deja volver al IDE para ver donde es que se esta colgando....

alguna sugerencia?? en que le estoy errando???

Gracias!

5
C/C++ / Re: como puedo hacer...
« en: Lunes 1 de Junio de 2009, 17:30 »
Cita de: "tiluca"
Realizar un procedimiento que reciba como entrada las concentraciones de CO2 en el ambiente, medidas a lo largo del mes de Enero, a razón de una toma cada hora, y devuelva en qué momento (día y hora), entre las 10h del día 12 hasta las 15h del día 20, se alcanzó la mayor concentració

me parece que tenes que ver entre las 10 del dia 12 hasta las 15 del dia 20, por lo que no tenes 9 horas por dia, sino que tenes que ver 197 horas seguidas (14hs del 12, 24hs del 13 al 19 y 15hs del 20) pero tan solo almacenar la mayor concentracion, mas la fecha y la hora de esa concentracion, no todas las concentraciones... por lo que guardando una estructura con la fecha, la hora y la concentracion, te sobra... y si los datos estan fuera de tu fecha y tu hora, los descartas y listo

6
C/C++ / Re: Velocidad variable de acceso al LPT
« en: Lunes 1 de Junio de 2009, 17:08 »
Cita de: "Eternal Idol"
Puede ser, bajo XP tu programa de MS-DOS es emulado ... fijate si va bien en Windows 9x o en MS-DOS puro mejor.

Gracias por la velocidad!! igualmente el programa final correra en un pc con ms-dos 6.0 asi que no me preocupo, pense que era un problema de la funcion delay()

una consultita mas, si entra en la oferta... cual puede ser el equivalente de outportb pero que funcione en el dev-c??

7
C/C++ / Velocidad variable de acceso al LPT
« en: Lunes 1 de Junio de 2009, 16:51 »
Buenas, vengo con una consultita sobre un problema que tengo con el LPT

Resulta que yo tengo un dispositivo en el cual mediante LPT envio datos a un hardware (mueve un carro de impresora conectado directamente al puerto LPT con su drive de potencia). Para probar dicho harware arme un programa muy sencillo el cual me da una secuencia de datos. Entre medio de los datos, para meter espacios de tiempo, use la funcion delay(tiempo) y tiempo=1, y resulta que los datos, no solo salen MUCHO mas espaciados que con 1ms, sino que incluso lo hace con una cadencia variable (varia la velocidad con la que se muestran los datos en el puerto)

El programa es el siguiente:

Código: C
  1. //Moviendo el carro en funcion del teclado
  2.  
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <dos.h>
  6. #define base 0x378
  7. #define tiempo 1
  8.  
  9. void main()
  10. {
  11.  int a;
  12.  int b;
  13.  
  14.  clrscr();
  15.  printf("Ingrese la Direccion del movimiento (I o D)");
  16.  outportb(base+2, inport(base+2)&0xDF);//por si el puerto esta bidireccional
  17.  do {
  18.     while(getch()=='d'){
  19.         printf("n ingrese la cantidad de steps=");
  20.         scanf("%d",&a);
  21.         for(b=0;b<a;b++){
  22.             outportb(base,0x01);
  23.             delay(tiempo);
  24.             outportb(base,0x03);
  25.             delay(tiempo);
  26.             outportb(base,0x02);
  27.             delay(tiempo);
  28.             outportb(base,0x06);
  29.             delay(tiempo);
  30.             outportb(base,0x04);
  31.             delay(tiempo);
  32.             outportb(base,0x0C);
  33.             delay(tiempo);
  34.             outportb(base,0x08);
  35.             delay(tiempo);
  36.             outportb(base,0x09);
  37.             delay(tiempo);}
  38.         printf("ok");
  39.         outportb(base,0x00);
  40.     }
  41.     while(getch()=='i'){
  42.         printf("n ingrese la cantidad de steps=");
  43.         scanf("%d",&a);
  44.         for(b=0;b<a;b++){
  45.             outportb(base,0x08);
  46.             delay(tiempo);
  47.             outportb(base,0x0C);
  48.             delay(tiempo);
  49.             outportb(base,0x04);
  50.             delay(tiempo);
  51.             outportb(base,0x06);
  52.             delay(tiempo);
  53.             outportb(base,0x02);
  54.             delay(tiempo);
  55.             outportb(base,0x03);
  56.             delay(tiempo);
  57.             outportb(base,0x01);
  58.             delay(tiempo);}
  59.             outportb(base,0x09);
  60.             delay(tiempo);
  61.         printf("ok");
  62.         outportb(base,0x00);
  63.     }
  64.   }while (getch()!='q');
  65. }
  66.        
  67.  


El programa esta hecho en borlad C corriendo en un PC con Windows XP... Puede que el XP tenga algo que ver en esto?? o es un tema del compilador?? p de la funcion delay(tiempo)??

Valga aclarar que esto no es el programa final... es tan solo algo para probar el hard, por eso esta asi tan rustico

Espero alguien pueda ayudarme

Gracias...

8
C/C++ / Re: Utilizacion de memoria de video
« en: Jueves 28 de Mayo de 2009, 17:15 »
Gracias por la velocidad en la respuesta... ahi estoy mirando lo que me dijiste... solo que con el ingles me peleo bastante  :wacko:  :wacko:  

en medio habia encontrado esto (no me dejaponer links, asi que en google pone GEOCITIES MODO 13H y se encuentra lo que quiero poner, es algo similar pero en español) que me sirvio bastante... pero aun asi sigue sin andar... mas a la tarde subo el codigo de lo que estoy armando a ver si puedo hacerlo andar... el problema que tengo es con el REGS r.. me tira un error al momento de compilar...

En cuanto a lo que me decis de tarjetas graficas nuevas, este programa se va a usar en un 486DX2, asi que, no hay problema de esas compatibilidades...

Ahora tengo que ponerme a trabajar asi que la facu quedara para mas tarde

Muchisimas Gracias!

9
C/C++ / Utilizacion de memoria de video
« en: Jueves 28 de Mayo de 2009, 16:01 »
Buenas... en primer lugar me presento, mi nombre es Matias, soy de Argentina, estudiante de ingenieria electronica, y soy nuevito en esto de programar... Aprendi en la secundaria algo de ASM y Basic para 8051, lo cual me resulto muy interesante... Actualmente en la facultad tenemos las materias de informatica 1 y 2, y luego tecnicas digitales etc etc en la cual usamos C (en el compilador Borland C para ser exacto, pero trato de usar todas librerias ANSI para no perder portabilidad). Vengo siguiendo el foro hara una semana, y encontre muchas informaciones que me han sido utiles, las cuales aprovecho para agradecer!

Bueno, atacando ahora el "problema" (que en realidad es un desasne lo que necesito) que tengo, es el siguiente:

Se manejar la memoria de video en modo texto, accediendo mediante (unsigned char far*) 0xB8000000, usando los bytes de caracter y colores y arme una funcion llamada "imprimi" que la uso en lugar del printf en la primer fase de mi proyecto. la funcion es:
Código: C
  1.  
  2. #define VIDEO (unsigned char far*) 0xB8000000
  3. void imprimir ( char* string , int x , int y, char formato) {
  4.     int a;
  5.     unsigned char far* pvideo;
  6.     pvideo=VIDEO;
  7.     for(a=0; a < (strlen(string)) ; a++){
  8.         *(pvideo+(2*x+(160*y+2*a)))=*(string+a);
  9.     }
  10.     if(formato!=-1){
  11.     for(a=0; a < (strlen(string)) ; a++){
  12.         *(pvideo+(1+(2*x+(160*y+2*a))))=formato;
  13.     }
  14.  
  15.     }
  16.     return;
  17. }
  18.  

 Ahora, resulta que para la aplicacion que estoy armando para la segunda parte del proyecto, me seria util usar la memoria de video pero en modo GRAFICO (al menos asi me dijeron que se llama), es decir, como matrix de pixeles. Es decir, poder armar una funcion similar a esta, en la cual le pase ( int X, int Y, int cantidad de pixeles a pintar,char color). Encontre algo en el foro ( viewtopic.php?f=18&t=37378&p=136145 ), que habla de que el modo grafico se usa la direccion A000h:0000h... pero escribi esa direccion y no me pinta ni un pixel. Aparte no se como es el formato de escritura de dichos pixels (yo mande 0xFF a 16 direcciones y nada....). Creo que posiblemente tenga que cambiar algo en algun registro de la bios, supongo.. (me han dicho algo asi), pero no estoy seguro.

Igual voy a seguir buscando en mi gran amigo google a ver si encuentro algo

Muchas Gracias.

Shadowpucci

Páginas: [1]