Помимо GDI и DDraw там ещё варианты были - их попробуй. Или поставь режим Bilinear или как его там - тоже никакого тулбара не будет.
Помимо GDI и DDraw там ещё варианты были - их попробуй. Или поставь режим Bilinear или как его там - тоже никакого тулбара не будет.
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Jeffie, ты слишком уж привередливый. Имхо это мелочь по сравнению с процессом перехода от fullscreen к windowed, когда экран винды не обновляется и приходится тыкаться в minimize/maximize, обновлять экран.Сообщение от Jeffie
но я привык. и, почему-то ни разу не переходил от windowed к fullscreen![]()
![]()
![]()
![]()
Да я вроде и не ругался нигде.........., sos.l как я понимаю не изменил свой формат и новом релизе унреала(в отличии от ini)?
И еще- очень хотелось бы АТМ-срм дискетки читать, у меня много всякой
бодяги на них все еще валяется в чулане, если кот на них не нагадил........
![]()
ладно всем привет и спасибо
в GDI можно пофиксить, если напрягает. а в ddraw не должно быть такогоСообщение от Jeffie
это вроде исправил несколько версий назад...Сообщение от diver
пока мне больше нравится frame resampler, сейчас занимаюсь увеличением его контрастности. даже не знаю, делать что-ли его и оконным тоже, раз такое дело...Сообщение от diver
он поменяется, только если поменяется пршивка BASIC48, поэтому я его не выкладываю каждый разСообщение от Goga
дык, какие проблемы?Сообщение от Goga
нужен копировщик типа AMD или Teledisk, и всё...
Одназначнопока мне больше нравится frame resampler, сейчас занимаюсь увеличением его контрастности. даже не знаю, делать что-ли его и оконным тоже, раз такое дело...Реальная штука, огромный thx
![]()
Да, кстати... Эмуляция модема в UnrealSpeccy 0.29b изначально неработоспособна в принципе. Пока делал терминалку, доработал чуть-чуть. Тоже кое-чего не хватает еще, но хотя бы работает.
MODEM.C:
Код:void ISA_MODEM::open(unsigned char port) { if (open_port == port) return; whead = wtail = rhead = rtail = 0; if (hPort && hPort != INVALID_HANDLE_VALUE) CloseHandle(hPort); open_port = port; if (!port) return; char portName[6] = "COM*"; portName[3] = port + '0'; hPort = CreateFile(portName, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); if (hPort == INVALID_HANDLE_VALUE) { printf("can't open modem on %s (%08X)\n", portName, GetLastError()); conf.modem_port = open_port = 0; return; } COMMTIMEOUTS times; times.ReadIntervalTimeout = MAXDWORD; times.ReadTotalTimeoutMultiplier = 0; times.ReadTotalTimeoutConstant = 0; times.WriteTotalTimeoutMultiplier = 0; times.WriteTotalTimeoutConstant = 0; SetCommTimeouts(hPort, ×); #if 0 DCB dcb; if (GetCommState(hPort, &dcb)) { printf( "modem state:\n" "rate=%d\n" "parity=%d, OutxCtsFlow=%d, OutxDsrFlow=%d, DtrControl=%d, DsrSensitivity=%d\n" "TXContinueOnXoff=%d, OutX=%d, InX=%d, ErrorChar=%d\n" "Null=%d, RtsControl=%d, AbortOnError=%d, XonLim=%d, XoffLim=%d\n" "ByteSize=%d, Parity=%d, StopBits=%d\n" "XonChar=#%02X, XoffChar=#%02X, ErrorChar=#%02X, EofChar=#%02X, EvtChar=#%02X\n\n", dcb.BaudRate, dcb.fParity, dcb.fOutxCtsFlow, dcb.fOutxDsrFlow, dcb.fDtrControl, dcb.fDsrSensitivity, dcb.fTXContinueOnXoff, dcb.fOutX, dcb.fInX, dcb.fErrorChar, dcb.fNull, dcb.fRtsControl, dcb.fAbortOnError, dcb.XonLim, dcb.XoffLim, dcb.ByteSize, dcb.Parity, dcb.StopBits, (BYTE)dcb.XonChar, (BYTE)dcb.XoffChar, (BYTE)dcb.ErrorChar, (BYTE)dcb.EofChar, (BYTE)dcb.EvtChar); } #endif } void ISA_MODEM::close() { if (!hPort || hPort == INVALID_HANDLE_VALUE) return; CloseHandle(hPort); hPort = INVALID_HANDLE_VALUE; open_port = 0; } void dump1(BYTE *p, unsigned sz) { while (sz) { printf("\t"); unsigned chunk = (sz > 16)? 16 : sz; for (unsigned i = 0; i < chunk; i++) printf("%02X ", p[i]); for (; i < 16; i++) printf(" "); for (i = 0; i < chunk; i++) printf("%c", (p[i] < 0x20)? '.' : p[i]); printf("\n"); sz -= chunk, p += chunk; } printf("\n"); } void ISA_MODEM::io() { if (!hPort || hPort == INVALID_HANDLE_VALUE) return; unsigned char temp[BSIZE]; int needwrite = whead - wtail; if (needwrite < 0) needwrite += BSIZE; if (needwrite) { if (whead > wtail) memcpy(temp, wbuf+wtail, needwrite); else memcpy(temp, wbuf+wtail, BSIZE-wtail), memcpy(temp+BSIZE-wtail, wbuf, whead); DWORD written = 0; if (WriteFile(hPort, temp, needwrite, &written, 0)) { //printf("\nsend: "); dump1(temp, written); wtail = (wtail+written) & (BSIZE-1); } } if (((whead+1) & (BSIZE-1)) != wtail) reg[5] |= 0x60; int canread = rtail - rhead - 1; if (canread < 0) canread += BSIZE; if (canread) { DWORD read = 0; if (ReadFile(hPort, temp, canread, &read, 0) && read) { for (unsigned i = 0; i < read; i++) rcbuf[rhead++] = temp[i], rhead &= (BSIZE-1); //printf("\nrecv: "); dump1(temp, read); } } if (rhead != rtail) reg[5] |= 1; setup_int(); } void ISA_MODEM::setup_int() { reg[6] &= ~0x10; unsigned char mask = reg[5] & 1; if (reg[5] & 0x20) mask |= 2, reg[6] |= 0x10; if (reg[5] & 0x1E) mask |= 4; // if (mask & reg[1]) cpu.nmi() if (mask & 4) reg[2] = 6; else if (mask & 1) reg[2] = 4; else if (mask & 2) reg[2] = 2; else if (mask & 8) reg[2] = 0; else reg[2] = 1; } void ISA_MODEM::write(unsigned nreg, unsigned char value) { if ((1<<nreg) & ((1<<2)|(1<<5)|(1<<6))) return; // R/O registers if (nreg < 2 && (reg[3] & 0x80)) { div[nreg] = value; DCB dcb; if (GetCommState(hPort, &dcb)) { if (divfq == 0) { divfq = 1; } dcb.BaudRate = 115200 / divfq; SetCommState(hPort, &dcb); } return; } if (nreg) { reg[nreg] = value; if (nreg == 3) { // LCR set, renew modem config DCB dcb; if (GetCommState(hPort, &dcb)) { // printf( "modem state:\n" "rate=%d\n" "parity=%d, OutxCtsFlow=%d, OutxDsrFlow=%d, DtrControl=%d, DsrSensitivity=%d\n" "TXContinueOnXoff=%d, OutX=%d, InX=%d, ErrorChar=%d\n" "Null=%d, RtsControl=%d, AbortOnError=%d, XonLim=%d, XoffLim=%d\n" "ByteSize=%d, Parity=%d, StopBits=%d\n" "XonChar=#%02X, XoffChar=#%02X, ErrorChar=#%02X, EofChar=#%02X, EvtChar=#%02X\n\n", dcb.BaudRate, dcb.fParity, dcb.fOutxCtsFlow, dcb.fOutxDsrFlow, dcb.fDtrControl, dcb.fDsrSensitivity, dcb.fTXContinueOnXoff, dcb.fOutX, dcb.fInX, dcb.fErrorChar, dcb.fNull, dcb.fRtsControl, dcb.fAbortOnError, dcb.XonLim, dcb.XoffLim, dcb.ByteSize, dcb.Parity, dcb.StopBits, (BYTE)dcb.XonChar, (BYTE)dcb.XoffChar, (BYTE)dcb.ErrorChar, (BYTE)dcb.EofChar, (BYTE)dcb.EvtChar); dcb.fBinary = TRUE; dcb.fParity = ((reg[3] & 0x8) != 0) ? TRUE : FALSE; dcb.fOutxCtsFlow = FALSE; dcb.fOutxDsrFlow = FALSE; dcb.fDtrControl = DTR_CONTROL_DISABLE; dcb.fDsrSensitivity = FALSE; dcb.fTXContinueOnXoff = FALSE; dcb.fOutX = FALSE; dcb.fInX = FALSE; dcb.fErrorChar = FALSE; dcb.fNull = FALSE; dcb.fRtsControl = RTS_CONTROL_DISABLE; dcb.fAbortOnError = FALSE; dcb.ByteSize = 6 + (reg[3] & 2) - (reg[3] & 1); if ((reg[3] & 0x8) == 0) { dcb.Parity = NOPARITY; } else if ((reg[3] & 0x30) == 0) { dcb.Parity = ODDPARITY; } else if ((reg[3] & 0x30) == 0x10) { dcb.Parity = EVENPARITY; } else if ((reg[3] & 0x30) == 0x20) { dcb.Parity = MARKPARITY; } else { dcb.Parity = SPACEPARITY; } if ((reg[3] & 0x4) == 0) { dcb.StopBits = ONESTOPBIT; } else if ((reg[3] & 3) == 1) { dcb.StopBits = ONE5STOPBITS; } else { dcb.StopBits = TWOSTOPBITS; } SetCommState(hPort, &dcb); } } else if (nreg == 4) { // MCR set, renew DTR/CTS if ((reg[4] & 1) == 0) { EscapeCommFunction(hPort, CLRDTR); } else { EscapeCommFunction(hPort, SETDTR); } if ((reg[4] & 2) == 0) { EscapeCommFunction(hPort, CLRRTS); } else { EscapeCommFunction(hPort, SETRTS); } } return; } reg[5] &= ~0x60; if (((whead+1) & (BSIZE-1)) == wtail) { reg[5] |= 2; } else { wbuf[whead++] = value, whead &= (BSIZE-1); if (((whead+1) & (BSIZE-1)) != wtail) reg[5] |= 0x60; } setup_int(); } unsigned char ISA_MODEM::read(unsigned nreg) { unsigned char result = reg[nreg]; if (nreg < 2) { if (reg[3] & 0x80) result = div[nreg]; else if (!nreg) { reg[5] &= ~1; if (rhead != rtail) result = reg[0] = rcbuf[rtail++], rtail &= (BSIZE-1); if (rhead != rtail) reg[5] |= 1; setup_int(); } } else if (nreg == 5) reg[5] &= ~0x0E, setup_int(); return result; }
ну зачем так сразу "в принципе не способен..." у меня работала программа ping 0.3, другого софта я не видел (терминалки не в счёт - мне некуда коннектиться)
спасибо. как я понял, пофиксен глюк с чтением лишнего символа из буфера чтения и спектрум теперь может выбирать скорость и режим обмена, раньше использовались значения, которые автоматически выбрала windows
теперь новый вопрос. сейчас я думаю, а не поддержать ли CD-ROM? но пока не вижу софта, кроме CD-WALK. нужен софт для audio-cd и data-cd. если нет ничего кроме CD-WALK, то, с одной стороны, может cd-rom нафиг не нужен спектрумистам. а, с другой, мне не на чём будет отлаживать эмулятор![]()
думаю стоит!и заодно потерроризировать psb^triumph (psbhlw@mail.ru)Сообщение от SMT
т.к этот мегачел сваял в своё время прогу для просмотра видеофильмов на zx (звук через gs).
Обязательно стОит! И ay-mouse хочу...Сообщение от SMT
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)