home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 300-399 / ff312.lzh / TrackSalve / Handleiding < prev    next >
Text File  |  1990-02-12  |  11KB  |  203 lines

  1.  
  2.  
  3.                               TRACKSALVE
  4.  
  5.     TrackSalve is gemaakt ter verbetering van het Trackdisk device.  Er
  6.     zijn een paar problemen met de origine Trackdisk.  Zo zitten er twee
  7.     bugs in, waarvan een wel heel vervelend als er meerdere drives zijn.
  8.     SetPatch 1.3.2 probeert er wel iets aan te doen, maar dat is niet
  9.     afdoende.  Dan ervaren de meeste mensen het geklik van een lege drive
  10.     als storend.  Verder kan Trackdisk een track niet verwerken als er iets
  11.     (kleins) mee is; alle goede sectoren zijn dan verloren.  Dan weten we
  12.     nooit of de geschreven data goed op disk staat.  En als we nu toch in
  13.     Trackdisk knoeien, is het een kleine moeite een drive readonly te
  14.     maken.
  15.  
  16.  
  17.                                FUNCTIES
  18.  
  19.     Zoals reeds gezegd kan/doet TrackSalve vijf verschillende dingen:
  20.  
  21.  1. Bugs gerepareerd.  Voorzover ze bij mij bekend zijn.  Dit omvat de
  22.     RAWREAD/RAWWRITE routines en de nodisk routine.  Vooral deze laatste
  23.     was een bijzonder vervelende bug, waardoor onbedoeld zomaar een andere
  24.     drive overschreven kan worden.  Met deze patch is het veilig I/O te
  25.     doen en de overige drives leeg te laten.
  26.  
  27.  2. Noclick.  Sommige drives zijn uitgerust met een elektrische begrenzing
  28.     van track 0. De drive stopt met steppen op dit punt, ook al worden er
  29.     steppulsen naartoe gestuurd.  Er zijn echter ook typen met een
  30.     mechanishe begrenzing, en de leeskop wordt dan gewoon met een stukje
  31.     rubber of zo geblokkeerd.  Op dit laatste type blijt er altijd nog wel
  32.     wat hoorbaar.  Noclick kan voor iedere drive apart aan en uitgeschakeld
  33.     worden.  Het lijkt mij beter noclick niet in te schakelen bij drives
  34.     met een mechanische stop.
  35.  
  36.  3. Readonly simulatie.  Hiermee kan een drive net doen alsof er een disk
  37.     inzit met een open tab.  Dit klinkt eenvoudiger dan het is en enig
  38.     beleid is dan ook geboden.  Het Filesystem (DOS) houdt het insteken en
  39.     uithalen van disks bij.  En, eenvoudig gezegd, DOS neemt aan dat de tab
  40.     niet verschoven kan worden van een disk die in een drive zit.  Daarom
  41.     wordt er een diskchange verzonden ALS er een disk inzit EN deze is niet
  42.     write-protected EN de drive wordt overgeschakeld van R/W naar RO of
  43.     omgekeerd. (Een diskchange is een signaal dat Trackdisk uitzendt als er
  44.     een disk in of uitgehaald wordt). Nu is dit bijzonder vervelend als dit
  45.     gebeurt op een moment dat er naar de disk geschreven wordt.  Daarom
  46.     wordt dit omschakelen uitgesteld tot de motor uitschakelt.  Ook dit is
  47.     niet helemaal een goede bescherming en het is dan ook aan de gebruiker
  48.     om dit op een rustig moment te doen.
  49.  
  50.  4. Tracksalvage.  Indien voor de betreffende drive enabled, komt dit
  51.     mechanisme in actie zodra Trackdisk het opgeeft bij een fout op een
  52.     track.  Trackdisk doet dit al als er EEn bit van een track niet goed is
  53.     (dus van de bijna 100.000 bits op een track). Dit is niet echt nodig,
  54.     er is nog heel wat te redden van de overige bits op de track.  De track
  55.     wordt hiertoe opnieuw gelezen in een heel grote buffer en geanalyseerd.
  56.     Alle onverdachte data wordt ter beschikking gesteld van de task die van
  57.     disk leest.  Er komt pas een Read/Write error wanneer een sector wordt
  58.     gevraagd waar een fout in zit.  Een track die door TrackSalve bewerkt
  59.     is, kan niet weggeschreven worden.  Het is dan ook bedoeld als een
  60.     hulpmiddel om data van disks te redden, niet om disks te repareren.
  61.  
  62.  5. Verify.  Zodra een track naar disk geschreven is, kan TrackSalve
  63.     controleren of het track goed op disk staat.  Hiertoe wordt het weer
  64.     ingelezen in een speciale buffer en vergeleken met de oorspronkelijke
  65.     data.  De Amiga is multitasking en het is trackdisk daarom niet bekend
  66.     naar welke task een foutmelding te sturen.  Dus krijgt de user een
  67.     requester waarbij hij kan kiezen tussen Ignore en Rewrite.  Mogelijk
  68.     dat dit niet tot een goed resultaat leidt; de user weet in elk geval
  69.     dat het mis is.
  70.  
  71.  
  72.                                COMMANDLINE
  73.  
  74.     Zodra ergens in de commandline de letters h of H of ? aangetroffen
  75.     worden, wordt de rest van de commandline volkomen genegeerd en alleen
  76.     een kleine gebruiksaanwijzing geprint:
  77.  
  78.     Syntax:   TrackSalve {<unit(s)> {<Command(s)>}}
  79.     Function: Modify a Trackdisk device unit addressed by its unit number
  80.         <no args>       Show present status
  81.     Units:
  82.      0-3   Unit(s)      Succeeding commands are applied to listed units
  83.       a    All:         Succeeding commands are applied to all TD units
  84.       !    Warning      Suppress error if the following unit does not exist
  85.     Commands:
  86.     <none> TD in RAM:   No special functions, just all known bugs removed
  87.       s    SectorDisk:  Let Trackdisk only give errors from bad sectors
  88.       t   .TrackDisk:   Normal: Let TD give errors from bad tracks
  89.       n    NoClick:     Perform noclick on the unit(s)
  90.       c   .Click:       Normal: No noclick
  91.       r    ReadOnly:    Make unit read-only, simulate open disk-tab
  92.       w   .WriteEnable: Normal: Unit is read/write according to disk-tab
  93.       v    Verify:      Read written track back and compare
  94.       b   .Believe:     Normal: Asume track is written well
  95.       o    Original:    Let TD execute in its original ROM code
  96.       /    Separator:   F.e. "0/2n"  Units 0 and 2 in RAM, noclick only on 2
  97.       ?    Explain:     If given (anywhere), no commands are executed
  98.  
  99.     Om te beginnen worden komma's, spaties en streepjes (-) volkomen
  100.     genegeerd.  Letters daarentegen die niet herkend worden leiden tot het
  101.     afbreken van het programma, zonder dat welke functie dan ook uitgevoerd
  102.     wordt.  Als er niets gedaan is, dan wordt dit door een mededeling van
  103.     dien aard benadrukt.
  104.  
  105.     Units
  106.  
  107.     Een unit wordt aangeduid met zijn nummer in plaats van zijn DOS-naam.
  108.     Dit komt omdat TrackSalve werkt met het trackdisk.device.  Dit device
  109.     heeft niets met DOS te maken.  DOS maakt er gebruik van en bouwt er een
  110.     systeem omheen op en dat systeem heet dan bv DF0:. Geldige unit nummers
  111.     zijn:  0, 1, 2, 3 en a. A staat voor alle units die op de computer
  112.     aanwezig zijn.  Er moet minimaal een unit opgegeven worden voordat
  113.     hieraan commando's gegeven kan worden.  Het commando wordt dan aan alle
  114.     opgegeven units doorgegeven.  Als er een unit opgegeven wordt die niet
  115.     bestaat, dan is dit een fout en wordt er helemaal niets gedaan.  Het
  116.     kan handig zijn om een unit op te geven die niet altijd bestaat, bij
  117.     voorbeeld als een drive een aan/uit schakelaar heeft.  Zou het nummer
  118.     expliciet worden opgegeven dan onstaat een foutsituatie (returncode
  119.     20), wordt echter voor het unitnummer een uitroepteken geplaatst dan
  120.     wordt het commando uitgevoerd als de unit bestaat, en wordt een
  121.     waarschuwing (returncode 5) gegeven als de unit niet bestaat.  Dit is
  122.     vooral bedoeld voor scripts als de Startup-Sequence.
  123.  
  124.     Commands
  125.  
  126.     Enkel een reeks units of 'a' zorgen ervoor dat deze units in gepatchte
  127.     code gaan draaien.  Dwz in code waar de fouten uitgehaald zijn.  Bv
  128.     'TrackSalve a' of 'TrackSalve 023'. Als hierachter commando's geplaatst
  129.     worden, gelden deze voor al deze units.  Bv 'TrackSalve 01n' zorgt voor
  130.     noclick op de units 0 en 1. Na het commando kunnen weer nieuwe units
  131.     opgegeven worden.  De commando's die hierachter komen gelden dan alleen
  132.     voor deze laatste units.  Dus:  'TrackSalve 01n2r1s' zorgt voor noclick
  133.     op de units 0 en 1, unit 2 is readonly en unit 1 kan beter lezen van
  134.     kapotte tracks.  Ook tegenstrijdige commando's kunnen worden opgegeven.
  135.     Op deze wijze laat 'Tracksalve an1c' alle units behalve 1 noclicken.
  136.     De separator of dummy commando is een "unit list reset". Bv 'TrackSalve
  137.     012/2n' laat de units 0, 1 en 2 in patched code draaien, maar alleen
  138.     unit 2 heeft noclick.  Ander voorbeeld, stel dat alles aanstaat, dan
  139.     laat 'TrackSalve ao an' alles uitzetten behalve noclick.
  140.  
  141.  
  142.                             HOE TE GEBRUIKEN
  143.  
  144.     Hoewel Disksalv in pricipe zonder kan, werken beide programma's toch
  145.     bijzonder goed samen.  Een Disksalv met TrackSalve zal over het alemeen
  146.     sneller en duidelijker verlopen.  Ook is het mogelijk (maar nog niet
  147.     aangetoond), dat de combinatie meer data kan redden.  Soms is slechts
  148.     een enkele file de moeite van het redden waard (bv een laatste
  149.     modificate, die nog niet op een backup staat), dan is het misschien
  150.     mogelijk deze file gewoon met copy van de beschadigde disk te halen.
  151.     Scheelt een hoop tijd als het lukt.
  152.  
  153.     Het is mogelijk er direct na het insteken van een disk een requester
  154.     veschijnt met iets als 'unreadable' en 'diskdoctor'. Er is een aardige
  155.     kans dat met behulp van TrackSalve deze requesters wegblijven, en de
  156.     disk toch goed inlogt.  Er is dan duidelijk meer mee mogelijk en niet
  157.     elke actie wordt afgedaan met iets van unreadable disk of zo.
  158.  
  159.  
  160.                              IMPLEMENTATIE
  161.  
  162.     De Trackdisk code wordt uit het operating system programma gekopieerd
  163.     en daar uitgebreid en gewijzigd.  Voor elk unit apart kan de task deze
  164.     of de originele code uitvoeren.  Mocht door een of andere oorzaak een
  165.     unit niet naar gepatchte code overgebracht kunnen worden, dan wordt dit
  166.     in een mededeling via standard out bekend gemaakt.  Het programma gaat
  167.     daarna gewoon door, maar de return value is dan 10.
  168.     Twee functies gebruiken een buffer van ongeveer 26k.  Indien niet
  169.     beschikbaar op het moment van het inschkelen van deze functies, zal
  170.     minimaal eens per 2.5 sec getracht worden alsnog de buffer van het
  171.     systeem te betrekken.  Totdat de buffer beschikbaar is, zullen deze
  172.     functies niet actief zijn.  Dit wordt met een toepasselijke tekst
  173.     bekend gemaakt en het programma zal ook hier de return value 10 hebben.
  174.     Gebruik TrackSalve zonder parameters om er achter te komen of de
  175.     functies actief geworden zijn.
  176.     De buffer wordt door alle tasks gebruikt.  Het is zo geregeld dat
  177.     wanneer het ene unit de buffer ingebruik heeft voor bv een verify, het
  178.     andere, dat dit nodig heeft voor bv salve, wacht tot de eerste daarmee
  179.     klaar is.  Dit zal normaal niet tot opstoppingen leiden, behalve als er
  180.     een requester uitstaat.  De requester komt tevoorschijn als er een
  181.     verify error geconstateerd is.
  182.     Als het om de een of andere reden voor het systeem niet mogelijk is een
  183.     requester te laten zien, zal de verify functie een loop gaan uitvoeren.
  184.     In deze loop wordt het scherm geflitst, de drive led knippert enige
  185.     malen en het track wordt opnieuw geschreven.  De loop wordt beeindigd
  186.     als aan een van de volgende vorwaarden voldaan is:
  187.  
  188.     1. De disk is verwijderd.
  189.     2. Het track is zonder fouten van de disk gelezen.
  190.     3. Er weer een requester getoont kan worden.
  191.  
  192.  
  193.                                COPYRIGHT
  194.  
  195.     Copyright (c) 1990  D.W.Reisig.
  196.     Dit programma mag op niet commerciele basis verspreid worden.
  197.     Dit programma mag niet op commerciele basis verspreid worden.
  198.  
  199.     D.W.Reisig
  200.     Woudweeren 10
  201.     1151 AV  Broek in Waterland
  202.     Holland
  203.