MULTIX od środka: Różnice pomiędzy wersjami

Przejdź do nawigacji Przejdź do wyszukiwania
Linia 558: Linia 558:
Po otrzymaniu polecenia od MERY-400 MULTIX sprawdza, czy może przyjąć polecenie i reaguje odpowiednio do warunków, wysyłając przerwanie odpowiednie dla danego polecenia:
Po otrzymaniu polecenia od MERY-400 MULTIX sprawdza, czy może przyjąć polecenie i reaguje odpowiednio do warunków, wysyłając przerwanie odpowiednie dla danego polecenia:


* jeśli konfiguracja MULTIX-a nie jest ustawiona -> przerwanie "brak linii"
* jeśli konfiguracja MULTIX-a nie jest ustawiona -> '''brak linii'''
* jeśli linii nie ma w konf (nr. linii > MAXLL) - przerwanie "brak linii"
* jeśli linii nie ma w konf (nr. linii > MAXLL) - '''brak linii'''
* jeśli konfiguracja MULTIX-a nie jest ustawiona (ponowne sprawdzenie) -> przerwanie "pdrzucenie polecenia"
* jeśli konfiguracja MULTIX-a nie jest ustawiona (ponowne sprawdzenie) '''pdrzucenie polecenia'''
* jeśli ((b.zaw & 1) | (b.war) != 0) -> przerwanie "pdrzucenie polecenia"
* jeśli ((b.war & 1) | (b.zaw) != 0) -> '''pdrzucenie polecenia'''. Warunek tłumaczy się na:
** jeśli zadanie w linii jest aktywne
** jeśli jest już polecenie bezwarunkowego startu zadania (czyli takie polecenie zostało już wydane)
** jeśli zadanie danego typu jest zgłoszone, ale nie zostało jeszcze odebrane przez manager zadań (start bezwarunkowy)
** jeśli zadanie jest aktywne
** jeśli ... ??? - przerwanie "odrzucenie polecenia"
** jeśli zadanie czeka na warunek
* jeśli żadna z powyższych sytuacji nie wystąpiła, zadanie jest zgłaszane:
* jeśli żadna z powyższych sytuacji nie wystąpiła, zadanie jest zgłaszane:
** opcjonalnie pobierany jest argument zadania (dla zadań, które mają argumenty)
** opcjonalnie pobierany jest argument zadania (dla zadań, które mają argumenty)
** PZGLI dla zadania = 1
** PZGLI[zadanie] = 1
** ADPZL[zadanie, linia] |= 1 (zgłoszenie zadania od początku)
** ADPZL[zadanie, linia] |= 1 (zgłoszenie zadania od początku)


Menu nawigacyjne