• Miércoles 15 de Abril de 2026, 00:36

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.


Temas - 123celes

Páginas: [1]
1
C/C++ / Diferencia entre BC y TC
« en: Domingo 26 de Octubre de 2008, 13:14 »
Hola, ¿Qué tal?, aquí estoy de nuevo, esta vez con una duda de de C++. Me baje hacer poco los compiladores Borland c++ 3.1 y Turbo c++ 3.1 y a mí me parecen iguales, ¿Cual es la diferencia entre ellos?

También estoy buscando alguna librería que me permita trabajar con bases de datos, usando estos compiladores, ¿Ustedes conocen alguna? Resulta que hace poco conseguí el libro "SQL para usuarios y programadores, cuarta edición 1998" y en la Pág. 187 explica como conectar un programa escrito en lenguaje C con una base de datos:

Código: Text
  1. #include <stdiol.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define     NOTFOUND 100
  6.  
  7. //Página 187
  8.  
  9. EXEC SQL INCLUDE SQLCA
  10.  
  11. /*Declaración de la tabla TEMPLE de los ejemplos*/
  12.  
  13. EXEC SQL DECLARE TEMPLE TABLE
  14.          (NUMEM INTEGER NOT NULL,
  15.           NUMDE INTEGER NOT NULL,
  16.           EXTEL SMALLINT NOT NULL,
  17.           FECNA DATE     NOT NULL,
  18.           FECIN DATE     NOT NULL,
  19.           SALAR DECIMAL (5,0) NOT NULL,
  20.           COMIS DECIMAL (5,0),
  21.           NUMHI SMALLINT      NOT NULL,
  22.           NOMEM VARCHAR(20)   NOT NULL);
  23.          
  24. void main ()
  25.  
  26. {
  27.  
  28. }
  29.  
  30.  
Pero cuando lo trato de compilar el programa no me reconoce ninguna sentencia ¿Alguien sabe que compilador de C, estaban usando en ese libro?¿O algún ejemplo de conexión a base de datos con el Borland c++ o el Turbo c++?

Bueno muchísimas gracias por su atención.

2
ASM (Ensamblador) / Assembler inline
« en: Viernes 24 de Octubre de 2008, 20:18 »
Hola, ¿Cómo están todos? (espero que bien ), yo por mi parte me encuentro muy bien y sigo estudiando distintas rutinas de ensamblador orientadas a la programación gráfica.

En realidad el código que estoy estudiando en un Assembly inline, ósea que esta embebido en Turbo Pascal, pero igual me funciona muy bien a la hora de optimizar ciertos códigos.

Les escribo por que quería consultarles sobre una determinada rutina, la cual creo haber entendido en su mayoría:

Rutina de borrado.
La rutina de borrado lo que hace es rellenar un segmento de la memoria con un byte especificado (del 0 - 255), si rellenamos con el byte 0 y este representa el color negro 'borraremos' la pantalla con el color 0, si borramos con el byte 25 y este representa el color naranja, 'borraremos' la pantalla con el color naranja. Esta rutina también debe estar optimizada al máximo ya que se realiza muchas veces por ciclo. También se usan registros de 32 bits:

  -rutina de borrado en ensamblador:

Código: Text
  1.  
  2. PROCEDURE Fill64k (Where:word;Col : Byte); assembler;
  3. asm
  4.     push    es
  5.     mov     cx, 16000;
  6.     mov     es,[where]
  7.     xor     di,di
  8.     mov     al,[col]
  9.     mov     ah,al
  10.     mov     dx, ax
  11.     db      $66, $C1, $E0, $10   {shl eax, 16}
  12.     mov     ax, dx
  13.     db      $F3, $66, $AB          {rep stosd}
  14.     pop     es
  15. End;
  16.  
  17.  

Lo que quiero preguntar es:

1)Por qué en la linea 11
db      $66, $C1, $E0, $10   {shl eax, 16}

No coloca directamente shl eax, 16 ¿Es por que esas instrucciones no existen en el Assembly Inline de Turbo Pascal y tiene que usar los prefijos para que el procesador lo entienda?

2)En las lineas 10 y 12:
mov     dx, ax

mov     ax, dx

No comprendo que trabajo realizan, ¿Para que sirven?

Bueno eso es todo, muchas gracias por leer mi mensaje.

Les dejo estos sitios de interes:

geocities.com/SiliconValley/code/2632/ Programación de videojuegos en Turbo Pascal

ftp.lanet.lv/ftp/mirror/x2ftp/msdos/programming/source/00index.html Un excelente sitio con mucho código fuente

3
ASM (Ensamblador) / Rutina de copiado.
« en: Lunes 20 de Octubre de 2008, 15:32 »
Hola ¿Que tal?,  yo soy 123celes y soy nuevo en el foro. Hace no mucho empecé a internarme en la programación, sobre todo la de los video juegos. Empecé a estudiar el lenguaje ensamblador y cada vez aprendo un poquito más.

Donde mostraban distintas rutinas en ensamblador para optimizar la programación gráfica, concretamente la que no comprendo es la de Copy64K. La  parte que no comprendo es esta: las líneas que dicen

xor  di,di
xor  si,si
mov  cx,16000
db   66h;rep movsw

¿Que trabajo hacen estas líneas, para que sirven?

PROCEDURE Copy64K  (SegOrg,SegDes:Word);assembler;
Asm
    push ds
    mov  ax,SegOrg
    mov  ds,ax
    mov  ax,SegDes
    mov  es,ax
    xor  di,di
    xor  si,si
    mov  cx,16000
    db   66h;rep movsw
    pop  ds
End;


PD: desde ya muchas gracias por su atención

4
Pascal / Texto en modo gráfico
« en: Jueves 16 de Octubre de 2008, 15:09 »
Hola, ¿Qué tal?, les escribo para preguntarles sobre una rutina en Turbo Pascal que permite escribir texto en modo gráfico



PROCEDURE WriteTXT(segm,x,y:word;txt:string;color:byte);
VAR i,j,k:byte;
Begin
for i:=1 to length(txt) do
for j:=0 to 15 do
for k:=0 to 7 do

if ((mem[fseg:fofs+ord(txt)*16+j] shl k) and 128) > 0 then
begin
mem[segm:(y+j)*320+(i*8)+x+k]:=color;
end;
End;

fseg,fofs:word; {para la fuente grafica}

Me podrían explicar por favor ¿Qué hace cada linea?, muchas gracias.

Páginas: [1]