fun ready(var reserve : uchar array[2])
{
    val ii = 0;
    while(ii < 2) {
	val funit = reserve[ii];

	if(ii < pipe.resources?length)
	    if((funit & pipe.resources[+ii]) != 0?cvt(uchar))
		return false;

	if(funit & (0x04 | 0x08 | 0x10 ) != 0?cvt(uchar)) {
	    val jj = 0;
	    while(jj < pipe.instructions?length) {
		var old = pipe.instructions[+jj];

		val kk = 0;
		while(kk < srcQ?length) {
		    if(srcQ[+kk] == old.dest)
			if(old.ready > 0?cvt(uchar)) return false;
		    kk = kk + 1;
		}

		jj = jj + 1;
	    }

	} else if(funit == 0x40 ) {
	    val jj = 0;
	    while(jj < pipe.instructions?length) {
		var old = pipe.instructions[+jj];

		val kk = 0;
		while(kk < storeQ?length) {
		    if(storeQ[+kk] == old.dest)
			if(old.ready > 0?cvt(uchar)) return false;
		    kk = kk + 1;
		}

		jj = jj + 1;
	    }
	}

	ii = ii + 1;
    }

    return true;
}