Karoshi MSX Community
05 de Julio de 2021, 03:29:46 pm *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2] 3
  Imprimir  
Autor Tema: asMSX wishlist  (Leído 21217 veces)
0 Usuarios y 1 Visitante están viendo este tema.
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #15 : 28 de Noviembre de 2008, 11:31:15 am »

Hola, doble07:

Gracias por tu mensaje. Trataré de responderte brevemente a lo que planteas:

- El comando DS no inserta ceros, sino que reserva posiciones. Efectivamente, si no va al final del código, introduce un cero para evitar problemas. Si lo que te interesa es introducir un valor definido, hay que usar los comandos DB, DW o DT. Si, además, quieres introducir un valor repetido un número determinado de veces, te sugiero que lo combines con el comando REPT, que es muy potente. Por lo tanto, lo que indicas como DS 100,$45 se podría escribir en asMSX de la forma siguiente:

Código:
REPT 100
db 45h
ENDR

- En cuanto a los comandos múltiples para gestión de pila, lo cierto es que es una decisión personal: no me gusta porque puede generar errores de programación de difícil depuración y porque la experiencia me ha demostrado que este tipo de comandos enlazados hacen que el programador no optimice lo suficiente el código. De todas maneras, si se considera que es una necesidad, no habría muchas dificultades en incorporar esta función al asMSX.

- El soporte para macros es una de las principales carencias del asMSX. Lo creáis o no, existe un motor de macros programado de forma paralela desde el asMSX 0.10, pero no se ha incorporado a ninguna de las distribuciones por un doble motivo: primero, porque no es lo suficientemente estable, y segundo, porque no estoy satisfecho con la sintaxis que desarrollé para su funcionamiento.

Ahora que el asMSX ha ganado mucho en estabilidad y fiabilidad, me falta publicar una versión oficial con todos los aspectos corregidos. En la que seguirá a ésta, es mi intención incorporar el soporte para macros.

En cualquier caso, gracias por el feedback y por usar asMSX como herramienta de desarrollo. Estoy seguro de que nos beneficiaremos todos de tu decisión de retomar tu código fuente.
En línea
doble07
Karoshi Newbie
*
Mensajes: 19



« Respuesta #16 : 29 de Noviembre de 2008, 12:27:44 am »

Hola Robsy,

- lo de usar REPT es lo que he usado, pero queda mas elegante usando el DS 100,$45 (Yo tambien tengo mis manias, como todos los programadores Smiley )

- Sobre los PUSH y POP agrupados, es otra mania mia para que el codigo quede mas "elegante". Y por supuesto, solo hago PUSH y POP de los registros afectados, no todos Smiley

- Lo de las macros, yo creo que es lo mas importante de todo, creo que todos le encontraremos una buena funcionalidad.

Un par de detalles mas sobre los problemas en la migracion de mi codigo en formato COMPASS a asMSX:

- Cuando usaba etiquetas en mi codigo que para el asMSX estan reservadas (como "MSXDOS" o "Print") devuelve un error de "syntax error" cuando quedaria mas claro algo como "reserved symbol not permited as label"

- Cuando uso el comando EQU, si la etiqueta termina con ":" (dos puntos) me da un mensaje de error, yo creo que esto podria ser opcional... pues al final y al cabo no deja de ser una etiqueta, y siempre acaban con ":"


Sobre mi codigo, pues la verdad es que hace años que estoy pendiente del asMSX, desde que tu mismo en una ru de BCN estubimos charlando y me hablaste de él. Pero entre una cosa y otra nunca lo he llegado a utilizar.

Bueno, espero que mi pequeña aportacion a mejorar el asMSX sea positiva, y como minimo, algo mas compatible con el COMPASS. En mi opinion, el mejor ensamblador y mas completo para desarrollar usando el MSX2. (en su dia me registre y siempre tuve ilusion por ver la version 2.0 que nunca llego a publicarse...  Sad )
En línea
WYZ
Visitante
« Respuesta #17 : 01 de Abril de 2009, 04:10:06 pm »

Esto mas que un deseo es una pequeña duda.

¿Se pueden incluir  secciones de archivos a partir de un offset mayor de $10000 bytes?

Obtengo el siguiente error al compilar:
Código:

...
GAME: .INCBIN "GOFER.ROM"  SKIP $10000 SIZE $4000
...

Código:

-------------------------------------------------------------------------------
 asMSX v.0.15a. MSX cross-assembler. Eduardo A. Robsy Petrus [19/09/2008]
-------------------------------------------------------------------------------
Parsing file C:\Em\brmsx\pro09\OPFK7\opf.asm
Expanding system macros
Assembling source file
C:\Em\brmsx\pro09\OPFK7\opf.asm, line 14: wrong number of bytes to skip/include

Herramienta completada con éxito


En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #18 : 01 de Abril de 2009, 04:25:28 pm »

Vale. Pues me imagino que con la versión actual no, como has podido comprobar. Tendré que meterle mano a las tripas y cambiarlo, porque no tendría que haber problemas para usar hasta 32 bits de tamaño tanto para el offset (ay!) como para la longitud (ouch!).

Apuntado para la próxima revisión, WYZ.

Y, por cierto, ¿qué haces metiéndole mano al OPF con el asMSX? Wink
En línea
WYZ
Visitante
« Respuesta #19 : 01 de Abril de 2009, 04:46:52 pm »

Vale. Pues me imagino que con la versión actual no, como has podido comprobar. Tendré que meterle mano a las tripas y cambiarlo, porque no tendría que haber problemas para usar hasta 32 bits de tamaño tanto para el offset (ay!) como para la longitud (ouch!).

Apuntado para la próxima revisión, WYZ.

Y, por cierto, ¿qué haces metiéndole mano al OPF con el asMSX? Wink

Ok! me vas a hacer usar el editor hexadecimal hasta la próxima revisión Grin

Al OPF, ... pues imagínate, jejeje. Es lo que tiene usar la MegaFlashRom de Pazos sin disquetera! y por cierto, un gustazo lo fácil que resulta usarla. Ya tengo montados varios MultiROMs y lo que mola mas aun, meterle los últimos Konamis parcheados.
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #20 : 02 de Abril de 2009, 09:31:13 am »

WYZ: dado que eres mi cliente más antiguo y fiel, he introducido el cambio en el asMSX y te he puesto una nueva versión on-line, asMSX 0.15b. Con esto debería quedar solventado el error, aunque fíate de la informática y no corras Tongue

Si tuvieras cualquier otra dificultad, ya sabes dónde y cómo pedir. Por cierto, que también hice mis pruebas con el MegaFlashSCC vía cinta y eran muy prometedoras. Cargaba páginas de 8 KB comprimidas y con turbo directamente.
En línea
WYZ
Visitante
« Respuesta #21 : 02 de Abril de 2009, 02:13:17 pm »

Gracias Robsy!!! me siento el enchufao del AsMSX Grin

Tenemos que poner cosas en común sobre la MegaFlash. En la RetroMadrid me dijo Manuel que tu ya habías estado peleándote con esto y mi idea sería hacer un frontend que facilitara las cosas... tiempo al tiempo.
En línea
doble07
Karoshi Newbie
*
Mensajes: 19



« Respuesta #22 : 17 de Junio de 2009, 10:24:11 am »

Hola Robsy y DoraimonPPC,

Hace unos cuantos posts hablabais de un port para Amiga del asMSX... llegasteis a hacer algo?

Estaria muy interesado en este port, si es posible podria hacer el port yo mismo, y añadir el soporte de MACROS al mismo, que es lo que mas le echo en falta.

Ya me decis algo, gracias.

Juan
En línea
LocoMJ
Karoshi Lover
***
Mensajes: 126



WWW Email
« Respuesta #23 : 17 de Septiembre de 2009, 12:02:28 am »

¿Me gustaría saber si al final hay versión de Mac? Lo pregunto porque me voy a poner a hacer un juego chorra ( mi primer juego chorra ) para MSX y no tengo ni puñetera idea de por donde empezar. Y claro, algo me dice que tendré que pasarme a windows para desarrollarlo.

En línea

Now Canon V20, Then Sony HB-75
La Maison de Leia y LocoMJ
pentacour
Karoshi Lover
***
Mensajes: 177


mgalious@hotmail.com
WWW Email
« Respuesta #24 : 17 de Septiembre de 2009, 07:56:02 am »

Precisamente estoy igual. El código fuente manquesea, para mirar de compilarlo  Roll Eyes
En línea
LocoMJ
Karoshi Lover
***
Mensajes: 126



WWW Email
« Respuesta #25 : 17 de Septiembre de 2009, 10:04:13 am »

Los comienzos serán duros, pero la recompensa será muy reconfortante. Los codigos fuente del pong de Karoshi ya no están en el foro. ¿Alguien los podría colgar? Please  Saimazoom
En línea

Now Canon V20, Then Sony HB-75
La Maison de Leia y LocoMJ
doble07
Karoshi Newbie
*
Mensajes: 19



« Respuesta #26 : 08 de Noviembre de 2009, 01:46:30 am »

Buenas Robsy,

Imagino que estas muy liado y demas, solo dejar una sugerencia mas de las mias para el asMSX que considero muy interesante:

Ya que el soporte de MACROS es muy tedioso, te comento la unica macro que yo usaba en COMPASS y que realmente me venia de perlas para ver el código mucho mas claro:

se trata de una macro para escribir al VDP en una sola linea:

   VDP   $87,$34

Esta macro expandida seria:

   LD   A,$34
   OUT  [$99],A
   LD   A,$87
   OUT   [$99],A

Parece una chorrada, pero lo estoy notando muchisimo hoy dia. He pensado que se podria soportar en el asMSX como un comando mas de los que ya hay... Esto yo creo que seria muy facil.

otros ejemplos podrian ser:

   VDP   $86,A
   VDP   $86,(HL)
   VDP   $86,0      (este usaria un XOR A)


la macro en compass es asi:

VDP:   MACRO   @D2,@D1
   LD   A,@D1
   OUT   ($99),A
   LD   A,@D2
   OUT   ($99),A
   ENDM

Bueno, lo dejo en tus manos...

Gracias

Juan
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #27 : 09 de Noviembre de 2009, 11:47:22 pm »

Deja que me lo piense, aunque no me parece mala idea...
En línea
doble07
Karoshi Newbie
*
Mensajes: 19



« Respuesta #28 : 10 de Noviembre de 2009, 09:05:12 pm »

Rezo para que asi sea Smiley

Gracias

Juan
En línea
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #29 : 01 de Diciembre de 2009, 11:09:35 am »

Hola!

Después de considerar la implantación de la pseudoinstrucción VDP me surgen varias dudas importantes:

1.- Por cómo la planteas, entiendo que básicamente tiene sentido para MSX2, ¿verdad? Para MSX1 también, pero no se escribe tanto a la VDP directamente. Por otra parte, en la macro que indicas, ¿no habría que hacer que el bit de escritura 10XX XXXX lo pusiera directamente la macro? Lo digo porque es como más elegante a efectos de leer el código después.

2.- Podría generar muchos problemas de compatibilidad si no se comprueba primero que el puerto de VDP es el que indicas (99h), pero hacer que en cada llamada lea la posición de la BIOS puede hacer mucho más larga la ejecución de la instrucción, con un escenario malo, que sería leer cada vez la BIOS, y uno catastrófico, que sería tener que leer la BIOS con una llamada interslot, que sería necesaria en el caso de que estuviéramos trasteando en MSX-DOS o se hubiera cargado una ROM o cualquier cosa en la página 0 y no fuera directamente accesible.

Por todo esto, aunque sea perfectamente factible implementarla, me da mucho miedo hacerlo, por el "mal uso" y las "malas prácticas" en que puede desembocar una macro así. A ver si Ramones, protector de la compatibilidad y defensor del estándar, puede darnos alguna orientación.

Un saludo,
En línea
Páginas: 1 [2] 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!