-------------------------------------------------------------------------------- From: Alessandro Brienza 2:334/210 To: Tutti 2:24210/1 Subj: HD Project su ROM Date: Me, 02 Lug 97 21:13 -------------------------------------------------------------------------------- Cari amici, vi volevo tenere informati sul quel progetto di inserire nella ROM dello Spectrum 48 (e in futuro 128) i comandi per l'HD. Finalmente sono arrivato a un buon punto. Nel Basic standard ho aggiunto questi comandi: Load - .LOAD name$ .LOAD name$ CODE start .LOAD name$ SCREEN$ Save - .SAVE name$ .SAVE name$ LINE auto .SAVE name$ SCREEN$ .SAVE name$ CODE start,len .SAVE name$ CODE start,len,auto Erase - .ERASE name$ Cat - .CAT .CAT pattern$ .CAT #n,pattern$ Print - .PRINT text$ I comandi si comportano come quelli omonomi del nastro, quindi possono essere utilizzate le variabili e/o costanti. Per caricare un programma non c'e' bisogno di specificare che sia un programma Basic o un CODE, basta utilizzare il semplice .LOAD name$. Il comando .LOAD CODE start (dopo il CODE e' obbligatorio specificare l'indirizzo) puo' servire per caricare un CODE ad un indirizzo diverso, ma se si tratta di un file Basic verra' caricato normalmente. Il .LOAD SCREEN$ equivale a scrivere .LOAD CODE 16384. Il .SAVE non credo che abbia bisogno di spiegazioni. Per avere un CATalogo completo dei programmi presenti nell'HD basta il semplice CAT (in pratica viene eseguito un CAT #2,"*"). Puo' essere specificato un canale diverso dal 2 (lo schermo) per visualizzare il catalogo. Adesso veniamo alle note dolenti; mi sono accorto dopo diverse prove che in fase di caricamento si possono avere alcuni errori di ricezione nei primi byte. Mi sto' accorgendo che e' piu' facile che succeda se i primi byte ricevuti sono dei chr$ (0). Infatti i primi 3 o 4 chr$ (0) diventano chr$ (128). Eppure la stessa routine di ricezione la uso nell'altro programma RxSnap senza nessun inconveniente. Tutta la procedura ha oocupato quasi tutto lo spazio disponibile nella ROM (sono avanzati 2 byte) e come vedete ho dovuto eliminare a tutti i comandi il suffisso "HD". Il programma utilizza delle variabili e un buffer tutte poste nel printer buffer. Pero' con un po' di pazienza credo che qualcuna si possa eliminare. Non sono variabili critiche che devono rimanere aggiornate; servono solo momentaneamente al nuovo comando che si sta' eseguendo. Vi potrebbe interessare il sorgente di tutta la procedura? Comunque com'e' ora non e' presentabile. :-) Alessandro --- Maximus 2.02 * Origin: Joe COCKER's BBS - Spazio Sinclair. (2:335/17)