>> info.all 2. verze popisu mxc - aktuálně platná ****************************** ------------------------------------- Průchod zdrojového programu překladačem ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1) Nejdříve se dostane na řadu Vérosta se svým driverem a animátorem, mimo jiné též připraví argumenty pro main v programu COBRIDIC, načež tuto funkci vyvolá. Princip driveru (česky ovladače) spočívá v tom, že je jednak spuštěn jako první subjekt, jednak se chopí řízení a podle toho, jak vypadá příkazový řádek spouští postupně kompilátor na jednotlivé zdrojové programy (funkce docobol() ), hlídá si vytváření souborů se zdrojovým textem přeloženého programu, výsledné zdrojáky v jazyce C překládá céčkem (funkce docc()) a nakonec veškerý materiál (přeje-li si to uživatel) zpracuje spojovacím programem (funkce dolink()) do podoby spustitelného programu. 2) Vlastní překlad začíná funkcí main v programu COBRIDIC. Program COBRIDIC spolu se svými podprogramy zpracuje zdrojový program od začátku až do PROCEDURE DIVISION, kdy předá řízení funkci prosl v programu COBPROSL, jenž se do COBRIDIC již nevrátí. Z podprogramů programu COBRIDIC jsou nejvýznamnˆjší: - COBDATUM (získání data a času pro celý překlad) - COBSELEC (zpracování klausulí SELECT) - COBSAPUN (zpracování paragrafu I-O-CONTROL) - COBSPC (zpracování paragrafu SPECIAL-NAMES) - COBFD (zpracování klausulí FD a SD) - COBWAGEN (zpracování popisů položek, podmínkových jmen a klausulí CD) - COBREK (dopracování adresáře při nalezení první klausule RD resp. záhlaví PROCEDURE DIVISION) - COBREW (zpracování REPORT SECTION) - COBSCR (zpracování SCREEN SECTION) - COBWYPIS (výpis adresáře v hexadecimálním tvaru pro ladění překladače) 3) Program COBPROSL spolu se svými podprogramy zpracuje a přeloží zdrojový program od PROCEDURE DIVISION až po nalezení konce zdrojového programu. Jeho podprogramy jsou funkce pro překlad jednotlivých cobolských příkazů (viz níže). Pro čtení slova zdrojového programu COBPROSL volá funkci ctisl v programu COBCTISL; jakmile tato funkce zjistí konec zdrojového programu, již se do COBPROSL nevrátí a předá řízení funkci aeof v programu COBFUN1. 4) Funkce aeof v programu COBFUN1 provede potřebné závěrečné akce a ukončí vlastní činnost překladače příkazem exit, čímž se vrátí do driveru (bod 1). 5) Tím dostane řízení opˆt driver - viz bod 1. c:\mx\cob\cdir Obsah adresáře C:\MX\COB s výjimkou programů COB*.C ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ odkaz na adresář BIN odkaz na adresář LIB BB*.* - zkušební příkazy BLDSIND.C - off-line vytvoření indexu pro ISAM (Vérosta) BLDSIND.PRJ - linkování bldsind z lib\yf* CBB.CB - zkušební příklad CBT*.* - zkušební příklady COB.H - include do většiny COB*.C: deklarace obecných struktur, konstant a funkcí COBADR.H - include: popis struktury položky adresáře COBDEB.H - include: struktura pro adresář debuggeru COBM.PRJ - pracovní linkování pro MXCOB COBMA.PRJ - pracovní linkování pro MXCOB COBMOV.H - struktura mov pro interní příkazy MOVE a aritmetické příkazy COBMSGC.H - české texty chyb COBPAR.H - struktura param-sekce používaná jako include ve všech programech kromě páně Šmerkových COBPAR.I - vytvoření param-sekce včetně počátečních hodnot COBPAR.S - struktura param-sekce používaná jako include v páně Šmerkových programech COBPARAM.H - plná struktura param-sekce včetně poznámek používaná pouze na koukání; z ní se automaticky generují COBPAR.H, COBPAR.S a COBPAR.I COBPERF.H - struktura perf pro příkazy PERFORM, GO a ALTER COBRW.H - struktury adresáře pro REPORT SECTION COBSCR.H - struktura OBR předávaná z ACCEPT/DISPLAY do icb* pro SCREEEN SECTION COBSELEC.H - struktura select odpovídající klausulím SELECT, FD/SD a dalším klausulím a příkazům pro soubory; representuje soubor během překladu COBW.H - include: struktura W pro položku v adresáři DVHE.PRJ - zkušební project pro ICBHE DV*.CB - Dvořáčkovy zkušební příklady na REPORT SECTION ISAM.IND - zapomenutý výýledek testu /* very important, vytvoření drajvru překladače */ MXC.C - driver překladače MX COBOL, bod 1 MXCAR.BAT - archivace materiálu překladače MXCDBX.PRJ - project programu, kterýý vytvoří indexy pro adresář položek potřebný pro animaci (TC 2.0) MXCDOK.BAT - nahrání dokumentace na disketu MXCER.ERR - tabulka chyb hlášených při výýpočtu MXCICB.H - deklarace všech icb* (include pro přeložený C-program) MXCINST.C - instalace překladače u uživatele MXCMSG.C - po ukončení překladu vytvoří a vypíše seznam chyb, volaný z driveru /* very important, vytvoření překladače */ MXCOB.PRJ - project pro vytvoření MXCOB ve verzi pro TC 2.0, pro novˆější překladače nutno příslušnˆě překonvertovat MXCOMREG.COB - Skutečný COMREG, tak jak existuje u uživatele MXCOBOLu. Tento soubor je čten icbcmrgr.c a zapisován icbcmrgw.c MXCOMREG.H - struktura COMREG (include pro přeložený C-program, pracuje-li se s položkou COM-REG). Je to vnitřní obraz souboru MXCOMREG.COB MXCPRE.BAT - batch pro nahrání COBOLu MXCPREB.BAT - batch pro nahrání COBOLu MXCSDTF.H - struktura sdtf (include pro přeloženýý C-program: representuje jeden soubor v přeloženém C-programu) PAK.BAT - starší verze archivace PKARC.COM - kradený komprimátor PKUNZIP.EXE - nepatří ke Cobolu PKXARC.COM - kradenýý dekomprimátor POM1.PRJ - pracovní linkování při hledání jakési chyby R64.* - patří ke zkušebním příkladům README.TXT - informace pro uživatele MX COBOLu SAVEC* - pro úklidy zdrojových programů TCCONFIG.TC - nepatří ke Cobolu TCPICK.TCP - nepatří ke Cobolu TDCONFIG.TD - Turbo Debugger configuration file TESTMX.CB - zkušební příklad na ISAM TURBOC.CFG - asi nepatří ke Cobolu, je to konfigurace TC 2.0 XF.H - záhlaví pro práci s ISAM (Vérosta) XFILE.H - řídicí struktury pro ISAM (Vérosta) XSORT.H - header file pro xsortla.c nebo xsortsm.c (Vérosta) YFHIO.H - deklarace pro ISAM (Vérosta) ZK*.CB - zkušební příklady Programy C:\MX\COB - COB*. C - zdrojové programy překladače ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ COB66 - voláno z COBWAGEN: zpracování popisu s číslem úrovnˆě 66 COB88 - voláno z COBWAGEN: zpracování popisu s číslem úrovnˆě 88 COBACPT - voláno z COBDISP pro dokončení překladu obrazovkového příkazu ACCEPT nebo DISPLAY COBADD - voláno z COBPROSL: překlad příkazu ADD COBBINEC - voláno odevšud: obsahuje funkce binec a bines pro převod načteného slova do typu short nebo long COBCALL - voláno z COBPROSL: překlad příkazů CALL a LOAD COBCALL1 - pokračování zdroje COBCALL.C, jenž byl moc dlouhýý COBCOHAF - voláno z COBREGEN: generování pro REPORT SECTION COBCOMP - voláno z COBPROSL: překlad příkazu COMPUTE, dále zpracování aritmtického výrazu pro všechny příkazy COBCTISL - voláno odevšud: čtení jednoho slova zdrojového programu, dále čtení po tečku, čtení PICTURE a čtení nového řádku COBCWYHL - voláno odevšud: zpracování odkazu na položku, soubor, třídicí soubor, podmínkové jméno atd. včetnˆě zpracování kvalifikace a indexů COBDATUM - voláno z COBRIDIC (pouze jednou): nastaví datum a čas pro celý překlad COBDEB - vytvoření pomocných souborů pro animaci (Vérosta) COBDISP - voláno z COBPROSL: překlad příkazů DISPLAY, EXHIBIT a ACCEPT COBDIV - voláno z COBPROSL: překlad příkazu DIVIDE COBDRID - driver překladače (Vérosta) COBENT - voláno z COBPROSL: překlad klausule USING v záhlaví PROCEDURE DIVISION a příkazu ENTRY COBEXAM - voláno z COBPROSL: překlad příkazu EXAMINE COBEXT - definice externích objektů, hojnˆě využívaných při překladu aritmetického výrazu, aritmetickýých příkazů a příkazu MOVE COBFD - voláno z COBRIDIC: zpracování klausule FD resp. SD COBFIGUR - voláno odevšud, kde se může vyskytovat figurativní konstanta: rozpoznání a zpracování figurativní konstanty COBFUN1 - funkce a procedury volané odevšad (popisy viz níže): trixi, aeof, sourlom, vctisln, nora, les, pes a putdecl COBGENE - voláno z COBPROSL: překlad příkazu GENERATE COBHEAD - voláno z COBREGEN: generování pro REPORT SECTION COBINIT - voláno z COBPROSL: překlad příkazu INITIATE COBINITI - voláno z COBPROSL: překlad příkazu INITIALIZE COBINSP - voláno z COBPROSL: překlad příkazu INSPECT COBKONEX - voláno odevšud: kontrola správnosti slova, jenž má vyhovovat pravidlům pro externí jméno COBKORES - voláno z COBADD, COBSUB, COBMOVE: překlad příkazů s klausulí CORR resp. CORRESPONDING COBLITER - funkce a procedury volané odevšad (popisy viz níže): fliter, gliter, flit, sliter, slit, strxcpy, filch, cvd, cvs, signa, blanka, justa a predmov COBLITS - funkce literals volaná odevšud (generování řetˆzce do paměti pro pozdější vygenerování) COBMOVE - voláno z COBPROSL: překlad příkazu MOVE COBMOVNA - překlad přesunu z rozpakované, pakované nebo binární položky do numerické položky COBMOVNE - překlad přesunu z numerické editované položky nebo položky se SIGN LEADING bez SEPARATE do numerické položky COBMOVNU - překlad přesunu mezi numerickými položkami COBMSGD - voláno odevšud: hlášení chyby (uložení informací o chybˆ) COBMUL - voláno z COBPROSL: překlad příkazu MULTIPLY COBMVARG - zpracování arggumentu pro příkaz MOVE, klausuli VALUE a klausuli SOURCE, má-li tvar CURRENT-DATE, TODAYS-DATE, TIME-OF-DAY, COM-REG nebo RETURN-CODE COBMVGEN - generace obecného přesunu COBON - voláno z COBPROSL: překlad příkazu ON COBOPEN - voláno z COBPROSL: překlad příkazů OPEN a CLOSE COBOPICE - voláno z COBWAGEN a z ošetřování popisu položky v REPORT SECTION: zpracování řetˆzce v klausuli PICTURE COBPERFN - funkce pkval, hledej a create používané při zpracovávání záhlaví sekcí a paragrafů a odkazech na nˆě COBPERFO - voláno z COBPROSL: překlad příkazů PERFORM a END-PERFORM COBPERIN - zpracování konce performovaného úseku programu COBPERPA - voláno z COBPROSL: zpracování záhlaví sekce nebo paragrafu, překlad příkazů GO, GOTO a ALTER COBPROSL - voláno z COBRIDIC (bez návratu) při dosažení PROCEDURE DIVISION; vyhledává záhlaví sekcí a paragrafů a počáteční slova jednotlivých příkazů a vyvolává patřičné ošetřující procedury; obsahuje procedury pro ošetření tečky a příkazů EXIT, GOBACK, NOTE, READY, RESET, SUPPRESS a THEN; při dosažení konce zdrojového programu se již řízení do COBPROSL nevrátí, nýbrž COBCTISL vyvolá funkci aeof v COBFUN1 COBPRUHL - voláno odevšad: hledání zadaného slova v zadané tabulce slovo; též zjišźování, zda se nejedná o slovo reservované pro operační systém použité jako externí jméno COBREAD - voláno z COBPROSL: překlad příkazů READ, RETURN a DELETE COBREGE1 - voláno z COBREGEN: generování pro REPORT SECTION COBREGEN - voláno z funkce aeof v COBFUN1: spolu se svýými podprogramy vygeneruje procedury a příkazy pro REPORT SECTION COBREK - voláno z COBRIDIC: dopracování adresáře při nalezení první klausule RD nebo záhlaví PROCEDURE DIVISION COBRELEX - voláno z COBPROSL: překlad příkazů IF, ELSE/OTHERWISE a END-IF; překlad podmínˆěného výrazu COBREW - voláno z COBRIDIC: řídicí program překladu REPORT SECTION (popisy z REPORT SECTION se zakódují do adresáře a dalších tabulek překladače, doplní se při překladu příkazů pro REPORT SECTION v PROCEDURE DIVISION, načež vlastní procedury a příkazy se vygenerují v programu COBREGEN volaném z funkce aeof v COBFUN1 a v podprogramech programu COBREGEN) COBRIDIC - začátek překladu po driveru (obsahuje main); řídicí program pro překlad zdrojového programu od začátku po nalezení PROCEDURE DIVISION, kdy předá řízení proceduře COBPROSL a již je nedostane zpˆět COBRWPOL - voláno z COBREW: kontrola popisu položky z REPORT SECTION a jeho zakódování do adresáře a dalších tabulek překladače COBRWSES - voláno z COBREW: kontrola popisu sestavy z REPORT SECTION a jeho zakódování do adresáře a dalších tabulek překladače COBRWSKU - voláno z COBREW: kontrola popisu skupiny z REPORT SECTION a jeho zakódování do adresáře a dalších tabulek překladače COBSAPUN - voláno z COBRIDIC: zpracování paragrafu I-O-CONTROL COBSCR - voláno z COBRIDIC: zpracování SCREEN SECTION COBSEARC - voláno z COBPROSL: překlad příkazů SEARCH a WHEN COBSELEC - voláno z COBRIDIC při nalezení slova SELECT: zpracování této a všech následujících klausulí SELECT COBSETGN - voláno z COBPROSL: překlad příkazu SET COBSORT - voláno z COBPROSL: překlad příkazů SORT a MERGE COBSPC - voláno z COBRIDIC: zpracování paragrafu SPECIAL-NAMES COBSPECY - voláno odevšad, kde se může vyskytovat speciální jméno: zjištˆní, zda se jedná o speciální jméno a jeho nahrazení odpovídajícím funkčním jménem COBSTART - voláno z COBPROSL: překlad příkazu START COBSTOP - voláno z COBPROSL: překlad příkazu STOP COBSTR - voláno z COBPROSL: překlad příkazu STRING COBSUB - voláno z COBPROSL: překlad příkazu SUBTRACT COBTERM - voláno z COBPROSL: překlad příkazu TERMINATE COBTRAN - voláno z COBPROSL: překlad příkazu TRANSFORM COBUFO - voláno z COBPROSL: překlad příkazů UFO a UFD COBUNSTR - voláno z COBPROSL: překlad příkazu UNSTRING COBUPRV - voláno odevšad: úprava literálu dle popisu položky COBUPSI - voláno z COBRELEX: ošetření UPSI v podmínˆném výrazu COBVALUE - voláno z COBPROSL po nalezení PROCEDURE DIVISION: generace hodnot z klausulí VALUE do C-programu COBWAGEM - pokračování COBWAGEN, jenž byl moc dlouhý COBWAGEN - voláno z COBRIDIC při nalezení čísla úrovnˆ nebo klausule CD: řídicí program pro zpracování všech popisů položek, podmínkových jmen a klausulí CD až do nejbližšího záhlaví COBWRITE - voláno z COBPROSL: překlad příkazů WRITE, REWRITE a RELEASE COBWYPIS - voláno z COBRIDIC při nalezení PROCEDURRE DIVISION, je-li nastaven "tajný" CBL DOS3: vypíše adresář v hexadecimálním tvaru pro ladˆní překladače COBZIPA - voláno odevšud: ošetření začátků a konců příkazů, jež mají svůj "rozsah" (IF, ELSE/OTHERWISE, END-IF, PERFORM, END-PERFORM, SEARCH, WHEN, tečka) COBZMENA - voláno z COBREGEN: generování pro REPORT SECTION Funkce pro překlad jednotlivých příkazů volané z programu COBPROSL ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Při nalezení prvního slova cobolského příkazu (tzv. "slovesa") volá program COBPROSL odpovídající funkci. Následující přehled ukazuje, jak se tato odpovídající funkce jmenuje a ve kterém zdrojovém programu se nalézá: sloveso funkce zdrojový program autor ----------- ---------- ---------------- -------- tečka (.) tecka COBPROSL Vérosta, Brlica ACCEPT display COBDISP Šmerk, Dvořáček ADD add COBADD Bílek ALTER peralt COBPERPA Brlica CALL call COBCALL Šmerk CLOSE close1 COBOPEN Vérosta COMPUTE compute COBCOMP Bílek DELETE read1 COBREAD Vérosta DISPLAY display COBDISP Šmerk, Bílek DIVIDE divide COBDIV Bílek ELSE elses COBRELEX Brlica END-IF endifs COBRELEX Brlica END-PERFORM endper COBPERFO Brlica ENTRY entry1 COBENT Šmerk? EXAMINE examine COBEXAM Šmerk EHXIBIT display COBDISP Šmerk EXIT exit1 COBPROSL Vérosta GENERATE gene COBGENE Dvořáček GO perfgo COBPERPA Brlica GOBACK goba COBPROSL Vérosta GOTO perfgo COBPERPA Brlica IF ifs COBRELEX Brlica INITIALIZE initial COBINITI Bílek INITIATE init1 COBINIT Dvořáček INSPECT inspect COBINSP Šmerk LOAD call COBCALL Šmerk MERGE sort COBSORT Šmerk MOVE move COBMOVE Bílek MULTIPLY multiply COBMUL Bílek NOTE note COBPROSL Vérosta ON ons COBON Brlica OPEN open1 COBOPEN Vérosta OTHERWISE elses COBRELEX Brlica PERFORM perfperf COBPERFO Brlica READ read1 COBREAD Vérosta READY ready COBPROSL Vérosta RELEASE write2 COBWRITE Vérosta, Šmerk RESET ready COBPROSL Vérosta RETURN read1 COBREAD Vérosta, Šmerk REWRITE write2 COBWRITE Vérosta SEARCH searchst COBSEARC Brlica SET set COBSETGN Brlica SORT sort COBSORT Šmerk START start1 COBSTART Vérosta STOP stop COBSTOP Šmerk STRING string COBSTR Šmerk SUBTRACT subtract COBSUB Bílek SUPPRESS suppress COBPROSL Vérosta, Dvořáček TERMINATE term1 COBTERM Dvořáček THEN then COBPROSL Vérosta TRANSFORM transform COBTRAN Šmerk UFD ufo COBUFO Šmerk UFO ufo COBUFO Šmerk UNSTRING unstring COBUNSTR Šmerk WHEN when COBSEARC Brlica WRITE write2 COBWRITE Vérosta Obecně používané funkce a procedury ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Nejsou uvedeny systémové funkce jako např. fclose, free,, longjmp, malloc, memcmp, memcpy a mnohé další. funkce zdroj.C činnost -------- -------- -------------------------------------------------- aeof COBFUN1 sem odskočí COBCTISL při dosažení konce zdrojového programu, načež se zde dokončí překlad a vrátí řízení funkcí exit do driveru resp. animátoru binec COBBINEC převod načteného slova do typu long bines COBBINEC převod načteného slova do typu short blanka COBLITER voláno z COBWAGEN aj.: ošetření klausule BLANK ceof COBCTISL ošetří konec příkazu COPY, konec příkazu REPLACE a dosažení COPY-textu; volá se z funkcí ctisl a newline ctesl COBCWYHL simulovaný ctisl volaný pouze z COBCWYHL při překladu příkazu EXHIBIT NAMED, kdy se načtená slova navíc uklízejí do zásobníku ctipic COBCTISL čtení řetˆzce PICTURE ctipot COBCTISL čtení po tečku (např. čtení "libovolného řetˆzce") ctisl COBCTISL čtení jednoho slova ze zdrojového programu ctisl COBCWYHL simulovaný ctisl volaný pouze z COBCWYHL, kdy se místo ze zdrojového programu čte z předem připraveného zásobníku cvd COBLITER převod longu do znakového tvaru cvs COBLITER převod shortu do znakového tvaru cwdelka COBCWYHL pro právˆ (nebo dříve) zpracovanou položku vytvoří C-kód představující její délku ve tvaru short nebo long cwyhl COBCWYHL zpracování odkazu na položku, soubor, třídicí soubor, podmínkové jméno, speciální index atd. včetnˆ kvalifikace a indexů a generace odpovídajícího C-kódu do cílového C-programu datumcas COBDATUM voláno pouze z COBRIDIC na začátku překladu: nastaví datum a čas pro celý překlad figur COBFIGUR je třeba volat tam, kde načtené slovo může být figurativní konstantou; funkce rozpozná figurativní konstanty a nahradí je odpovídajícím kódem filch COBLITER hlášení chyby při ošetřování klausulí FD a SD flit COBLITER na výstup p.o se vygeneruje jednoznakovýý literál v apostrofech fliter COBLITER na výstup p.o se vygeneruje literál bez uvozovek gencel COBCWYHL úprava C-kódu vytvořeného v cwyhl, aby představoval nikoliv ukazatel na začátek pole, nýbrž hodnotu typu short nebo long (voláno asi pouze z COBCWYHL, COBINITI a COBACPT) genval COBCWYHL úprava C-kódu vytvořeného v cwyhl, aby představoval nikoliv ukazatel na začátek pole s hodnotou, nýbrž hodnotu tohoto pole gliter COBLITER na výstup p.o se vygeneruje literál s uvozovkami justa COBLITER voláno z COBWAGEN aj.: ošetření klausule JUST konexa COBKONEX kontrola přečteného slova, zda vyhovuje požadavkům kladeným na tzv. "externí jméno" (voláno pouze z COBRIDIC a COBCALL) les COBFUN1 generace levé svorky do cílového C-programu a její zaznačení v tabulkách překladače literals COBLITS generování řetězce do pamˆěti pro pozdˆější vygenerování (relikvie, není voláno odnikud) lonu COBUNSTR generuje přesun hodnoty typu short nebo long do příjmové celočíselné numerické položky; volá se z COBSTR a COBUNSTR main COBRIDIC začátek překladu (ovšem ještˆě předtím se řízení dostává do driveru resp. animátoru) movgen COBMVGEN generace obecného přesunu msgd COBMSGD volá se při hlášení syntaktické chyby; zapisuje informace o chybˆě do souboru p.e newline COBCTISL čtení nového řádku nora COBFUN1 generace přechodu na nový řádek ('\n') do cílového C-programu onend COBON voláno pouze z funkce aeof při dosažení konce zdrojového programu: vygeneruje tabulku pro příkazy ON perfend COBPERIN voláno pouze z funkce aeof při dosažení konce zdrojového programu: vygeneruje tabulku pro příkazy PERFORM pes COBFUN1 generace pravé svorky do cílového C-programu a odznačení odpovídající levé svorky v tabulkách překladače predmov COBLITER úprava mov-struktury pro numerickýý argument pruhled COBPRUHL zjistí, zda přečtené slovo je jedním ze slov v zadaném seznamu pruhlex COBPRUHL zjistí, zda zadané slovo je jedním ze slov reservovanýých pro operační systém, která nesmí býýt používána jako externí jména v COBOLu putdecl COBFUN1 generuje volání deklarativní sekce typu ERROR (voláno pouze z COBREAD a COBSTART) regen COBREGEN voláno z funkce aeof v COBFUN1; vygeneruje procedury a příkazy pro REPORT SECTION signa COBLITER voláno z COBWAGEN aj.: ošetření klausule SIGN simcw COBREK simulované volání cwyhl pro předem přečtený odkaz na položku apod. uložený do zásobníku (voláno pouze z COBREK) slit COBLITER do paměti se připraví jednoznakový literál v apostrofech pro pozdější vygenerování sliter COBLITER do paměti se připraví literál bez uvozovek pro pozdější vygenerování slovnik COBPROSL zjistí, zda načtené slovo je prvním slovem některého příkazu ("slovesem") sourlom COBFUN1 vygeneruje do cílového C-programu adresu tabulky pro první soubor nebo pro první položku ve WORKING-STORAGE SECTION nebo pro začátek každé 01/77 v LINKAGE SECTION specy COBSPECY musí být voláno po načtení slova, které by mohlo být speciálním jménem; zjistí, zda se jedná o speciální jméno a pokud ano, nahradí je odpovídajícím funkčním jménem strxcpy COBLITER přesun řetězce z jednoho místa na druhé (voláno pouze z COBDISP) trixi COBFUN1 zakódování jména položky resp. jiného objektu za účelem zapojení této položky resp. objektu v adresáři do příslušného řetězu (při hledání položky resp. objektu v adresáři se pak provede totéž zakódování a prohledává se pouze příslušný řetěz - viz COBCWYHL a jiné) vctisln COBFUN1 čtení slova zdrojového programu, pokud existuje možnost, že toto slovo může být načteno již zdřívějška spolu s nastavením příslušné indikace zipa COBZIPA ošetření začátků a konců příkazů, jež mají svůj "rozsah" (IF, ELSE/OTHERWISE, END-IF, PERFORM, END-PERFORM, SEARCH, WHEN, tečka) c:\mx\lib\cdir Obsah adresáře C:\MX\LIB ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ MXCLIB1 - odpovídací soubor pro makefile mxclib1.mk MXCLIB2 - odpovídací soubor pro makefile mxclib2.mk SAVELI - makefile pro úklid zdrojových programů knihovny MXCAR2.ARC - archiv neznámého obsahu, vyhodit /* very important */ MXCLIB.BAT - vytvoření knihovny MXCLIB.LIB *.C - viz dále ZICX.EXE - zkouška funkcí ICX* (VV) ICX.H - záhlaví pro podprogramy ICX* (VV) MXCLIB.LIB - knihovna cobolských podprogramů spojovaná s uživatelským programem MXCLIB1.MK - první makefile pro vytvoření mxclib.lib MXCLIB2.MK - druhá část, rozděleno pouze z technických důvodů IC*.OBJ - přeložené moduly knihovních podprogramů Obsah adresáře C:\COB\LIB - programy *.C ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ V tomto odstavci budou používány následující zkratky: AN ... alfanumerická položka AE .. alfanumerická editovaná položka BI2 ... binární položka (USAGE COMP) o délce 2 byty (short) BI4 ... binární položka (USAGE COMP) o délce 4 byty (long) BI8 ... binární položka (USAGE COMP) o délce 8 bytů (dva longy) DI ... rozpakovaná položka ED ... exponenciální dlouhá položka (USAGE COMP-2, double) EZ ... exponenciální znaková položka LE ... položka s klausulí SIGN LEADING bez SEPARATE NE ... numerická editovaná položka OBR ... speciální funkce pro práci s obrazovkou PA ... pakovaná položka VV ... RNDr. Vladimír Iljič Vérosta ICBACMP - alfanumerické srovnání dvou řetězců ICBACPSC - pro obrazovkový příkaz ACCPET v MSDOSu ICBACPT - pro obrazovkový příkaz ACCPET v UNIXu ICBALFAB - test ALPHABETIC ICBALL - srovnání ALL 'literál' a položky ICBALL1 - srovnání ALL 'znak' a položky ICBALR - srovnání položky a ALL 'literál' ICBALR1 - srovnání položky a ALL 'znak' ICBAREAR - získání COM-REG ze souboru MXCOBREG.COB pro přesun a CALL (volá ICBCMRGR) ICBAREAW - zápis COM-REG do souboru MXCOBREG.COB pro přesun do COM-REG (volá ICBCMRGR a ICBCMRGW) ICBB2DI - přesun BI2 do DI ICBB2DIM - přesun BI2 do DI pro stejný počet cifer za des.tečkou ICBB2LE - přesun BI2 do LE ICBB2NE - přesun BI2 do NE ICBB2PA - přesun BI2 do PA ICBB2PAM - přesun BI2 do PA pro stejný počet cifer za des.tečkou ICBB4DI - přesun BI4 do DI ICBB4DIM - přesun BI4 do DI pro stejný počet cifer za des.tečkou ICBB4LE - přesun BI4 do LE ICBB4NE - přesun BI4 do NE ICBB4PA - přesun BI4 do PA ICBB4PAM - přesun BI4 do PA pro stejný počet cifer za des.tečkou ICBBIOUT - přesun BI8 do double ICBCMRGR - čtení souboru MXCOMREG.COB pro získání COM-REG (viz ICBAREAR a ICBAREAW), RETURN-CODE (viz ICBRETCR a ICBRETCW) nebo UPSI-bytu (viz ICBUPSI a ICBUPSIW) ICBCMRGW - zápis souboru MXCOMREG.COB pro nastavení COM-REG (viz ICBAREAW), RETURN-CODE (viz ICBRETCW) nebo UPSI-bytu (viz ICBUPSIW) ICBCONS - pro příkaz ACCEPT FROM CONSOLE ICBCXF - zavření indexového souboru (VV) ICBDATE - pro příkaz ACCEPT FROM DATE ICBDAY - pro příkaz ACCEPT FROM DAY ICBDDB - jádro animátoru Cobolu MX pro MS-DOS ICBDEB - jádro animátoru Cobolu MX ICBDIB2 - přesun DI do BI2 ICBDIB2M - přesun DI do BI2 pro stejný počet cifer před i za tečkou ICBDIB4 - přesun DI do BI4 ICBDIB4M - přesun DI do BI4 pro stejný počet cifer před i za tečkou ICBDIB8M - přesun DI do BI8 pro stejný počet cifer před i za tečkou ICBDIBI8 - přesun DI do BI8 ICBDIDI - přesun DI do DI ICBDILE - přesun DI do LE ICBDINE - přesun DI do NE ICBDIPA - přesun DI do PA ICBDIPAM - přesun DI do PA pro stejný počet cifer před i za tečkou ICBDISP - pro příkaz DISPLAY položka na obrazovku v UNIXu ICBDISP1 - pro příkaz DISPLAY literál, figurativní konstanta nebo ALL-klausule na obrazovku v UNIXu ICBDISP2 - pro příkaz DISPLAY SPACE na obrazovku v UNIXu (nepoužívá se, místo něj se volá ICBDISP1) ICBDISP3 - pro příkaz DISPLAY na obrazovku v MSDOSu ICBDITOD - přesun DI do double ICBDITOL - přesun DI do long ICBDITOS - přesun DI do short ICBDRL - rušení vˆty relativního souboru (VV) ICBDXF - rušení vˆty indexového souboru (VV) ICBEDB2 - přesun ED do BI2 ICBEDB4 - přesun ED do BI4 ICBEDBI8 - přesun ED do BI8 ICBEDDI - přesun ED do DI ICBEDLE - přesun ED do LE ICBEDNE - přesun ED do NE ICBEDOUT - přesun ED do pracovních 18 cifer s návratem exponentu ICBEDPA - přesun ED do PA ICBERR - hlášení chyb při výpočtu (ze souboru MXCER.ERR) ICBEXPI - výpočet mocniny s celočíselným exponentem ICBEZIN - přesun ED do EZ ICBEZOUT - přesun EZ do double ICBFCLS - uzavření souboru (VV) ICBFERR - ošetření dynamických chyb při bstupu/výstupu (VV) ICBFOPN - otevření souboru neindexového (VV) ICBFUPD - oprava souboru libovolné organizace (VV) ICBLEB2 - přesun LE do BI2 ICBLEB4 - přesun LE do BI4 ICBLEBI8 - přesun LE do BI8 ICBLEDI - přesun LE do DI ICBLELE - přesun LE do LE ICBLENE - přesun LE do NE ICBLEPA - přesun LE do PA ICBLETOD - přesun LE do double ICBLETOL - přesun LE do long ICBLETOS - přesun LE do short ICBLOAD - pro příkaz LOAD soubor linkage-položka ICBLOPA - přesun nezáporného longu do celočíselné PA ICBMEMST - nahrazuje memset pro pole delší než 32767 bytů ICBMERG - pro příkaz MERGE ICBMOVAE - přesun AN do AE ICBMOVAN - přesun AN do AN (alfanumerický přesun bez edice) ICBMOVNE - přesun pomocné rozpakované položky do NE ICBMVALE - přesun ALL 'literál' do AE ICBMVALL - přesun ALL 'literál' do AN ICBMVAN4 - přesun BI2 nebo BI4 do AN ICBMVAN8 - přesun BI8 do AN ICBMVDAN - přesun DI do AN ICBMVDAT - získání CURRENT-DATE resp. TODAYS-DATE pro přesun a CALL ICBMVPAN - přesun PA do AN ICBMVTIM - získání TIME-OF-DAY pro přesun a CALL ICBNEB2 - přesun NE do BI2 ICBNEB4 - přesun NE do BI4 ICBNEBI8 - přesun NE do BI8 ICBNEDI - přesun NE do DI ICBNELE - přesun NE do LE ICBNENE - přesun NE do NE ICBNEOUT - přesun NE do pomocné rozpakované položky s týmž rozsahem ICBNEPA - přesun NE do PA ICBNETOD - přesun NE do double ICBNETOL - přesun NE do long ICBNETOS - přesun NE do short ICBNUM - test NUMERIC pro GR, AN, AE, DI ICBNUMEX - test NUMERIC pro EZ ICBNUMP - test NUMERIC pro PA ICBOXF - otevření indexového souboru (VV) ICBPAB2 - přesun PA do BI2 ICBPAB4 - přesun PA do BI4 ICBPABI8 - přesun PA do BI8 ICBPADI - přesun PA do DI ICBPADIM - přesun PA do DI pro stejný počet cifer před i za tečkou ICBPALE - přesun PA do LE ICBPANE - přesun PA do NE ICBPAPA - přesun PA do PA ICBPATOD - přesun PA do double ICBPATOL - přesun PA do long ICBPATOS - přesun PA do short ICBRETCP - pro příkaz CALL s USING RETURN-CODE (volá ICBRETCR) ICBRETCR - získání RETURN-CODE ze souboru MXCOMREG.COB pro přesun a CALL (volá ICBCMRGR) ICBRETCW - zápis RETURN-CODE do souboru MXCOMREG.COB pro přesun (volá ICBCMRGR a ICBCMRGW) ICBRRL - sekvenční čtení z relativního souboru (VV) ICBRSQ - sekvenční čtení ze sekvenčního souboru (VV) ICBRXF - čtení z indexového souboru (VV) ICBSCR - společné funkce pro ovládání obrazovky v UNIXu (VV) ICBSORT - pro příkaz SORT ICBSTRIN - pro složitý příkaz STRING (nelze-li jej generovat) ICBSXF - nastavení pozice do indexového souboru, příkaz START (VV) ICBTIME - pro příkaz ACCEPT FROM TIME ICBUNSTR - pro příkaz UNSTRING ICBUPSI - získání UPSI-bytu ze souboru MXCOMREG.COB pro testu UPSI (volá ICBCMRGR) ICBUPSIW - pro příkaz SET UPSI: zápis UPSI-bytu do souboru MXCOMREG.COB (volá ICBCMRGR a ICBCMRGW) ICBVOLDI - pro příkaz CALL 'ICVOLNY' pro položku s pevnou tečkou ICBVOLED - pro příkaz CALL 'ICVOLNY' pro položku s pohyblivou tečkou ICBWRL - sekvenční zápis do relativního souboru (VV) ICBWSQ - zápis do sekenčního souboru (VV) ICBWXF - zápis do indexového souboru (VV) ICCLRSCR - clear screen (OBR) ICFUNKY - function keys (OBR) ICGEN - pro příkaz CALL 'ICGEN' ICGETCH - read a character from the keyboard (OBR) ICGOTOXY - move the cursor to a defined position (OBR) ICGSIZE - get screen size (OBR) ICHEXA - pro příkaz CALL 'ICHEXA' ICKBD - přečte znak z klávesnice s čekáním nebo bez ICKBHIT - test controle status (OBR) ICKONTR - pro ladicí příkaz CALL 'ICKONTR' ICMOVEX - pro příkaz CALL 'ICMOVEX' ICPACKB - pro příkaz CALL 'ICPACKB' ICPUTCH - put a character to a screen (OBR) ICSCRIO - screen input and output (OBR) ICSCTRL - screen control (OBR) ICSOUND - sound the beep (OBR) ICTIMEB - pro příkaz CALL 'ICTIMEB' (ladicí) ICUNPKB - pro příkaz CALL 'ICUNPKB' ICVIRF - pro příkaz CALL 'ICVIRF' ICVIRG - pro příkaz CALL 'ICVIRG' YFADD - funkce pro přidání věty do souboru (VV) YFCLOS - funkce pro uzavření souboru (VV) YFCOMP - funkce volaná z xsort a yfrkey pro srovnání dvou vět (VV) YFDEL - funkce pro zrušení právˆ přečtené (přidané) věty (VV) YFERM - hlášení chyb metody Y-ISAM YFEXT - zdroj s deklaracemi externích promˆnných pro metodu Y-ISAM YFHE - rozšíření počtu použitelných file handles (VV) YFHIO - handle I/O pro Y-ISAM (VV) YFILE6 - pomocné funkce pro xfiles (VV) YFINDEX - funkce pro vytvoření indexové nadstavby (VV) YFLJ - hlášení chyby s případným návratem pomocí longjmp (VV) YFLOAD - funkce pro zápis věty v load režimu (VV) YFOPEN - funkce pro otevření indexového souboru (VV) YFREW - funkce pro přetáčení indexu vpřed a vzad (VV) YFREXF - funkce pro reorganizace indexů indezového souboru (VV) YFRKEY - funkce pro hledání věty podle klíče (VV) YFRSEQ - funkce pro sekvenční čtení (VV) YFRSQB - funkce pro sekvenční čtení vpřed (VV) YFSORTL - funkce pro třídˆní souboru s pevnou délkou věty v Compact, Large nebu Huge modelu (VV) YFUDL - funkce pro update poslednˆí přečtené věty a její vyřazení ze všech indexů (VV) YFUPD - funkce pro update poslední přečtené věty (VV) YFWOA - zapíše oblast OA zpˆt na disk po přidání věty nebo indexu ZICX - zkouška funkcí ICX (VV)