Autore Topic: Bug O Cosa?  (Letto 2054 volte)

Yurif999

  • Utente
  • **
  • Post: 86
    • http://www.facebook.com/juri.fossaroli
  • Gioco Preferito: Turrican
Bug O Cosa?
« il: 25 Febbraio 2008, 17:39:41 »
 Vorrei far notare una cosa nell'articolo "Compendio di basic" sezione programmazione ( http://ready64.org/articoli/leggi/idart/43...pendio-di-basic )
in fondo all'articolo c'e' un link ad un elenco di poke/sys utili.
ad un certo punto c'e' un:
"SYS42562 NEW"
cosa significa di preciso? perche se io scrivo:
10 PRINT "PAPERINO"
e poi do SYS42562
quando faccio LIST il programma c'e' sempre...

ciao
JMP $EA31

eregil

  • Administrator
  • Utente
  • *****
  • Post: 710
  • Gioco Preferito: Impossible Mission
Bug O Cosa?
« Risposta #1 il: 25 Febbraio 2008, 21:16:27 »
 Effettivamente la routine di NEW nella ROM del BASIC inizia a 42562 ($A642).

Chi ha compilato la lista, però, evidentemente ha annotato questa informazione senza prendersi la briga di testare la SYS.

La routine infatti inizia con BNE $A641 (dove si trova un RTS). Per come funziona l'interprete, se esegui la SYS invece di dare il comando NEW, questo BNE ha risultato positivo e la routine torna al BASIC direttamente.

Se invece hai digitato NEW, correttamente e senza parametri, il branch non avviene e la routine continua da $A644; un'occhiata al disassemblato dovrebbe essere sufficiente a riconoscere la routine (scrive il doppio 0 di fine programma all'inizio dell'area BASIC e aggiorna i puntatori).
 
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.

Yurif999

  • Utente
  • **
  • Post: 86
    • http://www.facebook.com/juri.fossaroli
  • Gioco Preferito: Turrican
Bug O Cosa?
« Risposta #2 il: 26 Febbraio 2008, 12:05:58 »
 si avevo notato anche io, il problema e' che se dai un SYS42564 ($A644) ottieni un effetto simile al RUN/STOP-RESTORE...
Non ho indagato piu' di tanto comunque, probabilmente quando si digita il comando NEW e si preme RETURN vengono caricati dei valori particolari nei registri o nell'accumulatore..
 
JMP $EA31