unknown.625bearboy,
-> #619, ppekovic˙¨:> ekstenzijom OVL, ili kod OS/2 DLL, ...
DLL se vidi i kod Udovice, a ima ga i kod Odyssey-a (X-Y-Z Modemi su u jednom
DLL-u, pa koji zatreba...)
unknown.626todorp,
-> #624, djelovic> iza decimalnog mesta (.00), onda mozes da jednostavno ispises broj
> bez zareza u string, sa strlen izracunar njegovu duzinu, i onda
> krenes pa ubacujes zareze na odgovarajuda mesta (do_kraja%3 == 0).
Pa ideja nije losa.Ja sam to resio tako sto broj delim u petlji
sa ldiv(broj,pow10(broj dec. mesta)*broj dec. mesta,pa to oduzmem od broja i
ispred razlike dopisem , .Nadao sam se da moze mnogo lakse,ipak HVALA!!
Pozdrav od Todora.
unknown.627garderp,
Sezamovci Programeri,
Posto se mnogo vise bavim Windowsima nego DOS-om,
molio bih da mi neko kaze kako da saznam koji je karater
na odredjenoj poziciji na ekranu (u tekst modu) zajedno
sa njegovim atributima. Ta glupost mi treba iz prostog
razloga sto kad opalim neki dajalog boks preko ekrana
kad ga izbrisem onda se brise i ono preko cega je postavljen
dajalog boks. U windowsima to je lako reseno jer je dajalog
boks prirodna stvar ovog operativnog sistema. Dakle, samo
funkcija tipa
unsigned StaJeNaXY(int x,int y)
Predrag [za Arape]
unknown.628todorp,
-> #627, garderpA zasto deo pre ispisivanja novog prozora na prekopiras u memoriju
sa komandom gettext i posle samo vratis umesto prozora koji brises?
Pozdrav od Todora.
unknown.629mjova,
-> #627, garderp> boks prirodna stvar ovog operativnog sistema. Dakle, samo
> funkcija tipa unsigned StaJeNaXY(int x,int y)
najjednostavnije je preko (HelpPC 2.10):
INT 10,8 - Read Character and Attribute at Cursor Position
AH = 08
BH = display page
on return:
AH = attribute of character (alpha modes only)
AL = character at cursor position
mada možeš i direktno, ako izračunaš adresu aktivne video strane, pa
onda dodaš X*Y*2 na to. pročitaš prvi byte, to je slovo, a drugi je
atribut. ovo možeš da pogledaš u izvornom kodu koji sam ostavio ovde u
temi pod imenom windows.arj (valjda ;), ali ako ti nije potrebna
rezolucija veća od 25 redova, onda se sve može srediti i standardnim
fn koje idu uz bc. (imaju bug, pa ne radi sa više od 25 redova).
SY
unknown.630todorp,
Hi!
Ima li neko fajl ct.lib iz Turbo C-a 2.0? Imam c0t.obj ali sam ovaj nekako
izgubio :)).
Pozdrav od Todora.
ps.Bio bih mu veoma zahvalan kao bi fajl okačio u mail.
unknown.631mjova,
-> #630, todorp> Ima li neko fajl ct.lib iz Turbo C-a 2.0?
jel to šala ili misliš ozbiljno?
ako misliš ozbiljno, onda ti moram reći da nisi izgubio ništa jer
biblioteka za t model nije odvojena, tj. ista je kao i za s model pa
nemaš sekiracije. razlika je samo u linkovanju.
SY
unknown.632todorp,
-> #631, mjova> ako mislis ozbiljno, onda ti moram reci da nisi izgubio nista jer
> biblioteka za t model nije odvojena, tj. ista je kao i za s model pa
> nemas sekiracije. razlika je samo u linkovanju.
Pa ja sam i bez tog fajla dosada linkovao .com fajlove sa:
tlink /t /x \lib\c0t ime.obj,ime.com,,\lib\cs medjutim pozajmim ja od
Klapa knjigu Turbo C/C++ The Complete Reference od Herberta Schildta
(mislim da i ti imas tu knjigu;) i tamo na 366. strani pise da postoji i
ct.lib.Koliko sam ja video nigde se ne pominje da je ct.lib ukinut i da
je predvidjeno drugacije linkovanje.
Pozdrav od Todora.
unknown.634dnikolic,
-> #621, jtitov>> Tacno, a da li je neko ima?
Pa valjda je jtitov ima, ko bi drugi?!?!? :))
dn
unknown.635mornar,
Ima li u nekoj grupi za C/C++ mesta, ili bi morao da otvorim nbovu grupu ?
mornar
unknown.636jtitov,
-> #635, mornar> Ima li u nekoj grupi za C/C++ mesta, ili bi morao da
> otvorim nbovu grupu ?
A sta ce ti grupa kad imas celu konferenciju? Bez veze. Ako mislis na
razmenu software-a, opet bez veze, jer su svi kompajleri abnormalno veliki
da bi se slali preko Sezama... A tvoja pitanja/potraznja mogu biti
zanimljivi svima koji prate ovu konferenciju.
unknown.637robert,
-> #635, mornar<:> Ima li u nekoj grupi za C/C++ mesta, ili bi morao da otvorim nbovu
<:> grupu ?
Što neko u temi clipper reče šta će ti grupa kad imaš konferenciju :))
a i ona mi je ovih dana (nedelja) malo presahnula...
Robert.
P.S. Nema ljutiš... !?
unknown.638todorp,
Kako u Turbo C-u da mu kazem da sve sto treba da ide na screen da ide na
lpt1 ili lpt2? U jednoj knjizi pise da moze ali nigde ne pise kako :((
biosprint mi nista neznaci.Dakle treba mi nesto trajno (relativno) da posle
mogu jednostavno puts("hjhj") da bacim na printer.
Pozdrav od Todora.
unknown.639janko,
Probao sam BC++ 3.0 -- samo DOS verziju.
- Iako piše da je po cfront 2.1 standardu, već i BC 3.0 ima
podršku templejtima (koji su glavna fora cfronta 3.0, i stvarno
značajno olakšavaju i unapređuju C++ programiranje)
- U 3.0 više ne postoje verzije prevodilaca koje rade bez
slobodne extended memorije. Dakle, imamo samo BCC umesto
ranijeg BCCX-a, i samo BC umesto BCX-a. Zaključak: treba vam
bar 2 MB memorije u mašini!
- Nasuprot nekim tvrdnjama, BC++ 3.0 sasvim fino radi sa
QEMM-om i ostalim dragim nam čudima. Problem je što je BC-u
treba puna 2 MB za početak. Integrisana okolina je prespora i
u ta 2 MB -- svapuje ko blesava već za program od dve hiljade
linija. Linijski prevodilac BCC takođe svapuje ko blesav, ako
damo kešu makar i 200 K nauštrb svih 2 MB. Ukratko: za BC++ 3.0
vam treba mašina sa VIŠE od 2 MB, ako ne želite da popijete po
kafu u za vreme svakog prevođenja.
- Nisu napravili samo BC i BCC da moraju da rade sa extended
memorijom, već, začudo, i MAKE, LINK i CPP. Svaki od njih mora
da inicijalizuje svoju podršku za extended memoriju itd. što
dalje dovodi do zaključka da vam treba i
a) pristojno brz disk (bar 17 ms)
b) prostojno brza mašina (bar 386/25)
c) još memorije za disk keš od bar 2-3 MB.
- Do sada nisam pomenuo. Minimalna DOS konfiguracija, bez bilo
kakvih dodataka, je malo jače od 8 MB. Od toga 2,5 MB ode na
on-lajn help fajl, koji je sjajan, ali u njemu su i informacije
o Windows delu i CLASSLIB f-jama (tj. da nisu i to da nabili u
taj fajl, bio bi primetno manji) (CLASSLIB fje nisu deo
standardne biblioteke, već paket rutina koji dobijate kao neku
upotrebljivu demonstraciju C++-a). ko želite da imate još
štošta od pratećih stvari, odoše novi megabajti... Puna DOS
konfiguracija je 30-tak MB, kažu (nisam probao). Dakle,
zaključak: za BC 3.0 -- i to samo DOS verziju, vam treba disk
od BAR 80 MB i to brz (vidi gore).
- 'Bag' na koji sam naleteo radeći sa 2.0 (ono da ne ugrađuje
implicitno kopiranje objekta što sadrže druge objekte) ovde je
otklonjen.
- BC++ 3.0 je prvi koji ima više optimizacija od TC 2.0 (sve
prethodnee su imale isti, izuzetno mali broj optimizacija).
Ipak, i pored svega, MSC 5.0 iz '87 ume da BOLJE optimizuje
suvi C kod, od ovog supermodernog čuda iz '91. Napr. poređenje
dx registra sa 65535 BC prevodi kao 'CMP dx,65535' ali MSC 5.0
kaže 'INC dx.' Pametan mali. Usput, BC++ za 'register'
promenljive NIKAD ne koristi više od dva registra: SI i DI!
Zaključak: iako u minimalnoj konfiguraciji ne zauzima puno više
od 2.0, 3.0 je daleko zahtevniji. Generalno gledano, ako imate
slabiju mašinu od 386/25 sa min 4MB (preporučujem: 8 ili više),
brzim diskom od min 80 MB, opasno ćete se napatiti...
Filozofski minimum je 286 sa 2 MB memorije i 9 MB slobodnih na
hard disku, ali, to je samo za mazohiste! (Usput, da bi ste
izveli ovo, instalaciju BC++ na ovakav 'knap' prostor,
morate da koristite program CA2ZIP koji sam ja svojevremeno
napisao, i može se naći negde u Sezamovim konferencijama).
Ako pišete suve C programe, i nemate jaku mašinu, OSTANITE na
2.0 (ili, možda, osvrnite se na MSC <=6.0, ako ne koristite
sjajnu integrisanu okolinu koju ima BC 2.0, a potrebna vam je
optimizacija koja 'vadi creva').
Ako pišete C++ programe za DOS... verovatno ćete morati da
pojačate mašinu, (ako dosad niste) ako hoćete da ostanete u
trendu. Po najavama, BC++ 3.1 je cfront 3.0 kompatibilan. A
BC++ 3.1 sigurno nije milosrdniji od BC++ 3.0.
Ako pišete Windows programe, znači da već imate bar 386/33,
8MB, VGA i 120MB HD, pa za vas nema krize. O Windows aspektu
trojke je zz napisao članak u nekim od poslednjih Računara,
koji ste, onda, već odavno pročitali...
unknown.640mjova,
-> #638, todorp> Kako u Turbo C-u da mu kazem da sve sto treba da ide na
> screen da ide na lpt1 ili lpt2?
obično radim ovako:
fprintf(stdprn, "hjhj");
SY
unknown.641floyd,
-> #640, mjova-> obicno radim ovako:
-> fprintf(stdprn, "hjhj");
Da li je moguca redirekcija u stilu DOS-a? Nesto kao:
.......
stampanje; /* procedura koja izbacuje podatke na ekran */
stampanje >prn; /* isto sto i gore, samo na stampac */
stampanje >imedat.eks; /* isto sto i gore, samo u datoteku */
.......
unknown.642todorp,
-> #640, mjova> fprintf(stdprn, "hjhj");
Hvala,ali znao sam za to.Meni treba nesto sto ce stvarno da promeni standard
out.Posto znam da imas knjigu Turbo C/C++ od Herberta Schildta,molim te
pogledaj 207. i 208-u stranu.Pise:
It is possible to redirect the console I/O to other devices.For simplicity
of discussion,however,it is assumed that the console will be the device used
since it is the most common.
Ali nepise kako,sem ako se pod tim ne podrazumeva fprintf i biosprint :((
Ja sam problem resio sa fprintf(stdout,"ghhh"); a po potrebi ubacim ispred
#define stdout stdprn.
Glupo je da jedan jezik kao C (ako stvarno nemoze) ne daje mogucnost da mu
zamenim ekran sa lpt.
Pozdrav od Todora.
ps.Ipak HVALA!
unknown.643mornar,
Jel' bi mogao ovde neko da napise funkciju za C koja bi vrsila konverziju
heksadecimalnog i decimalnog broja u binarni oblik dugacak 16 bitova(ili 32).
Hvala unapred.
Mornar
unknown.644djelovic,
-> #641, floyd> stampanje; /* procedura koja izbacuje podatk
> stampanje >prn; /* isto sto i gore, samo na stamp
> stampanje >imedat.eks; /* isto sto i gore, samo u datote
Redirekcija konzole na štampač vrši se u C-u sa:
int handle=dup(fileno(stdout));
dup2(fileno(stdprn),fileno(stdout));
... // ovde ubaci svoje procedure
dup2(handle,fileno(stdout));
Naravno, ovde možete umesto stdprn ubaciti bilo koji FILE*, a
moguće je čak spawn-ovati drugi program sa ovakvom redirekcijom, što je
mnogo efikasnije od dosadašnjeg korišćenja COMMAND.COM-a za ovakve stvari.
unknown.646djelovic,
-> #643, mornar> Jel' bi mogao ovde neko da napise funkciju za C koja bi vrsila
> konverziju heksadecimalnog i decimalnog broja u binarni oblik dugacak 16
> ili 32 bita.
int i = broj;
char s Š80Ć;
char *q = s;
while (i) š
*q++ = (i & 1 ? '1' : '0');
i >>= 1;
ć
*q = 0;
strrev (s);
Brojeve iz decimalnog i hexdecimalnog stringa možeš dobiti
funkcijom sscanf.
unknown.648mornar,
-> #646, djelovic Hvala puno !
Mornar.
unknown.649zvonko,
-> #563, pjankovic># Posjedujem CODE BASE 4.2. Reci sta te interesuje pa da
># pokusam da ti odgovorim.
Na koliko i kakvih disketa staje, odnosno koliko stranica
ima uputstvo ;)
zvonko
unknown.650todorp,
-> #644, djelovic> Naravno, ovde mozete umesto stdprn ubaciti bilo koji FILE*, a
> moguce je cak spawn-ovati drugi program sa ovakvom redire;c─joml │ÎRĽüj
Hvala!!! To mi je trebalo.
Pozdrav od Todora.
unknown.651robert,
-> #643, mornar<:> heksadecimalnog i decimalnog broja u binarni oblik dugacak 16
<:> bitova(ili 32).
Za ovaj program je sve jedno da li je broj hex ili dec...
#include <stdio.h>
void itobin (char *, unsigned int);
void main ()
{
char bin[17];
unsigned int broj;
printf ("Unesi broj: ");
scanf ("%d", &broj);
itobin (bin, broj);
printf ("\n\nBroj %u je binarno %s\n", broj, bin);
}
void itobin (char *niz, unsigned int b)
{
int i;
unsigned int maska = 1;
for (i = 0; i < 16; ++i)
{
niz[15-i] = '0' + ((b & maska) >> i);
maska <<= 1;
}
niz[i] = '\0';
}
Pozdrav, Robert.
unknown.652mjova,
-> #642, todorp> Ja sam problem resio sa fprintf(stdout,"ghhh"); a po
> potrebi ubacim ispred #define stdout stdprn.
> Glupo je da jedan jezik kao C (ako stvarno nemoze) ne daje
> mogucnost da mu zamenim ekran sa lpt.
pa može, ali ne baš tako kako si ti zamislio ;)
u dosu postoje neki 'zamišljeni' fajlovi (oni to zovu 'device'), a ti
ih možeš koristiti po svojoj volji. takavi su npr 'NUL', 'AUX', 'CON'
i 'PRN'. njihova imena možeš da koristiš u fopen() sasvim ravnopravno.
pitanje je da li ti tako nešto treba jer postoje stdin, stdout... pa
ti predlažem nešto ovako:
void print(FILE *strout) {
.....
fprintf(strout, "adasda");
.....
}
void main(void) {
int out= 0; // uvek na ekran po definiciji
.......
if(!out)
print(stdout); // štampanje na ekran:
else
print(stdprn); // štampanje na štampač:
.......
}
tek kao primer osnovne ideje. možeš 'strout' da deklarišeš kao
globalnu promenljivu pa da iz programa samo promeniš njenu vrednost
nepozivajući print() sa parametrom...
SY
unknown.653k.sasa,
Mali savet za sve D-DFLAT programere. Sa MS LINKEROM obavezno ukljuciti
/ST:XXXX opciju (za stek) gde je XXXX broj bajtova (npr /ST:2048). Ovo je
potrebno jer u suprotnom dolazi do neuhvatljivih gresaka u programu, posebno
ako se koristi i help sistem.
Pozdrav, B&S!
unknown.654robert,
-> #651, robertDa... kad malo bolje pogledam, može i bolje... ;))))
Robert.
unknown.655todorp,
-> #652, mjovaHvala na lepom resenju!
Pozdrav od Todora.
unknown.656dnikolic,
-> #627, garderp>> molio bih da mi neko kaze kako da saznam koji je karater
>> na odredjenoj poziciji na ekranu (u tekst modu) zajedno
>> sa njegovim atributima. Ta glupost mi treba iz prostog
Sto rece todor, imas funkciju gettext koja ti pokupi deo ekrana u bafer. Ako ti
bas treba citanje karaktera, imas funkciju 8 interapta 10h koja upravo to radi.
U BH moras imati video stranu, AH broj funkcije (8), a u izlazu AL sadrzi ASCII
kod karaktera, a AH njegov atribut.
dn
unknown.657bulaja,
**** new file **** \ibmpc\c
**** arr-v110.arj
LARGE, VIRTUAL AND HUGH ARRAYS Version 1.1
by Graham Robertson
The software enclosed has three parts.
1. Large Arrays (Arrays up to the size memory allows)
Procedures are written in machine code to allow the use of large arrays in
a C program. The array can be of any size as long as memory permits.
2. Virtual Arrays and Hugh Arrays (Arrays up to the size of your DISK or
VDISK)
Procedures which include the code from part one but allow many large
arrays to be accessed. If there is no space left then old arrays will
cached to the disk or a virtual disk. Several virtual arrays can be used
to create one hugh array of any size. This restricted version limits the
number of virtual arrays to sixteen.
3. Version 1.1 of this software also allows your extended memory to be
accessed directly for this system.
unknown.658pjankovic,
-> #649, zvonko>># Posjedujem CODE BASE 4.2. Reci sta te interesuje pa da
>># pokusam da ti odgovorim.
> Na koliko i kakvih disketa staje, odnosno koliko stranica
> ima uputstvo ;)
Staje na dvije diskete od 1,2Mb.
Uputstvo ima 300 stranica.
Pozdrav :)
unknown.659todorp,
Hi!
Koristim Turbo C 2.0 i naisao sam na zanimljiost.Jel' moze neko da mi objasni
kako je moguce da naredba getdfree i getfat ne rade isto??!! u sledecim
slucajevima:
struct fatinfo p;
getfat(4,&p);
total =(UL)p.fi_sclus*(UL)p.fi_nclus*(UL)p.fi_bysec; Ovaj posle odredjenog
kapaciteta lupa gluposti (poznat
vam je moj program df).Preko odre-
djenog kapaciteta ipisuje za sve
4Gb.
i
struct dfree p;
getdfree(4,&p);
total=(UL)p.df_total * (UL)p.df_bsec * (UL)p.df_sclus;
Pozdrav od Todora.
ps.UL je unsigned long.
unknown.660mjova,
-> #659, todorp> Ovaj posle odredjenog kapaciteta lupa gluposti
> (poznat vam je moj program df).Preko odre-
> djenog kapaciteta ipisuje za sve 4Gb.
Šta da ti kažem, imaš izvorni kod fds-a ;), pa pogledaj ja se time
slušim i nema nikakvih problema, bar ne za sada...
Da li si nekim operacijama nad brojem dobio preveliku vrednost? možda
se radi o tome da ako diska nema (onda je jedna od vrednosti -1)
ispiše unsigned long (-1) (to bi trebalo da bude onih 4Gb)? Ko zna?
ono fi_sclus (pišem napamet, proveri) treba ispitati da li je 0xffff
(tj -1) pa onda ako nije raditi dalje...
ako hoćeš, pošalji mi source u priv poštu da pogledam...
SY
unknown.661robert,
-> #659, todorp<:> Koristim Turbo C 2.0 i naisao sam na zanimljiost.Jel' moze neko da
<:> mi objasni kako je moguce da naredba getdfree i getfat ne rade
<:> isto??!! u sledecim
Evo kako su obe strukture definisane:
struct fatinfo {
char fi_sclus; /* sectors per cluster */
char fi_fatid; /* FAT id byte */
int fi_nclus; /* number of clusters */
int fi_bysec; /* bytes per cluster */
};
struct dfree {
unsigned int df_avail; /* available clusters */
unsigned int df_total; /* total clustrs */
unsigned int df_bsec; /* bytes per sector */
unsigned int sclus; /* sectors per cluster*/
};
E sad, kod većih diskova možda promenljive u strukturi fatinfo ne
mogu da prihvate date veličine ili rutina getfat() postavlja neke
vrednosti u slučaju pojave greške (o tome međutim, ništa ne piše u
helpu dok za getdfree() piše da se negde vraća 0xfff ili nešto tako
u slučaju greške). Trebalo bi se oko toga malo igrati u trace modu
pa videti šta se upisuje gde i u kom slučaju.
unknown.662todorp,
-> #660, mjovaStvar je u tome sto bi ona dva primera morala na istoj particiji isto da rade,
(zar ne?) a oni ne rade.
> Da li si nekim operacijama nad brojem dobio preveliku vrednost?
Pa sta to znaci prevelika vrednost.Prevelika bi bila vrednost od jedno 10
cifara (posto je long) a to nikako nisam mogao da dobijem.
Pozdrav od Todora.
ps.Ono za source,obrisao sam bagovitu zivotinju u afektu.Procackacu malo
sa undelete pa ako uspem da ga izvucem saljem ti na mail.Bio sam dovoljno
glup da obrisem i prethodne verzije iz confa :(
unknown.663todorp,
-> #661, robert> u slucaju greske). Trebalo bi se oko toga malo igrati u trace modu
> pa videti sta se upisuje gde i u kom slucaju.
Pa igrao sam se sa debugerom i lupao je gluposti a, ja nisam hteo da preterano
ulazim u problematiku TC-a.Znam samo da cu izbegavati getfat gde god mogu.
A ono o razlikama u strukturi ne razumem sta ce im int kad nemoze da bude
ni jedan broj vezan za disk negativan (sto nije unsigned?).Znaci opet glupost.
> char fi_sclus; /* sectors per cluster */
Sta ce ovde char?
Pozdrav od Todora.
unknown.664obren,
-> #663, todorp> Pa igrao sam se sa debugerom i lupao je gluposti a, ja nisam hteo da
> preterano ulazim u problematiku TC-a.
U fi_sclus je u slučaju nepostojećeg diska vrednost -1 (nema u helpu, ali
mogao si i probom da provališ da si malo bolje pogledao "gluposti" ;)). Kada
se -1 castuje u unsigned pa pomnoži za drugim članovima fatinfo strukture,
(koji su u tom slučaju neodređeni) dobijaju se vesele vrednosti, odnosno oni
diskovi sa poželjnim kapacitetom... :)))
> Znam samo da cu izbegavati getfat gde god mogu.
Ma lupi HELP IGNORE GETFAT i gledaj posla, kad ne ume da napiše ni pošten
resume u helpu, pa treba da pogađaš ko je, šta je i kako radi... ;)
unknown.665todorp,
-> #664, obren> U fi_sclus je u slucaju nepostojeceg diska vrednost -1 (nema u helpu,
> mogao si i probom da provalis da si malo bolje pogledao "gluposti" ;)).
> se -1 castuje u unsigned pa pomnozi za drugim clanovima fatinfo struktur
> (koji su u tom slucaju neodredeni) dobijaju se vesele vrednosti, odnosno
Ili ja tebe nisam razumeo ili ti mene.Kako je nepostojeci disk kad ta ista
particija kad se smanji radi program a ako je vise od oko 70mb neradi, a
getdfat radi?
Pozdrav od Todora.
E je* ga posto kucam on line gore nije getfat nego getdfree.
unknown.666obren,
-> #665, todorp> Ili ja tebe nisam razumeo ili ti mene.Kako je nepostojeci disk kad
> ta ista particija kad se smanji radi program a ako je vise od oko
> 70mb neradi, a getdfat radi?
Izgleda ja tebe - mislio sam da te izluđivalo što dobijaš velike brojeve
za nepostojeće diskove, pa sam pogledao malo po literaturi šta može da bude
uzrok. Ne pominju se eventualni problemi sa particijama koje postoje, a u
principu tu se samo poziva odgovarajuća DOS-ova funkcija, i tu (valjda) ne
bi trebalo da ima bagova (?).
unknown.667ilazarevic,
Može jedno početničko pitanje? Može... Daklem:
Koja je razlika između signed i unsigned promenljivih?
unknown.668glisin,
-> #667, ilazarevic
ŢŢŢKoja je razlika između signed i unsigned promenljivih?
U vrednostima koje se mogu staviti unutra. Signed oblik koristi zapis broja u
potpunom komplementu, tako da se mogu pakovati i pozitivni i negativni, dok
unsigned to tretira kao niz bitova sa vrednostima od nula pa dalje. Da ne
detaljišem oko zapisa brojeva u binarnom sistemu, ono što ti treba je sledeće:
unsigned signed
────────┼────────────────┼─────────────────────────
char │ 0...255 │ -128...127
short │ 0...65535 │ -32768...32767
long │ 0...4294967296 │ -2147483648...2147483647
────────┴────────────────┴─────────────────────────
Primeti da NEMA int-a u tabeli. To je zato što je "int" jednak ili short ili
long, zavisi od mašine. Recimo, na 16-bitnim mašinama je obično int=short, dok
se kod 32-bitnih pravi tako da je int=long, da bi po bio što srodniji
organizaciji samog procesora. Preporučujem da koristiš baš short i long a
izbegavaš int ako te interesuje portabilnost a radiš nešto sa bitovima ili
pointerima i takvim varijablama. U ostalim slučajevima nema veze.
Opaska: Slične stvari postoje i u drugim jezicima. Na primer u MODULI-2 je tip
CARDINAL baš ono što je u C-u unsigned (0...) a u Pascalu toga nema, ali se
može napraviti CARDINAL (0..32767 doduše) ako se stavi
TYPE cardinal = 0..MAXINT;
a takođe i
TYPE byte = 0..255;
što je ekvivalentno C-ovom
typedef unsigned char byte;
Eto. Nadam se da sam bio dovoljno informativan. Ako nešto još zapne, pitaj pa
da objašnjavamo. Inače, moja objašnjenja se baziraju na STANDARDIMA jezika.
Zato i kažem da Pascal nema unsigned, iako Turbo ima, jer po Wirth-u nema,
dakle nema i tačka. :-)))
ŢŢŢIGGYŮŮŮ
unknown.669janko,
-> #667, ilazarevic> Koja je razlika između signed i unsigned promenljivih?
Pitanje je više vezano za osnove računarstva, a ne C kao jezik.
Signed imaju znak a unsigned ne. :) Kodovanje signed ne mora da
bude u drugom komplementu, zavisi od mašine, ali obično jeste.
Na 80X86 procesorima jeste. Drugi komplement je kodovanje tako
da je 65535 == -1, 65534 == -2 itd. Pozitivni brojevi su
0..32767. Ovo pričam za int (na dos C-ovima je int 16 bita).
Slično važi i za char, koji je 8 bita, i za long (32).
Uzmi malo eksperimentiši i sve će ti biti jasno.
unknown.670ilazarevic,
-> #668, glisin█ Eto. Nadam se da sam bio dovoljno informativan. Ako nešto još zapne,
█ pitaj pa da objašnjavamo. Inače, moja objašnjenja se baziraju na
█ STANDARDIMA jezika.
Hvala, bilo je divno :) Mene baš interesuju standardi, posle je lako
popunjavati rupe...
unknown.671ilazarevic,
Hvala i gliši i janku na objašnjenjima.
unknown.672rogi,
Ukoliko neko poseduje datoteku "commdlg.h" molio bih
ga da mi se javi na mailH povodom iste.
Rogi
unknown.673ciki,
Ho!
Posto sam tek poceo da radim u C-u,imam jedno pitanjce.
Da li je moguce procitati poziciju na disku odgovarajuceg programa
i kako?
Pozdrav Ciki!
unknown.674d.petrovic,
Početničko pitanje !
Možda nekom bude čudno, ali...
Treba da napravim jedno kratko programče koje treba da ima
štampa jedan obrazac i još par sitnica.
Ja sam do sad piskarao samo po Clipper-u (bilo bi smešno da
program koji tako malo stvari radi bude dug cca 300 K), a sa
engleskim se salbo snalazim pa bih bio presrećan da mi neka dobra
duša napiše par reči o C-u (to je vama < 5 min).
Daklem:
1. Kako da preusmerim izlaz na štampač ?
2. Kako da odštampam nešto u koloni 5 na ekranu, a da ne obrišem
znake u kolonama 0-4 ?
3. Kako da još par podataka smestim u fajl na disku i odatle ih
učitavam (ovo nije neophodno, ako je komlikovano za početnika u C-u)?
Hi!
P.S. Ako je bitno imam Borlandov TC 1.0 !
Uz svaku upotrebljenu funkciju molim napomenu gde se nalazi, t.j. koji
heder fajl povezati.
unknown.675janko,
-> #674, d.petrovic> P.S. Ako je bitno imam Borlandov TC 1.0 !
Pređi na TC 2.01 i nabavi :) samo TSR help iz paketa Borland
C++ 2.0. To ti je najbolja kombinacija. TC 2.01 je najbrži u
prevođenju, a help iz BC 2.0 daje najviše informacija. Probaj
-- i broj pitanja će ti se naglo smanjiti... onda se ponovo
javi...
unknown.676mjova,
-> #673, ciki> Da li je moguce procitati poziciju na disku odgovarajuceg
> programa i kako?
kakvu poziciju? čak i da sam te dobro razumeo, to nema potrebe raditi.
program (neki com ili exe) možeš da otvoriš funkcijom fopen() ili
nekom koja radi sličnu stvar.
možda absread() i abswrite() rade ono što te zanima, ali nisam siguran
baš 100% jer njima ne određuješlokaciju programa već čitaš odeređeno
mesto na disku. e, sad, što se tiče lociranja nekog programa za rad sa
ove dve funkcije nisam upućen jer mi to nikad nije bilo potrebno jer
sve probleme rešavam sa fopen().
unknown.677mjova,
-> #674, d.petrovic> 1. Kako da preusmerim izlaz na štampač ?
pogledaj poruku pc.prog:6.642 i odgovore na nju.
> 2. Kako da odštampam nešto u koloni 5 na ekranu, a da ne
> obrišem znake u kolonama 0-4 ?
probaj sa putch(), cprintf() i ostalim sličnim fn. naravno, koristi
gotoxy(), wherex(), wherey()...
> P.S. Ako je bitno imam Borlandov TC 1.0 !
nije preterano bitno, ali predlažem ti BC++ 2.0, i biblioteke iz 3.0.
verzija 2.0 ima prednosti kad se pri prevođenju koriste ranije
prevedena zaglavlja. time se dosta ubrzava prevođenje C++ koda.
SY
unknown.678rogi,
Postovane kolege,
Ponovo se javljam povodom meni tako neophodne datoteke "commdlg.h".
Da bih Vam osvezio pamcenje objasnicu sta je u toj datoteci. Od BETA
verzije Windows 3.1 distibuira se fajl COMMDLG.DLL koji sadrzi odredjeni
skup dijaloga za otvaranje, zatvaranje i stampanje datoteka. Posto pose-
dujem BC++ v3.0 u njemu se ne nalazi include datoteka commdlg.h a i sami
zante kako sada stoje stvari sa upgradeom. Molio bih nekog ako poseduje
tu datoteku da mi se javi na mail. A evo i jednog korisnog dokumenta.
U fajlu se nalaze Microsoftova objasnjenja kako kreirati status bar u
aplikaciji pod Windowsima. Ince izasao je Paradox Engine 3.0. Te infor-
macije cu kasnije poslati. Jos nesto, sta bi sa grupom windows.2 nkbog
obeca nesto. Pozdrav,
Rogi
stabar.zipunknown.679rogi,
Evo i informacija o Paradox Engine 3.0 i nekim drugim novim
borlandovim proizvodima.
a.zipunknown.680garderp,
-> #679, rogiDa li si ti nešto već radio u paradox-u 2.0 ili samo nosiš vesti?
Predrag (za Arape)
unknown.681micko,
-> #679, rogiZdravo,
Da li kosristis samo Engine ili i Paradox kao relacionu bazu?
Ajde da se dogovoriomo pa da svi oni koji koriste Pareadox u
bilo kojoj verziji ili varijanti osnujemo grupu za razmenu
svega (iskustava, znanja, softvera itd.)
Codor
unknown.682ppekovic,
-> #681, micko>> Ajde da se dogovoriomo pa da svi oni koji koriste Pareadox u
>> bilo kojoj verziji ili varijanti osnujemo grupu za razmenu
>> svega (iskustava, znanja, softvera itd.)
Šta će vam grupa kad imate ovu konferenciju.
Paya
unknown.683ciki,
-> #676, mjova>>kakvu poziciju? čak i da sam te dobro razumeo, to nema potrebe
>>raditi....
Ovako.
Vec sam rekao da sam apsolutni pocetnik u C-u.
To bi trebalo da radi nesto slicno pctools-u(Znas ono kada gledas
mapu diska, pa ti on kaze tu i tu se nalazi taj i taj prg...)
P.S. Nisam se javljao od 31.8. pa zato izvini na sadasnjem odgovoru.
Pozdrav Ciki!
unknown.684mjova,
-> #683, ciki> To bi trebalo da radi nesto slicno pctools-u(Znas ono kada
> gledas mapu diska, pa ti on kaze tu i tu se nalazi taj i
> taj prg...)
e, to je druga priča. to bi trebalo pogledati u nekoj knjižici o dos-u
ili po helpovima. FAT bi trebalo da sadrži sve inforamcije koje te
zanimaju, pa pokušaj da proučiš njegovu strukturu. nisam nikad imao
potrebu da radim tako nešto, pa ti više ne mogu reći.
unknown.685obren,
-> #683, ciki> To bi trebalo da radi nesto slicno pctools-u(Znas ono kada gledas
> mapu diska, pa ti on kaze tu i tu se nalazi taj i taj prg...)
I meni je jednom trebao metod za nalaženje početnog klastera ali nigde
nisam mogao da nađem. Našao sam "obrazac" za putovanje, ali za njega treba
da se zna početni klaster. E, onda sam pitao na Mića BBS-u i Vasa (vasic)
mi je iskopao, valjda iz HelpPC-a da se početni klaster može naći u FCB-u
(File Control Block). E tu postoji problem, jer je taj podatak na raznim
ofsetima kod DOS-a 2.x, kod DOS-a 3.x i kod 3.x kada je startovan SHARE.
Posle sam odustao od toga, ali ako baš hoćeš probaj da se zezaš sa FCB-om.
Uostalom, ko sada koristi DOS 2.0? Ostaje ti samo da prepoznaš da li je
startovan SHARE, pa imaš samo dve varijante. Aj, pa javi šta si uradio,
detalje imaš u HelpPC-ju.
unknown.686robert,
Evo za sve one koji počinju da se bave ili koji žele da
počnu da se bave C-om nekoliko malih funkcija uklopljenih
u dva demo programa.
Kao što samo ime arhive kaže koriste se pozivi BIOS-u u
svrhu čitanja tastature i njenog statusa i u svrhu kontrole
ekrana i kursora. Sve u svemu ništa spektakularno ali kome
treba da se uči možda će dobo doći. Arhiva sadrži i jedan
PROžITAJ.ME fajl u kome sve lepo piše.
Pozdrav.
P.S. Oni iskusniji programeri ovo ne moraju da skidaju jer
sve to već odavno znaju. :))
(žisto da ne bude posle lupanja šakom o čelo... ;))
biosdemo.arjunknown.687dejanr,
NOVOSTI/bix 5.25 je zapravo prikaz (beta verzija) Microsoft C-a 7.0
koja će izaći/je izašla u septembarskom broju BYTE-a.
BTW, u sledećim "Računarima" (oktobar) takođe sledi prikaz ovoga paketa,
srećom ne kasnimo mnogo za BYTE-om :)
unknown.688zvonko,
-> #687, dejanr>#
># BTW, u sledećim "Računarima" (oktobar) takođe sledi
># prikaz ovoga paketa, srećom ne kasnimo mnogo za BYTE-om
># :)
Još samo da obezbedite diskete i štampanu dokumentaciju :>>>
unknown.689dejanr,
-> #688, zvonko>> > BTW, u sledećim "Računarima" (oktobar) takođe sledi
>> > prikaz ovoga paketa, srećom ne kasnimo mnogo za BYTE-om
>> > :)
>>
>> Još samo da obezbedite diskete i štampanu dokumentaciju :>>>
Nije mi baš jasno šta si ovim hteo da kažeš, ali prikaz je "naš",
tj. paket (original) je, zahvaljujući "Jogodati", obezbeđen, kao
i uvek kada se radi prikaz.
unknown.690d.petrovic,
Jel zna neko kako da pročitam serijski broj diska (adresa) ?
Ima li tako nešto matična ploča ?
unknown.691d.petrovic,
Možda je pitanje čudno, ali ja sam početnik u C-u!
Znam da to može i na lakši način, ali ja sam tvrdoglav i hoću to na kraći.
Problem je sa zastavicama u printf() i fprintf() funkcijama. Daklem kako:
fprintf(out," 1, 2,..., 9,10,11);
(Videli ste ? Bitan je razmak ispred 1-9)
da napišem u petlji, tj, kako da postavim format ispisa:
for(br=1;br<=30;++br)
fprintf(out,"%u........",br);
Ajde nek se nađe dobra duša koju ne mrzi ovo da mi napiše, ja se s tim
mlatio skoro ceo sat :((((
Hi
unknown.692ppekovic,
-> #691, d.petrovic>> Znam da to može i na lakši način, ali ja sam tvrdoglav i
>> hoću to na kraći. Problem je sa zastavicama u printf() i
>> fprintf() funkcijama. Daklem kako: fprintf(out," 1, 2,...,
>> 9,10,11);
>> (Videli ste ? Bitan je razmak ispred 1-9)
>> da napišem u petlji, tj, kako da postavim format ispisa:
>> for(br=1;br<=30;++br)
>> fprintf(out,"%u........",br);
Uh, evo treći put čitam ovo što si napisao i nije mi baš jasno šta si želeo
da postigneš. Ajde probaj da objasniš bolje.
Paya
unknown.693prvul,
-> #692, ppekovicŮ>> (Videli ste ? Bitan je razmak ispred 1-9)
Ů>> da napišem u petlji, tj, kako da postavim format ispisa:
Ů Uh, evo treći put čitam ovo što si napisao i nije mi baš jasno šta si
želeo
Ů▄▄
Mislim da hoće da postigne ovo:
for(br=1;br<=30;++br)
fprintf(out,"%2u,",br);
Odn. hoće da ima brojeve ispisane tako da svaki broj zauzme isti broj
karaktera, u ovom slučaju 2.
unknown.694mjova,
-> #690, d.petrovic> Ima li tako nešto matična ploča ?
nema, ali možeš pročitati SN biosa (nesigurno) ili chksum (još
bolje)..
unknown.695zzivotic,
-> #691, d.petrovic> fprintf(out," 1, 2,..., 9,10,11);
> (Videli ste ? Bitan je razmak ispred 1-9)
> da napišem u petlji, tj, kako da postavim format ispisa:
> for(br=1;br<=30;++br)
> fprintf(out,"%u........",br);
fprintf(out,"%2u",br); Jel to?
Pozdrav, zz
unknown.696d.petrovic,
-> #692, ppekovic> Uh, evo treći put čitam ovo što si napisao i nije mi baš
> jasno šta si želeo da postigneš. Ajde probaj da objasniš
> bolje.
Odgovorio ti je i prvul, al' pošto si pokazao dobru volju da pomogneš
dužan sam i ja.
Trebalo mi je:
fprintf(out,"%2u",br);
a ja sam sve vreme pokušavao (kad kupujem loše napisane knjige ;)):
fprintf(out,"%u 2",br);
fprintf(out,"%u2",br);
fprintf(out,"%u%2",br);
i još puuuno, puno kombinacija, bolje reći sve osim prave :(((
unknown.697nboskovic,
-> #690, d.petrovic*> Ima li tako nešto matična ploča ?
Možda ima procesor zapisano negde na nekoj adresi
u sebi?
(c) klap
nikola
unknown.698janko,
-> #697, nboskovic> Možda ima procesor zapisano negde na nekoj adresi
> u sebi?
Serijski broj SVAKOG mikroprocesora? To bi bilo SKUUUUPO da ne
možeš da zamisliš koliko. Naravno, ne postoji...
unknown.699glisin,
-> #691, d.petrovic
ŢŢŢAjde nek se nađe dobra duša koju ne mrzi ovo da mi napiše,
ŢŢŢja se s tim mlatio skoro ceo sat :((((
Videh da ti je Prvul odgovorio... nego, vidi se da ne koristiš prave knjige.
To tamo piše. Pišem ovu poruku da ti skrenem pažnju na nekoliko formata koji
se najčešće koriste. Neka je x = 123:
printf (" >%d< ", x); Izlaz: >123<
printf (" >%5d< ", x); Izlaz: > 123< (ono što si tražio)
printf (" >%-5d< ", x); Izlaz: >123 <
printf (" >%05d< ", x); Izlaz: >00123<
Isto važi za ostale tipove (%u, %s, %c...). Ima još mnogo kerefeka sa izlazom,
posebni za %f i %e, ali ovo je najkorisnije i najčešće. Oblik '%0nt' je
naročito zgodan kada imaš HEX brojeve. Ako ti je h = 0xE1C na primer, a hoćeš
da to liči na 32-bitni broj, dakle da ima pun format, kažeš:
printf (" %08X ", h); Izlaz: 00000E1C
printf (" %08x ", h); Izlaz: 00000e1c
Prosto k'o pasulj!
ŢŢŢIGGYŮŮŮ
unknown.700todorp,
-> #690, d.petrovic> Jel zna neko kako da procitam serijski broj diska (adresa) ?
> Ima li tako nesto maticna ploca ?
Za serijski broj diska ti treba dos veci od 4-ke. Evo ti ovo ali neznam koliko
ce ti pomoci:
INT 21,69 - Get/Set Disk Serial Number (Undocumented DOS 4+)
AH = 69h
AL = 00 get serial number
= 01 set serial number
BL = drive (0 = default, 1=A:, 2 = B:, ... )
DS:DX = buffer to contain extended BIOS Parameter Block (BPB, AL=0)
= disk information to set of the form:
Offset Size Description
00 word info level (zero)
02 dword disk serial number (binary)
06 11bytes volume label or "NO NAME " if not present
11 8bytes filesystem type string "FAT12 " or "FAT16 "
returns:
CF = set on error
AX = error code if CF set
= 01 network drive not supported
= 05 no extended BPB found on disk
CF = clear if successful and value in AX is destroyed
AL = 00 buffer filled from Extended BPB on disk
= 01 disk Extended BPB updated from buffer
DS:DX = pointer to returned data, when AL = 0
- copies data from Extended BIOS Parameter Block to buffer
- no critical error is generated on error
- does not work on network drives (returns 01)
- returned buffer (after offset 2) is similar to offsets 27 through
3D of the Extended BPB found in the boot record
Za maticnu plocu mislim da nema resenja.
Pozdrav od Todora.
unknown.701korvin,
Gospodo, uskoro zaplovljavam u vitaminske (C ) vode, interesuje me
kakvo je vaše uvaženo, koji C da uzmem ? Vredi li preći na objektno prg. ?
unknown.702mornar,
-> #701, korvin Preporucujem ti neki od Borlandovih C kompajlere, jer su brzi i vrlo
efikasni i sa najmanje bug-ova. Sto se tice obj. prog. iako ga neces odma
koristiti ( shvatiti ), vredi imati njegovu podrsku.
Preporucujme Borland C++ v2.0 ili v3.0
pozdrav.
unknown.703d.petrovic,
Nikako da ukapiram kako C prenosi vrednosti funkcijama :((
Pitanje :
Kako da kad hoću da ispišem liniju u fajlu prenesem pokazivač na fajl, tj.
!
Na ekranu bi to bilo :
main š
lin(20);
ć
lin(du) š
int br;
for(br=1;br<=du;++br)
printf("-");
ć
ali....., sa fajlovima to ne radi jer treba preneti i pokazivač na fajl !
Ja probao, ali ovo ne ide !
main š
FILE *out;
out=fopen("PROBA.TXT","wt");
fprintf(out,"TestiranjeĐn");
lin(out,20);
fclose(out);
ć
lin(out,du) š
int br;
for(br=1;br<=du;++br)
fprintf(out,"-");
ć
Kako to u stvari treba, treba da skratim program za ¸200 linija kad
prenesem parametar drugoj funkciji !?
Hi
unknown.704ppekovic,
-> #702, mornar>> Preporucujem ti neki od Borlandovih C kompajlere, jer su brzi i vrlo
>> efikasni i sa najmanje bug-ova. Sto se tice obj. prog. iako ga neces odma
++++++++++++++++
Najmanje bug-ova u poredjenju sa kojim kompajlerima?
Pored Borlandovih kompajlera, tu su i Microsoft C 6.0 i C 7.0.
Ovaj drugi je objektno orijentisani, ali kao i noviji Borlandovi
kompajleri jede mesto na disku.
Paya
unknown.705d.petrovic,
-> #697, nboskovic> Možda ima procesor zapisano negde na nekoj adresi
> u sebi?
Ne verujem. Možda ima matična ploča, ali mene je u stvari interesovalo sa
koje adrese pročitati broj Hard diska.
Pozdrav, Dejan
unknown.706d.petrovic,
-> #698, janko> Serijski broj SVAKOG mikroprocesora? To bi bilo SKUUUUPO
> da ne možeš da zamisliš koliko. Naravno, ne postoji...
E, postoje. Sad baš ne bih da dokazujem, ali pročitao sam to negde i
naravno ne odnosi se na SVAKI, ti se valjda posebno naručuju i bla,bla...
unknown.707d.petrovic,
-> #699, glisin> Prosto k'o pasulj!
Naravno da je prosto kad znaš, ali mišta se ne brini, krećem ja polako sa
komplikovanijim pitanjima.:)
Pozdrav, Dejan
unknown.708janko,
-> #702, mornar> Preporucujme Borland C++ v2.0 ili v3.0
Ako imaš velike diskove, a ovaj drugi i ako imaš bar 4M
memorije.
Ako nemaš nameru da se objektuješ, dovoljan ti je Turbo C 2.01.
Mali je, sladak, brži i od naslednika (jasno je zašto). Jedino
ima slabiji help od Borland 2.0 i 3.0. Preporučujem help iz BC
2.0.
unknown.709janko,
-> #703, d.petrovic> main š
> FILE *out;
> lin(out,20);
>ć
> lin(out,du) š
>ć
Za početak: nabavi knjigu koja opisuje ANSI C. Ti pišeš po K&R
C-u koji može opasno da te zbunjuje i nadalje. ANSI C te tera
da daklarišeš funkcije i parametre pošteno, pa verovatno se ne
bi zbunio ovako.
Kratak odgovor:
void lin(FILE* out, du )
š
...
ć
unknown.710janko,
-> #706, d.petrovic> E, postoje. Sad baš ne bih da dokazujem, ali pročitao sam
> to negde i naravno ne odnosi se na SVAKI, ti se valjda
> posebno naručuju i bla,bla...
Prvi put čujem. Ukratko, za svaki mp. sa različitim brojem
morale bi da se prave nove maske, prema kojima se nagriza
silicujumska podloga, rade dopiranja i ostvaruju električni
spojevi, što je skupo ne zna se.
Ako nađeš to, citiraj, da i ja nešto saznam...
unknown.711dragisha,
-> #701, korvinű> Gospodo, uskoro zaplovljavam u vitaminske (C ) vode,
ű> interesuje me kakvo je vaše uvaženo, koji C da uzmem ? Vredi
ű> li preći na objektno prg. ?
Nisi ti toliko loš pa da zaslužiš C:). Bolje se preispitaj...
dragisha
unknown.712dragisha,
-> #710, jankoű> Prvi put čujem. Ukratko, za svaki mp. sa različitim brojem
ű> morale bi da se prave nove maske, prema kojima se nagriza
ű> silicujumska podloga, rade dopiranja i ostvaruju električni
ű> spojevi, što je skupo ne zna se.
A može se napraviti i jedinstvenom maskom sa naknadnim
ubacivanjem ser.br. spaljivanjem visokim naponom pojedinih
veza u posebnom dijelu mp kao što se radi u PROM-ovima.
dragisha
unknown.713mjova,
-> #701, korvin> Gospodo, uskoro zaplovljavam u vitaminske (C ) vode,
> interesuje me kakvo je vaše uvaženo, koji C da uzmem ?
> Vredi li preći na objektno prg. ?
pa da bi prešao na objektno programiranje prvo bi trebalo da naučiš C.
kako je C++ zaista moćan u svim pravcima, preporučujem ti borland kao
start. ver 2.0.
unknown.714glisin,
-> #708, janko
ŢŢŢAko nemaš nameru da se objektuješ, dovoljan ti je Turbo C 2.01.
Jasno, ja radim sa 2.01. Jako solidno. TC++ su prenapučeni!
ŢŢŢPreporučujem help iz BC 2.0.
Vidi ti ovo! Nemoj reći da može da se stavi HELP iz BC2.0 u direktorijum sa
TC2.0 i da ga ovaj vidi bez problema? Jel to to?
ŢŢŢIGGYŮŮŮ
unknown.715glisin,
-> #710, janko
ŢŢŢUkratko, za svaki mp. sa različitim brojem morale bi da se prave
ŢŢŢnove maske...
He, he... pa većina mikroprocesora ima serijski broj, samo što je to BAŠ BROJ
koji je nanet u završnoj fazi kod kontaktnog sloja. Maske se ne rade ponovo
jer se za VLSI obično elektronskim snopom iscrtavju sve maske po Waferu, tako
da je ser.br. lako promeniti. Inače, on se stavlja na čip zbog vizuelne
kontrole i eventualnog odbacivanja serije, etc...
E sada C: sledi da iz C-a, pa ni iz bilo kog jezika, nije moguće takav broj
pročitati jer on veze sa elektronikom nema. Jedini način da se vidi je da
slomiš pakovanje i da ga tražiš pod lupom na samom čipu. Uostalom, pogledaj
neku sliku mikroprocesora i lako se negde uz ivicu nađe nešto poput
DXFG527365HJI... to je to.
Naravno, nije isključeno ni da se u nekim slučajevima serijski broj unosi kao
neki registar (i to je lako promeniti, opet samo završna faza), ali ja za
takve procesore nisam čuo. Ako ih ima, to bi se već dalo nekako softverski i
pročitati.
ŢŢŢIGGYŮŮŮ
unknown.716d.petrovic,
-> #710, janko> Ako nađeš to, citiraj, da i ja nešto saznam...
Ufffffff, jedva nađoh ;(
Dr Jozo J. Dujmović
Programski jezici i metode programiranja
(zašto li sam ja ovo uopšte kupio;()
Naučna Knjiga ISBN 86-23-20169-8
Poglavlje 3.6 Pravni i ekonomski aspekti
Strana 3.102, Zadnji pasus
.....mogu neovlašteno iskopirati, proizvođači softvera redovno pokušavaju da
svoj softver zaštite od toga, pa pored pravne zaštite putem "copyright"-a
koriste i druge razne.....
.....sastoji se u tome da se serijski broj procesora koji je utisnut u
odgovarajući ROM prilikom fabrikacije procesora (i koji se može programski
očitati) dostavi proizvođaču softvera koji zatim taj broj upisuje (najčešće
kriptografisano) u program.....
E, sad, knjiga nije orijentisana na XT/AT, pa pitanje je da li to imaju
80x86 procesori, a pitanje je i odakle autoru knjige podaci;)
Pozdrav, Dejan
unknown.717d.petrovic,
-> #709, janko> Za početak: nabavi knjigu koja opisuje ANSI C. Ti pišeš po
> K&R
Prporuči mi neku, baš počinje da me interesuje C.
> void lin(FILE* out, du )
> š
> ...
>ć
Ovo ne radi :((
Znači ja sam ga pozvao sa:
lin(out,13);
i kompajler mi nacrta kursor na ono du i kaže expected :(((
P.S. To radi TC 1.0
unknown.718dejanr,
-> #716, d.petrovic>> E, sad, knjiga nije orijentisana na XT/AT, pa pitanje je da li to imaju
>> 80x86 procesori, a pitanje je i odakle autoru knjige podaci;)
Tvrdnja se odnosi na VAX.
unknown.719janko,
-> #714, glisin> Vidi ti ovo! Nemoj reći da može da se stavi HELP iz
> BC2.0 u direktorijum sa TC2.0 i da ga ovaj vidi bez
> problema? Jel to to?
Nisam probao da li ga razume integrisana okolina, ali ako se
instalira sa THELP-om iz 2.0 (rezidentno, daklem) naravno da
može.
Možda je neko probao i za IDE?
Inače, BC help je bolji jer ima primer programa za svaku
naredbu, za razliku od helpa za TC 2.0, koji ima samo opise.
unknown.720janko,
-> #715, glisin> koji je nanet u završnoj fazi kod kontaktnog sloja. Maske
> se ne rade ponovo jer se za VLSI obično elektronskim
> snopom iscrtavju sve maske po Waferu, tako da je
> ser.br. lako promeniti. Inače, on se stavlja na čip
> zbog vizuelne kontrole i eventualnog odbacivanja serije,
> etc...
Ne razumem se u to puno, priznajem. Sve što znam čuo sam na
nekim predmetima, koje sam već napola zaboravio... pa zato imam
još pitanja:
Kako se elektronskim snopom iscrtava nešto što se menja od čipa
do čipa? Kako se onda kontroliše taj snop? Da li su onda maske
uopšte potrebne, ako snop može da se kontroliše?
> Naravno, nije isključeno ni da se u nekim slučajevima
> serijski broj unosi kao neki registar (i to je lako
> promeniti, opet samo završna faza), ali ja za
Kako se i ovo postiže? Zar jedan registar ne čini puno puno
slojeva (svi ti tranzistori itd.)? Zar to nije malo više od
završne faze?
unknown.721janko,
-> #713, mjova> pa da bi prešao na objektno programiranje prvo bi trebalo
OOP gurui se kunu da će se na C++ lakše navići tipovi
neopterećeni predznanjem C-a. žini mi se da je to malo
ekstreman stav, ali definitivno je moguće ODMAH učiti C++, ako
ima ko da te uči!
unknown.722janko,
-> #717, d.petrovic>> Za početak: nabavi knjigu koja opisuje ANSI C. Ti pišeš
>> po K&R
>
> Prporuči mi neku, baš počinje da me interesuje C.
Pa, referentna knjiga je Brian Kernighan, Denis Ritcie, The C
Programming Language, Second Edition (ako sam sve dobro otkucao
napamet :) Postoji i prevod na srpski, u izdanju Savremene
administracije, ali je blago rečeno odvratan, a ima i tonu
bagova i u sorsovima. Ako znaš engleski, zaobiđi prevod...
Neko, možda, zna i neku knjigu koja je pristupačnija početniku?
>> void lin(FILE* out, du )>
> Ovo ne radi :((
> i kompajler mi nacrta kursor na ono du i kaže expected
> :(((
Jeste, verovatno treba
void lin( FILE* out, int du )
Nikada dosad nisam probao da smuljam u deklaraciju i K&R i ANSI
stil, pa nisam ni znao kako se kompajler ponaša. :)
Daklem, moraš SVUDA da koristiš deklaracije.
unknown.723korvin,
-> #708, janko>> Ako nemaš nameru da se objektuješ, dovoljan ti je Turbo C 2.01.
>> Mali je, sladak, brži i od naslednika (jasno je zašto). Jedino
>> ima slabiji help od Borland 2.0 i 3.0. Preporučujem help iz BC
>> 2.0.
Eh, pa ta me dilema i muči :) Ja u početku, dok ne savladam C neću da
radim sa objektima ali ne znam da li ću kasnije moći da se brzo
prilagodim Borlandu 2.0 /3.0 ?
Takođe, to sam zaboravio da priupitam, koju mi literaturu
preporučujete ?
unknown.724glisin,
-> #720, janko
ŢŢŢKako se elektronskim snopom iscrtava...
Pijuh, duga priča, ali nešto poput katodne cevi, lepo se crta slika koja je
projektovana u nekom paketu za izradu VLSI integrisanih kola po waferu.
ŢŢŢZar jedan registar ne čini puno puno slojeva (svi ti tranzistori itd.)?
ŢŢŢZar to nije malo više od završne faze?
Eto ti sad! Pa jeste, samo što se završnom maskom ostvare spojevi koji ti
trebaju i to je to. Sve se napravi, pa se onda ne poveže ono što nije potrebno
(to jest, poveže se tako da ne vise izlazi u prazno), ili se stvar izvede tako
što se upravlja emitorskim ulazima (TTL) ili gejtom (MOS). Recimo, tako se
rade MPROM memorije (Mask Programmable ROM). Evo jedne jako uprošćene verzije
sa običnim tranzistorima sa zajedničkim kolektorom (BTW, osetljivo je na
smetnje jer neke baze "vise" u prazno što nije baš zdravo):
E1 E2 E3 E4
█ █ █ █ ▄▄▄▄▄▄▄ C
┌────█─────────────█─────────────█─────────────█──────█──┐
│┌───█───┐ ┌───█───┐ ┌───█───┐ ┌───█───┐ ███ │
││┌──█──┐└────┐│┌──█──┐└────┐│┌──█──┐└────┐│┌──█──┐└────┐│
│││ ███ │ ███ │││ ███ │ ███ │││ ███ │ ███ │││ ███ │ ███ ││
││└─────┘ █ ││└─────┘ ││└─────┘ █ ││└─────┘ █ ││
│└─────────█──┘└────────────┘└─────────█──┘└─────────█──┘│
└──────────█───────────────────────────█─────────────█───┘
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ Ucc
Ovo je kombinacija 1011 na 4-bitnom registru. Kao što vidiš SAMO završni
aluminijumski sloj se razlikuje, sve ostalo ostaje isto. Naravno, ovo je gruba
verzija, ima tu još šta da se doradi (nulovanje slobodnih baza recimo) ali ovo
je principijelna šema.
Uf! E, sada smo DEFINITIVNO promašili temu! (cccc...) Ako moderatoru smeta,
neka poruku ćušne u 'razno'. ;-))))))))
ŢŢŢIGGYŮŮŮ
unknown.725d.petrovic,
-> #722, janko> Pa, referentna knjiga je Brian Kernighan, Denis Ritcie,
> The C Programming Language, Second Edition (ako sam sve
> dobro otkucao
Imam to ! :))) Ali prevod, engleski i onako ne znam :(((, sad ću da je
proučavam.
> void lin( FILE* out, int du )
>
> Nikada dosad nisam probao da smuljam u deklaraciju i K&R i
> ANSI stil, pa nisam ni znao kako se kompajler ponaša. :)
>
> Daklem, moraš SVUDA da koristiš deklaracije.
Ni to ne radi !? :(((
Zanemarili smo prvi deo, kako se sad to pa poziva ?
Inače neće biti mnogo smuljano jer je to program od oko 400-500 redova sa
<15 funkcija. Samo dok još malo izbistrim literaturu i srediću i te detaljčiće.
Znači sredi mi sad kompletni problem (verovatno je problem u pozivu
funkcije) !?
void main () š /* Da li mi svud ovde treba void ? */
Obrazac();
ć
void obrazac() š
FILE *out;
out=fopen("PROBA.TXT","wt");
fprintf(out,"Testiranje");
lin(out,20); /* Verovatno je sad problem ovde */
ć
void lin(FILE *out,int du) š
int br;
for(br=0;br<=du;++br)
fprintf(out,"-")
ć
Pozdrav, Dejan
unknown.726spantic,
-> #717, d.petrovic
> Prporuči mi neku, baš počinje da me interesuje C.
Mikro knjiga je izdala sjajnu knjigu "Programiranje u Cu". Po meni je mnogo
jasnija od K&R standarda Ca koji na srpskom postoji u dva izdanja: prvim
izdanjem i drgim u kome je ANSI C. K&R je pisan bukvalno za programere koji
sada treba da pređu na C. Jedina kvaka je cena od 4500 dinara.
unknown.727prvul,
-> #703, d.petrovicŮlin(out,du) š
Ů▄▄▄
lin(FILE *out, int du) {
Ů int br;
Ů▄▄▄
Fuj to!
I još nešto. Ne znam u čemu radiš, ali ako je npr. turbo C ili TC++,
onda u opcijama kopajlera opciju Source treba staviti na ANSI C, ili
TC++, a nikako na K&R, ako hoćeš da ti ovo radi.