Altri articoli sul numero 80

Luisa Belloni ha acquistato all'inizio dell'anno un A1200 in
sostituzione del precedente A600 e teme che faccia parte del
primo  lotto prodotto da Amiga Technologies con floppy drive
difettoso   nel  circuito  di  segnalazione  del  cambio  di
dischetto,  che  causa  l'interruzione  dei "trackloader" di
molti giochi.  Secondo Luisa l'ipotesi sembra verificata dal
mancato  caricamento  della  maggior  parte dei giochi anche
AGA;  tuttavia  il laboratorio in cui ha portato l'A1200 per
la  sostituzione  del drive con uno di vecchio tipo (come da
noi  suggerito  sul  numero  76)  non  ha ottenuto risultati
positivi neanche effettuando ulteriori sostituzioni.
E'  stato  confermato  che  il  problema al floppy drive dei
primi  A1200  di  Amiga  Technologies  dipende dalla mancata
generazione  del  segnale  /RDY  (filo  numero  34  del cavo
piatto)  da  parte  della  loro scheda di controllo.  Questo
segnale  generato  dal floppy indica all'Amiga che il motore
ha  raggiunto  la  velocita'  di  regime, e passa al livello
logico  zero  qualche  millisecondo dopo che il programma di
controllo  del  floppy fa partire il motore portando /MTR0 e
/SEL0  al  livello  logico  zero.   Non  viene  usato  dalla
trackdisk.device,  ma  e' documentato sull'Hardware Manual e
quindi  perfettamente legale.  I programmi che malfunzionano
per  questo  motivo  (es:   Xcopy) possono facilmente essere
corretti  con  una  patch,  sostituendo  alle istruzioni per
l'attesa  di  /RDY  basso (bit 5 della porta A del CIA A) un
loop di circa mezzo secondo.
Una soluzione rapida al problema, sufficiente a sbloccare la
maggioranza  dei  giochi, consiste nel saldare un diodo tipo
1N4148  tra i piedini 34 e 16 del pettine del floppy interno
con  la  fascia  nera  (o  quella gialla piu' larga) rivolta
verso  il  piedino  16.   Per  non  rovinare  i contatti del
connettore,   consigliamo   di   estrarre   la   motherboard
dall'Amiga  e  saldare  il diodo sulla faccia inferiore.  La
numerazione  dei  piedini  del  pettine e' fatta in modo che
tutti  i  contatti  pari  sono  su  una fila, mentre tutti i
dispari sono collegati a massa e formano l'altra fila.
Una  soluzione  piu' completa e' stata proposta su Aminet da
Christian Sauer; non e' lo schema piu' semplice possibile ma
ha  i  pregi  di  essere  stato sperimentato con successo da
moltissimi  amighisti  e di utilizzare componenti reperibili
ovunque.
L'uscita  della  porta NOR contenuta nel chip SN74LS02 passa
allo  stato  logico  alto solo quando entrambi gli ingressi,
prelevati  dal pettine del floppy interno (pin 16 e pin 10),
si   trovano   allo  stato  basso.   Il  condensatore  e  la
resistenza  rallentano la propagazione di questo cambiamento
di  stato  verso  la porta contenuta nel chip CD4093, che e'
usata  per  squadare il segnale, invertire lo stato logico e
adattare  i  livelli  di tensione a quelli CMOS richiesti da
Amiga.   Il  diodo  serve  per  scaricare  immediatamente il
condensatore appena /MTR0 o /SEL0 ritornano allo stato alto,
mentre  la  resistenza  variabile andra' regolata in modo da
ottenere  il  minimo  tempo di caricamento del gioco che non
provoca errori o blocchi di sistema.  Nello schema elettrico
Christian   Sauer   ha   dimenticato   i   collegamenti   di
alimentazione  dei  due  chip:   i  piedini 7 sono la massa,
mentre  la  tensione  di +5 Volt va applicata ai piedini 14;
gli altri piedini si possono lasciare non collegati.
L'uscita /RDY andra' collegata al pin 34 del pettine interno
o al pin 1 del connettore floppy esterno.
Se  in  futuro il floppy drive dovesse essere sostituito con
un  modello ad alta densita', il circuito dev'essere rimosso
perche' inibirebbe la trasmissione del drive ID al boot.
Se  i  giochi  si  bloccano  durante  il  caricamento non e'
necessariamente  colpa del floppy drive difettoso; purtroppo
la  descrizione  poco  accurata  non  permette  una conferma
sicura  della  diagnosi  fatta  da  Luisa, che comunque puo'
essere    facilmente    verificata    eseguendo    l'utility
"A1200FDtest" contenuta nel file A1200fdfix.lha di Aminet.
E'  noto  che  la  maggioranza dei giochi non-AGA di qualche
anno  fa  non  funziona  su  A1200,  soprattutto per precise
scelte dei programmatori e delle case editrici del software,
che  generalmente miravano a ridurre il tempo destinato alle
prove  di  compatibilita'  ed  a  creare le premesse per una
futura   massiccia   campagna   di  rinnovamento  del  parco
software, trainata dal nuovo hardware.
Molti  di questi giochi pero' possono essere recuperati, sia
grazie  alle patch realizzate da gruppi di "coders", sia con
programmi  come  Degrader  e  il caricatore di Kickstart 1.3
(reperibili  su  Aminet  e  nel "mercato sommerso"); a volte
puo'   bastare   la   rimozione  dell'intro  inserita  dallo
sprotettore.   Anche  i  giochi  AGA  possono dare problemi,
quando  invece  che  con  un  regolare  acquisto  sono stati
procurati  per  vie  traverse o illegali, senza controlli di
qualita'.
Altre  volte  il  malfunzionamento  del  gioco dipende dalla
presenza   di   una  scheda  acceleratrice,  che  altera  il
funzionamento dell'A1200 base principalmente in tre modi:
1)  L'accesso "asincrono" alla Chip RAM, tipico delle schede
ad  alte  prestazioni, introduce ritardi e irregolarita' nel
refresh grafico.
2)  La  presenza  di Fast RAM (anche autoconfigurante) al di
fuori  della  zona  autoconfig Zorro II richiede la corretta
gestione  del byte piu' significativo dei registri indirizzi
della CPU, che non tutti i giochi possono garantire.  Spesso
infatti i "coder" non prestano attenzione a questo dettaglio
o  usano  il  byte extra per ottimizzazioni particolari.  Un
problema  simile e' posto da quei programmi che insistono ad
esigere  un banco di RAM locato a 0x0C000000, tipico di A500
ma  normalmente  non supportato dalle espansioni di Fast RAM
per A1200.
3) Le cache e le istruzioni privilegiate dei processori piu'
evoluti  sono  diverse  da  quelle  del 68020.  Un programma
automodificante  o  che  lavora in modo supervisore ha buone
possibilita' di malfunzionare.
Oltre    a   questi   meccanismi   principali,   le   schede
acceleratrici  influiscono  sul  comportamento del codice in
altri   modi   piu'   sottili  ma  che  difficilmente  hanno
importanza  per  la  compatibilita'  con  i  giochi (es:  il
funzionamento  dell'istruzione  test_and_set  e  la gestione
degli accessi ad indirizzi inesistenti).


Main Previous Next