HispaMSX

RE: [hispamsx] De todo un poco: Z380, sprites, lenguajes, ...

2000-03-14 07:36:47
Hola,

  -El lenguaje C es importante porque hay muchas "fuentes" de PC o UNIX, y
mucha gente sabe programar en C. Pero el C, como lenguaje, es una MIERDA.
Parece hecho para "joder" al programador. El Pascal esta mucho mejor,
aunque
menos difundido y evolucionado. Pero tampoco me interesa el Pascal.

No todo aquello que no conocemos es una mierda, ni está hecho para "joder al
programador". Por algo será que todos y cada uno de los kernels de los
sistemas operativos que ves por ahí están escritos en C. Por algo será que
el 90% del software que sale a diario para UNIX está escrito en C.

-Tengo pensadas varias posibilidades de nuevos lenguajes para MSX,
orientados al Z380 (pero no obligatoriamente que lo necesiten). Dichos
lenguajes no serian compilados, sino interpretados. Pero mucho mas rapido
que el MSX BASIC, por supuesto. Se intentara que las instrucciones se
parezcan lo mas posible a las del MSX BASIC.

Repito: ¿para qué reinventar la rueda? Si quieres un lenguaje rápido, fácil
de usar, potente e interpretado, usa Perl. Compílalo para MSX (mira por
donde, el intérprete de Perl está escrito en C!).

Sera un lenguaje orientado a MSX, que pueda usar todos los perifericos
existentes, a pleno rendimiento.

El acceso a los periféricos es una característica del sistema operativo, no
del lenguaje.

El ser "interpretado" en lugar de "compilado" tiene la ventaja de:
  . Que puede haber multitarea = varios programas ejecutandose a la vez.

La multitarea depende del sistema operativo, no del lenguaje. Tú estás
hablando de threads.

Pues basta con ejecutar cada vez una instruccion de un programa distinto.
  . Que no se "cuelga" el sistema.

¿Ni siquiera si haces accesos ilegales a bajo nivel a los dispositivos del
sistema? Esto también depende del sistema operativo.

  . Que se puede linealizar la memoria, incluso en un MSX sin Z380.

La gestión de memoria depende del sistema operativo.

  . Que se puede implementar memoria virtual

Sí, puedes hacerlo, aunque sería volver a reinventar la rueda. La
implementacion de la memoria virtual ha de estar integrada en el kernel del
sistema operativo.

  . Que es casi/igual/o-mas de rapido que un lenguaje compilado, porque a
cada instruccion del lenguaje, le corresponde una rutina en ensamblador de
manera directa. (No se van a hacer tantos calculos inutiles como en el MSX
BASIC, que hace busqueda de lineas, variables, etc...)

¿Has implementado alguna vez un intérprete? Creo que te olvidas de los
tiempos de preprocesamiento...

  . Un monton de cosas mas, que no son posibles con lenguajes compilados.

"Un montón de cosas más". No comments.

  .Que es muy facil de implementar el "pre-compilador" y el "interprete",
por lo que es FACTIBLE de realizarlo para MSX, cosa que no pasa con un
compilador, que es MUY MUY dificil y complicado, y NUNCA va a quedar tan
optimizado como los profesionales de PC, UNIX, etc.

A no ser que uses los que ya hay para PC y los adaptes para MSX, no crees?

Creo que te hace falta leer unos cuantos libros para por lo menos saber de
qué estás hablando:

- "Sistemas operativos: diseño e implementación", Andrew S. Tanenbaum, Ed.
Prentice Hall. (ISBN 0-13-630302-1, 760 páginas) (6.495 ptas en la Libreria
Hispano-Americana en Barcelona)

Describe la estructura que ha de tener un sistema operativo. Se divide en
varios capítulos: procesos, I/O, gestión de memoria, sistemas de archivos...
En cada uno de los capítulos discute varios métodos distintos de implementar
cada una de estas partes y discute sus ventajas e inconvenientes. Incluye
TODO el código fuente de MINIX (en C, por supuesto). Se lo dejé a Nestor un
tiempo y flipó bastante.

- "El lenguaje de programación C", Brian W. Kernighan y Dennis M. Ritchie,
Ed. Prentice Hall. (ISBN 968-880-205-0, 295 páginas) (3.768 ptas en la misma
librería)

Describe todo el lenguaje C: su historia, el por qué diseñar este lenguaje
cuando todos los kernels de UNIX se escribían en assembler. Es el mejor
libro para aprender C standard que puedas encontrar. Todo el código del
libro funciona directamente en MSX si usas un compilador decente (el MSX-C
de ASCII, por ejemplo).

- "El entorno de programación UNIX", Brian W. Kernighan y Rob Pike, Ed.
Prentice Hall. (ISBN 968-880-067-8, 370 páginas) (2.000 ptas, misma
librería)

Explica cómo funciona UNIX, desde el nivel más básico (el shell) hasta lo
más arcano (I/O, IPC). Toca la programación en C, shell script (sh/awk/sed),
etc...

Tengo estos y unos cuantos más libros por aquí, así que si te interesan y no
quieres comprarlos, sólo tienes que decírmelo y te los puedo dejar.

Saludos,

Javi Lavandeira
Director Tecnico
Inlander Communications, S.L.
Tel: (+34) 93 310 12 86 Fax: (+34) 93 268 14 79
javilm(_en_)inlander(_punto_)es - http://www.inlander.es


----- Original Message -----
From: Daniel Zorita <dzorita(_en_)teleline(_punto_)es>
To: HispaMSX <hispamsx(_en_)onelist(_punto_)com>
Sent: Friday, March 10, 2000 8:06 PM
Subject: [hispamsx] De todo un poco: Z380, sprites, lenguajes, ...


From: "Daniel Zorita" <dzorita(_en_)teleline(_punto_)es>

Va, 10 Marzo 2000

 Hola a todos.

Paso a hablar de todo un poco ....

1) Sobre lo de usar Sprites o Copys: Todo me parece bien. Segun cada
juego,
una cosa es mas adecuada o no. Quien quiera forzar el uso de sprites,
perfecto ! Quien quiera probar con copys, perfecto(2) !
Creo que lo que importa es que se hagan juegos. Si son de calidad, y el
argumento es entretenido, que mas da como esten hechos !!!
Por mi parte, en el Sir Dan, no uso sprites-hardw, sino bitmaps. Eso me
permite manejar objetos de mayor tamaño, sin limitacion de colores, ademas
de permitir que ciertos elementos de los decorados "tapen" a los bichos.
Ademas, la rutina funciona en Screen 8, y sin gastar una pagina para
"swap"
!!!
Para sprites, ya me esforce de sobra con el Vader, que permitia mostrar
hasta 100 sprites-hardware en pantalla, y casi sin parpadeos !! (solo el
del
9 sprite por linea)

2) Sobre las ideas que teneis acerca del Z380, agradezco todas ellas.
Si bien, creo que deberia daros un poco mas de informacion acerca de la
tarjeta Z380, para que sepais que cosas se pueden hacer y cuales no.
Las caracteristicas basicas de la tarjeta son:
   -Un Z380 a 14.3 MHz, con memoria propia desde 0.5Mb hasta 128MB que se
accede de manera lineal, con direcciones de 32 bits.
El rendimiento de este procesador, es de 1 a 4 veces la de un R800,
dependiendo del codigo que se ejecute.
  -Una memoria de comunicacion con el MSX, de 1 KB.
  -El Z380 no anula al Z80 o R800, sino que trabaja a la vez que el MSX
  -El Z380 no puede acceder al hardware interno del MSX, por lo que el MSX
ha de actuar como "servidor hardware" del Z380 si fuese necesario. (Nota:
Aunque el Z380 pudiese acceder al hardware interno del MSX, no
funcionaria,
porque dicho hard solo soporta 3.57 MHz en general)
 -El Z380 es compatible con el Z80, aunque añade nuevos modos,
instrucciones, bancos de registros, operaciones de mult / div, etc.

El inconveniente, es que la VRAM, FM, DISCO, etc va a seguir siendo el que
es, por lo que no se puede pedir peras al olmo.
La ventaja, es que dichos VRAM, FM; DISCO, etc se van a aprovechar al 100%
en lugar de al 20%, porque el MSX estaria todo el rato ejecutando los
OUTs,
OTIRs, etc que le indicase el Z380.
Es decir, que los juegos irian de 2 a 10 veces mas rapidos o "suaves" que
si
no hubiese Z380.

Ademas, el Z380 esta pensado para poder usarse en un expansor especial,
donde si puede acceder a 14.3 MHz y con 32 bits a cualquier periferico que
este insertado en dicho expansor. Por ejemplo, un GFX9000, se podria
acceder
a 14.3 MHz en lugar de 3.57 MHz si se conecta en el expansor junto al
Z380.
(Pero solo a 8 bits, salvo que se modificasen las conexiones del cartucho
GFX9000)



3) Sobre lenguajes de programacion para MSX (sea con o sin Z380) tengo
bastante que discutir:
  -El lenguaje C es importante porque hay muchas "fuentes" de PC o UNIX, y
mucha gente sabe programar en C. Pero el C, como lenguaje, es una MIERDA.
Parece hecho para "joder" al programador. El Pascal esta mucho mejor,
aunque
menos difundido y evolucionado. Pero tampoco me interesa el Pascal.
 -Quien quiera hacer un compilador de C para MSX, que lo haga. Pero
probablemente no sere yo.
 -Ya hay compiladores de C para Z80/Z380, pero funcionando bajo PC.
Quienes
esten muy interesados en el C, que prueben estos programas, y que nos
digan
si los resultados son tan buenos como para hacer un compilador que
funcione
bajo MSX.

-Tengo pensadas varias posibilidades de nuevos lenguajes para MSX,
orientados al Z380 (pero no obligatoriamente que lo necesiten). Dichos
lenguajes no serian compilados, sino interpretados. Pero mucho mas rapido
que el MSX BASIC, por supuesto. Se intentara que las instrucciones se
parezcan lo mas posible a las del MSX BASIC.
Sera un lenguaje orientado a MSX, que pueda usar todos los perifericos
existentes, a pleno rendimiento.
El ser "interpretado" en lugar de "compilado" tiene la ventaja de:
  . Que puede haber multitarea = varios programas ejecutandose a la vez.
Pues basta con ejecutar cada vez una instruccion de un programa distinto.
  . Que no se "cuelga" el sistema.
  . Que los programas ocupan menos incluso que en ensamblador
  . Que no impide insertar bloques en ensamblador.
  . Que se puede linealizar la memoria, incluso en un MSX sin Z380.
  . Que se puede implementar memoria virtual
  . Que es casi/igual/o-mas de rapido que un lenguaje compilado, porque a
cada instruccion del lenguaje, le corresponde una rutina en ensamblador de
manera directa. (No se van a hacer tantos calculos inutiles como en el MSX
BASIC, que hace busqueda de lineas, variables, etc...)
  . Que se puede modificar / ampliar muy facilmente.
  . Un monton de cosas mas, que no son posibles con lenguajes compilados.
  .Que es muy facil de implementar el "pre-compilador" y el "interprete",
por lo que es FACTIBLE de realizarlo para MSX, cosa que no pasa con un
compilador, que es MUY MUY dificil y complicado, y NUNCA va a quedar tan
optimizado como los profesionales de PC, UNIX, etc.

¿Mas razones?
Ademas, quien quiera usarlo, lo usa, y quien no, pues usa ensamblador, C,
o
lo que sea.



Bueno, esto es todo.
Perdon por si es mucho "tocho", pero viene cargadito de "informacion", no
?

Aviso a los que respondan: Cuidado con los quoteos !! Mejor no quoteeis
este
rollo , o nos vamos a liar. Poned algo asi como "Respecto a tal cosa,
opino
que ...." y ya esta.

Gracias por vuestra atencion.
Esperamos que hayan disfrutado del vuelo.
No olviden desabrocharse el cinturon de seguridad antes de abandonar el
avion.

Chao !!

Daniel Zorita,  dzorita(_en_)teleline(_punto_)es



------------------------------------------------------------------------
MAXIMIZE YOUR CARD, MINIMIZE YOUR RATE!
Get a NextCard Visa, in 30 seconds!  Get rates as low as
0.0% Intro or 9.9% Fixed APR and no hidden fees.
Apply NOW!
http://click.egroups.com/1/2122/0/_/666427/_/952714910/
------------------------------------------------------------------------

*HispaMSX. La mailing-list de MSX en castellano*
Para cualquier duda: msxjam(_en_)crosswinds(_punto_)net



<Anterior en la conversación] Conversación actual [Siguiente en la conversación>