CPCBasic: Compilador cruzado de BASIC
No, no tiene nada especial para CPC plus. Lo único que se me ocurre es que el snapshot versión 2.0 que genera el WINAPE no sea 100% compatible con otros emuladores.
Un colega lo ha probado en un CPC real y me ha dicho que también le funciona. El bucle principal y la lógica de pintado está en BASIC. Las rutinas de pintado, calculo de coordenadas, vsync, cls (y próximamente lectura del teclado) estan en ensamblador. Lo único que se me ocurre que pueda pasar en otros emuladores es que no emulen perfectamente el CRTC.
Lo digo porque, para hacer el cambio de pantalla hago lo siguiente:
El crtc está configurado para mostrar 40x25 caracteres (mas el borde).
Pongo esos valores a 0 (desaparece la pantalla y queda todo como un enorme borde)
Hago un CLS (pero no el del firmware, sino uno en ASM que le he robado a César y que puso en otro hilo)
Redibujo el mapeado correspondiente
Restauro el CRTC a 40x25 caracteres
Empleo el CRTC en lugar de poner las tintas a 0 porque es inmensamente más rapido hacer 4 outs que recorrerme toda la paleta de colores 2 veces.
Asi que, o es tema de la versión del snapshot o de la incompatibilidad de algun emulador con el CRTC (no lo se).
Salu2
Un colega lo ha probado en un CPC real y me ha dicho que también le funciona. El bucle principal y la lógica de pintado está en BASIC. Las rutinas de pintado, calculo de coordenadas, vsync, cls (y próximamente lectura del teclado) estan en ensamblador. Lo único que se me ocurre que pueda pasar en otros emuladores es que no emulen perfectamente el CRTC.
Lo digo porque, para hacer el cambio de pantalla hago lo siguiente:
El crtc está configurado para mostrar 40x25 caracteres (mas el borde).
Pongo esos valores a 0 (desaparece la pantalla y queda todo como un enorme borde)
Hago un CLS (pero no el del firmware, sino uno en ASM que le he robado a César y que puso en otro hilo)
Redibujo el mapeado correspondiente
Restauro el CRTC a 40x25 caracteres
Empleo el CRTC en lugar de poner las tintas a 0 porque es inmensamente más rapido hacer 4 outs que recorrerme toda la paleta de colores 2 veces.
Asi que, o es tema de la versión del snapshot o de la incompatibilidad de algun emulador con el CRTC (no lo se).
Salu2
Antes de nada me gustaría apuntar que no creo que nadie quiera acusar a DaD de nada. Todos sabemos que a veces es difícil interpretar la palabra escrita y que por eso surgen algunos posts de aclaraciones. Algunos de estos escritos pueden llevar a malinterpretaciones y a malos rollos. De los que posteamos habitualmente todos sabemos de qué pie cojeamos y a veces olvidamos precisamente esto y nos enzarzamos en discusiones triviales y que no conducen a nada. Errare humanum est y por eso seguimos y seguiremos por aquí. Sabemos ver la luz en el fondo del túnel y allí nos dirijimos.
En definitiva, y yendo al grano... DaD, no creo que MiguelSky haya tratado de someterte y cortar tu libertad de expresión. lo único que veo que te ha dicho es que no era necesario que te escusaras que todos habíamos visto que no iba con mala leche. Que aquí nos conocemos y no hay que explicar todo lo que decimos. Te pediría que no te sientas ofendido y que, por favor, continúes como hasta ahora porque todos apreciamos tu trabajo un montón y además, vemos que mantienes bastante viva la escena y eso es necesario.
En definitiva, y yendo al grano... DaD, no creo que MiguelSky haya tratado de someterte y cortar tu libertad de expresión. lo único que veo que te ha dicho es que no era necesario que te escusaras que todos habíamos visto que no iba con mala leche. Que aquí nos conocemos y no hay que explicar todo lo que decimos. Te pediría que no te sientas ofendido y que, por favor, continúes como hasta ahora porque todos apreciamos tu trabajo un montón y además, vemos que mantienes bastante viva la escena y eso es necesario.
Salu2,
Arta
Arta
Pero mírale !!!! Si es que no para !!!!queda como un enorme borde
EDITO : Arta, como siempre, tiene toda la razón . Relájate y verás como se ven las cosas de otro modo. Yo no me suelo preocupar por lo que escribo y alguna vez alguien me ha malinterpretado (y puede que se ofendiera incluso) y al decírmelo lo hemos aclardo y punto. Ya sabeis que a mí me gusta mucho decir (y hacer, aunque no las veais ) payasadas y siempre corro ese riesgo, pero mientras nadie se me ofenda me siento libre de poner lo que me sale de los coj.. estoooo..., lo que en verdad quiero decir
Exprésate con total libertad, que si metes la pata, no te preocupes: habrá muchos que te lo recuerden
Como bien decis el problema de los foros es que a veces se mal interpretan cosas, porque es complicado saber con que intención está alguien diciendote algo, sin poder oir su tono de voz, sin mirarle a los ojos y ver si se lo ponen rojos o no . Asi que yo creo que , aunque es dificil, lo que hay que hacer siempre es pensar que todo lo que se escribe, en un principio es de buen rollo, y SIN lugar a segundas interpretaciónes. Cuando alguien quiera por ejemplo decirme algo mal, que empiece asi el POST:
elteclas eres un puto cabron! entonces sabre que esta de mal rollo conmigo .
elteclas eres un puto cabron! entonces sabre que esta de mal rollo conmigo .
De pequeño siempre quise ser hacker, pero mi pequeño CPC no tenía puerto ethernet.
La implementación de la instrucción IF hubiera sido más sencilla de esta forma que dices, pero por mantener la compatibilidad con el Locomotive Basic está como está. Para montar estructuras como la que dices se podría hacer:Otra sugerencia muy util, seria poder emplear estructuras de este tipo:
Código: Seleccionar todo
IF A=0 THEN
bla bla bla
bla bla bla
bla bla bla
ELSE
bla bla bla
END IF
Código: Seleccionar todo
IF A=0 THEN _
<sentencia1> _
<sentencia2> _
... _
ELSE _
<sentencia3> _
<sentencia4> _
...
Bueno... he mejorado un poco más la velocidad.
Ahora utilizo una rutina en ensamblador para la lectura del teclado en lugar de emplear las del BASIC o Firmware.
Ya tenemos pleno control del sprite en cualquier dirección.
Emplear cursores para manejar el sprite por las pantallas.
El snapshot está ahora en v1.0. En el CPCE también funciona. Probadlo en otros emuladores (Caprice, etc), a ver si se ha solucionado el tema.
Salu2!
Ahora utilizo una rutina en ensamblador para la lectura del teclado en lugar de emplear las del BASIC o Firmware.
Ya tenemos pleno control del sprite en cualquier dirección.
Emplear cursores para manejar el sprite por las pantallas.
El snapshot está ahora en v1.0. En el CPCE también funciona. Probadlo en otros emuladores (Caprice, etc), a ver si se ha solucionado el tema.
Salu2!
- Adjuntos
-
- mapa_dad1.zip
- (12.83 KiB) Descargado 165 veces
DaDMan, ese compilador para CPC de donde lo saco? quiero hacer unas pruebas con los dos compiladores que estas usando. Porque el 3DLab lo ha mejorado mucho, pero como dice por ahi (ahora no me acuerdo quien lo puso) , cuando dibuja la salida o la entrada, va superlento Que es raro, pero igual tiene opciones de compilar, no se. Me gustaria probarlo pero no se de donde lo sacaste.
De pequeño siempre quise ser hacker, pero mi pequeño CPC no tenía puerto ethernet.
Está en este mismo hilo (que no te lo lees todo!!!!). FABACOM, está en este mismo hilo para descargar.DaDMan, ese compilador para CPC de donde lo saco? quiero hacer unas pruebas con los dos compiladores que estas usando. Porque el 3DLab lo ha mejorado mucho, pero como dice por ahi (ahora no me acuerdo quien lo puso) , cuando dibuja la salida o la entrada, va superlento Que es raro, pero igual tiene opciones de compilar, no se. Me gustaria probarlo pero no se de donde lo sacaste.
Las opciones de compilacion tambien estan en este mismo hilo (justo antes de la descarga).
Lo que parece ir raro en la compilación es la rutina de basic FILL. De todos modos, esa rutina hay que evitarla en los juegos, si quieres que funcionen en todos los amstrad. La rutina FILL (entre otras) no funcionan en el CPC 464 por ejemplo.
Salu2
Joder DadMan, no me pegues la bulla, que intento leerlo todo, pero soy humano, trabajo , tengo mujer e hija y un CPC, y me falta tiempo. Y además hace dos dias que estoy aqui, que quieres?Está en este mismo hilo (que no te lo lees todo!!!!). FABACOM, está en este mismo hilo para descargar.
Las opciones de compilacion tambien estan en este mismo hilo (justo antes de la descarga).
Lo que parece ir raro en la compilación es la rutina de basic FILL. De todos modos, esa rutina hay que evitarla en los juegos, si quieres que funcionen en todos los amstrad. La rutina FILL (entre otras) no funcionan en el CPC 464 por ejemplo.
Salu2
Es interesante lo que dices del FILL, ya no lo recordaba, quizás por eso el compilador no lo tenga en cuenta? pero es que no solo no lo compila bien, sino que lo ralentiza todavía más, es raro.
El compilador cruzado de BASIC, le he estado echando un ojo a la web y esta muy bien, tiene muchas ventajas, pero me da tanto palo tener que cambiar toda la estructura de mis juegos antiguos, que a no ser que haga algo nuevo, no me va a servir. Lo que no entiendo es lo de los errores de compilación. O sea que no muestra errores al compilar? o no me he enterado bien...
Saludos CPCeros
De pequeño siempre quise ser hacker, pero mi pequeño CPC no tenía puerto ethernet.
No tiene nada que ver, pero esto que explica del compilador me ha recordado una cosa que lei no hace mucho. Si os fijais la ultima instruccion es TRON, como la pelicula TRON, Steven Lisberger que es el creador de la peli, sabia de este comando pero no lo que hacia, y como le molo el nombre y lo vio muy "informático" pues le puso asi a la peli. Lo que supo despues, es que el comando TRON tiene mucho que ver con lo que realmente era TRON en su pelicula, una especie de verificador. Perdon por el tocho, pero es graciosoAUTO, CHAIN, CHAIN MERGE, CONT, DELETE, EDIT, LIST, LOAD (BASIC program),
MERGE, RENUM, RESUME NEXT, SAVE (BASIC program), TROFF, TRON
De pequeño siempre quise ser hacker, pero mi pequeño CPC no tenía puerto ethernet.
Se puede resumir en que no es un intérprete y no te va a decir: "Syntax error" o "GOSUB without RETURN".
Simplemente te soltará algo asi como; "Error en linea tal" y listos. No te dará información sobre el tipo de error. Tan solo te avisará si tienes alguna variable no declarada (hay que declararlas al principio todas, no como en el BASIC del CPC) o si algun tipo de variable no coincide... Poco más.
Te he dejado un comentario en "Boxes".
Salu2.
Simplemente te soltará algo asi como; "Error en linea tal" y listos. No te dará información sobre el tipo de error. Tan solo te avisará si tienes alguna variable no declarada (hay que declararlas al principio todas, no como en el BASIC del CPC) o si algun tipo de variable no coincide... Poco más.
Te he dejado un comentario en "Boxes".
Salu2.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro
La Comunidad Española |