Järjestelmä AGS ( Keskeytä Guidance System ) oli tietokone hätätilanteessa, kun kyseessä on ensisijainen ohjausjärjestelmän vika kuumoduuli of Apollo . Se oli suunniteltu toteutettavaksi heikentyneessä tilassa, kuun laskeutumisen , lentoonlähdön tai tapaamisvaiheiden aikana kuun kiertoradalla . Varajärjestelmänä sitä ei ollut tarkoitettu hallitsemaan kuun laskeutumista. Toisaalta se pystyi helpottamaan kiinnitystä kiertoradalla.
AGS-järjestelmän on kehittänyt TRW , täysin erillään pääohjausjärjestelmästä ( PGNCS ) ja muun muassa päätietokoneesta ( AGC ). Se on historiallisesti ensimmäinen ohjausjärjestelmän tehdä käyttämällä sidotut tyyppi inertiaalinen yksikkö (eli ilman pyörivä keinuripustimia ). Se on myös ainoa Apollo-ohjelman järjestelmä, jolla on tämä erityisyys. Vaikka tämä muotoilu ei salli sen olevan yhtä tarkka kuin sen kardaaniparturit, se riittää optiseen teleskooppiavustettuun navigointiin ( AOT ) ja kohtaamispaikatutkaan . Strapdownin tärkein etu on sen pieni paino ja pieni koko.
AGS koostuu seuraavista komponenteista:
Käytetty laskin oli MARCO 4418, jonka koko oli 12,7 x 20,3 60,33 senttimetriä. Sen massa oli 14,83 kg ja se kulutti 90 wattia . Kun läsnä on muistiväylän standardi keskimääräinen teki hänet hitaammin kuin AGC. AGS suoritti kuitenkin jotkut toiminnot nopeammin, mikä johtui koneiden arkkitehtonisista eroista .
Laskimella oli seuraavat ominaisuudet:
Laskimella oli seuraavat rekisterit :
Tiedot kirjoitetaan sinne kahden komplementtiperusteella , joten rekisterien ensimmäinen bitti merkitsee yleensä numeron merkkiä.
Laskin ohjeet olivat seuraavassa muodossa:
opcode (5 bits) + index (1 bit) + adresse (12 bits)Hakemistobitti osoittaa indeksoidun osoitteen . Prosessori oli joukko 27 ohjeet:
ADD : määritetyn muistialueen sisältö lisätään A-rekisteriin (akku);
ADZ( Lisää ja nolla ): identtinen käskyn ADDkanssa, muistialue nollataan;
SUB( Vähennä ): määritetyn muistialueen sisältö vähennetään rekisteristä A (akku);
SUZ( Vähennä ja nolla ): identtinen käskyn SUBkanssa, muistialue nollataan;
MPY( Kerro ): rekisterin A sisältö kerrotaan muistin sisällöllä. Merkittävin puolet tuloksesta tallennetaan A-rekisteriin, vähemmän merkittävä Q-rekisteriin;
MPR( Kerro ja kierrä ): identtinen käskyn kanssa MPY, rekisterin A sisältö pyöristetään lisäämällä 1, jos rekisterin Q merkittävin bitti on 1;
MPZ( Kerro ja Nolla ): identtinen käskyn MPRkanssa, muistin nollaus;
DVP( Divide ): A- ja Q-rekistereiden ketjutettu sisältö jaetaan muistin sisällöllä. Tulos tallennetaan A-rekisteriin ja pyöristetään (ellei pyöristäminen aiheuta muistin ylivuotoa );
COM( Täydennysakku ): rekisterin A sisältö korvataan sen kahden täydennyksellä. Jos rekisterin A sisältö on positiivinen, nolla tai yhtä suuri kuin -1, sitä ei muuteta ;
CLA( Tyhjennä ja lisää ): muisti kopioidaan rekisteriin A;
CLZ( Tyhjennä, Lisää ja nolla ): identtinen CLA, muistin nollauksen kanssa;
LDQ( Lataa Q-rekisteri ): muisti kopioidaan Q-rekisteriin;
STO( Store Accumulator ): rekisterin A sisältö kopioidaan muistiin;
STQ( Store Q Register ): Q-rekisterin sisältö kopioidaan muistiin;
ALS N( Vasemman aritmeettinen muutos ): rekisterin A sisältö siirtyy vasemmalle N bittiä;
LLS N( Pitkä vasen muutos ): rekisterin A ketjutettu sisältö ja rekisterin Q viimeiset 17 bittiä siirretään vasemmalle N bitillä. Q-rekisterin merkki (ensimmäinen bitti) tehdään identtiseksi A-rekisterin merkin kanssa;
LRS N( Long Right Shift ): samanlainen kuin LLS, mutta sisältö on siirretty oikealle;
TRA( Siirto ): seuraava käsky ladataan muistista;
TSQ( Transfer and Set Q ): Q-rekisterin sisältö korvataan osoitetta, joka on suurempi kuin määritetty muistialue. Seuraava käsky ladataan sitten muistista;
TMI( Siirto miinusakulla ): jos A-rekisterin sisältö on negatiivinen, seuraava käsky ladataan muistista;
TOV( Transfer on Overflow ): jos muistin ylivuotolippu on korkea, seuraava käsky ladataan muistista;
AXT N( Osoite hakemistoon ): indeksointirekisteri saa arvon N;
TIX( Test Index and Transfer ): jos indeksointirekisteri on positiivinen, sitä vähennetään ja seuraava käsky ladataan muistista;
DLY( Viive ): Suoritus keskeytyy, kunnes ajoitussignaali vastaanotetaan . Seuraava käsky ladataan sitten muistista;
INP( Input ): määritetyn muistiosoitteen syöttörekisterin sisältö sijoitetaan rekisteriin A. Valitusta rekisteristä riippuen tulorekisteri nollataan tai ei;
OUT( Output ): Rekisterin A sisältö sijoitetaan lähtörekisteriin määritettyyn muistiosoitteeseen.