razno.315djelovic,
-> #314, bojt> U stvari, možda da izložim svoj problem ovde, možda mi neko
> pomogne. Naime, iz odredjenih razloga (čije bi izlaganje zauzelo
> previše prostora pa ću ih preskočiti), meni je neophodno da pre
> alociranja memorije sa malloc znam koliko maksimalno memorije mogu
> da rezervišem, i to tako da pri tome ne korisitim kombinacije
> malloc/free.
Koji kompajler koristiš? Trebalo bi da postoji funkcija koja radi taj
posao, čak i na 386 kompajlerima.
razno.316.bale.,
-> #313, lovro> Zna li neko koji bajt treba poslati na serijski port da bi
> se izmedju neka dva pina stvorio napon.
RS232 standard propisuje da logičku jedinicu predstavlja napon od -3 V
do -15 V, a logičku nulu od 3 V do 15 V (ako nisam obrnuo...). Pošto je
port serijski, imaš samo dva pina za podatke: TX (slanje) i RX
(primanje). Zatim, postoji pin za masu, GND valjda. E, između TX i GND
će postojati napon koji zavisi od toga šta šalješ na port, jer sve ide
bit po bit (plus parnost i stop-bitovi) određenom brzinom.
> I obrnuto, koji bajt vraca port, ako se nadje napon na nekim pinovima.
>
> Lovro
Gde da vrati port?
razno.317dr.grba,
-> #312, eotek>> > komplikovan za moj ukus.
>>
>> evo ga
Hvala.
razno.318mjova,
-> #314, bojt> Okačiću uz poruku aj malloc.obj pa ako neko može da mi
> pomogne, bio bih mu veoma zahvalan ;)
izgleda da ne koristiš BC jer uz njega dobijaš i source, pa ti obj2asm
nije ni potreban ;). dalje, pogledaj imaš li možda fn coreleft i
farcoreleft (zavisno od potrebe - near oli far heap).
koji je prevodilac? MSC?
razno.319djelovic,
-> #318, mjova> koji je prevodilac? MSC?
Mislim da Bojt koristi neki od 386 kompajlera, koji su najčešće MSC
kompatibilni. Dakle, ako neki MSC-ovac zna...
razno.320bojt,
-> #315, djelovic>> Koji kompajler koristiš? Trebalo bi da postoji funkcija koja
>> radi taj posao, čak i na 386 kompajlerima.
Naravno da postoji (kako bi inače radio ;) ), samo što ja ne znam
kako se zove. Kompajler je NDP C 386, no nema veze, ako neko zna
kako bi se to radilo na, npr, WATCOM C-u i to bi mi pomoglo.
razno.321djelovic,
-> #320, bojt> Naravno da postoji (kako bi inače radio ;) ), samo što ja ne znam
> kako se zove. Kompajler je NDP C 386, no nema veze, ako neko zna
> kako bi se to radilo na, npr, WATCOM C-u i to bi mi pomoglo.
Pa pogledaj zaglavlje MEM.H. Ne verujem da ćeš imati problema da nađeš
potrebnu funkciju.
razno.322djelovic,
-> #321, djelovic> Pa pogledaj zaglavlje MEM.H. Ne verujem da ćeš imati problema da nađeš
> potrebnu funkciju.
Malo sam gledao malloc.asm. Probaj funkcije get_free i _msize.
razno.323lovro,
-> #316, .bale.=- ce postojati napon koji zavisi od toga sta saljes na port,
=- jer sve ide bit po bit (plus parnost i stop-bitovi)
=- odredenom brzinom.
Hm, a da li je kod paralelnog drugacije (a pretpostavljam
da jeste, sudeci po imenu)?
=-
=- > I obrnuto, koji bajt vraca port, ako se nadje napon na neki
=-
=- Gde da vrati port?
Ma mislio sam na to koji se broj pojavi na portu u
zavisnosti od napona koji saljes na njega.
Izgleda da bi mi vise odgovarao paralelni. Inace, ne zamerite
jer sam apsolutni pocetnik, mada zelim da uradim nesto:
Najprostije receno, da svetli mala sijalica kada na neki port
posaljem neki bajt. Tranzistor i baterija ce, mislim, biti
dovoljni.
Lovro
razno.324bulaja,
-> #314, bojt│meni je neophodno da pre alociranja memorije sa malloc znam koliko
│maksimalno memorije mogu da rezervišem, i to tako da pri tome ne
│korisitim kombinacije malloc/free.
└───
Ako sam dobro shvatio, treba ti da znaš koja je dužina najvećeg
kontinualnog bloka memorije? Imas DOS funkciju 48h koja služi za
alokaciju memorije (valjda je i malloc() koristi), koja kad joj
tražiš nenormalno veliku količinu memorije (npr. 64K paragrafa)
vraća veličinu najvećeg slobodnog bloka. Dakle:
input:
AH = 48H
BX = 0ffffH
output:
BX = largest available memory block size
Ali pošto pretpostavljam da koristiš neki DOS extender (Phar Lap?)
pogledaj neku od njegovih funkcija za alokaciju memorije, jer i one
vraćaju veličinu najvećeg slobodnog bloka memorije (opis je iz RB
Interrupt liste):
--------E-212537----------------------------
INT 21 P - Phar Lap 386/DOS-Ext VMM v3.0 - ALLOCATE DOS MEMORY ABOVE DOS BUFFER
AX = 2537h
BX = number of paragraphs to allocate
Return: CF clear if successful
AX = real-mode segment of allocated block
CF set on error
AX = error code
07h MS-DOS memory chain corrupted
08h insufficient low memory
BX = size in paragraphs of largest free block
SeeAlso: AH=48h
--------E-2125C0-----------------------------
INT 21 P - Phar Lap 386/DOS-Extender - ALLOCATE MS-DOS MEMORY BLOCK
AX = 25C0h
BX = number of 16-byte paragraphs of MS-DOS memory requested
Return: CF clear if successful
AX = real-mode paragraph address of memory
CF set on error
AX = error code
07h MS-DOS memory control blocks destroyed
08h insufficient memory
BX = size in paragraphs of largest available memory block
SeeAlso: AX=25C1h,AX=25C2h
razno.325bulaja,
-> #320, bojt│Naravno da postoji (kako bi inače radio ;) ), samo što ja ne znam
│kako se zove. Kompajler je NDP C 386, no nema veze, ako neko zna
│kako bi se to radilo na, npr, WATCOM C-u i to bi mi pomoglo.
└───
Ako već koristiš Watcom, u okviru njega se dobija dosta dobar
dekompajler OBJ datoteka, meni je bio bolji od obj2asm.
razno.326bojt,
-> #322, djelovic>> Malo sam gledao malloc.asm. Probaj funkcije get_free i _msize.
Sa njima nije išlo al' našao sam (buljeći u LIB) ono što mi treba:
zove se maxmem ;)
razno.327mstanic,
Da li bi neko mogao da mi objasni šta je to "metakompajler"
i kako radi ? I da li postoji i "metaasembler"
razno.328bearboy,
-> #313, lovro> Zna li neko koji bajt treba poslati na serijski port da bi
> se izmedju neka dva pina stvorio napon.
>
> I obrnuto, koji bajt vraca port, ako se nadje napon na nekim
> pinovima.
Pogledaj u HELPPC-u, piše sve detaljno.
razno.329.bale.,
-> #323, lovro> Hm, a da li je kod paralelnog drugacije (a pretpostavljam
> da jeste, sudeci po imenu)?
Paralelni ima 8 umesto 1 bita, i drugačiju kontrolnu logiku.
> Ma mislio sam na to koji se broj pojavi na portu u
> zavisnosti od napona koji saljes na njega.
> Izgleda da bi mi vise odgovarao paralelni. Inace, ne zamerite
> jer sam apsolutni pocetnik, mada zelim da uradim nesto:
> Najprostije receno, da svetli mala sijalica kada na neki port
> posaljem neki bajt. Tranzistor i baterija ce, mislim, biti
> dovoljni.
Trebalo bi da može na mišiće... Pogledaj, na primer, onaj TECH Help!,
mislim da ga ima i na Sezamu.
razno.330.bale.,
-> #329, .bale.ŮŢParalelni ima 8 umesto 1 bita, i drugačiju kontrolnu logiku.
Ovo je samo figurativno, može i više :)
Regards from .bale. !
#:*)+-<
razno.331lovro,
-> #329, .bale.=- Trebalo bi da moze na misice... Pogledaj, na primer, onaj
=- TECH Help!, mislim da ga ima i na Sezamu.
Pogledao sam, hvala. Jos samo ne pise da li je to napon
jednosmerne ili naizmenicne struje, kao ni to koji pin je, u
stvari, 'nula'.
Lovro
razno.332niklaus,
-> #324, bulaja(:> │ meni je neophodno da pre alociranja memorije sa malloc znam
(:> │ koliko maksimalno memorije mogu da rezervišem, i to tako da pri
(:> │ tome ne korisitim kombinacije malloc/free.
(:> └───
(:> Ako sam dobro shvatio, treba ti da znaš koja je dužina najvećeg
(:> kontinualnog bloka memorije?
Evo mog prvog programčića, kojeg sam iskompajlirao sa WatcomC-om
(alocira memoriju preko blokova specifirane dužine):
┌─
│ #include <malloc.h>
│
│ main()
│ š
│ void *p;
│ unsigned long i;
│ long size;
│
│ printf("ĐnUnesi velicinu bloka ŠbytesĆ: ");
│ scanf("%ld",&size);
│ while (1)
│ š
│ p = malloc(size);
│ if (p==NULL) break;
│ i+=size;
│ ć
│ printf("Đnmalocirana memorija: %ld bytesĐn", i);
│ printf(" Š %ld Kb ĆĐn", i/1024);
│ ć
│
└─
(:niklaus:)
razno.333dr.grba,
-> #317, dr.grba>> >> > komplikovan za moj ukus.
>> >>
>> >> evo ga
>>
>> Hvala.
OBJ2ASM mi zaledi mašinu u svim uslovima ):
razno.334kriss,
-> #333, dr.grba˙˙ OBJ2ASM mi zaledi mašinu u svim uslovima ):
Ti si valjda drugi koji se žali na isti. (?) Međutim, meni *ne
zaledi* mašinu! žak štaviše, daje lepe .asm-čiće :) Dakle, nije
greška u programu, već se najverovatnije ne trpi sa nečim ...
razno.335jpavlov,
U računarima broj 94 strana 6 u rubrici "Šta ima novo" izašao je sledeći
tekst:
OBUKA PROGRAMERA - MICROSOFT UNIVERZITET: 1000 dolara na sat
Nedavno je u Hongkongu osnovan "Microsoft Univesity", na kome će se
organizovati intenzivni kursevi za proofesionalne programere i ljude koji
se bave podrškom sistema...
........................................................................
korisna adresa: Sasha Skinner (Microsoft): tel +852-804-4261
Mog prijatelja zanima ADRESA NA KOJU BI MOGAO DA PIŠE, pa ako neko zna
bio bih mu zahvalan ako ostavi adresu ovde u konferenciji.
razno.336eotek,
-> #334, kriss> ˙˙ OBJ2ASM mi zaledi masinu u svim uslovima ):
>
> Ti si valjda drugi koji se zali na isti. (?) Medutim, meni *ne
> zaledi* masinu! Cak stavise, daje lepe .asm-cice :) Dakle, nije
radi se u stvari o razlicitim "masinama", najverovatnije
dr.grba i bojt imaju sporije masine, pa, dok obj2asm procesira
kod .obj fajla (nakon prvih pet-sest redova koje ispise),
dakle pre nego sto nastavi, protekne neuobicajeno dugo vreme.
prema tome - sacekati.
drugo: u prilogu drugacija verzija pod nazivom o.exe
(bez optimizacije koda, dakle duza), ali zato moze da radi sa
vecim .obj fajlovima bez memory crashhhhes.
o.ziprazno.337bojt,
-> #336, eotek>> >> >> ˙˙ OBJ2ASM mi zaledi masinu u svim uslovima ):
>> >> Ti si valjda drugi koji se zali na isti. (?) Medutim, meni *ne
>> >> zaledi* masinu! Cak stavise, daje lepe .asm-cice :) Dakle, nije
>> radi se u stvari o razlicitim "masinama", najverovatnije
>> dr.grba i bojt imaju sporije masine, pa, dok obj2asm
>> procesira kod .obj fajla (nakon prvih pet-sest redova koje
>> ispise), dakle pre nego sto nastavi, protekne neuobicajeno
>> dugo vreme. prema tome - sacekati.
Ne znam za dr.grbu al' ja imam VLB DX2/66. žak sam i čekao jedno
10ak minuta (zazvonio mi telefon baš kad se OBJ zaglavio). Probao
sam ga i na još dve 486/33 i jednoj 486/50 i ponaša se isto. Sad,
ako treba nabaviti Pentium da bi to proradilo za ljudskoga veka,
će nabavime. ;)
razno.338bulaja,
-> #336, eotek│radi se u stvari o razlicitim "masinama", najverovatnije dr.grba i
│bojt imaju sporije masine,
└───
:)))) Sumnjam da Bojt ima sporiju masinu, ako vec nije uzeo prvog
Pentiuma u gradu, zabrinucu se za njega :).
razno.339dr.grba,
-> #337, bojt>> Ne znam za dr.grbu al' ja imam VLB DX2/66. žak sam i čekao jedno
>> 10ak minuta (zazvonio mi telefon baš kad se OBJ zaglavio). Probao
>> sam ga i na još dve 486/33 i jednoj 486/50 i ponaša se isto. Sad,
Kod mene tunjavi 286. Kad budem raspoložen, daću mu pola sata ili sat ako ima
neki dobar film (: Javiću ishod.
razno.340djelovic,
Evo jednog zgodnog programčeta za sve čije aplikacije rade pod mrežom:
SHARECPY
========
Ovaj program vam dopušta da iskopirate fajlove iako ih možda za to
vreme koristi neka druga aplikacija. Pri tom, on prvo sve fajlove koje
treba kopirati otvori u SHARED modu i zaključa ih, pa tek onda počinje sa
kopiranjem tako da se pravi potpuno ažurna kopija stanja u kome su se te
datoteke nalazile.
Sintaksa: SHARECPY datoteke direktorijum
Primer: SHARECPY *.dbf *.ntx c:\tmp
Program sam inače napravio da bi si uštedeo obilazak trospratne zgrade
i nešto glasnih žica ("Hoćete li molim vas da izađete iz aplikacije na pet
minuta?") :) svaki put kada mi treba da napravim kopiju podataka ili da
dodam neku izmenu.
Meri nju jir!
sharecpy.ziprazno.341kriss,
-> #339, dr.grba˙˙ Kod mene tunjavi 286. Kad budem raspoložen, daću mu pola sata
˙˙ ili sat ako ima neki dobar film (: Javiću ishod.
To je ono za OBJ2ASM :)
Mašina 386/40, a u memoriji se nalazi:
Upper:
RAMDRIVE
STACKER
GMOUSE
C:ĐPCKWIKĐSUPERPCK.EXE /S:1024 /O+ /D-
VESA C:ĐUTILITYĐVESA.EXE
DOSEDIT C:ĐUTILITYĐDOSEDIT.COM
NNANSI D
SNIPPER
SKY 2
DOSKEY /BUFSIZE=1024
BREAKL E:ĐBATĐBREAKL.COM
& qemm 6.02 sve to drži na okupu :) (ma kakva sedmica, šta će mi! :)
vreme:
oko 2 sekunde za obj fajl veličine cca. 2300 bajtova, i to sa sve
smeštanjem u fajl (obj2asm trtmrt > trtmr.asm).
P.S. I to sve radi iz sor shell-a (dos)!! Pa ko ne veruje, može
da dođe na simpatičnu kirby ;> prezentaciju :)
P.S.2. Ako je nekom baš nešto hitno, a ne može da asm-uje obj,
neka mi baci na mail i dobija asm u roku od 12 sati :) Al samo
najvažnije primam :)
razno.342rakac,
Zanima me da li neko ima specifikaciju Hudson i JAM formata baza poruka za
Remote Access (2.00/2.01) sa nekim objasnjenjima oko svrhe i koristnja ^A
kludge lines-a.Potrebni su mi radi pisanja Mail Door-a za Remote Access koji za
razliku od ovih koji trenutno postoje na nasim prostorima raditi normalno!
Unapred zahvalan,
Rakac
P.S. Svim korisnicima zelim srecnu Novu godinu !
razno.343mstanic,
-> #327, mstanic>> Da li bi neko mogao da mi objasni šta je to
>> "metakompajler" i kako radi ? I da li postoji i
>> "metaasembler"
Zar je moguće da na Sezamu niko ne zna?
razno.344dejanr,
-> #343, mstanic>> Da li bi neko mogao da mi objasni šta je to
>> "metakompajler" i kako radi ? I da li postoji i
>> "metaasembler"
Obe reči mogu da znače dosta toga. "Meta" se odnosi na dve generacije
stvari - jedna generacija je "nešto", a viša, meta generacija je ono
pomoću koga se to "nešto" definiše. Recimo, programski jezik i jezik
kojim se definiše programski jezik. Znači, meta kompajler bi bio nešto
što bi, recimo nekom vrstom makro procesora, obezbedilo definisanje
samog jezika koji se posle prevodi. Takve usluge obezbeđuju mnogi
savremeni kompajleri, do nekih granica. Ne znam da li su te granice
takve da bi se oni smeli nazvati "meta-kompajlerima" ili ne.
Postoje i metaasembleri, na istu logiku.
Bojim se da ćeš za detalje morati da pitaš nekoga ko je skorije polagao
Sistemsko programiranje, ja sam to poodavno učio pa se pozaboravljalo.
Uglavnom, zadaci iz meta-nečega su obično smatrani za najteže ;)
razno.345mzdravkovic,
9š Da li neko moze da mi preporuci neki program koji radi na principu
screen saver-a, i koji ce nakon odredjenog vremena (mirovanja racunara)
startovati neki odredjeni com ili exe program .
razno.346djelovic,
-> #345, mzdravkovic> Da li neko moze da mi preporuci neki program koji radi na principu
> screen saver-a, i koji ce nakon odredjenog vremena (mirovanja racunara)
> startovati neki odredjeni com ili exe program.
Potraži u MISC ili UTILITY direktorijumima, tamo sam video neki takav
program.
razno.347eotek,
-> #337, bojt>>> >> >> ˙˙ OBJ2ASM mi zaledi masinu u svim uslovima ):
well, sad se i meni zaglavio ;)
nakon malo eksperimentisanja nekako mi se cini da ne podnosi
optimizovan kod. prema tome, sorry za "ponidashtavanje" masina.
inace do sada najbolji rezultat: .obj od 22350 u .asm od
113211 kb.
ovo mu dodje i kao neki hint za zastitu, prema tome jedan
/Os prekidac kod kompajliranja i jedno exepack (protiv sourcerna)
mogu da ucine nesto (do sledeceg razbijaca, koji se nece zagla-
vljivati ni u najtesnjem kodu ;).
etsc
--> can't have them all ...
razno.348bulaja,
-> #342, rakac│Zanima me da li neko ima specifikaciju Hudson i JAM formata
│baza poruka za Remote Access (2.00/2.01)
└───
Pogledaj file struct.200 (na Sezamu se nalazi u ra200.a02),
trebalo bi da ima opis strukure za sve datoteke koje RA koristi.
razno.349rakac,
-> #348, bulajaDa tamo ima nesto o strukturi Hudson formata, ali nema nista o JAM-u i nema
nikakvih objasnjenja !
U svakom slucaju hvala ti !
Pozdrav,
Rakac
razno.350mdimitrijevic,
Za sve one koje interesuje programiranje DMA. Neka pogledaju fajl SBF3.ZIP
na Imtelu i drugim BBS-ovima. Taj fajl sluzi za programiranje Sound Blaster
karti ali u njemu se nalazi i datoteka koja sluzi za rad sa DMA i u ASM-u je.
Pozdrav,
Marjan Dimitrijevic
razno.351niklaus,
-> #347, eotek(:> inace do sada najbolji rezultat: .obj od 22350 u .asm od
(:> 113211 kb.
Vidim li dobro, ili si greškom napisao 113 MEGAbajta?! (8
(:> ovo mu dodje i kao neki hint za zastitu, prema tome jedan
(:> /Os prekidac kod kompajliranja i jedno exepack (protiv sourcerna)
Koju optimizaciju radi "s"?
Može li neko da mi objasni logiku EXEcutable kompresora?
(:niklaus:)
razno.352eotek,
-> #351, niklaus> (:> 113211 kb.
113,211 kb
> Koju optimizaciju radi "s"?
na velicinu fajla
> Moze li neko da mi objasni logiku EXEcutable kompresora?
otprilike: ako u .exe napr. ima upisanih 40 istih znakova
zaredom (najcesce nule), on napise nesto u stilu 40 x 0 i
- pretpostavljam - upise neku funkciju koja ce taj "izraz"
obraditi, sto ponekad moze imati kontra efekat, pa da konacna
verzija bude duza.
razno.353mzdravkovic,
-> #346, djelovic>> > Da li neko moze da mi preporuci neki program koji radi na
>> > principu screen saver-a, i koji ce nakon odredjenog vremena
>> > (mirovanja racunara) startovati neki odredjeni com ili exe
>> program.
>>
>> Potrazi u MISC ili UTILITY direktorijumima, tamo sam video neki
>> takav program.
Da, u UTILITY direktorijumu ima VSAVE. Medjutim, on samo zacrni
ekran, a meni bi trebalo da startuje neki com, exe ili bat program .
razno.354bulaja,
**** new file ****
R:\IBMPC\UTILITY\*.*
----------------------
ngp31 zip 11317 NG Print v3.1: stampanje Norton Guides (NG) datoteka
This program "Prints" Norton Guide databases, and was written
after much questions about Printing Norton Guides, especially by the
Clipper 5.01 users, whose documentation came fully in NG files. It will
print any Norton Guide (.NG) file, if not, please do not hesitate to
contact me as to work out what the problem is.
razno.355bearboy,
-> #351, niklaus> Može li neko da mi objasni logiku EXEcutable kompresora?
Very smiple :) Kompresija je klasicna, a dekompresija se vrsi u memoriju,
i jumpne se na pocetak otpakovanog paketa. Otprilike :)
razno.356niklaus,
-> #350, mdimitrijevic(:> Za sve one koje interesuje programiranje DMA. Neka pogledaju fajl
(:> SBF3.ZIP na Imtelu i drugim BBS-ovima. Taj fajl sluzi za
(:> programiranje Sound Blaster karti ali u njemu se nalazi i datoteka
(:> koja sluzi za rad sa DMA i u ASM-u je.
Hvala na pointeru, nisam ni primetio da se i to nalazi u toj arhivi, odn.
da sam imao takvo nešto kod sebe. Malo sam se promrdao, pa sam i našao ponešto:
WHAT IS D.M.A.?
Consider the problem of moving a large amount of data to or from an I/O
device. This requirment is commonly encountered in the operation of many
peripheral devices (disk drives, for example) that are constantly moving
large amounts of data into and out of memory. An ovious way of making
the transfer would be a short program which for an input operation might
read a byte from the I/O port into the accumulator (AX register) of the
8088 processor, and then move the data from the AX register to a memory
location to store it. In addition, we have to keep track of the memory
locations where the data is going. By far the simplest way of handling
this is to lay the data down in continuous blocks locations within a block
of memory, using one of the processor's index registers to control the
address. Each time a byte is transfered, the index register(usually the
DI or Destination Index register) is incremented or decremented to point
to the next location. A typical example assembly language program to do
this might be as follows:
-----------------------------------------------------------------------
SETUP: MOV AX,SEGMENT ; setup segment of memory transfer
MOV DS,AX
MOV DI,OFFSET ; setup start address within segment
MOV CX,COUNT ; setup # of bytes
MOV DX,IOPORT ; DX = I/O port address
READ: IN AL,DX ; read byte from I/O port (8)
MOV ŠDIĆ,al ; store data (10)
INC DI ; increment index (2)
LOOP READ ; continue till CX = 0 (17)
CONT: ...... ; yes, continue with program
------------------------------------------------------------------------
The opposite oeration of transfering data from memory to an I/O port is
essentually similar. The numbers in parentheses following the READ: label
are the number if processor clock cycles required to execute each instruction,
with a total of 37 processor clock cycles required to execute the entire
read segment. On a standard IBM PC, the clock runs at 4.77 MHz, corresponding
to a clock cycle period of 210 nanoseconds, and the loop takes 37 cycles or
7.8 microseconds to execute. This would be the fastest we could transfer each
byte. Note also the following:
1. The processor is tied up 100% of the time in transferring data; it cannot
execute any other part of the program while the transfer is underway.
2. The rate at which the data is transferred is controlled by the processor
clock and may not correspond to the rate at which the I/O device wants
to handle the data. This can be circumvented by polling the I/O device
to see if it is ready, or having the I/O device generate a hardware
interrupt; but either of these adds further code to the routine which
will slows down the transfer rate even further. In practice because of
all the stacking of registers that occurs when a hardware intrrupt is
processed, it is impossible to handle data transfers rates much above
5 to 10 Khz using interrupts.
3. If the processor has to handle an interrupt from one device while it is
involved in handling a data transfer to another device then the delays
involved may cause it to miss data, or at least will cause the
discontinuitly in the data flow.
It would be nice to have a way of transferring data without involving the
processor so it can be freed up as much as possible to attend to execution
of the program. It wouldalso be a plus if we could speed the transfer rate
up and be able to control the rate easily. Since all we want to do is move
a byte directly to/from an I/O port from/to memory without any sort of
processing on the way, we are better off not using the processor at all, but
instead proving special hardware that will accomplish this commonly required
task. The process of connecting an I/O device directly to memory is known
as Direct Memory Access (D.M.A.), and the hardware that controls this process
is known as the D.M.A. controller, which the case of the IBM PC is the function
of the 8237 chip on the system board.
THE MECHANICS OF A D.M.A. TRANSFER
What happens when a device wants to transfer data to/from memory? The first
step is for the device to send a signal known as a D.M.A. REQUEST (DREQ for
short) to the D.M.A. controller. The processor normally has control of the
computer's address and data busses as well as control signals such as memory
read/write (MEMR & MEMW) and I/O read/write (IOR & IOW) lines. To accomplish
a D.M.A. transfer, control of these lines must be passed to the D.M.A.
controllers. On receipt of the DREQ, the D.M.A. controller in turn issues
a HOLD REQUEST to the processor. As soon as it is able to, when it has
partially completed the instruction it is currently executing, the processor
issues a HOLD ACKNOWLEDGE signal to the D.M.A. controller, and simultaneously
disconnects itself from the address, data and control busses. This process
is technically known as "TRI-STATING" as the connections to the processor
assume a third, open circut state, compared to thier usual binary states of
1's and 0's or highs and lows. On receipt of the HOLD ACKNOWLEDGE, the D.M.A.
controller goes to work. It realeases its own connections to the address and
control busses from thier tristate condition, asserting a valid memory address
from an internal counter and then issues a D.M.A. ACKNOWLEDGE (DACK) signal
to the I/O device followed by a simultaneous IOW and MEMR for data outpu, or
IOR and MEMW for input. The perepheral in turn responds to the DACK and IOR
or IOW signals by placing or recieving data on the data buss effecting a
transfer directly to/from meory. On completion of the MEMR/IOW or MEMW/IOW
from the D.M.A. controller, the controller removes DACK, releases HOLD
REQUEST, tristates its own address and control lines, and increments or
decrements its internal address counter ready for the next transfer. The
processor in turn regains control of the busses, continuing execution execution
of the next instruction. From the assertion of the DREQ to completion of the
cycle takes about 2 to 5 microseconds, depending on the length of the
instruction that the processor happens to be engaged in on receipt of the
DREQ. The accual amount of time between instructions that the processor
loses the buss to the D.M.A. controler is even less, about 1 microsecond.
The effect on program execution is minimal even when transferring data at
very high rates which can approach 350,000 bytes/sec on the IBM PC. To
prevent the D.M.A. controller from 'hogging' the busses if the DREQ is
held constantly high, the controller always allows the processor to perform
at least part of an instruction between each D.M.A. transfer, so that even
operating "flat-out", D.M.A. cannot grab much more than 30% of the buss
bandwidth.
In order to perform D.M.A. operations, the perpheral must include hardware
that generates the DREQ and responds to the DACK. The D.M.A. controller, on
the other hand, is a system component that is a standard feature of the IBM PC
architecture. Most compatibles also include the D.M.A. controller, with the
execption of the TI Professional.
It is important to appreciate that the D.M.A. controller sets the dunamics
of the D.M.A. transfer, that there is nothing in the peripheral I/O device
that can alter the maximum speed at which the controller will handle data.
There are some surpising side effects of this, in particular the IBM PC/AT,
which is genrally 3 times faster than a standard PC or PC/XT, is actually
slower at D.M.A. transfers because its controller operates at 3 MHz instead
of 4.77 MHz on the PC. On the other hand, it can also perform 16-bit
transfers on its extended data buss, as well as 8-bit transfers on PC
compatible section of its data buss which with the right hardware can make
up for the slower transfer rate. Although they can operate in D.M.A. mode
in the PC/AT, many boards perform word (16-bit) transfers by making two
sequential byte (8-bit) and so are unable to take advantage of the AT's
extended buss; this being the price paid for PC compatibility.
D.M.A. LEVELS
Although we have discussed the operation of a single device using the D.M.A.,
it is custom to cater to the needs of several devices by providing several
D.M.A. channels, each one dedicated to a peticualar device. The 8237 provides
four seperate D.M.A. channels, known as levels 0 through 3. Correspondingly,
there are 4 D.M.A. request lines, DACK 0-3. These lines are prioritized
according to two possible protocols set by a bit in the controller command
register, either fixed priority, either fixed priority where lower D.M.A.
levels have higher priority than higher levels, or rotating priority, where
each level takes turn at having the highest priority. The PC BIOS sets the
8237 to operate in fixed priority mode on power up, and it is inadvisable
to change this. The PC/AT adds to the number of D.M.A. channels by using
two 8237 D.M.A. controllers. Since one channel is used to cascade one
controller into the other, this is acually adds an additional 3 channels,
all of which appears on the 16-bit additional expanision connectors of the
PC/AT and dedicated to 16-bit transfers.
Apart from its uses for high speed data transfer, the D.M.A. controller
includes counter hardware that cycles through the memory addresses, so as a
byproduct of its design, it can also be used to refresh dynamic memory, saving
the cost of a separate memory refresh controller. This is what IBM chose to
do in the PC, and on all models Level 0 performs this function with the
DREQ being driven from counter 1 of the 8253 timer at a 15 microsecond
intervals. The complete assignmentes for the levels are as follows.
For all machines, these levels are capable of 8-bit transfers:
Level 0 - Memory Refresh
Level 1 - Not assigned and usally avalible, Certain local
area network interfaces may use this level
Level 2 - Used by the floppy disk controller and not free
for any other purpose
Level 3 - May be used by the hard disk controller on some
PC/XT models. On floppy disk only, PC/AT and some
PC/XT machines, this level is free for other uses.
For the PC/AT only, these levels are capable of 16-bit transfers:
Level 4 - used for cascading
Level 5-7 - Avalaible on AT special connections
(:niklaus:)
ps U sledećem broju, kako se ta čuda (DMA kanali) i programiraju...
pps Svima kojima smetaju ovako dugačke poruke (čitaj: ipak obilate _korisnim_
podacima), neka udare 'resign' na temu, jer će toga biti još... (:
ppps Nadam se i (mojih) programa.
razno.357dragisha,
-> #340, djelovic-> Sintaksa: SHARECPY datoteke direktorijum
->
-> Primer: SHARECPY *.dbf *.ntx c:\tmp
Izgleda baš 4Dos-ovski:).
Evo i od mene jedno programče, napravljeno za potrebe jorad-a, the
clipper programera:) i trebalo bi da omogućava jedinstvenu numeričku
identifikaciju za svaki od nodova na kojima se program vrti. (Ko razumije
shvatiće:). Poziva se iz Clipper programa kao DOS externi program i vraća
exit code jednak toj identifikaciji. Zahtijeva podešavanje jedne linije u
okviru .RED fajla.
Nadam se da je jasno:).
--
[In case of dire emergency read manual.]
identify.ziprazno.358dragisha,
-> #343, mstanic-> >> Da li bi neko mogao da mi objasni šta je to
-> >> "metakompajler" i kako radi ? I da li postoji i
-> >> "metaasembler"
->
-> Zar je moguće da na Sezamu niko ne zna?
Ne mogu baš da se sjetim definicija, ali evo malo priče.
Poanta je da se definiše jezik za definisanje jezika (ha:), onda tim
jezikom opiše ciljni jezik i tim generatorom (metakompajlerom) to obradi i
iz toga generiše sors kompajlera za taj ciljni jezik. Imam jedan takav
metakompajler, u C i M2 sorsu i može da generiše kompajlere u C i M2. Ima i
definicije nekoliko jezika, a dovukao sam i neki m2c, generisani prevodilac
sa M2 na C. Tim m2c su i pravili C verziju:). Mali problem je što fale neki
parčići, a nikako da stignem da to dopunim. Ono što sam probao (neke
generalne stvari + REX) djeluje fino. REX je inače nešto kao LEX ali je
mnogo složeniji i moćniji.
BTW, to što imam je freeware do generatora back end-ova (generatori
izlaznog koda), a za to autor traži 500 DEM. Samo što ne znam u kakvom je
to sada stanju jer su moje informacije i fajlovi stari nekoliko godina. Oni
su radili na SUN-u, ali sam nedavno našao podatak o tome da već radi na
djgpp (GNU C++ za PC).
Literatura... Bio je neki Crafting a Compiler ili slično prije par godina
u prodaji.
--
[If code was meant to be portable, it'd have wheels...]
razno.359pedjak,
-> #341, kriss> P.S.2. Ako je nekom baš nešto hitno, a ne može da asm-uje obj,
> neka mi baci na mail i dobija asm u roku od 12 sati :) Al samo
> najvažnije primam :)
Meni se desilo par puta da obj2asm jednostavno odbije da asm-uje
neke obj fajlove, a oni su savršeno ispravni, čak se distibuiraju u
nekim SW paketima. Ima li leka ? ;)
razno.360bstevan,
Zdravo !
Interesuje me u vezi Visual Basic for Win V 3.0,
koliko zauzima prostora na disku pri instalaciji, koji
je Windows verzija potrebna ja imam staru 2.1.
Dali trebam da predjem na 3.0 ili 3.1 ?
pozdravÚ,
BSTEVAN
razno.361markom,
-> #360, bstevan■■■ Interesuje me u vezi Visual Basic for Win V 3.0,
■■■ koliko zauzima prostora na disku pri instalaciji, koji
■■■ je Windows verzija potrebna ja imam staru 2.1.
■■■ Dali trebam da predjem na 3.0 ili 3.1 ?
Da bi radi sve što može, treba ti Win 3.1, sa 3.0. ne možeš da koristiš OLE 2.0
Pri instalaciji zauzima između 20 i 25 Mb, puna instalacija, s tim da meni zau-
zima manje od 15 ;)
Marko
P.S. Gde nađe Win 2.1, majke ti ?
razno.362mstanic,
-> #358, dragisha>> BTW, to što imam je freeware do generatora back end-ova
>> (generatori izlaznog koda), a za to autor traži 500 DEM.
Shvatio sam, a to sam i pretpostavljao. Hvala tebi i
Dejanr-u na objašnjenju.
Imam neki metakompajler (i metaasembler, mislim) u sorsu, a
bez neke dokumentacije, pa rekoh da malo proučim o čemu je
reč kad budem imao vremena.
razno.363mstanic,
-> #356, niklaus>> pps Svima kojima smetaju ovako dugačke poruke (čitaj:
>> ipak obilate _korisnim_ podacima), neka udare 'resign' na
>> temu, jer će toga biti još... (:
Drago mi je što si našao ono što si tražio.
Priznajem da me ponekad nerviraju duge poruke, ali me mnogo
više nerviraju kratke poruke bez ikakvog sadržaja.
Samo ti piši, ako ne koristi meni, koristiće već nekom.
razno.364kriss,
-> #359, pedjak˙˙ Meni se desilo par puta da obj2asm jednostavno odbije da
˙˙ asm-uje neke obj fajlove, a oni su savršeno ispravni, čak se
˙˙ distibuiraju u nekim SW paketima. Ima li leka ? ;)
Pošalji ih, ako nisu deo paketa NASA.EXE ;> pa ćemo videti :)
Trebalo bi da je sve OK, bar ja nisam našao obj koji do sada nije
'prošao'. Naravno, na mejl dobiš asm :)
razno.365dr.grba,
-> #361, markom>> P.S. Gde nađe Win 2.1, majke ti ?
Ja imam Win 2.0, sve sa knjigom (:
Ne, nije na disku (:║■
razno.366niklaus,
-> #363, mstanic(:> Priznajem da me ponekad nerviraju duge poruke, ali me mnogo
(:> više nerviraju kratke poruke bez ikakvog sadržaja.
Evo još, samo da ne nerviraju... (:
Port Description
▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
000H-01fH DMA (Direct Memory Access) controller See DMA Ports
020H-03fH Interrupt Controller
==============================================================================
DMA (Direct Memory Access) is used for high-speed data transfers between I/O
devices and memory without intervention of the CPU. It is typically employed
by diskette and hard disk drivers, but it could be used for streaming tape or
any other device as long as it does not interfere with the operation of other
standard devices.
The original PC supports four 8-bit DMA channels, across a 20-bit address
space, using an Intel 8237A DMA controller chip. The ŢATŮ supports 7 DMA
channels by cascading a second 8237A DMA controller. The differences between
PC and AT DMA are covered at the end of this section.
Channel Usage in PC and XT
▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
0 memory refresh (highest priority)
1 not used
2 diskette adapter
3 hard disk adapter (lowest priority)
Port Description
▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
000H-007H DMA base address an offset registers
All are 16-bit registers: read/write the low byte, then the high byte
at the same I/O port. Base addresses are offsets from a DMA Page (see
below).
000H Write: DMA channel 0 base address (also sets current address)
Read: DMA channel 0 current address
001H Write: DMA channel 0 base address and word count
Read: DMA channel 0 current word count
002H Write: DMA channel 1 base address
Read: DMA channel 1 current address
003H Write: DMA channel 1 base address and word count
Read: DMA channel 1 current word count
004H Write: DMA channel 2 base address (diskette adapter)
Read: DMA channel 2 current address "
005H Write: DMA channel 2 base address and word count "
Read: DMA channel 2 current word count "
006H Write: DMA channel 3 base address (hard disk adapter)
Read: DMA channel 3 current address "
007H Write: DMA channel 3 base address and word count "
Read: DMA channel 3 current word count "
■■■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
008H-00fH DMA control/status registers
008H Write: DMA command register
Í7┬6┬5┬4┬3┬2┬1┬0Ě
║ │ │ │ │ │ │ │ ║
ËĎ┴Ď┴Ď┴Ď┴Ď┴Ď┴Ď┴ĎŻ bit
║ ║ ║ ║ ║ ║ ║ ╚═ 0: 1=enable memory-to-memory DMA (ch0═ch1)
║ ║ ║ ║ ║ ║ ╚═══ 1: 1=enable Ch0 address hold
║ ║ ║ ║ ║ ╚═════ 2: 1=disable controller
║ ║ ║ ║ ╚═══════ 3: 1=select compressed timing mode
║ ║ ║ ╚═════════ 4: 1=enable rotating priority
║ ║ ╚═══════════ 5: 1=select extended write mode; 0=late write
║ ╚═════════════ 6: 1=select DRQ sensing as active high; 0=low
╚═══════════════ 7: 1=select DACK sensing as active high; 0=low
Read: DMA status register
Í7┬6┬5┬4┬3┬2┬1┬0Ě
║ │ │ │ │ │ │ │ ║
Ë─┴─┴─┴─┴─┴─┴─┴─Ż bit
╚══╦══╝ ╚═════╩═ 0-3: channel 0-3 has reached terminal count
╚════════════ 4-7: channel 0-3 has a request pending
009H Write: request register
Í7┬6┬5┬4┬3┬2┬1┬0Ě
║ unused │ │ ║
Ë─┴─┴─┴─┴─┴Ď┴─┴─Ż bit
║ ╚═╩═ 0-1: select channel (00=0; 01=1; 10=2; 11=3)
╚═════ 2: 1=set request bit for channel; 0=reset request
00aH Write: single mask bit register
Í7┬6┬5┬4┬3┬2┬1┬0Ě
║ unused │ │ ║
Ë─┴─┴─┴─┴─┴Ď┴─┴─Ż bit
║ ╚═╩═ 0-1: select channel (00=0; 01=1; 10=2; 11=3)
╚═════ 2: 1=set mask for channel; 0=clear mask (enable)
00bH Write: mode register
Í7┬6┬5┬4┬3┬2┬1┬0Ě
║ │ │ │ │ │ │ │ ║
Ë─┴─┴Ď┴Ď┴─┴─┴─┴─Ż bit
╚╦╝ ║ ║ ╚╦╝ ╚═╩═ 0-1: select channel (00=0; 01=1; 10=2; 11=3)
║ ║ ║ ╚══════ 2-3: transfer type (00=verify=Nop; 01=write; 10=read)
║ ║ ╚═════════ 4: 1=enable auto-initialization
║ ╚═══════════ 5: 1=select address increment; 0=address decrement
╚══════════════ 6-7: 00=demand mode; 01=single; 10=block; 11=cascade
00cH Write: clear byte pointer flip-flop. Any write clears the flip-flop so
that the next write to any of the 16-bit registers is decoded as
the low byte. The next is the high byte, then next is low, etc.
00dH Write: master clear. Any OUT clears the ctrlr (must be re-initialized)
Read: temporary reg. Last byte in memory-to-memory xfer (not used)
00eH Write: Clear mask registers. Any OUT enables all 4 channels.
00fH Write: master clear. Clear or mask any or all of the channels.
Í7┬6┬5┬4┬3┬2┬1┬0Ě
║ │ │ │ │ ║
Ë─┴─┴─┴─┴Ď┴Ď┴Ď┴ĎŻ bit
║ ║ ║ ╚═ 0: 1=mask channel 0; 0=enable
║ ║ ╚═══ 1: 1=mask channel 1;
║ ╚═════ 2: 1=mask channel 2;
╚═══════ 3: 1=mask channel 3;
Read: temporary reg. Last byte in memory-to-memory xfer (not used)
■■■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
081H-08fH DMA page registers.
To select a starting address for a DMA operation, do an OUT to the page
register (ports 81H-83H) for the selected channel then set the base
address (ports 00H-07H) for the channel. A page register is set with a
4-bit value that represents bits 16-19 of the 20-bit DMA address. Since
the current address is a 16-bit value, it is not possible to cross a 64K
boundary (eg, address 1000:0, 2000:0, etc.) with a DMA operation.
081H Channel 2 page register (diskette DMA)
082H Channel 3 page register (hard disk DMA)
083H Channel 1 page register
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
┌─────────┐
│ŢATŮ DMA │ The DMA system on the AT is basically upwardly-compatible with PC
└─────────┘ and XT DMA. In addition to the four 8-bit channels of the PC, the
AT adds a second 8237A-5 DMA controller which supports channels 4-7.
Channel Usage in AT
▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
0 spare ─┐
1 SDLC (Synchronous Data Link Control) Ă═ 8-bit DMA channels
2 diskette adapter │ │
3 hard disk adapter ─┘ │
4 (controller 2) cascade for controller 1 ─┐ │
5 spare Ă═ 16-bit DMA channels │
6 spare │ │
7 spare ─┘ │
│
■■■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■│
081H-08fH DMA page registers. On the AT, all 8 bits of the Page registers are│
used. They become the high 8-bits of a 24-bit address space (with the │
low 16-bits being set in a channel's base/current address register). │
The page size is 128K (64K words) so DMA transfers must not cross a 128K│
boundary (eg, address 2000:0, 4000:0, 6000:0, etc.) │
│
081H Channel 2 page register (diskette DMA) (address bits 16-23) │
082H Channel 3 page register (hard disk DMA) (address bits 16-23) │
083H Channel 1 page register (address bits 16-23) │
087H Channel 0 page register (address bits 16-23) │
089H Channel 6 page register (address bits 17-23) │
08bH Channel 5 page register (address bits 17-23) │
08aH Channel 7 page register (address bits 17-23) │
0ceH Channel 7 current word count
■■■■ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
0d0H-0dfH ŢATŮ DMA control/status registers
Jel' može? (:
(:niklaus:)
razno.367gari,
Potreban mi je source u bilo kom programskom jeziku za
realizaciju serijske komunikacije po protokolu X-25,
odnosno knjige, uputstva i slicno...
Treba mi za faks i hitno mi je, help me !!!!
pozdrav, Gari.
razno.368djelovic,
Zna li ko kako da na mrezi utvrdim username trenutnog korisnika? Neka vrsta
whoami funkcije.
razno.369dragisha,
-> #362, mstanic-> >> BTW, to što imam je freeware do generatora back end-ova
-> >> (generatori izlaznog koda), a za to autor traži 500 DEM.
->
-> Shvatio sam, a to sam i pretpostavljao. Hvala tebi i
Ne kontam šta si shvatio iz ovoga citiranoga, ali nema veze:). Nadam se
da nisi shvatio da JA tražim te marone!?:)))
Ovaj Compiler Toolbox što imam je nekompletan. Dio koji imam je freeware,
a radi front-end komponente. Da bi se kompletirao...
Zauzima oko 1.6 Mb arhiviran:) i ima ga u Beogradu kod m.dzigurskog.
--
[Gun control: Keep the muzzle pointed at the target.]
razno.370mstanic,
-> #367, gari>> Treba mi za faks i hitno mi je, help me !!!!
Možeš li malo konkretnije. Možda mogu pomoći.
razno.371demil,
Da li neko zna razlog zbog kojeg u batch file neće da radi
prelazak na drugi drive (d:)?
Ovo je problem na jednoj novoj 486 mašini u firmi, a takve
batch file su dosada nebrojeno puta standardno radile na
mnogim drugim mašinama pri istim ostalim parametrima
(memorija, diskovi i sl.) (drive D je stacker drive).
Ima li nekog rešenja, ovaj problem izgleda veoma nelogičan
(bez veze)?
Demil
P.S. Ovo pitanje je postavljeno u PC.USER i ostalo bez adekvatnog
odgovora...
razno.372mjova,
-> #368, djelovic> Zna li ko kako da na mrezi utvrdim username trenutnog
> korisnika? Neka vrsta whoami funkcije.
na sezamu ima negd emali .pas koji bi trebalo tome da služi. nisam
imao prilike da ustanovim da li radi ispravno jer nije hteo da radi na
lite modelu.
onda sam uzeo interapte i prelistao sve... ispostavilo se da nešto
nije baš potpuno isto kao na pravoj mreži.
dakle, ako možeš, ovo zaboravi.
razno.373iboris,
-> #371, demilŁ Da li neko zna razlog zbog kojeg u batch file neće da radi
Ł prelazak na drugi drive (d:)?
Ł (memorija, diskovi i sl.) (drive D je stacker drive).
Lepo ti neko reče pogledaj da li ti je mount-ovan stacker drive.
razno.374majkl,
-> #368, djelovic> Zna li ko kako da na mrezi utvrdim username trenutnog korisnika?
> Neka vrsta whoami funkcije.
Uz poruku je paskal program (sors i izvršni), proban na novelu
ver. 3.11. Daje broj konekcije i username trenutnog korisnika
i listu ostalih na mreži.
who.ziprazno.375zolika,
HITNO!
Najlepše bih molio svakoga ko ima algoritme za rad sa AVL stablima
(umetanje elementa i brisanje) da mi što pre javi ili u privatnu poštu
ostavi odgovarajuće algoritme. Naročitio podvlačim da mi je bitno slanje
u MAIL jer se retko javljam na SEZAM.
Stvar je vrlo hitna, te apelujem na sve dobronamerne ljude :-)))
da mi pomognu.
Unapred zahvalan,
Zolika
razno.376dragisha,
-> #368, djelovic-> Zna li ko kako da na mrezi utvrdim username trenutnog korisnika? Neka
-> vrsta whoami funkcije.
GetConnectionNumber()
regs.h.ah = 0xDC;
int86(0x21, ®s, ®s);
connect_num = regs.h.al;
GetConnectionInformation()
struct {
unsigned int request_length;
unsigned char subfunction;
unsigned char buffer_connect_num;
} request_buffer;
struct {
unsigned int reply_length;
unsigned long object_id;
unsigned int object_type;
char object_name [48];
char login_time [7];
} reply_buffer;
request_buffer.request_length = 2;
request_buffer.subfunction = 0x16;
request_buffer.buffer_connect_num = connect_num; /* prethodna funkcija *
/
reply_buffer.reply_length = 61;
regs.h.ah = 0xE3;
sregs.ds = FP_SEG ( (void far *) &request_buffer );
regs.x.si = FP_OFF ( (void far *) &request_buffer );
sregs.es = FP_SEG ( (void far *) &reply_buffer );
regs.x.di = FP_OFF ( (void far *) &reply_buffer );
int86x (0x21, ®s, ®s, &sregs);
printf("The User ID is %s\n", reply_buffer.object_name);
Radi na velikom Novellu. Za mali Novell kao i za sve ostale mreže moraće
drugi kod. Što reče mjova, batali ako ikako možeš!
--
[I'm gonna plead insanity, what about you?]
razno.377mstanic,
Evo malo da razmislimo koji nas razlozi navode da
programiramo.
hamintro.ziprazno.378ognjen,
[ppekovic, SEZAM.6:pitanja, 2.116]
)-> To sto pise Copyright ne govori nista o tome da li je neki
)-> program (font) PD, SW ili komercijalni.
Hmmm? Pa, sta znaci? Po cistoj logici, Copyright ("pravo na
kopiranje"?) znaci da se samo uz dozvolu autora taj program moze
distribuirati... Ili, mozda gresim?
razno.379mdimitrijevic,
Da li bi mogao neko ko ima pristup stranim BBS-ovima da pogleda postoje li
neke biblioteke i sl. za rad sa sprajtovima na VGA 320x200x256 modu za C.
Postoji nesto za PASCAL. To je TPU ANIVGA11. Koji koristi 4 strane VGA
karte za skrol i slicno.
Zasto i u Jugi ne bi pravili dobre igre. Imam drugara koji odlicno crta
sprajtove smislja sve zivo ja bih programirao i eto igre. Samo je problem
manjak dokumentacije o VGA kartama.
Bilo bi lepo da svi koji mogu pogledaju "napolju" po BBS-ovima i prebace
nam ove bilo kakve TXT o VGA i slicno.
Pozdrav,
Marjan Dimitrijevic
P.S. Ako iko ima bilo sta nek mi baci ovde ili u mail.
Pozdrav,
Marjan Dimitrijevic
P.S. Potrebno mi je u C-u ili ASM-u.
P.S. Mogu lako da napisem rutine skoje raK_▀doÝe sa sprajtovima ali █je to
prilicno sporo zato sto ne znam da prebacujem stranice na VGA karti preko
portova.
razno.380peca.st,
-> #379, mdimitrijevic!-> Bilo bi lepo da svi koji mogu pogledaju "napolju" po BBS-ovima i
!-> prebace nam ove bilo kakve TXT o VGA i slicno.
VGAdoc2.arj, ima ga na Sezamu u, valjda, info direktorijumu.
(a možda i pascal)
Peđa.
razno.381mdimitrijevic,
-> #380, peca.st
Znam za VGADOC2 ali on ne daje odgovor na moje potrebe. :) Tu imam kako da
prebacujem stranice ali za velike rezolucije i za svaki cip posebno. Meni treba
ono sto radi ANIVGA11 TPU koji prebacuje sve VGA karte u 320x200x256 u 4
stranice sto daje lep skrol u igrama i slicno.
Pozdrav,
Marjan DImitrijevic
P.S. ili kad bi neka dobra dusa koja zna dobro i PASCAL i C prebacila delove
ANIVGA koji rade na prebacivanju stranica u C. ( Podvlacim ne mislim ceo sors
od 200KB vec samo te delove )
ANIVGA11 ima na ( cini mi se ) Sezamu ili na FFS-u ( Fon File Server ).
razno.382ppekovic,
-> #378, ognjen>> Hmmm? Pa, sta znaci? Po cistoj logici, Copyright ("pravo na
>> kopiranje"?) znaci da se samo uz dozvolu autora taj program moze
>> distribuirati... Ili, mozda gresim?
Ne grešiš, ali pazi i PD i SW programi se ditribuiraju uz
dozvolu autora. To lepo piše u raznim read.me i sl. Dakle, autor
treba da napiše kako se distribuira njegov program. Takođe, u
samom exe-u treba da piše Ime programa (c) Copyright
godina[-godina] ime autora/firme.
Jedino ni meni nije jasno kako to napisati u fontovima.
Paya
razno.383bulaja,
-> #382, ppekovic│Dakle, autor treba da napiše kako se distribuira njegov program. Takođe,
│u samom exe-u treba da piše Ime programa (c) Copyright godina[-godina]
│ime autora/firme. Jedino ni meni nije jasno kako to napisati u fontovima.
└───
U većini font formata ostavljen je jedan prostor za opis fonta i
Copyright poruke (tako je npr. kod TTF i LaserJet Soft fontova). U tom
prostoru se može pisati bilo kakav tekst, pa i Copyright autora. Samo
stavljanje nekog fonta u PD/SW status bi trebalo da bude propraćeno
odgovarajućim readme ili sličnim datotekama, pošto nema smisla sve to
pisati u samom fontu (često ni PD programi ne sadrže u samom EXE-u
napomenu o distribuciju već samo (C)).
razno.384ognjen,
-> #382, ppekovic)-> Takode, u samom exe-u treba da pise Ime programa (c)
)-> Copyright godina[-godina] ime autora/firme.
~~~~~~~~~~~~~~~
Sta ovo oznacava?
razno.385dtadic,
-> #381, mdimitrijevic>> P.S. ili kad bi neka dobra dusa koja zna dobro i PASCAL i C prebacila
>> delove ANIVGA koji rade na prebacivanju stranica u C.
Možda bi ti pomogao neki konvertor Pascal -> C?
razno.386dejanr,
-> #383, bulaja>> U većini font formata ostavljen je jedan prostor za opis fonta i
>> Copyright poruke (tako je npr. kod TTF i LaserJet Soft fontova).
Ne znam za TTF, ali kod LaserJet fontova taj prostor nije namenski
ostavljen, nego je u pitanju artefakt. Sistemsko zaglavlje ima, recimo,
60 bajta, a prvi bajt dodatno određuje dužinu zaglavlja. Neko se tu setio
da napiše recimo 80, pa onda ima još 20 bajtova koje LJ pri analizi fonta
preskoči. Tu stavi tekst kakav hoće. Međutim, mislim da to HP u početku
nije tako zamislio, nego se neko zgodno snašao - prvi fontovi koje je HP
isporučivao nisu imali nikakvu poruku niti je taj "džep" uopšte kreiran.
razno.387dejanr,
-> #384, ognjen>> > Takode, u samom exe-u treba da pise Ime programa (c)
>> > Copyright godina[-godina] ime autora/firme.
>> > ~~~~~~~~~~~~~~~
>>
>> Sta ovo oznacava?
Prva godina je godina kada je prva verzija programa izašla iz tvoje
kuće. žak i ako si dao prijatelju program da testira, to se broji
u "izlazak iz kuće". Druga godina je godina kada izlazi tekuća
verzija.
razno.388markom,
-> #384, ognjen■■■ )-> Copyright godina[-godina] ime autora/firme.
■■■ ~~~~~~~~~~~~~~~
■■■ Sta ovo oznacava?
Godinu nastanka prve verzije i godinu nastanka verzije u kojoj piše to što
čitaš. Ako je to na prvoj verziji, onda je besmisleno pisati i drugu godinu.
Marko
razno.389markom,
-> #385, dtadic■■■ Možda bi ti pomogao neki konvertor Pascal -> C?
Imaš ?!?!?!?!?!?!
Marko
razno.390mdimitrijevic,
-> #385, dtadic
Moglo bi nesto da se uradi ali jadno :(.
Probacu imam valjda neki na disketama.
Ipak ako neko na stranim BBS vidi nesto slicno neka prebaciń8 ovde.
AKO NEKO IMA PRISTUP FORCE ARACIS-u NEKA PREBACI OVDE FAJL
PCINTERN.ARJ
PLEASE, PLEASE ....
Pozdrav,
Marjan Dimitrijevic
ń8P.S. U tom fajlu izgleda ima prilicno lepih stvari u vezi ASM i C
programiranja. Fajl ima preko 200KB :(
razno.391gari,
-> #390, mdimitrijevicEvo ti nesto sa rinocerosa...
pozdrav Gari.
;)
pas-to-c.ziprazno.392ndragan,
-> #384, ognjen/ )-> Copyright godinaŠ-godinaĆ ime autora/firme.
/ Sta ovo oznacava?
To treba ja da pitam, jer u mom juskiju dobijam dve reči, "godinaš" i
"godinać", za koje mogu samo da naslutim značenje, ali mi ne uspeva;
žitžs a mystery to me..
Bue_ Ndragan
razno.393cipp,
Pomagajte ljudi !!! Kako iz programa podrzati rad sa handy skenerima (u ovom
slucaju Mustek G105, ali moze i New genius 4500). Ima veze sa DMA transferom,
ali idealno bi bilo ako neko nesto zna o SPI drajverima. Naime ovi novi skeneri
svi imaju "SPI DOS/WINDOWS driver". Brzo i hitno, bilo sta !!! (C/C++)
................... Unapred zahvalan,
razno.394ppekovic,
-> #389, markom>> ■■■ Možda bi ti pomogao neki konvertor Pascal -> C?
>>
>> Imaš ?!?!?!?!?!?!
Ne znam da li ga ima na Sezamu, ali ga na FFS-u ima već skoro
godinu dana. žak mislim da imaju dve verzije.
Paya
razno.395markom,
-> #394, ppekovic■■■ Ne znam da li ga ima na Sezamu, ali ga na FFS-u ima već
■■■ skoro godinu dana. žak mislim da imaju dve verzije.
Pa budi ljubazan pa ga nabaci ovde ako te ne mrzi ...
Marko
razno.396ognjen,
-> #392, ndragan)-> u mom juskiju dobijam dve reci, "godinas" i "godinac", za
)-> koje mogu samo da naslutim znacenje, ali mi ne uspeva;
Da si malo pogledao juski, bilo bi ti jasno... Dakle, to su
uglaste zagrade, ili:
┌ ┐
GODINA │ -GODINA │
└ ┘
Sto se reci da je druga godina opcionalna... Objasnjavo je
paya.
razno.397dr.grba,
-> #396, ognjen>> )-> u mom juskiju dobijam dve reci, "godinas" i "godinac", za
>> )-> koje mogu samo da naslutim znacenje, ali mi ne uspeva;
>>
>> Da si malo pogledao juski, bilo bi ti jasno... Dakle, to su
>> uglaste zagrade, ili:
Odavno se niko nije u'vatio na komšijinu zezalicu (:
razno.398ilazarevic,
-> #396, ognjen> Da si malo pogledao juski, bilo bi ti jasno... Dakle, to su
> uglaste zagrade, ili:
Pade još jedan :)
razno.399ognjen,
-> #398, ilazarevic)-> > Dakle, to su uglaste zagrade, ili:
)-> Pade jos jedan :)
Uhhhhhhh!!! :) Mrzim vas! Sve vas mrzim! Iz dna duse! ;) Bagro
jedna ulicarska... ;)
razno.400ndragan,
-> #396, ognjen/ Da si malo pogledao juski, bilo bi ti jasno... Dakle, to su
Bilo mi je jasno, ali baš mi se svidelo ovako :)
Bue_ Ndragan
razno.401gari,
-> #370, mstanic>> >> Treba mi za faks i hitno mi je, help me !!!!
>> Mozes li malo konkretnije. Mozda mogu pomoci.
Kao sto Vam je sigurno poznato, protokol X-25 je jedan od
standarda upotrebljen za komunikaciju dva DTE-a (data
teminal equipment). U cilju ostvarivanja ovakve
komunikacije uspostavlja se virtuelno kolo ili permanentno
virtuelno kolo u DCE (data communication equipment) i tako
simulira fizicka END-TO-END veza izmedju dva DTE-a. Nacin
funkcionisanja DCE-a, kao ni struktura nisu ovde od
interesa. U tom smislu se DCE posmatra kao "crna kutija", a
paznja posvecuje samo vezi DCE<->DTE.
X-25 definise tri osnovna nivoa komunikacije DCE<->DTE:
1. Fizicki nivo, koji koristi protokol X-21 za
uspostavljanje veze (hand-shake) i predstavlja fizicku
proceduru za rukovanje hardverom (koga definisu X-24,
X-26/27 i ISO standard DIS 4903)...
2. Drugi nivo, koji koristi ISO HDLC (high-level data
link control) protokol i LAPB (link access procedure
balanced) proceduru za komunikaciju, a podaci se salju u
"zapakovani" u ramove (ili okvire) i ostvaruje se veza 1-1
putem jednog fizickog kanala...
3. Nivo mreze ili paketni nivo, koji podatke pakuje u
"pakete" i ostvaruje do 4096 virtuelnih kanala na jednom
fizickom. Standardom je odredjen fomat paketa i paketne
usluge...
Postoje jos cetiri nivoa koji nisu obuhvaceni protokolom
X-25.
Moji zadaci su (po prioritetu):
1) da realizujem C softver koji bi na PC-u omogucavao
funkcionisanje paketnog nivoa (sa strane DTE) i da
obezbedim simulaciju DCE-a (samo ulaza i izlaza i samo
nekoliko virtuelnih kola) zbog demonstracije
DTE1<->DCE<->DTE2. (Rec je samo o paketima MOD 8 i samo o
obaveznim paketnim uslugama.) Ovde se uzima da su usluge 2.
nivoa na raspolaganju.
2) da realizujem usluge 2. nivoa ( C softver ) pri cemu
su usluge prvog nivoa na raspolaganju.
3) da uoblicim sve to u program za prenos fajlova koji
se izvrsava na DTE-u.
Ukoliko imate bilo kakve informacije, knjige, ili sorseve
u bilo kom prog. jeziku, ili, pak, ideju gde da to sve
potrazim, molim Vas da mi javite.
Hvala.
razno.402eotek,
TRAZI SE FONT STAROSLOVENSKOG PISMA
===================================
prema mogucnosti .ttf.
to NIJE tkzv. miroslavljevo pismo, (cirilica u obliku
staroslovenskog fonta). trazeno pismo ima preko 70 slova.
nisam znao u koju konferenciju, a ovde bi trebalo da budu
najveci znalci racunarstva....
HITNO
ma se eotek
razno.403bulaja,
Kako se ukida 9. bit za definiciju karaktera u VGA text modu?
razno.404dpredovic,
-> #403, bulaja> Kako se ukida 9. bit za definiciju karaktera u VGA text modu?
Definicija karaktera NEMA 9 bitova, po defaultu ono što vidiš na
ekranu kao 9. bit je pixel u boji pozadine. Ako hoćeš lepo da
složić neki logo, treba lepo da ukineš prikazivanje tog pixela.
OUT 3c4H,1
IN 3c5H,AH
OR AH,1
OUT 3c4H,1 // možda je ovo viška, probaj
OUT 3c5H,AH
Cu, Dejan
razno.406bulaja,
-> #404, dpredovic││Kako se ukida 9. bit za definiciju karaktera u VGA text modu?
│└───
│Definicija karaktera NEMA 9 bitova, po defaultu ono što vidiš na
│ekranu kao 9. bit je pixel u boji pozadine. Ako hoćeš lepo da
│složić neki logo, treba lepo da ukineš prikazivanje tog pixela.
└───
Znam da je 9. bit ili prazno ili dupliran 8. bit eksplicitno za
karaktere od 179 do 223 (linedraw i sl.), mozda nisam bio dovoljno
jasan sa pitanjem (ali je bar stalo u jedan red:). Hvala na odgovoru,
nadam se da je to ono sto mi je trebalo :). Btw ne treba mi za logo
(mada moze da posluzi :), vec da napravim normalnu rastersku pozadinu
(bez rupa) i lepe strelice za scroll barove :).
razno.407dejanr,
Kakvi će biti novi kompajleri za nove računare? Da li su Pentium, PowerPC i
Alpha stvorili okruženja koja će zahtevati da promenimo i najosnovnije
pojmove o kompajlerima? NOVOSTI/microb 4.526.
NOVOSTI/microb 4.527 opisuje optimizacije pre i posle kompajliranja.
Videćete zašto je potrebno da se "očigledna" konstrukcija kao što je:
do i=1,n
s=s+a(i)*b(i)
enddo
kompajlira u:
s0=0
s1=0
do i=1,n,2
s0=s0+a(i)*b(i)
s1=s1+a(i+1)*b(i+1)
enddo
s=s0+s1
NOVOSTI/microb 4.528 govori o Watcom C-u koji direktno podržava Pentium.
NOVOSTI/microb 4.529 se bavi kompajlerima za paralelno procesiranje.
NOVOSTI/microb 4.530: tipovi računara koji obezbeđuju paralelno procesiranje.
Sa posebnim osvrtom na distribuiranu deljenu memoriju.
NOVOSTI/microb 4.531: kako prepraviti postojeće aplikacije da koriste
paralelno procesiranje.
razno.408bulaja,
-> #404, dpredovic│OUT 3c4H,1
│IN 3c5H,AH
│OR AH,1
│OUT 3c4H,1 // možda je ovo viška, probaj
│OUT 3c5H,AH
└───
Ipak, nije to to. :( U nekim slučajevima radi, ali u nekima ne, tj.
poremeti se sinhronizacija monitora. Sa druge strane, na tim istim
monitorima bez problema rade npr. vga90 i neki programi koji sami
ukidaju taj 9. bit, sto znaci da ti portovi ipak nisu oni pravi tj.
univerzalni :). Pogledao sam vga90 (koji nije ono što mi treba, hoću
baš standardnih 80 karaktera ali sa ukinutim 9. bitom) i tamo se
koriste i neki CGA portovi. Potrudicu se da odatle iskopam nešto
korisno, ako mi uspe javiću :).
razno.409dragisha,
-> #408, bulaja-> Ipak, nije to to. :( U nekim slučajevima radi, ali u nekima ne, tj.
Ne znam koju karticu imaš, kao ni kako je to na većini kartica, ali na
Trident imaš tekst modove koji podrazumijevaju ukidanje tog devetog bita.
Modovi od 50H naviše idu u parovima, jedan u paru ima deveti bit, drugi
nema. To piše i u VGADOC2.
Poznajući kompatibilnost VGA kartica, ne bi me čudilo da generalno
rješenje ne postoji:).
--
[On a clear desk you can never find anything.]
razno.410dragisha,
[Reply to PC.PROG.3/clipper:913 (djelovic)]
-> meni i C++ daleko od idealnog jezika, zbog svoje šugave C sintakse.
-> Najbliže idealu bi čini mi se bio nekakav Turbo Pascal 5.0 + objektne
-> ekstenzije identične onima iz C++-a. Na žalost, taj je voz već propušten
-> :(.
-> P.S. Da li je u Clipperu moguće odvojiti definiciju i implementaciju?
-> Ako nije, eto još jednog minusa :(.
Prilično dobro si odredio Modulu-3. Probaj da nađeš neku knjigu o njoj,
dopašće ti se. Objektne ekstenzije nisu identične, ali ima novih stvari
koje su fenomenalne. Njen exception handling đoni Windows NT, koliko
sam ukapirao iz par članaka.
Mene je C++ oduševio OO ekstenzijama i još ponečim, ali odvratnost prema
naslijeđenim osobinama iz C-a me je definitivno odbila od njega. Modula-3
ima odvojenu definiciju i implementaciju, kao Modula-2, ali omogućava više
nivoa definicije, što je ustvari jedino što (po meni) dodatno nudi
#include a da to .DEF u M2 ne pokriva.
--
[Philadelphia isn't dull - it just seems so because]
razno.411djelovic,
-> #410, dragisha> Prilično dobro si odredio Modulu-3. Probaj da nađeš neku knjigu o njoj,
> dopašće ti se. Objektne ekstenzije nisu identične, ali ima novih stvari
> koje su fenomenalne. Njen exception handling đoni Windows NT, koliko
> sam ukapirao iz par članaka.
Imao sam neku (mislim) DEC-ovu implementaciju Module-3, i kao jezik, ona je
stvarno mnogo dobra. Međutim, sve to meni ne vredi mnogo ako ne postoji
kompajler dobar ili bolji od Borlandovih/Microsoftovih, kao i veliki bro│j
biblioteka na tržištu. Bez toga - mrka kapa.
razno.412bulaja,
-> #409, dragisha│ Ne znam koju karticu imaš, kao ni kako je to na većini kartica, ali na
│Trident imaš tekst modove koji podrazumijevaju ukidanje tog devetog bita.
│Modovi od 50H naviše idu u parovima, jedan u paru ima deveti bit, drugi
│nema. To piše i u VGADOC2.
│Poznajući kompatibilnost VGA kartica, ne bi me čudilo da generalno
│rješenje ne postoji:).
└───
Ono rešenje sa 0x3c5 portom je problematično ne zbog kartice već zbog
monitora :). Probano je na ET-4000, TVGA9000, CL-5426 i nekom Oak-u, i
svuda radi ako je monitor u stanju to da podnese :), a ako je shit
monitor onda se izgubi sinhronizacija, nezavisno od toga na kojoj
kartici radi :). Verujem da generalno rešenje postoji pošto sam video
programe koji na svim VGA ukidaju 9. bit i opet rade bez problema sa
monitorom :).
razno.413bcetina,
Izgleda da su uveli DNEVNI koeficijent revalorizacije kod osnovnih
sredstava. Zna li neko ima li neka formula za izračunavanje ili će
se to unositi?
razno.414dragisha,
[Reply to PC.PROG.3/clipper:924 (nbatocanin)]
-> da su neke stvari zaista originalne: pretprocesor, koncepcija core
? ? ? ? ?
-> jezika kome pretprocesor daje finalni izgled;
C.
-> kod blokovi - jedna
-> zaista odlična ideja - *akcije* koje se tretiraju kao podaci (sasvim
GNU C++, dorađena jedna od ekstenzija.
-> Naročito sistem za obradu grešaka.
TRY Mehanizam koji koristi M3. Volio bih da vidim
EXCEPT nešto upotrebljivije:). Uz deklaracije procedura
FINALLY ide i specificiranje izuzetaka koji mogu da se
END dese što omogućava kompajleru da i on kaže koju:).
Osim toga, u M3 izuzeci primaju argumente i to se deklariše tako da je
efekata Raise-ta sličan običnom pozivu procedure. Ne znam ima li to i u
kliperu, ali ovo dvoje gore plus argumenti su po meni maksimum.
Toliko o originalnosti:).
BTW, mehanizam implementacije izuzetaka kroz SetJmp/LongJmp se pojavio
prije toliko vremena da je sra*e što već svi jezici to nisu do maksimuma
iskoristili.:(
--
[Error - [A]bort, [R]etry, [F]ake like it's working...]
razno.415djelovic,
-> #414, dragisha> BTW, mehanizam implementacije izuzetaka kroz SetJmp/LongJmp se pojavio
> prije toliko vremena da je sra*e što već svi jezici to nisu do maksimuma
> iskoristili.:(
S tim što SetJmp/LongJmp ograničava poruku o grešci na jedan tip podataka,
a takođe, za razliku od pravih izuzetaka, često ostavlja teren iza sebe
"nepospremljen".