Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

.LIB fajl

[es] :: C/C++ programiranje :: .LIB fajl

[ Pregleda: 3007 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.241.EUnet.yu



+2 Profil

icon .LIB fajl20.12.2003. u 13:47 - pre 247 meseci
Imam .LIB fajl pisan za C pod dosom i heder fajl sa deklaracijama funkcija.(lepo radi sa Turbo C-om) Zanima me kako i da li mogu da koristim ovu biblioteku (tj. njene funkcije) u Turbo C++ 3.0? (pokusao sam da uradim kao i u Turbo C-u ali on prijavljuje Linker Error) Da li postoji način da nekako prepravim ovu biblioteku tako da radi pod Windowsom? (ova biblioteka sadrži funkcije za komunikaciju sa hp-ib karticom) Da li neko može da objasni kako se zapravo linkkuje .LIB fajl.
Kako mogu da disasemblujem ovu biblioteku tj. da vidim kod svake funkcije? Da li se format .LIB fajla razlikuje ako je pravljen recimo iz C-a i iz Pascala?

poz.
 
Odgovor na temu

Ivan Dimkovic

Administrator
Član broj: 13
Poruke: 16687
*.dip.t-dialin.net



+7173 Profil

icon Re: .LIB fajl20.12.2003. u 14:03 - pre 247 meseci
LIB fajl je kolekcija .obj fajlova koji se dobijaju kompajliranjem koda.

Dakle, on sadrzi masinski kod za odredjen procesor i OS, sa referencama ka nekim drugim funkcijama koje se u linkeru razresavaju.

Formati obj fajlova su obicno OMF ili COFF - i tesko da mozes nesto za DOS da linkujes sa Win32 linkerom. Najpametnije bi bilo da kontaktiras autore biblioteke i da ih zamolis da ti dostave verziju za tvoj OS i kompajler.

Drugo resenje, ako nemas nista pametnije, je da uzmes Watcom C kompajler, on je imao neku alatku za disasembliranje OBJ i LIB fajlova ako se dobro secam - i da pokusas to nekako da asembliras sa MASM-om, ali ovo je vrlo tezak posao jer je kod verovatno 16-bitni i koristi CRT funkcije tog starog kompajlera pa ce posao konverzije biti previse naporan da bi se stvarno isplatio.

DigiCortex (ex. SpikeFun) - Cortical Neural Network Simulator:
http://www.digicortex.net/node/1 Videos: http://www.digicortex.net/node/17 Gallery: http://www.digicortex.net/node/25
PowerMonkey - Redyce CPU Power Waste and gain performance! - https://github.com/psyq321/PowerMonkey
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.151.EUnet.yu



+2 Profil

icon Re: .LIB fajl20.12.2003. u 15:21 - pre 247 meseci
Dobro. Ali kako da koristim funkcije ove bibiliteke u turbo c++ 3.0 pod dosom?
Nije mi jasno zasto radi u Turbo C, a u C++ javlja gresku?

poz.
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.telia.com

Sajt: dejan.lekic.org


+2 Profil

icon Re: .LIB fajl20.12.2003. u 15:26 - pre 247 meseci
Mozes li nam makar dati te "linker error" poruke - pa da pokusamo da ustanovimo gde je greska...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.rcub.bg.ac.yu



+2 Profil

icon Re: .LIB fajl20.12.2003. u 17:35 - pre 247 meseci
Dobijem poruku tipa: "Undefined symbol IOTIMEOUT(long,double) in module MERENJE.CPP" gde je IOTIMEOUT funkcija iz .LIB fajla. I još nešto kad napišem funkciju:
Code:

int zbir(a,b)
int a,b
{
    return a+b;
}

Dobijem Linker error sa istom porukom samo za funkciju zbir. Onaj ko je pisao .LIB fajl svoje funkcije je deklarisao kao gore. Predpostavljam da je ovo razlog zašto ovo biblioteka radi u Turbo C-u a neredi u Turbo C++ 3.0. Kako da ovo rešim?

poz
 
Odgovor na temu

sspasic
Sasa Spasic

Član broj: 3261
Poruke: 175
*.medianis.net

Jabber: sspasic@elitesecurity.org
ICQ: 35454521


Profil

icon Re: .LIB fajl20.12.2003. u 20:51 - pre 247 meseci
A da nije u pitanju razlika izmedju toga kako C i C++ ime funkcije pretvaraju u simbol za linker? C++ ugradjuje i tip parametara a C ne.
Promeni ekstenziju fajla u C ili ovaj zbir (moze i include) uokviri sa:
Code:

extern "C" {
... // ovde ubaci deklaraciju funkcije zbir i include
};


Mozda ovo pomogne. Pod uslovom da taj LIB uopste moze da se koristi sa TC++ 3.0.
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.79.EUnet.yu



+2 Profil

icon Re: .LIB fajl21.12.2003. u 10:52 - pre 247 meseci
Heder falj sam izmenio da izgleda ovako:
Code:

extern "C"
{
int far IOABORT(long);
int far IOCLEAR(long);
int far IOCONTROL(long, int, int);
int far IODMA(long, int, int);
int far IOENTER(long, float far *);
int far IOENTERA(long, float far *, int far *);
int far IOENTERAB(long, void far *, int far *, int);
int far IOENTERB(long, void far *, int far *, int);
int far IOENTERS(long, char far *, int far *);
int far IOEOI(long, int);
int far IOEOL(long, char far *, int);
int far IOFASTOUT(long, int);
int far IOGETTERM(long, int far *);
int far IOLLOCKOUT(long);
int far IOLOCAL(long);
int far IOMATCH(long, char, int);
int far IOOUTPUT(long, double);
int far IOOUTPUTA(long, float far *, int);
int far IOOUTPUTAB(long, void far *, int, int);
int far IOOUTPUTB(long, void far *, int, int);
int far IOOUTPUTS(long, char far *, int);
int far IOPPOLL(long, int far *);
int far IOPPOLLC(long, int);
int far IOPPOLLU(long);
int far IOREMOTE(long);
int far IORESET(long);
int far IOSEND(long, char far *, int);
int far IOSPOLL(long, int far *);
int far IOSTATUS(long, int, int far *);
int far IOTIMEOUT(long, double);
int far IOTRIGGER(long);
}


Sada dobijam ovakvu grešku:
Linker Error: Fixup overflow at _TEXT:011F, target = _IOLOCAL in module MERENJE.CPP

Može li neko objasniti zašto javlja ovu grešku?

poz.
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.1.EUnet.yu



+2 Profil

icon Re: .LIB fajl29.12.2003. u 11:02 - pre 247 meseci
Ova biblioteka ne koristi CRT funkcije jer ništa ne ispisuje, već ima funkcije za komunikaciju sa hpib karticom. Koristio sam program obj2asm da disasemblujem ovaj .lib fajl i dobio sam sledeće:
Code:

; OBJASM version 2.0 released on Jan 3, 1991
; (C) Copyright 1988,1989,1990,1991 by Robert F. Day.  All rights reserved

Bad record type: [00000000:F0:000D]
    TITLE    mclarge.ASM

; [0020]    ; Unknown COMENT Record (Class 163): '[07]mclarge'

HPIB_DATA    SEGMENT    WORD PUBLIC 'DATA'
HPIB_DATA    ENDS

HPIB_TEXT    SEGMENT    BYTE PUBLIC 'CODE'
HPIB_TEXT    ENDS

DGROUP    GROUP    HPIB_DATA

IOGROUP    GROUP    HPIB_TEXT

; [03ED]    ; Linker - Pass two marker



    EXTRN        HPIBLIB_SEND:NEAR
    EXTRN        HPIBLIB_EOL:NEAR
    EXTRN        HPIBLIB_OUTPUTAB:NEAR
    EXTRN        HPIBLIB_OUTPUTS:NEAR
    EXTRN        HPIBLIB_OUTPUTB:NEAR
    EXTRN        HPIBLIB_OUTPUTA:NEAR
    EXTRN        HPIBLIB_TIMEOUT:NEAR
    EXTRN        HPIBLIB_FASTOUT:NEAR
    EXTRN        HPIBLIB_LOCKOUT:NEAR
    EXTRN        HPIBLIB_CONTROL:NEAR
    EXTRN        HPIBLIB_TRIGGER:NEAR
    EXTRN        HPIBLIB_IOABORT:NEAR
    EXTRN        HPIBLIB_ENTERAB:NEAR
    EXTRN        HPIBLIB_STATUS:NEAR
    EXTRN        HPIBLIB_PPOLLU:NEAR
    EXTRN        HPIBLIB_ENTERS:NEAR
    EXTRN        HPIBLIB_REMOTE:NEAR
    EXTRN        HPIBLIB_PPOLLC:NEAR
    EXTRN        HPIBLIB_EOICTL:NEAR
    EXTRN        HPIBLIB_ENTERB:NEAR
    EXTRN        HPIBLIB_ENTERA:NEAR
    EXTRN        HPIBLIB_SPOLL:NEAR
    EXTRN        HPIBLIB_PPOLL:NEAR
    EXTRN        HPIBLIB_RESET:NEAR
    EXTRN        HPIBLIB_MATCH:NEAR
    EXTRN        HPIBLIB_LOCAL:NEAR
    EXTRN        HPIBLIB_IODMA:NEAR
    EXTRN        HPIBLIB_CLEAR:NEAR
    EXTRN        HPIBLIB_TERMREASON:NEAR

    PUBLIC        _IOABORT        ; Located at 2:0000h Type = 1
    PUBLIC        _IOCLEAR        ; Located at 2:001Dh Type = 1
    PUBLIC        _IOCONTROL        ; Located at 2:003Ah Type = 1
    PUBLIC        _IODMA            ; Located at 2:005Dh Type = 1
    PUBLIC        _IOENTER        ; Located at 2:0080h Type = 1
    PUBLIC        _IOENTERA        ; Located at 2:00A8h Type = 1
    PUBLIC        _IOENTERAB        ; Located at 2:00E5h Type = 1
    PUBLIC        _IOENTERB        ; Located at 2:012Eh Type = 1
    PUBLIC        _IOENTERS        ; Located at 2:016Eh Type = 1
    PUBLIC        _IOEOI            ; Located at 2:01ABh Type = 1
    PUBLIC        _IOEOL            ; Located at 2:01CBh Type = 1
    PUBLIC        _IOGETTERM        ; Located at 2:01F1h Type = 1
    PUBLIC        _IOLLOCKOUT        ; Located at 2:0216h Type = 1
    PUBLIC        _IOLOCAL        ; Located at 2:0233h Type = 1
    PUBLIC        _IOMATCH        ; Located at 2:0250h Type = 1
    PUBLIC        _IOOUTPUT        ; Located at 2:0273h Type = 1
    PUBLIC        _IOOUTPUTA        ; Located at 2:02AAh Type = 1
    PUBLIC        _IOOUTPUTAB        ; Located at 2:02DAh Type = 1
    PUBLIC        _IOOUTPUTB        ; Located at 2:0313h Type = 1
    PUBLIC        _IOOUTPUTS        ; Located at 2:0346h Type = 1
    PUBLIC        _IOPPOLL        ; Located at 2:0376h Type = 1
    PUBLIC        _IOPPOLLC        ; Located at 2:039Fh Type = 1
    PUBLIC        _IOPPOLLU        ; Located at 2:03BFh Type = 1
    PUBLIC        _IOREMOTE        ; Located at 2:03DCh Type = 1
    PUBLIC        _IORESET        ; Located at 2:03F9h Type = 1
    PUBLIC        _IOSEND            ; Located at 2:0416h Type = 1
    PUBLIC        _IOSPOLL        ; Located at 2:0446h Type = 1
    PUBLIC        _IOSTATUS        ; Located at 2:046Bh Type = 1
    PUBLIC        _IOTIMEOUT        ; Located at 2:0493h Type = 1
    PUBLIC        _IOTRIGGER        ; Located at 2:04D0h Type = 1
    PUBLIC        _IOFASTOUT        ; Located at 2:04EDh Type = 1

    .286p
    .287

HPIB_TEXT    SEGMENT
    assume    cs:HPIB_TEXT




_IOABORT:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    assume    cs: IOGROUP
    call    HPIBLIB_IOABORT
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOCLEAR:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_CLEAR
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOCONTROL:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    mov    cx,[bp+00Ch]
    mov    dx,[bp+00Ah]
    call    HPIBLIB_CONTROL
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IODMA:    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Ah]
    mov    dx,[bp+00Ch]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_IODMA
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOENTER:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,0001h
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_ENTERA
    pop    si
    pop    di
    pop    ds
    mov    sp,bp
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOENTERA:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    bx,[bp+00Eh]
    mov    ds,word ptr [bp+010h]
    mov    cx,[bx]
    cmp    cx,+000h
    jl    $L1
    mov    di,[bp+00Ah]
    mov    ds,word ptr [bp+00Ch]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_ENTERA
    jmp    short $L2
    nop
$L1:    mov    ah,03h
$L2:    mov    bx,[bp+00Eh]
    mov    ds,word ptr [bp+010h]
    mov    [bx],cx
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOENTERAB:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ds,word ptr [bp+0010h]
    mov    bx,[bp+000Eh]
    mov    cx,[bx]
    cmp    cx,+000h
    jng    $L3
    mov    ds,word ptr [bp+000Ch]
    mov    di,[bp+000Ah]
    mov    ax,[bp+0006h]
    mov    bx,[bp+0008h]
    mov    dx,[bp+0012h]
    call    HPIBLIB_ENTERAB
    mov    ds,word ptr [bp+0010h]
    mov    di,[bp+000Eh]
    mov    [di],cx
    jmp    short $L4
    nop
$L3:    mov    ah,03h
$L4:    mov    al,ah
    xor    ah,ah
    pop    si
    pop    di
    pop    ds
    pop    bp
    ret    ; (retf)
_IOENTERB:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ds,word ptr [bp+010h]
    mov    bx,[bp+00Eh]
    mov    cx,[bx]
    cmp    cx,+000h
    jng    $L5
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    mov    dx,[bp+012h]
    call    HPIBLIB_ENTERB
    mov    ds,word ptr [bp+010h]
    mov    di,[bp+00Eh]
    mov    [di],cx
    jmp    short $L6
    nop
$L5:    mov    ah,03h
$L6:    mov    al,ah
    xor    ah,ah
    pop    si
    pop    di
    pop    ds
    pop    bp
    ret    ; (retf)
_IOENTERS:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ds,word ptr [bp+010h]
    mov    bx,[bp+00Eh]
    mov    cx,[bx]
    cmp    cx,+000h
    jl    $L7
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_ENTERS
    mov    ds,word ptr [bp+010h]
    mov    di,[bp+00Eh]
    mov    [di],cx
    jmp    short $L8
    nop
$L7:    mov    ah,03h
$L8:    mov    al,ah
    xor    ah,ah
    pop    si
    pop    di
    pop    ds
    pop    bp
    ret    ; (retf)
_IOEOI:    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    dx,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_EOICTL
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOEOL:    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Eh]
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_EOL
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOGETTERM:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_TERMREASON
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    [di],bx
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOLLOCKOUT:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_LOCKOUT
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOLOCAL:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_LOCAL
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOMATCH:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Ch]
    mov    dx,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_MATCH
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOOUTPUT:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    lea    di,[bp+00Ah]
    push    ss
    pop    ds
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Ch]
    mov    bx,[bp+00Eh]
    mov    ax,[bp+010h]
    call    $S9
    mov    [bp+00Ah],bx
    mov    [bp+00Ch],ax
    mov    cx,0001h
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_OUTPUTA
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOOUTPUTA:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Eh]
    cmp    cx,+000h
    jl    $L10
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_OUTPUTA
    jmp    short $L11
    nop
$L10:    mov    ah,03h
$L11:    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOOUTPUTAB:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+000Eh]
    cmp    cx,+000h
    jng    $L12
    mov    ds,word ptr [bp+000Ch]
    mov    di,[bp+000Ah]
    mov    ax,[bp+0006h]
    mov    bx,[bp+0008h]
    mov    dx,[bp+0010h]
    call    HPIBLIB_OUTPUTAB
    jmp    short $L13
    nop
$L12:    mov    ah,03h
$L13:    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOOUTPUTB:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Eh]
    cmp    cx,+000h
    jng    $L14
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    mov    dx,[bp+010h]
    call    HPIBLIB_OUTPUTB
    jmp    short $L15
    nop
$L14:    mov    ah,03h
$L15:    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOOUTPUTS:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Eh]
    cmp    cx,+000h
    jl    $L16
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_OUTPUTS
    jmp    short $L17
    nop
$L16:    mov    ah,03h
$L17:    mov    al,ah
    xor    ah,ah
    pop    si
    pop    di
    pop    ds
    pop    bp
    ret    ; (retf)
_IOPPOLL:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+0006h]
    mov    bx,[bp+0008h]
    call    HPIBLIB_PPOLL
    mov    di,[bp+000Ah]
    mov    ds,word ptr [bp+000Ch]
    mov    [di],bx
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOPPOLLC:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    dx,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_PPOLLC
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOPPOLLU:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_PPOLLU
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOREMOTE:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_REMOTE
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IORESET:
    push    bp
    mov    bp,sp


    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_RESET
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOSEND:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    cx,[bp+00Eh]
    cmp    cx,+000h
    jl    $L18
    mov    ds,word ptr [bp+00Ch]
    mov    di,[bp+00Ah]
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_SEND
    jmp    short $L19
    nop
$L18:    mov    ah,03h
$L19:    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOSPOLL:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_SPOLL
    mov    di,[bp+00Ah]
    mov    ds,word ptr [bp+00Ch]
    mov    [di],bx
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOSTATUS:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    mov    dx,[bp+00Ah]
    call    HPIBLIB_STATUS
    mov    di,[bp+00Ch]
    mov    ds,word ptr [bp+00Eh]
    mov    [di],bx
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOTIMEOUT:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    lea    di,[bp+00Ah]
    push    ss
    pop    ds
    push    ds
    mov    cx,[di+002h]
    mov    bx,[di+004h]
    mov    ax,[di+006h]
    call    $S9
    pop    ds
    mov    [di],bx
    mov    [di+002h],ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_TIMEOUT
    mov    [di],dx
    mov    [di+002h],cx
    cld
    pop    si
    pop    di
    pop    ds
    mov    sp,bp
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOTRIGGER:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    call    HPIBLIB_TRIGGER
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
_IOFASTOUT:
    push    bp
    mov    bp,sp
    push    ds
    push    di
    push    si
    mov    ax,seg DGROUP
    mov    es,ax
    mov    ax,[bp+006h]
    mov    bx,[bp+008h]
    mov    cx,[bp+00Ah]
    call    HPIBLIB_FASTOUT
    pop    si
    pop    di
    pop    ds
    pop    bp
    mov    al,ah
    xor    ah,ah
    ret    ; (retf)
$S9:    mov    dx,ax
    and    dx,7FFFh
    shr    dx,1
    shr    dx,1
    shr    dx,1
    shr    dx,1
    cmp    dx,07FFh
    jz    $L20
    cmp    dx,+000h
    jz    $L21
    jmp    short $L22
$L21:    jmp    $S23
$L22:    sub    dx,0380h
    js    $L24
    jmp    short $L25
$L24:    jmp    $S26
$L25:    jz    $L27
    jmp    short $L28
$L27:    jmp    $S29
$L28:    cmp    dx,00FFh
    jnl    $L30
    jmp    short $L31
$L30:    jmp    $S32
$L31:    xor    dh,dh
    push    dx
    mov    dx,ax
    and    dx,+00Fh
    clc
    rcl    cx,1
    rcl    bx,1
    rcl    dx,1
    rcl    cx,1
    rcl    bx,1
    rcl    dx,1
    rcl    cx,1
    rcl    bx,1
    rcl    dx,1
    shr    ch,1
    shr    ch,1
    shr    ch,1
    shr    ch,1
    cmp    ch,08h
    jl    $L33
    add    bx,+001h
    adc    dx,+000h
$L33:    pop    cx
    mov    ch,cl
    xor    cl,cl
    shr    cx,1
    or    dx,cx
    and    ah,80h
    or    dh,ah
    mov    cl,00h
    mov    ax,dx
    jmp    $S34
$L20:    test    al,0Fh
    jnz    $L35
    cmp    cx,+000h
    jnz    $L35
    cmp    bx,+000h
    jnz    $L35
    and    ax,8000h
    or    ax,7F80h
    mov    bx,0000h
    mov    cx,0002h
    jmp    short $S34
    nop
$L35:    mov    ax,7FFFh
    mov    bx,0FFFFh
    mov    cx,0002h
    jmp    short $S34
    nop
$S23:    test    al,0Fh
    jnz    $S32
    cmp    cx,+000h
    jnz    $S32
    cmp    bx,+000h
    jnz    $S32
    and    ax,8000h
    xor    bx,bx
    mov    cl,00h
    jmp    short $S34
    nop
$S26:    cmp    dx,-018h
    jl    $S32
$S29:    push    si
    mov    si,ax
    and    ax,000Fh
    or    ax,0010h
    shl    cx,1
    rcl    bx,1
    rcl    ax,1
    shl    cx,1
    rcl    bx,1
    rcl    ax,1
    shl    cx,1
    rcl    bx,1
    rcl    ax,1
$L37:    cmp    dx,+000h
    jz    $L36
    inc    dx
    shr    al,1
    rcr    bx,1
    rcr    cx,1
    jmp    short $L37
$L36:    test    bx,0001h
    jz    $L38
    add    bx,+002h
    adc    ax,0000h
$L38:    shr    ax,1
    rcr    bx,1
    and    si,8000h
    or    ax,si
    mov    cx,0002h
    pop    si
    jmp    short $S34
    nop
$S32:    mov    ax,7F80h
    mov    bx,0000h
    mov    cl,01h
$S34:    ret


HPIB_TEXT    ENDS

    END

Nije mi jasno gde se nalaze funkcije HPIBLIB_SEND, i druge. Drugo što mi nije jasno kako ova biblioteka radi bez fajla mclarge.ASM? Da li neko može da objasni šta je u pitanju?

poz.
 
Odgovor na temu

kajla
Milorad Janković
Beograd

Član broj: 445
Poruke: 909
*.152.EUnet.yu



+2 Profil

icon Re: .LIB fajl30.12.2003. u 10:35 - pre 247 meseci
Predpostavljam da ovaj progy nije dobro preveo ovaj .LIB fajl pa me zanima da li postoji još neki progy koji radi ovo. Neko je spomenuo Watcom C compiler ali ja na netu nigde nisam uspeo da nađem link koji radi, pa ako neko zna gde se ovo može naći nek postuje preko foruma.
Drugo što me zanima je kako da debugujem program koji koristi ovu biblioteku i da na taj način vidim kako rade funkcije ove biblioteke.(Ja treba svega dve funkcije iz ove biblioteke da prebacim da rade pod Windowsom) Probao sam sa Turbo Debuggerom za DOS ali nikako nemogu da nadjem gde se pozivaju ove funkcije. Ima li neko ideju za ovo?

poz.
 
Odgovor na temu

[es] :: C/C++ programiranje :: .LIB fajl

[ Pregleda: 3007 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.