Autore Topic: Problema Con Programma In Codice Macchina  (Letto 4356 volte)

Pasquale_F

  • Visitatore
Problema Con Programma In Codice Macchina
« il: 16 Gennaio 2013, 12:01:54 »
 Salve, questo è il classico caso che dimostra come sia ostico programmare dal basic direttamente in codice macchina. Si tratta di un software noto ma la versione presente in questo sito:

http://www.atarimagazines.com/compute/issue59/turbodisk.php

che dovrebbe essere copia speculare di quanto apparso nella rivista tedesca Compute! nella metà degli anni ottanta, ha un bug nella porzione di codice che va direttamente al 1541.

Dopo avere passato un pomeriggio e una serata a leggerlo ho dedotto i seguenti possibili problemi:

1) manca una riga di data la cui somma deve dare 320;
2) il problema sta alla riga 190 per cui ck deve essere uguale 43140;
3) ho dimenticato una riga di data ma è da escludere visto che ho letto e riletto il codice svariate volte.

Premetto che mi interesserebbe capire meglio il funzionamento del loader turbodisk in modo da implementarlo in qualche mio software futuro che mi frulla per la mente per cui non statemi a dire di scaricare altre versioni presenti qua e la magari variazioni dell'originale opera di non si sa bene chi e come.

eregil

  • Administrator
  • Utente
  • *****
  • Post: 714
  • Gioco Preferito: Impossible Mission
Problema Con Programma In Codice Macchina
« Risposta #1 il: 16 Gennaio 2013, 13:26:23 »
 Resta il fatto che se sei in fase di apprendimento del linguaggio macchina, e quindi comunque riusciresti poco o nulla a risolvere problemi presenti in codice non funzionante, impiegheresti meglio il tuo tempo studiando qualcosa che funzioni.

La caccia agli errori nei DATA (che possono essere presenti sulla tua copia come sul listato originale!) nulla ha a che fare col "vero" debug di codice macchina. Perciò sposto in aiuto, lasciando aperta la possibilità che tu metta qualcuno nelle condizioni di aiutarti (perché mi sembra perfettamente inutile che qualcun altro digiti un'altra istanza dei loader DATA). Per il momento, se devi confrontare un listato trovato su internet con uno digitato di cui possiedi il prg, posso suggerire il ricorso a bastext, diff e olio di gomito.

N.B. Sebbene il turbodisk contenuto nel dischetto non sia identico - potrebbe trattarsi di una versione rivista e magari appunto corretta - una ricerca semi-rapida suggerisce che potresti provare a scaricare da http://arnold.c64.org/ il dischetto di Gazette! di luglio 1985 seguendo il percorso ftp:

/pub/magazines/Gazette1/015JUL85.ZIP

Non ho testato il funzionamento.
 
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.

Pasquale_F

  • Visitatore
Problema Con Programma In Codice Macchina
« Risposta #2 il: 16 Gennaio 2013, 13:32:00 »
 Della serie, poniti un problema e poi risolvilo da solo.

Su questo sito:

http://www.commodoreserver.com/

tra le tante cose è possibile scaricare molti numeri dell'ottima rivista tedesca Compute! con le relative immagini dei dischetti.

http://www.commodoreserver.com/PublicDisks...72E67A3C3C6D006

Turbodisk sembra che sia stato pubblicato varie volte a partire dal numero di luglio dell'85; in particolare nel numero di agosto dell'86 è stato riproposto con anche una utility che ne permetteva la riccollocazione in differenti aree di memoria per aumentarne la compatibilità.

Adesso non mi resta che confrontare la versione "ufficiale" con quella che ho io.

VICE e diff mi saranno di aiuto!

Saluti!

Pasquale_F

  • Visitatore
Problema Con Programma In Codice Macchina
« Risposta #3 il: 16 Gennaio 2013, 13:51:18 »
 
Citazione da: "eregil"
Resta il fatto che se sei in fase di apprendimento del linguaggio macchina, e quindi comunque riusciresti poco o nulla a risolvere problemi presenti in codice non funzionante, impiegheresti meglio il tuo tempo studiando qualcosa che funzioni.

La caccia agli errori nei DATA (che possono essere presenti sulla tua copia come sul listato originale!) nulla ha a che fare col "vero" debug di codice macchina. Perciò sposto in aiuto, lasciando aperta la possibilità che tu metta qualcuno nelle condizioni di aiutarti (perché mi sembra perfettamente inutile che qualcun altro digiti un'altra istanza dei loader DATA). Per il momento, se devi confrontare un listato trovato su internet con uno digitato di cui possiedi il prg, posso suggerire il ricorso a bastext, diff e olio di gomito.

N.B. Sebbene il turbodisk contenuto nel dischetto non sia identico - potrebbe trattarsi di una versione rivista e magari appunto corretta - una ricerca semi-rapida suggerisce che potresti provare a scaricare da http://arnold.c64.org/ il dischetto di Gazette! di luglio 1985 seguendo il percorso ftp:

/pub/magazines/Gazette1/015JUL85.ZIP

Non ho testato il funzionamento.
Scusami non avevo letto la risposta.
Non so cosa vuoi dire che la correzione dei data non c'entra niente col debuging in fase di esecuzione del programma in codice macchina; dove dovrei andare a corregerlo (l'eventuale) l'errore?
Il programma, anche diffettoso (out of data error), funziona è turbodisk viene creato ma in fase di esecuzione poi si comporta in maniera imprevista.

Le comuni definizioni di "debugging"
http://en.wikipedia.org/wiki/Debugging
http://searchsoftwarequality.techtarget.co...ition/debugging
si prestano perfettamente al mio caso, una volta individuato il problema e formulata l'eventuale soluzione.

Forse vuoi dire che dovrei corregere prima l'errore nel codice basic che genera il programma macchina (perchè, effetivamente, non si comporta come dovrebbe) e poi (eventualmente) quello macchina (quindi i data).

Comunque sia io sto ripetendo cose che, più o meno tanto tempo fa già conoscevo............... una rinfrescatina, insomma!

Saluti!

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Problema Con Programma In Codice Macchina
« Risposta #4 il: 16 Gennaio 2013, 16:11:44 »
 Intanto grazie per i link :)

@Pasquale_F: a parte tutto quel listato a me pare funzionare: ho copiato tutto in un editor sistemato il listato (caps,etc) e poi passato in vice e runnato il programma in basic.

ciao

Pasquale_F

  • Visitatore
Problema Con Programma In Codice Macchina
« Risposta #5 il: 16 Gennaio 2013, 17:14:02 »
 
Citazione da: "4e1541"
Intanto grazie per i link :)

@Pasquale_F: a parte tutto quel listato a me pare funzionare: ho copiato tutto in un editor sistemato il listato (caps,etc) e poi passato in vice e runnato il programma in basic.

ciao
A parte il "out of data error" (dovuto forse ad un mio errore di typing) sembrerebbe che il Turbodisk, almeno nella sua forma originale, non sia affatto supportato dal firmware della sd2iec, a differenza di quanto indicato sul sito ufficiale dallo sviluppatore. Forse ci si voleva riferire alla versione inclusa col GEOS o a versioni successive ma non certo a quella originaria pubblicata all'epoca dall'ottima rivista tedesca.

Almeno io sono arrivato a questa conclusione.

Per sicurezza controllerò la versione della mia sd2iec, ma mi sa che il GEOS è supportato da un po di tempo.

Pasquale_F

  • Visitatore
Problema Con Programma In Codice Macchina
« Risposta #6 il: 16 Gennaio 2013, 22:00:12 »
 Confermo che con la (mia almeno) sd2iec con l'ultimo firmware disponibile, TurboDisk, nella sua versione classica non funziona e non funziona con nessun programma che ho tentato di caricare. Lampeggia la luce rossa ma non succede niente ma se lo disabilito (sys 49655) funziona tutto.................. sull'emulatore Turbodisk invece carica tutto e molto velocemente, per cui non è un problema di codice.

Farò altri tentativi ma aspetto notizie anche da voi, diverse esperienze su altre sd2iec..................

Comunque altri loader ufficialmente supportati (come sjload) funzionano.

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 519
  • Gioco Preferito: Krakout
Problema Con Programma In Codice Macchina
« Risposta #7 il: 17 Gennaio 2013, 00:00:53 »
 Se il turbodisk classico non funziona basta usare una versione che funziona, dov'è il problema? Quando non avevo il jiffydos ho provato a usare sia una versione prg che una su cartuccia e funzionavano bene. Ma attenzione: non tutte le varianti della SD2IEC supportano turbodisk. Lo si può disabilitare al momento della compilazione del firmware e richiede la presenza del cristallo, che non tutte le SD2IEC hanno.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Problema Con Programma In Codice Macchina
« Risposta #8 il: 17 Gennaio 2013, 09:37:33 »
Citazione da: "tsm_carmine"
Se il turbodisk classico non funziona basta usare una versione che funziona, dov'è il problema? Quando non avevo il jiffydos ho provato a usare sia una versione prg che una su cartuccia e funzionavano bene.
Per curiosita' puoi segnalare una versione del turbodisk che funge con la SD2IEC?

ciao

 

Pasquale_F

  • Visitatore
Problema Con Programma In Codice Macchina
« Risposta #9 il: 17 Gennaio 2013, 12:53:45 »
 Ho formulato un'ipotesi che presto metterò in pratica: nel codice basic che genera il programma macchina elimerò la porzione relativa al 1541.

Forse il "protocollo" di comunicazione turbodisk tra i due device (c64<->1541) è già incluso nel firmware della sd2iec e quindi già lo conosce per cui non necessita che turbodisk stesso glie lo ricordi ogni volta.

Invito voi tutti a fare prove in proposito.

Nel readme incluso nei binari del firmware l'autore parla genericamente di loader turbodisk compatibili e non del programma stesso.

Qualche delucidazione in merito sarebbe stata più opportuna.

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Problema Con Programma In Codice Macchina
« Risposta #10 il: 17 Gennaio 2013, 13:30:13 »
Citazione da: "Pasquale_F"
Ho formulato un'ipotesi che presto metterò in pratica: nel codice basic che genera il programma macchina elimerò la porzione relativa al 1541.

Forse il "protocollo" di comunicazione turbodisk tra i due device (c64<->1541) è già incluso nel firmware della sd2iec e quindi già lo conosce per cui non necessita che turbodisk stesso glie lo ricordi ogni volta.

Invito voi tutti a fare prove in proposito.

Nel readme incluso nei binari del firmware l'autore parla genericamente di loader turbodisk compatibili e non del programma stesso.

Qualche delucidazione in merito sarebbe stata più opportuna.
Mah, se la SD2IEC supporta il protocollo (qualsiasi turboloader diverso dallo jiffydos) dovrebbe lasciare passare in maniera trasparente tutti i comandi diretti al drive utilizzati per riprogreamarlo (M-W e M-E).

ciao

4e1541

  • Utente
  • **
  • Post: 206
  • Gioco Preferito: nessuno in particolare
Problema Con Programma In Codice Macchina
« Risposta #11 il: 17 Gennaio 2013, 13:59:18 »
 CVD:

Citazione
Memory writing knows about the address used for changing the device
address on a 1541 and will change the address of sd2iec to the
requested value. It will also check if the transmitted data
corresponds to any of the known software fastloaders so the correct
emulation code can be used when M-E is called.

ciao

Pasquale_F

  • Visitatore
Problema Con Programma In Codice Macchina
« Risposta #12 il: 17 Gennaio 2013, 16:42:05 »
Citazione da: "4e1541"
CVD:

Citazione
Memory writing knows about the address used for changing the device
address on a 1541 and will change the address of sd2iec to the
requested value. It will also check if the transmitted data
corresponds to any of the known software fastloaders so the correct
emulation code can be used when M-E is called.

ciao
Ok, me ne sono accorto da solo, leggendo anche meglio il file README incluso coi binari del firmware ho capito il problema. Poco male, vuol dire che concentrerò i miei sforzi altrove.

Saluti!

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 519
  • Gioco Preferito: Krakout
Problema Con Programma In Codice Macchina
« Risposta #13 il: 17 Gennaio 2013, 23:57:14 »
Citazione da: "4e1541"
Per curiosita' puoi segnalare una versione del turbodisk che funge con la SD2IEC?
Questo hack funziona, l'originale o non lo trovo più o per qualche motivo non funziona con il firmware attuale. La versione cartuccia invece non la trovo da nessuna parte.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?

tsm_carmine

  • Redazione
  • Utente
  • ****
  • Post: 519
  • Gioco Preferito: Krakout
Problema Con Programma In Codice Macchina
« Risposta #14 il: 18 Gennaio 2013, 01:27:53 »
 Sono riuscito a dumpare la mia cartuccia e si è rivelata nient'altro che un hack della Epyx Fastload, quindi con ogni probabilità non esiste un "Turbo Disk" su cartuccia.
Riusciremo a costruire un mondo dove più nessuno osi pronunciare le parole... "lettore floppy"?