pascal.516.bale.,
-> #514, paki> Ne, definicija mu je i*i=(-1).
? Pa ja sam živeo u zabludi decenijama... :)
pascal.517dr.grba,
-> #514, paki>> Ne, definicija mu je i*i=(-1).
Rekao bih da nisi u pravu. Definicija imaginarne jedinice jeste
"kvadratni koren iz -1". Formalno, ono što ti nazivaš definicijom
nema logičku osnovu, pošto koristiš broj i da bi izveo -1. Ne ide
tako, broj i moraš da imaš kao izvedenu vrednost.
pascal.518ilazarevic,
-> #511, eagle> možeš ga pozivati kao običan metod. Izvan svog unita privatni
> metodi i polja su nedostupni.
Hm, nisam baš najbolje shvatio :) Kad iz svog programa pozivam neki unit, da
li mogu da koristim privatne metode tog unita?
pascal.519paki,
-> #517, dr.grba>>> Ne, definicija mu je i*i=(-1).
>
> Rekao bih da nisi u pravu. Definicija imaginarne jedinice jeste
> "kvadratni koren iz -1". Formalno, ono što ti nazivaš definicijom
> nema logičku osnovu, pošto koristiš broj i da bi izveo -1. Ne ide
> tako, broj i moraš da imaš kao izvedenu vrednost.
Evo, citat (dobro, nije baš citat :) iz moje sveske:
"Treba rešiti jednačinu x^2=-1. Uzmimo i takvo da je i^2=-1. ..."
Jedino ako profesori iz MG loše predaju.
Inače, ovo učim u drugoj godini. Možda se kasnije menja
definicija (tj. proširuje), ali ne verujem.
pascal.521eagle,
-> #517, dr.grba> Rekao bih da nisi u pravu. Definicija imaginarne jedinice jeste
> "kvadratni koren iz -1". Formalno, ono što ti nazivaš
> definicijom nema logičku osnovu, pošto koristiš broj i da bi
> izveo -1.
Broj i je jedno rešenje jednačine sqr(x) + 1 = 0, iliti
broj sa osobinom da je sqr(i) = -1. Pošto jednačina ima
dva rešenja, (0,1) i (0,-1), uzima se da je i po definiciji
kompleksan broj (0,1).
pascal.522eagle,
-> #519, paki> Evo, citat (dobro, nije baš citat :) iz moje sveske:
> "Treba rešiti jednačinu xž2=-1. Uzmimo i takvo da je iž2=-1.
Ovo je sasvim ispravno. Na primer, x=sqrt(-5) se rešava
Ovako: A ne ovako:
x=sqrt(-5) x=sqrt(-5)
x=sqrt(sqr(i)*5) x=sqrt(-1)*sqrt(5)
x=i*sqrt(5) x=i*sqrt(5)
pascal.520eagle,
-> #518, ilazarevic> Hm, nisam baš najbolje shvatio :) Kad iz svog programa pozivam
> neki unit, da li mogu da koristim privatne metode iz tog unita?
Ne možeš.
pascal.523nikac,
-> #498, dragisha>■ Dalje, TS Pas kompajlira u .OBJ, veže se sa C, C++, M2, ASM,
>■ ima memorijske modele (+overlay +DLL za DOS), OOP... Zauzima
>■ par megabajta zajedno sa IDE. Ima i TP2TS.
Sve sto si nabrojao ima i BP7.0 ... (naravno bez tp2ts ;)
pascal.524nikac,
-> #478, pedjak>■> Teorema: Svaki polinom sa realnim koeficijentima ima jednu
>■> kompleksnu nulu.
>■
>■ Ne. Teorema glasi: Svaki kompleksan polinom P, dg P ˛1 ima bar
>■ jedan koren.
Jok more vec je debelijencija u pravu. Ako imas nesto protiv toga
zali profesorima iz Univerzitetu u Beogradu. Tacnije u
zvanicnom udzbeniku gorepomenutog univerziteta, konkretno
pise sledece(crno na belom):
"Glavni stav algebre: Svaki polinom mora imati jedan koren, realan
ili kompleksan"
BTW. toliko o onoj raspravi da polinom ima nule a ne korene ;)
pascal.525dragisha,
-> #510, dejanr-> >> žuo sam nešto da osvajaju tehnologiju TPU-a, i krešu opcije za rad sa
-> >> memorijskim modelima da se koliko toliko približe Turbo Pascalu:).
->
-> Neka naprave da prevodi onoliko brzo koliko turbo pascal, pravi kod
-> jednake dužine i da se taj kod jednako brzo izvršava, pa da pričamo
-> dalje.
Zašto jednake dužine, zar nije fora da je kraće a brže?:) A brzina
kompilacije mi je sasvim dovoljna. Za vrijeme za koje mi prevede 600 Kb i
pametno ga ulinkuje (da! postoji i smart link bez .TPU) ne mogu do WCa da
odem kako treba. Osim toga, za onolike optimizacije, TRUE! .OBJ, vezu na
TRUE! .LIB itt mogu da mu oprostim i manju brzinu kompiliranja/linkovanja.
Osim toga, standard je standard. Meni PC nije vrhunska ambicija pa da se
ubijam sa TP.
BTW, koju si ono verziju TS ti evaluirao svojevremeno?
--
[Tagline Disabled]
pascal.526dragisha,
-> #515, vitez.koja-> #=> Bilo bi zanimljivo da nam daš neki konkretan primjer kad
-> #=> ti već nije teško. Ja nemam ideje:).
->
-> Pointerska aritmetika, na primer.
Fakat je nema, ali je fakat i da za njome nema previše potrebe. Većinu
stvari koje se odrađuju pointerskom aritmetikom dobar optimizator će tako i
uraditi ali programer neće morati da vodi računa o tome. Dobar primjer je
ona poruka u dizajn temi od DejanR-a. Svaki C programer će da potrči i to
radi pointerskom aritmetikom, jer TAKO TREBA:), a svaki Pascal programer
će razmisliti par sekundi i odraditi ugnježđeni FOR i točka.
Nagradno pitanje, šta je čitljivije? Dvije for petlje ili neka
skalamerija sa pointerima?
--
[What is the meaning of life in 50 words or less]
pascal.527uobradovic,
Da li je problem da se na Turbo Pascalu naprave padajuci meniji i da se opcije
skroluju.Ako neko ima algoritam nek ga posalje.
Hvala :)
pascal.528peca.st,
-> #527, uobradovic!-> Da li je problem da se na Turbo Pascalu naprave padajuci meniji i
!-> da se opcije skroluju.Ako neko ima algoritam nek ga posalje.
Što bi ti neko slao nešto što već imaš, a nisi svestan da imaš? ;)
To se zove Turbo Vision i mnogo je dobra stvar. :) Sastavni je
deo Turbo Pascal-a.
Ako ti se to ne svidi (malkice je komplikovan za upotrebu) imaš u
dir-u neke unite za to. (recimo, tot*.*) Ako ti se i to ne svidi,
onda piši sam. :)
Peđa.
pascal.529pedjak,
-> #524, nikac>>■ Ne. Teorema glasi: Svaki kompleksan polinom P, dg P ˛1 ima bar
>>■ jedan koren.
> Jok more vec je debelijencija u pravu. Ako imas nesto protiv toga
> zali profesorima iz Univerzitetu u Beogradu. Tacnije u
Hm, teoremu sam prepisao iz Matematike I (ETF), pa sad ako oni lažu
mene... :) MIslim da sam ipak u pravu...
pascal.530dragisha,
-> #523, nikac-> >■ Dalje, TS Pas kompajlira u .OBJ, veže se sa C, C++, M2, ASM,
-> >■ ima memorijske modele (+overlay +DLL za DOS), OOP... Zauzima
-> >■ par megabajta zajedno sa IDE. Ima i TP2TS.
->
-> Sve sto si nabrojao ima i BP7.0 ... (naravno bez tp2ts ;)
Super. Ima i ISO i zauzima 2 mb na disku?
--
[Castration takes balls.]
pascal.531uobradovic,
-> #528, peca.st -> To se zove Turbo Vision ....
Ja znamda imam Turbo Vision i da je on zatakve sari i pravljen.Problem je u
tome sto ja neznam da rad.Vision - u.
A sto se ttot*.* gde ti se to nalaz.
Uros :)
pascal.532uobradovic,
-> #531, uobradovic Izvinite na greskama pri kucanju.
pascal.533dejanr,
-> #530, dragisha>> > Sve sto si nabrojao ima i BP7.0 ...
>>
>> Super. Ima i ISO i zauzima 2 mb na disku?
Zauzima 5-6 mega ako se instalira samo DOS verzija. Deo od toga su
HELP-ovi i druga on-line dokumentacija. Ako hoćeš i Windows, onda
zauzima dosta više, jer ima raznoraznih alatki.
A što se tiče ISO kompatibilnosti, ja za nju ne dajem ni koliko
crno pod noktom. Ako nećeš da koristiš ekstenzije, ne moraš da ih
koristiš. Ako ti trebaju, tu su. Doduše, tako program neće raditi
na platformama na kojima ne postoji Turbo/Borland Pascal... pa šta,
ne mora ni da radi. Ako nekome treba program za razne platforme,
dakle neki potencijalno veoma obiman projekat, verovatno će ga i
tako raditi u C++-u.
pascal.534vitez.koja,
-> #526, dragisha#=> Fakat je nema, ali je fakat i da za njome nema previše potrebe.
Kako god kažeš...
pascal.535djelovic,
-> #526, dragisha> Fakat je nema, ali je fakat i da za njome nema previše potrebe. Većinu
> stvari koje se odrađuju pointerskom aritmetikom dobar optimizator će tako i
> uraditi ali programer neće morati da vodi računa o tome.
Ne verujem da i jedan Pascal/Modula-2 komp ajler ima optimizator koji
bi to uradio. Dakle, C još uvek vlada na polju brzine. (BTW, i turbo Turbo
Paskal ima pointersku aritmetiku, mada nisam video još nijedan program koji
bi je koristio.)
Ono gde današnji optimizatori mogu da pomognu jeste zaista nepotrebno
pokovanje više izraza u jedan što većina C programera i danas radi. To
stvara nečitljiv kod, a, zahvaljujući optimizaciji, potpuno je nepotrebno.
pascal.536isekulovic,
-> #527, uobradovic>> Da li je problem da se na Turbo Pascalu naprave padajuci meniji i da
>> se opcije skroluju.Ako neko ima algoritam nek ga posalje.
Da je problem i nije, da imam proceduru i nemam. Prvo pogledaj unit
tpw60 koji ima procedure za crtkanje prozora i pravljenje menija
(neskrolujićih). Procedure za prozore su sasvim ok, a procedura za meni
je malo bagovita ako se otvori više prozora i ne podržava miša. Ja sam
napisao svoju proceduru za menije (neskrolujuće) ali nije baš mnogo
prenosiva. Osnovna ideja mi je bila da se proceduri proslede: koordinate
prozora, niz od N stringova i broj opcija. Pri čemu je N gornja granica
koliko može da se uzme opcija. I onda iscrtkaš prozor na tim koordinatama
i iz niza stringa ispišeš onoliko opcija koliko treba. Onda tu ide klasično
gore-dole vrćenje opcija dok se ne izabere jedna i onda smestiš broj te
opcije u neku globalnu promenljivu. Ne bi trebalo da bude ništa komplikovanije
napisati proceduru za skrolujuće menije, samo bi malo složenije bilo
kretanje gore-dole kroz opcije ali nije uopšte neizvedivo.
pascal.537bearboy,
-> #523, nikac>> ■ Dalje, TS Pas kompajlira u .OBJ, veže se sa C, C++, M2, ASM,
>> ■ ima memorijske modele (+overlay +DLL za DOS), OOP... Zauzima
>> ■ par megabajta zajedno sa IDE. Ima i TP2TS.
>
> Sve sto si nabrojao ima i BP7.0 ... (naravno bez tp2ts ;)
Da, ali je n puta veći (gde n teži beskonačnom), glomazniji, etc. :)
pascal.538dragisha,
-> #535, djelovic-> Ne verujem da i jedan Pascal/Modula-2 komp ajler ima optimizator koji
-> bi to uradio. Dakle, C još uvek vlada na polju brzine. (BTW, i turbo
-> Turbo Paskal ima pointersku aritmetiku, mada nisam video još nijedan
-> program koji bi je koristio.)
Dobro ako ne vjeruješ. :)
Jedan primjer, prije par sati sam pričao sa Janevom iz ISP. Kaže, imali
su neki algoritam za ray tracing urađen u TP. Onda su iz zezanja stvar
preveli (prilagodili) u TS Pas i dobili su ubrzanje od 104%. U pitanju je
računanje sa ispisom rezultata u fajl. Toliko i o superiornosti TP koda,
BTW.
Drugi primjer, upravo sam pročitao tvoju poruku o Zortech C++. Kojom
crnom magijom, ako već nije moguće boljim optimizacijama, postižu toliko
bolje rezultate od konkurencije?:))
Zaključak. Oblast optimizacije nije ni blizu zasićenja tako da prostora
za ogromne razlike ima i biće još dugo.
Prijedlog, hoćemo li da nađemo te primjere kojima bismo koliko toliko
smisleno mogli da izmjerimo sposobnosti pojedinih kompajlera na
tržištu i pojedinih jezičkih konstrukcija i da utvrdimo ili pobijemo
postojanje razlika u tehnologijama koje pojedine firme/jezici koriste?
--
[I'm like a bad TSR; I keep popping up!]
pascal.539dragisha,
-> #533, dejanr-> ne mora ni da radi. Ako nekome treba program za razne platforme,
-> dakle neki potencijalno veoma obiman projekat, verovatno će ga i
-> tako raditi u C++-u.
Pravovremena procjena? Previše često se ne desi na vrijeme. Ne rade se
projekti baš uvijek sa pravovremenim saznanjem o kompleksnosti ili o
konačnom izgledu proizvoda.
Osim toga, code reuse je u zadnje vrijeme vrlo moderna stvar a njome se u
suštini stimuliše sticanje "štetnih" navika. Jako teško će se odlučiti na
mijenjanje alata neko ko već ima dosta razvijenog koda koji može da
iskoristi u svakom novom projektu pod uslovom da ne mijenja jezik.
--
[Never smirk at the judge..]
pascal.540dragisha,
-> #534, vitez.koja-> #=> Fakat je nema, ali je fakat i da za njome nema previše potrebe.
->
-> Kako god kažeš...
Na moje pitanje (konkretna prednost C-a) si odgovorio sa "pointerska
aritmetika". Pošto sam imao priliku da istu koristim kao i da se snalazim
bez nje, napisao sam šta sam napisao.
Imaš li primjer koda koji pointerska aritmetika ubrzava toliko da se to
osjeti ako pokušaš u nečemu drugom da uradiš isti posao?
U svakoj knjizi gdje se spominje optimizacija (preporučujen Dragon Book)
možeš vidjeti da su tehnike preveslavanja "običnih" indeksiranja na
pointersku aritmetiku odavno sastavni dio optimizatora koda.
--
[Boys and girls, can you say BUGGY???]
pascal.541djelovic,
-> #538, dragisha> Zaključak. Oblast optimizacije nije ni blizu zasićenja tako da prostora
> za ogromne razlike ima i biće još dugo.
Naravno da nije! Ja sam samo rekao da je današnji PC kompajleri rade
loše ili nikako.
> Prijedlog, hoćemo li da nađemo te primjere kojima bismo koliko toliko
> smisleno mogli da izmjerimo sposobnosti pojedinih kompajlera na
> tržištu i pojedinih jezičkih konstrukcija i da utvrdimo ili pobijemo
> postojanje razlika u tehnologijama koje pojedine firme/jezici koriste?
Prihvaća se!
Dodouše, ja koristim C++ zato što mi odgovara kao jezik, i teško da bi
se vratio na nešto drugo i ostao bez objekata, preklapanja operatora i
sličnih poslastica, tako da mi brzina i nije mnogo bitna (20 posto
tamo-vamo korisnik retko kada primeti).
No, slažem se da je došlo kranje vreme da se utvrde gde koji današnji
kompajleri i jezici stoje. Mogli bi čak da napravimo od toga neki lep
članak za "Računare"? Evo, ja ću da pokrijem C/C++, ti TS Pascal, traži se
još neko ko radi na BP 7.0.
pascal.542djelovic,
-> #538, dragisha> Drugi primjer, upravo sam pročitao tvoju poruku o Zortech C++. Kojom
> crnom magijom, ako već nije moguće boljim optimizacijama, postižu t oliko
> bolje rezultate od konkurencije?:))
Ne znam, nisam ga lično probao.
Par puta sam se zeznuo sa alatima manjih firmi koji su na prvi
pogled izgledali mnogo dobro ali su se u praksi pokazali kao nepouzdani i
bagoviti pa se sada veoma teško odlučujem da kupim nešto što nije apsolutno
provereno. Dakle, dok ne počne veća količina ljudi da ih koristi teško da
ću i ja.
Takođe, sećam se da su mnoge firme svojevremno davale benčmarke u
kojima se pokazivalo da su neuporedivo bolji od Borlanda ili Microsofta,
ali je to uvek u realnim uslovima ispadalo netačno. Ili su oni radili sa
"naštelovanim" merenjima, ili nisu podržavali IEEE standarde za brojeve sa
pokretnim zarezom, ili nešto slično, u svakom slučaju - Borland i Microsoft
su uvek ispadali bolji. No, kao što rekoh u prethodnoj poruci, sasvim sam
rad da napravimo test i utvrdimo tačno o čemu se radi.
pascal.544zolika,
-> #510, dejanr
>> Neka naprave da prevodi onoliko brzo koliko turbo pascal, pravi kod
>> jednake dužine i da se taj kod jednako brzo izvršava, pa da pričamo
>> dalje.
Samo mi nije jasno zašto da TopSpeed ubuduće pravi SPORIJE programe
nego sada?
pascal.545zolika,
-> #503, kriss>> GDE može da se nabavi to čudo?
TopSpeed Paskal je deo višejezičnog TopSpeed okruženja (tako nekako).
pascal.543zolika,
-> #500, dejanr
Dragišo, drž' se.
>> Recimo, stalno unapređujući TopSpeed Modulu 2, kroz dvadesetak godina će,
>> ako se potrude, imati proizvod koji vredi onoliko koliko danas vredi
>> Turbo Pascal ;>
Hm, DejanRe, jesi li probao da nešto programiraš na TopSpeed Moduli-2?
pascal.546dejanr,
-> #543, zolika>> Hm, DejanRe, jesi li probao da nešto programiraš na TopSpeed Moduli-2?
Pre jedno tri godine želeo sam da dam šansu Moduli 2. Mislio sam da je
to jezik na koji bih mogao da pređem, da omogućava produktivnije
programiranje nego paskal, dosta raspoloživih biblioteka itd, a opet da
i dalje bude "strog" jezik, za razliku od C-a. U taj test uložio sam
nekih mesec dana vremena, plus pare za kupovinu (verovali ili ne :) dve
implementacije Module (Logitech i JPI). Završio sam teško razočaran kako
u jezik tako (pogotovu) u implementacije, koje su se po svim parametrima
pokazale imferiornim u odnosu na tadašnji Turbo Pascal. Bilo je, naravno,
i sitnih prednosti (recimo, mogućnost generisanja .OBJ fajlova, za razliku
od "slepog creva" kao što je TPU) ali je ono sa minus strane daleko
pretezalo nad onim sa plus strane. Onda sam uradio potreban broj XRD-ova
i zaboravio na Modulu 2.
Možda su u međuvremenu napravili neke bolje implementacije (mada je i
TP napredovao... :) ali ja nemam ni vremena ni novca da ih ponovo
isprobavam.
U zadnje vreme sve više koristim C, mada sam i dalje mišljenja da Turbo
Pascal-u nema premca kada treba nešto brzo isprogramirati, testirati,
dati u upotrebu i onda "zaboraviti". Ukoliko se, naravno, to nešto baš
nikako ne može napisati na Clipper-u ;))))
pascal.547spantic,
-> #541, djelovic> No, slažem se da je došlo kranje vreme da se utvrde gde koji današnji
> kompajleri i jezici stoje. Mogli bi čak da napravimo od toga neki lep
Ja mislim da bi mogli da se obratite profesoru Jozi Dujmoviću,
popularnom Hozeu :) koji je sada trenutno u Masačusetsu, čak iako
Dejan baš i nema mnogo lepe uspomene na njega :)) Joza je baš
pre godinu dana počeo merenje perfomansi prevodilaca na MSDOS
platformi. Dosad je sigurno završio. Pošto smo mu odavde slali
test primerke ovo što ste nabrojali je sigurno pokrio.
pascal.548vitez.koja,
-> #540, dragisha#=> Imaš li primjer koda koji pointerska aritmetika ubrzava
#=> toliko da se to osjeti ako pokušaš u nečemu drugom da
#=> uradiš isti posao?
Nemam, još sam mlad i zelen.
#=> možeš vidjeti da su tehnike preveslavanja "običnih"
#=> indeksiranja na pointersku aritmetiku odavno sastavni
#=> dio optimizatora koda.
Ti mi daješ za pravo... Operacije sa nizovima se svode na pointersku
aritmetiku, na ovaj ili onaj način. Da li je bolje da su takve suštinske
tehnike dostupne programeru, ili ne ? Pitanje koncepcije...
Imao sam, skoro, situaciju da treba da "protrčim" kroz niz bajtova (TPW), koji
treba prethodno da napunim sa blockread. Ako tu strukturu deklarišem kao niz,
onda ne mogu da je iskoristim za blockread - jer ovaj traži pointer. Ako
definišem to kao pointer i s njim alociram potrebnu memoriju onda nema
indeksiranja :((
pascal.549bearboy,
-> #538, dragisha> Jedan primjer, prije par sati sam pričao sa Janevom iz ISP.
> Kaže, imali su neki algoritam za ray tracing urađen u TP. Onda
> su iz zezanja stvar preveli (prilagodili) u TS Pas i dobili su
> ubrzanje od 104%. U pitanju je računanje sa ispisom rezultata u
> fajl. Toliko i o superiornosti TP koda,
Mada se može desiti i obrnuto. Ja sam moj seminarski rad u Petnici
"preveo" iz TP u TSP i usporilo se oko 5-6 puta (!!!). Ako se dobro sećam,
glavni razlog je bila sporija (ali preciznija) funkcija RND-a u TSP-u.
pascal.550igors,
Da li zanate kako mogu ucitati bilo koji graficki format iz Paskala,
ako ste to uspeli javite mi, pokusavao sam sa fajlovima sa Sezama ali nisam
uspeo jer im je uvek nesto nedostajalo.
Igor Stankovic
pascal.551vita,
-> #523, nikac> Sve sto si nabrojao ima i BP7.0 ... (naravno bez tp2ts ;)
Kako pravis OBJ keve ti?
pascal.552vita,
-> #541, djelovic> kompajleri i jezici stoje. Mogli bi čak da napravimo od toga
> neki lep članak za "Računare"? Evo, ja ću da pokrijem C/C++, ti
> TS Pascal, traži se još neko ko radi na BP 7.0.
Watcom C 386 pokriven.
Vita
P.S. A mogli bi i bugove da uporedjujemo.
pascal.553vita,
-> #549, bearboy> Mada se može desiti i obrnuto. Ja sam moj seminarski rad u
> Petnici "preveo" iz TP u TSP i usporilo se oko 5-6 puta (!!!).
> Ako se dobro sećam,
Idi bre Atila, pa to mi nikada nisi pokazo...
Ajde bre da ih testiramo.
Vita
pascal.555dragisha,
-> #541, djelovic-> Prihvaća se!
Super:).
-> No, slažem se da je došlo kranje vreme da se utvrde gde koji današnji
-> kompajleri i jezici stoje. Mogli bi čak da napravimo od toga neki lep
-> članak za "Računare"? Evo, ja ću da pokrijem C/C++, ti TS Pascal, traži
-> se još neko ko radi na BP 7.0.
Prvo primjeri, tj. kodovi koje neće biti problem portovati i koji nisu
trivijalni. Ja ću da probam TS M2, Pascal, C i C++. Predlažem više
primjera, a ne samo sieve i slične. Napravićemo EXEe i UL ih ovdje tako da
može svako da proba na svojoj mašini svaki test.
--
[I AM standing.]
pascal.557dragisha,
-> #546, dejanr-> i dalje bude "strog" jezik, za razliku od C-a. U taj test uložio sam
-> nekih mesec dana vremena, plus pare za kupovinu (verovali ili ne :) dve
-> implementacije Module (Logitech i JPI). Završio sam teško razočaran kako
Sjećam se pomalo tog testa, čini mi se da si imao TS 2.nešto. Razlika
između TS 2 i 3 je kao između TP 4.5 i BP 7.0, otprilike.:)
-> i sitnih prednosti (recimo, mogućnost generisanja .OBJ fajlova, za
-> razliku od "slepog creva" kao što je TPU) ali je ono sa minus strane
-> daleko pretezalo nad onim sa plus strane. Onda sam uradio potreban broj
-> XRD-ova
Koji je to broj bio, da se podsjetimo? I šta je bilo na minus strani kad
je toliko preteglo?
-> Pre jedno tri godine želeo sam da dam šansu Moduli 2. Mislio sam da je
Kad vidim šta misliš o 4dos, telemate i sličnima i koliko radiš u
Klipanu, možda je i dobro za naše malo društvo što si se obeshrabrio "na
vrijeme".:))
--
[OOPS: Not just for klutzes anymore]
pascal.556dragisha,
-> #549, bearboy-> Mada se može desiti i obrnuto. Ja sam moj seminarski rad u Petnici
-> "preveo" iz TP u TSP i usporilo se oko 5-6 puta (!!!). Ako se dobro
-> sećam, glavni razlog je bila sporija (ali preciznija) funkcija RND-a u
-> TSP-u.
To nema veze sa alatom, kao što si sam pojasnio. Primjer koji mi je dao
Janev je čist algoritam, jedino što se poziva iz biblioteke je ispis u
sekvencijalnu datoteku.
--
[In Case of Fire, Log off Promptly]
pascal.554dragisha,
-> #548, vitez.koja-> #=> možeš vidjeti da su tehnike preveslavanja "običnih"
-> #=> indeksiranja na pointersku aritmetiku odavno sastavni
-> #=> dio optimizatora koda.
->
-> Ti mi daješ za pravo... Operacije sa nizovima se svode na pointersku
-> aritmetiku, na ovaj ili onaj način. Da li je bolje da su takve suštinske
-> tehnike dostupne programeru, ili ne ? Pitanje koncepcije...
Ne dajem ti za pravo. Kažem, ako to već kompajler radi sam, bolje je
da ja ipak svoj dio posla radim na "malo" višem nivou.
Slijedeći gornju logiku, pravi izbor je asembler jer tamo BAŠ sve možeš (i
moraš, BTW:)) da uradiš direktno.
-> Imao sam, skoro, situaciju da treba da "protrčim" kroz niz bajtova
-> (TPW), koji treba prethodno da napunim sa blockread. Ako tu strukturu
-> deklarišem kao niz, onda ne mogu da je iskoristim za blockread - jer
-> ovaj traži pointer. Ako definišem to kao pointer i s njim alociram
-> potrebnu memoriju onda nema indeksiranja :((
TPW. Zar treba nešto više da se kaže?:)
Postoji sigurno i u TP nešto što vraća adresu proizvoljnog objekta čime
si mogao da odradiš posao. Osim toga, postoji i POINTER TO ARRAY [...], tj.
kako se već piše u TP. Sve u svemu, rješenja ima raznih, a nek to mašina
radi low level, tj. pointerskom aritmetikom.
-> Nemam, još sam mlad i zelen.
Nisi još izgubljen, misli na sebe dok imaš vremena:). Gre'ota je za
matematičara da se zamlaćuje Com:).
--
[Ahhhhhhhh, I forget what I was going to say ....]
pascal.559dejanr,
-> #557, dragisha>> > U taj test uložio sam nekih mesec dana vremena, plus pare za
>> > kupovinu (verovali ili ne :) dve implementacije Module (Logitech
>> > i JPI). Završio sam teško razočaran kako
>>
>> Sjećam se pomalo tog testa, čini mi se da si imao TS 2.nešto.
Imao sam tekuće verzije svih kompajlera koje su postojale na tržištu.
Teško sam mogao porediti ondašnji TP sa nekom M2 koja će da izađe kroz
tri godine ;)
>> I šta je bilo na minus strani kad je toliko preteglo?
Već N puta sam rekao, ali ajmo još jednom:
(1) sporije kompajlira (u odnosu na tada aktuelni TP)
(2) pravi duži EXE fajl (u odnosu na tada aktuelni TP)
(3) EXE fajl se sporije izvršava ( -"- )
Meni više od toga ne treba.
Da bih prešao na tu platformu, uslov bi bio da po sva tri pomenuta uslova
ona postiže *znatno* bolje rezultata.
>> Kad vidim šta misliš o 4dos, telemate i sličnima i koliko radiš u
>> Klipanu, možda je i dobro za naše malo društvo što si se obeshrabrio
>> "na vrijeme".:))
Da... ovako nema ko da vam razbije iluzije o tome na šta ste sebe
osudili ;>
Inače, što se "klipana" tiče, ja ne krijem da kada programiram, uglavnom
programiram *za pare*. Dakle, najbolji jezik je onaj koji mi omogućava da
to što radim obavim najlakše, najbrže i sa najmanje problema. Kada bi jednom
programiranje na M2 bilo isplativije od programiranja na Clipper-u i C-u
(prema ranije pomenutim uslovima), o'ma bi prešao na nju.
pascal.560vitez.koja,
-> #554, dragisha#=> Slijedeći gornju logiku, pravi izbor je asembler jer
#=> tamo BAŠ sve možeš (i moraš, BTW:)) da uradiš direktno.
Naravno, asembler je pravo rešenje :) Svrha kompajlera je lakše pisanje
programa, a ne "bolji mašinac od mašinca" ;)
pascal.561niklaus,
-> #549, bearboy(:> Mada se može desiti i obrnuto. Ja sam moj seminarski rad u Petnici
(:> "preveo" iz TP u TSP i usporilo se oko 5-6 puta (!!!). Ako se
(:> dobro sećam, glavni razlog je bila sporija (ali preciznija)
(:> funkcija RND-a u TSP-u.
Šta si pravio? Pogađanje brojeva? (;
(:niklaus:)
pascal.562dragisha,
-> #559, dejanr-> Imao sam tekuće verzije svih kompajlera koje su postojale na tržištu.
-> Teško sam mogao porediti ondašnji TP sa nekom M2 koja će da izađe kroz
-> tri godine ;)
Pitao sam te za verziju da bih sam pokušao da se prisjetim kako je to
zaista izgledalo i da uradim sam poređenja. Ti si tada dao jedan primjer, a
poznata je stvar kako se gleda na takve testove, tj. kako se komentarišu
reklame u kojima se da jedan primjer i tu je kraj.
-> >> Kad vidim šta misliš o 4dos, telemate i sličnima i koliko radiš u
-> >> Klipanu, možda je i dobro za naše malo društvo što si se obeshrabrio
-> >> "na vrijeme".:))
->
-> Da... ovako nema ko da vam razbije iluzije o tome na šta ste sebe
-> osudili ;>
? Trudio sam se, ali ovo je zaista neprobojno za mene. Šta s' hotio
rijet?:)
--
[Bill Gates, have 'em write _real_ code...]
pascal.563dejanr,
-> #562, dragisha>> > Imao sam tekuće verzije svih kompajlera koje su postojale na tržištu.
>> > Teško sam mogao porediti ondašnji TP sa nekom M2 koja će da izađe kroz
>> > tri godine ;)
>>
>> Pitao sam te za verziju da bih sam pokušao da se prisjetim kako je to
>> zaista izgledalo i da uradim sam poređenja.
Tekstovi su objavljeni u "Računarima" 52, 54 i 55. Mislim da je JPI Modula
2 bila u verziji 1.12, Logitech modula 2 3.30 a Turbo Pascal 5.0. Možda
sam kod neke od tih cifara pogrešio, teško se setiti precizno posle četiri
godine.
Razlike nisu bile takve da bi se uopšte moglo govoriti o nijansama. Recimo,
TP je prevodio pola sekunda, Logitech pola minuta a JPI "negde između",
recimo 10-15 sekundi. TP je napravio duplo kraći EXE od JPI, i izvršavao
se valjda 3 puta brže. Međusobno poređenje dve Module pokazalo je da JPI
brže prevodi, ali daje sporiji kod.
Programi su takođe isprobani na velikom projektu, reda megabajt izvornog
koda. Komercijalne biblioteke namenski pisane za Turbo Pascal, Logitech
i JPI modulu 2. Odnosi što se tiče brzine prevođenja bili su još bolji,
u korist Turbo Pascala.
>> tj. kako se komentarišu reklame u kojima se da jedan primjer i tu je
>> kraj.
Reklama je ono što daje proizvođač, ovo je bio nezavisan i nepristrasan
tekst. Izvoli nađi bilo kakav primer u kome se pokazuju suprotni odnosi.
pascal.564lovro,
Kako da proveravam da li su stisnuta dva dugmeta istovremeno:
strelica gore i strelica desno, na primer.
Lovro
pascal.565peca.st,
-> #564, lovro!-> Kako da proveravam da li su stisnuta dva dugmeta istovremeno:
!-> strelica gore i strelica desno, na primer.
Zar je moguće stisnuti dva dugmeta _istovremeno_ ?
(a da to nije kombinacija sa alt ili ctrl)
Mislim da je jedini način da gledaš vremenski razmak između pritiska
na ta dva tastera, pa ako je manji od zadatog epsilon ;>>>
onda su pritisnuti "istovremeno".
Peđa.
pascal.566mjova,
-> #564, lovro> Kako da proveravam da li su stisnuta dva dugmeta
> istovremeno: strelica gore i strelica desno, na primer.
moraš napraviti novu int 9 rutinu.
pascal.567eagle,
-> #564, lovro> Kako da proveravam da li su stisnuta dva dugmeta istovremeno:
> strelica gore i strelica desno, na primer.
Ako ne postoji bolji način, možeš da dodeliš svakom tasteru
po jedan ON/OFF flag za proveru da li je pritisnut ili ne.
Onda na početku programa postaviš sve na OFF, i okačiš na
int 9 proceduru koja ih postavlja/ukida.
pascal.568lovro,
Od cega je kod 9Ch (inline($9C);)?
Koja vrednost ostaje u portu[$60] posle otpustanja dugmeta?
A za proveravanje da li su stisnuta dva odjednom ima sledeci problem:
| Port[$60]
-----------------------------------+------------------------------
pritisnem 'gore' | 72
drzim 'gore', pritisnem 'levo' | 75
otpustim 'gore' | 75
-----------------------------------+------------------------------
Kao sto vidimo, iz porta 60 se ne vidi da li je otpusteno dugme
koje je prvo pritisnuto. Medjutim, da sam u trecem koraku otpustio
'levo' umesto 'gore', u portu bi se pojavio neki _teskoprovaljivi_
bajt...
Lovro
pascal.569v.nesic,
-> #565, peca.st> Mislim da je jedini način da gledaš vremenski razmak između pritiska
> na ta dva tastera, pa ako je manji od zadatog epsilon ;>>>
Jel' si ti nekada igrao neku igricu preko tastature?
pascal.570eagle,
-> #568, lovro> Od cega je kod 9Ch (inline($9C);)?
pushf
> Koja vrednost ostaje u portuŠ$60Ć posle otpustanja dugmeta?
Vrednost veća za 128 od vrednosti za isto pritisnuto.
> A za proveravanje da li su stisnuta dva odjednom ima sledeci
> problem: Kao sto vidimo, iz porta 60 se ne vidi da li je
> otpusteno dugme koje je prvo pritisnuto. Medjutim, da sam
> u trecem koraku otpustio 'levo' umesto 'gore', u portu bi
> se pojavio neki _teskoprovaljivi_ bajt...
Vidi se u jednom trenutku, i onda tastatura nastavi da šalje
signal za ono drugo (poslednje pritisnuto). Dovoljno da ga
tvoja procedura iskljuci.
pascal.572bearboy,
-> #553, vita>> Mada se može desiti i obrnuto. Ja sam moj seminarski rad u
>> Petnici "preveo" iz TP u TSP i usporilo se oko 5-6 puta (!!!).
>> Ako se dobro sećam,
>
> Idi bre Atila, pa to mi nikada nisi pokazo...
Jesam, zar se ne sećaš koliko sam jadikovao Ma$ketu zbog toga ? Mada pazi
ovo - kad sam doneo programčiće kući, ponovo ih iskompajlirao (ovog puta na
moju mašinu, tj. 486/33), TS verzija je bila oko 10-20% brža (uz zadržanu veću
preciznost slučajnih brojeva).
pascal.573bearboy,
-> #561, niklaus> (:> Mada se može desiti i obrnuto. Ja sam moj seminarski rad u
> Petnici (:> "preveo" iz TP u TSP i usporilo se oko 5-6 puta
> (!!!). Ako se (:> dobro sećam, glavni razlog je bila sporija
> (ali preciznija) (:> funkcija RND-a u TSP-u.
>
> Šta si pravio? Pogađanje brojeva? (;
Još gore - simulacija telekomunikacionog kanala & testiranje algoritama za
detekciju & korekciju grešaka :)
pascal.574bearboy,
-> #563, dejanr> 2 bila u verziji 1.12, Logitech modula 2 3.30 a Turbo Pascal
> 5.0. Možda
Vreme je za novo poređenje. v1.12 - Brrrrr :)
pascal.575pedjak,
-> #566, mjova> moraš napraviti novu int 9 rutinu.
Hm, a kako pročitati sa porta 60h da su pritisnuta dva tastera ?
Uopšte, može li tastatura da pošalje takvu informaciju ?
pascal.576dzakic,
-> #575, pedjak> Hm, a kako pročitati sa porta 60h da su pritisnuta dva tastera ?
> Uopšte, može li tastatura da pošalje takvu informaciju ?
Tastatura generiše prekid (int 9) u trenutku kad taster pritisneš
i u trenutku kad ga pustiš. Na portu se u prvom slučaju nađe scan
vrednost pritisnutog tastera a u drugom slučaju (otpuštanje) ista
vrednost samo sa setovanim sedmim bitom (+128). Treba dakle da
napraviš tabelu (kao što je neko ovde pomenuo), postaviš sve na
početku na 0 i okačiš se na int 9. Kad primiš vrednost manju od 128,
setuj odgovarajući element niza, a ako je na portu 60h setovan sedmi
bit, vrati ga na nulu. Kasnije u programu testiraj da li su ta_i_ta
vrednost istovremeno postavljene na keca. Tako znaš da su oba
tastera u tom trenutku pritisnuta. Na ovu foru i bios vodi računa o
shift, ctrl i alt.
Obrati samo pažnju na 'sive' tastere koji kod extended tastatura
znaju da šalju po čitavu povorku signala, najčešće sa prefixom E0,
ili sl. već sam zaboravio. žini mi se da je taster za pauzu
rekorder: 4 int-a 9 za jedno stiskanje tastera i 4 za otpuštanje.
zak
ps. Srećna Nova!
pascal.577eagle,
-> #575, pedjak> Hm, a kako pročitati sa porta 60h da su pritisnuta dva tastera
> ? Uopšte, može li tastatura da pošalje takvu informaciju ?
Ne može. Evo ide mali primer preuzete int9 procedure, prikazuje
sva četiri pritisnuta arrows tastera a da pritom ne smeta ostatku
programa (može se držati pritisnuta strelica i kucati u pozadini).
Jedino pravi probleme u slučajevima kad su istovremeno pritisnuti
levi i desni sivi taster, inače za bele (2,4,6,8) radi normalno.
arrows.zippascal.578bearboy,
-> #569, v.nesic>> Mislim da je jedini način da gledaš vremenski razmak između
>> pritiska na ta dva tastera, pa ako je manji od zadatog epsilon
> ;>>>
>
> Jel' si ti nekada igrao neku igricu preko tastature?
E, to je već druga priča (video sam negde rutine za to) - kad se pritisne
taster za gore, to se zabeleži negde, a ako se pusti, mark obriše. E sad,
ako je markiran taster na gore, a stigne signal za još neki taster, znači
da su pritisnuti odjednom. Nadam se da je bilo razumljivo :)
pascal.579andrejt,
Kako iz Turbo Pacala 6.0 napraviti .OBJ fajl ?
pascal.580dejanr,
-> #579, andrejt>> Kako iz Turbo Pacala 6.0 napraviti .OBJ fajl ?
Nema načina.
pascal.581lucas,
-> #579, andrejt>> Kako iz Turbo Pacala 6.0 napraviti .OBJ fajl ?
Nikako!
pascal.582kriss,
Da li neko zna da li se pri 'linkovanju' unita u EXE ubacuju sve
procedure, ili je kompajler dovoljno inteligentan pa 'vidi' one
koje se u programu koriste, i samo njih 'vadi'?
Naravno, TP 6.0 :)
pascal.583niklaus,
-> #579, andrejt(:> Kako iz Turbo Pacala 6.0 napraviti .OBJ fajl ?
1) Iz TP verzije 6.0, ja (za sada) nisam uspeo, ali moguće je za 5.0-
verzije. Modifikovati .PAS fajl ubacivanjem INTERFACE dela (samo deklaracije
svih procedura/funkcija) i službene reči IMPLEMENTATION.
2) Nakon toga sa SEZAMa skinuti fajl R:ĐIBMPCĐPASCAL.TPU2ASM.ZIP, i
uz njegovu pomoć kovertovati .TPU u .ASM
3) TASMovati .ASM u .OBJ.
4) Voila!
(:niklaus:)
ps Program je napravila već veoma poznata firma u domenu TP biblioteka
TurboPower, negde sredinom '89. Sigurno je da su razvijene i verzije za
novije formate .TPU fajlova. Registracijom (ili sličnom metodom tipa
'money giveaway') ćeš verovatno doći do istih. (:
pascal.584bole,
HI!
Imam jedno interesantno pitanje (!) i TRAZIM KONKRETAN ODGOVOR ne neke ovo
ovo.. :)
Ovako, ocu da recimo na neki EXE zalepim parce koje ce se pustati pre svega,
namena:
Da recimo imam neki SJKL program i ocu kada ga pustim da se ispise DOBROJTRO pa
da nastavi dalje... :)
nesto kao virus ali da ne bude rezidentno...
:)
e sada lepo na posao, ja odo da se odmaram u Soko Banju vi lepo resite i
iznenatite me.. recimo neka mi to bude za novu godinu ili za rodjendan!
CU!
pascal.585dejanr,
-> #582, kriss>> Da li neko zna da li se pri 'linkovanju' unita u EXE ubacuju sve
>> procedure, ili je kompajler dovoljno inteligentan pa 'vidi' one
>> koje se u programu koriste, i samo njih 'vadi'?
Dovoljno je inteligentan, zato mu Borland tepa "Smart linker". Tako
bar piše u uputstvu, ali nisam nešto mnogo detaljno proveravao.
pascal.586vvelisavljev,
BP 7.0
Ako u Borland Pascalu 7.0 stavim compiler direktivu
Target na Protected, imam izvesnih problema sa memorijom.
Veći program koji usput koristi NEW i DISPOSE naredbe pri samom
startovanju javlja Runtime error 216 (General Protection fault).
Manje programe sam probao da kompajliram ovako i na prvi pogled rade
dobro. Da li možda treba da intervenišem na nekim kompajler
prekidačima?
Da li je ikako moguće korišćenje prekidnih
tačaka i postupnog izvršavanja programa ako se program kompajlira u
protected modu?
Primetio sam da BP ne trpi baš druge menadžere za memoriju. Kakva su
vaša iskustva?
pascal.587ognjen,
Kako reciti citanje recorda iz fajla?
Naime, sta sam ja probao:
---------------------------
type ReadLin = record
broj: integer;
str1: string[8];
str2: string[9];
str3: string[10];
end;
var fi: file of ReadLin;
Linija: ReadLin;
pomocni: String;
---------------------------
I, kako u programu da mu kazem da procita jedan record, ili da ga
"pitam" sta se nalazi u stringu STR2 na tekucem recordu ili
slicno...?
pascal.588dejanr,
-> #587, ognjen>> I, kako u programu da mu kazem da procita jedan record,
>> ili da ga "pitam" sta se nalazi u stringu STR2 na
>> tekucem recordu
Recimo da bi učitao slog broj 10 (broji se od nula):
seek(fi, 10);
read(fi, linija);
pomocni:=linija.str2;
pascal.589predragd,
-> #586, vvelisavljev> Veći program koji usput koristi NEW i DISPOSE naredbe pri
> samom startovanju javlja Runtime error 216 (General
Da li je tvoj program izvršio te naredbe ili je pukao pre
njih. Meni su se 216 greške najčešće javljale kod programa,
pisanih za real mod, koji direktno pristupaju memoriji. Ako hoćeš
pošalji deo source-a na kom program puca, pa ćemo da vidimo.
> Da li možda
> treba da intervenišem na nekim kompajler prekidačima?
Do sada nisam imao uspeha sa njima. Uvek se ispostavilo da je
problem u mom programu (nepoznavanju DPMI-a).
> Da li je ikako moguće korišćenje prekidnih
> tačaka i postupnog izvršavanja programa ako se program
> kompajlira u protected modu?
Ako koristiš TDX moguće je.
> Primetio sam da BP ne trpi baš druge menadžere za
> memoriju.
HIMEM, QEMM ili bez ikakvih memory manager-a, BP mi do sada
nije pravio probleme ni sa jednim od navedenih.
Peđa.
pascal.590niklaus,
-> #586, vvelisavljev(:> Veći program koji usput koristi NEW i DISPOSE naredbe pri samom
(:> startovanju javlja Runtime error 216 (General Protection fault).
Evo šta kaže BPov help...
┌─
│ ┌───────────────────────────┐
│ │ General Protection fault │
│ └───────────────────────────┘
│
│ his error results if you try to access memory that is not legal for your
│ pplication to access. The operating system halts your application and tells
│ ou that a general protection (GP) fault occurred, but your system does not
│ rash.
│
│ he following practices cause GP faults:
│
│ ■ Loading constant values into segment registers
│
│ ■ Performing arithmetic operations on segment registers of selectors
│
│ ■ Using segment registers for temporary storage
│
│ ■ Writing to code segments
│
║║ ■ Accessing memory beyond the local address space given to your application
│
│ ■ Derefencing nil pointers
└─
Verovatno si ovo video i sam, al' hteo_ne_ hteo prekršio si neki od ovih
zakona. (:
Tipujem na označeni...
(:> Primetio sam da BP ne trpi baš druge menadžere za memoriju. Kakva
(:> su vaša iskustva?
Ja se u principu trudim da program najpre savršeno radi u 'Real' modu, a
tek onda ga kompajliram za 'Protected' mod.
Preporučujem ti da koristiš QEMM zajedno sa DPMI dodatkom za DPMI.
(:niklaus:)
pascal.591niklaus,
-> #587, ognjen(:> var fi: file of ReadLin;
(:> Linija: ReadLin;
(:> pomocni: String;
(:> I, kako u programu da mu kazem da procita jedan record, ili da ga
(:> "pitam" sta se nalazi u stringu STR2 na tekucem recordu ili
(:> slicno...?
Read( fi, linija );
pomocni := linija.str2; (* Slično ide i za ostala polja u slogu *)
(:niklaus:)
pascal.594vvelisavljev,
-> #586, vvelisavljev> BP 7.0
Trebao sam biti nešto konkretniji.
Program javlja:
Runtime error 216 at 0002:31B2
pre nego što izvrši i jednu naredbu programa. :(
Ustvari, i nije baš da ne izvši ni jednu nardbu. Našao sam grešku.
:) :( :) :( :) :(
Greška je u junitu TPW60 i to u proceduri TPWfill koja se
izvršavala u inicijalnom delu junita. Procedura je definisana kao
external. Verovatno da gađa direkt video memoriju i da ovaj zbog toga
javlja grešku. :(
Šta da radim? Da bacim TPW60 ili da ispravljam greške. Da li da
napišem svoje ekvivalentne procedure za prozore ili ima nešto slično
već napisano. Do sada nisam koristio ništa iz TVizije. :) Da li moguće
bezbolno iskoristiti par procedura za rad sa prozorima iz TVa? Bio bih
veoma zahvalan ako bi mi neko ovde napisao primerčić za pozivanje
takvih procedura.
pascal.593vvelisavljev,
-> #590, niklaus> ║║ ■ Accessing memory beyond the local address space given
> to your application
> Verovatno si ovo video i sam, al' hteo_ne_ hteo prekršio
> si neki od ovih zakona. (:
Da video sam. :( Po mom prevodu to znači: "Pristup memoriji pre nego
što je lokalni adresni prostor dodeljem mojoj aplikaciji." Tako
nekako, ako sam dobro preveo. (?) Pa, kako ovo da izbegnem?
> Ja se u principu trudim da program najpre savršeno radi u
> 'Real' modu, a tek onda ga kompajliram za 'Protected' mod.
U tome i jeste problem što on radi u Real modu, sad, dal je savršen
ili ne. (?)
pascal.592vvelisavljev,
-> #589, predragd> Do sada nisam imao uspeha sa njima. Uvek se ispostavilo da
> je problem u mom programu (nepoznavanju DPMI-a).
DPMI ?? Da li ima negde na Sezamu nešto detaljnije o ovome? žega bi
trebalo da se pridržavam u svom programu?
> Ako koristiš TDX moguće je.
Ne, koristim BP.EXE.
>> Primetio sam da BP ne trpi baš druge menadžere za
>> memoriju.
>
> HIMEM, QEMM ili bez ikakvih memory manager-a, BP mi do
> sada nije pravio probleme ni sa jednim od navedenih.
Izgleda da nisam dobro objasnio šta me muči. Nešto mi olako BP javlja
poruke da nema dovoljno memorije i sl. Imam 2 MB RAMa, a moj exe
kompajliran u Real modu ima oko 130 kB a u protected oko 150 kB.
Najbolje mi radi bez ikakvih menadžera, čak i bez HIMEMa.
Kako treba da izgleda $M direktiva za protected mod? U real modu mi
izgleda ovako : {$M 32768,0,131072}.
pascal.595dejanr,
-> #592, vvelisavljev>> DPMI ?? Da li ima negde na Sezamu nešto detaljnije o ovome? žega bi
>> trebalo da se pridržavam u svom programu?
Imaš u direktorijumu INFO fajl DPMI_TXT.ZIP (ili tako nešto) sa DPMI
specifikacijom. Takođe, mogli bi te zanimati tekstovi iz prošlih i
ovih "Računara" koji se upravo time bave.
pascal.596eagle,
-> #594, vvelisavljev> Šta da radim? Da bacim TPW60 ili da ispravljam greške. Da li da
> napišem svoje ekvivalentne procedure za prozore ili ima nešto
> slično već napisano. Do sada nisam koristio ništa iz TVizije.
> Da li je moguće bezbolno iskoristiti par procedura za rad sa
> prozorima iz TVa?
Ili će ceo program biti u TV ili ništa od toga.
Ako ćeš se baviti TV-om slobodno baci TPW60 i njemu slične.
pascal.597ilazarevic,
-> #587, ognjen> I, kako u programu da mu kazem da procita jedan record, ili da ga
> "pitam" sta se nalazi u stringu STR2 na tekucem recordu ili
> slicno...?
Evo ti primer kako da otvoriš fajl i čitaš iz njega:
š$I-ć
Assign(fi,'proba.dat');
Reset(fi);
š$I+ć
if IOResult<>0 then
begin
WriteLn('Greška pri otvaranju fajla!');
Halt(1);
end;
Read(fi,linija);
pomocni:=linija.str1;
Izvini na juskiju.
pascal.598kriss,
Ux, malo sam se igrao sa TP 6.0 i izgleda da ipak nije toliko
pametan :( Međutim, nadam se da grešim :)
Sledi izvod iz .MAP fajla (program je kompajliran sa TPCX) i
koliko vidim, tu se nalazi ceo CRT unit, a ne samo delovi koji se
koriste u programu. E sad, opet se nadam da grešim. Međutim:
Start Stop Length Name Class
00000H 004B7H 004B8H TRTMRT CODE
004C0H 0051FH 00060H MAINUNIT CODE
00520H 017E5H 012C6H TPWX CODE (poboljšani tpw60)
017F0H 037A6H 01FB7H MMAGACIN CODE
037B0H 041C3H 00A14H MAGUNIT CODE
041D0H 047E3H 00614H CRT CODE
047F0H 05BD2H 013E3H SYSTEM CODE
05BE0H 06163H 00584H DATA DATA
06170H 0A16FH 04000H STACK STACK
0A170H 0A170H 00000H HEAP HEAP
Address Publics by Value
0000:004F HEADER
0000:006A MKWIN
0000:01C4 MAG
.
.
.
041D:0000 č
041D:016B TEXTMODE
041D:0180 WINDOW *
041D:01C0 CLRSCR
041D:01DA CLREOL *
041D:01EE INSLINE *
041D:01F3 DELLINE *
041D:0213 GOTOXY
041D:023F WHEREX *
041D:024B WHEREY *
041D:0257 TEXTCOLOR
041D:0271 TEXTBACKGROUND
041D:0289 LOWVIDEO
041D:028F HIGHVIDEO
041D:0295 NORMVIDEO
041D:029C DELAY
041D:02C7 SOUND
041D:02F4 NOSOUND
041D:02FB KEYPRESSED
041D:030D READKEY
041D:032F ASSIGNCRT *
...
Procedure sa zvezdicama *sigurno* nisu korišćene, ali ipak su tu,
tj. zauzimaju prostor (!?!). Zato sam i pitao pre par dana da li
je kompajler dovoljno _smart_ pa da ume da profiltrira kôd.
Međutim, pošto se ne razumem baš puno u te MAP fajlove ;) ostaje
na nekom ko se razume. :) Odgovor mi je važan jer u slučaju da je
pred AmNoM ne_smart kompajler, odoh da pravim svoj crt ...
pascal.599kriss,
Ipak je glup.
Dokaz je zakačen, da ne ovako, pa ko hoće nek se uverava.
P.S. A sad na KrissCrt ;)
glupi_tp.zippascal.600peca.st,
Kako najbrže staviti pixel na ekran u rezoluciji 640*480*256?
Mem Š$a000:xĆ radi samo do određene granice, zato što, naravno,
obuhvata samo jedan segment od 64k. Dakle, koje su adrese ostalih
segmenata video memorije?
Peđa.
pascal.601markom,
-> #592, vvelisavljev■■■ DPMI ?? Da li ima negde na Sezamu nešto detaljnije o ovome?
■■■ žega bi trebalo da se pridržavam u svom programu?
Bilo je u nekom od prošlih Računara ...
Marko
pascal.602markom,
-> #593, vvelisavljev■■■ U tome i jeste problem što on radi u Real modu, sad, dal je
■■■ savršen ili ne. (?)
Reci mi iskreno, da li si IKADA vide savršen program?
Marko
pascal.603markom,
-> #594, vvelisavljev■■■ external. Verovatno da gađa direkt video memoriju i da ovaj
■■■ zbog toga javlja grešku. :(
žekaj, stani malo... Kaži mi da ako sa BP 7.x program prevedeš u protected
modu, i iz njega probaš direktno da gađaš video memoriju, ovaj će da pukne ?!?
Ako je to istina onde ću morati da pišem 99% programa iz početka :(((
Marko
pascal.604peca.st,
-> #598, kriss!-> Procedure sa zvezdicama *sigurno* nisu korišćene, ali ipak su tu,
!-> tj. zauzimaju prostor (!?!). Zato sam i pitao pre par dana da li
!-> je kompajler dovoljno _smart_ pa da ume da profiltrira kôd.
O ovome je mislim već bilo reči... Uglavnom, ako se dobro sećam,
zaključili smo da crt unit ima neku svoju inicijalizaciju i obavezno
ubacuje parče koda. Napiši program koji izgleda ovako:
uses crt;
begin
end.
Onda napiši ovo: uses dos; begin end.
I na kraju: begin end.
Videćeš da su posledna dva .exe ista po dužini, a prvi je nešto duži.
Peđa.
pascal.605markom,
-> #598, kriss■■■ pred AmNoM ne_smart kompajler, odoh da pravim svoj crt ...
Ajd' pa ga okači ;))
Marko
pascal.606dejanr,
-> #598, kriss>> Ux, malo sam se igrao sa TP 6.0 i izgleda da ipak nije toliko
>> pametan :( Međutim, nadam se da grešim :)
>> Sledi izvod iz .MAP fajla (program je kompajliran sa TPCX) i
>> koliko vidim, tu se nalazi ceo CRT unit, a ne samo delovi koji se
Ne grešiš, što se CRT unit-a tiče. Ali, mislim da je on, kao sistemski
unit, ipak priča za sebe. Probaj sa nekim svojim procedurama, recimo
napraviš par potprograma koji u sebi imaju neke karakteristične tekstove
ali se nikada ne pozivaju, prevedeš pa pogledaš ima li tih tekstova u
EXE-u.
Javi šta si ustanovio... da vidimo lažu li u dokumentaciji :)
pascal.607kriss,
I još samo nešto O:)
Da li postoji tpu2obj. Važno mi je da bude OBJ kako bi se
sačuvale kompletne f-je (mislim sa sve imenima)? Tpu2asm iz dira
radi samo sa tp 5.0 :(
pascal.608markom,
-> #606, dejanr■■■ Javi šta si ustanovio... da vidimo lažu li u dokumentaciji :)
Ne znam šta kažu u dokumentaciji ;>>, ali nema ih :)
Marko
pascal.609ognjen,
-> #591, niklaus)-> Read( fi, linija );
)-> pomocni := linija.str2;
Ne radi. :(
Daklem, procita ga Ok, ali kad mu kazem writeln(linija.str2)
on ispise neke gluposti... Recimo umesto 3 karaktera, porcita 10
i ispise ih 4 puta... ???
pascal.610andrejt,
-> #607, krissPa imas binobj nisam mnogo gledao ali trevalo bi
da radi .
pascal.611kriss,
Uh, moraću da se izvinim TP-u :)
Glup je, al samo za crt. Inače je kompajler pametan, sad je
provereno. :) MeĐuTiM ;) nije mi jasno zašto je tako. Neko je
rekao da je CRT sistemski unit, međutim po tpumover-u su
sistemski i DOS i PRINTER, pa ih ipak ne 'gura' u .EXE? Evo šta
kaže isti:
D:ĐTPĐUTILS>tpumover d:ĐtpĐturbo.tpl
TPU Mover Version 6.00 Copyright (c) 1987,90 Borland International
Unit Code Data Uses
SYSTEM 21585 676
OVERLAY 1855 26 SYSTEM
CRT 1556 20 SYSTEM
DOS 1594 6 SYSTEM─┐
PRINTER 54 256 SYSTEM─┴ i ovi su/koriste system?
P.S. E vala ću biti uporan ;)
pascal.612vvelisavljev,
-> #603, markom> žekaj, stani malo... Kaži mi da ako sa BP 7.x program
> prevedeš u protected modu, i iz njega probaš direktno da
> gađaš video memoriju, ovaj će da pukne ?!?
To je samo pretpostavka. Zbog čega bi drugog pukla procedura koja
puni deo ekrana jednim karakterom?
pascal.613markom,
-> #612, vvelisavljev■■■ To je samo pretpostavka. Zbog čega bi drugog pukla procedura
■■■ koja puni deo ekrana jednim karakterom?
Ako je iz TPW6, onda me ne čudi, jerbo je to PUNO bagova, ali direktno gađanje
video memorije je osnova 60% mojih programa pisanih u TP 6 !! Ako to ne radi u
sedmici, ostadoh ja na 6 :))
Marko
pascal.614markom,
-> #609, ognjen■■■ Daklem, procita ga Ok, ali kad mu kazem
■■■ writeln(linija.str2) on ispise neke gluposti... Recimo umesto
■■■ 3 karaktera, porcita 10 i ispise ih 4 puta... ???
žekaj malo, nadam se da si tu promenljivu FI, definisao kao FILE OF type, a
ne kao TEXT, jerbo ako si je tako definisao nije ni čudo što ti ne radi ;)
Marko
P.S. Uz poruku je program koji SIGURNO radi!
P.P.S. Naravno, podrazumeva se da fajl nije prazan :)
slog.paspascal.615ilazarevic,
-> #609, ognjen> Daklem, procita ga Ok, ali kad mu kazem writeln(linija.str2)
Ovo ne može da radi zato što je fajl sastavljen od rekorda. Dakle, ti možeš
da upišeš samo jedan ceo rekord, čijim elementima dodeljuješ vrednosti.
Da je tekst fajl, moglo bi.
pascal.616isekulovic,
Da li je moguće kopirati sadržaj jedne grafičke stranice na drugu?
Razmišljao sam o kopiranju video memorije, ali ne znam kako bi
to išlo na ega/vga.
I šta znači kad RegisterBGIFont javi grešku -13 InvalidFont, zaglavlje
fonta nije prepoznato ?!?!
pascal.617paki,
-> #611, kriss> Glup je, al samo za crt. Inače je kompajler pametan, sad je
> provereno. :) MeĐuTiM ;) nije mi jasno zašto je tako. Neko je
> rekao da je CRT sistemski unit, međutim po tpumover-u su
> sistemski i DOS i PRINTER, pa ih ipak ne 'gura' u .EXE? Evo šta
Da nije zbog toga što CRT ima i inicijalizaciju?