11.2. Příkaz ENTRY Formát: ENTRY 'externí-jméno' [USING položka ...] Funkce: Příkaz ENTRY definuje vstupní bod v cobolském programu, na nějž je možno předat řízení z jiného programu (cobolského nebo napsaného v jiném jazyce). Při přebrání řízení může příkaz ENTRY zároveň přebrat od vyvolávajícího programu argumenty (přesněji jejich adresy). Pro externí-jméno uvedené v apostrofech za slovem ENTRY platí stejná pravidla jako u příkazu CALL. V programu v jazyce C vzniklém překladem zdrojového cobolského programu bude příkazu ENTRY odpovídat funkce pojmenovaná externím-jménem uvedeným za slovem ENTRY, která nevrací žádnou hodnotu a má tolik formálních parametrů, kolik argumentů je v příkazu ENTRY uvedeno za slovem USING (přitom všechny tyto formální parametry jsou typu "unsigned char*"). Jméno této funkce je externí, bude tedy přístupné programům, které budou s naším programem spojovány v jednom běhu spojovacího programu; může tedy při spojování jakožto "nabídka" uspokojit "poptávky" vyjádřené voláním externí stejnojmenné funkce v některém programu spojovaném současně s naším. Tento druhý program bude pak volajícím programem, jenž bude schopen předávat řízení na náš příkaz ENTRY; může být napsán v jazyku C (pak se musí jednat o volanou externí funkci) nebo v COBOLu (pak je třeba uvést totéž jméno jako externí jméno v příkazu CALL nebo jako argument příkazu CALL uzavřený v závorkách) nebo i v jiném programovacím jazyce, jenž umí volat externí funkci nevracející žádnou hodnotu. Je-li v příkazu ENTRY uvedena klauzule USING, měl by volatel předávat funkci odpovídající příkazu ENTRY tolik argumentů, kolik položek je uvedeno za slovem USING v příkazu ENTRY, přičemž všechny tyto předávané argumenty by měly být ukazatelového typu a měly by ukazovat na přístupné úseky paměti. (Předává-li volatel více argumentů, není to žádná chyba a nadbytečné argumenty se nevyužijí. Předává-li volatel méně argumentů, budou posledním položkám uvedeným za slovem USING přiděleny bezvýznamné adresy, což může a nemusí být chyba.) Není-li v příkazu ENTRY vůbec uvedena klauzule USING, neměl by volatel předávat žádné argumenty (učiní-li tak, ignorují se). Příkaz ENTRY si tedy ze zásobníku bere tolik skutečných argumentů, kolik má uvedeno položek za slovem USING, přičemž předpokládá, že všechny předávané skutečné argumenty jsou ukazatelového typu. Kdyby některý z předávaných skutečných argumentů nebyl ukazatelového typu, bude odpovídající položce uvedené v příkazu ENTRY za USING přidělena neexistující adresa, takže v případě použití této položky může výpočet zhavarovat. Pravidla: 1) Počet příkazů ENTRY v cobolském programu není omezen. 2) Externí jména uvedená v příkazech ENTRY v témže cobolském programu musí být navzájem různá a nesmí se shodovat se jménem programu z paragrafu PROGRAM-ID. (Totéž platí dokonce i pro všechny programy zpracovávané v témže běhu spojovacího programu.) 3) Položky uvedené za slovem USING musí být popsány v LINKAGE SECTION nebo ve FILE SECTION (v tom případě viz 4.4., pravidlo 8) s čísly úrovně 01 nebo 77. Příkaz ENTRY způsobí, že se do ukazatelů přidělených těmto položkám (viz 4.9.) uloží adresy předávaných skutečných argumentů; první položka uvedená za USING dostane přidělenu první adresu, druhá položka uvedená za USING dostane přidělenu druhou adresu atd. 4) Přijde-li se na příkaz ENTRY "lineární" posloupností příkazů, tak se příkaz ENTRY přeskočí (tj. ignoruje se) a přejde se na příkaz následující za příkazem ENTRY. Poznámka: Normálně se příkaz ENTRY používá takto: Z volajícího programu se předá řízení na příkaz ENTRY, jenž (při USING) převezme adresy předávaných argumentů. Pak se přejde na příkaz následující za příkazem ENTRY a provádí se normální výpočet, a to tak dlouho, až se přijde na příkaz způsobující návrat do volajícího programu (GOBACK nebo EXIT PROGRAM) anebo ukončení výpočtu (STOP RUN nebo chybný příkaz), na další příkaz CALL atd.