Цитата Сообщение от Orionsoft
кто подскажет процедуру которая считает сабж , но не ограничена 256 байтами как в извесном исходнике ...
Для X-modem:

Код:
        crc=0;
        for (i=0; i<block_size; i++) {
                if (ptr >= sizeof(buff)) {
                        debug0("buffer overflow!\n");
                        send_break("buffer overflow!");
                        return 0;
                }
                while (1) {
                        CHECK_TIMEOUT;
                        if (kbhit()) {
                                buff[ptr+i] = c = getch();
                                crc^=((unsigned)c<<8)&0xff00;
                                b=8;
                                do {
                                        if (crc&0x8000) crc<<=1, crc^=0x1021;
                                                else crc<<=1;
                                } while (--b!=0);
                                break;
                        }
                }
        }
А вообще в своё время в CODE.ZX этот вопрос был рассмотрен, приведено всяческих процедур, и по-моему даже объяснено, что та табличка строится просто через безтабличный алгоритм и может запросто генерироваться динамически, когда нужна скорость и компактность. И даже в моей zxlib есть такой алгоритм:

Только вставить мне его не получилось. Сообщение понимаешь-ли длинное. И мучаться в окошке размером в 1/16 монитора тоже удовольствия мало. Поэтому не буду я тут больше ничего осмысленного писать. Только бредить и абастряться. Спрашивай в fido7.zx.spectrum.