
|
[zxspectrum]
||
[Date Prev]
[09-2004 Date Index]
[Date Next]
||
[Thread Prev]
[09-2004 Thread Index]
[Thread Next]
[zxspectrum] Re: loader
- From: "Matteo" <gondorff@xxxxxxxxxx>
- To: <zxspectrum@xxxxxxxxxxxxx>
- Date: Sat, 11 Sep 2004 00:05:38 +0200
> Non e` facile non far scrivere sullo schermo il nome di un file che sta
> per eseere caricato. O si passa in maniera headerless (non possibile in
> BASIC)
Difatti, anche se mi sono sempre chiesto a cosa sarebbe potuto servire un
blocco di caricamento headerless, a risparmiarsi forse il tempo di un
pilot>header? ok, "facciamoli tutti così", invece no... o piuttosto per
stupire: "toh, un blocco che non scrive il nome, com'è possibile?" :-) C'è
un motivo in particolare?
> o si "annulla" lo stream dello schermo (l'ho visto fare una sola
> volta e non mi ricordo come si faccia),
Non conosco la tecnica, purtroppo.
> o ci si accontenta di settare
> ink e paper dello stesso colore. Il nome non compare ma purtroppo un'
> "impronta" di 17 caselle vuote compare comunque.
Ovviamente il caso da me riportato prevedeva l'assenza perfino dell'impronta
come la chiami tu, per altro sgradevole sopra uno screen$.
> La cosa funziona se
> c'e` una riga vuota nella schermata. Come nei primi giochi Ultimate.
Ok, e questo lo ebbi pensato anche io a suo tempo...
> Dal listato, credo che la schermata in questione abbia le ultime due
> righe vuote. Sfortunatamente, normalmente non si puo` scrivere in queste
> due righe. Infatti, quando dalla 22a si va a capo, abbiamo lo scrolling
> dello schermo. C'e` comunque un trucco legato alla variabile di sistema
> all'indirizzo 23659. Essa indica quante righe della parte bassa dello
> schermo sono assegnate al "bordo", o canale #1 o della tastiera che dir
> si voglia. Normalmente e` due, ma puo` incrementare se si scrive molto
> nella parte bassa dello schermo con PRINT #1 .
Sì, ricordo il trucchetto del PRINT #1; una volta scrissi in quella maniera
qualche cosa di diverso sullo Spectrum di un mio amico, forse Commodore 64
39811 bytes free e la posizione era proprio dove di solito compare © 1982
Sinclair Research Ltd, il tutto accompagnato da un PAUSE 0 per fare uno
still dello schermo; tolsi l'alimentazione solo al monitor, così quando lo
riaccese e leggendo ricordo ebbe un sussulto, "che è successo?" :-)))
Però io con POKE 23659,0 vedo solo un effetto tipo BORDER 0: PAPER 0: CLS e
si pianta tutto: quindi 0 non va bene, bisogna dare o 1 o 2, giusto?
> Se si setta questa variabile a 0 si puo` scrivere anche sulle ultime
> righe alla stessa maniera delle prime 22. Infatti l'istruzione PRINT AT
> 22,0; che segue il POKE normalemte avrebbe dato errore (l'ultima riga
> normalmente valida e` la 21). Il LOAD""CODE andra` quindi a scrivere il
> nome del file in nero su nero alla linea 22.
A meno che sia questo che dici tu il trucchetto usato nelle riviste e che
non ci si accorga che è stato scritto del testo nero su sfondo nero proprio
in corrispondenza di quella riga diciamo "proibita" solitamente.
> Purtroppo con il valore 0 il BASIC diventa instabile. Per esempio in
> caso di CLS o di errore del BASIC il computer si pianta. Settare questa
> variabile a 0 era anche quindi uno dei metodi piu` diffusi per
> proteggere programmi BASIC: se premi CAPS-SPACE un messaggio un
> messaggio di errore comparirebbe, ma in questa maniera si pianta tutto.
Proprio un bell'artificio. Grazie Paolo per la spiegazione.
|

|