[noob] Recuperar programa escrito

Todo lo relacionado a clásicos ordenadores y PC está acá, desde hardware hasta juegos.
Post Reply
User avatar
brunoip
Check Point!
Check Point!
Posts: 23263
Joined: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contact:

[noob] Recuperar programa escrito

Post by brunoip »

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?
Image Image
User avatar
fede2222
Fatality!
Fatality!
Posts: 8954
Joined: 27/11/14 23:33

Re: [noob] Recuperar programa escrito

Post by fede2222 »

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
User avatar
brunoip
Check Point!
Check Point!
Posts: 23263
Joined: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contact:

Re: [noob] Recuperar programa escrito

Post by brunoip »

ah buenísimo, lo voy a probar, gracias.
Image Image
User avatar
brunoip
Check Point!
Check Point!
Posts: 23263
Joined: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contact:

Re: [noob] Recuperar programa escrito

Post by brunoip »

alguien nota que hice mal?
Image
quería hacer este programa para probar los joys
http://www.lemon64.com/forum/viewtopic. ... 08c31dd8a2
Image Image
User avatar
Nightwarex
Mortal Kombat Player
Mortal Kombat Player
Posts: 1269
Joined: 08/09/14 13:00
Frase: La ignorancia se paga caro
Location: Córdoba

Re: [noob] Recuperar programa escrito

Post by Nightwarex »

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
User avatar
brunoip
Check Point!
Check Point!
Posts: 23263
Joined: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contact:

Re: [noob] Recuperar programa escrito

Post by brunoip »

genial el pdf, gracias
Image Image
User avatar
the98
Check Point!
Check Point!
Posts: 9753
Joined: 03/07/12 11:45

Re: [noob] Recuperar programa escrito

Post by the98 »

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.
User avatar
fede2222
Fatality!
Fatality!
Posts: 8954
Joined: 27/11/14 23:33

Re: [noob] Recuperar programa escrito

Post by fede2222 »

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

Code: Select all

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

Code: Select all

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
User avatar
brunoip
Check Point!
Check Point!
Posts: 23263
Joined: 09/06/10 11:31
Frase: Aguante el n64 vieja, no me importa nada
Contact:

Re: [noob] Recuperar programa escrito

Post by brunoip »

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 :)
Image Image
Post Reply