SNArkos by Grim/Arkos
---v1.4 [20060204]---

SNArkos est un petit utilitaire permettant de  transfrer des fichiers  .SNA  de
votre PC sur votre CPC via la CPCBooster.

Prrequis:
----------

Une CPCBooster avec le dernier BIOS (update 3).
Une RAMcard ou ROMcard
AFT lanc sur le PC
(Ceux qui trouvent que a fait beaucoup de choses, je trouve qu'ils en font bien
peu. C'est probablement li)

Pour avoir plus d'informations sur SNArkos ou la CPCBooster, allez jeter un oeil
sur ces sites web :

http://dirtyminds.cpcscene.com
http://arkos.cpcscene.com

License: sceneLegacyWare.
Si vous avez quoique ce soit relatif  la scne (demo, discmag, crack, ...)  sur
vos vieilles disquettes, faites  en des   DSK (sur 42 pistes, avec  ReadDSK  par
exemple :) et envoyez les  grim@cpcscene.com


--------------------------------------------------------------------------------


Qu'est-ce qu'un .SNA ?
----------------------

Un  .SNA  (aussi appel  "snapshot") est  un format  de fichier  utilis par les
mulateurs   ou autre  outil de  developpent (createSnapshot  par exemple)  afin
de stocker l'tat complet (RAM et contexte des diffrents circuits) d'un  CPC  
un moment donn.

SNArkos gre correctement les diffrentes versions du format .SNA  (v1.0  v3.0)
dont les spcifications sont disponible en anglais sur le site web suivant :
http://andercheran.aiind.upv.es/~amstrad/docs/snapshot.html


Comment utiliser SNArkos ?
--------------------------

Il est OBLIGATOIRE que AFT soit pralablement lanc cot PC.

-Charger un SNA sur CPC

  sna,"maurice.sna"
  Va charger le snapshot "maurice.sna" sur votre CPC.

  L'extension du fichier est facultative. SNArkos l'ajoutera  automatiquement si
  elle n'est pas fournie :

  sna,"maurice"
  Va aussi charger le snapshot "maurice.sna" sur votre CPC.



-SNArkos gre un deuxime paramtre, l'autoboot :

  sna,"maurice.sna",1 
  Va charger le  snapshot "maurice.sna" sur  votre CPC en  activant  l'autoboot,
  ce  qui    va  automatiser    le  chargement    de  ce    snapshot     chaque
  initialisation du firmware (en language commun, aprs un reset du CPC).

  Lorsque l'autoboot est activ, vous  pouvez annuler le chargement du  snapshot
  en  maintenant  la   touche CTRL   lors de   l'initialisation du   firmware ou
  dsactiver l'autoboot en maintenant la touche CLR.

  Si vous  ne voyez  aucun intert   cette  fonctionnalit,  oubliez  la,  elle
  n'est pas ncessaire pour jouer  Bomb Jack :)



-Vous pouvez aussi appeler SNArkos sans paramtre :

  sna
  Recharge le dernier snapshot utilis ("snarkos.sna" est utilis par dfaut).



-Initialisation du FDC
  Lorsque  qu'un snapshot   est  transfr  sur  le  CPC, le   FDC peut  ne  pas
  tre  initialis.  SNArkos  initialise  automatiquement   le  steprate  et  le
  headload time mais, par dfaut, ne recalibre pas le FDC ce qui, dans  certains
  cas, peut  poser problme.

  snafdc,"A"
  snafdc,"B"

  Avec  cette  commande,   SNArkos  recalibrera  (seektrack0)  le  FDC  avant le
  transfert  du .SNA (compatible avec les lecteurs 80 pistes).



-Information sur le dernier snapshot utilis
  Une  commande permet  d'afficher  les  informations stockes  dans  le  header
  du fichier  snapshot, c'est   dire  la valeur  des registres  des  diffrents
  circuits du CPC.

  snah



Si quelque chose ne va pas (nom de fichier trop long, timeout, problme avec AFT
ou la CPCBooster, ...), SNArkos s'en plaindra immdiatement.

Pendant le transfert,  si l'cran devient  rouge vif, c'est  qu'un timeout s'est
produit. Vrifiez si tout est bien connect et re-essayez.


CrossDev
--------

SNArkos a initiallement t developp comme un outil de cross-developpement afin
de tester rapidement une routine sur un vrai CPC en se passant des mulateurs.
Il  est donc maintenant possible d'diter vos sources  assembleur sur PC  et  en
quelque secondes seulement, assembler (zmac), crer un snapshot (createsnapshot)
et transfrer le tout sur votre CPC ! Plus besoin de s'embeter   transfrer des
fichiers ou un dsk pour effectuer un simple test.

Vous trouverez tout le ncessaire et mme plus en utilisant CPCTools, disponible
sur ces sites web :

http://arkos.cpcscene.com 
http://www.ramlaid.com

Il peut  cependant tre  utilis pour  transfrer rapidement  n'importe quoi  ou
presque sur le CPC sans avoir  utiliser la moindre disquette.


Informations techniques
-----------------------

SNArkos  utilise  la  RAM  embarque  dans  la  CPCBooster  pour  y  stocker  sa
configuration (nom du fichier, options, ...) et c'est pourquoi il est ncessaire
d'avoir la dernire version du  BIOS (qui autorise la lecture/criture de la RAM
de la CPCBooster).

-L'tat du PPI n'est pas restaur.

-Le repositionnement sur la piste courante du FDC n'est pas effectue.

-Il n'y a aucune dtection materielle, vous pouvez envoyer un snapshot de  128Ko
sur un  CPC muni  de seulement  64Ko. Ca  ne fera  que planter  le CPC.  Un test
couterait de l'espace dans la ROM Arkos et est  mon avis inutile si vous  savez
utiliser l'organe situ entre vos deux oreilles.

-Les informations de synchronisation  (apparues dans la version 3 du format SNA)
ne sont pas prise en compte. L'excution sera effectue ds que le snapshot  est
prt.

-Les interruptions masquable sont dsactives pendant le transfert, puis,  celon
l'tat du registre IFF0, seront ractives si ncssaire  juste avant le  JUMP 
l'adresse indique par PC (le registre Z80).  Dans  le  cas ou les interruptions
sont  effectivement  ractives,  cela implique  qu'une  interruption  aura trs
probablement lieu  juste aprs  le JUMP  et juste  avant l'xecution  du code  
l'adresse du JUMP.

-16 octets sont utiliss dans la RAM du CPC pour y placer la routine d'excution
du snapshot (de &FFF0   &FFFF). Ces octets  seront crit  dans la  RAM celon la
configuration RAM du snapshot (c'est  dire que cela peut tre dans les 64Ko  de
base ou dans les banks). Cela impose aussi une limitation : SNArkos refusera  de
charger un snapshot dont la  ROM haute est active (sa  routine d'initialisation
du snapshot se retrouvant dans ce cas masque par la ROM),  excluant  ainsi  les
programmes BASIC en cours d'excution (dsol SuperSly :).

-Les chunks de donnes additionnelles introduit dans la version 3 du format .SNA
ne sont pour le moment pas grs (cf note sur le chunk "CPC+").

-Les registres du AY3-8912, CRTC, GateArray et Z80 (sauf R) sont tous  restaurs
ainsi que l'intgralit de la RAM correspondant aux pages de 64Ko fourni dans le
snapshot.


Comment faire un SNA qui fonctionne bien
----------------------------------------

Configurez correctement votre mulateur ou gnrateur de snapshot pour crer  un
.SNA correspondant  la configuration de votre CPC (RAM et ROM principalement).

En rgle  gnrale, il est conseill d'avoir les interruptions dsactives  (di)
dans le snapshot et en particulier lorsque c'est le firmware qui les  prends  en
charge.


Lorsqu'il s'agit  de tester  des ruptures  ou tout  autre chose  ncessitant une
synchro trs prcise,  ne faite pas  le snapshot pendant  l'excution mais avant
(par exemple pendant l'initialisation de votre routine).

Attention au FDC ! Si vous  utilisez une routine de chargement custom,  pensez 
le recalibrer soit dans votre routine ou en utilisant la commande snafdc.

Le  registre  R  du  Z80  n'tant  pas  restaur,  votre  snapshot  peut  ne pas
fonctionner  avec certaine  protection. Faite  votre snapshot  plus tard  (aprs
l'excution de la protection).

Les vieilles  versions de  WinAPE (anterieures   la  2.0A6) produisent  un .SNA
corrompu (les valeurs des registres CRTC sont crites sur 16bit au lieu de 8  et
"dpassent" sur l'espace rserv aux donnes du PPI... bref... un gros merdier).
Utilisez la dernire version de WinAPE (ou un autre mulateur comme WinCPC).

Pour une raison encore   assez flou, le snapshot   d'un CPC en train  d'excuter
une  routine  du  firmware  (gestionnaire  d'interruption  en  particulier)  bug
svrement. Cela sera  eventuellement  corrig dans   une prochaine version mais
rien n'est sr (SNArkos tant un outil punk, il fuck the system).


A propos du chunk "CPC+"
------------------------

Ce chunk est dfini depuis la version 3 du format .SNA et permettrait de stocker
l'tat  de  l'ASIC des  AmstradPlus   et donc  de  le restaurer  par   la suite.
Cependant, je n'ai trouv  aucun mulateur  capable de grer ce chunk et  par la
mme  de produire  un fichier  .SNA l'incluant.  J'ai donc  dsactiv toute   la
gestion de  ce chunk dans cette  version de SNArkos  faute d'avoir pu  la tester
(Dsol Iron, tu vas aussi devoir coder ton propre mulateur AmstradPlus :).
 

--------------------------------------------------------------------------------


Si vous en tes   lire cette phrase  c'est trs bien car  toute  question   sur
SNArkos  dont   la  rponse   se  trouve   dans  cette  doc  n'obtiendra  aucune
rponse serieuse de ma part :)

Merci  Antitec pour avoir dpann plusieurs fois mes CPCBoosters :)

Bon code !

															Grim/Arkos