Commodore 64 > CC65

Problemas con el Compilador cc65

(1/4) > >>

RETROJuegos:
Hola chicos. Les quería pedir ayuda. Estoy intentando compilar con el  cc65 un juego que arme siguiendo un tutorial con el Lenguaje C (es el juego del ahorcado). Lo compilo con Dev C++ y aparentemente funciona perfecto. Pero al hacer lo propio con cc65 para crear el prg, me tira el siguiente error en las líneas 85 y 89 del código que les adjunto. Alguna idea de como corregirlo?...

ahorcado.c(85): Error: Call to undefined function `time'
ahorcado.c(89): Error: Expression expected
ahorcado.c(89): Warning: Statement has no effect
ahorcado.c(89): Error: `;' expected
ahorcado.c(89): Error: Undefined symbol: `frase'
ahorcado.c(89): Error: Subscripted value is neither array nor pointer
cc65.exe: Precondition violated: Expr->Flags & E_HAVE_MARKS, file `exprdesc.c', line 97
No se pudo encontrar D:\RETROComputacion\Commodore\COMPILA_C\proyectos\*.o
No se pudo encontrar D:\RETROComputacion\Commodore\COMPILA_C\proyectos\*.lst

javierglez:
para usar la función time tienes que incluir la librería, #include<time.h>
pero vamos lo veo en este link, no recuerdo haberlo hecho:
https://cc65.github.io/doc/funcref.html#time
en todo caso lo debe hacer para inicializar el generador de números aleatorios, debes poder comentar la línea de momento.

para dimensionar la variable frase char frase[longitud], no puedes hacerlo ahí enmedio y con una longitud sin definir, tienes que hacerlo al principio del método con todas las demás variables, y con una longitud máxima literal.

eso de la línea 22 system("mode con cols=80 lines=25"); deduzco que es una llamada a la línea de comandos y eso no lo tiene el c64, ni tiene 80 columnas de texto. Y el system("cls"); de la línea 31 deduzco que es para borrar la pantalla, en cc65 es clrscr();

En el curso de BASIC del VIC20 había un ahorcado con caracteres PETSCII que supongo que quedaría mas mono que este, pero supongo que este es un buen ejercicio para hacer, gracias por compartir. Pero si esos textos están para 80 columnas va a quedar todo descuadrado

Ten en cuenta que el cc65 solo es C en la medida en que el 6502 puede dar de si por eso le quitaron los doubles y un montón de cosas

suerte

RETROJuegos:
Ok, muchas gracias. Voy a probarlo y te cuento como me fue.

josepzin:
Aquí tendría que aparecer también el sinver @Dozznar...

Dozznar:
Hola!
Como comenta el amigo Javierglez debe estar incluido time.h
#include<time.h>

Pero mira también la definición que nos pasa:

https://cc65.github.io/doc/funcref.html#time

Tiene alguna particularidad como lo de tener que llamarla como "fastcall" y lo mas importante, que el resultado igual no es el esperado salvo que tengas un reloj de tiempo real en el commodore.

Lo mejor es ver el contexto en el que se usa la función. Si puedes mandar el código... igual se puede "apañar" de otra manera. (No se para que usará el programa la función)

Salu2!!

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa