Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Crowz за подобное мой дорогой друг Вы можете быть легко забанены за провакации...
А также привлечены к ответственности. Администрацию www.modlabs.net мы предупредим о случившемся.
Ray Adams
Цитата:
Значить не так работаеш, вот и вешает.
Да это общеизвестная проблема, была она и в MBM и есть в SpeedFan, ее можно как-то избежать - незнаю как.
Member
Статус: Не в сети Регистрация: 09.04.2005 Откуда: Харьков [UA]
Мда... почему б варезу у нас не процветать, если даже с открытыми проектами себя ведут как дикари? Таким занимаются закомплексованные "вундеркинды", но одно дело если б "кулхазкер васьа пупкин" написали, а то modlabs приплетать — это уж слишком. И почему этот файл до сих пор на персональных страницах лежит?
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Ray Adams
Цитата:
Обьясни конкретно на чем именно висют происходит, можно и с куском кода. Если есть где мамки для проверки, думаю эту проблему запросто можно обойти
Виснет почти при начале скана, когда - незнаю. Мамок под рукой нет, увы. Код - в сырцах(только в текущих сырцах маленький баг в драйвере и он не сканит PCI, которые у меня - уже исправил). 3dNikita
Цитата:
Мда... почему б варезу у нас не процветать, если даже с открытыми проектами себя ведут как дикари? Таким занимаются закомплексованные "вундеркинды", но одно дело если б "кулхазкер васьа пупкин" написали, а то modlabs приплетать — это уж слишком. И почему этот файл до сих пор на персональных страницах лежит?
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Daemon Вообщето у меня сорцев нет, но уверен на 100% , что код сканирования PCI не верен.
И опять же, прислушайся к моему совету и сделать полноценный драйвер, который сам будет работать с портами, а клиентская часть будет работать через DeviceIOControl
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Ray Adams ну допустим вот:
Код:
procedure cCPUid.FindDevice(var fPCIDevice: tPCIDevice; DeviceID: word); var pdata:dword; dwBus, dwDev, dwFunc: byte; begin FillChar(fPCIDevice, SizeOf(fPCIDevice), 0); for dwBus:=0 to 255 do for dwDev:=0 to 31 do begin if not oHWIO.IPCIIORef.ProbeDevice(dwBus, dwDev) then continue; for dwFunc:=0 to 7 do begin oHWIO.IPCIIORef.GetPCIRDWord(dwBus, dwDev, dwFunc, 0, pdata); pdata:=Word(pdata shr 16); if pdata=DeviceID then begin fPCIDevice.Detected:=true; fPCIDevice.dwBus:=dwBus; fPCIDevice.dwDev:=dwDev; fPCIDevice.dwFunc:=dwFunc; exit; end; end; end; end;
Работа с PCI
Код:
procedure tPCIIO.GetPCIRDWord( dwBus, dwDev, dwFunc, offs : byte; var pdata:DWord ); begin FIPortIORef.WritePortL(PCRAddress,$80000000 or (longint(dwBus) shl 16) or ((longint(dwDev) and $1f) shl 11) or ((longint(dwFunc) and $07 ) shl 8) or (offs and $fc)); pdata := FIPortIORef.ReadPortL(PCRData); end;
procedure tPCIIO.SetPCIRDWord(dwBus, dwDev, dwFunc, offs:byte; pdata:DWord); var IPort: IPortIO; begin IPort := oHWIO.IPortIORef; IPort.WritePortL(PCRAddress,$80000000 or (longint(dwBus) shl 16) or ((longint(dwDev) and $1f) shl 11) or ((longint(dwFunc) and $07) shl 8) or (offs and $fc)); IPort.WritePortL(PCRData, pdata); end;
procedure tPCIIO.GetPCIRByte(dwBus, dwDev, dwFunc, offs:byte; var pdata:byte); var temp : longint; pcrreg : longint; begin PCRReg :=$80000000 or (longint(dwBus) shl 16) or ((longint(dwDev) and $1f) shl 11) or ((longint(dwFunc) and $07) shl 8) or (offs and $fc); FIPortIORef.WritePortL(PCRAddress, PCRReg); Temp := FIPortIORef.ReadPortL(PCRData); pdata := (Temp shr ((offs mod 4) shl 3)); end;
procedure tPCIIO.SetPCIRByte(dwBus, dwDev, dwFunc, offs, pdata:byte); var temp : longword; pcrreg : longint; begin PCRReg := $80000000 or (longint(dwBus) shl 16) or ((longint(dwDev) and $1f) shl 11) or ((longint(dwFunc) and $07) shl 8) or (offs and $fc);
FIPortIORef.WritePortL(PCRAddress, PCRReg); Temp := FIPortIORef.ReadPortL(PCRData) and NOT(($ff shl ((offs and 3) * 8))) or (pdata shl ((offs and 3) * 8)); FIPortIORef.WritePortL(PCRData, Temp); end;
function tPCIIO.ProbeDevice(dwBus, dwDev: byte): boolean; const InvalidDevice = $FFFFFFFF; var VenDevID: longword; begin GetPCIRDWord(dwBus, dwDev, 0, 0, VenDevID); result := ((VenDevID <> InvalidDevice) and (VenDevID <> 0)); end;
Advanced member
Статус: Не в сети Регистрация: 09.06.2003 Откуда: USSR
Daemon писал(а):
было бы на чем его трасирнуть
Мдя, надо искать мамку . По идее, если ты только читает, а не пишеш ничего не должно случится. Ведь туча других утилит это делают и вроде проблем не испывтают.
Кстати обьясни мне на кой делать приведение типов
pdata:=Word(pdata shr 16);
или
PCRReg := $80000000 or (longint(dwBus) shl 16) or ((longint(dwDev) and $1f) shl 11) or
((longint(dwFunc) and $07) shl 8) or (offs and $fc);
это же не C++!
Member
Статус: Не в сети Регистрация: 14.01.2004 Откуда: Киев, Украина
Ray Adams привычка А вообще чессное слово, год назад сам запускал утилиты MBM5 и SpeedFan, вешают машину так, что остается только выдернуть шнур питания, причем в последней версии MBM5 это было исправленно, а SpeedFan на тот момент продолжал вешать машину.
- User Interface fully (!) redesigned;
- Repainted logo collection;
- Improved VIA Cyrix support;
- Added VIA C3 and VIA C7 detection;
- Added new Sempron M core (Albany, Roma) detection;
- Added all K6 multiplier detection;
- Added core voltage detection;
- Added SuperIO sensor info and processor/system temp measurement;
- Added HyperTransport multiplier detection (big thanks to Gerk);
- Added true l2 cache size reporting for AMD's and Intel's Dual Core Processors;
- Added new icons for Athlon, VIA C3 and Transmeta Crusoe;
- Fixed ThunderBird and Morgan multiplier detection;
- Smaller program size.
Пока все, лист To-Do переполнен, так что работаем потихоньку Разработкой нового дизайна занимался Nikita, кому-то понравить - кому-то нет, но равнодушных быть не должно.
_________________ Ку ку
Последний раз редактировалось Daemon 10.06.2005 2:52, всего редактировалось 1 раз.
Member
Статус: Не в сети Регистрация: 30.01.2003 Откуда: Москва
Меня интерфейс равнодушным не оставил А Ext. model 1000F - это нормально? Да и Family/Model/Stepping у меня F/F/0...
CPUID, скрин.
Температура правильная А вот кривое переключение на Stadart 2 / Extended 2 - все надписи такие же, как в Extended 1 (в 0.7 все было ок).
Кстати...а нельзя куда-нибудь впихнуть тепловыделение процессора?
Member
Статус: Не в сети Регистрация: 30.01.2003 Откуда: Москва
Daemon спасибо Скачал, посмотрел. Теперь Ext. model 20F HTT правильный (с другими не пробовал еще), стартовала полсекунды. Сенсор именно этот и напряжение кривое
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения