Hollosi Information eXchange /HIX/
HIX CODER 390
Copyright (C) HIX
1999-03-06
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Visual Basic DLL/OCX (mind)  11 sor     (cikkei)
2 Re: *** HIX CODER *** #389 -->Mc (mind)  77 sor     (cikkei)
3 Particios tabla... (mind)  40 sor     (cikkei)
4 Asm: ret far hagy egy word-ot a vermen (mind)  4 sor     (cikkei)

+ - Visual Basic DLL/OCX (mind) VÁLASZ  Feladó: (cikkei)

Hello Mindenki,

Lenne egy kerdesem a Visual Basic-es programozok fele.
Szeretnek 5.0-as VB-ben DLL/t vagy OCX-et programozni es meghivni.
De sajne sehol nem talaltam meg olyan leirast ami ezt reszletesen
elmagyarazna nekem.
Ha valaki egy egyszeru peldaban (forraskod) el tudna kuldeni azt nagyon
megkoszonnem.
Ha lehet az alabbi cimre kernem: )
De ezen kivul mindenfele VB otlet es tipp eredekel...
Koszi
+ - Re: *** HIX CODER *** #389 -->Mc (mind) VÁLASZ  Feladó: (cikkei)

Hi inet,"HIX CODER" >!

[particijo]
iC> Egyebkent nem azert hoztam fel ezt a temat, hogy csak vitatkozzunk rajta..
jovanna, elobb is szol6tal voona...;)))
iC> Szeretnek egy MBR programot irni:
iC> 1. Ez beolvassa az elso HDD-rol az MBR-t.
iC> 2. Utana megnezi, hogy melyik az "aktiv" :)
iC>    boot-olhato particio.
iC> 3. Ha meg van, akkor beolvassa annak a particionak
iC>    az 1. szektorat es elinditja...
> ----------------------------------------
iC> Ez eleg egyszerunek latszik, de a 2. pont az megsem olyan egyszeru...
iC> En azt szeretnem, hogy az en MBR programom kepes legyen
iC> olvasni meg akar egy 10 Gigas winchesterrol is!
no... hat eldonteni a parti meretet telleg nem egyszeru,
mivel egy dwordben is el van tarolva, amibe szerintem meg
mindig bele kene fernije meg a 10 gigas partinak is...;))))
de sejtem, hogy mi lehet a bajod... doxxot az extended
int13 funkcijokrol /pl 42h/ kuuttem... ide nem teszem fel,
mert kb 100k.. de az interXX szerves resze www.pobox.com/~ralf...
de akinek kell, elkuudom mail a kiollozott reszt az int13 rol..

na itt megy egy kod, ami csekkeli az extended int13h +letet,
es asztan ezzel az extended read nevu csodaval beolvassa
a parti tablat.... szerintem ebbol elindulva mar nem lesz
nagy kunszt +irni a proggyt /ha megse jonne ossze, szolj,
en megirom hejetted, ugyis raerek mostanaban....;)/ na jo,
komojra forditva, itt a peldaproggy, ami kezeli az extended
int13 funkcijokat.. /a doxx szerintem az osszes award,
es 386sx tol felfele az ami bijoszok is ismerik, de amugy
csekkelni is lehet a dolgot... na jo szorakozast...

> ----------------------------------------------------------------
mov ah,41h            ;vajon vannak extended funckijok? /386dx+ vannak!:)
mov bx,55aah          ;az id....
mov dl,80h            ;az Lso vincsire...
int 13h               ;es nezzuk a doogokat....
jnc byte j1           ;nincs carry-->eddig jo...
j2:                   ;nincs ext.13h-->na akko' huccsuk a cpu-t;)))
cli
jmp byte j2      ;ehehe, ez win95/98 alatt is muxxik... |\/|$ $|_|XX!:))))
j1:
cmp bx,0aa55h         ;vajon jo az id string?!?!?
jne byte j2           ;nem-->hutes bekapcsolasa...;))))
sub eax,eax           ;torojjuk csak a reget /parti tablat akarunk oovasni..
mov cs:[data_pos2],eax;32..63 bitek...
mov cs:[data_pos1],eax;00..31 bitek...
inc ax                ;1 arva szektort /parti tabla/ akarunk oovasni;)
mov cs:[data_num],ax  ;eszt todassuk masokkal is;))))
mov word cs:[data_bOfs],offset lastbyte  ;igen, ide akarunk oovasni...
mov cs:[data_bSeg],cs ;es ebbe a szegmensbe....
mov ah,42h            ;extended read... yuheyyyy....;)))
mov dl,80h            ;az elso vincsirol....;)))
mov si,offset data    ;ezen az offseten van a blokk...
push cs               ;es ebben a szegmensben...;)))
pop ds
int 13h               ;na akko' hayra...;)))
jc byte j2            ;hiba lepett fel-->tulmeleged-->hutes bekapcs;))))
ret                   ;mara ennyi legyen eleg mindenkinek;)))))
data:
data_size db 10h      ;a blokk hossza, kotelezoen 10...
data_res0 db 0        ;ez itten reserved... 0 kell ide...;)
data_num  dw ?        ;hany szektort akarunk olvasni...
data_bOfs dw ?        ;offset...
data_bSeg dw ?        ;segmens...
data_pos1 dd ?        ;vincsin pozicio...
data_pos2 dd ?        ;6 esse az ide inferfacere tervesztek... 64 bit...;)))
lastbyte:
> ----------------------------------------------------------------

remelem teccett... a hibakezelesem szerintem tulsagosan informativra
sikerult, szoval azt meg nem artana finomitani, de a lenyeg bennevan;))))

na jo kodolast, stb.... csao amigo....

Mc
+ - Particios tabla... (mind) VÁLASZ  Feladó: (cikkei)

>Szeretnek egy MBR programot irni:
>
>1. Ez beolvassa az elso HDD-rol az MBR-t.
>2. Utana megnezi, hogy melyik az "aktiv" :)
>boot-olhato particio.
>3. Ha meg van, akkor beolvassa annak a particionak
>az 1. szektorat es elinditja...
>
> ----------------------------------------
>Ez eleg egyszerunek latszik,
>de a 2. pont az megsem olyan egyszeru...
>En azt szeretnem, hogy az en MBR programom kepes legyen
>olvasni meg akar egy 10 Gigas winchesterrol is!
>Ehhez viszont az kellene, hogy megtudjam egyaltalan,
>hogy mekkora a winchester. 8 Gigas? 10 Gigas? 2 Gigas?
>810 Megas? 5.2 Gigas? .......
>
>Ezt hogyan lehet lekerdezni?

Minek azt tudni? (Mellesleg, osszeadod a particiok hosszat es maris
tudod.)

Egyszeruen a kivalasztott/aktiv particios-tabla sorbol kiveszed a
cim-informaciot
betoltod a megfelelo regiszterekbe (meg kitoltod a memoria-cimet,
funkciokodot)
es meghivod a INT13-at. A boot-rutin beolvasodik.
Ha bootolni akarsz egy nem-aktiv particiorol (ugye boot-szelektet akarsz
csinalni),
akkor a tovabbi boot elott aktivva kell azt tenni. (Vissza kell irni az
MBR-t ugy,
hogy a kivalasztott legyen az aktiv. Nekem maskepp nem bootolt. Lehet, azota
valtozott a helyzet, nehany eve probaltam.)

A 80 (aktiv/bootolhato jelzo) azert 80, mert ezt tolti az INT13 drive-select
registerbe (a DH hje). Es az elso vincsi kodja.

Talaltam egy multiboot rutint, ha valaki keri elkuldom (<50k).

Veres Sandor
+ - Asm: ret far hagy egy word-ot a vermen (mind) VÁLASZ  Feladó: (cikkei)

Tobb kodszegmensem van, call far-ral hivjak egymast. A ret 
far viszont ottfelejti a szegmenscimet a vermen. Miert ?

Mikike

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS