- iPhone 16e - ellenvetésem lenne
- Xiaomi 15 - kicsi telefon nagy energiával
- Mobil flották
- Prohardver app (nem hivatalos)
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Poco F6 5G - Turbó Rudi
- Magisk
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
- Azonnali mobilos kérdések órája
Aktív témák
-
wnix
senior tag
-
-
Rover623
félisten
válasz
Flashback #99 üzenetére
Mondom hogy van érzéked hozzá...
Conway's game of life...
Nem is tudod hogy beletrafáltál...
Annó 89-ben egy cimbivel együtt nyúzunk egy 128D Commodore-t...ő assembly-ben próbálta lekódolni (a profi...) én az amatőr egy délután összedobtam...a benne lévő CP-M80 karin futó Turbo Pascal-ban...
Na ott lehetett optimalizálni...ez volt az első találkozásom a TP-vel...
P.S.:
Részemről is béke... -
Rover623
félisten
válasz
Flashback #96 üzenetére
Hú vazz...ne tetézd...
A dolog könnyebik végéről pedig annyit hogy nem fogok több száz oldalas lexikálist tudást felhalmozni azért hogy egy alaplapból kiszedjem a temp. értékeket
Ahogy írod, rendszerprogramozó (nohiszen...) leszel nemsokára.
Kívánom hogy végezd el...ha eddig eljutottál, biztos úgy lesz...
Kívánom hogy kapjál munkát hamar...nem könnyű!
Kívánom, hogy az első munkád olyan dolog megírása legyen amire van már valahol kész library, de a céged úgy gondolja, nem fizet ki érte súlyos ezer dollárokat (tapasztalat!), elvégre itt az ijú titán ''rendszerprogramozó'', tud mindent, ennyiért eldolgozik egy évet is, szépen megoldja a dolgot, nem mellékesen másra is befogható...
Azért megnéznélek amikor halál nyugodtan vágod a project-manager képébe a határidő végén a fenti mondatodat...megspékelve azzal, hogy még a köcsög fórumozók sem segítettek a PH!-n pedig egész végig piaci légy módjára basztattad őket, de mindhiába, csak nem akarták helyetted megoldani a feladatot...
Hozzáállásbeli problémák vannak nálad papuskám...remélem kinövöd...! -
Rover623
félisten
válasz
Flashback #95 üzenetére
Tényleg utoljára, és nem bántani akarlak...jótanács!
Nincs érzéked hozzá!
Az ember akkor lehet igazán boldog, ha olyat csinál amit szeret...és tud, amben sikeres lehet, amiben kevés kudarcélmény érheti.
Az érdeklődés meg van benned, kitartásod figyelemre méltó...de ez nem a te világod! De nem is kell...lehetsz jó adatbázis programozó, sőt még a játékok terén is lehetsz ász a hardware közeli kódolás ismerete nélkül!
Ami nem megy, nem kell erőltetni...én sem kérek tanácsokat a body-builderektől edzésterv és táplálékkiegészítők témában...minek? Az én 65 kilóm arra elég, hogy ne másnak kelljen arrébb tenni a szemetesvödröt ha az utamba akad
Autóversenyző és autóversenyző között is baromi nagy különbség van, pedig ott a szakágak között sokkal kevesebb a difi mint a programozásban...a Schumi is fasza gyerek, meg a Burns is, de kétlem hogy ha szerepet cserélnének, mindkettő ugyanolyan sikeres maradna...
Minden ember agya, gondolkodása más...
Jó vagyok pacalban, assemblyben, sokat dolgoztam Fortranban, megy a Basic, olvasni tudok C-ül, írni már nem szeretek...
Az öcsém úgy néz ki mint aki egy ''hello world''-öt nem tud lekódolni magasszintű nyelven...aztán amikor dühösen a sarokba vágtam a Lisp könyvet, mert egy kurva literált (vagy hogy hívták azt a szart...) nem bírtam előállítani, mosolyogva felvette, elolvasta, majd elkezdte magyarázni NEKEM! mint okos apa a hülye kisfiának...
Akkor sem értettem, most már nem is fogom...
Nem megy, hanyagolom...azt csinálom ami megy, jobban érzem magam
Ezt javaslom neked is...én jót akarok neked, nem vagyunk egymásnak konkurrencia, nem haragszom rád (látod segíteni is próbáltam...nem szokás programozók között ilyen szintű forrás átengedése, majd rájössz...), régebb óta programozok mint te élsz...
Uff! Szóltam! -
wnix
senior tag
válasz
Flashback #90 üzenetére
Úgy képzeld el, mintha lenne 3db RAM-chiped amit csak egy memória-címen keresztül egyenként tudsz elérni.
adott.
ram1 32byte-os
ram2 32byte-os
ram3 32byte-os
címző-chip 32byte-os
ezeket csak egy ''címző''-chip-en keresztül tudod elérni, de csak külön külön, mert a ''cimző''-chip is csak 32byte-os. Így a ''címző''-chip-nek meg kell mondanod, hogy melyik ram 32byte-ját (melyik bank-ot) akarod elérni. Ha ezt megmondtad neki, akkor a ''címző''-chip átmásolja a ram 32byte-ját a ''címző''-chip 32byte-jába és onnan ki tudod olvasni. Ezeket a ram-okat a ''címző''-chip segítségével ''bank''-ként kezeled így.
Így érthetőbb ?
Rover623:
szvsz mindenki alacsonyról indul. Én legalábbis így kezdtem. Speciel ATA-programozással, ahol néha az egész évi programozói-munkámat egy-két bit elírásával ''megformáztam''. Jó lett volna akkoriban nekem is valaki, aki néhány dolgot megmagyarázott volna. Így továbbra is megpróbálok türelmes maradni, és egy szív-infarktus-mentes életet élni.
(Flashback CPUBurn programját ma is előszeretettel használom)
-
Rover623
félisten
válasz
Flashback #85 üzenetére
Olvasd át figyelmesen a két unit-ot amit küldtem
Ott van benne egy rakat gyártó sokféle cuccára hogy hol van benne a gyártó és típusazonosító...nemcsak monitor-chipekre, hanem egyszerű hőmérsékletszenzorokra is!
Ha megérted az elvet, kidolgozol egy-egy metódust gyártónként, akkor már csak szorgosan kell gyűjtened a gyári adatlapokat és bővíteni a listát... -
wnix
senior tag
válasz
Flashback #80 üzenetére
Én mindenhol regisztereket írtam, nem port-okat. I/O-Port csak az ISA-buszon vannak. Azon meg spórolni kell, mert csak 65536+-1 db van összesen.
'''Temperatur Sensor 2'' a Bank1-ben 4Eh-ba 81h-t írni és az 50h-t és a 51h-t kiolvasni.
Ez kb így néz ki:
PortOut(295h,4Eh); //* ezzel beadod az index-portba, hogy a 4Eh-regiszterrel akarsz valamit
PortOut(296h,81h); //* ezzel beadod a data-portba, hogy az előbb megadott regiszterbe 81h-t akarsz írni
PortOut(295h,50h); //* ezzel beadod az index-portba, hogy az 50h-regiszterrel akarsz valamit
érték50:=PortIn(296h); //* ezzel kiolvasod az előbb megadott regiszter értékét
PortOut(295h,51h);
érték51:=PortIn(296h);
Vagy akkor hogy lehet a 4eh portra írni?
PortOut(295h,4Eh);
PortOut(296h,érték);
lehet hogy a két parancs között egy kis időzítés kell, de nem biztos. (nem tudom milyen gyorsan dolgozik egy Winbond 83627HF chip)
[Szerkesztve] -
válasz
Flashback #80 üzenetére
Jajj ezer bocs, mostmár felfogtam és le is programoztam amit mondtál. Ha jól értelmeztem akkor ezt adom be neki:
PortOut($295,$4E); // 4Eh-ba írni
PortOut($296,$81); // A 81h-t
PortOut($295,$50); //50h portot kiolvasni
Memo1.Lines.Add(inttostr(PortIn($296))); //kiírni a képernyőre
És tényleg! Műxik! 45-t kaptam vissza és az ABITEQ-is ezt mutatja! 1000 kösz! -
wnix
senior tag
válasz
Flashback #67 üzenetére
Az érthetőség kedvéért:
a Port azt ami a 295h=661-en és a 296h=662-ön írhatsz/olvashatsz. Ezek az ISA-bushoz tartoznak. Ezeket írhatod a PortOut(Port,Érték) függvénnyel és olvashatod a érték:=PortIn(Port) függvénnyel.
pl: Kiolvasod a port 295h értéket: érték:=PortIn(295h);
Írhatod a port 295h-ot egy értékkel: PortOut(295h,érték);
a 295h az az ISA-index regiszter
a 296h az a ISA-data regiszter
csak ezeken keresztül érheted el a Winbond chip-et. (A PortIn,PortOut csak ezekre irányulnak)
A regiszterek a Winbond Chip regiszterei. Ezeket nem tudod elérni közvetlenül (pl regiszter 4Eh olvasni nem tudod így érték:=PortIn(4Eh) ), csak az ISA-porton keresztül.
pl: Winbond-regiszter 4Eh-t olvasod így: PortOut(295h,4Eh)
ekkor a Winbond Chippel közlöd, hogy a 4Eh regiszterhez szeretnél hozzáférni, de a regiszterben levő adatot még nem tudod. Ezt a 296h (data) porton olvasod ki így: PortIn(296h) közvetlenül az index-regiszter megadása után.
Tehát a 4Eh regiszter kiolvasása:
PortOut(295h,4Eh);
érték:=PortIn(296h);
Ha a winbond 4Eh regiszterét írni akarod akkor:
PortOut(295h,4Eh);
PortOut(296h,érték);
Mindig párosával használd az Index és a Data ISA-regisztereket. -
Rover623
félisten
válasz
Flashback #72 üzenetére
Bocsi, de nem használok MSN-t...ez az emil cím a gyerekemé, ezen max. vele beszélhetsz
Ennél többet én már nem tudok neked segíteni...adtam kódot, elmagyaráztam az elvet, a kollégával együtt szerintem minden alapinfót megadtunk ami az induláshoz kell.
Ha ez így megy tovább, gyakorlatilag mi fogjuk megírni a kódot...annak meg nincs értelme, pláne hogy én elküldtem neked egy igen részletesen kommentezett MŰKÖDŐ! forrást, amiben az értelmezés is erősen ki van dolgozva, ráadásul egy rakás chipre...
Nekem semmi kedvem újra megírni (most Delphi-ben), te meg nem fogod megérteni az alapelveket, ergo le fogsz blokkolni a következő ilyen jellegű problémánál.
Akkor érted meg igazán a dolgok működését, ha magad csinálod...
Bye! -
Rover623
félisten
válasz
Flashback #67 üzenetére
Flashback!
Szvsz addig hagyd abba amíg össze nem omlik a géped...
Abszolute nem vágod a dolgot
Nem a 4E meg hasonló PORTOT! kell bazgatni, hanem a 627-esen belüli regiszereket!!!
Az általam vázolt olvasórutint kelk használnod az olvasásra és annak az analógiájára kell írnod egy rutint, ami írja regiszter tartalmát!
P.S.:
Ami nem megy, azt ne erőltessük...mondta nekem a vizsgabiztos. Nem is vezetek, csak ha muszáj
Szerintem neked egyáltalán nem kéne vasat programoznod...nem hiszem hogy az életed múlik rajta... -
wnix
senior tag
válasz
Flashback #63 üzenetére
A pontos lépésekkel nem szolgálhatok (nem vagyok benne biztos, hogy műkődik-e).
De szvsz próbáld meg, hogy a 4Eh regiszterbe beírsz egy Bank-címet, és megint kiolvasod az összes regisztert. De először ezt próbálnám.
Regiszter 4Eh-ba 80h-t beírni, és olvasni a 4Fh-regisztert. Most 5Ch-t kell, hogy kapjál.
Ha 4Eh-ba 00h-t írsz akkor 4Fh-t olvasva A3h-t kell, hogy kapjál. Együtt az 5Ch és a A3h a ''Winbond Vendor ID''. Így tudsz 16bit-es értéket kiolvasni (4Eh-ban a 7.bit írásával/törlésével)
Ezután próbálnám a bank-okat is sorban kiolvasni pl.
''Temperatur Sensor 2'' a Bank1-ben 4Eh-ba 81h-t írni és az 50h-t és a 50h-t kiolvasni. (59.oldal) -
wnix
senior tag
válasz
Flashback #51 üzenetére
a registerek leírását a #8-as hsz-ben belinkelt (Bővebben: link) pdf-ben, a 38. oldaltól találod.
Megjegyzés:
1. szvsz a számokat ne 10-es alapu számrendszerbe írasd ki, mert ezeket megint vissza kell váltanod 2-es vagy 16-os alapúvá (fűggően melyik számrendszerben ''mozogsz otthonosan''). Itt regiszterekről van szó, itt a bit-eknek is van külön-külön jelentése.
2. amennyire átolvasgattam a fenti pdf-et, nem elég a regiszterek egyszerű kiolvasása, mert ebben a chipben több memoria-részre bontották a hardverinfok tárolását, (bank 1, bank 2, stb) így ezeket csak bizonyos regiszterek átírásával tudod kiolvasni.
3. az általad kiíratott regiszterek némelyike pl 79. (alias 4Fh) =163 (alias A3h) (pdf-ben 52.oldal) már jó, de pl ez a VendorID regiszter alsó 8bit-je, de hiányzik a felső 8bit. Az ilyen ''fix'' regisztereken lehet jól kipróbálni a programot műkődés szempontjából...
egyenlőre ennyi.... -
válasz
Flashback #50 üzenetére
Bocs, egyhelyre írtattam ki. Szóval a teljes lista:
32 = 103
33 = 165
34 = 205
35 = 185
36 = 195
37 = 38
38 = 52
39 = 25
40 = 87
41 = 255
42 = 255
43 = 116
44 = 90
45 = 116
46 = 90
47 = 237
48 = 176
49 = 0
50 = 37
51 = 0
52 = 138
53 = 64
54 = 0
55 = 0
56 = 6
57 = 16
58 = 8
59 = 32
60 = 36
61 = 35
62 = 0
63 = 0
64 = 1
65 = 0
66 = 0
67 = 255
68 = 255
69 = 0
70 = 0
71 = 168
72 = 45
73 = 2
74 = 1
75 = 132
76 = 80
77 = 149
78 = 0
79 = 163
80 = 255
81 = 255
82 = 128
83 = 255
84 = 255
85 = 255
86 = 32
87 = 128
88 = 33
89 = 112
90 = 255
91 = 255
92 = 17
93 = 1
94 = 255
95 = 5 -
Rover623
félisten
válasz
Flashback #41 üzenetére
Te figyu!
Nem gonoszkodás...de ez nem fog neked menni...
Const
LMBase = $295;
Var
hTimeOut : Boolean;
Procedure IODelay;{ez csak vár, hogy egy kis idő elteljen}
Var
T : Byte;
Begin
For T := 0 to 255 do;
End;{IODelay}
{a monitor-chip adatterületének Index-ben megadott regiszterét olvassa}
Function hISAReadRutin (Index: Byte): Byte;
Var
Szamlalo : Word;
Begin
hTimeOut := True;
{1000-szer probáljuk}
For Szamlalo := 1 to 1000 do begin
{ha a Busy bit nem áll, akkor szabad a busz, mehet a móka}
If ( (PortIn (LMBase) And $80) = 0) Then begin
hTimeOut := False;
Break;
End;{if}
End;{for Szamlalo}
{ha timeout volt, akkor is megpróbáljuk, van amikor ebben az esetben is jó!}
{megcímezzük a regisztert}
PortOut (LMBase, Index);
{várunk}
IODelay;
{kiolvassuk a regiszter értékét}
hISAReadRutin := PortIn (LMBase+1);
IODelay;
End; {hISAReadRutin}
A fenti rutinok segítségével kiirjuk a 627 értékes regisztereit:
Var
RegValue,
_627Reg : Byte;
If IsDriverInstalled Then begin
For _627Reg := $20 to $5F do begin
RegValue := hISAReadRutin (_627Reg);
If hTimeOut then begin
{a megcímzett regiszter nincs implementálva a chipben, vagy valami más
szoftver aktívan buzizza a chipet, pl. Asusprobe, Speedfan, Everest, stb.}
Break;
End;{if}
{Szépen kiírogatod a képernyőre az eredményt pl. TP-ben
Writeln (_627Reg, ' = ', RegValue);
formában...Delphi-ben a tököm tudja most hogy kell...
}
End;{for _627Reg}
End;{ha be van töltve az IO.DLL !!!}
[Szerkesztve]
[Szerkesztve]
[Szerkesztve] -
Rover623
félisten
válasz
Flashback #35 üzenetére
Vágom...még jó...én írtam...
De ember...hát ott van a kódba, vazzeee...
LMBase = $295;
A hISAReadRutin kb. 5 perc alatt módosítható Delphi-re.
Ezután végrehajtod egy ciklusban $20-$5F tartományban és a kapott értékeket lerakod egy array-be. Azért csak ezt a részét, mert az alsó 32 byte a chip vezérlését szabályozza és azt nem mindig szereti ha olvassák.
A 32 fölötti NVRAM területen vannak azok a regiszterek, ahova folyamatosan beírja a mért értékeket.
Ezután a Winbond doksija alapján (vagy az általam küldött hlist unit alapján) értelmezed a kapott adatokat.
P.S.:
Egyébként publikus, hogy minek kell ez neked?
[Szerkesztve] -
Rover623
félisten
válasz
Flashback #32 üzenetére
Ami téged első körben most érdekelhet az a hISAReadRutin.
Ez az ISA buszon lévő chip Index-el jelölt regiszteréből olvassa ki az adatot.
Neked eddig azért nem sikerült, mert a bázisport is kétirányú. Írásnál ide kell küldeni a megcímzett regiszter számát, olvasásnál viszont status portként viselkedik, a legfelső bit jelzi hogy foglalt a busz. Meg kell várni amíg nullába megy, ekkor lehet kiküldeni a regiszter számát, aztán lehet olvasni az eredményt az adatregiszterből.
Általában nem foglalt, de muszály legalább egyszer olvasni, mert csak ekkor törlődik tutira az utolsó esetleges foglalt jelzés, és amíg az áll, nem enged hozzáférést a regiszterekhez. -
Rover623
félisten
válasz
Flashback #26 üzenetére
Ha tényleg érdekel a dolog, elküldök neked mutatóba két unit-ot. Nem Delphi, hanem sima Turbo Pascal, de ezt legalább könnyebben olvasod mint a C-t.
Kiolvasni egyszerű a dolgot, értelmezni kevésbé. A kapott adatok függenek a monitor-chiptől, annak felprogramozásától, a ráakasztott szenzoroktól és még az alaplap típusától is (gyártónként-típusonklént más referencia szintek!).
Annak idején (ezt is) elkezdtem komolyabban csinálni, csak a variációk sokasága nem fér össze az időmmel
627HF-et viszont pont kezeltem annak idején, semmi extra, sima ISA buszos móka
Vannak ennél bonyolultabbak is...pl. déli hídba integrált SMBUS kontroller I2C buszára akasztott szenzorok...
Szóval nem kis falat...
[Szerkesztve] -
wnix
senior tag
válasz
Flashback #18 üzenetére
Mást én se nagyon tudok. Elég komplikált egy érzékelő programozása, főleg, ha a ''chipset''-hez nincs külön leírás.
Talán még Bővebben: link.
vagy végsőként: Bővebben: link -
wnix
senior tag
válasz
Flashback #16 üzenetére
Találtam egy kis delphi-source-ot, de csak Intel 82801 és 82371AB/EB (PIIX4). Asus 99127F vagy Winbond-ra lett írva. Talán így is segít !
Bővebben: link -
wnix
senior tag
válasz
Flashback #11 üzenetére
MSN nincs, és ICQ sincs...
Idézet a 22.oldalról:
''port 295h: index port
port 296h: data port''
az index-port-ra beírod hogy melyik registerbe/ből akarsz olvasni/írni és akkor a data-port-ról olvashatod/írhatod a registert....
de mindent neked kell a chip-en programozni, az inicialialázálástól kezdve az adatkiolvasásig...( egy debugger sokat segít !)
sokat nem tudok segíteni, mert ezt a chipet még én se programoztam, ezért ajánlom figyelmedbe a linux-kernel-source-t, ebben van néhány érzékelő-driver, ami segíthet... -
wnix
senior tag
szvsz kezd a 22.oldalon a ''2. Hardware Monitor''-ral...
ezt a chipet még nem programoztam, de többnyire úgy szokott lenni, hogy van egy BASE register és van egy INDEX register. Ha beírod a BASE-registerbe az INDEX-register számát, akkor a következő olvasási ciklusban lehet kiolvasni/beírni azt ami kell.
a linux-kernel-source talán többet tudna segíteni ha értesz ''C++''-ul. mert abban is vannak pár érzékelő-driverek.... -
wnix
senior tag
Aktív témák
Hirdetés
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Dell notebook topic
- Direct One (műholdas és online TV)
- Háztartási gépek
- A Micron újszerű módszerrel javítja QLC-s SSD-jének sebességét
- Windows 11
- Kutya topik
- Bestbuy játékok
- Xbox tulajok OFF topicja
- sziku69: Fűzzük össze a szavakat :)
- További aktív témák...
- BANKMENTES részletfizetés Noblechairs HERO Fekete/Platinafehér Gamer Szék
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RX 9070 16GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! Gigabyte A520 AORUS R5 5500 16GB DDR4 512GB SSD RX 6600 XT 8GB Rampage SHIVA TT 500W
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- AKCIÓ! ASUS ROG Zephyrus GA403UV Gamer notebook - R9 8945HS 16GB RAM 1TB SSD RTX 4060 8GB WIN11
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest