PCPROG.2

06 Nov 1992 - 26 Jul 1993

Topics

  1. algoritmi (223)
  2. ms.dos (250)
  3. asembler (141)
  4. jezici (278)
  5. pascal (1307)
  6. cccc (752)
  7. cpp (91)
  8. clipper (1027)
  9. baze.podataka (229)
  10. razno (379)
  11. van.teme (189)
  12. basic (56)

Messages - pascal

pascal.1 ppekovic,
U staroj PC.PROG konferenciji, ova tema je bila jedna od najposećenijih, verujem da će i dalje biti tako. Dakle: Pascal ... Paya
pascal.2 ssokorac,
Ako uzmem neku 'sličicu' sa getimage, da li mogu da je put-ujem na ekran iskošenu, za ugao izmedju 0 i 90 stepeni, 0 znam ;) a i 90, ali da li može izmedju? Da pojasnim: đ----đ /Đ đ đ u / Đ ------ Đ Đ Đ / Đ / Đ/ Ovako ispade i u različitim dimenzijama, ali inače ne trba. Nadam se da me neko raumeo :).
pascal.3 drpr,
-> U staroj PC.PROG konferenciji, ova tema je bila jedna od -> najposećenijih, verujem da će i dalje biti tako. Dakle: -> Pascal ... Vrlo je zanimljivo kako je u ovoj temi bilo dosta poruka, korisnih rasprava,solidan broj datoteka, a nema na sezamu dir za pascal, a postoji za c i clipper.Možda fajl moderatori imaju šta da kažu na ovu temu ali mislim da bi bilo dosta stvari koje bi mogle da se nađu u tom diru . cope
pascal.4 bulaja,
│Vrlo je zanimljivo kako je u ovoj temi bilo dosta poruka, │korisnih rasprava,solidan broj datoteka, a nema na sezamu dir │za pascal, a postoji za c i clipper. └─── Dir-a za Pascal nema, jer nema ni datoteka koje bi isle u njega. Koliko sam pratio pascal temu, nisam primetio neki ozbiljniji program koji bi mogao da ide u \pc\program dir. Ako neko ima nesto za sta misli da treba da ide u dir nek slobodno posalje. U svakom slucaju, posebnog PASCAL direktorijuma nece biti dokle god se u \ibmpc\program ne nakupi dovoljan broj (recimo desetak) datoteka za njega.
pascal.5 nenadb.,
Potreban mi je najefikasniji algoritam ( i source) po mogućnosti za proceduru pretrazivanja po zadatoj reci. Ako uzmemo u obzir postojeće programe glavni zadatak bi bio nalazenje podreci bez obzira na nacin pisanja (case insensitive, non-word search). Ako neko ima pomenuti algoritam ( i source eventualno) molio bih ga da ga UL u ovo konferenciju. unapred hvala NenadB.
pascal.6 almi,
Imas u trubo viziji primer za textsearch mislim da je u programu tvedit.pas Pozdrav Almi.
pascal.7 almi,
Evo svim pascalovcima program koji crta bezierovu krivu tj. B-SPLINE. Ovo je preveden i obrađen program sa C-a iz Racunara 78.Dodata je mogućnost pomeranja tačaka kontrolnog poligona putem miša.Objašnjeno je sve kao komentar u programu. Pozdrav ALMI. ps. koristio sam svoj unit za miša pa vam i njega dajem uz listing bezr78.arj
pascal.8 nenadb.,
>> Imas u trubo viziji primer za textsearch mislim da je u programu >> tvedit.pas Nazalost nemam TV. Moze li to da sljaka na TP5.5?? Ako moze molim te UL program. unapred hvala NenadB.
pascal.9 ztuke,
*>mogućnost pomeranja tačaka kontrolnog poligona putem miša.Objašnjeno je *>sve kao komentar u programu. Ajde podesi kodni raspored sa SET CODE na 852CP, mislim! Kuke i kvake... tuke
pascal.10 ilazarevic,
█ Ako uzmem neku 'sličicu' sa getimage, da li mogu da je █ put-ujem na ekran iskošenu, za ugao izmedju 0 i 90 █ stepeni, 0 znam ;) a i 90, ali da li može izmedju? Ja mislim da ne može... Ovo je i mene zanimalo, ali nikako nisam uspeo da nađem rešenje :(
pascal.11 bearboy,
Kako da u TPU ubacim OBJ ? Kad naiđr na external definiciju, crkne :(
pascal.12 dejanr,
>> Kako da u TPU ubacim OBJ ? Koristi klauzulu {$L ime.OBJ}
pascal.13 ssokorac,
─┼┤ ps. koristio sam svoj unit za miša pa vam i njega dajem uz listing Meni onaj .pas za miša ne radi ok, nece da pomera kursor u donju polovinu ekrana. Mozda zbog vga? I, da, zaboravio si CloseGraph na kraju programa :), a takodje stavio si i ReadKey na kraj programa, i to samo ReadKey, bez ičeg drugog :).
pascal.14 bearboy,
Gde se može naći/nabaviti/skinuti OBJ2ASM ? Treba mi hitno. PS. Potrebno za SUPI, tako da bolje požurite :)
pascal.15 skoprivica,
│ █ Ako uzmem neku 'slicicu' sa getimage, da li mogu da je │ █ put-ujem na ekran iskosenu, za ugao izmedju 0 i 90 │ Ja mislim da ne moze... Ovo je i mene zanimalo, ali nikako nisam Cini mi se da moze u basicu. Stvarno sto nema basic topica ovde?
pascal.16 almi,
Ja koristim navedeni kodni raspored!! Pozdrav Michel
pascal.17 almi,
Kao prvo Closegraph moze i ne mora,a kao drugo ako se ukljuci $x+ tj. ekstended sintaxa onda pozivi funkcija bez dodele vrednosti prolaze u TP6.0 Pozdrav Almić
pascal.18 almi,
Evo ti listing gde postoji search funkcija i search & replace funkcija pozdrav almi. editors.pas
pascal.19 ssokorac,
Kako da saznam ime tekućeg direktorijuma? Pretpostavljam da je vrlo jednostavno, ali prekopah ceo help i ne nadjoh ništa :(.
pascal.20 almi,
Probaj da uradiš ovako nešto: tekuci:=paramstr(0); to daje komadnu liniju. A postoji ja mislim i rešenje u r:\ibmpc\info\ pascal manual. To je ono što znam. Pozdrav Almi!!
pascal.21 ssokorac,
Probaj da uradiš ovako nešto: tekuci:=paramstr(0); to daje komadnu liniju. ------------------------------------ Tako dobijem samo direktorijum u kome se nalazi program kada je startovan, ali ako je tekuci neki drugi...?
pascal.22 dejanr,
>> Kako da saznam ime tekućeg direktorijuma? Koristi funkciju getdir, npr. getdir(0, rez) i dobiješ ime u string promenljivoj rez.
pascal.23 stomic,
$ Tako dobijem samo direktorijum u kome se nalazi program $ kada je startovan, ali ako je tekuci neki drugi...? Isečak iz TP 6.0 helpa... Nadam se da ovim nisam oštetio autorska prava ;))). ------------------------------------------------- GetDir Procedure Returns the current directory of specified drive Syntax: GetDir(d: Byte; var s: string); d Actual Value Drive ------------- 0 Default 1 A 2 B 3 C ... ... { Example for GetDir } var s : String; begin GetDir(0,s); { 0 = Current drive } WriteLn('Current drive and directory: ', s); end. ------------------------------------------------- Pozdrav, Slobodan Tomic.
pascal.24 bdm.,
## Kako da saznam ime tekuceg direktorijuma? Pretpostavljam da je vrlo ## jednostavno, ali prekopah ceo help i ne nadjoh nista :(. GetDir BDM.
pascal.25 ssokorac,
─┼┤ GetDir Procedure Thanks i tebi i dejanu, ja sam tražio u dos unitu takvu proceduru, kad ono ona je izvan dos-a...:)
pascal.26 vitez.koja,
#=> Kako da saznam ime tekuceg direktorijuma? Pretpostavljam #=> da je vrlo Procedura GetDir... Valjda GetDir(var Dirname : string; drive:byte); Drive je Broj diska (1=A,2=B,0=Trenutni). Mozda su parametri navedeni suprotnim redosledom, ali to je to.
pascal.27 ssokorac,
Kako se moze proveriti da li je disketa ubacena u drajv, bez da DOS uleti sa svojim Retry, Abort, Ignore, Fail? ako nije ubacena?
pascal.28 dejanr,
>> Kako se moze proveriti da li je disketa ubacena u drajv, bez da DOS uleti >> sa svojim Retry, Abort, Ignore, Fail? ako nije ubacena? Ne znam da li je to baš najregularniji metod, ali ja koristim: repeat writeln ('Insert diskette in drive itd, itd'); write ('Press any key to copy'); repeat until keypressed; a:=readkey; size:=disksize (diskno); until size>0;
pascal.29 janko,
> Kako se moze proveriti da li je disketa ubacena u drajv, > bez da DOS uleti sa svojim Retry, Abort, Ignore, Fail? ako > nije ubacena? TP to radi sam, (ne puŠta DOS da uleti). Probaj.
pascal.30 ssokorac,
─┼┤ Ne znam da li je to baš najregularniji metod, ali ja koristim: Nije važno da l' je regularan, važno da radi :). Baš dobar fazon, thanks!
pascal.31 ssokorac,
─┼┤ TP to radi sam, (ne puŠta DOS da uleti). Probaj. Probao i stvarno ne pušta. Ali, probao sam jednostavno Repeat a:=ReadKey; š$I-ć ChDir('a:Đ') š$I+ć Until IOResult=0; ChDir('c:Đ') i radilo je, dok se nije završio program, tad je javio Internal Error <broj>, report to Borland.
pascal.32 janko,
> Probao i stvarno ne pušta. Ali, probao sam jednostavno > ChDir('a:Đ') Nisam ni mislio na to, nego na onu funkciju kojoj poturiš broj diska. Inače, ta f-ja se direkno remapira u Dosov int, ali TP okruženje 'hvata' kada Dos digne frku. Za razliku od TP-a, TC i BC to ne rade, već moraš sam da pišeš 'hendlere.' Zato sam rekao da TP to radi sam.
pascal.33 zzile,
Kako da junit za pascal 5.5 prevedem u junit za 6.0, a nemam source kod?
pascal.34 minja.,
Da li neko zna gde mogu da nađem zbirku zadataka iz turbo pascala, napisao ju je Milan žabarkapa? pozdrav, minja
pascal.35 kenza,
[:> Da li neko zna gde mogu da nadem zbirku zadataka iz [:> turbo pascala, napisao ju je Milan Cabarkapa? Mozes da je nadjes u Jugoslovenskoj Knjizi u Palati Albanija, u maloj knjizari na Studentskom Trgu,a u krajnjem slucaju mozes da je pozajmis od nekog iz MG-a i fotokopiras ;)
pascal.36 drpr,
-> Kako da junit za pascal 5.5 prevedem u junit za 6.0, a nemam -> source kod? Nikako , nažalost :((.Ovo je jedan od velikih razloga sto ne prelazim na 6.0 za sad.Možda uz najavljenu verziju stigne nešto tako , bar se nadam da hoće . cope
pascal.37 dejanr,
>> Kako da junit za pascal 5.5 prevedem u junit za 6.0, a nemam source kod? Jako teško. Jedino što možeš da probaš jeste da da kažeš NU XX.TPU. Negde na samom vrhu videćeš da piše TPU6. Probaj to da prepraviš u TPU7 (ili šta već TP6.0 traži, ne sećam se napamet, možeš da pogledaš neki njegov unit). Na taj način ćeš ga "prevariti" da primi taj unit tj. da ne prijavi grešku. Ali to još ne znači da će tako "primljen" unit korektno raditi. Obično ne radi :( Ali, obzirom da operacija kratko traje, vredi probati.
pascal.38 lunic,
Mozes knigu Cabarkapu(ZBIRKU) da nadjes kod mene LUNIC.
pascal.40 zzile,
Probao sam da editujem tpu datoteku (treba TPU9) ali je posle pascal ne prihvata. Probao sam i neki tpu disasembler ali ne daje ocigledne rezultate. Nadao sam se da neko zna neki tpu -> obj konverter ili slicno. Imam neku biblioteku od Hewlet Packarda ali su oni umesto da daju obj i jedan fajl sa pratecim sorsom dali niz *3.tpu .tpu *55.tpu ...Valjda da me vezu na dozivotni upgrade! :-(((((.K
pascal.41 janko,
> biblioteku od Hewlet Packarda ali su oni umesto da daju > obj i jedan fajl sa pratecim sorsom dali niz *3.tpu .tpu > *55.tpu ...Valjda da me vezu na dozivotni upgrade! > :-(((((.K Jesi li siguran da u programu koristiš bilo šta od TP-a što ima samo u 6.0 a nema u 5.5? Zašto ne bi preveo pomoću 5.5 svoj program?
pascal.42 predragd,
> Nadao sam se da neko zna neki tpu -> obj konverter ili slicno. Pa sad, ja imam konvertor kakav koji pretvara .TPU u .OBJ, ali on to radi sam za TP 5.0. Imam i konvertor koji radi .TPU u .ASM za TP 4.0. Ako bi ova starudija mogla pomoći javi se. Peđa.
pascal.43 hacker,
E pa to Úbi bilo fino, ovaj TPU OBJ kÚonvertor...
pascal.44 adzem,
Slučajno sam pronašao jedan štos u editoru TP-a (možda ga već znate, ali nema veze, ima ko ne zna). Ako dva puta puta pritisnete Ctrl-O, na pocetku programa pojaviće se spisak direktiva prevodiocu i to onako kako je podešeno u Options meniju. (* $A+,B-,D+,E+,F-,G-,I+,L+,N+,O-,R-,S+,V+,X- *) (* $M 16384,0,655360 *) Zgodna stvar, a radi i u 5.5 i 6.0 verziji. Starije nisam proverio.
pascal.45 almi,
Evo jednog notesa(čitaj mini-rokovnik) pisanog u pascalu.Ako je neko zainteresovan za source neka mi se javi. U exe-datoteci treba promeniti jedan direktorijum. Nadji C:\ i zameni sa dir-om gde je program. Pozdrav ALMI.
pascal.46 ssokorac,
─┼┤ U exe-datoteci treba promeniti jedan direktorijum. Nadji C:Đ i zameni sa ─┼┤ dir-om gde je program. Nažalost, uz poruku nema nikakvog fajla :(. Inače, da ne bi korisnik morao ručNo da menja ime direktorijuma, sa paramstr(0) dobijaš puno ime direktorijuma u kome je startovan program, i onda sa njim radi šta ti je volja :).
pascal.47 dejanr,
Pre nekog vremena smo (čini mi se) ovde pričali o exit procedurama u turbo pascalu. Onako jako ukratko, sve se svodi na: var exitsave: pointer temp: file; ... procedure myexit; begin exitproc:=exitsave; close(temp); erase(temp); ... ovde ide deo programa koji se izvršava kada program završi rad end; ... begin { glavni program } exitsave:=exitproc; exitproc:=@myexit; ... radni deo programa ... exitproc:=exitsave; end. Ideja je da se u okviru myexit pozatvaraju fajlovi, obrišu temp datoteke i tako to. Jedini način da se zna za handle-ovi tih fajlova u exit proceduri je, koliko shvatam, da se kao u gornjem primeru koristi globalna promenljiva. Lepo, a sad evo još jednog primera: var exitsave: pointer temp: file; ... procedure radni_deo(...) var temp: file; procedure myexit; begin exitproc:=exitsave; close(temp); erase(temp); end; begin {radni deo} ... end; begin { glavni program } exitsave:=exitproc; exitproc:=@myexit; radni(...); exitproc:=exitsave; end. Sve lepo, samo što ne radi, uopšte ne uspeva da zatvori fajl! Najzad mi padne na pamet da pogledam šta je u proceduri myexit seg(temp) i dobijem "nešto sasvim levo". Dakle, exit procedura mora da bude na "nultom" nivou a njeni parametri prave globalne promenljive!
pascal.48 drpr,
Haj svima! Imam jedan problem: Odlučih da pravim jedan svoj komunikacioni program ali imam frku sa linkovanjem :(.Za početak sam hteo da koristim zz-ov lcomm iz računara 57 (btw ima fajl na sezamu) u kome se nalazi lcomm.asm i navodi se da je potrebno program kompajlirati sa masm lcomm /Mx; To sam i uradio;dobio sam .obj i sada sam ušao u tp i reko hajde da probam da li će u opšte tp5.5 da vidi dati obj te napisah sledeće: program tel; {$L lcomm} begin end. Kada kucnuh ALT-F9 kompajler mi prijavi grešku sledećeg sadržaja: Invalid relocatable reference (LCOMM.OBJ) Dalje sa svim pokušajima da stavim i {$L lcomm.obj} i sa path-om ništa nije uspelo.Palo mi je na pamet da se Majkrosoftov masm I Borlandov TP ne trpe ali rekoh nije valjda u tome razlog. Eto to je ceo istorijat mog problema pa se nadam da će mi neko pomoći. cope PS Nemam Tasm da bih probao sa njim ali mislim da ne bi trebalo (smelo ??) da bude razlike. U napred hvala svima koji odgovore!
pascal.49 almi,
Ja nisam mnogo radio sa {$l ...} ali mislim da probaš sledeće Procedure Lcomm; {$l lcomm.obj} Begin Lcomm End.
pascal.50 predragd,
> E pa to Úbi bilo fino, ovaj TPU OBJ kÚonvertor... E pa malo sam zeznuo stvar. TPU u OBJ konvertor je za verziju TP 4.0, TPU u ASM je za TP 5.0. Peđa. tpu2obj.arj
pascal.51 stomic,
$ Sve lepo, samo što ne radi, uopšte ne uspeva da zatvori $ fajl! Najzad mi padne na pamet da pogledam šta je u $ proceduri myexit seg(temp) i dobijem "nešto sasvim levo". $ Dakle, exit procedura mora da bude na "nultom" nivou a $ njeni parametri prave globalne promenljive! Ako ovo dozvoljava (tvoja verzija, 5.0?) TP onda je ovo bug! On dozvoljava da exit pokazuje na ugnježdenu proceduru!? Prvo, ako se ona direktno pozove iz glavnog programa, neće uopšte biti definisane promenljive iz procedure na nivou više (što se kod tebe dešava). Drugo, po ovome bi mogao direktno da pozoveš ugnježdenu proceduru da se izvrši iz glavnog programa? Ugnježdena procedura uopšte nije vidljiva iz glavnog programa. BTW, TP6.0 neće da prihvati tvoj primer :). Sorry, ako grešim :). ST.
pascal.52 dejanr,
>> Ako ovo dozvoljava (tvoja verzija, 5.0?) TP onda je ovo bug! To je bilo na TP 5.5, nikad se nisam navikao na ovaj 6.0. Da, valjda to treba nazvati bug, ali u svakom slučaju vredno pažnje. >> BTW, TP6.0 neće da prihvati tvoj primer :). žudno... koji deo neće da prihvati tj. šta se desi?
pascal.53 janko,
> Imam jedan problem: > Odlučih da pravim jedan svoj komunikacioni program ali > imam frku sa linkovanjem :(.Za početak sam hteo da > koristim zz-ov lcomm iz računara 57 (btw ima fajl na > sezamu) u kome se nalazi lcomm.asm i navodi se da je > potrebno program kompajlirati sa > program tel; > š$L lcommć > begin > end. Nije to tako jednostavno kao što misliš. NE MOčE se mašinac za C linkovati u TP program bez posledica. Moraš da pišeš mašinac za TP, odnosno da prepraviš LCOMM tako da odgovara Turbo Paskalu. Kako se to radi, duuuuga je priča. Nabavi origninalna uputstva (ili njihove kopije;) za TP ili za TASM, trebalo bi da tamo sve piše na tu temu.
pascal.54 ilotina,
HI! Koji je najbrzi & najbolji nacin za pretvaranje string[1] u char. To mi treba jerbo nemoze da se napise nesto ovako: var a:string[1]; b:char; begin b:=a; {^^^^^} end. Ivan
pascal.55 djelovic,
> Koji je najbrzi & najbolji nacin za pretvaranje stOgingŠ1Ć u ch > To mi treba jerbo nemoze da se napise nesto ovako: b := a Š1Ć;
pascal.56 djelovic,
> Odlučih da pravim jedan svoj komunikacioni program ali imam > frku sa linkovanjem :(.Za početak sam hteo da koristim zz-ov > lcomm iz računara 57 (btw ima fajl na sezamu) u kome se nalazi 1. Nemoj da korstiš taj lcomm već jedan patchovani koji imaš u PC.SOFT a koji ima veći bafer i radi sa sva četiri porta. 2. lcomm takav kakav jeste ne može da se poveže sa Pascalom jer očekuje da se parametri prenose kao u C-u. Ono što ti treba jeste jedan C modul koji će da izgleda recimo ovako ---------------- INTERFACE.C -------------------- #include "lcomm.h" int pascal lcomm_init_new (int port, int speed) š lcomm_init (port, speed); ć ... i slicne rutine ------------------------------------------------ u kome ćes svaku C rutinu da obaviješ u drugu rutinu sa deklaracijom Pascal. Na taj nacin ćeš u svom programu da zoveš ove nove rutine koje su za Pascal a one će dalje da zovu standarden lcomm rutine. 3. Uz turbo pascal si dobio i primer povezivanja C rutina sa Pascal programom. Šmekni to pa ubaci INTERFACE.OBJ u LCOMM.OBJ u neki unit. 4. Ukoliko nešto nije jasno, co jo pc.prog, pa vikaj.
pascal.57 drpr,
-> Procedure Lcomm; -> {$l lcomm.obj} -> -> Begin -> Lcomm -> End. Hvala na odgvoru ali mislim da to nije što ja hoću.U okviru lcomma mi se nalaze procedure i funkcije koje želim da pozovem. cope
pascal.58 almi,
Evo jedne modifikovane verzije SVGABI31.arj tj. jedan tp-unit koji sam ja sam sklepao iz pomenute arhive.Uz njega ide i DOC pa kome se svidi moze da ga koristi. Pozdrav ALMI. grafika.arj
pascal.59 ssokorac,
─┼┤ var a:stringŠ1Ć; b:char; ─┼┤ begin ─┼┤ b:=a; ─┼┤ šžžžžžć ─┼┤ end. A što ne bi ovako: b:=aŠ1Ć;
pascal.60 drpr,
-> 1. Nemoj da korstiš taj lcomm već jedan patchovani koji imaš -> u PC.SOFT a koji ima veći bafer i radi sa sva četiri porta. Hvala na odgovoru i ide jedno pitanje: Gde da nađem taj pačovani tj. kako se zove da bih ga ja potražio u pc.soft? cope
pascal.61 mjova,
> Nemam Tasm da bih probao sa njim ali mislim da ne bi > trebalo (smelo ??) da bude razlike. U napred hvala svima > koji odgovore! mislim da ti je najbolje rešenje da uzmeš lepo TP60 i u njemu to sve pišeš. znam da ti je problem jer imaš puno toga za 5.5, ali ipak ;). malo je neodgovorno od borlanda to što TPU nije vertikalno kompatibilan pa se narod teže prebacuje u novu verziju, kad bi bar dali definicuju TPU-ova pa da neki tip lepo napiše konverter iz jednog u drugi i reši problem milionima ;). elem, uzmi 6.0, unesi asm u pas uz potrebne izmene i rešio si problem. što se tiče pitanja tih rutina, mislim da nisu baš sjajne, bar po zakovim rečima (njega je strah da o tome piše ;) tako da zahtevaju izvesne prepravke da bi bile savršene ;)
pascal.62 dzakic,
>> što se tiče pitanja tih rutina, mislim da nisu baš sjajne, bar po >> zakovim rečima (njega je strah da o tome piše ;) tako da >> zahtevaju izvesne prepravke da bi bile savršene ;) Da, ne znam zašto se zz odlučio za onako čudnu varijantu bafera, uglavnom ja sam rutine prepravio da rade sa pravim kružnim baferom (to maximize performance, što bi rekli oni što su pisali async.pas :). Zatim, u tim rutinama nema podrške hardverskoj CTS/RTS kontroli, a pomenuta 'patch' verzija koju je kasnije ostavio vkostic nepotrebno je nagomilana kodom koji se već nalazi u biosu. Svejedno, lcomm biblioteka je lepa ilustracija kako to sve funkcioniše i šta se sve od toga može napraviti.
pascal.63 dzakic,
>> program tel; >> {$L lcomm} >> begin >> end. Kao što su ti već rekli, potrebne su modifikacije i u samom asemblerskom delu, a što se paskala tiče, treba staviti samo jedno {$L lcomm.obj} na početku, a zatim deklarisati svaku proceduru ponaosob kao external. function comm_install(portno:byte):boolean; external; procedure comm_setparam(param:byte); external; procedure comm_remove; external; itd. Možda će ti biti zanimljiv još jedan podatak -- sve procedure koje se nalaze u .obj-u, iz glavnog programa će biti pozivane kao NEAR, dok ako lcomm biblioteku odlučiš da staviš u junit, biće pozivane kao FAR. O tome treba voditi računa kada se piše asemblerski deo. Naravno, sve je logično, ali kad se počinjalo... i nije baš :). Dakle, lakše ti je da sve procedure forsiraš da budu far, i deklarišeš ih sa, recimo: Procedure comm_put(c:char); external; far; Ili uključi {$F+} direktivu. A, kao što ti je neko već pomenuo, najlakše je da sve to uradiš u šestici ovako: Procedure comm_interrupt; interrupt; assembler; asm push ax push bx itd. procedure comm_put(c:char); assembler; asm mov al,c cmp output_busy,1 itd. i od toga napraviš junit za komunikaciju. Tada, sâm kompajler vodi računa šta je near a šta far, prenošenje parametara ide daleko jednostavnije i sl. Jedino što za prebacivanje u ovaj oblik treba razumeti svaku liniju koda. Ako te zanima više detalja, tu sam. Zak
pascal.64 vitez.koja,
#=> b:=aS1C; Al ste naporni s tim yusciijem :(
pascal.65 stomic,
$ žudno... koji deo neće da prihvati tj. šta se desi? Kompajler javi: Unknown identifier. Jednostavno ne vidi tu proceduru. Evo ti primer što sam kompajlirao: ================= PROGRAM Primer; PROCEDURE P1; PROCEDURE P2; BEGIN WriteLn('Hi 2'); END; BEGIN WriteLn('Hi 1'); END; BEGIN exitproc:=@P2; <-- Unknown identifier. END. ================= ST.
pascal.66 stomic,
$> program tel; $> š$L lcommć $> begin $> end. $ $ Nije to tako jednostavno kao što misliš. NE MOčE se $ mašinac za C linkovati u TP program bez posledica. Moraš $ da pišeš mašinac za TP, odnosno da prepraviš LCOMM tako da $ odgovara Turbo Paskalu. Kako se to radi, duuuuga je priča. $ Nabavi origninalna Pa ako imaš (poruka se odnosi Drpr korisniku) TP6.0 relativno je lako srediti. Ovo sam radio pre 6-7 meseci i kod mene je OK bilo. Ako te interesuje poslaću ti. Neverujem da bi bilo mnogo teže uraditi i u ASM pa linkovati OBJ fajl. ST.
pascal.67 dejanr,
Shvatam, ali šta ako je exitproc:=@P2; ne u glavnom programu nego u P1 proceduri koja "vidi" P2? Kod mene baš tada nastupa problem da ta procedura radi, ali ne vidi dobro parametre deklarisane takođe u okviru P1.
pascal.68 ssokorac,
Da li je mnogo komplikovano napraviti program koji će, recimo, kada pritisnem u dos-u Alt-C da obriše ekran, npr. Tj. kako napraviti rezidentan program. Ako je predugačko, never mind, ali ako nekog ne mrzi bio bih mu veoma zahvalan. Thanks, Stasha.
pascal.69 dzakic,
>> problem da ta procedura radi, ali ne vidi dobro parametre >> deklarisane takođe u okviru P1. Parametri deklarisani u okviru P1 nalaze se na steku. Kako je trenutak nastanka greške nepredvidiv, exitprocedura ne može da zna koliko su 'daleko' parametri iz P1 i logično je da ih ne vidi dobro (meni bar). Paskal dozvoljava dodelu adrese proceduri, ali kada treba da se izvrši - ne radi kako treba.
pascal.70 darone,
>> # => b:=aS1C; >> >> Al ste naporni s tim yusciijem :( Nabaci YU slova, manje će ti smetati. darone
pascal.71 zzile,
Ja sam naravno resio problem koristeci turbo pascal 5.5 ali mi je to pravilo probleme a i ne volim da koristim vise verzija jednog paketa, tako da mi je problem i dalje aktuelan.
pascal.73 zzile,
Voleo bih da mi posaljes konvertor TPU -> OBJ , pa makar bio i za tp4.0 jer imam i tu verziju junita. Unapred hvala.
pascal.74 stomic,
$>> problem da ta procedura radi, ali ne vidi dobro $>> parametre deklarisane takođe u okviru P1. $ $ Parametri deklarisani u okviru P1 nalaze se na steku. Kako $ je trenutak nastanka greške nepredvidiv, exitprocedura ne $ može da zna koliko su 'daleko' parametri iz P1 i logično $ je da ih ne vidi dobro (meni bar). Baš tako :). A i kada nastane exitproc, IP može da bude bilo gde u programu, tako da parametri deklarisani u okviru P1 ne moraju biti ni na steku. ST.
pascal.75 dejanr,
Na žalost, i novi BP 7.0 ima "problema" sa onih 64 K. Džabe DPMI kad kod radi i na 286, a tamo je i dalje 64K po deskriptoru :( No više nema limita za podatke, pa mogu da se rade ovakve stvari ako su potrebne veće strukture: program BigStuff; uses Objects, WinAPI; type PBigData = ^TBigData; TBigData = object(TObject) NumRecs: Longint; RecSize: Word; Start: Word; constructor Init(ANumRecs: Longint; ARecSize: Word); destructor Done; virtual; procedure GetSetData(Index: Longint; var Data; SetData: Boolean); virtual; end; constructor TBigData.Init(ANumRecs: Longint; ARecSize: Word); begin TObject.Init; NumRecs := ANumRecs; RecSize := ARecSize; Start := GlobalAlloc(gmem_Moveable, RecSize * NumRecs); if Start = 0 then Runerror(201); end; destructor TBigData.Done; begin TObject.Done; GlobalFree(Start); end; procedure TBigData.GetSetData(Index: Longint; var Data; SetData: Boolean); var Selector, Offset: Word; P: Pointer; begin if Index >= NumRecs then begin RunError(201); end; Index := Index * RecSize; Selector := (Index div 65536) * SelectorInc + Start; OffSet := Index mod 65536; P := GlobalLock(Selector); P := Ptr(Selector, Offset); if SetData then Move(Data, P^, RecSize) else Move(P^, Data, RecSize); GlobalUnlock(Selector); end; type PBigInt = ^TBigInt; TBigInt = object(TBigData) constructor Init(ANumRecs: Longint); procedure PutItem(Index: Longint; Value: Integer); function GetItem(Index: Longint): Integer; end; constructor TBigInt.Init(ANumRecs: Longint); begin TBigData.Init(ANumRecs, SizeOf(Integer)); end; procedure TBigInt.PutItem(Index: Longint; Value: Integer); begin TBigData.GetSetData(Index, Value, True); end; function TBigInt.GetItem(Index: Longint): Integer; var Value: Integer; begin TBigData.GetSetData(Index, Value, False); GetItem := Value; end; var BI: TBigInt; begin BI.Init(200000); BI.PutItem(100000, 777); Writeln(BI.GetItem(100000)); BI.Done; end.
pascal.76 inesic,
> > Da li je mnogo komplikovano napraviti program koji će, > recimo, kada pritisnem u dos-u Alt-C da obriše ekran, npr. > Tj. kako napraviti rezidentan program. Ako je predugačko, > never mind, ali ako nekog ne mrzi bio bih mu veoma > zahvalan. I ja sam ovo odavno hteo da znam, ali sam se stideo :) da pitam. Zapravo me zanima kako napraviti rezidentan program, ali bez tamo nekih inlajnova, asmova, inkludova i sličnog. Mislim čist pascal bez izleta u asembler i C. Pošto u TP ima naredbi koje mogu da obave posao, bilo bi divno da se nađe neka dobra duša i veže nama, običnim smrtnicima, clrScr za Alt-nešto. Ivica
pascal.77 mjova,
> Da li je mnogo komplikovano napraviti program koji će, > recimo, kada pritisnem u dos-u Alt-C da obriše ekran, npr. pa mislim da ovo nije posebno komplikovano napraviti, ali sumnjam da si baš to hteo ;). ako ti je želja da na Alt-C obrišeš ekran, stavi alias u 4dos-u tako da na tu kombinaciju startuješ 'cls'. time si rešio problem ;) što se tiče rezidentnog programa, mislim da je dobro rešenje okačiti se na int 16 i kad se poziva neka određena (fn wait/getkey) fn proveriti da li se radi o zadatom tasteru i da li je trenutno u dosu (prompt). najbolja fora što ovo nije baš toliko sigurno jer se taster može uzeti i direktno iz bafera, ali je po meni kvalitetnije rešenje. bolje rešenje je okačiti se na int 9, izvršiti staru rutinu, i onda proveriti da li postoji nešto u baferu, ako postoji proveri da li je to hotkey i onda, ako jeste, proveri da li si u promptu, itd.
pascal.78 ssokorac,
─┼┤ Na žalost, i novi BP 7.0 ima "problema" sa onih 64 K. Džabe DPMI Je l' BP 7.0 isto što i TP 7.0? :)
pascal.79 dejanr,
>> Je l' BP 7.0 isto što i TP 7.0? :) Nije! Kao i kod C-a, Borland deli paskal na "veliki" i "mali". BP 7.0 je "veliki i skup" a TP 7.0 "mali i skup". Ovaj, "mali i jeftin" ;)
pascal.80 predragd,
> Voleo bih da mi posaljes konvertor TPU -> OBJ , pa makar > bio i za tp4.0 jer imam i tu verziju junita. Unapred > hvala. To što tražiš se nalazi u poruci 6.50. Peđa.
pascal.81 predragd,
> Da li je mnogo komplikovano napraviti program koji će, > recimo, kada pritisnem u dos-u Alt-C da obriše ekran, npr. > Tj. kako napraviti rezidentan Ja ću ti napisati takav program ako hoćeš, međutim moja biblioteka za rezidentne programe je glupava, tako da će ti programčić zauzimati minimum 12K RAM-a. Ako si još uvek zainteresovan javi se. Peđa.
pascal.82 vitez.koja,
#=> Da li je mnogo komplikovano napraviti program koji ce, #=> recimo, kada pritisnem u dos-u Alt-C da obrise ekran, #=> npr. Tj. kako napraviti rezidentan Nije tesko :) naprotiv na pocetku mu smanjis memoriju na minimum sa $M direktivom - npr. {$M 1024,0,0}. Odlucis na koji interapt ces da zakacis svoju proceduru, i odlucis se npr. za 9. Onda odlucis da li ces da pozivas starog vlasnika vektora (za int 9 moras), i ako hoces deklarises jednu promenljivu tipa procedure :) izgleda sasavo ali je zapravo ok. onda poredis sta treba sa vektorima, i zavrsis program se Keep(exitcode);. Najlakse je citati tastaturu direktno sa porta 60h, ali tad ne mozes da detektujes kombinacije tastera. Evo ti npr. program koji na pritisak na F12 brise ekran, a sa F11 ga aktiviras-dezaktiviras. {$M 1024,0,0} Program Cls; uses Crt,Dos; var KBD : procedure; Act : boolean; Procedure BrisiBre; interrupt; begin inline ($9C); KBD; if (Port[$60]=88) and Act then begin ClrScr; Sound(3000); Delay(20); NoSound; GoToXY(1,1); end; if Port[$60]=87 then Act:=not(act); end; begin SwapVectors; GetIntVec(9,@KBD); SetIntVec(9,Addr(BrisiBre)); writeln(' * vm * CLS *'); Act:=true; Keep(0); end. Jos ponesto... Proceduru na koju postavljas interapt moras da deklarises sa 'interrupt', da bi sacuvala flegove, registre i tako-to. kad zoves starog vlasnika vektora moras prvo da gurnes flegove na stek (PUSHF), jerbo se iz te procedure koju pozivas izlazi sa IRET (ili RETI? nisam bas siguran, nesto tako), koja prvo vrati flegove sa steka pa tek onda preda stafetu. U lepo ponasanje spada i da na pocetku vratis sve vektore na staro stanje sa SwapVectors - tp ih celu gomilu prikaci na sebe i ometa, izmedju ostalog, ctrl-break, sto nije pohvalnmo za rezidnetni program.
pascal.83 dejanr,
>> var KBD: procedure; >> inline ($9C); >> KBD; >> GetIntVec(9,@KBD); Svaka čast za ideju :) Ja to radio mnogo komplakovanije.
pascal.84 d.petrovic,
Ajde sad to prevedi na pseudo jezik (ceo primer) ili na C pa si zaradio sok od šargarepe :))
pascal.85 drpr,
-> I ja sam ovo odavno hteo da znam, ali sam se stideo :) -> da pitam. Zapravo me zanima kako napraviti rezidentan -> program, ali bez tamo nekih inlajnova, asmova, inkludova -> i sličnog. Mislim čist pascal bez izleta u asembler i C. -> Pošto u TP ima naredbi koje mogu da obave posao, bilo bi -> divno da se nađe neka dobra Ovih dana bi trebao da dobijem sorceove svi programa iz O'Brien-ove knjige o tp6.0 gde između ostalog stoji i kako napraviti svoj TSR te je dat primer screen savera koji se pali na određeno vreme. cope
pascal.86 mmile,
> Da li je mnogo komplikovano napraviti program koji će, recimo, > kada pritisnem u dos-u Alt-C da obriše ekran, npr. Tj. kako > napraviti rezidentan program. Ako je predugačko, never mind, > ali ako nekog ne mrzi bio bih mu veoma zahvalan. > Thanks, Stasha. Evo programa : {$m 1024,0,0} { Stack , Heap min., Heap max. } uses crt,dos; Procedure Main;interrupt; begin if (port[$60]=46) { Da li je pritisnut taster C } and (mem[$40:$17] and 8 = 8) { i da li je pritisnut Alt. } then clrscr; { ako jeste onda obrisi ekran } end; Begin SetIntVec($1c,@main); { ovim se svakih 18.5ms izvrsi } keep(0); { procedura main. } End.
pascal.87 isekulovic,
>> I ja sam ovo odavno hteo da znam, ali sam se stideo :) da >> pitam. Zapravo me zanima kako napraviti rezidentan program, ali Pogledaj fajl uz poruku pc.prog 4.562, zatim diskusiju u pc.soft trubo.pascal negde pri kraju teme i Moj mikro 9/91.
pascal.88 mjova,
> Procedure Main;interrupt; > begin > if (port[$60]=46) { Da li je pritisnut taster C } > and (mem[$40:$17] and 8 = 8) { i da li je pritisnut Alt. } > then clrscr; { ako jeste onda obrisi ekran } > end; jedini (manji) problem je to što se na portu za tastaturu nalazi *ispravan* znak samo ako se desio int 9 koji je uslovljen pritiskom na taster. sadržaj porta za tastaturu je različit zavisno od situacije: kad se generiše int 9, onda ima ispravan sadržaj. ovaj sadržaj ostaje gde je dokle god se kontroleru ne stavi do znanja da je znak preuzet, i dok se ne resetuje. kakav će sadržaj biti posle resetovanja to niko ne garantuje. kako si ovo okačio na čest int onda će se ovo verovatno i dešavati, ali nije ispravno rešenje.
pascal.89 vitez.koja,
#=> Ovih dana bi trebao da dobijem sorceove svi #=> programa iz O'Brien-ove knjige o tp6.0 gde izmedu #=> ostalog stoji i kako napraviti svoj TSR te je dat #=> primer screen savera koji se pali na odredeno vreme. Taj screen saver nije neka mudrost... Ima jednu globalnu promenljivu koja odbrojava, jednu proceduru vezanu za int 8 koja smanjuje tajmer, i jednu na int 9 koja ga postavlja na max i/ili restaurira ekran... Ni on ne zna da vrati alociranu memoriju :(
pascal.90 vitez.koja,
#=> Ajde sad to prevedi na pseudo jezik (ceo primer) ili na #=> C pa si zaradio sok od sargarepe :)) Nema problema, ali nemoj posle da se izvlacis na blokadu i kako nema sargarepe i tako to ;)))
pascal.91 ssokorac,
─┼┤ O'Brien-ove knjige o tp6.0 gde između ostalog stoji i kako ─┼┤ napraviti svoj TSR te je dat primer screen savera koji se pali ─┼┤ na određeno vreme. Nemoj da zaboraviš da pošalješ! :)
pascal.92 ssokorac,
─┼┤ je "veliki i skup" a TP 7.0 "mali i skup". Ovaj, "mali i jeftin" ;) Osim što je jedan veliki a drugi mali :), koje su razlike? Da li prg. u tp radi i u bp (obrnuto pretpostavljam da ne važi). Naravno, ne mislim na programe koje bi i običan pascal razumeo, nego neki tp egzotičan program? :)
pascal.93 ssokorac,
─┼┤ Program Cls; E, hvala ti mnoooogo :). Radi odlično, petnest minuta lupam F12 i oduševljavam se :). Još kad bi rekao i način za kombinacije tastera - dobiješ besplatno prvog supija koji bude koštao preko $100 O:).
pascal.94 drpr,
-> Taj screen saver nije neka mudrost... Ima jednu globalnu -> promenljivu koja odbrojava, jednu proceduru vezanu za int 8 -> koja smanjuje tajmer, i MA nisam mislio da je neka mudrost, ali za početak i učenje principa mislim da je sasvim ok. cope
pascal.95 dejanr,
>> > BP 7.0 je "veliki i skup" a TP 7.0 "mali i skup". Ovaj, "mali i >> > jeftin" ;) >> >> Osim što je jedan veliki a drugi mali :), koje su razlike? Ja na žalost nemam TP 7.0 (a nemam ni BP 7.0 ali bar imam beta verziju) tako da sve što ti kažem, kažem na osnovu vesti koje si i ti mogao da pročitaš u NOVOSTI/microb. Dakle, ako oni lažu mene i ja lažem vas :) BP 7.0 pravi aplikacije za Windows i za DOS, a u DOS-u može da pravi aplikacije koje rade na AT+ u protected modu (DPMI). Tada nema ograničenja za podatke (do 16 mega), ali je struktura i dalje ograničena na segment :( TP 7.0 je DOS pascal, dakle ništa Windows i ništa DPMI. BP može da pravi i neku vrstu DLL-ova za DOS, TP (izgleda?) ne može. Sve u svemu, TP 7.0 je "izrastao" iz TP 6.0, a BP 7.0 je nova stvar. >> Da li prg. u tp radi i u bp (obrnuto pretpostavljam da ne važi). Verujem da radi.
pascal.96 zolika,
>> I ja sam ovo odavno hteo da znam, ali sam se stideo :) da >> pitam. Zapravo me zanima kako napraviti rezidentan program, ali >> bez tamo nekih inlajnova, asmova, inkludova i sličnog. Mislim >> čist pascal bez izleta u asembler i C. Pošto u TP ima naredbi """""" Uzmi Modulu-2, imaš u TSR modulu procedure koje ti omogućuju da napišeš svoj TSR program. To se kod nas na fakultetu radi na vežbama (pisanje TSR programa).
pascal.97 vitez.koja,
#=> Još kad bi rekao i način za kombinacije tastera Testiras neki bit neke sistemske promenljive u biosovom segmentu za podatke ;))) valjda 40:nesto. I nekom od fajlova u direktorijumima sezama imas opis toga, ali u koje ne znamo ;)
pascal.98 janko,
> No više nema limita za podatke, pa mogu da se rade ovakve > stvari ako su potrebne veće strukture: > > program BigStuff; > (.. sledi listing ...) Za nas koji ne kapiraju, opiši u reč-dve kakve stvari... Ukapirao sam da zove neke njegove junite da bi radio to što radi, ali šta to radi i kako nisam. Dovoljno je da kažeš šta, kako nije bitno. ;)
pascal.99 ssokorac,
var p:žbyte; begin p:=ptr($40,$17); pž:=pž or 32 end. Ovime ću uključiti Num Lock, ali tek kada neki taster bude pritisnut :(. Na koji način mogu 'simulirati' pritisnuti taster, ili postoji drugi način uključivanja num locka? (osim da pritisnem num lock;).
pascal.100 inesic,
> Uzmi Modulu-2, imaš u TSR modulu procedure koje ti > omogućuju da napišeš Pa ti si genije. Koga da ubijem za modulu-2 koja će da radi na mom XTu? Ne tražim ja pascal džabe. (Tri prog. jezika u čamcu, a o asembleru da i ne govorimo.) Ivica
pascal.101 mmile,
> Na koji način mogu 'simulirati' pritisnuti taster, ili postoji > drugi način uključivanja num locka? (osim da pritisnem num > lock;). begin MemŠ$40:$17Ć:=memŠ$40:$17Ć or 32; end.
pascal.102 ppekovic,
>> Testiras neki bit neke sistemske promenljive u biosovom segmentu za >> podatke ;))) valjda 40:nesto. I nekom od fajlova u direktorijumima >> sezama imas opis toga, ali u koje ne znamo ;) 0417H: bit 0 p RIGHT SHIFT 1 p LEFT SHIFT 2 p CTRL 3 p ALT 4 l SCROLL LOCK 5 l NUM LOCK 6 l CAPS LOCK 7 l INSERT 0418H: bit 0 p LEFT CTRL 1 p LEFT ALT 2 p SYS REQ 3 l PAUSE 4 p SCROLL LOCK 5 p NUM LOCK 6 p CAPS LOCK 7 p INSERT p - pushed; l - locked Paya
pascal.103 ivans,
* trubo.pascal negde pri kraju teme i Moj mikro 9/91. ───── Je l' prosvir'o? :))) E, onda me je duboko razočarao! :))) I Borland i TP! :))) Pozdrav, Ivans. P.S. Bez teških punjenja! :))))
pascal.104 ssokorac,
─┼┤ podatke ;))) valjda 40:nesto. I nekom od fajlova u direktorijumima ─┼┤ sezama imas opis toga, ali u koje ne znamo ;) 40:17 :). Ajde neka dobra duša da kaže koji fajl (ako ga ima) ima sve te adrese?
pascal.105 vitez.koja,
#=> Pa ti si genije. Koga da ubijem za modulu-2 koja će da #=> radi na mom XTu? Ne tražim ja pascal džabe. (Tri prog. Pa nemoj onda da probiraš, da se nećkaš na inline i asm... Treba ti jedan jedini bajt, bilo kao inline ili asm, da bi napisao program u paskalu...
pascal.106 ssokorac,
─┼┤ 0418H: bit Thanks. Je si li to izvukao iz nekog fajla ili...?
pascal.107 mjova,
> ─┼┤ 0418H: bit > Thanks. Je si li to izvukao iz nekog fajla ili...? ma jok, zna napamet ;)
pascal.108 edge,
Yo! > Pa ti si genije. Koga da ubijem za modulu-2 koja će da radi Nemoj da ubijaš imenjače:))))...imam ja MODULU 2 ako ti treba. Ako si zainteresovan mail send edge. Ica.
pascal.109 dejanr,
>> Za nas koji ne kapiraju, opiši u reč-dve kakve stvari... >> Ukapirao sam da zove neke njegove junite da bi radio to što >> radi, ali šta to radi i kako nisam. >> >> Dovoljno je da kažeš šta, kako nije bitno. ;) Pa, problem je u tome što svaki element strukture mora da ima po jedan AT deskriptor a to znači 64 K :( U rečenom primeru je, u okviru procedure koja inicijalizuje objekat (TBigData.Init), sa GLOBALALLOC alocirao prostor koji može da bude veći od 64K, ali je veličina svakog recorda i dalje WORD tj. manja od 64 K. Glavna "mutljavina" je u proceduri TBigData.GetSetData gde deli broj sa 65536 da bi obračunao u kom je objektu pa onda odatle uzima element prava_adresa mod 65536. Inače, tu nisu izmislili ništa novo, istu tehniku koriste i u (sada već starom) TP for Windows.
pascal.110 dzakic,
> var p:žbyte; > begin > p:=ptr($40,$17); > pž:=pž or 32 > end. > > Ovime ću uključiti Num Lock, ali tek kada neki taster bude pritisnut :(. > Na koji način mogu 'simulirati' pritisnuti taster, ili postoji drugi način > uključivanja num locka? (osim da pritisnem num lock;). (odgovor je u potpunosti Vasin, ja ga samo prenosim ovde) Stvar je istorijske prirode. Na tastaturi originalnog XT-a sav taj light show nije postojao pa su se stanja lock-ova mogla menjati onako kako si i ti hteo: jednostavnim upisom u BIOS promenljivu. Na AT-u se situacija komplikuje: kakve fizičke veze ima sadržaj bilo koje memorijske lokacije sa stanjem tamo nekih LED-ova na jednom periferijskom uređaju? Nikakve! Znači, sem što ćeš poknuti šta ti treba na 0:417h, moraš sam i da pališ/gasiš odgovarajuće diode. E, tu su se pisci (nekih?) AT BIOS-a setili svih onih XT programa koji o ovome pojma nemaju, pa su se pobrinuli da s vremena na vreme provere stanje lock-ova zadato u 0:417h i dovedu stanje LED-ova u sklad sa time. Kod tebe to izgleda da obavlja int 9, dok je to kod mene očigledno osmica jer nema čekanja na pritisak tastera. Ipak, verovatno je bolje da sam obaviš taj posao: ---------------------------------------------------------------- program locks; uses crt; const light: array[0..3] of integer = ( 1, 4, 2, 4 ); var i: integer; procedure setlocks(CNS: integer); (* Parametar CNS se zove tako zato sto njegovi bitovi 2, 1 i 0 predstavljaju stanje Caps, Num i Scroll locka tim redom *) var i: integer; begin CNS := CNS and 7; mem[0:$417] := mem[0:$417] and $8F or CNS shl 4; port[$60] := $ED; delay(10); port[$60] := CNS end; begin i := 0; repeat setlocks(light[i]); i := (i+1) mod 4; delay(300) until keypressed end. ---------------------------------------------------------------- ps. Jel' će to novi Supi imati i grafiku? (Hi-Res 3x1 :)))
pascal.111 ssokorac,
─┼┤ ps. Jel' će to novi Supi imati i grafiku? (Hi-Res 3x1 :))) Naravno, šteta što ne mogu ovu četvrtu da ugasim, ali nju bar nemaju svi (on-line). :)
pascal.112 isekulovic,
>> Je l' prosvir'o? :))) E, onda me je duboko razočarao! :))) I Borland i >> TP! :))) :))))))) Crnjak je što sam ja video da sam otkucao trubo, obrisao to ali izgleda da sam ponovo napisao, odnosno da smo i ja i Borland zajedno prosvirali. :))))))
pascal.113 isekulovic,
>> :(. Na koji način mogu 'simulirati' pritisnuti taster, ili postoji >> drugi način uključivanja num locka? (osim da pritisnem num lock;). Pogledaj 'tpfast40' u nekom od direktorijuma. Ima to što ti treba i još mnogo više.
pascal.114 predragd,
Za rad sa bazama koristim neku TOPAZ v2.5 biblioteku koja radi samo na TP 4.0 i 5.0, i datira još od '89. Inače je mračno dobra, rutine su identične Kliperovim samo što su naravno brže. Postoji li novija verzija, ili nešto slično. Peđa.
pascal.115 dejanr,
Ima li možda neko listing RTL-a za Turbo Pascal da pogleda kako tačno radi generator slučajnih brojeva (ako je to tamo napisano)? Ja sam nešto kao disasemblirao, i došao do sledećeg: data_xx dw 8405h seedlow equ ... seedhi equ ... random proc near mov ax,ds:seedlow mov bx,ds:seedhi mov cx,ax mul cs:data_xx shl cx,1 shl cx,1 shl cx,1 add ch,cl add dx,cx add dx,bx shl bx,1 shl bx,1 add dx,bx add dh,bl mov cl,5 shl bx,cl add dh,bl add ax,1 adc dx,0 mov ds:seedlow,ax mov ds:seedhi,dx retn random endp Seedlow i seedhi je "u zbiru" onaj longint koji predstavlja seed, pominje se u Uputstvu. Ako se traži slučajan broj između 0 i NN, onda on "vulgaris" nađe ostatak pri deljenju dobijenog sl. broja sa NN. Nisam se nešto mnogo bavio testiranjem, ali mi, ako je ovo sve, to ne izgleda kao neki naročito dobar generator slučajnih brojeva :(
pascal.116 almi,
Da li neko može da mi napiše funkciju tipa Function Bajt:Boolean; ASM ---- ---- ---- End; Koja ispituje da li je u port[$03da] setovan neki bit. Hvala ALMI.
pascal.117 ssokorac,
Juce sam ukucao unit mouse iz Računara 84, ali imam jedan problem :(. Kada nacrtan nešto u boji, recimo, plavo, i onda predjem strelicom misa preko toga to pobeli :( Kako se to može izbeći? Thanks unapred. í Stasha
pascal.118 dejanr,
>> Da li neko može da mi napiše funkciju tipa >> Function Bajt:Boolean; >> ASM >> ---- >> ---- >> ---- >> End; >> Koja ispituje da li je u port[$03da] setovan neki bit. Da li baš mora da je ASM? Ja bih je napisao nekako ovako: function bajt: Boolean; begin bajt:=(port[$3DA] and $80)<>0 end; $80 bi testiralo najviši bit, za neki drugi ti treba neka druga maska. Takođe, nisam baš siguran da je ono <>0 nužno, ali nek stoji, "leba ne jede".
pascal.119 bdm.,
## Juce sam ukucao unit mouse iz Racunara 84, ali imam jedan problem :(. ## Kada nacrtan nesto u boji, recimo, plavo, i onda predjem strelicom misa ## preko toga to pobeli :( Nisam gledao pomenu UNIT, ali mozda je greska u sledecem. Kad nesto ispisujes na ekran moras udariti jedan MOUSE_Hide ili kako se vec zove jer ako se pacov tu nadje onda dolazi do takvih problema. Pokusaj MOUSE_Hide-Write-MOUSE_Show. BDM.
pascal.120 inesic,
> jezik da kupe knjigu "Programiranje na jeziku MODULA-2" > od Niklaus Wirth-a (koji je i otac module". Knjiga je > izdanje Mikro knjige. čao mi je što mi ništa drugo ne pada na pamet da kažem osim hvala za ovaj silni UL. (to je baš mogao i Moderator da kaže ali neima veze) Biće mi od koristi, zanimljivo izgleda. Uzgred, u vezi knjige: gde si je zadnji put video i pošto je? Ivica
pascal.121 zokalezic,
Hi Da li je moguće napraviti rezidentni program koji će napr na ALT nešto aktivirati neki drugi program.Konkretno da li je moguće napraviti nešto ovako Procedure Proba ; interrupt; .... ...... Exec ('drugiprog.exe'); ..... .. End;
pascal.122 ssokorac,
─┼┤ Pokusaj MOUSE_Hide-Write-MOUSE_Show. Znam za taj problem, pa sa tako i pisao. Nije u tome stvar :(.
pascal.123 vitez.koja,
#=> Juce sam ukucao unit mouse iz Racunara 84, ali imam #=> jedan problem :(. Kada nacrtan nesto u boji, recimo, #=> plavo, i onda predjem strelicom misa preko toga to #=> pobeli :( Koristi onaj _mouse.tpu, on sasvim fino radi...
pascal.124 vitez.koja,
#=> Da li je moguce napraviti rezidentni program koji ce #=> napr na ALT nesto aktivirati neki drugi program. Nije, bar ne kao sto si ti zamislio...
pascal.125 skoprivica,
fala puno, meni direktno ne treba, ali eto sada "imam" i to, nego samo jedna molba moderatoru, kada se ove arhive .arc budu prenosile u dir. neka budu .arj (garantujem 30% usteda). Aje... CTEBO.
pascal.126 ssokorac,
─┼┤ Koristi onaj _mouse.tpu, on sasvim fino radi... Rado, samo mi reci na koji _mouse.tpu misliš?
pascal.127 bulaja,
│Zao mi je sto mi nista drugo ne pada na pamet da kazem osim hvala za │ovaj silni UL. (to je bas mogao i Moderator da kaze ali neima veze) └─── Sprema se i moderator da kaze, samo prvo da pokupim sve to :). Nadam se da radi :), u kom slucaju ce ici u neki dir. HVALA Vilic-u na trudu.
pascal.129 sbrk,
Pošto sam pitao već par ljudi ovde na Sezamu za ovaj problem, i nisam dobio (zadovoljavajući) odgovor, reko' da ostavim pitanje ovde. Tek sam instalirao TP 6.0 kod mene i instalacija je prošla bez ikakvih prijava greški ili sličnih pojava, ali kad pomeram kursor u editoru TP-a, neprestano se markira prostor (pravi se reversnim), kao da je izabran blok, odnosno manifestacija je ista kao u Telemateovom editoru. Dobio sam savet da skinem ANSI iz config-a, ali to nije jer ga i nemam tamo :) Zna li neko kako da ovo ispravim?
pascal.130 kenza,
Hi! Zamolio bih nekog ko ima vremena i zeli da pomogne da se malo pozabavi jednim problemom: treba da napisemo program koji simulira chat izmedju 2 kompjutera preko kabla(najbolje bi bilo na COM1) Nasao sa neke fj-e u starim racunarima koje to rade preko bios-a ali to je dosta nepouzdano(na jednom kompu radi,na drugom ne :( ) Pozdrav,Kenza
pascal.131 dejanr,
Prvo, probaj da podigneš sistem sa "čistim DOS-om", dakle bez drajvera, rezidentnih programa i tako dalje. Probaj radi li tada normalno. Ako to ne pomogne, instaliraj ponovo TP. Ako ni to ne pomaže, verovatno imaš lošu verziju TP-a.
pascal.132 snemcev,
Kad smo već kod problema sa TP 6.0 Kad ga startujem, miš (inverzni kursor) je tu, al čim otvorim neki prozor i u njega učitam nešto, isti nestaje. Zašto, samo Bog i Borland znaju. Ili možda još neko zna?
pascal.133 stal,
­=> TP-a, neprestano se markira prostor (pravi se reversnim), kao da je ­=> izabran blok, odnosno manifestacija je ista kao u Telemateovom ­=> editoru. Dobio sam savet da skinem ANSI iz config-a, ali to nije jer ­=> ga i nemam tamo :) E pa, prvo stavi ansi pa ga onda skini... Tako ces da proveris da li su u pravu ovi sto su ti predlozili ;)
pascal.134 ssokorac,
─┼┤ izabran blok, odnosno manifestacija je ista kao u Telemateovom editoru. Meni se isto dešavalo na školskom XT-u i rešavao sam pritiskom (češće udarcem zbog stanja tastature) na oba shifta :). Probaj, možda i tu bude radilo.
pascal.135 vitez.koja,
#=> Rado, samo mi reci na koji _mouse.tpu mislis? Ovaj...
pascal.136 dejanr,
Probaj da promeniš drajver za miša i uzmeš neki noviji.
pascal.137 dejanr,
========== pascal/turbo #4620, from terjem, 1385 chars, Mon Dec 7 03:01:46 1992 Comment(s). ---------- TITLE: SHR bug in BP 7.0 You should all know that there is a bug in all Intel and AMD 386/486 CPU's, which gives wrong results if you try to use the SHRD opcode in 16-bit mode, with a shift count > 16. Unfortunately, this is used in BP 7.0's run-time library if you are running on a 386 or better processor. To work around this problem, you must make two small modifications to \BP\RTL\SYS\LONG.ASM, the RTL file that implements the support functions for LongInt arithmetic: ..... LongShr: CMP Test8086,2 JB @@1 .386 ; BUGFIX! SHRD AX,DX,CL failes if CL > 16! ; SHRD AX,DX,CL ; SHR DX,CL SHL EDX,16 ; New code MOV DX,AX ; SHR EDX,CL ; MOV AX,DX ; SHR EDX,16 ; New code RETF .8086 ..... LongShl: CMP Test8086,2 JB @@1 .386 ; BUGFIX! ; SHLD DX,AX,CL ; SHL AX,CL SHL EDX,16 ; New code MOV DX,AX ; SHL EDX,CL ; MOV AX,DX ; SHR EDX,16 ; New code RETF .8086 ...... I took part in the beta testing, but I found this problem after the end of the test period. After you make the modifications, just run this batch file to remake the *.TPL files: cd \bp\rtl make cd \bp\bin copy *.tpl *.sav copy ..\rtl\bin\*.tpl *.* Terje
pascal.138 vilic,
#> Uzgred, u vezi knjige: gde si je zadnji put video i pošto je? Ja sam knjigu kupio u maju. Koštala je tadašnjih 750 din. Kupljena je u Jugoslovenskoj knjizi. Ako je tamo nema, predlažem ti da pozoveš direktno Mikro knjigu i da ih pitaš da li im je ostao koji primerak. \bye
pascal.139 vilic,
#> nego samo jedna molba moderatoru, kada se ove arhive .arc #> budu prenosile u dir. neka budu .arj (garantujem 30% usteda). Lično koristim .arj, ali sam ovaj put slao originalne arhive, onako kako sam ih i ja dobio. Uzgred stacker mi za .arj prijavljuje da je stepen kompresije 1.2:1 dok za .arc 1.0:1 Da li zna neko zašto? \bye
pascal.140 ssokorac,
─┼┤ Ovaj... Hvala, ali imaš li neki veći? ;) (nije bilo ničega uz poruku:).
pascal.141 drpr,
-> Ja sam knjigu kupio u maju. Koštala je tadašnjih 750 din. -> Kupljena je u Jugoslovenskoj knjizi. Ako je tamo nema, -> predlažem ti da pozoveš direktno Ako se o O'brien-u radi ja sam je kupio pre dve nedelje za 15000 dinara u Jugoslovenskoj knjizi. fr
pascal.142 zddb,
>>prijava greški ili sličnih pojava, ali kad pomeram kursor u editoru TP-a, neprestano se markira prostor (pravi se reversnim), kao da je<< Nisi imao sreće da se obratiš pravom dijagnostičaru. Ko hoće da rješava hardverske probleme izgleda da mora danas da dobija i nadahnuće od "Svetog Duha". Ako imaš VGA karticu, onda sam siguran šta je u pitanju. Moraš da staviš njen drajver koji zamjenjuje ANSI.SYS (EANSI.SYS ili slično). Ovo rješenje važi i za druge probleme sa bojama. Na primjer, kada promijenite karticu, vidite da onaj program što ga redovno koristite ima drugačije boje. Javi ako uspješ!
pascal.143 ssokorac,
─┼┤ Ako se o O'brien-u radi ja sam je kupio pre dve nedelje za ─┼┤ 15000 dinara u Jugoslovenskoj knjizi. Ne, radi se o Wirthovoj 'Moduli 2' :),a O'Brien sada košta u jugoslovenskoj knjizi 12.000 :). Ne znam da l' je pojeftinilo il' šta...:)
pascal.144 vitez.koja,
#=> Ovaj... Sorry :), zaboravio sam da zakacim sta treba :( Ali evo sad se ispravljam _.zip
pascal.145 d.petrovic,
Ă> Sorry :), zaboravio sam da zakacim sta treba :( Ali evo sad se Ă> ispravljam Nemoj više tako da se ispravljaš ;))
pascal.146 vitez.koja,
#=> Nemoj vise tako da se ispravljas ;)) ? ;>
pascal.147 d.petrovic,
Ă># => Nemoj vise tako da se ispravljas ;)) Ă> Ă> ? ;> Pa opet nisi ništa zakačio :)
pascal.148 ssokorac,
─┼┤ Sorry :), zaboravio sam da zakacim sta treba :( Ali evo sad se ─┼┤ ispravljam Ne bih da sam dosadan, ali opet si zaboravio ;).
pascal.149 vitez.koja,
#=> Pa opet nisi nista zakacio :) Je'l si siguran ? ;)))
pascal.150 vitez.koja,
#=> Ne bih da sam dosadan, ali opet si zaboravio ;). ;) Ma nisam, samo sam zakacio malo kasnije... pogledaj opet u tu poruku (na sezamu ne u soru)
pascal.151 almi,
Evo jedna igre pisane u pascalu pozdrav almi.
pascal.152 ssokorac,
─┼┤ ;) Ma nisam, samo sam zakacio malo kasnije... pogledaj opet u tu poruku ─┼┤ (na sezamu ne u soru) Ok, nadjoh, thanks, a sad reci - kako se to čudo koristi? :) Probao sam i sa mis.visible:=true; i sa mis.show(true); i sa mis.initialize(arrow); i sa mis.getmousedriver; ali ništa :(, neće da se pokrene :(.
pascal.153 ssokorac,
A za koju karticu je pisano, za Tandy? ;) I na Herc i na CGA i na EGA i na VGA kaže dva puta 'This mode is not supported by this card' :(
pascal.154 almi,
Startuj sa yublue p1 p1= svga driver 0-SVG256 1-svg16 2-svg32k 3-twk256 4-twk16 pr.:yublue 1 pozdrav almi ps.ako ima još nekih probleme reci mi pa ću ti poslati source da ga oprpobaš
pascal.155 pedjak,
> Probao sam i sa mis.visible:=true; i sa mis.show(true); i sa > mis.initialize(arrow); i sa mis.getmousedriver; ali ništa :(, neće da se Khm. Izvin'te nisam od početka pratio tok rasprave, ali kol'ko vidim treba vam neki dobar mouse unit.Imam unit koji vrlo lepo radi i u grafičkom i u tekstualnom modu, podržava čak i grafički mod HERCULESA, pa ako ima zainteresovanih mogu da UL.Izjasnite se.. pedja
pascal.156 peca.st,
!-> Khm. Izvin'te nisam od početka pratio tok rasprave, ali !-> kol'ko vidim treba vam neki dobar mouse unit.Imam unit koji !-> vrlo lepo radi i u grafičkom i u tekstualnom modu, podržava !-> čak i grafički mod HERCULESA, pa ako ima zainteresovanih mogu !-> da UL.Izjasnite se.. Otprilike i sa mnom je slicno, naime, nisam pratio od pocetka. Ako vam treba dobar mouse unit, ja koristim onaj iz valjda septembarskih racunara. Haos je, jednostavan je i radi. (samo na VGA) Ima sledece funkcije i procedure: - showmousecursor - hidemousecursor - getmouSEX - getmousey - area(x1,y1,x2,y2) Dakle ako hocete uploadovacu source! P e C a
pascal.157 inesic,
> grafičkom i u tekstualnom modu, podržava čak i grafički > mod HERCULESA, pa ako ima zainteresovanih mogu da --------- TOOOO! Pošalji, Pedja, nešto za nas smrtnike koji se još patimo sa HGC. inesic
pascal.158 ssokorac,
─┼┤ HERCULESA, pa ako ima zainteresovanih mogu da UL.Izjasnite se.. Pošalji, što da ne :).
pascal.159 ssokorac,
─┼┤ ps.ako ima još nekih probleme reci mi pa ću ti poslati source da ga Fina igrica, baš lepa ideja. Samo još malo šminku da doteraš i pravila napiši malo duža, da se razume o čemu se radi :). Sve sam ukapirao osim zašto ponekad pred kraj partije kurzor ode u gornmji Ćošak i onda ja moram da ubodem nekih -11 koje je inače komp trebao da uzme? :) Kad se pomeram levo-desno, obriše se okvir polja preko koga sam prešao. Nisam primetio ništa drugo da ne valja, samo, kao što već rekoh, malo šminke dobro dodje :). Znaš već, neki naslovčić gore, kad kaže ko je dobio neka kaže za koliko poena, pa onda upisivanje imena igrača...itd. Ah, da, bilo bi lepo da crvene pruge idu, recimo, suprotno od plavih, ovako na mono monitoru jedva razlikujem pozitivne od negativnih :).
pascal.160 ssokorac,
─┼┤ Dakle ako hocete uploadovacu source! Nema potrebe, već ga je neko poslao... Po mogućnostim je sigurno najbloji onaj _.zip koji je poslao vitez.koja ali samo kad bi još rekao kako radi :). Ima nekih 15-tak procedura, različite oblike strelice i sl/
pascal.161 bdm.,
## grafickom i u tekstualnom modu, podrzava cak i graficki mod ## HERCULESA, pa ako ima zainteresovanih mogu da UL.Izjasnite se.. Ako daje strelicu na HERCULES-u, obavezno. BDM.
pascal.163 ilazarevic,
> grafičkom i u tekstualnom modu, podržava čak i grafički mod > HERCULESA, pa ako ima zainteresovanih mogu da UL.Izjasnite se.. Bravo majstore! Pošalji ga čim prije :)
pascal.164 skerl,
Bilo je dosta price o mouse unit-ima. Evo jednog, pa vidite da li da ga upload-ujem. Pozdrav, Skerl. -------- William C. Thompson (wct@po.cwru.edu) KEYDEF - Definitions for keys in XCRT MATH - Unit for several math functions MISC - File exists, timer, and a few miscellaneous things MOUSE - Mouse unit STRINGS - Some string manipulation stuff XCRT - Extension of CRT graphics, makes your life a lot easier XGRAPH - Saving/recalling graphics images, cool drawing routines, fractal line drawing, and more Note: some of the routines may look very familiar - occasionally I incorporate a few procedures and functions I find particularly useful into my units. ---------- PROCEDURE InitMouse(VAR Buttons : word; VAR Err : boolean); { Initializes the mouse driver. Call: nothing Returns: Buttons = number of mouse buttons Err = false if mouse support is available, true otherwise Note: * After a call to this function the driver is initialized to the following state: - Mouse pointer at screen center and hidden. - Display page is set to zero. - Mouse pointer shape set to default arrow shape in graphics modes, or reverse block in text modes. - User mouse event handlers are disabled. - Light pen emulation enabled. - Mouse sensitivity set to default vales (see SetMouseSense) - Pointer limits set to entire screen. - Set mouseon to false } PROCEDURE Showmouse; { Displays the mouse pointer, and cancels any pointer exclusion area. } PROCEDURE Hidemouse; { Removes the mouse pointer from the screen, but continues to track the position of the mouse. } FUNCTION ButtonPressed(Mask : word) : boolean; { Returns a true value if the specified button(s) is pressed. Call: Mask = bit mask of desired button(s) bit(s) Significance(if set) 0 left button 1 right button 2 center button 3-15 reserved(0) : True is button is pressed, false otherwise. Note: * The constants LeftButton, RightButton, CenterButton, and AnyButton can be used for the bit masking. They equal 1, 2, 4, and 7 respectivly. } PROCEDURE GetMousePosition(VAR Buttons, Horiz, Vert : word); { Returns the current mouse button status and pointer position. Call: nothing Returns: Buttons = mouse button status Horiz = horizontal (X) coordinate Vert = vertical (Y) coordinate Note: * Coordinates are in pixels regardless of the current display mode. Position (0,0) is the upper left corner of the screen. } FUNCTION MouseIn(x1,y1,x2,y2: word):boolean; { Returns true if mouse is within rectangle with upper-left corner (x1,y1) and lower-right corner (x2,y2). } PROCEDURE SetPointerPosition(Horiz, Vert : word); { Set the position of the pointer. The pointer is displayed in the new position unless it has been hidden using HidePointer or it is an exclusion area defined by SetPointerExcl. Call: Horiz = horizontal (X) coordinate Vert = vertical (Y) coordinate Returns: nothing Notes: * Coordinates are in pixels regardless of the current display mode. Position (0,0) is the upper left corner of the screen. * The position is adjusted if necessary to lie within the pointer limits set by SetLimits. } PROCEDURE GetPressInfo(Button : word; VAR Stat, Count, Horiz, Vert : word); { Returns the current status of all mouse buttons, and the number of presses and position of the last press for a specifed mouse button since the last call to this procedure for that button. The press counter for the button is reset to zero. Call: Button = button identifier 0 = left button 1 = right button 2 = center button : Stat = button status bit(s) Significance(if set) 0 left button is down 1 right button is down 2 center button is down 3-15 reserved(0) Count = button press counter Horiz = horizontal (X) coordinate of last button press Vert = vertical (Y) coordinate of last button press } PROCEDURE GetReleaseInfo(Button : word; VAR Stat, Count, Horiz, Vert : word); { Returns the current status of all mouse buttons, and the number of releases and position of the last release for a specifed mouse button since the last call to this procedure for that button. The release counter for the button is reset to zero. Call: Button = button identifier 0 = left button 1 = right button 2 = center button Returns: Stat = button status bit(s) Significance(if set) 0 left button is down 1 right button is down 2 center button is down 3-15 reserved(0) Count = button release counter Horiz = horizontal (X) coordinate of last button release Vert = vertical (Y) coordinate of last button release } PROCEDURE SetLimits(HorMin, HorMax, VerMin, VerMax : word); { Limits the mouse pointer to stay within a certian area. Call: HorMin = Minimum horizontal (X) coordinate HorMax = Maximum horizontal (X) coordinate VerMin = Minimum vertical (Y) coordinate VerMax = Maximum vertical (Y) coordinate Returns: nothing Note: * If both HorMin and HorMax are zero then then the previous horizontal limits remain unchanged; the same is true for VerMin and VerMax. } PROCEDURE SetPointerShape(Horiz, Vert : word; Buffer : pointer); { Defines the shape, color, and hot spot of the pointer in graphics modes. Call: Horiz = hot spot offset from the left Vert = hot spot offset from the top Buffer = pointer to mouse pointer image buffer Returns: nothing Note: * The pointer image buffer is 64 bytes long. The first 32 bytes contain a bit mask which is ANDed with the screen image, and the remaining 32 bytes are then XORed with the screen image. * The hot spot is relative to the upper left corner of the pointer image, and each offset must be in the range -16 to 16. In display modes 4 and 5, the horizontal offset must be an even number. } PROCEDURE SetTextPointer(PtrTyp, AND_Str, XOR_End : word); { Defines the shape and attributes of the mouse pointer in text modes. Call: PtrTyp = pointer type 0 = software cursor 1 = hardware cursor AND_Str = AND mask value (if PtrTyp = 0) or starting line for cursor (if PtrTyp = 1) XOR_End = XOR mask value (if PtrTyp = 0) or ending line for cursor (if PtrTyp = 1) Returns: nothing Notes: * If the software text cursor is selected, the masks in AND_Str and XOR_End are mapped as follows: Bit(s) Significance 0-7 character code 8-10 foreground color 11 intensity 12-14 background color 15 blink For Example, the following call would yeild a software cursor that inverts the foreground and background colors: SetTextPointer(0, $77FF, $7700); * When the hardware text cursor is selected, the values in AND_Str and XOR_End are the starting and ending lines for the blinking cursor generated by the video adapter. The maximum scan line depends on the type of adapter and the current display mode. } PROCEDURE GetMotionCount(VAR Horiz, Vert : word); { Returns the net mouse displacement since the last call to this procedure. The returned value is in mickeys; a positive number indicates travel to the right or downwards, a negative number indicates travel to the left or upwards. One mickey represents approximately 1/200 of an inch of mouse movement. Call: nothing Returns: Horiz = horizontal (X) mickey count Vert = vertical (Y) mickey count } PROCEDURE SetEventHandler(EventMask : word; Handler : pointer); { Sets the address and event mask for an application program's mouse event handler. The handler is called by the mouse drvier whenever the specifed mouse events occur. Call: EventMask = event mask Bit(s) Significance(if set) 0 mouse movement 1 left button pressed 2 left button released 3 right button pressed 4 right button released 5 center button pressed 6 center button released 7-15 reserved(0) Handler = Pointer to the handler procedure Returns: nothing Notes: * The user-defined handler is entered from the mouse driver by a far call with the registers set up as follows: AX mouse event flags (see event mask) BX button state Bit(s) Significance(if set) 0 left button is down 1 right button is down 2 center button is down 3-15 reserved(0) CX horizontal (X) pointer coordinate DX vertical (Y) pointer coordinate SI last raw vertical mickey count DI last raw horizontal mickey count DS mouse driver data segment * If an event does not generate a call to the user-defined handler because its bit is not set in the event mask, it is still reported in the event falgs during calls to the handler for events which are enabled. } PROCEDURE SetLightPen(On_Off : word); { Turns the light pen emulation by the mouse driver for IBM BASIC on or off. A "pen down" condition is created by pressing the left and right mouse buttons simultaneosly. Call: On_Off = true to enable or false to disable emulation. Returns: nothing } PROCEDURE SetPointerExcl(HorMin, VerMin, HorMax, VerMax : word); { Defines an exclusion area for the mouse pointer. When the mouse pointer lies within the specified area, it is not displayed. Call: HorMin = upper left X coordinate VerMin = upper left Y coordinate HorMax = lower right X coordinate VerMax = lower right Y coordinate Returns: nothing Note: * The exclusion area is replaced by another call to this procdure or cancelled by InitMouse and ShowPointer. } PROCEDURE SwapEventHandlers(VAR Mask : word; VAR Buffer : pointer); { Set the address and event mask for an application program's mouse event handler and returns the address and event mask for the previous handler. The newly installed handler is called by the mouse driver whenever the specified mouse events occur. Call: Mask = event mask Bit(s) Significance(if set) 0 mouse movement 1 left button pressed 2 left button released 3 right button pressed 4 right button released 5 center button pressed 6 center button released 7-15 reserved(0) Handler = Pointer to the handler procedure Returns: Mask = previous event mask Handler = pointer to previous handler Notes: * The notes for SetEventHandler describe the information passed to the user-defined event handler. Also see SetAltEventHandler. * Calls to the event handler are disabled with InitMouse or by setting an event mask of zero. } FUNCTION GetSaveStateSize : word; { Returns the size of the buffer required to store the current state of the mouse driver. Note: * also see SaveDrvrState and RestoreDrvrState. } PROCEDURE SaveDrvrState(Buffer : pointer); { Saves the mouse driver state in a user buffer. THe minimum size for the buffer must be determined by GetSaveStateSize. Call: Buffer = pointer to the user defined buffer. Returns: nothing Note: * Use this procedure before executing a child program (Exec), in case the child aslo uses the mouse. After the Exec call, restore the previous mouse driver state using RestoreDrvrState. } PROCEDURE RestoreDrvrState(Buffer : pointer); { Restores the mouse driver state from a user buffer. Call: Buffer = pointer to the user defined buffer. Returns: nothing Note: * The mouse driver state must have been previously saved into the same buffer with SaveDrvrState. The format of the data in the buffer in undocumented and subject to change. } PROCEDURE SetAltEventHandler(Mask : word; Handler : pointer; VAR Err: boolean); { Sets the address and event mask for an application program's mouse event handler. As many as three handlers with distinct event masks can be registered with this function. When an event occurs that matches one of the masks, the corresponding handler is called by the mouse driver. Call: Mask = event mask Bit(s) Significance(if set) 0 mouse movement 1 left button pressed 2 left button released 3 right button pressed 4 right button released 5 Shift key pressed during button press or release 6 Ctrl key pressed during button press or release 7 Alt key pressed during button press or release 8-15 reserved(0) Handler = Pointer to the handler procedure Returns: Err = false if successful, true otherwise Notes: * When this procedure is called, at least one of the bits 5, 6, and 7 must be set in Mask. * The user-defined handler is entered from the mouse driver by a far call with the registers set up as follows: AX mouse event flags (see event mask) BX button state Bit(s) Significance(if set) 0 left button is down 1 right button is down 2 center button is down 3-15 reserved(0) CX horizontal (X) pointer coordinate DX vertical (Y) pointer coordinate SI last raw vertical mickey count DI last raw horizontal mickey count DS mouse driver data segment * If an event does not generate a call to the user-defined handler because its bit is not set in the event mask, it is still reported in the event falgs during calls to the handler for events which are enabled. * Calls to the handler are disabled with InitMouse. * Also see SetEventHandler and SwapEventHandlers. } PROCEDURE GetAltEventAdrs(VAR Mask : word; VAR Handler : pointer; VAR Err : boolean); { Returns the address for the mouse event handler matching the specified event mask. Call: Mask = event mask (see SetAltEventHandler) Returns: Mask = event mask Handler = pointer to the alternate event handler Err = false if successful, true if not successful (no handler installed or event mask does not match any installed handler. Note: * SetAltEventHandler allows as many as three event handler with distinct event masks to be installed. This procedure can be called to search for a handler that matches a specific event, so that it can be replaced or disabled. } PROCEDURE SetMouseSense(Horiz, Vert, Double : word); { Set the number of mickeys per 8 pixels for horizontal and vertical mouse motion and the threshold speed for doubleing pointer motion on the screen. One mickey represents approximately 1/200 of an inch of mouse travel. Call: Horiz = horizontal mickeys (1-32,767; default=8) Vert = vertical mickeys (1-32,767; default=16) Double = double speed threshold in mickeys/second (default=64); Returns: nothing } PROCEDURE GetMouseSense(VAR Horiz, Vert, Double : word); { Return the current mickeys to pixels ratios for vertical and horizontal screen movement and the threshold speed for doubling of pointer motion. Call: nothing Returns: Horiz = horizontal mickeys (1-32,767; default=8) Vert = vertical mickeys (1-32,767; default=16) Double = double speed threshold in mickeys/second (default=64); } PROCEDURE SetMouseIntr(Flags : word); { Sets the rate at which the mouse driver polls the status of the mouse. Faster rates provide better resolution in graphics mode but may degrade the performance of application programs. Call: Flags = interrupt rate flags Bit(s) Significance(if set) 0 no interrupts allowed 1 30 interrupts/second 2 50 interrupts/second 3 100 interrupts/second 4 200 interrupts/second 5-15 reserved(0) Returns: nothing Notes: * This procedure is applicable for the InPort Mouse only. * In more than one bit is set in Flags, the lowest order bit prevails. } PROCEDURE SetPointerPage(Page : word); { Selects the display page for the mouse pointer. Call: Page = display page Returns: nothing Note: * The valid page numbers depend on the current display mode. } FUNCTION GetPointerPage : word; { Returns the current display page for the mouse pointer. } PROCEDURE DisableMouseDrvr(VAR Handler : pointer; VAR Err : boolean); { Disables the mouse driver and returns the address of the previous Int 33H handler. Call: nothing Returns: Handler = pointer to previous Int 33H handler Err = false if successful, true otherwise Notes: * When this procedure is called, the mouse driver releases any interrupt vectors it hase captured OTHER than Int 33H (which may be Int 10H, Int 71H, and/or Int 74H). The application program can COMPLETE the process of logically removing the mouse driver by restoring the original contents of the Int 33H vector with SetIntVec using the pointer returned by the procedure. * Also see EnableMouseDrvr. } PROCEDURE EnableMouseDrvr; { Enables the mouse driver and the servicing fo mouse interrupts. Call: nothing Returns: nothing Note: * Also see DisableMouseDrvr } PROCEDURE ResetMouseDrvr(VAR Buttons : word; VAR Err : boolean); { Resets the mouse driver and returns driver status. If the mouse pointer was previously visible, is is removed trom the screen, and any presoiusly installed user event handlers for mouse events are disabled. Call: nothing Returns: Buttons = number of mouse buttons Err = false if mouse support is available, true otherwise Note: * This procedure differ from InitMouse in that there is no initialization of the mouse hardware. } PROCEDURE SetMouseLang(LangNumber : word); { Selects the language that will be used by the mouse driver for prompts and error messages. Call: LangNumber = language number 0 = English 1 = French 2 = Dutch 3 = German 4 = Swedish 5 = Finnish 6 = Spanish 7 = Portuguese 8 = Italian Returns: nothing Note: * This procedure is only functional in international versions of the Microsoft Mouse drive. } FUNCTION GetMouseLang : word; { Returns the number of the language that is used by the mouse driver for prompts and error messages. Call: nothing Returns: language number (see above) Note: * This procedure is only functional in international versions of the Microsoft Mouse drive. } PROCEDURE GetMouseInfo(VAR MajVer, MinVer, MouseType, IRQ : word); { Returns the mouse driver version number, mouse type, and the IRQ number of the interrupt used by the mouse adapter. Call: nothing Returns: MajVer = major version number (6 for version 6.10, etc.) MinVer = minor version number (10 for version 6.10, etc.) MouseType = mouse type 1 = bus mouse 2 = serial mouse 3 = InPort mouse 4 = PS/2 mouse 5 = HP mouse IRQ = IRQ number 0 = PS/2 2, 3, 4, 5, or 7 = IRQ number }
pascal.165 skerl,
Ovo je interface deo drugog mouse unit-a. Da saljem i njega? Pozdrav, Skerl. procedure initMouse; {when replacing mouse mode do that..!} procedure showMouseCursor; procedure hideMouseCursor; function getMouseX : word; function getMouseY : word; function getButton(Button : Byte) : buttonState; function buttonPressed : boolean; procedure setMouseCursor(x,y : word); function LastXPress(Button : Byte) : word; function LastYPress(Button : Byte) : word; function ButtonPresses(Button : Byte) : word; {from last last check} function LastXRelease(Button : Byte) : word; function LastYRelease(Button : Byte) : word; function ButtonReleases(Button : Byte) : word; {from last last check} procedure mouseBox(left,top,right,bottom : word); {limit mouse rectangle} procedure graphicMouseCursor(xHotPoint,yHotPoint : byte; dataOfs : pointer); procedure HardwareTextCursor(fromLine,toLine : byte); procedure softwareTextCursor(screenMask,cursorMask : word); function recentXmovement : direction; function recentYmovement : direction; procedure setArrowCursor; procedure setWatchCursor; procedure setUpArrowCursor; procedure setLeftArrowCursor; procedure setCheckMarkCursor; procedure setPointingHandCursor; procedure setDiagonalCrossCursor; procedure setRectangularCrossCursor; procedure setHourGlassCursor; procedure setNewWatchCursor; procedure setEventHandler(mask : word; handler : pointer); procedure setDefaultHandler(mask : word); procedure enableLightPenEmulation; procedure disableLightPenEmulation; procedure defineSensetivity(x,y : word); procedure setHideCursorBox(left,top,right,bottom : word); procedure defineDoubleSpeedTreshHold(treshHold : word); procedure disableTreshHold; procedure defaultTreshHold; procedure setMouseGraph; procedure resetMouseGraph; procedure waitForRelease(timeOut : word); procedure swapEventHandler(mask : word; handler : pointer); { return old in lastMask and lastHandler } function getMouseSaveStateSize : word; procedure interceptMouse; { get mouse from interrupted program, and stop it .. } procedure restoreMouse; (* mouseLib - Release 2 *) (* *) (* because of quirks in hercules graphic mode that is not detectable *) (* by the mouse driver we have to know when we initMouse if we want *) (* to check for graphic mode or not, if we do we must perform a *) (* setMouseGraph before initGraph, to initGraph in text mode we must *) (* resetMouseGraph before.. , if these calling conventions are not *) (* taken we might have problems in hercules cards! *) (* *) (* each call to hideMouseCursor must be balanced by a matching call *) (* to showMouseCursor, 2 calls to hideMou.. and only 1 to showM.. *) (* will not show the mouse cursor on the screen! *) (****************************************************************************** * MouseLib * * second release, written by Loewy Ron, AUG 90 * * Third release, TP6.0 asm support, LR Jan 91. * * Fourth release, added functions, LR May 91. * * Fifth release, added intercept, release functions, Jun 91. * ******************************************************************************) mouseLib documentation file : mouseLib.doc, rel 5.0. last update : Jun. 12, 1991, LR. Whats new --------- - Added interceptMouse, restoreMouse procedures for TSR deactivation .. - Added setNewWatchCursor procedure. Introduction ------------ mouseLib is a Turbo-Pascal 6.0 mouse support unit, designed to provide event driven mouse support, using a standard (default) event handling mechanism. The unit includes all of the normal mouse library functions, (show, hide cursor, define tresh-hold, detect mouse etc..). mouseLib was used for over a year now, with many programs and products written by myself, and other programmers. The public-domain or shareware products that use this library, and that were released by me up to May. 91. include : app17 - menu application, txs12 - text search program, 3D110 & WWToolKit - (with Ishai Ben-Aroya), These programs use both text and graphic displays, the graphic applications use normal BGI. Technical documantation ----------------------- I will not give any technical documentation but the supplied source code, I have tried to document the code as good as I could, I used the best names I could think of to functions and procedures, and added explanations where- ever I felt the code was not trivial. If you intend to use this unit, you will have to look into the source code. 2 points I would like to mention - a.> use the setMouseGraph and resetMouseGraph before using the initMouse procedure, to choose if you want text or graphics mouse support. b.> look at the defaultHandler assembler routine, this is the heart of my event driven applications. (use setDefaultHandler to ...). Warranty -------- There is no warranty what so ever, The unit and docs. are supplied as is, The author (Loewy Ron), is not, and will not be responsible for any damages, lost profits, or inconveniences caused by the use, or inability to use this unit. The use of the unit is at your own risk. By using the unit you agree to this. General ------- mouseLib is copyrighted by myself, (c) Loewy Ron, 1990, 1991. I release the source, and it can be used for non-commercial programs, If you find mouseLib worthy, and plan to use it in a commercial product - please register mouseLib. (An order form is supplied - ORDER.TXT) No one but myself, is allowed to charge money for mouseLib, except then minimal distribution fees. What mouseLib lacks ------------------- There is no TSR support, because my Genius Mouse reference did not mention INT 033H functions 014h, 015h etc.., I will sit down and write support for these functions some time, unless some one else will be kind enough to do that, and mail me the update. The new release adds functions to save and restore the mouse driver state (release 4) (functions 14 & 15), but there is still no tsr support (that will probably need func. 17 & 18 hex.) Contact ------- You can contact me on what-ever you want to at my address at : Loewy Ron, Loewy Ron 9 Haneveem st. Or 20 Smolanskin st. Herzeliya, 46465, Haifa, 34366, Israel. Israel. Credits ------- Turbo-Pascal is a copyright of Borland International. (I Think just the BASM is worthy of the upgrade to TP6.0). Genius Mouse is a trademark of KUN YING ENTERPRISE CO.
pascal.166 skerl,
=============================== 8.17 PC.PROG.2:cpp peca.st, 24.12.Cet 00:59, 139 chr --------------------------------------------------------- Ako neko ima i ako ga ne mrzi molio bih da posalje source kod za manipulaciju *.gif, *.pcx, *.tif formata. Thanks! CU P e C a ----------------------------------------------- 8.17 --- Evo source za tp 6.0 Nadam se da ce pomoci. Pozdrav, Skerl. - A note on the PCX.DOC file - Upon writing the documentation for the objects contained in the PCX unit, I am attempting to use the format Borland has established in their Turbo Vision manual. I think it would be nice if all authors maintained consistancy and since Borland has established presedence, I copied their style. I sincerely hope Borland is not offended. What does everyone else say to this style of documentation? Files contained in this archive PCX.TPU - Turbo Pascal v6.0 compiled PCX unit EGA.TPU - EGA functions needed by PCX.TPU PCX.INT - Interface section of PCX unit EGA.INT - Interface section of EGA unit PCX.DOC - PCX unit object documentaion EGA.DOC - EGA unit documentation RUNPCX.PAS - Sample program for PCX unit Delete Ok PCX_READ.ME - This file Delete Ok SHAREWRE.TXT - A note on shareware, S.O.P Delete Ok TP208.PCX - Sample PCX file for use with RUNPCX.PAS Delete Ok CHESS.PCX - Sample PCX file for use with RUNPCX.PAS Delete Ok ------------ 11 files If you wish the source code for these programs/units please continue reading . . . - Please read SHAREWRE.TXT - As the author of these programs/units, I have spend considerable time in their developement. In an effort to be fair with the times as well as promote communications with other programmers, I am requesting a $1.00 reg- istration fee, plus $1.00 for diskette and handling. ( $2.00 total ) This registration fee will provide you with all source code for the programs/units included in this file. Additionally I will include a couple of free reference documents explaining the PCX file format and encoding/ decoding method. It will also entitle you to updates when and if they occur as well as telephone support ( I would be glad to hear from you ). I have thoroughly tested these programs/units before releasing and you should find them bug free, however . . . Also, ( I have to say this, argg! ) as with all shareware or freeware, the programs are for use as is. You may use them, distribute them, etc. but the author is not responsible for any problems incurred from their use, in part or in whole. If you distribute them please leave the contents as received. Thank You - your cooperation is appreciated. Send Registration to: Mark D. Rafn [71530,2307] Rt1 Box138A Two Harbors, MN 55616 USA (218) 834-5154
pascal.168 dejanr,
>> I am requesting a $1.00 registration fee, plus $1.00 for diskette >> and handling. ( $2.00 total ) This registration fee will provide >> you with all source code for the programs/units included in this file. Nazdravlje :( Ovu sumu bi (čak :) i svako od nas rado dao, ali kako da pošaljemo $2 u USA :(
pascal.169 djelovic,
Ima li Pascal programera zainteresovanih da nauče C na lak način? Naime, razmišljam da napišem jedan tekst "Sa Pascala na C u par koraka", ali ne znam da li to ljude zanima. Komments?
pascal.170 paki,
=> Ima li Pascal programera zainteresovanih da nauče C na lak => način? Naime, razmišljam da napišem jedan tekst "Sa Pascala na => C u par koraka", ali ne znam da li to ljude zanima. Komments? Zanima, kako da ne zanima! Ja znam Pascal osrednje (žalosno :) a hteo bih da probam i C, jer je u nekim stvarima bolji, ali me hvata jeza od pogleda na one silne nerazumljive izraze, tako svojstvene C-u... Daklem, piši što pre, please :))
pascal.171 pedjak,
> Pošalji, što da ne :). Evo mouse unita. Autor je moja malenkost pa ako budete imali neke probleme samo vičite... :) mouse.arj
pascal.172 kenza,
[;> Ima li Pascal programera zainteresovanih da nauce C na lak nacin? Naime, Of course da ima !To bi bilo bas zanimljivo :) Najzad da vidim sta znace oni icludeovi i ostali....
pascal.174 peca.st,
!-> Evo source za tp 6.0 !-> Nadam se da ce pomoci. !-> Pozdrav, !-> Skerl. To covece.... Ja napisao poruke u teme c i cpp iako prvenstveno radim sa TP-om jer nisam verovao da je neko to pisao i za TP. Dakle hvala ti ki bratu!!!! CU P e C a
pascal.175 peca.st,
!-> Ima li Pascal programera zainteresovanih da nauče C na lak !-> način? Naime, razmišljam da napišem jedan tekst "Sa Pascala !-> na C u par koraka", ali ne znam da li to ljude zanima. !-> Komments? Naravno, svakako, kako da ne... A jel' ce biti objavljeno u Racunarima??? P e C a
pascal.176 kuki,
> Ima li Pascal programera zainteresovanih da nauče C na lak način? Naime, > razmišljam da napišem jedan tekst "Sa Pascala na C u par koraka", ali ne > znam da li to ljude zanima. Komments? Zanima, naravno :) Thanks in advance Pozdrav, Vladimir
pascal.177 skerl,
Evo stize prvi mouse unit. Pozdrav, Skerl.
pascal.178 skerl,
Evo ga i drugi. Pozdrav, Skerl.
pascal.179 nikolas,
> Ima li Pascal programera zainteresovanih da nauče C na lak > način? Naime, razmišljam da napišem jedan tekst "Sa Pascala na > C u par koraka", ali ne znam da li to ljude zanima. Komments? Ima, piši! :)))))))
pascal.180 mjova,
> Nazdravlje :( Ovu sumu bi (čak :) i svako od nas rado dao, > ali kako da pošaljemo $2 u USA :( lepo, platiš $50 kao poštarinu ;)
pascal.181 skerl,
> Dakle hvala ti ki bratu!!!! Nema na cemu. Skerl.
pascal.182 peca.st,
Imam jedno pitanjce, vezano za grafiku u TP-u: Ima li neko neke *.chr fontove za Turbo Pascal osim ona cetiri sto se dobijaju uz njega??? Ima li neko neki font editor ili nesto slicno za editovanje tih fontova??? Ako imate posaljite, pliiiiiz!!!!!!!!!!!! Tenks. CU P e C a
pascal.183 peca.st,
Kad sam vec kod fontova.... Nabavio sam (mada je to verovatno vec bilo na Sezamu) neke cirilicne fontove za TP. Fontovi nisu *.chr, ima ih cetiri (normal, bold, italic, underlined), ali na zalost fontovi nisu vektorski vec bit-mapirani tako da imate samo jednu velicinu slova. Ne koriste se, naravno, graph.tpu procedure vec postoje njegove. Slova su lepa, ali kazem steta... So :))), ako nekome to treba neka kaze, pa da ih uploadujem!!! CU P e C a
pascal.184 pedjak,
Evo mouse unita. Autor sam ja pa ako budete imali nekih problema slobodno vičite... mouse.arj
pascal.185 oki.,
>> Ima li neko neke *.chr fontove za Turbo Pascal osim ona cetiri sto se >> dobijaju uz njega??? Ima li neko neki font editor ili nesto slicno za >> editovanje tih fontova??? Bio je na Sezamu program Font Editor (direktorijum, ili poruka?) kojim je moguće editovati/kreirati fontove .CHR za pascal (program ne radi na herkulesu). Dakle, ako nekom treba, neka javi pa ću ga okačiti. Pozdrav, 3OPAH.
pascal.186 ilazarevic,
> Ovo je interface deo drugog mouse unit-a. > Da saljem i njega? Ma okači sve đuture, neće biti velike štete (može samo da nam koristi :)
pascal.187 ilazarevic,
> Ima li Pascal programera zainteresovanih da nauče C na lak način? Naime, > razmišljam da napišem jedan tekst "Sa Pascala na C u par koraka", ali ne > znam da li to ljude zanima. Komments? Naravno da sam zainteresovan :) To je ono što sam odavno tražio, ali nikako da nađem. Dakle, kupujem taj broj Računara...
pascal.188 vitez.koja,
#=> Ok, nadjoh, thanks, a sad reci - kako se to cudo #=> koristi? :) Veruj mi, ne secam se :) Ali mogu da pogledam, ili jos bolje poslacu ovde ili tebi u mail program za crtanje koji sam ja pravio, i koji (fala jasno) koristi iskljucivo misa. Cini mi se da prvo ide Reset(boolean,byte)... Kad radis nesto na ekranu moras da iskljucis misa, pa kad zavrsis da ga opet ukljucis (show). ovo za graficki mod. Probao sam i sa mis.visible:=true Crni sinko... Pa prvo pravilo lepog ponasanja je da ne diras promenljive u objektu, narocito kad postoji procedura koja to radi za tebe ;)
pascal.189 vvelisavljev,
> Ima li Pascal programera zainteresovanih da nauče C na lak način? IMA!!!
pascal.190 peca.st,
!->> Dakle hvala ti ki bratu!!!! !-> !-> Nema na cemu. !-> Skerl. Inace, probao sam onaj tppcx i sve super radi. Jedina je mana sto pri ucitavanju slike ne mozes da navedes na kojoj gornjoj levoj koordinati ce se ona nalaziti. Ako moze i to opisi kako! CU P e C a
pascal.191 bearboy,
║ Ima li Pascal programera zainteresovanih da nauče C na lak način? Naime, ║ razmišljam da napišem jedan tekst "Sa Pascala na C u par koraka", ali ne znam ║ da li to ljude zanima. Komments? To, majstore !
pascal.192 dejanr,
Da li je neko probao sve (ili veći deo) mouse unit-a koji su proteklih dana pristigli? Kakva su iskustva? Može li se neki preporučiti kao "ultimate solution"?
pascal.193 dejanr,
>> Bio je na Sezamu program Font Editor (direktorijum, ili poruka?) kojim >> je moguće editovati/kreirati fontove .CHR za pascal Vidim da ima jedan takav u prethodnoj konferenciji PC.PROG, uz poruku 4.343. Poslao ga je predragd.
pascal.194 ssokorac,
─┼┤ Ima li neko neke *.chr fontove za Turbo Pascal osim ona cetiri sto se Pogledaj staru PC.PROG konferenciju poruke 4.729 i ranije...
pascal.195 ssokorac,
─┼┤ ovde ili tebi u mail program za crtanje koji sam ja pravio, i koji (fala Šalji...ovo neće nikako :(. ─┼┤ Crni sinko... Pa prvo pravilo lepog ponasanja je da ne diras promenljive ─┼┤ u objektu, narocito kad postoji procedura koja to radi za tebe ;) Ma, znam ja da postoji, ali kako ona nije uradila ništa pao sam u očaj i probao tako :).
pascal.196 ssokorac,
─┼┤ pristigli? Kakva su iskustva? Može li se neki preporučiti kao "ultimate ─┼┤ solution"? Ona dva koja je poslao skerl su sigurno namoćniji.
pascal.197 peca.st,
!-> Bio je na Sezamu program Font Editor (direktorijum, ili !-> poruka?) kojim je moguće editovati/kreirati fontove .CHR za !-> pascal (program ne radi na herkulesu). Dakle, ako nekom !-> treba, neka javi pa ću ga okačiti. !-> !-> Pozdrav, 3OPAH. Boli me uvo sto ne radi na Hercu jer ja imam VGA. :)))))))))))))) So, ti ga obavezno okaci pa da ga uzmem. CU P e C a
pascal.198 zokalezic,
Help Ako li zna neko šta mu dođe DOS Error #8 Pozdrav Zoran
pascal.199 skerl,
Evo jednog unit-a koji radi sa sprajtovima. unit Sprites; { Basically a simple and effective spriteengine for use with Turbo } { Pascal 6.0. (Does not require the GRAPH unit..) } { } { Designed for use with MCGA, VGA and compatibles. Works in mode } { mode $13 (320x200 with 256 simultaneously colours. } { } { Written by: } { Marius Kjeldahl } { Stud. post 104 } { N-7034 Trondheim - NTH } { Norway } { Ph. +47 7 58 91 11 } { e-mail: mariusk@lise.unit.no } { (at NTH - Norwegian Institute of Technology ) } { (dept. of Business and Information Technolgy) } { } { These routines are being distributed as shareware. To be used in,} { or as part of any commercial product, you have to become a } { registered user. As a registered user you will receive upgrades } { and rights to distribute these routines with your products. } { To become a registered user, you will have to send a letter with } { who you are and what product(s) will use these routines and } { make US$39 payable to the author (cheque or money..). } { } { } { If you have any suggestions or comments please do not hesitate } { to contact me. Have fun... } { } sprites.zip
pascal.200 mirossi,
=> Ima li neko neke *.chr fontove za Turbo Pascal osim ona cetiri sto => se dobijaju uz njega??? Ima li neko neki font editor ili nesto => slicno za editovanje tih fontova??? Ja imam Borlandov "stari" Quattro 2.0 i uz njega priložena 4 vektorska fonta u *.chr datotekama. Poslao bih ti ali se bojim da se to kosi sa "SEZAMOVIM ZAKONIKOM" Pozdrav Miroslav!
pascal.201 peca.st,
!->>> Bio je na Sezamu program Font Editor (direktorijum, ili !->>> poruka?) kojim je moguće editovati/kreirati fontove .CHR za !-> pascal !-> !-> Vidim da ima jedan takav u prethodnoj konferenciji PC.PROG, !-> uz poruku 4.343. Poslao ga je predragd. Jel' ima taj font editor mogucnost konverizije iz nekog drugog tipa fonta u *.chr font? CU P e C a
pascal.202 pedjak,
> Ima li neko neke *.chr fontove za Turbo Pascal osim ona cetiri sto se > dobijaju uz njega??? Ima li neko neki font editor ili nesto slicno za > editovanje tih Hm, ako imaš u blizini Quatro Pro uzmi od njega fontove,ima ih dosta a istog su formata kao i oni za TP. Što se tiče editora za fontove on postoji,čak sam ga i jedno vreme imao,ali od njega nema nikakve vajde ako nemaš EGA ili nešto jače...
pascal.203 ppekovic,
>> Poslao bih ti ali se bojim da se to kosi sa "SEZAMOVIM ZAKONIKOM" Kosi! Paya
pascal.204 ssokorac,
─┼┤ Ona dva koja je poslao skerl su sigurno namoćniji. Sad sam ih i probao. Prvi je nekako lepši, ali i drugi ima neke svoje prednosti. AKo treba izabrati jednog onda svakako prvi (wcunits) jer tu ima i još mnogo drugoh stvari osim miša. Još jedan primerak za budući pascal direktorijum :), zajednom sa onim chr editorom iz starog pc.proga.
pascal.205 ssokorac,
─┼┤ So, ti ga obavezno okaci pa da ga uzmem. Pa, imaš već jedan u starom PC.PROG-u, 4.343. (Sad će da pita kako da udje u stari pc.prog;).
pascal.207 peca.st,
!-> Hm, ako imaš u blizini Quatro Pro uzmi od njega fontove,ima !-> ih dosta a istog su formata kao i oni za TP. Što se tiče !-> editora za fontove on postoji,čak sam ga i jedno vreme !-> imao,ali od njega nema nikakve vajde ako nemaš EGA ili nešto !-> jače... QP ne koristim pa bi ti bas mogao da okacis te fontove. Sto se tice tog editora skinuo sam ga pre 5 minuta, a srecom imam VGA :)))) U vezi toga da li ce fontovi koje tako kreiram raditi na Herc-u??? CU P e C a
pascal.208 peca.st,
!->>> Bio je na Sezamu program Font Editor (direktorijum, ili !->>> poruka?) kojim je moguće editovati/kreirati fontove .CHR za !-> pascal !-> !-> Vidim da ima jedan takav u prethodnoj konferenciji PC.PROG, !-> uz poruku 4.343. Poslao ga je predragd. Malo pre sam skinuo taj program ali u njegovom doc fajlu pise da se uz njega dobija i nekoliko vec gotovih fontova, a od njih ni traga ni glasa. So, kako se distribuiranje nekompletnih arhiva ne slaze sa Sezamovom politikom mene zanima kako je ovo moglo da prodje. Kao obestecenje molio bih da neko uploaduje i ove fontove!!! CU P e C a
pascal.209 ssokorac,
─┼┤ Jel' ima taj font editor mogucnost konverizije iz nekog drugog tipa ─┼┤* fonta u .chr font? Ne, isključivo izmena i kreiranje .chr fontova.
pascal.210 peca.st,
!-> ─┼┤ So, ti ga obavezno okaci pa da ga uzmem. !-> !-> Pa, imaš već jedan u starom PC.PROG-u, 4.343. !-> !-> (Sad će da pita kako da udje u stari pc.prog;). Sokorac bre, sta ti imas protiv mene? Kao prvo, ja sam skinuo taj bgifont.arj iz STAROG pc.prog bez problema. Kao drugo, napisao sam zasto mi ne odgovara taj bgifont, odnosno on nije kompletan pa sam ja trazio da mi neko posalje kompletnu arhivu. Dakle, oladi bre malo, sta ti imas protiv (po)cetnika na sezamu??? CU P e C a
pascal.211 pedjak,
> Jel' ima taj font editor mogucnost konverizije iz nekog drugog tipa fonta >* u .chr font? Ne... Program omogućava samo editovanje postojećih i pravljenje novih *.chr fontova. BTW ima li neko *.chr fontove sa YU znacima ?
pascal.212 pedjak,
> Ona dva koja je poslao skerl su sigurno namoćniji. Onaj što sam ja poslao ima podršu iz HERCULES u grafičkom modu i veliki broj drugih procedura i funkcija. pedja
pascal.213 pedjak,
> Ako li zna neko šta mu dođe DOS Error #8 Može li malo pobliže da objasniš kako ti se ovo javlja i gde ?
pascal.214 pedjak,
Izvol'te jedan unit za manipulaciju za ZIP arhivama zip.arj
pascal.215 pedjak,
A evo i jedan unit za manipulaciju sa ARJ arhivama. arj.arj
pascal.216 pedjak,
> U vezi toga da li ce fontovi koje tako kreiram raditi na Herc-u??? Hoće !
pascal.217 dtadic,
>> Ako li zna neko sta mu dode DOS Error #8 Not enough memory. DT
pascal.218 vitez.koja,
#=> Ima li neko neke *.chr fontove za Turbo Pascal osim ona #=> cetiri sto se dobijaju Bilo je nekoliko fontova na jednom racunaru u skoli...
pascal.219 bulaja,
│So, kako se distribuiranje nekompletnih arhiva ne slaze sa Sezamovom │politikom mene zanima kako je ovo moglo da prodje. Kao obestecenje molio │bih da neko uploaduje i ove fontove!!! └─── Hoces li mozda sa slagom?
pascal.220 drpr,
-> Hoces li mozda sa slagom? PA mozda nije sa šlagom ali meni je danas nikola poslao neke fontove a nije ni slutio da su baš iz tog paketa! Slučajno sam pogledao file listing i video da se fontovi potpuno slažu pa reko ajd kad je peca.st toliko navalio da čoveku pošaljemo, pa možda proda i svoj prvi program ;))) (pitam se da li je kupio svoj prvi program za sad ) . cope chr.arj
pascal.222 drpr,
Pošto sam poslao neke fontove ajd sad ako može neko da baci par yu *.chr fontova. Mislim da se ovo ne kosi sa pravilima jer se oni u qp4.0 nula prave uz pomoć nekog dodatka koji je napravio neki brat slovenac , a program je sw pa mislim da se ne kosi sa pravilima :) (bear je pomenuo da ima negde oko 45 fontova pa bear javi se!!) cope
pascal.223 skerl,
> ─┼┤ Ona dva koja je poslao skerl su sigurno namocniji. > > Sad sam ih i probao. Prvi je nekako lepsi, ali i drugi ima > neke svoje prednosti. AKo treba izabrati jednog onda > svakako prvi (wcunits) jer tu ima i jos mnogo drugoh > stvari osim misa. Jos jedan primerak za buduci pascal > direktorijum :), zajednom sa onim chr editorom iz starog > pc.proga. Slazem se sa ssokorcem. Medjutim, ukoliko je moguce trebalo bi staviti svima na raspolaganje oba, pa neka se koriste po licnom nahodjenju. Koncepcijski su drugacije uradjeni i svaki ima svojih prednosti. Onaj prvi je interesantniji zbog dodataka, i samo zbog toga bi mogao da se preporucuje, ali je i drugi jako dobro uradjen. Moj savet je drzati ih u paru i koristiti po potrebi. Pozdrav, Skerl. p.s. Uskoro jos nesto za novi pascal dir :)
pascal.224 skerl,
> Izvol'te jedan unit za manipulaciju za ZIP arhivama Evo jos jednog unita za dezip. Pozdrav, Skerl. DeZip v2.0 (C) Copyright 1989 by R. P. Byrne The DeZip program included in this package is a Turbo Pascal (v5.0) implementation of a decompressor for ZIP format archives created with PKWare's PKZIP program. The syntax for the DeZip program is: DeZip [d:][\path\]zipname[.zip] [d:][\outpath] [filespec [...]] where 'zipname' is the name of the ZIP file from which members are to be extracted, 'outpath' is the name of a subdirectory into which all extracted members will be placed, and 'filespec' represents a DOS file specification (wildcards are allowed) limiting the extraction to one or more matching file names. The only command line parameter that is required is the name of the ZIP file to be processed. If no filename extension is supplied, '.ZIP' is assumed. If no outpath is specified, the current drive/subdirectory will be used. If no filespec(s) are entered, '*.*' will be assumed. Examples: * Extract all '.pas' files from the OneFile.Zip archive. Place each extracted member into the subdirectory e:\work: DeZip OneFile.Zip e:\work *.pas * Extract all files from the OneFile.Zip archive. Place all extracted members into the current subdirectory: DeZip OneFile ────────────────────────────────────────────────────────────────────────── LICENSE ────────────────────────────────────────────────────────────────────────── The DEZIP source and binaries ("software") are copyrighted. However, I am distributing this software for free and you are licensed to use this software without any charge. Redistribution of this software is encouraged. Please do share it with your friends, upload it to bulletin board systems, etc. However, as I am making this software available for free, you must do the same. You are not permitted by this license to request or accept any remuneration of any kind for this software. This prohibition extends to including my software with any other product or service for which money is charged. The only exceptions to this "don't charge for what I'm giving away for free" restriction are as follows: (1) Bulletin board systems or other electronic information services are permitted to make this software available for download and charge their customary fees, if any, for access to the service. (2) Users groups and other not-for-profit organizations that distribute this software may charge a reasonable fee to cover duplication and related costs. (3) There may be other situations not covered by this license where some charge for distribution would be appropriate. Contact me and we'll talk about it. But, this license does not authorize any such distribution without express, written permission from me in advance. You may distribute modified copies of my source and resulting executables (including programs derived from mine in other languages or for other operating systems) so long as you do so for free and pursuant to a license no more restrictive than this one. You must state that your software was derived from mine. But, please take credit for your improvements and blame for your mistakes by making it as clear as possible what changes you have made. Except as provided above, if you do wish to charge for my software or for any software derived from mine, then you must contact me for prior permission. In short, if you're going to ask for money, then we're going to share in whatever you receive. That's only fair. This software is distributed without warranties of any kind, express or implied, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. Should you wish to contact me, I can be reached via U.S. Mail at the following address: R. P. Byrne 5 Twin Elm Terrace Sparta, NJ 07871 rpb 07/31/89 dezip20.zip
pascal.225 skerl,
> p.s. Uskoro jos nesto za novi pascal dir :) Program za dump-ovanje tpu-ova za tp 6.0 INTRFC - Program to dump TPU files. (June, 1991) Version 1.32: Dumps TP 6.0 and TPW 1.0 format files. Written for the public domain by D.J. Murdoch (CIS 71631,122, Fidonet 1:221/177.40, or Internet dmurdoch@watstat.waterloo.edu.) INTRODUCTION I started INTRFC because I got a library of Turbo Pascal 4.0 subroutines which had some errors in the documentation. One of the functions wanted its arguments to be a special type, but the doc's didn't tell me which one. TP gave me an error message saying I wasn't using the right type, but wouldn't tell me which one to use either. I decided to decode the TPU file and figure out what TP wanted. Once I got started, it was hard to stop. So, I ended up writing INTRFC, which printed out almost all the information you'll ever need about the interface to a TPU unit. When I upgraded INTRFC to TP 5.5 files, I got carried away again. Version 1.2 dumped the complete file, not just the interface section. The release of TP 6.0 made it necessary to upgrade again. This one was easy: there aren't very many differences between version 5.5 and 6.0 .TPU files. I decided to fill in a couple of gaps in version 1.2, and the current one dumps everything in the file. However, I made a few mistakes in release 1.3; version 1.31 fixed those. Finally, TP for Windows, version 1.0, came out. I was amazed when version 1.31 almost worked; it turns out that the file format for TP6 and TPW1 is identical. There were a few errors in INTRFC 1.31 because some of the Windows features had never showed up; the current release, version 1.32, fills in those areas. I also cleaned up the display a bit. Because of the way INTRFC has been written, i.e. entirely by guesswork, there are probably special cases that it doesn't handle properly. That's one reason the source code is there - so other people can fix up my mistakes. (And if you do, please tell me - reports from users are how I found the bugs that version 1.31 fixed.) The other reason I included source code is because it will serve as a bit of documentation for the TPU file format: Borland will never publish it. They want to be free to change the format, tweaking performance when they can. (As you'll see if you study the .TPU design, the famous "obsolete .TPU" problem doesn't come from the frequent format changes; it's basic to the .TPU design itself. References to old SYSTEM and other units just can't be updated.) I hope others who may want to do completely different things to a TPU file will benefit from reading the source. One difficulty they're likely to have with a program written the way this one was is that comments are almost non-existent. If you have any short questions about it that you can't figure out, send them to me at one of the addresses above. USAGE: INTRFC /options unit where options are letters from the following: B - emitted code Bytes C - initialized Constant blocks D - coDe blocks E - routine Entry records G - emitted Global const bytes H - TPU Header I - Implementation section (if $D was used in compilation) L - proc/fn Locals (if $L was used in compilation) M - source line number map N - Names in interface O - Object VMT records R - Relocation records S - Source file records U - Unit list V - Var blocks W - Windows DLL list A - turn All options on Tpath - set the Turbo directory, where the TURBO.TPL and referenced units are kept Options are processed sequentially and toggle the display. E.G. To see all but the relocation records in the system unit, use INTRFC /AR /T\turbo SYSTEM The default is just the names in the interface section. LIMITATIONS There are tons of limitations to INTRFC. It doesn't know how to print any but the simplest types of constants. It won't print the values of typed constants. Etc. Etc. Etc. If you want it to do something differently just go ahead and change it! I recommend compiling with all possible checks turned on, since it's pretty easy to get lost in all those pointers. FILES The following files should be included in this package. INTRFC DOC This file TPU9 DOC TPU structure outline INTRFC EXE The executable INTRFC PAS Main program GLOBALS PAS Program globals HEAD PAS TPU header dumper NAMELIST PAS Prints interface section NAMETYPE PAS Type definitions for NAMELIST BLOCKS PAS Routines for code blocks, etc. SRCFILES PAS Prints source files & line numbers RELOC PAS Prints relocation records CODE PAS Code and const dumper DUMP PAS Various dump routines LOADER PAS Reads in .TPU and .TPL files UTIL PAS Various utility routines TEST1 PAS Test file TEST1 INC Test include file PARAMS PAS Parses parameters THAT'S IT! Have fun with INTRFC and Turbo Pascal. I'd like to hear of any novel uses. D.J. Murdoch
pascal.226 paki,
=> Dakle, oladi bre malo, sta ti imas protiv (po)cetnika na => sezamu??? Peco, samo polako. žovek nije ništa loše mislio (čak se i nasmejao u poruci :). Bar se nadam da nije ;))
pascal.227 dejanr,
Ne znam šta bih, u ime Uprave i, verujem, korisnika rekao osim VELIKO HVALA Ivanu (Skerl) na zaista zanimljivim datotekama koje nam je poslednjih dana poslao!
pascal.228 peca.st,
Malo pre sam nesto petljao u pascalu i zakljucio sledece: Onaj mouse unit koji je dat u jednom od skorasnjih brojeva Racunara odbija da radi zajedno sa svga256.bgi driverom! Naime, ja lepo inicijalizujem grafiku u rezoluciji 640*480 i 256 boja i onda na primer nesto iscrtam i ono lepo radi. E, a cim mu kazem ShowMouseCursor on se zbinguje, naime na ekranu se pojave razne gluposti i slicno. U cemu je problem???? CU P e C a
pascal.229 ssokorac,
─┼┤ Dakle, oladi bre malo, sta ti imas protiv (po)cetnika na sezamu??? Hm, nećemo sad o tome ko bi trebao da 'oladi' ;). Anyway, početnici često (stalno?:) pitaju kako se pristupa starim konferencijama pa sam se malo našalio... Inače, kada ostaviš poruku to ne znači da su je svi istog trenutka pročitali pa tako ni ja nisam mogao znati da tebi ne odgovara stari bgi editor, već ti treba šlag, ovaj, fontovi. ;)
pascal.230 ssokorac,
─┼┤ INTRFC - Program to dump TPU files. (June, 1991) Ovo je mnogo zgodno! Mislim da sada imamo dovoljno priloga za otvaranje pascal direktorijuma... Bgi editor, mouse units, tpfast, intrfc, wcunits, chr fontovi, a izgleda da će biti i još :).
pascal.231 ssokorac,
─┼┤ Onaj što sam ja poslao ima podršu iz HERCULES u grafičkom modu i ─┼┤ veliki broj drugih procedura i funkcija. Pa, eto, znači da budući pascal direktorijum već postaje pretesan :).
pascal.233 peca.st,
!-> Peco, samo polako. žovek nije ništa loše mislio (čak se i !-> nasmejao u poruci :). Bar se nadam da nije ;)) Pa on je ono (Sad ce da pita...) napisao tako da sam ja video kako slaze facu, ono otprilike, ' auuu, al je ovaj dosadan i glup..'. Mislim da to nije u redu da onako napise! CU P e C a P.S. Osim toga, nije napisao :) nego ;) a razlika ipak postoji!
pascal.235 peca.st,
!-> Pošto sam poslao neke fontove ajd sad ako može neko da baci !-> par yu *.chr fontova. Ja, kao sto vec napisah, imam cetiri cirilicna fonta za TP koji nisu *.chr. Jedina ali velika mana im je sto nisu vektorski, pa imate samo jednu velicinu. !-> (bear je pomenuo da ima negde oko 45 fontova pa bear javi !-> se!!) Bear, brzo se javljaj, jer sa 45 komada moze svasta da se uradi!!! CU P e C a
pascal.236 spantic,
> Ako li zna neko šta mu dođe DOS Error #8 Out of memory.
pascal.237 dejanr,
>> Ovo je mnogo zgodno! Mislim da sada imamo dovoljno priloga za otvaranje >> pascal direktorijuma... Slažem se. Direktorijum je otvoren, verujem da će Bulaja sledećih dana postepeno premeštati zanimljive priloge iz drugih direktorijuma i konferencija u njega.
pascal.238 skerl,
> VELIKO HVALA Nema na cemu. Nadam se da ce sve to koristiti. A hvala i tebi za pascal dir. Redovno cemo ga puniti. Pozdrav, Skerl.
pascal.239 ssokorac,
─┼┤ Ne znam šta bih, u ime Uprave i, verujem, korisnika rekao osim ─┼┤ VELIKO HVALA Ivanu (Skerl) na zaista zanimljivim datotekama koje Pridružujem se. Stvarno, svaka čast, gde ih nabavljaš?
pascal.240 lovro,
> Posto sam poslao neke fontove ajd sad ako moze neko da baci par > yu *.chr fontova. Ja sam sa Pingvina skinuo neke cirilicne fontove, ali nisu .chr, vec su pravljeni u vidu .tpu fajla, pa nisu vektorski. Ne znam da li to ima na Sezamu, jer sam novi i nisam stigao da pogledam. Kad smo vec kod toga, postoji li neki spisak fajlova na Sezamu? lovro
pascal.242 skerl,
> ─┼┤ Ne znam sta bih, u ime Uprave i, verujem, korisnika > rekao osim ─┼┤ VELIKO HVALA Ivanu (Skerl) na zaista > zanimljivim datotekama koje > > Pridruzujem se. Stvarno, svaka cast, gde ih nabavljas? Hvala, hvala, hvala. Stari dobri TRICKLE. Jel te interesuje muzika u background-u za SUPI? Dok on svira, ti picis svoje! Pozdrav, Skerl.
pascal.243 kenza,
[;> Bar se nadam da nije ;)) I ja mislim da nije (uopste)
pascal.245 ssokorac,
─┼┤ Kad smo vec kod toga, postoji li neki spisak fajlova na Sezamu? FAQ. :) Otkucaj sledeće ..pad cl(d;) ..dir /a & (ako hoćeš long opise onda dir /a /l &) .pad do
pascal.247 ssokorac,
─┼┤ Stari dobri TRICKLE. Jel te interesuje muzika u background-u ─┼┤ za SUPI? Dok on svira, ti picis svoje! Imam :). Ali, u svakom slučaju šalji za ostale. Za ovaj koji imam se izdaje beraboy kao autor pa neću da šaljem, ali možda je ista stvar ;).
pascal.253 ilazarevic,
> FAQ. :) Otkucaj sledeće Ovo turiti u velkam bilten za početnike :)
pascal.254 skerl,
Play music in the background. This unit gives you music capabilities with a BASIC syntax. The music will be played in the background, so your program can continue with other things. The music can also be played in the foreground. This unit is very easy to use. There are only three procedures and one function interfaced outwards. All the rest is automatic (installing, uninstalling, interpreting the music, etc.)! PlayMusic(string); Start playing a string of music in the background. The string is a normal character string containing music 'commands' as described below. If there is already music playing, then it is first shut off. All settings are reset to their default. PlayMusicForeground(string); Start playing a string of music, and wait for it to finish. If there is already music playing, then it is first shut off. All settings are reset to their default. This procedure simply calls the "PlayMusic" procedure, and then loops until MusicBusy (described later) is true. MusicOff; Turn music off. if MusicBusy then ... Return TRUE if there is currently music playing. The music-commands syntax is BASIC compatible THEORY. This unit installs itself in the timertick interrupt $1C (procedure "MusicNext"). With every timertick a buffer is checked. If there is any music to be played in the buffer, then a single note from the buffer is played. This unit was inspired by a (buggy and incomplete) public domain unit written by Michael Quinlan, 9/17/85. J.C. Kessels Philips de Goedelaan 7 5615 PN Eindhoven Netherlands ******************************************************************************* ) Interface procedure MusicOff; procedure PlayMusic(s : string); procedure PlayMusicForeground(s : string); function MusicBusy : boolean; Implementation tpmusic.zip
pascal.255 skerl,
Da li nekome treba unit za upravljanje joystick-om? Kratak je i upotrebljiv. Pozdrav, Skerl.
pascal.257 zokalezic,
>> Ako li zna neko šta mu dođe DOS Error #8 > > Može li malo pobliže da objasniš kako ti se ovo javlja i > gde ? Pa pišem neki program koji petlja sa grafikom i tu imam opciju za izlaz u dosshell.Evo i procedure Procedure Izlaz_dos; {$M $4000,0,0 } Begin CloseGraph; TextColor(15); Write('Otkucajte '); TextColor(14); Write('Exit '); TextColor(15); Write('za povratak u program'); Swapvectors; exec('c:\command.com',''); swapvectors; {$M 16384,0,655360} grafika; <---------------------------- Procedura za inicijalizaciju grafike End;{Izlaz_dos} Grešku javi tj. zaglupi komp kad dođe do exec dela tj napiše sve poruke ' Otkucaj Exit za povratak u program ' napiše MS-DOS 5.0 al nikad ne da prompt. Ne zaglupi ga totalno nego samo briše ekran i ispisuje poruku i tako u krug. Pozdrav Zoran
pascal.258 pedjak,
Evo još jedan prilog novootvorenom PASCAL diru.Ovo je unit za podršku XMS memorije i njeno korišćenje u sopstvenim programima. Pisan je za TP 6.0. Pošto ima ljudi koji ne koriste TP 6.0 (među njima sam i ja), prepravio sam unit tako što sam sve asm delove u procedurama prebacio u externe procedure tako da se unit može kompajlirati i sa ranijim verzijama TP-a. Ako ima zainteresovanih mogu da pošaljem i taj source. Function XMMPresent: Boolean; Function XMSErrorString(Error: Byte): String; Function XMSMemAvail: Word; Function XMSMaxAvail: Word; Function GetXMMVersion: Word; Function GetXMSVersion: Word; Procedure MoveFromEMB(Handle: Word; Var Dest; BlockLength: LongInt); Procedure MoveToEMB(Var Source; Handle: Word; BlockLength: LongInt); Function EMBGetMem(Size: Word): Word; Procedure EMBFreeMem(Handle: Word); Procedure EMBResize(Handle, Size: Word); Function GetAvailEMBHandles: Byte; Function GetEMBLock(Handle: Word): Byte; Function GetEMBSize(Handle: Word): Word; Function LockEMB(Handle: Word): LongInt; Procedure UnlockEMB(Handle: Word); Function UMBGetMem(Size: Word; Var Segment: Word): Word; Procedure UMBFreeMem(Segment: Word); Function GetA20Status: Boolean; Procedure DisableLocalA20; Procedure EnableLocalA20; Procedure DisableGlobalA20; Procedure EnableGlobalA20; Procedure HMAGetMem(Size: Word); Procedure HMAFreeMem; Function GetHMA: Boolean; tp-xms.arj
pascal.259 ssokorac,
─┼┤ Play music in the background. Ovo nije isto, ono čudo je sviralo modove :). Thanks!
pascal.261 ssokorac,
─┼┤ Da li nekome treba unit za upravljanje joystick-om? Ti baš znaš da iznenadiš čoveka :). Ma, što pitaš - šalji! P.S. Da sam SysAdm dao bih ti mesec dana pretplate :).
pascal.265 inesic,
> ─┼┤ Da li nekome treba unit za upravljanje joystick-om? > > Ti baš znaš da iznenadiš čoveka :). Ma, što pitaš - šalji! > > P.S. Da sam SysAdm dao bih ti mesec dana pretplate :). TOOOO! Apsolutno podržavam predlog. Ivanu mesec dana pretplate i još više dnevnog vremena. Ne verujem da će mu to pokriti trošak za skupo plaćenu hrpu telefonskih impulsa za silan UL, ali bi bilo lepo da bar neko u ovoj zemlji počne da ceni nečiju želju da nešto radi i da mu to omogući. Ne verujem da bi to bio prevelik gubitak za upravu SEZAMa. SysAdme! Opet te prozivam da daš svoje mišljenje! Ivica
pascal.266 bulaja,
U novootvoreni PASCAL direktorijum prebacene se neke stvari koje su poslednjih dana poslate u ovu conf, a narednih dana cu pogledati malo i sta ima uz stare poruke. Veliko hvala Skerlu na prilozima za Pascal dir.
pascal.267 skerl,
JOYSTICK Unit for Turbo Pascal (JSTICK.ARC) Public Domain by JonSoft Technologies Inc. This ARCHIVED file should contain - JOYSTICK.PAS - the JOYSTICK unit source code JOYSTICK.TPU - the JOYSTICK unit for TP 5.x (see notes!) JOYDEMO.PAS - joystick demonstration program JOYSTICK.DOC - this file! UP&CMING.DOC - Up & Coming releases from JonSoft Inc. COPYRITE.DOC - full copyright agreement ** NOTE - JOYSTICK.TPU is for version 5.x (5.0/5.5 etc) of Turbo Pascal and WILL NOT WORK with Version 4.x without recompilation. To use with version 4.x, load JOYSTICK.PAS into the editor and recompile it to disk. This unit WILL NOT WORK with version 3.x or below!!!!! *** Using JOYSTICK *** 1.1 Initialization If you are planning to use the joystick unit to retrieve X,Y, and button values from the joystick only, there is no need to call either of the initialization procedures. If you plan to use to 8-position converter routines (HORIZ, VERT- see procedure listings) then you should call either of the two initialization procedures. 1.2 Procedure listing FastInitJS Initializes the joystick without any messages and without requiring the joystick to be moved into the corners and the middle. This procedure is intended only for your personal programs, as not all joysticks will work with this procedure and very few will work with some adjusting of the joystick. BetterInitJS ( Range : byte ) Initializes the joystick MUCH more accurately than FastInitJS. Asks the user if he or she is using a joystick, and sets the variable Joyst to TRUE or FALSE accordingly. If a joystick is present, asks the user to place the the joystick in the upper-right-hand corner, center, and lower-left positions, pressing a button each time. RANGE specifies the fraction of total distance that the joystick should approximately cover before producing a reading other than zero in the Horiz and Vert procedures. For example, a range of 2 specifies that the joystick should travel 1/2 of the distance from the center to a direction before producing a reading. JoyX function (returns BYTE) Returns the X-coordinate of the joystick. JoyY function (returns BYTE) Returns the Y-coordunate of the joystick. Button1 function (returns BYTE) Returns 1 if button 1 is pressed, otherwise 0. Button2 function (returns BYTE) Returns 1 if button 2 is pressed, otherwise 0. Horiz function (returns SHORTINT) Returns -1 if the joystick is LEFT of the center, 0 if it is in the center, and 1 is it is RIGHT of the center. Vert function (returns SHORTINT) Returns -1 if the joystick is ABOVE the center, 0 is it is in the center, and 1 if it is BELOW the center. Horiz and Vert are useful in arcade games and other programs where the program must only know which general direction the joystick is pointing. 1.3 Variables CentX - byte; returns the X-center of the joystick; set on initialization. CentY - byte; returns the Y-center of the joystick; set on initialization. JoySt - boolean; return TRUE if a joystick was found upon initialization, FALSE otherwise. Defaults to TRUE. LET ME KNOW!!!! Let me know what you think of this and other JonSoft products. Write to: JonSoft Technologies Inc. 741 Daffodil Way Concord, CA 94518-2341 Or, write to Jonathan Suite via E-Mail : CompuServe : 72377,2463 PC-Link : FATHER JON Prodigy : VPFT10B tpjoystk.zip
pascal.268 skerl,
******************************************************************************* * xmsLib * * xms library for TP6.0, Loewy Ron 1991. * * Last update : Aug. 11, 1991 * ******************************************************************************* Introduction ------------ xmsLib implements the XMS 2.0 API for Turbo-Pascal 6.0. This package is a first step in a project I took that will allow me to use virtual memory references for data in turbo pascal, without the regular limitations of 640K. I have used this library in some in house projects, But I would like to comment that I have used heavily only the extended memory allocation functions. (I have not used the UMB functions). The source of information for the XMS API was the XMS specification Ver 2.0 from July 19, 1988, published and copyrighted by : Copyright (c) 1988, Microsoft Corporation, Lotus Development Corporation, Intel Corporation, and AST Research, Inc. procedure detectXMS; { look for xms existance, and sets global library variables } procedure setXMSHandlerAddress; procedure getXMSVersionNumber; function printXMSVersion : string; { a readable string .. } function printXMMVersion : string; { a readable string .. } function requestHMA : boolean; function releaseHMA : boolean; function globalEnableA20 : boolean; function globalDisableA20 : boolean; function localEnableA20 : boolean; function localDisableA20 : boolean; function queryA20 : boolean; procedure queryFreeExtendedMemory(var largestBlock, totalInK : word); function xmsLargestBlock : word; function xmsTotalFreeMemory : word; function allocateXMB(sizeInK : word; var handle : word) : boolean; function freeXMB(handle : word) : boolean; function moveXMB(structure : xmsMovePtr) : boolean; function moveXMBlock(len : longint; srcHandle : word; srcOfs : longint; dstHandle : word; dstOfs : longint) : boolean; function mainstgToXMB(len : word; fromPtr : pointer; toHandle : word; toOfs : longint) : boolean; function XMBtoMainstg(len : word; toPtr : pointer; fmHandle : word; fmOfs : longint) : boolean; function lockXMB(handle : word) : boolean; function unlockXMB(handle : word) : boolean; function getXMBInformation(handle : word; var lockCount, freeHandles : byte; var sizeInK : word) : boolean; function reallocXMB(newSizeInK, handle : word) : boolean; function requestUMB(sizeInParagraphs : word; var segmentOfUMB : word; var sizeAllocatedOrAvailable : word) : boolean; function releaseUMB(segmentOfUMB : word) : boolean; function xmsErrorStr : string; Notice : I use the term XMB to describe an eXtended Memory Block, where the XMS specification will discribe this block as EMB!. xmslibr1.zip
pascal.269 pedjak,
> $M $4000,0,0 > $M 16384,0,655360 Kompajlerska direktiva $M je globalnog tipa i utiče na program u celini i kao takva se piše samo jednom u programu,u principu na njegovom početku.Ako se kojim slučajem napiše više puta u programu stvarni efekat ima samo zadnja direktiva, u ovom slučaju $M 16384,0,655360 E sad,procedura Exec ne menja zauzeće memorije pre izvršavanja programa.Zato pri prevođenju programa koji koristi Exec treba smanjiti maksimalnu dužinu dinamičke memorije. Ako se to ne učini neće biti dovoljno slobodne memorije (DosError #8). Verzije operativnog sistema Novell Network manje od 2.01 ne podržavaju pozive DOS-a koje Exec koristi. Maksimalnu veličinu memorije smanji na onoliko koliko realno treba tvom programu.Takođe smanji i veličinu steka.16K za stek je mnogo, ne verujem da tvoj program baš zahteva toliki stek. Smanjenjem steka i program će postati kraći.Takođe zapamti da integrisana okolina tvom programa ostavlja nekih dvestotinjak kilobajta što često zna da bude malo tako da je jedini način za testiranje takvih programa prevođenje na disk i startovanje programa iz DOS-a. Izvini ako sam te ugnjavio... pedja
pascal.271 vitez.koja,
#=> Ovo nije isto, ono cudo je sviralo modove :). Thanks! probaj ovo : ..ma se vitez.koja mod_pas.arj **ili kako se vec zove** Iznenadices se kako dobro radi :)
pascal.272 vitez.koja,
#=> Ima li neko kartu sveta (granice) zapisanu (ili #=> nacrtanu) u nekom obliku koji bi mogao da citam iz TP-a #=> (i zatim iscrtavam, naravno:)? Imam ja kartu sveta pokupljenu iz Pc Globe-a, u .LBM slicici... Nije problem konvertovati u pcx ili sta vec...
pascal.273 ssokorac,
─┼┤ Imam ja kartu sveta pokupljenu iz Pc Globe-a, u .LBM slicici... Nije ─┼┤ problem konvertovati u pcx ili sta vec... Imam i ja u pcx takodje iz pcglobea :), ali meni treba nešto drugačije. Kada ja imam tu sliku ne mogu tačno da odredim gde je koordinata neke granice i slično., Trebalo bi mi nešto oblika xyxyxyxyxyxy pa onda ja samo čitam i lupam lineto(x,y) itd. :)
pascal.274 dejanr,
========== borland/turbo.pascal #6529, from tourville, 1435 chars, Mon Dec 21 20:30:15 1992 ---------- TITLE: Protected mode and Graphics I'm having some trouble using the GRAPH unit in protected mode. The program compiles and runs without error in DOS real mode. First of all, I have EGAVGA.BGI and LITT.CHR linked into the executable. Is that legal in protected mode? RegisterBGIDriver and RegisterBGIFont both return 0 in GraphResult, so I assumed it worked. The problem comes when I try to InitGraph. I am getting runtime error 202 (Stack Overflow) when the program gets to that point. If needed, I can post the code in question, but I'm hoping you'l just say "oh...do _this_ and it'll work fine." :) On another note...am I missing something, or is there no way to use the integrated debugger for protected mode programs? I dug out the docs on TDX and learned to work it, but it is really sloppy to have to jump from the IDE to the debugger and then back to the IDE and...well...you get the picture. Kinda makes me wonder at the I in IDE. Finally, some thanks...going from real mode to protected mode found two instances of me dereferencing a null pointer. While this isn't a problem in the code, they shouldn't be in there. Shame on me! :) I guess what I'm thinking is that maybe I should compile all of my programs for protected mode just to test for null pointer references. On the whole, BP7.0 is pleasing me...especially protected mode. It's awfully nice to see 15.1MB free on the heap. :) -See ya online! Chris T.
pascal.276 dejanr,
=============================== 6.287 PC.PROG.2:pascal (00687) dejanr, 31.12.žet 04:08, 5061 chr --------------------------------------------------------- ========== pascal/turbo #4622, from eliashim, 978 chars, Fri Dec 25 20:11:58 1992 Comment to 4590. ---------- Well we bought it lately at it does take almost 30MB of your HD (if you install it all) but it does support not only DOS but DPMI & Windows. It also got all the small utils that makes life easier like TASM TD / TDW & TDX for protected mode + TPROF / TPROFW + many other things. But the great thing is that the new BP/BPC works now in protected mode so you can debug large programs I mean even 640KB large things that I couldn't do with TP 6.0 not even with TP 7.0 (it also got the old TP inside). My program uses about 30 units and 10 asm objects so believe me it's big and you can also compile your program to all three platforms at once from BP plus you got a great browers for browsing all the objects you write or use like TV & OWL. Yes it costs but I think that if you got the space (HD) and the money it's worth it. Plus a small bug fixed is the delay that didn't work on fast PC's and some new features that I didn't get deep into them yet but they seem to be usefull. ========== pascal/turbo #4623, from eliashim, 124 chars, Fri Dec 25 20:15:19 1992 Comment to 4595. ---------- It's still limited and that's a shame , why couldn't they made a product like the BC++ 3.1 if it's already the same price.
pascal.278 paki,
ń> Evo jednog unit-a koji radi sa sprajtovima. Unit je super, samo...da bi napravio sprajtove treba ili da ih ukucavaš ručno u obliku text fajla (1.red ___ 2.red ____ itd.) što nije baš najzgodnije, ili da ih crtaš u Animatoru, što bi bilo OK. E sad, da li dotični Animator radi na 286/1Mb, a ako ne, ima li neki drugi program koji može da snima u tom formatu?
pascal.279 dtadic,
Evo spiska arhiva koje bi, po mom misljenju, svakako trebalo da se nadju u pascal direktorijumu. Sve se vec nalaze na Sezamu, samo nadlezni treba da ih prebace u \imbpc\pascal. QWIK55.ARJ - rutine za ispis na ekran WNDW55.ARJ - rad sa prozorima PULL55.ARJ - rad sa padajucim menijima ASYNC.ARJ - asunhrona komunikacija DT
pascal.280 ppekovic,
>> Trebalo bi mi nešto oblika >> >> xyxyxyxyxyxy >> >> pa onda ja samo čitam i lupam lineto(x,y) itd. :) ... tj. treba ti vektorska slika, učeniče matematičke gimnazije ;)))) Paya
pascal.281 ssokorac,
─┼┤ ... tj. treba ti vektorska slika, učeniče matematičke ─┼┤ gimnazije ;)))) Hvala, bivši učeniče matematičke gimnazije ;)). Otkud bi ja to znao da je to to :), sa geografije? :)
pascal.282 broker,
> pa onda ja samo čitam i lupam lineto(x,y) itd. :) Corel Draw radi sa PCX-ovima i ima jednu alatku (CorelTrace) koja bit mapiranu sliku pretvori u vektorsku (prepoznaje čak i boje i nijanse sivog). Takva slika se da pretvoriti u neki poznatiji vektorski format... Ovo je samo ideja...ko napravi nek javi jer i meni treba ;)
pascal.283 peca.st,
!-> pa onda ja samo čitam i lupam lineto(x,y) itd. :) Upravo će ti to lovro polati ako nađe. To sam inače ja radio pa znam kako izgleda. Dakle, postoji procedura crtaj(x,y:integer;s:string) koja iz filea s crta počev od tačke (x,y) neku krivudavu liniju. File s sadrži samo brojeve 1-9 bez 5 i onda crta jednu tačku čiji se položaj određuje u odnosu na prethodnu. Brojevi 1-9 označavaju sledeću tačku kao na numeričkoj tastaturi. Ja sam kao, što već negde rekoh, napravio te fajlove za sve kontinente i nekoliko granica. Pa ako lovro to negde iskopa on će ti poslati! P e C a
pascal.284 peca.st,
!-> Unit je super, samo...da bi napravio sprajtove treba ili da !-> ih ukucavaš ručno u obliku text fajla (1.red ___ 2.red ____ !-> itd.) što žoveče, zar ti je teško da napraviš proceduru koja bi imala ovakvo zaglavlje procedure u_file(x1,y1,x2,y2); i koja bi sa dela ekrana označenog sa (x1,y1)-(x2,y2) ispisivala u file boje tačaka koje se nalaze tu. To, ako ne znaš, uradiš u dva ciklusa, čitaš getpixel(i,j) i onda ga zapisuješ u file sa write(f,boja). Trebalo bi da radi! P e C a BTW, nisam skinuo taj program pa ne znam kakav mu je zapis ali sudeći po tvojoj poruci trebalo bi da radi ovako kao što sam napisao.
pascal.285 peca.st,
!-> Ovo je samo ideja...ko napravi nek javi jer i meni treba ;) Ja ne znam šta Lovro čeka, što ne šalje moj program koji radi, po mom mišljenju, baš ono što vama treba. Ja sam, kao što rekoh taj program obrisao a proverio sam i diskete i nema ga na njima. Dakle, LOVRO ŠALJI IM TO VEĆ JEDNOM !!!!!!!!!!!! P e C a
pascal.286 paki,
­> žoveče, zar ti je teško da napraviš proceduru koja bi imala ­> ovakvo zaglavlje ­> ­> procedure u_file(x1,y1,x2,y2); ­> ­> i koja bi sa dela ekrana označenog sa (x1,y1)-(x2,y2) ­> ispisivala u file boje tačaka koje se nalaze tu. To, ako ne ­> znaš, uradiš u dva ciklusa, čitaš getpixel(i,j) i onda ga ­> zapisuješ u file sa write(f,boja). Trebalo bi da radi! Ma to je lako uraditi, ali tu sliku prvo treba da nacrtam. A recimo da je crtam u PaintBrushu ili nečemu sličnom, morao bih da je snimam u .PCX, da je učitavam iz TP, crtam, skidam u file i tek onda ubacujem u moj program... Ovo je primenljivo na 3-4 sprajta, ali za dvadesetak komada postaje pravo mučenje.Ako neko zna(ima) bolje rešenje ili program, nek mi kaže. Fala...
pascal.287 paki,
­> ─┼┤ Play music in the background. ­> ­> Ovo nije isto, ono čudo je sviralo modove :). Thanks! Pa to čudo bi bilo lepo da se okači ovde, ako nije problem :))
pascal.288 lovro,
> LOVRO SALJI IM TO VEC JEDNOM !!!!!!!!!!!! Sta lupas? Kazes da si napravio program koji pretvara bitmap u vektorski? Jesl' ti lud? Lovro P. S. Stvarno ne znam sta treba da posaljem. Napisi mi, verovatno sam zaboravio. Krajnje sam ozbiljan.
pascal.289 lovro,
> nekoliko granica. Pa ako lovro to negde iskopa on ce ti > poslati! Imam ja to (moja verzija, po PeCinoj ideji), ali to nema nikakve veze sa vektorskom grafikom. To je obicno crtanje izlomljene linije. Lovro
pascal.290 vitez.koja,
#=> nije bas najzgodnije, ili da ih crtas u Animatoru, sto #=> bi bilo OK. E sad, da li doticni Animator radi na #=> 286/1Mb, a ako ne, ima li neki drugi program koji moze #=> da snima u tom formatu? Animator radi na 286, provereno...
pascal.291 predragd,
> Kada ja imam tu sliku ne mogu tačno da odredim gde je > koordinata neke granice i slično., Trebalo bi mi nešto > oblika > > xyxyxyxyxyxy > > pa onda ja samo čitam i lupam lineto(x,y) itd. :) Na TRICKE-u postoji direktorijum (ako ga nisu obrisali) pod nazivom WORLDMAP (ili nešto slično). U njemu sa nalazi programčić (source na TP), koji služi za prikazivanje mapa (koristi neki njegov levi format). Doduše nisam siguran da li taj format oblika koji bi tebi trebao, no ako si zainteresovan za prog, javi se. U prilogu su date mape svih kontinenata. Peđa.
pascal.292 melev,
║ Evo jedna igre pisane u pascalu Jel možes da mi kažeš bar u kom modu radi, jer meni kaže da moja kartica ne podržava taj mod? Inače imam RELATEK SVGA (1024x768).
pascal.293 ssokorac,
─┼┤ Pa to čudo bi bilo lepo da se okači ovde, ako nije problem :)) Ja bi vrlo rado, ali kao što rekoh, autor je bearboy, pa ako on smatra da je pd i da je dostupno svima, on će i poslati. Ja ne mogu.
pascal.294 ssokorac,
─┼┤ Jel možes da mi kažeš bar u kom modu radi, jer meni kaže da moja kartica ─┼┤ ne podržava taj mod? Inače imam RELATEK SVGA (1024x768). To sam i ja pitao :). Startuj sa yublue 1 Inače, predlažem nekom od nadležnih :) da pogledaju igru pa da je stave u FUN, zaslužila je. P.S. Samo ne znam zašto se zove Yublue? :)
pascal.295 wizard,
>> Inače, predlažem nekom od nadležnih :) da pogledaju igru pa da je stave >> u FUN, zaslužila je. Zaslužiće kad ispravi bag koji se javlja kad kombinuješ igranje tastaturom i mišem. :)
pascal.296 peca.st,
!-> Sta lupas? !-> Kazes da si napravio program koji pretvara bitmap u !-> vektorski? Jesl' ti lud? Ti Boga mi ne pratiš ovu conf redovno! Ne kažem ja da je moj program konverzija iz vektora u bitmap, nego da otprilike ima vektorski način zapisivanja. Do duše nije sa line kao obično nego sa tačkama ali ne kao koordinate u prostoru nego kao koordinate u odnosu na prethodnu tačku, što je ipak vektorski! E, a to što ne znaš šta treba da pošalješ znači da patiš od amnezije... Pa ti si mi sam predložio da to pošaljem a ja sam ti rekao da sam obrisao, a ti si onda rekao da si ti sačuvao! Dakle, pošalji im bre onu kartu sveta što sam ja radio kad sam hteo da pravim Risk! P e C a
pascal.297 peca.st,
!-> Ma to je lako uraditi, ali tu sliku prvo treba da nacrtam. Ja iskreno rečeno sve crteže crtam pešaka, dakle sa line, circle etc etc... Tako mi je najlakše jer mogu lako da se orijentišem. Do duše sada sam napravio neki moj DR Genius koji za sada koristim za interne potrebe ali ću ga uskoro kad ga malo doteram poslati na ZEZAM. U ostalom, zašto ti je težak onaj postupak što si ga opisao? Imaš lepo PCX sliku, imaš TP unit koji čita PCX i šta ti preostaje? Da otkucaš jednu naredbu! P e C a
pascal.298 peca.st,
!-> Imam ja to (moja verzija, po PeCinoj ideji), ali to nema !-> nikakve veze sa vektorskom grafikom. To je obicno crtanje !-> izlomljene linije. Dragi dečače, bit-map grafika je ona grafika (po meni) kod koje se koordinate svih tačaka odredjuju u odnosu na prostor, tj. koordinatni sistem. E vektorska grafika je ona (opet po meni) kod koje se tačka odredjuje u odnosu na prethodnu tačku, pa time zadavanjem samo početne tačke imaš koordinate svih ostalih. To se najčešće radi sa lineto(x,y) radi brzine, ali je i sa putpixel moguće to izvesti ako računaš u odnosu na tačku koju si malo pre nacrtao. Dakle, onaj moj program je poluvektorski, jer odredjivanjem jedne tačke na jednom kontinentu možeš izračunati koordinate svih tačaka na tom kontinentu ali ne i na celoj karti. Zadavanjem koodinate tačke na nekom drugom kontinentu dobiješ to isto za taj kontinent. Dakle, opet moram da se derem: ŠALJI TO VEĆ JEDNOM !!!!!! P e C a
pascal.299 janko,
(* > =============================== > 4.10 PC.PROG.2:basic > ndragan, 29.12.92. 14:56, 2168 chr > --------------------------------------------------------- > Neko veče deca nađoše stare crteže rađene svingografom. To je bilo neko > klatno čiji teg je tabla A4, na tablu se stavi list papira, na stalku je > klackalica sa mestom za umetanje flomastera, klatno se zaljulja, > flomaster se spusti i... dobije se šta se dobije. Pošto nikako nisam > uspeo da im objasnim da mi ne pada napamet da se po ovoj ciči zimi > zavlačim u garažu i pravim takvu napravu, izvukao sam se napisavši ovaj > program: *) (* Ovo je Turbo Paskal verzija ndraganovog programa za 'novogodišnje ukokavanje.' :) Nemam boje i ne znam qbasic pa sam prebacio program u ovaj jezik... Mrzelo me je da podešavam logično ponašanje sa bojama na svim karticama. Ko želi može sam da proba... Originalni komentari su sačuvani. Srećne nove godine želi vam Janko Kontrole: RAZMAK -- prelazi na novi crtež SVAKI DRUGI TASTER -- kraj *) uses crt,graph; const faktor=32767; jkfaktor=1.0/faktor; function rnd: real; begin rnd:=random(32767)*jkfaktor; end; FUNCTION qrnd( a: real; b : real):integer; begin qrnd := trunc(RND * (b - a) + a); end; var pi,p0,p1,p2,p3,p4,p5,p6 : real; s1, s2, max, t : real; ax, ay, bx, by, cx, cy, bx0, by0 : real; k : char; i : integer; c : word; tt1, tt2, tt3, tt4 : real; jkmax : real; var Gd, Gm : Integer; label 1,2,3; begin pi := 3.14159265359; p0 := 0; p1 := 0; p2 := 0; p3 := 0; p4 := 0; p5 := 0; p6 := 0; s1 := 0; s2 := 0; max := 0; c := 0; t := 0; ax := 0; ay := 0; bx := 0; by := 0; cx := 0; cy := 0; bx0 := 0; by0 := 0; Gd := Detect; InitGraph(Gd, Gm, ''); if GraphResult <> grOk then Halt(1); c:=getmaxcolor; randomize; repeat p0 := qrnd(1, 6) / qrnd(2, 7); (* fazni pomeraj *) p1 := RND * pi / 2; (* a ovo je pokušaj da se dobije dovoljno gust crtež *) IF p0 > 0 THEN p5 := 1 / p0 ELSE p5 := p0 ; p5 := p5 * (1 - p5) ; p3 := 1 + 0.01953125 * RND * p5 ; p5 := 0.001220703125 ; p4 := RND * 2 - 1 ; p6 := p5 / 2 ; s1 := RND * 2 - 1 ; s2 := RND * 2 - 1 ; max := 820 ; while keypressed do k:=readkey; c := 0 ; t:=max; for i:=1 to 2 do begin ax := SIN(t) + s1 ; ay := COS(t * p0 + p1) + s2 ; cx := ((ax * SIN(t * p5) + ay * COS(t * p6 + p4))) ; cy := ((ax * COS(t * p5) + ay * SIN(t * p6 + p4))) ; bx := ((cx * SIN(t * p3) + cy * COS(t * p3 + p4)) * t / max + 1) * 280 ; by := ((cx * COS(t * p3) + cy * SIN(t * p3 + p4)) * t / max + 1) * 180 ; (* c := 15 + (bx0 > bx) + 2 * (by0 > by) ; *) if keypressed then goto 2; bx0 := bx ; by0 := by ; t:=t-0.109375; end; jkmax := 1 / max; while (t>= max/4) do (* FOR t := max TO max / 5 STEP -.1 *) begin ax := SIN(t) + s1 ; ay := COS(t * p0 + p1) + s2 ; tt1:= t * p5; tt2:= t * p6 + p4; cx := ((ax * SIN( tt1 ) + ay * COS( tt2 ))) ; cy := ((ax * COS( tt1 ) + ay * SIN( tt2 ))) ; tt1:= t * jkmax * cx ; tt2:= t * jkmax * cy ; tt3:= t * p3; tt4:= tt3 + p4; bx := ((tt1 * SIN( tt3 ) + tt2 * COS( tt4 )) + 1) * 280 ; by := ((tt1 * COS( tt3 ) + tt2 * SIN( tt4 )) + 1) * 180 ; LINE (trunc(bx0), trunc(by0) ,trunc(bx), trunc(by)) (*, c*) ; (* c := 15 + (bx0 > bx) + 2 * (by0 > by) ; *) if keypressed then goto 2; bx0 := bx ; by0 := by ; t:=t-0.109375; end; 2: if keypressed then begin k:=readkey; if (k<>' ') then goto 1 else goto 3; end; for i:=1 to 90 do (* 90*0.1= 9 sec *) begin delay(100); (* 0.1 sec *) if keypressed then begin k:=readkey; if (k<>' ') then goto 1 else goto 3; end; end; 3:; clearviewport; until false; 1: closegraph; end. (* > Eto, najzad nekako ispada da sam i ja nekog nešto častio za Novu godinu > :) ili sam se bar izvadio za onaj dupli egzek ;). > > Ovo je QBasic, ali mislim da ladno može da se prebaci u bilo koji drugi > bejzik koji podržava grafiku. Odustao sam od bilo kakvog unosa brojeva - > lepše mi je da prepravim par linija u programu, nego da kojegde pamtim > zgodne brojeve od prošli put. > > Pustite ovo za vreme dočeka nek se vrti, smanjiće vam potrošnju pića. > Pretpostavljam da će se naći tipova koji će se ukokavati gledajući ove > zavrnute Lisažuove figure. Lepo se provedite. > ----------------------------------------------- 4.10 --- *)
pascal.300 .sima,
Šalji source :) Srđan
pascal.301 bulaja,
│Evo spiska arhiva koje bi, po mom misljenju, svakako trebalo da se │nadju u pascal direktorijumu. └─── Hvala na savetu, pogledacu sta tu ima.
pascal.302 lovro,
> SALJI TO VEC JEDNOM !!!!!! U redu, poslacu, samo dogovorite se prvo u kom formatu. Nudim: -.pic -.tif -.mac -.pcx -.gif -.bmp -.wpg -snimljena ekranska memorija (od $B000:$0000) (ovo je prilicno sporo) -snimljen kao pascal image (sa blockwrite). Uz zadnja dva saljem odgovarajuce procedure -... Obratite paznju da ja imam Hercules, pa ne znam sta bi od ovoga radilo na vasim Vegama. Ssokorac, izjasni se. Mapa sveta je namenjena tebi (trazio si). Lovro
pascal.303 skoprivica,
evo igre gomoku, tj. pet u redu, napisana je davno, davno (nisam ja), ima sors u TP (3.0 valjda, nisam probao radi li na kasnijim verzijama, ali ima i .exe :). Eto, mozda nekom bude koristilo. Aje... CTEBO. gomoku!.arj
pascal.305 bulaja,
│Inace, predlazem nekom od nadleznih :) da pogledaju igru pa da je │stave u FUN, zasluzila je. └─── Pogledao sam ja, ali mi se cini nekako suvise trivijalnom :), a ima i poneki bug :).
pascal.306 ssokorac,
─┼┤ Pogledao sam ja, ali mi se cini nekako suvise trivijalnom :), a ima ─┼┤ i poneki bug :). Pa, dobro, sačekajmo novu verziju u kojoj voziš mig-29 i kokaš B-52 dok ti gadjaju kuću svaki put kada pojedeš broj :), ili bar slično :).
pascal.307 darone,
>> evo igre gomoku, tj. pet u redu, (...) ima sors >> u TP (3.0 valjda, nisam probao radi li na >> kasnijim verzijama, ali ima i .exe :). Sors neće da se kompajlira sa višim verzijama TPa. Prepraviti ga nije problem. Znam o čemu se radi, iako nisi poslao arhivu :) darone
pascal.308 bearboy,
║ Ako li zna neko šta mu dođe DOS Error #8 Manjak slobodne memorije...
pascal.309 peca.st,
!-> U redu, poslacu, samo dogovorite se prvo !-> u kom formatu. žekaj malo, zar mi nisi rekao da si sačuvao i source? Ako jesi onda šalji one *.crt fajlove bre i sam pascal source a ne kao sliku bre. Ništa mu ne vredi ako mu ti daš bitmap sliku, on ako sam ja razumeo hoće sve lepo, kako treba. Nadam se da si razumeo! CU P e C a
pascal.310 ppekovic,
>> žekaj malo, zar mi nisi rekao da si sačuvao i source? Ako jesi onda šalji >> *.crt fajlove bre i sam pascal source a ne kao sliku bre. Ništa mu ne >> vredi ako mu ti daš bitmap sliku, on ako sam ja razumeo hoće sve lepo, >> kako treba. Ajte se lepo vas dvojica dogovorite o tome u mail-u, ili, pošto vidim da ste drugari, dogovorite se oči u oči pa kad se dogovorite onda lepo pošaljite to što treba da pošaljete. Paya
pascal.311 paki,
­> ─┼┤ Pa to čudo bi bilo lepo da se okači ovde, ako nije problem ­> :)) ­> Ja bi vrlo rado, ali kao što rekoh, autor je bearboy, pa ako ­> on smatra da je pd i da je dostupno svima, on će i poslati. Ja ­> ne mogu. Bearboy, reci da li si voljan da šilješ ili da upadam kod Staše u stan i nosim unit sa sve hard diskom ;)) Šalu na stranu, reci da li je to tvoje čedo pd&sw ili da se snalazimo...
pascal.312 skoprivica,
│ evo igre gomoku, tj. pet u redu, napisana je davno, davno Ispravih se, sada je zakaceno...
pascal.313 ldragan,
Ak▀o neko kojim slučajem ima "NDX.PAS" koji se pominje u časopisu Inside Turbo Paskal iz aprila 91' bio bih zahvalan da mi ga pošalje HPozdrav svima ! LDragan
pascal.315 ssokorac,
─┼┤ Nemo da diraš čoveka , baš mi se svidela igrica , jedva čekam ─┼┤ da dođe ćelavi kod mene ili ja kod njega pa da opalimo po jednu Samo se vi vežbajte, pa kad prepravi da radi preko modema, onda možete samo da se pognete pod moćnijimi umom, ili, kraće, biće 70 razlike za mene O:).
pascal.316 skerl,
Evo jos neceg sto bi po meni obavezno trebalo da se nadje u Pascal dir-u. Pozdrav, Skerl. { The following is the INTERFACE section of FCOMM.PAS (FCOMM.TPU). It has all of the functions and code you will need, so please don't hesitate and give me a ring via the Doorware FidoNet Echomail Conference. } UNIT FCOMM; { -------------------------------------------------------------------------- FComm - A FOSSIL driven I/O Library for Doors w/lots-of-goodies :) - for use with Turbo Pascal 6.0 - for use with Remote Access v1.0 - works with RA's *.BBS files, DOOR.SYS and DORINFO?.SYS - SysOp "hot-keys" (see documentation or source code) - Code supporting Interactive EMSI - Emulated "windowed" ANSI & AVATAR graphics - Status line on caller - Checks for carrier drop, keyhit timeout and time-limit timeout. - semi-intelligent code - nice programmer who takes suggestions.. (yuck) - and FREE. Copyright (c) 1991 by Michael Paine - I hope this gets improved by a few programmers out there.. all I ask for is to only have one "valid" copy floating around, or chaos will definately occur, so please send improvements to: FidoNet NETMAIL @ 1:363/111 or Data (407)862-4724 (The SCSI Resource BBS) A "TRUST-ME" NOTE: THE BEST WAY TO LEARN THIS LIBRARY IS TO KEEP USING IT UNTIL IT WORKS. THAT SOUNDS BACKWARDS, BUT IT IS THE BEST WAY TO LEARN OTHER PEOPLE'S WORK... -------------------------------------------------------------------------- fcomm240.zip
pascal.317 bulaja,
**** new file **** \IBMPC\PASCAL\ upconv22.arj (68.972 bytes) Reformatiranje identifikatora u TP izvornom kodu UpConv is a case conversion program designed for Turbo Pascal versions 3.0 to 6.0 and TPW 1.0, which can easilly be adapted to newer versions of Turbo Pascal. Case conversion is the process of reformatting identifiers in pascal source code to some predefined way. Borland international is very consistent in their manuals, all the identifiers are lower case, all other identifiers have some predefined case convention (mostly lower case with the first letters of words to upper case). Because is is very likely that you have your own style of case convention (for example, use all upper case) and you want to have other source code in that format as well, UpConv has been developed. It reads pascal files (not only Turbo Pascal) and writes new reformatted files with all identifiers according to the case convention you desire.
pascal.318 broker,
> pa onda ja samo čitam i lupam lineto(x,y) itd. :) Corel Draw radi sa PCX-ovima i ima jednu alatku (CorelTrace) koja bit mapiranu sliku pretvori u vektorsku (prepoznaje čak i boje i nijanse sivog). Takva slika se da pretvoriti u neki poznatiji vektorski format... Ovo je samo ideja...ko napravi nek javi jer i meni treba ;)
pascal.319 pedjak,
> Ak▀o neko kojim slučajem ima "NDX.PAS" koji se pominje u časopisu Evo ga NDX.PAS pedja ndx.arj
pascal.320 isekulovic,
Imam jedan problem u vezi tp-a sa stringovima. Rešenje je po svemu sudeći banalno i ja gledam već nekoliko dana u njega ali jednostavno ga ne mogu videti. Imam funkciju function xyz (s:string) : string; i hoću da imam kao string kao konstantu, string koji ću moći da transformišem finckijom xyz, ali string uz to da bude određene dužine, znači: const podatak : string[10] = ('string1'); a ne const podatak : string = ('string1'); KAKO???!?!?!? Ivan sa podočnjacima i glavoboljom
pascal.321 inesic,
Ljudi, pomagajte! Puko mi hard, pa sam, između ostalog, morao ponovo da instaliram i TP 5.5 i da zabrljam, naravno s tim što ne znam gde. Da opišem problem na primeru. Uzmem sledeći program begin write('bla, bla, bla'); end. i kad pritisnem Ctrl-F9 on iskompajlira i počne da ispisuje. ALI ne izađe u DOS, već ispisuje tu, po radnom okruženju. Počne od tačke iza end na kraju programa, tj. odande gde sam ostavio kursor kad sam pritisnuo Ctrl-F9, nas- tavi preko help linije u dnu ekrana, a zatim, kad dođe na kraj reda, odskro- luje (opljuvaće me u o.jeziku) najpre menu linija, pa posle i statusna linija a i sve ostale linije. Ceo ekran u radnoj okolini se napuni sa bla,bla,bla i to skroluje. Kad zaustavim program, regeneriše se samo onaj deo menu linije gde piše File, a ostalo se regeneriše tek po selektovanju. Help linija se takođe regeneriše tek kad je selektujem dužim pritiskom na Alt, a status liniju još nisam video da se regenerisala. Nijedan program koji zahteva prelazak u grafički mod ne radi, valjda zato što je radno okruženje realizovano u text modu. Štad da mu radim? Ivica
pascal.322 dejanr,
>> const podatak : string[10] = ('string1'); >> a ne Nije mi baš jasan tvoj problem, pa ako može malo detaljnije... Upravo ovako napišeš naredbu i imaš string kakav ti je potreban. Mora biti da ja nisam nešto razumeo.
pascal.323 pedjak,
> i hoću da imam kao string kao konstantu, string koji ću moći da > transformišem finckijom xyz, ali string uz to da bude određene dužine, > znači: > > const podatak : stringŠ10Ć = ('string1'); > > a ne > > const podatak : string = ('string1'); Ne trebaju ti uglaste zagrade... Znači: const podatak:stringŠ10Ć='string1'; P.S. idi odspavaj :)))
pascal.324 ssokorac,
─┼┤ const podatak : stringŠ10Ć = ('string1'); Pozovi funkciju umesto sa novi:=xyz(podatak); sa novi:=xyz(copy(podatak,1,10));
pascal.325 inesic,
> Evo mouse unita. Autor je moja malenkost pa ako budete > imali neke probleme samo vičite... :) Zapravo nisu problemi sa unitom. Njemu sve pohvale: koliko sam stigao da isprobam - sve radi. Jednostavan je za upotrebu, ali ono što me je posebno oduševilo je dokumentacija. Ja još nisam video da neko uloži toliki rad u kreiranje dokumentacije za PD softver. Ne znam kako bih ja sebe naterao da toliko uradim, a da mi za to niko ne plati. Nego da ne davim, nisam pisao ovu poruku da bi pedjak imao zbog čega da se uspija, već zato što imam problem sa nedostatkom ideja. Recimo da je ovo meni-prozor nekog programa ┌─Menu prozor─┐ ├─────────────┤ │ Opcija #001 │ │ Opcija #002 │ │ĆOpcija #003ž│ │ Opcija #004 │ │ Opcija #005 │ └─────────────┘ i hajlajtom je selektovana opcija 3. Dakle, ako lupim Ćenterž, izvršiće se opcija 3, ako lupim Ćupž ili Ćdownž hajlajt ide gore ili dole, ako pritisnem 1..5 izvršiće se odgovarajuća opcija. Sve je to lepo i umeo bih da napravim. Uz pomoć Peđinog unita mogao bih da vozim miša preko prozora, da levim dugmetom selektujem, a desnim da zatvaram prozor - Esc. Međutim ono što mi nikako ne dolazi to je kako da kombinujem ove dve tehnike, tj kako da kažem programu da malo gleda na miša, a malo na tastaturu, tj. da očekuje ulaz s obe strane. Još uvek bez podočnjaka, ali u nedoumici inesic
pascal.327 beast,
Nađoh ogroman bag TP 6.0 i to: Markirajte neko slovo (nisam probao sa više njih, samo sa jednim) i sa shift-ins ga pastujte. Kad ispunite red, pascal će pokušati da prebaci sve to u drugi red (ne puštajte shift-ins) i desiće se svašta. Počeće da lupa komande prethodno kucane u dosu, da kompajlira i na kraju da se zablokira. Ovo sam probao kod mene i kod dzakica i javljao je iste simptome. Šta kažu ostali? Jel TP 6.0 zreo za naslednika? :)
pascal.328 isekulovic,
>> Nije mi baš jasan tvoj problem, pa ako može malo detaljnije... Rešio sam, mada mi nije jasno kako. Probelm je bilo što funkcija nije htela da prihvati onako definisan string, kao 'ulazni'. Rešio sam tako što sam umesto function xyz (var s:string) : string; stavio function xyz (s:string) : string; i sve je ok. Sad kad bi mi još neko objasnio razliku. Ja sam živeo u zabludi da je to isto. O:) Ivan ps hvala svima na pomoći
pascal.329 dejanr,
Ako napišeš function xyz(s:string)...; onda promena S u proceduri ne biva vraćena u glavni program, dakle argument pri pozivu može da bude i konstanta. Sa druge strane, function xyz(var s:string)...; znači da promena s-a treba da se prenese nazad u glavni program. Ako u glavnom programu piše aaa:=xyz('x'); onda ovo ne može da se prevede, jer kako da se promeni konstanta 'x'. Isto je ako ta konstanta nije navedena "na licinom mestu" nego definisana u const sekciji.
pascal.330 ssokorac,
─┼┤ dve tehnike, tj kako da kažem programu da malo gleda na miša, a ─┼┤ malo na tastaturu, tj. da očekuje ulaz s obe strane. Pa, recimo ovako repeat if keypressed then case readkey of . . proveravaš tastere koje hoćeš . end; GetMouseXY(x,y); (* ili kako ti se već zove procedura *) If (x in Š1..120Ć) and (y in Š1..30Ć) Then blablabla... until šta_ti_je_već_uslov_za_kraj;
pascal.331 skerl,
Evo malog objasnjenja: > function xyz (var S:string) : string; Promenljiva koja se na ovaj nacin prenese nekoj f-ji ili proc je globalnog karaktera. Svaka promena njene vrednosti, nakon pozivanja f-je ili proc, ostaje i posle kraja izvrsavanja te f-je ili proc. > function xyz (S:string) : string; U ovom slucaju je promenljiva cisto lokalnog karaktera (u odnosu na f-ju ili proc) kao i svaka njena promena, sto znaci da ce nakon izlaska iz te f-je ili proc parametar imati istu vrednost koju je imalo pre pozivanja te f-je ili proc. Postoji i treci nacin pozivanja f-je ili proc: procedure xyz (var X); Takvi parametri se nazivaju 'netipskim parametrima'. Prednost je u mogucnosti prenosenja promenljivih bilo kog tipa podatake, i bilo koji tip podataka je ispravan. Medjutim, kada se koristi netipski parametar, f-ja ili proc nema informaciju o tipu podataka koje treba da ocekuje pa prihvata sve sto joj se prenese i ocekuje od programera da zna sta radi! Posto je X netipska prom, ona se ne moze direktno koristiti vec se mora deklarisati prom koja mora biti oznacena kao absolute X. Ta nova prom ce biti na istoj adresi kao X. procedure Primer (var X); var Y : integer absolute X; begin writeln (y); (* ispravno; Y je tipa integer *) writeln (x); (* neispravno; X nema tipa *) end; U ovom primeru ce Y biti locirano na istom mestu u memoriji kao X. Tada je moguce koristiti Y umesto X. Izvin'te ako sam oduzio bez potrebe. Pozdrav, Skerl.
pascal.332 peca.st,
!-> Evo ga NDX.PAS žemu služi taj NDX, mrzi me da potrošim 10 sec na skidanje istog! Ozbiljno, čemu služi? P e C a
pascal.333 peca.st,
!-> Štad da mu radim? Instaliraj TP6.0 ili još bolje ako nabaviš TP7.0 Jednostavno! P e C a
pascal.334 peca.st,
!-> Međutim ono što mi nikako ne dolazi to !-> je kako da kombinujem ove dve tehnike, tj !-> kako da kažem programu da malo gleda na !-> miša, a malo na tastaturu, tj. da očekuje !-> ulaz s obe strane. Pa to je lako. Ne znam kako se zovu procedure iz tog unita ali recimo da se pritisak na levo dugme ošitava sa leftclick (boolean) a za desno rightclick. Onda ti lepo napišeš: repeat ... šovde ne mora nista da stoji, ali mozeć until leftclick or rightclick or keypressed; if (not leftclick) and (not rightclick) then begin ch:=readkey; case ch of #27: .... #13: .... . . . end end else begin if leftclick then .... if rightclick then .... end; Valjda bi ovako trebalo da radi! (tako sam ja koristio sa onim unitom iz Računara) CU P e C a
pascal.335 pedjak,
> ono što me je posebno oduševilo je dokumentacija. Ja još nisam > video da neko uloži toliki rad u kreiranje dokumentacije za PD > softver. Ne znam kako bih ja sebe naterao da toliko uradim, a da > mi za to niko ne plati. Hvala... Unit sam prvo uradio za sopstvenu upotrebu, a i dokumentaciju sam uradio čisto zbog sebe, jer dešava mi se da posle mesec dana od pisanja nekog unita, pomalo zaboravim šta sam sve ugradio u njega, zato ja napisah doc kako bi se i ja lako snalazio :) > Međutim ono što mi nikako ne dolazi to je kako da kombinujem ove > dve tehnike, tj kako da kažem programu da malo gleda na miša, a > malo na tastaturu, tj. da očekuje ulaz s obe strane. E, pošto hoćeš da koristiš moj unit, ondak ću ti ja pomognem :) Dakle, provera selektovanja opcija bi mogla da izgleda ovako: . . . repeat repeat levi:=buttonpressed(left); desni:=button(right); until keypressed or levi or desni; if levi and (xpress= nešto ) and (ypress= nešto ) then uradi_to; if desni and (xpress= nešto ) and (ypress= nešto ) then uradi_ovo; if keypressed then begin c:=readkey; if c=#13 then odabrano:=true; if c=bla_bla... . . end; until odabrano; . . . Eto to bi bila prva mogućnost ( to mi je prvo palo na pamet :) pedja
pascal.336 isekulovic,
>> Međutim ono što mi nikako ne dolazi to je kako da kombinujem ove >> dve tehnike, tj kako da kažem programu da malo gleda na miša, a >> malo na tastaturu, tj. da očekuje ulaz s obe strane. Ja to radim ovako: repeat until keypressed or buttonpressed(Anybutton); if buttonpressed(Anybutton) then begin repeat until buttonreleased(left+middle+right); ..... end else begin Ch:readkey; ........ end; Ivan ps da iskoristim priliku da se pridružim čestitkama za izvanredan unit, kad videh strelicu u grafičkom modu na hercu oduševih se
pascal.337 dzakic,
Nešto mi se čini da ti je tu paskal javio ono upozorenje da se ne slaže tip promenljive, jer si u funkciji za parametar stavio string, a pozivaš sa promenljivom koja je tipa string[10]. To se, priznaćeš, razlikuje. Paskal ti ne dozvoljava takvu kombinaciju jer ne zna da li funkcija recimo produžava string ili menja neke znake na poziciji većoj od 10 (koliko je stvarno dug string koji se obrađuje), i zato ti daje upozorenje. Iza string[10] u data segment su smeštene druge promenljive pa to može da napravi svakakve probleme. Kada skloniš var, paskal da bi pozvao funkciju generiše kod koji čitav string kopira na stek. U ovom slučaju se 11 bajtova kopira na stek na kome je predviđeno 256 bajtova i sve lepo radi a i funkcija se ne buni. Ako si ti siguran da tvoja xyz funkcija neće da petlja sa znacima na pozicijama većim od njegove stvarne dužine (odnosno, da neće produžavati string), onda možeš da isključiš 'Strict VAR checking' sa {$V-} i paskal će ti dozvoliti ovakvo prenošenje parametara, na tvoju odgovornost. Samo, nemoj posle da kukaš kad negde zapne i ispostavi da je to problem :)
pascal.338 dzakic,
>> Isto je ako ta konstanta nije navedena "na licinom mestu" nego >> definisana u const sekciji. Ne uvek. U const sekciji se mogu deklarisati konstante i promenljive sa početnom vrednoćšu. Kad se stavi const pi=3.14; kompajler to primi isto kao i C onu #define direktivu (ili šta je već) i samo prilikom kompajliranja vrši replace u tekstu. To je prava konstanta i ne može se pozivati kao argument u funkcijama gde je parametar deklarisan sa VAR. Dok const ime:string[3]='zak'; Napravi PROMENLJIVU ime koja ima početnu vrednost. Tako se i ponaša, kao promenljiva, može da joj se menja vrednost, direktno ili preko procedure. Paskal se ne buni. Dakle, i nije neka konstanta... Njima se odvoji mesto u data segmentu, ali su inicijalne vrednosti snimljene u exe.
pascal.339 isekulovic,
>> Ako u glavnom programu piše aaa:=xyz('x'); onda ovo ne može da >> se prevede, jer kako da se promeni konstanta 'x'. Isto je ako ta Ukapirao sam koja je razlika, ali opet ima malih nejasnoća :) Jasno mi je da ne može da se menja 'x', ali konstanta koja je definisana u deklaracionom delu može. Nije baš najpravilnije i najlogičnije, ali može. Takođe nije mi jasno zašto je funkcija onako definisana (sa var) htela da primi kao ulaz konstantu definisanu kao string, a nije htela definisanu kao string[n].
pascal.340 isekulovic,
>> repeat until keypressed or buttonpressed(Anybutton); >> if buttonpressed(Anybutton) >> then >> begin >> repeat until buttonreleased(left+middle+right); >> ..... >> end >> else >> begin >> Ch:readkey; >> ........ >> end; Mala ispravka samoga sebe: repeat until keypressed or buttonpressed(Anybutton); if buttonpressed(Anybutton) then begin ...... repeat until buttonreleased(left+middle+right); end else begin Ch:readkey; ............ end;
pascal.341 skerl,
Mali bug u mouse.pas unit-u iz paketa WCTUNITS.ZIP. Funkcija ButtonPressed ne razlikuje ButtonPressed(LeftButton) od ButtonPressed(RightButton). Vraca vrednost kao da je trazeno ButtonPressed(AnyButton). Prilozen je mali demo programcic koji to lepo prikaze (putem cula sluha :). Prvo ga pustite sa starom funkcijom a zatim zamenite staru sa novom pa probajte ponovo. Pojenta demo prog je da kada se pritisne levi taster comp pisti jednom visinom a kada se pritisne desni drugom :) (u kvadratu 72, 0 do 158, 72 sto mu u karakterima dodje 10, 1 do 20, 10) Stara f-ja: FUNCTION ButtonPressed(Mask : word) : boolean; BEGIN Reg.AX := 3; intr(MouseInt, Reg); IF (Reg.BX > 0) THEN ButtonPressed := true ELSE ButtonPressed := false; END; Ovako treba :) FUNCTION ButtonPressed(Mask : word) : boolean; BEGIN Reg.AX := 3; intr(MouseInt, Reg); IF (Mask = 7) AND (Reg.BX > 0) THEN ButtonPressed := true ELSE IF (Reg.BX = Mask) THEN ButtonPressed := true ELSE ButtonPressed := false; END; Pozdrav, Skerl. mousebug.zip
pascal.342 pedjak,
> žemu služi taj NDX, mrzi me da potrošim 10 sec na skidanje istog! Unit za manipulaciju ( čitanje, pretraživanje ... ) dBASE III indeksnih datoteka. pedja
pascal.343 pedjak,
> Rešio sam, mada mi nije jasno kako. Probelm je bilo što funkcija nije > htela da prihvati onako definisan string, kao 'ulazni'. Rešio sam > tako što sam umesto > > function xyz (var s:string) : string; > > stavio > > function xyz (s:string) : string; > i sve je ok. Sad kad bi mi još neko objasnio razliku. Ja sam živeo u > zabludi E, pa ovako: Prilikom pozivanja funkcija i procedura, koje među listom parametara sadrže i stringove i to takve da se njihove vrednosti prenose po imenu znači procedure xyz(var s:string) onda se prilikom pozivanja procedure negde u programu moraju slagati tip stringa koji učestvuje kao parametar sa opisom parametra u zaglavlju procedure, znači ako u zaglavlju procedure stoji procedure xyz(var s:string) onda pri pozivanju procedure sa recimo xyz(AA); i promenljiva AA mora biti deklarisana kao var AA:string Takođe, mora se paziti na to da promenljive kao što su string, stringŠ10Ć ili stringŠ49Ć nisu istog tipa. Prilikom kompajliranja programa sam kopajler proverava sva takva mesta u programu i ako pronađe da se ne slažu tipovi tekstualnih paramatara sa samim opisom parametara u zaglavljima javlja 'Type mismatch'. Kompajlerskom direktivom š$V-ć se ukida provera tipova tekstualnih promenljivih koje se u funkcije i procedure prenose kao parametri tipa VAR. Znači negde na početku programa staviš š$V-ć i problem je rešen. ------------------- Nevezano za ovu raspravu, moram da naglasim da ako na početku programa napišete nešto poput const s:stringŠ10Ć='blabla' ne dobijate konstantu s. Ovom deklaracijom dobija se promenljiva tipa string maksimalne dužine 10 znakova, kojoj je na samom početku programa postavljena vrednost na 'blabla' i ta vrednost se kasnije u programu može i menjati. Uh završih :)) pedja
pascal.344 ssokorac,
─┼┤ Izvin'te ako sam oduzio bez potrebe. Ma kakvi samo piši, ovo je mnogo zgodno a nisam znao :).
pascal.345 dejanr,
>> Takođe nije mi jasno zašto je funkcija onako definisana (sa var) htela >> da primi kao ulaz konstantu definisanu kao string, a nije htela definisanu >> kao string[n]. Stavi u OPTIONS/Compiler String check relaxed (ili tako nešto) pa će hteti.
pascal.346 skerl,
Da se ne kaze da smo bas skroz ispali iz zbivanja u svetu :) Pozdrav, Skerl. ───────────────────────────────────────────────────────────────────── BP7BUGS1.LST - Version 1 of BP 7.0 bug list This is the first edition of my completely *un*official list of bugs in BP 7.0. It's partly based on bugs in TP 6.0 that weren't fixed in the new release. If you're interested in TP 6 bugs, look for TP6BUGS7.LST, the final release of my TP 6 bug list. There are more limitations to this list than there were to the previous lists, because BP 7.0 is a lot bigger than TP 6.0. I'm unable to test most Windows bugs, so they probably won't end up in this list. Most of my work is in real mode, so there's a definite bias towards bugs there. Finally, I don't do much in TurboVision, and bugs there are a real pain to confirm, so they're not so likely to make it in. (However, there are several TV bugs reported, and I've even included fixes for some.) I'm sure there are errors in this list, and some things that I call bugs are "design limitations" or "as designed". Don't rely on any of the fixes; none of them are official (even if they look like they come from Borland); only Borland can give you official fixes. If you want a reliable list, write to Borland (in particular Zack Urlocker, at Compuserve address 76217,1053 or Internet address 76217.1053@compuserve.com) and complain. Professional tools deserve professional support; a secret bug list, or one maintained by an amateur, is not professional support. The list is very abbreviated; if any of the items are too obscure, ask and I'll expand on them. One abbreviation I've been asked about: "BASM" is the built-in assembler used in asm blocks. The bugs reported here are gleaned from reports from dozens of people. In particular, Morten Welinder has found several new bugs and supplied fixes. Bugs in the list are numbered in order from oldest to newest. However, bugs 1 to 27 are taken from the last TP 6 list; those are more or less in newest to oldest order, because I was too lazy to reverse the list. If you're familiar with an older version of the list, check both the top for late breaking TP 6 bugs and the bottom for new BP 7 bugs.
pascal.347 skerl,
Evo i poslednjeg fajla sa bug-ovima iz TP 6.0 :) Pozdrav, Skerl. P.S. Bulaja, ovo bi moglo da ide upoascal direktorijum jer se nece vise update-ovati. ──────────────────────────────────────────────────────── TP6BUGS7.LST - Version 7 of TP 6.0 bug list This is the last edition of my completely *un*official list of bugs in TP 6.0. TP 7.0 and BP 7.0 were released in November 1992; I'm starting a bug list for those. The first edition (BP7BUGS1.LST) is being released at the same time as this last edition. For this list, I've noted which bugs appear to have been fixed in BP 7.0. There were (at least) two releases both numbered 6.00: the original one in October 1990, and another in June 1991. You can identify the later release by the date or by the file size: TURBO.EXE is 325982 bytes in the later release. Several bugs were fixed in the second release; some of those are marked below. I've also heard of a 6.01 release dated July 1991, but haven't tested any of these bugs against it. The list is very abbreviated; if any of the items are too obscure, ask and I'll expand on them. One abbreviation I've been asked about: "BASM" is the built-in assembler used in asm blocks. Juergen Schlegelmilch sent me a very detailed list of bugs & fixes in TP 6.0 & Turbovision; the file version (TP6BUGSn.ZIP) of this list contains all of his comments. It also contains a few patches and fixes that I've collected. The file version will be available on Fidonet on the PDN Pascal file echo area, and on Internet from garbo.uwasa.fi. It is also available on the PC Techniques section of CLMFORUM on Compuserve in DL 16, as TPBUGS.ZIP. Many other people have sent me their bug lists; thanks to all of them. In particular, some recent additions are from Andy McFarland, Arno Haket, Hans Schleichert, Norbert Juffa, and Jud McCranie. I know I've missed a few recent contributors; sorry!
pascal.348 almi,
treba mi program za tp-for windows koji crta "bar" sa određenim fill-stylom. Puno hvala ALMI.
pascal.349 almi,
jel može neko da mi opiše standardni postupak za crtanje nekih figura u tp for windows Hvala unapred, ALMI CONNECT 2400
pascal.350 skerl,
Jel' nekom bese trebao ovakav program ili se o njemu pricalo jer je vec nadjen, ne pamtim bas toliko :) Ako jeste neka vica da salje. Pozdrav, Skerl. ┌───────────────────────────────────────────────────────────────┐ │ │ │ Documentation for │ │ │ │ TPU2ASM.EXE │ │ │ │ A symbolic disassembler for │ │ Turbo Pascal version 5.0 units │ │ │ │ Copyright (C) 1989 by Per Bent Larsen │ │ All rights reserved │ │ │ │ Version 1.0, March 1989 │ │ │ └───────────────────────────────────────────────────────────────┘
pascal.351 bulaja,
│Evo i poslednjeg fajla sa bug-ovima iz TP 6.0 :) │Bulaja, ovo bi moglo da ide u pascal direktorijum │jer se nece vise update-ovati. └─── Hvala! prebaceno je u Pascal direktorijum, a takodje i spisak bugova za BP/TP 7.0 koji si poslao.
pascal.352 mbulat,
Mozda sam i pogresio conf. ali ne znam kako da HANGUPujem modem koji je on-line da li neko zna kako da se to izvedee u paskalu? Pokusavao sam nesto sa obaraŕnjedm DTR-a modema ali neide nesto... :(
pascal.353 d.petrovic,
Ă> Mozda sam i pogresio conf. ali ne znam kako da HANGUPujem modem Možda ti ja odgovaram u pogrešnoj :), (a o paskalu pojma nemam) ali iz dos-a bi to uradio sa echo ath1 > com2: znači vidi koji je com port pa piši na njega, a ako je modam na vezi upiši prvo "+++" <- (nailazi komanda) a ne text, pa "ččč" <- (pauza).
pascal.354 skerl,
>│ Evo i poslednjeg fajla sa bug-ovima iz TP 6.0 :) >│ Bulaja, ovo bi moglo da ide u pascal direktorijum >│ jer se nece vise update-ovati. >└─── > Hvala! prebaceno je u Pascal direktorijum, a takodje > i spisak bugova za BP/TP 7.0 koji si poslao. Nema na cemu. Uskoro stizu i patch-evi za BC ++ 3.1 Pozdrav, Skerl.
pascal.355 pstojanovic,
Napisao sam rezidentan .COM program koji omogucava koriscenje video memorije direktnim pucanjem u nju. Program se kaci na korisnicki prekid 61h i pruza dosta mogucnosti u radu sa video memorijom. Naravno, moze se koristiti iz svih jezika koji pruzaju mogucnost poziva prekida. Program inace zauzima 1.3 KB. Uz program sam prilozio i .NG a evo izvoda svih funkcija koje su za sada definisane : INT 61h,00h - Inicijalizacija video moda & Tekuca verzija programa INT 61h,01h - Crtanje prozora na zadatim koordinatama INT 61h,02h - Ispunjavanje ekrana sa definisanim karakterom INT 61h,03h - Stampa stringa direktno u video memoriju. INT 61h,04h - Setovanje tekuce boje teksta i pozadine INT 61h,05h - Vraca tekucu boju teksta i pozadine INT 61h,06h - Snimanje ekrana sa zadatim koordinatama u bafer INT 61h,07h - Vracanje ekrana na zadate koordinate iz bafera INT 61h,08h - Promena atributa boje u zadatim koordinatama INT 61h,09h - Sencenje prozora u zadatim koordinatama INT 61h,0Ah - Ispunjavanje prozora sa zadatim karakterom INT 61h,0Bh - Vraca karakter i kolor atribut sa zadatih koordinata Normalno je da mozete sami izvesti sve ove funkcije iz bilo kog jezika, ili biblioteke; mislim jednostavno da je ovo jedan od alternativnih pristupa. Hvala unapred na svim komentarima. vmtint61.zip
pascal.356 inesic,
> E, pošto hoćeš da koristiš moj unit, ondak ću ti ja > pomognem :) Lepo od tebe :) ali problem nije tako jednostavan :( > Dakle, provera selektovanja opcija bi mogla da izgleda > ovako: > . > . > . >> repeat > repeat > levi:=buttonpressed(left); > desni:=button(right); > until keypressed or levi or desni; > if levi and (xpress= nešto ) and (ypress= nešto ) then > uradi_to; if desni and (xpress= nešto ) and (ypress= nešto > ) then uradi_ovo; if keypressed then > begin > c:=readkey; > if c=#13 then odabrano:=true; > if c=bla_bla... > . > . > end; > until odabrano; Svi koji su mi replicirali, imali su sličnu ideju, ali to zaista nije tako jednostavno. Hteo bih to da rešim jednom za svagda i da mu se više nikad ne vratim. Prvo, potrebna je procedura (možda još bolje funkcija) koja bi JEDNOZNAžNO vraćala karakter ili šta već, na pritisak nekog tastera na tastaturi. Gledao sam funkciju readAllKeys iz unita xcrt, koji je neko ovde poslao nedavno. Ne zadovoljava, jer daje isti rezultat kad se pritisnu različite kombinacije tastera, npr. Ctrl-[ je isto što i Esc i tome slično. Za izlaz ove funkcije, izgleda, malo je bajt i treba bar dva bajta tj. word. Još uvek nisam siguran kako da napravim ovakvu funkciju, no to je manji deo problema. Problem je što meni nije jasno kako tastatura radi. Kad sam u radnoj okolini TP, i brzo pritisnem F2, F9 i altX i to tako brzo da je altX pritisnuto pre nego je računar obradio F2, on sve jedno lepo uradi što je od njega traženo: snimi editor, kompajlira i na kraju izađe u DOS. Neko mi je rekao da tastatura ima svoj bafer u koji stane 15 tastera i sad, kad TP izvršavajući svoj kod naleti na readKey, on uzme prvi znak sa tastature pa ga obradi. Hoću da kažem kako pritisak na neki taster NE PREKIDA proces koji je upravo u toku. Međutim, kako sebi da objasnim kako rade programi tipa 'sačekajte, upravo se čvari, a ako vas mrzi, pritisnite Esc', drugim rečima kako ovde pritisak na taster PREKIDA proces koji je u toku. Neko mi je objašnjavao da su u pitanju interapti, pa kao postoje hardverski i softverski i na kraju ništa nisam shvatio. Ostalo mi je u glavi da pojedini delovi hardvera mogu da traže od cpu da im hitno obavi neki posao ali i da može da se podesi da se posle nekog vremenskog perioda tj. svako malo generiše interapt koji obustavi tekući proces i baci pogled na hardver (recimo neki merni uređaj). Da najzad pređem na pitanja. Voleo bih da mi neko kaže da li su tastatura i miš delovi hardvera koji mogu da generišu interapt ili se to radi tako što se svako malo veštački generiše neki koji baci pogled na njih (što bi me razočaralo). Da li je moguće napraviti program koji radi samo ono što je meni cilj i ne gubi vreme na tamo neka proveravanja hardvera, sve dok se ovaj sam ne pobuni? Ako je ovo moguće, bi li neko na brzaka sklepao programčić koji recimo u jednom u glu ispisuje bajt koji se inkrementira (tj. broji) i ne radi ništa drugo, a kad pritisnem m on ispiše m u drugom uglu, a kad pritisnem Esc on se vrati u DOS. Naravno, posle svega ništa ne treba da ostane rezidentno. Ima li ko da zna kako da se rešim muke. Ivica P.S. E, da bilo bi poželjno da se uradi u TP 5.5 u stvari, naglasak je na izbegavanju asemblera koliko je to moguće, a ni objektno programiranje nije oblast kojom dovoljno dobro vladam da bih sve odmah shvatio iz nekog takvog primera.
pascal.357 pedjolino,
Imam jedno pitanje pa ako neko ima vremena da mi odgovori. Zanima me kako da napisem neki rezidentni program koji ce nesto raditi kada se pritisne odgovarajuci taster (ili kombinacija). Koji bi vektor trebalo promeniti i uopste nesto o toj temi, ako moze i mali primer...(nadam se da ne trazim suvise). P.S. Kako izbaciti iz memorije program koji je ostavljen u memoriji sa keep.
pascal.358 zolika,
>> Zanima me kako da napisem neki rezidentni program koji ce >> nesto raditi kada se pritisne odgovarajuci taster (ili kombinacija). >> Koji bi vektor trebalo promeniti i uopste nesto o toj temi, >> ako moze i mali primer...(nadam se da ne trazim suvise). Najbolje je da uzmeš Modulu-2 i u njoj da radiš. Postoji modul TSR u kome su procedure za instaliranje i deinstaliranje rezidentnih programa. Ono što hoćeš da ti tvoj rezidentni program radi napišeš kao proceduru, izabereš kombinaciju tastera na koju će program da se odaziva i u glavnom programu samo pozoveš proceduru Install sa odgovarajućim parametrima. Ništa lakše. Evo i primera... Eh, da: izvinjavam se unapred što su komentari u programu na engleskom, al' to sam se zafrkavao sa asistentom. Program je možda malo dugačak, no tu postoji sve što treba, pa ako još nekome treba nešto slično, nek' analizira: MODULE SeeNoSee; (* This program is supposed to be the resident one, and called by pressing *) (* Alt-Z combination. It writes "Zdravo !" message on the screen and waits *) (* for SPACE to return to DOS. *) FROM TSR IMPORT Install, KBFlagSet, Alt; FROM SYSTEM IMPORT WORD, Registers; FROM Lib IMPORT Intr, IncFarAddr; FROM Str IMPORT Length; CONST ZScan =44; PROCEDURE Resident; (* OVO JE PROCEDURA KOJA SE INSTALIRA KAO REZIDENTNA *) CONST WindowWidth = 20; (* The width and height of the window with the message *) WindowHeight = 7; (* can be easily changed *) BlankScreen = 0720H; (* This is for clearing the screen *) BufferSize = WindowWidth*WindowHeight; LineNumber = 24; ColumnNumber = 80; Message = 'Zdravo !'; AttrScr = 7; (* attribute for the same purpose as BlankScreen *) TYPE BufferType = ARRAY[1..BufferSize] OF WORD; (* For putting the contents of the screen*) Action = (ToScreen, ToBuffer); (* Which action? *) VAR UpperLeftCornerLine, ScrBegin, UpperLeftCornerColumn, MessLine, MessColumn: CARDINAL; (* Where to write the message *) Buffer: BufferType; PROCEDURE TestScr(): CARDINAL; (* This procedure determines (or tries to *) VAR (* determine) the graphics card *) R: Registers; BEGIN Intr(R,11H); IF 4 IN BITSET(R.AX) THEN IF 5 IN BITSET(R.AX) THEN RETURN 0B000H (* Hercules *) ELSE (* Return something I don't know *) END ELSE IF 5 IN BITSET(R.AX) THEN RETURN 0B800H (* EGA/VGA *) ELSE RETURN 0B000H (* Hercules *) END; END; END TestScr; PROCEDURE WaitForSpace; (* This procedure waits for *) VAR R: Registers; BEGIN (* SPACE from the keyboard *) REPEAT R.AH:=0; Intr(R,16H); UNTIL CHAR(R.AL)=' '; END WaitForSpace; PROCEDURE BufferScreen(ScrBegin,Line,Column:CARDINAL; VAR Buf:BufferType; Mode:Action); VAR i, j: CARDINAL; (* this procedure moves block from video memory *) BegAddr: FarADDRESS; (* with Line and Column as coordinates of top- *) BEGIN (* -left-handside corner to Buf or from Buf *) BegAddr:=[ScrBegin: (* which depends on Action. Segment of screen *) 160*(Line-1)+2*(Column-1)]; (* begin is given in the ScrBegin *) FOR i:=Line TO Line+WindowHeight-1 DO FOR j:=Column TO Column+WindowWidth-1 DO IF Mode=ToBuffer THEN Buf[(j-Column+1)+WindowWidth*(i-Line)]:=BegAddr^; (* move to buffer... *) BegAddr^:=BlankScreen; ELSE BegAddr^:=Buf[(j-Column+1)+WindowWidth*(i-Line)]; (* ...or to screen! *) END; IncFarAddr(BegAddr,2); END; BegAddr:=[ScrBegin:160*i+2*(Column-1)]; (* new line *) END; END BufferScreen; PROCEDURE SetCursorPos(row,col: CARDINAL); (* With special thanks to ZJB *) VAR R: Registers; BEGIN R.DH:=BYTE(row); R.DL:=BYTE(col); R.BH:=00H; R.AH:=02H; Intr(R,10H); END SetCursorPos; PROCEDURE WriteAtAttrBIOS(row,col: CARDINAL; ch:CHAR; attr:BYTE); VAR R: Registers; (* Special thanks to ZJB again *) BEGIN SetCursorPos(row,col); R.AL:=BYTE(ch); R.BL:=attr; R.BH:=00H; R.CX:=0001H; R.AH:=09H; Intr(R,10H); END WriteAtAttrBIOS; PROCEDURE WindowBorder(row,col: CARDINAL); (* Put border around the *) VAR (* window *) i: CARDINAL; BEGIN WriteAtAttrBIOS(row,col,'╔',AttrScr); WriteAtAttrBIOS(row,col+WindowWidth-1,'╗',AttrScr); WriteAtAttrBIOS(row+WindowHeight-1,col,'╚',AttrScr); WriteAtAttrBIOS(row+WindowHeight-1,col+WindowWidth-1,'╝',AttrScr); FOR i:=col+1 TO col+WindowWidth-2 DO WriteAtAttrBIOS(row,i,'═',AttrScr); WriteAtAttrBIOS(row+WindowHeight-1,i,'═',AttrScr); END; FOR i:=row+1 TO row+WindowHeight-2 DO WriteAtAttrBIOS(i,col,'║',AttrScr); WriteAtAttrBIOS(i,col+WindowWidth-1,'║',AttrScr); END; END WindowBorder; PROCEDURE PrintMessage(row,col: CARDINAL; M: ARRAY OF CHAR); VAR i: CARDINAL; BEGIN FOR i:=col TO col+HIGH(M)-1 DO WriteAtAttrBIOS(row,i,M[i-col],AttrScr); END; END PrintMessage; BEGIN (* procedure Resident *) ScrBegin:=TestScr(); IF ODD(WindowHeight) THEN UpperLeftCornerLine:=((LineNumber-WindowHeight) DIV 2)+1 ELSE UpperLeftCornerLine:=((LineNumber-WindowHeight) DIV 2) END; UpperLeftCornerColumn:=((ColumnNumber-WindowWidth) DIV 2)+1; BufferScreen(ScrBegin,UpperLeftCornerLine,UpperLeftCornerColumn,Buffer,ToBuffer ); WindowBorder(UpperLeftCornerLine-1,UpperLeftCornerColumn-1); MessLine:=(LineNumber DIV 2)-1; MessColumn:=(ColumnNumber-Length(Message)) DIV 2; PrintMessage(MessLine,MessColumn,Message); WaitForSpace; BufferScreen(ScrBegin,UpperLeftCornerLine,UpperLeftCornerColumn,Buffer,ToScreen ); END Resident; BEGIN (* M a i n *) Install(Resident,KBFlagSet{Alt},ZScan,500); END SeeNoSee. Nadam se da će ovo nekome pomoći...
pascal.360 skerl,
│ Zanima me kako da napisem neki rezidentni program koji ce │ nesto raditi kada se pritisne odgovarajuci taster (ili │ kombinacija). Koji bi vektor trebalo promeniti i uopste │ nesto o toj temi, ako moze i mali primer...(nadam se da ne │ trazim suvise). │ │ P.S. Kako izbaciti iz memorije program koji je ostavljen u │ memoriji sa keep. └──── Necu da ti pisem program ali evo ti jedna arhiva za pravljenje TSR-ova. Napisana je za TP4.0 ali radi i na visim verzijama kada se izbaci {$T+}. Tu ti je dovoljno objasnjeno a imas i unit za pravljenje istih. Takodje unutra je i program za uklanjanje iz memorije postavljenih TST-ova. Naravno, treba da znas koji je potpis ostavio program. Pozdrav, Skerl. ─────────────────────────────────────────────────────────────────── This package contains all of the necessary tools for the creation of TSR (Terminate and Stay Resident) programs with Turbo Pascal 4.0. Filename Description -------- ------------------------------------------------------ DICE.PAS Unit source code for dice rolling DICE.TPU Compiled unit for dice rolling NODICE.BAT Batch version of the remove program NODICE.PAS Source for unload sample POPDICE.PAS Source code for example POPUP.DOC Document file POPUP.PAS Source code for TSR unit POPUP.TPU Compiled unit for creating TSR programs REMOVE.PAS Universal unloader source code TPOP.ASM Low-level assembler code for creating TSR programs TPOP.OBJ Linkable object module for low-level routines UNHOOK.PAS High-level code for removing a TSR from memory UNHOOK.TPU Compiled unit for unloading stuff UPPRCASE.ASM Assembler routine to convert strings to uppercase UPPRCASE.OBJ Linkabe object module - used by POPDICE.PAS WINDOWS.PAS Simple windowing unit source code WINDOWS.TPU Compiled unit for windowing package tppop16.arc
pascal.361 vitez.koja,
#=> Imam jedno pitanje pa ako neko ima vremena da mi #=> odgovori. Zanima me kako da napisem neki rezidentni #=> program koji ce nesto raditi kada se pritisne #=> odgovarajuci taster (ili kombinacija). Koji bi vektor #=> trebalo promeniti i uopste nesto o toj temi, ako moze i #=> mali primer...(nadam se da ne trazim suvise). Isto pitanje je neko nedavno postavio ovde... Pogledaj malo po ovoj temi
pascal.362 ssokorac,
─┼┤ Zanima me kako da napisem neki rezidentni program koji ce ─┼┤ nesto raditi kada se pritisne odgovarajuci taster (ili kombinacija). Stavi jedno ..co find pascal /a (rezident;) Baš sam i ja to isto pitao i dobio par primera...
pascal.363 paki,
­> proces koji je upravo u toku. Međutim, kako sebi da objasnim ­> kako rade programi tipa 'sačekajte, upravo se čvari, a ako ­> vas mrzi, pritisnite Esc', drugim rečima kako ovde ­> pritisak na taster PREKIDA proces koji je u toku. Pa, recimo, repeat ...> ...>>čvarenje ...> until krajčvarenja or keypressed; ili slično, u zavisnosti od programa. Dakle, ideja je da proces koji je upravo u toku proverava pritisak na taster. Može i preko interapta, ali teže (valjda).
pascal.364 ssokorac,
Šta ne valja ovde? var font:integer; Begin . . . font:=InstallUserFont('font.chr'); If GraphResult<>GrOK then Halt; SetTextStyle(font,0,5); OutText('Ne radi.'); . . . end. Koji god font stavim posle InstallUserFont, GraphResult bude GrOK ali je font uvek isti, onaj mali, debeli, ružni :) :(.
pascal.365 isekulovic,
>> Zanima me kako da napisem neki rezidentni program koji ce >> nesto raditi kada se pritisne odgovarajuci taster (ili kombinacija). Potraži datoteku stay42.arc u prošloj (a možda je ipak i u ovoj) conf pc.prog. Takođe je bio u Mom mikru članak o tome, ali ja ne mogu sad da nađem taj broj pošto mi je krš u sobi, ali neko je skoro pitao slično pitanje, pa potraži moj odgovor na to pitanja tamo ćeš naći broj MM-a.
pascal.366 predragd,
> Instaliraj TP6.0 ili još bolje ako nabaviš TP7.0 Jel se kod nas pojavila komercijalana verzija BP 7.0, na bilo kom tržištu. Peđa.
pascal.367 predragd,
Zna li neko novi tel. broj CGIS BBS-a (vlasništvo firme "The Cobb Group", pored ostalih časopisa izdaju i "Inside Turbo Pascal". Hitno mi je potrebno. Peđa.
pascal.368 pedjak,
> Prvo, potrebna je procedura (možda još bolje funkcija) koja bi > JEDNOZNAžNO vraćala karakter ili šta već, na pritisak nekog > tastera na tastaturi. Gledao sam funkciju readAllKeys iz unita Probaj sa ovim INT 16H funkcija 00H ==================== žitanje znaka sa tastature Poziv sa: Rezultat: AH=00H AH=SCAN kod karaktera AL=ASCII kod karaktera Tebi je bitan SCAN kod jer on jednoznačno određuje svaki taster na tastaturi. > Neko mi je objašnjavao da su u pitanju interapti, pa kao postoje > hardverski i softverski i na kraju ništa nisam shvatio. Ostalo mi > je u glavi da pojedini delovi hardvera mogu da traže od cpu da im > hitno obavi neki posao ali i da može da se podesi da se posle Ti pojedini delovi hardvera trebali bi da su u stanju da generišu NMI interapt ( nemaskirani interapt ). NMI interapti trenutno prekidaju cpu i zahtevaju izvršenje nekog zadatka. Tipičan primer za NMI je reset cpu-a. > Da najzad pređem na pitanja. Voleo bih da mi neko kaže da li su > tastatura i miš delovi hardvera koji mogu da generišu interapt > ili se to radi tako što se svako malo veštački generiše neki koji > baci pogled na njih (što bi me razočaralo). Da li je moguće Da, tastatura i miš generišu interapte. Svaki put kad pritisneš taster generiše se interapt. > pobuni? Ako je ovo moguće, bi li neko na brzaka sklepao > programčić koji recimo u jednom u glu ispisuje bajt koji se > inkrementira (tj. broji) i ne radi ništa drugo, a kad pritisnem m > on ispiše m u drugom uglu, a kad pritisnem Esc on se vrati u DOS. To što ti tražiš baš ne može tako jednostavno da se izvede, a da se ne prekrše tvoji zahtevi. Mislim da se ovim krše minimalno tvoji zahtevi: uses crt,dos; var kbd2:procedure; kraj:boolean; count:word; š$F+ć procedure keyboard;interrupt; begin case portŠ$60Ć of 50: begin gotoxy(79,1); write('m'); end; 1: kraj:=true; end; inline($9C); kbd2; end; š$F-ć begin clrscr; getintvec($9,čkbd2); setintvec($9,addr(keyboard)); kraj:=false; count:=0; repeat gotoxy(1,1); write(count); inc(count); until kraj; setintvec($9,čkbd2); end. Jel' to što si tražio ? Praktično tvoj program samo odbrojava dok interapti brinu o tome šta je pritisnuto. Ako te još nešto zanima pitaj... pedja
pascal.369 pedjak,
> Zanima me kako da napisem neki rezidentni program koji ce > nesto raditi kada se pritisne odgovarajuci taster (ili kombinacija). Bilo je skoro u ovoj temi, ali da ponovimo. š$m 1024,0,0ć (* postave se minimalni memorijski zahtevi *) uses crt,dos; var oldint:procedure; š$F+ć (* forsiramo daleke pozive za interapt rutinu *) Procedure brisi;interrupt; begin if (portŠ$60Ć=46) (* ako je pritisnuto ALT-C *) and (memŠ$40:$17Ć and 8 = 8) (* obrisi ekran *) then clrscr; inline($9C); (* PUSH AF *) oldint; (* pozovi stari interapt *) end; š$F-ć Begin GetIntVec($1c,čoldint); (* sačuvaj stari interapt *) SetIntVec($1c,čmain); (* postavi novi *) keep(0); (* program ostaje rezidentan *) End. > P.S. Kako izbaciti iz memorije program koji je ostavljen u > memoriji sa keep. Pa sad to je malko komplikovanije jer standardni paskal set procedura i funkcija ne podržava takve stvari, ali postoje uniti koji rade tako nešto. Najjednostavnije je da pre pozivanja ovakvog programa startuješ program Mark, koji zapamti sadržaj svih vektora i još neke druge sistemske informacije, zatim startuješ svoj program, a kad ti i on dosadi startuješ program Release i time se memorija i interapti vrate u stanje pre zadnjeg Mark-a. Mark i Release imaš na SEZAM-u. pedja
pascal.370 janko,
> Prvo, potrebna je procedura (možda još bolje funkcija) > koja bi JEDNOZNAžNO vraćala karakter ili šta već, na > pritisak nekog tastera na tastaturi. Gledao sam funkciju > readAllKeys iz unita xcrt, koji je neko ovde poslao > nedavno. Ne zadovoljava, jer daje isti rezultat kad se > pritisnu različite kombinacije tastera, npr. Ctrl-Š je > isto što i Esc i tome slično. Za izlaz ove funkcije, Da li si probao nešto ovako: function myreadkey : integer; var r: integer; k : char; begin r:=ord(readkey); if k=0 then r := 256+ord(readkey); myreadkey:=r; end; Ovakav pristup je dovoljan za većinu primena, gde ne izmišljaš neke uvrnute kombinacije tastera da ti rade nešto. Ctrl-Š i treba da da ESC. Zašto bi ti to smetalo?
pascal.371 dejanr,
>> Jel se kod nas pojavila komercijalana verzija BP 7.0, na bilo kom >> tržištu. Ne znam šta znači "na bilo kom tržištu". Program se prodaje, mislim da ga CET ima. Prodaje se i po exYU, vidim na DECnet-u da ga u Sloveniji dosta koriste.
pascal.372 inesic,
> Dakle, ideja je da proces koji je upravo u toku proverava > pritisak na taster. Može i preko interapta, ali teže > (valjda). Verujem da je teže, ali bih ipak voleo da mi neko objasni kako, pa da probam. Iz dva razloga, ako program dugo treba da krčka neke brojke, mislim zaista dugo, onda stvarno nema smisla mučiti ga da još i tastaturu proverava, a sem toga voleo bih i da naučim kako se to radi. Ako ima neko ko zna kako i koga ne mrzi, pliz send mesidž hir. Ivica
pascal.373 inesic,
> Najbolje je da uzmeš Modulu-2 i u njoj da radiš. Postoji > modul TSR u Pre nego što mi je puko hard (a, ja, Som, prethodno nisam bekapovao) neko je ovde ostavio šerver Modulu-2. Kad sam ponovo oporavio hard i DL celu temu pascal od nje više traga nije bilo. Da li je to obrisano, da li je negde prebačeno, da li je moj SOR zbingovo negde te poruke??? Zašto nema module koja je šerver? Halo, moderatore, da li znaš gde da je tražim? Ivica
pascal.374 inesic,
> š$m 1024,0,0ć (* postave se minimalni > memorijski zahtevi *) Zbog čega ovo > š$F+ć (* forsiramo daleke pozive za interapt rutinu *) i čta ovo uopšte treba da znači, tj. šta su to daleki pozivi? Ivica
pascal.375 peca.st,
!-> pobuni? Ako je ovo moguće, bi li !-> neko na brzaka sklepao programčić !-> koji recimo u jednom u glu ispisuje !-> bajt koji se inkrementira (tj. broji) i !-> ne radi ništa drugo, a kad pritisnem m on !-> ispiše m u drugom uglu, a kad pritisnem !-> Esc on se vrati u DOS. count:=0; ch:=''; repeat gotoxy(75,1); inc(count); write(count); if keypressed then begin ch:=readkey; if ch='m' then begin gotoxy(1,1); write(ch); end; end; until ch=#27; Stvarno ne vidim u čemu je problem kod tebe. Ako ti je teško da u toku rada nekog ciklusa ispituješ nešto onda ti teško ima pomoći bez Assm-a i interapta. (pojma nemam kako se sa tim radi). Ovako nemaš nikakvih problema, samo treba ispitivati šta USER hoće, šta je pritisnuo i tako to. Ti bi izgleda hteo da kompjuteru samo objasniš tek onako šta bi ti hteo da radi, e, pa ipak moraš malo da se pomučiš, kompjuter jeste brz, ali nije baš inteligentan dok mu ti ne objasniš kako treba biti inteligentan. ;) Valjda sam ti pomogao. P e C a
pascal.376 pedjolino,
Zahvaljujem se svima na iscrpnim odgovorima u vezi rezidentnih programa. Pozdrav Nenad.
pascal.377 vitez.koja,
#=>> Prvo, potrebna je procedura (mozda jos bolje #=>> funkcija) koja bi JEDNOZNACNO vracala karakter ili #=>> sta vec, na pritisak nekog tastera na tastaturi. #=>> Gledao sam funkciju readAllKeys iz unita #=> INT 16H funkcija 00H #=> Tebi je bitan SCAN kod jer on jednoznacno odreduje svaki #=> taster na tastaturi. Nema potrebe da se maltretiras sa interaptima, mozes da citas direktno sa porta 60h ( Port[$60] u TPu ) i dobijas scan kodove. Svaki taster ima po dva scan koda, jedan kad je pritisnut i drugi kad je otpusten. Scan kodovi su rasporedjeni 'po redu', ESC je 1, '1' je 2, i tako dalje. Detekcija tzv. specijalnih karaktera u TPu je resena upravo sa scan kodovima : npr za strelicu uzbrdo prvo dobijas 0, a zatim 72, sto je njen scan kod. Medjutim, iako tvoj program konstatuje scan kodove sa porta 60h, ipak moras da vodis racuna o baferu, tj. da ga redovno praznis, jer njegovo prepunjenje dovodi do onog odvratnog pistanja.
pascal.378 peca.st,
!-> font:=InstallUserFont('font.chr'); Prva stvar: ne smeš napisati 'font.chr' već samo 'font'. !-> OutText('Ne radi.'); Druga stvar: Ja ne koristim outtext, ja uvek outtextxy(x,y,s) mada ne vidim zašto bi ovo smetalo. Ne vidim nikakve druge greške, osim ako font ne postoji. P e C a
pascal.379 predragd,
Da li TP 7.0 (ne BP) može da pravi programe koji će se izvršavati u protected modu 286-ice, i da li on može da koristi DLL biblioteke. Peđa.
pascal.380 macak,
█ Medjutim, iako tvoj program konstatuje scan kodove sa porta 60h, █ ipak moras da vodis racuna o baferu, tj. da ga redovno praznis... Mala dopuna ovoga. Najjednostavnije da prvo ispraznis bafer i onda citas scan code. Nesto u ovom stilu: while scancode <> 1 do begin ... registri.ah := $0C; registri.al := 7; intr($21,registri); scancode := port[$60]; ... end; Ovo provereno ne dovodi ni do kakvog pistanja. Sve radi solidno i kada je tastatura ubrzana.
pascal.381 dejanr,
>> Da li TP 7.0 (ne BP) može da pravi programe koji će se izvršavati >> u protected modu 286-ice Ne. >> i da li on može da koristi DLL biblioteke. Ne.
pascal.382 ssokorac,
─┼┤ Prva stvar: ne smeš napisati 'font.chr' već samo 'font'. Probao i tako, ali neće :(. ─┼┤ Druga stvar: Ja ne koristim outtext, ja uvek outtextxy(x,y,s) mada ─┼┤ ne vidim zašto bi ovo smetalo. Ma, to nema nikakve veze...
pascal.383 ppekovic,
>> Halo, moderatore, da li znaš gde da je tražim? Pogledaj u temi jezici. Paya
pascal.384 pedjak,
> . > . > font:=InstallUserFont('font.chr'); <= ovde je greška > If GraphResult<>GrOK then Halt; > SetTextStyle(font,0,5); > OutText('Ne radi.'); > . Probaj ovako: font:=InstallUserFont('font'); Znači treba ime bez ekstenzije. P.S. ime fonta može biti najviše četiri znaka.
pascal.385 bearboy,
║ Ma to je lako uraditi, ali tu sliku prvo treba da nacrtam. A recimo ║ da je crtam u PaintBrushu ili nečemu sličnom, morao bih da je snimam ║ u .PCX, da je učitavam iz TP, crtam, skidam u file i tek onda ║ ubacujem u moj program... Ovo je primenljivo na 3-4 sprajta, ali za ║ dvadesetak komada postaje pravo mučenje.Ako neko zna(ima) bolje ║ rešenje ili program, nek mi kaže. Fala... Jel' za SPRITES.TPU ? Ako jeste, najbolje je koristiti .CEL-ove Autodesk Animatora... A on ti radi sa GIF-ovima, tako da nema problema, a i sam ima lepe alatke za crtkanje...
pascal.386 bearboy,
║ ─┼┤ Pa to čudo bi bilo lepo da se okači ovde, ako nije problem :)) ║ ║ Ja bi vrlo rado, ali kao što rekoh, autor je bearboy, pa ako on smatra da ║ je pd i da je dostupno svima, on će i poslati. Ja ne mogu. Još ne :) Prvo da završim stvar, da stignem do verzije 2.0, da se izda SUPI 4 (ili više), pa ćemo da vidimo šta možemo... PS. Stasho, jesi li izabrao neki .MOD ? Mislim da sam pronašao način da linkujem .MOD u sam .TPU...
pascal.387 bearboy,
║ Bearboy, reci da li si voljan da šilješ ili da upadam kod Staše u ║ stan i nosim unit sa sve hard diskom ;)) ║ Šalu na stranu, reci da li je to tvoje čedo pd&sw ili da se snalazimo... Moraćeš da upadaš :) A i inače, ne bi ti mnogo vredelo pošto unit pri startanju ispisuje nešto kao 'Sound Routines 4 SUPI 4', tako da nije bash previše korisno za druge programe...
pascal.388 wizard,
>> unit pri startanju ispisuje nešto kao 'Sound Routines 4 SUPI 4', Jel to znači da taj SUPI neće da radi pod DV-om? No, ionako ih nisam igrao, nisam mogao da se naviknem na user-interface. :)
pascal.389 ndragan,
/ neke brojke, mislim zaista dugo, onda stvarno nema smisla mučiti A da jednom u hiljadu i(s)teracija zaviri u bafer tastature?
pascal.390 vvelisavljev,
Jel ima neki trik da proverim da li je disketa u drajvu? Ne bi da mi se, ako iz programa pozovem npr. COPY *.* A: , pojavi ono čuveno: Abort, Retry, Ignore.
pascal.391 pedjak,
> sa porta 60h ( PortŠ$60Ć u TPu ) i dobijas scan kodove. Svaki taster ima > po dva scan koda, jedan kad je pritisnut i drugi kad je otpusten. Scan Nee... Svaki taster ima samo jedan SCAN kod. Njegova vrednost ide od 1-127. Ukoliko je taster pritisnut onda je sedmi bit resetovan, a ako je taster pušten onda je setovan. Zato se scan kodovi za pritisnut i otpušten taster razlikuju za 128. > Detekcija tzv. specijalnih karaktera u TPu je resena upravo sa scan > kodovima : npr za strelicu uzbrdo prvo dobijas 0, a zatim 72, sto je žini mi se da baš to nije tako... Mislim da ReadKey u TP-u radi preko MS-DOS interapta, funkcija 01H ( ulaz znaka sa ehom ) function ReadKey:char;assembler; asm mov ah,01h int 21h end; Probaj ovu funkciju, radi identično kao i ugrađena. > Medjutim, iako tvoj program konstatuje scan kodove sa porta 60h, > ipak moras da vodis racuna o baferu, tj. da ga redovno praznis, jer > njegovo prepunjenje dovodi do onog odvratnog pistanja. Da, svakako. Zato je bolje da se očitavanje tastera vrši preko DOS ili BIOS interapta, jer onda ne moraš da brineš o takvim stvarima... pedja
pascal.392 pedjak,
>> š$F+ć (* forsiramo daleke pozive za interapt rutinu *) > i čta ovo uopšte treba da znači, tj. šta su to daleki pozivi? $F direktiva utiče na pozivanje procedura i funkcija pri generisanju mašinskog koda. Daleki pozivi su takvi pozivi kada se potprogram poziva navođenjem kompletne segment:ofset adrese, dakle : CALL seg:ofs Ovom naredbom se na stek stavlja trenutna vrednost CS i IP registra, a zatim se skače na navedenu adresu. Pri završetku potprograma u glavni program se vraćamo pomoću RETF naredbe, koja skida sa steka prethodno stavljene vrednost CS i IP registra. Bliski pozivi potprograma se dobijaju navođenjem samo ofsetnog dela adrese potprograma. Iz ovog proističe da se potprogram mora nalaziti u okviru istog kodnog segmenta. Zašto se ova $F direktiva koristi ? Pa ima slučajeva u kojima se mora kompajleru narediti, kako će da pozove potprogram ( inače kompajler će to učiniti po nekom svom nahođenju ) Daleki pozivi moraju postojati pri pozivanju sopstvenih Exit procedura, eksternih procedura i interapt procedura ( za ovo zadnje nisam siguran, u nekim slučajevima radi i bez toga, ali bolje je staviti, 'leba ne jede ) inače će se program 'ladno zakucavati. Ako te još nešto interesuje o organizaciji koda koji generiše TP slobodno pitaj, tu sam... pedja
pascal.393 pedjak,
> font:=InstallUserFont('font.chr'); Sad sam primetio. Ime fonta se sastoji od najviše 4 slova i ime se piše bez ekstenzije. Drugo font ti se mora nalaziti u tekućem diru. Najverovatnije je tu greška ( banalno, šta ćeš :) pedja
pascal.394 dejanr,
>> Jel ima neki trik da proverim da li je disketa u drajvu? Pogledaj 6.28 u ovoj konferenciji.
pascal.395 peca.st,
!-> Probao i tako, ali neće :(. E, pa onda ti nešto nije u redu sa fontom. Odakle si ga uzeo? Ja sam nabavio onih pet fontova, valjda od QPro-a i oni lepo rade. Nikakvih problema nije bilo iz prve su proradili. P e C a
pascal.396 peca.st,
!-> font:=InstallUserFont('font'); !-> Znači treba ime bez ekstenzije. Eh, to mu rekoh i ja, ali on kaže da nije. P e C a
pascal.397 drmarke,
Hitno potreban program koji bi OAK-067VGA karticu switch-ovao u Hercules rezoluciju. Nešto slično radi SVM89 za Trident kartice ali mi treba za žAK. Imam program koji je pisan u Pascal-u za Hercules pa mi i pored EGAVGA.BGI fali parče slike. Ako neko ima ideju kako bi se ova glupost prevazišla nek napiše neki red. Pozdrav DrMarke
pascal.398 dzakic,
>> mora kompajleru narediti, kako će da pozove potprogram ( inače >> kompajler će to učiniti po nekom svom nahođenju ) Daleki pozivi Neće baš po nahođenju. Sve procedure iz istog junita smeštene su u segment i pozivaju se sa NEAR. Procedure iz drugih junita se pozivaju kao FAR jer svaki junit dobije svoj code segment. Za interapt procedure se ne mora naglašavati da su far, podrazumeva se. One se završavaju sa RTF - da pokupe i flegove.
pascal.399 darone,
>> Imam program koji je pisan u Pascal-u za >> Hercules pa mi i pored EGAVGA.BGI fali parče >> slike. Ako neko ima ideju kako bi se ova glupost >> prevazišla nek napiše neki red. Evo ti jedan VGAMODE, za OAK 037, možda proradi. darone p.s. radi istu stvar ko i SVM89, ali ovde posle promene resetuj mašinu. vgamode.arj
pascal.400 inesic,
> A da jednom u hiljadu i(s)teracija zaviri u bafer > tastature? Pa to bi, povrh svega, značilo da treba da postavim i brojač koji treba da odbroji tih 'iljadu i(S)teracija. To je gubljenje dragocenih femtosekundi.
pascal.401 vitez.koja,
#=>> Svaki taster ima po dva scan koda, jedan kad je #=>> pritisnut i drugi kad je otpusten. #=> Nee... Svaki taster ima samo jedan SCAN kod. #=> Zato se scan kodovi za pritisnut i otpusten taster #=> razlikuju za 128. Protivrecis sam sebi :) Ali nema veze. Mislili smo na isto.
pascal.402 vitez.koja,
#=> Jel ima neki trik da proverim da li je disketa u drajvu? #=> Ne bi da mi se, ako iz programa pozovem npr. COPY *.* A: #=> , pojavi ono cuveno: Abort, Retry, Ignore. Probaj sa DiskSize, ako vrati smislenu vrednost znaci postoji disketa. Inace, 'ono cuveno' mozes da izbegnes tako sto ces da stavis {$I-} na pocetak i {$I+} na kraj kriticnog bloka naredbi - iskljucujes automatsku kontrolu I/O gresaka. Pri tom je zdravo da motris na promenljivu IOResult - ako nije 0 nesto ne valja...
pascal.403 pedjak,
> Moraćeš da upadaš :) A i inače, ne bi ti mnogo vredelo pošto unit pri > startanju ispisuje nešto kao 'Sound Routines 4 SUPI 4', tako da nije bash Jel može nešto da mi se razjasni ? Nisam pratio baš ovu raspravu pa reko da proverim. Dakle, bear šta si ti to napravio ? Unit za sviranje .MOD fajlova na PC zujalici ? Ako nije tajna, na kom principu radi ? pedja
pascal.404 pedjak,
> Jel ima neki trik da proverim da li je disketa u drajvu? Bilo je već od ranije: repeat writeln ('Ubaci disketu'); readln (dummy1); size:=disksize (diskno); until size>0; pedja
pascal.405 ssokorac,
─┼┤ Jel to znači da taj SUPI neće da radi pod DV-om? No, ionako ih nisam ─┼┤ igrao, nisam mogao da se naviknem na user-interface. :) Da l' će da radi pod DV-om - nemam pojma, probaću kad ga napravim do kraja :). Ali user-interface je poptpuno drugačiji od starih. EGA/mouse. :)
pascal.406 ssokorac,
─┼┤ Eh, to mu rekoh i ja, ali on kaže da nije. Štos je u onome - max 4 slova. Izem ti dužinu :), ali thanks, pedjak!
pascal.407 ssokorac,
─┼┤ Najverovatnije je tu greška ( banalno, šta ćeš :) Bio je u pravom direktorijumu, fazon je u ona 4 slova... Zašto baš 4, tj. samo 4 ?
pascal.408 ssokorac,
─┼┤ onih pet fontova, valjda od QPro-a i oni lepo rade. Nikakvih problema ─┼┤ nije bilo iz prve su proradili. Sam sam ih pravio :). Tj. GA pravio, jer je samo jedan.
pascal.409 ssokorac,
─┼┤ reko da proverim. Dakle, bear šta si ti to napravio ? Unit za ─┼┤ sviranje .MOD fajlova na PC zujalici ? Ako nije tajna, na kom Još bolje. SVira u backgroundu.
pascal.410 pedjak,
> Protivrecis sam sebi :) Ali nema veze. Mislili smo na isto. Da sad videh... :) Ali nema veze sporazumeli smo se. pedja
pascal.411 pedjak,
> Neće baš po nahođenju. Sve procedure iz istog junita smeštene su ========= Pa dobro, nisam upotrebio pravu reč :)) Sve što stoji u tvojoj poruci je sasvim tačno, na to sam i mislio, ali se nisam dobro odrazio :) pedja
pascal.412 predragd,
> Ne. > >>> i da li on može da koristi DLL biblioteke. > > Ne. Hvala ti na odgovoru zbog kog nisam baš sretniji ali šta se tu može, kad dođe BP biće drugačije. Koje su još razlike između TP i BP (7.0 naravo), pored navedenih. Peđa.
pascal.413 predragd,
> PS. Stasho, jesi li izabrao neki .MOD ? Mislim da sam > pronašao način da linkujem .MOD u sam .TPU... Izvinjavam se što se mešam, ali ako vas interesuje postoje procedure za TP ili TC za korišćenje *.MOD-ova. Nisu baš sjajne ali rade, pa ako vam zatrebaju ... Peđa.
pascal.414 dejanr,
>> Koje su još razlike između TP i BP (7.0 naravo), pored navedenih. Pa, glavna razlika je što BP može da generiše Windows aplikacije dok je TP 7 ograničen na DOS. Možda će te zanimati da pogledaš preliminarni prikaz Pascala 7.0 u prošlim "Računarima"
pascal.415 vasic,
Cccc, Zače, grdiš čoveka zbog nepreciznosti, a pogledaj samo šta si ti sam napisao: > Neće baš po nahođenju. Sve procedure iz istog junita smeštene su > u segment i pozivaju se sa NEAR. Procedure iz drugih junita se > pozivaju kao FAR jer svaki junit dobije svoj code segment. Znači, ako neku proceduru zovem iz njenog unit-a, biće generisan near call, a ako istu proceduru pozovem odnekle spolja to će biti far call. Ne znam zašto, ali mi to ne deluje kao mehanizam koji bi radio duže od par nanosekundi. :))
pascal.416 pedjak,
> Bio je u pravom direktorijumu, fazon je u ona 4 slova... Zašto baš 4, tj. > samo 4 ? Pa mora i Borland negde da zezne stvar :)) pedja
pascal.417 pedjak,
> Da l' će da radi pod DV-om - nemam pojma, probaću kad ga napravim do kraja Jel' mogu već sad rezervišem mesto u budućoj grupi za testiranje novog SUPI-ja, a ? Ajde sredi mi :)) pedja
pascal.418 pedjak,
> Još bolje. SVira u backgroundu. Sjajno ! A jel' može da se dobije neki demo koji koristi taj unit, ako već ne može sam unit. Voleo bih da čujem kako zvuči. pedja
pascal.419 pedjak,
> :). Ali user-interface je poptpuno drugačiji od starih. EGA/mouse. :) A da li će raditi na Herc/mouse ? pedja
pascal.420 skerl,
Mala pomoc pocetnicima pri ucenju Pascal-a. Pogotovo pri pregledanju i shvatanju demo programa kao i onih koje nisu sami pisali. Pozdrav, Skerl. ───────────────────────────────────────────────────────────── January 1, 1993 Turbo Identity Version 1.0 A HyperSource Utility for Turbo Pascal v.6.0 (C) Copyright 1993 by Vladimir Jacko. All Rights Reserved. OVERVIEW TI offers the HyperText information from TP 6.0 source code. TI finds a definition for each identifier used in a program. It was designed as a utility to help beginners to read and understand the demonstration programs. REQUIREMENTS Borland's Turbo Pascal(R) version 6.0 A mouse is desirable The following files are supplied: TI.EXE The HyperSource utility TI.DOC This one This is a test version. It was released as I'd like to know other people's opinions. ti01.zip
pascal.421 ilazarevic,
U kojoj rezoluciji, po difoltu, radi TP program ako je BGI drajver EGAVGA?
pascal.422 ilazarevic,
Kako da ispraznim bafer tastature?
pascal.423 lovro,
> Izvinjavam se sto se mesam, ali ako vas interesuje postoje > procedure za TP ili TC za koriscenje *.MOD-ova. Nisu bas sjajne > ali rade, pa ako vam zatrebaju ... Bilo bi lepo od tebe, pa ako ih imas... Lovro
pascal.424 dzakic,
>> Znači, ako neku proceduru zovem iz njenog unit-a, biće generisan >> near call, a ako istu proceduru pozovem odnekle spolja to će biti >> far call. Naravno da ne. Pravi se razlika između dve vrste procedura: prve su "interface" procedure, one moraju biti far i tako se pozivaju bilo iz drugog bilo iz tog istog junita, dok su 'lokalne' procedure near jer se pozivaju samo iz tog junita. Da ne zalazimo sad u overlay-e, tu moraju sve da budu far. Ma sve je jasno, možda je i bilo neprecizno, ali sam hteo da kažem da to sve nije baš toliko proizvoljno već se tačno zna kako se šta poziva...
pascal.425 dzakic,
>> Kako da ispraznim bafer tastature? var kbdhead: word absolute $40:$1A; kbdtail: word absolute $40:$1C; begin kbdtail:=kbdhead; end.
pascal.426 mjova,
> Kako da ispraznim bafer tastature? možeš na dva nalina. jedan je relativno jednostavan: uzimaš znak iz bafera dokle god ga ima (prvo proveriš da li ima nešto u baferu), a drugi je malo teži ali brži: izjednačiš početak i kraj bafera (pogledaj u nekom helpu kako da nađeš ove adrese).
pascal.427 pedjak,
> Izvinjavam se što se mešam, ali ako vas interesuje postoje > procedure za TP ili TC za korišćenje *.MOD-ova. Nisu baš sjajne ali > rade, pa ako vam zatrebaju ... Trebaju meni. Šalji.... pedja
pascal.428 vitez.koja,
#=> Kako da ispraznim bafer tastature? //na pocetku programa {$X+} - TP 6.0 Procedure ClearKBD; begin while keypressed do readkey end;
pascal.429 vvelisavljev,
> Bilo je već od ranije: Izvinjavam se. Hvala svima! Šljaka OK.
pascal.430 peca.st,
!-> U kojoj rezoluciji, po difoltu, radi TP !-> program ako je BGI drajver EGAVGA? 640*480*16 P e C a
pascal.431 predragd,
> Bilo bi lepo od tebe, pa ako ih imas... > Evo ih stižu. Videćeš da na biperu malo šušti, ali ipak radi. žuo sam da postoji i novija - bolja verzija, ali ne znam tačno gde. Peđa. modcode.arj
pascal.432 predragd,
> U kojoj rezoluciji, po difoltu, radi TP program ako je BGI > drajver EGAVGA? Zavisi koju karticu imaš. Ako je EGA onda je 640x350, a ako je VGA onda u 640x480 sve to u 16 boja. Naravno sve to važi za sledeću proceduricu. DetectGraph (GraphDriver, GraphMode); InitGraph (GraphDriver, GraphMode, ''); Peđa.
pascal.433 predragd,
> je TP 7 ograničen na DOS. Možda će te zanimati da pogledaš > preliminarni prikaz Pascala 7.0 u prošlim "Računarima" Nisam siguran da li sam dobro shvatio taj članak, ali da li BP može da prihvati sledeće var Niz: Array Š1..70000Ć of Byte; Peđa.
pascal.434 bulaja,
**** new file **** R:\IBMPC\PASCAL\*.* ---------------------- tpti1 arj 132264*+Turbo Pascal Technical Informations (Borland) #1 tpti2 arj 71832*+Turbo Pascal Technical Informations (Borland) #2 Ranije je na Sezamu vec bila datoteka tpti10.arj, ali smo nabavili jos neke TP TI od Borland-a, pa smo napravili malu reorganizaciu arhiva :). U tpti1.arj se nalaze uglavnom stvari koje su bile i u tpti10, ali takodje ima i nekih novih stvari. U tpti10 su se nalazile i neke stvari za Turbo Prolog (takvu arhivu smo svojevremeno skinuli sa Trickle-a) koje su sada prebacene u \ibmpc\program\tpro_ti.arj. U tpti2.arj se nalaze nove stvari vezane za TP 6.0 i novije verzije (TP 4 Win, BP 7.0). Nadam se da je sve jasno :).
pascal.435 dgrbic,
:: Probao i tako, ali neće :(. Nekad oće, nekad neće. Probao i ja, i dobio sledeće rezultate: 1. Font mora da ti bude u tekućem dir-u, jer installuserfont ne prima celu kobasicu sa punim imenom fajla. 2. žak i onda, nekad oće a nekad neće (?) Ja probao sa onim Borlandovim fontovima koji se i dobiju uz Pascal, i sa dva je radilo kako treba a sa dva nikako, to jest, ne baš nikako, funkcija install... je očito zavirila u fajl, vratila kao rezultat broj fonta isti ko što piše za taj font u helpu, a ondak... ništa, ružna debela slova. Probato sa TP 5.0 i sa TC++ neznamkojaverzijamoraobihdaizađemamrzime i isti su rezultati.
pascal.436 dgrbic,
:: Nee... Svaki taster ima samo jedan SCAN kod. Njegova :: vrednost ide od 1-127. Ukoliko je taster pritisnut onda :: je sedmi bit resetovan, a ako je taster pušten onda je :: setovan. Zato se scan kodovi za pritisnut i otpušten :: taster razlikuju za 128. E, kako bi bilo lepo da je tako prosto... Ali nije! Pogledaj u HelpPC, ima čitava gomila scan kodova koje šalju neki tasteri, pa se još to razlikuje na AT i PS/2, pa ovo, pa ono... Mada, za neku normalnu primenu, moglo bi da se uvaži gorecitirano objašnjenje (osobito ako se radi o programu koji ne pravi egzibicije sa AT tastaturom, nego treba jednako da radi i na XTu).
pascal.437 skerl,
┌───────────────────────────────────────────────────────────────────┐ │ │ │ Documentation for │ │ │ │ TPU2ASM.EXE │ │ │ │ A symbolic disassembler for │ │ Turbo Pascal version 5.0 units │ │ │ │ Copyright (C) 1989 by Per Bent Larsen │ │ All rights reserved │ │ │ │ Version 1.0, March 1989 │ │ │ └───────────────────────────────────────────────────────────────────┘ What it is ────────────────────────────────────────────────────────────────────────────── TPU2ASM is a symbolic disassembler capable of extracting compiled code from a version 5.0 Turbo Pascal TPU file. The output is a TASM compatible assembly file. How to register ────────────────────────────────────────────────────────────────────────────── This program is sold under the ShareWare concept. This means that you may keep a copy of it for a period of 30 days for the sole purpose of testing it. After you have reviewed it, you should register it if you plan to continue using it. As a benefit of registration, you will receive the full source code for TPU2ASM (requires Turbo Professional 5.0 to compile) plus a few public domain utilities for Turbo Pascal, also written by me. You are encouraged to distribute the sha- reable version of TPU2ASM along with this documentation to others via BBS or on diskette.
pascal.438 ndragan,
/ treba da odbroji tih 'iljadu i(S)teracija. To je gubljenje Ionako radiš iteracije u petlji; napraviš petlju u petlji i nju teraš do 1000, kad izađe, zaviriš.
pascal.439 almi,
Kako da iz pascala pristupim VIDEO memoriji (recimo rez.800x600x256) tako da mogu direktno da menjam njen sadržaj. Pozdrav ALMI
pascal.440 ssokorac,
─┼┤ Jel' mogu već sad rezervišem mesto u budućoj grupi za testiranje ─┼┤ novog SUPI-ja, a ? Ajde sredi mi :)) Teško, s obzirom da je puna :). Ali ako bude potrebe, za obimnije testiranje SUPI-ja 54 od 2.5Mb, napraviću drugu grupu O:).
pascal.441 ssokorac,
─┼┤ A da li će raditi na Herc/mouse ? Pošto bi onda ružno izgledalo - ne :).
pascal.442 ssokorac,
Ovo sam pravio kada sam probao kako radi. Startuj sa demosvir ime_moda. Nije ništa efektno, ako tako nešto očekuješ :) samo crta i svira istovremeno. demosvir.arj
pascal.443 ssokorac,
─┼┤ U kojoj rezoluciji, po difoltu, radi TP program ako je BGI drajver ─┼┤ EGAVGA? 640x480, vidiš uz pomoć getmaxx i getmaxy :).
pascal.444 pedjak,
> U kojoj rezoluciji, po difoltu, radi TP program ako je BGI drajver > EGAVGA? Pa u onoj rezoluciji koja se prosledi kao parametar procedure InitGraph ( Driver, Mode, Path ) Znači Mode je odgovoran za rezoluciju.
pascal.445 ssokorac,
─┼┤ Probao i ja, i dobio sledeće rezultate: Ja sam probao i radilo mi je ok sa svim fontovima koje sam probao, a ima ih 5. Samo je bio štos da ime mora biti samo 4 slova.
pascal.446 dejanr,
>> Nisam siguran da li sam dobro shvatio taj članak, ali da li BP može >> da prihvati sledeće >> >> var Niz: Array Š1..70000Ć of Byte; Ma žalost ne, u tom obliku (nikad pobeći od ta 64 kilobajta :( ). Ipak, BP 7.0 ima mehanizam koji to obezbeđuje, pogledaj poruku koju sam pre oko mesec-mesec ipo dana preneo sa BIX-a u okviru koje je izloženo moguće rešenje.
pascal.447 vvelisavljev,
{$X+} Uključuje Extended syntax. (!?) Šta mu to dođe?
pascal.448 peca.st,
E jedno pitanjce, koje je verovatno glupo, al nikako da gi rešim. Na tekstualnom ekranu je nešto ispisano. Kako da to nešto, sa određenog dela ekrana sačuvam? Mislim, nešto kao getimage ali za text mod. P e C a
pascal.449 peca.st,
!->>> Kako da ispraznim bafer tastature? A kako da ubacim znak u bafer tastature a da ne pritiskam tastaturu? To mi već odavno treba... P e C a
pascal.450 mjova,
> A kako da ubacim znak u bafer tastature a da ne pritiskam > tastaturu? To mi već odavno treba... int 16/05h
pascal.451 ilazarevic,
Hvala svima!
pascal.452 ilazarevic,
> A kako da ubacim znak u bafer tastature a da ne pritiskam tastaturu? > To mi već odavno treba... Pozoveš int 16h, funkcija 05h. U CH turiš scan code, a u CL ascii kod znaka. U CF ti vraća da li je greška ili ne.
pascal.453 pedjak,
> Mada, za neku normalnu primenu, moglo bi da se uvaži gorecitirano > objašnjenje (osobito ako se radi o programu koji ne pravi egzibicije sa AT > tastaturom, nego treba jednako da radi i na XTu). Ma da :))) potpuno se slažem sa ovim. Kod EXTENDED tastatura postoje i drugi SCAN kodovi ( sivi tasteri i tako to ). Zoran čivotić je svojevremeno napisao jedan tekst u "Računarima" o toj temi. pedja
pascal.454 pedjak,
> A da li će raditi na Herc/mouse ? > Pošto bi onda ružno izgledalo - ne :). A da li ćeš uz svaku kopiju SUPI-ja deliti besplatno i VGA i monitor, da bi sve to izgledalo lepše , a ? :)))))) Na nas sa Herculesom niko ne misli, šmrc :((( pedja
pascal.455 peca.st,
Povodom onog mog pitanja o snimanju tekstualnog ekrana... Ja sam prvo postavio pitanje, a posle toga mi lovro reče da on otprilike zna kako bi to trebalo da se uradi. E, on mi objasni to malo u školi, onako iz glave, ja dođem kući i uz malo muke uspem da napravim to što mi je trebalo... E, ako nekog zanima, mogu da pošaljem... P e C a
pascal.456 ssokorac,
─┼┤ š$X+ć Uključuje Extended syntax. (!?) Šta mu to dođe? Možeš da pozivaš funkcije kao procedure.
pascal.457 stomic,
$ {$X+} Uključuje Extended syntax. (!?) Šta mu to dođe? žini mi se mogućnost ignorisanja vrednost koju vraća funkcija, tj. isto tretiranje procedura i funkcija (kada je potrebno, naravno). ST.
pascal.458 stomic,
$ E jedno pitanjce, koje je verovatno glupo, al nikako da gi $ rešim. Na tekstualnom ekranu je nešto ispisano. Kako da to $ nešto, sa određenog dela ekrana sačuvam? Mislim, nešto kao $ getimage ali za text mod. Na $b000:0000 za Hercules i $b800:0000 pa nadalje (4000 bajtova) su redom slovo, atribut za svaku poziciju na ekranu. Pročitaj odatle, sačujav, pa posle vrati upisivanjem na isto mesto. Može preko interrupt-a, ali je sporije (teže?). ST.
pascal.459 dgrbic,
:: {$X+} Uključuje Extended syntax. (!?) Šta mu to dođe? To mu dođe da možeš funkciju da koristiš i kao proceduru (ko u C-ju), na primer imaš function a (i : integer): integer; pa možeš da staviš b:=a(1); a možeš i samo a(1); ako ti tako nešto treba. Može da bude korisno.
pascal.460 ppekovic,
>> E, ako nekog zanima, mogu da pošaljem... Samo napred, sigurno će nekog zanimati. Paya
pascal.461 ssokorac,
─┼┤ A da li ćeš uz svaku kopiju SUPI-ja deliti besplatno i VGA i ─┼┤ monitor, da bi sve to izgledalo lepše , a ? :)))))) Može, ali SUPI košta 1000Dem. :) ─┼┤ Na nas sa Herculesom niko ne misli, šmrc :((( Ma, šalim se, radiće, samo neće biti tako lepo :).
pascal.462 ssokorac,
─┼┤ glave, ja dođem kući i uz malo muke uspem da napravim to što mi je ─┼┤ trebalo... A što jednostavno kad može komplikovano :). Imaš uz TP 6.0 windemo.pas u kome ima lepo primer i procedure za skidanje dela ekrana.
pascal.463 zolika,
>> E jedno pitanjce, koje je verovatno glupo, al nikako da gi rešim. >> Na tekstualnom ekranu je nešto ispisano. Kako da to nešto, sa određenog >> dela ekrana sačuvam? Mislim, nešto kao getimage ali za text mod. Naravno, Modula-2 rešava problem!!! Evo ti procedura pisana na MODULI-2, koja sadržaj prozora zadate širine i visine, i koordinate gore-levo prenosi u bafer, a takođe i sa bafera na ekran. Mala podešavanja mislim da će biti potrebna, u zavisnosti od početne adrese video-memorije. Dakle: CONST WindowWidth = 20; (* The width and height of the window with the message *) WindowHeight = 7; (* can be easily changed *) BufferSize = WindowWidth*WindowHeight; TYPE BufferType = ARRAY[1..BufferSize] OF WORD; (* For putting the contents of the screen*) Action = (ToScreen, ToBuffer); (* Which action? *) PROCEDURE BufferScreen(ScrBegin, Line, Column : CARDINAL; VAR Buf : BufferType; Mode : Action); VAR i, j: CARDINAL; (* this procedure moves block from video memory *) BegAddr: FarADDRESS; (* with Line and Column as coordinates of top- *) BEGIN (* -left-handside corner to Buf or from Buf *) BegAddr:=[ScrBegin: (* which depends on Action. Segment of screen *) 160*(Line-1)+2*(Column-1)]; (* begin is given in the ScrBegin *) FOR i:=Line TO Line+WindowHeight-1 DO FOR j:=Column TO Column+WindowWidth-1 DO IF Mode=ToBuffer THEN Buf[(j-Column+1)+WindowWidth*(i-Line)]:=BegAddr^;(* move to buffer *) BegAddr^:=BlankScreen; ELSE BegAddr^:=Buf[(j-Column+1)+WindowWidth*(i-Line)];(* ...or to screen!*) *) END; IncFarAddr(BegAddr,2); END; BegAddr:=[ScrBegin:160*i+2*(Column-1)]; (* new line *) END; END BufferScreen; Nazovi program kako hoćeš, iskompajliraj ga i uživaj!!!
pascal.464 darone,
>> Nije ništa efektno, ako tako nešto očekuješ :) >> samo crta i svira istovremeno. E pa kod mene ili svira ili crta ;) Sad - zavisi kako ga startujem :)) >> D:\>demosvir.exe >> Error #1 in music unit, please report to author >> BGI Error: Graphics not initialized (use InitGraph) Prvo, što ne reče da mu treba egavegea, jedva ga nađoh na disku :)) Pazi sad ozbiljno: kada mu dam parametar oxygene.mod, ali bez egavga u blizini, on počne da svira, posle par sekundi napiše BGI Error (...) i nastavi da šušti (logično). Međutim, kada mu dobacim egavegea, samo crta i ne svira :((( Buaaaaaaa, zašto? darone
pascal.465 isekulovic,
>> Zavisi koju karticu imaš. Ako je EGA onda je 640x350, a ako je VGA >> onda u 640x480 sve to u 16 boja. Naravno sve to važi za sledeću >> proceduricu. Da li to znači da ako se grafika incijalizuje na taj način, na vga raditi u 640x480 iako se podesi kartica da radi u 1024x768 modu? Ne zamerite ako je pitanje glupo ja sam hercaš.
pascal.466 inesic,
> Možeš da pozivaš funkcije kao procedure. ??????? žemu to služi, a uz to i ne radi?
pascal.467 dzakic,
> žemu to služi Recimo, imam neku proceduru koja treba da uradi nešto i da mi vrati Boolean da li je posao uspeo ili ne. Recimo, da iskopira datoteku uz jednog u drugi direktorijum. Ja tu proceduru napišem kao funkciju i stavim da vraća boolean. Sad, kad mi treba izveštaj da li je posao uspeo ili ne, pozivaću sa Stat:=MyCopy(s1,s2); Međutim, ako me ne zanima da li je kopiranje uspelo ili ne, što da džabe deklarišem promenljivu, lakše staviti samo MyCopy(s1,s2); Eto čemu služi, a naravno da radi. Zak
pascal.468 peca.st,
!-> int 16/05h A šta dalje? Ajde malo opširnije! P e C a
pascal.469 dzakic,
Nema tu mnogo šta opširnije... 05H Place a keystroke into the keyboard buffer. (11/15/85 BIOS) Input: CL = ASCII character. CH = Scan Code byte (or 0 if you don't care). Output: AL = status: 0=success; 1=buffer full Function InBuf(c:char):boolean; assembler; asm mov cl,c sub ch,ch mov ah,5 int $16 xor al,1 end; Funckiji proslediš karakter koji oćeš da staviš u bafer, ona vrati true ako je uspelo ili false ako nije. Ako nije bitno, pogledaj moju prethodnu poruku.
pascal.470 vitez.koja,
#=> {$X+} Ukljucuje Extended syntax. (!?) Sta mu to dode? Mozes da pozivas funkciju kao proceduru, tj da zanemaris vrednost koja se vraca kroz ime funkcije (kao u Cu)
pascal.471 skerl,
Posto predpostavljam da to pitas zbog pravljenja nekih prozora i slicnih stvarcica, saljem jedan jaako upotrebljiv unit za sad sa prozorima. Pusti demo program koji je vrlo ilustrativan. Pozdrav, Skerl. ───────────────────────────────────────────────────────────────────────── TPW60 March 15, 1988 MULTI-LEVEL WINDOWS FOR BORLANDS TURBO PASCAL Version 6.0 FILES In this version, TPW60.ARC contains TPW60.TPU - Turbo Pascal window unit TPW60.PAS - Source for TPW60.TPU TPW60.OBJ - Object used by TPW60.PAS TPD60.PAS - Demonstration program TPW60.TXT - This document file. USING TPWINDO You can either leave the TPW60.TPU unit file as a stand-alone unit or put it in the TURBO.TPL library with the TPMOVER program. Include TPW60 in your uses statement. Rick Fothergill 141 Oak Hill Road Pittsfield, MA 01201 procedure TPWprint(row,col:integer;strdat:str80;tattr:integer); procedure TPWfill (row,col,rows,cols:integer;ch:char;tattr:integer); procedure TPWattr (row,col,rows,cols,tattr:integer); procedure TPWprintc(row,colL,colR:integer;strdat:str80;tattr:integer); procedure TPWborder(colornum:integer); procedure TPWbox(col,row,col1,row1,wattr,wbattr,brdrsel,zoom,sattr, shadow:integer;TPWptr:byteptr); procedure TPWrbox(row,col,rows,cols,shadow:integer;TPWptr:byteptr); procedure TPWtitle(loc,row,col,rows,cols:integer;strdat:str80; tattr:integer); procedure MakeWindow(row,col,rows,cols,wtattr,wbtattr,brdrsel,stattr, shadow,zoom:integer); procedure MakeBox(row,col,rows,cols,wtattr,wbtattr,brdrsel,stattr, shadow,zoom:integer); procedure TitleWindow(dir,tattr:integer;title:str80); procedure RemoveWindow; procedure ClearWindow; procedure PrtWindow(row,col:integer;strdat:str80); procedure PrtCWindow(row:integer;strdat:str80); procedure CursorChange(new:integer;var old:integer); procedure MakeMenu(var menu:menurec); procedure VideoOn; procedure VideoOff; procedure EGA43; function Attr (fore,back:integer):integer;
pascal.472 ssokorac,
─┼┤ počne da svira, posle par sekundi napiše BGI Error ─┼┤ (...) i nastavi da šušti (logično). Međutim, kada ─┼┤ mu dobacim egavegea, samo crta i ne svira :((( žudo da uopšte crta :(. Problem je u mom initgraph-u :), dakle, ako nekome ne crta, neka stavi egavga.bgi u direktorijum c:ĐtpĐbgi, a ako nema takav direktorijum - neka ga napravi samo za ovu priliku :). To je valjda to, ako neće i dalje - viči! :)
pascal.476 predragd,
> Da li to znači da ako se grafika incijalizuje na taj > način, na vga raditi u 640x480 iako se podesi kartica da > radi u 1024x768 modu? Naravno, pod uslovom da koristiš EGAVGA drajver. Za rad sa SVGA rezolucijama morao bi da koristiš neki SVGA BGI drajver (SVGA16 ili SVGA256). Nisam baš siguran, ali mi se čini da bi ti i tada DetectGraph naredba predložila najveću rezoluciju koju podržava ta kartica. Peđa.
pascal.477 peca.st,
!-> Nazovi program kako hoćeš, iskompajliraj !-> ga i uživaj!!! Ma idi bre ovako je mnogo komplikovano... Rešio sam sam, procedura ima dva tri reda... Evo je: procedure getchar(x,y:byte;var boja:byte;var ch:char); type niz=array Š1..4000Ć of byte; var textekran:niz absolute $b800:$000; šovde staviti $b000 za Herculesć begin dec(x); dec(y); boja:=textekranŠ2*(x+y*80)Ć; ch:=chr(textekranŠ2*(x+y*80)+1Ć; end; A dalje je lako, samo u matricu slogova ubacuješ pomoću ovoga boju i karakter sa dela ekrana...
pascal.478 peca.st,
Htedoh da napravim neki rezidentni program, kad ono... Kojim interruptom se očitava interni časovnik? Mislim, hoću da on nešto uradi na primer na svakih pola sata, pa ne znam kojim se interruptom to kontroliše... Ajde ko zna neka bači vamo taj interapt! P e C a
pascal.479 drpr,
-> TPW60 March 15, 1988 Šteta što si morao ponovo da ga ul-uješ jer sam ja to ulovao još pre godinu dana (fajl modertori diga ste sada ;)) ali evo mene zanima asinhorona komunikacija sa com portovima a video sam da na trickle-u (do koga ja ne mogu da dođem) ima neki fajlić o tome pa ako ti nije frka bio bi presretan da baciš neki. cope
pascal.480 peca.st,
!-> Eto čemu služi, a naravno da radi. Pa to je haos. Znači samo š$X+ć i onda mogu ovako da radim? P e C a
pascal.481 skerl,
TPU2TPS program je napisao isti covek koji je napisao i INTRFC61 za dumpovanje tpu-ova. Ovaj program vadi iz SYSTEM.TPU bootstrap file SYSTEM.TPS kojim se moze napraviti novi SYSTEM.TPU Moze u dir! Pozdrav, Skerl. ──────────────────────────────────────────────────────────────── TPU2TPS - Extracts SYSTEM.TPS from TP6.0/TPW1.0 run-time library Written by D.J. Murdoch for the public domain, July 1991, after having my curiosity piqued by Mitch Davis. Syntax: TPU2TPS will read SYSTEM.TPU, and create SYSTEM.TPS, suitable for recompiling into a new version of SYSTEM.TPU. What does it do? Turbo Pascal keeps most of the run-time library in the SYSTEM unit, which is usually stored in SYSTEM.TPU within TURBO.TPL or TPW.TPL. To recompile it, you need a special "bootstrap file" called SYSTEM.TPS. This program, TPU2TPS, extracts the bootstrap file from a compiled version of SYSTEM.TPU. What use is it? If you have SYSTEM.TPS in the current directory, you can compile a new SYSTEM unit and change the run-time library. Why bother? Perhaps you don't need any of the standard library; if you're writing a tiny utility that doesn't use any of its services, there's no point linking in several K of it that won't be used. The included SYSTEM.PAS is an absolutely minimal replacement; using it, you can shrink the sample TEST.PAS from an .EXE size of 1400 bytes down to 128 bytes. Everyone will think you wrote it in assembler. How do I use it? First, get a copy of SYSTEM.TPU from TP 6.0 or TPW 1.0 (or compatible later versions) in the current directory. You may have to use TPUMOVER to get it out of TURBO.TPL or TPW.TPL; the syntax to use is TPUMOVER TURBO *SYSTEM or TPUMOVER TPW *SYSTEM Then, run TPU2TPS. It'll create SYSTEM.TPS (or tell you that something has gone wrong). Next, get rid of the original SYSTEM.TPU (keeping a copy of course!), and compile SYSTEM.PAS. (You may want to make some changes to it first.) This should give you a new version of SYSTEM.TPU. Don't put it into *.TPL unless you're very sure of yourself; it is almost certainly not the one you want to use as a default. Finally, hide the old SYSTEM.TPU and *.TPL; be sure they aren't on the path, in the .TPU directory, or in the same directory as your compiler. Make sure that the new SYSTEM.TPU is available in one of those places, and compile TEST.PAS or another program of your choice. Don't use any system procedures or functions; don't use strings, sets, longints, floating point, or files; don't use dynamic memory or overlays; disable stack and range checking, IEEE reals, and floating point emulation. All of those need a real SYSTEM.TPU. If you use one of those by mistake, you'll be in real trouble: the compiler doesn't expect you to fool around with SYSTEM.TPU this way, and it can get very, very confused if it goes looking for services that aren't there. A more robust SYSTEM replacement would halt with an error if you tried any of those things, but the included one won't. (There are over 130 functions/procedures in the real thing; I was too lazy to code that many stubs!) tpu2tps.zip
pascal.482 skerl,
Ovaj unit aktivira IBM enhanced tastaturu na racunarima koji je imaju i simulira je na onima bez nje. Moze u dir! Pozdrav, Skerl. ─────────────────────────────────────────────────────────────────── This unit activates the IBM enhanced keyboard for machines that have one, and simulates an enhanced keyboard for machines that don't. The enhanced scan codes will be returned by all normal calls which read the keyboard, e.g, ReadKey (from CRT), ReadKeyWord (from TPCRT and supplied here), and even when DOS reads from the keyboard. This unit should be USEd early in a program's USES list. There are no procedures to call here -- operation is completely transparent to the program. The unit interfaces a variable, HasEnhancedKbd, which will be True if an enhanced keyboard was detected, False otherwise. It interfaces a second variable, EnableEnhanced, which defaults to true. If you set this variable to False, the ENHKBD special functions will be disabled until you set the variable to true again. The following table summarizes the keys which are affected by using this unit. The entries are the values of the scan word in hex. The high byte of the scan word is the scan code, the low byte the ASCII character. If the low byte is 00, the high byte will be returned on the next call to ReadKey. Any keys not listed are returned in the usual manner (see the Turbo Pascal 4.0 manual, first printing pages 571-572, for a scan code chart). See Notes, following the table, for the key to special symbols. Plain Shift Control Alt ----- ----- ------- ---- F11 8500% 8700% 8900% 8B00% F12 8600% 8800% 8A00% 8C00% Esc 011B 011B 011B 0100* Backquote 2960 297E 2960 2900* Backspace 0E08 0E08 0E7F 0E00* Tab 0F09 0F00 9400* A500* Left Brack 1A5B 1A7B 1A1B 1A00* Right Brack 1B5D 1B7D 1B1D 1B00* Backslash 2B5C 2B7C 2B1C 2B00* Semicolon 273B 273A - 2700* Quote 2827 2822 - 2800* Enter 1C0D 1C0D 1C0A 1C00* Comma 332C 333C - 3300* Period 342E 343E - 3400* Slash 352F 353F - 3500* Insert 5200 5230 9200* A200# Del 5300 532E 9300* A300# Home 4700 4737 7700 9700# End 4F00 4F31 7500 9F00# PgUp 4900 4939 8400 9900# PgDn 5100 5133 7600 A100# Up 4800 4838 8D00* 9800# Down 5000 5032 9100* A000# Left 4B00 4B34 7300 9B00# Right 4D00 4D36 7400 9D00# Pad-Asterisk 372A ! ! 3700# (numeric keypad keys) Pad-Minus 4A2D 4A2D 8E00* 4A00# Pad-Plus 4E2B 4E2B 9000* 4E00# Pad-5 4C00* 4C35 8F00* 9C00# Notes: - These keystrokes are ignored. * These keystrokes are not normally returned by the non-enhanced keyboard. # These keystrokes are not normally returned by the enhanced keyboard. ! These keystrokes control printscreen and print echoing. They cannot simulate the effect of the enhanced keyboard, which has the Asterisk and PrtSc keys separated. % The F11 and F12 keys are returned only if they actually exist on the keyboard. With a few exceptions, the EnhKbd unit returns results identical to those of the enhanced keyboard BIOS. One difference makes the enhanced keyboard simpler to use in a program: those scan words which normally contain E0 in the low byte to indicate that the key is specific to the enhanced keyboard (like the dedicated cursor keys) will have the low cleared to zero by EnhKbd. Keys marked with # are normally ignored by the enhanced BIOS. By defining these numeric keypad keys when Alt is pressed, the usual ability to enter arbitrary keys on the numeric keypad is disabled. Within applications, the ability to use alt-shifted arrow keys will generally be more useful. The arbitrary keys from the numeric keypad are still available by pressing both Alt and Left Shift simultaneously. tpenhkbd.zip
pascal.483 skerl,
Unapredjene rutine za mnozenje, deljenje, korenovanje, sin, cos, arctan, exp i ln za racunare i programe koji rade sa real tipom i koji su bez koprocesora. Moze u dir. Pozdrav, Skerl. ─────────────────────────────────────────────────────────────────────── Improved Floating Point Subroutines for Turbo Pascal This software package is meant to be a superior alternative for Turbo Pascal's built in floating point library for the "real" format. Programs using the "real" format for intensive numeric computation can benefit from this package when run on a computer without a numeric co-processor. To use this package, you should have Turbo Pascal version 4.0 or later. The library is in the form of a TPU file. To use this library, you need to add the statement "uses rlib;" at the beginning of your program. The library consists of subroutines for floating point multiplication, division, sqrt, sin, cos, arctan, exp and ln. To get the equivalent of x*y in your program, just substitute _mul(x,y). Similarly, to get x/y, use _div(x,y).(x and y can themselves be expressions instead of variables.) To get the other functions, just add an underscore before the equivalent TP definition. For example, _sin(x) for sin(x). Creating RLIB.TPU Since TPU files created using different versions of Turbo Pascal are, in general, incompatible with one another, the TPU file has to be compiled using your current version of Turbo Pascal. To create RLIB.TPU, compile RLIB.PAS to disk, making sure that the correct path to the OBJ files which come in this package is specified in the compiler. This package also comes with a program 'TEST.PAS' which can be used to compare this package with Turbo Pascal's. The average speed improvement ranges from 20% for multiplication to about 1200% for sqrt. The "Savage" option is a benchmark to test the accuracy of the routines. The lower the residual error, the better is the accuracy of the routines. This package can be seen to be superior than Turbo Pascal's by running the "Savage" option. Error Handling When a floating point error occurs, the type of error and the address where the error occured in the main program are displayed and the program is halted. Errors are of three types-division by zero, overflow, and illegal function call. If you want, you can write your own error handling routine. The rules are: 1. The global pointer variable matherrptr declared in RLIB.TPU should be set to the address of your routine at the beginning of the program. Eg., matherrptr:=@myerrproc; 2. The error handling routine should be compiled with the far option turned on.({$F+}) 3. The input parameters to the error handling routine are an integer and a pointer in that order. The integer contains the type of floating point error (1-division by zero, 2-overflow, 3-illegal function call) and the pointer contains the address of the main program from where the call was made. Even if you don't use these parameters, they should appear in the procedure declaration. Also, do not use "var" in the input declaration. A typical error handling routine might look like: procedure myerrproc(typeoferror:integer;erroraddr:pointer); begin writeln('Its debugging time!'); end; Failure to follow the above rules might result in a crashed program! The error handler can pass control back instead of halting. In that case, the value returned by the floating point subroutine would be 1.7E38 in magnitude, the sign depending on the input variables to the routine. tpreal2.zip
pascal.484 skerl,
│ mene zanima asinhorona komunikacija sa com portovima a │ video sam da na trickle-u (do koga ja ne mogu da dodem) │ ima neki fajlic o tome pa ako ti nije frka bio bi │ presretan da bacis neki. └───── Evo jednog paketcica sa trickle-ta. Pozdrav, Skerl. ────────────────────────────────────────────────────────────────── INTRODUCTION This utility is an answer to the many public domain serial port routines which I have acquired in the quest for good RS-232 support under Turbo Pascal. Unlike the others, this one works. Not only does it work, but it also allows you to use as many COM ports as you want at the same time. Designed to be relatively simple and easy to use, I hope many will benefit from it. FEATURES - Easily expandable interrupt routine - Interrupt driven send and receive routines - Carrier Detect monitoring for modem support - Turbo Pascal 4.0 & 5.x compatible TPU source code - Convenient TPU format keeps your code uncluttered - Easy to customize for your hardware, and software requirements - Uninstalls the interrupt handlers on abnormal program termination - Number of COM ports limited only by buffer sizes & Turbo memory limits - A TPU which handles 4 ports can be less than 8K in size - Easy to use even if you don't understand how it works - All COM ports handled concurrently in the background - Example TTY and port setup routines included - Optional error checking and error messages - Extensive documentation for software use - Heavily documented source code comm-tp5.zip
pascal.485 skerl,
│ mene zanima asinhorona komunikacija sa com portovima a │ video sam da na trickle-u (do koga ja ne mogu da dodem) │ ima neki fajlic o tome pa ako ti nije frka bio bi │ presretan da bacis neki. └───── Evo jos jednog paketcica sa trickle-ta. Pozdrav, Skerl. ────────────────────────────────────────────────────────────────── 1.1 FEATURES The LiteComm-TP Toolbox(Tm) is a set of powerful routines designed to provide easy access to the full capabilities of the PC's asynchronous communications ports. The LiteComm-TP ToolBox supports fully interrupt-driven and buffered communications support on COM1 through COM4 simultaneously. Now you can quickly incorporate sophisticated communications support in your applications without having in-depth knowledge of how the hardware functions. LiteComm-TP is implemented as a set of 4 units for the basic product, with additional units providing the protocol-engine capability. The protocol engines are a part of the registered version of the package. ltcomm50.arc
pascal.486 pedjak,
> Mislim, hoću da on nešto uradi na primer na svakih pola sata, pa ne znam > kojim se interruptom to kontroliše... Ajde ko zna neka bači vamo taj > interapt! Interapt 21H, funkcija 2CH - očitavanje sistemskog vremena ========================================================== Poziv sa: Rezultat: AH=2CH CH=sati CL=minuti DH=sekunde DL=stotinke Hm, samo ne znam zašto bi koristio interapte kad već u Pascalu imaš proceduru GetTime koja radi istu stvar ? pedja
pascal.487 peca.st,
!-> Hm, samo ne znam zašto bi koristio !-> interapte kad već u Pascalu imaš !-> proceduru GetTime koja radi istu stvar ? Pa hoću da to bude rezidentno! Kako drugačije da stalno očitavam vreme u rezidentnom programu? Za gettime znam, koristim ga ali meni treba ovo: setintvec(????????,čradi_to_i_to); meni treba ovo ???????? P e C a
pascal.488 isekulovic,
Pišem jedan program sa grafikom u tp-u 6.0 i često mi se događa da kad startujem program pored onog što hoću na ekranu se pojave i razne brljotine. Ako prekinem program pa ponovo strtujem brljotina ama baš nikad nema. Takođe ih nema ama baš nikad kad program iskompjaliram u .exe pa ga onda startujem. Šta je uzrok ovoga?
pascal.489 ilotina,
> Pišem jedan program sa grafikom u tp-u 6.0 i često mi se > događa da kad startujem program pored onog što hoću na > ekranu se pojave i razne brljotine. Da ti se to ne bi događalo u meniju Options, ili beše negde drugde imaš opciju "save graphics screen"(ili tako nešto) pa je postavi na on i problem je rešen. Ivan
pascal.490 ilazarevic,
> Ako prekinem program pa ponovo strtujem brljotina ama baš nikad nema. Može da bude da treba da se uradi jedno ClearDevice. Procedura je u graph unitu, mora da se već bude u graph režimu. Trebalo bi da ti ona očisti izlaz na ekran u grafici, tako da nema problema.
pascal.491 drpr,
-> Evo jos jednog paketcica sa trickle-ta. -> Pozdrav, -> Skerl. E jesi maher još ako ih poteram da rade na tp6.0 eto moje sreće! cope
pascal.492 peca.st,
Verovatno je već bilo ovakvo pitanje, al ajde... Da li je ikako moguće da se egavga.bgi uključi u exe fajl, a ne da ga akam zajedno sa njim, kao poseban fajl? Ajde odgovor... P e C a
pascal.493 skerl,
│ -> Evo jos jednog paketcica sa trickle-ta. │ -> Pozdrav, │ -> Skerl. │ │ E jesi maher jos ako ih poteram da rade na tp6.0 eto moje │ srece! └────── Ja sam ih poterao bez problema na sestici! Skerl.
pascal.494 drakce,
│ Da li je ikako moguće da se egavga.bgi uključi u exe fajl, a ne da ga akam └─────── Moguće je. Uz TP 6.0 dobija se program BGILINK.PAS, gde je sve na primeru objašnjeno. Možeš ubaciti i fontove u EXE fajl. Pozdrav
pascal.495 predragd,
Ima li neko iskustva sa korišćenjem BGI drajvera za štampače (na SEZAM-u PRBGI094.ZIP). Naime pokušao sam da nešto odštampam na HPLJ III i nije išlo, dobio sam neke kuke i kvake. Doduše drajver je namenjen za HPLJ II, ali ipak mislim da bi trebalo da radi. Postoji li možda novija verzija. Peđa.
pascal.496 stomic,
$ !-> Hm, samo ne znam zašto bi koristio $ !-> interapte kad već u Pascalu imaš $ !-> proceduru GetTime koja radi istu stvar ? $ $ Pa hoću da to bude rezidentno! Kako drugačije da stalno $ očitavam vreme u rezidentnom programu? Za gettime znam, $ koristim ga ali meni treba ovo: $ setintvec(????????,čradi_to_i_to); meni treba ovo ???????? Ako misliš da kačiš proceduru na interrupt za očitavanje vremena ne verujem da ćeš baš postići što želiš, tj. tvoja procedura će biti pozvana tek kada se očitava vreme. Okači proceduru o $08 interrupt koji se okida svakih 55ms, pa u tvojoj proceduri uvećavaj neki brojač, koji kada dostigne x, gde je x=30*60*100/55, uradi šta želiš. Koliko sam razumeo ovo si tražio. Right? ST.
pascal.497 ilazarevic,
> Da li je ikako moguće da se egavga.bgi uključi u exe fajl, a ne da ga > akam zajedno sa njim, kao poseban fajl? Ajde odgovor... Može sa RegisterBGIDriver. Pogledaj u Helpu sintaksu i ostalo.
pascal.498 peca.st,
!-> Moguće je. Uz TP 6.0 dobija se program !-> BGILINK.PAS, gde je sve na primeru !-> objašnjeno. Možeš ubaciti i fontove u EXE !-> fajl. TOOOOO! Hvala puno! P e C a
pascal.499 skerl,
Jos jedan program za dump-ovanje tpu-ova koje je napravio tp6.0. Ovo bi moglo da ide uz INTRFC u PASCAL dir. Pozdrav, Skerl. ─────────────────────────────────────────────────────────────────────── TPUINFO.EXE =========== TPUINFO is a utility that will list various facts concerning .TPU files created by Turbo Pascal v. 6.0. TPUINFO will accept wild cards allowing a listing of multiple .TPU files within a directory. A sample execution of TPUINFO would be: C>TPUINFO d:\TURBO\TVISION TPUInfo version 6.0 Copyright (C) 1990, J.P. Ritchey Unit Flags Init Code Data Actual Name -------- ------------ --- ------ ------ ----------- OBJECTS $N-,O+,D-,L- 8298 456 DRIVERS $N-,O-,D-,L- Yes 2775 734 MEMORY $N-,O+,D-,L- 559 10 VIEWS $N-,O+,D-,L- 21866 864 HISTLIST $N-,O+,D-,L- 489 14 MENUS $N-,O+,D-,L- 9615 414 DIALOGS $N-,O+,D-,L- 12607 1372 COLORSEL $N-,O+,D-,L- 6894 622 APP $N-,O+,D-,L- 3561 628 MSGBOX $N-,O+,D-,L- 1463 84 STDDLG $N-,O+,D-,L- 12040 932 TEXTVIEW $N-,O+,D-,L- 2495 304 The "Unit" column is the name of the .TPU as it is found on disk. The "Flags" column lists the state of those compiler options that are detectable by a simple inspection of a .TPU file. The "Init" column will contain "Yes" if the unit contains initialization code. The "Code" column indicates the number of bytes of code contained within the .TPU. The "Data" column indicates the number of bytes of data (both initialized and unitialized) contained within the .TPU. TPUINFO has a command line option, Verbose (enabled by specifying /v on the command line), that will list the source and object files used to create the .TPU in addition to the information listed when /Verbose is not specified. An example follows: C>TPUINFO D:\TURBO\TVISION\DRIVERS /v TPUInfo version 6.0 Copyright (C) 1990, J.P. Ritchey Unit Flags Init Code Data Actual Name -------- ------------ --- ------ ------ ----------- DRIVERS $N-,O-,D-,L- Yes 2775 734 PAS 11/05/90 06:00:00a DRIVERS.PAS OBJ SYSINT.OBJ OBJ FORMAT.OBJ TPCONFIG.EXE ============ This utility will take your IDE configuration file (TURBO.TP) and create a configuration file (TPC.CFG) for use with the command line compiler. It will also take as input a TPC.CFG file and update your TURBO.TP file to reflect the options contained in the TPC.CFG file. tp6util.zip
pascal.500 skerl,
┌──────────────────────────────────┐ │ Multitasking Routines for TP 6.0 │ └──────────────────────────────────┘ Copyright (c) 1991,1992 A.B.S. - ALL RIGHTS RESERVED 2.00 First Distributed Release 2.10 Fixed Windows Checking 2.11 Took out VMiX Code 2.20 Fixed DDOS Code - Locking up Novell 2.21 Fixed Code - Tried to be too smart for my own good CONST MultiTasker : Boolean = True; DV_Loaded : Boolean = False; {DESQview 2.26+} TV_Loaded : Boolean = False; {DV 2.00-2.25, TaskView, TopView, OmniView, & clones} DDOS_Loaded : Boolean = False; {DoubleDOS} WIN386_Loaded : Boolean = False; {Windows in 386enh mode} PROCEDURE TimeSlice; {Gives up one Time Slice, call while polling the keyboard for input, has no effect if a multitasker is not present} PROCEDURE PreventSwitching; {Prevents Task Switching until ResumeSwitching is called, used for critical code, don't leave on for too long!, has no effect if a multitasker is not present} PROCEDURE ResumeSwitching; {Resumes Task Switching, has no effect if a multitasker is not present} FUNCTION MulVersion : Word; {Returns the Version Number for TopView, DESQview 2.26+, and Win386, 0 for all others or none, OmniView - who knows} FUNCTION VirtualBuffer : Word; {Returns the Virtual Buffer for Direct Screen Writes Should only be called once for DESQview & TV, should be called EVERY write for DDOS, returns 0 if no multitasker is present} PROCEDURE TV_UpdateBuffer(Num : Word; Buffer, CharOffset : Word); {Updates the screen from the virtual buffer. Num is the number of sequential characters that have been modified. Buffer is the VirtualBuffer. CharOffset is the offset of the first character modified. Do NOT call with Num = 0! Only needed for TV, DESQview will discontinue the automatic screen updating if this is called!, might crash if TV/DV is not present!} FUNCTION DDOS_Visible : Boolean; {Returns True if the current task is the visible task, might crash if DDOS_Loaded is False!} tpmul221.zip
pascal.501 drpr,
-> Ja sam ih poterao bez problema na sestici! -> Skerl. Ipak izgleda najbolji fajl koji si poslao ltcomm50.arc neće da radi na šestici :((.Prijavljuje mi lošu verziju tp a na moju probu da u zaglavlju promenim broj na TP9 kaze mi da ima neki invalid u zapisu tpu-a :((.Elem izgleda ili da se vrćem nazad na 5.5 ( ili treba na 5.0) ili da čekam bolja vremena. cope
pascal.502 peca.st,
!-> Koliko sam razumeo ovo si tražio. Right? Ma to čoveče! Onaj obrazac što si napisao za izračunavanje 30min jasan mi je, mada sam ja to stavio tek primera radi. Hvala puno, meni je baš trebalo nešto ovako što se vrlo često izvršava... Hvala! P e C a P.S. Ima li neki koji se izvršava češće od 55ms? :)
pascal.503 valhala,
e ovako, moj glupavi turbo paskal nece da prihvati asemblerske naredbe(mov, ret, push...), iako sam mu zadao ono "asm". Sta da radim?
pascal.504 ssokorac,
─┼┤ has no effect if a multitasker is not presentć Je l' ovo znači da rutine rade samo pod DV-om, Windowsima i sličnima? P.S. Svaka ti čast za fajlove, samo napred!
pascal.505 dejanr,
>> e ovako, moj glupavi turbo paskal nece da prihvati asemblerske naredbe(mov, >> ret, push...), iako sam mu zadao ono "asm". Sta da radim? Za početak, da li je "glupavi turbo pascal" verzija 6.0 ili neka ranija? Pre 6.0 nije ni mogao da se integriše asembler u program.
pascal.506 skerl,
│ Ipak izgleda najbolji fajl koji si poslao ltcomm50.arc │ nece da radi na sestici :(( └───── Na zalost, nisam primetio da neostaje source za tpu. Videcu da li mogu da isceprkam nesto pisamo bas za sesticu. Pozdrav, Skerl.
pascal.507 skerl,
Evo jedne udarne doze raznoraznih Turbo Pascal 6.0 unit-a. Evo spiska unita koji ce biti poslati. PSDIR101.ZIP Directory functions for Turbo Pascal 6 PSLST100.ZIP List functions for Turbo Pascal 6 PSPPD100.ZIP Database functions for Turbo Pascal 6 PSSTK101.ZIP Stack functions for Turbo Pascal 6 PSSTR102.ZIP String/keyboard functions for Turbo Pascal 6 PSDSM103.ZIP Replaces GetMem and FreeMem for Turbo Pascal 6 PSXMH103.ZIP Access to XMS heap for Turbo Pascal 6 PSGUI130.ZIP GUI for Turbo Pascal 6 Ovo automatski treba da ide u dir! Pozdrav, Skerl.
pascal.508 skerl,
PSDIR101.ZIP Turbo Pascal 6 directory functions (source/NG) Various directory functions for Turbo Pascal 6. Download this if you download the PSGUI. Free Software, No Registration Required. (Postcard would be nice). Source is included. Popup help for the unit is available in .NG format.
pascal.509 skerl,
PSLST100.ZIP List functions for Turbo Pascal 6 Free Software, No Registration Required. (Postcard would be nice). Source is included. Popup help for the unit is available in .NG format. pslst100.zip
pascal.510 skerl,
PSPPD100.ZIP Database functions for Turbo Pascal 6 Advanced database support. Allows you to store files in files. This saves disk space and is ideal for storing many little files (like icons). You can request a file from the database as if it were a normal file and thus makes programs more professional without major code modification. Free Software, No Registration Required. (Postcard would be nice). Source is included. Popup help for the unit is available in .NG format.
pascal.511 skerl,
PSSTK101.ZIP Stack functions for Turbo Pascal 6 Various stack functions. This emulates a second stack in Turbo Pascal 6 and thus allows one to push and pop various variables. Free Software, No Registration Required. (Postcard would be nice). Source is included. Popup help for the unit is available in .NG format. psstk101.zip
pascal.512 skerl,
PSSTR102.ZIP String/keyboard functions for Turbo Pascal 6 Many fast assembler routines for Turbo Pascal 6. Various string, keyboard and other general procedures have been implemented. Required by PSGUI. Free Software, No Registration Required. (Postcard would be nice). Source is included. Popup help for the unit is available in .NG format.
pascal.513 skerl,
PSDSM103.ZIP This unit replaces GetMem and FreeMem. When using the Turbo Pascal Heap (in Version 6), you will find that you are not permitted to get more than 64 kb. By using {$M <StackSize>,0,0} in your program, no heap is allocated for your program. This leaves all that memory available to DOS. You can then get blocks of this memory from the procedures in this unit, even blocks greater than 64 kb. This unit can also replace the Graph.GetImage function as the function does not give values for sprites greater than 64 kb in size. To use this unit, simply place DosMem as the last unit in your Uses statement. Any GetMem's will then use the DOS heap. If you still want to use the Pascal Heap you can, using System.GetMem. psdsm103.zip
pascal.514 skerl,
PSXMH103.ZIP This unit gives the pascal programmer access to an XMS heap for Pascal. It uses a similar system to the Pascal standard heap. This unit is ideal for programmers requiring many large blocks of data. Requirements Turbo Pascal 6 TPXMS.TPU (Public Domain by Vernon E. Davis, Jr.) DosMem (Public Domain by Pure Power Software, PSDSM) Both PSDSM and TPXMS should be available where you obtained this file. How it works HIMEM requires a request for memory. Usually HIMEM only permits 32 blocks, that is, only 32 handles are issued. Thus requesting a new handle each time is silly as one often uses more than 32 pointers in a program, often more than the 128 HIMEM maximum. So, when you allocate your XMS heap with GetXMSHeap, the unit takes a block (one handle) from HIMEM. You can then access this memory in any size chunks you wish, from blocks of 1 byte to blocks of 640 kb. The unit has its own handles and can allocate many handles to the XMS heap (set by MaxPointers). Your programs will now use handles to the XMS heap (not to XMS controlled by HIMEM), not only pointers. Handles point to the XMS heap, pointers point to the Pascal or DOS heap (see DosMem). When you request a block of memory from the unit, you are issued with a handle, that is, a unique number, a word. When you want to access the data in that block of memory, you will have to request it with AwakePointer which places it in conventional memory for you. Once you have used it, you then copy it back to XMS with SleepPointer. It's actually much easier than it sounds. All you have to do is awaken a pointer before using it. You must also remember to put it in sleep mode again when you are done with it. This unit supports up to 2 Gb of XMS, which should do for most of your programs. ;-) psxmh103.zip
pascal.515 skerl,
PSGUI130.ZIP Pure Power GUI for Turbo Pascal 6 Requirements: - Turbo Pascal 6 - EGA, VGA or Super VGA - Pure Power Units: Strings (v1.02) [Not Included], Directories (v1.01) [Not Included], Keyboard Definitions, Icons, BGI PGUI Mouse Driver These units should be available at the same site / BBS that you found this unit. - Expert Help or Norton Guides Optional: - Mouse with Mouse Driver - Super VGA BGI Drivers Features: - Internal BGI Mouse Driver (Still needs standard mouse driver) - Supports Mouse Cursors with 64k colours - Mouse Supports Super VGA Modes - Easy Window Popup Routines - Fast - Popup Help in .NG Format - Source Included - Free - User Support You can make nice looking programs quickly. Save yourself weeks of programming by using units available on the public domain and units available as shareware. Today so many fine programmers are releasing their source code for the benefit of software in general. Make use of this.
pascal.516 kenza,
[;> e ovako, moj glupavi turbo paskal nece da prihvati asemblerske [;> naredbe(mov, ret, push...), iako sam mu zadao ono "asm". Sta da radim? Koji je to pascal!?
pascal.517 ssokorac,
─┼┤ TPXMS.TPU (Public Domain by Vernon E. Davis, Jr.) ─┼┤ DosMem (Public Domain by Pure Power Software, PSDSM) Još ako možeš i ova dva da pošalješ, i častim te pićem. Mada si ga i ovako zaslužio :).
pascal.518 valhala,
"glupavi paskal" je 5. ja stvarno nisam znao da ne moze da prihvati asm. ima li drugog nacina da se unesu asemblerske naredbe u njega? i ako nećš_üq5šťđp i ako nema znaci li to da su primeri iz racunara 84 za mene neupotrebljivi?
pascal.519 dejanr,
>> "glupavi paskal" je 5. ja stvarno nisam znao da ne moze da prihvati asm. >> ima li drugog nacina da se unesu asemblerske naredbe u njega? Ne direktno, ali se može napraviti .OBJ fajl pa se linkovati u Turbo Pascal program direktivom {$L }. Naravno, pre toga ga asembliraš pomoću MASM-a ili TASM-a. Pogledaj u uputstvu (za 5.0/5.5), ima čitavo poglavlje o povezivanju Pascal/Assembler.
pascal.520 isekulovic,
Par pitanja u vezi Tp-a: (čega drugog:) 1.Da li je u grafičkom režimu rada moguće uraditi na neki način treptanje kao što to može u textulanom režimu dodavanjem 16 na boju ili se moram kačiti na int 08? 2.Da li je moguće iz programa postaviti vrednost enviroment promenljive? Razmišljao sam preko procedure exec i set ime_prom=to_i_to ali da li će uspeti ako je program startovan iz npr. NC-a jer negde sam pročitao da ako je aktivan NC kucanje set ime_prom.... na promptu ne daje željeni rezultat. 3.Nije mi najasnija sintaksa naredbe SetUserCharSize. Prema helpu ona glasi SetUserCharSize( MultipX, DivX, MultipY, DivY :Word); Šta je koji parametar? Da li se sa vrednošču koju prosledim u MultipX pomnoži neka osnovica, a sa vrednošču u DivX podeli? Ako jeste kolika je ta osnovica u pixelima? Možda je osnovica veličina karaktera font pri veličini 1 ? Pozdrav, Ivan
pascal.521 bulaja,
│Evo jedne udarne doze raznoraznih Turbo Pascal 6.0 unit-a. └─── Thanks! Eno ga ponesto vec prebaceno u dir (gui i str), a i ostalo ce cim ga pregledam.
pascal.522 peca.st,
!-> ret, push...), iako sam mu zadao ono !-> "asm". Sta da radim? Kolko ja znam, ne može asm nego mora assembler. Nisam siguran. P e C a
pascal.523 dejanr,
>> 2.Da li je moguće iz programa postaviti vrednost enviroment promenljive? Imaš baš u januarskim "Računarima" tekst o tome. Doduše, primeri su u C-u ali je stvar više do DOS-a nego do C-a, tako da se lako prepravlja na asembler, paskal, bilo šta. Ukratko, moguće je, ali ne baš jednom funkcijom nego treba malo više koda.
pascal.524 cubro,
Evo pokusacu poslati TUTILITY program za rekonstrukciju PARADOX datoteka. Ovo ce dobro doci svima koji koriste ObjectVision, Paradox, QuattroPro, itd..., znaci sa DB datotekama. Program sam DL sa Borland BBS-a i predlazem bulaji da stavi na neko prikladno mesto, jer o ovom programu se govori u oficijelnoj knjizi Borlanda. Ja sam stavio ovde jer Engine radim u Pascalu, ali sam mogao staviti bilo gde. Program je ODLICAN !!! tutil40.zip
pascal.525 kenza,
[;> Kolko ja znam, ne moze asm nego mora assembler. Stavlja se asm,problem je u verziji ;(
pascal.526 skerl,
││ Evo jedne udarne doze raznoraznih Turbo Pascal 6.0 ││ unit-a. │└─── │ Thanks! Eno ga ponesto vec prebaceno u dir (gui i str), │ a i ostalo ce cim ga pregledam. └──── Nema na cemu, jedino pozuri jer gui trazi i neke od onih ostalih da bi radio. Bas su haos :) Pozdrav, Skerl.
pascal.527 skerl,
│ ─┼┤ TPXMS.TPU (Public Domain by Vernon E. Davis, Jr.) │ ─┼┤ DosMem (Public Domain by Pure Power Software, PSDSM) │ │ Jos ako mozes i ova dva da posaljes, i castim te picem. │ Mada si ga i ovako zasluzio :). └──── TPXMS je poslao pedjak, fajl je uz poruku 6.270, a DosMem je poslat u ovom naletu :) PSDSM103.ZIP uz poruku 6.513. Pozdrav, Skerl. p.s. Racunam na picence :)
pascal.528 zolika,
>> Za početak, da li je "glupavi turbo pascal" verzija 6.0 ili neka ranija? >> Pre 6.0 nije ni mogao da se integriše asembler u program. Uzmi TopSpeed Modulu-2, tu SIGURNO može da se sve pomeša (uključujući i asembler) k'o šopska salata...
pascal.529 drpr,
-> Imaš baš u januarskim "Računarima" tekst o tome. Doduše, -> primeri su u C-u ali je stvar više do DOS-a nego do C-a, -> tako da se lako prepravlja na A da li bi , kad smo već kod januarskih računara, neko bio jubazan da prevede onaj algoritam za slučajne brojeve sa C-a na TP jer sam ja nepismen što se C-a tiče a taj programčić me baš zanima :)) cope
pascal.530 eagle,
> Okači proceduru o $08 interrupt koji se okida svakih 55ms, pa u > tvojoj proceduri uvećavaj neki brojač, koji kada dostigne x, > gde je x=30*60*100/55, uradi šta želiš. Sve je to lepo radilo...until this: Npr. napravim program koji svaki minut ispisuje " Miloš car", startujem nešto što radi sa diskom(npr. CHKDSK),to počne da radi sa istim, dodje vreme za cara,pa pošto timer ima prednost nad diskom, pojavi se poruka " Miloš car " i disk prestaje da radi, što rezultuje padom sistema :( Jel se može ovo izbeći?
pascal.531 eagle,
Jel ima neko SVGA driver(800*600*256), ali za OAK VGA? Ovaj sa Zezama mi za svaki mod iznad 320*200*256(obicna Vga) ispisuje " Your board does not support this mode " :(, a inace imam Svga :).
pascal.532 ssokorac,
─┼┤ p.s. Racunam na picence :) Zaslužio si :). P.S. GUI-demo neće da mi radi bez .ico fajlova, kojih nigde nema :(.
pascal.533 dejanr,
>> Uzmi TopSpeed Modulu-2, tu SIGURNO može da se sve pomeša (uključujući i >> asembler) k'o šopska salata... Može i u TP-u... Ja sam toj Moduli ozbiljno hteo da dam šansu pre par godina, čak sam pomišljao da pređem na nju. Međutim, posle vrlo opsežnih testiranja i poređenja, došao sam do zaključka da je za rad daleko nepogodnija od Turbo Pascala pa je palo jedno (tj. dva, pošto sam probao Logitech i TopSpeed) veliko XRD ;)
pascal.534 valhala,
kenzo, koji trik pali za verziju 5? mislim na asm/assembler. Dajt ljudi pomagajte treba mi asembler u paskalu ko leba!(sem ako neko zna bolji nacin za direktno koriscenje adresnog prostora iz paskala) potpis valhala pocetnik (ne bas toliko ali...)
pascal.535 stomic,
$ Npr. napravim program koji svaki minut ispisuje " Miloš $ car", startujem nešto što radi sa diskom(npr. CHKDSK),to $ počne da radi sa istim, dodje vreme za cara,pa pošto timer $ ima prednost nad diskom, pojavi se poruka " Miloš car " i $ disk prestaje da radi, Problem je što iz dos interrupta ne smeš da pozivaš drugi dos interrupt. Tj. CHKDSK je nešto radio sa diskom (verovatno) preko negod dos inerrupta, zatim je naletela tvoja procedura koja je pozvala dos interrupt za ispis i tu je pao. U svakoj proceduri (bar koliko ja znam) ne smeš pozivati neko od dosovih inta. Probaj preko BIOSa. Da se ne bih ispaljivao neka kaže neko ko ima više iskistva. ST.
pascal.536 stomic,
$ Može i u TP-u... Ja sam toj Moduli ozbiljno hteo da dam $ šansu pre par godina, čak sam pomišljao da pređem na nju. $ Međutim, posle vrlo opsežnih testiranja i poređenja, došao $ sam do zaključka da je za rad daleko nepogodnija od Turbo $ Pascala pa je palo jedno (tj. dva, pošto sam probao Prvo pitanje je šta očekuješ od novog jezika. Ako očekuješ samo brži kompajler, zaboravi, Borland je tu zakon. Npr. JPI Modula-2 zahteva relativno jaču mašinu. Kao okolina za razvoj JPI i Borlandov IDE nema šanse da se porede. Borland je jedino bolji u estetici, a koliko je to bitno (pravim) programerima? Jedna od velikih gluposti Borlandovog IDEa je kada edituješ dva i više istih fajlvoa, promenom jednog ne menjaju se ostali. Posledice možeš sam i da pretpostaviš. U JPIov IDE je integrisana gomila korisnih alata. Kao programski jezici nema šanse da se porede, mada je to više manje stvar ukusa. Ali i ja sam relativno lako posle 3 godine intenzivnog programiranja na pascalu prešao na Modulu. Kao primer pokušaj da pratiš kako radi neki pascal program od 1000> linija koji poziva X unita. Zabava zagarantovana ;). Koju si poslednju JPI Modulu-2 gledao. U novoj JPI TopSpeed v3.02, možeš da koristiš Modulu-2, C, C++, Pascal i ASM. Lepo? ST.
pascal.537 darone,
>> knjizi Borlanda. Ja sam stavio ovde jer Engine >> radim u Pascalu, ali sam mogao staviti bilo gde. >> Program je ODLICAN !!! Mislim da je najpametnije u CET konferenciju, ako već ne može u dir. Bulajo? darone
pascal.538 dejanr,
>> (sem ako neko zna bolji nacin za direktno koriscenje adresnog >> prostora iz paskala) Ako je to sve što je potrebno, imaš pseudo-niz mem kojim možeš da pristupaš bilo kojoj adresi. Takođe neku strukturu možeš "prikucati" na željenu apsolutnu adresu opcijom absolute.
pascal.539 dejanr,
>> Prvo pitanje je šta očekuješ od novog jezika. Ako očekuješ >> samo brži kompajler, zaboravi, Borland je tu zakon... Pa, nekako krajnje uopšteno rečeno, očekujem alat koji će da poveća produktivnost. To obuhvata i brzinu kompajlera ali i udobnost pri korišćenju debagera, fleksibilnost pri radu, pouzdanost itd, itd. Dobar deo ocene je usmeren na sam jezik, koliko je jednostavno rešavati probleme kojima se bavim i koliko je te programe docnije teško/lako održavati. Najzad, bitan parametar su performanse rezultujućeg koda (koliko je veliki/brz) a tu je, bar kada se radi o verzijama koje sam probao, TP bio ubedljivo bolji. Naravno, značajan parametar je i navikavanje, jer teško da ću se navikavati na nešto novo ako je jednako dobro kao staro ili čak nešto malo bolje - da bi se menjao jezik treba da se nađu vrlo jaki razlozi tj. da taj "novi" bude *znatno* bolji od postojećeg. Pitanja nekakve softverske podrške u vidu biblioteka itd mi je relativno malo bitno, jer u suštini malo tih stvari koristim - više puta sam pokušavao i nailazio na probleme, tako da bi se uglavnom na kraju odlučio da to što biblioteka nudi uradim sam, pa bar da znam na čemu sam. >> Kao okolina za razvoj JPI i Borlandov IDE nema šanse da se >> porede. Borland je jedino bolji u estetici, a koliko je to >> bitno (pravim) programerima? Jedna od velikih gluposti Borlandovog >> IDEa je kada edituješ dva i više istih fajlvoa, promenom >> jednog ne menjaju se ostali. Posledice možeš sam i da pretpostaviš. Tjah, ne znam zašto bih u dva prozora uzimao isti fajl (možda da bih gledao dva njegova segmenta? hmm... ne radim to tako), tako da mi to ne znači mnogo. Estetika mi je takođe vrlo nebitna, ali već činjenica da TP sve poziva direktno iz IDE-a a Modula stalno rovari po disku nije za bacanje... Jedina prava i velika prednost PC Modula 2 je, po mom mišljenju, to što generišu .OBJ fajlove a ne one glupe paskalove TPU-ove. >> Kao programski jezici nema šanse da se porede U kom smeru? :) Mene je Modula prevashodno razočarala kao jezik, očekivao sam od nje mnogo više. Naročito mi je zasmetala *strašna* neportabilnost (a navodno Modula portabilnija, ha, ha ;) čak i između dva PC Modula 2 kompajlera program moraš da prevrneš naglavačke da bi se preveo. A ono što ima sa kao nekim "poslovima" i "semaforima" to kao da su se deca igrala pravljenja operativnog sistema. >> Kao primer pokušaj da pratiš kako radi neki pascal program od 1000> >> linija Ne vidim smetnju. Potrebna je samo disciplina u davanju imena procedurama, i čovek se spase postojanja po dva fajla (definicija i implementacija) za svaki modul. Ako se imena biraju "nedisciplinovano", biće nevolja sa većim projektima u svakom jeziku.
pascal.540 ldragan,
Ako neko ima "DBASE.PAS" I "NDX_CREA.PAS" bio bih zahvalan ako mi ih pošalje. LdraGan
pascal.541 cubro,
Pomagajte ! HELP ! Imam jedan problemcic koju nikako da resim. Stavr stoji ovako: Treba za pozovem neku proceduru ali ne znam unapred koliko ce biti argumenata, odredjnog tipa, recimo ovako proc1(arg1,arg2,...argn); Pitanje: kako napisati samu proceduru da rukuje sa argumentima, i sa njihovim tipovima. Drugo. Kako da napisem funkciju koja ce meni po nekoj logici vracati razlicite tipove podataka. Recimo posaljem funkciji 'ABC', a da mi taj vrati realan tip podatka, ako upisem 'DEF' da mi vrati string. Interesuje me da li se ovo moze uopste da se izvede u TP 6.0 da se i dalje mucim, ili da se prebacim na neko drugo resenje ? I treba mi HITNO !!!
pascal.542 skerl,
Nova verzija jednog od najboljih mouse unit-a! Trenutno kod verzije 7 ubacena podrska za BP7 DPMI mod!!! Ovog puta uz unit se dobija i kratak, ali efektan, demo program koji radi u textualnom i grafickom rezimu :) Iskreno preporucujem. Pozdrav Skerl. p.s. Bulaja, znas sta ti je ciniti :) ╔═════════════════════════════════════════════════════════════════╗ ║ MouseLib ║ ║ second release, written by Loewy Ron, AUG 90 ║ ║ Third release, TP6.0 asm support, LR Jan 91. ║ ║ Fourth release, added functions, LR May 91. ║ ║ Fifth release, added intercept, release functions, Jun 91. ║ ║ 6.th Release - Better Docs., Test Sample Program. ║ ║ 7.th Relaase - Support for BP7 DPMI mode. ║ ╚═════════════════════════════════════════════════════════════════╝ mouseLib documentation file : mouseLib.doc, rel 7.0. last update : Dec. 05, 1992, LR. Whats new --------- V7.0 - Support for BP7 DPMI mode - corrected the graphics mode detection to work with DPMI mode. - Improved MOUSETST program includes sample to event handler code. V6.0 - Added better documentation in MOUSELIB.PAS source. - Added A Simple Sample program - MOUSETST.PAS. - From this version mouseLib is distributed by ISoft D&M, P.O.B 5517, Coralville IA 52241, U.S.A Introduction ------------ mouseLib is a Turbo (Borland) Pascal 6.0+ mouse support unit, designed to provide event driven mouse support, using a standard (default) event handling mechanism. The unit includes all of the normal mouse library functions, (show, hide cursor, define tresh-hold, detect mouse etc..). mouseLib was used for over 3 years now, with many programs and products written by the author, and other programmers. Several mouseLib based packages are distributed by ISoft D&M, and can be downloaded for evaluation from BBSes around the world.
pascal.543 skerl,
│ P.S. GUI-demo nece da mi radi bez .ico fajlova, kojih │ nigde nema :(. └──── Probaj da raspakujes icons.arj :) Skerl.
pascal.544 ivan.s,
Hi, Da li neko slucajno ima ceo Technojock's Object Toolkit za Turbo Pascal (ima ga ne Feniksu ali nemam dovoljno vremena da ga skinem). Pozdrav
pascal.545 bulaja,
│Mislim da je najpametnije u CET konferenciju, ako vec ne moze u dir. Bulajo? └─── Pa ako radi, sto ne bi moglo u dir. A ako ne radi, moze u CET :). Nisam jos pogledao file, valjda cu stici ovih dana :).
pascal.546 dgrbic,
:: pojavi se poruka " Miloš car " i disk prestaje da radi, :: što rezultuje padom sistema :( Stavi uses crt, da ispis na ekran ide direktno u memoriju (ili preko BIOS-a ako staviš directvideo:=FALSE) a ne preko DOS-a. Time gubiš mogućnost redirekcije (ali ne sasvim, writeln (out, 'GRBA CAR! :)') ide na stdout), a sistem se ne zaglupi. U interaptu, generalno gledano, ne smeš da pozivaš DOS funkcije (osim par retkih izuzetaka, a i te su uglavnom nedokumentovane, vidi inter33, ima na Sezamu). Ako ti to ne treba za rezidentni program, nego oćeš da ti tvoj program na primer na svakih xxx sekundi/minuta uradi "nešto" (npr. ispiše "Press any key" kad 20 sec. korisnik bulji u ekran sa pozdravnom porukom i čeka da se dotična makne), možeš u petlju da staviš ispitivanje npr. adrese 0:$46c ili upotrebom int $15, f-ja $83 (opet vidi inter33).
pascal.547 dgrbic,
:: support this mode " :(, a inace imam Svga :). Jes siguran da tvoja OAK kartica ima 512K memorije? Ima ih i sa samo 256K, što je dovoljno za 800 x 600 u 16 boja. A osim toga, ako je taj SVGA drajver napisan za VESA kartice, OAK baš i neće biti prepoznat kao kartica koja može da prikaže bilo šta osim standardnih VGA modova, za OAK mora da postoji malko drugačiji postupak ispitivanja da'l kartica podržava neki mod, odnosno drajver mora da bude napisan specijalno za OAK VGA (osim ako su u međuvremenu izbacili neki model koji je VESA kompatibilan).
pascal.548 dgrbic,
:: Stavr stoji ovako: Treba za pozovem neku proceduru ali ne :: znam unapred koliko ce biti argumenata, odredjnog tipa, :: recimo ovako proc1(arg1,arg2,...argn); Pitanje: kako :: napisati samu proceduru da rukuje sa argumentima, i sa :: njihovim tipovima. Pa, prosto rečeno: Teško, vrlo teško. TP dozvoljava da procedura bude deklarisana kao procedura sa promenjivim brojem (i tipom) parametara, ali konkretna realizacija zahteva upotrebu asemblera. Stvar otežava činjenica da procedura mora sama da očisti stek od parametara, pa se za povratak ne može koristiti ret x (gde je x broj wordova koji se "skidaju" sa steka), jer x nije poznato u trenutku pisanja programa! :: Kako da napisem funkciju koja ce meni po nekoj logici :: vracati razlicite tipove podataka. Recimo posaljem :: funkciji 'ABC', a da mi taj vrati realan tip podatka, ako :: upisem 'DEF' da mi vrati string. Umesto funkcije napiši proceduru, kao u sledećem primeru: var r : real; s : string; procedure abcdef (janjemu : string; var onmeni); begin if janjemu='ABC' then real(onmeni):=12.3 else if janjemu='DEF'then string(onmeni):='12.3'; end; begin abcdef ('ABC',r); abcdef ('DEF',s); writeln (r:8:3,s:8); end. Obrati pažnju na deklaraciju "var onmeni" bez navođenja tipa, kao i na način doceljivanja vrednosti promenljivoj! I, naravno, moraš voditi računa da je varijabla u kojoj očekuješ rezultat odgovarajućeg tipa.
pascal.549 dgrbic,
:: - Support for BP7 DPMI mode - corrected the graphics mode :: detection :: mouseLib is a Turbo (Borland) Pascal 6.0+ mouse support :: unit, designed to Je li, koja je verzija BP7 unita? Jel ostala verzija 9, kao kod TPW (i TP 6.0)?
pascal.550 isekulovic,
>> Imaš baš u januarskim "Računarima" tekst o tome. Doduše, primeri su u Pročitah sada, jel ima pascal ekvivalent putenv-a kod c-a jerbo mi nije bitno da li ostaje zadata vrednost u promenljivoj posle izlaska iz programa?
pascal.551 pedjak,
> 1.Da li je u grafičkom režimu rada moguće uraditi na neki način > treptanje kao što to može u textulanom režimu dodavanjem 16 na boju ili > se moram kačiti na int 08? Moraćeš da se kačiš na int. > 3.Nije mi najasnija sintaksa naredbe SetUserCharSize. Prema helpu > ona glasi SetUserCharSize( MultipX, DivX, MultipY, DivY :Word); SetUserCharSize (MultX,DivX,MultY,DivY:word); Postavlja širinu i visinu linijskih fontova. MultX:DivX je odnos omnožen uobičajenom širinom aktivnog fonta. MultY:DivY je odnos pomnožen uobičajenom visinom aktivnog fonta. Na primer, tekst će biti dvaput širi ako se prenesu vrednosti MultX=2 i DivX=1. pedja
pascal.552 pedjak,
> Sve je to lepo radilo...until this: > Npr. napravim program koji svaki minut ispisuje " Miloš car", > startujem nešto što radi sa diskom(npr. CHKDSK),to počne da radi sa istim, > dodje vreme za cara,pa pošto timer ima prednost nad diskom, > pojavi se poruka " Miloš car " i disk prestaje da radi, > što rezultuje padom sistema :( > Jel se može ovo izbeći? Naravno da može uz malu pomoć nedokumentovanih poziva DOS-a.:) Najpre je važno istaći da DOS ne dozvoljava rekurziju, tj. jedna DOS funkcija ne može prekinuti drugu DOS funkciju. E sad na scenu stupaju nedokumentovani pozivi DOS-a: DOS funkcija 34h vraća adresu DOS flega u ES:BX ( Critical Section Flag ) njegova vrednost je 0 samo onda kad sistem nije unutar DOS koda, te je u tom slučaju moguće pozvati neku DOS funkciju, u tvom slučaju možemo nešto ispisati. Međutim, ukoliko se nalaziš u komandnoj liniji i sistem čeka da uneseš neku komandu, startuješ program i sl., on se stalno nalazi unutar DOS funkcije 0Ah , pa i dalje drugi program ne sme da pozove neku drugu DOS funkciju. Ali za ovu priliku postoji interapt 28h, koji se naziva Idle Interrupt ( " besposleni " interapt ) i on se izvodi uvek dok DOS čeka pritisak na neki taster. Inače poziv ovog interapta je tako pripremljen da se iz njega mogu izvršavati drugi interapti. Za tvoj problem postoje dva rešenja. Pre ispisa na ekran trebalo bi proveriti stanje Critical Section Flaga pa ako je prekid dozvoljen ispisati poruku. Međutim, poruka će se ispisivati samo ako se nalaziš u nekom programu. Ukoliko želiš da se poruka ispisuje dok se nalaziš u komandnoj liniji ona preuzmi interapt 28h , a moguća je i kombinacija ova dva rešenja. pedja
pascal.553 dejanr,
>> Stavr stoji ovako: Treba za pozovem neku proceduru ali ne znam >> unapred koliko ce biti argumenata, odredjnog tipa, recimo ovako >> proc1(arg1,arg2,...argn); Pitanje: kako napisati samu proceduru >> da rukuje sa argumentima, i sa njihovim tipovima. Mislim da je to, ako ne nemoguće, ono toliko komplikovano da je bolje da potražiš neko drugo rešenje. Možda da probaš sa objektima (mislim da i dalje neće moći tako "čisto" kao što bi želeo, ali opet, verovatno može nešto na tu temu).
pascal.554 dejanr,
>> mouseLib, rel 7.0. Ima li tu i source ili se isti dobija tek po registraciji (ili ni tada)?
pascal.555 stomic,
$ Pitanja nekakve softverske podrške u vidu biblioteka itd $ mi je relativno malo bitno, jer u suštini malo tih stvari $ koristim - više puta sam pokušavao i nailazio na probleme, $ tako da bi se uglavnom na kraju odlučio da to što $ biblioteka nudi uradim sam, pa bar da znam na čemu sam. Ovde se slažem :). Ako uspeš da razviješ SVOJU biblioteku od nule, posle je sve mnogo lakše. Tu je jedna od prednosti Module-2 jer su na nivo jezika samo osnovne funkcije ORD, CHR,... Sve ostalo je u Modulima. $ ne znači mnogo. Estetika mi je takođe vrlo nebitna, ali $ već činjenica da TP sve poziva direktno iz IDE-a a Modula $ stalno rovari po disku nije za bacanje... Zato sam i rekao relativno jaču mašinu. Mada Borlandov intergrisani debuger i VID (JPI debuger), ipak mislim, nema šanse da se porede ;). $ Jedina prava i velika prednost PC Modula 2 je, po mom $ mišljenju, to što generišu .OBJ fajlove a ne one glupe $ paskalove TPU-ove. žini mi se da je baš ovde velika prednost u brzini TPa nad bilo kojim drugim kompajlerom. $ U kom smeru? :) Mene je Modula prevashodno razočarala kao $ jezik, očekivao sam od nje mnogo više. Naročito mi je $ zasmetala *strašna* neportabilnost (a navodno Modula $ portabilnija, ha, ha ;) čak i Zašto? Što se tiče portabilnosti to je (po meni) obmanjivanje javnosti. C/C++ nisu ni pola portabilni koliko se reklamira, mada su i dalje dosta ispred ostalih jezika. Probaj Dos<->Unix na nekom iole kompleksnijem programu. Zašto postoji GNU sw za Unix, pa GNUish MSDOS port tog sw, a sve je pisano u 'portabilnom' C-u :). $ da bi se preveo. A ono što ima sa kao nekim "poslovima" i $ "semaforima" to kao da su se deca igrala pravljenja $ operativnog sistema. Meni se to baš svidelo :). $ Ne vidim smetnju. Potrebna je samo disciplina u davanju $ imena procedurama, i čovek se spase postojanja po dva $ fajla (definicija i implementacija) za svaki modul. Ako se $ imena biraju "nedisciplinovano", biće nevolja sa većim Eh... I da se C programeri pridržavaju discipline, C ne bi bio prljav jezik ;))). Ipak je (meni) dosta lakše kada je to sređeno na nivou kompajlera. Npr. Imaš modul za menije, indeksne datotke, fajlove... U svakom modulu imaš Create, što je sasvim prirodno (zašto pamtiti X imena procedura za kreiranje). U M2 to bi bilo Menu.Create, Index.Create. Može isto i u TP (ako si disciplinovan :), MenuCreate, IndexCreate, ali treba stavljati taj prefiks za svaku proceduru iz tog modula, zatim u interface delu Unita, implementation , ... Što na kraju ispadne da se više kuca nego u M2. Uniti u TP su (očigledno) preuzeti iz M2. BTW, JPI M2 je napravio čovek koji je zbog neke svađe napustio Borland ;). Modularno programiranje je jedan međukorak između strukturnog i OOPa :). A svi ćemo kad tad preći na OOP. ST.
pascal.556 paki,
­> kenzo, koji trik pali za verziju 5? mislim na asm/assembler. ­> Dajt ljudi pomagajte treba mi asembler u paskalu ko leba!(sem ­> ako neko zna bolji nacin za direktno koriscenje adresnog ­> prostora iz paskala) A za asembler, moraćeš da nabaviš TASM, pa da u njemu pišeš program na asembleru, pa da ga prevedeš, pa da ga uključiš u svoj program. Mnogo lakše je da nabaviš v6.0 TPascala (kompatibilna sa 5.0), koja ima i asm direktivu :)
pascal.557 skerl,
│ Je li, koja je verzija BP7 unita? │ Jel ostala verzija 9, kao kod TPW (i TP 6.0)? └───── Kol'ko se secam, negde procitah, ostala je ista. Na zalost nisam srecni vlasnik doticnog packeta pa ne mogu da tvrdim. DejanR-e, da li gresim? Pozdrav, Skerl.
pascal.558 skerl,
Dok ne sacekamo CAD program iz Racunara ;) evo unit-a koji omogucava rad sa 2d i 3d objektima (zicanim modelima). Sors je pisan u dve verzije, za tp 6.0 i tpw 1.0. Za svaki tpu je dat i KOMPLETAN SOURCE! Obratite pasnju na 3dc.exe program koji prevodi *.m3d macro fajlove u cist pascal source! Ukoliko se nekome svidi, mogao bi i u dir da uleti :))) Pozdrav, Skerl. p.s. Pokupite i .A01 koji je uz sledecu poruku! ╔═══════════════════════════════════════════════════════════════════════╗ ║ 3dLIB ║ ║ 3dLIB - 3D Graphic objects library for Turbo-Pascal Programmers. V1.5 ║ ║ Last Update : Oct. 13, 1992. ║ ╚═══════════════════════════════════════════════════════════════════════╝ FILE - LIST ----------- The distribution file 3DLIB12 contains the following files : * .PAS - Pascal sources : CTM3D .PAS - Current Transformation Matrix definition. CTM3DW .PAS - Same as above for Windows. PROJECT3.PAS - Projection (3D -> 2D) unit. PROJECTW.PAS - Same as above for Windows. HDR3D .PAS - Header to 3D structures. HDR3DW .PAS - Same as above for Windows. RTOBJ .PAS - 3D Wire-Mesh objects. RTOBJW .PAS - Same as above for Windows. DEMO3D .PAS - A demo program - Dos. DEMO3DW .PAS - A demo program - Windows. * .TPU - Complied Units. * .3D2 - Demo OBJ3D Type object files : 3 .3D2 - A 3 dimensional "3" character. BOX .3D2 - A 3D box. D .3D2 - A 3 dimensional "d" character. PROP .3D2 - A 3D Propeller. PYR .3D2 - A Pyramid. SUPROP .3D2 - Another 3D Propeller. TRAP .3D2 - A 3D Trapeze. * .3DS - Demo ComplexObj type object files. 3DLIB .DOC - This file. 3DC .EXE - M3D to PAS source file translator. 3DCW .EXE - Windows Hosted M3D to PAS generator. 3DC .DOC - 3dC translator documentation. 3DA .EXE - 3dA Macro Animator (Interpreter) for the Dos environment. * .M3D - Sample macro programs. DEMO3D.EXE - Demo 3d animation program - Dos. DEMO3DW.EXE - Demo 3d animation program - Windows. PROGRAMS.TXT - ISoft D&M shareware products description. 3DLIB .REG - 3dLIB registration file. 3DLIB .RES - 3dLIB resource file for windows programs. INTRODUCTION ------------ 3dLIB is a library of pascal units that allows Turbo-Pascal programmers to write applications that display and animate 3D wire-mesh objects. The library is based on a project developed since 1984 on different platforms. This package supports both Turbo-Pascal for DOS and Turbo Pascal for Windows. 3dlib15.arj
pascal.559 skerl,
Drugi deo 3DLIB15 paketa. Skerl. 3dlib15.a01
pascal.560 skerl,
│ Ima li tu i source ili se isti dobija tek po registraciji │ (ili ni tada)? └───── mouseLib documentation file : mouseLib.doc, rel 7.0. last update : Dec. 05, 1992, LR. File List --------- This package contains the following files : MOUSELIB.PAS - mouseLib Turbo Pascal Source file MOUSELIB.DOC - This file. MOUSELIB.REG - Registration File. PROGRAMS.TXT - ISoft D&M shareware products description. MOUSETST.PAS - Simple mouseLib Turbo Pascal test sample. MOUSETST.EXE - Compiled version of the mouseTst sample. Pozdrav, Skerl.
pascal.561 bulaja,
││mouseLib, rel 7.0. │└─── │Ima li tu i source ili se isti dobija tek po registraciji (ili ni tada)? └─── Ima source. File je prebacen i u PASCAL dir, pa koga interesuje...
pascal.562 kenza,
[;> kenzo, koji trik pali za verziju 5? mislim na asm/assembler. Dajt Na zalost,za verziju 5 ne pali nikakav trik :(Sorry :(
pascal.563 dejanr,
>> DejanR-e, da li gresim? U onoj alfa verziji koju sam video verzija TPU-a je 9. Pun paket još nemam.
pascal.564 ssokorac,
─┼┤ Ima li tu i source ili se isti dobija tek po registraciji (ili ni tada)? Videh da su drugi već odgovorili, ali bih ipak iskoristio priliku da pohvalim unit :). Ako nekome treba podrška miša i u text i u grafičkom i na herc-u i na vga (a i na ega/cga, naravno:) - mouslib radi odlično, pa neka ga obavezno uzme. Ima i source pa se može po volji doradjivati, mada nisam otkrio još ništa što bi mi trebalo a da nema :).
pascal.565 ssokorac,
─┼┤ Dok ne sacekamo CAD program iz Racunara ;) evo unit-a ─┼┤ koji omogucava rad sa 2d i 3d objektima (zicanim modelima). Usput, šta bi sa tim CAD-om? I uopšte, sa "Savetnikom za TP". :( Nema ništa ni u novom broju. Dobro, sad nam CAD više i ne treba ;) ali bar 'savetnika' vratite :).
pascal.566 predragd,
> Jel ima neko SVGA driver(800*600*256), ali za OAK VGA? Ne bih želeo da te unapred obeshrabrim, ali ja sam svojevremeno tražio baš taj drajver i nisam ga uspeo naći. Sudeći po tome koliko postoji drajvera za OAK kartice sumnjam da ćeš naći odgovarajući BGI drajver. No, ako ga pronađeš javi, mislim da će mnogi biti zainteresovani. Postoji doduše još jedna mogućnost, ali ti je baš ne bih preporučio. Možeš i sam da kreiraš BGI drajver. Peđa.
pascal.567 predragd,
> 3.Nije mi najasnija sintaksa naredbe SetUserCharSize. SetUserCharSize (MultX, DivX, MultY, DivY: Word); Prva dva parametra ove naredbe se odnose na dužinu fonta, a druga dva na visinu fonta. Sam parametar MultX označava dužinu fonta. Dužina će biti jednaka normalnoj vrednosti aktivnog fonta puta MultX. DivX predstavlja gustinu ispisa slova datog fonta. Što je DivX veće slova će biti zbijenija međusobno. Za MultY i DivY važi isto samo što se odnosi na visinu fonta. Preporučujem ti da malo eksperimentišeš sa ovom naredbom, tako ćeš najbolje videti čemu koji parametar služi. Ako imaš TP6 pogledaj primer u help-u. U knjizi ne piše ovako kako sam ti ja objasnio, ali možda će ti ovako biti jasnije. Peđa.
pascal.568 kenza,
[;> Ukoliko se nekome svidi, mogao bi i u dir da uleti :))) Mogao bi odmah da ide u dir ;)
pascal.569 drmarke,
> Evo ti jedan VGAMODE, za OAK 037, možda proradi. Hvala puno! Proradilo je kako treba. U stvari bila je greška do čoveka kome sam i rekao da upotrebi svoj VGAMODE ali on nije baš najbolje shvatio, pa kad sam ja otišao tamo sve je iz cuga proradilo. Uzgred kako da taj VGAMODE pozivam iz batch file-a, i da ga setujem na MDA. Postoje tamo neki kodovi za razne režime rada ali nisam ih baš provalio, tj nisam našao koji je za MDA? Pozdrav DrMarke
pascal.570 dejanr,
========== borland/turbo.pascal #6589, from mnevalainen, 951 chars, Thu Feb 11 18:12:32 1993 ---------- TITLE: Pos function in TP7.0 I just got my copy of TP7.0 after using version 5.5 for years. First ten minutes made me believe that 7.0 is not quite compatible with 5.5 code. The incompatibleness appears in the following situation: Var SearchString: Array[1..10] of string; Line:String; i:Integer; begin . SearchString[1] := ''; { Null string } Line := 'Some String'; i:=Pos(SearchString[1], Line); . After this i=1 in version TP5.5, but in TP7.0 i=0 !! I believe 5.5 is right, because Null-string should be compatible with any string. My program should search quickly about 10 SearchStrings from a 0.5 MB big file. Some of the search strings are sometimes empty (=Null strings). This simple routine that worked OK in 5.5 will run slower and be more complicated if i have to add ten more if..thens. Or is there some other way than Null Strings to have all_string_compatible variables in version 7.0 ? mnevalainen
pascal.571 valhala,
: xŠöJxđčÝ nabavio sam tasm, ali ne znam sta sa njim da radim. stalno mi daje izvestaje tipa (ako startujem tasm) fatal...;(ako startujem make)can't open make file...;Sta da radim? Da li da trazaim pomoc u drugoj konf, ili mi ovde neko moze pomoci?
pascal.572 bulaja,
│Usput, sta bi sa tim CAD-om? I uopste, sa "Savetnikom za TP". :( └─── Ne znam sta bi, ali meni se cini da taj savetnik onako kako je bio koncipiran i pisan nije bio previse koristan :). Rubrika tipa savetnika za TP je svakako neophodna, ali bi bilo mnogo korisnije da se autor ugleda npr. na ZZ-ove i NBatocanin-ove rubrike za C i Clipper.
pascal.573 ssokorac,
─┼┤ I believe 5.5 is right, because Null-string should be compatible with ─┼┤ any string. Da napomenem da je i u TP 6.0 kao i u TP 5.5. Ovo je baš jedna 'zgodna glupost' Borlanda :(.
pascal.574 predragd,
> U onoj alfa verziji koju sam video verzija TPU-a je 9. Borland ne bi bio ono što i je kad ne bi napravio novu glupost. U TP 7.0 nema više 9-ke. Nalazi se neki Q ili X (to je i razlog zašto ne koristim paket). Peđa.
pascal.575 dejanr,
>> Mada Borlandov intergrisani debuger i VID (JPI debuger), ipak >> mislim, nema šanse da se porede ;). Pa, treba porediti ono što je u istoj klasi. Dakle, Turbo Debugger i VID, a tu je već poređenje mnogo primerenije i, mislim, na strani TD-a (mada mi nikako nije jasno zašto ne naprave pravu Windows verziju nego onaj surogat što dele uz Borland C++ i Borland Pascal). Sa druge strane, TP-ov integrisani debager je nešto što JPI M2 naprosto nema, i to je opet prednost TP-a. >> > Jedina prava i velika prednost PC Modula 2 je, po mom >> > mišljenju, to što generišu .OBJ fajlove a ne one glupe >> > paskalove TPU-ove. >> >> žini mi se da je baš ovde velika prednost u brzini TPa nad bilo >> kojim drugim kompajlerom. Možda si u pravu, ali mi ipak nije jasno zašto bi se pojavljivala *tolika* razlika u brzini prevođenja samo u zavisnosti od toga u kom se formatu "prevod" snima. Najzad, ako napraviš TP program koji uopšte nema unit-e, a sa druge strane JPI M2 program koji je takođe u jednom modulu, opet će TP beskrajno brže prevoditi, dakle mora da tu ima "još nešto". Voleo bih da je TP prebaci na OBJ fajlove pa makar nešto (ne previše ;) i izgubio na brzini. >> Uniti u TP su (očigledno) preuzeti iz M2. Da, mislim da su tu veliki posao napravili. >> BTW, JPI M2 je napravio čovek koji je zbog neke svađe napustio Borland ;). Znam... mada ne mislim da je bila "svađa" nego je čovek prosto zaključio da će bolje zarađivati radeći za svoj račun... i verovatno mu dobro ide :) Ipak, Jensen & Parters je "patuljak" prema Borlandu, što, naravno, ne znači ništa loše po JPI M2 jer je, najzad, i Borland "patuljak" prema Microsoftu, Microsoft prema IBM-u i tako dalje (ili nema "tako dalje"? :) >> Modularno programiranje je jedan međukorak između strukturnog i >> OOPa :). A svi ćemo kad tad preći na OOP. Nisam ubeđen.
pascal.576 stomic,
$ Pa, treba porediti ono što je u istoj klasi. Dakle, Turbo $ Debugger i VID, a tu je već poređenje mnogo primerenije i, $ mislim, na strani TD-a (mada mi nikako nije jasno zašto ne $ naprave pravu Windows Slažem se :). $ Možda si u pravu, ali mi ipak nije jasno zašto bi se $* pojavljivala tolika* razlika u brzini prevođenja samo u $ zavisnosti od toga u kom se formatu "prevod" snima. $ Najzad, ako napraviš TP program Ne znam dovoljno strukturu .OBJ a kamoli .TPU da bih znao tačno, ali moguće da je deo ubrzanja na drugačijoj i bržoj strukturi. Kao što se pojavljuju nove, brže baze podataka, jednostavno jer ne koriste (zastarelu?) .DBF strukturu. Mada ne treba zanemariti, što je TP "malo" stariji, tj. dosta dugo se usavršava. $ Ipak, Jensen & Parters je "patuljak" prema Borlandu, što, $ naravno, ne znači ništa loše po JPI M2 jer je, najzad, i $ Borland "patuljak" prema Microsoftu, Sasvim :). Mada je JPI otkupljen od strane Clariona, nadam se da će nastaviti razvoj M2 :). $>> Modularno programiranje je jedan međukorak između $>> strukturnog i OOPa :). A svi ćemo kad tad preći na OOP. $ $ Nisam ubeđen. Za koji deo nisi ubeđen ;)? Da je međukorak ili da će mo svi preći na OOP :)? Ostalo što nisam citirao, se uglavnom slažem sa tobom :). ST.
pascal.577 dejanr,
>> > > Modularno programiranje je jedan međukorak između >> > > strukturnog i OOPa :). A svi ćemo kad tad preći na OOP. >> >> > Nisam ubeđen. >> >> Za koji deo nisi ubeđen ;)? Da je međukorak ili da će mo svi >> preći na OOP :)? Nisam ubeđen da ćemo svi preći na OOP. Zapravo, ubeđen sam da nećemo svi preći na OOP. Toliko sam ubeđen da bih se kladio u, što bi rekao pokojni Isaac Asimov, 30 centi, najveću sumu koju rizikujem ako sam u nešto baš siguran :)
pascal.578 skerl,
Ukoliko niste zadovoljni rasporedom hot key kombinacija u TP 6.0 IDE-u, ovaj program je prava stvar za vas! Pozdrav, Skerl. ┌────────────────────────────────────────────────────────────────┐ │ HOTMOD is a program that allows you to reassign the hot keys │ │ in the Integrated Development Environment of Turbo Pascal 6. │ └────────────────────────────────────────────────────────────────┘ hotm60.zip
pascal.579 skerl,
┌────────────────────────────────────────────────────────────┐ │ STRLIST.DOC -- Turbo Pascal 6.0 String List Resource │ │ by Wilbert van Leijen │ ├────────────────────────────────────────────────────────────┤ │ *** Released into the Public Domain *** │ └────────────────────────────────────────────────────────────┘ Description ----------- STRLIST takes an ASCII file as input and converts it to an object file, linkable to a TP 6.0 program. STRLIST interprets the ASCII file to be a list of strings, each on a separate line. STRLIST aides you to store lists of strings efficiently in your application; e.g. error messages or pick-list data. This utility overcomes the drawbacks of storing static data that, when put in an array of String[nn] would waste considerable data space, or when looked up using a Case statement, would unnecessarily increase code size. The following files should be present in the archive: ----------------------------------------------------- STRLIST.DOC Brief description of STRLIST utility STRLIST.EXE Turbo Pascal string list compiler ERRORSTR.LST List of critical error codes, input for STRLIST ERRORSTR.OBJ Output from STRLIST CRITERR.PAS Critical error handler, incorporates ERRORSTR.OBJ DEMO.PAS Demonstrates the usage of CritErr Pogledajte demo program i criterr unit, moze vam pomoci u resavanju problema sa pisanjem vasih programa, ukoliko ih ima :) Pozdrav, Skerl. strlist.zip
pascal.580 skerl,
┌──────────────────────────────────────────────────────────────────┐ │ PACKOBJ.DOC -- The Turbo Pascal Compressing Data Objitizer │ │ │ │ By Wilbert van Leijen │ └──────────────────────────────────────────────────────────────────┘ Introduction ──────────── PACKOBJ is a program that takes binary data as input, compresses it using a fast LZW algorithm and converts it to an .OBJ file that you can link in a Turbo Pascal (TP) program, version 4.0 or later. TPUNPACK.PAS is the TP unit that takes care of decompressing the data. Running the demo ──────────────── In order to compile and run the demo, you must have the following: - Turbo Pascal, version 4.0 or later - A VGA display. (Any VGA display will do.) What you must do: - Make TPC.EXE, the Turbo Pascal command line compiler, accessible on the DOS path - Run JOLTCOLA.BAT Files in this archive: ────────────────────── READ.ME This file BINOBJ.EXE BINOBJ replacement - faster, smaller, more features PACKOBJ.EXE PACKOBJ compressing BINOBJ-like utility PACKOBJ.DOC Accompanies PACKOBJ utility TPUNPACK.PAS Declares the decompression routine UNPACK.OBJ Implements the decompression routine MAKEJOLT.BAT Batch file to run the demo - VGA required! VGABIOS.PAS Interfaces VGA BIOS routines to Turbo Pascal VGABIOS.ASM VGABIOS.OBJ JOLTCOLA.PAS Source of program, shows the Programmer's Beverage JOLTCOLA.DAC Colour table of VGA mode 13h picture JOLTCOLA.PIC Bitmap of VGA mode 13h picture Pozdrav, Skerl. packobj.zip
pascal.581 darone,
>> proradilo. Uzgred kako da taj VGAMODE pozivam iz >> batch file-a, i da ga setujem na MDA. Postoje >> tamo neki kodovi za razne režime rada ali nisam >> ih baš provalio, tj nisam našao koji je za MDA? E ovo već ne znam :( darone
pascal.582 vitez.koja,
#=> 2.Da li je moguce iz programa postaviti vrednost #=> enviroment promenljive? Moguce je... samo /cini mi se/ taj deo mora da se napise asemblerom... Postoji int funkcija koja izvrsava komandu komandnog interpretera na nultom (osnovnom?) nivou, pod uslovom da je isti ostao citav u memoriji... pogledaj help-pc ili nesto slicno za detalje.
pascal.583 vitez.koja,
#=> :). Rubrika tipa savetnika za TP je svakako neophodna, #=> ali bi bilo mnogo korisnije da se autor ugleda npr. na #=> ZZ-ove i NBatocanin-ove rubrike za C i Clipper. Bas tako... a uzgred, bilo je u ovom savetniku s vremena na vreme svetlih mesta tipa "if b=true" (b:boolean) i sl.
pascal.584 ssokorac,
─┼┤ koncipiran i pisan nije bio previse koristan :). Rubrika tipa savetnika Slažem se da nije bio koristan, ali, nekako, uvek sam se nadao da će se nešto pojaviti, a ono - cap! ukinuše ga :(. I, sada, imam gomilu tekstova o drugim jezicima, a TP ni reč :(. Umesto onih svadanja i replyova, koji će, izgleda, prerasti u običaj, moglo bi se dodati nešto korisnije.
pascal.585 ssokorac,
Kako mogu neki deo ekrana da zapišem u fajl tako da posle mogu ponovo da ga nacrtam (graph)? Samo ne onako tačku po tačnu, već nešto poput GetImage/PutImage... Thanks, Stasha.
pascal.586 eagle,
Imaš u direktorijumu paskal datoteku wctunits, u kojoj je izmedju ostalog unit xgraph, koji ima to što tražiš.
pascal.587 pedjak,
> Kako mogu neki deo ekrana da zapišem u fajl tako da posle mogu ponovo da > ga nacrtam (graph)? Samo ne onako tačku po tačnu, već nešto poput > GetImage/PutImage... Pa ja to radim ovako: da snimiš: da učitaš: Assign(f,'slika.dat'); Assign(f,'slika.dat'); Rewrite(f,1); Reset(f,1); size:=ImageSize(x1,y1,x2,y2); GetMem(slika,FileSize(f)); GetMem(slika,size); BlockRead(f,slikaž,FileSize(f)); GetImage(x1,y1,x2,y2,slikaž); PutImage(x,y,slikaž,NormalPut); BlockWrite(f,slikaž,size); Close(f); Close(f); E sad, ja na ovaj kod imam Copyright, pa nećeš moći da ga primeniš u SUPI-ju. :)))) pedja
pascal.588 paki,
­> Kako mogu neki deo ekrana da zapišem u fajl tako da posle mogu ­> ponovo da ga nacrtam (graph)? Samo ne onako tačku po tačnu, ­> već nešto poput GetImage/PutImage... Pomoću Window unita, imaš 2 procedure baš za to. Unit je u dir-u RSOFT, u Računarima 60-i-nešto.
pascal.589 dgrbic,
:: Mnogo lakše je da nabaviš v6.0 TPascala (kompatibilna sa :: 5.0), koja ima i asm direktivu :) Ali ima ružan IDE, i sporije prevodi ako nemaš EMS ili VEEEELIKI keš, i ne slaže se sa svim drajverima za pacova, i obrisao sam ga sa diska (a i mnogo mi je tri verzije Turbo Pascala na disku od 40 mega :)
pascal.590 dgrbic,
:: jer su na nivo jezika samo osnovne funkcije ORD, CHR,... :: Sve ostalo je u Modulima. Al zato je NEMOGUĆE napisati funkciju sa promenljivim brojem parametara (osim ako izlazi iz okvira Wirthove definicije), pa ondak ko će da popamti sve one ludačke kombinacije malih i velikih slova u nazivima funkcija standardne biblioteke... :: Menu.Create, Index.Create. Može isto i u TP (ako si :: disciplinovan :), MenuCreate, IndexCreate, ali treba :: stavljati taj prefiks za svaku Jock! Ako u unitu A i u unitu B imaš proceduru C, možeš da ih pozivaš sa A.C, odnosno sa B.C, a ako staviš samo C biće pozvana ona iz unita koga si kasnije naveo u uses listi (ili koji je u tom delu programa koji upravo pišeš). Zgodno ako hoćeš da "prejašeš" neku standardnu proceduru, kao što je npr. getmem (baš skoro je Skerl tu negde ostavio unit koji to radi). :: Modularno programiranje je jedan međukorak između :: strukturnog i OOPa :). A svi ćemo kad tad preći na OOP. TP već jeste, od verzije 5.5 (a i mi polako prelazimo, od verzije TPW...)
pascal.591 dgrbic,
:: proradilo. Uzgred kako da taj VGAMODE pozivam iz batch :: file-a, i da ga setujem na MDA. Postoje tamo neki kodovi za razne VGAMODE M - MDA C - CGA E - EGA V - VGA x - mod broj x a x je heksa cifra. Npr VGAMODE 13 je 320x200x256
pascal.592 dgrbic,
:: Da napomenem da je i u TP 6.0 kao i u TP 5.5. Ovo je baš :: jedna 'zgodna glupost' Borlanda :(. Možda nije u redu što se tiče kompatibilnosti, ali što se tiče logike - pa "ništa" se sigurno NE sadrži u "nečemu".
pascal.593 dejanr,
>> Ali ima ružan IDE, i sporije prevodi ako nemaš EMS ili VEEEELIKI keš, >> i ne slaže se sa svim drajverima za pacova, i obrisao sam ga sa diska Isti slučaj, ja ostao na 5.5 premda sam kupio 6.0 :( Ovaj BP 7.0 bi mogao da se pokaže kao ozbiljno iskušenje za preći na njega ;) Bar po prvim utiscima.
pascal.594 stomic,
$ Al zato je NEMOGUĆE napisati funkciju sa promenljivim $ brojem parametara (osim ako izlazi iz okvira Wirthove $ definicije) Ne znam da li je u okvirima Wirthove definicije, ali je MOGUĆE, npr: PROCEDURE PrintF(VAR res: ARRAY OF CHAR; formstr: ARRAY OF CHAR (*...*)); BTW, 90% stvari u TPu nije po Wirthovoj definiciji ;). $ (osim ako izlazi iz okvira Wirthove definicije), pa ondak $ ko će da popamti sve one ludačke kombinacije malih i $ velikih slova u nazivima funkcija standardne biblioteke... Stvar navike. Kombinacije su sasvim logične. $ Ako u unitu A i u unitu B imaš proceduru C, možeš da ih $ pozivaš sa A.C, odnosno sa B.C, a ako staviš samo C biće $ pozvana ona iz unita koga si Ovo sam baš ja izneo pre nekih 6-7 meseci ;))). BTW, koliko lepo izgleda sors kada neke procedure/funkcije pozivaš sa imenom modula, a neke bez :)? $ TP već jeste, od verzije 5.5 (a i mi polako prelazimo, od $ verzije TPW...) Lično mislim da je OOP u TPu blago rečeno očajan. ST.
pascal.595 dejanr,
>> > pa ondak ko će da popamti sve one ludačke kombinacije malih i >> > velikih slova u nazivima funkcija standardne biblioteke... >> >> Stvar navike. Kombinacije su sasvim logične. Možda, samo kako onda da kod Logitech i JPI Module 2 važe različite logike? ;) Meni se mnogo više sviđa kad može da se kuca po želji, dakle ako hoću mogu i sve malim slovima, a ako hoću da pravim preglednost, mogu po "svojoj" logici :) A tek stari dobri fortran kod koga blanko nije element jezika, pa možeš gde ti volja da staviš blanko, a gde ti nije volja da ga izostaviš... :)
pascal.596 ssokorac,
─┼┤ Ali ima ružan IDE, i sporije prevodi ako nemaš EMS ili VEEEELIKI keš, i ─┼┤ ne slaže se sa svim drajverima za pacova, i obrisao sam ga sa diska (a i Po meni, IDE je mnogo lepši, brzina je ok, a nemam ni ems ni veliki keš (340k:( )... jedino se slažem za pacova, ali bože moj, onako mi ne treba miš dok kucam program :).
pascal.597 ssokorac,
─┼┤ "ništa" se sigurno NE sadrži u "nečemu". Pa, jes' da je logično, ali sada pola programa koji su tražli sa pos ne rade kako treba :(.
pascal.598 ssokorac,
─┼┤ Pa ja to radim ovako: Eh, kad god uzmem pa pišem neke gluposti sa mem(blablabla...) i zapetljam se, i ništa ne radi, onda ovde pitam i dobijem odgovor BlockRead/Write i onda se ubijem kako se nisam setio :). Hvala :). ─┼┤ E sad, ja na ovaj kod imam Copyright, pa nećeš moći da ga primeniš ─┼┤ u SUPI-ju. :)))) Dobro, spomenuću te u prozoru 'Zahvaljujem' dimenzija 3x1 :).
pascal.600 ssokorac,
Može li neko da pošalje svga256.bgi i sl. bgi drajvere, ili, ako ih je već neko poslao da napomene gde su :)
pascal.601 paki,
­> E sad, ja na ovaj kod imam Copyright, pa nećeš moći da ga ­> primeniš u SUPI-ju. :)))) Izem ti (C) kad je skoro isti kod primenjen u Window unitu, autor Viktor Cerovski.
pascal.602 eagle,
> Može li neko da pošalje svga256.bgi i sl. bgi drajvere, ili, > ako ih je već neko poslao da napomene gde su :) Pogledaj direktorijum drivers, i datoteku svga256.zip (ili arj) Pošto tebi treba samo 320*200 256 slobodno ga skini. Inače, meni ne radi u drugim modovima.. E A G L E
pascal.603 ssokorac,
─┼┤ Pošto tebi treba samo 320*200 256 slobodno ga skini. Inače, meni ne ─┼┤ radi u drugim modovima.. Meni radi i u većini drugih, mada malo zeza ponekad ali to sad nije bitno... Fontovi ne rade u tim drugim rezolucijama... Da li mogu ovi postojeći da se preprave ili neko ima fontove za 320x200x256? P.S. Ima li neko nešto što radi isto što i PutImage, samo brže?
pascal.604 bulaja,
│Evo pokusacu poslati TUTILITY program za rekonstrukciju PARADOX datoteka. └─── Cini mi se da pokusaj nije uspeo :), posto ne uspevam nikako da otpakujem arhivu. Jel uspeo neko? :)
pascal.605 bulaja,
│Slazem se da nije bio koristan, ali, nekako, uvek sam se │nadao da ce se nesto pojaviti, a ono - cap! ukinuse ga :(. └─── Mislim da je bolje da ga nema makar i godinu dana dok se ne nadje neko resenje (npr. kadrovsko, ako je problem u tome) da TP savetnik bude korisniji, nego da se ovako otaljava unedogled uskracujuci time sansu nekome ko bi mozda bolje iskoristio taj prostor.
pascal.606 inesic,
> Nisam ubeđen da ćemo svi preći na OOP. Zapravo, ubeđen sam > da nećemo svi preći na OOP. Toliko sam ubeđen da bih se > kladio u, što bi rekao Zašto? Šta će nas sprečiti da pređemo na OOP jednog dana kad svi budemo imali mašine sa 15Gb RAMa? Inertnost ili..? Video sam u 55 na ETF, dva tipa su na vižual bejziku napravili simulaciju NAR-1 procesora (eh Parezanoviću, besmrtan si :) i to je IZGLEDALO fantastično. Ne kažem da se to ne može u TPu, ali je vamo bilo u nekih pedesetak linija sorsa. Pitao bih iskusnije Šta je mana OOP? Ivica
pascal.607 dejanr,
>> > Nisam ubeđen da ćemo svi preći na OOP. Zapravo, ubeđen sam >> > da nećemo svi preći na OOP. Toliko sam ubeđen da bih se >> > kladio u, što bi rekao >> >> Zašto? Šta će nas sprečiti da pređemo na OOP jednog dana kad svi budemo >> imali mašine sa 15Gb RAMa? Inertnost ili..? Pa, pre svega, reći da će *svi* nešto uraditi uvek je deplasirano. Ma koliko nešto bilo dobro, naći će se neko kome ne odgovara. Drugo, mislim da prelazak na OOP nema mnogo veze sa snagom kompjutera, RAM-a, diska itd. To je kao kada mi jedan prijatelj, koji se bavi Venturom na AT-u, kaže "joj kad ću ja da imam 80886 sa hardom od 4 gigabajta", a ja mu odgovorim da će to nema sumnje da se desi, ali da će tada postojati Ventura 21.0 koja za komforan rad zahteva 80986 i disk od terabajta :) Oprema i softver idu napred zajedno. Treće, pogledaj objektivno šta nam je danas OOP doneo. Ugrađen je u neke Microsoftove i sve Borlandove jezike (C, Pascal itd), prevashodno da bi učinio programiranje pod Windows-om jednostavnim. I, da li ga je učinio jednostavnim? Nije, ili bar ne naročito - i dalje su to šume objekata, klasa, čuda, i dalje neko da bi počeo ozbiljno da programira pod Windows-om ima da potroši silne sate i dane proučavajući papire, help-ove, biblioteke itd. I kada sve to prouči, da li će ti njegovi Windows programi posle da budu lako prenosivi na druge platforme? Već je OS/2 pokazao da neće. Ispada da sa OOP-om nije ništa naročito lakše nego sa Windows SDK-om koji su svi onoliko napadali da je komplikovan (i jeste komplikovan). Ili ajmo nešto jednostavnije, valjda se svi sećaju kako su se na bejziku kontrolisale run time greške. Kažeš: 10 ON ERROR GOTO 1000 ... 100 REM Glavni meni ... 990 END 1000 PRINT ERR, " at line ", ERL 1010 GOTO 100 Da li može da se zamisli lepši, efikasniji i za razumevanje jednostavniji način da se kontroliše pojava greške? Da li je taj način nekome potrebno mnogo objašnjavati? Nije, razume se na prvi pogled. E onda uzmeš pa pogledaj "objektno orijentisano" tretiranja greški kod novog Clippera (jezik koji se gotovo interpretira, i u kome je moglo da se primeni isto takvo rešenje). Šetaju te sa nekakvim objektima, nekakvim njihovim elementima, brojačima, čudima, i kad se najzad ispetljaš iz toga, vidiš da su ti ponudili divnu mogućnost da ti "objekat" sam broji koliko je puta greška nastupila, pa da recimo odustane tek posle desetog pokušaja. Kao da mi ne bi bilo lakše, kad bi mi već to jednom u milion puta trebalo, da sam napravim brojač koji će to da meri! Sve u svemu, sve te priče o objektnom programiranju lepo zvuče na papiru, ali da to toliko olakšava rad koliko se tvrdi... duboko sumnjam. Lično više verujem u veliko širenje nekakvih generatora aplikacija (pa makar i objektno orijentisanih) nego OOP-a. Ono što je dobro u njemu će, nema sumnje, "preživeti" ali će se utopiti u neku novu metodologiju. PS Kao što se vidi, poruka je veoma u vezi temom pascal :(
pascal.608 stomic,
$ Meni se mnogo više sviđa kad može da se kuca po želji, $ dakle ako hoću mogu i sve malim slovima, a ako hoću da $ pravim preglednost, mogu po "svojoj" logici :) A tek stari $ dobri fortran kod koga blanko nije Ali zato nikada ne smeš da koristiš type za ime promenljive, procedure, ... Što je prilično lepo za ime promenljive koja sadrži neki tip (npr.). I jedno i drugo ima prednosti i mana. Meni, lično, uopšte ne pada teško case sensivity (ili kako se već piše ;). ST.
pascal.609 dejanr,
>> > A tek stari dobri fortran kod koga blanko nije >> >> Ali zato nikada ne smeš da koristiš type za ime promenljive, >> procedure, ... Što je prilično lepo za ime promenljive koja >> sadrži neki tip (npr.). Ne znam da li se ovo odnosilo na paskal ili na "stari dobri fortran", jer za prvi važi a drugi... elem, baš kao što blanko nije element fortrana pa možeš po volji da ga stavljaš i ne stavljaš gde želiš, tako i fortran nema rezervisane reči, dakle apsolutno svako ime može da bude ime promenljive, i uz to nema veze kakvim ga slovima kucaš :) Al su ga napravili, svaka im čast, a? :) Uzgred, ja ne bih zvao promenljivu type (pa ni tYpe, Type itd) sve i da to ne zbunjuje kompajler - zbunjivalo bi mene ;)
pascal.610 dgrbic,
:: Po meni, IDE je mnogo lepši, brzina je ok, a nemam ni ems :: ni veliki keš (340k:( )... jedino se slažem za pacova, :: ali bože moj, onako mi ne treba miš dok kucam program :). Ako možeš, od tih 384K stavi 64K EMS a ostalo za keš, da vidiš kako će da se poveća brzina prevođenja. TP6.0 nad starijim ima dve prednosti, ugrađeni asembler i editor koji može da proguta više od 64K teksta (naravno, ako ne računamo objekte, koji jesu neka relativna prednost u odnosu na verzije starije od 5.5 ali samo ako se koriste). E, da, ima i treća prednost, a to je {$X+}. Ali sve to ima i TPW, a i još ponešto ;)
pascal.611 dgrbic,
:: Ne znam da li je u okvirima Wirthove definicije, ali je :: MOGUĆE, npr: :: :: PROCEDURE PrintF(VAR res: ARRAY OF CHAR; formstr: ARRAY :: OF CHAR (*...*)); Ha, ovo su prepisali iz TP-a ;)
pascal.612 dgrbic,
:: Pa, jes' da je logično, ali sada pola programa koji su :: tražli sa pos ne rade kako treba :(. Pa dobro, meni nikad nije ni palo na pamet da tražim prazan string, pa pošto nisam ni probao kako radi funkcija u tom slučaju, a bilo mi je logično da radi onako kako radi "po novom", uvek bih stavio proveru da nije string slučajno prazan, pa ako jeste... što da se gubi vreme na traženje?
pascal.614 bulaja,
│Evo pokusacu poslati TUTILITY program za rekonstrukciju PARADOX datoteka. │... │** Uz poruku 'tutil40.zip' (64421 bytes) └─── Pokusaj definitivno nije uspeo :). Nasao sam tutil40.zip na listi datoteka jednog outer BBS-a i isti je dugacak 228 KB.
pascal.615 pedjak,
> Ali ima ružan IDE, i sporije prevodi ako nemaš EMS ili VEEEELIKI keš, i ne > slaže se sa svim drajverima za pacova, i obrisao sam ga sa diska (a i > mnogo A i pravi duže programe i ima ružan help... pedja
pascal.616 vitez.koja,
#=> Isti slucaj, ja ostao na 5.5 premda sam kupio 6.0 :( Bice da jednostavno niste pruzili sestici pravu sansu... Ja sam joj prisao sa povecim entuzijazmom, mada sam bio prilicno naviknut na 5.5, i malo vremena mi je trebalo da se naviknem :)
pascal.617 peca.st,
!-> E sad, ja na ovaj kod imam Copyright, pa !-> nećeš moći da ga primeniš u SUPI-ju. !-> :)))) Ih al ti je ideja.... Ovo što jes jes radi, al samo na Hercu, jerbo njegov ekran ima manje od 64K, a VGA ekran ima barem 256K. Neće raditi zato što je parametar koji se prosleđuje (kod tebe SIZE) tipa word, a to je 64K. :( Ja sam se malo mučio sa ovim, pa sam iz više puta snimao VGA ekran i tako može al je glupo. Bolje je uzeti ono za snimanje u PCX formatu, šljaka ko ludo, al opet samo do rezolucije 640*480*16. P e C a
pascal.618 peca.st,
!-> P.S. Ima li neko nešto što radi isto što !-> i PutImage, samo brže? A pro po ovoga... Ima li neko što radi isto što i GetPixel, samo brže? Nije bitno da li je u assembleru ili bilo čemu već... P e C a
pascal.619 mjova,
>│ Evo pokusacu poslati TUTILITY program za rekonstrukciju >│ PARADOX datoteka. > Cini mi se da pokusaj nije uspeo :), posto ne uspevam > nikako da otpakujem arhivu. Jel uspeo neko? :) mislim da nije jer imam istih problema...
pascal.620 ssokorac,
─┼┤ A i pravi duže programe i ima ružan help... Programi manje-više, ali u help mi ne diraj, uradjen je odlično! Bar meni. Sve što se može naći - nadješ. Plus primer.
pascal.621 ssokorac,
─┼┤ a VGA ekran ima barem 256K. Neće raditi zato što je parametar koji se ─┼┤ prosleđuje (kod tebe SIZE) tipa word, a to je 64K. :( Ma, meni je trebao samo deo ekrana, ali sam ionako odustao od onog načIna jer je Put/GetImage grozan, pa sam napravio svoj(e) :). Da viš' samo brzinu :)... P.S. Na onim drugim rezolucijama sa svga???.bgi drajverima rade i fontovi samo se moraju ponovo instalirati svi sa InstallUserFont :).
pascal.622 paki,
­> Programi manje-više, ali u help mi ne diraj, uradjen je ­> odlično! Bar meni. Sve što se može naći - nadješ. Plus primer. Fala Bogu. Ja sam paskal naučio iz helpa, bez ikakve dokumentacije u pisanoj formi (sem Dejanovih umetaka, naravno :)
pascal.623 inesic,
> PS Kao što se vidi, poruka je veoma u vezi temom pascal :( Nema veze, dobila je R flag u mojoj bazi poruka. Fala za tri kile texta.
pascal.624 ldragan,
Ako neko ima "DBASE.PAS" i "NDX_CREA.PAS" bio bih zahvalan da mi ih poŠalje. LdraGan
pascal.625 pedjak,
> Ma, meni je trebao samo deo ekrana, ali sam ionako odustao od onog načIna > jer je Put/GetImage grozan, pa sam napravio svoj(e) :). Da viš' samo > brzinu Pa hajde da vidimo, pošaljni tvoj(e) :) pedja
pascal.626 pedjak,
> Ovo što jes jes radi, al samo na Hercu, jerbo njegov ekran ima manje od > 64K, a VGA ekran ima barem 256K. Neće raditi zato što je parametar koji se Pa sad nema svaki VGA ekran više od 256K. Standardna VGA rezolucija u video memoriji zauzima 640*0.5*480=150Kb. žak i rezolucija 800*600*16 zauzima 800*0.5*600=234Kb > al je glupo. Bolje je uzeti ono za snimanje u PCX formatu, šljaka ko ludo, > al opet samo do rezolucije 640*480*16. Tja, taj unit koristim samo za neke najobičnije stvari, ali on mi ne omogućava smeštanje slike na proizvoljan deo ekrana, što su PutImage/GetImage mogu, a to mi u najvećem broju slučajeva i treba. pedja
pascal.627 pedjak,
> Programi manje-više, ali u help mi ne diraj, uradjen je odlično! Bar meni. > Sve što se može naći - nadješ. Plus primer. Pa sad, ne znam kol'ko si se bavio sa 5.5 , ali mi je njegov help ( po meni ) bolje organizovan i lakše nalazim nešto što mi treba ( možda i stvar navike ) i to postižem sa svega nekoliko tastera. E sad, kad moram radim i u 6.0 , ali pronaći nešto u njegovom helpu je prava muka ( pogotovo u onom ogromnom indexu ) . Kol'ko puta sam tražio nešto o rezervisanim rečima, pa sam morao da ih jurim po !?#!## indexu :), jer nema odvojene stavke kao u 5.5 . Povrh svega help me tera i da koristim miša, a to bogami ne volim :) A primere imaš i u helpu za 5.5 . pedja
pascal.628 peca.st,
!-> jer je Put/GetImage grozan, pa sam !-> napravio svoj(e) :). Da viš' samo brzinu !-> :)... Kako si to napravio svoje? Sa direktnim pristupom video memoriji ili nešto drugo? Kolko brže radi, ako si ga napravio, XorPut? P e C a
pascal.629 peca.st,
!-> Tja, taj unit koristim samo za neke !-> najobičnije stvari, ali on mi ne !-> omogućava smeštanje slike na proizvoljan !-> deo ekrana, što su PutImage/GetImage !-> mogu, a to mi u najvećem broju slučajeva !-> i treba. A zašta, crni sine, služi SetVisualPage i SetActivePage??? Ti lepo staviš na primer visual na 1 a active na 0, pa onda učitaš to, pa onda uzmeš image, pa onda active na 1, pa onda putimage i gotovo. Ovako izgleda komplikovano, al kad napraviš proceduru sve je lako i vrlo fino radi! P e C a P.S. Imade li neko source za čitanje i pisanje PCX ili nekog sličnog?
pascal.630 stomic,
$ Ne znam da li se ovo odnosilo na paskal ili na "stari $ dobri fortran", jer za prvi važi a drugi... elem, baš kao Na pascal naravno :). $ Uzgred, ja ne bih zvao promenljivu type (pa ni tYpe, Type $ itd) sve i da to ne zbunjuje kompajler - zbunjivalo bi $ mene ;) Opet stvar navike. Meni se mnogo sviđa. Što se tiče Fortrana ne mogu da sudim, jer sam ga pogledao samo jednom pre 2-3 godine (tj. kao da ga i nisam pogledao ;). Veliki propust, priznajem :). žim stignem pozabaviću se malo :). Jedna velika (po meni) prednost M2, koju sam zaboravio da navedem, su .DEF fileovi (pogotovo kada više programera rade na jednom projektu). Kod TP se to svelo na izdvajanje interface dela iz unita, i stavljanje u .INT file, ali, znaš već sam, da je ovo budalaština. DEF fileovi su izbačeni iz Oberona. To je, činimi se, druga velika greška posle izbacivanja FOR petlji u Oberonu. Prešao sam na M2 jer mi je došla kao pascal bez stvari koje su mi smetale u njemu (pascal po meri :). ST.
pascal.631 dtadic,
>> P.S. Imade li neko source za citanje i pisanje PCX ili nekog slicnog? Pogledaj stare poruke u ovoj temi. Uz neke od njih treba da se nalaze TPPCX.ARJ i GIF-PAS.ARJ (ili ZIP). DT
pascal.632 pedjak,
> Ako neko ima "DBASE.PAS" i "NDX_CREA.PAS" bio bih zahvalan da mi ih > poŠalje. Evo, stiže... pedja dbasendx.arj
pascal.633 dejanr,
>> Jedna velika (po meni) prednost M2, koju sam zaboravio da navedem, >> su .DEF fileovi (pogotovo kada više programera rade na jednom >> projektu). Uh, a meni baš ti DEF fajlovi izgledaju kao jedna od mana Module, mnogo se stvari komplikuju, sto fajlova za jedan program, obaška što treba da menjam na više mesta kad dodajem/oduzimam neki argument. Moje je mišljenje da ih se sam Wirth nije "džabe" odrekao u "sledećim" jezicima.
pascal.634 nbatocanin,
Uh, ko da slušam sebe pre koju godinicu ;)) Ali, debelo sam grešio, ili danas debelo grešim. Mislim da je OOP izuzetna stvar i pokušaću to donekle da objasnim. U tekstovima u "Računarima" sam pokušao par puta da dam neki jednostavan primer koji bi ovo potkrepio, ali jednostavni primeri su kao seksualno obrazovanje sa leptirićima i bubicama ;) - ne služi ničemu. A složen primer je teško objasniti. A prava prednost OOP-a se ne vidi u manjim programima kakvi se obično pišu kod nas, već u složenim sistemima koje razvijaju timovi. Probaću sa jednim složenijim primerom: elem, u poslednje vreme radim Clipper programe po narudžbini, tako da svaki korisnik dobija jedinstven primerak, ali opet ima veoma mnogo zajedničkih delova. U suštini, potrebno je paralelno održavati 3-7 verzija jednog programa. Posao strahovito težak ako se radi na klasičan način i bez pomoćnih alatki (uzgred, ima li neko pvcs ili neki drugi program za kontrolu verzija?). Ovo sam rešio sasvim standardno: odvojio sam zajednički deo u biblioteku, a svaki korisnik ima svoj katalog koji sadrži "unikatni" kod. E sad: bez obzira kako organizuješ "sistemski" i "unikatne" delove, i dalje ostaje mnogo koda koji je zajednički za sve korisnike. Primera radi, nivelacija. Svaka firma ima neki svoj sistem za dizanje cena, pa je skoro uvek osim standardnih načina za proračun cena potrebno dodati neki specifičan proračun koji se ne svodi uvek na novu formulu. Tako je neminovno iskopirati proceduru i napraviti nekoliko izmena. Ali se time stablo verzija grana na najgori mogući način: nova verzija je samo malo različita od stare, ali dovoljno da se promene na jednoj ne mogu automatski preneti na drugu. Zato se ja dovijam na razne načine, ali odavno mi je jasno da su objekti za ovo idealno rešenje: ako bih nivelaciju napravio kao neki objekat, varijante bi mogle da budu jednostavno naslednici! U stvari, radi se o klasama i metodama, ali da ne cepidlačim. Zašto je to bolje? Pa, novi objekat ima sve željene osobine starog, neke nove, ali najvažnije, sve izmene na starom objektu *automatski* nasleđuje! I to je samo jedna od prednosti. > Ili ajmo nešto jednostavnije, valjda se svi sećaju kako su > se na bejziku kontrolisale run time greške. Kažeš: > > 10 ON ERROR GOTO 1000 > ... > 100 REM Glavni meni > ... > 990 END > 1000 PRINT ERR, " at line ", ERL > 1010 GOTO 100 Uh, izabrao si mnogo loš primer ;) Clipper ima sistem za kontrolu grešaka koji je daleko moćniji od navedenog. Naime, ono što tebi treba radi sledeća naredba: ErrorBlock ({|| Greska(e) }) Kad god se desi greška, aktivira se procedura Greska(). Ako te interesuju podaci o greški, imaš SLOG (ovo je u ovakvom slučaju mnogo bolje reći nego objekt) koji sadrži sve potrebne informacije, pa je tako e:description opis greske, itd. Ako te ne interesuje, jednostavno ne koristiš. Ovo što si naveo kao primer se veoma lako izvodi i sa naredbom BEGIN SEQUENCE koja omogućava veoma fino kontrolisanje greške: u programu bukvalno kažeš 'odavde' i 'dovde' kontroliši grešku tako i tako. > E onda uzmeš pa pogledaj "objektno orijentisano" tretiranja greški > kod novog Clippera (jezik koji se gotovo interpretira, i u kome je > moglo da se primeni isto takvo rešenje). Kao što rekoh, ovo je bolje. Ali veoma je važno da Clipper-ov sistem za greške nije OO! Pa tu se objekti koriste samo kao zamena za nepostojeće slogove. Doduše, slažem se da je ovo moglo čistije da se izvede. > Ono što je dobro u njemu će, nema sumnje, "preživeti" ali će se > utopiti u neku novu metodologiju. E, ovde se skroz slažem. Bez obzira na žestoku kritiku hibridnih pristupa uveren sam da on jedini ima šanse. > PS Kao što se vidi, poruka je veoma u vezi temom pascal :( Modulatore, znaš šta ti je činiti :))
pascal.635 ppekovic,
>>> PS Kao što se vidi, poruka je veoma u vezi temom pascal :( >> >> Modulatore, znaš šta ti je činiti :)) :) To sysadm neće njega da ispljuju zbog haosa u sor-u pa prebacuje loptu moderatoru. :)) Paya (The Modulator)
pascal.636 dejanr,
>> Uh, ko da slušam sebe pre koju godinicu ;)) Hmmmm... možda... a možda i ko da slušaš sebe KROZ koju godinicu ;)) >> Zato se ja dovijam na razne načine, ali odavno mi je jasno da su >> objekti za ovo idealno rešenje: ako bih nivelaciju napravio kao neki >> objekat, varijante bi mogle da budu jednostavno naslednici! U stvari, >> radi se o klasama i metodama, ali da ne cepidlačim. Zašto je to bolje? >> Pa, novi objekat ima sve željene osobine starog, neke nove, ali >> najvažnije, sve izmene na starom objektu *automatski* nasleđuje! I dalje ne vidim toliku razliku u odnosu na to da napraviš procedure koje obavljaju neke osnovne operacije koje čine tu nivelaciju, pa da ih pozivaš onim redom i uz one dodatke koje zahteva svaka od firmi. Samim tim bi promenu u osnovnoj proceduri "naledile" i procedure koje je pozivaju. Međutim, primećujem da je i ovaj primer prednosti objektnog programiranja, baš kao i većina drugih o kojima sam slušao, tipa "ja imam problem, i čini mi se da bi se on upravo divno rešio primenom objektnog programiranja kad bi...", a posle toga dodati po volji "imao takav jezik", "to koristio", "to bilo malo efikasnije", "to bilo malo jednostavnije" itd, itd. Objektno programiranje je vrlo "jako" po pitanju obećanja. Međutim, nešto je slabije po pitanju ispunjenja tih obećanja. Dakle, argument će biti kada ga primeniš pa ti olakša posao, a to što se u njega nadaš... to je samo "human nature" :) Uostalom, i ja se nadam u onakve kompjutere kakve imaju u "Zvezdanim stazama", pa posle kad dođu na Zemlju iz ovog vremena inženjer kaže "kompjuteru, uradi to i to", a "ovdašnji" programer mu kaže "ne, ne, morate da koristite miša" na šta inženjer konstatuje "primitivan model", uzme miša i počne da govori u njega :)) >> > Ili ajmo nešto jednostavnije, valjda se svi sećaju kako su >> > se na bejziku kontrolisale run time greške. Kažeš: >> > >> > 10 ON ERROR GOTO 1000 >> > ... >> > 100 REM Glavni meni >> > ... >> > 990 END >> > 1000 PRINT ERR, " at line ", ERL >> > 1010 GOTO 100 >> >> Uh, izabrao si mnogo loš primer ;) Clipper ima sistem za kontrolu >> grešaka koji je daleko moćniji od navedenog. Naime, ono što tebi >> treba radi sledeća naredba: >> >> ErrorBlock ({|| Greska(e) }) Znam da radi... samo, šta ćemo sa onim '1010 GOTO 100'? >> Ovo što si naveo kao primer se veoma lako izvodi i sa naredbom >> BEGIN SEQUENCE koja omogućava veoma fino kontrolisanje greške: >> u programu bukvalno kažeš 'odavde' i 'dovde' kontroliši grešku >> tako i tako. Baš kao i da na tom mestu kažem ON ERROR GOTO ... a posle toga ON ERROR OFF... uz razliku što je ono sa BEGIN SEQUENCE nešto malo komplikovanije ;) Nema jednostavnijeg načina da se kontrolišu greške od ON ERROR GOTO... ili ga bar ja nisam sreo :) Menjao bih ga samo za mehanizam tipa ON ERROR snađi_se_kako_znaš_al_da_se_mušterija_ posle_ne_buni (tu kompjuter eksplodira i ubije mušteriju :)) >> Kao što rekoh, ovo je bolje. Ali veoma je važno da Clipper-ov sistem >> za greške nije OO! Nije? žudno da se u mom uputstvu poglavlje o tome zove "Error Class" uz podnaslov "Provides objects containing information about runtime errors"... Primetio sam da, kada god sa objektnim programiranjem ispadne nešto što ne valja, krajnje objašnjenje bude "pa to i nije baš pravo objektno programiranje, ali kad bude...". Tako bi objektno programiranje bilo neka vrsta komunizma, a ovo što sada imamo na tu temu nekakav real-socijalizam ;)))
pascal.637 isekulovic,
Napravio sam jedan svoj font pomoću sfe-a. Ustvari uzeo sam litt.chr i modifikovao ga u ćirilicu i nazvao srli.chr. Problem mi je kako da sad to ubacim u program. Ako ga preimenujem u litt.chr i kao takvog podvalim program radi, ali ako hoću da ga pod novim imenom uključim u program sa installuserfont, ne radi. Samo moj_font:=installuserfont('srli'); uradi bez greške, ali iako posle uradim settextstyle(font,horizdir,0); on piše sa defaultfont. Help me!
pascal.638 pedjak,
> A zašta, crni sine, služi SetVisualPage i SetActivePage??? > Ti lepo staviš na primer visual na 1 a active na 0, pa onda učitaš to, > pa onda uzmeš image, pa onda active na 1, pa onda putimage i gotovo. > Ovako izgleda komplikovano, al kad napraviš proceduru sve je lako i vrlo > fino radi! Jeste da radi, al' mi se izvedba ne sviđa. pedja
pascal.639 janko,
> jedinstven primerak, ali opet ima veoma mnogo zajedničkih > delova. U suštini, potrebno je paralelno održavati 3-7 > verzija jednog programa. Posao strahovito težak ako se > radi na klasičan način i bez pomoćnih alatki (uzgred, ima > li neko pvcs ili neki drugi program za kontrolu verzija?). Gde me nađe! I meni treba: -- neki razvojni alat koji samo pazi kada sam menjao i kako koju datoteku iz čitave gomile, i da po potrebi može da generiše i n-x tu verziju, ako sad imam n-tu -- neki dobar program koji analizira sadržaj dve tekst datoteke, ume da ih uporedi u čemu se razlikuju, da daje pregledni fajl, ali i fajl u obliku u kome bi drugi program iz tog istog paketa mogao da uradi inverznu operaciju. Već sto godina pitam: ima li nekog na Sezamu da mi da sorsove za diff i undiff pa da ih portujem na DOS za ličnu upotrebu... Konkretno, imam sto verzija svojih programa u deset hiljada datoteka... (Kad bi onaj program iz prvog stava umeo i da se nahrani već gotovim paketima datoteka, to bi mi rešilo sve) Itd isl.
pascal.640 peca.st,
!-> Pogledaj stare poruke u ovoj temi. Uz !-> neke od njih treba da se nalaze TPPCX.ARJ !-> i GIF-PAS.ARJ (ili ZIP). Kolko stare? Ja imam one unite za PCX, al meni treba SOURCE hoću malo da čeprkam po tome! :) Ajde mi kaži barem okvirno kolko u nazad da tražim! P e C a
pascal.641 ssokorac,
Vidi se da nisi čestito ni probao tp 6.0 help. ─┼┤ prava muka ( pogotovo u onom ogromnom indexu ) . Kol'ko puta sam ─┼┤ tražio nešto o rezervisanim rečima, pa sam morao da ih jurim po Shift-F1, RES, Enter i sve piše šta ti treba. Ako ti treba neka reč još strelice i enter i tu je. ─┼┤ help me tera i da koristim miša, a to bogami ne volim :) A primere Ja miša uopšte ne koristim u tp-u, sa tastature je sve mnoogo lakše.
pascal.642 ssokorac,
─┼┤ Kolko brže radi, ako si ga napravio, XorPut? Videćeš u supiju 4 :).
pascal.643 ssokorac,
─┼┤ P.S. Imade li neko source za čitanje i pisanje PCX ili nekog sličnog? bjovanovic je napravio svoj PCX viewer, ali čIm je to on napravio ;) onda je to vrlo jednostavno. Samo skini sa sezama opis pcx formata...
pascal.644 drpr,
Haj svima! Prvo ovo je uvod za sledeću poruku ali mislim da je zasebna pikanterija, bar za mene, a možda otkrivam toplu vodu ;)) Da li vam je nekad bilo potrebno da definišete konstantu koju možete da menjate? Da i reći će te da se to radi u stilu: const ime:string[5]='sezam'; A šta ako to sve treba da bude record? Pa ja sam se malko mučio oko jednog problema (vidi sledeću poruku) te mi je trebalo da imam jedan record koji će uvek imati istu početnu vrednost ali da to ne činim na standardni način tj. da prvo definišem record a zatim da u programu dodeljujem vrednost svakom po na osob. Recimo,stvar je veoma korisna jer se isti čuva u exe fajlu, pa da napišem type struct= record sind:string[5]; offset:longint; ime:string[5]; end; const save:struct=(sind:'sezam';offset:0;ime:'mjova'); I to bi bilo to, možda se nekom čini uzaludno ali meni je bilo i tekako potrebno :) cope
pascal.645 drpr,
Procedura koju je mjova napisao na c-u a koja upisuje parametre u exe fajl sada može i da se radi na TP-u sledi programče po mjovi sa mojim znanjem TP-a: program upis; type struct= record sind:string[5]; offset:longint; ime:string[5]; end; const save:struct=(sind:'sezam';offset:0;ime:'mjova'); procedure cfg_sav; var exe:file; dat:file of char; c:char; brojac:longint; bafer:string[5];{velicina mora biti ista kao i kod save.sind!} nasao_sam:boolean; begin assign(exe,paramstr(0)); assign(dat,paramstr(0)); reset(dat); reset(exe,1); if save.offset=0 then {ako znamo gde treba da upišemo ne treba begin pretraživati za markerom} bafer:=' '; {pravimo kružni bafer da nadjemo slog} brojac:=0; nasao_sam:=false; repeat read(dat,c); brojac:=brojac+1; delete(bafer,1,1); bafer:=bafer+c; if bafer=save.sind then begin save.offset:=brojac-6;{<- broj za jedan veci od duzine markera} nasao_sam:=true end; until (nasao_sam=true) or (eof(dat)); if eof(dat) then begin write('nema markera!'); halt; end; end; close(dat); seek(exe,save.offset); blockwrite(exe,save,sizeof(save)); close(exe); end; begin if paramcount<>0 then begin save.ime:=paramstr(1); cfg_sav; end; write(save.ime,' ',save.offset); end. ------ Startovanje u dos šelu: I put proba mjova 0 II put proba marfi marfi [broj offset-a upisa] ---------- Progaram znači ima malu strukturu u kojoj je bitno za korisnika samo save.ime. To može da bude i više parametara... Glavna mana (bar ja nisam znao da rešim problem) je što ako datoteku otvorim kao fajl ne radi read(dat,c) , sad se setih da bi moglo da se reši sa blockread, ali nema veze dorade su na vama važno je da imate osnovu :). Druga napomena je da sve ovo neće da radi iz TP-ovog ide-a jer se program kompajlira u memoriji pa nemate exe fajl, koliko znam paramstr(0) u ide-u daje turbo.exe tako da je program potrebno kompajlirai na disk pa onda u dos šelu probati sve kako radi. Eto nadam se da sam vam pomogao a ovo će biti implementirano u sledećoj verziji grafit-a . Na kraju se još jednom zahvaljujem mjovi na divnoj ideji! Toliko od mene nadam se da nisam davio :)) cope
pascal.646 stomic,
$ -- neki razvojni alat koji samo pazi kada sam menjao i $ kako koju datoteku iz čitave gomile, i da po potrebi može $ da generiše i n-x tu verziju, ako sad imam n-tu Ljudi, ne hvalim džabe Hobbiton :). Pogledajte na Hobbitonu u \GNUISH direktorijumu, imaju bar tri vrsti RCS (Revision Control System). Uz neke je priložen i sors u C-u. Ovo su MSDOS portovi GNU RCSa. Predlažem da skinete RCS uz koji je deskripcija da je to zvanična DOS verzija. Ovo je jedan od najboljih programa koje sam ikada video (bez menija, i drugih 'ulepšavanja' :), jedino što nije priložen sors). Naravno sve omogućava što tražiš i još više (grananje verzija, npr., a i notacija verzija 1.3.2 će ti odgovarati (seti se Ukrasa:))). Inače verzija RCS je najnovija. $ -- neki dobar program koji analizira sadržaj dve tekst $ datoteke, ume da ih uporedi u čemu se razlikuju, da daje $ pregledni fajl, ali i fajl u obliku u kome bi drugi $ program iz tog istog paketa mogao da uradi inverznu $ operaciju. Već sto godina pitam: ima li nekog na Sezamu da $ mi da sorsove za diff i undiff pa da ih portujem na DOS za $ ličnu upotrebu... Konkretno, imam sto verzija svojih $ programa u deset hiljada datoteka... (Kad bi onaj program $ iz prvog stava umeo i da se nahrani već gotovim paketima $ datoteka, to bi mi rešilo sve) Eh... U svakom od ovih RCSova se nalazi i DIFF i DIFF3 (za poređenje tri datoteke, čini mi se). Naravno sors priložen, mada je ovo već DOS verzija. ST.
pascal.647 stomic,
$ Uh, a meni baš ti DEF fajlovi izgledaju kao jedna od mana $ Module, mnogo se stvari komplikuju, sto fajlova za jedan $ program, obaška što treba da menjam na više mesta kad $ dodajem/oduzimam neki argument. Razmisli situaciju timskog programiranja, isto bi morao raditi i u Pascalu samo što treba ručno da izdvajaš interface deo i da deliš, ili da svakom programeru uz tvoju biblioteku daješ sors pa nek on izvlači procedure i funkcije :). Lepo napraviš .OBJ file daš drugome sa DEFom. Ne vidim drugo rešenje :). Što se tiče 'samostalnog' programiranja, nadam se, da unite ne pišeš na brzinu, za jednu upotrebu, već lepo, polako, a tu ti nije problem napisati par redova u DEFu. Drugo, meni je, mnogo lakše prvo da pobrojim osnovne procedure u DEFu pa tek onda da ih piše, jer ovako imam u glavi kako će već šta ići i koje će relacije biti uspostavljne. Lepo još ispod procedure dodaš komentar šta je koji parametar i ništa lepše. Kada hoćeš da koristiš biblioteku učitaš DEF koji je par stotina bajtova, a ne ceo sors (kao u TP) koji može da bude i desetine hiljada bajtova. Jednostavno teži se principu crne kutije, tj. što više sakriješ i od samog sebe, manje te boli glava :). ST.
pascal.648 dejanr,
>> Razmisli situaciju timskog programiranja, isto bi morao raditi >> i u Pascalu samo što treba ručno da izdvajaš interface deo i da >> deliš, ili da svakom programeru uz tvoju biblioteku daješ sors >> pa nek on izvlači procedure i funkcije :). Lepo napraviš .OBJ file >> daš drugome sa DEFom. Ne vidim drugo rešenje :). Ne verujem da ćeš ikako proći bez davanja source-a :) No svejedno - kad radiš na Moduli dva moraš UVEK da izdvajaš Interface deo, a na Pascalu MOčDA moraš AKO to nekome daješ. Prvo mi zvuči kao bolja varijanta :) >> Što se tiče 'samostalnog' programiranja, nadam se, da unite ne >> pišeš na brzinu, za jednu upotrebu, već lepo, polako, Hm, hm ;) >> a tu ti nije problem napisati par redova u DEFu. Nije... ali je još manji problem napisati ih tamo gde je sam program. Naročito je nezgodno što sa tim DEF fajlom za svaku promenu treba i njega da jurim po disku. >> Drugo, meni je, mnogo lakše prvo da pobrojim osnovne procedure u >> DEFu pa tek onda da ih piše, jer ovako imam u glavi kako će već >> šta ići i koje će relacije biti uspostavljne. Možda, ali mi i dalje nije jasno zašto bi bilo lakše da se te procedure nalaze ODVOJENO nego ZAJEDNO sa programom! Isto tako možeš u TP-u da prvo napišeš INTERFACE deo, pa posle lepo pišeš IMPLEMENTATION. >> Kada hoćeš da koristiš biblioteku učitaš DEF koji je par stotina >> bajtova, a ne ceo sors (kao u TP) koji može da bude i desetine >> hiljada bajtova. I jedan i drugi se učitaju za približno isto vreme koje teži nuli.
pascal.649 vvelisavljev,
Mislim da u nazivu programa treba staviti ekstenziju. Usput dužina naziva ne sme biti duža od 4 slova.
pascal.650 skerl,
│ P.S. Imade li neko source za citanje i pisanje PCX ili │ nekog slicnog? └───── Imas uz poruku 6.178 tppcx.zip Pozdrav, Skerl.
pascal.651 ssokorac,
─┼┤ moj_font:=installuserfont('srli'); ─┼┤ settextstyle(font,horizdir,0); Ne znam da li je to sada u kucanju, ali moraš i u drugom redu moj_font :), a verovatnija greška je da nisi bio u direktorijumu sa .chr fajlom.
pascal.652 ssokorac,
Sa onim svga drajverima miš ne radi, ok, već za GetMouseX i GetMouseY vraća gluposti... :( Ima li neko unit koji radi ok u drugim rezolucijama?
pascal.653 inesic,
> Ljudi, ne hvalim džabe Hobbiton :). Pogledajte na > Hobbitonu u Kamo telefon od tog Hobbitona.
pascal.654 dejanr,
>> Kamo telefon od tog Hobbitona. Telefone svih (nama poznatih) BBS-ova imaš u datoteci NOVOSTI\SRBBS.TXT. Nije loše da je povremeno download-uješ, a inače traženi telefoni su 015-82-455 i 015-85-953 (ovaj drugi od 15-07)
pascal.655 vitez.koja,
#=> Imas uz poruku 6.178 tppcx.zip Skinuo sam pre neki dan nekakav tppcx iz stare pc.prog konferencije... ona objektna verzija. Elem, nece da radi... Cak i onaj njegov demo :(( (runpcx.pas)... samo proleti nekakva bela crtica preko ekrana, i nema vise :( Je'l zna neko sta je u pitanju ?
pascal.656 ssokorac,
─┼┤ until (nasao_sam=true) or (eof(dat)); until nasao_sam or eof(dat); Što se rametati zagradama? :) Inače, ona prethodna poruka je baš dobro došla, ne za definisanje sloga, već za menjanje :). Oduvek sam mislio da se const ne može menjati :).
pascal.657 bojanp,
*** new file *** R:\IBMPC\PASCAL\*.* ---------------------- dlgdsn zip 62754 Interaktivno kreiranje dijaloga za Turbo Vision ------------------------------------------------------------------------------ December 1, 1990 DLGDSN Version 1.0 A Dialogbox Design Program for Turbo Vision (C) Copyright 1990 by L. David Baldwin. All Rights Reserved. Further copyright information given below OVERVIEW DLGDSN takes some of the pain out of designing dialog boxes for Borland's new Turbo Vision package. With DLGDSN, dialog views can be easily added, edited, rearranged, and the dialogbox itself sized, moved, etc. Once the design is satisfactory, DLGDSN can produce source code to be included in your program or a resource file for use by your program. REQUIREMENTS Borland's Turbo Pascal(R) version 6.0 Some familiarity with the Turbo Vision package A mouse is desirable
pascal.659 mjova,
možda će zanimati one koji koriste BC++ 3.x i paskal: komandnom help sistemu (thelp) može se dodati pored dve datoteke (C, asm) i pas. obaška što je ovaj thelp bolji od ranijih ver, već to što se u memoriji zadržava samo jedno parče rezidentnog koda, a sve je tu! valjda će me neko razumeti, pospan sam ;)
pascal.660 janko,
> npr., a i notacija verzija 1.3.2 će ti odgovarati (seti se > Ukrasa:))). :) Sećam se. Još uvek je najbrži. Eh, ST... baš se nismo bili dugo čuli...
pascal.661 pedjak,
> Vidi se da nisi čestito ni probao tp 6.0 help. Pa i nisam se trudio :) > Shift-F1, RES, Enter i sve piše šta ti treba. Ako ti treba neka reč još > strelice i enter i tu je. E hvala, sledeći put ćem ovako. pedja
pascal.662 adzem,
> Skinuo sam pre neki dan nekakav tppcx iz stare pc.prog > konferencije... ona objektna verzija. Elem, nece da radi... Cak i > onaj njegov demo :(( (runpcx.pas)... samo proleti nekakva bela > crtica preko ekrana, i nema Kod mene radi bez problema. Proveri gde su ti BGI drajveri i upiši pravu putanju do njih (to je jedini problem koji sam ja imao).
pascal.663 peca.st,
!-> Videćeš u supiju 4 :). Daj ozbiljno! Ako neko nešto pametno i dobro napravi, zašto bi ga čuvao za sebe? Ako imaš stvarno to i lepo radi, zašto ga ne bi šiljnuo? Ti bi izgleda hteo da sa Sezama samo skupljaš informacije a ne i da ih šalješ! Pa ne može tako. Ajde ti to lepo pošalji ovde, da ne bi bilo mnogo diskusije! P e C a
pascal.664 peca.st,
!-> Imas uz poruku 6.178 tppcx.zip MA ZNAM! Ali tamo nema SOURCE! (po Morton Bensonu: source:=izvor, poreklo) TPPCX.zip već imam i lepo šljaka, al nema source. Imam i onaj opis PCXa, koji još i liči na nešto (za razliku od opisa gif i tiff), ali tamo imaju primeri u Cu, nema primer kako se pakuje i tako to... Daklem, imade li neko SOURCE za PCX!?!?!!?? P e C a
pascal.665 dr.grba,
>> jer je, najzad, i Borland "patuljak" prema Microsoftu, De, molim te, oduzmi MS-DOS i NJINJ na cas. Pokloni se doticnima i na trenutak ih stavi na stranu. Pa onda ponovi onu recenicu.
pascal.666 nbatocanin,
> I dalje ne vidim toliku razliku u odnosu na to da napraviš > procedure koje obavljaju neke osnovne operacije koje čine > tu nivelaciju, pa da ih pozivaš onim redom i uz one > dodatke koje zahteva svaka od firmi. Uh, teško mi je da objasnim na ovakvom primeru, ali ću ipak probati. Uzmimo jedan nešto prostiji primer. Potrebno je voditi evidenciju artikala u magacinu. Standardno rešenje je da to bude procedura koja ispiše tabelu artikala na ekran, a korisnik može pritiskom na F1, F2, ... da uradi neke operacije. Ovo se klasično rešava tako što se napravi jedna glavna procedura koja radi tabelarni pregled i za svaku opciju po jedna procedura koja je realizuje. Na primer: Magacin () Upis () Brisanje () Print () Problem je bio u održavanju više verzija, znači pitanje je šta staviti u deo zajednički za sve korisnike, a šta u specifičan deo. U startu, sve navedene procedure mogu ići u zajedničku biblioteku. E, onda neko zatraži još i funkciju XX (). Ako smo bili dovoljno naivni, nismo ovo predvideli i procedura MAGACIN se mora menjati tako da omogući realizaciju dodatne funkcije. U najboljem slučaju, glavna procedura će morati da ima još nekoliko parametara i pozivaće se ovako nekako: Magacin (HelpLinija, StaPozivati) uz napomenu da nisam sasvim siguran kako bi se drugi parametar realizovao u jezicima koji se čisto prevode (niz funkcija?). Ali, ajde. E, sad je potrebno promeniti u svim programima Magacin() u Magacin (P1, P2), što nije neki problem. Ali, sad neko treći traži drugačije parametre prikaza - znači izmenu procedure Magacin! Sad je jedino rešenje izmena procedure Magacin i beskonačno dodavanje novih parametara, uz stalnu izmenu *svih* programa: Magacin (HelpLinija, StaPozivati, KakoPrikazati, ...) Ako sad neko zatrazi promenu neke od ugrađenih funkcija, dovoljno je napisati novu proceduru koja realizuje tu opciju i promeniti parametre u pozivu procedure Magacin(). Tako će nova funkcija Upis() "pokriti" istoimenu funkciju iz biblioteke. Naravno, ova funkcija je sad u posebnom direktorijumu korisnika. Pazi sad: Pera video ovo kod Mike i oće i on ovu funkciju, ali pored stare, već postojeće! Kako god okreneš, sad nastupa haos: ili ćeš Peri kopirati Mikinu proceduru pod drugim imenom i tako sebe osuditi da paralelno radiš na dve *iste* procedure, ili ćeš dalje menjati sistem Magacin(). Na žalost, čini mi se da ovaj postupak nema kraja i da neminovno vodi narušavanju strukture programa. Štos sa OOP je što je to jednostavan sistem koji u startu ima rešenja za gornje probleme. Neću ni pominjati prednosti ako vam neko naruči program koji radi sa više magacina! > Dakle, argument će biti kada ga primeniš pa ti olakša posao, a to što > se u njega nadaš... to je samo "human nature" :) Evo konkretan primer: tabelarni pregled u Clipper-u. Baš bi voleo da vidim nešto bolje od DBEdit-a bez objekata, a DBEdit je mali deca prema TBrowse! A što se tiče primene, za sada ne koristim razne dodatke za OO proširenja zbog kasnijih problema kod novih verzija, inače... > "ovdašnji" programer mu kaže "ne, ne, morate da koristite > miša" na šta inženjer konstatuje "primitivan model", uzme > miša i počne da govori u njega :)) :))) A kako ovaj ne reaguje, konstatuje: "bože, ala je spor!" >>> ErrorBlock ({|| Greska(e) }) > > Znam da radi... samo, šta ćemo sa onim '1010 GOTO 100'? ErrorBlock ( { || Break() }) REPEAT BEGIN SEQUENCE Menu() ... END SEQUENCE END REPEAT E, ako sad kažeš da ovo nije to, biće to nizak udarac, jerbo Clipper nema GOTO ;) > Nema jednostavnijeg načina da se kontrolišu greške od ON ERROR > GOTO... ili ga bar ja nisam sreo :) Kako bi ti rešio ovo u Clipper-u? Pošto nema labela i GOTO, moralo bi postojati ovako nešto: ON ERROR ProcName() a to je potpuno isto što i ErrorBlock. > Nije? žudno da se u mom uputstvu poglavlje o tome zove > "Error Class" uz podnaslov "Provides objects containing > information about runtime errors"... Ma, to su bezveze stavili da impresioniraju mase :) Šta tu ima: kad se napravi greška, smeste se podaci o njoj u SLOG i pošalje proceduri koja obrađuje greške.
pascal.667 nbatocanin,
> Gde me nađe! > > I meni treba: Imao sam prilike da radim sa jednim takvim programom (ali ne za DOS) pre nekoliko godina i tada sam mislio: bože, kome ovo treba ;)
pascal.669 dejanr,
>> > jer je, najzad, i Borland "patuljak" prema Microsoftu, >> >> De, molim te, oduzmi MS-DOS i NJINJ na cas. Pokloni se doticnima i >> na trenutak ih stavi na stranu. >> >> Pa onda ponovi onu recenicu. Bojim se da nisam bio dovoljno jasan. Naime, ne mislim ja na značaj za ovaj svet, istoriju, vrednost programera i sve slično, nego na onu vulgarnu vrednost izraženu u dolarima. Vrednost akcije * Broj akcija = Vrednost firme. E po toj vrednosti je Borland patuljak prema Microsoftu, a za ostale vrednosti... uvek možemo da pričamo :) Inače, ja od Borlanda koristim Turbo Pascal, sa velikim zadovoljstvom. Od tekst procesora WordPerfect. Za poslovnu grafiku Harward Graphics. Dakle, nisam baš neki silni zavisnik od Microsofta... ali ih svejedno veoma cenim.
pascal.670 cubro,
Zamolio me covek da pitam ovde. Izgubio je source za TPU, pa ga interesuje kako da vrati (po meni nikako), ili barem da pogleda koje su procedure bili u njemu. Stvarno, zna li neko kako se moze iz TPU-a sto vise izvuci? Unapred hvala.
pascal.671 drpr,
-> until nasao_sam or eof(dat); -> -> Što se rametati zagradama? :) Pa ja ipak volim da se ogradim :)). Šalim se,tako sam nekako navikao i lakše čitam rođeni sors ako imam tako , za mene lepo, odvojeno a ako su ti višak nije frka da ih skineš , frka je kad ih je manjak :) -> Inače, ona prethodna poruka je baš dobro došla, ne za -> definisanje sloga, već za menjanje :). Oduvek sam mislio da -> se const ne može menjati :). Pa za običan const sam znao,dok sam za slog onako uz pomoć ide-a probao sve kombinacije koje su mi padale na pamet i dobio sam što sam želeo. Kad sam poruku poslao pitao sam dejanar da li sam izmislio "toplu vodu", a on mi reče da i jesam i nisam. U knjigama koje se dobiju uz paket to postoji ali većina ljudi to baš i ne zna tako da smo se odlučili da ostavimo i isplatilo se :) cope
pascal.672 stomic,
$ Kamo telefon od tog Hobbitona. 015 82 455 (2 nodes) i 015 85 953 (1 node), predstavi se kao Guest i ostavi informacije potrebne da bi postao član. Nazovi posle X časova, biće sve OK. Najbolje nazovi radnim danom prvi broj do 15h i verovatno će tu neko biti da te odma učlani :). ST.
pascal.673 stomic,
$ Ne verujem da ćeš ikako proći bez davanja source-a :) No Šta ;)??? Izvini, mlađi sam od tebe i sa manje iskustva, ali sigurno u timskom radu nećeš davati sors ostalima. $ Nije... ali je još manji problem napisati ih tamo gde je $ sam program. Naročito je nezgodno što sa tim DEF fajlom za $ svaku promenu treba i njega da jurim po disku. DEF fileovi se (obično) nalaze u jednom direktorijumu, kod JPI M2 postoje redirekcioni fajlovi, tako da nije potrebno navoditi put već samo ime DEF filea (kao i za sve ostale, OBJ, MOD,...). $ I jedan i drugi se učitaju za približno isto vreme koje $ teži nuli. Eh... Pa valjda se lakše krećeš u kraćem nego u dužem fajlu. Kada lepo napišeš modul, zaboraviš na sors i samo gledaš definicije. Sasvim logičan pristup. Koliko sam primetio u comp.lang.modula2 grupi sa UseNet-a većina se slaže da su DEF fajlovi vrlo lepa stvar :). ST.
pascal.674 ssokorac,
─┼┤ zašto bi ga čuvao za sebe? Ako imaš stvarno to i lepo ─┼┤ radi, zašto ga ne bi šiljnuo? Ma, stvar je upravo u tome da radi samo u mom slučaju, i da je baš zato brže, čim bi želeo da ga 'uopštim' na radi u svim situacijama vratio bih se na isto što je i put/getimage...
pascal.675 skoprivica,
│ Ako neko nesto pametno i dobro napravi, zasto bi ga cuvao za sebe? gluposti, da smo iole normalna zemlja, normalno je da bi cuvao za sebe, i jos zaradjivao na tome...
pascal.676 dejanr,
>> > Ne verujem da ćeš ikako proći bez davanja source-a :) No >> >> Šta ;)??? Izvini, mlađi sam od tebe i sa manje iskustva, ali sigurno >> u timskom radu nećeš davati sors ostalima. Verovatno mnogo zavisi od tima i od posla koji se radi. Ako radimo razne programe koji posle treba da postanu jedan paket, ostajući i nezavisni programi, pa svako radi po jedan, onda možda prođe i bez davanja source-a. Sa druge strane, ako se radi nešto što na kraju ispadne jedan .EXE, teško da će ići drugačije. Prvo, nema nekih naročitih razloga da se source čuva kao tajna, teško da ću raditi sa nekima u koje toliko ne verujem. Drugo, lepo bi bilo kad bi čovek mogao da napiše program, i kaže to je 101% ispravno. Onaj ko to uklapa u svoj program će naći da nešto ne valja, pa nešto ne odgovara, pa treba ići kroz debugger da se vidi šta se desilo, svašta treba. E sad, da jedan od drugog svaki čas tražimo takve izmene, neće da nam valja posao. Ovako, svako ima ceo source ali u principu "previše" ne petlja po tuđem delu programa, nego samo po nuždi nešto malo menja i posle prijavi šta je zabrljao ;) Ako to nešto znači, mislim da je u jednoj "pravoj" softverskoj firmi gotovo nezamislivo da source bude svojina jednog programera iz tima - obično je svojina "kuće" (koja programeru daje platu), pa mu ima pristup ko treba da ima pristup. Kada se radi o većim sistemima, sasvim je uobičajeno (premda ne i obavezno) da se source isporuči i kupcu programa. Što jes' jes', mi na taj stadijum postojanja softverskih firmi nismo došli :) >> Koliko sam primetio u comp.lang.modula2 grupi sa UseNet-a većina >> se slaže da su DEF fajlovi vrlo lepa stvar :). Svakako, ali ljudi tamo verovatno svi programiraju na Moduli, pa su je valjda i izabrali (pored ostalog) zato što im se .DEF fajlovi sviđaju. To ne znači da se i meni moraju sviđati :)
pascal.677 ssokorac,
─┼┤ Šta ;)??? Izvini, mlađi sam od tebe i sa manje iskustva, ali sigurno ─┼┤ u timskom radu nećeš davati sors ostalima. Ja sam mladji i od tebe :), ali mi se čini logičnim da daješ i source kada radiš timski sa nekim... Pa sigurno će tada rezultati biti mnogo bolji.
pascal.678 ssokorac,
─┼┤ Stvarno, zna li neko kako se moze iz TPU-a sto vise Ima u pascla direktorijumu tpumover koji daje spisak procedura i funkcija .tpu-a.
pascal.679 stomic,
$ davanja source-a. Sa druge strane, ako se radi nešto što $ na kraju ispadne jedan .EXE, teško da će ići drugačije. $ Prvo, nema nekih naročitih razloga da se source čuva kao $ tajna, teško da ću raditi Nisam mislio da se čuva kao tajna. Nego jednostavno, razvoj iole složenijih programa je dosta dug, tako da kad bi svi trošili vreme na upoznavanje sa sorsom ostalih, sve bi bilo prilično uzaludno. Npr. ja dobijem zadatak da razvijem menije, dialoge, ... (mada ovo u svakoj firmi postoji već razvijeno i standardizovano), ja ih napišem isporučim ti DEF (ili .H, .HPP, INT, ...) i OBJ file, i to je sve. Ako ne rade pravilno meniji, znači ja sam kriv i ja debbugiram svoj deo. $ svašta treba. E sad, da jedan od drugog svaki čas tražimo $ takve izmene, neće da nam valja posao. Ovako, svako ima $ ceo source ali u principu "previše" ne petlja po tuđem $ delu programa, nego samo po nuždi nešto malo menja i posle $ prijavi šta je zabrljao ;) Ako svako menja, tek onda neće ništa da ispadne :). Slažem se da jedan čovek mora imati ceo sors, ali ostali ne, njima samo treba DEF i ništa više. $ Ako to nešto znači, mislim da je u jednoj "pravoj" $ softverskoj firmi gotovo nezamislivo da source bude $ svojina jednog programera iz tima - obično je svojina $ "kuće" (koja programeru daje platu), Naravn (sorry, ako sam bio ne jasan). Sors je vlasništvo firme, ali tokom razvoja samo par osoba treba da interesuje ceo sors. $ Svakako, ali ljudi tamo verovatno svi programiraju na $ Moduli, pa su je valjda i izabrali (pored ostalog) zato $ što im se .DEF fajlovi sviđaju. To ne znači da se i meni $ moraju sviđati :) Naravno. Ne pokušavam niti želim da nametnem moje mišljenje (ukus?) :). ST.
pascal.680 stomic,
$ Ja sam mladji i od tebe :), ali mi se čini logičnim da $ daješ i source kada radiš timski sa nekim... Pa sigurno će $ tada rezultati biti mnogo bolji. žini mi se da smo isto godište (75, right?) :). Pa zar misliš da tim koji je razvijao Windows, OS/2, AutoCad međusobno razmenjivao ceo sors :). Ma daj, meni ovo deluje jako smešno, šta ostali misle? Ne mogu da 100% tvrdim, jer nemam tačne podatke, ali mi deluje jako logično :). ST.
pascal.681 dejanr,
>> Nego jednostavno, razvoj iole složenijih programa je dosta dug, >> tako da kad bi svi trošili vreme na upoznavanje sa sorsom ostalih, >> sve bi bilo prilično uzaludno. Npr. ja dobijem zadatak da razvijem >> menije, dialoge, ... (mada ovo u svakoj firmi postoji već razvijeno >> i standardizovano), ja ih napišem isporučim ti DEF (ili .H, .HPP, >> INT, ...) i OBJ file, i to je sve. Ako ne rade pravilno meniji, >> znači ja sam kriv i ja debbugiram svoj deo. Pa, ako ti sediš u susednoj sobi onda sam sklon da se složim :) Ako su neki veći problemi, zbilja bi morao da se kontaktira onaj koji je pisao program. Ali, ako je neka sitnica koja bi bila zgodno da je drugačija ili neki sitan bag, onda bi možda bilo lakše onome kome to treba da to na brzaka popravi ili promeni, nego da njemu stoji posao dok nađe tog "saradnika-krivca", pa onda dok on to ispravi, pošalje novu verziju itd...
pascal.682 miro,
ű>-- neki razvojni alat koji samo pazi kada sam menjao i kako ű> koju datoteku iz čitave gomile, i da po potrebi može da ű> generiše i n-x tu verziju, ako sad imam n-tu Kao što reče stomic, GNU RCS u i:\gnuish ű>-- neki dobar program koji analizira sadržaj dve tekst ű> datoteke, ume da ih uporedi u čemu se razlikuju, da daje Ovo je GNU diff, takođe u i:\gnuish U i:\gnuish ima još koješta:) Pozdrav, dragisha
pascal.683 skerl,
│ Stvarno, zna li neko kako se moze iz TPU-a sto vise │ izvuci? Unapred hvala. └───── r:\ibmpc\pascal\intrfc62.zip To je program za dump-ovanje tpu-ova. Doduse ne dobijes source ali ipak nesto izvuces. Pozdrav, Skerl.
pascal.684 dr.grba,
>> vulgarnu vrednost izrazenu u dolarima. Vrednost akcije * Broj akcija >> = Vrednost firme. E po toj vrednosti je Borland patuljak prema Microsoftu E, sad, sto jes', jes'. Al dzaba mu bogatstvo kad se umeljao onim sladoledom (((((: Pozdrav, dr ÔpŰa
pascal.685 dzakic,
>> Pa za običan const sam znao,dok sam za slog onako uz pomoć ide-a >> probao sve kombinacije koje su mi padale na pamet i dobio sam >> što sam želeo. Kad sam poruku poslao pitao sam dejanar da li >> sam izmislio "toplu vodu", a on mi reče da i jesam i nisam. Što ne posla ovo pre jedno godinu dana... ;) Imao sam ISTI problem i rešio sam ga na ISTI način - isprobavao šta da stavim a da se kompajler ne buni. I napipao. Sad zbtet koristi istu foru za snimanje statusa koju si ti opisao u prethodnoj poruci (samo sa blockread-om :). Međutim, nama je marker van strukture zato što se u exe snima redom tri takva rekorda. Tad se mora isključiti 'Word allign' podataka da bismo bili sigurni da je rekord odmah iza markera. Kad smo već kod tople vode, ne znam da li je poznato, ali ja sam tek pre par dana, kopajući po helpu, saznao kako da dobijem HANDLE neke datoteke otvorene iz paskala. Evo ovako: FileRec(f).Handle ps. Cope, meni je onaj tvoj primer jako nepregledan onako (ne)nazubljen. Jeste da to svako radi na svoj način, ali maaalo se potrudi :)
pascal.686 peca.st,
!-> gluposti, da smo iole normalna zemlja, !-> normalno je da bi cuvao za sebe, i jos !-> zaradjivao na tome... Zarađivao na jednoj proceduri? Pa nemoj da si smešan! U svetu se čitavi programi, velike vrednosti (seti se Scan-a, Zip-a, Arj-a, za početak) daju za džabe, a ti bi jednu proceduru naplaćivao? Bez veze. P e C a P.S. Ako je tako kako kažeš, koja je svrha ovakve konferencije?
pascal.687 spantic,
> Al dzaba mu bogatstvo kad se umeljao onim sladoledom > (((((: Pa šta misliš zašto on ostaje bogat, a oni kojima to smeta bogati ni ne postaju :))
pascal.688 stomic,
$ pisao program. Ali, ako je neka sitnica koja bi bila $ zgodno da je drugačija ili neki sitan bag, onda bi možda $ bilo lakše onome kome to treba da to na brzaka popravi ili $ promeni, nego da njemu stoji posao Najgori slučaj -- traženje sitnice u tuđem kodu, čak i ako je on dobro dokumentovan :). Nego, to je slučaj kada ja razvijam neki mali nezavisni deo od namene programa (interface, npr.). Šta ako ja radim neki malo veći deo, ne misliš valjda da prvo proučiš X hiljada linija da bi ispravio sitnicu. Ipak je brže da me 'nađeš' i ja to sredim, nego da upoznaješ moj deo koda. Druga velika opasnost, ako jedan programer iz tima koji broji stotinjak programera, menja jedan deo koji koriste i ostali, treba da pošalje novu verziju svima, pa nekome ne odgovara ta nova izmene, pa se verzije nagomilavaju, ... Ipak timski rad zahteva neku organizovanost, i postavljanje zahteva. Tj. ja ću moj deo tačno uraditi kako mi neko glavni naloži, tako da ti nema šta da se slažeš ili ne :). ST.
pascal.689 janko,
> sistem koji u startu ima rešenja za gornje probleme. Neću > ni pominjati prednosti ako vam neko naruči program koji > radi sa više magacina! Potpuno se slažem sa NB-om. Ovo je 'klasična' :) prednost postojanja klasa u nekom prog. jeziku, koju, nažalost, još uvek malo ovdašnjih diskutanata shvata.
pascal.690 janko,
> žini mi se da smo isto godište (75, right?) :). Pa zar > misliš da tim koji je razvijao Windows, OS/2, AutoCad > međusobno razmenjivao ceo sors :). Ma daj, meni ovo deluje > jako smešno, šta ostali misle? Ne mogu da 100% tvrdim, jer > nemam tačne podatke, ali mi deluje jako logično :). Sors je obično dostupan puno većem broju ljudi u firmi nego što ti misliš. Za razliku od Dejanovog shvatanja, onaj ko je zadužen za određen deo posla, NEMA pravo da menja tuđi deo koda, ali ima pravo da ga gleda, singl-stepuje kroz njega i sl. i da ukoliko zaključi da je kolega kriv, a ne on, da mu kuka! Što veća raširenost sorsa je izuzetno korisna otkrivanju bagova. U interesu svake firme je da da proizvod sa što manje bagova. Ako samo ti imaš pravo da gledaš u svoj sors, to ne bi na dobro ispalo. Ne samo da si obavezan da svima na uvid ostaviš svoj sors, nego, u firamama, nemaš pravo ni da izmišljaš svoj stil pisanja, već moraš da se držiš firminog. Npr. ako te ja držim u svojoj firmi, i kažem ti da se komantari u Paskal programu pišu sa (* i *) ti ne smaš da koristiš one vitičaste zagrade, inače ti neću 'primiti' program i ti nećeš dobiti platu. :) Takođe, ako se kaže u firmi da se radi sa MSC 5.1, ti ne smeš da radiš ni na čemu drugom. I za kraj: pošto si zaposlen u firmi, sav kod koji napišeš nije u tvom, već u firminom vlasništvu, i, ako te, na primer, otpuste i ti poneseš svoj kod i daš ga konkurentu, ima da te tuže da se pušiš!
pascal.691 ppekovic,
>> Pa zar misliš >> da tim koji je razvijao Windows, OS/2, AutoCad međusobno razmenjivao >> ceo sors :). Dakle, ti misliš da svaki programer uradi svoj posao za sebe, preda ga ostalima u obliku .obj fajla i gotovo? :) A šta ćeš sa sledećim situacijama: Programer se naljuti na firmu i ode. Programer je destruktivan tip i napravio je u svom delu programa da se u nekom (veoma retkom) slučaju dogodi nešto nevaljalo (igrala se deca). Programer je napravio trivijalnu grešku koja može da prouzrokuje veliku štetu, ali eto, on je sam pisao, krije source od drugih, pa to niko nije mogao da primeti. Svaki od programera u tim-u je napravio proceduru za skidanje blanko znakova sa početka i kraja stringa (trebalo čoveku). Dakle, imaš istu proceduru na x mesta. itd. itd. itd. itd. Paya P.S. Da ne bih kucao mora članova iz zakona o autorskim pravima, rizikovaću da izazovem zgražavanje nekog pravnika i reći ću ti da prava na program koji zaposleni programer napravi radeći za neku firmu ima ta firma a ne programer.
pascal.692 eagle,
Šta bi se desilo kad bih udario "setrgbpalette" na Ega monitoru, ili, još gore, na Herculesu? Uzgred, da li iko živi ima Ega?
pascal.694 skoprivica,
│ P.S. Ako je tako kako kazes, koja je svrha ovakve konferencije? Da se manemo filozofske rasprave, ako neko hoce nesto da posalje, poslace...
pascal.695 stomic,
$ Programer se naljuti na firmu i ode. Programer $ je destruktivan tip i napravio je u svom delu programa da $ se u nekom (veoma retkom) slučaju dogodi nešto nevaljalo $ (igrala se deca). Programer je napravio trivijalnu grešku $ koja može da prouzrokuje OK ubedili ste me (što je i valjda i cilj svake diskusije), ali ipak mislim da Dejan nije upravu (gde se i Janko slaže) da ne sme svako da menja deo tvog sorsa ako mu neki njegov deo ne odgovara. Thanx :). ST.
pascal.696 dejanr,
>> Evo konkretan primer: tabelarni pregled u Clipper-u. Baš bi voleo da >> vidim nešto bolje od DBEdit-a bez objekata, a DBEdit je mali deca >> prema TBrowse! Hmmm... ja nisam neki naročit stručnjak za Oracle, ali video sam neke njegove "tabelarne preglede", i dosta su mi lepo izgledali, ako ne bolje od tbrowse sigurno ne gore... a tamo (bar u toj verziji koju sam gledao, a to je bilo poodavno) nema objekata. Mogao bi se napraviti dbedit koji bi i dalje bio dbedit i bio bolji :) Što se tiče tbrowse-a, on je lepo i fleksibilno zamišljen, i ja ga (umereno) koristim, ali mi se čini da je prekomplikovan. Isto kao i Borlandovi programi za Windows - sve je to lepo i objektno, ali ne vidim da je išta prostije za upotrebu od ono "groznog" Windows SDK.
pascal.697 dejanr,
>> OK ubedili ste me (što je i valjda i cilj svake diskusije), ali >> ipak mislim da Dejan nije upravu (gde se i Janko slaže) da ne sme >> svako da menja deo tvog sorsa ako mu neki njegov deo ne odgovara. Verovatno ne sme, u smislu da ta promena "preživi zauvek". Ali ako mu treba nešto da ispita i testira (pa i da sugeriše u čemu bi bila greška)... zašto ne bi smeo?
pascal.698 vasic,
> Uzgred, da li iko živi ima Ega? Neki živi imaju VGA setovanu kao EGA i sve to priključeno na herkules/CGA monitor. Izgleda šašavo, ali mene više čćšžđ ne boli. :)
pascal.699 ssokorac,
─┼┤ žini mi se da smo isto godište (75, right?) :). Pa zar misliš 76 :). ─┼┤ da tim koji je razvijao Windows, OS/2, AutoCad međusobno razmenjivao ─┼┤ ceo sors :). Ma daj, meni ovo deluje jako smešno, šta ostali misle? Oni su ipak imali neke velike nezavisne delove, unutar kojih su verovatno i sors ramenjivali... Uostalom, svaka manja grupa bi sigurno bila bolje organizovana kad bi svako _tačno_ znao šta koji deo programa radi. Zamisli da te zovem svakih 15 minuta da te pitam 'a da li bi moglo ovako?','ajde dodaj i ovo' i sl. :)
pascal.700 drpr,
-> Što ne posla ovo pre jedno godinu dana... ;) Imao sam ISTI -> problem i rešio sam ga na ISTI način - isprobavao šta da -> stavim a da se kompajler ne buni. I napipao. Sad zbtet -> koristi istu foru za snimanje statusa koju si ti opisao u Eh , sad se pitam kako bih sve to rešio da ne postoji onaj lepi borlandov ide :)). Bodi bodi pa nabodi :)) -> ps. Cope, meni je onaj tvoj primer jako nepregledan onako -> (ne)nazubljen. Jeste da to svako radi na svoj način, ali -> maaalo se potrudi :) Pazi ovako: Bio ti ja u klubu i pričam ti ja sa mjovom i on mi predloži za snimanje parametara, ja naravno nisam znao da čitam C pa reko da me on nazove... i tako je počelo. Mjova mi objasni koliko je mogao a ja krenuo na posao i radi,traži , bodi i nađoh a pošto volim da sa ljudima delim stvari koje provalim ja reko:"Ajd da pošaljem na sezam pa da se "onesvestim"! " :))). E sad programje nazubljen koliko ga ja nazubljujem, ipak sors je mali, pa mislim da veoma lako može da se provali ideja , sve ostalo su nijanse :). Uf , ja se raspisao o glupostima u prog temi (sad će paya da me zvezdiči), elem čitamo se do nove ideje :) cope
pascal.701 drpr,
-> Programer se naljuti na firmu i ode. Programer -> je destruktivan tip i napravio je u svom delu programa da se Milo mi da vidim kad se moderator zanese pa zaluta, i piše po pogrešnim temama u rođenoj conf :))) cope
pascal.702 peca.st,
!-> Da se manemo filozofske rasprave, ako !-> neko hoce nesto da posalje, poslace... Pa sad kad ne znaš da odgovoriš na pitanje, onda ovako kreneš. Lako je tako. Ozbiljno pitam i voleo bih da mi se ozbiljno odgovori: koja je svrha ovakve konferencije, ako ne da razmenjujemo, iskustva, programe, potprograme, procedure i slično? Ako ćemo samo teoretisati o nekim načinima programiranja onda to ne vredi! Primeri su, meni se čini, mnogo bitniji! P e C a
pascal.703 predragd,
> Daklem, imade li neko SOURCE za PCX!?!?!!?? Uz neku knjigu o fraktalima stigla je i disketa sa programima na TP. Tu se nalazi i rutine za čitanje i snimanje .PCX fajlova, ali samo u 640x350 u 16 boja. Naravno nije problem prepraviti. Ako si zainteresovan javi. Peđa.
pascal.704 kresof,
> onda to ne vredi! Primeri su, meni se čini, mnogo bitniji! Jeste bitniji su u primerima može da se nađe ono što nema u literaturi:)). Ne znam pascal ali imam iskustva, veruj mi, e sad neka ti neko odgovori na to tvoje pitanje:). pozdrav, krešo
pascal.706 peca.st,
!-> Uz neku knjigu o fraktalima stigla je i !-> disketa sa programima na TP. Tu se nalazi !-> i rutine za čitanje i snimanje .PCX !-> fajlova, ali samo u 640x350 u 16 boja. !-> Naravno nije problem prepraviti. Ako si !-> zainteresovan javi. Zainteresovan sam i javljam! Ako ima source, stvarno nema frke prepraviti ga da radi i u drugim rez... Ja sada imam ono čudo što radi samo u 640 480 16, al mi treba za više, a nema source, pa ga zato tražim! Ajde okači to ovde ili na mail, pliiiiiiiz! P e C a P.S. Puno zahvalan, u napred!
pascal.707 stomic,
$ pisao program. Ali, ako je neka sitnica koja bi bila zgodno da je $ drugačija ili neki sitan bag, onda bi možda bilo lakše onome kome to $ treba da to na brzaka popravi ili promeni, nego da njemu stoji posao $ dok nađe tog "saradnika-krivca", pa onda dok on to ispravi, pošalje $ novu verziju itd... U ovoj poruci, koju si ostavio pre par dana kažeš, da NEKO DRUGI menja neki sitan bug ili nešto drugo ako mu odgovara... $ Verovatno ne sme, u smislu da ta promena "preživi zauvek". $ Ali ako mu treba nešto da ispita i testira (pa i da $ sugeriše u čemu bi bila greška)... zašto ne bi smeo? A sada kažeš da on sugeriše, tj. sada autor sorsa menja sam svoj sors, a ne NEKO DRUGI. Za ovo se slažem da bi smeo, ali ovo je MALO drugačije od tvoje prve formulacije. BTW, sećaš se kada si izneo da su procesi u M2, kao da su se deca igrala pravljenja operativnih sistema. Moguće, samo što onda deca kontrolišu Pariški Metro, a i sam znaš koliko je to siiiitna stvar ;). Jednostavno, kada je trebala da se uradi kontrola metroa, počeli su da rade u Adi sa njenim procesima, semaforima, ... Posle velikih komplikacija sa Adom, prešli su na Modulu-2 i završili posao ;). Mora da su deca bila genijalna ;) ST.
pascal.708 dejanr,
>> U ovoj poruci, koju si ostavio pre par dana kažeš, da NEKO DRUGI menja >> neki sitan bug ili nešto drugo ako mu odgovara... >> A sada kažeš da on sugeriše, tj. sada autor sorsa menja sam svoj >> sors, a ne NEKO DRUGI. Za ovo se slažem da bi smeo, ali ovo je MALO >> drugačije od tvoje prve formulacije. U oba slučaja sam hteo da kažem isto, nego se verovatno nisam dobro izrazio ili me ti nisi dobro shvatio. Dakle, da budem precizan, izmene u programu bi trebao da radi autor (ako je dostupan ;), ali ako se radi o nekoj sitnoj izmeni, ispravki ili probi, ne vidim zašto to ne bi mogao i bilo koji saradnik koji taj (pot)program poziva. >> BTW, sećaš se kada si izneo da su procesi u M2, kao da su se deca >> igrala pravljenja operativnih sistema. I jesu :) >> Moguće, samo što onda deca kontrolišu Pariški Metro, a i sam znaš >> koliko je to siiiitna stvar ;). Ma znam i sam koliko je Evropa uvek bila dekadentna :)))))
pascal.709 ndragan,
/ treba da pošalje novu verziju svima, pa nekome ne odgovara ta E tu ima slučajeva u kojima ne mora. U jezicima koji dozvoljavaju pozivanje rutine sa manjim brojem parametara od nazivnog, nove opcije u rutinu mogu da se dodaju tako da budu transparentne. Napravi se tako da radi kao i pre, osim ako se navede i dodatni parametar. Većina korisnika naknadno sazna za taj dodatni parametar, a koriste staru ili novu verziju, nije bitno. Kad stignu, upoznaju se sa novošću, pa ako im treba, koriste je, inače ne. Princip je da ne moraju ništa da menjaju u pozivima one rutine.
pascal.710 dr.grba,
>> a oni kojima to smeta bogati ni ne postaju :)) Da li si siguran u to? Pozdrav, dr ÔpŰa WARNING!!! ALL DATA ON DRIVE C: WILL BE LOST! Proceed? (Y)es (N)o problem (A)bsolutely (W)hy not (D)on't even ask
pascal.711 dr.grba,
>> Uzgred, da li iko zivi ima Ega? Vec sam se umorio od ponavljanja : Ja u firmi imam pravi EGA video podsistem. To sam zatekao kad sam dosao i sta je - tu je. Bese to jedna HONEYWELL XT sprava koja je zagrevala diskete na temperaturu palacinke, 20MB disk,... Od cele te prepotopije ostade samo EGA, jer sam uspeo lagano da promenim mama plocu, pa disk, pa flopi, pa drugi flopi, pa 2 MB, pa modem (((:, pa VGA zamalo, al' onda prestadose dotacije... I sve zato sto NIKAKO, (i slovima : nikako) nisam uspeo da izmanevrisem kupovinu jedne kompletne, zglavne masine. O, da, bio sam u prilici da menjam za Herkules... Epilog : oci me bole, imam 16 boja (bravo ja ): ), za YU slova sam izbunario resenja koja bolje da ne koristim itd. itd. A danas ne mogu da kupim za firmu ni 10 disketa... Ala ovo spada u ovu konferenciju, u andrak... ): U poslednje vreme, SEZAM mi sluzi kao rame za plakanje ): Pozdrav, dr ÔpŰa
pascal.713 ilazarevic,
> procedure i slično? Ako ćemo samo teoretisati o nekim načinima > programiranja onda to ne vredi! Primeri su, meni se čini, mnogo bitniji! Za teoriju postoji tema algoritmi, koja bi trebalo da se bavi time. Ako pričamo o Paskalu, onda razgovor uvek treba začiniti sorsom, tek da se nađe.
pascal.714 nbatocanin,
> video sam neke njegove "tabelarne preglede", i dosta su mi > lepo izgledali, ako ne bolje od tbrowse sigurno ne gore... Stvar je u principu: ne kažem da je TBrowse idealno realizovan (daleko od toga), ali teško mi je da zamislim bolju *konstrukciju* za tu namenu. Ali, bilo bi lepo da još neko opiše sistem koji služi za pregled tabela - možda dođemo do nečeg još kvalitetnijeg. U suštini, mislim da je problem održavanja više verzija izuzetno interesantan i da je svačije mišljenje dobrodošlo.
pascal.715 stomic,
$ verziju, nije bitno. Kad stignu, upoznaju se sa novošću, $ pa ako im treba, koriste je, inače ne. Princip je da ne $ moraju ništa da menjaju u pozivima one rutine. Da to je sve lepo, ali ne sme svako da menja tvoj sors. Ovo iznosim već jedno 10ti put ;). Nastaje prava konfuzija :). ST.
pascal.716 stomic,
$ o nekoj sitnoj izmeni, ispravki ili probi, ne vidim zašto $ to ne bi mogao i bilo koji saradnik koji taj (pot)program $ poziva. Opet isto :)... Nastaje totalna konfuzija, npr. nekoliko programera dobije jedan modul. Jedan od njih ispravi jednu sitnicu, drugi ništa ne dira, treći drugu sitnicu... Autor tog modula doda još nešto u međuvremenu i šta sada. Ovaj prvi opet ispravlja onu sitnicu (koja sada može da izazove grešku), treći opet... Deluje mi kao da se raspravljamo oko očiglednih stvari :). Zašto npr Revision Control System, kada uzmeš neku verziju modula iz biblioteke obavezno zaključa taj deo tako da niko drugi ne može da ispravlja nešto na tom istom modulu dok ti ne vratiš njega nazad. Mada eksplicitno vlasnik moža da otključa, ali ostali ne. $>> BTW, sećaš se kada si izneo da su procesi u M2, kao da $>> su se deca igrala pravljenja operativnih sistema. $ $ I jesu :) Prilično argumentovano kao i prošli put :). Naravno, ne očekujem da na nivou jezika bude rešen OS sa podelom resursa, i šta ti ja znam još čim. Ali za neke potrebe sasvim logično i lepo rešenje. BTW, zašto ste onda u Računarima izneli listing za procese u TP ;)? $>> Moguće, samo što onda deca kontrolišu Pariški Metro, a i $>> sam znaš koliko je to siiiitna stvar ;). $ $ Ma znam i sam koliko je Evropa uvek bila dekadentna :))))) Možda, ali da li hoćeš da kažeš da su ljudi koji su radili ovakav projekat loši programeri sa malo iskustva. Ne tvrdim da svaki dobar programer treba da radi na M2. Ali što se tiče procesa mislim da nisi u pravu. ST.
pascal.717 peca.st,
!-> Za teoriju postoji tema algoritmi, koja !-> bi trebalo da se bavi time. Ako pričamo o !-> Paskalu, onda razgovor uvek treba !-> začiniti sorsom, tek da se nađe. To sam i ja rekao! P e C a ??? vozio sam "stojadina". - 2 boda.
pascal.718 dejanr,
>> Opet isto :)... Nastaje totalna konfuzija, npr. nekoliko programera >> dobije jedan modul. Jedan od njih ispravi jednu sitnicu, drugi ništa >> ne dira, treći drugu sitnicu... Autor tog modula doda još nešto u >> međuvremenu i šta sada. Naravno da svako ko je "ispravio sitnicu" pošalje jedan mail autoru i kaže mu šta je ispravio i zašto, a autor to usvoji ili ne usvoji. Zapravo, ako prelistaš dokumentaciju uz MS Windows for Workgroups, videćeš da se na par (tj. ja sam video jedno, ali tamo je toliko cut&paste da garant ima još negde ;) mesta pominje kako je MAIL jako zgodan da nekome pošaljete parče njegovog programa koje ste promenili, a on onda sve te promene slaže u jedan folder itd, itd. Nešto bih rekao da u Microsoftu baš tako rade (valjda odatle dolaze svi oni bugovi u Windows-u ;)) Kada bi te višestruke i paralelne promene bile u računarstvu nemoguće, slikali bismo se za rad pod mrežom :) Zašto nešto menjati sekvencijalno kada se bolje performanse postižu (dobrrrro planiranim ;) paralelnim procesiranjem? :) >> BTW, zašto ste onda u Računarima izneli listing za procese u TP ;)? Budi siguran, ne zato što sam ja to predložio ;) >> Možda, ali da li hoćeš da kažeš da su ljudi koji su radili ovakav >> projekat loši programeri sa malo iskustva. Ako su napravili metro i ako to dobro radi, onda su valjda dobri programeri i obrnuto :) Po meni, Ada je "tata roditelj" za te stvari sa procesima, ali valjda nisu imali potrebe za njenim mogućnostima, pa uradili na Moduli. Dok su njihovi poslodavci zadovoljni, i ja sam, tim pre što ne moram da se vozim tim metroom ;)
pascal.719 ndragan,
/ Svaki od programera u tim-u je Hm, ako je skraćenica, onda je verovatno TIM; ako si mislio na engleski prevod reči 'zaprega', onda se to piše _team_, a pošto se kod nas menja kroz padeže kao naša reč (do ovog zaključka smo došli teamskim workom), onda je 'u timu' ili 'in the team'; eventualnu decu nastalu iz ljubavi između ove dve verzije ne priznajem za našu niti nameravam da namirujem njihove račune.
pascal.720 macak,
Xaj! Imam jedan problemcic. Budzio sam neki program koji izmedju ostalog cita scan kod tastature i u zavisnosti koji je kod, odnosno, koji je taster pritisnut vrsi neku radnju. E sad, ja sam za to koristio PORT[$60] iz paskala i koji na mom i drugim AT racunarima radi OK (provereno bez greske !). Medjutim, program treba da radi na jednom XT-u (8088, XT tastatura). Problem je u tome program na njemu nece ni da MRDNE! :( Mene interesuje da li su uopste scan kodovi na AT i XT masini jednaki (mislim na ENTER, slova i funkcijski taster F1, kao i na kursorske tastere ->(ovi poslednji verovatno nisu :) )) ? Probao sam program u paskalu koji izgleda otprilike ovako: uses dos; var q : integer; r : registers; begin while q<>1 do begin r.ah:=$0c; r.al:=8; intr($21,r); q:=port[$60]; writeln(Q); end; end. i ovo programce izbacuje samo 0 (nule! :( ). Ponekad izleti koji broj ,ali bilo sta da pritisnem na tastaturi - nula! Mene interesuje da li uopste PORT[$60] "radi" na XT-u i da li postoji neki "zaobilazni" put da procitam koji je scan kod (mozda interrupt 16, AH=0 ) ??? Da li sve to za visi i od masine ne kojoj radi (sta bi sa kojekakvim kompatibilnostima) ili sam se ja negde gadno zeznuo? Ljudi , pomagajte!
pascal.721 eagle,
> da li postoji neki "zaobilazni" put da procitam koji > je scan kod (mozda interrupt 16, AH=0 ) ??? Ti si odgovorio sam sebi :) Dakle AH=00h, pozivaš 16h, i dobijaš u AH scan kod, a u AL ascii kod. Inače, ja bih to radio sa prekidom 09h( izvrši se svaki put kada pritisneš neki taster), koji pali i za XT i za AT. ) ( < E > ) (
pascal.722 peca.st,
!-> Mene interesuje da li su uopste scan !-> kodovi na AT i XT masini jednaki (mislim !-> na ENTER, slova i funkcijski Pa znaš da na zadnjem delu tastature imaš onaj svič za XT i AT tastaturu, to može da bude problem... P e C a ??? vozio sam "stojadina" - 2 boda.
pascal.723 dzakic,
>> q:=port[$60]; Na XT-u se ta vrednost na portu zadržava samo neko jako kratko vreme nakon generisanja interapta 9, dok na AT-u ostaje i duže pa se može naknadno sa port[$60] čitati scan kod poslednjeg pritisnutog tastera. Dakle, nakači se na int 9... Pozdrav, Zak
pascal.724 ilazarevic,
> je scan kod (mozda interrupt 16, AH=0 ) ??? Ja radim ovako: regs.ah:=$10; intr($16,regs); Vraća u AH scan code, a u AL ascii code. žini mi se da ovo radi samo na enhanced tastaturama. Na običnim je AH=0, a rezultat ide u iste registre kao kod prethodnog primera.
pascal.725 ilazarevic,
Problem: Kako da "presretnem" grešku na PRN izlazu? Recimo, ja hoću da štampam a štampač nije uključen - dolazi do rantajm greške, što se meni ni malo ne sviđa :( Hteo bih da je nekako skinem, pa da onda objasnim blesavom korisniku koji nije kresnuo štampač da to mora da se uradi PRVO :) Thanx in advance!
pascal.726 drpr,
-> Problem: Kako da "presretnem" grešku na PRN izlazu? Recimo, -> ja hoću da štampam a štampač nije uključen - dolazi do -> rantajm greške, što se meni ni malo ne sviđa :( Hteo bih da -> je nekako skinem, pa da onda objasnim blesavom Isto kao i datoteke :) {$I-} write(lst,' '); if ioresult<>0 then writeln('A mogao bi da pripremiš štampač ;)') else begin writeln('Bravo, znaš i štampač da uključiš,'); writeln('a, bogami i papir da uvučeš ;))') end {I+}
pascal.727 macak,
Thanx to all!!!
pascal.728 isekulovic,
>> Mislim da u nazivu programa treba staviti ekstenziju. Usput >> dužina naziva ne sme biti duža od 4 slova. Programa? Ako misliš na naziv fonta, ne pomaže. Da naziv je dugačak 4 slova.
pascal.729 isekulovic,
>> Ne znam da li je to sada u kucanju, ali moraš i u drugom redu moj_font >> :), a verovatnija greška je da nisi bio u direktorijumu sa .chr >> fajlom. Da u pitanju je greška u kucanju. A što se tiče ovog drugog nije to u pitanju. Pitanje ostaje i dalje otvoreno. Zašto, iako mi ne javlja grešku prilikom instalacije fonta, neće da piše mojim fontom? A oće da piše ako programu odvalim kao litt.chr. ivan ps izvinjuvam se na vremenskoj disntaci ali imao sam malecnu nesreću pa nisam mogao da se javljam 10 dana.
pascal.730 zamahajev,
Na TIM 011 imam Borlandov turbo pascal 2.0 koji je rađen za op.sistem CP/M. Da li neko ima iskustva u radu sa ovim jezikom, spisak svih naredbi ili uputstvo za upotrebu. Ako neko ima :))))) sličnu verziju za MS DOS neka mi se javi. Naime hteo bih da sledeće školske godine predajem đacima pascan na TIM-ovima, a nemam previše vremena da eksperimentišem na TIM-u. HH Pozdrav 3AMAXAJEB B.
pascal.731 ivans,
* Na TIM 011 imam Borlandov turbo pascal 2.0 koji je rađen * za op.sistem CP/M. Da li neko ima iskustva u radu sa ovim * jezikom, spisak svih naredbi ili uputstvo za upotrebu. Imam *debelo* iskustvo u radu s njim, ali nemam uputstvo. Uputstvo koje sam ja koristio bilo je za TP 3.0, mada se bez problema moglo koristiti i za 2.0 - u njemu je opisana verzija i za CP/M i za MS DOS. Kako doći do uputstva? Idi u Matematičku gimnaziju (Narodnog fronta 37, telefoni, ako nisu menjani, su 681-721 i 641-378), potraži Nevenku Spalević, prenesi joj moje pozdrave, čestitku za Dan žena i želju da mi telefonira. Mislim da bi ona mogla da ti pozajmi uputstvo... Ako nešto imaš da pitaš - pitaj me ovde, ili, bolje, mailom. Takođe, još je po ovom pitanju MNOGO kompetentniji Ljubiša Gavrilović (GWW. na Sezamu), pa neka ti on pomogne... ako hoće i ako je još na Sezamu. Inače, možda bi te zainteresovalo, svojevremeno sam bio razvijao rutine za, između ostalog, korisnički interfejs za TIM-011. Rado bih ti ih poslao, međutim Anadisk ipak ne ume da pročita TIMove diskete... Doduše, ni dva TIM-a ne moraju da bez greške čitaju istu disketu, valjda to znaš :( ... Ako ti je nešto potrebno, obrati mi se mailom, pa da vidimo... Pozdrav, Ivans. P.S. Dok sam još bio u MG-u razvio sam za neku elektromašinsku školu iz Zemuna font sa francuskim slovima... Baš me zanima koristi li se to još uvek...
pascal.732 drmarke,
> ne sviđa :( Hteo bih da je nekako skinem, pa da onda > objasnim blesavĚm korisniku koji nije kresnuo štampač da > to mora da se uradi PRVO :) Iz pascala možeš da se vrtiš u petlji dok IOresult ne bude ok, a ako baš hoćeš da znaš šta mu fali koristiš int 17h ah=02h, dx=br porta (0=lpt1...), a kao izlaz u ah dobijaš status i to bit-mapirano: bit 7 štampač nije zauzet 6 štampač spreman za prij│m podataka 5 kraj papira 4 štampač selektovan ? 3 greška IO 2 1 0 štampač na time out-u Nije reklama ali bi bilo dobro nabaviti knjigu PC-ROM BIOS žaslava Dinića gde ovakve stvari pišu na srpskom ili malo pogledati u onim fajlovima o svim interuptima na Sezamu. Znam da nije baš čist Pascal ali u verziji 6.0 se može baratati i asm kodom. Pozdrav DrMarke
pascal.733 darone,
>> Ako nešto imaš da pitaš - pitaj me ovde, ili, >> bolje, mailom. Takođe, još je po ovom pitanju >> MNOGO kompetentniji Ljubiša Gavrilović (GWW. na >> Sezamu), pa neka ti on pomogne... ako hoće i ako >> je još na Sezamu. Nije, odavno. darone
pascal.734 dejanr,
>> Takođe, još je po ovom pitanju >> MNOGO kompetentniji Ljubiša Gavrilović (GWW. na >> Sezamu), pa neka ti on pomogne... ako hoće i ako >> je još na Sezamu. Ljuba je u inostranstvu, ima tome skoro godina dana.
pascal.735 dejanr,
========== borland/turbo.pascal #6625, from s.scott, 401 chars, Mon Mar 1 22:05:34 1993 Comment(s). ---------- TITLE: DPMI Seg() Question My code for obtaining the login name of the current user from Novell does not work when compiled in DPMI mode. I'm guessing that the section of code that puts the Seg and Ofs of the "request" and "reply" buffers is not working the same under DPMI. So, how do I put these values into a TRegister and pass it to Intr$(21)? Is this valid?: Treg.ES:=Seg(Reply_Buffer); ========== borland/turbo.pascal #6627, from abailey, 763 chars, Mon Mar 1 22:55:10 1993 Comment to 6625. ---------- This is not a simple thing to do. To use Novell calls, which are strictly real mode, that use pointers to buffers, you first have to use GlobalDosAlloc to create a buffer in real memory. It will return pointers for both real and protected mode. You can't put a real pointer into the segment registers in protected mode, so you have to use DPMI's Simulate Real Mode Interrupt call which is not provided by Borland. You'll need to get the DPMI spec which can probably be found in the Microsoft section. Once it's done you can access the buffer with the protected mode pointer. Then release the mem with GlobalDosFree. Compuserve had a protected mode API interface for Novell in the BPascal forum which could give you examples. It might also be here. >>>ALB<<<
pascal.736 ivans,
Pogrešan reply :) Deluje simpatično kada to uradi SysAdm :) *** Odgovor i na 6.733, Darone *** * Ljuba je u inostranstvu, ima tome skoro godina dana. Nisam to znao. Pametan je čovek, a uz to još i sposoban. Dakle, ostajem jedino ja, i eventualno (još bolje!) neko iz Pupina, ako ima takvih... Pozdrav, Ivans.
pascal.737 ilazarevic,
> Isto kao i datoteke :) Setio sam se pola sata posle slanja poruke :) Ipak, hvala na savetu.
pascal.738 eagle,
> Nije reklama ali bi bilo dobro nabaviti knjigu PC-ROM BIOS > žaslava Dinića gde ovakve stvari pišu na srpskom ili malo Apsolutno!!!!!! ) ( < E > ) (
pascal.739 eagle,
Evo ovako: Interesuje me kako mogu da eksploatišem modove(valjda se tako zovu) napravljene u Modedit-u, tj. one datoteke sa ekstenzijom MOD. Ako neko ima neki source, ili opis MOD fajla, bio bih mu zahvalan... ) ( < E > ) (
pascal.740 drmarke,
> javi. Naime hteo bih da sledeće školske godine predajem > đacima pascan na TIM-ovima, a nemam previše vremena da > eksperimentišem na TIM-u. Svaka čast kolega!! Mi u VI gim. to već radimo. Što se tiče uputstva nemam ga, ali je prost za provaljivanje. Poslaću ti za neki dan ako mi proradi zmodem ul moje predavanje pa se dalje sam snalazi. Od komandi uglavnom radi sve što je radilo na starim pascalima (nema unit-e, pa je clrscr uvek tu). Odmah zaboravi na pokazivače i rekurziju a ostalo može. Pri rekurziji ima bugčinu, naime lepo trpa adrese povratka na stek, ali lokalne promenljive jednostavno zaboravi da stavi (luda zabava). Pozdrav DrMarke upp.zip
pascal.741 melev,
H E L P !!! Zanima me da li je moguce ispisivati tekst u grafickom modu vertikalno (ali ne odozdo na gore nego odozgo na dole)? Ja sam pokusavao sa SetTextStyle(DefaultFont,VertDir,Size) a tekst ispisujem sa OutTextXY(x,y,Text) Koristeci ovo ispisuje se samo odozdo na gore sto meni ne treba. Primetio sam da ne mogu da se koriste drugi fontovi kao recimo GothicFont... Melev
pascal.742 darone,
>> * Ljuba je u inostranstvu, ima tome skoro godina >> * dana. >> >> Nisam to znao. Pametan je čovek, a uz to još i >> sposoban. Zato je i otišao. darone
pascal.743 zamahajev,
Zahvaljujem se na pril .I
pascal.744 zamahajev,
Poštovani kolega, Zahvaljujem se za odgovor i željno očekujem vaša predavanja. Nadam se da će mi pomoći. Već sam na osnovu grafičko demo programa u potpunosti savladao grafiku i zvuk i naravno najosnovnije naredbe. Voleo bih, ako imate dobre volje da kasnije dođem do vas i presnimim programe koje ste radili. Uzgred kako stojite sa ostalim paketima programa za TIM. Prvenstveno me interesuje dBASE II, jer ću možda biti prinuđen i njega da radim na TIMu. Pozdrav B.3AMAXAJEB
pascal.745 vvelisavljev,
> Isto kao i datoteke :) Ovo kod mene radi samo ako je uključen štampač. Znači kad je isključen štampač Ioresult bude 0 kao da je sve OK. :(
pascal.746 peca.st,
!-> Zanima me da li je moguce ispisivati !-> tekst u grafickom modu vertikalno (ali ne !-> odozdo na gore nego odozgo na dole)? pa napravi proceduru. :) evo ovako: (kucam bez provere, tako da ne zameri na ev. greškama) procedure ispisi_bre_uspravno(x,y:integer;s:string); var i:integer; razmak:byte; begin razmak:=50; šovde stavi kolko vec hoces da ti bude izmedju dva slovać for i:=1 to length(s) do outtextxy(x,y+i*razmak,sŠiĆ); end; jednostavno, zar ne? P e C a
pascal.747 drmarke,
> i zvuk i naravno najosnovnije naredbe. Voleo bih, ako > imate dobre volje da kasnije dođem do vas i presnimim > programe koje ste radili. Na žalost od programa i nemam baš neku zbirku, jer su to uglavnom radili klinci, a neke diskete su stradale (blago rečeno sažvakane su). Ja se doduše više bavim PC-om, ali nema problema, uvek sam spreman na saradnju. > Uzgred kako stojite sa ostalim > paketima programa za TIM. Prvenstveno me interesuje dBASE > II, jer ću možda biti prinuđen i njega da radim na TIMu. Pa ovako za TIM imam sledeće pakete: GBASIC, Pascal, Fortran Nevada (čitati: ne valja), Cobol (?), dBASE II, neke igre, testove inteligencije, testove vožnje (GSB škola), i možda bi se našlo još po nešto.... Pozdrav DrMarke
pascal.748 drmarke,
> jednostavno, zar ne? Pa nisam baš ubeđen da je čovek to hteo. Ovo tvoje piše ovako: P E C A a on je valjda hteo da mu i slova budu zarotirana za PI/2 u negativnom matematičkom smeru. Ili možda grešim? Pozdrav DrMarke
pascal.749 peca.st,
!-> for i:=1 to length(s) do !-> outtextxy(x,y+i*razmak,sŠiĆ); hm, sad vidim da bi bolje bilo ovako: for i:=1 to length(s) do outtextxy(x,y+(i-1)*razmak,sŠiĆ); mada i onako radi, ali ne počne ispis od one pozicije koje si naveo, nego za RAZMAK niže... Peđa.
pascal.750 ndragan,
/ Da to je sve lepo, ali ne sme svako da menja tvoj sors. Ovo Za krupnije stvari, svakako da ne sme. Za sitnije i/ili kozmetičke izmene, lokalna kopija pod drugim imenom i stavljanje autoru na znanje. E kad ta kopija proradi bolje od originala, vreme je da se zameni. Ono o čemu sam ja govorio u prvoj poruci je, recimo, rutina za zalivanje cveća, koja traži dva parametra - količinu vode i mesto gde se nalazi cveće. Autor (ili neko ko sme to da radi) doda treći parametar, recimo spisak dodataka (substral itd). Ako će rutina 100% emulirati prethodnu verziju kad se pozove sa dva parametra, a raditi dodatni posao kad se pozove sa tri, to je to. Svi stari programi će raditi, čak i ako se u njih ubaci nova verzija, a u novim se pojavljuje nova mogućnost.
pascal.751 ssokorac,
─┼┤ OutTextXY(x,y,Text) function inverzno(tx:string):string; var t:byte; pom:string; begin pom:=''; for t:=length(tx) downto 1 do pom:=pom+txŠtĆ; inverzno:=pom end; OutTextXY(x,y,inverzno(text)); Možda postoji i drugi način, ali ovako je sigurno najjednostavnije :).
pascal.752 eagle,
> Zanima me da li je moguce ispisivati tekst u grafickom modu > vertikalno (ali ne odozdo na gore nego odozgo na dole)? > Ja sam pokusavao sa Pitanje i nije baš jasno. Pretpostavljam da si mislio da slova okrenuta na desno, okreneš na levo (ili beše obrnuto?). Ja mislim da to može samo ovako: Ako radiš u modu sa više strana, ispišeš tekst sa Vertdir na strani koju ne koristiš. Prethodno napraviš proceduru koja ti određenu površinu preslikava preko vertikalne linije(osa simetrije), koja je levo ili desno od te površine(dela ekrana), i preslikaš taj tekst. Onda ga uzmeš sa Getimage, i staviš tamo gde ti treba.. that's all. A ako imaš samo jednu stranu, neće izgledati baš lepo, jer je jaaaakoooo sporo. ) ( < E > ) (
pascal.753 eagle,
YO! Zanima me kako mogu da koristim EXE datoteku, bez da je stalno startujem sa diska, ako je tako nešto uopšte moguće..
pascal.754 ilazarevic,
> Iz pascala možeš da se vrtiš u petlji dok IOresult ne bude ok, > a ako baš hoćeš da znaš šta mu fali koristiš int 17h ah=02h, > dx=br porta (0=lpt1...), a kao izlaz u ah dobijaš status i to Ovo je već mnogo zgodnije, zato što meni treba baš tačna informacija o stanju štampača, a ne odokativna procena. Hvala...
pascal.755 janko,
> Uzgred kako stojite sa ostalim paketima programa za TIM. > Prvenstveno me interesuje dBASE II, jer ću možda biti > prinuđen i njega da radim na TIMu. Ovo sa TIM-om me podseti da pitam: Voleo bih da nađem nekog ko ima ASEMBLER i što bolji DISASEMBLER za Z80, a, po mogućstvu, i simbolički dibager za Z80. ? Pretpostavljam da neko još čuva negde omiljene mu CP/M programe, pa mi ne bi smetalo takvo rešenje, jer sam skinuo odnekud (odavde?) CP/M emulator za PC zvani Z80MU. A nekad davno radio sam intenzivno na CP/M-u: Wordstar, dBase II, Turbo Paskal (ne sećam se koja verzija, ali se sećam da je pitao, svaki put kada se staruje, da li da učita i fajl sa tekstovima poruka o greškama :), ASM za 8080... E da, ako neko ima nešto specijalno za PC, ali da radi 100% (imam jedan disasembler za Z80 za PC, ali se, jednostavno, 'zamrzne' kada mu gurnem fajl koji hoću da disasembliram) i tako nešto je dobrodošlo.
pascal.756 vitez.koja,
#=> ne treba. Primetio sam da ne mogu da se koriste drugi #=> fontovi kao recimo GothicFont... ?! Koliko ja znam moze, i to bez problema...
pascal.757 pedjak,
> Evo ovako: Interesuje me kako mogu da eksploatišem modove(valjda se > tako zovu) napravljene u Modedit-u, tj. one datoteke sa ekstenzijom MOD. > Ako neko ima neki source, ili opis MOD fajla, bio bih mu zahvalan... Skoro je neko u ovoj temi poslao source za sviranje .MOD fajlova. Pogledaj malko unazad.
pascal.758 nbatocanin,
> ??? vozio sam "stojadina". - 2 boda. Ajde što voziš stojadina, al' što repliciraš meni na poruku koju nisam ja napisao... :)
pascal.759 peca.st,
!-> a on je valjda hteo da mu i slova budu !-> zarotirana za PI/2 u negativnom !-> matematičkom smeru. Ili možda grešim? možda stvarno nisam dobro razumeo, ali ovo što ti kažeš se dobija sa vertdir... Peđa.
pascal.760 skerl,
╔═════════════════════════════════════════════════════════════════════════╗ ║ MouseLib ║ ║ initial release, Loewy Ron, Feb 90. ║ ║ second release, written by Loewy Ron, AUG 90. ║ ║ Third release, TP6.0 asm support, LR Jan 91. ║ ║ Fourth release, added functions, LR May 91. ║ ║ Fifth release, added intercept, release functions, Jun 91. ║ ║ 6.th Release - Better Docs., Test Sample Program. ║ ║ 7.th Release - Support for BP7 DPMI mode. ║ ║ 8.th Release - Support VGA true text cursor, help database. ║ ╚═════════════════════════════════════════════════════════════════════════╝ mouseLib documentation file : mouseLib.doc, rel 8.0. last update : Feb. 23, 1993, LR. Whats new --------- V8.0 - Supports VGA true cursor. Use setVGATextGraphicCursor before initMouse. - MouseTST program, operates now with true (graphic) VGA text cursor. - Added the tpDESQ and video support units. - Added the mouselib help database, and the help RL HLPDK help engine. V7.0 - Support for BP7 DPMI mode - corrected the graphics mode detection to work with DPMI mode. - Improved MOUSETST program includes sample to event handler code. V6.0 - Added better documentation in MOUSELIB.PAS source. - Added A Simple Sample program - MOUSETST.PAS. - From this version mouseLib is distributed by ISoft D&M, P.O.B 5517, Coralville IA 52241, U.S.A Introduction ------------ mouseLib is a Turbo (Borland) Pascal 6.0/7.0 mouse support unit, designed to provide event driven mouse support, using a standard (default) event handling mechanism. The unit includes all of the normal mouse library functions, (show, hide cursor, define tresh- hold, detect mouse etc..). mouseLib was used for over 3 years now, with many programs and products written by the author, and other programmers. Several mouseLib based packages are distributed by ISoft D&M, and can be downloaded for evaluation from BBSes around the world. Pozdrav, Skerl.
pascal.761 bulaja,
> ** Uz poruku 'mouslib8.zip' (191267 bytes) Hvala, prebaceno u \ibmpc\PASCAL dir. Btw arhiva sa ovom verzijom je znatno duza od stare (191 prema 43 Kb) zbog tog HelpEngine koji su ubacili.
pascal.762 ssokorac,
─┼┤ Ovo kod mene radi samo ako je uključen štampač. Znači kad je ─┼┤ isključen štampač Ioresult bude 0 kao da je sve OK. :( Kod mene je ioresult<>0 kada je isključen štampač... Možda nešto nisi ok uradio?
pascal.763 melev,
║ Pa nisam baš ubeđen da je čovek to hteo. ║ Ovo tvoje piše ovako: ║ P ║ E ║ C ║ A ║ a on je valjda hteo da mu i slova budu zarotirana za PI/2 u ║ negativnom matematičkom smeru. Ili možda grešim? Upravo na to sam mislio, da tekst (jednu rec) rotiram za PI/2 udesno. Vidim da me ostali nisu razumeli, ali to je verovatno zato sto ja nisam lepo objasnio sta mi traba. Hvala svima koji su mi odgovorili, i opet postavljem pitanje da li je ovako nesto moguce. Nadam se da je sada jasno sta i treba. pozdrav......... Melev
pascal.764 dejanr,
U direktorijumu IBMPC\PASCAL je obećani LOGON.ZIP, source u TP-u koji omogućava logovanje na Novell mrežu pod kontrolom vašeg programa. Podržava kriptografisanje lozinke i rad sa više servera. Program je, što je malo čudno obzirom da je nastao krajem '92, pisan u nekom antičkom Turbo Pascalu (3.0?) koji je pravio COM a ne EXE fajlove (?). Međutim, dosta se lako da prepraviti na TP 6.0 (ili 5.5), dosta je na početku staviti USES DOS i naći opis RegsType pa ono što tamo piše zameniti sa RegsType: Registers.
pascal.766 eagle,
> možda stvarno nisam dobro razumeo, ali ovo što ti kažeš se > dobija sa vertdir... On i hoće Vertdir, ali na suprotnu stranu.. > Peđa. Gde nestade PeCa!? ) ( < E > ) (
pascal.767 peca.st,
!-> Hvala svima koji su mi odgovorili, i opet !-> postavljem pitanje da li je ovako nesto !-> moguce. Nadam se da je sada jasno sta i !-> treba. Da sad je jasno... Sori na pogrešnoj informaciji... A ovo što hoćeš, nećeš moći bez simetričnog preslikavanja... Znači, prvo uradiš ono što je rekao ss-ovac, pa onda preslikavaš u odnosu na vertikalnu simetralu... Drugačije ne može, a ovo sporo radi... Šta ćeš. Peđa. P.S. Još jedno moguće rešenje: da onim font editorom nekako, pojma nemam kako preslikaš fontove, pa ih onda snimiš.
pascal.769 skerl,
----------------------------------------------------------------------- Sally Tpu Peephole Optimizer version 1,00 Morten Welinder February 1993 ----------------------------------------------------------------------- 1. Welcome Welcome to Sally Tpu Peephole Optimizer, Spo. This program lets you produce faster programs with Borland Pascal version 7.0 by optimizing the intermidiate code produced by that compiler. Only real mode target units are handled; I don't know the internals of protected mode units and I don't really care. As a special bonus of using this program, the longint shift bug in the runtime library will be eliminated. Some optimized versions of Turbo.Tpl can be obtained. These can be used together with Spo but they are not worth the while. They simply cannot compete with removing the overhead of far calls and returns. Pozdrav, Skerl. spo100.zip
pascal.770 mikeli,
Help ! Zna li ko kako se prave skrolovi texta iz pascala ? Pomagajte ! Pozdrav.Mikeli :)
pascal.771 drmarke,
> Help ! Zna li ko kako se prave skrolovi texta iz pascala ? Ajde malo objasni šta hoćeš da radiš! Šta ti podrazumevaš pod skrolom teksta? jel hoćeš prozor sa extom da vozaš po ekranu ili ti je tekst širi od ekrana pa hoćeš da se šetaš po susednim ekranima ili..... Nemoj da si škrt na rečima ako želiš da dobiješ pravi odgovor. :) Pozdrav DrMarke
pascal.772 isekulovic,
>> Upravo na to sam mislio, da tekst (jednu rec) rotiram za PI/2 udesno. >> Vidim da me ostali nisu razumeli, ali to je verovatno zato sto ja >> nisam lepo objasnio sta mi traba. >> Hvala svima koji su mi odgovorili, i opet postavljem pitanje da li je >> ovako nesto moguce. Nadam se da je sada jasno sta i treba. žekaj ako ti treba P E C A imaš pecinu proceduru a ako ti treba obrnuto to dobiješ sa vertdir. A možeš i da promeniš malo pecinu proceduru tako što ćeš petlju zameniti sa for i:=1 to length(s) do outtextxy(x,y-(i-1)*razmak,s[i]); end;
pascal.773 mikeli,
Hvala sto hoces da pomognes :) Pogledaj igru maze of torment (maze.zip) na SEZAMU ili ZB-tet pa njegov DEMO.Ja mislim da ce ti onda biti jasno kakve skolove hocu :) A isto bih volio,ako znas kako se prave oni obicni sa textom.Znas ono neki text se skroluje sa lijeve strane u desnu ili obrnuto.Bez treptaja ako moze :) Mislim da sada nisam stedio rijeci :))) Pozdrav,Mikeli :)
pascal.774 majkl,
> LOGON.ZIP, source u TP-u koji omogućava logovanje na Novell mrežu > pod kontrolom vašeg programa. Radi li ovo kod nekog? Na 3.11 ispravno prepoznaje slučajeve za 'Login failed', ali logovanje ne ide. Datoteka uz ovu poruku sadrži sors i izvršni kod programa koji pod 3.11 daje broj konekcije i ime korisnika na njoj. who.zip
pascal.776 eagle,
Evo programa koji tekst obrće na sledeći način: ┌──┐ ┌──┐ tekst: ├──┘ │ │ └──┘ ───┬──┐ crta: └──┘ ┌─────┐ └ ┘ Program Valjda_je_ovo_trebalo; ... procedure preslikaj(x1,y1,x2,y2:integer;razmak:integer); var a:word; i,j:integer; osa:record xosa,yosa:integer;end; begin with osa do begin xosa:=x1*2; yosa:=(y1+((y2-y1) div 2))*2; for i:=x1 to x2 do for j:=y1 to y2 do begin a:=getpixel(i,j); putpixel(xosa-i-razmak,yosa-j,a); end; end; end; ... BEGIN ... razmak:=10; *** ili bilo koja vrednost *** settextjustify(lefttext,toptext); settextstyle(1,1,4); outtextxy(500,280,'EAGLE'); preslikaj(500,280,500+textheight('EAGLE'),280+textwidth('EAGLE'),razmak); ... END. Dakle, ne koristi se procedura koja pravi inverzan string, a zatim preslikavanje preko neke prave, jer to daje otprilike odraz u ogledalu, već se isti string preslikava preko jedne tačke (centralna simetrija). Ovo getpixel/putpixel je primetno sporo za veliki broj tačaka, tako da je poželjno koristiti textwidth i textheight. Ako sam dobro shvatio, ovo si tražio (inače sam džabe pisao)... ) ( < E > ) (
pascal.777 inesic,
> Help ! Zna li ko kako se prave skrolovi texta iz pascala ? Iz pascala - uz pomoć prozora. Readwin odavde doovde, pa onda writewin red više ili niže ili levije ili desnije ili ukoso ili kako već treba.
pascal.778 peca.st,
Jedno pitanje, koje verovatno čudno zvuči... Dakle, kako, i da li je moguće iz pascala praviti .EXE datoteke? Peđa.
pascal.779 darone,
>> Dakle, kako, i da li je moguće iz pascala >> praviti .EXE datoteke? Na kapiram baš, ali ako si mislio da od .pas napraviš .exe, onda bi bilo najbolje kompajlerom (tpc.exe). Iako može i (neka_options / destination / disk). darone
pascal.780 dmajkic,
+> Dakle, kako, i da li je moguće iz pascala praviti .EXE +> datoteke? A da nisi mislio na .COM ?
pascal.781 ssokorac,
─┼┤ A isto bih volio,ako znas kako se prave oni obicni sa textom.Znas ono ─┼┤ neki text se skroluje sa lijeve strane u desnu ili obrnuto.Bez ─┼┤ treptaja ako moze :) tekst:='Stasha. '; (* obavezno space na kraju stringa *) red:=27; for t:=79 downto -length(tekst)+1 do if t>0 then begin gotoxy(t,red); write(tekst) end else begin (* nestajanje na levoj ivici *) gotoxy(1,red); write(copy(tekst,1,length(tekst)-1+t)) end; P.S. Jedan ortak iz razreda ima problema sa skrolovanjem teksta u grafickom modu, samo treba da voza nekoliko redova teksta na gore. Ne mora da bude glatko, lepo i sl, samo da je brzo, kako kaže.
pascal.782 vitez.koja,
#=> Dakle, kako, i da li je moguće iz pascala praviti .EXE #=> datoteke? Je'l ti ne znas ta kompajliras program ili si namislio da pises kompajler ?
pascal.783 peca.st,
!-> Na kapiram baš, ali ako si mislio da !-> od .pas napraviš .exe, onda bi bilo !-> najbolje kompajlerom (tpc.exe). Iako !-> može i (neka_options / destination / !-> disk). Hvala darone. ;) Znam znam, to najlakše uradiš kao f10, c, d, alt-f9. :) Znao sam da će biti ovakvih poruka, jer nisam imao vremena lepše da obrazlžim. Dakle, meni treba da MOJ program koji sam napravio, ima opciju za pravljenje .EXE datoteka, koje će raditi _TO_I_TO_. Ajde ako neko zna, ne bilo mu zapoveđeno... Peđa.
pascal.784 mcule,
Da l' da ja pocnem da prosipam pamet? ;)
pascal.785 bearboy,
║ Da li vam je nekad bilo potrebno da definišete konstantu ║ koju možete da menjate? Da i reći će te da se to radi u stilu: Pa ako je menjaš, onda više nije konstanta :)
pascal.786 peca.st,
!-> P.S. Jedan ortak iz razreda ima problema !-> sa skrolovanjem teksta u grafickom modu, !-> samo treba da voza nekoliko redova teksta !-> na gore. Ne mora da bude glatko, lepo i !-> sl, samo da je brzo, kako kaže. IH, ss-ovac, pa ovo tvoje radi u tekst modu... žovek je ako sam ja shvatio tražio u grafičkom, dakle isto ovo što tebi (tvom ortaku) treba... So, ja vi možda ovijeh dana pošaljem to, ako budem našao program u kome sam to koristio. Peđa.
pascal.787 peca.st,
!-> Je'l ti ne znas ta kompajliras program !-> ili si namislio da pises kompajler ? Pošto sam već odgovorio na prvi deo pitanja, evo odgovora na drugi: Ne mislim baš da pišem kompajler, ali recimo, mislim da pišem neki program tipa GIF-->EXE (ne baš taj program, ali tog tipa). Peđa.
pascal.788 dejanr,
>> Dakle, meni treba da MOJ program koji sam napravio, ima opciju za >> pravljenje .EXE datoteka, koje će raditi _TO_I_TO_. To bi značilo da tvoj program bude kompajler. Hm, naravno, može se najzad napisati i kompajler, ali ne verujem da bi to bio tako jednostavan posao. Preporučio bih da uzmeš TPC (ili kako se već zove), Turbo Pascal stand alone compiler. Onda kada tvoj program napravi .PAS datoteku, sa EXEC pozoveš TPC da od nje napravi EXE. Naravno, morao bi da se pobrineš za tretman eventualnih greški (valjda TPC vraća ERRORLEVEL (?)) i onda da, ako je prevođenje uspelo, startuješ prevedeni program. Nikada to nisam radio, ali ne vidim razloga zašto ne bi moglo, ako se TPC-u ostavi dovoljno memorije.
pascal.789 skerl,
Í──────────────────────────────────────────────────────────────── ║ SVGA Driver and Utilities ║ ║ Here are some simple SVGA utility programs that will allow you ║ have some fun with these none standard modes. The SVGA driver ║ caters for most popular brands and should work on the brands ║ listed ( just have a look through SVGA.PAS ). ║ ║ The programs given allow you to create your own palettes, draw ║ your own pictures and finally use them in your own programs ║ via the SVGA driver. A font editor program is also given so ║ can create your own fonts. ║ ║ Some palettes and images are given as examples ( these are the ║ *.pal and *.img files ). the MARS.IMG and SKULL.IMG files use ║ SWORD.PAL and LIFE.IMG uses LIFE.PAL. These image files can be ║ viewed with SVGAMAP.PAS. For example to view LIFE.IMG run ║ SVGAMAP and press 'x'. Type in 'life.pal' as the file name of ║ the palette. Then press 'l' and type in 'life.img'. ║ ║ The source code is given for all of these to enable you to ║ customize the programs to your needs, or to enable you to ║ make improvements to the SVGA driver. Ofcourse, any ║ improvements to the driver would appreciated by me and anyone ║ else who is using the driver. Suggestions are also welcome ║ but there is no guarantee I will have time to implement them. Pozdrav, Skerl. svgadc30.zip
pascal.790 skerl,
Evo prave stvari za one koji se bave programiranjem koprocesora iz pascal-a. Unit daje kompletnije izvestaje o greskama. Pozdrav, Skerl. ERROR87 1.3 - Turbo Pascal units to improve coprocessor error reports. Copyright (c) 1990,1993, D.J. Murdoch. All rights reserved. Portions of DECODE87.PAS copyright 1985,86, L. David Baldwin. INTRODUCTION Turbo Pascal doesn't handle floating point errors well. The number of errors that are reported as run-time "Error 207" is large, and in some versions the error address is miscalculated, so you don't have a clue where to look for them. ERROR87 is a unit that attempts to address both of these problems - it gives more informative error messages, and it tries to improve on the calculation of the error address. In this package, you should find the following files: ERROR87.DOC - this file ERROR87.PAS - source code to the error handling unit DECODE87.PAS - source code used to decode the instructions DV87.ZIP - a little TSR to fix a bug in Desqview 2.26 that crashes windows on coprocessor errors NMI.ZIP - a little program to turn on NMI handling on XT clones, so that they don't crash on coprocessor errors err87_13.zip
pascal.791 kenza,
(;> Dakle, kako, i da li je moguce iz pascala praviti .EXE datoteke? E,svasta ;) kompajliras *.pas u *.exe.Ili uzmes TPC i....
pascal.792 drmarke,
> A isto bih volio,ako znas kako se prave oni obicni sa > textom.Znas ono neki text se skroluje sa lijeve strane u > desnu ili obrnuto.Bez treptaja ako moze :) Za text mod ti je nešto poslao recimo ssokorac, a ja pošto trenutno nemem vremena da kopam gde mi je napravljeno mogu da ti preporučim da se obratiš almi-ju jer se on baktao sa tim stvarima (nešto je bilo i u računarima sa očitavanjem portova). On mi danas reče, da je video u ovom nivom file-u u info "vgadoc2.arj" da ima urađen scroll ekrana pa vidi. Pošto ima source na pascalu malo pročitaj pa će da radi. Pozdrav DrMarke
pascal.793 drmarke,
> tekst:='Stasha. '; (* obavezno space na kraju stringa *) Pa ja ovo malo gledah pa baš i ne radi. Naime mislim da bi scroll bio scroll on mora da ono što je napisano pre pomeranja i da obriše. Zato ti treba još jedna promenljiva koja sadrži prazninu iste dužine kao i tekst. Npr. ovako: Ň══════════════════════════════════════════════════════════════Ş │ │ │ uses Crt,Brlj; │ │ var t,red,zn:integer; │ │ tekst,bris:string[10]; │ │ begin │ │ clrscr; │ │ HideCursor; │ │ tekst:='Stasha. '; (* obavezno space na kraju stringa *) │ │ bris :=' '; │ │ red:=12; │ │ for t:=79 downto 1 do │ │ if t>length(tekst) then │ │ begin │ │ write(bris); │ │ gotoxy(t-length(tekst),red); │ │ write(tekst); │ │ gotoxy(t-length(tekst),red); │ │ delay(25); │ │ end │ │ else │ │ begin (* nestajanje na levoj ivici *) │ │ gotoxy(1,red); │ │ write(copy(bris,length(bris)+1-t,t)); │ │ gotoxy(1,red); │ │ write(copy(tekst,length(tekst)+1-t,t)); │ │ delay(30); │ │ end; │ │ readln; │ │ restorecursor; │ │ end. │ │ │ ď══════════════════════════════════════════════════════════════ż Pozdrav DrMarke
pascal.794 dgrbic,
:: Ne mislim baš da pišem kompajler, ali recimo, mislim da :: pišem neki program tipa GIF-->EXE (ne baš taj program, :: ali tog tipa). Gledaj ovako: 1. Napišeš program koji radi ono što tebi treba (npr. prikazuje GIF); 2. Napraviš ga tako da on učitava podatke iz .EXE fajla (tj. samog sebe) 3. Napraviš drugi program koji "lepi" taj program i podatke 4. Gotovo :)
pascal.795 ivans,
* Voleo bih da nađem nekog ko ima ASEMBLER i što bolji * DISASEMBLER za Z80, a, po mogućstvu, i simbolički dibager * za Z80. ? Vidim, niko se ne javi da odgovori čoveku, pa rekoh da pokušam ja... Mada je i od mene mala pomoć... :( Imam asembler i to makro, a još kažu da je relokatibilni (ovo poslednje nisam proveravao). Zove se ZAS. Uz njega idu linker ZLINK i "bibliotekar" ZLIB. Što se dibagera tiče, imam dva: jedan je ZDM, a drugi DSD. Ovaj prvi nikada nisam ozbiljnije koristio, valjda zato što nigde nisam našao spisak svih opcija koje omogućava, a i inače mi je delovao jako ružno, otprilike kao MS DOS-ov DEBUG. Ovaj drugi je znatno bolji, ima ugrađen help-podsistem i gomilu opcija koje sam video tek kod nekih dibagera za PC (konkretno, Turbo Debugger). U svakom trenutku se na ekranu vidi stanje registara i memorije, disasemblirano bilo koje parče memorije (najčešće ono na kome je PC registar), moguće je trejsovati program sa prikazom stanja registara i memorije posle svakog koraka ili trejsovati, na primer, hiljadu instrukcija bez prikazivanja promene registara / memorije (dakle, nešto brže, i to prilično) itd. Glavni problem je što je sve to smešteno na jednu TIM-011 disketu, sa koje PC ne može da čita fajl, već je potrebno "krpiti" programe sektor po sektor... A to daje nikakve rezultate :(. Ako neko ima ideju kako da se do ovoga dođe - neka se javi... Pozdrav, Ivans.
pascal.796 almi,
Otklanjanje trperenja se najbolje postiže ispitivanjem port-a $03DA tj. da li je njegov 3. bit setovan pr.: REPEAT UNTIL (PORT[$3DA] AND 8) = 8; I posle ovog reda treba iscrtati nešto. Pozdrav Mišel.
pascal.797 djnsnd,
Da li neko zna kako da iz Turbo Pacal-a procitam serijski broj diska na kojem je program instaliran ? Pre nekog vremena je u Bajtovima Lične Prirode bilo nešto o tome na C-u ? Djn
pascal.798 djnsnd,
Da li je neko u stanju da mi kreira nove TButtons za Turbo Viziju? Trebaju mi tasteri koji zauzimaju manje prostora na ekranu. Ovi postojeci imaju najmanje 2 reda, pa bi mogla da se skine senka. Dejan 434-822
pascal.799 ssokorac,
─┼┤ scroll bio scroll on mora da ono što je napisano pre ─┼┤ pomeranja i da obriše. Zato ti treba još jedna promenljiva Tome i služi space na kraju stringa. :) Kada bih stalno sve brisao suviše bi 'treptalo' a i sporije je.
pascal.800 peca.st,
!-> Gledaj ovako: !-> 1. Napišeš program koji radi ono što tebi !-> treba (npr. prikazuje GIF); 2. Napraviš !-> ga tako da on učitava podatke iz .EXE !-> fajla (tj. samog sebe) 3. Napraviš drugi !-> program koji "lepi" taj program i podatke !-> 4. Gotovo :) Zamolio bih te da ovo malo više pojasniš, baš mi ne ide u glavu... Peđa.
pascal.802 janko,
> Glavni problem je što je sve to smešteno na jednu TIM-011 > disketu, sa koje PC ne može da čita fajl, već je potrebno > "krpiti" programe sektor po sektor... A to daje nikakve > rezultate :(. Ako neko ima ideju kako da se do ovoga dođe > - neka se javi... A postoji li program koji sve sektore redom pročita i sruči u PC fajl? Ako ima, onda uz dokumenjtaciju o organizaciji TIM diskete (eto šta treba iskopati) čas posla se napravi programče da rasturi sve na fajlove... Frčno je i to da li su ti programi samo za TIM ili za svaki CP/M. TIM ima i neke svoje bubice, a ja nemam nameru da pišem TIM emulator...
pascal.803 dgrbic,
:: Zamolio bih te da ovo malo više pojasniš, baš mi ne ide u :: glavu... OK, idemo: Napraviš program za prikazivanje ili-šta-ti-već-treba i to tako da on iz samog sebe čita podatke (npr. na kraj programa naredbom copy nalepiš neki string koji ti služi kao marker, ili zapišeš dužinu programa...) pa onda opet naredbom copy (ili ekvivalentnom procedurom iz svog programa) nalepiš podatke iza tog markera. Program za prikazivanje nađe marker u fajlu čije ime dobiješ sa paramstr(0) i onda lepo čita potrebne podatke. Sam .exe fajl za prikazivanje možeš da upakuješ u program koji vrši spajanje kao binarnu sliku (program binobj vrši posao). Ako ti još nešto nije jasno... javi, će pojasnimo :)
pascal.804 ivans,
* A postoji li program koji sve sektore redom pročita i * sruči u PC fajl? Bojim se da nema :(. Naime, još pre nego što sam nešto radio sa Anadiskom, pokušavao sam da pročitam TIM-ovu disketu pomoću dva druga programa (jedan mi je poslao Bulaja, a drugi jedan Sezamovac, neka mi ne zameri što mu nisam upamtio ime ;), i nijedan nije uspeo da izvuče ništa sa disketa... Anadisk je bar nešto uspeo, taman toliko da je to što je uspeo neupotrebljivo... :( Što se tiče organizacije TIM diskete mislim da je čak vrlo standardna. Neko je ovde na Sezamu bacio opis CP/M formata diskova, i uspeo sam da prepoznam nešto što je zajedničko sa TIM disketom - dakle, nije potpuno nestandardna... a ipak ne može "normalno" da joj se pristupi. :( * Frčno je i to da li su ti programi samo za TIM ili za * svaki CP/M. Oni Z* programi koje sam naveo su bili isporučivani na sistemskim disketama, pa postoji šansa da nisu za svaki CP/M... Mada bi trebalo da jesu - ne verujem da su u "Pupinu" radili nešto drastično na njima... Opet, ko zna... Međutim, onaj dibager (DSD), koji se nekako volšebno ;) uvukao na moje diskete, vrlo verovatno nije napisan (ili prilagođen) za TIM-011 - ko bi se petljao s tim kad već postoji ZDM? ;) Samo, potrebno je i to nekako pročitati, a, kao što napisah gore, ni Anadisk ne uspeva... Sad mi pade na pamet - postojale su verzije TIMa-011 sa 5.25" drajvom (nikada isporučivane školama), pa bi se eventualno sa njih moglo nešto pročitati... Naravno, zbog toga bi trebalo otići u "Pupin" i naći nekog spremnog za saradnju, što je verovatno "malo" poteže :(. Pozdrav, Ivans.
pascal.805 predragd,
> Ako ima source, stvarno nema frke prepraviti ga da radi i > u drugim rez... Ja sada imam ono čudo što radi samo u 640 > 480 16, al mi treba za više, Stiže (source za RW PCX-a). Peđa. pcx.arj
pascal.806 peca.st,
!-> Ako ti još nešto nije jasno... javi, će !-> pojasnimo :) Ma sad je jasno, no problemo, ali si ti suviše direktno shvatio ono što sam ja rekao "neki program tipa GIF-->EXE". So, uz pomoć packObj može to da se uradi, hvala. (mada to i nije bilo ono što je meni u suštini trebalo). i onako nije bilo previše važno, nešto sam hteo da uradim, što i nije mLogo bitno. :) Peđa.
pascal.807 ilazarevic,
Šta znači ovo: inline($9c); Radi se o primeru za rezidentan program iz BLP, pisao vitez.koja.
pascal.808 ilazarevic,
Napisao sam nešto ovako: uses crt,dos; var proc:procedure; š$M 1024,0,0ć procedure sat; interrupt; var h,m,s,s100:integer; begin inline($9c); proc; gettime(h,m,s,s100); gotoxy(1,1); write(h,':',m,':',s); end; begin swapvectors; getintvec($1c,čproc); setintvec($1c,čsat); window(30,1,60,3); keep(0); end. Ovo mi okači satić na vrhu ekrana i otkucava :) Jedini problem je to što ja hoću da mi sat radi u pozadini, dok ja mogu normalno da radim šta već poželim u DOS-u. Kako to?
pascal.809 vitez.koja,
#=> Šta znači ovo: inline($9c); To je ekvivalent PUSHF asemblerske naredbe, postavlja fleg registar na stek jer se iz interapt rutine vraca sa IRET (koja automatski vraca flegove sa steka) a ne sa RET.
pascal.810 eagle,
> Ovo mi okači satić na vrhu ekrana i otkucava :) Jedini problem > je to što ja hoću da mi sat radi u pozadini, dok ja mogu > normalno da radim šta već poželim u DOS-u. Kako to? Možeš da ubacuješ vreme direktno u ekranski bafer, dakle bez šetkanja kursora. Inače, sumnjam da ćeš moći ovako nešto sa "gettime". Bolje uradi samo jedno gettime na početku, a posle uzmi neki brojač i uvećavaj ga u svojoj proceduri. E sad nek' mi neko objasni ovo: Namestim tako da mi se npr. svakog minuta ispisuje nešto na ekranu, i to lepo radi kad ništa ne diram. Međutim, kad držim neprekidno Enter ili bilo šta drugo, promaši za 2-3 sekunde!? A ja mislio da prekid sata ima prednost nad prekidom tastature.. ) ( < E > ) (
pascal.811 peca.st,
!-> Stiže (source za RW PCX-a). !-> Peđa. TOOOOOOOOOOOO Imenjače! Ljudi, ja bih mu odmah na neviđeno dao godinu dana pretplate, kad bi mene neko pitao. (a ne pita me) Peđa.
pascal.812 dzakic,
>> gettime(h,m,s,s100); GetTime je funkcija dosa, pa ti zato program verovatno radi samo na promptu, a u ostalim situacijama zaglavi. Treba da izbegneš pozivanje ove funkcije recimo direktnim čitanjem sata iz promenljivih na segmentu $40.
pascal.813 ilazarevic,
># => Šta znači ovo: inline($9c); Hvala, doživeo sam prosvetljenje :)
pascal.814 ilazarevic,
> pozivanje ove funkcije recimo direktnim čitanjem sata iz > promenljivih na segmentu $40. Da, videh u DOS referenci da se tamo vraća broj otkucaja. Zbun je u tome što ne znam da li će mi vratiti broj otkucaja interapta 1Ch (mnooogo veliki broj :) ili broj sekundi ili tačno vreme. Izgleda da ću morati da probam...
pascal.815 zamahajev,
Kako u Pascalu napisati program koji koristi programsku datoteku kao Basicu npr. 10 Data Pera,170,Mika,183,Laza,194, ..... itd 20 for i=1 to 12 30 read ime$, vis 40 print ime$, vis 50 next i Pozdrav 3AMAXAJEB B.
pascal.816 dejanr,
>> Kako u Pascalu napisati program koji koristi programsku datoteku kao >> Basicu npr. >> 10 Data Pera,170,Mika,183,Laza,194, ..... itd >> 20 for i=1 to 12 >> 30 read ime$, vis >> 40 print ime$, vis >> 50 next i Približan ekvivalent bi bio: CONST imena: ARRAY[1..4] OF string[10] = ('Pera', 'Mika', 'Laza', 'čika'); broj: ARRAY[1..4] OF integer = (10,20,30,40);
pascal.817 dejanr,
Iako BP 7.0 još nije stigao do nas :( (tj. u svakom slučaju nije do mene), evo par zanimljivih poruka na tu temu: ========== borland/turbo.pascal #6637, from klrv, 499 chars, Mon Mar 15 14:22:59 1993 Comment(s). ---------- TITLE: BCC 3.1 interfacing Does the new (7.0) version of Turbo Pascal finally allow to generate .OBJ files, which can be linked to other programs? Did anyone ever try to interface BCC and Pascal routines in one program? (this was almost impossible with previous versions of TP) All suggestions are more than welcome! We would like to interface a program written in C with an existing program written in Turbo Pascal... At this moment, we're afraid we'll have to re-write everything in C... Luc ========== borland/turbo.pascal #6638, from terjem, 880 chars, Mon Mar 15 16:50:07 1993 Comment to 6637. Comment(s). More refs to 6637. ---------- > Does the new (7.0) version of Turbo Pascal finally allow to generate .OBJ > files, which can be linked to other programs? No, it still generates .TPU files. You can link in supporting C functions as .OBJ files, but there is no way to use a C main() program. IMHO any serious Turbo Pascal programmer should consider getting StonyBrook's Pascal+, which can generate BC++/MSC-compatible .obj files, and optimizes the code to where it is comparable to, and in some cases better than, the best C compilers. I did take part in the beta test of the current StonyBrook compiler, V6.1, but I have no other interests in the company. Pascal+ is compatible with Turbo Pascal V6.0, so if you have started to use the BP7.0 extensions, or need to use protected mode, you still have a problem. --Terje Mathisen (Internet: terjem@nho.hydro.com, FAX: +47-22-433606, Compu$erve 10030,547) ========== borland/turbo.pascal #6640, from klrv, 66 chars, Mon Mar 15 17:59:16 1993 Comment to 6638. ---------- You really made my day! Thanks a lot for this advise :-) :-) Luc ========== borland/turbo.pascal #6641, from mfang, 124 chars, Mon Mar 15 21:32:40 1993 Comment to 6637. Comment(s). ---------- BP 7.0 does support dynamic link libraries. So if your program is Windows-oriented, you can skip the .OBJ. ========== borland/turbo.pascal #6642, from abailey, 101 chars, Mon Mar 15 22:07:39 1993 Comment to 6641. ---------- BP 7.0 isn't limited to Windows for DLL's. You can make DLL's for the DOS protected mode. ========== borland/turbo.pascal #6643, from fred.robinson, 846 chars, Tue Mar 16 19:15:07 1993 Comment(s). ---------- Borland DPMI vs. Windows' DPMI (I think) I've run into a minor snag with these two DPMI servers. I'm working on FATMAP (listings\ibm.utils, FATMAP4.ZIP). It uses Int $25 to read sectors from the disk. In real mode, everything is fine. In protected mode everything ain't. Int $25 normally leaves a word on the stack when it returns, so part of the sector-reading code removes this word after the int call. Now, in a Windows DOS window, this turns out as expected. However, outside of Windows, where I assume DPMI16BL.OVL is being used, this extra word is not in the stack after the call. Is the Borland DPMI doing some unexpected cleanup after an interrupt? If so, this is a major PITA since I can't tell after the interrupt whether I should pop the extra word or not (this is in assembly code, in a linked-in .OBJ). ========== borland/turbo.pascal #6644, from mfsargent, 337 chars, Tue Mar 16 22:00:44 1993 Comment to 6643. Comment(s). ---------- Fred, You could push your own sentinal onto the stack before doing the Int $25. On return, if the top of the stack isn't your sentinal, assume it's the flags and remove it. The sentinal value should probably be chosen to be something that is an invalid flag word. ========== borland/turbo.pascal #6645, from fred.robinson, 549 chars, Thu Mar 18 19:10:24 1993 Comment to 6644. Comment(s). More refs to 6644. ---------- OK, Mike, I tried the flag value on the stack, and it works, to the point where I no longer get the bogus value popped into DS and a GPF. Now, under DPMI, int $25 itself is acting differently between Windows DOS boxes and plain old DOS. In Windows, it acts as expected. But in DOS, it fails somehow, and returns an error code corresponding to "sector not found" and *no* extra word on the stack. I don't think I'm telling it to look for anything unusual, since the same code works in Windows and for the real-mode version. Help, anybody! Fred ========== borland/turbo.pascal #6646, from fred.robinson, 205 chars, Thu Mar 18 19:11:23 1993 Comment to 6644. ---------- I'll give that a whack. I'll push something like $FFFF onto the stack and the check for it after the int $25 call. I only hope I don't trash the rest of the code in the process :-/ . Thanks. Fred ========== borland/turbo.pascal #6647, from abailey, 350 chars, Thu Mar 18 21:24:54 1993 Comment to 6645. More refs to 6645. ---------- According to the bible on Borland DPMI " Borland Open Architecture Handbook for Pascal", Int 25h and 26h are _not_ reflected through to protected mode. To do it right you would have to set up a simulate real-mode interrupt (DPMI function 0300h) to pass the call down to real-mode. ( I have to do the same thing with VESA graphics calls.) ========== borland/turbo.pascal #6648, from mtoney, 333 chars, Sat Mar 20 22:15:16 1993 Comment to 6645. ---------- This is just a thought (more of a curiousity), but have you tried using someone else's DPMI server (Like QEMM's) instead of Borlands? If any other is out there, Borlands protected mode programs (DOS ones) will use it instead of their own. This is what happens in Windows at least, a windows program uses the Windows DPMI server...
pascal.818 almi,
Kako da alociram niz u XMS ili EMS. Pozdrav Mišel.
pascal.819 dmajkic,
Kako da u turbo paskalu iskoristim grešku, a da mi se program ne prekine? Konkretno, kada proba da izračuna LN(x) za x<0, da ne prijavi runtime error već da skoči na neku proceduru.
pascal.820 eagle,
> Konkretno, kada proba da izračuna LN(x) za x<0, da ne prijavi > runtime error već da skoči na neku proceduru. Valjda bi najjednostavnije bilo da napraviš neku svoju funkciju, npr. LNN, koja ti daje ln(x) za ispravnu vrednost, a poziva neku proceduru ako je x neispravno. ) ( < E > ) (
pascal.821 ssokorac,
Može li neko (samo ukratko, ali ako je rapoložen može i opširnije:) da objasni šta se tačno dešava posle komande SetActivePage(1); Ne mislim na efekte, nego u koju se sada memoriju upisuje sve što se ispisuje na ekran, i, uopšte, kako pristupiti toj memoriji da nemamo SetActivePage proceduru i sl. Thanks mnoogo, Stasha.
pascal.823 dekiper,
dmajkicu-u, mislim da onaj savet koji sam ti dao u Klubu i nije baš najbolji pa je mnogo praktičnije da pre poziva funkcije Ln (za računanje logaritma) proveriš kakav joj argumenat daješ, pa ako je u pitanju negativan broj jednostavno pozoveš proceduru koja će signalizirati grešku. Na primer: Program Logaritam; Procedure Greska; Begin WriteLn('Greška: Nemoguće je dobiti logaritam negativnog broja'); End; Var A:Integer; Rez:Real; Uspelo:Boolean; Begin repeat WriteLn('Unesite argumenat funkciji Ln'); ReadLn(a); If A<0 then Begin Rez:=Ln(A); Uspelo:=TRUE; End Else Greska; until Uspelo; WriteLn('Logaritam je: ',Rez); End.
pascal.824 ssokorac,
─┼┤ Konkretno, kada proba da izračuna LN(x) za x<0, da ne prijavi š$I-ć p:=LN(x); š$I+ć If IOResult<>0 then Procedura;
pascal.825 peca.st,
!-> Kako da alociram niz u XMS ili EMS. Teško. Nisam siguran da li u opšte može. Peđa.
pascal.826 dejanr,
>> dmajkicu-u, mislim da onaj savet koji sam ti dao u Klubu i nije baš >> najbolji pa je mnogo praktičnije da pre poziva funkcije Ln (za >> računanje logaritma) proveriš kakav joj argumenat daješ, pa ako je u >> pitanju negativan broj jednostavno pozoveš proceduru koja će >> signalizirati grešku. Na primer: Ovo dolazi u obzir kada se zbilja radi o računanju jedne funkcije. Međutim, ako se javljaju duži izrazi, dosta komplikuje da se za svaki LN stavlja IF, pa onda za svaki koren, pa onda prekoračenja, podkoračenja... trećina programa će biti radni deo, a dve trećine nekakvi IF-ovi. Ako imam segment programa koji ima mnogo numerike koja može da napravi grešku, obično instaliram exit proceduru - kada bi da prijavi grešku, program upadne u moju proceduru, ja proverim da li je greška numerička i ako jeste zanemarim je i idem nazad na petlju, sledeća iteracija. Radi jako dobro i strašno se lako programira. O exit procedurama je bilo reči ovde, u Bajtovima lične prirode a pominju se čak i u uputstvu :)
pascal.827 dejanr,
>> š$I-ć p:=LN(x); š$I+ć >> If IOResult<>0 then Procedura; Jesi li ovo probao? Nešto nisam ubeđen da će da radi, {$I-} samo maskira I/O greške, dakle za razne RESET, READ itd. Ne bih rekao da maskira numeričke greške.
pascal.828 dejanr,
>> > Kako da alociram niz u XMS ili EMS. >> >> Teško. Nisam siguran da li u opšte može. Sve može, ali ne znači da je jednostavno... pogledaj recimo fajl uz poruku 6.268
pascal.829 janko,
> Ako imam segment programa koji ima mnogo numerike koja > može da napravi grešku, obično instaliram exit proceduru - > kada bi da prijavi grešku, program upadne u moju > proceduru, ja proverim da li je greška numerička i ako > jeste zanemarim je i idem nazad na petlju, sledeća > iteracija. Radi jako dobro i strašno se lako programira. Postoji i puno elegantniji metod (doduše, nisam ga primenjivao na TP-u, već na BC-u). Emulator 8087 procesora koji prati Borlandove proizvode je izuzetno veran specifikaciji pravog 8087, pa je moguće i podešavati operacije koje on sam izvodi, koristeći kontrolne reči 8087 procesora. Program pišete potpuno jednako bilo da radi sa pravim procesorom bilo da radi sa emulatorom (vi uopšte ne vidite emulator!). Po IEEE specifikacijama, (a 8087 je dosta blizak njima) rutine za pokretni zarez treba da obezbede svu silu mogućnosti da zanemare neke ekscesne situacije ili da ih prijave, i još trista čuda uz to. Setovanjem ili resetovanjem samo jednog bita može da se isključi javljanje underflow ili overflow operacije. Za te operacije nad kontrolnom reči 8087 procesora BC ima i ugrađene primitive (ne pišu se nikakve ASM linije!). Na TP-u, (ili ovim novijim čudima) ako su mogući ovakvi metodi (trebalo bi dobro pročačkati uputstva), trebalo bi aktivirati 8087 emulaciju i koristiti IEEE formate (a ne onaj interni real).
pascal.830 draganm,
*> Bojim se da nema :(. Naime, jos pre nego sto sam nesto radio *> sa Anadiskom, pokusavao sam da procitam TIM-ovu disketu pomocu *> dva druga programa (jedan mi je poslao Bulaja, a drugi jedan *> Sezamovac, neka mi ne zameri sto mu nisam upamtio ime ;), i *> nijedan nije uspeo da izvuce nista sa disketa... Anadisk je *> bar nesto uspeo, taman toliko da je to sto je uspeo *> neupotrebljivo... :( Ja sam uspeo sa Anadiskom da dump-ujem celu disketu na hard .....
pascal.831 pedjak,
> IMHO any serious Turbo Pascal programmer should consider getting > StonyBrook's Pascal+, which can generate BC++/MSC-compatible .obj files, > and optimizes the code to where it is comparable to, and in some cases > better than, the best C compilers. > Pascal+ is compatible with Turbo Pascal V6.0, so if you have started to Jel' zna neko nešto više o tom Pascal+ kompajleru ? Ako generiše .OBJ ondak je to odlično ! pedja
pascal.832 dmajkic,
+> Ovo dolazi u obzir kada se zbilja radi o računanju jedne +> funkcije. Međutim, ako se javljaju duži izrazi, dosta +> komplikuje da se za svaki LN stavlja IF, pa onda za svaki +> koren, pa onda prekoračenja, podkoračenja... trećina programa +> će biti radni deo, a dve trećine nekakvi IF-ovi. Potpuno si u pravu. Ali, ajde da ja pojasnim o čemu se radi: Napisao sam mali program za crtanje grafika funkcije. Meni je mnogo pomagao, ali su onda funkcije počele da se komplikuju. Problem je sa domenom (oblast definisanosti fj-e). Primetio sam :) da bi bilo mnogo lakše da iskoristim grešku u računanju, jer fj-a baš tu nije definisana, nego da od malog programa pravim ogroman uz pomoć IF-ova. Pošto ja unapred ne znam kakva će fj-a da bude, ne mogu da isključim sve slučajeve. Znači, odpada ono 'if x<0 then...' . Pokušao sam i sa ( $I+ ) i ioresult ali nije radilo. Dakle, program bi trebao da bude 'svestan' da se dogodila floating-point greška, ali da se pri tome ne zaustavi njegovo izvršavanje. +> Ako imam segment programa koji ima mnogo numerike koja može da +> napravi grešku, obično instaliram exit proceduru - kada bi da +> prijavi grešku, Bio bih veoma zahvalan da me uputiš gde se ovde o tome raspravljalo. žisto da ne lutam po konferenciji... Hvala
pascal.833 vitez.koja,
#=> š$I-ć p:=LN(x); š$I+ć Neće moći :) jerbo $I služi za kontrlolu I/O grešaka, a toga verovatno nema u funkciji LN.
pascal.834 ssokorac,
─┼┤ Jesi li ovo probao? Nešto nisam ubeđen da će da radi, š$I-ć samo Probao, ne radi. Izvinjavam se :).
pascal.835 ssokorac,
Dobro, možda je jednostavnije ovakvo pitanje :). Šta je uopšte page-iranje video memorije, kako se vrši i tako to? :) Hajde, pliz, ako neko bar malo može o tome da napiše...
pascal.836 almi,
Da li ima neko zamenu za rutine put i get image koje brže rade nego one iz graph-unti-a.Ako neko ima zamolio bih ga da mi ih pošalje Unapred zahvalan Mišel.
pascal.837 vdarko,
Radim neke testove iz psihologije na TP6 i treba mi savet od ljudi koji su se bavili grafičkom animacijom u TP-u. Naime, korisnik je izrazio želju (o, kako to grozno zvuči) da mu se tokom testa na ekranu pojavljuje PEŠžANI sat koji bi radio onoliko vremena "koliko mu se kaže". Ima li na Sezamu nečega što bi mi pomoglo da tako nešto napravim. Sat ne mora da rotira kao u Windows-u, već je dovoljno da "radi" i da mogu da ga postavim na bilo koji deo ekrana.
pascal.838 .obj,
> Dobro, možda je jednostavnije ovakvo pitanje :). Šta je uopšte page-iranje > video memorije, kako se vrši i tako to? :) Recimo, radiš u rezoluciji 800x600 u npr. 256 boja. Kada lepo preračunaš koliko je to video memorije, bude negde oko 480Kb. U realnom (8086) režimu, procesor jednostavno ne može da rezerviše toliko memorije samo za video (adresni prostor na 8086 je samo 1Mb). Zato (zbog Intela;) se video memoriji pristupa preko stranica od, recimo, 64k koje se nalaze negde u memoriji (npr. A000:0000). E, sad, taj način prebacivanja je pravio najviše problema svim prozvođačima softvera (nije standardan), pa su se onda nekako dogovorili (VESA standard) oko tih i ostalih spornih stvari kod softverske podrške SuperVGA kartica. Na Sezamu ima jedna arhiva, mislim da se zove VGAKIT ili tako nekako, gde su programčići koji prebacuju stranice na raznim video karticama, Tseng, Oak, Trident i ostalo najpopularnije. Pogledaj tamo, procedure su vrlo jednostavne (mislim, samo inicijalizacija grafike, PutPixel i LineTo), ali su dovoljno informativne za to što te zanima.
pascal.839 draganm,
Ortak me je zamolio da vam ostavim njegovih ruku delo u ovoj konferenciji ...... Radi se o rutinama za user interface u textualnom modu ....
pascal.840 peca.st,
!-> Da li ima neko zamenu za rutine put i get !-> image koje brže rade nego one iz !-> graph-unti-a.Ako neko ima zamolio bih ga !-> da mi ih pošalje ima ss-ovac al ne da. :( Peđa.
pascal.841 eagle,
>! -> Da li ima neko zamenu za rutine put i get >! -> image koje brže rade nego one iz >! -> graph-unti-a.Ako neko ima zamolio bih ga >! -> da mi ih pošalje > > ima ss-ovac al ne da. :( Stiče se utisak da ih ipak nema... ajde SS, demantuj! ) ( < E > ) (
pascal.842 ssokorac,
─┼┤ ima ss-ovac al ne da. :( Ma, već sam ti rekao, rade samo u specifičnim slučajevima :(.
pascal.843 bearboy,
║ Dobro, možda je jednostavnije ovakvo pitanje :). Šta je uopšte page-iranje ║ video memorije, kako se vrši i tako to? :) Hajde, pliz, ako neko bar malo može ║ o tome da napiše... Verovatno nisam najkompetentniji, al' ajd :) 'Vako - Neke video kartice imaju više memorije na sebi nego što koriste u trenutačnom videjo modu. Zato se dostupna memorija podeli na pejdžove, i ti možeš da pomeraš page window (64K - od A000 do B000) da prikazuje ne prvih 64K na video kartici, već deo od 64K do 128K, tj. drugi pejdž. Tako npr. VGA kartica sa 256K ima 4 pejdža u 320x200x256. Ovo pejdžovanje se koristi za brzo iscrtavanje - dok je na prvom skrinu neka slika, ti radiš na drugoj stranici i kad si gotov, proglasiš tu drugu za aktivnu, itd. E sad, ista tehnika se koristi ako radi sa SVGA modovima, gde se mora pristupiti više od 64K odjednom (npr 640x480x256 - 307K) i tu se tih 307K potrebnih za to datu rezoluciju podeli na blokove (bankove) od 64K i aktivna bnaka se menja po potrebi. Kako se radi ? Ako hoćeš obično listanje u nižim video modovima, koristiš SETVISUALPAGE i SETACTIVEPAGE. Ako hoćeš da koristiš SVGA modove, onda skini VGADOC2.ARJ i tamo piše posabno za svaki čip-set.
pascal.844 mrmf,
Jel zna neko kako da nateram spiker da odsvira akord? Ili da to bar tako nekako zvuci :) Brada
pascal.845 mmile,
> Jel zna neko kako da nateram spiker da odsvira akord? Ili da to > bar tako nekako zvuci :) uses crt; const c = 131; e = 165; g_ = 208; š _ = # ć c_ = 139; f = 175; a = 220; d = 147; f_ = 185; a_ = 233; d_ = 156; g = 196; b = 248; var dtime : word; š delay time ć Function Power2(n : byte) : word; š n-ti stepen broja 2 ć begin if n=0 then power2:=1 else power2:=2*power2(n-1); end; Function Frequency(base : word ; n:byte) : word; var w:word; begin Frequency:=base*power2(n-1); š racuna ton n-te oktave ć end; Procedure Play(s,d : word); begin sound(s); š frekvencija s u trajanju d ć delay(d); end; begin dtime:=60; repeat play(Frequency(c,1),dtime); š C - dur C E G ć play(Frequency(g,1),dtime); play(Frequency(e,1),dtime); until keypressed; nosound; readkey; repeat play(Frequency(d,1),dtime); š D - mol D F A ( valjda? ) ć play(Frequency(f,1),dtime); play(Frequency(a,1),dtime); until keypressed; nosound; readkey; end. Ako hoces da ubrzas smanji vrednost dtime Mozes i sam da napravis proceduru koja "izracunava" koje tonove akord sadrzi na sledeci nacin : Poredjas sve tonove u krug C C# D D# E F F# G G# A A# B C C#... Ako sviras dur odaberes ton ( ciji dur sviras) pa akord izgleda ovako 1. ton koji si izabrao 2. ton koji si izabrao + ton cetiri mesta desno od njega 3. ton koji si izabrao + ton sedam mesta desno od njega npr. C - DUR izgleda ovako C C# D D# E F F# G G# A A# B C C#... 1 0 0 0 1 0 0 1 pa c dur cine tonovi C,E i G Ako sviras mol onda isto samo mesto (10001001 ide 10010001)
pascal.846 pedjak,
> Ortak me je zamolio da vam ostavim njegovih ruku delo u ovoj > konferenciji ...... Radi se o rutinama za user interface u > textualnom modu .... Što su tako nevidljive ;) ?
pascal.847 beast,
Da li je trač ili istina da BP 7.0 pravi stringove proizvoljne dužine (length>256) i kako?
pascal.848 eagle,
Yo! Kako da uklonim rezidentni program?
pascal.849 darone,
>> > konferenciji ...... Radi se o rutinama za user >> > interface u textualnom modu .... >> Što su tako nevidljive ;) ? _Neviđeno_ su brze ;)) darone
pascal.851 skerl,
Evo jes jedne zezalice na temu pacova. Mali unit sa sav moguci pad sa doticnim. Pozdrav, Skerl. tp-rat.zip
pascal.852 skerl,
┌────────────┐ │ BP7SB 1.00 │ └────────────┘ BP7SB 1.00 is a Source Beautifier for Turbo / Borland Pascal sources up to Version 7.0. Pozdrav, Skerl. bp7sb100.zip
pascal.853 janko,
> delay(d); > dtime:=60; Da li je ovo kritično? Ako TP koristi dos tajmer, koji kuca 18.2 puta u sekundi? Zbilja, zna li neko da li DELAY u Borland programima ima i rezoluciju od jedne milisekunde ili su samo jedinice milisekunde? I, inače, ume li neko da objasni kako ostvariti, ne koristeći DELAY, rezoluciju od manje od 18.2 puta u sekundi, a da se ne unište tajmeri koji su potrebni sistemu?
pascal.854 dejanr,
========== borland/turbo.pascal #6652, from hkenner, 766 chars, Sun Mar 21 16:07:53 1993 Comment(s). ---------- TITLE: Funny bug ... Here's a strange one. A TP program--not a very complicated one--that runs fine compiled by Turbo 5.5 but develops a funny bug when compiled by Borland 7.0. The bug kicks in when I select a very straightforward option for massaging input lines. On that option being selected--not operated, mind you, just selected--we get a long error message to the effect that QEMM has reported an Illegal Instruction. We're also told the contents of all CPU registers, and the text (in machine code) of the alleged Illegal Instruction. We can now either get out of the program or reboot. What further info would you like? Understand, it's no hardship to revert to the TP-5.5 compiler. I thought maybe Borland would like to examine this oddity. --HK ========== borland/turbo.pascal #6654, from abailey, 265 chars, Sun Mar 21 17:30:56 1993 Comment to 6652. Comment(s). ---------- If you compile with BP 7.0 with a real mode target do you get the same reaction? If it only happens with protected mode targets, it's probably a bad pointer, either NIL or not properly created. In protected mode you can't just make up absolute pointers. >>>ALB<<< ========== borland/turbo.pascal #6655, from hkenner, 170 chars, Sun Mar 21 18:21:47 1993 Comment to 6654. ---------- No pointers used by the program, as far as I remember. If you're talking about pointers the compiler might invoke ... I'll try real mode target and see. Thanks. --HK
pascal.855 dejanr,
========== borland/turbo.pascal #6664, from adamwheeler, 872 chars, Wed Mar 24 19:19:18 1993 Comment to 6093. Comment(s). ---------- I am having a similar problem with Borland Pascal with Object (7.0) and QEMM 6.0 2 with Stealth disabled on a 386SX. The problem is: if QEMM (and only QEMM is causing this) is installed, BP is not interpreting the keyboard scan codes properly. WHen the IDE first starts running, it acts as if I am pressing the shift key continuously. (This block marks text in the edit window). If I press CTRL or ALT, thereafter the IDE acts as if I am holding that particular key down! Eventually all you can do is type ALT-X to exit, and when I get to DOS the problem still exists! (then it is reboot time, since nothing else can be done). I have verified that it is a software conflict with QEMM and QEMM alone. TURBO.EXE, supplied with BP 7.0, does not exhibit this problem, and TDx runs fine with QEMM. If any one can help, it would be appreciated!!! Thank you, David Robb ========== borland/turbo.pascal #6665, from abailey, 855 chars, Wed Mar 24 20:17:50 1993 Comment to 6664. ---------- The problem isn't QEMM directly. What is happening is too many keyboard interrupts when running protected mode, in particular when the NumLock light is lit. It stems from the way enhanced keyboards generate keystrokes. When the NumLock is on a single keypress can generate up to 4 rapid interrupts on each press and release. In protected mode the overhead for servicing the interrupts causes some to be lost. It shows up as "stuck" Shift Alt and ctrl keys and random characters as you cursor through text. What to do about it, I don't know. I've tried a number of fixes and none have done the job. Turning off the NumLock will help the situation. The one true solution is a faster machine. I'm finding a 40 MHz 386 is about a minimum. I've heard it suggested that another keyboard might help but so far I haven't found one that helps enough. >>>ALB<<< ========== borland/turbo.pascal #6666, from adamwheeler, 1009 chars, Sat Mar 27 07:18:15 1993 Comment to 6665. Comment(s). ---------- REF: Keyboard problem with BP 7.0 and QEMM I finally called tech support, and was given a solution IMMEDIATELY! Unfortunately it involves running a TSR supplied with DOS, but it works... KEYB, the memory-resident international keyboard support program supplied with DOS 5 installs it's own keyboard interrupt that intercepts the original BIOS keyboard interrupts. This interrupt seems to work much better than the one I have installed in my BIOS, because it works now... the problem w as timing differences (pretty much what you explained). The reason a faster computer may seem to solve the problem is that the BIOS is probably newer and has better keyboard functions. My BIOS is dated sometime in 1988 - and is generally BAAAD (It has a problem with floppy drives when the motherboard's floppy controller is disabled, and probably some others I haven'td iscovered yet). THis solved the problem on my machine, hopefully it will help you. Thank you, David Robb ========== borland/turbo.pascal #6667, from abailey, 568 chars, Sat Mar 27 08:18:33 1993 Comment to 6666. ---------- Glad it worked for you. I tried KEYB and a half dozen other key interrupt replacement programs and couldn't get it to work. I run on Novell and I think the network shell is adding some extra overhead which pushes it to far. I wish I knew what Windows 3.1 does to the Keyboard interrupt. If I run BP 7.0 from Windows, the keyboard works perfectly even if I turn off the machines turbo switch and drop down to 8 MHZ. So far this is the only complete fix, for even very slow machines. Now if I knew what they did and could get Borland to add it to RTM.... :) >>>ALB<<<
pascal.856 ssokorac,
─┼┤ SETVISUALPAGE i SETACTIVEPAGE. Ako............ Problem je što čak ni na najobičnijem 320x200x256 ove procedure ne rade kako treba. :( Tačnije, ActivePage je UVEK 4, a visual može da se menja kako hoću. Istina, meni ove procedure ne rade dobro ni u jednom modu :( možda nešto u njima ne valja... Ima li neko ideju kako ovo rešiti?
pascal.857 pele,
>=} Yo! Kako da uklonim rezidentni program? MARK & REPLACE. pele.
pascal.858 bulaja,
│Da li je ovo kriticno? Ako TP koristi dos tajmer, koji kuca │18.2 puta u sekundi? Zbilja, zna li neko da li DELAY u Borland │programima ima i rezoluciju od jedne milisekunde ili su samo │jedinice milisekunde? └─── Izgleda da su sada zaista milisekunde (bar u Borland C++ biblioteci), evo sta kaze BC++ 2.0 manual za delay(): "It is no longer necessary to make calibration call to delay before using it. delay is accurate to milisecond."
pascal.859 ssokorac,
─┼┤ BP7SB 1.00 is a Source Beautifier for Turbo / Borland Pascal ─┼┤ sources up to Version 7.0. Ulepšavač programa? :) Ukratko, šta radi? :)
pascal.860 dusanp,
=> MARK & REPLACE. Cut & Glue? Valjda si mislio na MARK & RELEASE ? :)
pascal.861 pedjak,
> Da li je trač ili istina da BP 7.0 pravi stringove proizvoljne > dužine (length>256) i kako? Kol'ko sam čuo, istina je. Postoji novi tip PChar koji to omogućava ( kao u C-u )
pascal.862 mrmf,
> Ako hoces da ubrzas smanji vrednost dtime > > Mozes i sam da napravis proceduru koja "izracunava" koje tonove > akord sadrzi Fala ti, spaso si mi zivot :) Brada
pascal.863 vitez.koja,
#=> Da li je ovo kritično? Ako TP koristi dos tajmer, koji #=> kuca 18.2 puta u sekundi? Zbilja, zna li neko da li #=> DELAY u Borland Ne koristi dos tajmer. Naime, ako se neki program koji se bavi zvukom startuje dok je racunar u nizoj brzini, pa se onda kad je program vec ucitan racuanr prebaci u turbo mod, desavaju se prilicno zanimljive stvari ;)) i delay postaje atrakcija, zanimljiiva a nekorisna. (8/25 Mhz 386)
pascal.864 skerl,
│ Ulepsavac programa? :) Ukratko, sta radi? :) └───── Sto da ti prepricavam kad je autor sve sam rekao :) Introduction ──────────── BP7SB is a useful tool with many options to format Pascal code in a consistent form. BP7SB uses default values to reformat the source code, but with the options you can develop some other shape. It makes your code OPTICALLY beautiful. BP7SB - if you want - makes keyword conversion (lower, mixed, upper case or according to your own pattern). BP7SB - if you want - structures loops. BP7SB - if you want - arranges record and object structures. BP7SB - if you want - sets the length of source code line. BP7SB - if you want - inserts space characters to make your source code better readable. But BP7SB does not check for syntax errors. The original source file will be saved as a *.BAK backup file. You don't use .BAK, .COM, .DLL, .EXE, .OBJ, .RES, .TPP, .TPU or .TPW files as input. If you don't use extension after the input file name, .PAS will be added. Standard wildcards may be used. BP7SB 1.00 recognizes following builtin keywords: 739 functions 197 procedures 62 reserved words 93 types 409 variables and constants Pozdrav, Skerl.
pascal.865 ognjen,
)-> Yo! Kako da uklonim rezidentni program? CTRL + ALT + DEL
pascal.866 vitez.koja,
#=> Ulepšavač programa? :) Ukratko, šta radi? :) verovatno za situaciju var b : boolean; pretvara if b=true u if b Mora se rec' da je ovo drugo lepse :)
pascal.867 eagle,
>> ─┼┤ SETVISUALPAGE i SETACTIVEPAGE. Ako............ > hoću. Istina, meni ove procedure ne rade dobro ni u jednom modu > :( možda nešto u njima ne valja... Jesi probao sa najobičnijim egavga.bgi drajverom, u vgamed modu?
pascal.868 jasicp,
Zna li neko puno ime i prezime dobre biblioteke za rad sa bazama podataka ( ne mora DBF kompatibilno ) a da je u TPascalu ? Pozeljno je da je Object tipa, kao isporuceni objekti. Izgleda da ce mi neko odgovoriti " I sta da ti otpeva jos ...". Pozdrav , Djape !
pascal.869 dejanr,
>> > Da li je trač ili istina da BP 7.0 pravi stringove proizvoljne >> > dužine (length>256) i kako? >> >> Kol'ko sam čuo, istina je. Postoji novi tip PChar koji to omogućava >> ( kao u C-u ) Da, to je postojalo još u TP for Windows 1.0. Samo, za te stringove mora da se koristi potpuno odvojen set funkcija.
pascal.870 skerl,
Evo objasnjenja kako se podesavaju boje u Turbo Vision-u. Pozdrav, Skerl. tvcolor.zip
pascal.871 ppekovic,
>> Zna li neko puno ime i prezime dobre biblioteke za rad sa bazama >> podataka ( ne mora DBF kompatibilno ) a da je u TPascalu ? >> Pozeljno je da je Object tipa, kao isporuceni objekti. Ima ns FFS-u u dir-u /msdos/prog/pascal fajl tbase101.zip. Paya P.S. FFS 237 23 92 i 237 23 93 login: guest
pascal.873 isekulovic,
Onaj SFE (Stroked font editor) koji se nalazi u jednom od sezamovih direktorijuma je poprilično bagovit. Uzeo sam bio litt.chr i malo menjao i sve je bilo ok dok nisam hteo da ga snimim pod drugim imenom. Sfe je snimio,nije da nije, ali taj font pod novim imenom jednostavno nije hteo da se prikaže ni u jednom programu. Instalacija fonta bi prošla ok, bez poruke o grešci ali bi jednostavno umesto tim fontom program pisao default fontom. Onda je taj font odnesen na jedan drugi comp gde je učitan u onaj font editor koji visi u jednoj od pascal tema (drugi comp je bio neophodan jer moj ima herca a ovaj drugi editor je vga only) i samo snimljen pod nekim trećim imenom i kao takav vraćen na moj comp gde je savršeno radio, sve dok nisam poželeo da unesem još neke izmene. Izmene koje sam vršio u fontu pomoću sfe-a nisu zeznjavale font samo ako nisam snimao font pritiskom na F2, već ako bih krenuo da izađem iz editora, pa mi on ponudio da snimi a ja odgovirio sa <enter>. Naravoučenije: Ako imate vga dalje ruke od sfe-a. Nadam se da nisam mnogo ugnjavio, a biću srećan ako sam nekome ovim pomogao. Ivan
pascal.874 peca.st,
Pokušao sam da neki .OBJ fajl koristim u pascalu. ja lepo definišem proc & func i onda lupim external, prethodno stavim $L IME i ne radi. :( Kaže "Invalid PUBLIC definition (IME.OBJ). E možda je probelm što je obj napravljen iz C-a, pa sam void funkcije definisao kao procedure nisam znao kako. u glavnom, šta ne valja? Peđa. P.S. Sori za konfuznost, on line. :)
pascal.875 pele,
>=} => MARK & REPLACE. >=} >=} Cut & Glue? Valjda si mislio na MARK & RELEASE ? :) Jap,jap...Ko radi,taj i greši :)) pele.
pascal.876 ppekovic,
>> je probelm što je obj napravljen iz C-a, pa sam void funkcije >> definisao kao procedure nisam znao kako. u glavnom, šta ne valja? Za početak, da li si u tom c modulu definisao funkcije za prenos parametara kako to pascal više voli, tj. nešto kao: void pascal bla(); Ako nisi, prvo to uradi pa onda da mislimo dalje. Paya
pascal.877 ssokorac,
─┼┤ Jesi probao sa najobičnijim egavga.bgi drajverom, u vgamed modu? Odseca dodnji deo ekrana :(.
pascal.878 .obj,
> Kaže "Invalid PUBLIC definition (IME.OBJ). E možda > je problem što je obj napravljen iz C-a, pa sam void funkcije > definisao kao procedure nisam znao kako. u glavnom, šta ne valja? Ne bih da tvrdim da ne može, ali ćeš jako teško povezati C sa TP. Nije samo do deklaracije, već se uz tvoju proceduru u C-u mora vezati i C-ova biblioteka, a TP nema linker koji vezuje i LIB-ove (a i da ima, opet bi druge stvari zezale ;). Eventualno možeš da povežeš sa TP neke trivijalne procedurice koje ćeš mnogo lakše da napišeš u TP. Ako mene pitaš, batali posao i napiši proceduru u paskalu (ili asembleru).
pascal.879 pedjak,
> Zna li neko puno ime i prezime dobre biblioteke za rad sa bazama > podataka ( ne mora DBF kompatibilno ) a da je u TPascalu ? Paradox Engine 3.0
pascal.881 mrmf,
Jel piso neko nesto sa podrskom sound blastera? Brada
pascal.882 peca.st,
!-> Odseca dodnji deo ekrana :(. Imaš 512K, pa nema dovoljno memorije za pune 2 strane. Isti slučaj i kod mene, ali je za većinu slučajeva dovoljan... Peđa.
pascal.883 peca.st,
!-> Za početak, da li si u tom c modulu !-> definisao funkcije za prenos parametara !-> kako to pascal više voli, tj. nešto kao: !-> void pascal bla(); Nisam razumeo baš. :( Na primer, definicija ide ovako: void trt_mrt (int a, int b, char c) ili int mrt_trt (void) (ima raznih kombinacija, void sa parametrima, void bez, ili na primer int sa parametrima, ili bez...) Peđa.
pascal.884 peca.st,
!-> trivijalne procedurice koje ćeš mnogo !-> lakše da napišeš u TP. Ako mene pitaš, !-> batali posao i napiši proceduru u paskalu !-> (ili asembleru). Nisu trivijalne. :( Neki interapti, čuda, koje sam pokušao da prevedem na pascal ali teško ide. Peđa.
pascal.885 peca.st,
Jedna #define komanda u C-u mi izgleda ovako: #define TRT 0x21; Kako to da prevedem na pascal? (problem je u 0x21...) Peđa.
pascal.886 dejanr,
>> #define TRT 0x21; Najpribližnije bi bilo: const trt = $21;
pascal.887 smiloradovic,
)># define TRT 0x21; )> )> Kako to da prevedem na pascal? )> (problem je u 0x21...) recimo kao const mrt=$21;
pascal.888 korvin,
­­>># define TRT 0x21; Ovo je čista krađa :) Baš sam juče imao 100% istu tu liniju u mom programu trt.c :) Od sada da se zna TRT(c) is registred trademark :)
pascal.889 dgrbic,
:: Za početak, da li si u tom c modulu definisao :: funkcije za prenos parametara kako to pascal više voli, :: tj. nešto kao: :: :: void pascal bla(); Jer ako nije, onda se i funkcija u .obj fajlu ne zove bla nego _bla, na šta greška koju prijavljuje TP po svoj prilici ukazuje.
pascal.890 eagle,
> ─┼┤ Jesi probao sa najobičnijim egavga.bgi drajverom, u vgamed > modu? > Odseca dodnji deo ekrana :(. Kod mene radi kako treba. Možda ipak nisi stavio u vgamed(u vgahi odseca donji deo). Uzgred, kad imaš više strana, default je nulta. ) ( < E > ) (
pascal.891 skerl,
────────────────────────────── INSIDE TURBO PASCAL UNIT FILES Version 6.0 for MS-DOS Version 1.0 for WINDOWS ────────────────────────────── ABSTRACT If you want to know what is in a .TPU (unit) file produced by either Version 1.0 of Turbo Pascal for Windows or by Version 6.0 of Turbo Pascal from Borland International, then this paper is for you. It doesn't explain quite everything since the I don't have access to secret documents or anything like that and since some of the data in .TPU files just doesn't have enough auxiliary information to make its role clear. However, it is possible to learn a great deal about how Turbo Pascal organizes the information it needs to refer to, and it is also possible to learn just what kind of code the compiler produces. This is the fourth in a series of reports on the subject of Turbo Pascal Units, the previous reports treating with Turbo Pascal Versions 5.0 through 6.0. The evolution of these files in the face of changing requirements has been fascinating to behold and deciphering their contents has been challenging to say the least. The programs supplied with this report have been reorganized from their 6.0 style and many identifiers have been changed. There are also a few bug fixes and algorithm changes. Other changes were dictated by the changes in the utilization of the TPU file itself by the Windows Compiler. Since I have a "real" job which requires my full attention, and since it doesn't involve use of these products in any direct way, I am usually hard-pressed to find the personal time to conduct this research. Consequently, I always refuse to commit to follow-up or even error correction. It would be irresponsible of me to pretend it could be otherwise. Even so, this is a revised report which contains a few error fixes and discusses the newly enhanced program which incorporates these fixes and sports some enhanced capabilities. Strasna stvar! Pozdrav, Skerl. twu1.zip
pascal.892 ppekovic,
>> void trt_mrt (int a, int b, char c) ili >> int mrt_trt (void) Umesto ovog kucaj: void pascal trt_mrt (int a, int b, char c) ili int pascal mrt_trt (void) i iz pascal programa ih pozivaj sa _trt_mrt i _mrt_trt, kao što Grba reče. Paya
pascal.893 eagle,
>! -> Odseca dodnji deo ekrana :(. > Imaš 512K, pa nema dovoljno memorije za pune 2 strane. > Isti slučaj i kod mene, ali je za većinu slučajeva dovoljan... 512Kb bi bilo dovoljno za tri strane u 640*480*16 (lako izračunaš da jedna strana zauzima tačno 150Kb), ali egavga.bgi radi samo sa 256Kb. ) ( < E > ) (
pascal.894 eagle,
> Jel piso neko nesto sa podrskom sound blastera? Ako ti treba dobra muzika, skini odavde jedan unit koji svira module(.mod) u pozadini. Podržava Disney sound card, koja je valjda kompaktibilna sa SB. ) ( < E > ) (
pascal.895 peca.st,
!-> Najpribližnije bi bilo: !-> const trt = $21; Hvala. :) Peđa.
pascal.896 vvelisavljev,
> Jel piso neko nesto sa podrskom sound blastera? Prošao je ovuda jedan zgodan unit koji svira *.mod, ali nisam siguran da li podržava SB. (verovatno da)
pascal.897 peca.st,
!-> Umesto ovog kucaj: !-> i iz pascal programa ih pozivaj sa !-> _trt_mrt i _mrt_trt, kao što Grba reče. Evo prepravio sam da tako bude i neće. :( Da li da funkcije koje su void u Cu definišem kao procedure (kako sam do sada radio) ili nekako drugačije? Da li treba da konstante koje sam definisao u Cu definišem i u pascalu? Puno hvala. Peđa. P.S. Radim sa Turbo C-om 2.0, ako je to bitno.
pascal.898 .obj,
> Jer ako nije, onda se i funkcija u .obj fajlu ne zove bla nego _bla, na šta > greška koju prijavljuje TP po svoj prilici ukazuje. Neće biti :) žim se funkcija deklariše kao 'pascal', dodeljuje joj se ime bez '_'. Peco.st, evo jednog ludog predloga. Lud je zato što ja zaista ne vidim način da uradiš to što želiš osim ovoga, koji je lud ;). Dakle, prevedi program u C-u sa prekidačem koji će modul prevesti u asembler, kod TC-a je to -S. Zatim promeni deklaracije segmenata: sve koje nisu _TEXT, _DATA, _xxx_DATA obriši, sve _TEXT promeni u CSEG. Ako u dotičnom C modulu imaš podatke koji su inicijalizovani (stringovi, na primer), mislim da ćeš imati toliko komplikacija da ti ni bog otac neće pomoći: Turbo Pascal ne podržava inicijalizaciju podataka u DATA segmentu, na žalost. Ako nema dotičnih inicijalizovanih podataka u _DATA segmentu, onda sve _DATA promeni u DATA. Sve to asembliraj ;) i onda probaj. Ja sam po prirodi optimista, ali mislim su ti šanse da povežeš C sa TP 1:100 :) Osim ako uspeš ovo malopre, onda je 1:50 :)
pascal.899 skerl,
Neko je trazio neki unit za rad sa bazama. Evo jednog ************************************************************************** Tbase Ver 1.1 Object for manipulating Dbase files. For Turbo Pascal 6.0 ************************************************************************** Pozdrav, Skerl. tbase601.zip
pascal.900 beast,
>>>> Pozeljno je da je Object tipa, kao isporuceni objekti. >> >> Ima ns FFS-u u dir-u /msdos/prog/pascal fajl tbase101.zip. Ili još bolje, uzmi Paradox Engine 2.0.
pascal.901 predragd,
> Kol'ko sam čuo, istina je. Postoji novi tip PChar koji to > omogućava To baš i nije novost. Postoji i u verziji TP-a 6.0. Peđa.
pascal.902 peca.st,
!-> Ja sam po prirodi optimista, ali mislim !-> su ti šanse da povežeš C sa TP 1:100 :) !-> Osim ako uspeš ovo malopre, onda je 1:50 !-> :) Eh, hvala ti .obj na svemu napisanom, ali ja ne znam ni trunku assemblera. :( Ako je stvarno tako kako kažeš, onda me nisi baš razveselio. Peđa.
pascal.903 dgrbic,
:: !-> Umesto ovog kucaj: :: :: !-> i iz pascal programa ih pozivaj sa :: !-> _trt_mrt i _mrt_trt, kao što Grba reče. :: :: Evo prepravio sam da tako bude i neće. :( Eh, ako su deklarisane kao pascal u c-u tj. void pascal trtmrt(); onda ne treba, čini mi se, dodavati _ ispred imena, to c sam dodaje na funkcije koje su deklarisane kao Cdecl (a sve su automatski tako deklarisane ako se ne naredi drugo, što može da se uradi i iz setupa kod turbo c-a). Pažnja: Neko ti već reče, ne smeš u c funkciji pozivati funkcije iz biblioteke! (ali možeš pozivati pascal funkcije i procedure, al to je već komplikovano). :: Da li treba da konstante koje sam definisao u Cu :: definišem i u pascalu? Ako su to #define, onda ne treba. C predprocesor ih samo zameni tamo gde ih nađe u tekstu i to je to.
pascal.904 dgrbic,
:: u pozadini. Podržava Disney sound card, koja je valjda :: kompaktibilna sa SB. Nije! Disney sound card je kompatibilna sa covox-om, što će reći, običan D/A konverter na LPT1 portu. SB ima nekoliko kanala itd.
pascal.905 dgrbic,
:: Neće biti :) žim se funkcija deklariše kao 'pascal', :: dodeljuje joj se ime bez '_'. Znam, al on nigde nije rekao da li ih je deklarisao kao pascal, a ako nije... to je ono o čemu sam pričao ;)
pascal.906 mrmf,
>> Jel piso neko nesto sa podrskom sound blastera? > > Ako ti treba dobra muzika, skini odavde jedan unit koji svira > module(.mod) u pozadini. Podrzava Disney sound card, koja je > valjda kompaktibilna sa SB. U svakom slucaju cu ga skinuti, ali bi meni vise odgovarao nacin kako da uvalim nesto odma na $220... Brada
pascal.907 peca.st,
!-> Pažnja: Neko ti već reče, ne smeš u c !-> funkciji pozivati funkcije iz biblioteke! !-> (ali možeš pozivati pascal funkcije i !-> procedure, al to je već komplikovano). Au, moguće da zbog toga ne radi. :( Naime, ima jedna funkcija u toj biblioteci, koju nekoliko njih iz iste pozivaju. Baš mi i nije jasno zašto ne može, al ajde. :( Peđa.
pascal.908 peca.st,
!-> Pažnja: Neko ti već reče, ne smeš u c !-> funkciji pozivati funkcije iz biblioteke! !-> (ali možeš pozivati pascal funkcije i !-> procedure, al to je već komplikovano). Ponovo repliciram na isti citat: Ovo je _definitivno_ razlog zašto ne radi. Naime, pošto me je iznerviralo što ne radi, počeo sam da iz celokupne C biblioteke vadim jednu po jednu funkciju i onda pravim .OBJ od njih, pa zatim pascal u kome isto tako dodajem po jednu funkciju... Rezultat: Sve dok nisam uključio funkciju koja poziva neku drugu, sasvim normalno je radilo. E, sad, razmišljam da napravim posebnu C biblioteku u kojoj će biti samo ta funkcija koju ostale pozivaju, pa onda da stavim #include i da probam tako, jer mi ionako ta funkcija sama ne treba, nego samo preko ovih koje je pozivaju. Ja se _duboko_ nadam da će raditi. (kad radi sa #include <dos.h> zašto ne bi radilo i sa ovim?) Uh, možda dopišem rezultat u međuvremenu. :) Peđa. Evo dopisujem: Na žalost iskrsao je novi problem, zbog koga ne mogu ispitati ono gore: u zaglavlju C biblioteke imam definisano ovo: void interrupt (*radoman) (); E, čim pokušam da u pascal prebacim funkciju koja koristi pointer radoman ;) on neće. Šta da ubacim ako išta radi?
pascal.909 dgrbic,
:: Naime, ima jedna funkcija u toj biblioteci, koju nekoliko :: njih iz iste pozivaju. Baš mi i nije jasno zašto ne može, :: al ajde. :( Šta da ti kažem, probaj sa lib programom da "izvučeš" tu funkciju napolje, pa da i nju vežeš u pascal kao .obj fajl, možda proradi, nikad nisam probao tako nešto. I javi da li si uspeo :)
pascal.910 predragd,
> Problem je što čak ni na najobičnijem 320x200x256 ove > procedure ne rade kako treba. :( Tačnije, ActivePage je > UVEK 4, a visual može da se menja kako hoću. Istina, meni > ove procedure ne rade dobro ni u jednom modu :( možda Ako sam dobro razumeo pitanje, problem je u tome što ne rade procedure SetVisualPage i njoj srodne. Pa problem nije u njihovim "bubicama" već u samoj VGA. U rezolucijama 640x480 2 boje ($11), 640x480 16 boja ($12) i 320x200 256 boja ($13) postoji maksimalno 1 stanica. Tako da praktično, o ovim modovima, ne možete kotistiti date naredbe. Ovo važi za VGA kartice, a kakva je situacija sa SVGA karticama, ne znam. Peđa.
pascal.911 peca.st,
!-> Šta da ti kažem, probaj sa lib programom !-> da "izvučeš" tu funkciju napolje, pa da i !-> nju vežeš u pascal kao .obj fajl, možda !-> proradi, nikad nisam probao tako nešto. I !-> javi da li si uspeo :) žekaj čekaj malo... Ako je ja "izvučem" (uzgred, kako?), kako ću je onda pozivati u samom Cu? Mislim, moram je ponovo nekako vratiti u C, da bi imalo šta da se poziva. Peđa.
pascal.912 eagle,
> procedure SetVisualPage i njoj srodne. Pa problem nije u > njihovim "bubicama" već u samoj VGA. U rezolucijama 640x480 2 > boje ($11), 640x480 16 boja ($12) i 320x200 256 boja ($13) > postoji maksimalno 1 Zašto bi postojala samo jedna strana u ovom poslednjem? Inače, u modu $12 je moguće preći na drugu stranu, ali će biti odsečen deo prve, zbog nedovoljno memorije na kartici. (E)
pascal.913 dgrbic,
:: Ako je ja "izvučem" (uzgred, kako?), kako ću je onda :: pozivati u samom Cu? Mislim, moram je ponovo nekako :: vratiti u C, da bi imalo šta da se poziva. Nemam sad instaliran C na disku, ali je to bilo nešto u stilu: TLIB CLIBCE *imemodula ili nešto slično, pokreni tlib pa vidi šta kaže za sintaksu. Time se modul kopira iz lib fajla u još jedan primerak. Ne briše se.
pascal.914 predragd,
> Inače, u modu $12 je moguće preći na drugu stranu, ali će > biti odsečen deo prve, zbog nedovoljno memorije na > kartici. Ono što sam ranije naveo nije moja mudrost već je preneto iz knjige "Programmer's Guide to the EGA and VGA Cards" od Richard F. Ferraro. Što će reći, ako je čovek pogrešio i ja grešim. Ako je to što kažeš tako, onda nije nikakav problem pozvati BIOS umesto TP-ovih naredbi i uraditi posao, naravno na karticama koje imaju više memorije. Peđa.
pascal.915 peca.st,
!-> ili nešto slično, pokreni tlib pa vidi !-> šta kaže za sintaksu. Time se modul !-> kopira iz lib fajla u još jedan primerak. !-> Ne briše se. Hvala svima koji su pokušali da mi pomognu, ali rešio sam da više ne idem ovako. :( Probaću da prevedem to na pascal, ako budem uspeo - lepo, ako ne... :( Peđa.
pascal.916 eagle,
> Ako je to što kažeš tako, onda nije nikakav problem pozvati > BIOS umesto TP-ovih naredbi i uraditi posao, naravno na > karticama koje imaju više memorije. Pitanje je da li će procedure TP-a raditi sa ovako postavljenom stranom.. Ako neko hoće da proba: ah=$05, al=strana, prekid $10. (E)
pascal.917 peca.st,
!-> Probaću da prevedem to na pascal, ako !-> budem uspeo - lepo, ako ne... :( Najzad malo optimizma! Prevođenje ide mnogo lakše nego što sam mislio. :) Imam samo jedan problem: Kako prevesti ovo: int d; ... d = (int) (115200L / 1200); Problem je u ovom L. Hvala. Peđa.
pascal.918 dekiper,
Pa, ima rešenja, a mislim da je to var d:integer; d=Int(LongInt(115200)/1200); Ako nije ovako ne zameri jel' se dosad nisam mnogo zezao sa konvertovanjem P.S. Peđa, platićeš mi za ono u petak!!! Pozdrav, Dejan (Dekiper)
pascal.919 peca.st,
!-> d=Int(LongInt(115200)/1200); !-> Ako nije ovako ne zameri jel' se dosad !-> nisam mnogo zezao sa Ovako nije sigurno. ;) Umesto "d=" treba "d:=" ;), a osim toga int(x:real) vraća takođe real, pa mora round ili trunc. I onako problem nije bio u tome, nego u onom L. Hvala ti na odgovoru! Peđa.
pascal.920 mzdravkovic,
Imam jedan problem u vezi ucitavanja podataka iz datoteke. Naime hocu da svaki bajt iz datoteke stavim u neki niz, i to sam do sada radio na sledeci nacin: repeat read (ulaz,p); niz[x]:=p; x:=x+1; until eof(ulaz); p je promenjiva tipa Byte. Ovo radi, medjutim strahovito je sporo. Zamolio bih nekog da mi objasni kako ovo da prevazidjem.
pascal.921 dejanr,
>> repeat >> read (ulaz,p); niz[x]:=p; x:=x+1; >> until eof(ulaz); >> >> Ovo radi, medjutim strahovito je sporo. Zamolio bih nekog da mi >> objasni kako ovo da prevazidjem. var nmax: word; blockread (ulaz, niz[1], 60000, nmax) Ovim je gotovo trenutno napunjeno niz[1], niz[2], ... niz[nmax]. Na žalost, ne može se u jednom cugu pročitati više od 65535 bajta, tako da ovu naredbu moraš da staviš u petlju. žim izpadne nmax<60000, znači da si stigao do kraja fajla.
pascal.922 mzdravkovic,
>> var nmax: word; >> >> blockread (ulaz, niz[1], 60000, nmax) >> >> Ovim je gotovo trenutno napunjeno niz[1], niz[2], ... niz[nmax]. >> Na zalost, ne moze se u jednom cugu procitati vise od 65535 >> bajta, tako da ovu naredbu moras da stavis u petlju. Cim izpadne >> nmax<60000, znaci da si stigao do kraja fajla. Hvala za odgovor, ali imam jos jedno podpitanje: Posle ove naredbe niz ima popunjen potreban broj elemenata, ali promenljiva nmax dobija uvek neku vrednost manju od 100, a isprobavao sam na datotekama od po 20K. U uputstvu pise da je nmax procitan broj bajtova, medjutim to se kod mene nije tako ispalo ???? MZdravkovic
pascal.923 dgrbic,
:: Na žalost, ne može se u jednom cugu pročitati više od :: 65535 bajta, tako da ovu naredbu moraš da staviš u :: petlju. žim izpadne A ni niz ne može da mu bude veći od 64k tako da to nije bitno.
pascal.924 dejanr,
>> Posle ove naredbe niz ima popunjen potreban broj elemenata, ali >> promenljiva nmax dobija uvek neku vrednost manju od 100, a isprobavao >> sam na datotekama od po 20K. U uputstvu pise da je nmax procitan >> broj bajtova, medjutim to se kod mene nije tako ispalo ???? Joj, to sam zaboravio da ti kažem. Dakle, taj broj se izražava u nekim blokovima, koji su zbog kompatibilnosti sa nekim Turbo Pascalom 0.-1 dužine 128 ili tako nešto bajta. To više niko ne koristi, dakle kad otvaraš fajl, treba da ga otvoriš sa: reset (ime,1) odnosno, ako je za upis: rewrite (ime,1) posle toga će se dužine izražavati u bajtovima.
pascal.925 dejanr,
>> A ni niz ne može da mu bude veći od 64k tako da to nije bitno. Da... na žalost, ista priča i kod Borland Pascal-a 7.0, u protected modu. Za podatke 64 K :((( jedino što možeš na heap-u da alociraš 64 K po 64 K i tako sve dok ne napuniš onoliko mega koliko imaš RAM-a u kompjuteru. Ali 64 K za strukturu se i dalje "kezi" :(
pascal.926 bearboy,
║ 512Kb bi bilo dovoljno za tri strane u 640*480*16 (lako izračunaš da ║ jedna strana zauzima tačno 150Kb), ali egavga.bgi radi samo sa 256Kb. Nisam siguran, ali SVGAx.BGI bi trebao da radi kako treba ?
pascal.928 eagle,
> Nisam siguran, ali SVGAx.BGI bi trebao da radi kako treba ? Na OAK-u ne :(
pascal.929 dekiper,
Da li neko zna kako se iz Turbo Pascala kreiraju COM fajlovi? (Umesto standardnog EXE treba mi COM). Molim vas, hitno je. Pozdrav, Deki
pascal.930 dejanr,
>> Da li neko zna kako se iz Turbo Pascala kreiraju COM fajlovi? (Umesto >> standardnog EXE treba mi COM). Molim vas, hitno je. Koliko znam, nema načina. Jedino da uzmeš stari-prastari Turbo Pascal 3.0 ili 2.0 koji je pravio samo COM fajlove. Mada teško da to više iko ima, mnogo je davno bilo.
pascal.932 ssokorac,
─┼┤ Na OAK-u ne :( A ni na Tridentu :(.
pascal.933 dgrbic,
:: Da... na žalost, ista priča i kod Borland Pascal-a 7.0, u :: protected modu. Za podatke 64 K :((( jedino što možeš na :: heap-u da alociraš A za ovo (ovaj put :) nije kriv Borland, nego DPMI mehanizam. Kad naprave Pascal za 386, valjda će moći da se naprave i veće strukture.
pascal.934 dejanr,
>> A za ovo (ovaj put :) nije kriv Borland, nego DPMI mehanizam. Da, ali Borland reklamira Pascal 7.0 sa "finaly, no limits" ;)
pascal.935 ilazarevic,
> samo COM fajlove. Mada teško da to više iko ima, mnogo je davno bilo. Ima ga na timovima garantovano. Samo treba prebaciti... ;) ili raditi na timu ;(
pascal.936 vitez.koja,
#=> Ima ga na timovima garantovano. Samo treba prebaciti... #=> ;) ili raditi na timu ;( Oovaj ;) tim nije imao x86 procesor.
pascal.937 valhala,
elem, zanima me da li je moguce kontrolisati modem preko pascala, tj. da li mogu da uticem na njega programski tako da mi snima analogne(voice) informacije, pa da ih onda prevodi u digitalne(byte)?Mozda zvuci konfuzno, ali ne znam kako drukcije to da kazem. i jos nesto: kako bi ste recimo kompresovali datoteku tipa record rec:array[1..50] of char; opis_reci:array[1..300\400(nije bitno)] of char; da li je moguce koristiti za ovo neke metode date u racunarima kao primeri,recimo ona sa drvetom, nemam pri ruci racunare pa ne znam tacno njen naziv ali se radi o starijem broju r. unapred zahvalan, val.
pascal.939 mdrljaca,
Haj svima . Zanima me da li je moguće napraviti recimo stablo (binarno) ili recimo niz koji ću da bacim na disk a zatim da ga odma vrnem nazad.Znači bilo šta što je u memoriji bacim u neku datoteku a zatim da ga dignem odmah nazad po ulasku u program.Možda malko konfuzno pitam ali se nadam da ste shvatili.Za pretvaranje u niz pa sa block write i read znam ali da li može nekako brže da ne moram ponovo da pravim strukturu? Pozdrav, cope
pascal.940 dzakic,
>> Zanima me da li je moguće napraviti recimo stablo (binarno) ili recimo >> niz koji ću da bacim na disk a zatim da ga odma vrnem nazad. Bojim se da stablo koje formiraš na heapu i nije tako sekvencijalno u memoriji kako bi bilo zgodno blockwrite-u da ga odjednom zapišeš na disk. Opet, ako si siguran da je heap na početku bio prazan i da je u njemu ˙samo˙ tvoje stablo, onda možeš da snimiš deo memorije od HeapOrg do HeapPtr, zajedno sa stanjem pointera HeapPtr i da ga, kasnije, po učitavanju postaviš na istu vrednost. Ako nisi siguran da nije došlo do fragmentacije, onda snimi sve od HeapOrg do HeapEnd, ali ja nisam siguran da su to ˙sve˙ promenljive koje heap koristi za alociranje memorije. Valjalo bi probati... ┌─────────────┐ <- HeapEnd │ │ H │ │ │ free │ E │ │ │ │ A ├ ─ ─ ─ ─ ─ ─ ┤ <- HeapPtr │ │ P │ used │ │ │ └─────────────┘ <- HeapOrg Možda ti ova sličica pomogne da se lakše snađeš. U opštem slučaju, heap je proizvoljno dug, više od 64k a ova tri pointera su FAR tipa, dakle klasični paskalovi pointeri sa segmentom i ofsetom. Pozdrav, Zak
pascal.941 skerl,
Personal Communications Library For Turbo Pascal ( Version 4.0 & up) ( PCL4P ) Version 3.0 Jan 15, 1992 Introduction The Personal Communications Library for Turbo Pascal ( PCL4P ) is an asynchronous communications library designed for experienced software developers programming in Turbo Pascal. An IBM PC/XT/AT or compatible is required. The PCL features: o 26 communications and support functions. o Interrupt driven receiver. o Supports 300 baud to 115,200 baud. o Supports COM1, COM2, COM3, and COM4. o Adjustable receive queues from 8 bytes to 16 KB. o Control-BREAK error exit. o 17 communications error conditions trapped. o Allows 2 ports to run concurrently. o Complete modem control & status. o Written in assembly language for small size & high speed. Pozdrav, Skerl. pcl4p30.zip
pascal.942 .bale.,
He, davno je to bilo (kao i sve, izgleda, u mom slucaju) kad sam se time bakcao, ali zar nije sasvim razumno resenje otprilike da napravi binarnu datoteku sa slogom tipa cvora stabla, pa da obidje stablo u npr. preorder-u i snimi slog po slog (cvor po cvor) i pri ucitavanju isto tako, gledajuci sta je ucitao (da li moze da se grana ili ne...)? Regards from .bale. ! #:*)+-<
pascal.943 dzakic,
>> zar nije sasvim razumno resenje otprilike da napravi binarnu datoteku >> sa slogom tipa cvora stabla, pa da obidje stablo u npr. preorder-u i Pa i ja prvo na to pomislih, ali cope reče: >> Za pretvaranje u niz pa sa block write i read znam ali da li >> može nekako brže da ne moram ponovo da pravim strukturu? Nisam probao ono što sam mu opisao, ali je blockread/write sa blokovima od 64k sigurno brzi način (ako radi ;).
pascal.944 ppekovic,
>> Nisam probao ono što sam mu opisao, ali je blockread/write >> sa blokovima od 64k sigurno brzi način (ako radi ;). Neka napravi par procedura koje elemente stabla upisuju sekvencijalno u alocirani memorijski blok od 64K, pa kad se napuni, ili dođe do kraja neka flush-ne to u fajl. Nije problem napraviti, a i bilo bi brzo. Paya
pascal.946 marzi,
Koja knjiga je najbolja za pocetak i ucenje PASCAL-a.
pascal.947 almi,
Najbolja po meni je knjiga Milana žabarkape -Osnovi programiranja u Pascalu- ;Građevinska Knjiga Mišel.
pascal.948 beast,
>> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a. Milan žabarkapa - Pascal sa ekstenzijama Turbo Pascala
pascal.949 paki,
­>>> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a. ­> ­> Milan žabarkapa - Pascal sa ekstenzijama Turbo Pascala Ja iz te knjige nikad ne bih ništa naučio. Možda grešim, ali... Pola knjige je napisana u vidu zadataka (fuj,fuj,fuj :) pa mislim da je knjiga predviđena za udžbenik po školama (recimo, u MG se koristi). Šta znam, meni se više dopada DejanRov umetak nego ova knjiga, iz njega sam saznao mnogo više korisnih stvari.
pascal.950 mmile,
>>> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a. > > Milan žabarkapa - Pascal sa ekstenzijama Turbo Pascala A kasnije Turbo Pascal 5.5 Ivan Papes
pascal.951 spantic,
> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a. Pa nemaš baš neki izbor. Ako hoćeš da naučiš Pascal onda je najbolja knjiga tvoraca Pascala ( pogotovo ako si već malo familijaran sa nekim jezikom, imaš brz, referentni pregled ). Kod nas ju je izdala Mikro knjiga: Jensen-Wirth, Pascal priručnik. To ti u svakom slučaju preporučujem kao osnovu u svakom slučaju, uključujući i eventualnu kasniju želju za prelazak na Turbo Pascal, odnosno Borland Pascal. Za njihove ekstenzije ( da ne kažem novi jezik ) će ti biti potrebna nova knjiga. Za to ima više knjiga, ali verovatno će dobar izbor biti prevod "Turbo Pascal 6.0 kompletan vodič", osim cene, avaj. U svakom slučaju ne preporučujem knjige Duška Savića. Sam sam svojevremeno kupio njegovu knjigu "Turbo Pascal - naredbe i objekti" i ne mislim da sam iole pametno uložio novac.
pascal.952 dejanr,
>> Šta znam, meni se više dopada DejanRov umetak nego ova knjiga, iz >> njega sam saznao mnogo više korisnih stvari. Obzirom da sam više puta čuo pohvale za taj (inače 6-7 godina star) umetak, rešio sam da ga "osposobim" za upload i stavim ga u dir INFO, tamo se zove BAS2PAS.ZIP. Ne znam baš kako će "Računari" na to gledati al' valjda se neće baš previše ljutiti ;) Par stvari koje treba da imate u vidu pre nego što se rešite na download: - Umetak se zove "Sa bejzika na paskal" i naslov mu dobro odgovara - Nije posvećen Turbo Pascalu (jer u doba kad je pisan nit' sam imao Turbo Pascal nit' nešto na čemu bi ga "gonio" ;) već standardnom paskalu. - Neki delovi su "pregaženi vremenom", na primer uvod i poglavlje o stringovima. No većina teksta se odnosi na paskal uopšte i mislim da je dosta primenjiva. - U datoteci ima *više* nego u objavljenom umetku, jedan veliki listing koji tamo nije mogao da stane. Takođe, jedna slika koja je tehničkom greškom u "Računarima" izostavljena, a posle je objavljena ispravka ali je i iz ispravke slika nedostajala. Ako ispadne da i sada nedostaje... ;) - Pisan je na BBC-jevom tekst procesoru View a onda sa nekih kaseta prebačen na disk, pa sa diska na PC, pa tu konvertovan u WordPerfect format pa odatle u ASCII pa odatle u UYU format (imate i "raspakivač" u arhivi). Sve u svemu, Bog zna šta se tu sve poremetilo ali se ipak nadam da je velika većina ok :) - U tekstu se pominju izvesna ne-lica (iz sada ne više jugoslovenskih republika) i izvesne ne-reči u vezi sa socijalističkim samoupravljanjem ;> Srećno :)
pascal.953 dejanr,
========== pascal/turbo #4645, from klrv, 1858 chars, Mon Apr 26 16:07:55 1993 Comment(s). ---------- I just found a small (but annoying) bug in the STony Brook Pascal compiler. The program: -------------------------------------------------------- PROGRAM bugtest; VAR buffer : array[1..100] of char; bb : char; PROCEDURE myproc (VAR b : char); BEGIN b := buffer[6] END; BEGIN bb := '6'; buffer[6] := '5'; myproc(bb); writeln (bb) END. -------------------------------------------------------- I compile this program with the option //DATA:L. I don't specify any other options. bb is incorrect (it's not '5'). If I compile without any option, bb is '5'. The code generated is: 9 b := buffer[6] 0003 B8 0127 MOV AX, SEG _BSS 0006 8E C0 MOV ES, AX 0008 C4 5E 04 LES BX, WORD PTR [BP+4] 000B 26 A0 0005 MOV AL, BYTE PTR _BSS+5 000F 26 88 07 MOV BYTE PTR ES:[BX], AL At address 0006, ES is loaded with the segment of "buffer". This is the segment that should be used in the statement at address 000B. Unfortunately, ES is overwritten by the segment of "b" at address 0008. Result: the statement at address 000B, which is preceeded by the "ES:" prefix (hex 26), [by the way, the ES: prefix is _not_ displayed in the machine code in the rightmost column], is using the ES value which was intended for the statement at address 000F. The bug appears to happen during the peephole optimization. If I specify //NOOPTIMIZE:H, the correct code is generated: 0003 B8 0002 MOV AX, SEG _BSS 0006 8E C0 MOV ES, AX 0008 26 A0 0005 MOV AL, BYTE PTR _BSS+5 000C C4 5E 04 LES BX, WORD PTR [BP+4] 000F 26 88 07 MOV BYTE PTR ES:[BX], AL (which, by the way is just as efficient as the "optimized" one, but has the added benefit of being correct :-) :-)
pascal.954 paki,
­> U svakom slučaju ne preporučujem knjige Duška Savića. Sam sam ­> svojevremeno kupio njegovu knjigu "Turbo Pascal - naredbe i ­> objekti" i ne mislim da sam iole pametno uložio novac. Nisi jedini :(((
pascal.955 dr.grba,
>> U svakom slucaju ne preporucujem knjige Duska Savica. Sam sam svojevremeno >> kupio njegovu knjigu "Turbo Pascal - naredbe i objekti" i ne mislim da sam >> iole pametno ulozio novac. Znaci, nisam jedini ))):
pascal.956 miro,
ű> na disk. Opet, ako si siguran da je heap na početku bio prazan ű> i da je u njemu ˙samo˙ tvoje stablo, onda možeš da snimiš deo ű> memorije od HeapOrg do HeapPtr, zajedno sa stanjem pointera ű> HeapPtr i da ga, I još da je siguran da je stanje DOS memorije isto i pri drugom ulasku i da je upamtio i par neophodnih pointera i... ű> alociranje memorije. Valjalo bi probati... ...ako ima vremena za gubljenje.
pascal.957 pedjak,
> Pa nemaš baš neki izbor. Ako hoćeš da naučiš Pascal onda je najbolja > knjiga tvoraca Pascala ( pogotovo ako si već malo familijaran > sa Knjiga je sasvim ok, ali u vreme kad sam učio pascal to sam radio iz Nolitove knjige "Računarstvo sa programskim jezikom Pascal". Inače ova knjiga je prevod sa slovenačkog i svojevremeno se koristila u deželi kao udžbenik. Knjiga je vrlo fina, opisuje se najstandardniji pascal bez ikakvih ekstenzija. Preporučujem. > odnosno Borland Pascal. Za njihove ekstenzije ( da ne kažem novi > jezik ) će ti biti potrebna nova knjiga. Za to ima više knjiga, > ali verovatno će dobar izbor biti prevod "Turbo Pascal 6.0 > kompletan vodič", osim cene, avaj. Srećnim slučajem posedujem ovu knjigu i mogu ti baš reći da nisam preterano oduševljen sadržajem. Zamisli ona nosi naziv " Turbo Pascal 6.0 ", ali u knjizi nema ni jednog jedinog slova o upotrebi integrisanog asemblera, koji je jedan u glavnih noviteta u v6.0 :)) Inače nije loša, jer se obrađuju i neke opšte stvari kao što su algoritmi sortiranja, sa implementacijom. > U svakom slučaju ne preporučujem knjige Duška Savića. Sam sam > svojevremeno kupio njegovu knjigu "Turbo Pascal - naredbe i > objekti" i ne mislim da sam iole pametno uložio novac. Nemam neko lepo mišljenje o stilu Duška Savića, ali ja ovu knjigu mnogo koristim kao referencu. Kad ne mogu da se setim nekog parametra, ja lepo otvorim knjigu. Međutim, neki početnik će jako teško moći da nauči nešto iz ove knjige.
pascal.958 pedjak,
> I just found a small (but annoying) bug in the STony Brook Pascal > compiler. Jel ima neko iskustva sa ovim kompajlerom ? Kol'ko sam čuo potpuno je kompatibilan TP 6.0 i plus ima neke nove mogućnosti, kao što su memorijski modeli i sl. pedja
pascal.959 vitez.koja,
#=> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a. Milan žabavkapa : 'Osnovi programiranja u PASCALu sa ekstenzijom TURBO PASCALa'.
pascal.960 spantic,
> I just found a small (but annoying) bug in the STony Brook > Pascal compiler. Nije previše bitno, ali da li je ovo Pascal prevodilac za ATARI ST?
pascal.961 drmarke,
> Jensen-Wirth, Pascal priručnik. > > To ti u svakom slučaju preporučujem kao osnovu u > svakom slučaju, uključujući i eventualnu kasniju > želju za prelazak na Turbo Pascal, odnosno Borland > Pascal. Ovo nikako ne stoji. Sigurno da je knjiga najbolja za Pascal (mada mislim da ni za to nije baš najbolja, jer ima puno formalizama koji su potrebni samo za konstrukciju prevodioca, i da ne govorim o radu sa stringovima itd.), ali mislim da bi sigurno trebalo preporučiti čoveku neku knjigu o Turbo Pascal-u. Tu bi se kao početnička mogla zaista preporučiti Milanova knjiga (jeste da je prilično školska ali u najboljem smislu te reči), za nastavak mislim da je dobra i ona o TP 6.0 u izdanju Micro knjige. Zavisi od toga za šta je čovek zainteresovan da radi u Pascalu. Pozdrav DrMarke
pascal.962 dejanr,
>> Nije previše bitno, ali da li je ovo Pascal prevodilac za ATARI ST? Hmmm... ne bi trebalo, postoji Stony Brook za PC, oduvek sam želeo da vidim na šta to liči... ali taman kad im pisasmo za primerak za prikaz, uvedoše sankcije :(
pascal.963 valhala,
Kako se TACNO koriste direktiva {$L ime.filea} i exec komanda?Nemam literature za tp6.0 pa ne znam a ni tphelp mi nije bas od neke pomoci. Da li se na sezamu moze negde naci bilo sta o ovim osobinama tp-a? Val.
pascal.964 almi,
Ja sam se isto zaje*ao pa sam kupio obe njegove knjige (tp5.5 tp6.0) Ia,Ia,Ia,Ia :)
pascal.965 valhala,
Begging, pleeding, crying for help!:) Treba mi procedura koja ce ucitavati u pascal slike venturinog formata, odnosno venturine style-ove, ali tako da ja mogu da ih promenim i snimim opet u ventu- rin format. Znaci napravim style u venturi, ucitam ga pomocu te procedure, pa ga izbacim na ekran, unesem odgovarajuce podatke na odgovarajuca mesta, pa sve to lepo snimim opet kao ven. format da bih ga mogao stampati. Ili bi bilo jos bolje kada bih skinutu sliku mogao da stampam i onako, samo je iz nekog programa koji bi kori- stio tu proceduru srucim na stampac(po moguctstvu ne previse izopacenu:)znaci ako moze to onda ne mora da se snima kao vent. format slike.Nadam se da me bar neko razumeo:)))) Val.
pascal.966 eagle,
> Nemam neko lepo mišljenje o stilu Duška Savića, ali ja ovu > knjigu mnogo koristim kao referencu. Kad ne mogu da se setim > nekog parametra, ja lepo otvorim knjigu. Međutim, neki početnik ??? Sadržaj je sasvim OK, ali je to sve jaaakooo haotično sklopljeno u nešto što bi trebalo biti "priručnik za svakodnevni rad". Inače, imam pored ovog i jedan priručnik stanovitog Mihaila Šolajića, koji ima gotovo identične opise, pa čak i primere!!! Biće da su oba samo prevod nekog stranog priručnika, samo je D.Savić dodao elemente objektnog programiranja. BTW, preporučujem ovaj drugi, jer je stvarno lepo uređen. (E)
pascal.967 eagle,
> Kako se TACNO koriste direktiva š$L ime.fileać i exec > komanda?Nemam literature za tp6.0 pa ne znam a ni tphelp mi > nije bas od neke pomoci. Jednostavno definišeš procedure koje se nalaze u .obj fajlu sa external (staviš "external" posle zaglavlja), i onda (a možeš i na samom početku) staviš $L itd. Te procedure koristiš kao bilo koje druge :) Što se execa tiče, moraš pre i posle pozivanja da uradiš jedno swapvectors, da ti neki "neodgovorni" program ne bi poremetio vektore. Najsigurnije je da uvek pozivaš command.com : exec(getenv('comspec'),'/c '+ komandna_linija) Prvi parametar ti definiše datoteku koju pozivaš, a drugi komandnu liniju. U ovom slučaju pozivaš COMMAND.COM: getenv je funkcija koja vraća promenjivu tipa string, koju si postavio naredbom SET u autoexec.bat-u, ili koju DOS postavlja pri boot-ovanju. "Comspec" je path do command.com-a npr. ako butuješ sa diskete, comspec ti postaje a:Đcommand.com. Kao komandnu liniju možeš da staviš i internu komandu dosa. (E)Eagle
pascal.968 peca.st,
!-> Kako se TACNO koriste direktiva š$L !-> ime.fileać i exec komanda? Pa, koriste se onda kada ti trebaju. :) Šalim se. $L ImeFajla.OBJ se koristi kada želiš da iz nekog OBJ fajla prebaciš podatke u pascal. Tj, napravio si nešto u assembleru, od toga napravio OBJ fajl, i sad to treba povezati sa Pascalom. Za to služi $L. Međutim, prvo moraš definisati zaglavlja procedura koje se nalaze u tom OBJ fajlu, pa onda napisati da je to External procedura. Ako na primer u ZVRK.OBJ fajlu imaš procedure bla_bla (a : byte) i trt_mrt (x : real) onda to uradiš ovako: unit bez_veze; interface procedure bla_bla (a : byte); procedure trt_mrt (x : real); implementation š$L ZVRK.OBJć ------ (sori na ovom š i ć, imam YUSCII, to su vitičaste zagrade) procedure bla_bla; external; procedure trt_mrt; external; end. Što se tiče EXEC komande za to ti je stvarno dovoljan smo Help. Peđa.
pascal.969 spantic,
> Knjiga je sasvim ok, ali u vreme kad sam učio pascal to > sam radio iz Nolitove knjige "Računarstvo sa programskim > jezikom Pascal". Inače ova knjiga je prevod sa slovenačkog Kupio sam svojevremeno tu knjigu i nemam bog-zna kakvo mišljenje o njoj. Moguće je da je razlog što je knjiga bukvalno zamišljena za totalne početnike i u programiranju. > Nemam neko lepo mišljenje o stilu Duška Savića, ali ja ovu > knjigu mnogo koristim kao referencu. Kad ne mogu da se > setim nekog parametra, ja lepo otvorim knjigu. Međutim, > neki početnik će Da bi knjiga mogla da se koristi kao referenca, mora biti pregledna. A to se za istu ne može reći :(
pascal.970 dejanr,
>> Treba mi procedura koja ce ucitavati u pascal slike venturinog formata, >> odnosno venturine style-ove, ali tako da ja mogu da ih promenim i >> snimim opet u venturin format. Da li misliš na SLIKU koju Ventura prima ili na kompletnu stranu prelomljenu u Venturi? Za sliku u PCX ili IMG formatu možda i može nešto da se nađe, a za Ventura stranu... teško.
pascal.971 dejanr,
>> exec(getenv('comspec'),'/c '+ komandna_linija) >> >> Prvi parametar ti definiše datoteku koju pozivaš, a drugi komandnu >> liniju. U ovom slučaju pozivaš COMMAND.COM: getenv je funkcija koja >> vraća promenjivu tipa string, koju si postavio naredbom SET u >> autoexec.bat-u, ili koju DOS postavlja pri boot-ovanju. >> "Comspec" je path do command.com-a npr. ako butuješ sa diskete, >> comspec ti postaje a:Đcommand.com. Kao komandnu liniju možeš da >> staviš i internu komandu dosa. A tome svemu treba dodati da na početku programa koji će koristiti exec treba staviti nešto kao {$M 16000,0,0}. Takođe, ako se ne poziva COMMAND.COM nego direktno neki .EXE fajl, mora da se navede puno ime sa sve path-om i ekstenzijom, dakle recimo D:\RAZVOJ\PROJEKAT\PRG.EXE. Path je obavezan čak i ako je PRG.EXE u tekućem direktorijumu.
pascal.972 ajankovic,
Hitno potrebna knjiga "Turbo Paskal 5.5", od autora Ivana Papeša. Ma se ajankovic ili 011/101-728...
pascal.973 valhala,
Begging, pleeding, crying for help!:) Treba mi procedura koja ce ucitavati u pascal slike venturinog formata, odnosno venturine style-ove, ali tako da ja mogu da ih promenim i snimim opet u ventu- rin format. Znaci napravim style u venturi, ucitam ga pomocu te procedure, pa ga izbacim na ekran, unesem odgovarajuce podatke na odgovarajuca mesta, pa sve to lepo snimim opet kao ven. format da bih ga mogao stampati. Ili bi bilo jos bolje kada bih skinutu sliku mogao da stampam i onako, samo je iz nekog programa koji bi kori- stio tu proceduru srucim na stampac(po moguctstvu ne previse izopacenu:)znaci ako moze to onda ne mora da se snima kao vent. format slike.Nadam se da me bar neko razumeo:)))) Val.
pascal.974 valhala,
Kakav izgled treba da ima asm fajl ako hocu da ga sa tasmom pretvorim u .obj i da ga koristim u tpascalu 6.0? Znaci kako kad ga pisem u editoru treba da izgledaju pocetak i kraj( primer CSEG SEGMENT PUBLIC ASSUME CS:CSEG GLAVNI PROC FAR ... {program} GLAVNI ENDP CSEG ENDS END ovakav izgled ima jedan asm fajl koji sam skinuo sa sezama ali nisam siguran da li radi autor je neko pod sifrom >ciki<, ne znam o kome se radi, niti sta procedura radi(davno sam je skinuo:)) )) Val.
pascal.975 drmarke,
> Pascal 6.0 ", ali u knjizi nema ni jednog jedinog slova o > upotrebi integrisanog asemblera, koji je jedan u glavnih > noviteta u v6.0 :)) Pazi stvarno, ni u originalu nema ničeg o tome! Kako li si to primetio? Ja sam je baš lepo koristio i nisam primetio da to nema. Tek sad. Baš sam iznenađen. > Inače nije loša, jer se obrađuju i > neke opšte stvari kao što su algoritmi sortiranja, sa > implementacijom. I još mnoge lepe stvari: rad sa grafikom, pokazivačima, memorijom, portovima, objektima, Turbo-vizijom.... Pozdrav DrMarke
pascal.976 ssokorac,
─┼┤ sigurno trebalo preporučiti čoveku neku knjigu o Turbo ─┼┤ Pascal-u. Tu bi se kao početnička mogla zaista preporučiti Mislim da je ubedljivo najbolja knjiga o Turbo Pascalu za početnike, a i ne samo za početnike O'Brienova Turbo Pascal 6.0.
pascal.977 mdrljaca,
Pozdrav svima od drpr-a : Da li ste znali da TP6.0 (ne znam za ranije verzije) ima može se reći bag kod naredbe GOTOXY. Probelm je u sledećem: Ako koristite neki nestandardni mod (recimo uz pomoć Vgamax-a) ka recimo 30 redova * 80 kolona naredba gotoxy(1,28) će vas poslati u 1,1 a ne na željeno mesto.Problem se lako rešava pozivanjem interapta 10. Uz poruku prilažem malo rešenje koje se može modifikovati po želji i po kartici za razne oblike cursora. Pozdrav, Cope cursor.arj
pascal.978 valhala,
Evo da ilustriram problem: recimo da sam u venturi napravio style, koji kad god ga pozovem postavi na ekran odredjeni raspored teksta i ostalog(znate vec o cemu govorim). E sad, ja recimo hocu da takav style ucitam u svoj program i unesem podatke u njega, da bih ga posle mogao stampati(isto iz svog prg-a); but, ja hocu da napravim vise styleova u venturi i da ih sve ucitam u svoj program, da bi ih on kasnije koristio kao svoje styleove.Mozda umesto style bolje da stavim "tabela/formular/obrazac za unos teksta". Zasto mi to treba? Trebalo bi da pravim program za svog starog koji je sudski prevodilac i kome je dozlogrdilo da kuca stalno jedne te iste obrasce, pa bi tako mogao u jedan standardni da unosi samo nove podatke. Hope you understand me better now. Evo da probam da nacrtam: -------------------------------------------------------------------- naziv dokumenta(birth certificat...) -------------------------------------------------------------------- --------------------------------------------------------------------- - polje br1. - polje br2. - etc. - - - za unos - - - - Ako moze neko da mo pomogne unapred puuno hvala. Val.
pascal.979 mdrljaca,
-> Kakav izgled treba da ima asm fajl ako hocu da ga sa tasmom -> pretvorim u .obj i da ga koristim u tpascalu 6.0? Znaci kako -> kad ga pisem u editoru treba da izgledaju pocetak i kraj( -> primer CSEG SEGMENT PUBLIC ASSUME CS:CSEG -> GLAVNI PROC FAR -> ... {program} -> GLAVNI ENDP -> CSEG ENDS -> END Evo ti pomoći iz O'Brien-ove knjige : .model tpascal .data buffer db 256 dup (?) .code public switch switch Proc far a:dword, b:dword, dsize:word lds si,a lea di,buffer mov cx,dsize ..... ; ima jo što šta mrzi me da prepisujem ret switch endp end Objašnjenje ispod .model tpascal : nalaže Turbo asembleru da generiše kod koji treba da se linkuje sa TP programom. .code : zamenjuje dosta složene pseudo instrukcije cope PS Nadam se da si dobio dovoljno informacija (možda neke nisi ni znao :)
pascal.980 mdrljaca,
Samo da napomonem da sam probao sve da prevedem u tp-u i radilo je a nisam probao da ulinkujem u pascal a i mislim da ne bi trebalo da ima nekih problema─ :) cope
pascal.981 dejanr,
Shvatam problem ali, na žalost, ne mogu da pomognem. Znam da su neki ljudi pokušavali da "dekoduju" Venturine .CHP i .STY fajlove i da su nešto uspeli, ali ne znam koliko detaljno. Bojim se da je taj format toliko složen da se ne može razumeti bez nekakve tehničke dokumentacije koju, na žalost, nemamo (bolje reći, ja je nemam), ako uopšte i postoji. Mogu da ti predložim dve stvari. Prvo, da umesto Venture uzmeš WordPerfect koji, uz ostalo, ima mail merge mehanizam koji radi baš to - proizvodi ti razne dokumente koji su identični osim što su im neka polja različita. Uz to imaš i dobar makro jezik koji je dokumentovan i kojim se rade takve stvari. Ako WP ne odgovara, možeš da uzmeš i bilo koji drugi moderniji tekst procesor, svaki bi trebalo da ima i mail merge i makroe. Drugo, ako je potrebno nešto veće, da praviš program koji obrađuje i štampa podatke, dakle ništa Ventura, sva štampa ide iz tvog programa. To znači da moraš da kontrolišeš štampač, šalješ grafičke sekvence itd, ali videćeš da to i nije tako teško kao što izgleda. Takvi programi ako ima puno "muljanja" sa podacima često se rade na Clipper-u, ali može i paskal, zašto da ne.
pascal.982 pedjak,
> Da bi knjiga mogla da se koristi kao referenca, mora biti pregledna. > A to se za istu ne može reći :( Slažem se, al' sam već naučio gde je šta :(
pascal.983 pedjak,
> Pazi stvarno, ni u originalu nema ničeg o tome! Kako li si to > primetio? Ja sam je baš lepo koristio i nisam primetio da to > nema. Tek sad. Baš sam iznenađen. Pa trebalo mi je :) i onda videh da toga nema. Jedino među rezervisanim rečima na kraju knjige možeš da pronađeš i jedno ASSEMBLER.
pascal.984 pedjak,
> Hmmm... ne bi trebalo, postoji Stony Brook za PC, oduvek sam želeo > da vidim na šta to liči... ali taman kad im pisasmo za primerak za > prikaz, uvedoše sankcije :( Šteta, i mene kopka :(
pascal.985 pedjak,
> Mislim da je ubedljivo najbolja knjiga o Turbo Pascalu za početnike, > a i ne samo za početnike O'Brienova Turbo Pascal 6.0. Pa sad... ma moraš imati više knjiga iz jedne oblasti, jedna knjiga nije dovoljna.
pascal.986 pedjak,
> A tome svemu treba dodati da na početku programa koji će koristiti > exec treba staviti nešto kao š$M 16000,0,0ć. Takođe, ako se ne > poziva Ne mora baš $M 16000,0,0 . Heap je potrebno smanjiti toliko da se može učitati drugi program u memoriju.
pascal.987 pusa,
> Mislim da je ubedljivo najbolja knjiga o Turbo Pascalu za početnike, > a i ne samo za početnike O'Brienova Turbo Pascal 6.0. Imam knjigu (u vidu fotokopije :( ) i delim misljenje da je dobra. Ja sam paskal ucio iz Racunara pre X godina. To su bili dobri tekstovi i bas upravljeni na nacin razmisljanja coveka ako je malo radio sa kucnim racunarima, pa bi da predje na paskal. A objasnjavaju i razne koncepcijske stvari koje su posle potrebne i za druge jezike. Ne znam zasto Racunari od toga nisu napravili neku knjigu. Mozda jos nije kasno? :) Posle sam neko vreme radio u paskalu, ali nekako sam se stalno osecao skuceno sa onim memb, memw, outb itd - nista mi tu nije konkretno nedostajalo, ali mi je nekako bilo- ne znam, dobra rec je bas skuceno! "nasao sam sebe" kada sam se dokopao C-a, odjednom je programiranje postalo mnogo slobodnije. Mada priznajem da mi ponekad nedostaje ono sto je paskal mogao da ukljuci RANGE CHECK ON
pascal.988 skerl,
Kada je vec rec o knjigama o pascalu, evo jedne u elektronskom izdanju. Sve je legelno!!! Ima Sezamov header pa noze da ide u dir. Pozdrav, Skerl. Turbo Pascal Reference A Free Book (c) Copyright 1992 by Ed Mitchell. Welcome to the Turbo Pascal Reference, an electronic freeware book. This reference book is divided into ten chapters, providing detailed reference information to Turbo Pascal 6.0, Turbo Pascal 7.0, Borland Pascal, and Turbo Vision. Chapter 1 contains information about this book, why it was created, information regarding your right to copy this book, and a detailed outline of the remaining chapters. The contents of the book is stored as a self-extracting archive. Run: TPR-BOOK.EXE to extract the TPR chapter text files, and the two programs FIGURES.EXE and SOURCE.EXE. The latter two programs are self extracting archives containing illustrations and source code, respectively. The information in the book is stored as a standard ASCII text file. You may read it using any text editor program If you wish, you can use the README.COM program that comes with Turbo Pascal and Borland Pascal to read these chapters. To use README.COM, copy README.COM from the appropriate Borland directory (example \bp\readme.com) to the directory containing this book. Then,type: readme tpr1.txt to read chapter 1, contained in the file tpr1.txt. You can use the readme utility to easily page forward or backwards through the text and to rapidly search for keywords. Please read Chapter 1 for important information about this electronic freeware book, including the copyright notice and distribution rules (yes, you may copy this free book), and disclaimers. I have published my electronic mail address in Chapter 1 in the event that you wish to contact me directly. Thank you for reading the Turbo Pascal Reference. Sincerely, Ed Mitchell
pascal.989 .bale.,
Pascal-ovci, hocete li mozda sors tex-a (mambu)? Regards from .bale. ! #:*)+-<
pascal.990 skerl,
Drugi i poslednji deo knjige o pascalu.
pascal.991 dejanr,
Hvala na prilogu, knjiga je prebačena u direktorijum INFO.
pascal.992 zolika,
>> Milan žabavkapa : 'Osnovi programiranja u PASCALu sa ekstenzijom >> TURBO PASCALa'. Bolje naučite programski jezik MODULA-2, više se isplati... :-)))))))))
pascal.993 spantic,
> Kakav izgled treba da ima asm fajl ako hocu da ga sa > tasmom pretvorim u .obj i da ga koristim u tpascalu 6.0? > Znaci kako kad ga pisem u editoru treba da Evo ti uz poruku primer gde je glavni program doduše u Cu, ali tu nekih problema nećeš imati sa definisanjem ulaza. t.j. promenljivih. U paketu imaš i make. projekat.zip
pascal.994 isekulovic,
Imam problema sa TP-om. Uđem u IDE i startujem program (Ctrl+F9), program radi, sve OK. Izađem iz programa (mog) ponovo oću da ga startujem kad imam šta da vidim sors mi totalno sjeban. Kroz ceo sors umesto ; : " ' ima znakove ispod asci(32). Mogući uzrok? Ivan ps ponovilo se "samo" triputa
pascal.995 dejanr,
Prvi mogući uzrok - nešto sa memorijom. Koji je računar i koji od "qemm"-ova?
pascal.996 sslavko,
>> $L ImeFajla.OBJ se koristi kada želiš da iz nekog OBJ >> fajla prebaciš podatke u pascal. Tj, napravio si nešto u >> assembleru, A kako u TP-u 6.0 napraviti .OBJ fajl?
pascal.997 bulaja,
> A kako u TP-u 6.0 napraviti .OBJ fajl? Nikako.
pascal.998 ficus,
KAzu da moze sa tp 7.0 a mos i da napises funkcije pa da ih disasembliras pa da ih u asembleru prevedes u obj . treci nacin ti je ja mislim da ima negde tpu2obj raspitaj se malo a mislim da ima i tpu disasembler pa onda samo startuj masm i resio si problem
pascal.999 stomic,
$ Bolje naučite programski jezik MODULA-2, više se isplati... Pa gde si ti da nam pomogneš :). Pozdrav, stomic@hobbiton.
pascal.1000 almi,
Ja znam da je u svetu kompjutera bio program koji može da koristi fontove iz CHI-writer-a. Pozdrav Mišel.
pascal.1001 pedjak,
> Pascal-ovci, hocete li mozda sors tex-a (mambu)? Ja hoću mambo :)
pascal.1002 lovro,
­=- COMMAND.COM nego direktno neki .EXE fajl, mora da se navede ­=- puno ime sa sve path-om i ekstenzijom, dakle recimo ­=- D:\RAZVOJ\PROJEKAT\PRG.EXE. Path je obavezan cak i ako je ­=- PRG.EXE u tekucem direktorijumu. Onda ja imam neki falican TP6.0 jer kod mene radi. Lovro
pascal.1003 eagle,
Evo ovako: Kako da u TP-u napravim MOVE proceduru, koja bi premeštala datoteku u neki drugi direktorijum? Konkretno, hoću da premestim ceo direktorijum, nešto kao Prune&Graft iz PC-Toolsa. Thanks unapred :) (E)
pascal.1004 .bale.,
ŮŢ Ja hoću mambo :) Ona hoce mambo! (ajmo svi)
pascal.1005 skerl,
Po zelji korisnika :) INSIDE-TP Pozdrav, Skerl. p.s. Ima Sezamov header... insidetp.zip
pascal.1006 mdrljaca,
Haj svima. Imam jedno pitanje za sve vas. Da li postoji način (relativno brz) uz pomoć koga bih mogao da snimam u datoteku stringove promenljive dužine? Evo šta hoću. Recimo imam stringove koji ne prelaze recimo 50 karaktera (string[50]) a recimo želim da snimim ime od 3 karaktera (npr'Ana') ali isto tako i nešto od čitavih 50 karaktera. Sve bi bilo dobro raditi sa blockread i write jer je writeln(dat,str) mnogo sporo. Sad me zanimaju ideje i kako sve to recimo zbudžiti da stoji u jednoj datoteci a da se dobije na smanjenju iste, od recimo slučaja kada bih pisao sve u prostoru od pedeset pa gurao blankove tamo gde nema ništa. cope PS Nadam se da sam bio dovoljno jasan :)
pascal.1007 mmile,
>uz pomoć koga bih mogao da snimam u datoteku stringove promenljive >dužine? Evo šta hoću. Recimo imam stringove koji ne prelaze recimo >50 karaktera (stringŠ50Ć) a recimo želim da snimim ime od 3 karaktera >(npr'Ana') ali isto tako i nešto od čitavih 50 karaktera. Sve bi bilo >dobro raditi sa blockread i write jer je writeln(dat,str) mnogo sporo. >Sad me zanimaju ideje i kako sve to recimo zbudžiti da stoji u jednoj >datoteci a da se dobije na smanjenju iste, od recimo slučaja kada bih >pisao sve u prostoru od pedeset pa gurao blankove tamo gde nema ništa. Napraviš dve datoteke : jedna je sekvencijalna i ukazuje na poziciju i dužinu nekog zapisa u drugoj datoteci. Tj. iz prve iscitas informacije o poziciji u drugoj datoteci, u drugoj napravis seek na tu poziciju i zatim čitaš podatke sa BlockRead. Ovo nije u jednoj datoteci ali je ideja ;)
pascal.1008 isekulovic,
>> Prvi mogući uzrok - nešto sa memorijom. Koji je računar i koji od >> "qemm"-ova? 286/16 headland g2 ploča sa 2Mb rama, instalirani mm.sys (ems driver), qram i qext.sys (umesto himema).
pascal.1009 dejanr,
Jesi li probao sa "čistom" mašinom, naročito bez QRAM-a? Mada, pošto se problem javlja povremeno, mučno je čekati ga da se pojavi...
pascal.1010 ficus,
:) Haj svima. :) :) Imam jedno pitanje za sve vas. Da li postoji nacin (relativno brz) :) uz pomoc koga bih mogao da snimam u datoteku stringove promenljive :) duzine? Evo sta hocu. Recimo imam stringove koji ne prelaze recimo Prelistaj poruke u jezici i cccc upravo se o tome diskutuje (to je jedna od tema) ali evo ti nesto cisto da imas od cega da pocnes pre nego sto prelistas te poruke mozes to da uradis ovako: u slucaju sekvencijalne datoteke: pises stringove a kraj stringa oznacis nekim terminatorom tj. procedure upis_stringa(f:text;x:string); var i:integer; begin for i:=1 to x[0] do write(f,x[i]); write(0); end; Soru ako sam negde pogresio nisam probao stvar ovo ti je vise teorija a i pascal sam pomalo zaboravio. Ako oces da mozes direktno da pristupis n-tom clanu datoteke onda pored ovog fajla uvedes jos jedan koji ti pokazuje na pocetak n-tog clana Naravno u svemu ovome postoji par problema pa lepo udari dow 5/a pa citaj na miru offline.
pascal.1011 mmile,
> procedure upis_stringa( f:text;x:string); žvar > var i:integer; > begin > for i:=1 to xŠ0Ć do write(f,xŠiĆ); žord > write(0); > end;
pascal.1012 ficus,
:) > procedure upis_stringa( f:text;x:string); :) Cvar :) > for i:=1 to xS0C do write(f,xSiC); :) Cord :(((((((((((( Pa rekoh da sam pisao online i da u paskalu nisam radio dugo i da je to vise algoritam nego procedura. Inace ono u prvom redu nisam siguran da je greska cini mi se da var ne mora ali ova druga greska priznajem nisam razmisljao u c-u bi proslo jer su char i int jedno te isto (istina unsigned char=byte unsigned int=word) ali eto ko radi taj i gresi.
pascal.1013 eagle,
> procedure upis_stringa(f:text;x:string); > var i:integer; > begin > for i:=1 to xŠ0Ć do write(f,xŠiĆ); > write(0); > end; Ima par greščica. Treba da ide npr. ovako: for i:=1 to ord(xŠ0Ć) do write(f,xŠiĆ); write(f,0); Btw, ovo je malko sporo.... a i ne može kasnije da koristi seek. (E)
pascal.1014 mmile,
>Pa rekoh da sam pisao online i da u paskalu nisam radio dugo i da je to >vise algoritam nego procedura. >Inace ono u prvom redu nisam siguran da je greska cini mi se da var ne >mora ali ova druga greska priznajem nisam razmisljao u c-u bi proslo >jer su char i int jedno te isto (istina unsigned char=byte unsigned int=word) >ali eto ko radi taj i gresi. Ma OK. Ipak mislim da se sve datoteke kao parametar moraju prenositi sa var, ali eto ko radi neboji se gladi ;))) PS neboji = ne boji.
pascal.1015 valhala,
Thanks,zbilja za .code nesam znadeo:)
pascal.1016 valhala,
Kad smo vec kod make, cemu sluzi make program koji dolazi uz tasm, i uz tvision? Val.
pascal.1017 mdrljaca,
-> Soru ako sam negde pogresio nisam probao stvar ovo ti je -> vise teorija a i pascal sam pomalo zaboravio. -> -> Ako oces da mozes direktno da pristupis n-tom clanu datoteke -> onda pored ovog fajla uvedes jos jedan koji ti pokazuje na -> pocetak n-tog clana -> -> Naravno u svemu ovome postoji par problema pa lepo udari dow -> 5/a pa citaj na miru offline. OK pogledaću iako mi je pala na pamet ideja da pravim neku vrstu zipa, naravno mnogo uprošćenog, jer meni treba neki marker da mi pokazuje gde je karaj neke reči i "kad unzipujem" ja u napred znam kolika je dužina polja gde treba da ubacim blankove da bi sve radilo kako treba . Malko razmišljanja i trebalo bi da radi, samo što ja želim da bude ultra brzo :)) cope
pascal.1018 ficus,
:) Ima par grescica. Treba da ide npr. ovako: Ok za grescice sam vec reko nisam se petljao sa pascalom vec duze vremena... :) Btw, ovo je malko sporo.... a i ne moze kasnije da koristi seek. Sto se brzine tice ne mora da bude sporo jer prvo pise u buffer a posle u fajl a sto se seek-a tice mislim da sam i to rekao kako moze da sredi. Uos- talom imas li neki bolji predlog (ne mislim na indexne fajlove koji su u sv. slucaju bolji.). ako imas reci ga jer i mene interesuje (uostalom i meni ce uskoro trebati nesto slicno) Mada mozda bi se mogli iskoristiti oni slogovi promenljive duzine u pascalu ali nesto u stilu (neznam dal radi) slog= record case duzina:byte of 1:x:array [1] of char; ... ... 200:x:array.... end Salim se naravno jeste li probali da stavite file of string[50] mozda upali mada nesto bas ne verujem (u svakom slucaju vredi probati)
pascal.1019 ficus,
:) 1:x:array [1] of char; ^^^ sory opet se ja zalecem u c.
pascal.1020 eagle,
> fajl a sto se seek-a tice mislim da sam i to rekao kako moze da > sredi. Uostalom imas li neki bolji predlog (ne mislim na > indexne fajlove koji su u sv. slucaju bolji.). Sumnjam da je mnogo brže, ali je barem lakše. Dakle, kad si se već uhvatio za tip TEXT, što ne bi jednostavno koristio writeln i readln, umesto postavljanja markera? :) I ne mora "for to length" već možeš odjednom da upišeš ceo string. (E)
pascal.1021 mdrljaca,
Samo da javim da sam svoj problem uspeo da rešim i da sam ušio acd u dužini datoteke u kojoj čuva imena dirova :)). Samo me zanima kako acd uspeva onako brzo da iskenira dirove (2.5 puta brže nego ja kad je sve u kešu). Ajd jel neko ima ideju. Ja sam radio sa findfirst i findnext koje sam pravio sam uz pomoć Msdos(regs) u pascalu i ne mogu brže tj. malo sam brži od samog pascalovog jer me ne zanimaju svi oni atributi itd. Možda je moj algoritam loš recimo ja idem nešto ovako findfirst Hako nadje onda udjem u while pozivam istu proceduru( rekurzivno) za pod dir KKfindnext wrtim se sve dok findnext ne vrne ništa Ovako sam rečima napisao da nebi sve opterećivao kodom, a mislim da je jasno. MOžda acd "zna" neku foru kako da traži sam dirove jer ako stavim da mi je atribut fajla 10h dos mi daje sve fajlove i dirove. Eto malko razmišljanja ko želi a možda za ovo findfirst i next sam trebao da postravim u msdos ili u assembler :)) cope
pascal.1022 peca.st,
!-> Ipak mislim da se sve datoteke kao !-> parametar moraju prenositi sa var, ali !-> eto ko radi neboji se gladi ;))) Moraju se prenositi, mada je najbolje sa globalnom promenljivom, zbog memorije... Peđa.
pascal.1023 spantic,
> Kad smo vec kod make, cemu sluzi make program koji dolazi > uz tasm, i uz tvision? MAKE služi za organizaciju projekta. U njemu tačno definišeš koje sve module koristiš, kako, čime i uz koje opcije iz prevodiš, kako ih linkuješ, vodi računa da prilikom promene na nekom modulu nema potrebe sve ponovo prevoditi ( veoma značajno pri velikim poslovima )... Naročito je značajan i poželjan kada se program distribuira u sorsu da bi se lako preneo na različite platforme ( vidi primer GNU programa ).
pascal.1024 mmile,
> Moraju se prenositi, mada je najbolje sa globalnom > promenljivom, zbog memorije... žžžžžžžžž Ajde kazi to svom profanu iz programiranja da je tako najbolje ;)
pascal.1025 ficus,
:) kako acd uspeva onako brzo da iskenira dirove (2.5 puta brze nego ja :) kad je sve u kesu). Ajd jel neko ima ideju. Ja sam radio sa findfirst :) i findnext koje sam pravio sam uz pomoc Msdos(regs) u pascalu i ne mogu brze Pa postoji drugi nacin samo je mnoooogo komplikovan. Lepo uzmes pa direktno citas fajl u kom je direktorijum. P.S. Nisam siguran kako da pristupis root-diru i to bi verovatno jos malo zakomplikovalo ali da je brze brze je a i mozes da napravis fajl sa spiskom subdir.
pascal.1026 ssokorac,
Ja u cdp-u tražim čak sa pascalovim FindFirst i FindNext, i jedva je nešto malo sporiji od acd-a, verovatno to 'drugačije' upisivanje u fajl usporava kod tebe... P.S. Novi CDP je već duplo brži od ACD-a, uskoro ću da ga šiljnem, samo još prune&graft da završim :).
pascal.1027 miroslavn,
Kako da u TP6.0 detektujem pritisnute strelice na tastaturi? Koriste se neki extended kodovi, al pošto nemam odgovarajuću literaturu, a u online helpu to nepiše, eto meni problema. Drugi mali problemčić je kako da ulinkujem BGI u .exe fajl? Znam da to može, i da je opisano u nekoj library reference book-u od Borlanda al ja to nemam?
pascal.1028 eagle,
> Kako da u TP6.0 detektujem pritisnute strelice na tastaturi? ch:char; spec:boolean; ... ch:=readkey; if ch=#0 then begin ch:=readkey; spec:=true end else spec:=false; ... Spec ti je true ako je neki "specijalan" taster pritisnut, a u ch ti onda ostaje kod tog tastera.
pascal.1029 ficus,
:) Kako da u TP6.0 detektujem pritisnute strelice na tastaturi? :) Koriste se neki extended kodovi, al posto nemam odgovarajucu literaturu, Kodovi ti se sastoje od 0 i prateceg koda. mislim da su prateci kodovi negde oko 75 ali uzmi lepo pa napisi programce koje ispisuje pritisnute kodove i resio si problem (mislim da je funkcija readkey. :) a u online helpu to nepise, eto meni problema. :) Drugi mali problemcic je kako da ulinkujem BGI u .exe fajl? Znam da to moze, :) i da je opisano u nekoj library reference book-u od Borlanda al ja to nemam? Imas primer koj ti ide uz original tp 6.0 pogledaj u bgi direktorijumu programce se zove bgilink ili tako nesto.
pascal.1030 ppekovic,
>>> Moraju se prenositi, mada je najbolje sa globalnom >>> promenljivom, zbog memorije... žžžžžžžžž >> >> Ajde kazi to svom profanu iz programiranja da je tako najbolje ;) Profesor i treba da uči tome da se što manje koriste globalne promeljive. Zavisnost procedura i funkcija od istih donosi probleme kada procedure i funkcije iz starog programa pokušaš da preneseš u novi. Paya
pascal.1031 peca.st,
!-> Profesor i treba da uči tome da se što !-> manje koriste globalne promeljive. !-> Zavisnost procedura i funkcija od !-> istih donosi probleme kada procedure i !-> funkcije iz starog programa pokušaš da !-> preneseš u novi. To je apsolutno tačno, i ja se slažem. žak sam i ja za to da se koristii prenošenje putem parametara, ali mislim da postoje izuzeci. (na primer, ako se u nekoj rekurzivnoj proceduri / funkciji koristi neka povelika struktura, valjda je nećemo prenositi putem parametara, jer stek ode za tren oka) .to mmile : A što se tiče profana, kod bivšeg profesora (čeljka) skoro da nismo smeli koristiti "bočni efekat", dok od kada je došao Đurišić on maltene forsira to. :) Peđa.
pascal.1032 beast,
>> Kako da u TP6.0 detektujem pritisnute strelice na tastaturi? Pročitaj taster sa Readkey, ako je #0 dobijaš još jedan scan kod, a on je: 72 za gore, 80 za dole, 75 za levo i 77 za desno. Preporučujem ti da napraviš neki proceduru (GetKey) koja u slučaju da je taster #0 čita ponovo taster (sa Readkey) i uvećava scan code za 128. Time 'gubiš' neke grafičke znake (║═█ itd.) al ko ih ionako kuca sa tastature :) a mnogo ćeš univerzalnije pisati program.
pascal.1033 .obj,
> :) kako acd uspeva onako brzo da iskenira dirove (2.5 puta brze nego ja > :) kad je sve u kesu). Ajd jel neko ima ideju. Ja sam radio sa findfirst > :) i findnext koje sam pravio sam uz pomoc Msdos(regs) u pascalu i ne mogu b > > Pa postoji drugi nacin samo je mnoooogo komplikovan. > Lepo uzmes pa direktno citas fajl u kom je direktorijum. To bi jako tešto uradio, bilo bi nekompatibilno (sa.. pojma temam čime ;) i na kraju bi opet bilo sporo. Radi se o algoritmu. Recimo, ako onaj alg. prvo pročita glavni direktorijum, nađe neki dir i "uđe" u njega, pa onda opet tako, svašta će se nakupiti po DOS-ovim keševima i na kraju će on "odustati" od baferisanja. Zato, prvo se očita *ceo* glavni dir, pa onda *ceo* prvi poddir i tako dalje. Biće daleko brže, mada traži malo više memorije. Sve ovo, naravno, važi ako je na sistemu neki glup i mali keš (ili ga ni nema - toliko je mali;).
pascal.1034 ficus,
:) (na primer, ako se u nekoj rekurzivnoj proceduri / funkciji koristi :) neka povelika struktura, valjda je necemo prenositi putem parametara, :) jer stek ode za tren oka) Ne ode stek jer se povelike strukture prenose preko pokazivaca na iste tj. napravi se kopija pa onda... Ali sve jedno ode heap. Ako se cak kopija i pravi na steku ti lepo lupis u var i onda opet imas samo pointer. :) .to mmile : A sto se tice profana, kod bivseg profesora (Zeljka) skoro :) da nismo smeli koristiti "bocni efekat", dok od kada je dosao Durisic :) on maltene forsira to. :) Pa sad stilovi se razlikuju (zbog toga smo ja i kareem (jankey)) definitivno prekinuli da radimo na bilo cemu zajedno.
pascal.1035 ficus,
:) slucaju da je taster #0 cita ponovo taster (sa Readkey) i :) uvecava scan code za 128. Time 'gubis' neke graficke znake A sto ne za 256 i lepo covek resi sve probleme (naravno vraca int mesto char ili byte)
pascal.1036 ficus,
:) > Pa postoji drugi nacin samo je mnoooogo komplikovan. :) To bi jako testo uradio, bilo bi nekompatibilno (sa.. pojma temam cime :) ;) i na kraju bi opet bilo sporo. Radi se o algoritmu. Recimo, ako onaj Ja lepo gore rekoh da je mnoooogo komplikovan. Sto se kompatibilnosti tice radilo bi u dosu dok on ne promeni nacin pisanja informacija u fajl sa dir. ali onda ce popucati mnoooogi programi. :) pa onda opet tako, svasta ce se nakupiti po DOS-ovim kesevima i na :) kraju ce on "odustati" od baferisanja. Zato, prvo se ocita *ceo* glavni Mozda ali opet oba algoritma imaju iste korene naprimer ja kad orvorim fajl lepo iscitam sta mi treba i onda rekurzivno pretrazujem a sto se redosleda trazenja tice sta bi vas algoritam reko za nesto ovakvo 2 - 3 - 4 - 5 1 (root) 6 - 10 7 - 11 8 - 12- 13- 14 - 15 - 16 9 . . . 30 - 1002-1003 ... Ocigledno je da je vas cd brzi za dir blizi root-u a moj ako je blizi top-u. P.S. Jos uvek ostajem pri tome da treba kreirati tree fajl. To cete se sloziti da je ipak najbrze.
pascal.1037 isekulovic,
>> Jesi li probao sa "čistom" mašinom, naročito bez QRAM-a? Mada, pošto >> se problem javlja povremeno, mučno je čekati ga da se pojavi... Javio se samo tri puta i to ne uzastopce, a nemam baš preterano vremena da čekam da se pojavi. Jedino što mogu da radim je da neko vreme kad pišem nešto dižem comp samo sa dosom, pa ako se pojavi da ponovo kukam. ako se ne pojavi koj' će ga znati.
pascal.1038 skerl,
Welcome to XMM version 1.2 ! ──────────────────────────────── eXpanded Memory Manager for Turbo Pascal Files in this package: ---------------------- README.DOC - This file! DIRECTIV.10 - Compiler directives for Quick Pascal 1.0 DIRECTIV.40 - Compiler directives for Turbo Pascal 4.0 DIRECTIV.50 - Compiler directives for Turbo Pascal 5.0 DIRECTIV.55 - Compiler directives for Turbo Pascal 5.5 DIRECTIV.60 - Compiler directives for Turbo Pascal 6.0 DIRECTIV.INC - Compiler directive back-bone XMS.PAS - Pascal source of XMM driver XMM.ASM - Assembler source of XMM driver XMM.OBJ - Object code of XMM driver XMS20.ZIP - Microsof XMS driver (Public Domain) XMS30.DOC - XMS 3.0 specifications Short description : ------------------- XMM is a Turbo Pascal eXtended Memory Manager implementation that supports Microsofts XMS specification level 3.0. It enables programs running on an AT-like, 386-like or 486-like machine to use extended memory (memory above the 1 megabyte barrier) to store data and code. Almost all code is written in machine language and Microsofts XMS driver version 2.06 (which is public domain) is included. Pozdrav, Skerl. p.s. Bulaja, prebaci ovo u dir, vec ima zainteresovanih :) Ima Sezamov header.
pascal.1039 .obj,
> P.S. Jos uvek ostajem pri tome da treba kreirati tree fajl. To cete se > sloziti da je ipak najbrze. Pa normaalno :) Nego predlažem ti da ne izmišljaš toplu vodu :) nego pogledaj strukturu TREEINFO.NCD datoteke, vrlo je prosta, a svako se iznenadi kad vidi "opa, kako brzo pročitao.. vidi ti njega!" :) A i ja ne znam disk koji nema TREEINFO.NCD ;)
pascal.1040 m.hristodulo,
>> 286/16 headland g2 ploča sa 2Mb rama, instalirani mm.sys (ems >> driver), qram i qext.sys (umesto himema). Izvinte što mašim temu ali moram odma da pitam. Sine aj mi pošalji taj mm.sys. Imam isti hardver ko ti al ne mogu da instaliram qram jer nemam EMS 4.0 u hardveru... Ako može i neki savet iskustvo i slično. Ajde care mojne da te molim dvaput!
pascal.1041 mdrljaca,
-> Ja u cdp-u tražim čak sa pascalovim FindFirst i FindNext, i jedva je nešto -> malo sporiji od acd-a, verovatno to 'drugačije' upisivanje u fajl usporava kod -> tebe... -> -> P.S. Novi CDP je već duplo brži od ACD-a, uskoro ću da ga šiljnem, samo još -> prune&graft da završim :). Ako kažem kod acd-a /recreate onda sam i ja brži ali nikako da ga stigem kad kažem /qcretae ili /create :(. Više ne koristim rekurziju i milsim da ne bi trebalo da ga moje upisivanje toliko uspori :( cope PS Pogledaću tvoj novi cdp ali kako radim sa blockread i write ne verujem da ću toliko usporiti svoj program :( pss Pišem online milim ubrzati :)
pascal.1042 beast,
>> nego pogledaj strukturu TREEINFO.NCD datoteke, vrlo je prosta ..i ogromna. :) Bolje pogledaj acd.idx, odličan 'školski' primer zapisivanja samo najneophodnijih informacija :) A NCD ima stringove iste dužine (12), tako da su većinom stringovi poluprazni (dakle: 'dos ') što nije baš elegantno :)
pascal.1043 ssokorac,
─┼┤ iznenadi kad vidi "opa, kako brzo pročitao.. vidi ti njega!" :) A i ja Ih, NCD brz, dobar fazon :). Probaj cdp O:).
pascal.1044 zolika,
>> Pa sad stilovi se razlikuju (zbog toga smo ja i kareem (jankey)) >> definitivno prekinuli da radimo na bilo cemu zajedno. Kad pomenu KAREEMa (onog od Montenegro?) šta je sa tim čovekom? Postoji li još na ovim našim širinama (i dužinama)?
pascal.1045 .obj,
>> iznenadi kad vidi "opa, kako brzo pročitao.. vidi ti njega!" :) A i ja > > Ih, NCD brz, dobar fazon :) :) Mislio sam da on napravi programče koje čita TREEINFO.NCD pa onda da korisnik kaže "opa, ..." :) > Probaj cdp O:) Evo probaj ti OCD O:)) Copright ja 1990 :) ocd.zip
pascal.1046 ilotina,
HI! Može li se nekako izvesti sledece. Ako je grafička kartica hercules onda ide nešto ovako: var ScreenAddr:absolute $B000:0000; A ako je neka u koloru: var ScreenAddr:absolute $B800:0000; Predpostavljam da se to može izvesti onim takozvanim kondicionim prevođenjem, ali se ja baš nešto ne razumem u njega. Interesuje me još da li se kod tog prevođenja program mora kompjlirati na onoj mašini na kojoj će da radi (ja barem tako misli)? Pozdrav Ivan! P.S. Ja mislim da sam tačno ubo one video adrese:)
pascal.1047 lovro,
­=- Ako je graficka kartica hercules onda ide nesto ovako: ­=- var ScreenAddr:absolute $B000:0000; ­=- A ako je neka u koloru: ­=- var ScreenAddr:absolute $B800:0000; ­=- Predpostavljam da se to moze izvesti onim takozvanim ­=- kondicionim Moze! if herc then screenaddr := ptr($B000:0) else screenaddr := ptr($B800:0); Lovro
pascal.1048 valhala,
Kako da izvedem ovo: skinuo sam sa Sezama fajl sa opisom pcx formata, i sad bih da napravim program za dekodiranje slika;jedini problem je sto ne znam kako da OTVORIM .pcx fajl, odnosno bio bih zahvalan kad bi mi neko objasnio kako se uopste manipulise sa fajlovima u paskalu koji nisu pravljeni u njemu. Nadam se da ste me shvatili, jer sam pomalo konfljuzan:)) Val.
pascal.1049 dejanr,
>> sto ne znam kako da OTVORIM .pcx fajl, odnosno bio bih zahvalan kad bi >> mi neko objasnio kako se uopste manipulise sa fajlovima u paskalu koji >> nisu pravljeni u njemu. Ima raznih načina. Evo najsporijeg, ali za početnike najjasnijeg: var slika: file of byte; a: byte; .... assign(slika, 'ime.pcx'); reset(slika) while not eof(slika) do begin read(slika,a); ... end; close(slika)
pascal.1050 ssokorac,
─┼┤ kad kažem /qcretae ili /create :(. Više ne koristim rekurziju i milsim Naravno da nećeš stići qcreate, zato što traži samo *. direktorijume. :) To značajno ubrzava...
pascal.1051 m.hristodulo,
>> Drugi mali problemčić je kako da ulinkujem BGI u .exe fajl? >> Znam da to može, i da je opisano u nekoj library reference >> book-u od Borlanda al ja to nemam? Evo ti fora! Postoji čak i demo u TP6.0 paketu, ali sam ja to malo prepravio, tako da je dovoljno da u bilo kom trenutku programa izvršiš InitGraph, i grafika je tu, u EXE-u. allgraph.zip
pascal.1052 sso