PREGUNTAS CONTESTADAS - Pascal/Turbo Pascal

 Hay un total de 203 Preguntas.<<  >> 

    Pregunta:  454 - AUMENTAR EL TAMAÑO DE MEMORIA
Autor:  Jaime Vera Sobino
Envio este e-mail para contarles que ya estoy trabajando con sprites en Turbo-Pascal 7.0 de Borland y utilizando tambien Assembler el problema que tengo es :

El espacio de memoria es muy pequeño y deseo aumentarlo ya que ocupo un mapa de WORD para hacer las imagenes, la memoria solo me soporta 2 mapas de 100x120 Words...
¿ es posible ampliarla ? ¿..y como se hace?

Yo he he estado investigando pero hasta el momento no encuentro nada
Espero que uds puedan ayudarme ....
Agradeciendo de antemano se despide

  Respuesta:  David Clemente Méndez
La memoria no puede aumentarse más que metiendo módulos SIMM más grandes ;)
Sin embargo, puedes utilizar uno de éstos métodos:
En Pascal usa GETMEM para utilizar espacio del heap (máximo la memoria libre de los primeros 640Kb)
En Ensamblador, usa el EMM, para lo cual puedes crear varios bancos de memoria e intercambiarlos en el marco de página.

Indícame si es eso lo que buscabas.

  Respuesta:  Franc
No se si esto te sirva de algo pero la intención es buena:
1.-Desactiva las casillas [ ]Debug information y [ ]Local symbols que se encuentran en el menu Options>>Compiler
2.-Cambia el valor de Stack size a 26384 (o al que mejor te convenga, has pruebas) que se encuentra en Options>>Memory sizes
3.-Cambia Link buffer a Disk en Options>>Linker

Después de todo esto compila el programa en disco (no en memoria) y luego ejecutalo.
Esto te libera un poquito de más memoria... es lo que yo hice con un programa muy extenso en el que tenia que salvar dos pantallas CGA...claro que tambien dividi el código del programa en varias librerias TPU para liberar un poquitito más.
Como te dije al principio, tal vez esto no es lo que buscas pero de algo servira...
Avisame si te sirve :-)

  Respuesta:  Leunam Legrev
SI NO PUEDES CORRER TU APLICACION PORQUE NO TIENES MEMORIA SUFICIENTE, PORQUE NO INTENTAS CORRER TU PROGRAMA CON EL TPX.EXE QUE ESTA EN EL MISMO DIRECTORIO DE PASCAL, Y ASI PODRAS EJECUTAR MAS FACILMENTE Y SIN PROBLEMAS, PERO SI TU PROBLEMA ES MEMORIA PARA CARGAR TUS DATOS PUES TENDARS QUE UTILIZAR ENSAMBLADOR PARA ACCEDER A LA MEMORIA EXTENDIDA. OJALA Y HAYA DESPEJADO UN POCO MAS TU DUDA O AMPLIADO...
  Respuesta:  Diego Dompe
No entiendo muy bien a que aspecto de la memoria te refieres, pero hace un tiempo yo trabajé con imagenes en Pascal y use la siguiente intruccion para que dispusiera suficiente memoria para trabajar:
{$M 16384,0,50000}
No estoy muy seguro de como funciona, pero conforme bajas el ultimo número (50000) aumenta la memoria para otros programas; pero no la bajes mucho o el tuyo no correrá.
Debes escribir esta linea despues del program.

    Pregunta:  479 - RGB DE UN COLOR
Autor:  Ruso
Quisiera saber como en Turbo Pascal, es posible saber los componentes de rojo, azul y verde de un color dado, es decir algo así como el opuesto del SetRGBPalette
Desde ya gracias, Saludos
  Respuesta:  Juan Miguel Mendoza López
lo unico que debes hacer es:

var rojo, verde, azul : byte ;

begin
el codigo......
port[$03c8] := color {color a verificar}
rojo := port[$03c9] ;
verde := port[$03c9] ;
azul := port[$03c9] ; {en ese orden}
end .

el port[$03c8] es el puerto en el que hay que ingresar el color que vas a verificar, luego lees rojo, verde y azul (en ese orden) del port[$03c9].

espero que te ayude ^^.
  Respuesta:  carlos iturralde
puedes hacerlo a traves del bios, usando las funciones propias de pascal o en ensamblador, no soy un exelente programador de este lenguaje pero si de c bajo dos, si quieres la rutina escribeme.
  Respuesta:  Argentum
Hasta ahora no conozco ninguna funcion que te pueda ayudar en ese punto especificamente, pero puedes definir una paleta propia de colores, si defines "fillpatterntype", sin embargo si encuentro la respuesta seguro te la hare llegar. te digo que programo en turbo pascal en modo grafico e incluyo en mis programas el uso del mouse y cualquier duda que te pueda solventar estoy a la orden.
Si alguien tiene una sugerencia o respuesta a esto puede escribirme a mi direccion electronica

    Pregunta:  614 - TURBO PASCAL EN LOS PENTIUM II
Autor:  Miquel
¿Sabeis porque Turbo Pascal 7.0 (u otras versiones, e incluso otros programas) no funciona sobre los nuevos Pentium II?. Investigando un poco, creo que el error se produce utilizando la Uses Crt, el hecho de utilizar esta unit (turbo.tpl), provoca un error de division por 0.¿Sabeis como se puede solucionar este problema? ¿Basta con canbiar alguna opcion del setup de la bios? ¿Existe alguna unit que arregle el problema?...

Gracias anticipadas.

  Respuesta:  Jorge fernandez
Baja esto aquí abra un patch.zip es un parche para que puedas ejecutar pascal sin ningun problema

http://www.geocities.com/jorgejedy/Messer.zip
  Respuesta:  Dj luvex
Los errores ocurren en maquinas muy rapidas como Pentium II o similares. Es debido a un lapso de tiempo de espera antes de inicializar la unidad Crt. En este tiempo se cuentan los ciclos y se divide por 55. Al ser demasiado rapido se divide por cero.
El parche esta aqui http://atenea.pvg.cl/~ennio
  Respuesta:  Garova
Este problema con los pentium II se soluciona cambiando la unit Crt, tambien hay alguien que ha modificado la Graph3 que tambien daba alguna problema parecido.
Hay esta unit nueva para Turbo Pascal y Borland Pascal. Estan por la red pero no me acuerdo de donde las saque yo asi que si las quieres escribeme y te las mando via e-mail.
  Respuesta:  Germán
El problema que tiene el turbo pascal, es que lleva mucho tiempo sin ser actualizado, y en procesadores muy rápidos no consigue ejecutar todas las ordenes, provocando el error 200: división por 0.
Para solucionarlo solo tienes que sustituir el archivo turbo.tpl, por otro que está parcheado, y conseguirás que el turbo pascal funcione correctamente.
Si te hace falta te lo puedo mandar
  Respuesta:  Cristóbal Tello
En el error que tiene el TP 7 es debido a que este compilador no se ha "actualizado" desde hace bastante tiempo.
No existe ninguna información oficial a este fallo que se presente en los pentium mayores de 233. De todas formas existen parches en las siguientes direcciones:

http://support.intel.com/support/processors/pentiumII/run200.htm
http://www.inprise.com/devsupport/pascal
http://www.brain.uni-freiburg.de/~klaus/runerr200/

  Respuesta:  Juan Alvarez G.
Mira Pascal funciona mientra no utilises la crt pero en caso de que tengas que utilizar una funcion como readkey, clrscr o gotoxy; has las funciones en ensamblador en el mismo editor de pascal para que hagas tu propia tpu
en caso de dudas mandame E-mail
hasta la vista espero haberte ayudado
escribeme en caso de dudas
  Respuesta:  Hernan
sobre los pentium II no habia escuchado de la division por 0

lo que si se es de la penthium III tiene el punto flotante y la division por 0 mala.
el problema es la placa.

yo personalmente no culpo al pascal. sera que la microsoft querra cambiar algo ? no lo se. y no lo dudo.

    Pregunta:  657 - CREAR BOTONES EN PASCAL
Autor:  Roberto Hernández
Necesito saber como crear botones en Pascal, y hacer que funcionen con el Mouse
  Respuesta:  Congrapa
yo he creado una libreria para manipilación de controles gráficos en pascal se llama congrapa(controles gráficos para pascal)...
se trabaja con formularios, botones, edit o combobox, listas, entre otras, todavía me faltan crear otras relacionadas con iconos menus, y además con orientación a objetos, manipulación de eventos...
si quiere alguien conocer la libreria o ayudar a su desarrollo envieme correo a [email protected],
  Respuesta:  Alex
Bien, lo unico que debes hacer es colorear la parte de la pantalla que quieras que sea el boton de un color determinado, despues dibujas en su contorno un rectangulo de color blanco, despues los lados derecho e inferior con lineas en negro y da una sensacion de relieve. Si quieres que te lo explique mas a fondo o te envie unas rutinas para todo tipo de botones mandame un mail.
Feliz Navidad.
  Respuesta:  Willebaldo Garcia Delgado
Hola, es muy facil es preciso que lo hagas dentro de un procedimiento y no es necesario que lo hagas en forma grafica también lo puedes hacer en forma texto. Para hacer este efecto te recomiendo que utilices un fondo gris y marca un margen o un cuadro de con color 8 o gris oscuro la parte superior del margen y la parte izquierda pon una linea horizontal y la otra vertical respectivamente de color 15 y así veras un boton resaltado.
pero si quieres un efecto de que esta oprimido , invierte las dos lineas y listo . si quieres un boton mas real dibuja un cuadro alrrededor de este botón, esper que te sirva mi sugerencia, gracias.
  Respuesta:  Jorge
Sé que ya te contestaron, pero si querés yo hize una librería para TP 6 ó 7 que te permite crear botones, EditBoxes y cosas así, además de una librería para manejo de mouse. Si vos o alguien que lea este mensaje está interesado en que te la envíe
Chau y suerte...

    Pregunta:  698 - COMO USAR MODOS GRAFICOS
Autor:  Jorge Sanchez
Hola, tengo una duda hacerca de los modos graficos que pueden ser accedidos desde una interrupcion de video, quiero saber cuales son los modos graficos que tienen mayor resolucion, y como se utilizan; solo he encontrado algo sobre el modo 13h que permite 320*200 pixeles.
  Respuesta:  ALAIN RABEL JIMENEZ JIMENEZ ROMAN
OK. VUELVO A CONTESTAR ESTA MISMA PREGUNTA PARA PASAR MAS MODOS GRAFICOS QUE HAY, ESTOS SON MODOS EXTENDIDOS, ESPERO QUE A ALGUIEN LE INTERESE.

BX MODO EXTENDIDO
100H 640x400 CON 256 COLORES
101H 640X480 CON 256 COLORES
102H 800X600 CON 16 COLORES
103H 800X600 CON 256 COLORES
104H 1024X768 CON 16 COLORES
105H 1024X768 CON 256 COLORES
106H 1280X1024 CON 16 COLORES
107H 1280X1024 CON 256 COLORES
108H 80X60 EN MODO TEXTO
109H 132X25 EN MODO TEXTO
10AH 132X43 EN MODO TEXTO
10BH 132X50 EN MODO TEXTO
10CH 132X60 EN MODO TEXTO

OK ESTOS SON ALGUNOS MODOS GRAFICOS EN FORMA EXTENDIDA
QUE TAL VEZ LES PUEDAN SERVIR EN ALGO.

ATTE:
  Respuesta:  alain rabel jiménez román
bueno, ya veo de que quieres saber cuales son las resoluciones mas altas, pues ahí te van dos, las demas te las investigas, la 2eh y 2fh, la primera es de 640X480 y la segunda, creo que es 640X400, pero para poder programar, vas ocupar mas apuntadores, mas combinaciones de código de la común, pero para aprender, creo que está bien para utilizarlos, si quieres saber algo mas sobre resoluciones, envíame un mail.
  Respuesta:  Remberto Gonzalez C.
Hola

La forma de poder trabajar con modos graficos de mayor resolucion y con 256 o mas colores se la puede realizar de dos maneras :

1.- Programando directamente los registros de la tarjeta de video (que en si es bastante trabajo, y te exije un conocimiento bastante amplio).

2.- Utilizando drivers ya definidos para lo mismo

para esto me permito enviarte (no son mios), algunos drivers (los mas comunes que se utilizan para modos graficos de mas de 16 colores, que los encontre por ahi (INTERNET))

la forma de instalarlo es utilizando la funcion "InstallUserDriver", del cual no creo que no tengas ningun problema, pues la informacion esta en el mismo HELP de PASCAL, con ejemplos inclusive.

Esperando que te sirva

    Pregunta:  743 - COMO IMPLEMENTAR MATRICES EN MEMORIA DINAMICA
Autor:  Jose
Necesito construir en Turbo Pascal, una calculadora de matrices con las operaciones tipicas: determinante, inversa, suma, producto... .Dicha matriz tiene que estar en memoria dinamica y salir de forma amigable ( filas y columnas,y los calculos realizados, m+1+m=2*m+1 ). En principio solo necesito saber los subprogramas principales (sin programar nada). Ha de ser en diseño descendente.
Tambien un diseño del tipo de datos que usara el programa. Muchas Gracias.
  Respuesta:  Alejandro Araya
Para implementar una calculadora lo mejor es utilizar la estructura de datos de las pilas o sea usando lifo(last in first out), nunca he hecho una utilizando punteros(memoria dinamica), pero si con vectores o arrays bidimensionales, el problema que tiene este programa es que cuando se encuentra una multiplicacion o una division tiene que desarrollarla por orden de prioridad,por lo que hice una toma de deciciones en que si sen encontraba con "*" o "/" llamra un procedimiento voy a buscar un porgramilla que habia hecho y lo voy a enviar ademas que voy a implementarlo con memoria dinamica espero que para la otra semana
  Respuesta:  Carlos Molina V
Para lograr que una matriz pueda variar su tamaño y aún así se maneje como "matriz" solo hay que declararla como un puntero...
EJ:
type
matriz:= array [1..1,1..1] of integer;
ptr_matriz = ^matriz;

var mat: ptr_matriz;
tamano: word;
begin

tamano:= sizeof(matriz) * Numero de datos...
getmem(mat, tamano)
/// para acceder a los datos solo hay que escribir
mat^ [1,1] := 10;
/// si te diera un error en los indices solo escribelos en una variable...
end.

///El tamaño total de la matriz no puede ser mayor a 65528 bytes...

Cualquier consulta solo mandame un e-mail...

    Pregunta:  824 - INTERRUPCIONES Y PROGRAMAS RESIDENTES CON PASCAL
Autor:  Pepe
Estoy haciendo un programa residente en memoria que cambie las funciones de las interrupciones con Turbo Pascal 7.0 y quiero saber donde puedo encontrar informacion sobre las direcciones de las tablas de interrupciones en un pc pentium II, Video, mouse, discos duros y flexibles, reloj, etc. tambien sobre hacer programas residentes en memoria, ya se que es con el comando Keep de la unidad Dos de pascal, pero tengo un pequeño conflicto con el parametro tipo word que se pasa, ¿para que sirve y como funciona? (el parametro), si pueden ayudarme con esto de la tabla de interrupcion y con lo de los TSRs se los agradezco.....gracias...chau...
  Respuesta:  Javier
La mayor y mas completa informacion sobre interrupciones, y funcionamiento de un ordenador a muy bajo nivel la puedes conseguir bajandote la lista de ralf brown ahora no se la direccion pero si buscas en altavista por el nombre seguro que la encuentras.
Creo que en total son 7 u 8 documentos, en uno de los cuales se indluye vario programas que convierten los documentos en una base de datos muy util
Espero haberte sido de ayuda,saludos..:-)

    Pregunta:  893 - VALIDAR EL TECLADO
Autor:  Marcelo Valdes
como se puede validar el teclado con pascal ya que la intrucion readkey no funciona corectamente con teclas como f7 que la toma como letra por su valor ascii
  Respuesta:  GREGORIO COBÁ GALA
Por la largada de la respuesta, esta en el archivo resp893.txt.
  Respuesta:  Remberto Gonzales C.
En realidad, al conjunto de teclas al que te refieres tiene dos codigos y no solo uno, estas teclas son las teclas de funciones, cursores, y una que otra teclamas. Para poder leer su codigo True lo que tienes que realizar es leer dos veces la misma pulsacion, es decir :
tecla : char
tecla := readkey { esto devuelve #0, si la } { es especial }
if (tecla=#0) { verifica si es tecla } { especial }
then
tecla := readkey { Esto lee el segundo } { codigo-True de } { la tecla }
Los codigos de los mismos los puedes encontrar en cualquier manual de computacion
De todas formas el f1=0,59 f2=0,60 f3=0,61 y asi sucesivamente (el trato con las teclas f11, f12 es diferente)
Nos vemos

    Pregunta:  908 - PARALELISMO EN MODO GRAFICO EN TURBO PASCAL
Autor:  Javier Oliva
resulta que estoy haciendo un juego y necesito aplicar paralelismo para el movimiento de distintos objetos a la vez
cualquier respuesta coherente sera bienvenida
  Respuesta:  Luis Gonzalez Fernandez
Por la largada de la respuesta, esta en el archivo resp908.txt.
  Respuesta:  Carlos Molina
Para hacer eso debes comenzar a trabajar en una "especie de ambiente MultiTarea", no es posible hacerlo en DOS, a menos de que ud. desarrolle un programa capaz de simularlo. O podrias desarrollar tu juego haciendolo de una forma que mueve un poco de cada objeto a la vez, haciendolo parecer PARALELISMO. Si en algo te puedo ayudar escribeme a mi correo
  Respuesta:  Carlos Collart
1. el paralelismo, solo se logra con (ada es una ecepcion) mas de un procesador, un Sistema operativo multitareas (unix, por ejemplo) y un lenguaje de multitareas (esto excluye a pascal)

lo que se hace en este caso, es simplemente simular la MT; se asigna un quantum de tiempo digamos un delay(50) y se incluye un:

if(keypressed) then
case readkey of
Tecla_Arriba: do algo;
Tecla_Abajo: do algo2;
etc...
y luego programas el codigo para los demas objetos en movimiento sin pausas de ningun tipo, asi solo te debes preocupar del lugar donde vas a colcar el delay()

    Pregunta:  1112 - CORRER PASCAL EN PENTIUM II
Autor:  Jorge Galan
He instalado Pascal en mi computador, pero no puedo usar la unidat crt, pues me da error. ¿que debo hacer?
  Respuesta:  Garova
Este problema con los pentium II se soluciona cambiando la unit Crt, tambien hay alguien que ha modificado la Graph3 que tambien daba alguna problema parecido.
Hay esta unit nueva para Turbo Pascal y Borland Pascal. Estan por la red pero no me acuerdo de donde las saque yo asi que si las quieres escribeme y te las mando via e-mail.
  Respuesta:  Carlos Molina Vega
HOLA!. El problema que tienes, es culpa de un bug en la libreria CRT. Lo que sucede es que para implementar la función delay(), se requiere de un ciclo (contador) durante cierto período de tiempo
Cuando se diseño esta funcion el ciclo era manejado por una variable word. El rango de un word es 65535 que es seuficiente para conteos en maquinas menores a Pentium de 166 MHz. Sin embargo con la tecnologia actual el contador supera los 65535 y se produce el error Division por cero.
SOLUCION: un parche para la unidad CRT (este parche reemplaza el contador Word con uno Longint)
Busca con www.altavista.com y vas a resolver el problema. Hasta Luego!!!

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|