[zxspectrum] Re: Funzioni definite dall' utente

  • From: Matteo Vitturi <mattsteel@xxxxxxxxxx>
  • To: "zxspectrum@xxxxxxxxxxxxx" <zxspectrum@xxxxxxxxxxxxx>
  • Date: Mon, 29 Oct 2012 22:08:50 +0100

Ciao, ecco un esempio che converte un intero nella sua rappresentazione stringa 
in base binaria.

http://www.worldofspectrum.org/forums/showthread.php?t=35743

nel post di risposta che ho scritto qualche tempo fa, ho usato una stringa 
"literal" nel corpo della definizione della funnzione come "buffer temporaneo" 
per poi restituire la risposta.
Roko, trova poi una migliore soluzione tramite la chiamata RST48 (MAKE_ROOM).
Direi che potrebbe essere un buon punto di partenza.

_M.


> Date: Sun, 28 Oct 2012 17:29:59 +0100
> From: andrea@xxxxxxxxxxxx
> To: zxspectrum@xxxxxxxxxxxxx
> Subject: [zxspectrum] Funzioni definite dall' utente
> 
> Ciao a tutti,
> 
> Ho  intenzione  di realizzare alcune funzioni extra in LM per accedere
> direttamente  al disco, e volevo mettere in pratica un metodo elegante
> che  viene  impiegato  con  profitto  nel Beta Basic: si definisce una
> funzione nella prima linea del basic in questo modo:
> 
> 1 DEF FN a(x) = USR 64000
> 10 LET n = FN a(1000)
> 
> la  chiamata alla funzione fa partire la routine che legge i parametri
> nella  workspace  puntata  dalla variabile di sistema DEFADD, e carica
> nella  stesso  workspace  il  risultato  che  viene  poi  passato alla
> variabile della funzione chiamante.
> 
> Fin  qui  tutto  bene, la parte difficile consiste nel predisporre una
> funzione  che  produce  un  risultato  stringa. Per prima cosa, non e'
> possibile inserire direttamente una linea tipo:
> 
> 1 DEF FN a$(x) = USR 64000
> 
> dato  che  non passa il controllo sintattico. Peccato che nella riga 0
> del BetaBasic siano presenti funzioni con questo formato, e mi domando
> se   le   abbiano   prodotte  con  qualche  trucco...  Vedete  qualche
> alternativa?
> 
> Dopo  aver  scavalcato questo ostacolo si puo' parlare del codice e di
> come  lavora  sull'  area  di lavoro della funzione, ma questa la vedo
> gia' piu' facile...
> 
> Ciao!
> 
> Andrea
> 
                                          

Other related posts: