%D \module %D [ file=syst-omg, %D version=2000.09.09, %D title=\CONTEXT\ System Macros, %D subtitle=A couple of Omega goodies, %D author=Hans Hagen, %D date=\currentdate, %D copyright={PRAGMA / Hans Hagen \& Ton Otten}] %C %C This module is part of the \CONTEXT\ macro||package and is %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. %D This module will become obsolete as soon as Omega %D supports \ETEX\ functionality. \ifx\OmegaVersion\undefined \endinput \fi \unprotect \def\newcount {\myalloc@0\count \countdef \@@maxallocation} \def\newdimen {\myalloc@1\dimen \dimendef \@@maxallocation} \def\newskip {\myalloc@2\skip \skipdef \@@maxallocation} \def\newmuskip {\myalloc@3\muskip \muskipdef \@@maxallocation} \def\newbox {\myalloc@4\box \mathchardef\@@maxallocation} \def\newtoks {\myalloc@5\toks \toksdef \@@maxallocation} \def\newread {\myalloc@6\read \chardef \@@minallocation} \def\newwrite {\myalloc@7\write \chardef \@@minallocation} \def\newmarks {\myalloc@8\marks \mathchardef\@@maxallocation} \def\newlanguage{\myalloc@9\language\chardef \@@minallocation} \def\newfam#1{\chardef#1=15 } \def\topofboxstack{\number\count24 } \count18=1 \mathchardef\@@minallocation = 16 \mathchardef\@@medallocation = 256 \mathchardef\@@maxallocation = 32767 \chardef \@@insallocation = 32 \def\myalloc@#1#2#3#4#5% {\global\advance\count1#1by\@ne \ifnum\count1#1>\@@medallocation \else \ifnum\count1#1<\numexpr\@@medallocation-\@@insallocation\relax\else \global\count1#1=\numexpr\@@medallocation+\@ne\relax % \wait \fi \fi \ifnum\count1#1>#4% \global\count1#1=#4% \errmessage{No room for (\string#2) \string#5}% \fi \allocationnumber=\count1#1% \global#3#5=\allocationnumber \wlog{\string#5=\string#2\the\allocationnumber}} \def\newinsert#1% {\ifnum\insc@unt>\numexpr\@@medallocation-\@@insallocation\relax \global\advance\insc@unt by\m@ne \allocationnumber=\insc@unt \global\chardef#1=\allocationnumber \wlog{\string#1=\string\insert\the\allocationnumber}% \else \errmessage{No room for a new insert \string#1 (\number\insc@unt)}% \fi} %D We need to catch a (rather crappy) automatic OMEGA %D mechanism. Unfortunately loading of the SGML vectors %D happens automatically without control over the regime %D under which it takes place. \ifx\SGMLFontEntity\undefined \else \errmessage{This version of Omega is way to buggy (+ \string\SGMLFontEntity\space mess)!} \fi \protect \endinput