Go to the FreeLists Home Page Home Signup Help Login
 



[zxspectrum] || [Date Prev] [12-2006 Date Index] [Date Next] || [Thread Prev] [12-2006 Thread Index] [Thread Next]

[zxspectrum] Re: Provo a spiegarmi.

  • From: "Marcello Zaniboni" <marcello.zaniboni@xxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Thu, 14 Dec 2006 10:34:08 +0100
Dunque:  l'ABC80 è un computer svedese della fine degli anni '70, supportato
da Z88DK.
[...]
L'unico modo con cui ho visto caricare del codice macchina per quella
piattaforma è con il classico loader BASIC, con ciclo di READ e POKE da
delle istruzioni DATA..  ma in questo modo la maggior parte della RAM se ne
va per il LOADER !     Quindi ho trovato il modo di risparmiare 4 o 5 K
sfruttando delle routine in ROM.

Ma non ho capito... hai quindi già risolto il problema? In passato
avevo fatto alcune prove con il BASIC dello Spectrum e (rispetto alla
classica versione con READ e DATA) avevo ottenuto un certo risparmo di
RAM memorizzando del codice LM in una stringa esadecimale. Riporto
come esempio un pezzo di listato che carica lo scompattatore MegaLZ:

30 LET 
c$="2100e01100403e8008eda001ff02088720037e2317cb1130f608100f3e02cb2938183c0c280f013f0318e31025cb3938d80418da8101ff0418d40c20280804cb19d8cb108720037e231730f30880060618bc10043e01180f10080c2008011f0518ac10d0414e2305e56960194f0600edb0e11897"
40 LET p=VAL "61440"
50 FOR n=VAL "1" TO VAL "232" STEP VAL "2"
60 POKE p,16*(CODE c$(n)-48-39*(c$(n)>"9"))+CODE
c$(n+1)-48-39*(c$(n+1)>"9"): LET p=p+1
70 NEXT n
80 RANDOMIZE USR VAL "61440"

Ovviamente questo è un po' "calcoloso", ma se questo ABC80 ha un BASIC
veloce forse questo approccio ti può aiutare.





[ Home | Signup | Help | Login | Archives | Lists ]

All trademarks and copyrights within the FreeLists archives are owned by their respective owners.
Everything else ©2007 Avenir Technologies, LLC.