PCPROG.3

26 Jul 1993 - 22 Apr 1994

Messages - razno

razno.315 djelovic, -> #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.317 dr.grba, -> #312, eotek
>> > komplikovan za moj ukus. >> >> evo ga Hvala.
razno.318 mjova, -> #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.319 djelovic, -> #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.320 bojt, -> #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.321 djelovic, -> #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.322 djelovic, -> #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.323 lovro, -> #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.324 bulaja, -> #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.325 bulaja, -> #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.326 bojt, -> #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.327 mstanic,
Da li bi neko mogao da mi objasni šta je to "metakompajler" i kako radi ? I da li postoji i "metaasembler"
razno.328 bearboy, -> #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.331 lovro, -> #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.332 niklaus, -> #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.333 dr.grba, -> #317, dr.grba
>> >> > komplikovan za moj ukus. >> >> >> >> evo ga >> >> Hvala. OBJ2ASM mi zaledi mašinu u svim uslovima ):
razno.334 kriss, -> #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.335 jpavlov,
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.336 eotek, -> #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.zip
razno.337 bojt, -> #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.338 bulaja, -> #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.339 dr.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.340 djelovic,
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.zip
razno.341 kriss, -> #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.342 rakac,
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.343 mstanic, -> #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.344 dejanr, -> #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.345 mzdravkovic,
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.346 djelovic, -> #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.347 eotek, -> #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.348 bulaja, -> #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.349 rakac, -> #348, bulaja
Da 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.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. Pozdrav, Marjan Dimitrijevic
razno.351 niklaus, -> #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.352 eotek, -> #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.353 mzdravkovic, -> #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.354 bulaja,
**** 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.355 bearboy, -> #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.356 niklaus, -> #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.357 dragisha, -> #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.zip
razno.358 dragisha, -> #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.359 pedjak, -> #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.360 bstevan,
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.361 markom, -> #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.362 mstanic, -> #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.363 mstanic, -> #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.364 kriss, -> #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.365 dr.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.366 niklaus, -> #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.367 gari,
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.368 djelovic,
Zna li ko kako da na mrezi utvrdim username trenutnog korisnika? Neka vrsta whoami funkcije.
razno.369 dragisha, -> #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.370 mstanic, -> #367, gari
>> Treba mi za faks i hitno mi je, help me !!!! Možeš li malo konkretnije. Možda mogu pomoći.
razno.371 demil,
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.372 mjova, -> #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.373 iboris, -> #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.374 majkl, -> #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.zip
razno.375 zolika,
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.376 dragisha, -> #368, djelovic
-> Zna li ko kako da na mrezi utvrdim username trenutnog korisnika? Neka -> vrsta whoami funkcije. GetConnectionNumber() regs.h.ah = 0xDC; int86(0x21, &regs, &regs); 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, &regs, &regs, &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.377 mstanic,
Evo malo da razmislimo koji nas razlozi navode da programiramo. hamintro.zip
razno.378 ognjen,
[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.379 mdimitrijevic,
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.380 peca.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.381 mdimitrijevic, -> #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.382 ppekovic, -> #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.383 bulaja, -> #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.384 ognjen, -> #382, ppekovic
)-> Takode, u samom exe-u treba da pise Ime programa (c) )-> Copyright godina[-godina] ime autora/firme. ~~~~~~~~~~~~~~~ Sta ovo oznacava?
razno.385 dtadic, -> #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.386 dejanr, -> #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.387 dejanr, -> #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.388 markom, -> #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.389 markom, -> #385, dtadic
■■■ Možda bi ti pomogao neki konvertor Pascal -> C? Imaš ?!?!?!?!?!?! Marko
razno.390 mdimitrijevic, -> #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.391 gari, -> #390, mdimitrijevic
Evo ti nesto sa rinocerosa... pozdrav Gari. ;) pas-to-c.zip
razno.392 ndragan, -> #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.393 cipp,
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.394 ppekovic, -> #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.395 markom, -> #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.396 ognjen, -> #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.397 dr.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.398 ilazarevic, -> #396, ognjen
> Da si malo pogledao juski, bilo bi ti jasno... Dakle, to su > uglaste zagrade, ili: Pade još jedan :)
razno.399 ognjen, -> #398, ilazarevic
)-> > Dakle, to su uglaste zagrade, ili: )-> Pade jos jedan :) Uhhhhhhh!!! :) Mrzim vas! Sve vas mrzim! Iz dna duse! ;) Bagro jedna ulicarska... ;)
razno.400 ndragan, -> #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.401 gari, -> #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.402 eotek,
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.403 bulaja,
Kako se ukida 9. bit za definiciju karaktera u VGA text modu?
razno.404 dpredovic, -> #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.406 bulaja, -> #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.407 dejanr,
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.408 bulaja, -> #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.409 dragisha, -> #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.410 dragisha,
[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.411 djelovic, -> #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.412 bulaja, -> #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.413 bcetina,
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.414 dragisha,
[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.415 djelovic, -> #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".