pascal.1ppekovic,
U staroj PC.PROG konferenciji, ova tema je bila jedna od najposećenijih,
verujem da će i dalje biti tako. Dakle: Pascal ...
Paya
pascal.2ssokorac,
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.3drpr,
-> 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.4bulaja,
│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.5nenadb.,
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.6almi,
Imas u trubo viziji primer za textsearch mislim da je u programu
tvedit.pas
Pozdrav
Almi.
pascal.7almi,
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.arjpascal.8nenadb.,
>> 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.9ztuke,
*>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.10ilazarevic,
█ 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.11bearboy,
Kako da u TPU ubacim OBJ ? Kad naiđr na external definiciju, crkne :(
pascal.12dejanr,
>> Kako da u TPU ubacim OBJ ?
Koristi klauzulu {$L ime.OBJ}
pascal.13ssokorac,
─┼┤ 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.14bearboy,
Gde se može naći/nabaviti/skinuti OBJ2ASM ? Treba mi hitno.
PS. Potrebno za SUPI, tako da bolje požurite :)
pascal.15skoprivica,
│ █ 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.16almi,
Ja koristim navedeni kodni raspored!!
Pozdrav
Michel
pascal.17almi,
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.18almi,
Evo ti listing gde postoji search funkcija i search & replace funkcija
pozdrav
almi.
editors.paspascal.19ssokorac,
Kako da saznam ime tekućeg direktorijuma? Pretpostavljam da je vrlo
jednostavno, ali prekopah ceo help i ne nadjoh ništa :(.
pascal.20almi,
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.21ssokorac,
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.22dejanr,
>> Kako da saznam ime tekućeg direktorijuma?
Koristi funkciju getdir, npr. getdir(0, rez) i dobiješ ime u string
promenljivoj rez.
pascal.23stomic,
$ 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.24bdm.,
## Kako da saznam ime tekuceg direktorijuma? Pretpostavljam da je vrlo
## jednostavno, ali prekopah ceo help i ne nadjoh nista :(.
GetDir
BDM.
pascal.25ssokorac,
─┼┤ GetDir Procedure
Thanks i tebi i dejanu, ja sam tražio u dos unitu takvu proceduru,
kad ono ona je izvan dos-a...:)
pascal.26vitez.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.27ssokorac,
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.28dejanr,
>> 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.29janko,
> 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.30ssokorac,
─┼┤ 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.31ssokorac,
─┼┤ 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.32janko,
> 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.33zzile,
Kako da junit za pascal 5.5 prevedem u junit za 6.0, a nemam source kod?
pascal.34minja.,
Da li neko zna gde mogu da nađem zbirku zadataka iz turbo pascala, napisao
ju je Milan žabarkapa?
pozdrav, minja
pascal.35kenza,
[:> 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.36drpr,
-> 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.37dejanr,
>> 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.38lunic,
Mozes knigu Cabarkapu(ZBIRKU) da nadjes kod mene LUNIC.
pascal.40zzile,
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.41janko,
> 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.42predragd,
> 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.43hacker,
E pa to Úbi bilo fino, ovaj TPU OBJ kÚonvertor...
pascal.44adzem,
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.45almi,
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.46ssokorac,
─┼┤ 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.47dejanr,
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.48drpr,
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.49almi,
Ja nisam mnogo radio sa {$l ...} ali
mislim da probaš sledeće
Procedure Lcomm;
{$l lcomm.obj}
Begin
Lcomm
End.
pascal.50predragd,
> 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.arjpascal.51stomic,
$ 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.52dejanr,
>> 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.53janko,
> 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.54ilotina,
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.55djelovic,
> 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.56djelovic,
> 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.57drpr,
-> 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.58almi,
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.arjpascal.59ssokorac,
─┼┤ var a:stringŠ1Ć; b:char;
─┼┤ begin
─┼┤ b:=a;
─┼┤ šžžžžžć
─┼┤ end.
A što ne bi ovako:
b:=aŠ1Ć;
pascal.60drpr,
-> 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.61mjova,
> 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.62dzakic,
>> š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.63dzakic,
>> 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.64vitez.koja,
#=> b:=aS1C;
Al ste naporni s tim yusciijem :(
pascal.65stomic,
$ ž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.66stomic,
$> 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.67dejanr,
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.68ssokorac,
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.69dzakic,
>> 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.70darone,
>> # => b:=aS1C;
>>
>> Al ste naporni s tim yusciijem :(
Nabaci YU slova, manje će ti smetati.
darone
pascal.71zzile,
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.73zzile,
Voleo bih da mi posaljes konvertor TPU -> OBJ , pa makar bio i za tp4.0 jer
imam i tu verziju junita. Unapred hvala.
pascal.74stomic,
$>> 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.75dejanr,
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.76inesic,
>
> 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.77mjova,
> 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.78ssokorac,
─┼┤ 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.79dejanr,
>> 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.80predragd,
> 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.81predragd,
> 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.82vitez.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.83dejanr,
>> var KBD: procedure;
>> inline ($9C);
>> KBD;
>> GetIntVec(9,@KBD);
Svaka čast za ideju :) Ja to radio mnogo komplakovanije.
pascal.84d.petrovic,
Ajde sad to prevedi na pseudo jezik (ceo primer) ili na C pa si
zaradio sok od šargarepe :))
pascal.85drpr,
-> 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.86mmile,
> 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.87isekulovic,
>> 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.88mjova,
> 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.89vitez.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.90vitez.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.91ssokorac,
─┼┤ 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.92ssokorac,
─┼┤ 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.93ssokorac,
─┼┤ 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.94drpr,
-> 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.95dejanr,
>> > 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.96zolika,
>> 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.97vitez.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.98janko,
> 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.99ssokorac,
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.100inesic,
> 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.101mmile,
> 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.102ppekovic,
>> 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.103ivans,
* 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.104ssokorac,
─┼┤ 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.105vitez.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.106ssokorac,
─┼┤ 0418H: bit
Thanks. Je si li to izvukao iz nekog fajla ili...?
pascal.107mjova,
> ─┼┤ 0418H: bit
> Thanks. Je si li to izvukao iz nekog fajla ili...?
ma jok, zna napamet ;)
pascal.108edge,
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.109dejanr,
>> 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.110dzakic,
> 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.111ssokorac,
─┼┤ 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.112isekulovic,
>> 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.113isekulovic,
>> :(. 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.114predragd,
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.115dejanr,
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.116almi,
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.117ssokorac,
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.118dejanr,
>> 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.119bdm.,
## 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.120inesic,
> 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.121zokalezic,
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.122ssokorac,
─┼┤ Pokusaj MOUSE_Hide-Write-MOUSE_Show.
Znam za taj problem, pa sa tako i pisao. Nije u tome stvar :(.
pascal.123vitez.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.124vitez.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.125skoprivica,
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.126ssokorac,
─┼┤ Koristi onaj _mouse.tpu, on sasvim fino radi...
Rado, samo mi reci na koji _mouse.tpu misliš?
pascal.127bulaja,
│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.129sbrk,
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.130kenza,
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.131dejanr,
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.132snemcev,
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.133stal,
=> 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.134ssokorac,
─┼┤ 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.135vitez.koja,
#=> Rado, samo mi reci na koji _mouse.tpu mislis?
Ovaj...
pascal.136dejanr,
Probaj da promeniš drajver za miša i uzmeš neki noviji.
pascal.137dejanr,
==========
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.138vilic,
#> 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.139vilic,
#> 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.140ssokorac,
─┼┤ Ovaj...
Hvala, ali imaš li neki veći? ;) (nije bilo ničega uz poruku:).
pascal.141drpr,
-> 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.142zddb,
>>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.143ssokorac,
─┼┤ 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.144vitez.koja,
#=> Ovaj...
Sorry :), zaboravio sam da zakacim sta treba :( Ali evo sad se
ispravljam
_.zippascal.145d.petrovic,
Ă> Sorry :), zaboravio sam da zakacim sta treba :( Ali evo sad se
Ă> ispravljam
Nemoj više tako da se ispravljaš ;))
pascal.146vitez.koja,
#=> Nemoj vise tako da se ispravljas ;))
? ;>
pascal.147d.petrovic,
Ă># => Nemoj vise tako da se ispravljas ;))
Ă>
Ă> ? ;>
Pa opet nisi ništa zakačio :)
pascal.148ssokorac,
─┼┤ Sorry :), zaboravio sam da zakacim sta treba :( Ali evo sad se
─┼┤ ispravljam
Ne bih da sam dosadan, ali opet si zaboravio ;).
pascal.149vitez.koja,
#=> Pa opet nisi nista zakacio :)
Je'l si siguran ? ;)))
pascal.150vitez.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.151almi,
Evo jedna igre pisane u pascalu
pozdrav almi.
pascal.152ssokorac,
─┼┤ ;) 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.153ssokorac,
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.154almi,
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.155pedjak,
> 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.156peca.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.157inesic,
> 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.158ssokorac,
─┼┤ HERCULESA, pa ako ima zainteresovanih mogu da UL.Izjasnite se..
Pošalji, što da ne :).
pascal.159ssokorac,
─┼┤ 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.160ssokorac,
─┼┤ 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.161bdm.,
## 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.163ilazarevic,
> 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.164skerl,
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.165skerl,
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.166skerl,
===============================
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.168dejanr,
>> 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.169djelovic,
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.170paki,
=> 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.171pedjak,
> Pošalji, što da ne :).
Evo mouse unita. Autor je moja malenkost pa ako budete imali neke
probleme samo vičite... :)
mouse.arjpascal.172kenza,
[;> 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.174peca.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.175peca.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.176kuki,
> 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.177skerl,
Evo stize prvi mouse unit.
Pozdrav,
Skerl.
pascal.178skerl,
Evo ga i drugi.
Pozdrav,
Skerl.
pascal.179nikolas,
> 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.180mjova,
> 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.181skerl,
> Dakle hvala ti ki bratu!!!!
Nema na cemu.
Skerl.
pascal.182peca.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.183peca.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.184pedjak,
Evo mouse unita. Autor sam ja pa ako budete imali nekih problema
slobodno vičite...
mouse.arjpascal.185oki.,
>> 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.186ilazarevic,
> 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.187ilazarevic,
> 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.188vitez.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.189vvelisavljev,
> Ima li Pascal programera zainteresovanih da nauče C na lak način?
IMA!!!
pascal.190peca.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.191bearboy,
║ 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.192dejanr,
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.193dejanr,
>> 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.194ssokorac,
─┼┤ 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.195ssokorac,
─┼┤ 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.196ssokorac,
─┼┤ 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.197peca.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.198zokalezic,
Help
Ako li zna neko šta mu dođe DOS Error #8
Pozdrav
Zoran
pascal.199skerl,
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.zippascal.200mirossi,
=> 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.201peca.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.202pedjak,
> 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.203ppekovic,
>> Poslao bih ti ali se bojim da se to kosi sa "SEZAMOVIM ZAKONIKOM"
Kosi!
Paya
pascal.204ssokorac,
─┼┤ 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.205ssokorac,
─┼┤ 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.207peca.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.208peca.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.209ssokorac,
─┼┤ Jel' ima taj font editor mogucnost konverizije iz nekog drugog tipa
─┼┤* fonta u .chr font?
Ne, isključivo izmena i kreiranje .chr fontova.
pascal.210peca.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.211pedjak,
> 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.212pedjak,
> 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.213pedjak,
> 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.214pedjak,
Izvol'te jedan unit za manipulaciju za ZIP arhivama
zip.arjpascal.215pedjak,
A evo i jedan unit za manipulaciju sa ARJ arhivama.
arj.arjpascal.216pedjak,
> U vezi toga da li ce fontovi koje tako kreiram raditi na Herc-u???
Hoće !
pascal.217dtadic,
>> Ako li zna neko sta mu dode DOS Error #8
Not enough memory.
DT
pascal.218vitez.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.219bulaja,
│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.220drpr,
-> 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.arjpascal.222drpr,
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.223skerl,
> ─┼┤ 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.224skerl,
> 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.zippascal.225skerl,
> 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.226paki,
=> 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.227dejanr,
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.228peca.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.229ssokorac,
─┼┤ 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.230ssokorac,
─┼┤ 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.231ssokorac,
─┼┤ 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.233peca.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.235peca.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.236spantic,
> Ako li zna neko šta mu dođe DOS Error #8
Out of memory.
pascal.237dejanr,
>> 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.238skerl,
> 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.239ssokorac,
─┼┤ 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.240lovro,
> 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.242skerl,
> ─┼┤ 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.243kenza,
[;> Bar se nadam da nije ;))
I ja mislim da nije (uopste)
pascal.245ssokorac,
─┼┤ 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.247ssokorac,
─┼┤ 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.253ilazarevic,
> FAQ. :) Otkucaj sledeće
Ovo turiti u velkam bilten za početnike :)
pascal.254skerl,
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.zippascal.255skerl,
Da li nekome treba unit za upravljanje joystick-om?
Kratak je i upotrebljiv.
Pozdrav,
Skerl.
pascal.257zokalezic,
>> 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.258pedjak,
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.arjpascal.259ssokorac,
─┼┤ Play music in the background.
Ovo nije isto, ono čudo je sviralo modove :). Thanks!
pascal.261ssokorac,
─┼┤ 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.265inesic,
> ─┼┤ 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.266bulaja,
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.267skerl,
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.zippascal.268skerl,
*******************************************************************************
* 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.zippascal.269pedjak,
> $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.271vitez.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.272vitez.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.273ssokorac,
─┼┤ 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.274dejanr,
==========
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.276dejanr,
===============================
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.278paki,
ń> 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.279dtadic,
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.280ppekovic,
>> 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.281ssokorac,
─┼┤ ... 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.282broker,
> 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.283peca.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.284peca.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.285peca.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.286paki,
> ž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.287paki,
> ─┼┤ 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.288lovro,
> 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.289lovro,
> 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.290vitez.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.291predragd,
> 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.292melev,
║ 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.293ssokorac,
─┼┤ 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.294ssokorac,
─┼┤ 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.295wizard,
>> 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.296peca.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.297peca.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.298peca.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.299janko,
(*
> ===============================
> 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.301bulaja,
│Evo spiska arhiva koje bi, po mom misljenju, svakako trebalo da se
│nadju u pascal direktorijumu.
└───
Hvala na savetu, pogledacu sta tu ima.
pascal.302lovro,
> 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.303skoprivica,
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!.arjpascal.305bulaja,
│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.306ssokorac,
─┼┤ 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.307darone,
>> 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.308bearboy,
║ Ako li zna neko šta mu dođe DOS Error #8
Manjak slobodne memorije...
pascal.309peca.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.310ppekovic,
>> ž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.311paki,
> ─┼┤ 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.312skoprivica,
│ evo igre gomoku, tj. pet u redu, napisana je davno, davno
Ispravih se, sada je zakaceno...
pascal.313ldragan,
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.315ssokorac,
─┼┤ 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.316skerl,
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.zippascal.317bulaja,
**** 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.318broker,
> 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.319pedjak,
> Ak▀o neko kojim slučajem ima "NDX.PAS" koji se pominje u časopisu
Evo ga NDX.PAS
pedja
ndx.arjpascal.320isekulovic,
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.321inesic,
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.322dejanr,
>> 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.323pedjak,
> 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.324ssokorac,
─┼┤ const podatak : stringŠ10Ć = ('string1');
Pozovi funkciju umesto sa
novi:=xyz(podatak);
sa
novi:=xyz(copy(podatak,1,10));
pascal.325inesic,
> 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.327beast,
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.328isekulovic,
>> 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.329dejanr,
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.330ssokorac,
─┼┤ 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.331skerl,
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.332peca.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.333peca.st,
!-> Štad da mu radim?
Instaliraj TP6.0 ili još bolje ako nabaviš TP7.0
Jednostavno!
P e C a
pascal.334peca.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.335pedjak,
> 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.336isekulovic,
>> 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.337dzakic,
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.338dzakic,
>> 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.339isekulovic,
>> 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.340isekulovic,
>> 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.341skerl,
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.zippascal.342pedjak,
> ž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.343pedjak,
> 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.344ssokorac,
─┼┤ Izvin'te ako sam oduzio bez potrebe.
Ma kakvi samo piši, ovo je mnogo zgodno a nisam znao :).
pascal.345dejanr,
>> 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.346skerl,
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.347skerl,
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.348almi,
treba mi program za tp-for windows koji crta "bar" sa određenim
fill-stylom.
Puno hvala ALMI.
pascal.349almi,
jel može neko da mi opiše standardni postupak za crtanje nekih figura
u tp for windows
Hvala unapred, ALMI
CONNECT 2400
pascal.350skerl,
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.351bulaja,
│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.352mbulat,
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.353d.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.354skerl,
>│ 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.355pstojanovic,
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.zippascal.356inesic,
> 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.357pedjolino,
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.358zolika,
>> 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.360skerl,
│ 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.arcpascal.361vitez.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.362ssokorac,
─┼┤ 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.363paki,
> 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.364ssokorac,
Š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.365isekulovic,
>> 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.366predragd,
> 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.367predragd,
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.368pedjak,
> 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.369pedjak,
> 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.370janko,
> 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.371dejanr,
>> 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.372inesic,
> 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.373inesic,
> 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.374inesic,
> š$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.375peca.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.376pedjolino,
Zahvaljujem se svima na iscrpnim odgovorima
u vezi rezidentnih programa.
Pozdrav Nenad.
pascal.377vitez.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.378peca.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.379predragd,
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.380macak,
█ 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.381dejanr,
>> 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.382ssokorac,
─┼┤ 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.383ppekovic,
>> Halo, moderatore, da li znaš gde da je tražim?
Pogledaj u temi jezici.
Paya
pascal.384pedjak,
> .
> .
> 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.385bearboy,
║ 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.386bearboy,
║ ─┼┤ 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.387bearboy,
║ 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.388wizard,
>> 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.389ndragan,
/ neke brojke, mislim zaista dugo, onda stvarno nema smisla mučiti
A da jednom u hiljadu i(s)teracija zaviri u bafer tastature?
pascal.390vvelisavljev,
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.391pedjak,
> 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.392pedjak,
>> š$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.393pedjak,
> 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.394dejanr,
>> Jel ima neki trik da proverim da li je disketa u drajvu?
Pogledaj 6.28 u ovoj konferenciji.
pascal.395peca.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.396peca.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.397drmarke,
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.398dzakic,
>> 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.399darone,
>> 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.arjpascal.400inesic,
> 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.401vitez.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.402vitez.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.403pedjak,
> 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.404pedjak,
> 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.405ssokorac,
─┼┤ 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.406ssokorac,
─┼┤ 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.407ssokorac,
─┼┤ 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.408ssokorac,
─┼┤ 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.409ssokorac,
─┼┤ 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.410pedjak,
> Protivrecis sam sebi :) Ali nema veze. Mislili smo na isto.
Da sad videh... :) Ali nema veze sporazumeli smo se.
pedja
pascal.411pedjak,
> 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.412predragd,
> 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.413predragd,
> 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.414dejanr,
>> 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.415vasic,
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.416pedjak,
> 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.417pedjak,
> 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.418pedjak,
> 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.419pedjak,
> :). Ali user-interface je poptpuno drugačiji od starih. EGA/mouse. :)
A da li će raditi na Herc/mouse ?
pedja
pascal.420skerl,
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.zippascal.421ilazarevic,
U kojoj rezoluciji, po difoltu, radi TP program ako je BGI drajver
EGAVGA?
pascal.422ilazarevic,
Kako da ispraznim bafer tastature?
pascal.423lovro,
> 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.424dzakic,
>> 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.425dzakic,
>> Kako da ispraznim bafer tastature?
var kbdhead: word absolute $40:$1A;
kbdtail: word absolute $40:$1C;
begin
kbdtail:=kbdhead;
end.
pascal.426mjova,
> 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.427pedjak,
> 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.428vitez.koja,
#=> Kako da ispraznim bafer tastature?
//na pocetku programa {$X+} - TP 6.0
Procedure ClearKBD;
begin
while keypressed do readkey
end;
pascal.429vvelisavljev,
> Bilo je već od ranije:
Izvinjavam se. Hvala svima! Šljaka OK.
pascal.430peca.st,
!-> U kojoj rezoluciji, po difoltu, radi TP
!-> program ako je BGI drajver EGAVGA?
640*480*16
P e C a
pascal.431predragd,
> 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.arjpascal.432predragd,
> 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.433predragd,
> 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.434bulaja,
**** 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.435dgrbic,
:: 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.436dgrbic,
:: 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.437skerl,
┌───────────────────────────────────────────────────────────────────┐
│ │
│ 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.438ndragan,
/ 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.439almi,
Kako da iz pascala pristupim VIDEO memoriji (recimo rez.800x600x256) tako da
mogu direktno da menjam njen sadržaj.
Pozdrav ALMI
pascal.440ssokorac,
─┼┤ 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.441ssokorac,
─┼┤ A da li će raditi na Herc/mouse ?
Pošto bi onda ružno izgledalo - ne :).
pascal.442ssokorac,
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.arjpascal.443ssokorac,
─┼┤ U kojoj rezoluciji, po difoltu, radi TP program ako je BGI drajver
─┼┤ EGAVGA?
640x480, vidiš uz pomoć getmaxx i getmaxy :).
pascal.444pedjak,
> 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.445ssokorac,
─┼┤ 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.446dejanr,
>> 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.447vvelisavljev,
{$X+} Uključuje Extended syntax. (!?) Šta mu to dođe?
pascal.448peca.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.449peca.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.450mjova,
> A kako da ubacim znak u bafer tastature a da ne pritiskam
> tastaturu? To mi već odavno treba...
int 16/05h
pascal.451ilazarevic,
Hvala svima!
pascal.452ilazarevic,
> 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.453pedjak,
> 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.454pedjak,
> 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.455peca.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.456ssokorac,
─┼┤ š$X+ć Uključuje Extended syntax. (!?) Šta mu to dođe?
Možeš da pozivaš funkcije kao procedure.
pascal.457stomic,
$ {$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.458stomic,
$ 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.459dgrbic,
:: {$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.460ppekovic,
>> E, ako nekog zanima, mogu da pošaljem...
Samo napred, sigurno će nekog zanimati.
Paya
pascal.461ssokorac,
─┼┤ 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.462ssokorac,
─┼┤ 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.463zolika,
>> 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.464darone,
>> 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.465isekulovic,
>> 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.466inesic,
> Možeš da pozivaš funkcije kao procedure.
???????
žemu to služi, a uz to i ne radi?
pascal.467dzakic,
> ž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.468peca.st,
!-> int 16/05h
A šta dalje? Ajde malo opširnije!
P e C a
pascal.469dzakic,
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.470vitez.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.471skerl,
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.472ssokorac,
─┼┤ 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.476predragd,
> 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.477peca.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.478peca.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.479drpr,
-> 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.480peca.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.481skerl,
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.zippascal.482skerl,
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.zippascal.483skerl,
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.zippascal.484skerl,
│ 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.zippascal.485skerl,
│ 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.arcpascal.486pedjak,
> 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.487peca.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.488isekulovic,
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.489ilotina,
> 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.490ilazarevic,
> 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.491drpr,
-> 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.492peca.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.493skerl,
│ -> 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.494drakce,
│ 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.495predragd,
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.496stomic,
$ !-> 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.497ilazarevic,
> 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.498peca.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.499skerl,
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.zippascal.500skerl,
┌──────────────────────────────────┐
│ 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.zippascal.501drpr,
-> 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.502peca.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.503valhala,
e ovako, moj glupavi turbo paskal nece da prihvati asemblerske naredbe(mov,
ret, push...), iako sam mu zadao ono "asm". Sta da radim?
pascal.504ssokorac,
─┼┤ 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.505dejanr,
>> 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.506skerl,
│ 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.507skerl,
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.508skerl,
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.509skerl,
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.zippascal.510skerl,
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.511skerl,
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.zippascal.512skerl,
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.513skerl,
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.zippascal.514skerl,
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.zippascal.515skerl,
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.516kenza,
[;> 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.517ssokorac,
─┼┤ 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.518valhala,
"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.519dejanr,
>> "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.520isekulovic,
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.521bulaja,
│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.522peca.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.523dejanr,
>> 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.524cubro,
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.zippascal.525kenza,
[;> Kolko ja znam, ne moze asm nego mora assembler.
Stavlja se asm,problem je u verziji ;(
pascal.526skerl,
││ 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.527skerl,
│ ─┼┤ 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.528zolika,
>> 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.529drpr,
-> 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.530eagle,
> 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.531eagle,
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.532ssokorac,
─┼┤ p.s. Racunam na picence :)
Zaslužio si :).
P.S. GUI-demo neće da mi radi bez .ico fajlova, kojih nigde nema :(.
pascal.533dejanr,
>> 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.534valhala,
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.535stomic,
$ 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.536stomic,
$ 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.537darone,
>> 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.538dejanr,
>> (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.539dejanr,
>> 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.540ldragan,
Ako neko ima "DBASE.PAS" I "NDX_CREA.PAS" bio bih zahvalan ako mi ih pošalje.
LdraGan
pascal.541cubro,
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.542skerl,
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.543skerl,
│ P.S. GUI-demo nece da mi radi bez .ico fajlova, kojih
│ nigde nema :(.
└────
Probaj da raspakujes icons.arj :)
Skerl.
pascal.544ivan.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.545bulaja,
│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.546dgrbic,
:: 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.547dgrbic,
:: 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.548dgrbic,
:: 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.549dgrbic,
:: - 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.550isekulovic,
>> 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.551pedjak,
> 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.552pedjak,
> 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.553dejanr,
>> 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.554dejanr,
>> mouseLib, rel 7.0.
Ima li tu i source ili se isti dobija tek po registraciji (ili ni tada)?
pascal.555stomic,
$ 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.556paki,
> 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.557skerl,
│ 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.558skerl,
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.arjpascal.559skerl,
Drugi deo 3DLIB15 paketa.
Skerl.
3dlib15.a01pascal.560skerl,
│ 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.561bulaja,
││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.562kenza,
[;> kenzo, koji trik pali za verziju 5? mislim na asm/assembler. Dajt
Na zalost,za verziju 5 ne pali nikakav trik :(Sorry :(
pascal.563dejanr,
>> DejanR-e, da li gresim?
U onoj alfa verziji koju sam video verzija TPU-a je 9. Pun paket
još nemam.
pascal.564ssokorac,
─┼┤ 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.565ssokorac,
─┼┤ 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.566predragd,
> 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.567predragd,
> 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.568kenza,
[;> Ukoliko se nekome svidi, mogao bi i u dir da uleti :)))
Mogao bi odmah da ide u dir ;)
pascal.569drmarke,
> 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.570dejanr,
==========
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.571valhala,
: 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.572bulaja,
│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.573ssokorac,
─┼┤ 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.574predragd,
> 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.575dejanr,
>> 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.576stomic,
$ 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.577dejanr,
>> > > 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.578skerl,
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.zippascal.579skerl,
┌────────────────────────────────────────────────────────────┐
│ 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.zippascal.580skerl,
┌──────────────────────────────────────────────────────────────────┐
│ 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.zippascal.581darone,
>> 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.582vitez.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.583vitez.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.584ssokorac,
─┼┤ 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.585ssokorac,
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.586eagle,
Imaš u direktorijumu paskal datoteku wctunits, u kojoj je izmedju ostalog
unit xgraph, koji ima to što tražiš.
pascal.587pedjak,
> 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.588paki,
> 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.589dgrbic,
:: 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.590dgrbic,
:: 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.591dgrbic,
:: 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.592dgrbic,
:: 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.593dejanr,
>> 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.594stomic,
$ 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.595dejanr,
>> > 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.596ssokorac,
─┼┤ 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.597ssokorac,
─┼┤ "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.598ssokorac,
─┼┤ 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.600ssokorac,
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.601paki,
> 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.602eagle,
> 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.603ssokorac,
─┼┤ 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.604bulaja,
│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.605bulaja,
│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.606inesic,
> 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.607dejanr,
>> > 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.608stomic,
$ 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.609dejanr,
>> > 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.610dgrbic,
:: 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.611dgrbic,
:: 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.612dgrbic,
:: 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.614bulaja,
│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.615pedjak,
> 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.616vitez.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.617peca.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.618peca.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.619mjova,
>│ 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.620ssokorac,
─┼┤ 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.621ssokorac,
─┼┤ 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.622paki,
> 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.623inesic,
> 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.624ldragan,
Ako neko ima "DBASE.PAS" i "NDX_CREA.PAS" bio bih zahvalan da mi ih poŠalje.
LdraGan
pascal.625pedjak,
> 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.626pedjak,
> 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.627pedjak,
> 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.628peca.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.629peca.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.630stomic,
$ 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.631dtadic,
>> 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.632pedjak,
> Ako neko ima "DBASE.PAS" i "NDX_CREA.PAS" bio bih zahvalan da mi ih
> poŠalje.
Evo, stiže...
pedja
dbasendx.arjpascal.633dejanr,
>> 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.634nbatocanin,
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.635ppekovic,
>>> 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.636dejanr,
>> 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.637isekulovic,
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.638pedjak,
> 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.639janko,
> 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.640peca.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.641ssokorac,
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.642ssokorac,
─┼┤ Kolko brže radi, ako si ga napravio, XorPut?
Videćeš u supiju 4 :).
pascal.643ssokorac,
─┼┤ 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.644drpr,
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.645drpr,
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.646stomic,
$ -- 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.647stomic,
$ 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.648dejanr,
>> 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.649vvelisavljev,
Mislim da u nazivu programa treba staviti ekstenziju. Usput
dužina naziva ne sme biti duža od 4 slova.
pascal.650skerl,
│ P.S. Imade li neko source za citanje i pisanje PCX ili
│ nekog slicnog?
└─────
Imas uz poruku 6.178 tppcx.zip
Pozdrav,
Skerl.
pascal.651ssokorac,
─┼┤ 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.652ssokorac,
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.653inesic,
> Ljudi, ne hvalim džabe Hobbiton :). Pogledajte na
> Hobbitonu u
Kamo telefon od tog Hobbitona.
pascal.654dejanr,
>> 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.655vitez.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.656ssokorac,
─┼┤ 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.657bojanp,
*** 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.659mjova,
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.660janko,
> 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.661pedjak,
> 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.662adzem,
> 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.663peca.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.664peca.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.665dr.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.666nbatocanin,
> 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.667nbatocanin,
> 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.669dejanr,
>> > 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.670cubro,
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.671drpr,
-> 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.672stomic,
$ 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.673stomic,
$ 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.674ssokorac,
─┼┤ 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.675skoprivica,
│ 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.676dejanr,
>> > 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.677ssokorac,
─┼┤ Š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.678ssokorac,
─┼┤ 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.679stomic,
$ 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.680stomic,
$ 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.681dejanr,
>> 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.682miro,
ű>-- 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.683skerl,
│ 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.684dr.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.685dzakic,
>> 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.686peca.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.687spantic,
> 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.688stomic,
$ 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.689janko,
> 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.690janko,
> ž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.691ppekovic,
>> 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.692eagle,
Šta bi se desilo kad bih udario "setrgbpalette" na Ega monitoru, ili, još
gore, na Herculesu?
Uzgred, da li iko živi ima Ega?
pascal.694skoprivica,
│ 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.695stomic,
$ 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.696dejanr,
>> 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.697dejanr,
>> 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.698vasic,
> 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.699ssokorac,
─┼┤ ž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.700drpr,
-> Š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.701drpr,
-> 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.702peca.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.703predragd,
> 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.704kresof,
> 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.706peca.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.707stomic,
$ 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.708dejanr,
>> 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.709ndragan,
/ 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.710dr.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.711dr.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.713ilazarevic,
> 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.714nbatocanin,
> 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.715stomic,
$ 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.716stomic,
$ 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.717peca.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.718dejanr,
>> 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.719ndragan,
/ 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.720macak,
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.721eagle,
> 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.722peca.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.723dzakic,
>> 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.724ilazarevic,
> 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.725ilazarevic,
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.726drpr,
-> 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.727macak,
Thanx to all!!!
pascal.728isekulovic,
>> 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.729isekulovic,
>> 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.730zamahajev,
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.731ivans,
* 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.732drmarke,
> 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.733darone,
>> 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.734dejanr,
>> 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.735dejanr,
==========
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.736ivans,
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.737ilazarevic,
> Isto kao i datoteke :)
Setio sam se pola sata posle slanja poruke :) Ipak, hvala na savetu.
pascal.738eagle,
> 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.739eagle,
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.740drmarke,
> 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.zippascal.741melev,
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.742darone,
>> * 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.743zamahajev,
Zahvaljujem se na pril
.I
pascal.744zamahajev,
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.745vvelisavljev,
> 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.746peca.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.747drmarke,
> 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.748drmarke,
> 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.749peca.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.750ndragan,
/ 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.751ssokorac,
─┼┤ 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.752eagle,
> 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.753eagle,
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.754ilazarevic,
> 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.755janko,
> 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.756vitez.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.757pedjak,
> 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.758nbatocanin,
> ??? vozio sam "stojadina". - 2 boda.
Ajde što voziš stojadina, al' što repliciraš meni na poruku koju
nisam ja napisao... :)
pascal.759peca.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.760skerl,
╔═════════════════════════════════════════════════════════════════════════╗
║ 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.761bulaja,
> ** 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.762ssokorac,
─┼┤ 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.763melev,
║ 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.764dejanr,
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.766eagle,
> 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.767peca.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.769skerl,
-----------------------------------------------------------------------
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.zippascal.770mikeli,
Help ! Zna li ko kako se prave skrolovi texta iz pascala ?
Pomagajte !
Pozdrav.Mikeli :)
pascal.771drmarke,
> 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.772isekulovic,
>> 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.773mikeli,
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.774majkl,
> 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.zippascal.776eagle,
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.777inesic,
> 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.778peca.st,
Jedno pitanje, koje verovatno čudno zvuči...
Dakle, kako, i da li je moguće iz pascala praviti .EXE datoteke?
Peđa.
pascal.779darone,
>> 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.780dmajkic,
+> Dakle, kako, i da li je moguće iz pascala praviti .EXE
+> datoteke?
A da nisi mislio na .COM ?
pascal.781ssokorac,
─┼┤ 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.782vitez.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.783peca.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.784mcule,
Da l' da ja pocnem da prosipam pamet? ;)
pascal.785bearboy,
║ 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.786peca.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.787peca.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.788dejanr,
>> 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.789skerl,
Í────────────────────────────────────────────────────────────────
║ 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.zippascal.790skerl,
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.zippascal.791kenza,
(;> Dakle, kako, i da li je moguce iz pascala praviti .EXE datoteke?
E,svasta ;) kompajliras *.pas u *.exe.Ili uzmes TPC i....
pascal.792drmarke,
> 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.793drmarke,
> 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.794dgrbic,
:: 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.795ivans,
* 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.796almi,
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.797djnsnd,
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.798djnsnd,
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.799ssokorac,
─┼┤ 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.800peca.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.802janko,
> 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.803dgrbic,
:: 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.804ivans,
* 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.805predragd,
> 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.arjpascal.806peca.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.807ilazarevic,
Šta znači ovo: inline($9c);
Radi se o primeru za rezidentan program iz BLP, pisao vitez.koja.
pascal.808ilazarevic,
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.809vitez.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.810eagle,
> 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.811peca.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.812dzakic,
>> 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.813ilazarevic,
># => Šta znači ovo: inline($9c);
Hvala, doživeo sam prosvetljenje :)
pascal.814ilazarevic,
> 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.815zamahajev,
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.816dejanr,
>> 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.817dejanr,
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.818almi,
Kako da alociram niz u XMS ili EMS.
Pozdrav Mišel.
pascal.819dmajkic,
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.820eagle,
> 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.821ssokorac,
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.823dekiper,
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.824ssokorac,
─┼┤ 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.825peca.st,
!-> Kako da alociram niz u XMS ili EMS.
Teško. Nisam siguran da li u opšte može.
Peđa.
pascal.826dejanr,
>> 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.827dejanr,
>> š$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.828dejanr,
>> > 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.829janko,
> 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.830draganm,
*> 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.831pedjak,
> 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.832dmajkic,
+> 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.833vitez.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.834ssokorac,
─┼┤ Jesi li ovo probao? Nešto nisam ubeđen da će da radi, š$I-ć samo
Probao, ne radi. Izvinjavam se :).
pascal.835ssokorac,
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.836almi,
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.837vdarko,
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.839draganm,
Ortak me je zamolio da vam ostavim njegovih ruku delo u ovoj konferenciji
...... Radi se o rutinama za user interface u textualnom modu ....
pascal.840peca.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.841eagle,
>! -> 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.842ssokorac,
─┼┤ ima ss-ovac al ne da. :(
Ma, već sam ti rekao, rade samo u specifičnim slučajevima :(.
pascal.843bearboy,
║ 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.844mrmf,
Jel zna neko kako da nateram spiker da odsvira akord? Ili da to
bar tako nekako zvuci :)
Brada
pascal.845mmile,
> 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.846pedjak,
> 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.847beast,
Da li je trač ili istina da BP 7.0 pravi stringove proizvoljne
dužine (length>256) i kako?
pascal.848eagle,
Yo! Kako da uklonim rezidentni program?
pascal.849darone,
>> > konferenciji ...... Radi se o rutinama za user
>> > interface u textualnom modu ....
>> Što su tako nevidljive ;) ?
_Neviđeno_ su brze ;))
darone
pascal.851skerl,
Evo jes jedne zezalice na temu pacova.
Mali unit sa sav moguci pad sa doticnim.
Pozdrav,
Skerl.
tp-rat.zippascal.852skerl,
┌────────────┐
│ BP7SB 1.00 │
└────────────┘
BP7SB 1.00 is a Source Beautifier for Turbo / Borland Pascal
sources up to Version 7.0.
Pozdrav,
Skerl.
bp7sb100.zippascal.853janko,
> 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.854dejanr,
==========
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.855dejanr,
==========
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.856ssokorac,
─┼┤ 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.857pele,
>=} Yo! Kako da uklonim rezidentni program?
MARK & REPLACE.
pele.
pascal.858bulaja,
│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.859ssokorac,
─┼┤ BP7SB 1.00 is a Source Beautifier for Turbo / Borland Pascal
─┼┤ sources up to Version 7.0.
Ulepšavač programa? :) Ukratko, šta radi? :)
pascal.860dusanp,
=> MARK & REPLACE.
Cut & Glue? Valjda si mislio na MARK & RELEASE ? :)
pascal.861pedjak,
> 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.862mrmf,
> 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.863vitez.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.864skerl,
│ 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.865ognjen,
)-> Yo! Kako da uklonim rezidentni program?
CTRL + ALT + DEL
pascal.866vitez.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.867eagle,
>> ─┼┤ 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.868jasicp,
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.869dejanr,
>> > 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.870skerl,
Evo objasnjenja kako se podesavaju boje u Turbo Vision-u.
Pozdrav,
Skerl.
tvcolor.zippascal.871ppekovic,
>> 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.873isekulovic,
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.874peca.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.875pele,
>=} => MARK & REPLACE.
>=}
>=} Cut & Glue? Valjda si mislio na MARK & RELEASE ? :)
Jap,jap...Ko radi,taj i greši :))
pele.
pascal.876ppekovic,
>> 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.877ssokorac,
─┼┤ 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.879pedjak,
> 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.881mrmf,
Jel piso neko nesto sa podrskom sound blastera?
Brada
pascal.882peca.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.883peca.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.884peca.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.885peca.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.886dejanr,
>> #define TRT 0x21;
Najpribližnije bi bilo:
const trt = $21;
pascal.887smiloradovic,
)># define TRT 0x21;
)>
)> Kako to da prevedem na pascal?
)> (problem je u 0x21...)
recimo kao
const mrt=$21;
pascal.888korvin,
>># 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.889dgrbic,
:: 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.890eagle,
> ─┼┤ 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.891skerl,
──────────────────────────────
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.zippascal.892ppekovic,
>> 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.893eagle,
>! -> 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.894eagle,
> 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.895peca.st,
!-> Najpribližnije bi bilo:
!-> const trt = $21;
Hvala. :)
Peđa.
pascal.896vvelisavljev,
> 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.897peca.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.899skerl,
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.zippascal.900beast,
>>>> 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.901predragd,
> 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.902peca.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.903dgrbic,
:: !-> 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.904dgrbic,
:: 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.905dgrbic,
:: 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.906mrmf,
>> 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.907peca.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.908peca.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.909dgrbic,
:: 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.910predragd,
> 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.911peca.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.912eagle,
> 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.913dgrbic,
:: 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.914predragd,
> 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.915peca.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.916eagle,
> 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.917peca.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.918dekiper,
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.919peca.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.920mzdravkovic,
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.921dejanr,
>> 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.922mzdravkovic,
>> 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.923dgrbic,
:: 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.924dejanr,
>> 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.925dejanr,
>> 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.926bearboy,
║ 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.928eagle,
> Nisam siguran, ali SVGAx.BGI bi trebao da radi kako treba ?
Na OAK-u ne :(
pascal.929dekiper,
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.930dejanr,
>> 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.932ssokorac,
─┼┤ Na OAK-u ne :(
A ni na Tridentu :(.
pascal.933dgrbic,
:: 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.934dejanr,
>> A za ovo (ovaj put :) nije kriv Borland, nego DPMI mehanizam.
Da, ali Borland reklamira Pascal 7.0 sa "finaly, no limits" ;)
pascal.935ilazarevic,
> 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.936vitez.koja,
#=> Ima ga na timovima garantovano. Samo treba prebaciti...
#=> ;) ili raditi na timu ;(
Oovaj ;) tim nije imao x86 procesor.
pascal.937valhala,
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.939mdrljaca,
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.940dzakic,
>> 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.941skerl,
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.zippascal.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.943dzakic,
>> 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.944ppekovic,
>> 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.946marzi,
Koja knjiga je najbolja za pocetak i ucenje PASCAL-a.
pascal.947almi,
Najbolja po meni je knjiga
Milana žabarkape -Osnovi programiranja u Pascalu- ;Građevinska Knjiga
Mišel.
pascal.948beast,
>> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a.
Milan žabarkapa - Pascal sa ekstenzijama Turbo Pascala
pascal.949paki,
>>> 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.950mmile,
>>> 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.951spantic,
> 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.952dejanr,
>> Š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.953dejanr,
==========
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.954paki,
> 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.955dr.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.956miro,
ű> 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.957pedjak,
> 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.958pedjak,
> 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.959vitez.koja,
#=> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a.
Milan žabavkapa : 'Osnovi programiranja u PASCALu sa ekstenzijom
TURBO PASCALa'.
pascal.960spantic,
> 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.961drmarke,
> 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.962dejanr,
>> 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.963valhala,
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.964almi,
Ja sam se isto zaje*ao pa sam kupio obe njegove knjige (tp5.5 tp6.0)
Ia,Ia,Ia,Ia :)
pascal.965valhala,
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.966eagle,
> 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.967eagle,
> 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.968peca.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.969spantic,
> 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.970dejanr,
>> 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.971dejanr,
>> 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.972ajankovic,
Hitno potrebna knjiga "Turbo Paskal 5.5", od autora Ivana Papeša.
Ma se ajankovic ili 011/101-728...
pascal.973valhala,
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.974valhala,
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.975drmarke,
> 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.976ssokorac,
─┼┤ 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.977mdrljaca,
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.arjpascal.978valhala,
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.979mdrljaca,
-> 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.980mdrljaca,
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.981dejanr,
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.982pedjak,
> 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.983pedjak,
> 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.984pedjak,
> 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.985pedjak,
> 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.986pedjak,
> 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.987pusa,
> 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.988skerl,
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.990skerl,
Drugi i poslednji deo knjige o pascalu.
pascal.991dejanr,
Hvala na prilogu, knjiga je prebačena u direktorijum INFO.
pascal.992zolika,
>> Milan žabavkapa : 'Osnovi programiranja u PASCALu sa ekstenzijom
>> TURBO PASCALa'.
Bolje naučite programski jezik MODULA-2, više se isplati... :-)))))))))
pascal.993spantic,
> 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.zippascal.994isekulovic,
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.995dejanr,
Prvi mogući uzrok - nešto sa memorijom. Koji je računar i koji od "qemm"-ova?
pascal.996sslavko,
>> $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.997bulaja,
> A kako u TP-u 6.0 napraviti .OBJ fajl?
Nikako.
pascal.998ficus,
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.999stomic,
$ Bolje naučite programski jezik MODULA-2, više se isplati...
Pa gde si ti da nam pomogneš :).
Pozdrav, stomic@hobbiton.
pascal.1000almi,
Ja znam da je u svetu kompjutera bio program koji može da koristi fontove
iz CHI-writer-a.
Pozdrav Mišel.
pascal.1001pedjak,
> Pascal-ovci, hocete li mozda sors tex-a (mambu)?
Ja hoću mambo :)
pascal.1002lovro,
=- 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.1003eagle,
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.1005skerl,
Po zelji korisnika :)
INSIDE-TP
Pozdrav,
Skerl.
p.s. Ima Sezamov header...
insidetp.zippascal.1006mdrljaca,
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.1007mmile,
>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.1008isekulovic,
>> 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.1009dejanr,
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.1010ficus,
:) 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.1011mmile,
> 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.1012ficus,
:) > 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.1013eagle,
> 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.1014mmile,
>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.1015valhala,
Thanks,zbilja za .code nesam znadeo:)
pascal.1016valhala,
Kad smo vec kod make, cemu sluzi make program koji dolazi uz tasm, i uz
tvision?
Val.
pascal.1017mdrljaca,
-> 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.1018ficus,
:) 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.1019ficus,
:) 1:x:array [1] of char;
^^^
sory opet se ja zalecem u c.
pascal.1020eagle,
> 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.1021mdrljaca,
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.1022peca.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.1023spantic,
> 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.1024mmile,
> Moraju se prenositi, mada je najbolje sa globalnom
> promenljivom, zbog memorije... žžžžžžžžž
Ajde kazi to svom profanu iz programiranja da je tako najbolje ;)
pascal.1025ficus,
:) 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.1026ssokorac,
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.1027miroslavn,
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.1028eagle,
> 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.1029ficus,
:) 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.1030ppekovic,
>>> 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.1031peca.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.1032beast,
>> 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.1034ficus,
:) (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.1035ficus,
:) 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.1036ficus,
:) > 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.1037isekulovic,
>> 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.1038skerl,
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.1040m.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.1041mdrljaca,
-> 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.1042beast,
>> 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.1043ssokorac,
─┼┤ iznenadi kad vidi "opa, kako brzo pročitao.. vidi ti njega!" :) A i ja
Ih, NCD brz, dobar fazon :). Probaj cdp O:).
pascal.1044zolika,
>> 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.zippascal.1046ilotina,
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.1047lovro,
=- 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.1048valhala,
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.1049dejanr,
>> 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.1050ssokorac,
─┼┤ 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.1051m.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.zippascal.1052ssokorac,
─┼┤ 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)?
Ma, moš' kompajlirati gde hoćeš samo piši ovako -
if memŠ0:$0449Ć=7 then ScrPtr:=Ptr($B000,0)
else ScrPtr:=Ptr($B800,0);
Tj. ako je na 0:$0449 sedmica onda je u pitanju herkules, a ako nije onda
je EGA/VGA.
pascal.1053mdrljaca,
-> 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.
Sad je se ok. Moja greška je bila što sam se upoređivao sa
ACD-ovim /qcreate. On skenira dirove samo za *. (kako reče
ssokorac) tako da je bio brži sad sam dodao tu opciju i razlika
između mene i acd-a je 10 stotinki što je zanemarljivo. U
ostalom ga šijem sem u dizajnu oko stabla o kom razmišljam.
Mlogo mi se sviđa acd-ovo drvo koje ne radi sa fiksnim poljem
od 13 mesta već traži maksimalan dir u nivou.
cope
pascal.1054mdrljaca,
-> 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;).
Ovo je ok, ja sam gršešio i što sam korisito rekurziju, sad sam
uradio sve sa listama i radi ok.
cope
pascal.1055mdrljaca,
-> 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...
Uspeo sam da preradim što me je zanimalo i sada sam brži od
acd-a, jedino zbog mog muljanja sa datotekom sam sporiji u
quick i to 10 stotinki što je malo .
cope
pascal.1056valhala,
To sam danas sam provalio, bravo ja:))))).Nego ako neko zna brze neka kuca kako
ako ga ne mrzi:)
pascal.1058valhala,
Objasnite neznalici:) sta su to qcreate, cdp, acd, etc.:)))))
Val.
pascal.1059valhala,
Mozda ovo nije za ovu temu ali ajde: treba mi informacija, tacnije dve.
Prvo: pre neki dan pomenu mi drug da je(valjda u Beogradu) otvoren FON-fakultet
organizacionih nauka, i rece da se tu izmedju ostalog i bave vezom lingvistike
i racunarstva.Jel moze neko nesto vise o ovome da mi kaze, posto nisam u toku?
Drugo: koji faks da upisem ako jocu da se bavim programiranjem, ali da ne
se ne forcira mnogo fizika, a matematika u umerenim kolicinama? Citao sam neke
informatore, i raspitivao se malo ali nemam dovoljno informacija:(((
Ako neko zna da mi odgovori neka mi majlne ako nece da uzurpira temu, jer sam
je dovoljno ja uzurpirao:)(a moze i u temi da mi odgovori, nemam nista protiv:)
Val.
pascal.1060peca.st,
Može li se nekako povezana lista upisati u fajl?
Ne svaki element te liste posebno, nego čitava lista odjednom.
Peđa.
pascal.1061dcolak,
│ Objasnite neznalici:) sta su to qcreate, cdp, acd, etc.:)))))
To su ti ekvivalenti nortonovog CD (NCD). To je ono što otkucaš
bilo gde na hardu, a on skoči u dir koji si mu naveo.
ACD i CDP su po nekima bolji jer skaču i na druge drajvove
a ne samo na current, but, ja i dalje koristim NCD jer ipak
ima najlepše iscrtane dir-ove..
QCreate je opcija u ACD-u da izskenira direktorijume bez
extenzije (tako je brže) i smesti ih u svoju "bazu" ;)
Sledge DAMMIR!
pascal.1062dcolak,
│ Ako neko zna da mi odgovori neka mi majlne ako nece da uzurpira temu, jer sa
│ je dovoljno ja uzurpirao:)(a moze i u temi da mi odgovori, nemam nista proti
Ajd nek odgovore ovde, jer i mene muče isti problems ;)
Sledge DAMMIR!
pascal.1063wizard,
> Objasnite neznalici:) sta su to qcreate, cdp, acd, etc.:)))))
ACD je najbolji utility program za zamenu dos komande CHDIR.
pascal.1064dekiper,
>> gađanje video memorije
Evo odgovora na tvoje pitanje... Video memorija se kod Herculesa nalazi na
adresi $B000:0000 dok je kod CGA/EGA/VGA na $B800:0000 (sto se nisu usa-
glasili???). Najlaksi nacin da prolvalis gde je video memorije je provera
adrese 0000:$0449 gde je sedmica ako je adresa $B000 ili nije sedmica ako
je adresa $B800. Dakle , to je reseno. Dajem ti mali primer u kojem ces videti
kako sve ovo prakticno primeniti. Ovaj programcic upisuje veliko C (moze se
promeniti) u gornjem levom uglu, odnosu na adresu $B800(ili $B000):0000 sto
je levi gornji ugao. Vresnost $B800(ili $B000):0002 bi ispisala ovaj znak u
prvom redu ali u drugoj koloni. Razlog tome je sto je za svaki znak potrebno
2 bajta (pozadina i sam znak).
š Ovaj program nezavisno od v. kartice upisuje veliko C u gornjem levom uglu ć
Var
Adresa:Word;
begin
if MemŠ0:$0449Ć=7 then Adresa:=$B000 else Adresa:=$B800;
š Znak u v. memoriji := Znak koji se upisuje + (boja pozadine Shl 4) ć
MemWŠAdresa:0Ć:=Word('C')+($70 Shl 4);
end.
Pozdrav, Deki
pascal.1065bulaja,
│Drugo: koji faks da upisem ako jocu da se bavim programiranjem,
└───
Cini mi se da u ORKA-i postoji neka tema "obrazovanje" ili sl., s
obzirom da ovo pretenduje da bude opsezna diskusija (prijemni je blizu
:), najbolje da se preselimo tamo.
pascal.1066valhala,
Odosmooooooooooooooooooooooo:))))
Sorry for the disturbance:)
pascal.1067bulaja,
**** new file ****
R:\IBMPC\PASCAL\*.*
----------------------
anivga11 arj 160305 Animacija sprajtova na VGA (320*200*256 mod) za TP6 #1
anivga11 a01 158797 Animacija sprajtova na VGA (320*200*256 mod) za TP6 #2
Some of ANIVGA's features are:
- flickerfree animation by a "page-flipping" algorithm and using the
display enable signal
- sprite movement in any increments you want
- arbitrary background image for the animation
- full use of the VGA's 256-color mode
- several sprite display methods available:
- sprites can be written normally (covering underlying figures)
- sprites can be declared to be transparent with regard to the background
or other sprites pixel by pixel
- sprites can change their color depending on the underlying background
image (-> shadow function)
- display methods can be different for each sprite
- pixel precise hit-detection routine built in
- correct clipping of sprites at the screen boundaries
- up to 32767 different sprites
- up to 500 sprites may be simultaneously active
- maximal size of each sprite = 64k
- maximal size of all loaded sprites only restricted by available memory
- works with virtual coordinates in the range -16000..+16000
- thus simple creation of horizontal/vertical "scrolling" games
- scrolling background image, too
- several supporting routines to: drawing lines (with built in clipping-
algorithm), points and graphic-text (incl. clipping), automatic heap
management for loading of sprites, sprite libraries, background images,
processor-speed adjustment, palette handling,...
What ANIVGA does _not_ support:
- EMS or XMS memory (to slow)
- resolutions other than 320x200x256 (compatibility question)
pascal.1068snemcev,
>> Prvo: pre neki dan pomenu mi drug da je(valjda u Beogradu) otvoren
>> FON-fakultet organizacionih nauka
Dobro jutro Kolumbo!
pascal.1069mmile,
>
> Može li se nekako povezana lista upisati u fajl?
> Ne svaki element te liste posebno, nego čitava lista odjednom.
Neverujem ... mozda jedino ako su svi clanovi liste u memoriji jedan
iza drugog pa onda iskopiras sadrzaj tog dela memorije sa blockwrite
u datoteku....
pascal.1070mmile,
> (sto se nisu usa- glasili???)
Da bi moglo da se radi sa dva monitora u isto vreme.
pascal.1071vitez.koja,
#=> Može li se nekako povezana lista upisati u fajl?
#=> Ne svaki element te liste posebno, nego čitava lista
#=> odjednom.
Moze pod uslovom da je kontinualna u memoriji, sto je malo
preoptimisticka pretpostavka.
pascal.1072peca.st,
!-> Objasnite neznalici:) sta su to qcreate,
!-> cdp, acd, etc.:)))))
Nema to veze sa pascalom (osim što je pisano u njemu :),
a to su programi tipa ncd što su ih pisali sezamovci. :)
Valjda sam u pravu?
Peđa.
pascal.1074eagle,
Pozdrav!
Kako da napišem interrupt proceduru koja bi vraćala neku vrednost? npr.
napišem u nekom drugom programu intr(xx,regs), i moj rezidentni program
mi vrati u regs.dl neku vrednost.
Konkretno, treba da mi moj rezidentni program vrati adresu jedne promenljive,
pa ako neko zna može i bez interapta.
(E)
pascal.1075ivanna,
> Drugo: koji faks da upisem ako jocu da se bavim programiranjem,
> ali da ne se ne forcira mnogo fizika, a matematika u umerenim
> kolicinama? Citao sam neke informatore, i raspitivao se malo
> ali nemam dovoljno informacija:(((
Na ETF-u, PMF-u i FON-u postoje smerovi vezani za racunare.
Nisam sigurna dal' ima nesto i na Saobracajnom.
Na FON-u najverovatnije ima najmanje fizike i matematike
(tj. najlakse je). Na PMF-u znam neke koji su 3. godina i
kompjuteru jos nisu prisli. Na ETF-u ima dosta 'sporednih'
predmeta, mada ako sprovedu ovu najnoviju ideju da zamene
neke predmete racunarskim (neko sa RT znace vise o tome),
ETF bi, po meni, postao najbolji za sve one koji zele da
studiraju racunare. Malo je tezi (mozda je samo izgovor ;),
duze traje, al' se verovatno isplati.
pascal.1076macak,
█ napisem u nekom drugom programu intr(xx,regs) i moj rezidentni
█ program mi vrati adresu promenljive.
Ajd' malo pojasni ovo. Jedino da ti tvoj rezidnetni program
presrece interapt xx i kada u svakom programu napises intr(xx,r)
da ti tsr vrati vrednost.
pascal.1077drakce,
│ Kako da napišem interrupt proceduru koja bi vraćala neku vrednost?
└─────────
Pogledaj u Help, pod imenom Registers, tu ti je objašnjena struktura te
promenljive. Moraš koristiti DOS Unit. Evo ti primera, izlaz je u regs.al:
{ Read Keyboard Flags (40:17) }
Uses DOS;
var regs: Registers;
begin
regs.AH:=02;
intr($16, regs);
Writeln(regs.AL);
end.
Što se traženja adrese neke (TP) promenljive tiče, možeš i ovako:
var rec: string;
i, seg_adr, ofs_adr: word;
begin
rec:='Hello';
seg_adr:=seg(rec);
ofs_adr:=ofs(rec);
writeln('Adresa je (dekadno): ',seg_adr,':',ofs_adr);
for i:=1 to length(rec) do writeln(Chr(Byte(Ptr(seg_adr, ofs_adr+i)^)));
end.
Pozdrav
pascal.1078ficus,
:) Moze li se nekako povezana lista upisati u fajl?
:) Ne svaki element te liste posebno, nego citava lista odjednom.
Ne ali mozes da formiras listu u fajlu pa ako te interesuje....
pascal.1079eagle,
> Ajd' malo pojasni ovo. Jedino da ti tvoj rezidnetni program
> presrece interapt xx i kada u svakom programu napises
> intr(xx,r) da ti tsr vrati vrednost.
Jeste, to sam mislio... jel znaš kako se radi? :)
(E)
pascal.1080eagle,
> Pogledaj u Help, pod imenom Registers, tu ti je objašnjena
> struktura te promenljive. Moraš koristiti DOS Unit. Evo ti
> primera, izlaz je u regs.al:
>
> š Read Keyboard Flags (40:17) ć
> Uses DOS;
> var regs: Registers;
> begin
> regs.AH:=02;
> intr($16, regs);
> Writeln(regs.AL);
> end.
Ma OK to :)
Ja hoću da napišem proceduru koju bih okačio na neki prekid, a da mi iznese
nešto npr. u AL
(E)
pascal.1081ppekovic,
>> Na FON-u najverovatnije ima najmanje fizike i matematike
>> (tj. najlakse je).
Na FON-u nema fizike uopšte. FON je fakultet koji je usmeren
ka računarskoj podršci biznisu. Matematike ima (standardno I i II
+ numerička analiza i diskretna matematika), statistike pogotovu.
>> ETF bi, po meni, postao najbolji za sve one koji zele da
>> studiraju racunare. Malo je tezi (mozda je samo izgovor ;),
S dužnim poštovanjem gospođice, ali prvo bi trebala da pitaš
čoveka šta ga zanima u oblasti računara pa da deliš savete.
Paya
pascal.1082zddb,
Hitno mi trebaju naša slova za PASCAL. Radi se o jednom prijatelju koji bi da u
svoj program u grafičkom (i tekst) modu ubaci naša slova normalne veličine.
Pošto mi nije poznat princip rada (znam samo da u BGIDEMO postoje neka ogromna
slova), pretpostavljam da se radi o jednom fajlu koji se poziva pri
kompajliranju. Ne znam da li je tu raspored fiksan (poželjno je YUSCII) ili se
može mijenjati. Možda postoji i neki editor!? Molio bih nekog stručnjaka za
PASCAL da mi ukratko objasni kako tu stoje stvari!? Možda dolazi u obzir i neka
"C" verzija slova ili iz nekog drugog programa, uz doradu?
Pozdrav, Zoran D. Brkić
pascal.1083dejanr,
>> Hitno mi trebaju naša slova za PASCAL.
Nisam razumeo da li ti treba ćirilica ili latinica. Ako je ćirilica,
skini iz direktorijuma FUN igru PAUS, u okviru nje imaš .CHR ćirilični
font, uz dozvolu autora da se dalje koristi.
pascal.1084sbrk,
>> Hitno mi trebaju naša slova za PASCAL.
Evo, stižu. To ti je Triplex font u koji sam ja ubacio naša slova u Yuscii
rasporedu. Inače, to može da se uradi u nekom FE (Borlandovom Font Editoru),
BGIEDIT.ARJ je dugačak oko 55 Kb. Ne znam gde sam ga pokupio, verovatno ovde na
Sezamu, pa pogledaj stare poruke.
>> Molio bih nekog stručnjaka za
>> PASCAL da mi ukratko objasni kako tu stoje stvari!?
Sebe baš i ne smatram nekim strušnjakom za Pascal, aletoo mislim, prezimenjaci
smo, pa da ti pomognem.
Pozdrav, SLavisha.
PS. Sa ovim editorom, znači možeš da menjaš sve Borlandove fontove (TP,
Quattro...)
triplex.arjpascal.1085ivanna,
>>> ETF bi, po meni, postao najbolji za sve one koji zele da
>>> studiraju racunare. Malo je tezi (mozda je samo izgovor ;),
>
> S duznim postovanjem gospodice, ali prvo bi trebala da pitas
> coveka sta ga zanima u oblasti racunara pa da delis savete.
U pravu ste, postovani gospodine :), dakle da se ispravim:
ja bih to upisala da zelim da studiram racunare. Necu da te
pitam koja te oblast zanima, jer ne znam sta se tacno predaje
na Fon-u i PMF-u. Namena onog 'saveta', gore citiranog,
je bila da ti skrene paznju da se na ETF-u nesto menja, tj. da
o tome verovatno nema nista u starom informatoru.
Ti se valhala lepo raspitaj kod ljudi koji su sa FON-a, sa PMF-a
i sa ETF-a, ali sa smera racunari...jos samo da ti odgovore na
poruku.
pascal.1086pedjak,
> Kako da napišem interrupt proceduru koja bi vraćala neku vrednost?
> npr. napišem u nekom drugom programu intr(xx,regs), i moj rezidentni
> program mi vrati u regs.dl neku vrednost.
Mislim da bi to moglo ovako:
uses dos;
var r:registers;
oldint:pointer;
function vrati:longint;
var
temp:longint;
begin
temp:=seg(promenljiva);
temp:=temp shl 16;
temp:=temp+ofs(promenljiva);
vrati:=temp;
end;
procedure link;assembler;
asm
push es
push ds
push cx
push bx
push si
push di
push bp
call vrati
pop bp
pop di
pop si
pop bx
pop cx
pop ds
pop es
end;
begin
getintvec(60,oldint);
setintvec(60,člink);
intr(60,r);
writeln('segment promenljive:',r.dx);
writeln('offset promenljive:',r.ax);
setintvec(60,čoldint);
end.
Ovo bi trebalo da radi, probaj...
pascal.1087mmile,
> push es
> push ds
> push cx
> push bx
> push si
> push di
> push bp
> pop bp
> pop di
> pop si
> pop bx
> pop cx
> pop ds
> pop es
Da li se ovo moze zameniti sa pusha i popa ili sl. ?
pascal.1088peca.st,
!-> Ne ali mozes da formiras listu u fajlu pa
!-> ako te interesuje....
Nije to što misliš, meni je trebalo baš ono što ne može. :(
A ovo što ti kažeš (ako sam dobro razumeo), to, naravno, znam.
Peđa.
pascal.1089vitez.koja,
#=> Da li se ovo moze zameniti sa pusha i popa ili sl. ?
Jok, ako hoces da ti proradi kod mbulata (na XTu) ;>>>>>
pascal.1090bdm.,
## Na FON-u najverovatnije ima najmanje fizike i matematike
Pogledao sam baš juče od drugara spisak predmeta prve dve godine
na FON-u i moram reći jeste lako na izgled ali koliko samo bubačenja
(ekonomija, organizacija, bla-truć).
## (tj. najlakse je). Na PMF-u znam neke koji su 3. godina i
## kompjuteru jos nisu prisli. Na ETF-u ima dosta 'sporednih'
Ja sam na PMF-u i šta da kažem nije naivno, prve dve godine treba
stvarno radom preći ali bar po spisku predmeta dosta su interesantne
III i IV.
Na ETF-u meni je lično bila problem fizika... :(
BDM.
pascal.1091dzakic,
H>> Jok, ako hoces da ti proradi kod mbulata (na XTu) ;>>>>>
Nece raditi ni na AT-u, jer popa i pusha ne cuvaju segment registre!
pascal.1092mazi,
> Nece raditi ni na AT-u, jer popa i pusha ne cuvaju segment
> registre!
Ali je mnogo lakše:
PUSH DS
PUSH ES
PUSHA
nego
PUSH DS
PUSH ES
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI
PUSH BP
PUSH SP
Ivan.
pascal.1093isekulovic,
>> može mijenjati. Možda postoji i neki editor!? Molio bih nekog
Postoje dva editora na sezamu. Jedan (lošiji) je SFE u direktorijumu a
drugi je vezan za neku od poruka u ranijim pascal temama i mislim da se
arhiva zove bgiedit.arj.
pascal.1094m.hristodulo,
>> Na ETF-u, PMF-u i FON-u postoje smerovi vezani za racunare.
>> Nisam sigurna dal' ima nesto i na Saobracajnom.
Ima i na Višoj Poslovnoj smer informatike, al najbolje
je na ETF-u (ako zanemariš struju) i na FON-u (ako zanemariš
ekonomiju i sl.), jer imaju računare. Ostalo mislim da nije
vredno razmišljanja. Bez uvrede PMF-ovci, ali nešto vas nema u
mreži...
pascal.1095dejanr,
==========
borland/bpascal.dos #6684, from jaumesimon, 1315 chars, Thu May 20 12:04:07
1993
----------
TITLE: PrefixSeg selector in TP 7.0 Protected Mode
I have implemented a program that opens more than 20 files. The code to
attain this is :
Type/
PSPType = Record
Fill1 : Array[1..22] of byte;
FileHandleArray : Array[1..20] of byte;
Fill2 : Array[1..8] of byte;
FHTableSize : Word;
FHTableAddress : Pointer;
Fill3 : Array[1..200] of byte;
end;
Const MaxFiles = 100;
Var PSP : ^PSPType;
MyFileTable : Array[1..MaxFiles] of byte;
Procedure ExpandFileTable;
Begin
PSP := Ptr(PrefixSeg,0);
FillChar(MyFileTable,SizeOf(MyFileTable),255);
PSP^.FHTableSize := MaxFiles;
PSP^:FHTableAddress := @MyFileTable;
Move(PSP^.FileHandleArray,MyFileTable,20);
End;
The probles is when I want to execute this in a protected mode (I don't
have problems in real mode). Sometimes the program aborts before the first
sentence an other times after opening two files (in this case is necessary
a reset) but always without error messages.
The most remarkable thing is that the program only fails the first time
after starting the computer. After that, the programs's behaviour is always
perfect until a new reboot.
I would appreciate if any one could help me. Thank you.
pascal.1096skerl,
│ vredno razmisljanja. Bez uvrede PMF-ovci, ali nesto vas nema u
│ mrezi...
└───
A objasni mi, molim te, kakve veze ima prisustvo ili
odsustvo sa mreza sa znanjem programiranja (o tome je bilo
reci, zar ne :) ).
Pozdrav,
Skerl.
pascal.1097pedjak,
> Da li se ovo moze zameniti sa pusha i popa ili sl. ?
Ne može, jer kao što vidiš, ne čuvaju se svi registri, kroz AX
i DX se vraćaju rezultati funkcije.
pascal.1098eagle,
> procedure link;assembler;
> asm
> push es
> push ds
> push cx
> push bx
> push si
> push di
.....
> Ovo bi trebalo da radi, probaj...
Ne radi. Blokira :(
pascal.1099ilazarevic,
> Ima i na Višoj Poslovnoj smer informatike, al najbolje
> je na ETF-u (ako zanemariš struju) i na FON-u (ako zanemariš
A zašto zanemarivati struju? Siguran sam da postoji značajan procenat ljudi
koji bi da budu hardveraši pre svega.
pascal.1100ilazarevic,
> Ja hoću da napišem proceduru koju bih okačio na neki prekid, a da mi
> iznese nešto npr. u AL
procedure Okacena_zar_ne; interrupt;
begin
...
end;
begin
...
setintvec($9,okacena_zar_ne);
Umesto devetke ide naravno bilo koji interapt, a treba i još malo šminke.
Recimo, sačuvaj raniju proc. koja je bila na tom interaptu u nekoj
promenljivoj da bi posle mogao da vratiš...
pascal.1101eagle,
> setintvec($9,okacena_zar_ne);
Jeste okačena, ali kako da je napišem?
pascal.1102sslavko,
Ne znam da li je "Bug " ili "Future" :) ali je vrlo neprijatna
stvar. Pokušaj da izvršim najobičniji write je rezultovao porukom
"Disk read error". Nalaženje greške na osnovu Run-time error-a je
prijavilo da data adresa ne postoji. A sve zato što sam sa
isključenom I/O kontrolom pokušao da čitam iz fajla. Da nisam bio
sto posto siguran da su ostali delovi programa dobri ne bih tako
brzo našao grešku. Ovde je jedan program koji proizvodi takvu grešku.
var f:file of byte;
i:byte;
begin
assign(f,'x');
š$I-ć
reset(f);
if IOResult<>0 then rewrite(f);
read(f,i);
š$I+ć
write('A');
end.
pascal.1103m.hristodulo,
>> A objasni mi, molim te, kakve veze ima prisustvo ili
>> odsustvo sa mreza sa znanjem programiranja (o tome je bilo
>> reci, zar ne :) ).
Naravno da nema, ali ima sa održavanjem znanja. Naime,
čuo sam od drugarice (II godina PMF-a, smer informatike), da u
prvoj i drugoj godini studenti malo vide računare, a da ih tek
upoznaju kasnije... U tom smislu sam i pomenuo prisustvo u
mreži. Da vam dozvoljavaju da koristite računar od prvog dana
studiranja (kao nama na ETF-u, ili na FON-u), onda biste bili u
kontaktu sa ostalim programerima BU-a, a ne ovako, svet za
sebe...
Rekoh: bez ljutnje, i tako nek ostane.
pascal.1104eagle,
> Ne znam da li je "Bug " ili "Future" :) ali je vrlo neprijatna
> stvar. Pokušaj da izvršim najobičniji write je rezultovao
> porukom
Nije bug, već ostavljaš IO grešku. Jednostavno treba "očistiti" IOResult
neposredno pre š$I+ć , bilo kakvim pozivanjem. Na primer:
š$I-ć
.....
if ioresult=0 then;
š$I+ć
write('A');
pascal.1105nbatocanin,
> Bez uvrede PMF-ovci, ali nešto vas nema u mreži...
Bojim se da grešiš ;) Evo, ja sam završio PMF i uradio priličan broj
seminarskih, diplomskih i uopšte *skih radova za ETF, Višu, FON,
mašinski, građevinu, arhitekturu i svašta još, tako da prilično
objektivno mogu sagledati šta se i u kojoj meri uči na ovim
fakultetima. ETF (posle PMF-a, naravno) najbolje poznajem, jer sam
radio sa dosta ljudi zaposlenih na njemu, slušao sam predavanja
tamošnjih profesora, a dosta njih i lično poznajem.
U suštini, stvar se svodi na sledeće: naši fakulteti su napravljeni
za prosečne studente, a ako je neko u toj kategoriji, skoro je
svejedno šta će studirati. Ionako će kasnije na poslu naučiti sve što
mu je potrebno za prosečan rad. Oni što malo više traže, jednostavno
neće to naći na fakultetima. Tamo mogu naći par dobrih profesora koji
će ih eventualno zainteresovati za nešto, i to je sve. Sve ostalo će
morati sami da rade. Fraza da će tamo naučiti da uče mislim da nije
tačna. Da ne ulazim u raspravu zašto je to tako, od sistema u kome se
ljudi bave naukom tako što skupljaju neke poene pišući određen broj
radova ništa više se i ne može očekivati.
Zato, moj savet onima koji upisuju fakultet je: prst na čelo i
razmislite *zašto* to hoćete. Ako hoćete titulu ili bolje radno
mesto, onda ste van moje diskusije ;) Ako ste željni znanja,
zaboravite na oduševljenje bilo kojim fakultetom i spremite se sami
da radite. Fakultet možete upisati samo zbog prethodne stavke ;( A
izaberite svakako onaj koji ima predmete najbliže *vašem*
interesovanju.
pascal.1106bdm.,
## čuo sam od drugarice (II godina PMF-a, smer informatike), da u
Mislis od Spi(ridule). :)
## prvoj i drugoj godini studenti malo vide računare, a da ih tek
## upoznaju kasnije... U tom smislu sam i pomenuo prisustvo u
Na istom sam mestu gde i ona i mogu ti reći da programiranja nema
mnogo (trenutno). A odsustvo sa mreže shvati u tome što ja na celom
svom smeri znam samo nekih desetak ljudi koji nešto tipkaju na compu.
Znači nije problem u fakultetu već u njima a što se tiče pristupa
računarima na PMF-u ima toga dovoljno treba samo hteti...
## mreži. Da vam dozvoljavaju da koristite računar od prvog dana
## studiranja (kao nama na ETF-u, ili na FON-u), onda biste bili u
Dozvoljavaju...
BDM.
pascal.1107skerl,
│ cuo sam od drugarice (II godina PMF-a, smer informatike), da u
│ prvoj i drugoj godini studenti malo vide racunare, a da ih tek
└────
Pre bi moglo da se kaze da su studenti nezainteresovani
za rad, jer racunara ima i pristupacni su, nego da im fakultet
to brani ili, u blazoj varijanti, ne obezbedjuje. Ko hoce moze
da radi na racunarima nezavisno od toga koja je godina. Isto
vazi i za mrezu.
│ Rekoh: bez ljutnje, i tako nek ostane.
└────
Ljutnje nije ni bilo, samo nije to sve bas tako k'o sto
bi se moglo pomisliti :)
Pozdrav,
Skerl.
pascal.1108m.hristodulo,
>> A zašto zanemarivati struju? Siguran sam da postoji značajan
>> procenat ljudi koji bi da budu hardveraši pre svega.
Zato što nema šanse da položiš Elektroniku, kod Caje ni
za dve godine, a da ne pominjem da kreneš sa programerskim
fazonom, i nekom ozbiljnom šljakom, nema teorije da te više
interesuje Teorija Kola, Elektromagnetika, ET Materijali, i sl.
srnj. Potpuno se obeshrabriš... :(
pascal.1109skerl,
TOTDEMO.ZIP TechnoJock's Object Toolkit demos (TP5.5+),1/4
totdemo.zippascal.1110skerl,
TOTDOC.ZIP TechnoJock's Object Toolkit documentation, 2/4
totdoc.zippascal.1111skerl,
TOTNG.ZIP TechnoJock's Object Toolkit, Norton Guide, 3/4
totng.zippascal.1112skerl,
TOTSRC.ZIP TechnoJock's Object Toolkit sources (TP5.5+),4/4
Source Files:
EXTFAST PAS Extensions to totFAST
EXTIO PAS Extensions to totIO
EXTLINK PAS Extensions to totLINK
EXTWIN PAS Extensions to totWIN
TOTBUILD PAS Program for building all units
TOTDATE PAS Date management
TOTDIR PAS Directory display and file selection
TOTFAST ASM Assembly module for screen writing
TOTFAST OBJ Object file for TOTFAST.ASM
TOTFAST PAS Screen writing
TOTFLAGS INC Conditional defines and compiler directives
TOTINPUT PAS Keyboard and mouse control
TOTIO1 PAS Input objects
TOTIO2 PAS Input objects
TOTIO2 INC Input objects
TOTIO3 PAS Input objects
TOTKEY PAS Key constants
TOTLINK PAS Linked list manager
TOTLIST PAS Browse and list windows
TOTLOOK PAS Controls overall color defaults
TOTMENU PAS Menus
TOTMENU INC Menus
TOTMISC PAS Miscellaneous procedures and functions
TOTMSG PAS Message windows
TOTREAL PAS Real type declarations
TOTSTR PAS String manipulation
TOTSYS PAS Hardware
TOTWIN PAS Window management
Pozdrav,
Skerl.
p.s. Sve cetiri arhive su sa Sezamovim hederom.
totsrc.zippascal.1113ssokorac,
─┼┤ read(f,i); Ovde je došlo do menjanja IOResult-a, ali pošto je
─┼┤ š$I+ć aktivan š$I-ć, nema Run-Time Error-a.
─┼┤ write('A'); E, sada, pokušavaš da pišeš a IOResult je različit
on 0, a š$I+ć uključeno i - Run-Time Error.
Dodaj samo jedno IOResult; i, naeavno, š$X+ć
pascal.1114sslavko,
>> razmislite *zašto* to hoćete. Ako hoćete titulu ili bolje
>> radno mesto, onda ste van moje diskusije ;) Ako ste
>> željni znanja, zaboravite na oduševljenje bilo kojim
>> fakultetom i spremite se sami da radite
Upravo to se sa mnom desilo. Upisao PMF sa namerom da učim ono što me
najviše interesuje - programiranje. I učio sam ga, nije da nije ali da nisam
sam isao u računarsku laboratoriju (ala zvuči :)) ne bih tamo ni video računar.
Na kraju sam, posle dve godine odustao jer sam video da to isto mogu da radim i
kući.
PS. Ipak bi cela ova rasprava trebalo da se preseli u drugu temu.
pascal.1115mmile,
>
> Ne radi. Blokira :(
Stavi š$M x,y,zć
pascal.1116m.hristodulo,
>> Mislis od Spi(ridule). :)
A, tako je zovu... :) Pravo joj je ime Danijela.
>>## mreži. Da vam dozvoljavaju da koristite računar od prvog
>>## dana studiranja (kao nama na ETF-u, ili na FON-u), onda
>>## biste bili u
>>
>> Dozvoljavaju...
OK, onda eto mene kod vas, ionako nikad neću položiti
onu Cajotroniku. Nego nešto sam se raspitivao, pa sam čuo da
neki tu, na PMF-u imaju pristup @YUBGSS21.BITNET računaru, pa
ako imaš nekih podrobnijih informacija, piši!
pascal.1117ilazarevic,
> Zato što nema šanse da položiš Elektroniku, kod Caje ni
> za dve godine, a da ne pominjem da kreneš sa programerskim
> fazonom, i nekom ozbiljnom šljakom, nema teorije da te više
> interesuje Teorija Kola, Elektromagnetika, ET Materijali, i sl.
> srnj. Potpuno se obeshrabriš... :(
žek, ček, nisam još stigao tamo... Kad dođem, videćemo koliko je teška ta
Elektronjika ;)
pascal.1118ilazarevic,
> Jeste okačena, ali kako da je napišem?
Da li hoćeš da bude rezidentna ili ne?
Ako je rezidentna, onda ovako:
var proc:procedure;
procedure xx; interrupt;
begin
inline($9c);
proc;
... šovde pišeš šta ti već treba, dakle bilo štać
end;
begin
getintvec($9,proc);
setintvec($9,xx);
keep(0);
swapvectors;
end.
Proc je promenljiva u kojoj moraš da sačuvaš staru vrednost interapta na koji
kačiš svoju proceduru, da ne bi došlo do zabune.
pascal.1119pedjak,
> Ne radi. Blokira :(
Uh, izvini :( Ovo sam kucao iz glave i nisam proverio. Sad videh
male greščice. Evo, treba ovako
procedure link;assemler;
asm
sti
push es
push ds
push cx
push bx
push si
push di
push bp
mov ax,čdata
mov ds,ax
call vrati
pop bp
pop di
pop si
pop bx
pop cx
pop ds
pop es
iret
end;
Ostalo je sve isto. Ovo sam proverio kod mene i radi.
pedja
pascal.1120eagle,
>> Ne radi. Blokira :(
> Stavi š$M x,y,zć
Naravno da sam stavio. Blokira kada pozivam :(
pascal.1121bdm.,
## A, tako je zovu... :) Pravo joj je ime Danijela.
Glb, moja greška, mislio sam da ti je drugarica Grkinja a Spi
je jedina takva. :)
## neki tu, na PMF-u imaju pristup @YUBGSS21.BITNET računaru, pa
## ako imaš nekih podrobnijih informacija, piši!
Ne znam baš mnogo o tome, niti provodim vreme tamo pored računara,
ali jednom prilikom sam video tipa da se šetao svugde po svetu i
reče mi da je račun dobio jednostavno rekavši hoću, čak su mu
objasnili i kako se sve to radi... :)
BDM.
pascal.1122sslavko,
>> E, sada, pokušavaš da pišeš a IOResult je različit on 0, a š$I+ć
>> uključeno i - Run-Time Error.
Da, to sam skontao ali mislim da je ipak malo nezgrapno rešeno sve to.
"Disk read error" ipak zvuči malo čudno ako se radi sa ispisom na ekran.
pascal.1123skerl,
┌──────────┐
│ TPUCat │█
└──────────┘█
▀▀▀▀▀▀▀▀▀▀▀▀
A TPU Cataloging Utility
Version 1.0
February 1, 1993
by Brian Driesse
ALL RIGHTS RESERVED
This program is FREEWARE. You are granted the right to copy
and distribute TPUCat as long as this documentation is included.
ĐŠč TPUCat Use čŠĐ
If you're like me (a programmer with an abundance of TPUs), you may
often find yourself wondering what fucntions and/or procedures are
included in a given unit. Or, you may be looking for a certain type
of function (eg. utilities for the printer) and you spend too much time
looking for the unit that meets your needs. If so.....
I wrote TPUCat to help organize the many TPUs I have collected over
the years (both those I wrote and those downloaded from FTP sites). It
is quite simple, but very helpful all the same.
In essence, I wanted to categorize my various TPUs based on their
respective functions and usefullness. In version 1.0 the following
categories exist:
Communications
Environment
Error Handling
Files
Graphics
Keyboard
Math
Misc
Mouse
Printer
Screen
Sound
Strings
System
TP Specific
TSR
TurboVision.
Also, the TPUs are cataloged based on whether any of the following
are available:
Source Code
Documentation
Demo (Source).
The program itself is very user-friendly. Just follow the on-screen
prompts/instructions. There are three (3) basic operations:
Search by topic - Scan the catalog for TPUs which
have functions dealing with a
given topic (listed above).
Add a TPU entry - Add a listing for a new TPU.
eXit to DOS - Save changes and exit to system.
Pozdrav,
Skerl.
tpucat10.zippascal.1124skerl,
BP7BUGS2.LST - Version 2 of BP 7.0 bug list
This is the second edition of my completely
*un*official list of bugs in BP 7.0.
Pozdrav,
Skerl.
pascal.1125sjeremic,
Da li neko zna šta je sa DLGDSN.ZIP
(ĐibmpcĐpascal). Ne uspevam da ga raspakujem bez greške.
Kojim PKZIP'om je pakovan (možda je u tome rešenje)?
Pozdrav
pascal.1126sjeremic,
=> var f:file of byte;
=> i:byte;
=>
=> begin
=> assign(f,'x');
=> š$I-ć
0=> reset(f);
1=> if IOResult<>0 then rewrite(f);
2=> read(f,i);
3=> š$I+ć
4=> write('A');
=> end.
Deco, čitajte šta piše!!!!!!!!!!!!!!!!
0) otvara datoteku
1) ako ona ne postoji onda je kreira (praznu)
2) čita iz datoteke
ŠTA AKO JE NIJE BILO: NAPRAVLJENA JE NOVA-PRAZNA,
A ONDA IZ NJE SE NEŠTO POKUŠAVA žITATI.
NE MOčE!
Eventualno (ako se to traži naravno) da bude
1) if
IOResult<>0
then
rewrite(f)
2) else
read(f,i);
PS: Ono deco, kao onima koji uče, nije uvredljivo
pascal.1127eagle,
> Deco, čitajte šta piše!!!!!!!!!!!!!!!!
> ŠTA AKO JE NIJE BILO: NAPRAVLJENA JE NOVA-PRAZNA,
> A ONDA IZ NJE SE NEŠTO POKUŠAVA žITATI.
Veelika mudrost! Poenta priče je bila da se izvede da program ne prijavi
(očiglednu) grešku. Smanji doživljaj...
pascal.1128ssokorac,
─┼┤ Eventualno (ako se to traži naravno) da bude
Ma, sve je to ok, zato je i stavljeno š$I-ć, ali stvar je bila zašto sa
write(a) javlja Disk Read Error.
pascal.1129beast,
>> A TPU Cataloging Utility
žemu ovo služi? :)
pascal.1130bulaja,
│BP7BUGS2.LST - Version 2 of BP 7.0 bug list
└───
Thanks, prebaceno u Pascal dir.
pascal.1131valhala,
>###### Na PMF-u znam neke koji su 3. godina i
>###### kompjuteru jos nisu prisli.
Eto, to je bas ono sto hocu da IZBEGNEM! Nervira me to sto covek ne moze da se
posveti fino i apsolutno i samo racunarima onako kako je to moguce sa vecinom
drugih oblasti, nego ti utovare petnaest hiljada sporednih predmeta.
Za bavljenje racunarima, bar kakav ja utisak imam, nije potrebno forsirati
matematiku onoliko koliko je guraju-ako mi treba matematika, trazicu nekog da
mi to uradi, pa cu iz toga izvuci ono sto mi treba.Mozda gresim, ali ako je
tako
onda to neiskustvo govori iz mene.
pascal.1132valhala,
>###### Pre bi moglo da se kaze da su studenti nezainteresovani
>###### za rad, jer racunara ima i pristupacni su, nego da im
>###### fakultet to brani ili, u blazoj varijanti, ne
>###### obezbedjuje. Ko hoce moze da radi na racunarima nezavisno
>###### od toga koja je godina. Isto vazi i za mrezu.
?! Ne mogu da razumem da neko upise informaticki smer i onda NIJE ZAINTERESOVAN
za rad sa racunarima. Nego, ono sto sam stvarno hteo da zamolim jeste da mi
neko
mailne (ako nije previse obimno za kucanje) nekakav presek rada na PMF i\ili
ETF, onako cisto informativno( za informaticke smerove, naravno), da vidim sta
mogu da ocekujem, jer imam osecaj da u informatoru ne daju previse
informacija:)
Kakve tezine su prijemni ispiti? Neko rece da su nasi fakulteti pravljeni za
mediokritete...
Val.
pascal.1133paki,
>>> A TPU Cataloging Utility
>
> žemu ovo služi? :)
Ako imaš 300 fajlova u direktorijumu DOC znaš čemu služi :)
Evo, ja znam :))
pascal.1134dejanr,
Odgovor u ORKA/obrazovanje.
pascal.1135skerl,
│>> A TPU Cataloging Utility
│
│ Cemu ovo sluzi? :)
└───
Nesto kao CatDisk ali za tpu-ove :)
Pozdrav,
Skerl.
pascal.1137jasicp,
> Da li neko zna sta je sa DLGDSN.ZIP
Meni normalno ide, PKZIP sa Sezama ( 2.04 valjda ).
pascal.1138jasicp,
Hajde lepo neko da smanji ovo na dve datoteke jer sam ja
sa 1200 modemom pa mi 32 min donose probleme,
Hvala unapred, Pedja !
pascal.1139sslavko,
>> 1) if
>> IOResult<>0
>> then
>> rewrite(f)
>> 2) else
>> read(f,i);
Tačno. Bravo čovek. Upravo tako te linije glase nakon otkrivanja greške. Ali
pitanje je bilo sasvim drugačije. Zašto nakon toga write ili writeln koji
inače vrši ispis na ekran, prijavljuje Disk Read Error. Savršeno je jasno da je
I/O greška ostala i da se ovo da ispraviti čitanjem IOresult-a. Isto tako je
jasno i da je write ili writeln još jedna I/O operacija. Iz mog programa se
dalo zaključiti da write i writeln testiraju IOResult ali zašto prijavljuju
Disk Read Error? Izgleda da je ipak u pitanju jedan mali, malecki bugčić.
pascal.1140sslavko,
>> Eto, to je bas ono sto hocu da IZBEGNEM! Nervira me to
>> sto covek ne moze da se posveti fino i apsolutno i samo
>> racunarima onako kako je to moguce sa vecinom drugih
>> oblasti, nego ti utovare petnaest hiljada sporednih
>> predmeta.
Ja sam to izbegao, ali nažalost posle dve godine provedene tamo.
pascal.1141dejanr,
>> Tačno. Bravo čovek. Upravo tako te linije glase nakon otkrivanja greške. Ali
>> pitanje je bilo sasvim drugačije. Zašto nakon toga write ili writeln koji
>> inače vrši ispis na ekran, prijavljuje Disk Read Error. Savršeno je jasno da
>> je I/O greška ostala i da se ovo da ispraviti čitanjem IOresult-a. Isto tako
>> je jasno i da je write ili writeln još jedna I/O operacija. Iz mog programa
>> se dalo zaključiti da write i writeln testiraju IOResult ali zašto
>> prijavljuju Disk Read Error? Izgleda da je ipak u pitanju jedan mali,
>> malecki bugčić.
Pa, pre bih rekao da je poruka možda zbunjujuća. U stvari, on nije prijavio
grešku kod WRITE-a nego je to "odložena" prijava one poruke koja je zbilja
nastala pri čitanju sa diska. Verovatno kod svake I/O operacije proverava
kod greške.
pascal.1142ndragan,
/ Za bavljenje racunarima, bar kakav ja utisak imam, nije potrebno
/ forsirati matematiku onoliko koliko je guraju-ako mi treba matematika,
/ trazicu nekog da
Cvrc i jeste u tome, da si bolji programer ako si bolji matematičar.
Nije stvar samo u tome da su matematičari postavili osnove računarstva,
nego i u određenom načinu razmišljanja koji ti matematika obezbeđuje, a
koji je nekakva najbolja voda u kojoj programerski um dobro pliva.
Pogotovu ti dobro dođe ako ne misliš da budeš samo programer koji će da
pravi zgodne male .exe za pojedine poslove, nego da budeš projektant, pa
ti često treba da za kratko vreme sagledaš funkcionisanje većeg sistema.
Slike koje stvaraš u glavi dok učiš, recimo, diferencijalnu geometriju,
kasnije dobro dođu kad lepiš tapete na krive zidove. Takvih blesavih
analogija (do imbecilnosti :) ima toliko da posle sedme više ni ne
razmišljaš odakle ti ideja. Znaš da je negde iz matematike, i osećaš se
čudno srećan što si tako pametan...
pascal.1143juros,
Da li neko zna da li kada kompajlira TP unit-e, ubacuje ceo unit u exe, ili
samo procedure koje se koriste u okviru programa?
pascal.1145dejanr,
>> Da li neko zna da li kada kompajlira TP unit-e, ubacuje ceo unit u exe, ili
>> samo procedure koje se koriste u okviru programa?
Prema Borlandovoj dokumentaciji, linker je (negde od verzije 4.0) "pametan"
i uključuje samo procedure koje su stvarno potrebne. Nisam proveravao da li
je ta tvrdnja istinita, ali valjda jeste, kad kažu ljudi.
pascal.1146m.hristodulo,
>> {$I+}
>> write('A');
Write je prva naredba iza $I-, pa zato TP i prijavljuje
grešku čim počne da ih ispituje. Razlog zašto u IOResult ostaje
kood predhodne greške, dok ne izvršiš čitanje istog, je
verovatno u tome, da su tvorci TP-a predvideli neku obradu
grešaka od strane programera, pa TP čuva vrednost IOResult-a dok
mu ne pristupimo radi obrade greške...
A da je IOResult izgubio vrednost nakon sledeće naredbe,
možda bi se ta greška kasnije manifestovala fatalnije, pa je
zato TP ne zaboravlja... Predostrožnost, I belive...
Feature, not a bug... Tako Treba (c) by Cobe
pascal.1147peca.st,
!-> Prema Borlandovoj dokumentaciji, linker
!-> je (negde od verzije 4.0) "pametan" i
!-> uključuje samo procedure koje su stvarno
!-> potrebne. Nisam proveravao da li je ta
!-> tvrdnja istinita, ali valjda jeste, kad
!-> kažu ljudi.
Sad sam proverio i čini mi se da nije.
Prvo sam napisao samo begin i end. pa kompajlirao,
a zatim stavio uses crt; begin i end. i ispalo je
više! (oko 3K) Zanimljivo je da kada sam stavio
uses dos; begin i end. bilo je isto kao i prvi put.
Peđa.
pascal.1148dejanr,
>> > Prema Borlandovoj dokumentaciji, linker je (negde od verzije 4.0)
>> > "pametan" i uključuje samo procedure koje su stvarno potrebne.
>> > Nisam proveravao da li je ta tvrdnja istinita, ali valjda jeste,
>> > kad kažu ljudi.
>>
>> Sad sam proverio i čini mi se da nije.
>> Prvo sam napisao samo begin i end. pa kompajlirao,
>> a zatim stavio uses crt; begin i end. i ispalo je
>> više! (oko 3K) Zanimljivo je da kada sam stavio
>> uses dos; begin i end. bilo je isto kao i prvi put.
Mislim da je stvar u tome što crt nisu samo procedure, nego u najmanju
ruku i tretman standardnog ulaza i standardnog izlaza. žim si stavio
uses crt, redirekcija više ne radi (ako ne preduzmeš neke mere). Dakle,
pošto su standardni ulaz i standardni izlaz valjda uvek deo programa
(podrazumeva se ono program xxx(input, output) na početku), verovatno
se taj deo koda mora ugraditi.
Primer sa DOS unit-om pokazuje da bi Borlandova tvrdnja ipak mogla biti
tačna. Najbolje napravi neki svoj unit sa nekoliko procedura, pa ih
nemoj pozivati i vidi šta se dešava.
pascal.1149vitez.koja,
#=> Prema Borlandovoj dokumentaciji, linker je (negde od
#=> verzije 4.0) "pametan" i uključuje samo procedure koje
Za njegove 'interne' unite (DOS i CRT) ovo sigurno vazi, valjda radi i
sa korisnikovim modulima.
pascal.1150m.hristodulo,
>> Da li neko zna da li kada kompajlira TP unit-e, ubacuje ceo
>> unit u exe, ili samo procedure koje se koriste u okviru
>> programa?
Samo procedure koje se koriste u okviru programa!
Provereno!
pascal.1151a.kircanski,
Da li Bp7 radi sa samo 1mb rama?
Meni javlja "out of memory..."
žini mi se da je kod ortaka radio...
pascal.1152lovro,
=- je ta tvrdnja istinita, ali valjda jeste, kad kazu ljudi.
Istinita je, proveravao sam. Medjutim, neki uniti (graph.tpu na primer)
cak i ako ih ne koristis nego samo kazes uses ubacuju u .exe neki svoj deo.
Crt i ostali to ne rade.
Lovro
pascal.1153juros,
Da li zaista postoji TPX, neki kompajler za expanded memoriju za TP; to sam cuo
od nekog mog ortaka?
pascal.1154juros,
Da li su Borland Pascal 7.0 i Turbo Pascal 7.0 neke vrste za visual-no
programiranje?
pascal.1155dejanr,
>> Da li zaista postoji TPX, neki kompajler za expanded memoriju za TP; to sam
>> cuo od nekog mog ortaka?
Postoji, u okviru paketa Turbo Pascal Profesional. Samo, sada je sve to
zastarelo, aktuelna verzija je Borland Pascal 7.0, tu je extended memorija
(preko DPMI standarda) potpuno podržana. Doduše, strukture su ograničene
i dalje na 64 K (fuj, fuj :( ) ali se bar može alocirati kol'ko oćeš takvih
struktura (tj. koliko staje u čitavu memoriju).
pascal.1156dejanr,
>> Da li su Borland Pascal 7.0 i Turbo Pascal 7.0 neke vrste za visual-no
>> programiranje?
Ne znam baš šta zoveš "vizuelno programiranje", ali u svakom slučaju pomoću
Borland Pascal-a 7.0 mogu da se pišu programi koji rade pod Windows-om.
Pomoću TP 7.0, koliko znam, ne mogu (osim u DOS prozoru).
pascal.1157peca.st,
!-> Mislim da je stvar u tome što crt nisu
!-> samo procedure, nego u najmanju ruku i
!-> tretman standardnog ulaza i standardnog
!-> izlaza. žim si stavio uses crt,
!-> redirekcija više ne radi (ako ne
!-> preduzmeš neke mere). Dakle,
Ok, može biti.
Peđa.
pascal.1158peca.st,
!-> Za njegove 'interne' unite (DOS i CRT)
!-> ovo sigurno vazi
;)
Peđa.
pascal.1159peca.st,
!-> Crt i ostali to ne rade.
Crt radi, DOS jok.
Ja praktično dokazao, a DejanR objasnio zašto.
Peđa.
pascal.1160juros,
>Postoji, u okviru paketa Turbo Pascal Profesional. Samo, sada je sve to
>zastarelo, aktuelna verzija je Borland Pascal 7.0, tu je extended memorija
>(preko DPMI standarda) potpuno podrzana. Doduse, strukture su ogranicene
>i dalje na 64 K (fuj, fuj :( ) ali se bar moze alocirati kol'ko oces takvih
>struktura (tj. koliko staje u citavu memoriju).
Zastarelo? Borland Pascal zauzima ~ 20,30 MB koliko sam obavesten, a TP 6.0
oko 2,3 MB. Nije stos u zastarelosti nego u MB.
pascal.1161juros,
>Ne znam bas sta zoves "vizuelno programiranje", ali u svakom slucaju pomocu
>Borland Pascal-a 7.0 mogu da se pisu programi koji rade pod Windows-om.
>Pomocu TP 7.0, koliko znam, ne mogu (osim u DOS prozoru).
Pod vizuelnim programirasnjem smatram : izaberes okruzenje, menije, ikone,
pa tek onda programiras akciju za svaku izabranu opciju. (Npr. VISUAL BASIC)
pascal.1162dejanr,
>> Zastarelo? Borland Pascal zauzima ~ 20,30 MB koliko sam obavesten, a
>> TP 6.0 oko 2,3 MB. Nije stos u zastarelosti nego u MB.
A Turbo Pascal 5.5 zauzima 720 K, Turbo Pascal 4.0 600, Turbo Pascal 3.0...
Sve zavisi šta se instalira. Ako ti ne treba Windows, zauzima negde 6 mega,
plus ili minus. A ako ti treba Windows, onda je TP 6.0 jednostavno
neupotrebljiv, pa poređenje nema smisla.
pascal.1163dejanr,
>> Pod vizuelnim programirasnjem smatram : izaberes okruzenje, menije, ikone,
>> pa tek onda programiras akciju za svaku izabranu opciju. (Npr. VISUAL BASIC)
Ne, Borland Pascal 7.0 je manje-više klasičan Turbo Pascal sa opisanim
novitetima, nema nekih koncepcijskih promena koje bi ga približile
Visual Basic-u. Bar koliko se meni čini.
pascal.1164dgrbic,
:: a zatim stavio uses crt; begin i end. i ispalo je
Ko što znaš, unit može da ima svoj deo za inicijalizaciju.
E, to ti je ta razlika.
pascal.1165peca.st,
Pošto vidim da se o tome vodi rasprava u temi cccc,
ajde da i ja pitam isto to, samo za pascal.
So, kako ulinkovati u .exe fontove
koji nisu standardni TP 6.0 fontovi,
ali koji jesu .bgi?
(npr. onih 5-6 što su bili ovde na sezamu)
Peđa.
pascal.1166a.kircanski,
Kako pomoću paskala dokučiti (:) ) sa li je 4dos instaliran ili nije?
Ovako:
u ax stavite $d44d;
u bx $0000
i izvršite interpat $2f.
E pa, ako se ax posle izvršenog prekida promeni onda je 4dos TU.:)
A ako se NE promeni onda nije tu.:)
Program može da izgleda npr. ovako:
Uses Dos;
var t : registers;
begin
t.ax := $d44d;
t.bx := $0000;
intr($2f,t);
if t.ax = $d44d then
begin
Writeln('4dos NIJE instaliran u memoriju!');
end
else Writeln('4dos JESTE instaliran u memoriju!');
end.
pascal.1167jasicp,
> TOTDOC.ZIP TechnoJock's Object Toolkit documentation, 2/4
Najljubaznije vas molim da podelite TOTDOC na dva dela jer se
tesko moze preneti pomocu 1200 bps modema ( >32 minuta za prenos datoteke ).
Hvala !
pascal.1168skerl,
│ Najljubaznije vas molim da podelite TOTDOC na dva dela jer se
│ tesko moze preneti pomocu 1200 bps modema ( >32 minuta za prenos
│ datoteke ).
└────
Ne znam da li je Bulaja vec prebacio kompletan TOT u pascal
dir pa ako nije, eto zgodne prilike da se podseti :) U dir-u ce
fajlovi biti prilagodjeni i za dl na 1200.
Pozdrav,
Skerl.
pascal.1169bulaja,
│Ne znam da li je Bulaja vec prebacio kompletan TOT u pascal
│dir pa ako nije, eto zgodne prilike da se podseti :)
└───
Imam to u podsetniku, smao nikako da stignem ovih dana da istresem sa
lokala jos gomilu drugih stvari koje takodje treba razdeliti. Bice :).
pascal.1170a.kircanski,
Hi
Oće' li ni neko reći kako da iz pascal-a, upalim npr.
numlock i "zaglavim njegovo paljenje i gašenje:)".
TJ. ne znam samo kako da zaglavim to, a palim sa npr:
var
p : žBYTE
begin
p := ptr($40,$17);
pž := xx; š neznam napamet ć
end.
Pozdrav (A.K)
pascal.1171paki,
Treba mi neka ideja (još bolje funkcija :) koja bi radila
sledeće:
Zadate su 2 tačke, A(x,y) i B(x1,y1). Treba odrediti u kom je
položaju B u odnosu na A, tj. da li je gore, goredesno, desno
itd. Skontao sam da treba podeliti pun krug na 8 jednakih oblasti
i onda ispitivati u kojoj se nalazi. Svaka oblast je trougao s
uglom u tački A 45°, s tim što, ako je tačka u oblasti s uglom
manjim ili jednakim 22°30' levo i desno od vertikale, onda se
nalazi gore itd. Kako proveriti u kojoj se oblasti nalazi tačka?
Meni jedino na pamet padaju sinusi, kosinusi i ostale zveri :)
Može li lakše/lepše/elegantnije?
I još nešto, da li BP7.0 podržava VGA mod 320x200x256? Bilo bi
čudno da ne podržava, ali opet...Probao sam sa InitVGA256
funkcijom iz Računara, ali tada MouseLib neće da radi kako treba.
pascal.1172bulaja,
**** new file ****
R:\IBMPC\PASCAL\*.*
----------------------
totdemo zip 113493 TechnoJock's Object Toolkit, Demonstracija (#1/5)
totdoc1 zip 104972 TechnoJock's Object Toolkit, Dokumentacija 1 (#2/5)
totdoc2 zip 97757 TechnoJock's Object Toolkit, Dokumentacija 2 (#3/5)
totng zip 20189 TechnoJock's Object Toolkit, Norton Guide (#4/5)
totsrc zip 140063 TechnoJock's Object Toolkit (TP5.5+), Source (#5/5)
Poslao koliko malopre :) Skerl, prebaceno u PASCAL dir (doc podeljen).
TechnoJock's Object Toolkit (or simply the Toolkit) is a library of
objects, procedures and functions for Pascal programmers. While writing
a PC program, most people spend 80% or more of their time writing the
program's user interface, and only 20% on the "meat" of the applica-
tion. The Toolkit is designed to provide a wealth of professional user
interface tools which can eliminate up to 80% of your development work.
For example, to display a sorted directory listing in a moveable window
takes a mere three lines of code.
The interface tools include such features as efficient screen writing,
window management, menu management, full screen user input, list dis-
playing, directory listing and much more. These tools give programs a
truly professional appearance, and use the latest interface style with
pop-up dialog boxes, scroll-bars and malleable windows, all with full
mouse and keyboard support.
As well as needing a user interface, many programs have to manipulate
strings, access files, check attached hardware, and the like. The Tool-
kit also provides a rich set of routines to help with these common
tasks.
If you are new to object oriented programming, you are in luck, for the
Toolkit provides a great way for you to learn this powerful facility
without requiring that you be a rocket scientist!
pascal.1173bulaja,
│Zadate su 2 tacke, A(x,y) i B(x1,y1). Treba odrediti u kom je polozaju
│B u odnosu na A, tj. da li je gore, goredesno, desno itd. Skontao sam
│da treba podeliti pun krug na 8 jednakih oblasti i onda ispitivati u
│kojoj se nalazi. Svaka oblast je trougao s uglom u tacki A 45°, s tim
│sto, ako je tacka u oblasti s uglom manjim ili jednakim 22°30' levo i
│desno od vertikale, onda se nalazi gore itd. Kako proveriti u kojoj se
│oblasti nalazi tacka? Meni jedino na pamet padaju sinusi, kosinusi i
│ostale zveri :) Moze li lakse/lepse/elegantnije?
└───
Uh bre al' ga zakomplikova :). Ako je Ax < Bx onda je A levo od B,
takodje ako je Ay < Bx onda je dole, itd. Nista lakse :).
type
Tacka = record
x, y : Real
end;
procedure Polozaj (A, B : Tacka);
begin
writeln ('Tacka A je u odnosu na B');
if (a.y > b.y) then
write ('Gore ')
else if not(a.y=b.y) then
write ('Dole ');
if (a.x > b.x) then
write ('Desno')
else if not(a.x=b.x) then
write ('Levo');
writeln;
end;
pascal.1174a.kircanski,
hi
Niko mi ne odgovori:(( kako da isključim, gašenje, paljenje, lockova npr.
CAPS locka????????????
Ne moguće da niko ne zna....;)
cy
pascal.1175paki,
> Uh bre al' ga zakomplikova :). Ako je Ax < Bx onda je A levo
> od B, takodje ako je Ay < Bx onda je dole, itd. Nista lakse
> :).
GoreLevo? DoleDesno? :(((((
pascal.1176paki,
> Poslao koliko malopre :) Skerl, prebaceno u PASCAL dir (doc
> podeljen).
Super, cenim da je ovo prava stvar za početnike u OOPu (a još je
i korisna :)
pascal.1177ssokorac,
─┼┤ Zadate su 2 tačke, A(x,y) i B(x1,y1). Treba odrediti u kom je
─┼┤ položaju B u odnosu na A, tj. da li je gore, goredesno, desno
─┼┤ Može li lakše/lepše/elegantnije?
If x1<x then levo:=true
else levo:=false;
if y1<x then gore:=true
else gore:=false;
if gore then
if levo then writeln('gorelevo')
else writeln('goredesno')
else
if desno then writeln('dolelevo')
else writeln('doledesno');
E, sad, naravno, ovo tebi ne valja, samo mi reci zašto? :)
─┼┤ funkcijom iz Računara, ali tada MouseLib neće da radi kako treba.
Uzmi SVGABGI3, ili SVGABG30, ne znam kako se tačno zove :). E, za MouseLib
moraš da uradiš jedan InitMouse; SetMouseGraph; pre rada pa će i on da radi.
Samo, pazi, moraš da koristiš svga256m.bgi a ne svga256.bgi, jer prvi ne
radi... (sa mišem) :(
pascal.1178eagle,
> Zadate su 2 tačke, A(x,y) i B(x1,y1). Treba odrediti u kom je
> položaju B u odnosu na A, tj. da li je gore, goredesno, desno
> itd. Skontao sam da treba podeliti pun krug na 8 jednakih
> oblasti i onda ispitivati u kojoj se nalazi. Svaka oblast je
> trougao s uglom u tački A 45°, s tim što, ako je tačka u
> oblasti s uglom manjim ili jednakim 22°30' levo i desno od
> vertikale, onda se nalazi gore itd. Kako proveriti u kojoj se
> oblasti nalazi tačka? Meni jedino na pamet padaju sinusi,
> kosinusi i ostale zveri :) Može li lakše/lepše/elegantnije?
Evo ovako, bez sinusa i kosinusa ali sa ostalim zverima ;)
if arctan(abs((x1-x)/(y1-y))) <= (3/8*pi) then
if y1>y then writeln('Gore') else writeln('Dole');
if arctan(abs((y1-y)/(x1-x))) <= (3/8*pi) then
if x1>x then writeln('Desno') else writeln('Levo');
Ovo proverava da li je ugao u određenom kvadrantu manji ili jednak sa
uglom od 67°30' tj. uglom koji čini na primer ceo gornji-desni trougao
plus parče og gornjeg trougla. Ako ispunjava uslov, znači da u opisu treba
da stoji reč "gornji" bio to gornji ili gornji-levi ili gornji-desni trougao.
Uzima se da je za y1>y2 prva tačka gore a druga dole, kao u normalnom
koordinatnom sistemu. Program ne radi ako se tačke nalaze na istoj vertikali
ili horizontali, što lako možeš prethodno da proveriš.
pascal.1179ilazarevic,
Treba mi pomoć :) Zna li neko šta ne valja u priloženom sorsu:
procedure kopi(imedira,karta:string;var res:boolean);
var f1,f2:file;
bafer:arrayŠ1..2048Ć of char;
nr,nw:word; šnr,nw: broj procitanih i upisanih bajtać
info:searchrec;
procedure kopifajl(fajl:string);
begin
š$I-ć
findfirst(fajl,Archive,info);
š$I+ć
if doserror<>0 then res:=false else res:=true;
if res then begin
assign(f1,info.name);
assign(f2,imedira+'Đ'+info.name);
reset(f1);
rewrite(f2);
repeat
blockread(f1,bafer,sizeof(bafer),nr);
blockwrite(f2,bafer,nr,nw);
until (nr=0) or (nr<>nw);
close(f2);
close(f1);
end;
end;
begin
kopifajl('atom.exe');
kopifajl('reg.cfg');
kopifajl(karta+'.bgi');
end;
O čemu se radi? Treba da kopiram ova tri fajla sa A diska u dati
direktorijum. Ime dira se nalazi u promenljivoj 'imedira' i korektno je
zadato. Promenljiva 'karta' označava koji BGI fajl treba kopirati, što i nije
bitno. Evo šta se dešava kada probam da startujem ovo - fajlovi se otvore u
datom diru, ali budu dugački 0 bajta! Kad trace-ujem (trejsujem) ovu
proceduru, dobijam da pri prvom čitanju sa blockread NR postaje 0, a zatim i
NW (što je logično). Ovako nešto ne bi smelo da se desi, zato što sam po
helpu tražio primer za blockread i blockwrite i našao primer koji potpuno
isto izgleda kao moja KOPIFAJL procedura.
pascal.1180eagle,
> Niko mi ne odgovori:(( kako da isključim, gašenje, paljenje,
> lockova npr. CAPS locka????????????
Verovatno da postoji bolji način, ali možeš i ovako za caps lock.
š$M 1024,0,0ć
uses dos;
var old:procedure;
procedure pp;interrupt;
begin
if portŠ$60Ć in Š58,186Ć then portŠ$60Ć:=0;
inline($9c);
old;
end;
begin
getintvec($09,čold);
setintvec($09,čpp);
keep(0);
end.
Ovime praktično možeš da isključiš bilo koji taster, dovoljno je samo da
promeniš 58,186 u odgovarajuće vrednosti. Inače, ovo je rezidentan program,
ne znam kako bi izgledalo u "običnom".
pascal.1181dejanr,
>> Treba mi pomoć :) Zna li neko šta ne valja u priloženom sorsu:
>> assign(f1,info.name);
Stavi ovde i imedira+info.name
pascal.1182funky,
>> E, sad, naravno, ovo tebi ne valja, samo mi reci zašto? :)
A ako je x1=x ili y1=y ;))))))
funky
pascal.1183sjeremic,
=> GoreLevo? DoleDesno? :(((((
Zar GoreLevo nije Gore And Levo ?
pascal.1184ndragan,
/ Meni jedino na pamet padaju sinusi, kosinusi i ostale zveri :)
I treba, a onda se svede na to da ti je tangens tog ugla dovoljan, a i
to samo da li je veći ili manji od jedan, odnosno minus jedan... pa se
stvar uprosti time da je taj tangens u stvari količnik vertikalna kroz
horizontalna kateta trougla kome su tvoje dve tačke na hipotenuzi...
'vako biva:
Neka ti je a=x2-x1, b=y2-y1, onda po pi_četvrtinama ide ovako
pi/4 a b abs(b/a)
1 >0 >0 <1
2 >1
3 <0 >0 >1
4 <1 ... itd, dopuni za donju polovinu kruga.
Moglo bi da se svede na nekakav logički izraz tipa usl1 + 2*usl2 +
4*usl3, (uslx da bude 0 ili 1, odnosno 0 i -1, zavisno od jezika). pa
onda dobijaš 8 slučajeva... tek da ne praviš četir ifa u dva ifa u ifu,
nego jedan kejs.
pascal.1185eagle,
> Treba mi pomoć :) Zna li neko šta ne valja u priloženom sorsu:
> procedure kopi(imedira,karta:string;var res:boolean);
> reset(f1);
> rewrite(f2);
Otvori sa reset(f1,1) i rewrite(f2,1). Tako postavljaš veličinu jednog
bloka na 1 bajt, što je obavezno kada je u pitanju fajl proizvoljne dužine.
> Ovako nešto ne bi smelo da se desi, zato
> što sam po helpu tražio primer za blockread i blockwrite i
> našao primer koji potpuno isto izgleda kao moja KOPIFAJL
> procedura.
Pogledaj malo bolje :)
pascal.1186paki,
> If x1<x then levo:=true
> else levo:=false;
> if y1<x then gore:=true
> else gore:=false;
> E, sad, naravno, ovo tebi ne valja, samo mi reci zašto? :)
Pa sad... :))
Prvo, treba y1<y :)))
Drugo, treba mi za svih 8 smerova, ali da budu ravnopravni :))
Tj. kao ono što je Eagle poslao (proveriću da li radi...).
U svakom slučaju hvala svima.
> Uzmi SVGABGI3, ili SVGABG30, ne znam kako se tačno zove :). E,
> za MouseLib moraš da uradiš jedan InitMouse; SetMouseGraph;
> pre rada pa će i on da radi. Samo, pazi, moraš da koristiš
> svga256m.bgi a ne svga256.bgi, jer prvi ne radi... (sa mišem)
> :(
Pošto me SVGA asocira na 512 i više Kb (kojih nemam :() radi li
to i s modom 320x200x256? Ako radi, odma' ga mažnjavam. Ako ne,
ostajemo na VGA256. Inače, uradio sam ja i init i setgraph ali
neće :( Misli da se nalazi u nekom AAAxBBB modu pa mi tako i
vraća koordinate ;)
pascal.1187andra,
>> Niko mi ne odgovori:(( kako da iskljucim, gasenje, paljenje,
>> lockova npr. CAPS locka????????????
> promenis 58,186 u odgovarajuce vrednosti. Inace, ovo je rezidentan program,
> ne znam kako bi izgledalo u "obicnom".
U obicnom bi negde AND-ovao neki bit. Zaboravio sam koji,
ali ako poglevas u .ng sa asm nacices kako je memorija
mapirana,pa AND-uj sta treba.
Inace, ceo program ima cc 8 bytes.
pascal.1188a.kircanski,
_-=> if portŠ$60Ć in Š58,186Ć then portŠ$60Ć:=0;
Thanx!
Samo odakle ti one vrednosti 58,186??
pascal.1189bulaja,
││Uh bre al' ga zakomplikova :). Ako je Ax < Bx onda je A levo
││od B, takodje ako je Ay < Bx onda je dole, itd. Nista lakse :).
│└───
│GoreLevo? DoleDesno? :(((((
└───
Pa pise ti u funkciji koju sam dao :).
Gore/Dole i Levo/Desno su nezavisne relacije, posto zavise od nezavisnih
:) koordinata, tj. Gore/Dole od Y, a Levo/Desno od X. Znaci prvo racunas
jedan odnos (svejedno koji) pa onda drugi, onda spojis rezultate i
dobijes ono sto ti treba - Gore-Levo (ili Levo-Gore), Dole-Desno i sl.
Jel' treba mozda da nacrtam? :)
pascal.1190mmile,
*> Niko mi ne odgovori:(( kako da isključim, gašenje, paljenje,
*> lockova npr. CAPS locka????????????
* Verovatno da postoji bolji način, ali možeš i ovako za caps
* lock.
*
* Ovime praktično možeš da isključiš bilo koji taster, dovoljno
* je samo da promeniš 58,186 u odgovarajuće vrednosti. Inače, ovo
* je rezidentan program, ne znam kako bi izgledalo u "običnom".
Status Caps,Scroll i Num Lock-a kao i Shiftova,Altova i Ctrl-ova cuva se
na adresi 40h:17h.
"Obicno" resenje bi bilo :
begin
(*....*)
memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32; (* 32 za num lock *)
(*...*)
end.
* getintvec($09,čold);
Cemu ovo sluzi kad nigde nemas uslov kojim bi stari vektor sa interapta 9h
vratio na njegovu originalnu vrednost ?
Evo mog rezidentnog resenja ( stalno pali gasi lampicu Num Lock-a ) :
š$M 1024,0,0ć
uses dos;
Procedure Pali;interrupt;
begin
memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32;
end;
Begin
SetIntVec($1c,čpali);
keep(0);
end.
pascal.1191eagle,
>> promenis 58,186 u odgovarajuce vrednosti. Inace, ovo je
>> rezidentan program, ne znam kako bi izgledalo u "obicnom".
> U obicnom bi negde AND-ovao neki bit. Zaboravio sam koji,
> ali ako poglevas u .ng sa asm nacices kako je memorija
> mapirana,pa AND-uj sta treba.
> Inace, ceo program ima cc 8 bytes.
Ok to, ali kako u "običnom" programu okačiti neku proceduru na $09 ?
pascal.1192eagle,
> _-=> if portŠ$60Ć in Š58,186Ć then portŠ$60Ć:=0;
> Thanx!
> Samo odakle ti one vrednosti 58,186??
Pa napišeš otprilike: While true do writeln(portŠ$60Ć), pritiskaš tastere
i gledaš šta se dešava. 58 je kod koji daje pritisnut a 58+128 pušten taster
caps lock.
pascal.1193eagle,
>* getintvec($09,čold);
> Cemu ovo sluzi kad nigde nemas uslov kojim bi stari vektor sa
> interapta 9h vratio na njegovu originalnu vrednost ?
Pa mora se obezbediti izvršavanje procedure(a) koja već stoji na $09.
U suprotnom bi tastatura ostala "mrtva" za sve osim za našu proceduru.
Slično važi i za još neke, na primer $08. Baci pogled, proceduru old svaki put
poziva naša interapt procedura.
> Evo mog rezidentnog resenja ( stalno pali gasi lampicu Num
> Lock-a ) :
> Procedure Pali;interrupt;
> begin
> memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32;
> end;
žemu ovo služi, a uz to i ne radi? Prvo ne pozivaš staru proceduru,
drugo ovo stalno pali-gasi num od čega nema ama baš nikakve koristi (problem
je kako zaključati num-lock) što se da lako ispraviti zamenom XOR naredbe
OR naredbom. Treće, i najvažnije, zašto nepotrebno teretiti prekid koji se
poziva oko 20 puta u sekundi? Ovako samo usporavaš sistem, pošto ionako
korisnik
nema načina da promeni status num-locka nego preko pritiska na dugme na
tastaturi, čime se poziva prekid na $09 vektoru.
pascal.1194ssokorac,
─┼┤ GoreLevo? DoleDesno? :(((((
žekaj, u čemu je problem? Ono ispisuje upravo GoreLevo ili DoleDesno, ako
to hoćeš. Ako je stvar u tome da to nećeš, šta onda hoćeš? :)
pascal.1195mmile,
* Pa mora se obezbediti izvršavanje procedure(a) koja već stoji na $09.
* U suprotnom bi tastatura ostala "mrtva" za sve osim za našu proceduru.
* Slično važi i za još neke, na primer $08. Baci pogled, proceduru old svaki
put
* poziva naša interapt procedura.
Nisam primetio da igde pozivas staru ali da ti verujem ... ;)
*> Evo mog rezidentnog resenja ( stalno pali gasi lampicu Num
*> Lock-a ) :
*> Procedure Pali;interrupt;
*> begin
*> memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32;
*> end;
* žemu ovo služi, a uz to i ne radi? Prvo ne pozivaš staru proceduru,
* drugo ovo stalno pali-gasi num od čega nema ama baš nikakve koristi (problem
* je kako zaključati num-lock) što se da lako ispraviti zamenom XOR naredbe
* OR naredbom. Treće, i najvažnije, zašto nepotrebno teretiti prekid koji se
* poziva oko 20 puta u sekundi? Ovako samo usporavaš sistem, pošto ionako
* korisnik
* nema načina da promeni status num-locka nego preko pritiska na dugme na
* tastaturi, čime se poziva prekid na $09 vektoru.
Nisam pratio od pocetka ali mislio sam da je covek (a.kir* ? ) trazio neki
primer kako da kontrolise num lock ....
1ch je interapt koji inace nesluzi nicemu drugom (?) sem da na njega okacis
neki rezidentni program.Ako treba obezbediti konstantnu iskljucenost num lock-a
samo se : memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32 zameni sa memŠ$40:$17Ć:=0;
Ili blokom :
MemŠ$40:$17Ć:=MemŠ$40:$17Ć or 32; (* da ga upali *)
memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32; (* posto je sigurno upaljen da ga ugasi *)
ili necim slicnim sto gasi 5-ti bit.
pascal.1196paki,
> => GoreLevo? DoleDesno? :(((((
>
> Zar GoreLevo nije Gore And Levo ?
Nenenene :)) Gore nije samo jedna vertikalna prava, to je čitava
oblast.
pascal.1197paki,
> žekaj, u čemu je problem? Ono ispisuje upravo GoreLevo ili
> DoleDesno, ako to hoćeš. Ako je stvar u tome da to nećeš, šta
> onda hoćeš? :)
>>>.....<<<
.>>>...<<<.
..>>>.<<<..
...>>X<<...
..>>>.<<<..
.>>>...<<<.
>>>.....<<<
Aufff, dok sam ovo nacrtao... :))
Dakle, 8 pravaca, svi su jednaki, kako testirati gde je tačka? :)
Eagle je dao program koji valjda radi, ali nisam još stigao da ga
proverim...
pascal.1198paki,
> Jel' treba mozda da nacrtam? :)
Ne, očigledno ja treba da nacrtam :) Svejedno, hvala.
pascal.1200eagle,
> 1ch je interapt koji inace nesluzi nicemu drugom (?) sem da na
> njega okacis neki rezidentni program.Ako treba obezbediti
A šta ako je neki program već bio okačen ?
> konstantnu iskljucenost num lock-a samo se :
> memŠ$40:$17Ć:=memŠ$40:$17Ć xor 32 zameni sa memŠ$40:$17Ć:=0;
Ovo ne gasi samo num lock već i sve ostalo...
Ako već hoćeš ovako, onda treba staviti:
m:=m or 32 za paljenje
m:=m and (255-32) za gašenje
pascal.1201ilazarevic,
> Stavi ovde i imedira+info.name
Ne, tu i treba da bude samo info.name, zato što je imedira ime dira u koji se
kopira. Inače, problem je rešen: trebalo je fajle otvoriti sa reset(f1,1) i
rewrite (fs,1). Hvala ivantodu :)
pascal.1202ilazarevic,
> Pogledaj malo bolje :)
Pogledah... :) sorry. Hvala svima.
pascal.1203ssokorac,
─┼┤ Pošto me SVGA asocira na 512 i više Kb (kojih nemam :() radi li
─┼┤ to i s modom 320x200x256? Ako radi, odma' ga mažnjavam. Ako ne,
Radi, naravno. Radi, sve od 320x200x16 do 1024x768x256, i još neki čudni,
izduženi (tweak) modovi...
pascal.1204kenza,
Da ne zna neko da li je unit koji svira muziku u backgroundu jos
uvek na Sezamu? Trazio sam i nema ga nigde :(
p.s. Jel moze neko da ga okaci,ako nije predugacak ;)
pascal.1205lovro,
=- Treba mi neka ideja (jos bolje funkcija :) koja bi radila
=- sledece:
Dovraga, izracunaj ugao u odnosu na x osu, pa ispitujes:
a:=(ugao-22.5) div 45;
case a of
1:desno;
2:goredesno;
3:gore;
...
end;
Lovro
pascal.1206sbrk,
>> Da ne zna neko da li je unit koji svira muziku u backgroundu jos
>> uvek na Sezamu? Trazio sam i nema ga nigde :(
>> 6.254 PC.PROG.2:pascal
>> Play music in the background.
>> ** Uz poruku 'tpmusic.zip' (6416 bytes)
Jel ovo?
pascal.1207andra,
> Ok to, ali kako u "obicnom" programu okaciti neku proceduru na $09 ?
Pardon, promakla mi je sustina problema (cini mi se).
pascal.1208kenza,
(;>>> ** Uz poruku 'tpmusic.zip' (6416 bytes)
(;> Jel ovo?
Videcu pa cu da javim ;) Svejedno, Hvala ;)
pascal.1209funky,
Jel ovde beše onaj program USERS koji lista usere po vremenu zvanja?
Valjda je ovde. Bye!
pascal.1210skerl,
PSSTR105.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.
Free Software, No Registration Required. (Postcard would be nice).
Source is included. Popup help for the unit is available in .NG format.
Pozdrav,
Skerl.
psstr105.zippascal.1211vitez.koja,
#=> A šta ako je neki program već bio okačen ?
Nista ;) ko mu je kriv kad se kači za interapt niže vrednosti ;>
pascal.1212m.hristodulo,
>> Dovraga, izracunaj ugao u odnosu na x osu, pa
>> ispitujes:
Ali on je i hteo da izbegne računanje ugla,
to jest trigonometriju, ako sam dobro razumeo!
Naravno da je tako kao što si ti dao, logično... To
je znao i on! Ali može i drukčije, al me mrzi da
razmišljam, polažem sutra Matematiku 3, pa odmaram
vijuge... :))
pascal.1213bulaja,
> PSSTR105.ZIP String/keyboard functions for Turbo Pascal 6
Thanks :), prebaceno u PASCAL dir.
pascal.1214paki,
> Ali on je i hteo da izbegne računanje ugla,
> to jest trigonometriju, ako sam dobro razumeo!
> Naravno da je tako kao što si ti dao, logično... To
> je znao i on! Ali može i drukčije, al me mrzi da
> razmišljam, polažem sutra Matematiku 3, pa odmaram
> vijuge... :))
Ma hvala vam svima, uradiću ovako kao što je Lovro predložio, a
zatim moje remek delo stiže na Sezam :))
pascal.1215zzile,
Pozivam command.com sa parametrom da izvrsi neki program na
sledeci nacin:
Exec(GetEnv('COMSPEC'),'/C '+ime_programa');
Program ne pozivam direktno jer mozda nije u tekucem direktorijumu
vec negde u path-u (ili je samo interna dos komanda).
Problem : kako da znam da li je taj progam ili komanda bila izvrsena?
Doserror se naravno odnosi na izvrsenje command.com-a.
Pozdrav ZZile
pascal.1216eagle,
> Pozivam command.com sa parametrom da izvrsi neki program na
> sledeci nacin:
> Exec(GetEnv('COMSPEC'),'/C '+ime_programa');
> Problem : kako da znam da li je taj progam ili komanda bila
> izvrsena? Doserror se naravno odnosi na izvrsenje
> command.com-a.
Imaš funkciju Dosexitcode koja vraća 0 ako je program izvršen do kraja.
Međutim, vrednost različita od nule ne mora da znači da taj program nije ni
startovan, već na primer da je nasilno prekinut(ctrl-break ili slično).
pascal.1217zzile,
> Imas funkciju Dosexitcode koja vraca 0 ako je program izvrsen
> do kraja. Medutim, vrednost razlicita od nule ne mora da znaci
> da taj program nije ni startovan, vec na primer da je nasilno
> prekinut(ctrl-break ili slicno).
Na zalost cini mi se (koliko sam probao) da se i Dosexitcode
odnosi na command.com, tj. ako se pozove nepostojeci program
preko command.com-a, Dosexitcode vraca nulu!
Pozdrav ZZile
pascal.1218eagle,
> Na zalost cini mi se (koliko sam probao) da se i Dosexitcode
> odnosi na command.com, tj. ako se pozove nepostojeci program
> preko command.com-a, Dosexitcode vraca nulu!
Znači da command.com stvarno ništa ne valja... 4dos vraća dvojku ako
program ne postoji.
pascal.1219petkovicd,
Jel' ima neko napisan program koji reesava sisteme jVÂiÝ'(d┼đĽĐĎâŕd
jednacina i radi sa kompleksnim brojevima (+,-..). Ne treba mi nesto posebn
slozen program jer radi sa resivim sistemima jednacina .Sve mi to treba za
spremanje ispita preko leta a tamo gde idem imam samo obican dzepni racunar
program moze biti napisan i u BASICU ili FORTRANU .
PS bilo bi pozeljno da mi siljnete na MAIL jer nemam bas vremena da ceprkam po
temi.
Dejan
pascal.1220dejanr,
==========
borland/bpascal.dos #6694, from ligo, 1308 chars, Tue Jun 15 04:02:53 1993
----------
TITLE: Strange File-Access under protected-mode
Seems BP is somewhat picky when using normal file-io under
protected mode. Here is a little program, which is giving
"unpredictable results" when run under a dos-box of OS/2 2.0.
--- cut here ---
program test;
var f:file;
begin
assign (f,'a:test');
rewrite (f);
close (f);
end.
--- cut here ---
There isn't a diskette in drive a:
If I compile this into real-mode, I get the correct error 152,
Drive not Ready
If I compile it into protected mode I get different results.
If I run inside the IE, I get no visible reaction, no red
error-bar nothing, if I switch to the user-screen, there is a
message
runtime-error 0006 at xxxx:yyyy (invalid handle)
Question: why doesn't the IE report this error back???
If run under TDX I get either the same error as above, but
TDX is reporting the return-code of 6 correctly.
Or, I get an exception-error 13 (trap 13 to be precise). If I
continue after this error, TDX is corrupting the hole system.
OS/2 is trapping out with Trap 000d and halting the system
(calling for the coordinator).
It looks like it could be working under DOS 6.0 with the
BP-DPMI-Server. (Just one quick test).
Under WIN31/DOS6 its looking like it is running.
Has anybody an idea/recommendations how this can be made
reliable?
Jens
pascal.1221lovro,
Ne radi mi stampanje iz rezidentnog programa!
...
uses printer,crt,dos;
...
writeln(lst,'Neki tekst');
...
Javlja Run-time error 006, sto mu dodje neki 'Invalid file handle'.
Moze li to nekako?
Lovro
pascal.1222bole,
HI,
Jel zna neko od vas kako da pustam MODOVE (*.MOD) TPu 6.0 (recimo)
pascal.1223vitez.koja,
#=> Ne radi mi stampanje iz rezidentnog programa!
#=> writeln(lst,'Neki tekst');
Kuku nesrećniče, dobro je dok javlja greške, mogo je da okine 'ladno. U
prinpicu, ne smes "tek tako" da koristis dosove funkcije iz rezidentnog
programa (a writeln ih koristi), vecmoras da pazis nekezezalice ko
sto su int 13h, int 28h, tzv. indos flag itd... Pogledaj u novim
racunarima, pise da je neko tamo napisao "pravi rezidentni program",
valjda ima, ili pitaj mene ako tamo nema :)
pascal.1224ilazarevic,
> Jel zna neko od vas kako da pustam MODOVE (*.MOD) TPu 6.0 (recimo)
Bio je ovde negde jedan unit za te stvari. Možde je u diru, a možda je u
porukama. Uradi jedan find...
pascal.1225a.kircanski,
_-=>> Jel zna neko od vas kako da pustam MODOVE (*.MOD) TPu 6.0
_-=> (recimo)
Ako ne nađeš imam ja, traži, da ti ostavim na mail...
pascal.1226bole,
Evo poc'o i ja da se zezam sa paskalom :)
Jel ima neko od vas proceduru(e) sa kojom mogu da ucitavam i prikazujem PCX
slike, ili gif.
i jel ima neko od vas to isto ali za *.mod
pascal.1227dejanr,
>> Jel ima neko od vas proceduru(e) sa kojom mogu da ucitavam i prikazujem
>> PCX slike, ili gif.
Predložio bih posetu direktorijumu PASCAL, imaš sve što ti treba tamo.
pascal.1228bole,
THanks,
Nemoj da se ljutis, nov sam, sto se tice PASKALA!
pascal.1229bole,
Ali tamo nema to!
pascal.1230dejanr,
>> Ali tamo nema to!
Pokušaj sa ovim programom
R:\IBMPC\PASCAL\*.*
----------------------
tppcx zip 46327 Rad sa slikama u Paintbrush formatu
Takođe, pogledaj arhivu uz poruku 6.805 u ovoj konferenciji.
pascal.1231bole,
HELP!! MI HELP MI!!!!
Ovako treba mi jedna dobra dusa, koja cde da mi da primer za sledece:
Da mi program bude rezidentan a da radi u pozadini recimo da svira sa sound
nesto a ja da radim u dosu, ili da svira a moj prg. da crt!
crta
HELP MI
pliz
pascal.1232a.kircanski,
Ajde da mi neko da program,
koji ostaje rezidentan, i radi u backgruondu, npr. svira
.mod ili bilo sta drugo.
help...
pozdrav..
pascal.1233bole,
VIDIM NIKO NIJE SVATIO MOJE PITNJE: EVO GA PONOVO:
Da li neko moze da mi kaze kako recimo napravim prg. koji ce da svira (sa
sound, delay i nosound) a u isto vreme da radi nesto drugo, recimo ceka sa
readln; itd.?
JEl sad jasno?
.
pascal.1234skerl,
TECHNOJOCK'S TURBO TOOLKIT v5.10 <ASP> -
An award winning library of tools for Turbo Pascal programmers. The main
focus of the Toolkit is to give programs a professional and polished
appearance. The Toolkit includes a host of menu building tools, sorted
directory listings, full-screen data entry, window support, automatic
mouse suport and much, much more!
FASTTTT5 (22)
ColorScreen:boolean;
Attr(F,B:byte):byte;
FastWrite(Col,Row,Attr:byte; St:StrScreen);
PlainWrite(Col,Row:byte; St:StrScreen);
ColWrite(Col,Row:byte; St:StrScreen);
FWrite(St:StrScreen);
FWriteLN(St:StrScreen);
Attrib(X1,Y1,X2,Y2,F,B:byte);
Clickwrite(Col,Row,F,B:byte; St:StrScreen);
Replicate(N:byte; Character:char):StrScreen;
Box(X1,Y1,X2,Y2,F,B,boxtype:integer);
FBox(X1,Y1,X2,Y2,F,B,boxtype:integer);
GrowFBox(X1,Y1,X2,Y2,F,B,boxtype:integer);
HorizLine(X1,X2,Y,F,B,lineType:byte);
VertLine(X,Y1,Y2,F,B,lineType:byte);
ClearText(x1,y1,x2,y2,F,B:integer);
ClearLine(Y,F,B:integer);
WriteAT(X,Y,F,B:integer; St:StrScreen);
WriteBetween(X1,X2,Y,F,B:byte; St:StrScreen);
WriteCenter(LineNO,F,B:integer; St:StrScreen);
WriteVert(X,Y,F,B:integer; St:StrScreen);
EGAVGASystem: boolean;
WINTTT5 (33)
SizeCursor(Top,Bot:byte);
FindCursor(var X,Y,Top,Bot:byte);
PosCursor(X,Y: integer);
Fullcursor;
HalfCursor;
OnCursor;
OffCursor;
GetScreenChar(X,Y:byte):char;
GetScreenAttr(X,Y:byte):byte;
GetScreenStr(X1,X2,Y:byte;var St:StrScreen);
CreateScreen(Page:byte;Lines:byte);
SaveScreen(Page:byte);
RestoreScreen(Page:byte);
PartRestoreScreen(Page,X1,Y1,X2,Y2,X,Y:byte);
SlideRestoreScreen(Page:byte;Way:Direction);
PartSlideRestoreScreen(Page:byte;Way:Direction;X1,Y1,X2,Y2:byte);
DisposeScreen(Page:byte);
SetCondensedLines;
Set25Lines;
CopyScreenBlock(X1,Y1,X2,Y2,X,Y:byte);
MoveScreenBlock(X1,Y1,X2,Y2,X,Y:byte);
Scroll(Way:direction;X1,Y1,X2,Y2:byte);
Mkwin(x1,y1,x2,y2,F,B,boxtype:integer);
GrowMkwin(x1,y1,x2,y2,F,B,boxtype:integer);
Rmwin;
FillScreen(X1,Y1,X2,Y2:byte; F,B:byte; C:char);
TempMessageCh(X,Y,F,B:integer;St:strscreen;var Ch : char);
TempMessage(X,Y,F,B:integer;St:strscreen);
TempMessageBoxCh(X1,Y1,F,B,BoxType:integer;St:strscreen;var Ch : char);
TempMessageBox(X1,Y1,F,B,BoxType:integer;St:strscreen);
Activate_Visible_Screen;
Activate_Virtual_Screen(Page:byte);
Reset_StartUp_Mode;
KEYTTT5 (23)
Assign_Pressed_Hook(PassedProc : Key_pressed_Type);
Assign_Idle_Hook(PassedProc : Key_Idle_Type);
Mouse_Installed:Boolean;
Show_Mouse_Cursor;
Hide_Mouse_Cursor;
Get_Mouse_Action(var But: button; var Hor,Ver: integer);
Move_Mouse(Hor,Ver: integer);
Confine_Mouse_Horiz(Left,Right:integer);
Confine_Mouse_Vert(Top,Bot:integer);
Set_Mouse_Cursor_Style(OrdChar: integer);
Alt_Pressed:Boolean;
Ctrl_Pressed:Boolean;
LeftShift_Pressed: Boolean;
RightShift_Pressed: Boolean;
Shift_Pressed: Boolean;
CapsOn: Boolean;
NumOn: Boolean;
ScrollOn: Boolean;
Set_Caps(On : boolean);
Set_Num(On : boolean);
Set_Scroll(On : boolean);
GetKey : Char;
DelayKey(Time : integer);
MENUTTT5 (3)
No_Hook(var Ch:char; Choice:integer; var Ecode : integer);
Menu_Set(var M : Menu_record);
DisplayMenu(MenuDef: Menu_record;Window:Boolean;var Choice,Ecode:integer);
PULLTTT5 (2)
No_Hook(var Ch: char; Main, Sub :byte);
Pull_Menu( Definition:Pull_Array; var PickM, PickS:byte);
NESTTTT5 (12)
Assign_Despatcher(D:Despatcher_Proc);
Initialize_Menu(var Menu:Nest_Menu;Tit: menuStr;Width: byte;
Display_Lines: word);
Add_Topic(var Menu:Nest_Menu;Nam:MenuStr;Activ:boolean;HKey:char;
Code:integer;Sub: MenuPtr);
Modify_Topic(var Menu:Nest_Menu;TopicNo:word;Nam:MenuStr;Activ:boolean;
HKey :char;Code:integer;Sub: MenuPtr);
Modify_Topic_Name(var Menu:Nest_Menu;TopicNo:word;Nam:MenuStr);
Modify_Topic_Active(var Menu:Nest_Menu;TopicNo:word;Activ:Boolean);
Modify_Topic_HotKey(var Menu:Nest_Menu;TopicNo:word;HKey:char);
Modify_Topic_RetCode(var Menu:Nest_Menu;TopicNo:word;Code:integer);
Modify_Topic_SubMenu(var Menu:Nest_Menu;TopicNo:word;Sub:MenuPtr);
Delete_A_Topic(var Menu:Nest_Menu;TopicNo: word);
Delete_All_Topics(var Menu:Nest_Menu);
Show_Nest(var Menu:Nest_Menu);
LISTTTT5 (1)
Show_List(var StrArray;StrLength:Byte;TotalPicks:byte);
DIRTTT5 (1)
Display_Directory(DirFullFileName: StrScreen;var Retcode:integer): StrScreen;
READTTT5 (11)
Read_String(X,Y,L:byte;Prompt:StrScreen; BoxType: byte;
Var Txt:StrScreen);
Read_String_Upper(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;
Var Txt:StrScreen);
Read_Password(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;
Var Txt:StrScreen);
Read_Alpha(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var Txt:StrScreen);
Read_YN(X,Y:byte;Prompt:StrScreen;BoxType: byte;Var Yes:Boolean);
Read_Byte(X,Y,L:byte; Prompt:StrScreen;BoxType: byte;Var B : Byte;
Min, Max : Byte);
Read_Word(X,Y,L:byte; Prompt:StrScreen;BoxType: byte;Var W : word;
Min, Max : word);
Read_Int(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var W : integer;
Min, Max : integer);
Read_LongInt(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var W : longint;
Min, Max : longint);
Read_Real(X,Y,L:byte;Prompt:StrScreen;BoxType: byte;Var W : real;
Min, Max : real);
Read_Select(X,Y:byte;Pmt,Txt:StrScreen;var Choice:byte);
IOTTT5 (26)
Create_Tables(No_Of_Tables:byte);
Activate_Table(Table_no:byte);
Assign_LeaveFieldHook(Proc:Move_Field_Proc);
Assign_EnterFieldHook(Proc:Move_Field_Proc);
Assign_CharHook(Proc:Char_Hook_Proc);
Assign_InsHook(Proc:Insert_Proc);
Create_Fields(No_of_fields:byte);
Define_Colors(HiF,HiB,LoF,LoB,MsgF,MsgB:byte);
Add_Message(DefID,DefX,DefY : byte; DefString : string);
Add_Field(DefID,DefU,DefD,DefL,DefR,DefX,DefY:byte);
String_Field(DefID:byte;var Strvar:String;DefFormat:string);
Assign_Finish_Char(Ch : char);
Byte_Field(DefID:byte;var ByteVar:Byte;DefFormat:string;Min,Max:byte);
Word_Field(DefID:byte;var Wordvar:Word;DefFormat:string;Min,Max:word);
Integer_Field(DefID:byte;var Integervar:Integer;DefFormat:string;
Min,Max:integer);
LongInt_Field(DefID:byte;var LongIntvar:LongInt;DefFormat:string;
Min,Max:LongInt);
Date_Field(DefID:byte;var Datevar:Dates;DateFormat:byte;DefFormat:string;
Min,Max : Dates);
Real_Field(DefID:byte;var Realvar:Real;DefFormat:string;Min,Max:real);
Set_Default_Rules(Rules:word);
Field_Rules(DefID:byte;Rules:word;AChar:IOcharset;DChar:IOcharset);
Display_All_Fields;
Allow_Esc(OK:boolean);
Allow_Beep(OK:boolean);
Dispose_Fields;
Dispose_Tables;
Process_Input(StartField:byte);
STRNTTT5 (23)
Squeeze(L:char;Str:string;Width:byte): string;
First_Capital_Pos(Str:string): byte;
First_Capital(Str:string): char;
PadLeft(Str:string;Size:byte;Pad:char):string;
PadCenter(Str:string;Size:byte;Pad:char):string;
PadRight(Str:string;Size:byte;Pad:char):string;
Last(N:byte;Str:string):string;
First(N:byte;Str:string):string;
Upper(Str:string):string;
Lower(Str:string):string;
Proper(Str:string):string;
OverType(N:byte;StrS,StrT:string):string;
Strip(L,C:char;Str:string):string;
LastPos(C:Char;Str:string):byte;
PosWord(Wordno:byte;Str:string):byte;
WordCnt(Str:string):byte;
ExtractWords(StartWord,NoWords:byte;Str:string):string;
Str_to_Int(Str:string):integer;
Str_to_Long(Str:string):Longint;
Str_to_Real(Str:string):real;
Real_to_str(Number:real;Decimals:byte):string;
Int_to_Str(Number:longint):string;
Real_to_SciStr(Number:real; D:byte):string;
MISCTTT5 (22)
Exist(Filename:string):boolean;
CopyFile(SourceFile, TargetFile:string): byte;
File_Size(Filename:string): longint;
File_Drive(Full:string): string;
File_Directory(Full:string): string;
File_Name(Full:string): string;
File_Ext(Full:string): String;
Time: string;
Clock;
Date: String;
PrintScreen;
Beep;
Printer_Status:byte;
Printer_ready:boolean;
FlushKeyBuffer;
Reset_Printer;
Date_To_Julian(InDate:string;format:byte): dates;
Julian_to_Date(J:dates;format:byte):string;
Today_in_Julian: dates;
Date_Within_Range(Min,Max,Test:dates):boolean;
Valid_Date(Indate:string;format:byte): boolean;
Future_Date(InDate:string;format:byte;Days:word): string;
Pozdrav,
Skerl.
p.s. Sve je ja hederom i provereno na viruse, bar one poznate ;)
tttsrc51.zippascal.1235skerl,
TECHNOJOCK'S TURBO TOOLKIT v5.10 <ASP> - docs
tttdoc51.zippascal.1236skerl,
TECHNOJOCK'S TURBO TOOLKIT v5.10 <ASP> - demos
tttdem51.zippascal.1237skerl,
TECHNOJOCK'S OBJECT TOOLKIT v1.10 <ASP> -
A sophisticated library of tools for Turbo Pascal programmers. With
this Toolkit you can quickly and easily build programs sporting the
latest interface style with pop-up dialog boxes, scroll-bars and
stretchable/dragable windows. To display a sorted directory list in
a moveable window, for example, takes just three lines of code.
TOTFLAGS.INC contains global compiler directives
TOTLOOK.PAS controls the overall look and feel of your programs
TOTREAL.PAS provides numeric co-processor support and supports
extended reals
TOTSYS.PAS contains objects for ascertaining hardware and operat-
ing system configurations
TOTINPUT.PAS provides mouse and keyboard support
TOTFAST.PAS supports writing to physical and virtual screens
TOTWIN.PAS contains a variety of window objects
TOTMSG.PAS provides objects for displaying messages and prompts
in
Pop-up windows
TOTLINK.PAS includes a variety of objects for managing linked
lists
TOTLIST.PAS provides objects for displaying string arrays or
linked
lists in a window
TOTDIR.PAS includes a directory display object
TOTIO1,2,3.PAS three units for building full screen input
TOTMENU.PAS includes routines for building pop-up and pull-down
menus
TOTSTR.PAS contains a host of string manipulation functions
TOTDATE.PAS includes a set of functions for managing Julian and
Gregorian dates
TOTMISC.PAS provides a potpourri of procedures and functions
TOTBUILD.PAS used to re-build all the TOT TPUs
Pozdrav,
Skerl.
p.s. I ovo je sa hederom i bez virusa.
totsrc11.zippascal.1238skerl,
TECHNOJOCK'S OBJECT TOOLKIT v1.10 <ASP> - docs
totdoc11.zippascal.1239skerl,
TECHNOJOCK'S OBJECT TOOLKIT v1.10 <ASP> - demos
totdem11.zippascal.1240paki,
> p.s. I ovo je sa hederom i bez virusa.
A jel može samo par reči o tome šta je novo u odnosu na staru
verziju? Ne skida mi se 400Kb zbog 2 baga (a da ne govorim o tome
da sam odštampao 600Kb dokumentacije, pa mi dođe da se ubijem :)))
pascal.1241bole,
meni nema niko namere da odgovori... neki fazon je sa keep(0) i sa onim cudima,
ali ne znam ~
pascal.1242ssokorac,
─┼┤ Da li neko moze da mi kaze kako recimo napravim prg. koji ce da svira
─┼┤ (sa sound, delay i nosound) a u isto vreme da radi nesto drugo, recimo
─┼┤ ceka sa readln; itd.?
Verovatno ti treba nešto kao PLAY iz bejzika? :) E, upravo to je neko
poslao ranije u ovu temu... Pogledaj sa Co Fi Pascal /a (PLAY;), a ako ne
nadješ, potražiću čim se javim na Sezam.
pascal.1243a.kircanski,
_-=> meni nema niko namere da odgovori... neki fazon je sa
_-=> keep(0) i sa onim cudima, ali ne znam č
Ma ne zna niko.;>
pascal.1244nikac,
Izvini nisam bas u toku, ali ako je nesto u vezi pravljenja TSR programa na
PASCALU mogu da ti pomognem. ( cak ce i da rade ;)
-=Nikac=-
pascal.1245barka,
Jel ima neko rutinu za scrol teksta kursorskim
tasterima, i sa PgDn, PgUp, Home, End?
Ajdete, molim vas, da se ne patim sam.
Podrazumeva se, stvar je hitna.
pascal.1246skerl,
│ A jel moze samo par reci o tome sta je novo u odnosu na staru
└────
Evo ti flash.txt, not-so-quick-reference. Nigde nisam
nasao izdvojene razlike od prosle do ove verzije a tu imas sve
lepo izlistano i objasnjeno.
Pozdrav,
Skerl.
flash.zippascal.1247a.kircanski,
Zašto sledeća stvar neće da mi radi?
var s:string;
ch:char;
begin
s:='';
ch:='a';
sŠ1Ć:=ch;
Write(s);
end.
I kad stavim write(s) s je prazan?!?!?
A kad stavim write(sŠ1Ć) onda pokaže char a.
ccc, šta mu bi?:)
pascal.1248dejanr,
>> var s:string;
>> ch:char;
>> begin
>> s:='';
>> ch:='a';
>> s[1]:=ch;
>> Write(s);
>> end.
>> I kad stavim write(s) s je prazan?!?!?
>> A kad stavim write(sŠ1Ć) onda pokaže char a. ccc, šta mu bi?:)
Bi mu da nisi pročitao uputstvo :) String promenljiva, osim sadržaja,
ima i dužinu koja se upisuje u nulti bajt. Time što si u prvi bajt
upisao neko slovo nisi ništa posebno uradio, jer je tamo i tako bio
nekakav sadržaj (nula?) pa se ipak nije ispisivao. Zato bi u datom
primeru trebalo da dodaš i s[0]:=#1 i onda ispis ne bi bio prazan.
Znatno je preporučljivije koristiti konkatenaciju, dakle s:=s+ch.
Tada sam paskal "brine" o dužini.
pascal.1249.obj,
> Jel ima neko rutinu za scrol teksta kursorskim
> tasterima, i sa PgDn, PgUp, Home, End?
Pa, pitanje ti je totalno neodređeno, teško će neko da ti odgovori.
Međutim, uopšteno, napravi proceduru za ispis nekako ovako:
procedure NekiIspis (X, Y: longint);
A u nekoj "glavnoj petlji" ugradiš dve promenljive koje drže poziciju
ispisa. Na primer, PosX i PosY:
NekiIspis (PosX, PosY);
Bilo kakvo kretanje se, posle ovoga, lako realizuje. Let's say:
case Key of
VkDown:
Inc(PosY);
VkPageDown:
Inc(PosY, 25);
i tome slično. Nadam se da sam ti malo pomogao. Uvek je bolje da
postaviš konkretno pitanje.
.obj
pascal.1250paki,
> Evo ti flash.txt, not-so-quick-reference. Nigde nisam
> nasao izdvojene razlike od prosle do ove verzije a tu imas sve
> lepo izlistano i objasnjeno.
Hvala, Skerl.
pascal.1251sbrk,
>> Jel ima neko rutinu za scrol teksta kursorskim
>> tasterima, i sa PgDn, PgUp, Home, End?
Evo ti nešto, proizvod moje dokolice :)
program WWindow;
š 12.05.92 Slavisha Brkic
-------------------------------------------------------------------------
Demonstracija ROM-BIOS servisa 6 i 7 (scroll up/down).
Program otvara prozor na ekranu u koji se text unosi sa tastature.
Page Up/Down se koriste za scroll texta gore, dole respektivno.
-------------------------------------------------------------------------
07.02.93 - malo dopunjeno, za kretanje gore,dole,levo,desno...
ć
uses Dos, Crt;
š Type
regSet = record
Case Integer of
1: (AX, BX, CX, DX, BP, SI, DI, DS, ES, Flags: Integer);
2: (AL, AH, BL, BH, CL, CH, DL, DH : Byte);
end; ć
const
LEFT = Chr(27);
BS = Chr(8);
ATR = 112;
var
Ch : Char;
Regs : registers;
š-----------------------------------------------------------------------ć
procedure PageUp (X1, Y1, X2, Y2, ATTR : Byte);
š scroll up one line in the window ć
begin
Regs.AH := 6; š requesting service 6 ć
Regs.AL := 1; š scroll up one line ć
Regs.CH := Y1; š upper left row ć
Regs.CL := X1; š upper left column ć
Regs.DH := Y2; š lower left row ć
Regs.DL := X2; š lower right column ć
Regs.BH := ATTR; š attribute for line ć
Intr($10, Regs) š calling interupt 10H ć
end;
š-----------------------------------------------------------------------ć
procedure PageDown (X1, Y1, X2, Y2, ATTR : Byte);
š scroll down one line in the window ć
begin
Regs.AH := 7;
Regs.AL := 1;
Regs.CH := Y1;
Regs.CL := X1;
Regs.DH := Y2;
Regs.DL := X2;
Regs.BH := ATTR;
Intr($10, Regs)
end;
š-----------------------------------------------------------------------ć
š *** main program begins here *** ć
begin
Window(30, 8, 50, 18); š define window ć
TextColor(Black); š set text foreground and ć
TextBackground(White); š background colors ć
ClrScr; š clear screen inside window ć
GoToXY(1,1); š go to top left corner ć
repeat
Ch := ReadKey; š read character from Kbd ć
if Ch = #0 then š read extended char,if typed ć
Ch := ReadKey;
case Ch of
#8 : if WhereX = 1 then š BACKSPACE ć
begin
if WhereY <> 1 then
begin
GoToXY(21,WhereY-1);
Write(' ');
GoToXY(21,WhereY-1);
end;
end
else
begin
GoToXY(WhereX-1,WhereY);
Write(' ');
GoToXY(WhereX-1,WhereY);
end;
#73 : PageUp (29, 7, 49, 17, ATR); š page up key ć
#81 : PageDown (29, 7, 49, 17, ATR); š page down key ć
#75 : if WhereX = 1 then š cursor left ć
GoToXY(21,WhereY-1)
else GoToXY(WhereX-1,WhereY);
#77 : if WhereX = 21 then š cursor right ć
GoToXY(1,WhereY+1)
else GoToXY(WhereX+1,WhereY);
#72 : if WhereY = 1 then š cursor up ć
PageDown (29, 7, 49, 17, ATR)
else GoToXY(WhereX,WhereY-1);
#80 : if WhereY = 11 then š cursor down ć
PageUp(29, 7, 49, 17, ATR)
else GoToXY(WhereX,WhereY+1);
else
if (Ch in Š#32..#126,#8Ć) then
Write(Ch); š write character to screen ć
end;
until Ch = Chr(13) š until <CR> ć
end.
Pozdrav, Slavisha.
pascal.1252predragd,
> ... U prinpicu, ne smes "tek tako" da koristis
> dosove funkcije iz rezidentnog programa (a writeln ih
> koristi), vec moras da pazis nekezezalice ko
Kako to misliš ne možeš da koristiš DOS funkcije u TSR programima.
Već više od dve godine jedan TSR program koji obilato koristi DOS
pozive radi bez ikakvih problema. Nikad nije izazvao blokiranje
mašine, ili javio neki run-time error. Mogu slobodno da kažem da mi
drugi komercijalni programi prave više problema nego ovaj moj
programčić.
Peđa.
pascal.1253barka,
Ů>> Jel ima neko rutinu za scrol teksta kursorskim
Ů>> tasterima, i sa PgDn, PgUp, Home, End?
Ů
Ů Evo ti nešto, proizvod moje dokolice :)
Ů
Ů program WWindow;
Ok, ali kako da izvedem da ne zaboravi text koji je otišao iz
prozora, već da ga zapamti i po potrebi ponovo vrati na ekran?
pascal.1254vitez.koja,
#=> Kako to misliš ne možeš da koristiš DOS funkcije u TSR
#=> programima.
Mislim ono sto sam napisao... Vuk Karadžić je u pitanju ;) Inače,
ključno mesto u toj rečenici je "tek tako", čini mi se da si to
prevideo.
#=> Već više od dve godine jedan TSR program koji obilato
#=> koristi DOS pozive radi bez ikakvih problema.
Srećan slučaj, pogodilo se da se program slaže sa ostalim stvarima koje
koristiš. Pročitaj _bilo šta_ o pisanju ISRa, videćeš da se pominje tzv.
reentrancy. Vidim da ti ne bi škodilo malo "formalnog obrazovanja" ;)
pascal.1255vitez.koja,
Da li je neko uspeo da iskoristi onaj unit za animaciju - ANIMVGA - iz
direktorijuma pascal ? Ne mogu da ucitam pozadinu, _nikako_ :( U cemu je
fazon ?
pascal.1256mmile,
* s:='';
* ch:='a';
* s[1]:=ch;
* Write(s);
Zameni s:='' sa s:=' ' i radice.
pascal.1257ficus,
>> zaboravlja ono {to je bilo...
ovde dekiper...
Pa, u okviru CRT unita ima{ funkcije gettext i puttext i sa njima bi
problem trebao da bude re{en :) . Nisam se puno igrao sa sli~nim stvarima, tako
da samo pretpostavljam, ali mislim da bi trebalo da bude OK.
Pozdrav, Deki
pascal.1258nikac,
>■ Srećan slučaj, pogodilo se da se program slaže sa ostalim
>■ stvarima koje koristiš. Pročitaj _bilo šta_ o pisanju ISRa,
>■ videćeš da se pominje tzv. reentrancy. Vidim da ti ne bi
>■ škodilo malo "formalnog obrazovanja" ;)
Covek je sasvim u pravu. Po teoriji iz TSR programa nesmeju
se koristiti DOS-ove funkcije jer bi to predstavljalo
rekurzivni ulazak u DOS sto je nemoguce. Medjutim teorija
je teorija a praksa je praksa kao i obicno :)))))
-=Nikac=-
pascal.1259nikac,
Jel neko zna kako mogu da stavim uslovno prevodjenje u pascal-u...
Konkretno hteo bih da mi prevede nesto ovako:
Ako je lastmode=mono onda
trtrmrt (jedna deklaracija type-a)
Inace
drugi trtmrt (druga deklaracija type-a)
-=Nikac=-
pascal.1260jasicp,
> Ne mogu da ucitam pozadinu, _nikako_ :(
> U cemu je
:))))))))))))))))))))))
pascal.1261djnsnd,
Da li neko moze da mi pomogne?
Imam neki Pascal source koji pri prevodjenju zahteva postojanje
datoteke tipa .OBP. Imam i source .ASM tog programa,
ali ne mogu da nateram TASM da ga prevede u .OBP, vec samo u .OBJ.
Pronasao sam prekidac /op kojim TASM-u naradjujem da generise kod za
protected mode, ali i tada se generise .OBJ datoteka.
Unapred hvala.
Djn
pascal.1262drakce,
│ Jel neko zna kako mogu da stavim uslovno prevodjenje u pascal-u
└──────────
{$DEFINE MonoMode}
...
{$IFDEF MonoMode}
trtmrt1
{$ELSE}
trtmrt2
{$ENDIF}
Pozdrav
pascal.1263drpr,
Haj,
Potreban mi je dobar generator slučajnih brojeva napisan u
pascal-u pošto kažu da random baš nije najbolji. Bila je pre
3-4 meseca rasprava u algoritmi i u računarima je bio program
ali u c-u koji ja veoma tj. nikako ne poznajem. Generator treba
da je dobar u opsegu 10000-60000.
cope
pascal.1264vitez.koja,
#=>> Ne mogu da ucitam pozadinu, _nikako_ :(
#=>> U cemu je
#=>
#=> :))))))))))))))))))))))
Molim te budi ljubazan pa objasni cemu se smejes...
pascal.1265jasicp,
> Molim te budi ljubazan pa objasni cemu se smejes...
Izvini na malo, hmmm, recimo preslobodnom shvatanju onih nekoliko
reci. Bilo je neko drustvo pa smo zajedno citali poruke i onda je neko
izvali nesto o onom "ucitavanju pozadine" sto je u kontxtu sale bilo smesno,
ali na ekranu ocigledno nije...
Pokrivam se ushima !
pascal.1266mikeli,
Help !
Programcic u DEBUG-u glasi ovako:
Mov ax,0
Mov ds,ax
Mov ax,1234
ds:
Mov [472],ax
Jmp ffff:0000
Namjena mu je da resetuje system.
Kad ocu ovo isto da koristimu TP6 kao proceduru ide ovako:
Procedure reset;assembler;
asm
mov ax,0
mov ds,ax
mov ax,1234
mov ds:[472],ax
Jmp ffff:0000
end;
E tu se kod predzadnjeg reda Jmp ffff:0000 "buni" i prijavljuje
gresku :((((((
Moze li se mesto jmp ffff:0000 staviti eventualno nesto drugo ????
Mich.
pascal.1267bole,
e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke datoteke samo 20 bajta
od nekog ofseta
KO SVATIO SVATI KO NIJE OBJASNICU PONOVO!
pascal.1268dejanr,
>> e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke datoteke samo 20
>> bajta od nekog ofseta
var f: file;
buf: array [1..25] of byte;
procitano: word;
begin
assign(f,'ime.tip');
reset(f,1);
seek(f, ofset);
blockread(f, buf, 20, procitano);
if procitano<>20 then writeln('Greska');
end.
pascal.1269drpr,
-> e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke
-> datoteke samo 20 bajta od nekog ofseta
Može ovako :
Var dat:file;
baffer:array[1..20] of byte;
recsread:word;
offset:longint;
begin
readln (offset);
assign(dat,<imefajla>)
reset(dat,1);
seek (dat,offset);
blockread(dat,baffer,sizeof(baffer),recsread);
if recsread<20 then write('Od datog mesta ima manje od dvadeset bajtova')
else writeln('procitao sam!');
end.
Eto ti programče i mislim da sam ti pomogao, samo treba da se
proveri da li ideš na neko mesto koje je unutar veličine fajla
(može da se proveri sa mislim filesize(dat) ). A ostalo je na
tvojoj mašti :))
cope
pascal.1270spantic,
> Potreban mi je dobar generator slučajnih brojeva napisan u
> pascal-u pošto kažu da random baš nije najbolji. Bila je
> pre
Imam ja gotove programe za generatore pseudoslučajnih brojeva na
FORTRANu i Cu, ali pošto ti to ne odgovara hoćeš li knjige sa
osnovom za iste ili pomoć da se isti prepevaju?
pascal.1271mazi,
<O-O> Moze li se mesto jmp ffff:0000 staviti eventualno nesto
<O-O> drugo ????
Verovatno samo JMP FAR FFFF:0000
Ivan.
pascal.1272drpr,
-> Imam ja gotove programe za generatore pseudoslučajnih
-> brojeva na FORTRANu i Cu, ali pošto ti to ne odgovara hoćeš
-> li knjige sa
Baci mi te na fortranu jer sam baš polagao PJMP pa znam dosta
dobro fortran da bi ga preveo na pascal. Ako imaš u ne
elektronskoj formi donesi mi u klub pa ću ja da kucam i
prevodim :)))
cope
PS
Red bi bio da naučim taj C-e :))
pascal.1273ssokorac,
─┼┤ e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke datoteke samo
─┼┤ 20 bajta od nekog ofseta
Ne verujem da sam te dobro razumeo, tj, sigurno nisam :), ali evo kako da
pročitaš 20 bajtova iz datoteke, a za 'ofset' valjda nema razlike :).
var
f:file;
begin
assign(f,'ime');
reset(f,1);
seek(f,Pozicija); (* može i pozicija ofseta :) *)
blockread(f,ofset,20);
close(F)
end.
pascal.1274bole,
E dejane, zaboravio si string gde je upisano 20 bajta od ofseta! to mi treba,
ne dal' ima 20 bajta od ofseta nego string od ofseta....
pascal.1275dejanr,
>> E dejane, zaboravio si string gde je upisano 20 bajta od ofseta! to mi
>> treba, ne dal' ima 20 bajta od ofseta nego string od ofseta....
Nisam dobro razumeo šta ovim hoćeš da kažeš, podaci koje si pročitao su
u nizu buf. Ako hoćeš da to što si dobio bude baš string, stavi deklaraciju:
buf: string[25]
i onda u blockread-u stavi:
blockread(f, buf[1], 20, procitano);
buf[0]:=chr(20);
i... to je to.
pascal.1276ssokorac,
─┼┤ blockread(f, bufŠ1Ć, 20, procitano);
─┼┤ bufŠ0Ć:=chr(20);
Zar neće raditi i samo
blockread(f,buf,20);
Onda valjda nema potrebe za onim bufŠ0Ć:=...?
pascal.1277dgrbic,
:: Jmp ffff:0000
Probaj sa jmp 0ffff:0
Nemam instaliran TP6.0 pa nisam siguran, ali mi se čini (a i logično je)
da integrisani asembler očekuje da brojevi počinju sa ciframa 0-9 (čak i
ako se radi o heksa broju).
Jer, kako bi program mogao da razlikuje labelu abc od broja 0abc?
Gledanje u pasulj sigurno nije neko rešenje ;)
pascal.1278dejanr,
>> > blockread(f, buf[1], 20, procitano);
>> > buf[0]:=chr(20);
>>
>> Zar neće raditi i samo
>> blockread(f,buf,20);
>> Onda valjda nema potrebe za onim buf[0]:=...?
Neće valjati. Da bi string imao smisla, nulti bajt mora da mu je dužina.
Ako je u datoteci samo tekst, onda taj tekst treba učitati počev od prvog
bajta stringa, a naknadno u nulti snimiti dužinu.
Naravno, ako je u fajl već snimljen paskalski string, onda se radi tako
kako kažeš, ali je to u praksi jako retko, jer onda takav fajl ne bi bio
tekstualni nego bi na početku svakog reda bila neka "kvaka" koja označava
dužinu. Dodatni problem bi mogli da prave stringovi dužije 10, 13, 26...
pascal.1279ssokorac,
─┼┤ Neće valjati. Da bi string imao smisla, nulti bajt mora da mu je dužina.
Mislio sam da se onda sam TP brine za to, ali sam shavtio da njega u stvari
baš briga kog je tipa ono što čita sa blockread, on samo čita i piše :).
pascal.1280rcolic,
Zdravo!
Posto nisam bas mogao da mnogo preturam po svim porukama na ovu temu, izvin'te
ako cu postaviti stari problem...Nabavio sam BGI drajver VGA256.BGI (za rez.
320x200x256 i pokusao sam da ga instaliram ali nije islo. Jos sam pri
koriscenju InstallUserDriver primetio da u helpu postoji greska ;>. Nije hteo
da prihvati i vracao mi je kod -3, to mu dodje device driver not found ili
nesto slicno...ne secam se. Ako neko ima pojma o tome, nek mi odma' javi.
fala
pozdrav,
R a s h a .
pascal.1281ssokorac,
─┼┤ nesto slicno...ne secam se. Ako neko ima pojma o tome, nek mi odma'
─┼┤ javi.
function modfunc:integer;
begin
modfunc:=0
end;
procedure Inic256;
var
gd,gm:integer;
begin
gm:=0;
gd:=installuserdriver('svga256',čmodfunc);
initgraph(gd,gm,'ĐprogĐsvgaĐ')
end;
Ovo će instalirati drajver za 320x200x256. Probano, i radi :).
pascal.1282m.hristodulo,
>> Znatno je preporučljivije koristiti
>> konkatenaciju, dakle s:=s+ch. Tada sam paskal
>> "brine" o dužini.
Ali je i sporije... Mnogo je brže:
Inc ( i ) ;
s [ i ] := ch ;
s [ 0 ] := Chr ( i ) ;
Znam iz iskustva...
pascal.1283rcolic,
'vala! Iako sam i sam pokusao nesto slicno (nije radilo), verujem da je to ono
sto mi treba. Idem odmah da probam. Pozdrav,
R a s h a .
pascal.1284predragd,
> rekurzivni ulazak u DOS sto je nemoguce. Medjutim teorija
> je teorija a praksa je praksa kao i obicno :)))))
To i jeste on što sam ja hteo da kažem. Nije mi ni na kraj
pameti da vređam nečiju inteligenciju. Znam da se u TSR
programima ne mogu koristiti DOS pozivi, koristiti dinamička
memorija... Međutim kao što ti kažeš teorija je jedno, a praksa
vrlo često nešto sasvim drugo.
Peđa.
pascal.1285bole,
e ljudi kako da u tp60 ucitam neki font koji sam dobijo?
b o l e
pascal.1286nikac,
>■ e ljudi kako da u tp60 ucitam neki font koji sam dobijo?
Installuserfont(var fontcode:integer,filename:stringŠ4Ć);
A posle: settextstyle(fontcode,....);
Pozdrav,
-=Nikac=-
P.S. Ne skodi ponekad procitati help :)
pascal.1287bole,
>> P.S. Ne skodi ponekad procitati help :)
Nemam taj obicaj, VI ste mi bolji help:))
pascal.1288bole,
E evo jos jedno pitanjee:
Kako da preko pascala pustam SEMPLOVE ne modove, ima onaj MOD-obj.obj e kad bi
bilo nesto tako al za semplove, ne modove....
pascal.1289ssokorac,
─┼┤ e ljudi kako da u tp60 ucitam neki font koji sam dobijo?
var
novifont:integer;
begin
novifont:=InstallUserFont(ime);
.
.
.
SetTextStyle(novi,0,2);
OutText('Novi font!')
.
.
Inače, ime mora da bude os 4 slova, bez ekstenzije. Znači, za, recimo neku
ćirilicu moraš imati fajl CIRI.CHR, a ime je 'CIRI'.
pascal.1290quale,
Hi
Interesuje me setovanje modema,
dakle inicijalizacija, slanje kontrolnih znakova
modemu, (setovanje registara itd)
P.S. Po mogucnostceli sors ;)
pascal.1291dejanr,
>> Interesuje me setovanje modema,
>> dakle inicijalizacija, slanje kontrolnih znakova
>> modemu, (setovanje registara itd)
Jesi li probao PCL4P30.ZIP iz direktorijuma PASCAL? Pogledaj takođe fajlove
uz poruke u ovoj temi, kao i u pretphodnoj konferenciji PC.PROG (npr.
CONF DOWNLOAD pascal /a /t).
Ima svačega zanimljivog.
pascal.1292valhala,
U zadnjim R je izasao tekst o pisanju TSR-a. Elem, iako
se radi o C-u uspeo sam da ukontam skoro sve, sem prokletog
INT 9. Nimije jasno kako taj INT treba uopste pozvati?! Ako
bi neka dobra dusha mogla da mi objasni to, bio bih veoma zahvalan.
Ne bi bilo lose kad bi neko okacio neki mali TSR, cisto da vidim
kako to izgleda u praxi. Thanks in any case.
Val.
pascal.1293mmile,
│ Interesuje me setovanje modema,
│ dakle inicijalizacija, slanje kontrolnih znakova
│ modemu, (setovanje registara itd)
└─────────
begin
assign(output,'COM1'); (* Ili koji vec com *)
rewrite(output);
writeln('ATS0=1 i sl. '); (* Setovanje registara i sl. *)
close(f);
assign(output,'');
rewrite(output);
end.
pascal.1294v.nesic,
> INT 9. Nimije jasno kako taj INT treba uopste pozvati?! Ako
On se zove sam (tj. zove ga hardver). Ono sto ti radis je da
podmetnes tvoj program da se izvrsava umesto interapta (jerbo
kako bi ga drugacije aktivirao kada je neki drugi program aktivan)
P.S. Mislim da u helpu za turbo paskal imas neki primer.
pascal.1295bole,
>> P.S. Mislim da u helpu za turbo paskal imas neki primer.
Probaj u helpu primer za KEEP
pascal.1296jasicp,
Kako da obogatim Telemate script procedurama pisanim u Pascalu ?
pascal.1297isekulovic,
>> Ne bi bilo lose kad bi neko okacio neki mali TSR, cisto da vidim
>> kako to izgleda u praxi. Thanks in any case.
Pretraži malo ovu ovu i prethodnu pascal temu, kao i kraj teme
turbo.pascal u pc.softu. Bilo je više puta diskusije (sa primerima) na
tu temu. Mada bi ti najbolje bilo da pogledaš u Mom Mikrou 9/91 tekst
Pritajeni programi u Turbo Pascalu, Janeza Dmešara. U njemu je opisano
sve živo što ti treba na maksimalno razumljiv način.
pascal.1298ficus,
> function modfunc:integer;
> begin
> modfunc:=0
> end;
>
> procedure Inic256;
> var
> gd,gm:integer;
> begin
> gm:=0;
> gd:=installuserdriver('svga256',čmodfunc);
> initgraph(gd,gm,'ĐprogĐsvgaĐ')
> end;
>
> Ovo će instalirati drajver za 320x200x256. Probano, i radi :).
Izvini ssokorac, ali mislim da ne može BAŠ ovako... Dosta davno sam i ja naba-
vio ovaj drajver i ložio sam se na 256 boja ko dete na zvečku...
Ali, pošto sam izgubio source od mog programa, ostaje mi samo da se setim da
mi je trebalo skoro 40-ak linija (konsultujući literaturu TP-a).
Dakle, Rashi ostaje jedino i najbolje da pogleda u literaturu TP-a...
Pozdrav, Deki
pascal.1299ficus,
> Hi
> Interesuje me setovanje modema,
> dakle inicijalizacija, slanje kontrolnih znakova
> modemu, (setovanje registara itd)
>
> P.S. Po mogucnostceli sors ;)
Pogledaj u PASCAL disrektorijum, a mogao bi i da pogledaš knjigu Aleksandra
Radovanovića "PC Modemske komunikacije". Knjiga je odlična. Pazi, primeri i
funkcije u ovoj knjizi su u C-u, ali sve jedno, neće ti biti teško da ih preba-
ciš u TP...
Pozdrav, Deki
pascal.1300ficus,
> U zadnjim R je izasao tekst o pisanju TSR-a. Elem, iako
> se radi o C-u uspeo sam da ukontam skoro sve, sem prokletog
> INT 9. Nimije jasno kako taj INT treba uopste pozvati?! Ako
> bi neka dobra dusha mogla da mi objasni to, bio bih veoma
> zahvalan. Ne bi bilo lose kad bi neko okacio neki mali TSR,
> cisto da vidim kako to izgleda u praxi. Thanks in any case.
> Val.
Pogledaj Računare broj 90. Tu je vitez.koja dao jedan fini primer. Ako te mrzi
da tražiš, ja ću ti prekucati primer, a za objašnjenje gledaj poruke u ovo temi
od februara i marta. Evo primera:
š Copyright (C) Vladimir Marić (vitez.koja) ć
Program CLS;
Uses Crt, Dos;
Var KBD:Procedure;
Act:Boolean;
Procedure Brisi; 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(Brisi));
Act:=True;
Keep(0);
End.
Pozdrav, Deki
pascal.1301quale,
Zahvaljujem na odgovorima...
Dalje sto me interesuje je mogucnost ispisa│
sa com porta u isto vreme dok se nesto sasvim deseto
radi.
dakle interesuje me postojili neki fazon za iscitavanje
statusa com porta(ima li znaka na njemu, itd)
Thanx
pascal.1303ssokorac,
─┼┤ Izvini ssokorac, ali mislim da ne može BAŠ ovako... Dosta davno sam i ja
─┼┤ naba- vio ovaj drajver i ložio sam se na 256 boja ko dete na zvečku...
─┼┤ Dakle, Rashi ostaje jedino i najbolje da pogleda u literaturu TP-a...
Nema potrebe da zamajavaš čoveka zato što ti nisi znao da instaliraš :).
Radim ovako veš 3-4 meseca i ne moš' bolje raditi :).
pascal.1304mmile,
> Zahvaljujem na odgovorima...
>
> Dalje sto me interesuje je mogucnost ispisa│
> sa com porta u isto vreme dok se nesto sasvim deseto
> radi.
> dakle interesuje me postojili neki fazon za iscitavanje
> statusa com porta(ima li znaka na njemu, itd)
>
> Thanx
OK.Valjda ce ti ovo biti od pomoci :
INT 14h, 00h (00) Initialize Serial Port Parameters
Initializes the baud rate, parity, stop-bit, and word length
parameters for a serial port, and returns the status for the port.
On entry: AH 00h
AL Communications parameters (see below)
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AX Line and modem status (see Service 03h)
──────────────────────────────────────────────────────────────────────────
Baud rate Parity Stop bits Word Length
Bit: 7 6 5 4 3 2 1 0
0 0 0 110 0 0 None 0 One 1 0 7 bits
0 0 1 150 0 1 Odd 1 Two 1 1 8 bits
0 1 0 300 1 0 None
0 1 1 600 1 1 Even
1 0 0 1,200
1 0 1 2,400
1 1 0 4,800
1 1 1 9,600
──────────────────────────────────────────────────────────────────────────────
INT 14h, 01h (1) Send One Character
Sends one character to the specified serial port.
On entry: AH 01h
AL Character
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AH Line status (see Service 03h)
──────────────────────────────────────────────────────────────────────────
If an error occurs, bit 7 of AH will be set. SInce bit 7 is used as a
general error flag, this service is unable to identify a time-out
error. For complete diagnostic information, use Service 03h (Get
serial port status).
──────────────────────────────────────────────────────────────────────────────
INT 14h, 02h (2) Receive One Character
Receives one character at the specified serial port.
On entry: AH 02h
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AL Character
AH Line status (See service 03h)
──────────────────────────────────────────────────────────────────────────
Notes: This service waits for a character. If no character
is available or an error occurs, no character is
returned and bit 7 of AH is set.
If an error occurs, bit 7 of AH is set. SInce bit 7
is used as a general error flag, this service is
unable to identify a time-out error. For complete
diagnostic information, use Service 03h (Get serial
port status).
──────────────────────────────────────────────────────────────────────────────
INT 14h, 03h (3) Get Serial Port Status
Returns line status and modem status information for a specified
serial port.
On entry: AH 03h
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AX Line and Modem status (See below)
──────────────────────────────────────────────────────────────────────────
Status information is returned in AX, as follows:
AH (Line status)
7 6 5 4 3 2 1 0
1 . . . . . . . Time-out error
. 1 . . . . . . Transfer shift register empty
. . 1 . . . . . Transfer holding register empty
. . . 1 . . . . Break-detect error
. . . . 1 . . . Framing error
. . . . . 1 . . Parity error
. . . . . . 1 . Overrun error
. . . . . . . 1 Data ready
AL (Modem status)
7 6 5 4 3 2 1 0
1 . . . . . . . Received line signal detect
. 1 . . . . . . Ring indicator
. . 1 . . . . . Data set ready
. . . 1 . . . . Clear to send
. . . . 1 . . . Change in receive line signal detected
. . . . . 1 . . Trailing edge ring detector
. . . . . . 1 . Change in data set ready
. . . . . . . 1 Change in clear to send
If bit 7 of the Line status byte (AH) is set, then the rest of the
bits in AH and AL are unpredictable.
Notes: Early versions of the ROM-BIOS for the original PC
had a programming error that would cause "time-out"
errors to be reported as "transfer shift register
empty" and "break-detect" errors. This has been
corrected in all other versions of the ROM-BIOS.
Sve je iz NG-a za asembler.
Izvinite zbog duzine poruke.
pascal.1305novim,
Prilažem ovde uz poruku lamenttp.zip (9,585) - source
za "Lament nad Beogradom" Miloša Crnjanskog (u čast
njegovih 100 godina) - u TP-u (od 5 pa dalje). Ko 'oće
nek' zameni moj YUSCII svojim, kompajlira etc. (a ima
i tri korisna unit-a unutra).
lamentbg.zip (sa lamentbg.exe) je u SEZAM.2:razno.
- novim
lamenttp.zippascal.1306novim,
Ispravka: lamentbg.zip ( .exe) je uz
poruku 5.17 u CIVILIZACIJA.3:knjizevnost
(gde mu je i mesto). - novim
pascal.1307isekulovic,
Jel ima neko sve extended kodove za tipke na tastaturi? Pronašao sam
u jednom unitu (tpw60) neke kojih nema u uputstvu. Tablica u uputstvu
ima sledeće rupe 0-14 (izuzev 3), 26-29, 39-43, 51-58, 69, 70 i eventualno
141+. Ako bi neko znao da popuni rupe...