18.4.4. ICFUNKY Funkce: Zadání tabulky funkčních klíčů, její zapnutí a vypnutí. Způsob volání: CALL 'ICFUNKY' USING funkce parametr Význam: 1) Položka funkce musí mít popis PIC 9(4) USAGE COMP. Obsahuje hodnotu, požadující, co má podprogram dělat: 0 zadání tabulky funkčních klíčů 1 zapni tabulku funkčních klíčů 2 vypni tabulku funkčních klíčů 2) Položka parametr má význam pouze u funkce 0, tedy u zadání tabulky funkčních klíčů, kde musí být skupinovou položkou následující struktury: - první položkou musí být položka s popisem PIC 9(4) COMP, do které je ukládána návratová hodnota po každém provedeném prohledání tabulky funkčních klíčů. Hodnota zde zapsaná identifikuje klávesu, která byla stisknuta. - za první položkou se vyskytují dvojice položek, které mohou mít podle potřeby různou délku. Obsah těchto položek definuje jednotlivé funkční klíče. Přitom zde lze uvést, definovat jak obyčejné klávesy (do programu jde jediný znak) tak i klávesy, které do programu zasílají znaky dva (funkční klávesy). První z dvojice těchto položek má popis PIC 9(4) USAGE COMP a obsahuje buď hodnotu 1 nebo hodnotu 2 podle toho, zda v tabulce funkčních klíčů chceme definovat obyčejnou klávesu nebo klávesu funkční. Druhá z dvojice má popis buď PIC X nebo PIC XX podle toho, jakou délku jsme zadali v předchozí položce. Tato dvojice položek se opakuje tolikrát, kolik funkčních klíčů chceme zadat. - za poslední dvojicí položek musí být položka s popisem PIC 9(4) COMP, která obsahuje hodnotu nula, a která ukončuje tabulku funkčních klíčů. 3) Po zadání tabulky funkčních klíčů ji lze novým vyvoláním podprogramu ICFUNKY s hodnotou položky funkce rovnou jedné aktivovat, nebo použijeme-li funkci 2, lze tabulku funkčních klíčů dynamicky vypnout. Nekontroluje se ovšem, zda uživatel nezapne tabulku funkčních klíčů dřív, než zadá její adresu. Výsledky takového postupu jsou ovšem nepředvídatelné, zpravidla pochmurné. Na druhé straně je ovšem možné mít připraveno několik tabulek funkčních klíčů a podle potřeby je aktivovat zadáním jejich adresy. Rovněž je možné v aktivní tabulce měnit obsah položek v tabulce nebo ji dokonce prodlužovat. Po takovém zásahu není nutné znovu zadávat její adresu nebo ji zapínat či vypínat. Tabulka zadaná v jednom programu platí pro všechny další, které jsou s ním spojeny.