Altro messaggio importante (per chi vuole tutto il file può scaricarlo
dal mio sito):
https://www.emagsoftware.it/spectrum/sinclairita.zip
--------------------------------------------------------------------------------
From: Alessandro Brienza 2:334/210
To: Enrico Maria Giordano 2:24210/1
Subj: HD Project su ROM
Date: Ve, 04 Lug 97 22:05
--------------------------------------------------------------------------------
EMG> Direi che la cosa risulta simpatica dato che l'utilizzo e'
sicuramente
EMG> facilitato rispetto alla scomoda sintassi delle UDF.
Altro che. Mi sto' sistemando in una maniera che la Plus D mi diventera'
quasi
superflua. :-)
AB> mi sono accorto dopo diverse prove che in fase di caricamento si
possono
AB> avere alcuni errori di ricezione nei primi byte.
EMG> Probabilmente c'e' qualche temporizzazione diversa. Forse la ROM
e' piu'
EMG> lenta della RAM?
L'avevo pensato anch'io, dopo ho capito da cosa dipendeva.
EMG> Le routine sono comunque poste sopra i 32 Kb, giusto? Mah...
No e' tutto in ROM; ho sfruttato il printer buffer per alcune variabili
e basta.
AB> Il programma utilizza delle variabili e un buffer tutte poste nel
printer
AB> buffer.
EMG> Bah, poco male, credo.
Per il COPY non ci dovrebbero essere problemi, semmai per qualche
programma che
fa' uso di quella zona per metterci delle routine.
Ritornando al malfunzionamento, ho prima cercato di aggiustare le
temporizzazioni della routine RXD, ed ero arrivato a un punto che solo
il primo
byte lo ricevevo errato.
Poi mi sono accorto che avevo cambiato un'istruzione, LD HL,(STA) in due LD
H,(IX+n), poste tra la fine della ricezione del nome del file e l'inizio
del
blocco da ricevere.
Infatti la prima istruzione impiega 16 T-Stati mentre le due indicizzate
2*19
T-Stati.
Per rimediare al debito dei T-Stati ho spostato il caricamento del
registro HL
indicizzato in un punto prima della ricezione del nome del file poi ho
con un
PUSH HL lo salva sullo stack.
Al posto dell'LD HL,(STA) mi e' bastato mettere un POP HL di soli 10
T-Stati. A
questa maniera mi e' stato molto piu' semplice mettere a punto la
routine RXD.
Ho fatto fare alcune centinaia di prove di caricamento con verifica, senza
riscontrare anomalie nella ricezione.
Adesso non ci sono piu' limiti nell'usare il PCHOST. In teoria e' possibile
disporre di qualsiasi programma, utility, istantaneamente senza stare a
cervellarsi per ricordare in quale dischetto si era posto quel tal
programma.
Ho risolto anche un problemino del PCHOST04; infatti se mentre gira il
PCHOST
sul PC, lo Spectrum deve essere spento e riacceso (ad esempio per avere
un reset
completo della Plus D), il PCHOST va' in errore, ma prima di ritornare
al DOS
attende la pressione di un tasto. Questo comportamento forza l'utente a
rimettere le mani sul PC e a riaccendere eventualmente il monitor.
Pero' ho trovato uno stratagemma per forzare il PCHOST a ritornare al
DOS senza
attendere la pressione di un tasto.
Ecco come: PCHOST -W > NUL
Ho poi compilato queste istruzioni Basic:
DEFINT A-Z
PCH:
SHELL "PCHOST -W > NUL"
IF INKEY$<>CHR$(27) THEN GOTO PCH
END
Finche' non sara' l'utente a premere l'Escape sul PC, il PCHOST non si
potra'
mai fermare.
Alessandro
--- Maximus 2.02
* Origin: Joe COCKER's BBS - Spazio Sinclair. (2:335/17)
--
Enrico Maria Giordano
http://www.emagsoftware.it
http://www.emagsoftware.it/emgmusic
http://www.emagsoftware.it/spectrum
http://www.emagsoftware.it/tbosg