Newsgroup: it.hobby.elettronica.digitale
Titolo: estensione del BIOS

Seguendo un percorso avviato gia molti anni fa con i PC industriali oggi i
sistemi PC embedded trovano applicazione nei settori piů disparati dagli
sportelli automatici ai distributori di cibo e bibite persino componenti di
rete come router e hub sono realizzati con tecniche simili.
Il settore industriale ha da sempre beneficiato di tali meraviglie, sono
innumerevoli le applicazioni di automazione che impiegano  un PC
appositamente rivisto ed agghindato nel suo rack di alluminio con lamiere da
4mm di spessore e BUS periferici di ultima generazione ISA ed EISA :-) , che
fa bella mostra di se in un mobile porta rack. Il tutto per un costo
superiore a quello di un mega internet host server multi processor!!!
Finalizzato per giunta a compiti per i quali il piů risicato dei
microcontrollori ad 8 bit avrebbe cicli di clock da perdere.
Quando di rado capita che le cose sono un po' piů serie ed un LCD anche a
matrice non č piů sufficiente, cosi come qualsiasi micro ad 8 bit la
soluzione diventa anche praticabile dal mio razionalissimo punto di vista,
dunque un PC 386 di recupero č fa al caso mio giusto per non spendere soldi
in un PC industriale o una scheda PC embedded che tra l'alto costa come un
computer completo di ultima generazione, tanto assorbimento e dimensioni non
sono un problema, ma lo sono invece le vibrazioni.
Il controller siffatto si trova ad operare su un treno di laminazione a
freddo allo scopo di costituire una soluzione CAM  (computer aided
manifacturing) che letti i file del CAD operi gli opportuni calcoli ed
intervenga sui servomeccanismi oleodinamici che predispongono gli angoli di
curvatura dei manufatti, visualizzando il tutto su un monitor VGA.
Tutto fatto, tutto semplice sennonché le vibrazioni sono talmente forti da
sfilare l'eprom del BIOS dalla sua sede ma a questo con un intervento
meccanico si č posto subito rimedio peccato che gli HD non siano cosě
malleabili! E' il quarto che tira le cuoia.
A questo punto le soluzioni sono due: Spostare il controller fuori dallo
stabilimento operativo e disporlo vicino alla Workstation CAD soluzione
fattibile, con l'aggravante di dover prevedere qualche linea IEEE488 per la
connessione con la power unit.
ma se invece mi prevenissi per il futuro implementando un virtual disc su
ROM evitando quindi anche il problema di un Boot piuttosto lungo?
E qui viene il bello!
Per fare una cosa del genere, occorre far vedere al BIOS una sua estensione
alla stregua di quello su una comune scheda video, fin qui ancora OK.
Gli indirizzi disponibili per tale operazione vanno da C000 a EFFF, in tale
area il BIOS esegue un controllo all'accensione per identificare i byte 55
ed AA che devono essere presenti in sequenza, fatto ciň deve seguire un
terzo byte che indica quanti blocchi da 512 byte č lungo il codice, e poi
segue il 4 byte il piů problematico perché indica il checksum del codice
rommable contenuto di seguito, il problema č tutto qui:
Non ricordo come accidenti si calcoli.
Realizzando il tutto su uno slot ISA il BIOS riconosce l'estensione che poi
contiene il mio programma reso rommable tramite l'eliminazione dell'Header
(i primi 512 byte) da un eseguibile DOS, purtroppo la verifica del cheksum
fallisce ed oltre al messaggio di errore BIOS cheksum error, mi ritrovo a
pensare con l'accompagnamento dei beep di errore.
Qualcuno ricorda la soluzione dell'arcano o una utility che renda BIOS ext
rommable un codice exe, ricordo di averla vista in rete ma dove?
P.S Non proponetemi l'acquisto di una scheda romdisk la prenderei come
bestemmia visto, che mi sono sobbarcato la realizzazione delle schede I/O a
96 canali digitali e 48 analogici 14bit!!
Ciauz

 rommable un codice exe, ricordo di averla vista in rete ma dove?
La faccenda del checksum so che é spiegato nel technical reference IBM,
anche se non mi ricordo i dettagli.
Piuttosto come fai a mettere in rom un programma exe?
In genere i file exe sono rilocabili e richiedono l'aggiustamento degli
offset degli indirizzi, cosa che di solito fa il sistema operativo.
Quelle rare volte che ho fatto questi esperimenti, usavo programmi
com, che sono previsti per essere caricati all'indirizzo 0x100, e settavo
io i primi 0x100 bytes con le informazioni richieste.

 alla stregua di quello su una comune scheda video, fin qui ancora OK.
Pensavo ad un ramdrive, se il tuo programma può lavorare sotto
MS-DOS...avvia da dischetto, crea la ramdrive, copiaci dentro il tuo
programma ed eseguilo.
...ma credo che tu lavori in Win..
in questo caso non saprei ma proverei a tirare fuori l'hard disk dal case e
metterlo in una zona dove puoi attutire le vibrazioni(la roba che c'é nei
pacchi fragili per esempio..)
GDR

 lungo?
Secondo me la soluzione piu` semplice per il tuo problema e` usare una
CompactFlash al posto dell'hard disk. Cosi` facendo hai tutto allo stato
solido, e con un semplice adattatore la CF viene riconosciuta dal PC
come un comune hard disk. Inoltre molte CF sono a range esteso e non
temono quasi nulla; ho visto delle CF sopravvissute dentro a barche che
prima hanno preso fuoco, poi sono andate a picco!
Il boot (se togli tutte le cose dal BIOS, come l'autodetect delle unita`
e simili) dovrebbe essere quasi istantaneo.
-- 
Lorenzo

 CompactFlash al posto dell'hard disk.
Era la soluzione che volevo proporre io, i vantaggi sono immediati e ho
anche da qualche parte lo schema dell'adattatore IDE <-> CompactFlash.
Non l'ho proposto perchè se ho ben capito vuole fare tutto da solo :)
--
...:::Zmaster:::...
DSL powered
zmast[ANTISPAMSYSTEM]@
freemail.it
www.zmasterworld.8m.com
Collaboratore del Media Player Project

 io i primi 0x100 bytes con le informazioni richieste.
I file .exe prodotti da me in questo modo non danno problemi di sorta in
quanto non producendo chiamate assolute a locazioni di memoria rendono il
codice rilocabile, in effetti debbo confessare che non conosco appieno la
differenza che il dos effettua tra i gli eseguibili .exe ed i file .com. Mi
dai qualche ulteriore dettaglio?
Ciauz

 pacchi fragili per esempio..)
Io lavoro in DOS per queste applicazioni piů correttamente in FreeDOS, che č
la versione GPL/Open source dei vari DOS unendone i pregi (DR-DOS, PC-DOS,
MS-DOS).
Il problema della RAM-disk č che verrebbe cancellata alla mancanza
dell'alimentazione, inutile sarebbe provvedere al "tamponamento" delle RAM
in quanto il test delle stesse, in fase di boot, provvede alla cancellazione
di alcune locazioni.
Ciauz

 Non l'ho proposto perchè se ho ben capito vuole fare tutto da solo :)
Credo accetterò di buon grado lo schema da parte tue, sai la brace è accesa
e la carne è sulla graticola, se non mi sbrigo mangerò cenere!
Ti sarei grato se invii alla mia e-mail oppure mi indichi il link
appropriato.
Ciauz

"Lorenzo Lutti" <lorenz...@DOHtiscalinet.it> ha scritto nel messaggio
news:ktyua.102429$iy5.3...@twister2.libero.it...

Credo sia una buona idea, non quello è che mi ero prefisso, ma ai problemi
sospesi è bene opporre subito una soluzione, che del resto dovrebbe
rivelarsi anche più duratura.
Unico dubbio la capacità di digerire in modo trasparente il dispositivo
IDE-->CFlash da parte di una scheda 386SLX, per il resto le mie aspettative,
in termini di affidabilità, vanno molto al di sotto alle prospettive di
fuoco e fiamme da te accennate:-).
Ciauz

 fuoco e fiamme da te accennate:-).
Non si puo` mai sapere... :)
-- 
Lorenzo

 di alcune locazioni.
(giuro che non l'ho capita)
...comunque secondo me più utile sarebbe invece un piccolissimo gruppo di
continuità che ti permetta di eliminare il problema di sbalzi e di brevi
interruzioni dell'energia elettrica.
GDR

 Ma se fossi in te lo comprerei gia` fatto, costa pochi dollari.
Il sito del distributore italiano:
http://www.contradata.it/
...ma quanto costa una CF da 512MB?
GDR

 standard Intel e privo delle informazioni in Header del DOS.
Comunque mi piacerebbe sapere tu come hai proceduto esattamente per
caricare un programma scritto con turboC in rom, anche se forse
non ci sei ancora riuscito, visto che hai problemi nel calcolare
il checksum.
Molti anni fa avevo provato ma senza successo, avevo dovuto modificare
anche il modulo di startup della libreria del turboC perché faceva
riferimento
a dati o system call del dos che ovviamente al momento del boot non
sono ancora disponibili. Alla fine ho scritto il programma direttamente
in assembler.

 interruzioni dell'energia elettrica.
o_O
io avevo capito sbalzi nel senso di vibrazioni.


 appropriato.
Hehe, il vecchio Lutti è più veloce di me, ti ha già mandato il link.


 in assembler.
Come ti ho gia scritto prima la chiave del procedimento ruota intorno alla
"rommabilita" del codice operata da quella utility di cui ti parlo. Se hai
un minimo di interesse ancora, te la invio con qualche appunto.
Ciauz

"Lorenzo Lutti" <lorenz...@DOHtiscalinet.it> ha scritto nel messaggio
news:jABua.103653$DT4.3...@twister1.libero.it...

Grazie, la soluzione che mi hai proposto è davvero efficace, pratica ed
evoluta.
Ciauz

 ha scritto nel messaggio
news:b7Cua.64806$3M4.1...@news1.tin.it...

Grazie, spero non molto, anche se io mi limiterò all'acquisto di una 128.
Ciauz

Lorenzo Lutti ha scritto:

Dov'è che un privato può trovare un adattatore ide/cf in italia?
Grassie
Fa

 un minimo di interesse ancora, te la invio con qualche appunto.
Si grazie, manda pure. Sono cose che possono essere ancora utili
in ambito industriale.
Ti ho scritto privatamente l'indirizzo della mia email.

 ...ma quanto costa una CF da 512MB?
Sul sito Sandisk parlano di 300$ per una CF da 1 GB e 160$ per una da
512 MB.
Fra l'altro sono rimasto molto sorpreso da questi prezzi: l'ultima volta
che ho guardato il prezzo della CF da 1 GB (era appena uscita, sara`
stato un anno fa) costava piu` di mille dollari! Questa tecnologia e` il
futuro, spero che quanto prima i produttori principali ne prendano atto
e smettano di infestare i PC con le ferraglie rotanti.
-- 
Lorenzo