Autore Topic: Salvataggi Listati In Basic  (Letto 3089 volte)

Corvo

  • Utente
  • **
  • Post: 114
    • Il mio canale YouTube
  • Gioco Preferito: Ninja
Salvataggi Listati In Basic
« il: 16 Febbraio 2009, 08:46:07 »
 Saluti a tutto il forum.
Questa è una mia semplice curiosità che sottopongo agli esperti.
Mi chiedevo (anche quando possedevo ed usavo il vero C64) le ragioni di un fatto che non riuscivo a spiegarmi.
Alcuni giochi o programmi scritti in Basic, contenevano (oltre a tutto il listato scritto con i normali comandi Basic) anche alcune istruzioni SYS... ed il relativo valore.

Quando salvavo questi programmi, si verificavano due possibilità:

1) caricando dal disco o cassetta sul quale avevo effettuato il salvataggio, il gioco o programma partiva ma poi, arrivato al punto del listato che conteneva la SYS, si fermava e mi dava "ready" in quanto, nel salvataggio, era incluso SOLO il listato in Basic (quindi SYS non funzionava... in quella allocazione non c'era nulla, ovviamente).

2) il salvataggio includeva sia il listato in Basic che ciò veniva richiamato dalla SYS e quindi funzionava tutto... Quindi tutto OK.

Anche con l'emulatore CCS64 il caso si ripete analogamente.
Infatti, ho verificato che salvando con il comando "BASIC --> Save Program" a volte, avviando i prg generati, si verificava il caso 1 o il caso 2.
Lo stesso discorso, ovviamente, si è verificato anche quando ho salvato su D64 o TAP.

Qui, ho inserito un esempio col programma "Test vita di coppia" che ho salvato dal TAP "Next Game 08 Lato A" (sia sul D64 che sul PRG):
http://www.spazioblog.it/uploads/c/Corvino72/210016.zip

Nel listato, c'è alla riga numero 1 la "SYS26400" ed ha funzionato.
Come mai in alcuni casi il salvataggio comprende tutto ed in altri no?
Dipende forse dalla volontà di chi ha scritto il programma oppure da altre cose che io non riesco ad immaginarmi?

Chiarisco che io non sono molto preparato in programmazione. Non faccio questo per lavoro. Per me è tutto in passatempo, ma fin dove arrivo, a volte mi piace capirci qualcosina :-)

Grazie e ciao a tutti.

fab

  • Utente
  • **
  • Post: 493
    • http://wav-prg.sourceforge.net/
  • Gioco Preferito: Tetris, Turrican, Impossible Mission
Salvataggi Listati In Basic
« Risposta #1 il: 16 Febbraio 2009, 10:30:39 »
 Normalmente, quando scrivi SAVE, usi la routine standard di salvataggio. Questa salva solo la porzione di memoria contentente il listato BASIC. Tecnicamente, mi pare (ma la memoria potrebbe ingannarmi) che l'indirizzo iniziale sia quello salvato alle locazioni 43 e 44, e quello finale sia alle locazioni 45 e 46.

Esisitono, comunque, dei trucchi per salvare porzioni di memoria arbitrarie, utilizzando POKE e SYS. E, naturalmente, usando routine non standard, come ad esempio il Turbo Tape.
Un giapponese sa recitare a memoria tutti i numeri di pi greco fino all'83431º decimale. Sa a memoria anche l'unico numero telefonico che è nella sua agendina - Daniele Luttazzi

rainstorm

  • Utente
  • **
  • Post: 69
Salvataggi Listati In Basic
« Risposta #2 il: 16 Febbraio 2009, 17:21:31 »
 Le istruzioni POKE e SYS vengono utilizzate per inserire codice macchina tramite il BASIC; con l'istruzione POKE inserisci un valore in una locazione di memoria; con la SYS fai una chiamata di sistema, dicendo all'interprete BASIC in quale indirizzo di memoria comincia il (sotto)programma in linguaggio macchina. Questo è possibile perché ogni istruzione assembly viene ad occupare una certa posizione in memoria ed ha un determinato codice macchina; se usi una POKE x,y la "x" indicherà la posizione di memoria mentre la y il valore del codice macchina da caricare in quella locazione. Forse l'ho scritto in maniera un po' troppo "grezza", ma credo che renda l'idea... Se in un programma in BASIC trovi una SYS appartentemente "isolata" (cioè non preceduta da una serie di istruzioni POKE - READ e DATA) potrebbe voler dire che in memoria vi era già un programma a parte.

Corvo

  • Utente
  • **
  • Post: 114
    • Il mio canale YouTube
  • Gioco Preferito: Ninja
Salvataggi Listati In Basic
« Risposta #3 il: 16 Febbraio 2009, 22:30:22 »
 Grazie per le risposte, ciao

saver71

  • Utente
  • **
  • Post: 279
  • Amante degli anni '80
    • saver71 - YouTube
Salvataggi Listati In Basic
« Risposta #4 il: 17 Febbraio 2009, 08:32:08 »
 Per quanto riguarda il salvataggio di specifiche aree di memoria e calcolo dei valori di byte alto e byte basso puoi dare un'occhiata a questo thread, che penso troverai interessante.