• Jueves 18 de Abril de 2024, 21:08

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 - furiouslogic

Páginas: [1]
1
ASM (Ensamblador) / Documentación Funciones Api
« en: Miércoles 13 de Julio de 2005, 01:55 »
Existen varias alternativas sobre donde hallar la mas completa documentacion sobre funciones API.

La primera es la clasica "Developer´r Reference" que viene en un conjunto de archivos .HLP (no confundir con la version corta Programmer´s Reference)

La segunda es MSDN que viene con Visual Studio. Contiene ejemplos.

Pero la mas completa y actualizada es el PDK, que incluye incluso las API de Windows 2003. No solo contiene la documentacion en si, sino que ademas incluye una generosa cantidad de ejemplos en lenguaje C/C++.
Se puede descargar gratuitamente desde:

http://www.microsoft.com/downloads/details...&displaylang=en


saludos,


Furious Logic [aRC]

2
C++ Builder / Re: Guardar
« en: Miércoles 13 de Julio de 2005, 01:45 »
Felizmente el C+Builder todo esta implementado... No tengo CB aqui a la mano pero si mal no recuerdo ya tiene una funcion para salvar directamente en un archivo su contenido.
Para no dejar asi de vaga mi respuesta te dire que tambien se puede hacer con las API y con ellas esta seria la secuencia a seguir:


SendMessage, HANDLE_EDIT,WM_GETTEXT...
CreateFile...
WriteFile
CloseHandle

y listo. La sintaxis de cada API la puedes ver en el PDK cuyo enlace posteo como tema aparte.

saludos,

Furious Logic [aRC]
www.arc3000.com
(SITE CENSURADO)

3
C++ Builder / Re: Uso Del Tstringgrid
« en: Miércoles 13 de Julio de 2005, 01:40 »
Cuando gustes pregunta con confianza que aqui entre todos nos ayudamos.


saludos,


Furious Logic [aRC]

4
ASM (Ensamblador) / Re: Programacion Assembler 32 Bits Utilizando Hla
« en: Miércoles 13 de Julio de 2005, 01:37 »
El curso es gratuito, se dicta a traves de una lista de correo se inicia el domingo 31 de julio a las 5 pm.

saludos,

Furious Logic [aRC]

5
C++ Builder / Re: Puerto Serie
« en: Jueves 7 de Julio de 2005, 23:31 »
Hay varias formas de lograr esto. La primera es haciendo uso de las funciones API propias del sistema operativo.  Es bastante extenso de explicar pero puedes ayudarte descargando Windows Plattform SDK desde el site de Microsoft (es gratis). Alli tienes toda la documentacion necesaria y ejemplos sobre funciones API incluidas las de comunicacion serial.

Una segunda forma es usando llamadas IOCTL que si con cosa seria.  Si mal no recuerdo, Charles Petzold habla sobre eso en su clasico libro de C. Caray ahora hay ue hablar de memoria, eso tambien estaba en el site. (Hey Red, pasate un hosting de 10 GiB man, urgente)

Una tercera forma, la mas viable y facil, es utilizar una dll preparada para tal fin. Eso porque si tu programa corre bajo XP empezaran los dolores de cabeza igual que con el puerto paralelo y generalmente las dll de terceros ya resuelven todo ese lio.  Dejame ver que hay por aqui cerca...

Este es un kit interesante basado en componentes COM:
http://www.activxperts.com/activcomport/

tambien este otro que nos sirvio para obtener los libros de puertos paralelos (tambien hay serial y USB):
http://www.lvr.com

saludos aqui termino este testamento,

FL

6
ASM (Ensamblador) / Re: Programar La Gpu
« en: Jueves 7 de Julio de 2005, 23:15 »
Parece que no leiste con detenimiento lo que indique. Lo resumiremos así:
¿Desde donde lee los datos el GPU? Desde la memoria que lleva en la tarjeta. No hablo de la ram hablo de los chips de memoria que vienen en toda tarjeta grafica.  Esa es la forma mas rapida de escribir graficos.

Cuando deseamos enviarle datos al GPU, en el DOS en lugar de utilizar interrupciones utilizabamos escritura directa en memoria. Leiste la parte en que escribi "solo acotar algo sobre programacion de graficos bajo DOS".

Ahora bien, el tema bajo Windows es distinto y mas facil en cierto modo. OpenGL es un standard tan bueno que aun sigue en la version 1.x en tanto que DirectX ya va por la 10 y requiere instalar como 30 MiB para tener la 9.0c que tengo entendido que es la ultima. Bueno, no quiero destapar el tema de OpenGL vs DirectX porque de hecho se arma la discusion. El punto es que sea que uses OpenGL o uses DirectX, estas accediendo directamente al hardware.  Esa es la idea de ambas librerias y de alli mi comentario sobre la dificultad de la programacion bajo DOS-especificacion VESA vs los distintos modelos-marcas de tarjetas.  Es decir, que bajo windows, se intento evitar todo ese lio de averiguar marcas, direcciones de memoria particulares y todo ese rollo, y se crearon OpenGL por un lado DirectX por otro lado. Ambas se encargar de determinar la mejor forma de acceso directo al hardware. De este modo ya no tienes que preocuparte por averigual la informacion no documentada sobre en que direccion de memoria escribir si es la tarjeta Perico 8000, Coquito ABC o Fulano "Budú".  Simplemente le dices a la API si es OpenGL o al objeto COM si es DirectX que escriba un pixel y listo, asunto arreglado ellos se encargan de averiguar que es mas rapido.
Los fabricantes de tarjetas envian esa informacion a Microsoft que para nosotros en DOS era rebuscada, no documentada o como sea.  De alli que es improbable que al menos 1 compáñia te vaya a dar gratis su informacion privada. (Microsoft paga por esa informacion y paga en serio, aunque nos cobra mucho mas de lo que paga)

Volviendo a tu tema grafico. Tienes 2 alternativas: la primera es crear un kernel que base su parte grafica en la informacion que las corporaciones graficas te hagan llegar a ti.
La segunda es que hagas un kernel que base su parte grafica en los drivers existentes de Windows o en los de Linux.

Es un tema bastante complicado para que empiezes a crear algo. Es admirable tu emocion por crear algo asi pero de alli a la realidad, pues te diria que le des una miradita al codigo de un kernel, el mas simple que exista y a ver como vamos.

suerte y empieza por algo mas a tu alcance,


saludos,


Furious Logic [aRC]
www.arc3000.com
(SITE CENSURADO)


PD: Te sugeriria que leas la enorme cantidad libros que tenemos en la web pero nos censuraron hace tan solo 2 semanas. Si tienes paciencia, en un tiempo migramos todo a un nuevo servidor y alli podras leer libros de programacion hasta que termines pensando en binario y hablando en hexadecimal  :D

7
C++ Builder / Re: Bcbstrip
« en: Jueves 7 de Julio de 2005, 22:56 »
Exacto, igual que con Visual C los dialogos. Entiendo por donde va tu pregunta, tambien puedo crear un programa sin usar la VCL, solo con funciones API, pero eso no es lo que busco.  Porque en ese caso mejor hago el programa con GoAsm.

Veras, no se si conoces los controles KOL de Delphi. Son controles que reemplazan las unidades de Delphi, por otras hechas netamente en assembler y te dejan programar en Delphi usando VCL igual que antes, pero con la paleta de KOL. La ventaja es que esa ventana que con el Delphi al natural pesa 380 KiB, con KOL instalado es exactamente la misma, diseñas igual con VCL pero el exe pesa solo 20 KiB.

Pense si es que conocen algun tipo de controles similar para no perder la facilidad VCL o en ultimo caso lo de la tecnica de VC para reducir exes que ya comentamos que no tiene equivalente en C  :(


saludos,


Furious Logic [aRC]

8
C++ Builder / Re: Uso Del Tstringgrid
« en: Jueves 7 de Julio de 2005, 22:50 »
ok el tema es el siguiente lo pondremos en full ascii a ver si se entiende la idea:

CODIGO   COL1    COL2
    1          Juan     Perez
    2          Jose     Diaz
    3          Perico   De las Casas
    4          Luis      Ruiz
    5          Ausberto     Peralta
    6          Pepito   El bello

supongamos que deseas borrar a Jose Diaz (codigo 2) entonces no te preocupes de blanquear el contenido de la celda eso es lo de menos, lo que debes hacer es apartir de la fila seleccionada para borrar (la fila de codigo 2), copiar la fila siguiente en las 3 columnas respectivamente, luego hacer lo mismo con la fila siguiente hasta la ultima fila del StringGrid cuya cantidad esta especificada en la propiedad .RowCount  Te debe quedar asi:



CODIGO   COL1    COL2
    1          Juan     Perez
    2          Perico   De las Casas
    3          Luis      Ruiz
    4          Ausberto     Peralta
    5          Pepito   El bello
    6          Pepito   El bello

entonces simplemente decrementas la propiedad .RowCount así:

StringGrid->RowCount = StringGrid->RowCount - 1,

luego un refresh para actualizar el contenido y listo

StringGrid->Refresh


saludos,


Furious Logic [aRC]
www.arc3000.com
(SITE CENSURADO POR LA POLICY DE ITALIA)
A la censura dile no!!
Sí a la Libertad de informacion!!

9
C++ Builder / Re: Hacer K Un Progrma Funcione En Ordenador Sin Build
« en: Miércoles 6 de Julio de 2005, 22:37 »
Aqui mi granito de arena... Y luego que hagas eso, pasale el BCBStrip que eliminara una buena parte del garbage y reducira el tamanio del exe aun mas.

saludos,

Furious Logic [aRC]
www.arc3000.com
(SITE CENSURADO)

10
C++ Builder / Re: Bcbstrip
« en: Miércoles 6 de Julio de 2005, 22:28 »
Con VC no tengo problema alguno, solo se establecen los parametros de compilacion necesarios y asunto arreglado y justo esa misma facilidad es la que busco con CBuilder.  Por mas que busco no logro reducir el exe a menos de +-400 KB y me parece exagerado (comparado con VC).  ¿Es que ambos son C no? Bueno si hubiera alguna sugerencia respecto a VC bienvenida sea.

gracias por comentar,

Furious Logic [aRC]
www.arc3000.com
(SITE CENSURADO)
A la censura dile NO !!

11
C++ Builder / Re: Bcbstrip
« en: Miércoles 6 de Julio de 2005, 01:39 »
Erratas:

Dice:
"...permiten reducir un programa de solo una ventana de 350 MB con Delphi ..."

Debe decir:
"...permiten reducir un programa de solo una ventana de 350 KB con Delphi  ..."

12
C++ Builder / Bcbstrip
« en: Miércoles 6 de Julio de 2005, 01:37 »
He estado revisando BCBStrip que es un antiguo programa para eliminar el garbage de un exe, no solo de CBuilder, pero especialmente de CBuilder.  Mientras lo hacia, me puse a comparar los componentes sustituto llamados KOL (para Delphi) que permiten reducir un programa de solo una ventana de 350 MB con Delphi normal a solo 20 KB sin perder las carecteristicas de diseño visual (arrastrando botones y demas).
Mi pregunta es:  Existe alguna forma, grupo de controles sustituto, tecnica, programa (no compresores de exes) que me permita reducir el tamanio de un ejecutable en CBuilder 6, que dicho sea de paso, genera exes mas grandes que Delphi 7

Para Visual C++ existe una tecnica que me reduce drasticamente el tamaño de un exe sin instalar nada. De alli viene mi pregunta. Porque si en el C de Micro$oft se puede, porque no se podria en el C de Borland? Digo ¿no?


saludos,


Furioius Logic [aRC]

13
ASM (Ensamblador) / Re: Programar La Gpu
« en: Miércoles 6 de Julio de 2005, 01:25 »
Interesante charla y solo acotar algo sobre programacion de graficos bajo DOS. Me refiero a que no se debe confundir el programar graficos utilizando el driver VESA para DOS con programar graficos utilizando la especificacion VESA. En el primer caso requiere de un driver, un archivo aparte. En el segundo caso tenemos el uso de una interrupcion (metodo lento) o el acceso directo a direcciones de memoria que en modos VESA depende del fabricante.  Por este motivo programar un juego en modos VESA sin driver era un dolor de cabeza porque tenias que buscar mil especificaciones de fabricantes para determinar las direcciones para sus respectivos modelos de tarjeta y encima marcas.

  Algo mas, programar con acceso directo a memoria grafica no es para nada lento.  Por el contrario, es lo mas rapido que existe puesto que estamos escriiendo directamente en los chips de memoria de la tarjeta grafica ¿Existe algo mas rapido? Posiblemente si, la telepatia, pero hasta alli no ha llegado la programacion  :D


saludos y si que preguntas ah,


Furious Logic [aRC]

14
ASM (Ensamblador) / Re: Obtener El Numero De Serie De La Placa Madre
« en: Miércoles 6 de Julio de 2005, 00:48 »
Pues bien, no tengo un codigo en asm para lograrlo, al menos aun no lo he postado, pero si tenemos esta dll que hicimos en Delphi.
Exporta una sola funcion declarada asi:

DWORD GetBiosCRC(void);

que devuelve un numero identificativo unico para cada placa, al menos en teoria porque no tengo 1,000 PCs para probarla.

En todo caso, debo indicar que la ubicacion en memoria (del BIOS) del numero de serie en una placa varia no solo de acuerdo no al fabricante sino al modelo de BIOS, a la fecha del mismo, etc. Por lo que no es nada sencillo intentar extraer el numero de serie.  A esto debemos sumarle el problema de las plataformas NT/XP que impiden el acceso libre a la memoria del BIOS tal como se puede hacer el Win98
Resumiendo, la dll que proporciono funciona perfectamente bajo cualquier plataforma Win9x, NT, XP SP1 y SP2, 2000 y 2003


Pueden descargarla desde aqui y ya saben como usar dll o si prefieren un ejemplo completo con ella avisenme.

http://s11.yousendit.com/d.aspx?id=1HHAHFB...XL161PWZ1J63M7L


saludos y pregunten con toda confianza,


Furious Logic [aRC]
www.arc3000.com
(SITIO WEB CENSURADO POR LA POLICY ITALIANDA)
No al atropeyo de la Libertad de Informacion!!!

15
ASM (Ensamblador) / Re: Colorear Botones
« en: Lunes 27 de Junio de 2005, 02:03 »
Totalmente de acuerdo contigo, es mucho codigo para algo tan simple, por eso no recuerdo ningun compilador que nos permita ponerle color a un boton sin tener que instalar algun componente o libreria adicional.


saludos,


FL

16
ASM (Ensamblador) / Re: Llamar Rutina Asm Desde Vb6
« en: Viernes 24 de Junio de 2005, 00:29 »
Una solucion "parche" es crear una dll en assembler con todo el codigo que necesites y utilizarla desde VB.

saludos,

Furious Logic [aRC]

17
ASM (Ensamblador) / Re: Obtener El Numero De Serie De La Placa Madre
« en: Viernes 24 de Junio de 2005, 00:27 »
Vemos que esta pregunta lleva mucho tiempo sin responderse.  ¿Aun requiere respuesta?


saludos,


Furious Logic [aRC]
http:/www.arc3000.com (SITE CENSURADO)

18
ASM (Ensamblador) / Programacion Assembler 32 Bits Utilizando Hla
« en: Viernes 24 de Junio de 2005, 00:21 »
Hola a todos los amigos del foro, espero no estar atentando contra alguna de vuestras normas con nuestra siguiente invitacion:

   Hemos abierto las inscripciones para la 2da temporada del curso GRATUITO "Programacion Assembler 32 bits utilizando HLA".

   HLA es un compilador de assembler con una sintaxis tan sencilla como Delphi, pero es assembler y aunque mas de uno pudiera pensar que solo son macros, luego de llevar el curso se llevara una agradable sorpresa.  Ejecutables mas pequeños y muy faciles de mantener debido a su sintaxis.

   Aun estamos por terminar el curso para el primer grupo, estamos por rendir el examen final, pero aprovechamos para invitarlos a todos a disfrutar de este maravilloso programa.  Mas informacion sobre HLA en su site propietario:

http://webster.cs.ucr.edu/AsmTools/HLA/index.html

PARA SUSCRIBIRTE A NUESTRO CURSO:
http://www.egrupos.net/grupo/cursohla/alta

REQUISITOS:
- Conocer al menos lo basico de programacion en cualquier lenguaje
- Disponer del compilador HLA para Fasm actualmente en la version 1.76
descargable aqui:

http://webster.cs.ucr.edu/AsmTools/HLA/HLA...6/fhlasetup.exe

- Disponer de una copia de la Documentacion de funciones API (Google)

   En el curso se explicara como instalarlo y configurarlo.

   Asimismo, aquellos inscritos en el 1er grupo que esten debiendo examenes, podran rendirlos oportunamente con el segundo grupo.  Solamente los examenes no rendidos.


saludos a todos,


Furious Logic [aRC]
aDVANCED rESEARCH cOMMUNITY (aRC)

19
ASM (Ensamblador) / Re: Colorear Botones
« en: Jueves 23 de Junio de 2005, 23:52 »
aja, te pille en este foro.  jejeje Es que Internet es tan pequeño que suscribiendose foro tras foro uno llega a encontrarse con los demas.
Luego posteamos el ejemplo de botones en colores para beneficio de todos.


saludos,


Furious Logic [aRC]
http://www.???.com (SITE CENSURADO)

Páginas: [1]