🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #1139

Re: hola a todos, soy nuevo y traigo dudas

#1139
From: Azdo
Date: Sat, 18 Mar 2006 12:49
49 lines
3410 bytes
Leto Atreides wrote:

> orlando balbuena escribió:
>> Hola amigos del grupo, lo que me trae a escribir es una duda sobre el
>> acceso amemoria en linux el tema es que realice un programa en c bajo
>> windows (tc++ 3.0) para acceder a escribir directamete sobre la ram de
>> video, la instruccion es la siguiente:
>> .
>> char far *ini_pant=(char far *)0xB8000000; /* puntero al inicio de
>> pantalla */
>> .
>> 
>> anda perfecto ya que luego de los calculos para la posicion del
>> caracter, solo hago *ini_pant=caracter;.
>> 
>> Pero no puedo hacer lo mismo en linux ya que no me reconoce el far *,
>> viendo alguna info vi que no es ANSI-C por lo que lo elimine, compilo
>> sin problema pero al ejecutar me aparece el error Segmentation
>> Fault(coredump) ,
>> En que estoy fallando? acaso es la forma de direccionar la RAM, o la
>> direccion de video es otra? Estare agradecido cualquier ayuda.
>> 
> 
> Tu problema es que Linux protege los diferentes dispositivos y sus
> respectivas zonas de memoria. En MS-DOS no habia ningun control al
> respecto y podias acceder directamente a la zona de memoria reservada
> para la tarjeta de video. Asi que, tu no puedes acceder a ninguna zona
> de memoria (como la 0xB8000000) si que la hayas reservado primero.
> 
> El problema es que no creo que puedas reservar esa zona de memoria
> porque pertenece al sistema y puedes vulnerar la estabilidad de este.
> Pero si no me equivoco, existe una libreria en linux que te permite
> trabajar con la tarjeta de video en modo texto (creo que es la
> aalib-devel pero no estoy nada seguro).

Para controlar la pantalla en modo texto, la librería es ncurses. AAlib
sería para representar gráficos de pixel en una pantalla de texto. Si lo
que quieres es pintar imágenes en la pantalla o sprites, lo más aconsejable
sería usar la librería SDL. Todas ellas tienen documentación y son bastante
sencillas de usar. Ten en cuenta que hoy por hoy, ningún SO te deja acceder
directamente a la memoria de vídeo a través de un puntero si no es tras
alguna clase de emulación de MSDOS.

El uso de "far" está descartado desde hace mucho tiempo, desde que empezaron
a aparecer los ordenadores de 32bit y los modos de memoria en modo
protegido (linux, win95,etc) Ahora en cualquier SO puedes considerar la
memoria como completamente lineal, sin segmentos ni desplazamientos.

Un saludo.
Technical Details
Message-ID: <dvgvl3$8to$1@news.ya.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!news.ya.com!yacom!not-for-mail
References: <1141329524.471313.126870@p10g2000cwp.googlegroups.com> <du9299$443$1@electra.cc.upv.es>

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,e8f7a00236e63b04
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,UTF8
Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!fu-berlin.de!nsnmpen1-lo.nuria.telefonica-data.net!news.ya.com!yacom!not-for-mail
From: Azdo <azdo_bremoveme@yahoo.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: hola a todos, soy nuevo y traigo dudas
Date: Sat, 18 Mar 2006 13:49:44 +0100
Organization: ya.com internet factory
Lines: 49
Message-ID: <dvgvl3$8to$1@news.ya.com>
References: <1141329524.471313.126870@p10g2000cwp.googlegroups.com> <du9299$443$1@electra.cc.upv.es>
Reply-To: azdo_bremoveme@yahoo.es
NNTP-Posting-Host: 211.red-83-52-52.dynamicip.rima-tde.net
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8Bit
X-Trace: news.ya.com 1142686179 9144 83.52.52.211 (18 Mar 2006 12:49:39 GMT)
X-Complaints-To: newsmaster@ya.com
NNTP-Posting-Date: Sat, 18 Mar 2006 12:49:39 +0000 (UTC)
User-Agent: KNode/0.9.2