|
[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.
|