% Definition of EM procedural interface: hand-written definitions % C_open | char *:filename | % C_busy | | % C_close | | % C_magic | | C_df_dlb | label:l | DFDLB(l); NL() C_df_dnam | char *:s | DFDNAM(s); NL() C_df_ilb | label:l | DFILB(l); NL() C_pro | char *:s arith:l | PS(ps_pro); PNAM(s); COMMA(); CST(l); NL() C_pro_narg | char *:s | PS(ps_pro); PNAM(s); COMMA(); CCEND(); NL() C_end | arith:l | PS(ps_end); CST(l); NL() C_end_narg | | PS(ps_end); CCEND(); NL() C_exa_dnam | char *:s | PS(ps_exa); DNAM(s); NL() C_exa_dlb | label:l | PS(ps_exa); DLB(l); NL() C_exp | char *:s | PS(ps_exp); PNAM(s); NL() C_ina_dnam | char *:s | PS(ps_ina); DNAM(s); NL() C_ina_dlb | label:l | PS(ps_ina); DLB(l); NL() C_inp | char *:s | PS(ps_inp); PNAM(s); NL() C_bss_cst | arith:n arith:w int:i | PS(ps_bss); DCST(n); COMMA(); CST(w); COMMA(); CST((arith) i); NL() C_bss_icon | arith:n char *:s arith:sz int:i | PS(ps_bss); DCST(n); COMMA(); WCON(sp_icon, s, sz); COMMA(); CST((arith) i); NL() C_bss_ucon | arith:n char *:s arith:sz int:i | PS(ps_bss); DCST(n); COMMA(); WCON(sp_ucon, s, sz); COMMA(); CST((arith) i); NL() C_bss_fcon | arith:n char *:s arith:sz int:i | PS(ps_bss); DCST(n); COMMA(); WCON(sp_fcon, s, sz); COMMA(); CST((arith) i); NL() C_bss_dnam | arith:n char *:s arith:offs int:i | PS(ps_bss); DCST(n); COMMA(); NOFF(s, offs); COMMA(); CST((arith) i); NL() C_bss_dlb | arith:n label:l arith:offs int:i | PS(ps_bss); DCST(n); COMMA(); DOFF(l, offs); COMMA(); CST((arith) i); NL() C_bss_ilb | arith:n label:l int:i | PS(ps_bss); DCST(n); COMMA(); ILB(l); COMMA(); CST((arith) i); NL() C_bss_pnam | arith:n char *:s int:i | PS(ps_bss); DCST(n); COMMA(); PNAM(s); COMMA(); CST((arith) i); NL() C_hol_cst | arith:n arith:w int:i | PS(ps_hol); DCST(n); COMMA(); CST(w); COMMA(); CST((arith) i); NL() C_hol_icon | arith:n char *:s arith:sz int:i | PS(ps_hol); DCST(n); COMMA(); WCON(sp_icon, s, sz); COMMA(); CST((arith) i); NL() C_hol_ucon | arith:n char *:s arith:sz int:i | PS(ps_hol); DCST(n); COMMA(); WCON(sp_ucon, s, sz); COMMA(); CST((arith) i); NL() C_hol_fcon | arith:n char *:s arith:sz int:i | PS(ps_hol); DCST(n); COMMA(); WCON(sp_fcon, s, sz); COMMA(); CST((arith) i); NL() C_hol_dnam | arith:n char *:s arith:offs int:i | PS(ps_hol); DCST(n); COMMA(); NOFF(s, offs); COMMA(); CST((arith) i); NL() C_hol_dlb | arith:n label:l arith:offs int:i | PS(ps_hol); DCST(n); COMMA(); DOFF(l, offs); COMMA(); CST((arith) i); NL() C_hol_ilb | arith:n label:l int:i | PS(ps_hol); DCST(n); COMMA(); ILB(l); COMMA(); CST((arith) i); NL() C_hol_pnam | arith:n char *:s int:i | PS(ps_hol); DCST(n); COMMA(); PNAM(s); COMMA(); CST((arith) i); NL() C_con_cst | arith:l | PS(ps_con); CST(l); CEND(); NL() C_con_icon | char *:val arith:siz | PS(ps_con); WCON(sp_icon, val, siz); CEND(); NL() C_con_ucon | char *:val arith:siz | PS(ps_con); WCON(sp_ucon, val, siz); CEND(); NL() C_con_fcon | char *:val arith:siz | PS(ps_con); WCON(sp_fcon, val, siz); CEND(); NL() C_con_scon | char *:str arith:siz | PS(ps_con); SCON(str, siz); CEND(); NL() C_con_dnam | char *:str arith:val | PS(ps_con); NOFF(str, val); CEND(); NL() C_con_dlb | label:l arith:val | PS(ps_con); DOFF(l, val); CEND(); NL() C_con_ilb | label:l | PS(ps_con); ILB(l); CEND(); NL() C_con_pnam | char *:str | PS(ps_con); PNAM(str); CEND(); NL() C_rom_cst | arith:l | PS(ps_rom); CST(l); CEND(); NL() C_rom_icon | char *:val arith:siz | PS(ps_rom); WCON(sp_icon, val, siz); CEND(); NL() C_rom_ucon | char *:val arith:siz | PS(ps_rom); WCON(sp_ucon, val, siz); CEND(); NL() C_rom_fcon | char *:val arith:siz | PS(ps_rom); WCON(sp_fcon, val, siz); CEND(); NL() C_rom_scon | char *:str arith:siz | PS(ps_rom); SCON(str, siz); CEND(); NL() C_rom_dnam | char *:str arith:val | PS(ps_rom); NOFF(str, val); CEND(); NL() C_rom_dlb | label:l arith:val | PS(ps_rom); DOFF(l, val); CEND(); NL() C_rom_ilb | label:l | PS(ps_rom); ILB(l); CEND(); NL() C_rom_pnam | char *:str | PS(ps_rom); PNAM(str); CEND(); NL() C_cst | arith:l | COMMA(); CST(l) C_icon | char *:val arith:siz | COMMA(); WCON(sp_icon, val, siz) C_ucon | char *:val arith:siz | COMMA(); WCON(sp_ucon, val, siz) C_fcon | char *:val arith:siz | COMMA(); WCON(sp_fcon, val, siz) C_scon | char *:str arith:siz | COMMA(); SCON(str, siz) C_dnam | char *:str arith:val | COMMA(); NOFF(str, val) C_dlb | label:l arith:val | COMMA(); DOFF(l, val) C_ilb | label:l | COMMA(); ILB(l) C_pnam | char *:str | COMMA(); PNAM(str) C_mes_begin | int:ms | PS(ps_mes); CST((arith)ms) C_mes_end | | CEND(); NL() % Yes, there really is a C_exc routine... C_exc | arith:c1 arith:c2 | PS(ps_exc); CST(c1); COMMA(); CST(c2); NL()