cccc.1nikac,
Upravo sam u fazi prelaska sa tp6 na bc 2.0 pa sam pun pitanja.
Dakle:
1. Imam proceduru ciji su parametri tri intiger-a. Da li moram
da pisem svaki odvojeno tj.
"void trtmrt(int a, int b, int c)" ili moze da se skrati?
2. Koja procedura/funkcija prevodi string u broj i obratno
(ekvivalenti tp-ovim str i val)?
3. Pod kojim unitom da trazim funkcije za rad sa fajlovima
i koja je naredba za citanje iz datoteke (samo ime f-je a ostalo
cu da vidim iz help-a)
Ajde koga ne mrzi nek mi odgovori...
Pozdrav,
-=Nikac=-
cccc.2ficus,
1) Mora{ (mo`da ima jo{ neko re{enje, ali ja ga neznam...)
2) Iz int u string prevodsa itoa, a obrnuto sa atoi
3) ima{ stdio.h i io.h (sa baferisanim, a io.h z rad sa "obi~nim" datotekama...
cccc.3robert,
>> 3. Pod kojim unitom da trazim funkcije za rad sa fajlovima
open() fopen() read() write() fread() fwrite() fscanf() fprintf()
itd...
Imaš sjajan Help sistem pa tamo kopaj malo. Naćićeš priličan broj
odgovora na tvoja pitanja...
cccc.4herak,
Molio bih da mi neko kaže kako u BC 3.1 napraviti .COM file. Probao sam da
radim sa bcc -lt opcijom, ali uvek javlja grešku STACK SEGMENT PRESENT čak i
"programu":
void main()
{
}
Pozdrav, Srdjan.
cccc.5milos,
Pa, source module moraš prevesti sa bcc -mt -lt ime.cpp da bi dobio kod koji
nema stack segment (tiny model), nije dovoljno samo -lt, nego mora i -mt...
cccc.6miroljub,
U porukama u PC.PROG.2:cccc spominju se verzije 2.01 i 2.1 Turbo C-a.
Ja radim sa TC 2.0 pa me interesuje koja je zadnja verzija Borlandovog
Turbo C-a (naravno - mislim na "obicni" - neobjektni C).
cccc.7milos,
Ja mislim da je 2.0, mada sam video i verziju 2.01 u {koli, neku osaka}enu, dok
za 2.1 nisam ~uo...
P.S. [to ne pre|e{ na BC++ 3.1 mnogo je bolji...
cccc.8kenza,
(;> P.S. [to ne pre|e{ na BC++ 3.1 mnogo je bolji...
Ajde uradi set code :(
cccc.9milos,
>> Ajde uradi set code :(
Izvin'te gospodo, mene svi ovde opominju, ali ja koristim YUSCII i nemam
nameru da prelazim na Custom 2 pošto sam sve žive drajvere prilagodio ovom
standardu. Naravno, ukoliko ima đubreta u m´cojim porukama, nema problema...
cccc.10dejanr,
>> Izvin'te gospodo, mene svi ovde opominju, ali ja koristim YUSCII i nemam
>> nameru da prelazim na Custom 2 pošto sam sve žive drajvere prilagodio ovom
>> standardu.
Nije reč o tome, nego si na Sezamu imao set code none a slao si poruke po
YUSCII-ju i onda su drugi u tim porukama videli kuke i kvake. Ja sam ti
podesio set code na yuscii i sada bi trebalo da bude sve u redu.
cccc.11peca.st,
!-> P.S. Što ne pređeš na BC++ 3.1 mnogo je
!-> bolji...
A što ti ne pređeš na conf reply, ovako ni na šta ne liči. :(
Peđa.
cccc.12milos,
>> Ja sam ti podesio set code na yuscii i sada bi trebalo da bude sve u redu.
Ok, hvala...
cccc.14miroljub,
=> [to ne pre|e{ na BC++ 3.1 mnogo je bolji...
Planiram da predjem na C++, ali za sada radim sa "obicnim" C-om.
Relativno skoro sam poceo da petljam sa C-om, pa sam smatrao da ce biti
lakse da se prvo upoznam sa neobjektnim-klasicnim C-om, pa tek onda da
predjem na pojmove objektno orjentisanog programiranja.
Osim toga pokazalo se da je TC 2.0 kompajler znatno brzi od BC++ 3.1
kompajlera (bar za prevod klasicnog C koda) sto mi trenutno odgovara.
cccc.15milos,
>> znatno brži u prevođenju C koda
Mislim da je prava reč nenormalno brži, ali kako jeste jeste. Ali uvek me
je kopkalo zbog čega je TC 2.0 ovoliko brži? Kod novije generacije Borlandovih
C++ kompajlera u prevođenju čistog C++ koda vidi se napredak. TC++ 1.01 je
prevodio C++ tragično sporom dok je C kod prevodioza nijansu sporije od TC 2.0
BC++ 2.0 je uveo precompiled-headers, međutim i bez njih prevođenje C++ koda je
bilo dosta brže u odnosu na TC++1.01 dok je prevođenje C koda opet za neki
stepen opalo u brzini. Posle njega 3.0 nije ništa bitno uradio u smislu
prevođenja C++ koda, ali se C kod ovom verzijom prevodi DEBELO sporije nego sa
TC 2.0... I na kraju 3.1 prevodi i C++ kod sličnom, ali ne i istom brzinom.
Naravno brzina prevođenja C++ koda je uvoj verziji sasvim solidna, možemo čak
reći i brza, dok se C kod prevodi slično kao u C++3.0
Ostaje pitanje zbog čega sve ovo???
cccc.17milos,
Zadovoljan ;)
cccc.18milos,
A sada da nešto lepo zamolim, znam da ste puno puta o tome pisali ali ne mogu
da nađem nigde. Treba mi procedurica (void funkcija) koja će ugasiti Num-Lock.
HELP!
cccc.19miroljub,
=> Treba mi procedurica (void funkcija) koja ce ugasiti Num-Lock.
Evo ti programcic koji to radi, ali radi i jos par drugih stvari.
numlock0.comcccc.20milos,
Da li neko koristi Quick C for Windows??? Imam neke probleme oko podešavanja
boja, pa ako bi neko mogao da se javi na mail da mi pomogne...
cccc.21dcolak,
Jedno pitanjce...
Jel zna neko ko je distributer Quick C for Windows u Srbiji?
Grčim se već dosta dugo da to saznam ali ne ide...
Sledge DAMMIR!
cccc.22dejanr,
>> Jel zna neko ko je distributer Quick C for Windows u Srbiji?
Ako pitaš ko je distributer Microsoftovih programa, mislim da nema
ekskluzivnog distributera i/ili zastupnika, a da ih distribuira CET.
cccc.23mdimitrijevic,
Da li je neko uspeo da prevede bez greske CBASE 1.0 ili 1.2 (biblioteku za
rad sa bazama podataka , ima je na Sezamu) sa Borland C++ 3.1 meni prijavljuje
greske pri prevodjenju a i kad ispravim greske prijavljuje gresku pri kreiranju
baze broj 19 i 35.
Da li se nekome ovo desilo???
Pozdrav,
Marjan Dimitrijevic
cccc.24vpetrovic,
Pogledajte ovaj program. Preveden je sa TC 2.01.
#include <stdio.h>
#include <values.h>
void main ()
{
float f1;
f1 = 1e20;
printf ("\n%d", f1 == 1e20);
}
Kao rezultat daje '0'. Zašto, i koja je najmanja float vrednost za koju će
operator == da radi ispravno (za 1e10 daje '1').
cccc.25dcolak,
│ Ako pitaš ko je distributer Microsoftovih programa, mislim da nema
│ ekskluzivnog distributera i/ili zastupnika, a da ih distribuira CET.
Na žalost, oni nemaju Quick C 4 Win...
Sledge DAMMIR!
cccc.26mornar,
>> (void funkcija) koja ce ugasiti Num-Lock.
Pa jednostavno daj POKE na adresu 0040:0017 i postavi bit 5 na nulu.
Ako te zanimaju i ostali X-Lock-ovi itd. pogledaj MEMORY.LST iz
Interrupt Lista ( ima na Sezamu R:\IBMPC\INFO\INTLST35.ARJ )
Mornar
cccc.27.bale.,
ŮŢKao rezultat daje '0'. Zašto, i koja je najmanja float vrednost za
ŮŢkoju će operator == da radi ispravno (za 1e10 daje '1').
Ako ne radi do 1e38, znaci da ne podrzava IEEE (?) Ne bih znao kas'ti.
Regards from .bale. !
#:*)+-<
cccc.28ppekovic,
>> f1 = 1e20;
>> printf ("\n%d", f1 == 1e20);
zameni 1e20 sa 0x1e20.
Paya
cccc.29smarkov,
Potrebna mi je funkcija koja u grafičkom modu (VGA 640*480 ako radi u više
modeova tim bolje) ispisuje string na zadatim koordinatama u zadatoj
boji i pozadini. Slična funkcija izgleda ne postoji ni u BIOS-u
niti u Microsoft C600 run-time biblioteci. (Problem je boja pozadine).
cccc.30milos,
Ako radiš u Borland / Turbo C-u možeš da koristiš funkcije textwidth(char*) i
textheight(char*). Ove dve funkcije će ti dati visinu i širinu tvog tekstva
koji treba da ispišeš. Ono što ti preostaje za background je da nacrtaš jedan
pravougaonik (rectangle) i popuniš ga sa floodfill bojom koju si podesio u
setfillstyle. Posle toga u taj pravougaonik upišeš tekst osnovnom bojoj, i to
je to.
cccc.31vpetrovic,
>>>> f1 = 1e20;
>>>> printf ("\n%d", f1 == 1e20);
>>
>> zameni 1e20 sa 0x1e20.
Da, sad radi. U čemu je štos? žak je i u values.h MAXFLOAT definisano kao
3.37E38 (bez 0x). Jel to bug u kompajleru ili je po standardu?
cccc.32dcolak,
│ Potrebna mi je funkcija koja u grafičkom modu (VGA 640*480 ako radi u više
│ modeova tim bolje) ispisuje string na zadatim koordinatama u zadatoj
│ boji i pozadini. Slična funkcija izgleda ne postoji ni u BIOS-u
│ niti u Microsoft C600 run-time biblioteci. (Problem je boja pozadine).
Pogledah COMMENTS uz _setbkcolor. Tamo kaže da ako je grafički
mod BK boja je uvek 0 što je po default-u crna. No, oni savetuju
da koristiš _remappalete da promeniš vrednost 0 iz black u boju
koja ti treba..
Sledge DAMMIR!
cccc.33.obj,
>>>>> f1 = 1e20;
>>>>> printf ("Đn%d", f1 == 1e20);
>>>
>>> zameni 1e20 sa 0x1e20.
>
> Da, sad radi. U čemu je štos? žak je i u values.h MAXFLOAT definisano kao
> 3.37E38 (bez 0x).
Heh, 0x1E20 je heksa vrednost (!) koja se prevede u odgovarajući mali
float kod koga upoređivanje uvek radi korektno. žini mi se da ti nisi
'teo da dodeliš heksa vrednost u "f1"?...
cccc.34mjova,
>>> zameni 1e20 sa 0x1e20.
> Da, sad radi. U čemu je štos? žak je i u values.h MAXFLOAT
> definisano kao 3.37E38 (bez 0x). Jel to bug u kompajleru
> ili je po standardu?
pa fazon je jednostavan ;)))))))))))))))))))))))))
1e20 je float, a 0x1e20 hex ;))))
cccc.35klisa,
Kako ja vidim stvari, konstanta 1e20 se čuva u double formatu. To je
razlog što poređenje ne uspeva za vrednosti veće od 1e10. Jedno od
rešenja može biti i
...
void main ()
{
float f1;
f1 = 1e20;
printf ("\n%d", f1 == (float) 1e20);
}
cccc.36ppekovic,
>> Da, sad radi. U čemu je štos? žak je i u values.h MAXFLOAT definisano kao
>> 3.37E38 (bez 0x). Jel to bug u kompajleru ili je po standardu?
Ups, ja sam uneo zabunu. Učinilo mi se da žečiš da dodeliš hex
vrednost. Da se ispravim. 1e20 je double veličina. Probaj, stavi
double f1 umesto float f1. Ako hoćeš float, onda stavi kastove i
sve će bez problema da radi. Dakle: f1=(float)1e20.
Paya
cccc.38mdimitrijevic,
Da li neko zna kako da strukturu postavim kao externi podatak.
struct pod {
int broj;
char ime[35];
};
struct pod podaci;
e sad mi na primer treba u posebnom modulu. ( na primer extern.c ).
extern struct podaci;
a da podaci budu citljivi iz osnovnprograma.
P.S. Vrlo je vazno.
P.S.S. Radim u Borland C++ 3.1.
Pozdrav,
Marjan Dimitrijevic
cccc.39vpetrovic,
>> pa fazon je jednostavan ;)))))))))))))))))))))))))
>>
>> 1e20 je float, a 0x1e20 hex ;))))
:)))))))
E, a ja mislio da je samo kec hex i nisam proverio :)))))
cccc.40vpetrovic,
>> Da li neko zna kako da strukturu postavim kao externi podatak.
>>
>> struct pod {
>> int broj;
>> char ime[35];
>>} ;
>>
>> struct pod podaci;
>>
>> e sad mi na primer treba u posebnom modulu. ( na primer extern.c ).
>>
>> extern struct podaci;
>>
>> a da podaci budu citljivi iz osnovnprograma.
Napraviš include datoteku u kojoj upišeš:
typedef struct {
...
} pod;
Time si definisao novi tip pod.
U modulu extern.c includuješ gorepomenutu datoteku i staviš:
pod podaci;
U modulu main.c isto includuješ onu datoteku i staviš:
extern pod podaci;
cccc.41mdimitrijevic,
Hvala !!! Sad cu da probam.
Pozdrav,
Marjan Dimitrijevic
cccc.42vitez.koja,
#=> struct pod {
#=> int broj;
#=> char ime[35];
#=>} ;
Ovo pišeš u oba modula.
#=> extern struct pod podaci;
^^^
Ovo tamo odakle ta struktura treba da bude čitljiva (podvučeno sam ja dodao, ti
izostavio)...
#=> struct pod podaci;
...a ovo deklarišeš promenljivu gde-već-hoćes.
cccc.43baranja,
Na koji nacin da racunar otkrije da je nesto pritisnuto na tastaturi,
a da pri tome ne prekine izvodjenje programa?
cccc.45djelovic,
> Na koji nacin da racunar otkrije da je nesto pritisnuto na tastaturi,
> a da pri tome ne prekine izvodjenje programa?
Funkcija kbhit () iz conio.h ako koristiš Borlandov kompajler.
Ako je MSC, onda pogledaj u helpu funkcije na 'k'.
cccc.46dnikolic,
Ima li neko Vermont View ili C Worthy, imam neka pitanja za mail?
dn
cccc.47bulaja,
**** new file ****
R:\IBMPC\C\*.*
----------------------
cxt212 a01 144072 Analiza i dokumentovanje C/C++ izvornog koda #1
cxt212 a02 142563 Analiza i dokumentovanje C/C++ izvornog koda #2
Welcome to CXT 2.12 - the C EXPLORATION TOOLS!
CFT (C Function Tree Generator) and CST (C Structure Tree
Generator) and their 32 bit protected mode versions CFT386 and
CST386 are powerful program development, maintenance and
documentation tools. They provide the programmer the ability to
analyse the C source code of applications, no matter how big or
complex they are. CFT and CST are very useful to explore new,
unknown software and to support software reuse, maintenance and
re-engineering.
By preprocessing, scanning and analyzing the program source code,
these programs build an internal representation of the function
call hierarchy (CFT) and of the data structure (CST) relations.
The analysis is done with the original source code, no additional
editing to mark functions or data types in the source code is
necessary. Several features and options allow the user to
customize the generated hierarchy tree chart output and to get a
large set of useful informations about the source code.
An important feature is the database generation which allows the
recalling of informations without reprocessing the source. This
database can again be read from CFT and CST to produce different
outputs or to add new files to the database. The database format
is dBASE compatible. Special recall programs called CFTN and CSTN
allow fast searching for items in the database. These programs
can be used within any environment, for example from inside
editors like BRIEF, QEDIT or MicroEMACS (DOS and WINDOWS
version), to provide a full software project management system
with access to all functions and data types with just a
keystroke. This feature makes a comfortable "hypertext source
code browser and locator" system out of the editor.
Other features are the calculation of the critical function call
path and deepest structure nesting level or the support for byte
offset calculation for selected structures/unions by CST. For C++
code a class inheritance graph can be generated. It is possible
to generate formatted ASCII text files with lists of the
functions/data types and the scanned files which can be used as
input for other programs like wordprocessors or spreadsheet
calculators.
cccc.48vitez.koja,
#=> Na koji nacin da racunar otkrije da je nesto pritisnuto
#=> na tastaturi, a da pri tome ne prekine izvodjenje
#=> programa?
bioskey(1) za borlandove, ili
_bios_bkbrd(1) za microsoftove C-ove.
cccc.49djelovic,
> bioskey(1) za borlandove, ili
> _bios_bkbrd(1) za microsoftove C-ove.
Obe funkcije imaju bug! Ako se pozivaju u petlji, i korisnik pritisne
Ctrl+Break, program ode u večna lovišta. Naravno, to zavisi i od BIOS-a,
ali...
cccc.50bulaja,
**** new file ****
R:\IBMPC\C\*.*
----------------------
kafsrt20 zip 112415 Kompletan file system & sort paket za C (source)
KAFS 2.0 is a complete file system and sort package for C programmers.
Includes source code, instructions, specifications, and associated
utilities-- everything needed to write utility and application software
using this unique system. The code is compact, fast, and easily
implemented. The file system has been run on 8088 systems and shown to
be at least as fast as anything else available. Shareware ($39.95) from
Dimestore Software.
< Thanks to ppekovic >
cccc.51bulaja,
**** new file ****
R:\IBMPC\C\*.*
----------------------
bltc13a zip 140565 Bullet for C 1.03: B-tree/dBase (.DBF) database toolkit
BULLET is a super-fast, super-small B-tree/dBASE .DBF, transaction-based,
multi-user database toolkit for DOS C compilers. Also available for BASIC.
BULLET for C version 1.03, 22-Apr-93.
cccc.52mjova,
> cxt212 a01 144072 Analiza i dokumentovanje C/C++
> izvornog koda #1
super moćno!
sad mogu da preturam i po nepismeno napisanom kodu mojih kolega sa
posla ;))))) (da ih ne imenujem, sami će da se jave ;>
što se ovoga tiče, još bolji je indent - nadam se da je već u diru.
cccc.53ssokorac,
Koliko je velik BC 2.0? Koji je najmanji C++, u razumnoj meri, dakle do
10Mb? Ukoliko nema manjeg, može li se 'seckati' veći i smanjiti na <10?
Pozdrav, Stasha.
cccc.54bulaja,
│sto se ovoga tice, jos bolji je indent - nadam se da je vec u diru.
└───
**** new file ****
R:\IBMPC\C\*.*
----------------------
indents zip 59740 Nazubljivanje i formatiranje C/C++ izvornog koda (src)
indentx zip 41819 Nazubljivanje i formatiranje C/C++ izvornog koda (exe)
:)
cccc.55milos,
Postoji Turbo C++ 1.01 koji je 6 MB i radi samo za DOS.
Borland C++ 2.0 ti je ukupno 15 MB ali tu imaš i Debugger i Assembler i
Profiler i deo za Windows....
Ako hoćeš BC++ 2.0 možeš da ga stešeš na 3.5 MB 'ladno
cccc.56bulaja,
│Koliko je velik BC 2.0? Koji je najmanji C++, u razumnoj meri, dakle do
│10Mb? Ukoliko nema manjeg, moze li se 'seckati' veci i smanjiti na <10?
└───
Cini mi se dda je BC++ 2.0 u maksimalnoj konfiguraciji negde oko 14 Mb,
bez problema se moze skratiti na nekih 6-7 Mb. Cak se i BC++ 3.1 moze
instalirati na svega nekih razumnih 12 Mb.
cccc.57mjova,
> Koliko je velik BC 2.0? Koji je najmanji C++, u razumnoj
> meri, dakle do 10Mb? Ukoliko nema manjeg, može li se
> 'seckati' veći i smanjiti na <10?
možeš uzeti bc++ 3.1. ako dobro probereš šta ti treba, onda staje na
svega ;) 10Mb.
cccc.60ssokorac,
─┼┤ možeš uzeti bc++ 3.1. ako dobro probereš šta ti treba, onda staje na
─┼┤ svega ;) 10Mb.
Hvala svima na odgovorima. Da li je velika razlika izmedju bc++ 2.0 i
3.1, pošto mi je 2.0 zbog veličine primamljiviji :)? Tačnije, šta 3.1 ima
što 2.0 nema? (ako ima toga mnogo, a verujem da ima, samo ono najvažnije,
pliz :).
cccc.61mjova,
> Hvala svima na odgovorima. Da li je velika razlika izmedju
> bc++ 2.0 i 3.1, pošto mi je 2.0 zbog veličine
> primamljiviji :)? Tačnije, šta 3.1 ima
na kraju se ispostavilo da BC++2.0 nije ispravno prevodio neke inline
asm istrukcije što je za sobom (dnevnom) povlačilo sumanute greške.
takođe, kôd koji sam prevodio (++) sa 2.0 lepo je radio, ali zato na
3.1 nije. morao sam malo da podesim neke delove tako da sve proradi
(sad se ne sećam, ali mislim da je bilo reči o različitom redosledu
inicijalizacije klasa).
drugo, biblioteke uz 3.1 su (čini mi se) kompletnije, tako da je broj
bagova smanjen (nisam do sada našao ni jedan!).
treće, mislim da 3.1 podržava viši standard C++ od 2.0, ali nisam
siguran. te statističke stvari zna janko ;))
zbog fleksibilnosti ti preporučujem 3.1, ali ako imaš 286, onda je
bolje 2.0. oba su dobra i moćna.
cccc.62robert,
>> Koliko je velik BC 2.0? Koji je najmanji C++, u razumnoj meri,
>> dakle do 10Mb? Ukoliko nema manjeg, može li se 'seckati' veći i
>> smanjiti na <10?
Izvini što tek sad odgovaram ali imam sledeći predlog: ako ne
nameravaš da radiš pod Win, onda uzmi jednostavno TC++ 3.0. On treba
da ti vrši posao isto kao BC++ 3.0 samo bez Win dela, dakle čisto za
DOS. Onda možeš da ga skrešek kako hoćeš bez razmišljanja. Mada,
verovatno ti i BC++ 3.1 nudi pri instalaciji izbor za čist DOS...
Ja sam lično koristio TC++ 1.01 i bio sam vrlo zadovoljan i mislim
da je to za početak super. Pogotovo što može da se skreše na 2-3 Mb.
Ne moraš odma da kupiš najskuplje Reebok patike, možeš da kreneš i sa
Puma ili sl. :))).
cccc.63ssokorac,
─┼┤ zbog fleksibilnosti ti preporučujem 3.1, ali ako imaš 286, onda je
─┼┤ bolje 2.0. oba su dobra i moćna.
Imam 286 i trenutno sam instalirao 2.0. 3.1 ne radi na 286, ili je
monstruozno spor? :) I ovaj je već ubitačno spor :(.
Ti bagovi nisu neki veliki, mislim, ne sreću se u ne previše egzotičnom
radu? :)
cccc.64d.petrovic,
Ă> Koliko je velik BC 2.0? Koji je najmanji C++, u razumnoj meri,
Ă> dakle do
TC 1.0, može da se skreše na 2-3 MB
cccc.65ssokorac,
─┼┤ Ne moraš odma da kupiš najskuplje Reebok patike, možeš da kreneš i sa
─┼┤ Puma ili sl. :))).
Bolje da uzmem Reebok dok mogu, nego posle da žalim kad bi zafali djon
:). (bože, kakve metafore ;).
Windows mi za sada ne treba, ali će verovatno zatrebati... Dakle,
potražiću i taj 3.1, ali za početak je dosta i ovo.
cccc.66mbacic,
Hitno mi je potrebno kako setovati odredjeni BIT-PLANE na Trident 8900
kartici!!!!!
Unapred zahvalan Mbacic.
PS:Po mogucstvu primer na C-u.
cccc.67milos,
Danas sam instalirao Visual C++, i kada sam hteo da pogledam kako radi DOS
kompajler ugrađen u njega, on mi je odgovorio:
Microsoft (R) C/C++ Optimizing Compiler Version 8.00 (!!!!!!!)
krugovi.c
.
.
.
Da li neko zna nešto o MSC-u 8.0 ?
cccc.68vitez.koja,
#=> Ti bagovi nisu neki veliki, mislim, ne sreću se u ne
#=> previše egzotičnom radu? :)
Ma kakvi, nisu veliki ;) Sem ukoliko pod velikim bagom ne smatraš grešku u
funkciji cprintf :((((
cccc.69bulaja,
**** new file ****
R:\IBMPC\C\*.*
----------------------
emsif24 zip 67044 EMSIF v2.4, C interface za LIM EMS funkcije
EMSIF provides a high-level interface to LIM EMS control functions
for common operations such as allocating, mapping, and freeing EMS, and
copying data to and from EMS. The interface has been made independent of
the EMS version implemented by the EMS driver as far as possible, so
that parameters and returned data are always in the same format, but the
EMS call most appropriate to the EMS version implemented by the driver
is used.
cccc.70ssokorac,
─┼┤ Ma kakvi, nisu veliki ;) Sem ukoliko pod velikim bagom ne smatraš
─┼┤ grešku u funkciji cprintf :((((
Pa, to baš nije mnogo zgodno :(. U čemu je greška?
cccc.71niklaus,
> Imam 286 i trenutno sam instalirao 2.0. 3.1 ne radi na 286, ili je
> monstruozno spor? :) I ovaj je već ubitačno spor :(.
Zar ti nisu poklonili (kao uspešnom takmičaru) nešto bolje.
Uzgred kako si proš'o ove godine (je si li dogurao do Arg.)
Pozdrav (:niklaus:)
cccc.72ssokorac,
─┼┤ Zar ti nisu poklonili (kao uspešnom takmičaru) nešto bolje.
Ih, naravno, dobio sam miša :) :(.
─┼┤ Uzgred kako si proš'o ove godine (je si li dogurao do Arg.)
Naravno :).
cccc.73mdimitrijevic,
Napisao sam program u C-u slican BMEM-u. Prikazuje sve zivo Device Drivere
TSR programe preuzete interapte itd... Ali nikako nemogu da saznam duzinu
Device Drivera. Na peimer BO.SYS (160 bytes), HIMEM-a i slicno.
P.S. Pomagajte please ...
Pozdrav,
Marjan Dimitrijevic
cccc.74peca.st,
!-> Windows mi za sada ne treba, ali će
!-> verovatno zatrebati... Dakle, potražiću i
!-> taj 3.1, ali za početak je dosta i ovo.
Ajde sad i u konf. da pitam:
Kako naterati BC++ 2.0 da radi na 286 / 1 Mb pod winom?
Peđa.
cccc.75pbojan,
>> TSR programe preuzete interapte itd... Ali nikako nemogu da
>> saznam duzinu Device Drivera. Na peimer BO.SYS (160 bytes),
>> HIMEM-a i slicno.
E, svasta. Pa kad si vec, kazes, napravio program slican BMEM-u,
zar ti nije palo na pamet da pitas tvorca BMEM-a za pomoc? ;)))
cccc.76vitez.koja,
#=> Pa, to baš nije mnogo zgodno :(. U čemu je greška?
Ako ti je kursor na dnu ekrana (25. red) \n nece da ubaci praznu liniju na
dno, vec ce da duplira trenutnu donju liniju.
cccc.77niklaus,
> ─┼┤ Zar ti nisu poklonili (kao uspešnom takmičaru) nešto bolje.
>
> Ih, naravno, dobio sam miša :) :(.
Baš tako (: & ):
> ─┼┤ Uzgred kako si proš'o ove godine (je si li dogurao do Arg.)
>
> Naravno :).
žestitam, i kako je tamo bilo?
(:niklaus:)
cccc.78niklaus,
> Ajde sad i u konf. da pitam:
>
> Kako naterati BC++ 2.0 da radi na 286 / 1 Mb pod winom?
Sekirom...
..ili pretnjom sa novom plohom... (;
(;niklaus;)
cccc.79ssokorac,
─┼┤ žestitam, i kako je tamo bilo?
Tek idemo :). Možda. :(
cccc.81djelovic,
Tema: Štampanje na mreži, C, C++, Clipper
--------------------------------------------------------------------------
Trenutno sva štampanja radim kroz neku svoju klasu koja se
naslanja na biosprint funkciju, ali me je mali prilog iz novog
comp.os.msdos.programmer FAQ-a podsetio na probleme koje sam imao kada
sam ranije iz mojih programa slao fontove na mrežni štampač. To sam
radio sa:
FILE *prn = fopen ("PRN", "wb");
i naknadnim slanjem fonta bajt po bajt. Ovo, iz nepoznatih razloga, za
neke fontove nije radilo. A evo i zašto:
Izgleda da se, čak i za binarnu datoteku, znak Ctrl-Z (26)
poslat štampaču ignoriše! Fontovi koji su ga sadržali naravno nisu
radili. Da bi ste to izbegli treba samo da prebacite štamač između
takozvanih "coocked" i "raw" modova. To se radi sa:
ioctl(fileno(prn), 1, ioctl(fileno(prn),0) & 0xFF đ 0x20, 0);
na Borland C-u, dok će Mikrosoftovci morati da koriste INT 21/44.
žini mi se da od iste muke pate i mnoge Klipete (programeri na
Clipperu :-)), pa zato većina njih štampa prvo u fajl, pa onda poziva
COPY ili NETPRINT. Možda sada i oni nađu rešenje?
cccc.82.bale.,
> Izgleda da se, čak i za binarnu datoteku, znak Ctrl-Z (26)
> poslat štampaču ignoriše! Fontovi koji su ga sadržali naravno nisu
> radili. Da bi ste to izbegli treba samo da prebacite štamač između
> takozvanih "coocked" i "raw" modova. To se radi sa:
>
> ioctl(fileno(prn), 1, ioctl(fileno(prn),0) & 0xFF đ 0x20, 0);
žitao sam na news serveru na fon-u istu stvar u vezi sa PostScript-om.
Mora da je u raw modu da ne bi odštampao PostScript fajl kao običan
ascii.
cccc.83janko,
> treće, mislim da 3.1 podržava viši standard C++ od 2.0,
> ali nisam siguran. te statističke stvari zna janko ;))
Nema to veze sa statistikom, bolan. Već sa nebom i zemljom.
cfront 3.0 nivo (njega ima BC 3.1) ima puno toga što fali 2.1
nivou (njega ima BC 2.0). Ovde izgleda neko nije čuo za
templejte u C++-u? He, he.
> zbog fleksibilnosti ti preporučujem 3.1, ali ako imaš 286,
> onda je bolje 2.0. oba su dobra i moćna.
Ima jedna sitnica. BC 3.1 ne radi bez 4MB RAM-a. (Tačnije, radi
i sa 2, ali jedva) Staša, ako imaš manje, uzmi 2.0. Tu BCC radi
fino i u osnovnoj memoriji. Integrisana okolina i tu je
prespora bez 2MB i BCX.
Kad se škarta sve suvišno, i kad se piše samo za DOS, 2.0 arči
8 MB, a 3.1 malo jače od deset.
cccc.84janko,
Skoro sam ovo iskopao:
> Where is HL - Borland's Help Linker :
> HL is not included with Borland C++ or Borland Pascal, Borland sells an
> aditional package called Borland Open Architecture (and Borlad OA for
> Pascal) that include among other things - the THELP help linker.
Ko ima HL i prateće fajlove koji mu trebaju? Slobodno nek' mi se
javi, biće opšte korisno. :)
cccc.87mjova,
> nivou (njega ima BC 2.0). Ovde izgleda neko nije čuo za
> templejte u C++-u? He, he.
pa 'desi bre janko, čekam tvoj odgovor već nedelju dana ;))
btw, šta je to templejte? ;))
cccc.88mjova,
> Ko ima HL i prateće fajlove koji mu trebaju? Slobodno nek'
> mi se javi, biće opšte korisno. :)
jesi li gledao kako izgleda baza? ja sam u nekoliko uzaludnih
iteracija pokušao da provalim i da od baze dobijem nekakav tekst.
šta da kažem, rezultat je bio poražavajući.
video sam kako se kodira tekst, ali ništa više. reference, početak -
kraj zapisa... ništa... u stvari, provalio sam tabelu (dobija se sa
shift-f1), ali ništa više.
tako bi bilo moćno izbaciti sve ono što je suvišno u bazi...
cccc.89ssokorac,
─┼┤ i sa 2, ali jedva) Staša, ako imaš manje, uzmi 2.0. Tu BCC radi
─┼┤ fino i u osnovnoj memoriji. Integrisana okolina i tu je
Imam manje :(, zato i sedim na 2.0. Spro je, ali radi... Ipak, ja imam
sasvim osrednje znanje c++-u za sada, tako da mi više verovatno ne treba.
Ali, tri.jedan :) ću da držim na disketama da čeka bolji comp :).
cccc.90ssokorac,
─┼┤ btw, šta je to templejte? ;))
Btw, može li neko stvarno da kaže šta je to, jer u helpu 2.0, naravno,
nema ništa osim da je rezervisana reč za kasniju upotrebu, a onaj
XMS100JE.zip ima brdo toga u sebi :).
cccc.91baranja,
Koristim Borland-ov Turbo C++ Ver 1.0 (uskoro 3.0). Zanima me da li
postoji mogucnost snimanja dela ekrana u buffer, nesto slicno kao u
Clipper-u savescreen i restorescreen, ali da radi u graficnkom modu.
Nadam se da se ne ljutite sto postavljam mozda trivijalna pitanja,
ali uzmite u obzir da u C radim svega 20-tak dana, a moram resiti dosta
slozen problem.
cccc.92milos,
Imaš GetImage i PutImage, pa ti vidi... :)
cccc.93milos,
Trenutno nisam pri vremenu, ali ću u jednoj od porukica malo izdetaljisati
templejtove. Inače jako moćna stvar. žudi me mjovo, kako TI to ne znaš... :)
cccc.94janko,
> btw, šta je to templejte? ;))
E, sad ne znam da li pitaš ozbiljno? :)
Ali, hajde, možda nekom bude koristilo... Piše se template,
čita templejt, a skoro je ekvivalentno generic principu u Adi.
Do cfront 3.0 nivoa, zamena za templejte se ostvarivala peške,
pomoću malo #define naredbi. (Staša, pogledaj GENERIC.H u BC
2.0) Od 3.0 nivoa, njih realizuje sam prevodilac, tj. stvarno
su deo jezika. A šta rade? Omogućavaju da napišeš jednom nešto
(klasu, procedure), a posle to nešto radi sa bilo kojim tipom
podataka. Jedino što se za svaki tip generiše poseban kod. Ali
ti u sorsu napišeš samo jednom.
Više o tome, bilo bi zgodnije u cpp temi?
> pa 'desi bre janko, čekam tvoj odgovor već nedelju dana
> ;))
Haj, Miljane! Dobro te našao!
Eto, ja malo (tako, pet nedelja) bio odvojen od tastatura i
ekrana. :) Pre jedno tri nedelje me je i nostalgija malo
uhvatila. Niko mi ne piše, ne javlja se. :)
cccc.95mjova,
> Trenutno nisam pri vremenu, ali ću u jednoj od porukica
> malo izdetaljisati templejtove. Inače jako moćna stvar.
> žudi me mjovo, kako TI to ne znaš... :)
samo napred
nadam se da onaj ';)' znači da znaš da se radi o zezanju ;)
cccc.96debelijencija,
!=?> Btw, može li neko stvarno da kaže šta je to, jer u helpu
!=?> 2.0, naravno,
To ti je nešto kao makroi u C-u. Tj. treba da ima sličan efekat. Napišeš
neku uopštenu klasu (ili funkciju), koja posle radi sa svim tipovima (float,
int ...). Nisam to koristio, mada kažu ljudi da može da bude korisno.
Prednost u odnosu na makroe je provera tipova. Zvuči malo konfuzno, jasnije
je uz primer.
U svakom slučaju, skini CPPTUT*.zip iz C direktorijuma, sve lepo piše :).
P.S. žudo da ti dosad nijedan eksperat C++a nije ništa odgovorio... :)
cccc.97baranja,
Hvala, idem da probam, da li working i kako.
cccc.98mbacic,
Hteo bih da radim sa sprajtovima pa ako bi neko mogao da stavi neki primer na
tu temu(po mogucstvu C/C++).
Unapred zahvalan Marko.
cccc.99vjokic,
Evo i moje prve poruke. Problem ovakav: koristio bih Paradox Engine 3.0 sa TC
2.0. Medjutim, pxengine.h ima komentare '//'. Ok, to sam iskorenio, ali, kada
pokušam da iskompajliram neke od examplea, dolazi do greške pri linkovanju.
Naime, linker javlja 'undefined symbol PXINIT in module....', ili za bilo koju
drugu funkciju. Onda sam probao sa Tlink-om iz komandne linije, međutim, on
javlja 'undefined sybol...' u samoj biblioteci (pxengtcl.lib). Misterija? Ili
je nešto do mene.... Pomagajte :(
vj
cccc.100v.nesic,
Na Imtelu ima biblioteka za rad sa neuro mrežama, pa ako bi neko bio
dobar da to prebaci ovde...
cccc.101mirkot,
Da li postoji grupa koja se bavi neuronskim mrezama? Ako postoji, voleo bih
da se pridruzim, a ako ne postoji mogli bi da otvorimo jednu.
U prikacenom fajlu su programi koji idu uz knjigu:
B. Mueller, J. Reinhardt : Neural Networks, Springer Verlag, 1990.
cccc.102v.nesic,
> U prikacenom fajlu su programi koji idu uz knjigu:
U prikačenom fajlu je oštećena arhiva :(
Pošto me jako zanima, da li bi bio dobar da ponovo okačiš?
cccc.103bulaja,
│Na Imtelu ima biblioteka za rad sa neuro mrezama,
│pa ako bi neko bio dobar da to prebaci ovde...
└───
Skinuo sam sa Imtela, danas je biti stavljeno na Sezam.
cccc.104djelovic,
> Na Imtelu ima biblioteka za rad sa neuro mrežama, pa ako bi neko bio
> dobar da to prebaci ovde...
Jel neko ovde imao iskustva sa polinomalnim mrežama? Kažu da
skoro toliko precizne kao neuronske mreže, ali ih uopšte ne treba
stvarati! Navodno, samo daš primere, i deset minuta kasnije imaš mrežu!
cccc.105rakicm,
> U prikacenom fajlu su programi koji idu uz knjigu:
>
> B. Mueller, J. Reinhardt : Neural Networks, Springer Verlag, 1990.
Ne znam da li je kod mene problem, ali pokusao sam dva puta
sa skidanjem tvoje poruke i neuro.zip fajla, ali oba puta mi
je fajl imao gresaka.
Mozes li ponovo da posaljes fajl?
hvala.
mladen
cccc.106mirkot,
Ne znam sta nije u redu sa fajlom neuro.zip. Prenos je bio sa MNP4 + zmodem.
Proverio sam i fajl koji sam poslao.
U svakom slucaju evo ga ponovo, a onaj stari cu obrisati.
neuro.zipcccc.107dlazic,
Jedno pitanje!
Uzeo sam da radim sa bibliotekom koja je data jos davno u
umetku racunara (rac.lib kako ju je autor A. Radovanovic
nazvao).
Jasno sve sam preuzeo sa SEZAM-a u vidu fajla r064ume.zip.
Medjutim bilo kako da napisem program koji koristi tu biblioteku
pri napustanju programa javi se poruka
null pointer assignment
Pokusavo sam da prepravim neke pointere i njihove
inicijalizacije, ali za sada nisam uspeo.
Moze li to neko da mi resi da se ne mucim dalje.
Hvala unapred.
Pozdrav
***DVL***
cccc.108v.nesic,
>│ Na Imtelu ima biblioteka za rad sa neuro mrezama,
>│ pa ako bi neko bio dobar da to prebaci ovde...
>└───
> Skinuo sam sa Imtela, danas je biti stavljeno na Sezam.
Ja je još ne videh. Gde je ?
cccc.109nbulatovic,
interesuje me, da li postoji na sezamu neka grupa koja se bavi
neuronskim
mrezama, algoritmima, matematikom... ? ako postoji mogli bi i mene da
ubacite
nbulatovic
cccc.110milos,
Ja sam je koristio, ali dosta davno, uglavnom se secam da sam problem resio
tako sto sam sve prekompilovao i napravio LIB sa onim kompajlerom sa kojim
koristim biblioteku, jer se u arhivi (valjda) isporucuje i jedna biblioteka.
inace, mislim da ti se poruka nece prikazivati u tvojim programima, nego samo u
onom glupom primeru, a ako te interesuje, poslacu ti jedno moje programce...
cccc.111djelovic,
> interesuje me, da li postoji na sezamu neka grupa koja se bavi neuronskim
> mrezama, algoritmima, matematikom... ?
Da li postoje grupa ne znam, ali znam da sve tri teme koje si naveo
ovde zanimaju i širi auditorijum. Prema tome, raspali po konferenciji! :-)
cccc.112bulaja,
│││ Na Imtelu ima biblioteka za rad sa neuro mrezama,
││└───
││Skinuo sam sa Imtela, danas je biti stavljeno na Sezam.
│└───
│Ja je jos ne videh. Gde je ?
└───
Sorry, nisam stigao da je okacim. Bice sigurno na Sezamu do srede,
zajedno sa jos nekim vecim uploadima koji cekaju :) (MS Mouse i sl.).
cccc.113dlazic,
***> nego samo u onom glupom primeru, a ako te interesuje,
***> poslacu ti jedno moje programce...
U fajlu r064ume.zip nalaze se cetri sorsa (rac.h defkey.h lowfn.c i menu.c) kao
i jedan primer takodje sors (smesten u fajlu e.doc).
Znaci sve treba kompajlovati (nema nista sto je vec kompajlovano).
A sto se tice programcica posalji. Da pogledamo sta je.
Evo u medjuvremenu sam otkrio i gresku. Bio si u pravu ona se javlja samo
u datom primeru, a razlog je u pozivu: free (window_buffer);
Dakle sve je razjasnjeno.
Ipak posalji i tvoje fajlove. Od viska glava ne boli. Ako nadjem nesto
interesantno za mene javljam ti.
Hvala na pomoci.
Pozdrav
***DVL***
cccc.114bulaja,
**** new file ****
R:\IBMPC\C\*.*
----------------------
nnutl101 a01 120616 Utils za programiranje neuralnih mreza u C-u #1
nnutl101 a02 119976 Utils za programiranje neuralnih mreza u C-u #2
NNUTILS.ZIP
by Gregory Stevens (stevens@prodigal.psych.rochester.edu)
ver 1.01
Tutorial Package Comments, Instructions, Documentation
This is a Public Domain package of files that are meant to help you to
get started programming neural networks in C. In essence, it is a tutorial
about how to program neural networks (or how to program in C, depending on
what you need to learn more), where instead of the tutorial being readable
text, it is readable code. There are include files here with overdocumented
code that contains everything you need to implement several kinds of net
archetectures. What you get in this package is a couple text files in
the main directory you unzip to, and then a series of simple implementations
using the include files to let you, step by step, see how they work.
< Preuzeto sa Imtel BBS-a >
cccc.115skerl,
The C-Library for DPMI-Specification 0.9 and Protected Mode
Files include in dpmi_lib.zip:
dpmi.txt : this file
dpmiutil.c : Main C-file include the Dpmi/PM -library
dpmiutil.obj : Object-file
dpmi.h : Header file for dpmi programs
dpmi_v1.exe : Demo 1 : shows the System-Tables used in Protected Mode
dpmi_v1.c : sources demo1
dpmi_v1.mak : Makefile demo1
dpmi_v1.pif : Windows 3.0 386/PIF-file for demo1
dpmi_v2.exe : Demo 2 : memory info and test program
dpmi_v2.c : sources demo2
dpmi_v2.mak : Makefile demo2
dpmi_v2.pif : Windows 3.0 386/PIF-file for demo2
Pozdrav,
Skerl.
dpmi_lib.zipcccc.116janko,
> The C-Library for DPMI-Specification 0.9 and Protected
> Mode
Svaka čast, Ivane. Konačno smo na Sezamu dobili "pokriven" i
DPMI.
cccc.117djelovic,
Ima li način da se promeni "mode" već otvorenog fajla. Znači, hoću
recimo da otvorim datoteku (na stari način, sa hendlovima) za čitanje i
pisanje, a posle da je promenim da bude samo za čitanje.
P.S. Ovo mi treba da bi implementirao read-lock, pa prema tome ako neko ima
foru za to bez gorespomenutog zezanja...
cccc.118v.nesic,
> recimo da otvorim datoteku (na stari način, sa hendlovima) za čitanje i
A šta ti je novi način ? Ovo pitam jer izgleda više nisam u toku :(
cccc.119djelovic,
> A šta ti je novi način ? Ovo pitam jer izgleda više nisam u toku :(
Sada se umesto hendlova (i bahova :-)) koristi struktura FILE, propisana
ANSI standardom. S obzirom na to koliko je ova konvencija stara, čini mi se da
bi svakako trebao da modernizuješ :-).
cccc.120mjova,
> Ima li način da se promeni "mode" već otvorenog fajla.
> Znači, hoću recimo da otvorim datoteku (na stari način, sa
> hendlovima) za čitanje i pisanje, a posle da je promenim
> da bude samo za čitanje.
kako sam razume tebi treba zaključavanje datoteka. to se radi tako što
fajl otvoriš sa _fsopen(), a ako želiš da promeniš mod onda to radiš
sa setmode(). set mode je iz io.h, a onda druga ti je poznata (valjda ;)
cccc.121miroljub,
Pogledajte poruku br. 13 - tema KNJIGE u konferenciji PC.USER.2
cccc.122v.nesic,
> čini mi se da bi svakako trebao da modernizuješ :-).
Hvala :)
cccc.123pedjak,
> Sada se umesto hendlova (i bahova :-)) koristi struktura FILE,
> propisana ANSI standardom. S obzirom na to koliko je ova konvencija
> stara, čini mi se da
Da, ali sigurno se negde u FILE strukturi nalazi i zapisan hendl.
Ako to nešto može da ti pomogne...
cccc.124debelijencija,
!=?> Ima li način da se promeni "mode" već otvorenog fajla.
Pa, valjda funkcija setmode radi baš to?
Tj. u helpu piše:
setmode(int handle,int amode); Sets mode of an open file.
Radi sa hendlovima, baš ono što ti treba.
Nisam probao, verujem Borlandu na reč. :)
I inače, ne koristim taj način, već sa FILE strukturom. Kad sam ja počeo da
se bavim C-om, već napisaše ANSI standard. :)
cccc.125debelijencija,
!=?> Da, ali sigurno se negde u FILE strukturi nalazi i zapisan
!=?> hendl.
Ne, ne nalazi se, koliko sam ja video.
cccc.126skerl,
│> The C-Library for DPMI-Specification 0.9 and Protected
│> Mode
│
│ Svaka cast, Ivane. Konacno smo na Sezamu dobili "pokriven" i
│ DPMI.
└────
Evo jos neceg na temu DPMI sto imam pa recite da li da
saljem (pdmigcc1.zip 466,905 bytes).
-------------------------------------------------------------------------------
-
README.TXT DPMI-RSX (c) Rainer Schnitker 5/93
-------------------------------------------------------------------------------
-
The big DOS ports for GNU-C 2.x have one great disadvantage: they can't run
under a DPMI-Server. So you must reboot or exit the server.
My DPMI DOS-extender RSX can run unmodified EMX-0.8e+/GCC-programs.
The compiler works under DPMI-servers like MS-Windows, QEMM, 386MAX, etc. -
and you don't need a 387-processor.
RSXdj can also run relinked DJGPP-programs. The orginal a.out programs
can't run. The orginal extender run at privileg level 0, so there are some
restrictions. Some extensions for libc.a can be used (signals, fork, ptrace).
DPMIRSX contains :
- DPMI-compatible DOS-extender for GCC/EMX-0.8e+ programs.
+ 387 emulator
- DPMI-compatible DOS-extender for new linked GCC/DjDelorie 1.05+ programs.
- DPMILIB 1.1, the DPMI-Library for the DPMI specifiction 0.9
( version 1.00 exist on internet since 1991, some bugs fixed now )
- all source codes ( RSX-extender, FPU-emulator )
Pozdrav,
Skerl.
cccc.127djelovic,
> Da, ali sigurno se negde u FILE strukturi nalazi i zapisan hendl.
> Ako to nešto može da ti pomogne...
Naravno! FILE struktura i služi samo da bi se:
█ Dodali baferi i funkcije kakva je ungetc (pamti prethodni znak)
█ Izbeglo direktno korišćenje hendlova, zbog portabilnosti na
sisteme kod kojih se I/O vrši na druge načine.
cccc.128djelovic,
> setmode(int handle,int amode); Sets mode of an open file.
Na žalost, setmode samo menja mode fajla iz BINARY u TEXT i
obratno, a meni je potrebno READ+WRITE <-> READ.
> I inače, ne koristim taj način, već sa FILE strukturom. Kad sam ja počeo da
> se bavim C-om, već napisaše ANSI standard. :)
Na žalost, baferizovan ANSI standard i zaključavanje slogova se ne
slažu baš najbolje. Naravno, uvek se može isključiti baferizovanje, ali
onda čemu dodatni kilobajti koje STDIO.H odnosi kada već koristim IO.H?
cccc.129djelovic,
> > Da, ali sigurno se negde u FILE strukturi nalazi i zapisan
> > hendl.
>
> Ne, ne nalazi se, koliko sam ja video.
Nalazi se, ali pod drugim imenom: fd, file descriptor. Postoji čak
i makro fileno koji FILE* pretvara u hendl.
cccc.130djelovic,
> Herbert Schildt - "Turbo C/C++ the Complete Reference"
> second edition, 1992. Osborne McGraw Hill.
Knjiga je stara i loša. Ako hoćeš, javi se da ti dam jednu
podjednako staru i lošu, za đabe :-).
cccc.131djelovic,
> Evo jos neceg na temu DPMI sto imam pa recite da li da
> saljem (pdmigcc1.zip 466,905 bytes).
Mislim da nema potrebe da se sa ovim zezaš, ionako je namenjeno
samo djgpp-u koji kod nas (skoro) niko ne koristi. Ako nekoga već puno
zanima DPMI, video sam skoro na Internetu neku zgodnu C++ biblioteku za
baratanje gorespomenutom. Elem, ako treba, recite, pa da iskopam adresu.
cccc.132milos,
>> se nalazi hendl.
Ne nalazi se direktno, ali postoji funkcija fileno(FILE) koja vraća
hendl...
cccc.133milos,
<< Da ti dam jednu isto lošu za džabe (!!)
Izvini, ako si već tako velikodušan, možda nekome neće biti toliko loša.
BTW, ako se čoveku ne svidi, mail me
cccc.134djelovic,
> Izvini, ako si već tako velikodušan, možda nekome neće biti toliko loša
> BTW, ako se čoveku ne svidi, mail me
Nisam velikodušan :-) već mi knjiga trenutno ne treba pa nemam ništa protiv
da je nekom pozajmim na neodređeno veliki rok :-). Elem, kome treba nek se
javi... :-)
cccc.135nkbog,
> Znači, hoću recimo da otvorim datoteku (na stari način, sa hendlovima)
> za čitanje i pisanje, a posle da je promenim da bude samo za čitanje.
> Ovo mi treba da bi implementirao read-lock, pa prema tome ako neko ima
> foru za to bez gorespomenutog zezanja...
Read-lock pod MS-DOS-om ne postoji. Postoji samo ekskluzivni lock. Ali
jedno rešenje za ono što ti treba (pošto legalno na nivou MS-DOS-a ne
postoji - nema DOS poziva koji menja način pristupa datoteci) je da
otvoriš datoteku dva puta odjednom (jednom za čitanje i pisanje, drugi
put samo za pisanje), pa onda koristiš onaj hendl koji ti treba.
UBR, hendlovi nisu stari način već samo nestandardan. Štaviše, FILE
struktura pre odgovara FCB-u, pa ispada da su hendlovi savremenija
stvar ;). Šalu na stranu, stvar je što se FILE može implementirati
i sa FCB i sa hendlovima.
NB.
cccc.136nkbog,
> kako sam razume tebi treba zaključavanje datoteka. to se radi tako što
> fajl otvoriš sa _fsopen(), a ako želiš da promeniš mod onda to radiš
> sa setmode(). set mode je iz io.h, a onda druga ti je poznata (valjda ;)
Kod kog to kompajlera setmode postavlja pravo pristupa?
setmode treba da postavlja samo način konverzije: tekst ili binarno
Pogotovu, setmode, ne bi smeo da se koristi kod FILE* funkcija, jer
one baferuju podatke, te baferovani podaci ne bi bili obrađeni u skladu
sa načinom pristupa. Isto važi i za _fsopen, tamo pre svakog zaključavanja
treba izvršiti fflush.
NB.
cccc.137bulaja,
│ Ima li nacin da se promeni "mode" vec otvorenog fajla. Znaci, hocu
│recimo da otvorim datoteku (na stari nacin, sa hendlovima) za citanje i
│pisanje, a posle da je promenim da bude samo za citanje.
└───
Pa mozes da napravis proceduru koja zapamti file pointer u FILE
strukturi (ako ti treba), zatvori datoteku i onda je odmah ponovo
otvori sa trazenim modom, a vrati ti novi FILE (gde prethodno podesi
file pointer).
cccc.138pbojan,
>> - DPMILIB 1.1, the DPMI-Library for the DPMI specifiction 0.9
>> ( version 1.00 exist on internet since 1991, some bugs fixed
>> now )
>>
>> - all source codes ( RSX-extender, FPU-emulator )
Evo, mene zanima ;).
cccc.139mjova,
> Kod kog to kompajlera setmode postavlja pravo pristupa?
> setmode treba da postavlja samo način konverzije: tekst
> ili binarno
da, onaj koji je to probao primetio je da sam pogrešio ;). no u svakom
slučaju mislio sam na funkcije lock, locking i unlock. (dos fn 5c).
> Pogotovu, setmode, ne bi smeo da se koristi kod FILE*
> funkcija, jer one baferuju podatke, te baferovani podaci
> ne bi bili obrađeni u skladu
e, kad se samo setim kako sam to naučio ;). bilo je to jedno od
mukotrpnih iskustava vezanih za fajlove... (ima u nekoj od pc.prog
konferencija ovde ;))
cccc.140janko,
> Mislim da nema potrebe da se sa ovim zezaš, ionako je
> namenjeno samo djgpp-u koji kod nas (skoro) niko ne
> koristi.
I meni se čini da taj kompajler niko ne koristi.
cccc.141ppekovic,
>>> Mislim da nema potrebe da se sa ovim zezaš, ionako je
>>> namenjeno samo djgpp-u koji kod nas (skoro) niko ne
>>> koristi.
>>
>> I meni se čini da taj kompajler niko ne koristi.
Ja sam ga instalirao jer mi je trebalo da prenesem neke
programe sa unix-a na dos. Komajler radi ok. U stvari u paketu su
dva odvojena kompajlera jedan za C drugi za C++. Imaš curses
library, gomilu unix-like utility-a, itd. Sve u svemu nije loše.
Jedine zamerke su što jako sporo kompajlira kao i što ne može (ili
ja neznam kako) da napravi 8086 kod. Takođe, mali problem je što
ne podržava DPMI već VCPI. U stvari, od ove verzije podržava, ali
pod windows-om ne može da prevede veće programe. .EXE-i rade pod
DPMI-om.
Koga zanima 386 kompajler (ima svoj extender) vredi probati.
Ima ga na FFS-u u dir-u /msdos/djgpp
Paya
cccc.142janko,
> Koga zanima 386 kompajler (ima svoj extender) vredi
> probati. Ima ga na FFS-u u dir-u /msdos/djgpp
Da li daje 32-bitni kod ili ne?
Već mi postaje zanimljiv.
Zašto ti je baš on odgovarao za prenošenje UNIX programa na
DOS? Da li baš zato što nema famozni 64K limit?
cccc.143akocmaruk,
Ima li neko da mi mailne jednu dobru C funkciju za inverziju matrica.
U onom cephes-* zbiru mat funkcija, sto stoji u direktorijumu C takva f-ja je
navedena ali nije ukljucena.
Hitno mi je.
Pozdrav
cccc.144bojt,
>> Ima li neko da mi mailne jednu dobru C funkciju za inverziju
>> matrica.
Ako je za MS C mogu da ti pošaljem OBJ u fortranu, a to se posle
lako linkuje.
cccc.145ppekovic,
>> Da li daje 32-bitni kod ili ne?
Da.
>> Zašto ti je baš on odgovarao za prenošenje UNIX programa na
>> DOS? Da li baš zato što nema famozni 64K limit?
Između ostalog i zbog toga ali i zbog curses biblioteke i zbog
jednakih imena header fajlova i zbog jednakih deklaracija, ...
Dakle, zbog toga što kažem make i sve radi.
Paya
cccc.146akocmaruk,
Vise bi mi koristio source u fortranu. Ako imas salji, ako ne onda nista.
Koristim TC++.
Ipak hvala. Pozdrav.
cccc.147niklaus,
> I meni se čini da taj kompajler niko ne koristi.
Eeek, WRONG!
Ja (barem ozbiljno nameravam) da ga koristim.
Jedina prepreka što bi mi transfer kompletnog
'GNU C Compiler'-a sa FON-a oduzela 6-7 sati. Ako ga neko već ima,
neka me obavezno obraduje.
Napominjem, da sam vrlo svež C-vitaminac i da nisam
uopšte zajažljiv po pitanju 'Imati što noviji kompajler sa
što više pluseva!'. Štaviše koristim TC 2.0 sa velikim osmehom
na licu. (((:
(:niklaus:)
cccc.148mjova,
>>> Zašto ti je baš on odgovarao za prenošenje UNIX programa
>>> na DOS? Da li baš zato što nema famozni 64K limit?
> Između ostalog i zbog toga ali i zbog curses biblioteke i
> zbog jednakih imena header fajlova i zbog jednakih
> deklaracija, ... Dakle, zbog toga što kažem make i sve
> radi.
pajo, pa jel može crisp sa time da se prevede? ;)
cccc.149ppekovic,
>> pajo, pa jel može crisp sa time da se prevede? ;)
Probaću pa ću da javim rezultate.
Paya
cccc.150skerl,
dpmigcc1.zip 1/3
dpmigcc1.a01cccc.151skerl,
dpmigcc1.zip 2/3
dpmigcc1.a02cccc.152skerl,
dpmigcc1.zip 3/3
dpmigcc1.a03cccc.153djelovic,
Za one koji ne znaju (recimo mene :-)), evo default aritmetičke
konverzije pri računanju:
1. Ako je bilo koji operand char, unsigned char ili short pretvara se u int.
2. Ako je bilo koji operand double, drugi se pretvori u double i to je tip
rezultata.
3. Ako nije slučaj pod 2, onda ako je bilo koji operand unsigned long, i
drugi se pretvara u unsigned long.
4. Ako nije slučaj pod 3, onda ako je bilo koji operand long...
5. Ako nij nije slučaj pod 4, onda ako je bilo koji operand unsigned int...
6. Ako nije slučaj pod 5, onda su oba opernada tipa int, i to je tip
rezultata.
cccc.154debelijencija,
!=?> Za one koji ne znaju (recimo mene :-)), evo default
!=?> aritmetičke konverzije pri računanju:
Evo ja ne bio lenj (šta mi bi? :) pa prepisao šta piše u K&R:
A6.5 Aritmetičke konverzije
Mnogi operatori vrše konverzije, i prikazuju rezultujuće tipove na
sličan nažin. Efekat je taj, da se operandi podvedu pod zajednički tip koji je
istovremeno i tip rezultata. Taj oblik se naziva uobičajena aritmetička
konverzija.
Prvo, ako je jedan operanad long double, drugi se konvertuje u long double.
Inače, ako je jedan operand double, drugi se konvertuje u double.
Inače, ako je jedan operand float, drugi se konvertuje u float.
Inače, integralne promocije se obavljaju na oba operanda; onda, ako je jedan
operand unsigned long int, drugi se konvertuje u unsigned long int.
Inače, ako je jedan operand long int, a drugi je unsigned int, efekat zavisi
od toga da li long int može da predstavlja sve vrednosti jednog unsigned int-a;
ako može, unsigned int operand se konvertuje u long int; ako ne može, oba se
konvertuju u unsigned long int.
Inače, ako je jedan operand long int, drugi se konvertuje u long int.
Inače, ako je jedan operand unsigned int, drugi se konvertuje u unsigned int.
Inače, oba operanda su tipa int.
....Nova pravila su nešto komplikovanija, ali donekle smanjuju iznenađenja koja
nastaju kada se izraz bez predznaka poredi sa izrazom sa predznakom.
P.S. To je to! :) Nadam se da će nekom koristiti! :)
P.P.S. A, ovo oko pravila, i iznenađenja ako ste probali C Mozgalice, biće vam
jasno zašto je to korisno... :)
cccc.155dr.obradovic,
Evo jedne interesantne stvari:
U bibliotekama Borland C++ 2.0 postoji jedan mali, ali, zavisno od primene,
neprijatan bag. U slucaju da vas program koristi funkciju bioskey(1) za
skaniranje tastature, ako korisnik pritisne Ctrl-Break tastatura ce biti
blokirana sve do sledeceg bioskey(0).
Znaci, ako imate sledecu sekvencu:
...
b=bioskey(1);
if (b) bioskey(0);
...
onda nastaju problemi. U helpu pise da bioskey(1) u slucaju Ctrl-Break
vraca 0xffff, medjutim ona na BC++ 2.0 vraca 0 (i slovima nulu). Znaci,
bioskey(1) uopste ne registruje pritisak na ovaj taster. Samim tim ni
bioskey(0) se nece izvrsiti, pa ce ova nula ostati u baferu za tasta-
turu i svi sledeci tasteri ce se slagati iza nje, tako da nece biti
dostupni, jer ce bioskey(1) uvek vracati nulu.
Meni se na primer desilo (testirajuci neku svoju igricu) da pritisnem
Ctrl-Break, tastatura se "zaglavi" i igra se naravno ubrzo zavrsi. I
tada tastatura proradi. Zasto? Zato sto na kraju stoji:
...
gputs("Pritisni Enter...");
while (bioskey(0)!=ENTER);
...
Ocigledno, kad se zna, ali pre nego sto sam shvatio zasto se to desava
izgubio sam sate i sate proveravajuci svoj program.
Konacno sam posumnjao u bioskey() funkciju i tamo nasao resenje.
Prvo sam sa TLIB izdvojio BIOSKEY.OBJ i pomocu OBJ2ASM konvertovao je
u BIOSKEY.ASM. Interesantno je da je rutina vrlo lepo napisana, ne verujem
da je moglo krace, cak sam morao malo i da se zamislim. Medjutim, ima
jedan pogresan uslovni skok.
Zatim me zanimalo da li postoji isti bag i u verziji TC++ 1.0 i slicno
sam izdvojio funkciju i video sta se desilo.
U TC se na dva mesta koristilo CMP pa uslovni skok. Neko je to CMP promenio
u TEST i od dva uslovna skoka samo je kod jednog obrnuo uslov, dok je drugi
ostao isti. Naime CMP setuje Z ako su argumenti isti dok TEST resetuje:
Turbo C++ 1.0 Borland C++ 2.0
cmp byte ptr [bp+004h],01h test byte ptr [bp+004h],01h
jnz $L2 jnz $L2
Ono jnz je u BC-u trebalo pretvoriti u jz.
Verovatno je CMP promenjeno u TEST zbog INT 16h funkcija 10h,11h,12h. Namera
je bila ok, ali bili su neoprezni.
I to je cela prica. Na kraju sam iz svake biblioteke BC-a izbacio funkciju
bioskey() i ubacio onu iz TC-a. To mi je delovalo kao najlakse resenje,
posto ne koristim INT 16h funkcije 10h,11h,12h. Ako neko hoce bas pravo
resenje neka napise svoje rutine, pa nek ih ubaci.
Uz poruku ide i fajl u kome se nalaze .OBJ i .ASM fajlovi za svaki memorijski
model iz obe verzije programa. Tu je takodje i BIOSKEYT.C, kratki program u
C-u za testiranje ovog baga. Program treba da prikaze FFFF u slucaju da je
pritisnuto Ctrl-Break, inace mozete resetovati kompjuter.
Vazno je da program startujete iz DOS-a, da ga pritisak na Ctrl-Break ne bi
prekinuo. I jos jedna stvar, ako imate neku kolor graficku karticu promenite
ono 0xb000 u 0xb800.
Eto toliko od mene. Samo javite da li se ovaj bag pojavljuje i u verzijama
BC++ 3.0 i BC++ 3.1.
cu
Dragoljub B. Obradovic
bc20-bug.zipcccc.156mjova,
> Turbo C++ 1.0 Borland C++ 2.0
> cmp byte ptr [bp+004h],01h test byte ptr [bp+004h],01h
> jnz $L2 jnz $L2
> ....
> Eto toliko od mene. Samo javite da li se ovaj bag
> pojavljuje i u verzijama BC++ 3.0 i BC++ 3.1.
u 3.1 je ovako:
// If we aren't checking status, just return key
asm test byte ptr (cmd), 1
asm jz keydone
=> bug ispravljen.
cccc.157dr.obradovic,
Nemoj mi reci da su sa BC++ 3.1 date i sve biblioteke u izvornom obliku, ili
je ono samo jedan od primera.
cu
Dragoljub B. Obradovic
cccc.158djelovic,
> Nemoj mi reci da su sa BC++ 3.1 date i sve biblioteke u izvornom obliku, il
> je ono samo jedan od primera.
Sve biblioteke! Ne da ti trebaju, ali je lepo videti kako neke stvari rade.
I naravno, zgodno je ako ima neki bug u biblioteci.
cccc.159dr.obradovic,
> Sve biblioteke! Ne da ti trebaju, ali je lepo videti kako neke stvari rade.
> I naravno, zgodno je ako ima neki bug u biblioteci.
Divota !
Fantazija !
To su pravi ljudi !
cu
Dragoljub B. Obradovic
cccc.160toma,
Jel zna neko kako ta odredim tačan path odakle je učitan neki
pragram. U C-u, naravno (MSC 5.1).
ps. Znam da je negde bilo reči o tome, ali gde i kada...
cccc.161dejanr,
>> Jel zna neko kako ta odredim tačan path odakle je učitan neki
>> pragram. U C-u, naravno (MSC 5.1).
Trebalo bi da argv[0] daje ime programa, sa sve path-om. Podrazumeva
se DOS 3.30 ili noviji, na prethodnim verzijama je to nemoguće.
cccc.162.obj,
> Jel zna neko kako ta odredim tačan path odakle je učitan neki
> pragram. U C-u, naravno (MSC 5.1).
Recimo, ovaj program ispisuje svoje ime:
main(int argc, char **argv)
printf("%s", *argv);
Ou bi džej
cccc.163todorp,
> Jel zna neko kako ta odredim tacan path odakle je ucitan neki
> pragram. U C-u, naravno (MSC 5.1).
Pa, ne znam za MSC, ali mozda mozes da izmuvas sa getcwd iz direct.h. Trebalo
bi da tako nesto(ako ne isto to) postoji za MSC. Mada ako ti treba path tvog
programa iz koga to hoces da saznas, bolje je argv[0] kao sto ti dejanr vec
rece.
Pozdrav od Todora.
cccc.164toma,
Hvala svima, konačno mi program zna kako se zove! :)
cccc.165markos,
Imam mali problem (i nije baš tako mali B-( )
Kako iz Clipper-a pozvati C funkcije !?
Da budem precizniji :
U Borlandovom C++ napravim funkciju (sa include, _parni, _retni, ...), prevedem
sa parametrima (svim koje sam uspeo da pronadjem i uskladim sa preporučenim u
Rick Spance-ovoj knjizi, a za MSC ) dobijem .obj fajl, ali kod linkovanja
prijavljuje dupliran stack ! (prevodio sam sa opcijom -N, i tada ne prijavi
dupli stack, ali i NE PRONADJE SVE FUNKCIJE)
Predpostavljam da je u nekoj od starih poruka bilo odgovora na ovakva pitanja,
pa bi lepo bilo da se javi bar GDE SE NALAZE odgovori !!!
Molto HVALA unapred !
cccc.166vision,
Hi. Evo programcica (pisan za MSC 5.1) koji bi trebao da cita BOOT sector
sa diskete. Program radi OK kada je u pitanju jedinica 'A' (inf.drive=0), ali
kada hocu da citam iz npr. 'C' diska (inf.drive=2) ono nece pa nece. Nije u
pitanju samo BOOT, vec i bilo koji drugi sektor u bilo kakvom drugom disku
osim 'A' (0).
Pogledajte program i molim Vas da ko ima resenje neka ga i napise.
PS. Znam da nije u istom mestu BOOT sector 'C'-a kao u 'A'. I nije mi
potrebno samo BOOT vec bilo koji sector. I naglasavam da program radi samo sa
inf.drive=0, bilo koji drugi broj, nece.
#include <stdio.h>
#include <bios.h>
#include <io.h>
main() {
unsigned char buf[512];
int i;
struct diskinfo_t inf;
inf.drive=0;
inf.head=0;
inf.track=0;
inf.sector=1;
inf.nsectors=1;
inf.buffer=buf;
_bios_disk(_DISK_READ,&inf);
for(i=0;i<512;i++)
if(buf[i]>31)
putch(buf[i]);
else
putch('.');
return;
}
cccc.167mjova,
> Hi. Evo programcica (pisan za MSC 5.1) koji bi trebao da
> cita BOOT sector sa diskete. Program radi OK kada je u
> pitanju jedinica 'A' (inf.drive=0), ali kada hocu da citam
> iz npr. 'C' diska (inf.drive=2) ono nece pa nece. Nije u
vidim da znaš da se diskovi razlikuju i po tome što im se boot sektor
ne nalazi na istom mestu (sektoru), ali zanima me da li znaš da je
disk pod brojem 2 (u slučaju čitanja preko int 15h - biosdisk()) u
stvari treći floppy ;). hard diskovi se dobijaju tako što se pali 7
bit: 0x80 == 'C', 0x81 == 'D', itd.
iako ne znam šta radiš, a ti treba ti boot sektor (i dalje na ovamo),
onda je najlakše da mu pristupiš preko int 25h/26h (absread/abswrite -
u bcc-u). u tom slučaju sektor 0 će uvek sadržati boot.
posle opsežnih istraživanja ;) po tabeli particija moram ti savetovati
da se ne igraš puno ;).
cccc.168ppekovic,
>> U Borlandovom C++ napravim funkciju (sa include, _parni, _retni, ...),
>> prevedem
Problem je što ni sa Microsoft-ovim C-om to ne ide kako treba.
Bilo je mnogo priče o ovome u starim porukama, pa da ne bi po ko
zna koji put sve ponavljao, upotrebi jedno find /a.
Paya
cccc.169vision,
> ne nalazi na istom mestu (sektoru), ali zanima me da li znas da je
> disk pod brojem 2 (u slucaju citanja preko int 15h - biosdisk()) u
> stvari treci floppy ;). hard diskovi se dobijaju tako sto se pali 7
> bit: 0x80 == 'C', 0x81 == 'D', itd.
E vidis da ovo nisam znao:). Hvala.
> posle opseznih istrazivanja ;) po tabeli particija moram ti savetovati
> da se ne igras puno ;).
Vidi ovako. Mnogo dobro znam sta su particije (necu da se hvalim:) evo da ti
dam primer:). Napao MICHelangelo prosli put drugu disk, i unistio mu
podatke:). Na svu srecu, imao je odvojen disk u C i D u particijama:), pa ja
mu onda lepo 'zakuvah' partition table:) i vratim mu citav ceo D, ali sa C-a
MICH je sve obrisao:( svaki nadjeni FAT.
> iako ne znam sta radis, a ti treba ti boot sektor (i dalje na ovamo),
> onda je najlakse da mu pristupis preko int 25h/26h (absread/abswrite -
> u bcc-u). u tom slucaju sektor 0 ce uvek sadrzati boot.
Zao mi je, znam za ABS(READ I WRITE), to sam koristio u TC-u, ali to nema u
MSC-u:( i to mi treba da linkujem C sa CLIPP:).
cccc.170mjova,
> Zao mi je, znam za ABS(READ I WRITE), to sam koristio u
> TC-u, ali to nema u MSC-u:( i to mi treba da linkujem C sa
> CLIPP:).
ma mozzzze ;), to su (kako rekoh) int 25h i int 26h. obrati pažnju
samo na to da se različito pozivaju za "velike" i "male" diskove. ako
ti to treba za kliper, onda ti ipak preporučujem da se opredeliš za
dos funkcije, a ne za bios - čisto zbog sistema.
cccc.171nbulatovic,
da li neko ima iskustva u radu sa dflat++ 2.0 bibliotekom?
da li je komplikovano za koriscenje, koliko je brzo, jel ima neku
manu?
i da li moze da radi pod bc++ 2.0?
cccc.172zsiz,
Synopsis: Utilities and source code for use with Sound Blaster,
Sound Blaster Pro, and ProAudio Spectrum. REC_CD
may be of interest to anyone with an audio-capable
CD-ROM drive.
PLAYD: .VOC file player, direct to disk.
RECD: .VOC file recorder, direct to disk.
REC_CD: Play and record to .VOC sections of CD audio.
TALK: Hear and see the phonetic version of text
run through SBTALK
EXCEPT: Manage an exception dictionary for SBTALK
pronounciation.
Ko želi da programira SB kartice u MSC ili TC -> DL.
Pozdrav.
soundhax.zipcccc.173niklaus,
(:> Ko želi da programira SB kartice u MSC ili TC -> DL.
Pošto nas većina nas nema te "SB kartice" (:, a neki od nas (:,
bi želeli da u svojim programima imaju podršku i za (G)SB, pitam da li
postoji neki emulator za SB na PC Speakeru (redirekcija sa SBovog porta
na speaker port, uz adaptaciju i konverziju signala).
(:niklaus:)
cccc.174markos,
Imam 'mali' problem B(((
Izgleda od prilike ovako :
#include trt + mrt
void main()
š
FILE *printer;
int ofset;
DBF_HEAD dbf_head;
long trtmrt;
if((printer = fopen("Printer.dbf", "r")) == NULL)
š
printf("ĐnTandara broć !Đn");
exit(1);
ć
fread(&dbf_head, sizeof(dbf_head), 1, printer);
ofset = dbf_head.data_offset;
trtmrt = ofset;
fseek(printer, trtmrt, 0);
.
fread(.......);
fclose(printer);
return;
ć
a ponaša se na DVA načina i to :
1. Kada se prevede + linkuje u QC-u i startuje iz njega, normalno radi -
- t.j. u ofset prenese offset (otkud baš to ime ?) podatka iz .dbf
baze - u ovom slučaju 98, a zatim sa fread čita podatke i radi svoj
posao !
2. Kada ISTI program prevedem sa CL u ofset smesti 2076, 120483, ili ko
zna šta već i, normalno, dalje totalno zaglupi !
Takodje, dešava se da kod svih čitanja i pisanja daje drugačije rezultate
u zavisnosti od toga čime sam ga preveo !
Podrazumeva se da je potrebno da program prevedem sa CL, a ne sa QC B(
Ako je ovakvo ili slično pitanje već bilo postavljano, molim za
izvinjotinu, ali tek počinjem sa C-om B).
Thanks, unapred !
cccc.175klisa,
>> ofset = dbf_head.data_offset;
^^^^^ ^^^^^^^^^^^
Mislim da bi problem mogao biti u tome što je u strukturi .DBF datoteke
član data_offset tipa unsigned int, a ti ga u programu dodeljuješ
promenljivoj tipa int. Konverzija koja se tom prilikom vrši neki put
prolazi nekažnjeno :), a neki put ne.
cccc.176bulaja,
**** new file ****
R:\IBMPC\C\*.*
----------------------
ev-201 a01 164567 EasyVision, C/C++ lib za text mode user interface #1/4
ev-201 a02 164567 EasyVision, C/C++ lib za text mode user interface #2/4
ev-201 a03 164567 EasyVision, C/C++ lib za text mode user interface #3/4
ev-201 a04 162090 EasyVision, C/C++ lib za text mode user interface #4/4
EasyVision is a collection of short C functions, dealing with the
screen, the keyboard, text strings, etc.
It is also a text mode based, windowed user interface. It provides a
DESKTOP, a STATUSLINE, a MENUBAR, WINDOWS, CONTEXT SENSITIVE ON-LINE
HELP, MOUSE SUPPORT and much much more...
cccc.178eotek,
pomoc !! :
U TP 5.5 postoji jedno programce zove se binobj.exe koje
fino radi sa fontovima (prebaci ih u .obj, pa se font ulinkuje).
E sad, to bih isto ali da radi u C (imam MS C 6.00), ali
ne znam kako da font, ili neke druge podatke (tekst npr.)
ubacim u .obj fajl.
Sigurno ima efikasnog leka, koji li je ?
Eotek (moze i ma se)
I O U 1
cccc.179debelijencija,
Da se prebacimo di nam je mesto! :)
!=?> Ma ni blizu:
!=?> while(e++%=25 ? e : clrscr());
!=?> Zaista nemam pojma čemu bi ovaj izraz služio, ali da ne radi
!=?> - ne radi.
Ne radi? Nažalost, još nisam instalirao C na novi računar, pa ne mogu da
proverim.
Jes', vidiš, ne mož' da radi, jerbo clrscr() vraća void! :(
To je stvarno bez veze. Tja, nezgodno.
žekaj, a da ne možeš da ga prevariš nečim u stilu:
int a;
while(e++%=25 ? e : a=clrscr()); ?
Tj. ako o'š da ti radi onaj izraz (mada ni je ne vidim zašto bi to
hteo... :).
P.S. Ma. odlučio sam da se manem C-a, C++-a, i da lepo pišem u Clipperu! ;)))
cccc.180i.a.n.,
>> P.S. Ma. odlučio sam da se manem C-a, C++-a, i da lepo pišem u
>> Clipperu! ;)))
Neka ti je Bog na pomoći. ;)
cccc.181miljko,
> int a;
> while(e++%=25 ? e : a=clrscr()); ?
Za ovakve konstrukcije zgodan je zarez kao operator:
while ( e++%25 ? e : clrscr(), 1 )
Ovo ce da vrti ciklus i da brise ekran svakih 25 puta.
Umesto 1 moze 0 ili neka promenljiva za kontrolu izlaska.
P.S. A sta ste vi uopste hteli? :>
P.P.S. Stavite da vraca jedinicu umesto prom. e - radice brze!
cccc.182djelovic,
Ima li ko da bi mogao da mi pozajmi knjigu Tools and Utilities
Guide iz C++ paketa na jedno sat-dva? Moju sam dao prijatelju koji je
popalio u inozemstvo, a sada mi treba ko lebac da nešto u njoj pogledam.
cccc.183vision,
Hi. Zanima me kako da se u neki TSR prg. 'zakacim' za int 21. Stvar 'hitno'
potrebna, zbog pravljenja programa koji bi 'video' koji file se otvara, pise,
... (nesto kao RECORDER).
P.S. Koristim ZZivoticev modul TSR prg-a (R073tsr.zip) preradjen za TC 1.0.
cccc.184asterix,
Kako se linkuju C .obj sa fortranovim ? I C i FORTRAN su MS
C je v6.0 a FORTRAN je v5.1.
cccc.185bojt,
>> Kako se linkuju C .obj sa fortranovim ? I C i FORTRAN su MS
>> C je v6.0 a FORTRAN je v5.1.
Prvo bi trebalo da napraviš posebne fortran biblioteke (LIB) sa
opcijom "hoću da linkujem fortran sa C-om" ;). To te pita pri
instalaciji fortrana, a postoji na LIB instalacionoj disketi i
neki bat file (MAKELIB ili tako nekako), kojim može da se uradi to
isto. Iz takvih biblioteka se na taj način uklone one rutine koje
postoje u C bibliotekama, a takve biblioteke ja obično
preimenujem iz ?LIBFOR?.LIB u ?LIBF?.LIB (npr LLIBFOR7.LIB u
LLIBF7.LIB).
E onda ili u fortranu treba funkcije iz C .obj-a deklarisati kao C
funkcije (INTERFACE TO SUBROUTINE bla bla bla) ili, što je mnogo
lakše (a i ima daleko manje da se kuca), u C sorsu pri deklaraciji
tih funkcija (koje će fortran pozivati) upotrebiti _fortran
deskriptor (npr void _fortran c_subr(...)). E onda, kad se sve
lepo iskompajlira, linkovati na sledeći način:
LINK/NOE/NOD f_obj+C_obj,,,LLIBC7+LLIBF7;
cccc.186i.sajic,
3. S obzirom na brzinu koda koji daje MSC6 i na SVGA.BGI drajver za TC, pokusao
sam da linkujem .OBJ module koje daju ovi kompajleri. Kako rezultujuci program
nije radio bilo je posla za dibager. Problem se svodi na sledece
(pojednostavljeno):
void problem(double *x)
{
*x=0;
}
MSC6 smesta (double)0 u prostoru za global data. Prilikom linkovanja, ova
adresa (nule se promeni). Zna li neko resenje?
cccc.188i.a.n.,
Ima li neko pristojnu dokumentaciju za YACC, kao ASCII datoteku? Ono
što se dobija u BYACC.ZIP je krajnje nedovoljno, a pristup nekom UNIX
sistemu nemam. Zahvalan unapred.
cccc.189vitez.koja,
Evo jednog zanimljivog problema, do onih "jednom u životu". Ako se neko već
nije sreo šnjim, da mu uštedim noćno lovljenje bagova.
Radi se o funkciji koja će sa tastature da učita jedan od ponuđenih odgovora.
Npr. if(prompt("Da li si siguran ? [D/n] ", "dn")=='D') siguran=1;
Problem je u tome što u dolenavedenom primeru printf iza poziva funkcije prompt
jednostavno ne radi! Da stvar bude još većma zapetljana, ako postoji nekoliko
naredbi između poziva funkcija prompt i printf, sve će da radi kako treba.
#include šta već treba
int always_y=0;
char prompt (char *message, char *answ) {
char c, *p;
if(always_y)
return 'Y';
do {
printf(message);
c=getch();
printf("\n");
strcat(answ, "\r"); //ako je enter, vraća
p=strchr(answ, c); //prvi znak iz *answ
} while(!p);
return (*p=='\r') ? *answ : toupper(*p);
}
main () {
prompt("Ma nije valjda ??? [D/n] ", "dn");
printf("Pa to je strašno!\n"); //ovaj red suprotno očekivanjima
} //ne ispisuje baš ništa !!!
U čemu je problem ? :)
cccc.190djelovic,
> Ima li neko pristojnu dokumentaciju za YACC, kao ASCII datoteku? Ono
> što se dobija u BYACC.ZIP je krajnje nedovoljno, a pristup nekom UNIX
> sistemu nemam. Zahvalan unapred.
Poruka 7.51 u prethodnoj PC.PROG.
Bulajo, moglo bi to u /IBMPC/C ili /IBMPC/INFO?
cccc.191prvul,
Ů char prompt (char *message, char *answ) {
Ů char c, *p;
Ů if(always_y)
Ů return 'Y';
Ů do {
Ů printf(message);
Ů c=getch();
Ů printf("\n");
Ů strcat(answ, "\r"); //ako je enter, vraća
Ů ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
Ů p=strchr(answ, c); //prvi znak iz *answ
Ů } while(!p);
Ů return (*p=='\r') ? *answ : toupper(*p);
Ů }
Ů main () {
Ů prompt("Ma nije valjda ??? [D/n] ", "dn");
Ů ▄▄▄▄
Ů printf("Pa to je strašno!\n"); //ovaj red suprotno očekivanjima
Ů } //ne ispisuje baš ništa !!!
Ů U čemu je problem ? :)
Ů▄▄
Pazi šta se desi: main prosledi funkciji prompt adresu onog stringa "dn".
Taj string se nalazi upisan u segmentu podataka kao konstanta. Iza te
konstante se nalazi sledeća konstanta, a to je baš "Pa to je...".
U memoriji to izgleda vako: 'd','n',0,'P','a',' ',... uglavnom, funkcija
prompt dobije kao parametar answ pointer na ono 'd'... podvučeni strcat
dodaje na string answ string "\r"... strcat NE ZNA da odmah za njim sledi
drugi string pa od memorije napravi sledeće: 'd','n','\n',0,'a',' ',...
jer se string "dn" produži za jedan bajt. Sve izgleda ok, ali kada se
pozove printf main prosledi adresu onog slova 'P' u stringu jer je kompajler
to tako ukodirao nemajući pojma da je u međuvremenu baš na to mesto stavljeno
0, što je oznaka za kraj stringa, pa tako printf ništa ne ispiše.
Ukratko, strcat i ostale funkcije koje mogu da produže string smeju se
koristiti samo ako smo sigurni da je string predviđen da primi toliko
znakova. Konstante sigurno ne spadaju u takve stringove :)
cccc.192mjova,
> U čemu je problem ? :)
problem je u sledeća tri reda:
> char prompt (char *message, char *answ) {
> strcat(answ, "\r"); //ako je enter, vraća
> prompt("Ma nije valjda ??? [D/n] ", "dn");
zaravo, naizgled je sve super, ali to je samo naizgled ;)
u fn prompt, parametar answ je zapravo samo niz koji je prosleđen iz
main-a. ne možeš na taj niz lepiti svašta! dakle, u fn prompt moraš
imati kopiju odgovora, pa na nju dodati ono što želiš. pokušaj da
izbegneš strcat, već posebno reaguj ako je u pitanju enter (kao
specijalan taster).
cccc.193djelovic,
> char prompt (char *message, char *answ) š
> ...
> strcat(answ, "Đr"); //ako je enter, vraća
> ...
> main () š
>
> prompt("Ma nije valjda ??? ŠD/nĆ ", "dn");
Problem je u redu:
strcat (answ, "Đr")
U printf funkciji ti za answ u memoriji praktično odvajaš tri bajta - jedan
za slovo d, jedan za slovo n, i nulu na kraju stringa. Kada na to dodaš "Đr",
ti praktično upisuješ tu četri bajta (d, n, Đr, nula na kraju stringa),
prepisujući sadržaj neke druge promenjljive koja dolazi iza answ. Još gore,
pošto to radiš u petlji svakim prolaskom program produžuje string i brlja sve
više i više.
cccc.194janko,
> void problem(double *x)
> š
> *x=0;
> ć
> MSC6 smesta (double)0 u prostoru za global data. Prilikom
> linkovanja, ova adresa (nule se promeni). Zna li neko
> resenje?
Nije mi jasno pitanje? Šta se tačno događa, i kada? Ako to
znaš, onda znaš i rešenje. :)
Ako ne uspeš da provališ, probaj da ostaviš program koji ume da
da rezultat, kakav ne treba da da, pa da razmišljamo.
cccc.195todorp,
> U cemu je problem ? :)
Problem je u tome da nisi usao u TD:))) Stvar je tome sto si ti ovde zeznuo
stvar :))
> strcat(answ, "\r");
Na nekom mestu u mem su naslagani razni stringovi za koje kompajler misli da
se nece menjati zato sto nisi rezervisao mesto za njih prilikom deklaracije
(nije varijabla). E sad, razni stringovi su odvojeni sa 0x00 sto je logicno.
Ti kad si uradio append na adresi 'answ' (jer je to samo pointer na adresu gde
je "dn") prebrisao si sledeci string koji treba da se stampa (e sad u tvom
slucaju nisi obrisao vec samo prvi bajt gde ostao upisan 0x00 zato sto je C
strpao tu \r i da zavrsi string lupio 0x00 bas tamo gde je tebi stajao pocetak
stringa). E sad printf (koji je ustvari obicna funkcija 40) treba da odstampa
prazan string jer mu je prvi karakter 0x00 i to onda preskoci. Al' ga
objasnih, svaka mi se dala ;))) Resenje je da ubacis u prompt funkciju gde je
char *p ,c jos npr. f[4] i posle pre strcat da uradis jedan strcpy(f,answ) i
posle vozis dalje i zamenis ostatak answ u f.
Pozdrav od Todora
cccc.196bulaja,
Da li je neko koristio editor u TurboVision, D-Flat ili necem slicnom?
Da li omogucavaju ubacivanje u tekst kontrolnih kodova (npr. za
stampac), a da se oni ne vide vec da se tekst oboji drugom bojom?
Treba mi bas editor, viewer nije nikakav problem napraviti. :)
cccc.197vitez.koja,
#=> iza answ. Još gore, pošto to radiš u petlji svakim
#=> prolaskom program produžuje string i brlja sve više i
#=> više.
Au, ovo nisam primetio :(((
cccc.198i.a.n.,
>> Poruka 7.51 u prethodnoj PC.PROG.
Skinuto, thanx.
>> Bulajo, moglo bi to u /IBMPC/C ili /IBMPC/INFO?
Moglo bi da se izbaci FLEXDOC.DOC jer se već nalazi u FLEX_EXE.ZIP.
Kao i da se stvar prebaci iz Winword formata u čist ASCII.
cccc.199mdimitrijevic,
Ima li neko bilo kakav sors u C-u koji se bavi testovima brzine procesora,
hard diska, video memorijom i sl. Potrebna mi je tajmer rutina koja meri vreme
u milisekundama i sl.
Pozdrav,
Marjan Dimitrijevic
cccc.200i.sajic,
Zahvaljujem Janko na zainteresovanosti.
Problem je vrlo jednostavan: nisam zeleo da vas opterecujem sa celom funkcijom
za brzu Furijeovu transformaciju vec sam uspeo da izolujem problem. Dakle,
kompilirajte funkciju
void proba(double *x)
{
*x=0;
}
(nadam se da se kod vas vide viticaste zagrade) za Microsoft C-om (6.0) i
napravite program
void main(void)
{
double x;
proba(&x);
}
koji cete kompilirati sa Turbo C-om (2.0) - treba napraviti mali .PRJ (projekt)
fajl za TC i opaliti MAKE iz menija. Proverite vrednost varijable x posle
izvrsenja funkcije proba (na primer dibagerom ugradjenim u TC). Mislite da ce
biti x=0? Varate se, nece. Pitanje je ne toliko zasto NE, nego kako resiti
problem....
cccc.201djelovic,
> S obzirom na brzinu koda koji daje MSC6 i na SVGA.BGI drajver za TC,
> pokusao sam da linkujem .OBJ module koje daju ovi kompajleri.
Pošto vidim da si počeo da prozivaš ljude i po drugim konferencijama, čini
se da nemam drugog izbora do da ti dogovorim :).
1. MSC i TC nisu kompatibilni na nivou izvornog koda, i graniči se sa
nemogućim naterati ih (na nekom većem projektu) da zajedno rade. Njihove .OBJ
datoteke nisu kompatibilne :(.
2. Ako imaš program jasno podeljen na dve celine, od koja se jedna bavi
samo intidžerskom računicom (tj. ne zahteva biblioteke), onda taj deo za
računanje možeš da prevedeš u .ASM kod (oba kompajlera imaju tu opciju), pa da
ga u drugom kompajleru prevedeš dalje u .OBJ zajedno sa ostatkom koda.
cccc.202djelovic,
> Ima li neko bilo kakav sors u C-u koji se bavi testovima brzine procesora,
> hard diska, video memorijom i sl. Potrebna mi je tajmer rutina koja meri
> vreme u milisekundama i sl.
Imaš u C direktorijumu zbirku Snippets u okviru koje imaš tajming rutine.
cccc.203vitez.koja,
Kako da određenu količinu bajtova ugradim u kod programa, a posle da im
pristupam ? Npr. napravim jedan ovakav .obj :
TSGPIC_TEXT SEGMENT word
PUBLIC _TSGPIC
_TSGPIC LABEL FAR
db ..........................
TSGPIC_TEXT ENDS
END
I to linkujem uz C program, gde ga dekalrišem kao:
extern void *TSGPIC;
I ne radi :((((((((((( Inače, C kompajliram u large modelu.
Šta ne valja ? :(
cccc.204janko,
> void proba(double *x) *x=0;
>
> za Microsoft C-om (6.0) i napravite program
>
> void main(void)
> double x;
> proba(&x);
>
> Proverite vrednost
> varijable x posle izvrsenja funkcije proba (na primer
> dibagerom ugradjenim u TC). Mislite da ce biti x=0? Varate
> se, nece. Pitanje je ne toliko zasto NE, nego kako resiti
> problem....
Po meni, kada se zna zašto, problem se lakše rešava. Tako je
meni zanimljivije ZAŠTO. Ovo mi liči na one probleme sa
neusklađenim prevođenjima. Očigledno, potencijalni problem je
vezivanje koda generisanog različitim kompajlerima, i u
različitim prevođenjima.
Sličan problem je moguć već samo ako je funkcija proba
prevedena za različiti memorijski model od glavnog programa,
čak i istim kompajlerom. Npr. ako prevedemo main u LARGE modelu
a fju proba u SMALL, i to linkujemo, rezultat u x-u može samo
slučajno da bude 0.
Dalje, ako ste i uspeli da prevedete za isti memorijski model,
ostaje pitanje da li oba prevodioca generišu tzv. stek frejmove
na isti način, što direktno utiče na rad funkcije sa njenim
parametrima. (Verovatno neko od onih, koji čitaju ovu temu, to
zna?) I, na kraju, ostaje poslednja mogućnost da bilo jedan
bilo drugi prevodilac generišu neispravan kod, na određenom
mestu, pod određenim uslovima.
Da bismo do kraja rešili problem, predlažem vam da vi prevedete
funkciju proba, onako kako ste to inače radili, i zakačite njen
.OBJ za svoju sledeću poruku, i, usto, naglasite tačno sa kojim
opcijama (koji memorijski model, pre svega) prevodite glavni
program, da bih mogao da probam šta se događa.
Ili, možete probati i sami -- probajte da prođete kroz
gornji program Turbo Debugerom, na nivou asemblerskih
instrukcija.
cccc.205vision,
Hi. Imam jedno pitanje. Dali je bolje upotrebiti:
...
char str[80];
...
ili
...
char *str;
str=malloc(80);
...
Ko zna odgovor, molim neka ga i opravda :).
cccc.206ppekovic,
>> char str[80];
>> ...
>>
>> ili
>>
>> ...
>> char *str;
>> str=malloc(80);
U ovom slučaju koji si napisao uvek radije koristim prvu
deklaraciju. Dakle, kada unapred znaš koliko bajtova treba da
odvojiš onda više volim da koristim statičke deklaracije.
Dinamičke alokacije se po pravilu koriste za slučajeve kada je
raspon korišćene memorije jako veliki. Konkretno, ako nemaš pojma
da li će ti za tvoju promenljivu trebati dva, hiljadu dva ili
možda više bajtova. Tako, ako u nekoj promenljivoj duzina imaš
duzinu koja je potrebna za alokaciju onda je najbolji (?) način:
str=(char *)malloc(duzina)
if(str==(char *)NULL)
....
Dakle, ako unapred zasigurno znaš maksimalnu vrednost memorije
koja ti je potrebna za neke podatke koristi statičke deklaracije.
U ostalim slučajevima, dinamičke.
Paya
cccc.207i.a.n.,
>> Kako da određenu količinu bajtova ugradim u kod programa, a posle
>> da im pristupam ? Npr. napravim jedan ovakav .obj :
>>
>> I to linkujem uz C program, gde ga dekalrišem kao:
>>
>> extern void *TSGPIC;
>> ▀▀▀▀▀▀
>>
>> I ne radi :((((((((((( Inače, C kompajliram u large modelu.
>>
>> Šta ne valja ? :(
Deklaracija koju sam podvukao -- program smatra da se na TSGPIC nalazi
far pokazivač, a ne niz bajtova koji ti treba. Deklariši
extern char TSGPIC[];
i proradiće.
cccc.208mdimitrijevic,
Hvala !!! Pogledacu pa cemo da vidimo.
Pozdrav,
Marjan Dimitrijevic
cccc.209mdimitrijevic,
Kako da ovaj red u PASCAL-u prebacim u C.
testinx2 je boolean funkcija
testinx2:=(nw1=0) and (w1=msk);
Pozdrav,
Marjan Dimitirjevic
P.S. Ovaj red je iz WHATVGA iz VGADOC2.
cccc.210mdimitrijevic,
Red treba da bude :
testinx2:=(nw1=0) and (nw2=msk);
Smece na liniji sta cu.
cccc.211asterix,
> testinx2:=(nw1=0) and (nw2=msk);
Možda ovako ?
testinx2=(((nw1=0)&&(nw2=2))? 0 : 1)
U C-u ne postoje predefinisani logički tipovi.
Nula se smatra istinom, dok sve-što-nije-nula
neistina.
Bar koliko ja znam ;)
cccc.212spantic,
Update za MS C/C++ 7.0 1/3
Evo šta je:
PATCH.TXT
PATCH.TXT file for Microsoft(R) C/C++, Version 7.0
(C) Copyright Microsoft Corporation, 1992
Several problems in the original Microsoft C/C++ 7.0 release
have been fixed. This document describes the fixes.
=======================< WHAT HAS BEEN FIXED? >=======================
The patch modifies the following components:
LINK
LIB
IMPLIB
PWB (including PWB.EXE and PWBUTILS.MXT)
CV and CVW (including the DLLs)
CVPACK
TRACE
TXTONLY.OBJ
GRAPHICS.LIB
Part 3 lists all the affected files. The following sections
describe the fixes to each component.
LINK (version 5.31.009) Fixes
-----------------------------
- Fixups of MOVE overlays no longer incorrectly generate
error L1101 ("invalid object module") if a thunk is targeted
into the same overlay.
- The linker no longer overflows internal tables if a large
number of MOVE overlays are requested.
- Data items defined as dw<?> are no longer incorrectly
initialized to zero in the presence of overlapping virtual
memory areas.
- The linker is no longer prevented from generating correct
"unresolved external" error messages if a program uses
APPLOADER in the .DEF file.
- The linker no longer creates an executable file that fills
available hard disk space, an error that occured only
when [1] two symbols in the same .OBJ file differed only in
capitalization (for example, ExtraBytes and EXTRABYTES),
[2] you linked with /CO and not with /NOI, and [3] the
symbols were defined in an order that created a COMDEF
record for the first one and a PUBDEF for the second.
- The linker no longer incorrectly generates errors when
linking MOVE overlays that include .OBJ files compiled with
the /Gy (use Comdats) option.
- The linker no longer incorrectly generates error L1035
("error in module definition file) in cases where [1] a
FUNCTIONS statement appeared first in the .DEF file, or
[2] new PRIVATE or PRIVATELIB statements were added to
a LIBRARY statement.
- New warning L4059 has been added. It occurs if code
contains far segment references to overlaid targets. These
references are resolved correctly only if they are code
references (not data references).
- New warning L4087 has been added. It warns that the /DYNAMIC
option disables /EXEPACK. The linker now ignores /EXEPACK
for MOVE applications, preventing previous problems in
executables linked with /DYNAMIC and /EXEPACK.
LIB (version 3.20.010) Fixes
----------------------------
- LIB now correctly handles a symbol with more than 128
characters in its name.
IMPLIB (version 1.40.005) Fixes
-------------------------------
- IMPLIB now correctly handles a symbol with more than 128
characters in its name.
PWB (version 2.1.49) Fixes
--------------------------
- PWB no longer causes unexpected link errors when you try to
build a project after trying to customize a project template.
This condition occurred if you had tried to use the Customize
Project Template dialog and all additional libraries were
removed from the link options.
- PWB no longer causes fatal error U1095 ("expanded command
line too long") if you use the library template with a large
number of OBJ files in a project file.
- PWB's project mechanism no longer reports errors if PRELOAD,
FIXED, DISCARDABLE or LOADONCALL appear in your .RC file. To
take advantage of this fix, be sure to delete your existing
PWB status file (CURRENT.STS) located in the directory
specified by the INIT environment variable.
CV and CVW (version 4.01) Fixes
-------------------------------
- It is now possible to set a breakpoint inside the Windows
kernel (particularly, USER.DLL and GDI.DLL).
- It is now possible to set a breakpoint on a Windows API
routine (for instance, GlobalAlloc).
- CodeView no longer causes a UAE when loading user DLLS.
- The CodeView user interface no longer causes UAEs.
CVPACK (version 4.01) Fixes
---------------------------
- CVPACK no longer prevents linking of certain executables
containing .OBJ files with CodeView information generated
by C 6.0 and C/C++ 7.0.
TRACE (version 1.1) Fixes
-------------------------
- TRACE /E now recognizes the executable CV format.
TXTONLY.OBJ Fixes
-----------------
- TXTONLY.OBJ no longer causes a link error when a program
calls _clearscreen. (TXTONLY.OBJ is used to reduce the
size of executables that use only text modes and do not
change the pallette.)
GRAPHICS.LIB Fixes
------------------
- The _outtext and _outmem functions now behave correctly
in text mode on CGA systems.
c7patch.arjcccc.213spantic,
Update za MS C/C++ 7.0 2/3
cccc.214vitez.koja,
#=>>> extern void *TSGPIC;
#=>>> ▀▀▀▀▀▀
#=> Deklaracija koju sam podvukao -- program smatra da se na
#=> TSGPIC nalazi far pokazivač, a ne niz bajtova koji ti
#=> treba. Deklariši
#=> extern char TSGPIC[];
Nažalost ne radi, a koliko se ja razumem ove dve deklaracije su manje-više
ekvivalentne; u oba slučaja TSGPIC je pointer, a na šta mene i ne zanima
previše. I u oba slučaja podjednako ne radi.
cccc.215vitez.koja,
#=> char str[80];
#=> ili
#=> char *str;
#=> str=malloc(80);
Prvi način koristiš ako makar približno znaš koliko ti memorije treba. Ako ne
znaš da li će trebati 2 bajta ili 20 Kbajt, koristiš drugi. Drugi koristiš i
kada se radi o velikoj strukturi jer staticki podaci ne mogu da budu veći od
64k.
cccc.216spantic,
Update za MS C/C++ 7.0 3/3
c7patch.a02cccc.217nikac,
NI> testinx2:=(nw1=0) and (w1=msk);
Ko sto neko rece u c-u je 0 false a sve ostalo true. Stoga:
testinx2=((nw1==0)&&(w1==msk));
Ovo vraca 1 ako je true ili 0 ako je false
P.S. Neko je napisao nesto slicno ali je zaboravio na "=="...
cccc.218mdimitrijevic,
Hvala za ovaj boolean testinx2 :)))
Pozdrav,
Marjan Dimitrijevic
cccc.219spantic,
Update za MS C/C++ 7.0 2/3
c7patch.a01cccc.220asterix,
> testinx2=(((nw1=0)&&(nw2=2))? 0 : 1)
>
> Bar koliko ja znam ;)
Izgleda da ne znam :)) Treba '==' umesto '='
a istinost je obrnuta od one koju sam naveo.
cccc.221peca.st,
!-> testinx2=(((nw1=0)&&(nw2=2))? 0 : 1)
Ne može bre ovako, "=" je naredba dodele, a "==" je
ispitivanje jednakosti. U pascalu je "=" ispitivanje,
a ":=" dodela.
!-> Nula se smatra istinom, dok
!-> sve-što-nije-nula neistina.
Obrnuto.
Peđa.
cccc.222miljko,
> PUBLIC _TSGPIC
>
> _TSGPIC LABEL FAR
> db ..........................
Koliko se ja razumem u te stvari ti si u C-u TSGPIC dekl. kao
extern void* , a to znaci da je to varijabla koja zauzima 2 ili 4
bajta. Medjutim ono što si definisao u asembleru je SIMBOL, a ne
varijabla, dakle nisi alocirao memoriju za njega i tu nastaje problem.
cccc.223i.a.n.,
>># => treba. Deklariši
>>
>># => extern char TSGPIC[];
>>
>> Nažalost ne radi, a koliko se ja razumem ove dve deklaracije su
>> manje-više ekvivalentne; u oba slučaja TSGPIC je pointer, a na šta
>> mene i ne zanima previše. I u oba slučaja podjednako ne radi.
žudno... U datoteci koju šaljem nalazi se programčić koji radi ono što
ti (valjda) treba. .ASM sam direktno preuzeo iz tvoje poruke, a .C
koristi deklaraciju koju sam naveo. .MAK pretpostavlja BC++ i TASM.
bl.zipcccc.224i.a.n.,
>> NI> testinx2:=(nw1=0) and (w1=msk);
>> Ko sto neko rece u c-u je 0 false a sve ostalo true. Stoga:
>> testinx2=((nw1==0)&&(w1==msk));
Ili, ako ćemo baš da teramo do kraja
testinx2 = !nw1 && nw2 == msk;
:)
cccc.226stosic,
Treba mi sors u MSC-u za rad sa COM portovima zasnovan na koriscenju
prekida. Svaka pomoc je dobrodosla.
Pozdrav, Boban
cccc.227dejanr,
>> Treba mi sors u MSC-u za rad sa COM portovima zasnovan na koriscenju
>> prekida. Svaka pomoc je dobrodosla.
Probaj sa fajlom r057com.zip iz direktorijuma RSOFT - to su primeri uz
tekst Zorana čivotića iz "Računara 57" koji se baš time bavio.
cccc.228vitez.koja,
#=> žudno... U datoteci koju šaljem nalazi se programčić
#=> koji radi ono što
Hvala, radi :)
Međutim, primetio sam nešto što se kosi sa mojim dosadašnjim ubeđenjima. Naime,
char *var; i char var[];
ne znače isto ?! U primeru uz poruku sve radi ako se stavi var[], ali ako se
stavi *var jednostavno ne funkcioniše ?
I to nije sve. Jer, meni ne treba niz bajtova odande, već samo pointer na tu
adresu (i void* je dovoljan). Ipak, char* daje neku levu adresu, a char[] radi
kako valja. Zašto ??
cccc.229mjova,
> Kako da određenu količinu bajtova ugradim u kod programa,
> a posle da im pristupam ? Npr. napravim jedan ovakav .obj
prvo o pisanju poruka: znakovi interpunkcije se pišu uz onu reč na
koju se odnose. to znači da se otvoreni navodi pišu uz sledeću reč, a
zatvoreni uz perthodnu. dalje, znakovi .,:;? itd se pišu uz prethodnu
reč.
dalje, što se tiče postavljenog pitanja vezanog za linkovanje C & ASM
odgovor bi bio ovakav:
u asm treba navedeš ime laele, da je proglasiš PUBLIC da bi joj se
moglo pristupati, a onda je još deklarišeš u nekom zaglavlju (ili tamo
gde ti treba).
evo primera:
--- ASM ----------------
locals
.model large
.data
_Drive db ?
PUBLIC _Drive ; obrati pažnju na _
extrn _FAT:DWORD
.code
public c GetDPB
GetDPB proc c returns dpb:dword
arg drive:byte
.....
GetDPB endp
--- H ------------------
typedef unsigned char byte;
typedef unsigned word;
typedef unsigned long dword;
extern byte Drive;
void far *GetDPB(byte drive);
--- C ------------------
byte huge *FAT= NULL;
cccc.230mjova,
> char str[80];
> str=malloc(80);
ako se radi o običnoj funkciji onda bih izabrao prvi način. tako se
promenljiva kreira na steku i to (za tu veličinu) nije bolno, ali ako
se radi o rekurziji onda treba primeniti drugi metod.
drugi metod ima manu ako se često obavlja, a oslobađanje ne ide redom
kako je memorija alocirana. to može dovesti do fragmentacije memorije,
tako da i pored felike količine slobodne memroije fizički nema mesta
gde da se alocira veći niz.
predlažem ti da nizove veće od 1k alociraš sa maloc, a one manje
statičkom alokacijom.
cccc.231i.a.n.,
>> Međutim, primetio sam nešto što se kosi sa mojim dosadašnjim
>> ubeđenjima. Naime,
>>
>> char *var; i char var[];
>>
>> ne znače isto ?!
Ne znače. Zabuna nastaje zbog toga što C omogućava da se naziv niza
koristi kao sinonim za adresu njegovog prvog člana. Međutim, naziv
niza *nije* promenljiva. Zato, ako imaš
char var[];
nikad ti neće uspeti dodela vrednosti, recimo
var = NULL;
Kompajler će na ovo izjaviti "Lvalue required..." ili nešto slično.
>> I to nije sve. Jer, meni ne treba niz bajtova odande, već samo
>> pointer na tu adresu (i void* je dovoljan). Ipak, char* daje neku
>> levu adresu, a char[] radi
Kada u programu napišeš "extern char var[]", time kažeš kompajleru da
je "var" oznaka za adresu prvog člana nekog niza koji se definiše u
drugom modulu, znači upravo ono što ti je potrebno. Nasuprot tome,
"extern char *var" označava *promenljivu*, četiri bajta dugačku, kojoj
se može dodeljivati vrednost.
Proteraj moj primer kroz dibager, s tim da deklarišeš "extern char
*TSGPIC". U asemblerskom kodu se na toj labeli nalazi string "Radi",
znači hex vrednosti 52 61 64 69. Pogledaj vrednost promenljive TSGPIC
i videćeš da je to 6964:6152. Ono što zapravo postižeš deklaracijom
"char *" je jedno dereferenciranje viška, koje će te, naravno, odvesti
na neku besmislenu adresu.
cccc.232paki,
> prvo o pisanju poruka: znakovi interpunkcije se pišu uz onu reč na
Takođe, u porukama postoje i velika slova.
cccc.234bulaja,
│PATCH.TXT file for Microsoft(R) C/C++, Version 7.0
└───
Hvala, prebaceno je u C direktorijum.
cccc.235vitez.koja,
#=> evo primera:
Hvala :)
#=> prvo o pisanju poruka: znakovi interpunkcije se pišu uz
#=> onu reč na koju se odnose. to znači da se otvoreni
#=> navodi pišu uz sledeću reč, a zatvoreni uz perthodnu.
#=> dalje, znakovi .,:;? itd se pišu uz prethodnu reč.
Nisam shvatio zašto mi držiš slovo o pisanju poruka (moj poruke poštuju "tvoja"
pravila), ali hvala ti i na tome ;)
cccc.236vision,
Zamolio bih ZZivotica da napravi jednu malu funkcijicu za program
lcomm.asm (r057com.zip) koji bi trebao da vidi dali se znak 'X' nalazi
na ulaznom bufferu modema.
P.S. Neznam ASM, pa bih molio ZZ-a (ili nekog drugog:), da napravi istu
funkciju koja bi mogla da se zove iz C-a.
Hvala unapred.
cccc.237vision,
Hi. Hoce li neko napisati 'petlju' (programcic) za simuliranje komande
dir /s (DOS komande). Program bi trebao da pretrazuje sve poddirektorije.
Uspeo sam da napravim do prvog sledecog direktorija, ali dalje nisam imao
nerva.
Unapred hvala
cccc.238stosic,
>> Treba mi sors u MSC-u za rad sa COM portovima zasnovan na koriscenju
>> prekida. Svaka pomoc je dobrodosla.
>
> Probaj sa fajlom r057com.zip iz direktorijuma RSOFT - to su primeri uz
> tekst Zorana Zivotica iz "Racunara 57" koji se bas time bavio.
Zoran je dao lcomm.asm, a meni je potreban MSC kod.
cccc.239janko,
> Hi. Hoce li neko napisati 'petlju' (programcic) za
> simuliranje komande dir /s (DOS komande). Program bi
> trebao da pretrazuje sve poddirektorije. Uspeo sam da
> napravim do prvog sledecog direktorija, ali dalje nisam
> imao nerva.
Fora je da napraviš REKURZIVNU proceduru, i ima da radi. Bez
prave rekurzije, opet se takve procedure, efektivno, svode na
simulaciju rekurzije.
Ako ne znaš šta su rekurzije, probaj da malo nađeš neke knjige
na temu ozbiljnog programiranja...
Evo idejnog rešenja, ovako, napamet... hope I didn't lose my
touch :)
-----
obradi_dir( imedir )
(
cd( imedir );
ispisi_sve_obicne_fajlove();
for (svaki_poddirektorijum)
obradi_dir();
)
cccc.240ppekovic,
>> Hi. Hoce li neko napisati 'petlju' (programcic) za simuliranje komande
>> dir /s (DOS komande). Program bi trebao da pretrazuje sve poddirektorije.
>> Uspeo sam da napravim do prvog sledecog direktorija, ali dalje nisam imao
>> nerva.
Uz poruku ti je program pcd u kojem imaš primer rekurzivnog
prolaska kroz direktorijume.
Paya
pcd101.zipcccc.241mjova,
> Hi. Hoce li neko napisati 'petlju' (programcic) za
> simuliranje komande dir /s (DOS komande). Program bi
> trebao da pretrazuje sve poddirektorije.
pogledaj scd???.arj. mislim da je u util diru.
cccc.242dejanr,
>> > Probaj sa fajlom r057com.zip iz direktorijuma RSOFT - to su primeri uz
>> > tekst Zorana Zivotica iz "Racunara 57" koji se bas time bavio.
>>
>> Zoran je dao lcomm.asm, a meni je potreban MSC kod.
LCOMM se može linkovati sa C-om. Ako ti treba baš C source, bojim se da
ga po direktorijumima nema (ne znam jesi li pogledao PCL4C34 u direktorijumu
C, zvuči da ima veze sa komunikacijama). Takođe možda vredi pogledati C
source nekog zmodem-a, ima u dir-u.
cccc.243vision,
Hvala svima (janko, ppekovic, mjova) na lekciji o rekurziji, bas je
bilo zanimljivo, jos kada bi ste napravili funkciju u vezi LCOMM-a ...
cccc.244dcolak,
│ LCOMM se može linkovati sa C-om. Ako ti treba baš C source, bojim se da
│ ga po direktorijumima nema (ne znam jesi li pogledao PCL4C34 u
│ direktorijumu C, zvuči da ima veze sa komunikacijama). Takođe možda vredi
│ pogledati C source nekog zmodem-a, ima u dir-u.
Hm... Sve preporuke za korišćenje PCL4C.... Imam pitanje za
ZZivotica... Koju biblioteku ti koristiš?
Sledge DAMMIR!
cccc.245pedjak,
> Zoran je dao lcomm.asm, a meni je potreban MSC kod.
Teško da ćeš efikasne osnovne rutine za komunikaciju napisati u
nekom višem programskom jeziku. Zato ti ja ipak preporučujem da se
osnova napiše u asembleru, a ostatak rutina uradi u C-u. Lcomm
biblioteka uglavnom zadovoljava, potrebno ti je možda još samo par
rutina.
cccc.246stosic,
> Ako ti treba bas C source
U tome je i problem!
> jesi li pogledao PCL4C34 u direktorijumu
Nema (nije bilo?) sorsa. I kada ga ima uvek (?) je Borland-ov.
Da li je veliki problem da se to uradi i u MSC-u?
Ako neko ima ideju neka se javi.
cccc.247stosic,
> Tesko da ces efikasne osnovne rutine za komunikaciju napisati u
> nekom visem programskom jeziku. Zato ti ja ipak preporucujem da se
Da je lako ne bih ni pitao :)
Mozda, ipak, neko to zna (zz) ?
cccc.248vitez.koja,
#=> Zoran je dao lcomm.asm, a meni je potreban MSC kod.
Još i okrunjeno ? :>
cccc.249mjova,
> Treba mi sors u MSC-u za rad sa COM portovima zasnovan na
> koriscenju prekida. Svaka pomoc je dobrodosla.
u snip????.??? na sezamu, imaš SERIAL.C (mislim da se baš tako zove)
koji je pisan skroz u Cu i radi super! probao sam ga svojevremeno.
podržava baferisan rad sa portovima itd. osnova za komunikacije i malo
više od toga!
cccc.250niklaus,
(:> Evo idejnog rešenja, ovako, napamet... hope I didn't lose my
(:> touch :)
Pre bi se reklo: "... haven't lost my touch :)"
(:> obradi_dir( imedir )
(:> ( <---
(:> cd( imedir );
(:> ispisi_sve_obicne_fajlove();
(:> for (svaki_poddirektorijum)
(:> obradi_dir();
(:> ) <---
Možda i jesi. (; Trebalo je sa vitičastim zagradama,
ili si ti namerno, zbog nas jadnih YUSCIIevaca. (:
(:niklaus:)
cccc.251dcolak,
│ Da li je veliki problem da se to uradi i u MSC-u?
│ Ako neko ima ideju neka se javi.
Ne razumem zašto ne koristiš PCL4C biblioteku? I ja koristim MSC6
i za mene je savršena biblioteka. BTW, užasno me nervira onaj
ekran o neregistrovanju, ali šta ću, nema se za register...
Sledge DAMMIR!
cccc.252pedjak,
> Da li je veliki problem da se to uradi i u MSC-u?
Zašto baš mora da bude u C-u ? Šta fali da se upotrebi asembler ?
cccc.253vitez.koja,
#=> i za mene je savršena biblioteka. BTW, užasno me nervira
#=> onaj ekran o neregistrovanju, ali šta ću, nema se za
#=> register...
Pa dibager u ruke... Trebalo mi je deset minuta da ukinem dosadne šarevare
poruke iz OpenDoors biblioteke, ne verujem da je ova nešto mnogo "opasnija".
cccc.254janko,
> (:> Evo idejnog rešenja, ovako, napamet... hope I didn't
> lose my (:> touch :)
>
> Pre bi se reklo: "... haven't lost my touch :)"
Koliko se razumem, i jedno i drugo je ispravno.
> (:> obradi_dir( imedir )
> (:> ( <---
> (:> cd( imedir );
> (:> ) <---
>
> Možda i jesi. (; Trebalo je sa vitičastim zagradama,
> ili si ti namerno, zbog nas jadnih YUSCIIevaca. (:
Sad si me konačno raskrinkao -- pošto ne znam gde se stavljaju
vitičaste zagrade, definitivno ne znam C te se ovde javljam samo
da bih širio laž, propagandu i dezinformacije i sprovodio
ostale neprijateljske aktivnosti zbunjivanja.
Sada, bez šale, ako nisi provalio da je tih pet-šest linija
bilo prikaz algoritma, a ne C program, onda stvarno...
Inače, naravno da mislim na one sa Juski rasporedom -- jer
mislim i na sebe. :) A samo za tebe, evo ti malo zagradica koje
se ne vide: ;) šŠ () Ćć
cccc.255niklaus,
(:> Inače, naravno da mislim na one sa Juski rasporedom -- jer
(:> mislim i na sebe. :) A samo za tebe, evo ti malo zagradica
(:> koje se ne vide: ;) šŠ () Ćć
Hvala!
Uveče za dobar san,
dobar san
Ujutro za dobar dan,
dobar dan... (zvuči poznato - Kraš Express)
(:niklaus:)
cccc.256dcolak,
│ Pa dibager u ruke... Trebalo mi je deset minuta da ukinem dosadne šarevare
│ poruke iz OpenDoors biblioteke, ne verujem da je ova nešto mnogo
Xexe.. Probao ja, ali bi do*určilo i batalio sam...
So, da te vidim junače :-) Uzmi TD i PCL4C small model (za početak)
pa da vidimo .... :-)
Sledge DAMMIR!
cccc.257stosic,
>Ne razumem zasto ne koristis PCL4C biblioteku?
Koristim je i ja. Interesovalo me je samo kako se to moze realizovati
u MSC-u. Video sam neke primere u BC-u, pa se pitam ...
cccc.258mirijevac,
Ima li neko mozda napisan programcic koji cita stanje sa COM porta i
pise ga u fajl.Zao mi je sto neznam C, pa za takvu stvar moram da
trazim pomoc. :((
pozdrav Rade
cccc.259dragisha,
-> Teško da ćeš efikasne osnovne rutine za komunikaciju napisati u
-> nekom višem programskom jeziku. Zato ti ja ipak preporučujem da se
-> osnova napiše u asembleru, a ostatak rutina uradi u C-u. Lcomm
-> biblioteka uglavnom zadovoljava, potrebno ti je možda još samo par
-> rutina.
Mislim da je ovo jedna od zabluda 'komunikacionog programiranja':). Imam
instalacije na kojima neki programi 'uslužuju' istovremeno više portova.
Sve je implementirano u (jednom:) višem programskom jeziku i radi već duže
vrijeme (>1/2 godine) bez problema. Usko grlo je sam UART, a dobro urađene
interrupt rutine sa dovoljno velikim baferom završavaju sve ostalo.
cccc.260.bale.,
> Ima li neko mozda napisan programcic koji cita stanje sa COM porta i
> pise ga u fajl.Zao mi je sto neznam C, pa za takvu stvar moram da
> trazim pomoc. :((
Ima toga, ali tesko da ces ga dobiti besplatno... Mail me da vidimo
o cemu se radi.
cccc.262kzoran,
HI!
Sta da radim sa MSC/C++ 7.0, odnosno PWB-om: odbija da radi sa 386MAX v6.0 i
QEMM386 v6.03 uz QDPMI v1.1. Editor ocigledno ne koristi (sve?) prednosti DPMI,
jer tek kad startujem Build project, PWB javi:
QDPMI: Init Error
run-time error R6903
- DOSX32 : DPMI host does not have 32-bit interrupt extension
NMAKE : fatal error U1077: 'CL' : return code '255'
Stop.
Kako ovo da resim?
Pozdrav,
kzoran
Stop.
cccc.263dejanr,
Uz poruku su Borlandovi propagandni materijali posvećeni novoj verziji
(4.0) njihovog C++-a. Puno ime je "Borland C++ 4.0 for DOS, Windows, and
Windows NT". Evo par rečenica sa početka saopštenja za štampu:
>> Borland C++ 4.0 is the world's most powerful, productive, customizable,
>> and visual C and C++ programming environment for DOS, Windows, and
>> Windows NT. Within its enhanced Integrated Development Environment,
>> you'll find the most complete and advanced tool set ever assembled.
>>
>> The new IDE lets you change almost anything to make it work the way you
>> do. Fast. C++ programming has never been this easy.
U istoj arhivi je još jedan tekst, takođe Borlandovo delo - pitanja i
odgovori o novom C-u
bc40.zipcccc.264haevorn,
Treba mi nekakav potprogram napisan u C-u (naravno) kojim se moze pristupiti
EXPANDED-memoriji. Znam da su Racunari svojevremeno o tome pisali, ali sada
taj broj ne mogu da nadjem. Kratko uputstvo bilo bi jos vrednije od samog
(pot)programa....
cccc.265zsiz,
> Treba mi nekakav potprogram napisan u C-u (naravno) kojim se moze pristupiti
> EXPANDED-memoriji. Znam da su Racunari svojevremeno o tome pisali, ali sada
R:ĐRSOFTĐ*.*
----------------------
r060ems zip 3012 Rad sa EMS memorijom
Pozdrav.
cccc.266pedjak,
> Treba mi nekakav potprogram napisan u C-u (naravno) kojim se moze
> pristupiti EXPANDED-memoriji. Znam da su Racunari svojevremeno o
> tome pisali, ali sada taj broj ne mogu da nadjem. Kratko uputstvo
> bilo bi jos vrednije od samog (pot)programa....
Imaš sors u rsoft diru.
cccc.267dr.obradovic,
Da li neko zna kako da na jako lak nacin (ako uopste postoji)
nateram procedure fread i fwrite da rade sa far pointerima u
medium modelu ?
Molim vas da mi ne saljete odgovore u stilu - predji na large model,
ili jos gore - napravi proceduru koja radi sa malloc-om i prebacuje
podatke u far. Znaci, treba mi DIREKTNO u far !
cu
Dragoljub B. Obradovic
cccc.269kzoran,
Pre vise od nedelju dana u konferenciji PC.PROG ostavio sam poruku na koju
dosad niko nije odgovorio, a posto problem još nisam rešio, prinuđen sam da
je ponovim.
Nabavio sam MSC/C++ 7.0, koji ne mogu da koristim u PWB sredini. Ustvari,
jedino u editoru mogu da radim normalno - čim pokrenem NMAKE, PWB me obavestava
o sledećem:
QDPMI: Insufficient extended memory available for initialization.
Requires: 136K -- Available: 4K
QDPMI: Init Error
run-time error R6903
- DOSX32 : DPMI host does not have 32-bit interrupt extension
NMAKE : fatal error U1077: 'CL' : return code '255'
Stop.
Pokušao sam sa 386MAX 6.x i QEMM386 6.03 uz QDPMI 1.01 - rezultati su isti.
Najviše me čudi to što sam MS preporučuje 386MAX kao rešenje kompatibilno
DPMI u Windows-u, kao i to što Quarterdeck u svom QDPMI tvrdi da MSC/C++ 7.0
i Borland C++ 3.1 rade pod QDPMI 1.01.
Prvi deo poruke (o nedovoljno extended memorije) sam i uspeo da izbegnem
postavljanjem QDPMI switch-eva i podešavanjem sistemske varijable, ali
grešku R6903 - nikako. Jedino što sam isključivanjem EMS memorije i postav-
ljanjem MINMEM i MAXMEM na iste vrednosti uspeo da saznam da DPMI nema čak ni
'16-bit interrupt extension' (DOSX16), pa sam odustao od daljeg podešavanja
QDPMI.
I kad sam se već pomirio sa tim da je jedino rešenje Windows 3.1 ('o, bože,
čime sam zaslužio tako strašnu sudbinu ?!'), pokrenem PWB a zatim i NMAKE
pod ovom omraženom mi udovicom, i ovog puta gotovo uskliknem od sreće - opet
greška R6903! U svom oduševljenju startujem, naravno, DM iz PC TOOLS-a, pa
pritisnem F6 pozicioniran na Windows direktorijum, ali sam time rešio samo
jedan problem. Drugi (tj. prvi) i dalje ostaje. Pozivanje cl.bat sa komandne
linije ostaje upotrebljivo rešenje, ali sam hteo da se najzad rešim gomile
switch-eva i beskrajnog prepravljanja makefile datoteke u toku razvoju
programa, pogotovo što PWB mnogo živahnije radi u novoj verziji.
Je li neko imao sličnih problema, i zna li kako da ih ja rešim? Odgovor mi
treba prilično brzo, jer i inače već razmišljam o prelasku na BC++.
Radim na 486SX/33 mašini sa 4M RAM-a, TSENG ET 4000 video kartom i IDE
QUANTUM diskom. Na računar su povezani još miš i modem, ako to ima neke veze,
a evo i sadržaja config.sys i autoexec.bat fajlova:
CONFIG.SYS
----------
device=c:ĐqemmĐqemm386.sys r:1 ram st:m
device=c:ĐqemmĐloadhi.sys /r:1 c:ĐqemmĐqdpmi.sys vm killswap
dos=high
break=on
buffers=10
files=40
stacks=9,256
device=c:ĐqemmĐloadhi.sys /r:1 c:ĐdosĐsetver.exe
device=c:ĐqemmĐloadhi.sys /r:2 c:Đmouse.sys /y
shell=c:ĐdosĐcommand.com c:ĐdosĐ /p /e:512
country=033,,c:ĐdosĐcountry.sys
AUTOEXEC.BAT
------------
čecho off
path c:Đ;c:Đdos;c:Đqemm;d:Đ;d:Đpct;d:Đutil;d:ĐutilĐedit;d:ĐutilĐarch;d:Đtelix
c:ĐqemmĐloadhi /r:1 c:ĐdosĐappend /e
c:ĐdosĐappend c:Đdos;c:Đdisplay
prompt $p$g
c:ĐdosĐmode con: rate=32 delay=1
c:ĐqemmĐloadhi /r:1 c:ĐdosĐdoskey
ver
set pctools=d:ĐpctĐdata
set qdpmi=swapfile c:ĐqemmĐqdpmi.swp 1024
d:
Unapred hvala svima!
kzoran
cccc.270stosic,
...
This file contains LLIBCA.LIB of the MS-C 5.1 Compiler, which works fine
with C (also when using MS-C 6.0). If you are using MS-C 6.0 please make
sure to use the /FPa /Gh AND don't use /Zi. Please pay attention to
the file LLIBCA.TXT, which contains the original disclaimer of MicroSoft.
...
Sta radi /Gh ???
cccc.271mjova,
c, asm, int 8, 9, keep and reboot comp tsr
boot.arjcccc.272mjova,
c, ctrl-c & ctrl-brk
ctrl-c.arjcccc.273mjova,
c, bgi,
gray.arjcccc.274mjova,
c, print image na štampač
grdump.arjcccc.275mjova,
c, koliko ima mesta na far heap-u
heapsize.arjcccc.276mjova,
c, grafički meni, primer
hilite.arjcccc.277mjova,
c, kako radi int 9
int9keep.arjcccc.278mjova,
c, rezidentni sat
int_1c.arjcccc.279mjova,
c, strpa slova u kbd buf
kbstuff.arjcccc.280mjova,
c, isključivanje ctrl-alt-delete
nocad.arjcccc.281mjova,
c, primer za vararg
vararg.arjcccc.282mjova,
beše to skup zanimljivih primera ;)
cccc.283nesa,
Šaljem ovu rutinu u MSC, koja čita i/ili postavlja atribute POSTOJEĆEM
fajlu! Iz Clipper-a se poziva sa (npr.):
cdos_setfi("file.ext", _A_HIDDEN + _A_RDONLY)
Nevolja je što sa C kompajlerom iz verzije 6.0 nakon ove kobasice:
CL fileattr.c /c/AL/Gs/Zl/FPa -link /NOE/se:512
dobijam poruku:
Command line error D2002:Conflict in memory model ili tako nešto.
Svi parametri su po pravilima za povezivanje C sa Clipperom (po Rick
Spenc-u). žuo sam da je razlog to što nemam C verziju 5.1!
Ovo mi je potrebno hitno. UKOLIKO ima dobrih duša koje će ovo uspešno
prevesti i povezati i poslati .OBJ fajl (uz dodatna obaveštenja gde da
nadjem C5.1)!
Evo i programa:
/***
* Dobijanje i definisanje atributa datoteke
*/
#include "extend.h"
#include "dos.h"
/***
* BROJNI cdos_getfi(path, attribute)
*
* ZNAKOVNI path Puna putanja
* BROJNI *attributes Broj za smestanje atributa.
* Mora biti prenet preko reference.
*
* Odredjivanje atributa datoteke ili direktorijuma. Atributi su u
* attribute (mora biti prenet preko reference). Rezultat funkcije
* je 0 ako je ok, u suprotnom je broj greske.
*/
CLIPPER cdos_getfi()
{
unsigned attributes, errcode;
/* Poziv funkcije iz biblioteke */
errcode = _dos_getfileattr(_parc(1), &attributes);
/* Smestanje atributa u parametar prenet preko reference */
_storni(attributes, 2);
/* Vracanje kôda greske u Clipper */
_retni(errcode);
}
/***
* BROJNI cdos_setfi(path, attribute)
*
* ZNAKOVNI path Puna putanja
* BROJNI attribute Novi atributi
*
* Definise atribute datoteke ili direktorijuma.
* Vraca 0 ako je ok, u suprotnom je broj greske.*/
CLIPPER cdos_setfi()
{
_retni(_dos_setfileattr(_parc(1), _parni(2)));
}
hederi.zipcccc.285peca.st,
Da li je neko uspeo da kompajlira, odnosno upotrebi
onaj giflib12.axx iz direktorijuma? Stalno mi prijavljuje
grešku (prilikom pravljenja .lib) Command line too long
ili nešto slično. Tamo piše da treba staviti što kraća imena
direktorijuma, baš zbog toga. Ja sam stavio najkraće - jedno slovo,
ali opet isto. :(
Dakle, da li neko ima napravljene .lib?
Peđa.
cccc.286ilazarevic,
Imam problem. Evo prvo sorsa, a posle ide pitanje:
int i=0;
char l[80];
do
{
i++;
l[i]=getchar();
}
while (l[i]!="\n");
Ovo ispada da je beskonacna petlja, jer i posle pritiska na Enter nastavlja
se unos znakova. Sta ne valja?
Sem toga, kad negde kasnije u programu pokusam da uradim ovo:
if (l[i]=="x") ... kompajler prijavljuje sledece upozorenje:
Nonportable pointer conversion in function main.
cccc.287eagle,
> while (lŠiĆ!="Đn");
>
> Ovo ispada da je beskonacna petlja, jer i posle pritiska na
> Enter nastavlja se unos znakova. Sta ne valja?
Stavi 'Đn', dvostruki navodnik je za string.
cccc.288vita,
> if (lŠiĆ=="x") ... kompajler prijavljuje sledece
###
I ovde takođe..... treba 'x' sobzirom da je l char tipa.
Vita
cccc.289baranja,
Koristim Borland-ov Turbo C++ 1.0, zanima me kako da podesim
parametre za čitanje signala sa RS-232. Signali su:
brzine 1200 bauda, 1 startni bit, 8 informacijskih bita,
bez kontrole parnosti.
Za isčitavanje serijskog porta sam koristio naredbu /ulaz=inportb(0x3f8/
i radi dobro sa default vrednostima prema drugom računaru.
Pomagajte, hitno je!
Pozdrav!
cccc.290ilazarevic,
> Stavi 'Đn', dvostruki navodnik je za string.
Hvala i tebi i Viti. Reklo bi se da je ovo uzrok i onog upozorenja.
cccc.291madamov,
> while (l[i]!="\n");
Umesto ovog treba da stoji while(l[i]!='\n') ili while(l[i]!="\\n"). BTW,
prvi karakter u stringu l, tj. l[0] ti je uvek nedefinisan jer ga jednostavno
preskočiš.
> if (l[i]=="x") ... kompajler prijavljuje sledece upozorenje:
I ovo iz istog razloga kao i gore, dakle umesto navodnika treba da stoji '.
cccc.292dgrbic,
Narode, pozdrav iz Moskve!
Potrebna mi je pomoc u izboru C kompajlera.
Ako neko zna nesto o Zortech C++ 3.1, a pre svega ako negde
postoje testovi brzine (posebno u odnosu na BC++ 3.1) bio bih
mu jako zahvalan da mi to mailne.
Potrebno mi je da kupim kompajler koji daje sto je moguce brzi
kod, a Zortech i Borland mi i po ceni veoma odgovaraju, pa me
stoga zanima koji je od ova dva bolji.
E, da me ne bi pitali koje su cene, da odma kazem:
BC++ 3.1 & AF oko 120 USD
BC++ 3.1 (bez AF) oko 80 USD
ZC++ 3.1 oko 60 USD
Pretpostavljam da je BC brzi, ali ne bih da se zalecem,
posebno posto su mi porebne malko specificne svari (386 kod,
brz rad sa nizovima i sa long intovima...)
Ponovo da napomenem, odgovore mi pliz saljite na mail, jer ne
mogu da skidam conf., mnogo je skupo :)
Pozvacu opet za dva dana, pa bih bio vrlo zahvalan ako mi do
tada neko posalje neke informacije.
cccc.293dekiper,
> Koristim Borland-ov Turbo C++ 1.0, zanima me kako da podesim
> parametre za čitanje signala sa RS-232. Signali su:
> brzine 1200 bauda, 1 startni bit, 8 informacijskih bita,
> bez kontrole parnosti.
> Za isčitavanje serijskog porta sam koristio naredbu /ulaz=inportb(0x3f8/
> i radi dobro sa default vrednostima prema drugom računaru.
>
> Pomagajte, hitno je!
Zašto ne pokušaš sa bioscom.
Function: Performs serial I/O
Syntax: int bioscom(int cmd, char abyte, int port);
Prototype in: bios.h
Remarks: bioscom performs various RS-232 communications pver the I/O port
given in port.
A port value of 0 corresponds to COM1, 1 corresponds to COM2, and so forth.
The value of cmd can be one of the following:
0 Sets the communications parameters to the value in abyte.
1 Sends the caracter in abyte out over the communications line.
2 Receives character from the communications line.
3 Returns the current status of the communications port.
abyte is a combination of the following bits (one value is selected from
each of the groups):
0x02 7 data bits
0x03 8 data bits
0x00 1 stop bit
0x04 2 stop bits
0x00 No parity
0x08 Odd parity
0x18 Even parity
0x00 110 baud
0x20 150 baud
0x40 300 baud
0x60 600 baud
0x80 1200 baud
0xA0 2400 baud
0xC0 4800 baud
0xE0 9600 baud
For example, a value of 0xEB (0xE0 đ 0x08 đ 0x00 đ 0x03) for abyte sets the
communications port to 9600 baud, odd parity, 1 stop bit, and 8 data bits.
bioscom uses the BIOS 0x14 interrupt.
Za tebe je dakle vrednost: 0x03 đ 0x00 đ 0x80 đ 0x00
Return value:
For all values of cmd, bioscom returns a 16-bit integer of which the upper
8 bits are status bits and the lower 8 bits vary, depending on the value
of cmd. The upper bits of the return value are defined as follows:
Bit 15 Time out
Bit 14 Transmit shift register empty
Bit 13 Transmit holding register empty
Bit 12 Break detect
Bit 11 Framing error
Bit 10 Parity error
Bit 9 Overrun error
Bit 8 Data ready
If the abyte value could not be sent, bit 15 is set. Otherwise, the
remaining upper and lower bits are appropriately set.
With a cmd value of 2, the byte read is in the lower bits of the return
if there was no error. If an error occured, at least one of the upper
bits are set. If no upper bits are set, the bytes were received without
error.
With a cmd value of 0 or 3, the return value has the upper bits se as
defined, and the lower bits are define as follows:
Bit 7 Received line signal detect
Bit 6 Ring indicator
Bit 5 Data set ready
Bit 4 Clear to send
Bit 3 Change in receive line signal detector
Bit 2 Trailing edge ring detector
Bit 1 Change in data set ready
Bit 0 Change in clear to send
Protability: bioscom works with IBM PCs and compatibles only.
Example:
/* bioscom example - Dumb Terminal Demo */
#include <bios.h>
#include <conio.h>
#define COM1 0
#define DATA_READY 0x100
/* 1200 baud-a, 8 bitova, 1 stopbit, nema pariteta */
#define SETTINGS (0x80 đ 0x03 đ 0x00 đ 0x00)
main()
š
register int in, out, status;
bioscom(0,SETTINGS,COM1);
cprintf("...BIOSCOM ŠESCĆ to exit...Đn");
while(1) /* beskonačna petlja */
š
status = bioscom(3,0,COM1);
if(status & DATA_READY)
š
if((out=bioscom(2,0,COM1) & 0x7F)!=0)
putch(out);
if(kbhit())
š
if((in=getch())=='Đx1B')
return(0);
bioscom(1,in,COM1);
ć
ć
ć
ć
Pozdrav, Deki
cccc.294m.dzigurski,
Convert binary files to 80*86 assembler with C source.
486dis_c.zipcccc.295asterix,
> Narode, pozdrav iz Moskve!
> ...
> BC++ 3.1 & AF oko 120 USD
Ma jok, mani ćorava posla. Dodji ti lepo natrag u Beograd
pa kupi BC++ 3.1 & AF u CET-u. Najavili su veliko sniženje
sada taj paket košta samo 800 DM.
cccc.296dgrbic,
::Zamolio bih te i za neke dopunske informacije. Da li za te pare ide i
::kompletna dokumentacija na engleskom ili je ne_daj_boze ruski? Najavljuje
::li se i BC++ 4.0 (cena?) i da li znas ima li i posto MS Visual C++ 1.0?
::ono sto me najvbise interesuje je kakve su ovo cene u USD? Tj.
::da li je rec o kompletnim originalnim paketima (sa dokumentacijom),
::samo za rusko trziste?
::BTW, ovako niske cene nisu ni u Americi... (znam pouzdano)
Evo dopunskih informacija za zainteresovane.
Sto se kompajlera tice, to su kompletne verzije u velikim kutijama
sa dokumentacijom na, dao_bog engleskom, dok su neki drugi paketi
rusificirani (npr. windows, ami pro, clipper...) mada se mogu naci
i engleske verzije, ali po vecoj ceni.
Borland, Symantec i Lotus imaju vrlo povoljne cene, sto se za
Microsoft ne bi moglo reci. Visual C++ Professional kosta 429$, a
Standard 220$.
Medjutim, ima jos zanimljivih stvari:
Turbo C++ for Windows Visualised, za 55$,
Turbo Pascal for Windows Visualised, za 76$
Symantec C++ 6.0 Professional, za 250$
Think C v5.0 (za Mac), za 36$
Zortech C++ for Unix v2.1, za 113$
Protogen za C++ ili Pascal za 19$
Brief za DOS i OS/2 kosta 32$ (manje nego registracija za neke SW
editore)...(koje, doduse, ne moras da registrujes)
Borland C++ 4.0 se jos nije pojavio, a ka` ce ne znamo, kao ni OS/2
bez Windows edition :)
BTW, i ja znam sasvim pouzdano da su cene nize nego u Americi :)
PS. Fala svima koji su se javili :)
PSS. Korisnih adresa u Moskvi nema. Sistem kupovine je da se placa
u kesu i kutija se odmah nosi sa sobom.
cccc.297madamov,
> Think C v5.0 (za Mac), za 36$
Wow, kupim ovo i onda platim upgrade do Symante C++ za Meka i izađe me
jeftinije. B) Koliko je Symantec C++ za Meka?
> PSS. Korisnih adresa u Moskvi nema. Sistem kupovine je da se placa u kesu i
> kutija se odmah nosi sa sobom.
Daj mi adresu za ove koji imaju Symantecove proizvode, imam prijatelje koji
često putuju na relaciji Moskva-Beograd pa da mi to pazare.
cccc.298bulaja,
│Sto se kompajlera tice, to su kompletne verzije u velikim kutijama
│sa dokumentacijom na, dao_bog engleskom, dok su neki drugi paketi
│rusificirani (npr. windows, ami pro, clipper...) mada se mogu naci
│i engleske verzije, ali po vecoj ceni.
└───
Ako ti nije tesko, napisi posto je Clipper (i ruska i engleska verzija).
cccc.299eotek,
EXE2C.ZIP
(C "sourcer" || disCeer ?)
hoce li neko da ovaj fajl slika sa
imtel BBS i okaci ovde negde.
thx
The 200 KB Guest
cccc.300mjova,
> EXE2C.ZIP
evo ga ;)
probao sam ovo čudo i nisam preterano oduševljen. no, to radi baš kako
mu ime kaže. ne radi Bog-zna-kako, ali radi!
exe2c.arjcccc.301eotek,
>> EXE2C.ZIP
>
> evo ga ;)
thx mucho
--> speed is all
cccc.302ialeksic,
Ovaj program na prvi pogled daje citljiv i (mozda) upotrebljiv prevod.
Na manjim programima radi, ali kada sam pokusao da kroz njega propustim
EXE od oko 120k izgleda da mu fali memorije. Daje poruku:
FATAL ERROR: c_alloc(65531,1) failed.
Da je neko u posedu ili moze da preporuci neki disassembler koji ce dati
citljiv/upotrebljiv kod slicno ovome?
cccc.303alatisko,
Zdravo svima.
Imam mali problem. Kako da pisem po celoj video memoriji kada sam u modu
640x480 256 boja?.
Ako se sluzim pravilom da video memorija pocinje od A000:0000, onda mogu
da pisem samo do A000:FFFF. Znaci u okviru jednog segmenta, a to je trecina
ekrana. Koji je sledeci segment video memorije !!!!
Kartica je TRIDENT 8900c 512Kb. Da je ovo izvodjivo, dokaz je program VPIC
koji kod mene prikaze i sliku nu 800x600 256 boja, a poznato je da radi
direktno sa video memorijom.
Hvala !
´k
cccc.304vita,
> Imam mali problem. Kako da pisem po celoj video memoriji kada
> sam u modu 640x480 256 boja?.
Pa svaka kartica koja koristi tu rezoluciju, ima svoje banke, bas zato
sto mozes u trenutku da radis samo sa 64k
Mlogo zeznuto, mislim na razne kartice, svaka je drugacija.
Pogledaj GRPHICS dir. mozda ima nesto zanimljivo.
Vita
cccc.305stosic,
Da li neko ima disketu sa primerima iz knjige:
A Complete Guide to Mastering the C language, Augie Hansen.
cccc.306.bata.,
Imam jedan gadan problem. Treba mi dovoljno brz scroll u c-u e sad jedna od
varijanti koje su mi pale na pamet je da kad korisnik pritisne na dole program
iscrta ceo ekran ponovo al' pomeren za jedan na dole. Koliko ja znam osim
buffer-a nema pametnijeg resenja ako neko zna nek salje CIM PRE TO BOLJE :)
-=> BaTa <=-/.CoRRoSioN.
cccc.307dsisic,
> Imam jedan gadan problem. Treba mi dovoljno brz scroll u c-u.
A sta je sa scroll pozivima 06h, 07h interapta 10h?
INT 10h, 06h (6) Scroll Window Up
Scrolls a specified window upward a specified number of lines.
On entry: AH 06h
AL Number of lines to scroll (if 0, clear entire
window)
BH Display attribute for blank lines
CH Row number of upper left corner
CL Column number of upper left corner
DH Row number of lower right corner
DL Column number of lower right corner
Returns: None
Registers destroyed: AX, SP, BP, SI, DI
cccc.308drdjokic,
Pocetnik
Upravo sam instalirao C++ 5.01 Microsoft
Ho}u da iskompajliram source fajlove, kako bi trebao da izgleda bat fajl.
hvala !
cccc.309djelovic,
> Imam jedan gadan problem. Treba mi dovoljno brz scroll u c-u e sad jedna
> od varijanti koje su mi pale na pamet je da kad korisnik pritisne na dole
> program iscrta ceo ekran ponovo al' pomeren za jedan na dole. Koliko ja
> znam osim buffer-a nema pametnijeg resenja ako neko zna nek salje CIM PRE
To i jeste najbrža varjanta. Klasičan skrol se svodi na kopiranje iz video
memorije u video memoriju, a pošto je video memorija drastično sporija od
obične, to onda i nije najsrećnije rešenje. Mnogo bolje rešenje je ponovni
ispis na ekran, pod uslovom da se piše direktno u video memoriju a ne preko
BIOS ili DOS poziva. Onda se to svodi na kopiranje iz obične u video memoriju,
što je, po grubim procenama, dva puta brže.
cccc.311dejanr,
>> Upravo sam instalirao C++ 5.01 Microsoft
>> Hoću da iskompajliram source fajlove, kako bi trebao da izgleda bat fajl.
Ako su ti svi SET-ovi u AUTOEXEC-u u redu, trebalo bi da kažeš cl ime.c
gde je ime.c naziv fajla sa programom (ne zaboravi i ono .c).
Tako je na C-u 6.0, valjda je i na 5.1, sa njim nisam davno radio.
PS Pretpostavljam da misliš na C 5.01. Nije C++!
cccc.312eagle,
> BIOS ili DOS poziva. Onda se to svodi na kopiranje iz obične u
> video memoriju, što je, po grubim procenama, dva puta brže.
Napravio sam mali test sa kopiranjem blokova više hiljada puta
zaredom. Ako uzmemo kopiranje obične memorije u običnu kao
referencu, ispada da je:
mem --> videomem 3.09 puta sporije
videomem --> mem 3.47 -"-
videomem --> videomem 4.57 -"-
Sledi da bi kopiranje iz bafera bilo brže oko 1.48 puta.
Ako bi se prvo "skrolovalo" po baferu, pa onda sve kopiralo u
videomem dobili bi oko 10% brži skrol u odnosu na "klasičan".
cccc.313djelovic,
> Sledi da bi kopiranje iz bafera bilo brže oko 1.48 puta.
> Ako bi se prvo "skrolovalo" po baferu, pa onda sve kopiralo u
> videomem dobili bi oko 10% brži skrol u odnosu na "klasičan".
Bafer bi trebalo da može da se organizuje tako da skrol u njemu ne mora da
se vrši, tako da je cifra 1.48 najpribližnija realnom rezultatu. Doduše, ovde
se radi i o specifičnostima video kartice a i same mašine, tako da je procena u
najboljem slučaju odokativna :).
cccc.314eotek,
> Ho}u da iskompajliram source fajlove, kako bi trebao da izgleda bat
fajl.
> hvala !
posto si odabrao msc 5.1 pretpostavljam da zelis da spajas
sa clipperom. da ne bi bilo guzve sa set-ovima u autoexec-u, evo
malog primera (doduse za msc 6.0, ali to bi trebalo da bude isto)
u kombinaciji sa blinkerom . zgodno je da taj bat povezes u okviru
norton commander-a preko commands\extension file edit -
i imas veoma brzo prevodjenje za lenje:
set include=c:\c600\include
c:\c600\bin\cl /qc /c /AL /BATCH /Zl /Gs /W3 %1.c
c:\blinker\blinker fi %1.obj lib c:\c600\lib\llibca,
c:\c600\lib\llibce
etsc
cccc.316dejanr,
Cray Research promoviše novi Cray Standard C Programming Environment 1.0
i Cray Research C++ Libraries.
NOVOSTI/microb 4.293.
cccc.317predragd,
Pokušavam da iskompajliram gomilu procedura u jedan .DLL fajl.
Međutim, nikako mi ne polazi za rukom, linker mi uvek prijavljuje
jednu te istu grešku, ma šta ja uradio.
Error: Undefined symbol LIBMAIN in module c0d.ASM
Šta da mu uradim pa da ga korektno iskompajliram. Koristim BC++
3.1 pod DOS-om.
Peđa.
cccc.318vitez.koja,
Opet ja sa starim problemom (upornost se isplati;)) Da li neko zna zašto neka
biblioteka (konkretno PCL) neće da se linkuje sa C++ programom, dok se sa C
programom linkuje kako valja ? U pitanju je BC++.
cccc.319dragann,
> Opet ja sa starim problemom (upornost se isplati;)) Da li neko zna zasto
> neka biblioteka (konkretno PCL) nece da se linkuje sa C++ programom, dok se
> sa C programom linkuje kako valja ? U pitanju je BC++.
OBJ i LIB fajlovi koje pravi BC++ se razlikuju od onih za C,pascal ...
Oni su precizniji jer sadrze vise informacija, kod poziva funkcija striktno
paze na tip argumenta. Najbolje probaj TDUMP CPP.OBJ i uporedi sa TDUMP C.OBJ.
Mislim da bi funkcije koje pozivas u c++ morao da definises kao
extern C a();
Pogledaj u CPPFAQ (ima ga na sezamu) za resenje povezivanja C i CPP
funkcija. Problem poziva C++ iz C-a je jos gori.
Dragoljub
cccc.320i.a.n.,
>> Opet ja sa starim problemom (upornost se isplati;)) Da li neko zna
>> zašto neka biblioteka (konkretno PCL) neće da se linkuje sa C++
Pročita li ti moju poruku 10.125 u ovoj konferenciji, bRE? :)
cccc.321mjova,
> Opet ja sa starim problemom (upornost se isplati;)) Da li
> neko zna zašto neka biblioteka (konkretno PCL) neće da se
> linkuje sa C++ programom, dok se sa C programom linkuje
> kako valja ? U pitanju je BC++.
osnovni problem linkovanja C lib sa C++ lib leži u načinu prevođenja.
ne znam da li je problem u toku samog linkovanja ili je problem već i
tokom prevođenja. prilikom linkovanja nisam imao nikad problema, ali
obično u .h nedostaje 'extern "c"' tako da se obično sve glavi već kod
prevođenja.
cccc.322mdimitrijevic,
IMAM VELIKI PROBLEM !!!!
Pri pisanju programa kod kojih sors dodje do neke stotine KB pojavljuje mi
se greska 'Too much global defined data ...' ili ovako nesto.
Znam sta to znaci i izbacim mnoge globalne promenjive ali ne vredi.
Prevedem sors u HUGEÝy modelu kao sto kaze Borland C++ 3.1 help i definisem kao
far razne varijable itd itd... Ali ne vredi.
STA DA MU RADIM U P.... M...... (#@$% )K:(((((((( ???????
Pozdrav,
Marjan Dimitrijevic
P.S. SPASAVAJTE MI ZIVOT MOLIM VAS !!!!!!!!!!!!!!!!!!!!!!!!!!
cccc.323mjova,
> IMAM VELIKI PROBLEM !!!!
ni jedan problem nije veliki ako mu priđeš ispravno. naime, cela
istočna filozofija se bavi prilaskom problemu, ali tako da se svaki
čini kao jednostavan i lako rešiv. siguran sam da ni jedan problem
nije kao nož u leđima, tako oštar i strm. svaki ima bar jednu laganu
padinu, problem je samo kako je naći.
> STA DA MU RADIM U P.... M...... (#@$% )K:(((((((( ???????
nadam se da nije potrebno da se nerviraš. ceo život samo protiče kraj
nas. zašto se nervirati? nirvana brate, nirvana!
> P.S. SPASAVAJTE MI ZIVOT MOLIM VAS !!!!!!!!!!!!!!!!!!!!!!!!!!
eoeoeo, neko želi da te ubije? ;) ovo je već ozbiljno. krajnje. no,
kad je već tako, da vidimo o čemu je reč...
> Pri pisanju programa kod kojih sors dodje do neke stotine
> KB pojavljuje mi se greska 'Too much global defined data
> ...' ili ovako nesto.
ovaj problem se javlja kod programa koji se krpe. kod onih programa
koji se pišu u BASIC stilu. priznajem da ovu grešku nisam nikad video,
ali sudeći po onome što piše u helpu, znam šta je po sredi.
imaš previše globalnih promenljivih, a najverovatnije imaš i neke
nizove pozamašne veličine. kako problem nisi rešio ni prevođenjem u
huge modelu, to znači da si modul kod koga se to javlja majstorski
napisao. pogledaj malo da reorganizuješ kod, da smanjiš broj globalnih
promenljivih. ako imaš globalne nizove, onda im pristupaj preko
pointera, a njih sam alociraj sa new ili malloc(). način da se veći
nizovi (preko stotinak bajtova) alociraju dinamički je bolji iz više
razloga, a najbitiniji je baš ovaj (možda još treba navesti da se
statičkim alociranjem u fn opterećuje stack koji je ipak konačne
veličine).
cccc.324bojt,
>> Pri pisanju programa kod kojih sors dodje do neke stotine KB
>> pojavljuje mi se greska 'Too much global defined data ...' ili
>> ovako nesto.
Jel to 100k main ili ima i rutina?
cccc.325djelovic,
> Pri pisanju programa kod kojih sors dodje do neke stotine KB pojavljuje
> se greska 'Too much global defined data ...' ili ovako nesto.
Iz koliko modula ti se sastoji program? Probaj da ceo projekat iz
početka sagradiš (Compile/Build), to ume da pomogne ako se kompajler
zaglupi.
cccc.326.bata.,
Dal' bi neko od vrsnih programera mogao da mi ostavi primer kako da skrolujem
niz npr: linijeŠ300Ć na ekranu visine 15. Please od toga mi zavisi zivot.
P.S. Naravno kontrola gore dole je ostavljena korisniku na volju...
Unapred veliko _HVALA_ svima !! :)
cccc.327markom,
■■■ Dal' bi neko od vrsnih programera mogao da mi ostavi primer
■■■ kako da skrolujem niz npr: linije[300] na ekranu visine 15.
■■■ Please od toga mi zavisi zivot.
Reci mi Bato, da li ti odgovara možda isto to, ali urađeno u Pascalu?
Ako ti odgovara, možda ti nađem nešto takvo.
Marko
cccc.328markom,
■■■ Dal' bi neko od vrsnih programera mogao da mi ostavi primer
■■■ kako da skrolujem niz npr: linije[300] na ekranu visine 15.
■■■ Please od toga mi zavisi zivot.
Reci mi Bato, da li ti odgovara možda isto to, ali urađeno u Pascalu?
Ako ti odgovara, možda ti nađem nešto takvo.
Marko
cccc.329petrovics,
Jeli moguce prosto (bez mnogo hakerisanja) napisati kod u
MSC 6.0 koji bi radio na VGA rezoluciji 640x480 (800x600 !?) u
256 boja ili nijansi sivog?
Koliko vidim funkcijom _setvideomode tako nesto nije moguce.
pozdrav, Sasa
cccc.330vitez.koja,
Za čega služe .SYM fajlovi u Borland C-u ? Da li ja to smem da pobrišem,
naročito da li smem da pobijem BCDEF.SYM i TCDEF.SYM ? Oni zajedno zauzimaju
2.5 MB :(
Ukapirao sam da su .sym fajlovi u vezi sa .prj fajlovima... .sym fajl jednog
sasvim malog projekta narastao mi je na 900kb :((
cccc.331djelovic,
> Za čega služe .SYM fajlovi u Borland C-u ? Da li ja to smem da pobrišem,
> naročito da li smem da pobijem BCDEF.SYM i TCDEF.SYM ? Oni zajedno zauzimaj
> 2.5 MB :(
Prekompajlirani hederi. Ta dva nemoj da brišeš, ostale možeš!
cccc.332dragisha,
-> razloga, a najbitiniji je baš ovaj (možda još treba navesti da se
-> statičkim alociranjem u fn opterećuje stack koji je ipak konačne
-> veličine).
Ne bi trebalo. Statički podaci su u _DATA segmentu. Oni sa auto (ah C:)
idu na stack.
--
[I got derailed by a dancer down in Dallas...]
cccc.333.bata.,
Dal' postoji neka funkcija u C-u koja moze da prosledi promenljive systemu. kao
npr. system ("q %s", fajl); system to ne moze... ako neko ima ideju....
cccc.334vitez.koja,
Zamolio bih vlasnika bilo kakve literature na temu "Paradox engine" da mi se
javi u mail i time me mnogo obraduje.
žuo sam da je nekoć napravljena grupa koja se bavila Paradox Engine-om. Ako
neko zna ko je vlasnik iste, molio bih ga da mi informaciju ostavi u mail.
cccc.335i.a.n.,
>> Za čega služe .SYM fajlovi u Borland C-u ? Da li ja to smem da
>> pobrišem, naročito da li smem da pobijem BCDEF.SYM i TCDEF.SYM ?
>> Oni zajedno zauzimaju 2.5 MB :(
Tu se smeštaju kompajlirane verzije zaglavljâ. Njihovo prevođenje se
iz komandne linije zahteva prekidačem -H[=symfile], a u IDE-u valjda
negde u "Compiler Options". U BC++ 3.1 postoji i -Hu, čime se nalaže
korišćenje postojećih bez generisanja novih .SYM datoteka.
Pravila za korišćenje i direktiva koje time upravljaju ima dosta; ne
bih da ih prekucavam, pogledaj help. Sve .SYM-ove možeš brisati, ali
će se oni iznova generisati pri kompajliranju dokle god koristiš -H.
cccc.336klisa,
>> Dal' postoji neka funkcija u C-u koja moze da prosledi promenljive
>> systemu. kao npr. system ("q %s", fajl); system to ne moze... ako
>> neko ima ideju....
char cmd[80];
...
sprintf( cmd, "q %s", fajl );
system( cmd );
...
cccc.337bulaja,
│Zamolio bih vlasnika bilo kakve literature na temu "Paradox engine"
│da mi se javi u mail i time me mnogo obraduje.
└───
R:\IBMPC\C\*.*
----------------------
pxeng arj 15012 Norton Guide za Paradox Engine 2.0 (C biblioteka)
pxeng3 arj 35310 Norton Guide za Paradox Engine 3.0 (C biblioteka)
pxetip arj 8647 Paradox Engine 2.0 programming tips (Borland)
Uz MJogijeve tekstove u Racunarima, ovo bi trebalo da ti bude sasvim
dovoljno za pocetak (a i nastavak:) rada sa PXE.
cccc.338dcolak,
│ Dal' postoji neka funkcija u C-u koja moze da prosledi promenljive systemu.
│ kao npr. system ("q %s", fajl); system to ne moze... ako neko ima ideju....
sprintf(fajl, "q %s", fajl);
system(fajl);
Ili tako nekako :)
Sledge DAMMIR!
cccc.339postmast,
Path: fon!breza!smilic
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Wed, 12 Jan 1994 13:14:10 GMT
Message-ID: <CJIq3M.18v@fon>
X-Newsreader: TIN [version 1.2 PL1]
References: <sezam$cccc:01.095.3191@sezam>
Sender: news@fon (News)
Damjan Pelemis (.bata.@sezam.UUCP) wrote:
: Dal' postoji neka funkcija u C-u koja moze da prosledi promenljive systemu. kao
: npr. system ("q %s", fajl); system to ne moze... ako neko ima ideju....
Mozes sam da napises funkciju ( npr mysystem ) koja ce imati promenljiv
broj argumenata i prihvatati formatski string i argumente u stilu printf
i slicnih funkcija.
Pozdrav, Sasa
cccc.340mdimitrijevic,
Problem sa 'Too much global data defined ...' sam resio deleci program na
vise modula i prevodeci ih u LARGE modelu posebno pa onda TLINK i toß je to.
Pozdrav,
Marjan Dimitrijevic
P.S. Hvala svima koji su se trudili da odgovore !!!!!!!
cccc.341ppekovic,
>> Dal' postoji neka funkcija u C-u koja moze da prosledi promenljive systemu.
>> kao npr. system ("q %s", fajl); system to ne moze... ako neko ima ideju....
To se rešava jednostavnim:
char sysstr[ ... ];
sprintf( sysstr, "q %s", fajl );
system( sysstr );
Naravno, ovo je rešenje ako insistiraš na system komandi. Ipak,
pogledaj i familiju exec?? komandi.
Paya
cccc.343postmast,
Path: fon!glisin
From: glisin@fon (Ivan Glisin)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Wed, 12 Jan 1994 16:40:18 GMT
Message-ID: <CJIzn9.3CL@fon>
X-Newsreader: TIN [version 1.1 PL9]
References: <CJIq3M.18v@fon>
Damjan Pelemis (.bata.@sezam.UUCP) wrote:
>> Dal' postoji neka funkcija u C-u koja moze da prosledi promenljive systemu.
>> Kao npr. system ("q %s", fajl); system to ne moze... ako neko ima ideju....
Evo resenja koje je bas ono sto ti treba samo u dva koraka (formatiranje
onoga sto bi zeleo da ode u system):
char command[80];
...
sprintf (command, "q %s", fajl); /* Ili bilo sta drugo! */
system (command);
Dakle, 'sprintf' posalje u string formatirani ispis, pa mozes da napravis
iste stvari kao i prilikom izlaza na ekran: isto to ce biti zapisano kao
string kome posle mozes da radis sta hoces! :-)
cccc.344mjova,
>> (možda još treba navesti da se statičkim
>> alociranjem u fn opterećuje stack koji je ipak
>> konačne veličine)
> Ne bi trebalo. Statički podaci su u _DATA segmentu. Oni sa
> auto (ah C:) idu na stack.
statički podaci (deklarisani sa ˙static˙) su zaista u data seg, ali
statički *alocirane* mogu biti i na steku (ako su deklarisane u nekoj
fn).
cccc.345.bata.,
ŔŔŔ char cmdŠ80Ć;
ŔŔŔ ...
ŔŔŔ sprintf( cmd, "q %s", fajl );
ŔŔŔ system( cmd );
ŔŔŔ ...
Na zalost ovo ne radi :( system vrati !=0 sto znaci da nesto
nije u redu. probao sam da cmd bude poenter, ali sprintf nece
da kopira u poenter tako da sam kopirao u niz, a onda vrednost
dodeljivao poenteru i poenter prosledjivao system-u (jer je
sintaksa sistema: void system (konst char* command)) ali opet
je vracao 0. Ne radi cak ni execl ("q", fajl), sto bi moralo
jer je po primeru: execl ("CHILD.EXE", argv) (gde ranije
dodeljuje vrednost nizu argv). Stvarno mi nije jasno. C psotaje
sve veca Zona Sumraka :) (sala naravno). Samo bih voleo da ovo
isteram na cistac :).
cccc.346.bale.,
> Na zalost ovo ne radi :( system vrati !=0 sto znaci da nesto
Evo šta provereno radi:
struct ffblk fb;
char logname[32];
char exe[32];
...
sprintf( logname, "c:/stor/%s", fb.ff_name );
sprintf( exe, "pkunzip -o %s session.log c:/stor > nul", logname );
if( system( exe ) == -1 )
{
printf( "Greska pri startovanju pkunzip-a.\n" );
}
cccc.347klisa,
>> Na zalost ovo ne radi :( system vrati !=0 sto znaci da nesto
Razlog svakako nije u konstrukciji koju sam ti poslao. Ostaje ti da proveriš
sledećih nekoliko stvari:
1. Dužinu stringa 'file' - ako prelazi dužinu/veličinu bafera
'cmd', eto problema.
2. Sam string 'file'; koliko vidim, pokušavaš da pozoveš editor
sa imenom datoteke koju treba obraditi. Da li je ime datoteke
ispravno?
3. Putanju do tog tvog 'q' editora ili šta je već. :)
Javi rezultate.
cccc.348peca.st,
poInter
cccc.349postmast,
Path: fon!breza!smilic
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Thu, 13 Jan 1994 11:10:09 GMT
Message-ID: <CJKF0z.IFG@fon>
X-Newsreader: TIN [version 1.2 PL1]
References: <sezam$cccc:01.095.3191@sezam>
Sender: news@fon (News)
Damjan Pelemis (.bata.@sezam.UUCP) wrote:
: Dal' postoji neka funkcija u C-u koja moze da prosledi promenljive systemu. kao
: npr. system ("q %s", fajl); system to ne moze... ako neko ima ideju....
Evo ti moje resenje funkcije koju mozes da pozivas kako si i hteo, tj. kao
i printf i slicne:
#include <stdio.h>
#include <stdarg.h>
int MySystem ( const char *format, ... )
{
char szBuf[ 512 ];
va_list pa;
va_start(pa,format);
vsprintf ( szBuf, format, pa );
va_end(pa);
return system ( szBuf );
}
Pozdrav, Sasa
cccc.350postmast,
Path: fon!breza!smilic
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Fri, 14 Jan 1994 18:23:20 GMT
Message-ID: <CJMtqy.ML0@fon>
X-Newsreader: TIN [version 1.2 PL1]
References: <sezam$cccc:001.0095.3262@sezam> <sezam$cccc:01.095.3274@sezam>
Sender: news@fon (News)
Aleksandar Bakic (.bale.@sezam.UUCP) wrote:
: Evo sta provereno radi:
: char exe[32];
: ...
: sprintf( exe, "pkunzip -o %s session.log c:/stor > nul", logname );
Ako prebrojis znakove u stringu, cak i da je logname == 0, imas vise
od 32 koliki ti je exe - string !
Sasa
cccc.351.bata.,
ŔŔŔ 1. Dužinu stringa 'file' - ako prelazi dužinu/veličinu bafera
ŔŔŔ 'cmd', eto problema.
Resio sam problem. :) Duzina fajl-a nije prelazila duzinu buffer-a jer sam je
setovao na 254 (najduza komanda nisam hteo 255 za svaki slucaj :) ) stvar je
bila u tome da nikako nije hteo da se shelluje iz programa koji je pokernut iz
IDE-a. Medjutim kada taj program kompajliram i pokrenem van C-a sve radi ok.
cccc.352.bale.,
> Ako prebrojis znakove u stringu, cak i da je logname == 0, imas vise
> od 32 koliki ti je exe - string !
! :)) Ali, zaista radi..? Verovatno ima malo viska pod navodima :)
cccc.353postmast,
Path: fon!breza!smilic
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Mon, 17 Jan 1994 09:50:38 GMT
Message-ID: <CJrq0E.M10@fon>
X-Newsreader: TIN [version 1.2 PL1]
References: <sezam$cccc:001.0095.3287@sezam> <sezam$cccc:01.095.3291@sezam>
Sender: news@fon (News)
: ! :)) Ali, zaista radi..? Verovatno ima malo viska pod navodima :)
Radi , ali do kada ce ? Verovatno se u memoriji iza stringa exe nalazi jos
malo prostora koji ne sluzi nicemu, ali ako se i to bude zauzelo za neku
promenljivu, eto problema.
cccc.354.bata.,
Jel' zna neko (sigurno zna :) ) kako da brisem buffer za tastaturu (ne moj nego
preko biosovog interapta) a da on posle ne ceka na novi taster dakle da obrise
buffer i nista vise :) (bioskey ceka taster :( )
cccc.356nikac,
> Jel' zna neko (sigurno zna :) ) kako da brisem buffer za
> tastaturu (ne moj nego preko biosovog interapta) a da on posle ne
> ceka na novi taster dakle da obrise buffer i nista vise :)
> (bioskey ceka taster :( )
Za tastaturni buffer imas dva pointera head i tail. Stos je samo da izjednacis
head i tail pointer i buffer je prazan :)
Start offset je na lokaciji 0:480h a end offset na 0:482h.
Uostalom, za sve nejasnoce imas detaljno opisano u NG-u.
P.S. Valjda si ovo pitao (bar sam ja tako razumeo poruku :)
cccc.357maksa,
Kako da sprečim pojavljivanje text cursora u toku ispisa ?
(BC3.1)
cccc.358mjova,
> Kako da sprečim pojavljivanje text cursora u toku ispisa
_setcursortype(_NOCURSOR);
_setcursortype(_SOLIDCURSOR);
_setcursortype(_NORMALCURSOR);
cccc.360.bata.,
ŔŔŔ Uostalom, za sve nejasnoce imas detaljno opisano u NG-u.
Ako imas norton guide za C (pretpostavljam da mislis na njega) bio bih ti
zahvalan ako bi mi poslao...
cccc.361postmast,
Path: fon!bale
From: bale@fon (Aleksandar Bakic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Tue, 18 Jan 1994 14:59:39 GMT
Message-ID: <CJtyzG.41w@fon>
X-Newsreader: TIN [version 1.1 PL9]
References: <CJrq0E.M10@fon>
Sasa Milic (smilic@breza) wrote:
: : ! :)) Ali, zaista radi..? Verovatno ima malo viska pod navodima :)
: Radi , ali do kada ce ? Verovatno se u memoriji iza stringa exe nalazi jos
: malo prostora koji ne sluzi nicemu, ali ako se i to bude zauzelo za neku
: promenljivu, eto problema.
Ma, OK, znam i sredicu to. Hvala na upozorenju!
Bale
cccc.362zbubnjevic,
Možda ovaj moj predlog nepripada ovde, ali eto. Menjam Code Base 4.5 (dve 1.2MB
diskete), biblioteku koja sadrži funkcije za manipulaciu sa DBF fajlovima tj.
dBase formatom baza podataka. Paket sadrži source programa u C-u, tako da ga
lako možete naterati da sortira po čirilici ili koristi naš datum. Predviđeno
je uslovno prevođenje, tako da možete dobiti kod za DOS, Windows ili UNIX.
Podržano je više aktuelnih C kompajlera kao i LIB-ovi i DLL-ovi, za pascal ili
basic. A ovo menjam za kopiju Paradox Engine 3.0.
Ukoliko ste zainteresovani za ovaku razmenu obratite se zbubnjevicu!
P.S.
Molim SysOp-a da zažmuri barem sedmicu dana, pa neobriše ovu moju poruku!
cccc.363peca.st,
!-> Ako imas norton guide za C (pretpostavljam da mislis na njega) bio
!-> bih ti zahvalan ako bi mi poslao...
Pretpostavljam da se odnosilo na norton guide za assembler.
Postoji i NG za Turbo C i NG za MSC.
Za Borland C ne znam dal postoji.
(mada onaj za TC može lepo da posluži)
A, da... Nortonove stvari nisu PD/SW. ;).
Peđa.
cccc.364markom,
■■■ Ako imas norton guide za C (pretpostavljam da mislis na
■■■ njega) bio bih ti zahvalan ako bi mi poslao...
Imam ja neki NG za MSC, pa ako nekom treba ...
Marko
cccc.365nikac,
>■ ŔŔŔ Uostalom, za sve nejasnoce imas detaljno opisano u NG-u.
>■
>■ Ako imas norton guide za C (pretpostavljam da mislis na njega)
>■ bio bih ti zahvalan ako bi mi poslao...
1. Mislio sam na NG za Assembler (ima oko 600kb :)
2. Ako ti trebaju raznorazni ng-ovi imas (bar je bilo ustvari :)
svega i svacega na Euklidu (za msc, tc, assembler i jos puuuno).
3. Ako ih vise nema na euklidu pitaj darone-a, on mozda zna gde ih
ima (posto je jelte sysop doticnog)
cccc.367postmast,
Path: fon!glisin
From: glisin@fon (Ivan Glisin)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Fri, 21 Jan 1994 18:36:09 GMT
Message-ID: <CJzt0A.1Jr@fon>
X-Newsreader: TIN [version 1.1 PL9]
References: <sezam$cccc:01.095.3322@sezam>
Damjan Pelemis (.bata.@sezam.UUCP) pise:
>> Jel' zna neko (sigurno zna :) ) kako da brisem buffer za tastaturu...
Pa zasto preko interapta? Pokusaj sa funkcijom 'fflush': fflush(stdin);
Ja tako uvek brisem visak znakova iz bafera. Uzgred, portabilno je, pa
ce da trci i na UNIX-u, recimo.
Jedno pitanje: da li ovo stvarno ode na Sezam, ili sve ovo pisemo
u prazno?
cccc.368.bata.,
ŔŔŔ fon!glisin :
ŔŔŔ Pokusaj sa funkcijom 'fflush': fflush(stdin);
Hvala za hint probacu..
ŔŔŔ Jedno pitanje: da li ovo stvarno ode na Sezam, ili sve ovo pisemo
ŔŔŔ u prazno?
Ode, ode...:))
cccc.369bulaja,
│Jedno pitanje: da li ovo stvarno ode na Sezam, ili sve ovo pisemo
│u prazno?
└───
Samo ti pisi kolega, vidimo te :).
cccc.370madamov,
glisin@fon (Ivan Glisin) napisa:
> Jedno pitanje: da li ovo stvarno ode na Sezam, ili sve ovo pisemo u prazno?
Kao što vidiš (ili bolje kao što ćeš videti), ne pišeš u prazno. B)
cccc.371dejanr,
Borland C++ ili Visual C++? NOVOSTI/microb 4.435.
cccc.372markom,
Imam jedno, možda trivijalno, pitanje ...
U programu imam više funkcija. Kada prevedem program javi mi se puno upozorenja
'Call to function 'ime' with no prototype'. Kako se definiše taj prototype ??
Reč je, naravno, o Borlandovom C-u (verzija 3.1).
Marko
cccc.373djelovic,
> U programu imam više funkcija. Kada prevedem program javi mi se pun o
> upozorenja 'Call to function 'ime' with no prototype'. Kako se definiše taj
> prototype ?? Reč je, naravno, o Borlandovom C-u (verzija 3.1).
Ako imaš funkciju:
int max (int a, int b)
{
if (a > b)
return a;
else
return b;
}
onda je deklaracija:
int max (int a, int b); /* tačka-zarez na kraju! */
prototip. Prototipoi služe da opišu komapjleru funkciju pre nego što se onda
definiše (ili se defi│niše u nekom drugom modulu), tako da on može (kada zna
kako će tvoja funkcija izgledati) da te upozori ako si negde pogrešio.
cccc.374eagle,
Kako se definišu labele u asm bloku? (BC 2.0)
asm š
proba:
jmp proba;
ć
ovde prijavi grešku "undefined label proba...".
cccc.375djelovic,
> asm š
> proba:
> jmp proba;
> ć
>
> ovde prijavi grešku "undefined label proba...".
Moraš da definišeš labelu van asm bloka. Zašto je to tako, to samo Borland
zna :(.
cccc.376pmarovic,
Hitno potraban primjer ili mjesto gde se moze naci primjer za programiranja
DMA.
Poruke na PMAROVIC.
Pozdrav Pedja
cccc.378danko,
Preduzeće JUGODATA-Beograd nudi STALNI posao
- programeru sa znanjem C-a i baza podataka, spremnom za timski rad.
- serviseru za PC računare sa iskustvom.
Javite se telefonom od 9-16h radnim danom
Jugodata - Beograd, B.Revolucije 326
Tel/Fax: (011) 418-326, 419-768, 423-506
cccc.379.bata.,
Sto se tice problema sa brisanjem buffer-a resio sam (jeeeeeeaa) Dakle za sve
one koji ce ikada imati isti problem cisto da kazem kako sam ja resio problme:
bdos (0x0c, 0x00, 0x02);
nista bez intrupta :)
cccc.380mjova,
> nista bez intrupta :)
a ništa i sa njim jer niko ne zna šta je to ;)
cccc.381mstanic,
>> Hitno potraban primjer ili mjesto gde se moze naci
>> primjer za programiranja DMA.
Baš skoro je Niklaus (ne Wirth, nego naš) pisao o tome
u ovoj konferenciji u temi razno.
cccc.382pmarovic,
Hvala.
Pedja
cccc.383dekiper,
Kada smo već kod novog C-a evo šta kaže čika Frenk Borland
o njihovom čedu...
Borland C++ 4.0 for Dos, Windows and Windows NT
The world-standard C and C++
Borland C++ 4.0 is the world's mos powerful, productive, customiza-
ble and Visual C and C++ programming enviroment for DOS, Windows and
Windows NT. Within its enhanced Integrated Development Enviroment,
you'll find the most complete and andvanced tool set ever assembled.
YOUR CHOICE FOR PROGRAMMING PRODUCTIVITY
The most comprehensive development solution for 16-bit DOS and 16-
and 32-bit Windows.
Selecting a development enviroment is never easy. After all, you need
to create dependable, easy-to-use applications. And, of course, your
users want everything yesterday.
Fast application development
Now you can choose a tool that makes it easier and faster to build and
maintain applications without sacrificing flexibility. A tool that brings
the latest programming enhacements to an integrated visual programming
enviroment.
Software craftsmanship
Borland C++ 4.0 has been crafted to give you the highest productivity
for your development projects. No other system is so open and approchable
and flexible for professionals.
The world-standard C and C++
By working with our community of more than million C and C++ developers,
we've learned a lot about the way you work. That's why Borland C++ 4.0
gives you faster development through visual programming, more producti-
vity through a state-of-the-art enviroment, and safety through support
for industry standards. This new version features a professional progra-
mmer's editor, full C++ with templates and exception handling and enhanced
ObjectWindows(R) 2.0.
The result - programming without compromise.
Ovo je samo deo mog oduševljenja kada sam juče uleteo u CET. Na polici se
lepo sunča veliki plavi paket a na njemu piše - Borland C++ new version
4.0 for DOS, Windows and Windows NT. Od cele radosti sam uspeo da izvučem
propagandni materijal na dve strane koji opisuje ovaj proizvod do detalja.
Prošetajte se i pokupite...
Pozdrav, Deki
ÚĆ─ůÚĆĘ
cccc.384.bata.,
Izvinjavam se MJOVI jer sam napisao intrupta umesto interapta. :-)
cccc.385debelijencija,
!=?> U programu imam više funkcija. Kada prevedem program javi mi
!=?> se puno upozorenja 'Call to function 'ime' with no
!=?> prototype'. Kako se definiše taj prototype ?? Reč je,
!=?> naravno, o Borlandovom C-u (verzija 3.1).
Vidim da ti je Đelović ;) već odgovorio, ali da ja malo dopunim.
Elem, kako pitaš za C, to se ta poruka javlja kao upozorenje, jer
deklarisanje funkcija u C nije obavezno. U C++ to je već greška, sve se
funkcije moraju deklarisati.
Ali, i sam navod finkcije je i njena deklaracija! Tačnije, ako
funkciju koristiš (zoveš) nakon što si je opisao, ne moraš eksplicitno da
navodiš njenu deklaraciju. Kako primer vredi više od mog trabunjanja ;) :
int mika(int laza)
š
return laza;
ć
void main(void)
š
mika(21);
ć
Ovde ti ne javlja upozorenje (niti grešku u C++). Ali:
void main(void)
š
mika(21);
ć
int mika(int laza)
š
return laza;
ć
E, ovo je već upozorenje (greška u C++).
cccc.386gremlin,
Firma OLYMP ELECTRONIC traži programera sa znanjem C-a, pa koga interesuje
neka se javi na 410-240 ili 400-477.
cccc.387klisa,
Šahovski sat u kompjuterskoj izvedbi, delo glasovitoga Milana Vugdelije.
Program se prevodi pomoću Borland C kompajlera:
BCC sahsat.c graphics.lib
Za rad su potrebni odgovarajući .BGI drajver i miš.
sahsat.arjcccc.388ognjan,
HELP !!!
Trebam da procitam neke podatke iz datoteke i strpam ih u listu ali mi
fread uvijek vraca 0 a to mi je uslov izlaska iz petlje. Probao sam sto
sam znao ali ne ide. Ideja vise nemam. Posto ne radim za NASU kod je tu:
P.S. Datoteka postoji i duzina joj nije 0
void konto_load(KONTO_LISTA *head)
{
head->sled=NULL;
if (fread(&tr_konto,sizeof(KONTO),1,dato_kon)!=0) {
strcpy(head->pod.br_kp,tr_konto.br_kp);
strcpy(head->pod.br_konta,tr_konto.br_konta);
strcpy(head->pod.opis,tr_konto.opis);
head->pod.koristen=tr_konto.koristen;
if ((head->sled=(KONTO_LISTA *)malloc(sizeof(KONTO_LISTA)))==NULL) {
printf("%s"," Nema dovoljno memorije za rad !!!");
exit(); }
konto_load(head->sled); }
}
void konto_open(void)
{
if ((dato_kon=fopen("konta.dat","rb+"))==NULL) {
printf("%s"," Nemogu da pronadjem datoteku KONTA.DAT !!!");
exit(); }
lseek(dato_kon,0L,SEEK_SET);
if ((head=(KONTO_LISTA *)malloc(sizeof(KONTO_LISTA)))==NULL) {
printf("%s"," Nema dovoljno memorije za rad !!!");
exit(); }
konto_load(head);
fclose(dato_kon);
}
OLY
cccc.389djelovic,
> P.S. Datoteka postoji i duzina joj nije 0
Da, ali da li joj je dužina veća od sizeof (KONTO)? BTW, za šta će ti ono
lseek?
cccc.390ognjan,
Eh da je to....
Kamo srece ...
OLY
cccc.391misham,
>> if ((dato_kon=fopen("konta.dat","rb+"))==NULL) š
>> printf("%s"," Nemogu da pronadjem datoteku KONTA.DAT !!!");
>> exit(); ć
>> lseek(dato_kon,0L,SEEK_SET);
Greska nastaje u f-ji lseek. Prototip te funkcije je:
long lseek(int handle, long offset,int fromwhere);
Argument 'handle' je tipa int a ne FILE * koji se dobija iz
naredbe fopen. Trebao si ili da koristiš naredbu 'open' ili da
ne koristiš f-ju lseek koja je ovde nepotrebna (datoteka se uvek
otvori tako da iščitava podatke od početka.
Miša.
cccc.392ognjan,
Slazem se lseek ne treba da bude tu. To je zaostalo od jednog od raznih
eksperimenata sa modovima za otvaranje datoteke. (Nikad se ne zna, mozda
proradi :) ). Dakle da probam malo sire: duzina strukture KONTO je 63 bajta a
datoteka je duzine 189 (3*63). Datoteka je kreirana odgovarajucim pozivom
funkcije fwrite. Problem je sto kada god probam da ucitam nesto iz datoteke,
tj kada se prvi put pozove funkcija konto_load , fread odmah vraca 0. Dakle,
datoteka postoji zadovoljavajuce duzine, pointer za citanje iz datoteke na
pocetku, a prvi put pozvani fread vraca 0. :(((((
Ima li iko ikakav konstruktivan predlog makar i za mjenjanje algoritma jer ja
ovo prvi put radim u C-u. Do sada u Paskalu je to radilo.
I jos nesto, ako ima veze, BC 3.1
P.S. Zna li neko kako da ovo ispitam u TD
OLY
cccc.393vitez.koja,
Suviše sam star da bih te pratio u programu, ali poslušaj moj savjet.
Batali strimove i sa datotekama radi pomoću hendlova, i pri tom eksplicitno
navodi _sve_ atribute za otvaranje fajla (pre svega O_xxxx konstante), ništa
ne ostavljaj po defaultu; tako ćeš u startu izbeći razne probleme koji mogu
da nastanu zbog podrazumevanih vrednosti; a tih grešaka je posebno mnogo dok
se ne ispraksiraš.
cccc.394herak,
>> Trebam da procitam neke podatke iz datoteke i strpam ih u listu ali mi
------
>> fread uvijek vraca 0 a to mi je uslov izlaska iz petlje. Probao sam sto
>> sam znao ali ne ide. Ideja vise nemam. Posto ne radim za NASU kod je tu:
>> P.S. Datoteka postoji i duzina joj nije 0
Trebam - (Syntax error at line 1. Replace it with Treba.)
fread
---------------------------
Function - Reads data from a stream
Syntax - #include <stdio.h>
size_t fread(void *ptr, size_t size, size_t n, FILE *stream);
Remarks - fread reads n items of data, each of length size bytes, from given
input stream into a block pointed by *ptr.
The total number of bytes is (n x size).
Return value - On succesful copmletion, fread returns the number of items (not
bytes) actualy read. It returns short count, (possibly 0) on
end-of-file or error.
Ovo je iz BORLAND C++ 3.1 Programer's reference guide.
-----------------------------------------------------
Ne mogu ti reći ništa odredjenije, ne znam strukturu KONTO, tr_konto...
Takodje preporučujem da koristiš strncpy funkciju umesto strcpy, jer imaš
bolji pregled o veličinama koje kopiraš, funkciju calloc
umesto malloc, jer ova automatski nuluje sve memorijske lokacije, tako da se
ne moraš brinuti o djubretu koje ostaje od ranije na ovim lokacijama.
Malo sam se i zamislio i evo, ovo ti je umesto odgovora.
Dati su ti fajlovi try.c, try.exe i proba.dat.
Problem sam redukovao na to da iščitam niz karaktera iz fajla i sastavim reč.
Potpuno analogno se radi i sa slogovima, osim što je umesto karaktera potrebno
staviti drugu strukturu koja ti predstavlja slog. Mrzi me sada da ti još nešto
nagvaždam, nego gledaj ti malo program, pa ako ima pitanja da razvijemo disku-
siju, ako nema, nikem ništa. Nadam se da će ti ovo bar malo pomoći. Logika ti
je bila ok, ali pripazi oko izvedbe (pointera).
Pozdrav, Herak.
#include <stdio.h>
#include <stdlib.h>
#include <mem.h>
FILE *out;
typedef struct all
{
char c;
struct all *next;
} S;
#define S0 (struct all *)0
void rc(S**zika)
{
char cur;
if(fread(&cur, 1, 1, out) != 0)
{
*zika = (S*) calloc (1, sizeof(S));
(*zika)->next = S0;
memcpy(&((*zika)->c), &cur, 1);
rc(&((*zika)->next));
}
}
void main()
{
S *head = (S *)0;
S *lptr;
out = fopen("proba.dat", "r");
rc(&head);
lptr = head;
while (lptr != S0)
{
printf("%c", lptr->c);
lptr = lptr->next;
}
fclose(out);
}
try.zipcccc.395todorp,
> tj kada se prvi put pozove funkcija konto_load , fread odmah vraca 0.
> Dakle, datoteka postoji zadovoljavajuce duzine, pointer za citanje iz
> datoteke na pocetku, a prvi put pozvani fread vraca 0. :(((((
E priznajem da nisam gledao poruku gde je sors jer je ostala u proslom
pakovanju baze. Mrzi me da sad kopam po sezamu. Nego, pade mi na pamet da
probas da ubacis jedan fflush() ili fflushall() pa probaj. Moglo bi da bude
ovo :) ako si nesto neposredno pre upisivao u to sto hoces da citas. Na
stranu to zasto ne napravis neki buffer u memoriji po kome ces da brljas pa
onda to sunes na disk. Malo mi je glupo da pises pa citas :)
Pozdrav od Todora
cccc.396niklaus,
(:>>> Trebam da procitam neke podatke iz datoteke i strpam ih u listu ali
(:> mi ------
(:> Trebam - (Syntax error at line 1. Replace it with Treba.)
Ne sećam se zašto, ali u zadatom kontekstu nepravilno je koristiti glagol
'trebati' u obliku različitom od 'trebalo', tako da bi početak rečenice TREBALO
da glasi: "Trebalo bi da pročitam..."
(:> Pozdrav, Herak.
Pozdrav i tebi. (:
Odličan prilog, naročito za nas "paCijente". (:
(: Sean :)
cccc.397markom,
Ljudi, imam jedan problemčić :)
Naime, imam jednu asemblersku rutinu koju ne znam kako da spojim sa C-om :((
U pitanju je BC 3.1, ako ima nekih dobrih duša da mi pomognu neka mi se obrate
mailom, pa ću mu detaljno objasniti u čemu je stvar :)
Unapred zahvalan,
Marko
cccc.398ficus,
:) U pitanju je BC 3.1, ako ima nekih dobrih dusa da mi pomognu neka mi se
:) obrate mailom, pa cu mu detaljno objasniti u cemu je stvar :)
Tebe verovatno zeza calling protokol pazi c++ (bc3.1) ne naziva
funkcije isto kao ostali tako da ces morati da malo pazis na ime
i to je sve
probaj sa modifikatorima (_cdecl,external...) zaboravio sam sta
tacno treba ali pazi na razliku u imenu jer funkcija kao
int f(int) se ne prevodi kao f nego kao f_qi ili tako nesto
drugi nacin je da iskljucis c++ kompilaciju (provereno sljaka)
a treci daa i ti krstis funkciju u asm-u kako bc-u odgovara.
ovo sa imenima je uvedeno zbog overloadovanja f-ija tako da
ustvari f(int) i f(char) nisu ista vec dve razlicite f-ije sa
razlicitim imenima.
cccc.399postmast,
Path: fon!dcolak
From: dcolak@fon (Damir Colak)
Subject: Quick C for Win
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Fri, 18 Feb 1994 02:55:02 GMT
Message-ID: <CLEG3s.AJn@fon>
X-Newsreader: TIN [version 1.1 PL9]
Pozdrav Sezamovcima, odavnde sa FON-a... :)
Ellem, jedno pitanje, koja je poslednja verzija Quick C for Win?
Da li je microsoft zaboravio na taj paket ili se i dalje razvija?
Sledge DAMMIR!
--
---
Testing of .Signature File :)
cccc.400dzoric,
Hi,
Skinuo sam sa Sezam-a disasembler OBJ datoteka koji
je pisan u MS C 4.0, pa nikako ne mogu da dobijem
EXE sa MS C 6.0 pa bih molio nekoga da mi posalje
MAK file ili EXE. Na Sezam-u OBJ2ASM.ZIP.
cccc.401postmast,
Path: fon!bojov
From: bojov@fon (Bojan Jovanovic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Thu, 24 Feb 1994 17:01:01 GMT
Message-ID: <CLqn9s.BAL@fon>
X-Newsreader: TIN [version 1.1 PL9]
References: <sezam$cccc:01.095.3044@sezam>
Da li neko zna ovo:
1. format .EXE fajla i kako loader smesta CODE segmente u memoriju?
2. kada se formira adresa za far call neke funkcije (pre ucitavanja ili
za vreme ucitavanja programa)?
3. Da li neko MOZDA ima sours kod za loader (.c ili .asm sve jedno)?
--
Bojan Jovanovic , student Fakultet Organizacionih Nauka
bojov@fon.fon.uni-bg.yu Univerzitet u Beograd
--
[ Radi bolje ako ga ukljucis! ]
cccc.402bulaja,
**** new file ****
R:\IBMPC\C\*.*
----------------------
pxeng301 a01 200041* Paradox Engine v3.01 - update sa verzije 3.0 (DOS/Win)
pxeng301 a02 199092* Paradox Engine v3.01 - update sa verzije 3.0 (DOS/Win)
cccc.403jovca.car,
/* Da li neko zna ovo:
/*
/* 1. format .EXE fajla i kako loader smesta CODE segmente u memoriju?
Pogledaj u /msdos/help/dosref31.zip na FFS-u. EXE format ima sigurno, ovo
ostalo verovatno.
cccc.404dragisha,
Subject: Re: cccc
-> 1. format .EXE fajla i kako loader smesta CODE segmente u memoriju?
HELPPC, THELP... Za potpunu informaciju moraćeš konsultovati osim .EXE i
.MAP. Borlandov TDUMP će ti pomoći oko pregleda .EXE headera i relokacione
tabele, a .MAP oko pozicija i atributa segmenata (code, data, bss, stack) u
okviru .EXE.
-> 2. kada se formira adresa za far call neke funkcije (pre ucitavanja ili
-> za vreme ucitavanja programa)?
Adresa je prije učitavanja izražena relativno. Pri učitavanju se na
sadržaj svake lokacije iz relokacione tabele doda adresa početka, valjda
PSP-a. Objekte koji odgovaraju tim relativnim adresama možeš pokupiti iz
.MAP fajla.
-> 3. Da li neko MOZDA ima sours kod za loader (.c ili .asm sve jedno)?
Imam nešto slično:). TSLOCATE.MOD od .EXE pravi sadržaj za ROM i ako znaš
Pascal (M2?:), mail me da ti pošaljem demo verziju jer je isti comm.:)
-> [ Radi bolje ako ga ukljucis! ]
:)
--
[To do two things at once is to do neither.]
cccc.405afilipovic,
Interesuju me dodatne informacije o Paradox Engine 3.01. Da li se to
prodaje kao zaseban program ili je deo nekog paketa kao TVision u okviru
Turbo C++ 3.1.
Pozdrav, Nenad
cccc.406postmast,
Path: fon!breza!smilic
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Tue, 1 Mar 1994 14:01:22 GMT
Message-ID: <CLzoAC.EMr@fon>
X-Newsreader: TIN [version 1.2 PL1]
References: <sezam$cccc:01.095.4052@sezam>
Sender: news@fon (News)
Aco Filipovic (afilipovic@sezam.UUCP) wrote:
: Interesuju me dodatne informacije o Paradox Engine 3.01. Da li se to
: prodaje kao zaseban program ili je deo nekog paketa kao TVision u okviru
: Turbo C++ 3.1.
Prodaje se posebno. Inace, mozes da kupis i
Database FrameWork sa klasama za C++, koji je
nadgradnja Engine-a.
cccc.407mjova,
> Interesuju me dodatne informacije o Paradox Engine 3.01.
> Da li se to prodaje kao zaseban program ili je deo nekog
> paketa kao TVision u okviru Turbo C++ 3.1.
prodaje se kao poseban 'program' - radi se o .lib.
cccc.408vpudar,
Subject: PC Joystick
Help! Da li je moguće napraviti dovoljno brzu rutinu za očitavanje
potenciometara analognog džojstika? Originalna BIOS rutina je jezivo
spora, verovali ili ne, ova petlja (30 iteracija) se izvršava čitavu
sekundu:
for (i = 1; i < 30; i++)
readstick();
void readstick(void)
{
asm {
mov ah, 0x84
mov dx, 1
int 0x15
mov joy1x, ax
mov joy1y, bx
mov joy2x, cx
mov joy2y, dx
}
}
Znam za princip rada (uopšte mi se ne dopada), moram meriti vreme između
dva intervala, ali opet... Kako to rešavaju u igrama, tamo mora da radi
brzo i u realnom vremenu?
time = 24.2Š + ( 0.011Š * resistance )
or
resistance = ( time - 24.2 ) / 0.011
cccc.409niklaus,
Iskopah neki 'bunch' sorsova softverskog MNPa. (praistoriska verzija)
Pošto je pisan za MicroSoft C v4.0 (verzija četvrta), zamolio bih neku
dobru dušu da mi pošalje sledeće _nestandardne_ C header-e:
asynch_2.h, asynch_m.h
žini mi se da je to sve što mi je zafalilo pri kompajliranju pod Borland-
-ovim kompajlerom.
Mada bi premija bila da ako je neko zadržao ceo MSC4.0...
(: Sean :)
mnpc12.zipcccc.410cnenad,
CREAD THIS !
CNN SEZ:
C, CCCCCCCCCCCCCCCCC !
cccc.411markom,
*** C, CCCCCCCCCCCCCCCCC !
Misliš C sucks ? Slažem se O:)
Marko
cccc.412darone,
(plaćeni oglas ;)
Ipak je Paskal najbolji... iako ja mrzim programiranje iz dna duše ;)
cccc.413paki,
> Ipak je Paskal najbolji... iako ja mrzim programiranje iz dna duše ;)
Definitivno bolji od Cea ;)
cccc.414postmast,
Path: fon!Osmeh.FON.Uni-BG.YU!ak
From: ak@Osmeh.FON.Uni-BG.YU (Aleksandar Kircanski)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Sat, 12 Mar 1994 20:09:15 GMT
Message-ID: <CMKInG.5un@fon>
X-Newsreader: TIN [version 1.2 PL1]
References: <sezam$cccc:001.0095.4241@sezam> <sezam$cccc:01.095.4247@sezam>
Sender: news@fon (News)
-- Marko Milivojevic (markom@sezam.UUCP) wrote:
_-=> Mislis C sucks ? Slazem se O:)
I ja se slazem ;).
c sux ;)
---
Aky - Kircanski Aleksandar kircansk@tesla.mcs.com
cccc.415postmast,
Path: fon!news
From: panzer@orao.etf.uni-bg.yu (Mijuskovic Veselin)
Subject: Re: cccc
Reply-To: panzer@orao.etf.uni-bg.yu (Mijuskovic Veselin)
Organization: ETF - Dept. of Ph. El.
Date: Sun, 13 Mar 1994 14:35:42 GMT
Message-ID: <CMLxvI.Kyw@fon>
Lines: 22
X-Newsreader: mxrn 6.18-4
References: <sezam$cccc:001.0095.4241@sezam> <sezam$cccc:01.095.4247@sezam> <CMKInG.5un@fon>
Sender: news@fon (News)
In article <CMKInG.5un@fon>, ak@Osmeh.FON.Uni-BG.YU (Aleksandar Kircanski) writes:
>
>-- Marko Milivojevic (markom@sezam.UUCP) wrote:
>
>_-=> Mislis C sucks ? Slazem se O:)
>
>I ja se slazem ;).
>c sux ;)
Interesantno da obojica radite na sistemima pisanim skoro u potpunosti
na C-u.
C FOREVER! (FLEXIBILITY & POWER OF ASSEMBLY LANGUAGES + READABILITY
OF ASSEMBLY LANGUAGES)
--
Panzer
In real life : Mijuskovic Veselin Internet : panzer@orao.etf.uni-bg.yu
/Meeyoushkowitch Veselyn/ DECnet : buefq5::mijusk37088d
cccc.416ficus,
C FOREVER! (FLEXIBILITY & POWER OF ASSEMBLY LANGUAGES + READABILITY
OF ASSEMBLY LANGUAGES)
--
Panzer
-------------------------------------------------
long live c++
ali jedno pitanje zasto samo paskalovci napadaju c-ovce (mozda ovo nije za ovu
conf ali ajde) mnogo redje neki c-ovac pljuje po paskalu. Da je razlog to sto
je paskal bolji presli bi na pascal ali cini mi se da je razlog ovaj:
vecina ljudi prvo nauci pascal i onda smatra da je to najbolji jez.
skoro svi c-ovci su nekad radili u pascalu i zakljucili da im c vise prija
pa ga naucili ali ovi drugi nikad nisu nista ozbiljno probali u c-u.
Kod mene u skoli svi koji su ostali na pascalu nikad nisu ni naucili c posteno
dok svi koji su naucili c rade u c-u (mislim dobro naucili)
cccc.417markom,
*** C FOREVER! (FLEXIBILITY & POWER OF ASSEMBLY LANGUAGES +
*** READABILITY OF ASSEMBLY LANGUAGES)
E, obrati pažnju na ovo:
for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(u/4)%2);
Ako je tebi ovo čitljiv kod, onda treba da odeš kod lekara :) (NHF O:))
'bem ti kompajler koji može _ovo_ da proguta.
Marko
P.S. Primer nisam ja smislio, prepisan je iz Računara 75.
cccc.418mnikolic,
>> for(;P("Đn"),R-;P("đ"))for(e=C;e-;P("_"+(*u++/8)%2))P("đ "+(u/4)%2);
>>
>> Ako je tebi ovo čitljiv kod, onda treba da odeš kod lekara :) (NHF O:))
>> 'bem ti kompajler koji može _ovo_ da proguta.
Nije čitljiv, a to što si pročitao je bila neka zezalica.
BTW, Turbo Pascal na koji vi svi mislite, i nije pravi Pascal, a što
se tiče C-a na njemu možeš da uradiš stvari koje na Pascalu ne možeš, ili ako
i možeš onda je to takav krpež da je bolje sve to baciti.
Vlada
cccc.419markom,
*** Nije čitljiv, a to što si pročitao je bila neka zezalica.
C-ov kompajler i pored toga guta ovakve stvari ...
*** BTW, Turbo Pascal na koji vi svi mislite, i nije pravi Pascal,
Pa ni Borlandov i Microsoftov C nisu baš _pravi_ C :)
Marko
cccc.420dcolak,
Sorry što dupliram poruku iz 'algoritmi'..
Treba mi program u C-u (rutina, funkcija) za generisanje Random (slučajnih)
brojeva. Koristim MSC 6.0 i ne želim neke TC/BC ezoterije :)
Nije mi zgodno da koristim SRAND i RAND iz MSC-a jer je potrebno zadavati
različite SEED vrednosti. Stvar je u tome da je za isti SEED uvek isti
slučajan broj (i to ma koliko puta ponovio, za isti seed uvek će iste
skupine brojeva izaći)..
So, ima li saveta kako da RND-ujem SEED i kako da ograničim long na 0 - 100?
Daklem, šaljite rutine (MSC) ne bilo vam zapoveđeno!
P.S.
Najviše će mi prijati čista C rutina.. :)
Sledge DAMMIR!
cccc.421postmast,
Path: fon!news
From: panzer@orao.etf.uni-bg.yu (Mijuskovic Veselin)
Subject: Re: cccc
Reply-To: panzer@orao.etf.uni-bg.yu (Mijuskovic Veselin)
Organization: ETF - Dept. of Ph. El.
Date: Mon, 14 Mar 1994 10:03:57 GMT
Message-ID: <CMnFyL.GAL@fon>
Lines: 43
X-Newsreader: mxrn 6.18-4
References: <sezam$cccc:001.0095.4260@sezam> <sezam$cccc:01.095.4268@sezam>
Sender: news@fon (News)
In article <sezam$cccc:01.095.4268@sezam>, "Marko Milivojevic" <markom@sezam.UUCP> writes:
>
>E, obrati paznju na ovo:
>
>for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(u/4)%2);
>
>Ako je tebi ovo citljiv kod, onda treba da odes kod lekara :) (NHF O:))
>'bem ti kompajler koji moze _ovo_ da proguta.
>
Ja na to gledam kao na prednost!
Ako tvoj paskal kompajler ne proguta *ovo*, slobodno ga baci u
smece:
forward;procedure giveerrhelp;forward;{procedure debughelp;forward;}
{:78}{81:}procedure jumpout;begin goto 9998;end;{:81}{82:}
procedure error;label 22,10;var c:ASCIIcode;s1,s2,s3,s4:integer;
begin if history<2 then history:=2;printchar(46);showcontext;
if interaction=3 then{83:}while true do begin 22:clearforerrorprompt;
begin;print(264);terminput;end;if last=first then goto 10;
c:=buffer[first];if c>=97 then c:=c-32;{84:}
case c of 48,49,50,51,52,53,54,55,56,57:if deletionsallowed then{88:}
begin s1:=curtok;s2:=curcmd;s3:=curchr;s4:=alignstate;
alignstate:=1000000;OKtointerrupt:=false;
if(last>first+1)and(buffer[first+1]>=48)and(buffer[first+1]<=57)then c:=
c*10+buffer[first+1]-48*11 else c:=c-48;while c>0 do begin gettoken;
c:=c-1;end;curtok:=s1;curcmd:=s2;curchr:=s3;alignstate:=s4;
Ovo je deo koda za TeX, dobijen iz tex.web uz pomoc tangle programa.
BTW, citljivost programa zavisi od onog ko ga je pisao, a ne od
samog jezika ili kompajlera. U tom slucaju COBOL bi bio ultimativni jezik!
--
Panzer
In real life : Mijuskovic Veselin Internet : panzer@orao.etf.uni-bg.yu
/Meeyoushkowitch Veselyn/ DECnet : buefq5::mijusk37088d
cccc.422postmast,
Path: fon!breza!smilic
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Organization: Fakultet Organizacionih Nauka, Beograd
Date: Mon, 14 Mar 1994 14:43:10 GMT
Message-ID: <CMnsvy.L07@fon>
X-Newsreader: TIN [version 1.2 PL1]
References: <sezam$cccc:001.0095.4260@sezam> <sezam$cccc:01.095.4268@sezam>
Sender: news@fon (News)
Marko Milivojevic (markom@sezam.UUCP) je napisa-la/o:
: E, obrati paznju na ovo:
: for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(u/4)%2);
: Ako je tebi ovo citljiv kod, onda treba da odes kod lekara :) (NHF O:))
: 'bem ti kompajler koji moze _ovo_ da proguta.
To sto kompajler to moze da proguta ne znaci da tako treba pisati. Ovaj
primer mora da je smislio neko ko mrzi C, a jos ga i nezna posto ima
greska tako da to nijedan kompajler ne bi progutao:
: for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(u/4)%2);
^^ ^^
Sasa
cccc.423djelovic,
> Nije mi zgodno da koristim SRAND i RAND iz MSC-a jer je potrebno zadavati
> različite SEED vrednosti. Stvar je u tome da je za isti SEED uvek isti
> slučajan broj (i to ma koliko puta ponovio, za isti seed uvek će iste
> skupine brojeva izaći)..
Koristi funkciju randomize ().
> So, ima li saveta kako da RND-ujem SEED i kako da ograničim long na 0 - 100
> Daklem, šaljite rutine (MSC) ne bilo vam zapoveđeno!
I za to bi trebala da postoji funkcija. Ukoliko je nema, uvek možeš da
uradiš jedno: broj = rand () % 101.
P.S. Jel ti još uvek treba algoritam za slučajne brojeve?
[ C programmers are better lovers. ]
cccc.424vcalic,
>> C-ov kompajler i pored toga guta ovakve stvari ...
Ne guta, probaj pa ćeš videti.
>> Pa ni Borlandov i Microsoftov C nisu baš _pravi_ C :)
Jesu!!! Pravi !!!
Imaju doduše i ekstenzije za podršku MSDOS-a ali to su bibliotečke
funkcije koje predstavljaju stvar definisanu pri samom kreiranju jezika. A TP
sadrži i stringove, rad sa memorijom i razne druge zezalice koje Pascal inače
nema. O podršci za MSDOS, ekvivalentnoj onoj kod C kompajlera, da i ne
govorim.
Vlada
cccc.425markom,
*** To sto kompajler to moze da proguta ne znaci da tako treba pisati. Ovaj
*** primer mora da je smislio neko ko mrzi C, a jos ga i nezna posto ima
*** greska tako da to nijedan kompajler ne bi progutao:
Koliko sam ja shvatio, taj primer je pisao zzivotic ...
*** : for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(u/4)%2);
Ove greške sam i ja primetio, ali ih nisam ispravljao iz tog razloga jer je to
citat, a ako bilo šta promenim to ipak nije citat, shvataš ? :)
Marko
cccc.426dcolak,
│> Nije mi zgodno da koristim SRAND i RAND iz MSC-a jer je potrebno zadavati
│> različite SEED vrednosti. Stvar je u tome da je za isti SEED uvek isti
│> slučajan broj (i to ma koliko puta ponovio, za isti seed uvek će iste
│> skupine brojeva izaći)..
│
│ Koristi funkciju randomize ().
Nisam pronašao takvu funkciju u MSC-u...
Inače, za isti seed uvek ću iste brojeve dobijati. Zar ne postoji
neki RND generator koji uzima recimo položaj scan mlaza na monitoru
ili nešto slično?
Random generator u MSC mi je neupotrebljiv. Ne mogu seed da vežem
za vreme, jer lako će ljudi "tempirati" da uđu u program u određeno
vreme.
Dakle, i dalje tražim nešto što će mi uvek davati različite slučajne
brojeve..
Sledge DAMMIR!
cccc.427djelovic,
> Inače, za isti seed uvek ću iste brojeve dobijati. Zar ne postoji
> neki RND generator koji uzima recimo položaj scan mlaza na monitoru
> ili nešto slično?
Randomize uzima trnutno vreme i koristi ga kao seme. Neverovatno mi je da
MSC nema takvu ili slučnu funkciju.
> Random generator u MSC mi je neupotrebljiv. Ne mogu seed da vežem
> za vreme, jer lako će ljudi "tempirati" da uđu u program u određeno
> vreme.
Tačno u određenu stotinku? Sumnjam.
cccc.428zdule,
███ Interesantno da obojica radite na sistemima pisanim skoro u
███ potpunosti na C-u.
Pa šta ako rade na sistemima pisanim u C-u to ne mora da znači
da moraju da vole C, C je ružan jezik.
ZDule...
cccc.429zdule,
███ se tiče C-a na njemu možeš da uradiš stvari koje na Pascalu
███ ne možeš, ili ako
TP + ASM šta ćeš više?
ZDule...
cccc.430markom,
*** Dakle, i dalje tražim nešto što će mi uvek davati različite slučajne
*** brojeve..
Hmm nisam siguran za adresu, ali mislim da je 40h:40h. Tamo imaš jedan brojač
koji ide od 255 do 0 i mislim da on ima neke veze sa motorom flopi diska, ali
glavno je da se on non stop vrti k'o lud. Mogao bi da kao seed koristiš trenut-
nu vrednost ovog brojača ...
Marko
cccc.431vcalic,
>> ███ se tiče C-a na njemu možeš da uradiš stvari koje na Pascalu
>> ███ ne možeš, ili ako
>> TP + ASM šta ćeš više?
Ja rek'o na Pascal-u, a ne na Pascalu+asembleru. A mogao si da kažeš i
ASM - šta ćeš više ;)
Kada se radi u C-u, veoma je retko stvarno potreban asembler. Uglavnom
se koristi za ubrzavanje kritičnih delova programa.
Vlada
cccc.432vcalic,
>> Pa šta ako rade na sistemima pisanim u C-u to ne mora da znači
>> da moraju da vole C, C je ružan jezik.
Mislim da je veoma precizan i konkretan, a to su osobine koje zahteva
programski jezik. Meni lično je i savršeno logičan. Pascal vidim kao čisto
"gubljenje vremena" radi prilagođavanja pravilima jezika. C i C++ sadrže sve
lepe osobine Pascal-a, a pri tom nemaju neke ružne osobine Pascala :)
Vlada
cccc.433dcolak,
│> Nije mi zgodno da koristim SRAND i RAND iz MSC-a jer je potrebno zadavati
│> različite SEED vrednosti. Stvar je u tome da je za isti SEED uvek isti
│> slučajan broj (i to ma koliko puta ponovio, za isti seed uvek će iste
│> skupine brojeva izaći)..
│
│ Koristi funkciju randomize ().
Nisam pronašao takvu funkciju u MSC-u...
Inače, za isti seed uvek ću iste brojeve dobijati. Zar ne postoji
neki RND generator koji uzima recimo položaj scan mlaza na monitoru
ili nešto slično?
Random generator u MSC mi je neupotrebljiv. Ne mogu seed da vežem
za vreme, jer lako će ljudi "tempirati" da uđu u program u određeno
vreme.
Dakle, i dalje tražim nešto što će mi uvek davati različite slučajne
brojeve..
Sledge DAMMIR!
cccc.434dcolak,
│ Randomize uzima trnutno vreme i koristi ga kao seme. Neverovatno mi je da
│ MSC nema takvu ili slučnu funkciju.
Tako nešto ne postoji, so, sam sam uzeo prosto
SRAND((unsigned)time(NULL)) pre svakog zadavanja randoma ;) BTW,
koji C koristiš?
│ Tačno u određenu stotinku? Sumnjam.
Well, postoje šanse ;) Inače, šteta što nemam rutinu koja recimo
skida poziciju mlaza na ekranu i to ubaci u kao seed ;)
Sledge DAMMIR!
cccc.435vitez.koja,
#=> Dakle, i dalje tražim nešto što će mi uvek davati
#=> različite slučajne brojeve..
Na spektrumu ;)) se to rešavalo sistemskom promenljivom u kojoj je čuvan broj
prikazanih poluslika od poslednjeg reseta. žini mi se da na PCu postoji pandan
ovome, valjda brojač taktova, čiji je donji bajt praktično slučajan broj.
Javlja mi se da sam nekada video generator slučajnih brojeva u asembleru pisan
na ovaj način, ali ga se slabo sećam.
Pada mi na pamet ideja kako bi se ovo moglo simulirati (za čime nema nikakve
potrebe, jer ovo prvo je hardversko rešenje, ali eto). Postoji interapt koji se
poziva 1000 puta u sekundi. Tu umetneš svoju rutinicu (vrlo kratku, samo
uvećavaš jedan bajt). I eto slučajnog broja :)
cccc.436dcolak,
│ Dakle, i dalje tražim nešto što će mi uvek davati različite slučajne
│ brojeve..
Shit, dupli Exec. Kako nije mi jasno :(
Sledge DAMMIR!
cccc.437janko,
> Tako nešto ne postoji, so, sam sam uzeo prosto
> SRAND((unsigned)time(NULL)) pre svakog zadavanja randoma
> ;) BTW, koji C koristiš?
Imam odgovor na tvoje pitanje, kako da uvek dobijaš kvalitetan RND
između sesija... Još da nisi malo preterivao u o.jeziku ;) odmah bih ti
napisao... ovako, nekako me mrzi... napišem ti za neki dan?
cccc.438postmast,
From: panzer@orao.etf.uni-bg.yu (Mijuskovic Veselin)
Subject: Re: cccc
Date: Wed, 16 Mar 1994 11:44:28 GMT
In article <sezam$cccc:01.095.4297@sezam>, "Dusan Mihajlovic" <zdule@sezam.UUCP> writes:
> Pa sta ako rade na sistemima pisanim u C-u to ne mora da znaci
>da moraju da vole C, C je ruzan jezik.
>
1. I tenk je ruzan u odnosu na Porshe 959, ali sa tenkom se moze
uraditi *mnogo* vise, sto domaci primeri vrlo lepo pokazuju.
2. Za mene, C je lep jezik.
--
Panzer
In real life : Mijuskovic Veselin Internet : panzer@orao.etf.uni-bg.yu
/Meeyoushkowitch Veselyn/ DECnet : buef78::mijusk37088d
cccc.439janko,
Ovo je više za temu algoritmi, u suštini...
Problem generisanja novog random broja po svakom aktiviranju programa
rešava se SNIMANJEM tekuće verzije seed-a na disk ili neku drugu
memoriju koja "preživljava" vreme između dva aktiviranja programa.
Ako je seed iz bibliotečkih funkcija nedostupan, lako je napisati
sopstvenu verziju rutine za generisanje slučajnih brojeva (nikako
napamet, već iskoristiti postojeće kvalitetno rešenje).
Za inicijalno generisanje seed-a, treba uzeti neki slučajan događaj.
Neki programi za kriptografisanje mere vremena između otkucaja
tastature, nekog smislenog teksta. Ovo merenje je hardverski zavisno,
jer je potrebna relativno visoka rezolucija tajmera. Koliko složeni
postupak treba primeniti zavisi od kvaliteta generatora slučajnih
brojeva.
cccc.440dcolak,
│ Imam odgovor na tvoje pitanje, kako da uvek dobijaš kvalitetan RND
│ između sesija... Još da nisi malo preterivao u o.jeziku ;) odmah bih ti
│ napisao... ovako, nekako me mrzi... napišem ti za neki dan?
Hehehe, ne moraš se truditi :) srand((unsigned)time(NULL)) radi
posao, i to zadovoljavajuće :))
P.S.
Imam gomilu raytrace rutina (prekucanih sa amige), da li si
zainteresovan? ... E NEEEEMAAAA! :))
Sledge DAMMIR!
cccc.441dcolak,
│ Ako je seed iz bibliotečkih funkcija nedostupan, lako je napisati
│ sopstvenu verziju rutine za generisanje slučajnih brojeva (nikako
│ napamet, već iskoristiti postojeće kvalitetno rešenje).
I opet birati seed, na koji način?!
Tvoja pomoć mi je ogromna. I šta sad da ja radim sa tvojim "helpom?"
Zašto nisi dao neki source?!
Kao što rekoh ranije, srand((unsigned)time(NULL)); je više nego
dovoljan.
BTW, popio si ignore..
Sledge DAMMIR!
cccc.442postmast,
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Date: Thu, 17 Mar 1994 10:22:13 GMT
Marko Milivojevic (markom@sezam.UUCP) je napisa-la/o:
: Koliko sam ja shvatio, taj primer je pisao zzivotic ...
: *** : for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(u/4)%2);
Zoran Zivotic je jednom napisao da je koristio
u software-u za SEZAM i do 7 zvezdica !!!
Onda me ni ovaj primer ne cudi.
cccc.443kale,
>> Problem generisanja novog random broja po svakom aktiviranju programa
>> rešava se SNIMANJEM tekuće verzije seed-a na disk ili neku drugu
>> memoriju koja "preživljava" vreme između dva aktiviranja programa.
Moram priznati da ne razumem zašto se ne koristi sistemski sat. Vreme
startovanja programa na jednom računaru nikad (osim u ekstremnom slučaju) nije
isto. Koliko sam razumeo, nije potreban neki jako dugačak "seed" kada bi ovo
bilo nedovoljno.
Zavisno od algoritma za dobijanje random broja može se desiti da prvi
broj dobijen za seed-ove recimo između 123400000 i 123500000 bude isti. Ovaj
problem se može rešiti pozivanjem funkcije random recimo 20 ili 100 puta
neposredno po inicijalizaciji seed-a.
Pozdrav!
cccc.444maksa,
>> Tvoja pomoć mi je ogromna. I šta sad da ja radim sa tvojim
>> "helpom?" Zašto nisi dao neki source?!
Ajd' da ponovim: C source programa koji generiše rnd
brojeve imaš u računarima 88, Januar '93, Bajtovi godine,
slika 8. Kažu da je najbolji.
cccc.445janko,
> Kao što rekoh ranije, srand((unsigned)time(NULL)); je više
> nego dovoljan.
Moguće da ti je dovoljan. Znači da ti i nije trebao previše slučajan broj.
> Zašto nisi dao neki source?!
Da ne misliš da ja imam neke obaveze prema tebi? Na osnovu čega očekuješ
tako nešto?
Kako se ponašaš, ne zaslužuješ ni ovoliko, koliko si dobio. Nije mi žao,
jer ne čitaš samo ti ovo -- nekom će, možda, koristiti.
> BTW, popio si ignore..
Ne zanima me.
cccc.446janko,
> Moram priznati da ne razumem zašto se ne koristi sistemski
> sat. Vreme startovanja programa na jednom računaru nikad
> (osim u ekstremnom slučaju) nije isto. Koliko sam
> razumeo, nije potreban neki jako dugačak "seed" kada bi
> ovo bilo nedovoljno.
Zavisi od potreba. Ako je potrebna relativno mala slučajnost inicijalne
vrednosti, (npr. igre) sistemski sat može biti dovoljan. Negde nije
potrebno ni toliko.
Takođe, dcolak je pitao i kako da izbegne mogućnost da neko podesi vreme
pre startovanja programa, ako se sećam...
> Zavisno od algoritma za dobijanje random broja može se
> desiti da prvi broj dobijen za seed-ove recimo između
> 123400000 i 123500000 bude isti. Ovaj problem se može
> rešiti pozivanjem funkcije random recimo 20 ili 100 puta
> neposredno po inicijalizaciji seed-a.
Broj pozivanja funkcije random _neće_ ti povećati slučajnost broja.
Matematički lako dokazivo.
Početak niza slučajnih brojeva, zavisi od načina generisanja prvog
seed-a. Nadalje, kvalitet _niza_ brojeva je određen kvalitetom
generatora.
Zato se ovi generatori i zovu, negde, generatori _pseudoslučajnih_
brojeva.
cccc.447markom,
*** Zoran Zivotic je jednom napisao da je koristio
*** u software-u za SEZAM i do 7 zvezdica !!!
Pointer na pointer pointera na pointer pointera na pointer, idi bre :)
cccc.448dcolak,
│ Ajd' da ponovim: C source programa koji generiše rnd
│ brojeve imaš u računarima 88, Januar '93, Bajtovi godine,
│ slika 8. Kažu da je najbolji.
Tnx, pogledao sam, mnogo je dug za prepisivanje ;)
Sledge DAMMIR!
cccc.449bigbrada,
*>> 1. I tenk je ruzan u odnosu na Porshe 959, ali sa tenkom se
*>> moze uraditi *mnogo* vise
Zavisi šta radiš.
Brada.
cccc.450.bata.,
ŔŔŔ for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("|
ŔŔŔ "+(u/4)%2);
ŔŔŔ
ŔŔŔ Ako je tebi ovo citljiv kod, onda treba da odes kod lekara :)
ŔŔŔ (NHF O:))
Interesantno je i to sto ljudi koji pljuju po C-u ne znaju isti ;)
Lekar ? pa to je diskutabilno i uvredljivo mogu da ti kazem, a
sto se zamrsenih sintaksi tice ovakve stvari se vrlo retko koriste
u praksi, a siguran sam da bi neko ko dobro zna Pascal mogao da
napise neku isto tako morbidnu sintaksu..
cccc.451.bata.,
ŔŔŔ Pa sta ako rade na sistemima pisanim u C-u to ne mora da
ŔŔŔ znaci da moraju da vole C, C je ruzan jezik.
Dule i ti si interesantan kako znas da je neki jezik ruzan kad ga ni
ne znas ??
cccc.452.bata.,
ŔŔŔ [ C programmers are better lovers. ]
:))))))))) Car si :)
cccc.454kale,
>> > Zavisno od algoritma za dobijanje random broja može se
>> > desiti da prvi broj dobijen za seed-ove recimo između
>> > 123400000 i 123500000 bude isti. Ovaj problem se može
>> > rešiti pozivanjem funkcije random recimo 20 ili 100 puta
>> > neposredno po inicijalizaciji seed-a.
>> Broj pozivanja funkcije random _neće_ ti povećati slučajnost broja.
Neće ni tebi. ;))) Nisam ni tvrdio to za šta me negiraš. Ako bi se
prva vrednost funkcije random uzela za izbor jedne od malog broja opcija
(recimo jedne od dve jednako verovatne mogućnosti), lako bi se moglo desiti
(zavisi od algoritma za funkciju random) da po startovanju programa prvo
opredeljenje računara satima ostane isto, a to je predvidljivo i svakako
nepoželjno. Ako po zadavanju seed-a pozoveš random funkciju 100 puta pre
nego što prvu vrednost (preciznije, koristiš sto prvu, sto drugu, ...)
upotrebiš za nešto, vrlo je verovatno da će dobijeni nizovi pseudoslučajnih
brojevi biti "ni nalik" čak i ako im se seed-ovi razlikuju samo za 1.
Pozdrav, Kale
cccc.455maksa,
>> │ Ajd' da ponovim: C source programa koji generiše rnd
>> │ brojeve imaš u računarima 88, Januar '93, Bajtovi godine,
>>
>> Tnx, pogledao sam, mnogo je dug za prepisivanje ;)
Za lenje: ;)
R:\RSOFT\R088BLP.ZIP
cccc.456markom,
*** Interesantno je i to sto ljudi koji pljuju po C-u ne znaju isti ;)
Pa ni ti nisi pokazao baš neko poznavanje Pascala pa opet pljuješ po njemu kad
stigneš ...
cccc.457dcolak,
│ Za lenje: ;)
│
│ R:\RSOFT\R088BLP.ZIP
Baš ti hvala :))
No, u tim računarima nisam našao tekst koji ide uz listing :)) Ma,
sve je išlo šašavo sa tim brojem :)
Sledge DAMMIR!
cccc.458janko,
> Ako bi se prva vrednost funkcije random uzela za izbor
> jedne od malog broja opcija (recimo jedne od dve jednako
> verovatne mogućnosti), lako bi se moglo desiti (zavisi od
> algoritma za funkciju random) da po startovanju programa
> prvo opredeljenje računara satima ostane isto, a to je
> predvidljivo i svakako nepoželjno. Ako po zadavanju
> seed-a pozoveš random funkciju 100 puta pre nego što prvu
> vrednost (preciznije, koristiš sto prvu, sto drugu, ...)
> upotrebiš za nešto, vrlo je verovatno da će dobijeni
> nizovi pseudoslučajnih brojevi biti "ni nalik" čak i ako
> im se seed-ovi razlikuju samo za 1.
Izgleda da koristiš jako loše generatore slučajnih brojeva?
Ono što si gore opisao je potpuno irelevantno. Svaki kvalitetan
generator će ti odmah dati nizove "ni nalik" i ako se vrednost seed-a
razlikuje za jedan.
Opet ti ponavljam, kod dobrih generatora, pozivanjem "na prazno"
funkcije random 100 puta da bi dobio prvi broj, umesto samo jednom, ne
dobijaš ništa, što ne bi dobio samo jednim pozivom.
cccc.459niklaus,
Subject: Hilfe!
Kako da formiram promenljivu strukturu (odn. struktura sastavljena od
skupina polja koja su promenljiva u zavisnosti od nekog parametra).
Vrlo slično onom case-u u Pascal record-ima:
record GRX_Obj = record of
x,y,dx,dy : integer;
title : stringŠMAXTITLELENĆ;
object_type : objTypes;
case object_type of
TTY: begin
...
end;
...
default: begin
...
end;
end;
Pokušavao sam sa switch-om unutar struct typedef-a, i ne može (vidi se
da
je C napravljen pre Pascal-a). Moglo bi sa predprocesorskim proverama, ali
čini mi se da će mi nakon 2 nedelje razvoja ove strukture, ta opcija biti
neupotrebljiva u nekoj primeni.
Dakle, mislio sam na:
struct typedef GRX_Obj š
int x,y,dx,dy;
char titleŠMAXTITLELENĆ;
objTypes objec_type;
# ifdef TTY_OBJ_TYPE
... // ovde ubacujem željena dodatna polja
# endif // za TTY GRX_Obj strukturu
# ifdef xxx
...
# endif
...
ć;
Međutim, ovakvo "rešenje" mi se ne dopada jer neću na dovoljno elegantan
(direktan) način rešiti pitanje one 'default' skupine. Ne, ne želim da koristim
#elif zbog nepotpune podržanosti od strane starijih implementacija ANSI C
standarda.
Ima li lepših rešenja? Takva mi trebaju, nije da Vas testiram... (;
I još nešto, za sada bez plusića (znam da bi C++ to dosta elegantno
rešio).
(: Sean :)
cccc.460djelovic,
> Kako da formiram promenljivu strukturu (odn. struktura sastavljena
> skupina polja koja su promenljiva u zavisnosti od nekog parametra).
> Vrlo slično onom case-u u Pascal record-ima:
Dve zaboravljene ključne reči C-a su "continue" i "union". Tebi treba ova
druga. Za detalje konsultuj help.
cccc.461eagle,
> Kako da formiram promenljivu strukturu (odn. struktura sastavljena od
> skupina polja koja su promenljiva u zavisnosti od nekog parametra).
> Vrlo slicno onom case-u u Pascal record-ima:
Definisi uniju unutar te strukture i dodeli joj neki parametar:
struct ta_i_ta
š
int a;
char b;
...
char parametar; // case parametar:byte of
union //
š //
struct š...ć prva; // 1:(...);
struct š...ć druga; // 2:(...);
...
ć unija;
ć;
cccc.462paki,
Počeo sam da radim s Borland C 3.1, i imam problemčić (sigurno
je rešenje trivijalno).
Naime, direktiva #include "test.h" ne radi svoj posao.
Iako test.h postoji, i nalazi se u istom direktorijumu gde i
test.cpp, i u config.sys imam 'FILES=30', kompajler prijavljuje
'Unable to open include file test.h'. Kad u Options/Directories
ubacim i direktorijum gde se nalazi test.*, sve proradi OK.
Ovako se ponašaju i svi primeri pristigli uz BC.
O čemu se radi?
cccc.463debelijencija,
!=?> Iako test.h postoji, i nalazi se u istom direktorijumu gde i
!=?> test.cpp, i u config.sys imam 'FILES=30', kompajler
!=?> prijavljuje
Treba da bude u tekućem direktorijumu.
cccc.464markom,
*** Ovako se ponašaju i svi primeri pristigli uz BC.
*** O čemu se radi?
Koliko ja znam:
#include <tralala.h> traži tralala.h u direktorijumuma koje si podesio u opti-
ons/...
#include "tralala.h" traži tralala.h u _trenutnom_ direktorijumu.
Rešenje tvog problema je File/Change Dir (ili tako nešto)
P.S. Otkud C, Paki? ;)
cccc.465paki,
> #include "tralala.h" traži tralala.h u _trenutnom_ direktorijumu.
>
> Rešenje tvog problema je File/Change Dir (ili tako nešto)
Da, ali je ovo Windows verzija, pa nema trenutnog dira. BC bi
trebao da traži .h u diru gde je i .cpp, ali on to ne radi.
> P.S. Otkud C, Paki? ;)
Paskal je lep i svaka mu mast, ali 99.27% sorsova i literature
za Win je u Cu (Ceu? C-u?).
cccc.466todorp,
Subject: Re: #include
> Da, ali je ovo Windows verzija, pa nema trenutnog dira. BC bi
> trebao da trazi .h u diru gde je i .cpp, ali on to ne radi.
Stavi u options/directories, prvi red (include directories) direktorijum gde
ti se nalazi header, znaci samo lupis na ono c:\bc\include;c:\c\work i
proradice ili stavi #include "c:\c\work\test.h"
cccc.467mjova,
> Naime, direktiva #include "test.h" ne radi svoj posao.
postoje dve forme #include direktive:
#include <filename>
i
#include "filename"
prva će potražiti filename u nekom od direktorijuma zadatih
prevodiocu. ne znam kako je u IDE, ali se to zadaje CMD verziji sa
-Ipath1;path2;path3;
te putanje moraju sadržati standardna zaglavlja (naravno, ako želiš da
ih koristiš).
druga će prvo potražiti filename kao i prva, ali ako ne nađe, onda će
potražiti još i u tekućem diru. zapravo, ne znam da li će prvo tražiti
po tekućem ili ne, nije bitno, ali tekući dir je glavna fora ;).
cccc.468markom,
*** Da, ali je ovo Windows verzija, pa nema trenutnog dira. BC bi
*** trebao da traži .h u diru gde je i .cpp, ali on to ne radi.
Stavi mu pun path: #include "d:\bc\progs\win\tralala.h"
To je jedino što mi trenutno pada na pamet ...
cccc.469dekiper,
Rešenje je u tome što treba da Options/Direcories/Include directory ostaviš
prazan i da staviš BC u path i da ga startuješ iz direktorijuma gde su ti
source-ovi i hederi i sve će biti u redu. Ako radiš sa BCW, onda treba da u
Properities (Alt+Enter) staviš Working direktory na dir u kome su ti
source-ovi. Ovo je najbolje jer je univerzalno. Ako krećeš da menjaš Include
directory svaki put, slaba vajda od toga.
BTW Borland C++ 4.0 me je toliko razočarao da pojma nemate.
Pozdrav, Deki
cccc.470postmast,
From: srdjan@Osmeh.FON.Uni-BG.YU (Srdjan Simic)
Subject: DJGPP
Date: Tue, 29 Mar 1994 16:25:13 GMT
Na UBBG je stavljena nova verzija djgpp (gnu c) , bar od one
koja se trenutno nalazi na fonu. Sva ostala obavestenja su u
read.me fajlu
Paket se nalazi u msdos.gpp diru
--
Srdjan Simic srdjan@osmeh.fon
simic_45791d@buef78.etf
cccc.471paki,
> source-ovi i hederi i sve će biti u redu. Ako radiš sa BCW, onda treba
> da u Properities (Alt+Enter) staviš Working direktory na dir u kome su
> ti source-ovi. Ovo je najbolje jer je univerzalno. Ako krećeš da menjaš
> Include directory svaki put, slaba vajda od toga.
Joj :( A ja baš hteo da prošvrljam po dirovima i pogledam dosta
demoa... Nemoguće da nema bolje rešenje (da traži .h u diru gde
i .c(pp))?
> BTW Borland C++ 4.0 me je toliko razočarao da pojma nemate.
Ja sam ga video kod Filipa, i imam utisak da nije lepo podešen
sistem, jer mi se čini nemoguće da ono treba da bude _onako_
spoooooro? (Izem ti rečenicu).
cccc.472dekiper,
Pa, umesto da sa File/Open otvaraš fajlove ti radi Project / Open project jer
svaki pa i najmanji demo ima svoj Project fajl. Učitavanjem projekta se
postavljaju direktorijumi (aktivni sistemski direktorijum se menja u onaj iz
kojeg je .PRJ učitan). Tako da nećeš imati nikakvih problema sa pregledanjem
demo-a.
Što se Borland C++-a 4.0 tiče pogledajmo sledeću situaciju. Moja mašina:
386 DX 40, 8 MB Ram-a, 250 MB IDE Conner 10 mS disk, OAK Vga OTI067 512 k
Ram-a i NEC Multisync 3D (ova dva i nisu bitna ali 'ajde) i on meni kaže:
Linker: Out of memory (!!!!!!!!!!!!!!)
Razlog: Ovo se dešava kada uzmem generator programa i napravim makar i najmanji
program i bacim ga na Make. To nije jedina neprijatnost. Sledeća je to što je
prevođenje barem 2 puta sporije... (ako ne i više). Međutim postoji i druga
strana medalje. žisti C source-ovi (API) se prevode vrlo lepo (čak što više i
pristojnom brzinom (ali ipak sporije nego u 3.1)), ali ako već ne mogu kao
čovek da koristim ObjectWindows i njegove (izuzetne) prateće alate koji će mi
onda đavo Borland C++ 4.0? Inače ide na 22 diskete. Na disku za kompletnu
instalaciju treba 75 MB. Nema DOS IDE. Sve se radi iz Windows-a. U DOS-u ima
samo Command line compiler i Win32s Compiler. Inače podržava platforme: Windows
3.0, Windows 3.1, Win32s, Windows NT, Dos standard i Dos Overlay. Pored toga
sadrži dve verzije kompajlera: 16-bitnu (za 286 i 386) i 32-bitnu (sad se
držite za stolicu!) (za 386, 486 i Pentium-a). Lepo se otvori prozorče i
klikneš na Insturction Set _ž :´k Pentium. Fino, ali koliko je to potrebno
veliko je pitanje! Lepa stvar je što ima i 16-bitni i 32-bitni debager za
Windows i što konačno taj debager podržava sve žive drajvere za sve žive
kartice. Mane: Nema Turbo Profiler-a, nema Turbo Vision-a i što je najgore,
Turbo Assembler se prodaje kao poseban paket pa ni njega nema. Inače od ima
kompletnu dokumentaciju na disku za kreiranje Win32s programa i nikada lepši
help.
Zaključak: Ako vam trebaju Win32s programi i pravi 32-bitni kompajler (ono
Pentium ćemo preskočiti jer sumnjam da to iko ima u Beogradu) i ako ste spremni
da uložite 16 MB Ram-a za komforan rad onda je BC++ 4.0 stvar za vas. Inače...
Napomena: Lepo je radio kada sam stavio još 10 MB permanentne virtuelne
memorije sa 32-bit disk access-om, ali izem ti program koji lepo radi sa tek 10
(virt) + 8 (physical) = 18 MB memorije. Sam kompajler pravi kraći i brži kod
nego inače (proveravano celu noć)...
Pozdrav, Deki
cccc.473vitez.koja,
#=> Da, ali je ovo Windows verzija, pa nema trenutnog dira.
#=> BC bi trebao da traži .h u diru gde je i .cpp, ali on to
#=> ne radi.
Svaki task pod Windowsima ima svoj trenutni dir.
cccc.474vcalic,
>> prevođenje barem 2 puta sporije... (ako ne i više). Međutim postoji i
>> druga strana medalje. žisti C source-ovi (API) se prevode vrlo lepo (čak
>> što više i pristojnom brzinom (ali ipak sporije nego u 3.1)), ali ako već
>> ne mogu kao čovek da koristim ObjectWindows i njegove (izuzetne) prateće
>> alate koji će mi onda đavo Borland C++ 4.0? Inače ide na 22 diskete. Na
Jel' postoji API podrška za 32-bitne aplikacije? Tj. jel' mora da se
koristi ObjectWindows da bi se radilo sa Win32s?
Sviđa mi se ideja da se iz Windows-a rade DOS aplikacije, ali sve u
svemu, očekivao sam više. žudi me samo što ne mogu da se prave 32-bitne DPMI
aplikacije koje će raditi i pod DOS-om.
Vlada
cccc.475dekiper,
Postoji kompletan Win32s API i On-Line dokumentacija za rad sa njim u obliku
Windows help-a :))) Moguće je koristiti i ObjectWindows tako da i u jednom i u
drugom slučaju možeš sa BC4 da praviš Win32s programe.
Još nešto... Sa BC4 ide i Microsoft Win32s Upgrade Module for Windows 3.1 kojim
omogućavate izvršavanje Win32s programa i pod Win 3.1. Ovako nešto postoji na
Sezamu, ali ako vas mrzi da skidate to je tu.
BTW Jel' ti misliš ozbiljno sa tim Win32s?
Pozdrav, Deki
cccc.476paki,
># => Da, ali je ovo Windows verzija, pa nema trenutnog dira.
> Svaki task pod Windowsima ima svoj trenutni dir.
Jes, pogrešan odraz :( Nema 'Change dir'.
cccc.477postmast,
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Date: Tue, 29 Mar 1994 18:49:29 GMT
Dejan Pervulov (dekiper@sezam.UUCP) je napisa-la/o:
: BTW Borland C++ 4.0 me je toliko razocarao da pojma nemate.
Ajde opisi nam malo zasto.
Sasa
cccc.478postmast,
From: va17190d@buefhp.etf.uni-bg.yu (Vasic Aleksandar)
Subject: Re: cccc
Date: Fri, 1 Apr 1994 08:18:42 GMT
Pavle Milosevic (paki@sezam.UUCP) wrote:
: Joj :( A ja bas hteo da prosvrljam po dirovima i pogledam dosta
: demoa... Nemoguce da nema bolje resenje (da trazi .h u diru gde
: i .c(pp))?
Aaaa, u tome li je problem. :) Ako hoces da gledas demoe, nemoj da ucitavas
*.cpp i pokusavas da prevedes, nego uzmi Project/Open_project pa onda jedno
make... a *.prj fajl sadrzi podatke o svim potrebnim fajlovima, gde se oni
nalaze, itd.
cccc.479dekiper,
Ja mislim da sam već dovoljno rekao...
Pozdrav, Deki
cccc.480vision,
Hi svima. Inace sam C programer pa bih Vam postavio jedno pitanje - ne
C programerima :). Evo malopre procitah neke malo starije poruke (-1 mesec)
u kojima ste vredjali C (mislim oni koji programiraju u PASCAL-u, ili mrze
programiranje iz dna duse kao darone:). Neke poruke su me bas uvredile, ali
nema veze, nego, oce li neko da malo poobjasni zasto mrzi C, i to izbrojati
sve njegove nedostatke ili vec sta mu smeta u C-u, a sta ima PASCAL bolje
nego C, sta moze vise, i to sve KONKRETNO primerima, a ne samo 'C SUKS'.
Samo jos da Vam kazem da neznam ama bas uopste PASCAL, mozda bih razumeo
citajuci sors nesto, ali ne programiram u PASCALU.
Ajde ljudi, mozda i nas C-ovce ubedite da je bolje programirati u PASCAL-u
, a mozda i stvarno probam...
[ For now, C is better ;) ...]
cccc.481markom,
█*█ [ For now, C is better ;) ...]
C programmers are better lovers :)
Nego da ti odgovorim na gorepomenuto pošto sam ja rekao C sucks :)
Ovako. Kod C-a mi se ne svidja zato što programera drži mnogo blizu mašine i
dopušta previše (*********a, na primer). Pascal (pod Pascal mislim na Turbo
Pascal) je isto moćan, ne kao C/C++, ali ... :), ali ne pušta programera toliko
da brlja. Takođe je u C-u, bez dosta truda, nemoguće napisati sledeće:
var
f : file of ucenik;
Gde je ucenik struktura, na primer, definisana kao
type
ucenik : record
ime,
prezime : string;
razred,
prosek : Byte;
end;
Eto to bi bilo za sad, nadam se da sam obrazložio zašto više volEm paskal :)
P.S. Ne moraš pisati Vi i Vam velio, niko na to ne obraća pažnju :)
Pozdrav :)
cccc.482mackb,
Da li neko zna gde bih mogao da nabavim uputstvo ili nesto tome nalik za
Code Base V4.5 paket C biblioteka za rad sa bazama podataka.
H M.Burka
cccc.483dcolak,
│ da brlja. Takođe je u C-u, bez dosta truda, nemoguće napisati sledeće:
│ var
│ f : file of ucenik;
Tz Tz Marko :)
definišeš struct i kad želiš da ga baciš u fajl udariš prosto:
fwrite(&ucenik, sizeof(struct mucenik), 1, outfile);
So, mozeš i više odjednom, tj. umesto 1 staviš 3 i tri komata lete
u fajl. Naravno, ovo je mnogo lepše nego u Pascalu :)
Sledge DAMMIR!
cccc.484markom,
█*█ fwrite(&ucenik, sizeof(struct mucenik), 1, outfile);
Write(outfile, ucenik)
█*█ So, mozeš i više odjednom, tj. umesto 1 staviš 3 i tri komata lete
█*█ u fajl. Naravno, ovo je mnogo lepše nego u Pascalu :)
Ipak mislim da je ovo lepše nego u C-u :)
cccc.485dragisha,
-> u fajl. Naravno, ovo je mnogo lepše nego u Pascalu :)
NaRaVNo ! :)
--
[My RAM has 243 K free]
cccc.486ognjan,
Prokleti segmenti! Bježao sam od njih na Motorolu, pa na UNIX i na kraju
se ipak moram zajebavati sa njima :))
Radim pod BC3.1 i treba mi velika količina RAM-a (tačnije SAV RAM) za
podatke. Memorija se dinamički alocira u malim komadima (po 100-tinak bajta).
Kod staje u 64K, ali koriste se priličo rekurzije, tako da treba malo više
prostora za stek.
Pretpostavljam da bi trebalo koristiti Compact mem. model ?
Kako bi trebalo alocirati memoriju ? Sa farmalloc() ?
Dodatni problem je to sto kod treba da bude prenosiv na UNIX, dakle
otpadaju neke egzibicije BC-a. Sve treba da bude što standadniji C, uz
eventualne #ifdef UNIX direktive za prevođenje na UNIX-u.
Postoji li jednostavan način da se alocira i EXPANDED memorija ?
Ogy.
cccc.487mjova,
> Ovako. Kod C-a mi se ne svidja zato što programera drži
> mnogo blizu mašine i dopušta previše (*********a, na
> primer). Pascal (pod Pascal mislim na Turbo Pascal) je
> isto moćan, ne kao C/C++, ali ... :), ali ne pušta
> programera toliko
misliš li da tebi treba nešto što će te kontrolisati da ne pogrešiš?
to se onda zove drugačije...
prepucavanje 'šta je bolje?' ne vodi nikud.
cccc.488djelovic,
> Pretpostavljam da bi trebalo koristiti Compact mem. model ?
Može, no nema razloga zašto da ne koristiš large model za sve programe osim
za one kod kojih su veličina i brzina kritični.
> Kako bi trebalo alocirati memoriju ? Sa farmalloc() ?
malloc () će biti dovoljan.
> Postoji li jednostavan način da se alocira i EXPANDED memorija ?
Ne pod BC++-om. Eventualno ukoliko radiš na C++-u, dala bi se naći neka
zgodna klasa. U suprotnom, rad sa expanded memorijom nije toliko zgodan, no
opet, nije ni neki veliki problem. Pogledaj dir, trebalo bi da bude nekoliko
biblioteka koje se time bave.
cccc.489omega,
│> Ovako. Kod C-a mi se ne svidja zato sto programera drzi
│> mnogo blizu masine i dopusta previse (*********a, na
│> primer). Pascal (pod Pascal mislim na Turbo Pascal) je
│> isto mocan, ne kao C/C++, ali ... :), ali ne pusta
│> programera toliko
│
│ prepucavanje 'sta je bolje?' ne vodi nikud.
Slazem se, ali kad sam radio u c-u sa funkcijom memset i sa
tp-ovom fillchar razlika u brzini je bila drasticna (naravno,
tp je bio brzi bar 10 puta). Sad ce neko da kaze da c mogu da
kompajliram i na drugim racunarima itd., ali meni je bila potrebna
BRZA rutina za koji bi se c programer spustao na asemblerski nivo,
a meni je dovoljno da otkucam jedno FILLCHAR...
cccc.490markom,
█*█ misliš li da tebi treba nešto što će te kontrolisati da ne pogrešiš?
█*█ to se onda zove drugačije...
Zašto ljudi više vole da pišu u Visual C++ -u nego mu MS SDK ? Zato što neke
stvari ne moraju sami da pišu, a samim tim pisanje ide brže i manje su šanse da
se omane ...
█*█ prepucavanje 'šta je bolje?' ne vodi nikud.
Naravno, ja sam i prestao sa tim, ali morao sam da odgovorim na onu poruku :)
cccc.491dcolak,
│ █*█ fwrite(&ucenik, sizeof(struct mucenik), 1, outfile);
│
│ Write(outfile, ucenik)
Da, ovo koristiš sa handle-om.. Zašto ne koristiti fwrite? :)
Sledge DAMMIR!
cccc.492markom,
█*█ Da, ovo koristiš sa handle-om.. Zašto ne koristiti fwrite? :)
Ne, ne, ne ... :)) Ovo je bio primer upisa strukture u fajl iz Paskala. Krajnje
jednostavno, zar ne ? :)
cccc.493janko,
> Radim pod BC3.1 i treba mi velika količina RAM-a (tačnije
> SAV RAM) za podatke. Memorija se dinamički alocira u malim
> komadima (po 100-tinak bajta). Kod staje u 64K, ali
> koriste se priličo rekurzije, tako da treba malo više
> prostora za stek. Pretpostavljam da bi trebalo koristiti
> Compact mem. model ?
Naprotiv, HUGE je jedini model koji ti daje veliki stek. U svim ostalim
modelima stek deli prostor sa statičkim podacima, a samo je ovde
"nezavisan" tj. može da se širi do 64K bezbolno.
Iskustvo govori i ovo -- jedini modeli koji imaju smisla su TINY (za
JAAAKO male programe) i SMALL sa jedne i LARGE i HUGE sa druge strane.
Modele "između" nije mnogo praktično koristiti -- tj. U PRAKSI ne ne
primećuje korist od njihove upotrebe. Tako su, čak, razmišljali i u
samom Borlandu -- dugo su vukli bagove u alokaciji memorije po
bibliotekama za "između" modele.
> Kako bi trebalo alocirati memoriju ? Sa farmalloc() ?
Sa malloc(). farmalloc() se koristi samo u SMALL i sličnim modelima.
> Dodatni problem je to sto kod treba da
> bude prenosiv na UNIX, dakle otpadaju neke egzibicije
> BC-a. Sve treba da bude što standadniji C, uz eventualne
> #ifdef UNIX direktive za prevođenje na UNIX-u.
Za stek moraš, u statičkim podacima, da bi ga iskoristio što više,
uraditi ovo:
#ifdef __BORLANDC__
unsigned _stkeln= 60000;
#endif
Na Juniksu ovo neće ništa smetati.
> Postoji li
> jednostavan način da se alocira i EXPANDED memorija ?
Kratko: ne.
Duže: Expanded memorija je priličan zez -- možeš samo da u nju pumpaš
ili iz nje izvlačiš podatke, ali ne i da prčkaš po podacima, tamo "na
licu mesta." Postoji jedna lepa XMS klasica (dakle, za C++) koja radi sa
XMS prilično bezbolno, ali to nije ništa prenosivo na Juniks, naravno.
Ako ti stvarno treba puno memorije, treba ti pravi 32 bitni kompajler sa
nekim DOS ekstenderom. Onda više ne brineš o modelima i ostalim
sitnicama.
cccc.494postmast,
From: ps26989d@buefhp.etf.uni-bg.yu (Pajic Srdjan)
Subject: Re: cccc
Date: Mon, 4 Apr 1994 13:30:58 GMT
>> Kod C-a mi se ne svidja zato sto programera drzi mnogo blizu masine i
Cudno, ja zbog toga i programiram u C++ ;)))
Nego, zar vam nije dosadila vecita svadja ko je bolji... Ako vam je
do toga, idite u politiku ili neku slicnu konferenciju, a nas pustite
da radimo nesto!!
[C++ programmers are MUCH better lovers]
cccc.495postmast,
From: paya@fon (Pavle Pekovic)
Subject: Re: cccc
Date: Mon, 4 Apr 1994 14:50:37 GMT
Marko Milivojevic (markom@sezam.UUCP) je napisao:
: Ovako. Kod C-a mi se ne svidja zato sto programera drzi mnogo blizu masine i
: dopusta previse (*********a, na primer). Pascal (pod Pascal mislim na Turbo
C te pusta da brljas onoliko koliko hoces. Mnogo vaznije je da ti
omogucuje da pises i vrlo citljive programe, opet naravno ako hoces. Dakle,
sve zavisi od programera.
: Pascal) je isto mocan, ne kao C/C++, ali ... :), ali ne pusta programera toliko
: da brlja. Takode je u C-u, bez dosta truda, nemoguce napisati sledece:
: var
: f : file of ucenik;
: Gde je ucenik struktura, na primer, definisana kao
: type
: ucenik : record
: ime,
: prezime : string;
: razred,
: prosek : Byte;
: end;
Razlika je samo u kom momentu odredjujes format zapisa. Kod Pascal-a,
kao sto si naveo, to je u trenutku otvaranja fajla, kod C-a je u trenutku
upisivanja zapisa (record-a). C nacin je fleksibilniji, da ne objasnjavam,
ocigledno je zasto.
--
Pavle Pekovic Paya, student Fakultet Organizacionih Nauka
paya@fon.fon.uni-bg.yu Univerzitet u Beogradu
cccc.496dcolak,
│ █*█ Da, ovo koristiš sa handle-om.. Zašto ne koristiti fwrite? :)
│
│ Ne, ne, ne ... :)) Ovo je bio primer upisa strukture u fajl iz Paskala.
│ Krajnje jednostavno, zar ne ? :)
Bogamu, isto k'o C :>
Sledge DAMMIR!
cccc.497markom,
█*█ Nego, zar vam nije dosadila vecita svadja ko je bolji... Ako vam je
█*█ do toga, idite u politiku ili neku slicnu konferenciju, a nas pustite
█*█ da radimo nesto!!
Ja to ponavljam već nedelju dana :))
█*█ [C++ programmers are MUCH better lovers]
Ovo je već isforsirano :))
cccc.498markom,
█*█ Bogamu, isto k'o C :>
Ajde ako ti tako kažeš ... :)
cccc.499ognjan,
>> Ako ti stvarno treba puno memorije, treba ti pravi 32 bitni
>> kompajler sa nekim DOS ekstenderom. Onda više ne brineš o
>> modelima i ostalim sitnicama.
DA, i ja sam došao do tog zaključka. BC je fin i moćan, ali nije to TO!
Dakle, koji 32 bitni kompjler bi mi preporučio ( sobzirom na neophodnu UNIX
prenosivost ) ?
Zna li MSC praviti 32-bitni kod?
Ogy.
cccc.500janko,
> DA, i ja sam došao do tog zaključka. BC je fin i moćan,
> ali nije to TO! Dakle, koji 32 bitni kompjler bi mi
> preporučio ( sobzirom na neophodnu UNIX prenosivost ) ?
> Zna li MSC praviti 32-bitni kod?
U stvari, koliko mi je poznato (nisam ih koristio) najnovije verzije
MS-ovih i Borlandovih kompajlera generišu 32-bitne aplikacije.
Borlandove 32-bitne apliakcije mogu da rade samo pod 32-bitnim
Vindouzima, (ili, bar, ne obezbeđuju klasičan DOS ekstender) a uz
najnoviji MS-ov kompajler (MS Visual C++ 32-bit edition) ide i Phar Lap
TNT Lite DOS-ekstender, koji obezbeđuje rad 32-bitnih aplikacija pod
DOS-om, i čak, pod DOS-om osobine koje inače nudi NT (!). Borlandov C++
4.0 obezbeđuje razvojnu okolinu SAMO pod Vindouzima. Za MS ne znam.
Ima i zez -- taj "TNT Lajt" daje samo do 2 MB pod DOS-om. Treba nabaviti
pravi TNT za više.
"Mana" (sa ili bez navodnika, zavisi od uslova) je što su ovi novi
programi prilično glomazni. Vrlina im je što su sada to jezivo dobri
razvojni sistemi -- imaju takvih stvari o kojim je nekada moglo samo da
se sanja, ili da se kupuju specijalizovani proizvodi koji bi "krpili"
ono što nemaju -- tu mislim na razne jutilitije koji obezbeđuju što
bezbolniji razvoj, tipa nekih Obdžekt brouzera i sl. Koliko mi je
poznato, još uvek im fali nešto što bih nazvao "manadžment verzija
programa" -- mogućnost da se pamte SVE verzije programa koji razvijaš, i
da lako vidiš proizvoljnu verziju, a da, na kraju krajeva, sve verzije
ne troše više mesta (interno) od jedne.
Još neki programi su dugo na tržištu -- High C i Watcom. I jedni i drugi
su ranije dostigli 32-bitnost i moguće je da su manje zahtevni za
resursima.
Na kraju, postoji i GNU C++ kompajler koji daje 32-bitni kod, a usto je
i džabe, potpuno zvanično. Za njega je potreban njegov lični ekstender.
Kao što vidiš, izbor je velik.
Lično bih voleo da dođem do demo ;) verzije što manjeg kompajlera koji
dobro generiše 32-bitni kod, za svoju, kućnu, upotrebu. I da mu nisu
potrebni Vindouzi da bi se razvijao i izvršavao program. Verovatno je to
neki stariji High C? Ima li neke dobre duše koja je spremna da podeli sa
mnom to zadovoljstvo? O:)
Da imam zver od mašine, verovatno bih se trudio da nabavim najnovije
MS-ovo čedo (iako sam dosta vremena proveo sa Borlandom) jer će oni
i nadalje, više nego ikad, izgleda, postvaljati standarde, šta k ako i
koliko, pa je dobro raditi sa stvarima "iz prve ruke."
cccc.501maksa,
>> Još neki programi su dugo na tržištu -- High C i Watcom. I
>> jedni i drugi su ranije dostigli 32-bitnost i moguće je da su
>> manje zahtevni za resursima.
Treba još pomenuti i Zortech koji je prvi izbacio integralni C++
kompajler, nasuprot dotadašnjoj kombinaciji 'C++ preprocessor +
običan C kompajler'. Njegova priča sa ekstenderima ide ovako
nekako: U svim verzijama paketa dobiju se nekoliko mogućnosti za
dosezanje "onoga" :) iznad smrtnicima dostupnih 640 K. Pored dobro
izvedene, već viđene varijante sa overlays-ima postoje još i podrška
286 protected modu koji plafon za program i podatke diže na 16 Mb, i
zastupljena je u svim varijantama paketa, a što je takođe važno - ne
plaćju se royalities za distribuciju ovako prevedenih programa.
Dalje, dobije se okrnjeni Phar Lap-ov 32-bitni extender sa limitom
od 4Gb za program i podatke. Fora sa 32-bitnim ekstenderom (pravi
flat-model izvršne programe sa prâvim 32-bitnim pointerima, tj.
prevazilazi 64K ograničenje za segment) je što se on dobija samo u
skupljim Developer's i Engineering izdanjima.
Kažu da je debugger koji se uz njega isporučuje jedan od
najboljih na tržištu. Recimo, ima heap menadžment urađen tako da se
svi pozivi malloc, new, delete i sl. beleže u internoj listi
debugger-a. Svaki pokušaj da dva puta oslobodiš neku memoriju na
heap-u rezultuje upozorenjem, a alarmira i ako pri izlasku iz
programa postoje neki zaostali neoslobođeni blokovi. Sve ovo važi
za verziju 3.0, izašlu polovinom 92-ge. Je l' zna neko koja je
trenutna verzija ?
cccc.502dejanr,
>> U stvari, koliko mi je poznato (nisam ih koristio) najnovije verzije
>> MS-ovih i Borlandovih kompajlera generišu 32-bitne aplikacije.
>>
>> Borlandove 32-bitne apliakcije mogu da rade samo pod 32-bitnim
>> Vindouzima, (ili, bar, ne obezbeđuju klasičan DOS ekstender) a uz
>> najnoviji MS-ov kompajler (MS Visual C++ 32-bit edition) ide i Phar Lap
>> TNT Lite DOS-ekstender, koji obezbeđuje rad 32-bitnih aplikacija pod
>> DOS-om, i čak, pod DOS-om osobine koje inače nudi NT (!).
Ni ja se nisam previše upuštao u problematiku, ali sam stekao utisak da
MS C 8.0 zaista ima Phar Lap, ali samo za svoje potrebe, tj. za upotrebu
tokom kompajliranja itd. Nisam primetio da se može napraviti DOS
aplikacija koja bi posle radila u 32-bitnom modu, uz taj Phar Lap.
>> Još neki programi su dugo na tržištu -- High C i Watcom. I jedni i drugi
>> su ranije dostigli 32-bitnost i moguće je da su manje zahtevni za
>> resursima.
Ali su zato mnoooogo siromašniji kao jezici, da o razvojnoj okolini i ne
pričam. Ipak, ja koristim HighC (neku verziju od pre 3 godine) kada mi
trebaju "beskonačni" nizovi, dosta je zgodan.
cccc.503postmast,
From: ss45791d@buefhp.etf (Srdjan Simic)
Subject: cccc
Date: Wed, 6 Apr 1994 12:55:16 GMT
:> Prokleti segmenti! Bjezao sam od njih na Motorolu, pa na UNIX i na kraju
:>se ipak moram zajebavati sa njima :))
:> Postoji li jednostavan nacin da se alocira i EXPANDED memorija ?
Postoji divan nacin da ce izbegnu i segmenti, i da imas na raspolaganju svu
memoriju moju imas, a cak i da svapujes na disk.
Probaj GNU C. Na fonu je u /msdos/djgpp a na ubbg-u je novija verzija u
msdos.gpp diru.
Ovo naravno vazi ako imas 386+ masinu.
Linearna memorija, svapovanje na disk (sam program to radi ti nista nemas
s tim), c i c++ podrska, lako prenosenje na unix, podrska za BGI pisane
programe, pascal to c konvertor (koji radi !!), malloc(50000000) bez ikakvih
problema...
Ako te interesije nesto vise javi se.
--
Srdjan Simic srdjan@osmeh.fon
ss45791d@buefhp.etf
simic_45791d@buef78.etf
cccc.504postmast,
From: ps26989d@buefhp.etf.uni-bg.yu (Pajic Srdjan)
Subject: Re: cccc
Date: Wed, 6 Apr 1994 13:09:22 GMT
>> Postoji jedna lepa XMS klasica (dakle, za C++) koja radi sa
>> XMS prilicno bezbolno, ali to nije nista prenosivo na Juniks, naravno.
Napravi za Unix klasu koja spolja izgleda isto kao pomenuta XMS klasa,
a unutra radi normalnu alokaciju memorije. Ako XMS klasa nema inline
funkcija u zaglavlju, na Unix-u samo prikacis drugu biblioteku i stvar
sljaka. U protivnom, moras se sluziti #ifdef _BORLANDC_ fazonima.
Mislim da ovo ne treba da bude mnogo komplikovana stvar.
cccc.505mmitrovic,
Ů█▀█Ţ Razlika je samo u kom momentu odredjujes format zapisa. Kod Pascal-a,
Ů█▀█Ţ kao sto si naveo, to je u trenutku otvaranja fajla, kod C-a je u
Ů█▀█Ţ trenutku upisivanja zapisa (record-a). C nacin je fleksibilniji, da ne
Ů█▀█Ţ objasnjavam, ocigledno je zasto.
Ne bih se baš složio, pošto su slogovi promenljive dužine
posredno podržani u pascalu preko netipiziranih fajlova (pr. sa
var x:FILE). Onda se koristi blockread i blockwrite isto kao na
C-u
var <file>:FILE;
...
reset(<file>,1);
blockwrite(<file>,<slog>,<dužina sloga>Š, <var provera>Ć)
cccc.506janko,
> tokom kompajliranja itd. Nisam primetio da se može
> napraviti DOS aplikacija koja bi posle radila u 32-bitnom
> modu, uz taj Phar Lap.
To sam naveo po Phar Lap-ovoj reklami u Bajtu. Možda foliraju? Kod njih
piše: "Lite" vam obezbeđuje DOS aplikacije sa NT osobinama
(multithreading i ta-ra-ra) i do 2 MB pod DOS-om, a ima ga u Visual C++
32-bit edition-u.
cccc.507paki,
> programe, pascal to c konvertor (koji radi !!), malloc(50000000) bez
> ikakvih problema...
Je li ovo gore 50 Mb?
cccc.508dgrbic,
:: od 4Gb za program i podatke. Fora sa 32-bitnim
:: ekstenderom (pravi flat-model izvrsne programe sa
:: prâvim 32-bitnim pointerima, tj. prevazilazi 64K
:: ogranicenje za segment) je sto se on dobija samo u
:: skupljim Developer's i Engineering izdanjima.
A sto u skupljim?
Nadji negde ZTC verziju 3.0 (malko je zastarela, doduse) i imas 32-bitni
ekstender za samo 40$ (u Moskvi).
Verzija pravi kod samo za Win 3.0 (nema biblioteke za 3.1), i pravi kod za
16-bitni OS/2 (1.x).
Pod DOS-om deluje sasvim ok.
Ekstender ne moze da izvrsi spawn i exec funkcije, to mu dodje kao glavna
mana.
:: za verziju 3.0, izaslu polovinom 92-ge. Je l' zna
:: neko koja je trenutna verzija ?
Trenutna verzija je Symantec C++ 6.1 - vizuelni C++ za Win/NT/DOS.
cccc.509postmast,
From: ss45791d@buefhp.etf.uni-bg.yu (Simic Srdjan)
Subject: Re: cccc
Date: Sat, 9 Apr 1994 19:30:48 GMT
Pavle Milosevic (paki@sezam.UUCP) wrote:
: > programe, pascal to c konvertor (koji radi !!), malloc(50000000) bez
: > ikakvih problema...
: Je li ovo gore 50 Mb?
Ma da. Ne postoji ogranicenje (sem mesto na disku ).
--
Srdjan Simic srdjan@osmeh.fon
ss45791d@buefhp.etf
simic_45791d@buef78.etf
cccc.510postmast,
From: smilic@breza (Sasa Milic)
Subject: Re: cccc
Date: Sat, 9 Apr 1994 11:04:27 GMT
Marko Milivojevic (markom@sezam.UUCP) je napisa-la/o:
: * [C++ programmers are MUCH better lovers]
: Ovo je vec isforsirano :))
[C++ programmers are lovers++]
Sasa
cccc.511ialeksic,
Da li neko moze da me uputi gde da nadjem "mustricu" za pisanje DOS Device
Drivera za Microsoft C (u posedu sam 7.0).
Ne odbijam ni: ma ialeksic :)
pozdrav Ivan
cccc.512dragisha,
-> >> Ako ti stvarno treba puno memorije, treba ti pravi 32 bitni
-> >> kompajler sa nekim DOS ekstenderom. Onda više ne brineš o
-> >> modelima i ostalim sitnicama.
->
-> DA, i ja sam došao do tog zaključka. BC je fin i moćan, ali nije to TO!
-> Dakle, koji 32 bitni kompjler bi mi preporučio ( sobzirom na neophodnu
-> UNIX prenosivost ) ?
-> Zna li MSC praviti 32-bitni kod?
GNU C++. O prenosivosti na Unix ne treba ni govoriti, o ekstenderu da
kažem da podržava do 128 Mb virtuelne memorije i da zahtijeva minimum od
512Kb RAM. Royalties su 5% ili $5 po primjerku prodatog SW.
--
[Nothing cures a case of nerves like a case of beer.]
cccc.513markom,
█*█ [C++ programmers are lovers++]
Ovo zvuči mnogo lepše i prirodnije, uvršteno u zbirku mojih tagića O:)
cccc.514djelovic,
> Da li neko moze da me uputi gde da nadjem "mustricu" za pisanje DOS Device
> Drivera za Microsoft C (u posedu sam 7.0).
ZZ je svojevremeno pisao o tome, pogledaj RIND i /RSOFT
cccc.515dejanr,
>> Da li neko moze da me uputi gde da nadjem "mustricu" za pisanje DOS
>> Device Drivera za Microsoft C (u posedu sam 7.0).
U "Računarima 78", tekst Zorana čivotića... upravo o tome :)
cccc.516maksa,
Kako da izvedem sledeće (BC31):
čeleo bih da napravim makro koji bi kao define, ubacio
u sors određeni blok naredbi, konkretno 2 uzastopna asm
bloka. Problem je što se u okviru ta dva bloka (na počecima,
tačnije) javljaju labele koje bi za svaki pojedinačni ubačeni
dvo-blok morale da budu različite, jer bi mi inače prijavljivao
multiple declaration. Kako se ovo rešava ?
Drugo, slično pitanje:
Da li mogu da se stavljaju labele unutar asm blokova ? Nije
valjda jedini način da se jedan asm blok razdvoji na onoliko
blokova koliko ima labela, pa da se labela postavlja ispred
asm ?
Drugo, pod b) :
Da li postoji neka fora da se definiše makro u okviru kog bi
se labele definisao kao local, što bi eliminisalo multiple
declaration problem ?
Svaki hint dobrodoš'o. ;)
cccc.517djelovic,
> čeleo bih da napravim makro koji bi kao define, ubacio
> u sors određeni blok naredbi, konkretno 2 uzastopna asm
> bloka. Problem je što se u okviru ta dva bloka (na počecima,
> tačnije) javljaju labele koje bi za svaki pojedinačni ubačeni
> dvo-blok morale da budu različite, jer bi mi inače prijavljivao
> multiple declaration. Kako se ovo rešava ?
Nikako ili veoma kljakavo. Zaboravi.
> Da li mogu da se stavljaju labele unutar asm blokova ? Nije
> valjda jedini način da se jedan asm blok razdvoji na onoliko
> blokova koliko ima labela, pa da se labela postavlja ispred
> asm ?
Ne da iko zna. Radi se o čudnom ponašanju BC++-a kome neki ne zna uzrok.
Ajde da neko ko je prešao na četvorku proveri da li je i tamo to još uvek
slučaj.
cccc.518anenad,
Zdravo,
Da li me neko moze reci gde ili kod koga da nabavim,
C API funkcije za DESQview (ne X verziju). Isto talo me
interesuje ko ima GNU C koji se moze dobiti.
Codor.│
cccc.519dgrbic,
::> Da li mogu da se stavljaju labele unutar asm blokova ?
::> Nije valjda jedini nacin da se jedan asm blok razdvoji
::> na onoliko blokova koliko ima labela, pa da se labela
::> postavlja ispred asm ?
::
:: Ne da iko zna. Radi se o cudnom ponasanju BC++-a kome
:: neki ne zna uzrok. Ajde da neko ko je presao na cetvorku
:: proveri da li je i tamo to jos uvek slucaj.
U BC++ 4 labele mogu da budu unutar asm blokova.
Medjutim, labela mora da bude sama u jednoj liniji, iako se to u uputstvu
nigde ne spominje:
asm {
mov ax,0
a: // ovo mora da bude ovako!
dec ax
loopnz a
}
Dalje, u vise asm blokova unutar iste funkcije ne smeju da se javljaju
labele sa istim imenom (posto su to, zapravo, C goto labele, kao i ranije).
Resenje je moguce uz koriscenje #define direktive, kao u primeru koji
sledi:
#define asmblock(lab) asm \
{ \
mov dx,0x40 ; \
mov es,dx ; \
lab: ; \
mov ax,es:[0x6c] ; \
and ax,7 ; \
cmp ax,0 ; \
jne lab ; \
}
void main (void)
{
asmblock(a)
asmblock(b)
}
Obrati paznju na ; u asm bloku: to je obavezno ako ubacis asm u #define
(zato sto \ na kraju reda jednostavno produzuje liniju pa se dobije npr.
mov dx,040H mov es,dx. Ovo nece da prodje.)
cccc.520ognjan,
>> Ako te interesije nesto vise javi se.
žuj, ... ako me interesuje ! :))) Naravno da me interesuje. Uskoro ću
dolaziti u BG, pa bih to pokupio na disketama. Prenos se baš i ne isplati
(pretpostavljam da je paket poveći). Otavi mi telefon u mail ...
Pozdrav, Ogy.
cccc.521ognjan,
>> GNU C++. O prenosivosti na Unix ne treba ni govoriti, o
>> ekstenderu da kažem da podržava do 128 Mb virtuelne memorije i
E to mi se već sviđa ! :)))
Koliki je paket, i gdje bih ga mogao dobiti (na disketama kada dođem u BG ?).
Ogy.
cccc.522janko,
> 512Kb RAM. Royalties su 5% ili $5 po primjerku prodatog
> SW.
I to je kao GNU? A traže po $5 od svakog prodatog programa napisanog
njime.
Neka gore u paklu.
cccc.523dpredovic,
> :> Prokleti segmenti! Bjezao sam od njih na Motorolu, pa na
> UNIX i na kraju :>se ipak moram zajebavati sa njima :))
> :> Postoji li jednostavan nacin da se alocira i EXPANDED
> memorija ?
A da probaš sa Blinkerom 3.0? Izgleda prilično bezbolno.
cccc.524ialeksic,
>>U "Racunarima 78", tekst Zorana Zivotica... upravo o tome :)
U r078cdd.zip [Sablon DOS device driver-a (HEX)] je samo HEX.ASM.
Ima li gde god nesto tipa: HEX.C?
cccc.525ognjan,
>> A da probaš sa Blinkerom 3.0? Izgleda prilično bezbolno.
??? :O A šta mu to dođe ?
cccc.526v.nesic,
Ako je neko skidao GNU C sa VAX-a i ima datoteku bnu22bn.zip
zamolio bih ga da mi pošalje GPROF.C pošto mi se na disketi
pojavio loš sektor i malo je uneredio :(
cccc.527niklaus,
Subject: Re: GNU C & DV/X
(:> Da li me neko moze reci gde ili kod koga da nabavim,
(:> C API funkcije za DESQview (ne X verziju).
Postoji biblioteka za X upravo za GNU C. na Internetu naravno. Da li bi se
FONovci mogli pri sledećem osvežavanju verzije GCCa setiti i tog QDDVX???.ZIP
fajla?
(:> Isto talo me interesuje ko ima GNU C koji se moze dobiti.
R:>ma re
(: Sean :)
cccc.528ficus,
:) P.S. Otkud C, Paki? ;)
Rastemo, napredujemo, ucimo. ;)))
cccc.529ficus,
:) Ja sam ga video kod Filipa, i imam utisak da nije lepo podesen
:) sistem, jer mi se cini nemoguce da ono treba da bude _onako_
:) spoooooro? (Izem ti recenicu).
Oces da se kladis da ne moze brze :(((((
Istina tako je samo u prvoj kompilaciji posle
prevodi samo ono sto je menjo.
cccc.530ficus,
:) Jel' postoji API podrska za 32-bitne aplikacije? Tj. jel' mora da se
:) koristi ObjectWindows da bi se radilo sa Win32s?
Hvala bogu ne mora.
:) Svida mi se ideja da se iz Windows-a rade DOS aplikacije, ali sve u
:) svemu, ocekivao sam vise. Cudi me samo sto ne mogu da se prave 32-bitne
:) DPMI aplikacije koje ce raditi i pod DOS-om.
Mislim da radi ali ... nisam tolko cacko za dos koristim bc3.1 i tc++1.01
ovaj drugi iskljucivo zto sto na 286-ici sa 1mb memorije nece da radi nista
jace
cccc.531ficus,
:) Jos nesto... Sa BC4 ide i Microsoft Win32s Upgrade Module for Windows 3.1
:) kojim omogucavate izvrsavanje Win32s programa i pod Win 3.1. Ovako nesto
:) postoji na Sezamu, ali ako vas mrzi da skidate to je tu.
I tako sto bi se mucili i skidali 600kb sa sezama kad mozete da iskopirate
22 diskete i to lepo instalirate (stvarno je jednostavnije)
cccc.532kenza,
(;> [C++ programmers are lovers++]
A jel to znaci da im se digne tek u drugom prolazu? ;>
cccc.533postmast,
From: ss45791d@buefhp.etf (Srdjan Simic)
Subject: cccc
Date: Tue, 12 Apr 1994 09:42:42 GMT
GNU C++ se moze naci na fonu (stara verzija ) i na ubbg (novija). Novija
verzija ima oko 8.5MB zipovano. Ako te interesuje javi mi se na
jednu od dole adresa ja cu ti skinuti, ili presnimiti sa svojih disketa.
--
Srdjan Simic srdjan@osmeh.fon
ss45791d@buefhp.etf
simic_45791d@buef78.etf
cccc.535dlazic,
Prerađujem jedan C program pisan u Microsoft-u, pa
sam naišao na jednu funkciju koju nemam u biblioteci koja
ide uz taj paket. Pošto pisem u Borlandovom C-u ne znam da li
je ta funkcija možda iz Microsoftovog C-a?
Evo dela programa i u njemu funkcije:
void plot( buffer, buf_start, pts_to_plot )
This function plots the passed data in 'buffer' on the screen. In
scaling the y-axis it assumes that the bipolar input setting has been
selected (see _setlogorg). The origin of the y-axis is the
---------------
middle ofthe screen. The x-axis ranges from 0 to 'pts_to_plot'. The
origin of the x-axis is the left corner of the screen
'buffer': array of data to plot
'buf_start': starting index of 'buffer' for data to plot
'pts_to_plot': total number of data in 'buffer' to plot
Funkcija je _setlogorg:
// _setlogorg( 0, (getmaxy()-NUM_Y_GRIDS)/2 -1 );
Zna li neko šta ta funkcija radi (pretpostavljam da određuje
koordinatni početak) i da li ima sličnu u Borlandu.
Hvala unapred
Pozdrav
***DVL***
cccc.537maksa,
>> // _setlogorg( 0, (getmaxy()-NUM_Y_GRIDS)/2 -1 );
>>
>> Zna li neko {ta ta funkcija radi (pretpostavljam da odre|uje
>> koordinatni po~etak) i da li ima sli~nu u Borlandu.
Javiće se verovatno i neko upućeniji, al' nek' se nađe za
prvu pomoć:
<HELPPC> kaže:
struct xycoord far _setlogorg( short x, short y )
- prototype in graph.h
- moves the logical origin (0,0) to the physical point (x,y)
- returns previous logical origin in physical coordinates to:
struct xycoord
{
short xcoord;
short ycoord;
};
Funkcije za definisanje logičkog ekrana, na veeeliku žalost
ne postoje kod Borlanda, tako da ti verovatno predstoji
temeljnije prerađivanje i dorađivanje dela programa koji
se bavi crtanjem. Mislim da bi bio red da se sete da ubace
ovako nešto.
Jako bih se obradovao da se javi neko i da kaže da nisam u
pravu, pošto i meni ovo zaista fali.
cccc.538postmast,
From: ps26989d@buefhp.etf.uni-bg.yu (Pajic Srdjan)
Subject: Re: cccc
Date: Wed, 13 Apr 1994 17:13:53 GMT
>>Da li me neko moze reci gde ili kod koga da nabavim,
>>C API funkcije za DESQview (ne X verziju). Isto talo me
Kol'ko se ja secam, ne postoje API funkcije onako kako je to u
Windowsima, vec se komunikacija sa DV odvija preko interapta.
Spisak svih poziva sam (cini mi se) video il' na Sezamu, il' na FFS.
>>interesuje ko ima GNU C koji se moze dobiti.
Ima ga na Fonu, obrati se Pavlu Prekovicu (paya).
cccc.539vitez.koja,
#=> Jako bih se obradovao da se javi neko i da kaže da nisam
#=> u pravu, pošto i meni ovo zaista fali.
Naravno da nisi u pravu :) Postoje funkcije setviewport i getviewport koje rade
baš to što ti treba. Naravno, ove funkcije iamju mogućnost ili dve više od
Microsoftovih.
cccc.540dragisha,
-> čeleo bih da napravim makro koji bi kao define, ubacio
-> u sors određeni blok naredbi, konkretno 2 uzastopna asm
-> bloka. Problem je što se u okviru ta dva bloka (na počecima,
-> tačnije) javljaju labele koje bi za svaki pojedinačni ubačeni
-> dvo-blok morale da budu različite, jer bi mi inače prijavljivao
-> multiple declaration. Kako se ovo rešava ?
Zar ne bi trebalo da kao argument tom makrou možeš da daš i labelu koju
želiš, i onda pri dva 'poziva' makroa da upotrijebiš dvije različite
labele.
-> Da li postoji neka fora da se definiše makro u okviru kog bi
-> se labele definisao kao local, što bi eliminisalo multiple
-> declaration problem ?
Pa, ne bi trebalo da postoji:).
--
[I saw a lot of trees today; and they were made of wood.]
cccc.541dragisha,
-> > 512Kb RAM. Royalties su 5% ili $5 po primjerku prodatog
-> > SW.
->
-> I to je kao GNU? A traže po $5 od svakog prodatog programa napisanog
-> njime.
->
-> Neka gore u paklu.
To nije GNU. To je za GO32, a možeš da pogledaš cijene za royalties i za
same pakete kod sličnih komercijalnih proizvoda. Drastićna razlika:)).
--
[Ladies and Gentlemen... Elvis has left the building.]
cccc.542dragisha,
-> >> GNU C++. O prenosivosti na Unix ne treba ni govoriti, o
-> >> ekstenderu da kažem da podržava do 128 Mb virtuelne memorije i
->
-> E to mi se već sviđa ! :)))
->
-> Koliki je paket, i gdje bih ga mogao dobiti (na disketama kada dođem u
-> BG ?).
Pa na FONu:).
--
[Find out how many friends you have; rent a beach villa.]
cccc.543maksa,
>> Naravno da nisi u pravu :) Postoje funkcije setviewport i
>> getviewport koje rade baš to što ti treba. Naravno, ove
>> funkcije iamju mogućnost ili dve više od Microsoftovih.
setviewport i getviewport definišu clipping region i pomeraju
koordinatni početak u njegov gornji levi ćošak, ok, 'fala im,
al' posle valjda opet sve crtaš u pixelima ? Ono što bih voleo
je baratanje logičkim koordinatama, čega ima u MS jezicima.
Znači, da mu lepo kažem da ekran nije 640x480, nego 4x3, ili
12.5x7.2 il' šta mi već treba, pa da on dalje misli o razmeri.
Sa druge strane, MS nema setwritemode. Dogovor ? Zavera ? ;)
(sorry, wrong room)
PS Eh, a baš se naložih kod prve rečenice :)
cccc.544vitez.koja,
#=> Znači, da mu lepo kažem da ekran nije 640x480, nego 4x3,
#=> ili 12.5x7.2 il' šta mi već treba, pa da on dalje misli
#=> o razmeri.
A-a-a :)
O tome se dakle radi. To stvarno ne postoji u Borland Cu, ali može lako da se
napravi sa par #defineova ili inline funkcija.
cccc.545djelovic,
> al' posle valjda opet sve crtaš u pixelima ? Ono što bih voleo
> je baratanje logičkim koordinatama, čega ima u MS jezicima.
Ima to i Borland, potraži malo po helpu.
cccc.546dpredovic,
>>> A da probaš sa Blinkerom 3.0? Izgleda prilično bezbolno.
>
> ??? :O A šta mu to dođe ?
>
Superbrzi linker sa ugrađenim 286-extenderom - podrška za XMS,
VCPI i DPMI servere, znači radi i sa himemom i sa qemmom, i sa
qdpmijem. Evo ga spisak extender funkcija koje omogućava, pa vidi.
DOS Extender
DosAllocHuge Allocate extended memory block
DosAllocRealSeg Allocate real mode memory block
DosAllocSeg Allocate extended memory block
DosCreateCSAlias Create executable selector for a data selector
DosCreateDSAlias Create data selector for an executable selector
DosFreeSeg Free a selector
DosGetBIOSSeg Get selector for BIOS data area
DosGetExceptionHandler Set protected mode addr of an exception handler
DosGetHostMode Get current DOS extender host mode
DosGetHugeShift Get shift to apply to get huge increment value
DosGetMachineMode Get current machine mode
DosGetProtVec Get prot mode ptr to prot mode interrupt handler
DosGetRealVec Get real mode ptr to real mode interrupt handler
DosGetSegBase Get base address of a selector
DosGetSegDesc Get descriptor structure of a selector
DosGetSegLimit Get size limit of a selector
DosIsBlinkX Determine if using Blinker DOS extender
DosMapRealSeg Convert real mode paragraph->prot mode selector
DosMemAvail Get total available extended memory
DosRealAvail Get total available real mode memory
DosRealFarCall Make a far call to a real-mode address
DosRealIntr Generate real mode interrupt
DosReallocHuge Resize an extended memory block
DosReallocSeg Resize extended memory block
DosSetExceptionHandler Set prot mode address of an exception handler
DosSetProtVec Install protected mode interrupt handler
DosSetRealVec Install real mode interrupt handler
DosSetSegAttrib Set segment attributes for a selector
DosVMAvail Get available virtual memory
DosVerifyAccess Get flags for a selector
cccc.547.bale.,
> -> Da li postoji neka fora da se definiše makro u okviru kog bi
> -> se labele definisao kao local, što bi eliminisalo multiple
> -> declaration problem ?
>
> Pa, ne bi trebalo da postoji:).
Postoji fora, i zove se ML - Macro Language, na primer. Što će reći,
malo jači makro-procesor od cpp-a.
cccc.548wizard,
> Znači, da mu lepo kažem da ekran nije 640x480, nego 4x3, ili
> 12.5x7.2 il' šta mi već treba, pa da on dalje misli o razmeri.
Takve stvari je uvek bolje da uradiš sam...
cccc.549nbatocanin,
> -> Da li postoji neka fora da se definiše makro u okviru
> -> kog bi se labele definisao kao local, što bi
> -> eliminisalo multiple declaration problem ?
>
> Pa, ne bi trebalo da postoji:).
Nisam baš u toku, ali ovo je imao još asembler za PDP 11. Nije valjda
da se Borland toga nije setio?
cccc.550maksa,
>> Nisam baš u toku, ali ovo je imao još asembler za PDP 11. Nije
>> valjda da se Borland toga nije setio?
Nije, kod inline assemblera.
cccc.551postmast,
From: ps26989d@buefhp.etf.uni-bg.yu (Pajic Srdjan)
Subject: A gde je C++???
Date: Mon, 18 Apr 1994 10:38:40 GMT
SEZAMovci, imam za vas jedno pitanje: gde se dede cpp konferencija
Beointernetu??? Dobro, znam da je Sezam komercijalni sistem, al' kad
vec prenosite razne pascal i c konferencija, mogli bi da bar objasnite
razloge ove diskriminacije. Pogotovu zato sto sam video cpp konferenciju
na samom Sezamu, i cini mi se da bas nije posecena koliko bi trebalo...
cccc.552dcolak,
Problem je da se program zakoči kad god se ukuca više od 80
karaktera! Ne znam zašto, ali uvek je tako... Dakle, ako ukucam
manje od 80 karaktera onda je sve super, i sve radi, ali ako
ukucam 81 ili više karaktera, program se zakoči na pokušaju
izlaska iz funkcije uzmi!
Ovo sam primetio i u drugim programima, kad god bih koristio
char x[Y] gde je Y > 80 ! U čemu je problem? Koristim MSC6.0.
Da, moram da pomenem da je CL /qc užasno loše urađen, toliko
puta prg. ne radi, samo zbog te opcije (a greške u source nema)..
uzmi se poziva sa uzmi(&line[0], c);
gde je c = getch();
char line[165];
#define LIN_LEN 164
int uzmi(char *linija, char slovo)
{
int x, i;
char dummy[LIN_LEN];
int c;
i = x = 1;
dummy[0] = slovo;
putch(slovo);
for (;;)
{
c = getch();
if ( c == 8 )
{
x --;
i --;
if ( i == 0 )
{
putch(c);
strcpy(linija, "");
return(0);
}
if ( x < 0 && i > 0 )
{
x ++;
i ++;
}
else
putch(c);
}
if ( c == 10 || c == 13 )
{
dummy[i] = '\0';
putch('\n');
putch('\r');
strcpy(linija, dummy);
return(1);
}
if (c >= ' ' && c < 127 && i < LIN_LEN-1 && c != 8 && c != 10 && c !=
13)
{
dummy[i] = c;
i ++;
x ++;
if (x == 80)
{
putch('\n');
putch('\r');
x = 0;
putch(c);
}
else
putch(c);
}
}
}
Sledge DAMMIR!
cccc.553postmast,
From: ss45791d@buefhp.etf (Srdjan Simic)
Subject: cccc
Date: Thu, 21 Apr 1994 13:06:17 GMT
Da li je moguce ubrzati rad fgets funkcije?
Npr:
while (!feof(Fin)) fgets(...);
je skoro duplo sporije od
while not eof(Fin) do readln(Fin, ...);
P.S. koristim setvbuf od 10k.
--
Srdjan Simic srdjan@osmeh.fon
ss45791d@buefhp.etf
simic_45791d@buef78.etf
cccc.554miljko,
Ima li neko neku zgodnu rutinicu za proveru sadržaja heap-a za
Borland C.
Mislim nešto što će da se prošeta kroz heap i pogleda ko je šta
alocirao.