Atom Nieuws
../../../images/back.gif ../../../images/exit.gif ../../../images/forward.gif
pagina 7

Atomic Windows

AW Commander


Inleiding:

Vroeger had ik alleen een originele Atom en waren er geen problemen met het uitwisselen van files. Gewoon een kwestie van floppy of tape oversteken en draaien met die handel. Nu zit ik in de luxe situatie dat er naast mijn Atom een PC staat waarop diverse emulators kunnen draaien. Samen met deze luxe onstond het probleem met het uitwisselen van files. In de loop der tijd zijn hiervoor een aantal oplossingen bedacht zoals: AIC, FTP, AIC-DOS en de Atom-in-PC kaart. Maar zoals elke Atomist probeer je voor iedere oplossing een nieuw probleem te vinden. Ten eerste doet het bestaande programma net niet wat je voor ogen had en ten tweede is het weer een nieuwe uitdaging om alles aan de gang te krijgen.

Principe:

Het idee is namelijk om een standaard Atom te koppelen met een PC via een AIC-kabel. Het is natuurlijk ook mogelijk om twee Atoms of twee PC's met elkaar te koppelen maar dat heeft naar mijn idee niet zoveel zin omdat je hier met het uitwisselen van floppies hetzelfde resultaat kunt bereiken.
Verder moet er een programma komen wat op beide machines draait. De opzet is om de ene machine als Master te betitelen en de andere als Slave. De Master krijgt de beschikking over de drives van de Slave. In de Master-mode krijg je een scherm te zien met 2 vensters. Het ene venster laat de drives en files van de Master (local system) en het andere venster de drives en files van de Slave (link system) of Master (local system) zien. Verder moet het mogelijk zijn om files te wissen, files te kopiëren of complete diskettes te kopiëren van de Master naar de Slave of vice versa. De machine die in Slave-mode staat kan verder niet gebruikt worden en doet alleen wat de Master vraagt.

Programma:

In het hoofdscherm kun je dan files selecteren en wissen of kopiëren naar het andere venster. Als de configuratie op Disk-mode staat dan zal er een complete disk van het ene venster naar het andere gekopieerd worden. Hieronder staat een afdruk van het hoofdscherm:

awcom-1.gif

Wanneer je op de CFG-knop drukt kom je in het configuratiescherm. Hierin kun je aantal voorinstellingen maken zoals.

- Left, kies of het linkervenster de locale- of link drives/files laat zien
- Right, kies of het rechtervenster de locale- of link drives/files laat zien,
- Machine, is het locale systeem een Atom of een PC,
   indien een PC, wat is de I/O poort,
- Mode, gaat het om een file- dan wel disk-copy,
- Slave, moet de huidige machine als Slave fungeren.
- Tst, test de verbinding tussen de machines.

Hieronder staat een afdruk van het configuratiescherm:

awcom-2.gif

Het programma probeert te detecteren of het op een standaard Atom of op een PC draait en maakt hiervoor de nodige voorkeursinstellingen in het configuratiescherm, Deze zijn altijd te wijzigen.

Communicatie:

Ik wil nog even iets dieper ingaan op de werking. De communicatie tussen Atom en PC gebeurt d.m.v. een AIC kabel. De penaansluitingen zijn terug te vinden in de artikelen over AIC en AIC-DOS (jaargang 16-3)
De communicatie is als volgt op te splitsen:

Master SlaveDataoverdrachtRoutine
Atom->PC4 bits breedSendBytePC
Atom<-PC8 bits breedGetBytePC
PC->Atom8 bits breedSendByteAtom
PC<-Atom4 bits breedGetByteAtom

Strobe en Busy signaal:

Men heeft de beschikking over 2 signalen voor de besturing van de bus, een Strobe en een Busy signaal. Het Strobe signaal is een lijn die door de Master bestuurd wordt. Strobe hoog wil zeggen: 'data op de bus is niet betrouwbaar' en Strobe laag wil zeggen: 'data op de bus is ok'. Het Busy signaal is een lijn die door de Slave bestuurd wordt. Busy hoog wil zeggen: 'ben bezig, kan nu geen data ontvangen' en Busy laag wil zeggen: 'ben gereed om data te ontvangen'.

SendByte:

Er zijn 2 SendByte routines: SendBytePc (van Atom naar PC, 4 bits breed) en SendByteAtom (van PC naar Atom, 8 bits breed). In principe zijn beide routines hetzelfde, alleen de dataoverdracht is 4 of 8 bits breed en de I/O adressen zijn anders. De principewerking van de routine voor het verzenden van een byte is als volgt:

- Strobe hoog, data staat nog niet op de bus,
- Zet data op de bus,
- Strobe laag, data staat nu op de bus,
- Wacht tot Busy hoog gaat, andere machine leest data van de bus,
- Indien nog niet alles verstuurt, terug naar begin.

GetByte:

Ook voor het ontvangen van een byte zijn 2 routines, GetBytePC (van PC naar Atom, 8 bits breed) en GetByteAtom (van Atom naar PC, 4 bits breed). Deze routines zijn, net als bij SendByte, in principe hetzelfde behalve de 4 of 8 bits brede dataoverdracht en de I/O adressen. Hieronder staat de principewerking van ontvangen:

- Busy laag, machine is gereed om data te ontvangen,
- Wacht tot Strobe laag is, data staat dan op de bus,
- Busy hoog, machine is bezig om data te lezen,
- Lees data van de bus,
- Indien nog niet alles ontvangen, terug naar begin.

Commando's:

De rest van de software is zodanig opgebouwd dat de Master een #00 naar de Slave stuurt ten teken dat het volgende byte een commando-nr byte is. Afhankelijk van het commando wordt er data van en naar de Slave gestuurt. De routines die gedefinieerd zijn, zijn de volgende:

#00, LoadDir, Lees #2000-#21FF van Slave
#01, SaveDir, Stuur #2000-#21FF naar Slave
#02, LoadFile, Lees file sector voor sector van Slave en zet deze op disk
#03, SaveFile, Schrijf file sector voor sector naar Slave
#04, LoadDisk, Lees complete disk track voor track van Slave
#05, SaveDisk, Schrijf complete disk track voor track naar Slave

Alle diskroutines hebben een error afvangroutine. Het Error-nummer wordt eerst 0 gemaakt en indien er een error optreedt zal het Error-nummer aangepast worden. Voordat er data overdracht plaatsvindt zal er eerst een StatusByte (= Error-Nummer) verstuurd worden ten teken dat het mogelijk is om data te ontvangen/versturen naar de desbetreffende drive.

Vervolg:

Ik ben nog vollop bezig om het assembler gedeelte van de software te schrijven maar deze zal waarschijnlijk niet klaar zijn op het moment van uitgave van deze Atom News. Ik hoop daarom dat ik alles werkende heb voor de komende landdag.

Tot schrijvens!!
Kees van Oss

../../../images/back.gif ../../../images/exit.gif ../../../images/forward.gif