Function InByte: byte; Begin If BytePtr>127 then Begin BlockRead (RelFile,Buffer,1); BytePtr :=0 End; InByte := Buffer[BytePtr]; BytePtr := Succ(BytePtr); End; Function GetBits (NBits: Bits): byte; begin {Modul GETBTS} InLine ( {0000} $21/$00/$00/$3A/NBITS /$4F/$3A/BITCNT /$B9/$30/$23/$47/$79/$90/ {0010} $32/NBITS /$3A/WB /$CD/*+40 /$E5/$CD/INBYTE /$3A/NBITS / {0020} $47/$3E/$08/$90/$32/BITCNT /$7D/$E1/$CD/*+21 /$32/WB /$C9/ {0030} $41/$90/$32/BITCNT /$3A/WB /$CD/*+6 /$32/WB /$C9/$CB/ {0040} $27/$CB/$15/$10/$FA/$C9) end; {GETBTS} Function GetByte: byte; Begin If BitCnt=0 then GetByte := InByte else GetByte := GetBits(8) End; Function GetWord: integer; Var WB: ByteRec; WW: integer absolute WB; Begin with WB do Begin Low := GetByte; High := GetByte End; GetWord := WW End;