Ready64 Forum

Commodore 64 => Aiuto & Domande => Topic aperto da: tonymoon - 16 Aprile 2019, 17:43:18

Titolo: Errore sul listato
Inserito da: tonymoon - 16 Aprile 2019, 17:43:18
Sulla rivista anno1 numero2 di PaperSoft, c'è il listato di "Quattro" per il Commodore64. Quando digito la prima riga, e do invio per inserire le altre mi da errore. Questa è la stringa:

8 sr=4*(peek(36866)and128)+64*(peek(36869)and120):co=(37888+4*(peek(36866)and128))-sr

Un salutone a tutti.  :(

MOD - Spostato in Aiuto & Domande. -eregil
Titolo: Re:Errore sul listato
Inserito da: Raffox - 16 Aprile 2019, 20:52:11
Segnalazione interessante, grazie tonymoon! :D
Vediamo se c'è qualcuno esperto in grado di individuare la causa dell'errore.
Titolo: Re:Errore sul listato
Inserito da: Andy/AEG - 17 Aprile 2019, 00:15:25
Sulla rivista anno1 numero2 di PaperSoft, c'è il listato di "Quattro" per il Commodore64. Quando digito la prima riga, e do invio per inserire le altre mi da errore. Questa è la stringa:

8 sr=4*(peek(36866)and128)+64*(peek(36869)and120):co=(37888+4*(peek(36866)and128))-sr


IL basic del C64 prevede una lunghezza massima di 80 caratteri per linea di programma, numero linea compreso, ovvero due linee a video da 40 caratteri ciascuna.

Nel caso della riga in questione siamo ad 85. Questo significa che una volta digitata tutta la sequenza a video risulta così:

8 sr=4*(peek(36866)and128)+64*(peek(3686
9)and120):co=(37888+4*(peek(36866)and128
))-sr


col cursore dopo l'ultimo carattere.

Premendo Return viene quindi considerata solo la terza linea, l'interprete quindi si trova un comando ))-sr che non capisce e quindi restituisce un syntax error.

A.
Titolo: Re:Errore sul listato
Inserito da: tonymoon - 17 Aprile 2019, 09:08:07
Ok Andy/AEG, a questo punto come posso modificare la stringa per far funzionare il programma?. :rtfm:
Titolo: Re:Errore sul listato
Inserito da: saver71 - 17 Aprile 2019, 09:13:44
Hai 2 possibili soluzioni:

1. Usa P{Shift + E} al posto di PEEK per abbreviare e farci stare tutta la riga in meno di 80 caratteri:

Codice: [Seleziona]
8 sr=4*(p{Shift + E}(36866)and128)+64*(p{Shift + E}(36869)and120):co=(37888+4*(p{Shift + E}(36866)and128))-sr
2. Spezzi la riga in 2:

Codice: [Seleziona]
8 sr=4*(peek(36866)and128)+64*(peek(36869)and120)
9 co=(37888+4*(peek(36866)and128))-sr

La riga 9 non dovrebbe esserci, dato che sulla versione per VIC non c'è.
Diversamente, adotta la prima soluzione e sei a cavallo. ;)






Titolo: Re:Errore sul listato
Inserito da: tonymoon - 17 Aprile 2019, 12:19:11
Ok Saver71, non avevo pensato alle abbreviazioni. Daccordo provo cos'ì.
Grazie poi ti faccio sapere se va bene.  :azz:
Titolo: Re:Errore sul listato
Inserito da: eregil - 17 Aprile 2019, 15:54:18
Sulla rivista anno1 numero2 di PaperSoft, c'è il listato di "Quattro" per il Commodore64. Quando digito la prima riga, e do invio per inserire le altre mi da errore. Questa è la stringa:

8 sr=4*(peek(36866)and128)+64*(peek(36869)and120):co=(37888+4*(peek(36866)and128))-sr

Un salutone a tutti.  :(

Per favore, non usare la sezione Programmazione per le richieste di aiuto. È una sezione dedicata a chi contribuisce materiale autoprodotto e a discussioni di tecniche di programmazione (e di realizzazione di grafica e musica) a un livello intermedio/avanzato.

Ciò detto, ho già fatto notare che i listati di "Quattro" nei numeri 1 e 2 di Papersoft Anno I sono scambiati. Quello marcato per C64 è in realtà per VIC 20, e viceversa.