[zxspectrum] Re: TAP di esempio per Mouse Kempston

  • From: Luca Alimandi <luca.alimandi62@xxxxxxxxxxx>
  • To: zxspectrum@xxxxxxxxxxxxx
  • Date: Thu, 25 Feb 2016 00:39:11 +0100

Ecco un altro passetto avanti... :-)

Ci ho lavorato parecchio negli ultimi giorni, anche sulla base dei suggerimenti di Enrico.

Ho riscritto completamente la parte di gestione dei menu, in modo che il salvataggio e il ripristino delle parti coperte dai menu a tendina fosse a zone e non per l'intero schermo, come facevo nella prima versione.
Questo ha richiesto una forte complicazione del software, che è divenuto più contorto e forse anche un po' più lungo; ma l'effetto visivo sembra più pulito e fluido.
Purtroppo devo ancora sistemare alcuni comportamenti "erratici" di cui non ho compreso bene l'origine (ad esempio, quando si usano i tasti freccia a destra e a sinistra per muoversi tra i menu, a volte vengono effettuati due o tre spostamenti in una volta, anche se non si sta tenendo premuto il tasto...)
Inoltre ho adottato un'altra tecnica per l'evidenziazione dei menu (inverse); mentre prima riscrivevo la voce invertendo carattere per carattere, ora agisco direttamente sugli attributi, il che fa risparmiare parecchio tempo e diminuisce sensibilmente il flicker nel passaggio da una voce all'altra.

Inoltre ho finalmente scritto le routine per l'uso del mouse, che adesso funziona!
Ho cercato di integrarle meglio che potevo con quelle della tastiera, per cui condividono buona parte del codice per la gestione dei menu.
Quindi ora è possibile attivare i menu sia da tastiera (premendo prima Edit e poi muovendosi con i tasti frecce e infine selezionando la voce con Enter) sia con il mouse (facendo click sinistro su un menu per attivarlo e poi su una voce per effettuare l'azione corrispondente).
Tenete presente che solo alcune voci sono attive (vedere più avanti...)

ATTENZIONE: questa nuova versione funziona SOLO IN MODALITA' 128K (o Plus 2), e NON in modalità 48K!!!

Questo perché sono passato all'uso della memoria estesa del 128K per preservare lo schermo prima di mostrare delle finestre di servizio. Volendo risparmiare i circa 7 Kb della schermata e lasciare così più spazio ai programmi, ho deciso di usare la pagina RAM 7 mediante la tecnica della paginazione.
Ma soprattutto ho iniziato ad usare il RAM Disk per implementare dei menu di caricamento e salvataggio dei file.

In ogni caso ancora il programma è in fase di sviluppo, e questi sono solo degli esempi, per darvi un'idea del proseguimento dei lavori. Molte parti sono da completare, altre da sistemare, altre non sono ancora iniziate.

Dunque, andiamo per ordine.
Questo è il link per scaricare il file TAP:
https://drive.google.com/file/d/0B2gTtPKDTuD_cDNLLUM1OXBIWE0/view?usp=sharing
Ricordate di selezionare negli emulatori la modalità 128K (o Plus 2), e di attivare l'emulazione del Mouse Kempston.
Usate EDIT o il mouse per attivare i menu e le relative voci. I menu sono solo dimostrativi (non badate ai loro nomi!), e molte voci non sono attive.
Al momento quelle attive sono solo queste:

FILE - Open

In realtà effettua solo il CAT (catalogo) del RAM Disk. E' solo abbozzato, in quanto devo ancora realizzare la gestione della paginazione (quando l'elenco non entra tutto nella schermata).
Viene mostrato lo spazio libero ancora disponibile sul disco virtuale e le info di start e lunghezza di ciascun file.
Più avanti questo menu dovrà permettere di caricare in memoria un file facendo click sul nome.

FILE - Exit

Torna al Basic. Attenzione: poiché si tratta della modalità 128, se premete Enter, riparte il loader e quindi il programma, per cui, se volete dare dei comandi in Basic, dovete attivare l'editor, ad esempio premendo il tasto freccia in basso e poi Enter.

EDIT - Clear

Ripulisce lo schermo (utile se usate il comando Format per stampare un testo di prova e volete riportare lo schermo allo stato iniziale)

VIEW - Format

Stampa una stringa di prova che occupa alcune righe (serve più che altro per testare il backup e restore della schermata quando si fa il catalogo del RAM Disk)

HELP - TEST - Test2

Serve a mostrare la possibilità di avere un secondo livello di menu - se attivato stampa la stringa di prova (come Format)

HELP - TEST - Test3

Stessa funzione di Clear


Se volete vedere qualche file nel catalogo del RAM Disk fate così:
- uscite dal programma con FILE - Exit
- premete Freccia in Giù per selezionare il menu "128 Basic"
- una volta in modalità editing, salvate qualche file, ad esempio delle schermate (max 5) o altri file, con il comando: SAVE! "nome_screen" SCREEN$, oppure
SAVE! "nome_programma"
- riavviate il programma con il comando RANDOMIZE USR 30000
- effettuate il catalogo con FILE - Open

Dovrebbe comparivi l'elenco dei file salvati, con il loro tipo (Code, Basic, ecc.), l'indirizzo di Start, la loro Lunghezza (in byte) e in alto lo spazio ancora disponibile.

Se salvate più di 14 file il programma va in crash (devo ancora gestire la paginazione del catalogo!...)

Ci sono ancora molte cose che voglio cambiare e/o ottimizzare, ma intanto guardate come vi sembra e se funziona sotto altri emulatori.

Nota: io uso Fuse e c'è un piccolo problema: ogni volta che ricarico il programma devo riattivare l'emulazione del mouse Kempston.
Probabilmente altri emulatori non hanno questo problema....

Fatemi sapere come va! ;-)


--

|_ /-\


Other related posts: