Autor Tema: Mi biblioteca de funciones para Sprites en cc65. V.01  (Leído 19821 veces)

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #15 en: Mayo 19, 2010, 12:19:16 »
Pero ahí lo que estas haciendo es lo que yo ya comentaba, exportar las funciones y variables definidas en assembler para que puedan ser usadas desde C.

Yo me refiero a lo contrario, saber cómo se le puede pasar una variable desde C a assembler, en tu ejemplo sería saber cómo en assembler manejas el parámetro unsigned char que le pasas en la función.

No se si me he explicado...

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13628
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #16 en: Mayo 19, 2010, 12:26:59 »
Wood, podrias publicar esas librerias? O enviarnos una copia privada?
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #17 en: Mayo 19, 2010, 12:49:31 »
Cita de: "Carlos"
Pero ahí lo que estas haciendo es lo que yo ya comentaba, exportar las funciones y variables definidas en assembler para que puedan ser usadas desde C.

Yo me refiero a lo contrario, saber cómo se le puede pasar una variable desde C a assembler, en tu ejemplo sería saber cómo en assembler manejas el parámetro unsigned char que le pasas en la función.

No se si me he explicado...


Pensaba que el ejemplo era claro,

la unsigned char ha sido pasada en el registro A.
Con fastcall es lo que sucede, y si el paremetro es 16bits te pasa en A(LSB) y X(MSB).

Para tener mas parametros, hay que usar popax o popa, para sacar los valores.

[code]
                        .import popax
         .import popa
         .import pushax
         .import pusha

;----------------------------------------------               
;void __fastcall__ c64_PrintTile(unsigned char, unsigned char, unsigned char)
;----------------------------------------------
         .export _c64_PrintTile;
_c64_PrintTile:           tax
              lda _screen
              sta $fc
              lda _screen+1
              sta $fd
             
              jsr popa
              cmp #$00
              beq @cont
              tay
@lp:           lda $fc
              clc
              adc #$28
              sta $fc
              bcc @golp
              inc $fd
             
@golp:           dey
              bne @lp
             
             
@cont:                jsr popa
              tay            
              txa
              sta ($fc),y
              rts[/quote]

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #18 en: Mayo 19, 2010, 12:51:56 »
Cita de: "josepzin"
Wood, podrias publicar esas librerias? O enviarnos una copia privada?


Está muy incompleta aun.

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #19 en: Mayo 19, 2010, 12:56:09 »
Como puedo poner ficheros juntamente con mi post?. De momento no tengo lugar donde poner los ficheros en la internet para daros una url.

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #20 en: Mayo 19, 2010, 13:01:26 »
Gracias Wood, ahora lo entiendo  :D

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #21 en: Mayo 19, 2010, 13:26:03 »
De nada Carlos.

¿Alguien conoce bien la SP1 para spectrum? Yo no toco en esta libreria desde hace dos años.... Seria bueno tener una lista de las funcciones para ver lo que falta y despues añadimos cosas especificas del c64(Seria la panacea añadir funcciones para scroll, sprite multiplexor entre otras...).

Yo tengo uno pequeño test de mi rutina, con sprites y fondo. Pero tengo que ver como la puedo subir aqui al foro.

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #22 en: Mayo 19, 2010, 13:31:22 »
¿Esta sección del foro esta accecible a qualquiera o solo a miembros?

Si empezamos con alguno proyecto de un juego seria bueno tener alguno sigilo para que no se pierda el elemento sorpresa.  :D

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13628
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #23 en: Mayo 19, 2010, 13:36:52 »
Yo estuve contactando con la gente de los Mojontwins para preguntarles sobre el tema. Ademas estuve mirando las funciones de la SP1. Aunque ellos estan usando la splib2, que es mas antigua.

Sobre la SP1, para entrar en calor e ir haciendo algo, empecé a hacer una version para  C64 de la input.h (http://z88dk.cvs.sourceforge.net/z88dk/z88dk/include/input.h?view=markup)

Sería interesante usar de base alguna de estas librerías para tener una base común con el Spectrum y a la vez, seguro que estas librerias estan muy usadas y por lo tanto mas "pensado" todo

Aqui esta la web de la SP1: http://www.z88dk.org/wiki/doku.php
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #24 en: Mayo 19, 2010, 13:39:20 »
Cita de: "josepzin"
Yo estuve contactando con la gente de los Mojontwins para preguntarles sobre el tema. Ademas estuve mirando las funciones de la SP1. Aunque ellos estan usando la splib2, que es mas antigua.

Sobre la SP1, para entrar en calor e ir haciendo algo, empecé a hacer una version para  C64 de la input.h (http://z88dk.cvs.sourceforge.net/z88dk/z88dk/include/input.h?view=markup)

Sería interesante usar de base alguna de estas librerías para tener una base común con el Spectrum y a la vez, seguro que estas librerias estan muy usadas y por lo tanto mas "pensado" todo


Yo pasar(intentar) a assembler rutinas que necesites para tu libreria.

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13628
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #25 en: Mayo 19, 2010, 13:42:03 »
La de joystick es muy simple. Puedo terminar de pasar las funciones que me faltan y luego si tu tienes ganas/tiempo, se pueden pasar a assembler, pero aunque por ahora no se haga, ya se podría ir usando en C.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13628
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #26 en: Mayo 19, 2010, 13:43:02 »
Este es el hilo que he creado en Mojonia sobre este tema, para contar con los consejos mojones: http://www.ojodepez-fanzine.net/mojoniaplus/viewtopic.php?f=9&t=440&sid=d46763b30f4871ddc5d9c4be6d305c30&p=12429#p12429
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com

Iapetus

  • Desarrolladores
  • Commodoremaníaco
  • ******
  • Mensajes: 158
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #27 en: Mayo 19, 2010, 13:43:54 »
Cita de: "josepzin"
La de joystick es muy simple. Puedo terminar de pasar las funciones que me faltan y luego si tu tienes ganas/tiempo, se pueden pasar a assembler, pero aunque por ahora no se haga, ya se podría ir usando en C.


Ya me diras que tal va de velocidad, todo en C.  :wink:

Carlos

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 652
    • Ver Perfil
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #28 en: Mayo 19, 2010, 14:04:21 »
Cita de: "Wood"
¿Esta sección del foro esta accecible a qualquiera o solo a miembros?

Si empezamos con alguno proyecto de un juego seria bueno tener alguno sigilo para que no se pierda el elemento sorpresa.  :D


El subforo de programación es accesible a todo el mundo y creo que debería seguir siéndolo, lo que si estoy de acuerdo es que pudiese existir un subforo 'Proyectos' o algo así donde se puedan discutir las particularidades de proyectos en desarrollo y que ese esté restringido por petición de alguna manera => Bovirtual sería posible???

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13628
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Mi biblioteca de funciones para Sprites en cc65. V.01
« Respuesta #29 en: Mayo 19, 2010, 19:07:11 »
Cita de: "Carlos"
lo que si estoy de acuerdo es que pudiese existir un subforo 'Proyectos' o algo así donde se puedan discutir las particularidades de proyectos en desarrollo y que ese esté restringido por petición de alguna manera => Bovirtual sería posible???

Seguro que se puede hacer, aunque en caso de que se complique o no se pueda, sigue en pie mi ofrecimiento de mudar/instalar el foro en c64mania.com.
www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com