SECTION "UNHEXIT" GET "NLIBHDR" LET START() BE $( LET V = VEC 100 LET N, R, S = ?, ?, ? LET OOUT = OUTPUT() LET buf = v let oin = input() LET cnt = ? s := findinput("SYSIN") IF s=0 DO $( writes("*nCan*'t find input.*n") stop(25) $) n := findoutput("HUNKOUT") IF n=0 DO $( writes("*nCan't find output.*n") selectinput(s) endread() selectinput(oin) stop(30) $) selectinput(s) selectoutput(n) more: cnt := 0 FOR i = 1 TO 100 DO $( UNLESS readw(@r) DO BREAK buf!i := r cnt := cnt+1 $) UNLESS cnt=0 writewords(buf+1, cnt) UNLESS cnt<100 GOTO more WHILE GCH(@R) DO LOOP endwrite() endread() selectoutput(oout) selectinput(oin) $) AND READW(AR) = VALOF $( LET BL = ? LET BH = ? UNLESS GETB(@BL) RESULTIS FALSE UNLESS GETB(@BH) RESULTIS FALSE !AR := (BH<<8) | BL RESULTIS TRUE $) AND GETB(AB) = VALOF $( LET NL = ? LET NH = ? UNLESS GCH(@NH) RESULTIS FALSE UNLESS GCH(@NL) RESULTIS FALSE !AB := (NH<<4) | NL RESULTIS TRUE $) AND GCH(AN) = VALOF $( LET C = RDCH() UNTIL C=endstreamch | ('0'<=C<='9') | ('A'<=C<='F') DO C := RDCH() IF C=endstreamch RESULTIS FALSE !AN := C>='0' -> C-'0', C-'A'+10 RESULTIS TRUE $) AND writewords(v, n) BE $( LET bh = ? FOR i = 0 TO n-1 DO $( bh := (v!i)>>8 binwrch(v!i) binwrch(bh) $) $)