[noob] Recuperar programa escrito

Todo lo relacionado a clásicos ordenadores y PC está acá, desde hardware hasta juegos.
Responder
Avatar de Usuario
brunoip
Check Point!
Check Point!
Mensajes: 23199
Registrado: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contactar:

[noob] Recuperar programa escrito

Mensaje por brunoip » 02/05/15 12:47

Hola, hoy vengo con una pregunta noob. El tema es así, escribo un programa en la commodore 64, le doy Run y tira un error porque en algún lado escribí algo mal, se puede recargar el programa para corregirlo o hay que escribirlo todo de nuevo?
Imagen Imagen

Avatar de Usuario
fede2222
Fatality!
Fatality!
Mensajes: 8954
Registrado: 27/11/14 23:33

Re: [noob] Recuperar programa escrito

Mensaje por fede2222 » 02/05/15 14:37

Si.. Si pones LIST debería mostrarte el programa

Luego pones nro de linea a reemplazar con el nuevo código

Ej:
List

10 print "hol"
20 print "fede"

Me comí la a
Pongo:
10 print "hola"
Y lo corrige
Disponible... llamar al 123312394834

Avatar de Usuario
brunoip
Check Point!
Check Point!
Mensajes: 23199
Registrado: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contactar:

Re: [noob] Recuperar programa escrito

Mensaje por brunoip » 02/05/15 16:42

ah buenísimo, lo voy a probar, gracias.
Imagen Imagen

Avatar de Usuario
brunoip
Check Point!
Check Point!
Mensajes: 23199
Registrado: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contactar:

Re: [noob] Recuperar programa escrito

Mensaje por brunoip » 03/05/15 20:54

alguien nota que hice mal?
Imagen
quería hacer este programa para probar los joys
http://www.lemon64.com/forum/viewtopic. ... 08c31dd8a2
Imagen Imagen

Avatar de Usuario
Nightwarex
Mortal Kombat Player
Mortal Kombat Player
Mensajes: 1269
Registrado: 08/09/14 13:00
Frase: La ignorancia se paga caro
Ubicación: Córdoba

Re: [noob] Recuperar programa escrito

Mensaje por Nightwarex » 03/05/15 21:35

Lo voy a ver, pero estoy bastante oxidado

Fijate aca http://www.commodore.ca/manuals/c64_pro ... _guide.pdf
(pagina 344)

Que es de donde saco el programa ese, quizas sea mas facil probar con ese, o ver que es lo que esta mal

Avatar de Usuario
brunoip
Check Point!
Check Point!
Mensajes: 23199
Registrado: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contactar:

Re: [noob] Recuperar programa escrito

Mensaje por brunoip » 03/05/15 21:54

genial el pdf, gracias
Imagen Imagen

Avatar de Usuario
the98
Check Point!
Check Point!
Mensajes: 9508
Registrado: 03/07/12 11:45

Re: [noob] Recuperar programa escrito

Mensaje por the98 » 03/05/15 22:00

Imagino que habrás buscado el error, pero por las dudas:

http://www.devili.iki.fi/Computers/Comm ... e_400.html

BAD SUBSCRIPT The program was trying to reference an element of an array whose number is outside of the range specified in the DIM statement.

Avatar de Usuario
fede2222
Fatality!
Fatality!
Mensajes: 8954
Registrado: 27/11/14 23:33

Re: [noob] Recuperar programa escrito

Mensaje por fede2222 » 04/05/15 14:47

Hay que cambiar el 15 por 16 en la linea que da error
Esto FR=JV AND 15 por esto FR=JV AND 16

Explicacion:
Estas pidiendo un valor del vector mas grande que el limite del vector...

O sea vos tenes DR$ del 0 al 10 (11 posiciones)... donde DR$(1) es "UP", DR$(2) es "DOWN"... y el ultimo es DR$(10) es "DO/RI"

El valor JV que estas usando en la linea 125, PRINT DR$(JV), esta fuera de rango. O sea que JV debe ser 14, 15.. o algun valor mayor al limite del vector que es 10.

Para comprobar que valor tiene JV antes de hacer llamada erronea, crea una linea
124 PRINT "JV VALOR:" : PRINT JV

Deberias fijarte porque JV vale mas que 10...

Por lo que lei en la guia tenes en los primeros 5 bits las lecturas del puerto del joystick, lo que pasa que el PEEK lee el byte entero. Por eso usa el AND para despejar el valor que le interesa

Los bits del joystick se interpretan asi:
Bit 1 Prendido: Up
Bit 2 Prendido: Down
Bit 3 Prendido: Left
Bit 4 Prendido: Right
Bit 5 Prendido: Fire

Si haciendo JV=PEEK(56231)

Por ejemplo

Código: Seleccionar todo

Nro Bit                1  2  3  4  5
Potencias de 2         1  2  4  8  16
Bits Leidos            0  1  0  1  1
El bit 2 y 4 esta prendido, o sea que el joystick esta DOWN+RIGHT, y el bit 5 esta prendido, o sea que ademas esta el boton de disparo.

Si sumamos las potencias de 2, el valor de JV es (bit1) 2 + (bit 4) 8 + (bit 5) 16 = 26
O sea que JV=PEEK(56231) te guarda en JV el valor 26.


Por ejemplo con esto
FR=JV AND 16
despeja solo el bit del joystick

Código: Seleccionar todo

Nro Bit                1  2  3  4  5
Potencias de 2         1  2  4  8  16
Bits Leidos            0  0  1  1  1
Operandor AND           AND
Valor 16               0  0  0  0  1
--------------------------------
Bits Que Quedan        0  0  0  0  1
Si FR vale 16, el bit 5 estaba prendido. O sea que el boton del joystick estaba apretado.
La linea 110 habria que reemplazar el valor 15 por 16, sino no estaria detectando el Joystick

Si el boton estaba apretado, FR valdra 16, si estaba suelto valdra 0. Entonces se lo resta a JV para apagar UNICAMENTE ese bit. Fijate que si al valor de 26, le resto 16, me da 10, lo mismo que esten prendidos solo los bits 2 y 4.

Cuando haga PRINT DR$(JV).. JV valdria 10, si vemos el valor del vector en la posicion 10, es "DO/RI"
Disponible... llamar al 123312394834

Avatar de Usuario
brunoip
Check Point!
Check Point!
Mensajes: 23199
Registrado: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contactar:

Re: [noob] Recuperar programa escrito

Mensaje por brunoip » 04/05/15 14:52

Gracias fede, sabia que estaba errando tratando de recuperar datos en un indice que no habia pero no entendia toda la magia que habia por detras. cuando legue a casa lo pruebo :)
Imagen Imagen

Responder