pascal.1dr.urbano,
Da li neko zna nesto o paketu SPX v2.0 ? Gde bih mogao da ga nabavim ?
Cini mi se da se radi o grafici (13x mode, sprajtovi ...) !
Pozdrav,
Vladimir.
P.S.
Ako znate bilo sta molim da javite.
pascal.2mmitrovic,
REPLY PC.PROG.5/7.1041
::::: Moze neki hint na neko programce koje je rezidentno,i
::::: sakuplja u fajl sve sto se unese preko tastature?
Šta, zar vam u školi kucaju testove na komp-u. :)
Što se tiče programa, sorry, mrtav je. :(
PS. To mi je bila najdraža petica iz fizike. :)
pascal.4mminovic,
> Sto se tice programa, sorry, mrtav je. :(
Sta ti ovo znaci:)))
da moram sam da ga pisem,ili...:)
Pozdrav,
Mindza.
pascal.5mpromet,
Zna li neko dobru knjigu za Turbo Paskal u kojjoj
skoro sve ima,od verzije 6.0 ili 7.0 ako sadrži
iza 6.0?
pascal.7konem,
Imam jedan problem u vezi turbovizije.Naime javlja mi gresku
pri upisu na tok(stream) i to u obliku STREAM REGISTRATION ERROR.
Ako neko zna , neka javi zasto i kako je otkloniti?
Hvala unapred...
pascal.8atech,
> Sta ti ovo znaci:)))
> da moram sam da ga pisem,ili...:)
Hellas bbs 011/283-1387 22-??
Arhiva phantom2.zip (ako se dobro secam)
To ce ti ustedeti posao...
pascal.9.sima,
║║ Zna li neko dobru knjigu za Turbo Paskal u kojjoj
║║ skoro sve ima,od verzije 6.0 ili 7.0 ako sadrži
║║ iza 6.0?
Pa već si pitao u staroj konf i dobio odgovore??? Pogledaj pc.prog.5.
pascal.10.sima,
║║ pri upisu na tok(stream) i to u obliku STREAM REGISTRATION ERROR.
║║ Ako neko zna , neka javi zasto i kako je otkloniti?
Pa dok se nevidi sors...
┌───────────────────────────┐
│ Stream registration error │
└───────────────────────────┘
This error is generated by the RegisterType procedure in the Objects
unit.
It indicates that one of the following errors has occurred:
■ The stream registration record does not
reside in the data segment.
■ The ObjType field of the stream
registration record is 0.
■ The type has already been registered.
■ Another type with the same ObjType value already exists.
pascal.11supers,
>> Zna li neko dobru knjigu za Turbo Paskal u kojjoj
>> skoro sve ima,od verzije 6.0 ili 7.0 ako sadrži
Mikroknjiga, Stephen O'Brien, Turbo Pascal 6 - kompletan vodič.
pascal.12nemko,
)>- Da li neko zna nesto o paketu SPX v2.0 ? Gde bih mogao da ga
)>- nabavim ? Cini mi se da se radi o grafici (13x mode,
Za njega nisam čuo, ali mogu da ti ponudim ANIVGA koji radi
isti posao. Javi se u mail ako te zanima!
pascal.13konem,
Thanks .sima...
pascal.14konem,
Interesuje me zasto Borlandov TD386.EXE nece da radi
kada mu startujem TDH386.SYS iz Config-a ,sto on normalon
zahteva.
Prijavljuje ,sa TDH386, isto sto i prijavljuje bez njega:
'V86 is already in virtual mode.'
pascal.15dr.urbano,
Ne meni treba bas SPX v2.0 !! Anivga sam odavno nabavio !!!
Dakle da neko drugi slucajno nezna nesto o ovom programu ?
Pozdrav,
Vladimir.
P.S.
E da, hvala sto si se javio :)
pascal.16.sima,
║║ Prijavljuje ,sa TDH386, isto sto i prijavljuje bez njega:
║║ 'V86 is already in virtual mode.'
TDH386 je v86 "menadžer" i kao takav ne trpi druge, a to su svi emm
menažderi qemm, emm386, windows-i, itd... Dovoljno je dići himem.sys.
Sva ostala memorija će biti dostupna programu, jer td, ili tp idu u
drugu virualnu mašinu.
pascal.17konem,
EUREKA! It's working!
Thanks,.sima.
pascal.18nemko,
)>- Prijavljuje ,sa TDH386, isto sto i prijavljuje bez njega:
)>- 'V86 is already in virtual mode.'
I ja imam isti "problem". Verovatno je caka u tome što koristiš
QEMM ili neki sličan program koji se automatski prebacuje u V86
mod da bi efikasnije obavio ono za šta je namenjen. Kada ga
pokreneš bez qemm-a (nezaboravi himem.sys) onda sve lepo radi.
Kako da u turbo debuggeru (ne 386) postavim breakpoint na određen
tip instrukcije?
pascal.19igorsedam,
Treba mi pomoc!
Jel mozda neko zna i moze da mi napise proceduru za zrtanje luka
tacku po tacku bez standardnih graph proc&funkcija.Parametri bi trebali da
budu poluprecnik pocetni i krajni ugao.
Unapred hvala
Igor
pascal.20.sima,
║║ EUREKA! It's working!
║║ Thanks,.sima.
Nema na čemu. Inače ja lično koristim za Borlandove kompajlere
posebnu konfiguraciju. U njoj se nalazi himem.sys, smartdrv, drajver za
miša i fontove i ništa više. Sve ostalo bi usporavalo. EMS nije potrebna
sem kada pišem program koji je koristi, a to je vrlo retko jer sam se
opredelio sa XMS. Brža je i rad je jednostavniji.
pascal.21.sima,
║║ Jel mozda neko zna i moze da mi napise proceduru za zrtanje luka
║║ tacku po tacku bez standardnih graph proc&funkcija.Parametri bi
║║ trebali da budu poluprecnik pocetni i krajni ugao.
Evo ti primer u kome sam koristio int 10. To znači da primer nije za
korišćenje, već samo za ilustraciju. Ako ti treba nešto brže savetujem
ti da pogledaš nekoliko poslednjih bojeva časopise: PC - za crtanje u
VESA modovima i Računari - programiranje vga karte pomoću registara.
Jedini deo koji bi morao da se zameni je DrawPoint. A za to može da se
koriste registri ili direktni pristup memoriji.
luk.zippascal.22mminovic,
Hi:)
Zanima me kako kompajlirati program pod TP 7.0 for DOS u
protekted modu(i sta je tacnije tpx.exe)?
I kako se posle taj program koristi(moze li automatski
uz QDPMI i QEMM)?
Unapred zahvalan,
Miroslav.
pascal.23nemko,
)>- bojeva časopise: PC - za crtanje u VESA modovima i Računari -
)>- programiranje vga karte pomoću registara. Jedini deo koji bi
)>- morao da se zameni je DrawPoint. A za to može da se koriste
)>- registri ili direktni pristup memoriji.
Napisao sam unit za koriscenje VESA 101h moda (640x480x256c) sa svim
neophodnim rutinama osim getpixel. Takođe još nisam napisao asm verzije
crtanja kruga i kosih linija. Lako se prepravlja i za ostale rezolucije
sa 256 boja. So, ako nekome treba... DERITE SE!
BDW, u racunarima 36 je bila objavljena "celobrojna" rutina za crtanje
elipse. Samo je problem što neće da radi, poseduje li neko istu?
pascal.24dejanr,
Nekada sam mnogo koristio Turbo Pascal 5.5, a i sada ga ponekad startujem
kad mi treba nešto na brzaka da uradim. Očito ne tako često kao nekada, jer
sam ga posle mesec dana rada pod Win 95 tek danas prvi put startovao. Kad
ono... kaže Windows ovaj program mora da radi u DOS modu, poskida sve
aplikacije, a kada izađem iz TP-a onda resetuje računar :( Ukratko, možete
da zaboravite na TP 5.5.
Meni nekako bilo žao da ga se lišim, i padne mi na pamet da preimenujem
fajl, tako da sam uradio REN TURBO.EXE TPAS.EXE. Od tada, da kucnem u drvo,
radi sasvim lepo u običnom DOS prozoru. Probao sam i da prevodim velike
fajlove, da koristim debager itd, nikakvog problema. Bog zna da li je to
Microsoft napravio zato što ima neki drugi proizvod koji se zove TURBO
(a baš je i Borland našao ime za paskal kompajler ;) ili šta, ali jedno
rename reši problem.
Naravno, ako vam tri dana po preimenovanju TPAS obriše disk, nemojte mene
da krivite ;)
pascal.25vcalic,
>> Meni nekako bilo žao da ga se lišim, i padne mi na pamet da preimenujem
>> fajl, tako da sam uradio REN TURBO.EXE TPAS.EXE. Od tada, da kucnem u
>> drvo, radi sasvim lepo u običnom DOS prozoru. Probao sam i da prevodim
>> velike fajlove, da koristim debager itd, nikakvog problema. Bog zna da li
>> je to Microsoft napravio zato što ima neki drugi proizvod koji se zove
>> TURBO (a baš je i Borland našao ime za paskal kompajler ;) ili šta, ali
>> jedno rename reši problem.
Win95 čuva listu aplikacija koje treba startovati u MS-DOS modu u
Registry-u. Hijerarhija glasi:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\
\Emulation\AppCompat\
E, u listi postoji i stavka TURBO.EXE. Nema opisa na koji se proizvod
tačno odnosi, ali pored reimenovanja fajla bi upalilo i brisanje ove stavke iz
Registry-a.
Vlada
pascal.27dikla,
> Hellas bbs 011/283-1387 22-??
> Arhiva phantom2.zip (ako se dobro secam)
> To ce ti ustedeti posao...
MSDOS - R:ĐUTILITY
----------------------
phantom2 zip 34619 Snima i reprodukuje pritiske na tastere
pascal.28.sima,
║║ Zanima me kako kompajlirati program pod TP 7.0 for DOS u
║║ protekted modu(i sta je tacnije tpx.exe)?
Ne može. Mora da se koristi BP 7.0 ili BPC 7.0. Ako se koristi BP
onda se u meniju Compile odabere stavka Targer i postavi na protected
mode. TDX je Turbo Debuger for DPMI ili TD za protected mode programe.
Svi DPMI programi mogu da se startuju iz BP, ali ne mogu da se
postavljaju break points ili da se radi trace ili step. Za to služi TDX.
║║ I kako se posle taj program koristi(moze li automatski
║║ uz QDPMI i QEMM)?
DPMI program radi kao i BP i BPC mora da bude aktivan neki DPMI
server, bilo da je to QDPMI (koji ima mogućnost virtualne memorije), ili
da se stave dpmi*.* fajle iz Pascala u path.
pascal.29visnja,
> sam ga posle mesec dana rada pod Win 95 tek danas prvi put
> startovao. Kad ono... kaže Windows ovaj program mora da radi u
> DOS modu, poskida sve
Cim sam video da WIN95 ne podrzava Borland-a izbrisao sam ga. Ne pascal
nego WIN95.
pascal.30igorsedam,
Mrzi me da prelitavam ali ko god da mi je poslao luk hvala mu ko bratu
Igor
pascal.31postmast,
From: raven@setnet.co.yu (Robert Oswald)
Subject: Re: zapisi i tako dalje
Date: Fri, 29 Sep 1995 23:52:04
'ello, Mladen, I've heard that ya said...
MA> -+=+- Mihajlo Savic rece : -+=+-
MA>> Ja bih u "listu" da dodam AVI i MPEG.
MS>> ^^^^ I tata bi sine :))))))
MS>> MPEG? Pa covjece niko od nas nema sanse da napravi player za MPEG
MS>> koji bi radio iole pristojnom brzinom O;>>>
MA> Ko je rekao da ja zelim da pravim player za MPEG? Mene samo
MA> "informativno" interesuje zapis. Posebno me interesuje AVI, posto
MA> je sigurno, pred njim buducnost. Ako neko slucajno ima Windows 95
MA> Develompers Kit (to je onaj drugi cd), mogao bi da nesto izvadi iz
MA> stavke "ANI".
Zaboravih da ti pomenem ,mogu ti pribaviti i format FLI zapisa ako ti treba,
kao i FliPlayer (nekoliko verzija, x puta brzhi od autodeskovog)
(c) Zika :))
ĆĆ RaveN žž >>> VBC <<<
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.32postmast,
From: nikola.golovic@shadow.herkules.co.yu (NIKOLA GOLOVIC)
Subject: pascal
Date: Sat, 30 Sep 95 02:05:00 +0100
Trebaju mi knjige u kojima se mogu naci naredbe za pravljenje programa
za modeme,t.j. za slanje i citanje sa serijskog porta u PASCAL-u.Ako
neko zna koja literatura za to postoji ili gde se moze naci,neka napise
nesto...
---
■ ANGEL! #UNREG■ UNREGISTERED EVALUATION COPY
pascal.33postmast,
From: darko.hujdurovic@panon.ns.ac.yu (Darko Hujdurovic)
Subject: Re: Delphi
Date: Mon, 2 Oct 1995 15:10:00 GMT
VJ> DH> Vizuelni Hello World je oko 90 KB nakon sledecih intervencija:
VJ> DH> - Ukljucite optimizaciju na Max.
VJ> Ako se dobro secam, optimizacija je nekad bila pod Options/Compiler
VJ>a sad su je stavili pod Linker... Sumnjivo...
VJ> Inace, ima gotovo sve standardne sviceve iz Turbo Pascala, sto bi
VJ>trebalo da znaci da u osnovi lezi slican kompajler :)
Pa sta ako je pod Linker. Bitno je da radi posao.
U osnovi i jeste slican kompajler, ali mnooogo poboljsan.
Mislim da je dvoprolazan, moguce da je zato optimizacija pod
Linker menijem.
┌───────────┬──────────────────────────────────────────────────────────┐
│ PAOR v0.2 │ "Malene ribe vecih se klone ne pazis i vec te nema za │
│ │ tren" - Djole B. │
└───────────┴──────────────────────────────────────────────────────────┘
pascal.34postmast,
From: darko.hujdurovic@panon.ns.ac.yu (Darko Hujdurovic)
Subject: Re: Delphi
Date: Mon, 2 Oct 1995 17:53:00 GMT
SD>A koliko je vizuelni deo povezan sa "tastaturnim" delom, odnosno,
SD>da li bi i koliko bilo komplikovano, na primer, napraviti tabelu
SD>sa bazom i recimo duplim klikom na desni taster pozvati specijalni
SD>dijalog za unos?
Cak sta vise, to je direktno podrzano. Mislim da je komponenta Local
menu, ili nesto slicno. Odnosno desnim klikom na tvoje polje fino se
covijeku otvori meni sa izborom, reccimo da uradi nesto sa tim
poljem, pa kad on izabere a ti mu otvori sta hoces. ;)
SD>Predpostavljam da ima Turbovizicnu HandleEvent filozofiju....
Nesto slicno, ali mnogo bolje. Svaka komponenta, odnosno sve sto
vidis ima odredjene Evente, ti izaberes koji hoces da obradis i on ti
odma' napravi sve sto je potrebno, a ti korisni dio upises izmadju
begin i end;
Mozes cak da napravis da se nesto desi kad pacovom predjes preko
nekog dijela tvog prozora, ili mozda citavog prozora.
Npr, dok je pacov iznad tvog prozora on mu kaze:
"Voltron, defender of the universe is ready for you!" :)
┌───────────┬──────────────────────────────────────────────────────────┐
│ PAOR v0.2 │ "U mojoj sobi samo stari veker vreme drobi, a badnje │
│ │ vece prolazi" - Djole B. │
└───────────┴──────────────────────────────────────────────────────────┘
pascal.35postmast,
From: darko.hujdurovic@panon.ns.ac.yu (Darko Hujdurovic)
Subject: Re: 70 kolona
Date: Mon, 2 Oct 1995 18:00:00 GMT
SD>Evo source koji tag maksimalne duzine maxtaglen znakova u liniji
SD>ubacuje u string, a posle u fajl:
SD>while(tekuci<strlen(tagline))
SD>{
SD> strcat(tag,"\n¸> "); /* pocni liniju taga ... */
SD> linija = 0;
SD> for(;;)
SD> {
SD> sscanf(s,"%80s",rec); /* procitaj tekucu rec */
SD> drec = strlen(rec)+1;
SD> if(drec>maxtaglen)
SD> {
SD> sprintf(tag,"\n¸> Rec \"%s\" je duza od maksimalne "
SD> "duzine linije taga!",rec);
SD> tekuci=strlen(tagline);
SD> break;
SD> }
SD> linija += drec;
SD> if(linija>maxtaglen || tekuci>=strlen(tagline))
SD> break;
SD> else
SD> {
SD> strcat(tag,buf); /* dodaj rec na tag + space */
SD> strcat(tag," "); /* i idi na sledecu rec */
SD> tekuci += drec;
SD> s += drec;
SD> }
SD> }
SD>}
SD>fprintf(fp,"%s\n\n%s %s",tag,dmgsign,usersign);
Ko to kaze da je C kriptican. Evo nesto slicno u Pascalu.
Moze prostije, al ja volim da komplikujem :))))
function GetWord(var Linea: string):string;
var WordOne : string;
i,j : word;
begin
WordOne:='';
j:=1;
while (j<ord(Linea[0])) and (Linea[j]=' ') do inc(j);
i:=j;
while (i<ord(Linea[0])) and (Linea[i]<>' ') do inc(i);
WordOne:=copy(Linea,j,i-j+1);
delete(Linea,1,i);
if WordOne='' then GetWord:=' '
else GetWord:=WordOne;
end;
begin
Assign(TFile, MsgFile);
Append(TFile);
WriteLn(TFile);
WriteLn(TFile);
Count:=Length(Linea);
if Length(Linea) < 56 then
begin
Write(TFile, Linea);
for i:=56 downto Length(Linea) do Write(TFile, ' ');
end
else
begin
Count:=0;
CP:=0;
repeat
Tmp:=GetWord(Linea);
Count:=Count+ord(Tmp[0]);
if Count>56 then begin
for i:=56 downto Count-ord(Tmp[0]) do Write(TFile, ' ');
Count:=ord(Tmp[0]);
end;
Write(TFile,Tmp);
until Tmp=' ';
for i:=55 downto Count-ord(Tmp[0]) do Write(TFile, ' ');
end;
close(TFile);
end.
┌───────────┬──────────────────────────────────────────────────────────┐
│ PAOR v0.2 │ "I nemoj crnoj ptici da me das" - Djole B. │
└───────────┴──────────────────────────────────────────────────────────┘
pascal.36postmast,
From: Mladen.Jablanovic@f101.n101.z38.setnet.setnet.co.yu (Mladen Jablanovic)
Subject: Pascal
Date: Sun, 01 Oct 1995 00:12:09
==== Quoting Zoran Rilak: ====
ZR> Da li je neko video igru "StarGlider" na XT-u? Koliko ljudi smatra da
ZR> bi mogli da naprave istu stvar na svojim 486 masinama? Programeri su se
ZR> ulenjili, i sve su vise lenji sto su masine brze.
Izvini sto se mesam, ali to sto su programeri (u konkretnom
slucaju oni koji prave igrice) presli sa masinca na C ili neki drugi
visi jezik ne znaci da su se ulenjili; to znaci da je danas igru
(igru, a ne dobru igru) mnogo lakse i brze napisati. Naravno, to nosi
sa sobom vece hardverske zahteve, ali koliko imas dobro uradjenih
igrica za XT, a koliko za 486?
To sto sad ima mnogo manje DOBRIH igrica nego u ono vreme je
vise sociolosko nego racunarsko pitanje. Sta bih ja dao za jednu
igricu na PC-u koja bi me drzala duze od dva sata, kao sto me je nekad
drzao Monty na spektrumu...:(
... RECNIK: Starkelja - deda u starkama
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.37postmast,
From: Mladen.Adamovic@f135.n135.z38.setnet.setnet.co.yu (Mladen Adamovic)
Subject: Re: zapisi i tako dalje
Date: Sun, 01 Oct 1995 19:31:49
-+=+- Robert Oswald rece : -+=+-
RO> Zaboravih da ti pomenem ,mogu ti pribaviti i format FLI zapisa ako ti
Pa ako je kratko moglo bi u konf. Unapred hvala.
Pozdrav, Mladen Adamovic (adamm@elf.bl.ac.yu).
... Ko drugome jamu kopa fizicki je radnik
* Origin: Sveti Sava BBS Prijedor 079 11 629 SETNet: (38:135/135)
pascal.38postmast,
From: Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
Subject: pascal
Date: Mon, 25 Sep 1995 18:26:00
"LĆ From: "Kristijan Lazic" <kriss@sezam.UUCP> Newsgroups:
"LĆ yu.prog.pascal Organization: SEZAM Beograd, 011 648-422
"LĆ Zna li neko knigu u kojoj imskoro sve o
"LĆ Turbo Pascal-u (6.0)
"LĆ SEZAM, dir pascal, fajl TPR-BOOK.ZIP. Cena: dz.
Dali moze (Posto poodavno nemam pristap sezamu (pola godina dana ako ne i vise)) ako fajl nije veci od 100 kb da ga podelis na delice i uuencode-ovas ga na moju adresu po mail ?
0GZy
* 0Gi'S eDiT0R * With faster machines comes slower software
* Origin: SETNet: ĆMemory Master BBS +389/91-164-877ž SKOPJE (38:108/132)
pascal.39postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: 70 kolona
Date: Tue, 3 Oct 1995 18:42:00 GMT
DH> Ko to kaze da je C kriptican. Evo nesto slicno u Pascalu.
DH> Moze prostije, al ja volim da komplikujem :))))
DH> function GetWord(var Linea: string):string ...
Priznajem da mi nista nije jasno... Crni Darko, pa zar ti Mirjana
nije predavala "Umetnost lepog programiranja" izmedju ostalog i dala
vise od 5, cccc... :)))
¸> "I'm gonna set this scene out..." -- Crow T. Robot
* ŰmÔ/\/\× 1.3 #00 *
pascal.40postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Tue, 3 Oct 1995 16:14:00 GMT
NG> Trebaju mi knjige u kojima se mogu naci naredbe za pravljenje programa
NG> za modeme,t.j. za slanje i citanje sa serijskog porta u PASCAL-u.Ako
NG> neko zna koja literatura za to postoji ili gde se moze naci,neka napise
NG> nesto...
Ako te zanima i poneki sorsic, javi pa cu ti ga posaljem :)
Mada, koliko sam se ja time bavio, najvise sam uspeha imao
koristeci gotove rutine iz Personal Communications Lib.
¸> Chain Lightning: For when you just can't stop at one.
* ŰmÔ/\/\× 1.3 #00 *
pascal.41postmast,
From: vlaxi@shadow.herkules.co.yu (VLAXI)
Subject: Re: zapisi i tako dalje
Date: Mon, 02 Oct 95 08:27:00 +0100
-=> Quoting Robert Oswald to All <=-
RO> @FROM :raven@setnet.co.yu
RO> N @UMSGID :<812513903.AA08833@setnet.setnet.co.yu>
RO> N @UNEWSGR:01yu.prog.pascal
RO> N Path: herkules!fon.fon.bg.ac.yu!setnet!uucp
RO> From: raven@setnet.co.yu (Robert Oswald)
RO> Newsgroups: yu.prog.pascal
RO> Subject: Re: zapisi i tako dalje
RO> Message-ID: <812513903.AA08833@setnet.setnet.co.yu>
RO> Date: Fri, 29 Sep 1995 23:52:04
RO> Sender: uucp@setnet.setnet.co.yu
RO> 'ello, Mladen, I've heard that ya said...
MA> -+=+- Mihajlo Savic rece : -+=+-
MA>> Ja bih u "listu" da dodam AVI i MPEG.
MS>> ^^^^ I tata bi sine :))))))
MS>> MPEG? Pa covjece niko od nas nema sanse da napravi player za MPEG
MS>> koji bi radio iole pristojnom brzinom O;>>>
MA> Ko je rekao da ja zelim da pravim player za MPEG? Mene samo
MA> "informativno" interesuje zapis. Posebno me interesuje AVI, posto
MA> je sigurno, pred njim buducnost. Ako neko slucajno ima Windows 95
MA> Develompers Kit (to je onaj drugi cd), mogao bi da nesto izvadi iz
MA> stavke "ANI".
Ima jedan moj ortak taj CD ..... ;))
RO>
RO> Zaboravih da ti pomenem ,mogu ti pribaviti i format FLI zapisa ako ti
RO> treba, kao i FliPlayer (nekoliko verzija, x puta brzhi od autodeskovog)
RO> (c) Zika :))
RO> ĆĆ RaveN žž >>> VBC <<<
RO> ! Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
... * Origin: Shadow BBS 22-08 , 424360 , 2400-14400 , MNP1-5 , V42-V42B
___ ####VLĺXI#### v2.12
pascal.42postmast,
From: Mihajlo.Savic%f135.n135.z38@setnet.setnet.co.yu (Mihajlo Savic)
Subject: Re: pascal
Date: Mon, 02 Oct 1995 23:02:41
*** QUOTE : "Srdan Simic" ***
"S> otvaraju u readonly, sa rewrite u writeonly, a sa append u readonly
"S> takodje.
Khm, ovaj, a kako zamisljas da program dopise (append) jos teksta na kraj
datoteke ako je ona redonly? Tu mi nesto ne stima, vjerovatno je lapsus...
BadaBoom
... If you can't make it good, make it big.
* Origin: Sveti Sava BBS Prijedor 079 11 629 SETNet: (38:135/135)
pascal.43postmast,
From: raven@setnet.co.yu (Robert Oswald)
Subject: Re: zapisi i tako dalje
Date: Tue, 03 Oct 1995 22:56:01
'ello, Mladen, I've heard that ya said...
MA> -+=+- Robert Oswald rece : -+=+-
RO>> Zaboravih da ti pomenem ,mogu ti pribaviti i format FLI zapisa ako ti
MA> Pa ako je kratko moglo bi u konf. Unapred hvala.
Pa znash kako, moram prvo da ulovim VMZ-a da to napishe, znas, zaposlen
chovek, nema ga u Rumi ovih dana... No mogu ti poslati njegove FLI playere,
(one koje ja imam, ima on i novijih) pa ti reci da li hoces da ti to
UUEncodujem, ili ces zvati mene (022) 425-879 (do 23 voice, posle modem)
pa da ti to UL ruchno ili da ti ostavim kod mene na BBS. Javi da znam sta
da radim :)
ĆĆ RaveN žž >>> VBC <<<
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.44postmast,
From: vladimir.jokic@panon.ns.ac.yu (Vladimir Jokic)
Subject: Re: Delphi
Date: Wed, 4 Oct 1995 08:57:00 GMT
VJ> Inace, ima gotovo sve standardne sviceve iz Turbo Pascala, sto bi
VJ>trebalo da znaci da u osnovi lezi slican kompajler :)
DH> Pa sta ako je pod Linker. Bitno je da radi posao.
DH> U osnovi i jeste slican kompajler, ali mnooogo poboljsan.
Hm. Jesi radio sa Borland Pascalom 7 za Windows-e? Ja nisam, pa me
zanima kako se meri sa njim (po pitanjima brzine EXE-a)...
Inace, ne znam da li si primetio, ali svi fajlovi nose vreme 8:00,
sto znaci da je izgleda krpljeno preko sedmice... A i na uvodnom ekranu
pise Copyright Borland Intl. '83-'95 :))))
¸> Pick two: 1) Cheap 2) Fast 3) Bug Free 4) Windows (counts as 2)
* ŰmÔ/\/\× 1.3 #05 * BaMßşN0
pascal.45dvesic,
>> Zaboravih da ti pomenem ,mogu ti pribaviti i format FLI zapisa
>> ako ti treba, kao i FliPlayer (nekoliko verzija, x puta brzhi
>> od autodeskovog) (c) Zika :))
Može li neki player (sem OS/2 playera :) da ispuca FLI koji je 2,5
puta veći od raspoloživog RAM-a ?
Koji ?
pascal.46postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Delphi
Date: Fri, 6 Oct 1995 18:58:00 GMT
VJ> Inace, ne znam da li si primetio, ali svi fajlovi nose vreme 8:00,
VJ> sto znaci da je izgleda krpljeno preko sedmice... A i na uvodnom ekranu
VJ> pise Copyright Borland Intl. '83-'95 :))))
Pa i vreme je bilo :)
TP pratim od 3.0 i svaka verzija je donosila nesto novo (jedino nisam
siguran za 5.0 ;). Sasvim je logicno da se posle 12 godina odlepe od
DOS-a.
¸> "By the way, have you ever bathed?" -- Joel Robinson
* ŰmÔ/\/\× 1.3 #00 *
pascal.47postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Pascal
Date: Fri, 6 Oct 1995 19:02:00 GMT
MJ> To sto sad ima mnogo manje DOBRIH igrica nego u ono vreme je
MJ> vise sociolosko nego racunarsko pitanje. Sta bih ja dao za jednu
MJ> igricu na PC-u koja bi me drzala duze od dva sata, kao sto me je nekad
MJ> drzao Monty na spektrumu...:(
Da, ali onda se igrica ucitava "vekovima" i verovatno te je mrzelo
svaki put da ucitavas ponovo. (citaj: 'God bless Turbo 250' ;)
Sto se tice pisanja igrica, slazem se da je postalo potpuno je nepotrebno
pisati iste u suvom asembleru radi brzine: Prince Of Persia je pisan u MSC
6.0 i veruj mi na rec da savrseno radi na XT-u :)
¸> ... "No one has jurisdiction over the truth" -Fox Mulder
* ŰmÔ/\/\× 1.3 #00 *
pascal.48postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Fri, 6 Oct 1995 19:05:00 GMT
IG> Jel mozda neko zna i moze da mi napise proceduru za zrtanje luka
IG> tacku po tacku bez standardnih graph proc&funkcija.Parametri bi trebali
IG> budu poluprecnik pocetni i krajni ugao.
Pa mozes malo da izvedes pomocu geometrije:
x = x0 + r * cos(ugao)
y = y0 + r * sin(ugao)
ugao = [pocetni..krajnji]
r = poluprecnik
(x0,y0) = centar luka
Ako ti je sporo, koristi tabelu za sin i cos za warpspeed
izracunavanje. :)
¸> Deanna tries to read Picard's mind and sees Pontiac.
* ŰmÔ/\/\× 1.3 #00 *
pascal.49postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Fri, 6 Oct 1995 19:07:00 GMT
MS> Khm, ovaj, a kako zamisljas da program dopise (append) jos teksta na kraj
MS> datoteke ako je ona redonly? Tu mi nesto ne stima, vjerovatno je lapsus...
Nikako, promenis joj atribut pre obrade, a kasnije vratis stari.
¸> "Bother," said Dale as his X-wing exploded.
* ŰmÔ/\/\× 1.3 #00 *
pascal.50.sima,
║║ "S> otvaraju u readonly, sa rewrite u writeonly, a sa append u
║║ "S> readonly takodje.
║║ na kraj datoteke ako je ona redonly? Tu mi nesto ne stima,
║║ vjerovatno je lapsus...
Da lapsus; sa append se otvara u writeonly.
pascal.51postmast,
From: Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
Subject: pascal
Date: Sat, 07 Oct 1995 14:07:00
NGĆ From: nikola.golovic@shadow.herkules.co.yu (NIKOLA GOLOVIC)
NGĆ Newsgroups: yu.prog.pascal Organization: BUSY CONNECTIONS ,
NGĆ SHADOW.HERKULES.CO.YU , 011/424-360 22-08
NGĆ Trebaju mi knjige u kojima se mogu naci naredbe za pravljenje
NGĆ programa za modeme,t.j. za slanje i citanje sa serijskog porta u
NGĆ PASCAL-u.Ako neko zna koja literatura za to postoji ili gde se moze
NGĆ naci,neka napise nesto...
Ja sam radio neke moje rutine u Pascalu ali su bile prokleto spore :(( Uzeo sam i PCL4P ali imao je neke nedostatke (trudim se da ga adaptiram za moje potrebe) pa nisam nista uradio. Inace, video sam 2 knjige okolo to : Dos sistemski pozivi (nisam s
iguran, mozda se zvala i : Dos Iznutra) od stranskih autora, a i neku od Hayes-a. Na zalost bili su skupi :(( i nisam ih kupio :((( (ne vici, 100DM za original od Hayes-a mi je previse :)) )
0GZy
p.s. ako hoces poslacu rutine ali nisam siguran da ce ti uopste pomoci (eeh, da sam znao bolje ASM) jer su VeoMa! proste :( a i narugace mi se svako :))
* 0Gi'S eDiT0R * Backup not found: (A)bort (R)etry (P)anic
* Origin: SETNet: ĆMemory Master BBS +389/91-164-877ž SKOPJE (38:108/132)
pascal.52kriss,
˙˙ From: Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen
˙˙ Spiroski)
˙˙ Dali moze (Posto poodavno nemam pristap sezamu (pola godina
˙˙ dana ako ne i vise)) ako fajl nije veci od 100 kb da ga
˙˙ podelis na delice i uuencode-ovas ga na moju adresu po mail ?
Fajl je poveći, i više puta bi preturio limit UUCP-a. Međutim, fajl
možeš naći i na brzom sezamu (SEZAM-PRO-BA), gde je pristup besplatan.
pascal.53vgenije,
>
> NGC Trebaju mi knjige u kojima se mogu naci naredbe za
> pravljenje NGC programa za modeme,t.j. za slanje i citanje sa
> serijskog porta u NGC PASCAL-u.Ako neko zna koja literatura za
> to postoji ili gde se moze
MENE ZAnima da li je neko natero onaj commx da radi?
Postoji li neki preimer koji pokazuje kako se iz pascala koordinira rad
modema itd..
pascal.54guta,
RE: Delphi
Šta nije u redu sa sledećim kodom (i verzijama)
-------- Verzija 1 --------
try
i := StrToInt( Edit1.Text );
except
MessageBeep(0);
end;
-------- Verzija 2 --------
try
i := StrToInt( Edit1.Text );
except
on exception do
MessageBeep(0);
end;
-------- Verzija 3 --------
try
i := StrToInt( Edit1.Text );
except
on EConvertError do
MessageBeep(0);
end;
-------- Verzija 4 --------
try
i := StrToInt( Edit1.Text );
except
on Exception do
MessageBeep(0);
else
MessageBeep(1);
end;
Sve četiri verzije ponašaju se potpuno isto, tj. :
- kada je string Edit1.Text neregularan za konverziju, funkcija
StrToInt 'podiže' exception class EConvertError, pojavi se mali
message box, gde on to i kaže, i program naravno stane.
- kada mu kažem OK, on ostane u debug modu i potom ako idem step-by-step
on sasvim regularno udje u blok iza except i zapišti, i potom nastavi
dalje.
- probao sam i da prijavim svoj exception handler Application.OnException
i to radi (nema grešaka, regularno je prijavljen), ali f-ja StrToInt
i dalje pada na neregularnu vrednost, diže exception i prikazuje
onaj message box.
Pitanja:
- zašto ovo ne radi? U helpu ima čak isti primer...
- ako ja u nečemu grešim (a biće da grešim ;) kako ova konstrukcija
try...except...ŠelseĆ..ŠfinalyĆ...end treba da izgleda tako da mi se
ne prikazuje dotični m.box i da se aplikacija ne zaustavlja?
- mora da je nešto sitno (ili krupno? ;) što meni definitivno promiče...
Unapred hvala na pomoći :)
poz, Guta
pascal.55nlazic,
*> - zašto ovo ne radi? U helpu ima čak isti primer...
Proveri da li si u Options/Environment-Preferences isključio opciju
Break on exception. Inicijalno ona je čekirana, tako da se program prekida
pri svakoj grešci, obradio je ti ili ne.
Ako nije to, javi da mozgamo :)
Pozdrav,
:) Nebojša :)
pascal.56.sima,
║║ RE: Delphi
║║ Šta nije u redu sa sledećim kodom (i verzijama)
Pa nalazi se u temi Pascal a ne Delphi :)
pascal.57guta,
Ops! :))
Nisam ni primetio da je otvorena tema Delphi...
Izvinjavam se cenjenom auditorijumu O:)
poz, Guta
pascal.58postmast,
From: rile@setnet.co.yu (Petar Ristic)
Subject: Font na stampacu
Date: Tue, 10 Oct 1995 23:17:00
Da li je moguce ugraditi YU slova u stampac, cisto softverski?
Rile:)
... All, Do you love TECHNO?
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.59postmast,
From: vojam@setnet.co.yu (Vojislav Mihailovic)
Subject: Font na stampacu
Date: Wed, 11 Oct 1995 13:58:04
* U poruci za All, Petar Ristic je rekao:
PR> Da li je moguce ugraditi YU slova u stampac, cisto
PR> softverski?
Zavisi od stampaca. U neke moze, u neke ne moze. Koji ti imas stampac?
* Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.60postmast,
From: Jugoslav.Stojanov%f122.n103.z38@setnet.setnet.co.yu (Jugoslav Stojanov)
Subject: EVALUATOR IZRAZA
Date: Mon, 09 Oct 1995 16:19:11
Da li neko slucajno ima evaluator izraza + simbolicko diferenciranje
pisano kao unit u pascalu...
---FidoPCB v1.0 [NR]
* Origin: * Fenix BBS, Beograd 011 414-312;404-679 * SetNet: (38:103/122)
pascal.61postmast,
From: Jugoslav.Stojanov%f122.n103.z38@setnet.setnet.co.yu (Jugoslav Stojanov)
Subject: DELPHI I TASK
Date: Mon, 09 Oct 1995 17:07:11
Imam problem sa Delphi-em.
...
x=WinExec('Notepad.exe', ..... );
u x se nalazi handle taska notepad. OK
...
flag=istask(x);
posle ovog dela flag je false. Dakle x nije task. Kako onda da saznam
koji je handle notepada-a???
Probao sam da krenem kroz sve handleove i za svaki pitam istask(),
i uglavnom dobijam razne gluposti.
cu Jujo!
---FidoPCB v1.0 [NR]
* Origin: * Fenix BBS, Beograd 011 414-312;404-679 * SetNet: (38:103/122)
pascal.62postmast,
From: culjko@setnet.co.yu (Boris Dragovic)
Subject: Re: pascal
Date: Thu, 12 Oct 1995 12:17:04
"S> Jel mozda neko zna i moze da mi napise proceduru za zrtanje luka
"S> tacku po tacku bez standardnih graph proc&funkcija.Parametri bi
"S> trebali da budu poluprecnik pocetni i krajni ugao.
"S>
"S> Evo ti primer u kome sam koristio int 10. To znaci da primer nije
"S> za koriscenje, vec samo za ilustraciju. Ako ti treba nesto brze
"S> savetujem ti da pogledas nekoliko poslednjih bojeva casopise: PC - za
"S> crtanje u VESA modovima i Racunari - programiranje vga karte pomocu
"S> registara. Jedini deo koji bi morao da se zameni je DrawPoint. A za to
"S> moze da se koriste registri ili direktni pristup memoriji.
ja imam bolju ideju zasto nebi upotrebili mogucnosti
bezijerove krive , tada bi stvarno dobijali tacku po tacku a i nije
mnogo sporo.....
* Origin: Atlantis ■ WELCOME ■ (38:103/115)
pascal.63postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Tue, 10 Oct 1995 23:24:00 GMT
OS> Ja sam radio neke moje rutine u Pascalu ali su bile prokleto spore :(( Uzeo
OS> i PCL4P ali imao je neke nedostatke (trudim se da ga adaptiram za moje pot
Isprobao sam dosta biblioteka (sto SareVare sto PD) i jedino mi PCL
nije pravila problema sa modemom (citaj: inicijalizacija portova)
BTW, registracija je trivijalna ;) (ako te zanima)
¸> The Borg Cable Co: The subscriber's wishes are irrelevant!
* ŰmÔ/\/\× 1.3 #00 *
pascal.64postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: EVALUATOR IZRAZA
Date: Wed, 11 Oct 1995 12:45:00 GMT
JS> Da li neko slucajno ima evaluator izraza + simbolicko diferenciranje
JS> pisano kao unit u pascalu...
Imas u Racunarima 80 source u Pascalu i u Lispu.
¸> Don't drive too close or I'll flick a booger on you.
* ŰmÔ/\/\× 1.3 #00 *
pascal.65postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: pascal
Date: Thu, 12 Oct 1995 19:45:00
OS>Ja sam radio neke moje rutine u Pascalu ali su bile prokleto spore :(( Uzeo
OS>i PCL4P ali imao je neke nedostatke (trudim se da ga adaptiram za moje potre
OS>pa nisam nista uradio. Inace, video sam 2 knjige okolo to : Dos sistemski po
OS> (nisam siguran, mozda se zvala i : Dos Iznutra) od stranskih autora, a i ne
OS>d Hayes-a. Na zalost bili su skupi :(( i nisam ih kupio :((( (ne vici, 100DM
OS>original od Hayes-a mi je previse :)) )
Knjiga "Serial Communications in C and C++", Mark Goodwin, MIS Press
(ima je u USIS-u Skopje). Sve je prvo teoretski objasnjeno pa su dati
source-ovi u C-u i klase u C++-u. Lako za razumeti i prevesti u
Pascal/Assembler.
Ognen
* OLX 2.1 TD * You have a terminal illness - check your terminal.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.66postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: pascal
Date: Sun, 08 Oct 1995 11:59:00
"S> DPMI program radi kao i BP i BPC mora da bude aktivan neki DPMI
"S>server, bilo da je to QDPMI (koji ima mogucnost virtualne memorije), ili
"S>da se stave dpmi*.* fajle iz Pascala u path.
Hmmmm....Jel' si siguran za ovo ? Ja mislim da se DPMI server ugradjuje
u svaki .EXE preveden za protected mode. Ukoliko je aktivan drugi DPMI
server - bice iskoriscen taj drugi, inace ugradjeni.
Ognen
* OLX 2.1 TD * Software Factory
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.67postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: pascal
Date: Sun, 08 Oct 1995 11:37:00
"N>Da li neko zna nesto o paketu SPX v2.0 ? Gde bih mogao da ga nabavim ?
"N> Cini mi se da se radi o grafici (13x mode, sprajtovi ...) !
"N> Ako znate bilo sta molim da javite.
Ako ne nadjes, jel moze ovo da pomogne (?):
GENUS Microprogramming
1155 Dairy Ashford, Suite 200, Houston, TX 77079,(713) 870-0737
Fax:(713) 870-0288. Prodaju razne pakete za pascal, c i c++ za grafiku,
efekte, sprajtove i slicno. Cene su od $50 do $250.
Ognen
* OLX 2.1 TD * When Rolling Stones are high, are they Rolling Stoned ?
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.68postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: pascal
Date: Sun, 08 Oct 1995 11:40:00
"P>Zna li neko dobru knjigu za Turbo Paskal u kojjoj
"P>skoro sve ima,od verzije 6.0 ili 7.0 ako sadrzi
"P>iza 6.0?
1. Turbo Pascal 6.0 Techniques & Utilities, Neil J. Rubenking,
Ziff-Davis Press
2. Turbo Pascal 7.0 Handbook (zaboravih ostale podatke)
Ognen
* OLX 2.1 TD * You have a terminal illness - check your terminal.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.69postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: pascal
Date: Sun, 08 Oct 1995 12:02:00
"K>Imam jedan problem u vezi turbovizije.Naime javlja mi gresku
"K>pri upisu na tok(stream) i to u obliku STREAM REGISTRATION ERROR.
"K>Ako neko zna , neka javi zasto i kako je otkloniti?
Da bi objekat mogao da bude stream-ovan potrebno je da ga registrujes.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
ŢRegisterType procedure (OBJECTS unit)Ů
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Declaration:
procedure RegisterType(var S: TStreamRec);
Function:
Registers an object type with Turbo Vision's streams, creating an entry
in a linked list of known objects. Streams can only store and return
these known object types. Each registered object needs a unique stream
registration record, of type TStreamRec.
TStreamRec type (OBJECTS unit)
Declaration: TStreamRec = record
ObjType: Word;
VmtLink: Word;
Load: Pointer;
Store: Pointer;
Next: Word;
end;
type
TCalculator = object(TDialog)
constructor Load(var S: TStream);
procedure Store(var S: TStream);
...
end;
const
RCalculator: TStreamRec = (
ObjType: 2099;
VmtLink: Ofs(TypeOf(@TCalculator)^);
Load: @TCalculator.Load;
Store: TCalculator.Store);
begin
RegisterType(RCalculator);
...
end;
Pozdrav,
Ognen
* OLX 2.1 TD * Software Factory
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.70postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: pascal
Date: Sun, 08 Oct 1995 11:54:00
"J>Za njega nisam cuo, ali mogu da ti ponudim ANIVGA koji radi
I uzasno je spor i trzav...
Ognen
* OLX 2.1 TD * When Rolling Stones are high, are they Rolling Stoned ?
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.71postmast,
From: vladimir.sitnikovski@informa.mk (Vladimir Sitnikovski)
Subject: pascal
Date: Sun, 15 Oct 1995 03:21:00 GMT
Vg> MENE ZAnima da li je neko natero onaj commx da radi?
Vg> Postoji li neki preimer koji pokazuje kako se iz pascala koordinira
Vg> rad modema itd..
Predji na Cliper, C i assembler, modem ti je u rukama, i radi
sto god hoces, ima da ga nateras bukvalno da propeva :)
Rgds, Vladimir Sitnikovski Republic of Macedonia +389(0)91-318618
Sitnik
... Catch the Blue Wave!
___ Blue Wave/QWK v2.12
pascal.72postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Sun, 15 Oct 1995 16:01:00 GMT
VS> Vg> MENE ZAnima da li je neko natero onaj commx da radi?
VS> Vg> Postoji li neki preimer koji pokazuje kako se iz pascala koordinira
VS> Vg> rad modema itd..
VS> Predji na Cliper, C i assembler, modem ti je u rukama, i radi
VS> sto god hoces, ima da ga nateras bukvalno da propeva :)
Moze on da peva i iz GWBASIC-a ili FORTRANA 77 ;)
Problem je u kvalitetnim rutinama za komunikaciju, a ne u okruzenju
u kome se iste nalaze. Sto se tice pascala, PCL fino radi posao.
¸> That night they got me locked in a row called death, the governor,
¸> that muthafucka wants my last breath.
* ŰmÔ/\/\× 1.3 #00 *
pascal.73postmast,
From: rile@setnet.co.yu (Petar Ristic)
Subject: Re: pascal
Date: Sun, 15 Oct 1995 18:10:00
>> Srdjan Dakic nekad rece, a ja ga sada citiram <<
SD> BTW, registracija je trivijalna ;) (ako te zanima)
Kako se "registruje"?
Rile:)
... TECHNO is more then music, TECHNO is life style!!!
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.74postmast,
From: pedja.ulic@panon.ns.ac.yu (Pedja Ulic)
Subject: Detektovanje Windows-a?
Date: Mon, 16 Oct 1995 14:04:00 GMT
Da li neko ima ideju kako iz DOS programa koji radi
u DOS PROMPT-U Windows-a 3.1X procitati serijski broj diska(DOS-ov)?
Posao se ne odradjuje preko INT 21h, funkcijom 69h.
Isto pitanje stoji i za bilo koji Windows program.
Ako neko ima ideju ili je daj boze problem resio, please help!
... Catch the Blue Wave!
___ Blue Wave/QWK v2.12
pascal.75sjocic,
Kako izvesti da signal 'RING' sa modema dođe do programa u Pascalu ?
Evo u čemu je ideja,
Hoću da napravim malo bolju sekretaricu (od Cirrusa) uz pomoć SB16
karte i modema. Modem bi služio samo za detekciju Ring-a, a posle
je stvar do programa. Dakle trebao bi da bude sledeći postupak:
1. Tel. zvoni i dolazi signal sa modema (RING)
2. Program šalje neki signal (impuls) na neki od externih Com portova
Taj signal bi recimo preko optokaplera uključivao relej, a ovaj
vezu SB-> tel. linija.
3. SB emituje WAV poruku (pozivom kom.linije sa PLAY), a zatim počinje
recording proces u izabranom modu. (problem je i ograničiti vreme
snimanja na recimo 30 sec. pošto se program deaktivira samo sa ESC).
Ima li nekih ideja (predloga) na ovu temu ?
pascal.76guta,
Tako je! Break on exceptions rešava problem... :) A ja se ubi
pišući konstrukcije o 'fatanju grešaka na milion načina. :)))
Tako mi i treba kad ne gledam pažljivo, a i ko bi pretpostavio.
U svakom slučaju, blagodarim na pomoći.
poz, Guta
pascal.77.sima,
║║ Hmmmm....Jel' si siguran za ovo ? Ja mislim da se DPMI server
║║ ugradjuje u svaki .EXE preveden za protected mode. Ukoliko je
║║ aktivan drugi DPMI server - bice iskoriscen taj drugi, inace
║║ ugradjeni.
Ne, to je pogrešno. VCPI server je ugradjen u EXE i možda neki bolji
DPMI, ali Borlandovi nisu. Probaj da startuješ BP, BPC, BC, BCC, a da
pre toga obrišeš ili skloniš dpmi*.* iz njihovih bin direktorijuma:
Failed to locate DPMI server (DPMI16BI.OVL)
Ovo se dobije.
pascal.78icile,
> Kako izvesti da signal 'RING' sa modema dode do programa u
> Pascalu ?
Postoje dva nacina da se ovo uradi:
1. Preko poruka koje modem vraca korisniku. Sa COM porta 'skida' se string
koji modem salje korisniku. Ako je taj string RING, to znaci da telefon
zvoni. Pre nego sto se ovo uradi, trebalo bi inicijalizovati modem i
postaviti ga u stanje cekanja, i to Hejs komandama. Onda preostaje cekanje
na dati signal.
2. Testiranjem odgovarajuceg bita tacno odredjenog registra UART kola, koje
je zaduzeno za serijsku komunikaciju. Preporucujem ovaj nacin!
Uz poruku saljem zip-fajl koji sadrzi dva fajla:
COMPORT2.PAS - koji kad se prevede (sto je obavezno) daje .TPU fajl, koji
ces da ukljucis u direktorijum sa ostalim .TPU-ovima
RINGDET.PAS - kratak demonstracioni programcic, prokomentarisan; ukoliko
nesto ipak nije jasno, ostavi mail!
A, ako jos zelis da se detaljnije upoznas kako tvoj modem radi i kako mozes
da ga programiras, preporucujem knjigu
Aleksandra Radovanovica: 'Modemske komunikacije'
> recording proces u izabranom modu. (problem je i ograniciti
> vreme snimanja na recimo 30 sec. posto se program deaktivira
> samo sa ESC).
Objasni malo bolje u cemu je problem, jer samo ogranicavanje vremena mozes
da izvedes na sledeci nacin: procitas jednom sistemsko vreme (na pocetku
snimanja) i onda ga citas stalno (dok se u pozadini odvija snimanje). Oduzimas
ta dva vremena. Kad razlika postane veca ili jednaka 30 sekundi, prekidas
snimanje. Naravno, ovde ima malih problema pri oduzimanju dva vremena, ali to
moze da se resi, ukoliko je to jedini problem.
pascal.79icile,
Evo fajla koji bi trebalo da bude vezan na neku drugu poruku, ali posto sam
ovde novi, nemam pojma kako se to radi!!! Mozda mi neko objasni. Poruka je
upucena coveku koji se ovde zove SJOCIC, a u vezi sa testiranjem RING signala
modema. Uz poruku ce valjda biti zakacen fajl RINGDET.ZIP
ringdet.zippascal.80vasic,
> Kako izvesti da signal 'RING' sa modema dođe do programa u Pascalu ?
Ako ti ne treba ništa drugo sem da detektuješ zvono, onda možeš da
izbegneš pisanje komunikacionog programa i samo da čitaš Modem Status
Register (3FE za COM1 ili 2FE za COM2). Njegov bit 6 je Ring Indicator.
> 3. SB emituje WAV poruku (pozivom kom.linije sa PLAY), a zatim počinje
> recording proces u izabranom modu. (problem je i ograničiti vreme
> snimanja na recimo 30 sec. pošto se program deaktivira samo sa ESC).
Ako dotični program čita tastaturu normalno (preko BIOS-a), mogao bi se
napraviti rezidentni program koji će posle 30s da mu ubaci jedno ESC u
bafer. U stvari, mogao bi i tvoj program (onaj koji je exec-utirao
recorder) da se nakači na int 8 i odradi isti posao.
pascal.81dejanr,
>> Da li neko ima ideju kako iz DOS programa koji radi
>> u DOS PROMPT-U Windows-a 3.1X procitati serijski broj diska(DOS-ov)?
>> Posao se ne odradjuje preko INT 21h, funkcijom 69h.
Au... probao sam, i zaista ne radi... što je "najlepše", par mojih programa
tako čita serijski broj diska, ima da bude veselo kad njihovi korisnici
instaliraju Windows 95 :((
Moraće da se kopa po dokumentaciji :( Ako je neko to već uradio, neka
javi!
pascal.82postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: DiskSN-Windows?
Date: Tue, 17 Oct 1995 22:25:00 GMT
PU> SD> kome se nalazi longint koji predstavlja serijski broj. Sad da me
PU> (longint je sa pocetkom na offsetu 39 u BOOT SECTOR-u diska).
PU> Da li si koristio INT25? Ili TP (7.0) ima funkciju koja radi absread?
Ne, ja sam koristio uputstvo za upotrebu. :)) Ozbiljno: 'Programmers
Reference for MS-DOS'
Mislim - znaci postojim, da TP nema funkciju koja radi absread, ali
je trivijalno napisati je uz pomoc asm direktivice.
PU> BIOS poziv INT13,2 ne koristim jer ne znam kako se
PU> ponasa sa LBA diskovima (a i to je read kojem moram da prosledjujem
PU> logicke parametre koji se razlikuju od diska do diska).
To ti je dobar rezon. Da se ne bi petljao sa tabelom particija i da
odredjujes gde je prvi LOGICKI sektor. Za razliku od DOS-a, BIOS-u
saljes FIZICKE parametre koji kazu 'procitaj mi sa tog sektora na
tom cilindru, tom glavom, to i to'
¸> As funny as a tombstone.
* ŰmÔ/\/\× 1.3 #00 *
pascal.83zormi,
* Au... probao sam, i zaista ne radi... što je "najlepše", par mojih programa
* tako čita serijski broj diska, ima da bude veselo kad njihovi korisnici
* instaliraju Windows 95 :((
*
* Moraće da se kopa po dokumentaciji :( Ako je neko to već uradio, neka
* javi!
Kopali smo po SDK i DDK, ali nigde odgovarajućeg API-ja za slične informacije.
Izgleda da Win95 prilično "maskira" hardver za direktni pristup, a tek NT...
pascal.84atech,
>>> Da li neko ima ideju kako iz DOS programa koji radi
>>> u DOS PROMPT-U Windows-a 3.1X procitati serijski broj
>>> diska(DOS-ov)? Posao se ne odradjuje preko INT 21h, funkcijom
> 69h.
> Au... probao sam, i zaista ne radi... sto je "najlepse", par
> mojih programa tako cita serijski broj diska, ima da bude
> veselo kad njihovi korisnici instaliraju Windows 95 :((
> Morace da se kopa po dokumentaciji :( Ako je neko to vec
> uradio, neka javi!
1. Upotreba nedokumentovanih dos funkcija nikad nije bila preporucljiva. ;)
2. Vecina korisnika koristi ovaj int da bi procitala serijski broj harda
koji se dobija pri formatiranju diska i da bi ga kasnije upotrebila
za identifikaciju u cilju vezivanja softvera za hard. O tome koliko
je ovaj nacin identifikacije 'neozbiljan' najbolje govori cinjenica da
se isti broj moze promeniti po volji upotrebom ovog istog interapta
(21,69). Igrarije...:)
3. Ovaj int je predvidjen da daje podatke samo pod fat file sistemom i
bio je novina dos-a 4.0
4. Ako neko zeli ozbiljno da zastiti svoje programe bilo bi dobro da
nabavi softver za zastitu (npr. PCG) :)
pascal.85dejanr,
>> 1. Upotreba nedokumentovanih dos funkcija nikad nije bila
>> preporucljiva. ;)
Jedino nevolja što je ovaj dokumentovan - videti Microsoft Developers
Network CD-ROM. Moram da potražim neki noviji, moj je iz 94 godine, možda
su nešto menjali.
>> 2. Vecina korisnika koristi ovaj int da bi procitala serijski broj harda
>> koji se dobija pri formatiranju diska i da bi ga kasnije upotrebila
>> za identifikaciju u cilju vezivanja softvera za hard. O tome koliko
>> je ovaj nacin identifikacije 'neozbiljan' najbolje govori cinjenica da
>> se isti broj moze promeniti po volji upotrebom ovog istog interapta
>> (21,69). Igrarije...:)
Za 99% korisnika - sasvim dovoljna zaštita, a onaj 100-ti procenat će i
onako da razbije bilo kakvu zaštitu.
>> 3. Ovaj int je predvidjen da daje podatke samo pod fat file sistemom i
>> bio je novina dos-a 4.0
Pa da, ali i Win95 radi pod FAT-om. Što je najlepše, komandom DIR se
dobija broj, znači da postoji poziv kojim se čita.
pascal.86atech,
> Jedino nevolja sto je ovaj dokumentovan - videti Microsoft
> Developers Network CD-ROM. Moram da potrazim neki noviji, moj
> je iz 94 godine, mozda su nesto menjali.
Evo sta kaze HelpPC:
INT 21,69 - Get/Set Disk Serial Number (Undocumented DOS 4+)
Int Lista koju posedujem (nije bas nova) govori da je ista funkcija
'internal' za dos 4.00. U svakom slucaju ovaj int ne daje podatke za
mrezne diskove (Mislim da ga podrzava jedino novel od verzije 2.0+).
Mozda je zanimljivo napomenuti da se ovaj broj formira pri formatiranju
harda na osnovu aktuelnog datuma i vremena.
>>> softvera za hard. O tome koliko je ovaj nacin identifikacije
>>> 'neozbiljan' najbolje govori cinjenica da se isti broj moze
>>> promeniti po volji upotrebom ovog istog interapta (21,69).
> Igrarije...:)
> Za 99% korisnika - sasvim dovoljna zastita, a onaj 100-ti
> procenat ce i onako da razbije bilo kakvu zastitu.
Moje iskustvo je sledece: vecina korisnika ne odnosi se prema
programima onako kako to prodavac ocekuje. To sto korisnik nema
pojma o racunarima ne znaci da nece otudjiti program. U svakom
trenutku on moze da nadje nekog ko ce da obavi taj posao umesto
njega! Na nasem trzistu softvera (ako isto u opste i postoji) vlada
prava anarhija ali ce pre ili kasnije biti uvedeni zakoni koji ce
debelo kaznjavati piratizaciju. Programerski rad (kao i vecina
intelektualnih poslova uopste) u ovoj zemlji vec duze vreme nije na
ceni. Ja kroz svoj rad na polju zastite softvera dajem skroman
doprinos ali mislim da su potrebni jaci rezovi koji bojim se, u ovom
trenutku ne odgovaraju mnogima pa ce do pravih promena veoma tesko
dolaziti. Korak napred predstavlja predlog zakona (koji inace i sam
ima dosta nedostataka ali na njemu treba raditi) a neizostavno je
i formiranje odredjene organizacije na nivou zemlje koja ce voditi
racuna o interesima programera, normama i standardima na polju
komjuterskog softvera. Koliko znam bilo je nekoliko bezuspesnih
pokusaja ali to ni u kom slucaju ne znaci da treba odustati.
> Za 99% korisnika - sasvim dovoljna zastita, a onaj 100-ti
> procenat ce i onako da razbije bilo kakvu zastitu.
Ovaj tip zastite je i previse banalan za svakog ko se i malo razume
u programiranje a da ne govorim za nesto 'naprednije' tako da bi
onaj procenat 99% ipak smanjio na nekih 30%. Ozbiljni prozivodjaci
softvera se ni u kom slucaju ne bi trebali igrati sa ovim stvarima.
Steta moze biti neprocenjiva a citav rad na projektu ponekad
uzaludan. Ni jedan zakon niti odredbe posle toga nece vratiti
izgubljen novac. Testirao sam zastite vecine firmi koje se
oglasavaju u PCM-u bilo da se radilo samo o soft ili o hard-soft
zastiti (razne vrste lockova). Rezultate ne bih objavljivao, ali sa
velikom sigurnoscu mogu da tvrdim da je moguce odraditi zastitu koja
ce sa velikom sigurnoscu zaustaviti vecinu potencijalnih provalnika.
Poznata je stvar da ni jedna zastita nije savrsena i da je svaka
teorijski slaba ali to i dalje ne znaci da ce svaka zastita pasti.
>>> 3. Ovaj int je predvidjen da daje podatke samo pod fat file
>>> sistemom i bio je novina dos-a 4.0
>
> Pa da, ali i Win95 radi pod FAT-om.
Znam. Podatak sam spomenuo zbog onih koji koriste neki drugi
file sistem a imaju nameru da koriste 21,69.
> Sto je najlepse, komandom
> DIR se dobija broj, znaci da postoji poziv kojim se cita.
Sigurno. Samo mislim da nije u pitanju samo jedan poziv. Za 15-tak
minuta kopanja moglo bi se doci do algoritma.
pozdrav.
pascal.87sjocic,
Za zakasnjenjem zahvaljujem se icile-tu i vasic-u na odgovorima! :)
Imao bih jos jedno pitanje:
Navedeni program 'ringdet' radi Ok, ali on treba da poziva
dole navedeni rezidentni program Timer. Kako izvesti da
program salje 'ESC' i time prekine izvrsavanje drugog programa ?
Kako izvesti da se program ukloni iz memorije po njegovom
izvrsenju , tj. posto je ubacio ESC ?
{$M 2000,0,0}
{$R-,S-,I-,D+,F+,V-,B-,N-,L+}
Program Timer;
Uses dos,crt;
Const
TimerInt=$08;
Timelimit:Word=100;
Var
regs:registers;
Cnt:word;
Oldtimervec:Pointer;
i:Real;
Code:Word;
prekid:boolean;
{**************************************}
Procedure STI;
Inline($FB);
Procedure CLI;
Inline($FA);
Procedure CallOldint(Sub:pointer);
Begin
Inline($9C/$FF/$5E/$06);
end;
Procedure Clock(Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP:WORD);interrupt;
begin
Calloldint(oldtimervec);
if(Cnt>timelimit) then
begin
{ Ovde program treba da salje 'ESC' i prekida drugi program }
{ ----------------------------------------------------------------}
prekid:=true;cnt:=cnt-2;
end
else
if not(prekid) then inc(Cnt,1);
STI;
end;
{**************************************}
Begin
GetIntVec(timerint,oldtimervec);
Setintvec(timerint,@Clock);
Cnt:=0; prekid:=false;
Keep(0);
end.
pascal.88icile,
-> A, ako jos zelis da se detaljnije upoznas kako tvoj modem radi i kako
-> mozes da ga programiras, preporucujem knjigu
-> Aleksandra Radovanovica: 'Modemske komunikacije'
Kakav sam covek? Replika na sopstvenu poruku. Primetio sam da sam pogresio
pri navodjenju naziva knjige Aleksandra Radovanovica. Knjiga se u stvari zove:
'PC modemske komunikacije'.
pascal.89icile,
-> dole navedeni rezidentni program Timer. Kako izvesti da
-> program salje 'ESC' i time prekine izvrsavanje drugog programa ?
-> Kako izvesti da se program ukloni iz memorije po njegovom
-> izvrsenju , tj. posto je ubacio ESC ?
Mislim da bi bilo dobro da postoji JEDAN tvoj program koji ce:
1. Detektovati zvono modemom (izgleda da je za ovu svrhu bolje ono sto je
predlozio vasic, jer ono sto sam ja napisao vise moze da se upotrebi u druge
svrhe, npr. kad se pise nesto ozbiljnije za modem; ovde to nema potrebe, pa se
stvar bespotrebno komplikuje),
2. Ubaciti onaj Hendler za INT 8 koji si napisao,
3. Startovati program Recorder.
Kada prodje vreme koje je predvidjeno, Hendler ce poslati u bafer tastature
kod tastera ESC, koji ce prekinuti program Recorder. Tada ce on vratiti
kontrolu tvom jedinom programu, i tada mozes da ponovis postupak.
Primer tog programa saljem ti uz ovu poruku. Nadam se da sad nece biti
problema sa tim u vezi! Program koji sam ja napisao jeste malo jednostavniji,
ali mislim da moze da se provali glavna ideja, koju sam ovde pokusao da opisem.
Ako bude bilo kakvih problema, javi se!
int8.zippascal.90postmast,
From: rdejan@fon (Dejan Rudic)
Subject: Re: pascal
Date: Sat, 21 Oct 1995 08:19:47 GMT
Sj> Kako izvesti da program salje 'ESC' i time prekine
Sj> izvrsavanje drugog programa ? Kako izvesti da se program
Sj> ukloni iz memorije po njegovom izvrsenju , tj. posto je
Sj> ubacio ESC ?
Najbolje (?) i najprljavije :) resenje je da pre izlaza
(recimo u exitproc) staviä u buffer za tastaturu ESC. Sad
ne znam napamet kako se to radi, ali ima u techhelp-u, a
ako ni on ne pomogne, mail-ni me pa cemo da sredimo stvar...
Pozdrav, Dejan
---
■ Blue Wave/QWK v2.20 [NR] ■
pascal.91postmast,
From: Mihajlo.Savic%f135.n135.z38@setnet.setnet.co.yu (Mihajlo Savic)
Subject: Re: pascal
Date: Wed, 18 Oct 1995 02:19:48
*** QUOTE : Srdjan Dakic ***
SD> BTW, registracija je trivijalna ;) (ako te zanima)
Zanima mene pa me se sjeti u mail ili ovdje ...
C-Ya, BadaBoom
... A ti bi TAG
* Origin: Sveti Sava BBS Prijedor 079 11 629 SETNet: (38:135/135)
pascal.92postmast,
From: vladimir.sitnikovski@informa.mk (Vladimir Sitnikovski)
Subject: Detektovanje Windows-a?
Date: Wed, 18 Oct 1995 06:36:00 GMT
-=> Quoting Pedja Ulic to All <=-
PU> Path: medi.durlan.co.yu!durlan!panon!pedja.ulic
PU> From: pedja.ulic@panon.ns.ac.yu (Pedja Ulic)
PU> Newsgroups: yu.prog.pascal
PU> Subject: Detektovanje Windows-a?
PU> Message-ID: <951016170112134@panon.ns.ac.yu>
PU> Date: Mon, 16 Oct 1995 14:04:00 GMT
PU> Distribution: world
PU> Organization: Panon BBS, Novi Sad
PU> Lines: 12
PU> Da li neko ima ideju kako iz DOS programa koji radi
PU> u DOS PROMPT-U Windows-a 3.1X procitati serijski broj
PU> diska(DOS-ov)? Posao se ne odradjuje preko INT 21h, funkcijom
PU> 69h.
PU> Isto pitanje stoji i za bilo koji Windows program.
PU> Ako neko ima ideju ili je daj boze problem resio, please help!
Pre startovanja Win-a, ubaci ga redirekcijom u neku datoteku,
i sifrovaj ga u polje, a kad udjes u Win-u, reci programu pre
startovanja da procita datoteku i desifruje polje, da uporedi
i da krene ili stane. :)))
Ovo moze da ti posluzi i za diskove koji nemaju serijski broj,
nego samo labelu diska kao sto nekad moze WFW to da uradi i sa
diskovima sa serijskim brojem.
Nadam se da sam ti pomogao.
Sitnik
... Rgds, Vladimir Sitnikovski, Republic of Macedonia, +389(0)91-318618
___ Blue Wave/QWK v2.12
pascal.93postmast,
From: pedja.ulic@panon.ns.ac.yu (Pedja Ulic)
Subject: HDD Serial nbr.
Date: Fri, 20 Oct 1995 12:38:00 GMT
Problem i dalje stoji :(
Serijski broj diska (C drajva) moguce je procitati pomocu INT 25,69, i
to radi bez problema, u DOS-u !!!
U DOS Prompt-u vraca nevidjene gluposti (preusmeren interapt), a to mi
nikako ne odgovara.
Drugo resenje JESTE poziv INT 13 ili INT 25 ali TPascal NEMA nista poput
AbsRead :(((
Moguce je odraditi poziv INT 25 ali zbog ocajne dokumentacije nije mi bas
najjasniji format podataka koje treba proslediti kroz DX:BX.
Pokusao sam po knjizi, ali rezultat je BlackScreenOfDeath ;)
Problem je konkretno u strukturi iz BX-a i u vrednosti u DX-u (debagirao
sam programcic koji sam napisao u BC-u i koji radi posao, neposredno pre
INT 25 je DX = FDF2 za nulti sektor,po knjizi je DX = 0).
Zadnja opcija je da me neko prosvetli povodom uvezivanja C source-a
(funkcijica koja vraca long) u Pascal program (molim i primer :)))
Unapred a do groba zahvalan sam
Pedja
... This tagline is SHAREWARE! To register, send me $10
___ Blue Wave/QWK v2.12
pascal.94postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Sifre
Date: Sat, 21 Oct 1995 02:48:00 GMT
DN> program rnd_pass_gen (input, output);
DN> var a,b,c: integer; s: char;
DN> Begin
DN> Repeat
DN> c:=random(36)+1;
DN> if c=1 then s:='z';
DN> if c=2 then s:='x';
DN> ...
DN> if c=36 then s:='0';
DN> write(s);
DN> b:=b+1;
DN> Until a=b
DN> end.
PROGRAM RndPassGen;
FUNCTION GenPassword(Len:INTEGER) : STRING;
CONST
C = 'zxcvbnmasdfghjklqwertyuiop1234567890';
VAR
I : INTEGER;
S : STRING;
BEGIN
S := '';
Randomize();
FOR I := 1 TO Len DO
S := S + C[Random(Length(C))+1];
GenPassword := S;
END;
VAR
L : INTEGER;
BEGIN
Write('Unesi duzinu sifre: ');
ReadLn(L);
WriteLn(GenPassword(L));
END.
---
Jobrati paznju na ono CONST... to ti zamenjuje (izmedju ostalog i)
onolike IF-ove. A i flexibilnije je jer mozes da prosirujes spisak
mogucih znakova u sifri prostim navodjenjem u "tabelu" znakova, odnosno
string C.
¸> God made the cat so that we, for a moment, might caress the tiger.
* ŰmÔ/\/\× 1.3 #00 *
pascal.95postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: HDD Serial nbr.
Date: Sat, 21 Oct 1995 04:00:00 GMT
PU> Moguce je odraditi poziv INT 25 ali zbog ocajne dokumentacije nije mi bas
PU> najjasniji format podataka koje treba proslediti kroz DX:BX.
Nije DX:BX nego DS:BX je adresa bafera za ulaz/izlaz. DX oznacava od kog
sektora treba da se cita. Kako si ga napunio adresom bafera, procitanim
pogresnim podacima si verovatno sahranio Data Segment. :)
PROCEDURE AbsRead(Disk:BYTE; Start:WORD; Count:WORD; VAR Buffer);
ASSEMBLER;
ASM
MOV AL,Disk
MOV CX,Count
MOV DX,Start
PUSH DS
LDS BX,Buffer
INT 25h (* INT 26h za AbsWrite, sve ostalo je isto *)
POP DS
END;
PROCEDURE GetSerialNum(Disk:BYTE; VAR SerialNum:LONGINT);
VAR
Buffer : ARRAY [0..511] OF BYTE;
BEGIN
AbsRead(Disk,0,1,Buffer); (* Disk: A=0, B=1,... *)
SerialNum := Buffer[.?.] (* znas vec gde je ... *)
END;
¸> Preserve an endangered species: Female Sysops
* ŰmÔ/\/\× 1.3 #00 *
pascal.96postmast,
From: pedja.ulic@panon.ns.ac.yu (Pedja Ulic)
Subject: Re: HDD Serial nbr.
Date: Sun, 22 Oct 1995 10:52:00 GMT
-=> Quoting Srdjan Dakic to Pedja Ulic <=-
SD> BEGIN
SD> AbsRead(Disk,0,1,Buffer); (* Disk: A=0, B=1,... *)
SD> SerialNum := Buffer[.?.] (* znas vec gde je ... *)
SD> END;
Srdjane ono ne radi (cf = 1, ah=2 BAD ADRESS MARK, al=7 INVALID MEDIA TYPE)!
Mislim da je problem u CX-u (onaj DX:BX je bio moj lapsus).
INT 25 - Absolute Disk Read
AL = logical drive number (0=A:, 1=B:, 2=C:, ...)
CX = number of sectors to read
----> = -1 if DOS 4.x (control block pointer is in DS:BX)
----> DX = starting logical sector number (see below for DOS 4.x+)
DS:BX = pointer to data buffer
----> = pointer to control block (DOS 4.x+, see below)
Ovo ^ se mora napuniti, a ovo je format:
Control Block Format (DOS 4.x):
Offset Size Description
00 dword starting sector
04 word number of sectors to read
06 dword pointer to buffer
Saljem i stanja registara neposredno pre poziva INT 25 iz proograma
koji sam napisao u C-u:
ax = 0002 ok
bx = FFD2 adresa na koju upisuje nesto
cx = FFFF -1
dx = FFF0 !!??!! ovo mi nije jasno, ali se bojim da on preracunava
logicki br. sektora u fizicki br. i obrnuto (u pozivu f-je je 0-ti sektor
a pre interapta je FFF0 u dx-u)
Ovo se prethodno puni preko INT 21,32 (Get Drive Parameter Table) tako da
jednostavno prosledjivanje adrese bafera ne radi pod DOS-ovima preko 4.x
... Great INQUISITOR is coming for YOU
___ Blue Wave/QWK v2.12
pascal.97violator,
Prvo pitanje... :) maÜala :) Dakle kako pokrenuti funkciju readkey? PiÜe da
mu treba WinCrt unit, koji nemam :(. A u helpu ima opis te funkcije. BTW, da li
ima neka funkcija koja je ekvivalent INKEY$-u iz basic-a, a da radi na onom
TIM-ovom pascalu (TP 2.0 ili 3.0, koji ni nema unit-e :( )
pascal.98zeljkoj,
> mu treba WinCrt unit, koji nemam :(. A u helpu ima opis te
> funkcije. BTW, da li ima neka funkcija koja je ekvivalent
> INKEY$-u iz basic-a, a da radi na onom TIM-ovom pascalu (TP 2.0
> ili 3.0, koji ni nema unit-e :( )
Nije to TIM-ov Pascal, to je Borlandov Turbo Pascal 2.0 for CP/M, kompatibilan
sa istom verzijom za DOS. :) Nema ekvivalenta funkcije INKEY$ iz BASIC-a.
Getkey (ili tako nekako :) je nešto kao INPUT$(1).
pascal.99postmast,
From: gandalf@setnet.co.yu (Knezovic Bojan)
Subject: UPOMOC!!!
Date: Thu, 19 Oct 1995 00:14:02
PR> Ima li neko TXT o programiranju Sound Blastera?
Errr, imam ja jedan unit za blaster ako te zanima(sors ima cca
10 kb). Mogu da ti ga okacim ili u konf ili na mail, ali je
najbolje da se ti meni javis na mail jerbo je to deo jedne vece
biblioteke raznih stvari, a ako koristis TP, veruj mi, bice ti od
velike koristi :)
Khmm, kada bolje razmislim evo ti ga pa ako ti se dopadne ima
jos:
-------------------------------CUT HERE-----------------------
{---------------------------------------------------------------------------
Unit SBVoice (v1.10) For Turbo Pascal 6.0
For interfacing With the SoundBlaster's digitized voice channel.
Copyright (c) 1991, Amit K. Mathur, Windsor, Ontario.
By: Amit K. Mathur
3215 St. Patrick's Drive
Windsor, Ontario
N9E 3H2 CANADA
Ph: (519) 966-6924
Networks: RIME(tm) R/O ->WinDSor, ILink (Shareware), NA-Net (Gaming),
WWIVNet (#198@5950), or direct on NorthSTAR (519)735-1504.
These routines are released to the public domain. However I will gladly
accept contributions towards further development of this and other products.
Please send any changes or improvements my way. and I'm interested in
other SoundBlaster utilities and Programming tools. Thanks in advance.
--------------------------------------------------------------------------}
{$O+,F+}
{ Allow this Unit to Be Overlayed (doesn't affect Compilation if you decide
not to overlay it), and Force Far calls. }
Unit SBVoice;
Interface
Uses MemAlloc; { Memory Allocation Proc }
Var
{$ifNDEF NoSBVoiceArray} { to use your own }
SoundFile: Array[1..64000] of Byte; { whatever size you want }
{$endif}
sgSBDriver, ofSBDriver: Word; { seg and ofs of Driver }
SBDriver: Pointer; { Pointer to the driver }
StatusWord: Word; { stores SB status }
SBFound: Boolean; { whether Init worked }
Procedure loaddriver(fi:String);
{ Loads CT-VOICE.DRV into memory. 'fi' is the path to the driver. }
Procedure closedriver;
{ Clean up routine. not Really necessary if your Program is over. }
Procedure loadvoice(f:String;start,size:Word);
{ Load 'f' into memory. Start is the start of the area within
'f' to load and size is the amount to laod. if you set size to 0
then it will load the entire File. }
Function sb_getversion:Integer;
{ Get the version number of the CT-VOICE.DRV
Returns the Version number }
Function sb_init:Integer;
{ Initialize the SoundBlaster. Call this right after load driver, unless
you have to change the BaseIOAddress or Interrupt number and haven't
changed the CT-VOICE.DRV File itself.
Returns: 0 - no problem
1 - Sound card failiure
2 - I/O failiure
3 - DMA interrupt failiure }
Procedure sb_output(sg,os:Word);
{ Output the digitized Sound. You must load the Sound first!
sg and os are the segment and offset of either SoundFile or whatever
Array you use to store the Sound. if you use a .VOC File then call
With 26 added to the offset. }
Procedure sb_setstatusWord(sg,os:Word);
{ Sets the location of the status Word. This is the third thing you should
do, after loading the driver and initializing it.
The StatusWord will contain $0FFFF if input/output is in output, and
0 when it's done. It will also hold the values of the markers in voice
Files if any are encounterred, allowing you to coordinate output with
your Programs. }
Procedure sb_speaker(mode:Word);
{ Set the speaker on/off. off is mode 0, and On is anything else. This
is the fourth thing you should do in your initialization. }
Procedure sb_uninstall;
{ Uninstall the driver from memory. Used by CloseDriver. }
Procedure sb_setIOaddress(add:Word);
{ Override the IOaddress found inside the CT-VOICE.DRV File. Add is the
new IO address. }
Procedure sb_setinterruptnumber(intno:Word);
{ Allows you to override the Interrupt number in the driver. IntNo is your
new interrupt number (3, 5, 7 or 9). }
Procedure sb_stopoutput;
{ Stops the output in progress }
Function sb_pauseoutput: Integer;
{ PaUses the output in progress.
Returns: 0 - success
1 - fail }
Function sb_continueoutput: Integer;
{ Continues a paused output.
Returns: 0 - success
1 - fail (nothing to continue) }
Function sb_breakloop(mode:Word): Integer;
{ Breaks out of the currect output loop.
Modes: 0 - continue round, stop when done
1 - stop immediately
Returns: 0 - success
1 - not in loop }
Procedure sb_input(highlength,lowlength,seginputbuff,ofsinputbuff:Word);
{ Input digitized Sound.
HighLength: The high Byte of the length of the input buffer.
LowLength: The low Byte of the length of the input buffer.
SegInputBuff: The Segment of the start of the input buffer.
ofsInputBuff: The offset of the start of the input buffer. }
Procedure sb_setuserFunction(segaddress,ofsaddress:Word);
{ Sets up a user Function that the SB calls when it encounters a new data
block. It must perForm a Far ret, preserve DS,DI,SI and flag register.
Clear Carry flag if you want the driver to process the block, or set it
if your routine will. It must be clear if the block Type is 0, that
is the terminate block.
SegAddress is the segment of your user Function in memory.
ofsAddress is the ofset of your user Function in memory. }
Implementation
Uses Dos;
Procedure Abort(s:String);
begin
Writeln('The Following Error Has Occurred: ',s);
Writeln('Remedy and try again. We apologize For any inconvenience.');
halt(1);
end;
Procedure loaddriver(fi:String);
Var f: File;
k: Integer;
t: String[8];
begin
assign(f,fi+'CT-VOICE.DRV');
{$I-} Reset(f,1); {$I+}
if Ioresult <> 0 then
Abort('Cannot Open '+fi+'CT-VOICE.DRV');
blockread(f,Mem[sgSBDriver:ofSBDriver],Filesize(f));
close(f);
t:='';
For k:=0 to 7 do
t:=t+chr(Mem[sgSBDriver:ofSBDriver+k+3]);
if t<>'CT-VOICE' then
abort('Invalid CT-VOICE Driver!');
end;
Procedure closedriver;
begin
sb_uninstall;
if dalloc(sbdriver)=0 then
abort('Uninstall Error!');
end;
Procedure loadvoice(f:String;start,size:Word);
Var fi: File;
k: Word;
begin
assign(fi,f);
{$I-} Reset(fi,1); {$I+}
if Ioresult <> 0 then
abort('Cannot Open '+f+'!');
k:=0;
seek(fi,start);
if size=0 then size:=Filesize(fi);
blockread(fi,Mem[seg(SoundFile):ofs(SoundFile)],size);
close(fi);
end;
Function sb_getversion: Integer; Assembler;
Asm
push bp
mov bx,0
call SBDriver
pop bp
end;
Procedure sb_setIOaddress(add:Word); Assembler;
Asm
push bp
mov bx,1
mov ax,add
call SBDriver
pop bp
end;
Procedure sb_setinterruptnumber(intno:Word); Assembler;
Asm
push bp
mov bx,2
mov ax,intno
call SBDriver
pop bp
end;
Procedure sb_stopoutput; Assembler;
Asm
push bp
mov bx,8
call SBDriver
pop bp
end;
Function sb_init: Integer; Assembler;
Asm
push bp
mov bx, 3
call SBDriver
pop bp
end;
Function sb_pauseoutput: Integer; Assembler;
Asm
push bp
mov bx,10
call SBDriver
pop bp
end;
Function sb_continueoutput: Integer; Assembler;
Asm
push bp
mov bx,11
call SBDriver
pop bp
end;
Function sb_breakloop(mode:Word): Integer; Assembler;
Asm
push bp
mov bx,12
mov ax,mode
call SBDriver
pop bp
end;
Procedure sb_output(sg,os:Word); Assembler;
Asm
push bp
push di
mov bx,6
mov di,os { offset of voice }
mov es,sg { segment of voice }
call SBDriver
pop di
pop bp
end;
Procedure sb_input(highlength,lowlength,seginputbuff,ofsinputbuff:Word);
Assembler;
Asm
push bp
push di
mov bx,7
mov dx,highlength
mov cx,lowlength
mov es,seginputbuff
mov di,ofsinputbuff
call SBDriver
pop di
pop bp
end;
Procedure sb_setstatusWord(sg,os:Word); Assembler;
Asm
push bp
push di
mov bx,5
mov di,os
mov es,sg
call SBDriver
pop di
pop bp
end;
Procedure sb_speaker(mode:Word); Assembler;
Asm
push bp
mov bx,4
mov ax,mode
call SBDriver
pop bp
end;
Procedure sb_uninstall; Assembler;
Asm
push bp
mov bx,9
call SBDriver
pop bp
end;
Procedure sb_setuserFunction(segaddress,ofsaddress:Word); Assembler;
Asm
push bp
mov dx,segaddress
mov ax,ofsaddress
mov bx,13
call SBDriver
pop bp
end;
begin {set up SB}
if DosMemAvail < 5000 then { lower the heap }
abort('not Enough Memory'); { With $M to fix }
StatusWord:=MAlloc(SBDriver,5000);
if StatusWord<>0 then
abort('Memory Allocation Error');
sgSBDriver:=MemW[seg(SBDriver):ofs(SBDriver)+2];
ofSBDriver:=MemW[seg(SBDriver):ofs(SBDriver)];
Loaddriver(''); { change at will }
if sb_init<>0 then { or stick in your }
SBFound:=False { own Program init }
else
SBFound:=True;
if SBFound then begin
sb_setstatusWord(seg(statusWord),ofs(statusWord));
sb_speaker(1); { turn SB on }
end;
end.
{There's the Unit For .VOC playing.}
-------------------------------AND HERE-----------------------
... Pravo na gresku ne znaci obavezu.
* Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.100postmast,
From: rile@setnet.co.yu (Petar Ristic)
Subject: Re: Font na stampacu
Date: Fri, 20 Oct 1995 00:02:02
>> OGNEN DUZLEVSKI nekad rece, a ja ga sada citiram <<
OD> Na epsonima koji imaju veci bafer za karaktere moguc je download
Hvala.
Rile:)
... Onanisanje je seks sa najomiljenijom osobom...
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.101postmast,
From: rile@setnet.co.yu (Petar Ristic)
Subject: Re: Font na stampacu
Date: Fri, 20 Oct 1995 00:02:03
>> Vojislav Mihailovic nekad rece, a ja ga sada citiram <<
VM> Ovo sve sto pricam vazi za matricne stampace.
Hvala na pomoci.
Rile:)
... It doesn't work, but it looks pretty.
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.102postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Problem
Date: Fri, 20 Oct 1995 23:32:13
Nikako ne mogu da nadjem podatke kako se radi sledeca stvar, a znam
da sam ih negde imao. Zato bih zamolio auditorijum da mi pomogne.
Napravio sam objektnu TPU sa odredjenim funkcijama koje rade sa jednom
strukturom podataka. Sad mi se pojavila potreba da isti set funkcija
uptrebim na drugoj strukturi. Sve ostalo je isto, samo treba da promenim
tip podataka koje smesta u dinamicku listu. E sad, posto je na izgledu
da cu iste funkcije koristiti i na trecoj cetvroj i ko zna kojoj strukturi,
malo mi je glupo resenje da za svaku pravim poseban objekat.
Hteo bih da ovaj objekat prepravim tako da mu pri inicijalizaciji
kao parametar prosledim strukturu podataka koje zelim u listi, tako
da mi bude univerzalan.
Nasao sam sintaksu kojom mogu da prosledjujem funkcije kao parametre,
ali nikako ne mogu da resim problem prosledjivanja samo tipa podataka.
... BR> Desava li se sad nekom da mu ubajati benzin?
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.103postmast,
From: danijel.nadj@panon.ns.ac.yu (Danijel Nadj)
Subject: Re: Sifre
Date: Sun, 22 Oct 1995 16:51:00 GMT
SD>?!@!# Sta ti javlja kad nece da radi, posto ne moz da ne radi :)
Ima dve rupe:
Randomize();
Smetaju mu zagrade, bude ok kad ih obrisem...
S := S + C[Random(Length(C))+1];
"""""""""""""""""""""
Ovde prijavi neku gresku, ne secam se bas tacno koju...
... "And his nostrils ripped and his bottom burned off.."
danijel.nadj@panon.ns.ac.yu FIDO:2:382/103
---
■ SPEED 2.00 [NR] ■
pascal.104postmast,
From: danijel.nadj@panon.ns.ac.yu (Danijel Nadj)
Subject: Re: Sifre
Date: Sat, 21 Oct 1995 17:05:00 GMT
ŠIn room number 134 we saw patient SRDJAN DAKIC hitting the
Šdoor with his head, and talking to Danijel Nadj about Sifre.
SD>CONST
SD> C = 'zxcvbnmasdfghjklqwertyuiop1234567890';
SD>VAR
SD> I : INTEGER;
SD> S : STRING;
SD>BEGIN
SD> S := '';
SD> Randomize();
SD> FOR I := 1 TO Len DO
SD> S := S + C[Random(Length(C))+1];
SD>Jobrati paznju na ono CONST... to ti zamenjuje (izmedju ostalog i)
SD>onolike IF-ove. A i flexibilnije je jer mozes da prosirujes spisak
SD>mogucih znakova u sifri prostim navodjenjem u "tabelu" znakova, odnosno
SD>string C.
Te informiram da je odbijalo da radi, sve dok nisam batalio ono const i
deklarisao C kao string...
... "Why, then, the world's mine oyster which I with sword will open."
danijel.nadj@panon.ns.ac.yu FIDO:2:382/103
---
■ SPEED 2.00 [NR] ■
pascal.105postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Sifre
Date: Sat, 21 Oct 1995 18:47:00 GMT
DN> SD>CONST
DN> SD> C = 'zxcvbnmasdfghjklqwertyuiop1234567890';
DN> SD> S := S + C[Random(Length(C))+1];
DN> Te informiram da je odbijalo da radi, sve dok nisam batalio ono const i
DN> deklarisao C kao string...
?!@!# Sta ti javlja kad nece da radi, posto ne moz da ne radi :)
¸> ... Does the name "Pavlov" ring a bell?
* ŰmÔ/\/\× 1.3 #00 *
pascal.106postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Sun, 22 Oct 1995 12:54:00 GMT
--> "Dejan Ristanovic" <dejanr@sezam.UUCP>
DE> Pa da, ali i Win95 radi pod FAT-om. Sto je najlepse, komandom DIR se
DE> dobija broj, znaci da postoji poziv kojim se cita.
Ne mora da znaci, podatak se moze procitati iz odredjenog polja BOOT
sektora. Igrao sam se pravljenjem nekih drajvera (simulatoria) diskova
i dosao do zakljucka da se sa DIR obavezno cita BOOT sektor (sa diska
ili iz memorije) i analizira.
¸> "If nick-nacks ruled the world!" -- Joel Robinson
* ŰmÔ/\/\× 1.3 #00 *
pascal.107postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Sun, 22 Oct 1995 13:02:00 GMT
--> "Blagoje Ceklic" <atech@sezam.UUCP>
AT> INT 21,69 - Get/Set Disk Serial Number (Undocumented DOS 4+)
AT> Mozda je zanimljivo napomenuti da se ovaj broj formira pri formatiranju
AT> harda na osnovu aktuelnog datuma i vremena.
... sto mu daje "randomize" osobinu.
AT> Ovaj tip zastite je i previse banalan za svakog ko se i malo razume
AT> u programiranje a da ne govorim za nesto 'naprednije' tako da bi
AT> onaj procenat 99% ipak smanjio na nekih 30%.
Ja smatram najboljom zastitom flashujuce magenta na zelenom "UNREGISTERED"
ili jos bolje "Ovaj program je registrovan za Miku". Naravno, jos bolje
je ako si u mogucnosti da stupis u (full) kontakt sa korisnikom
neregistrovane ili ukradene verzije programa. ;)
¸> All recipes require at least one extra trip to the store.
* ŰmÔ/\/\× 1.3 #00 *
pascal.108konem,
Ima li iko Window.tpu fajl ?
Trebao bi mi,pa ako se neko sretne s'tim fajlom neka mi ga posalje.
Hvala unapred...
pascal.109postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Serijski broj diska
Date: Mon, 23 Oct 1995 09:30:00 GMT
>>Srdjane ono ne radi (cf = 1, ah=2 BAD ADRESS MARK, al=7 INVALID MEDIA TYPE)!
>>Mislim da je problem u CX-u (onaj DX:BX je bio moj lapsus).
>> DS:BX = pointer to data buffer
>>----> = pointer to control block (DOS 4.x+, see below)
Ne mora se nista puniti. Mislim da je to ostavljeno kao opcija za
verzije 4.0+ Ja na mojoj 6.0 nisam imao nikakvih problema da uradim
sledece:
PROCEDURE AbsRead(Disk:BYTE; Count:WORD; Start:WORD; VAR Buffer);
ASSEMBLER;
ASM
MOV AL,Disk
MOV CX,Count
MOV DX,Start (* Krece se od 0 --> 0 == BOOT sektor *)
PUSH DS
LDS BX,Buffer (* <-- Ovde obrati paznju da li radi ispravno *)
INT 25h
ADD SP,2 (* Ovo je VRLO bitno i mora i posle INT 26 *)
POP DS (* jer DOS ostavlja jednu rec na steku posle *)
END; (* poziva ?! *)
Verovatno je krahiralo zbog nedostatka onog regenerisanja steka.
¸> I've never been at a siege before.
* ŰmÔ/\/\× 1.3 #00 *
pascal.110postmast,
From: pedja.ulic@panon.ns.ac.yu (Pedja Ulic)
Subject: Re: Serijski broj diska
Date: Tue, 24 Oct 1995 11:14:00 GMT
SD> Verovatno je krahiralo zbog nedostatka onog regenerisanja steka.
Sada ne puca, ali i dalje imam isti problem.
Za oba floppy-ja stvar radi OK, ali za HD jok!
Uporno vraca cf=1 i u AL=7 i AH=2 (INVALID MEDIA TYPE !),a to se jako
slaze sa onim sto pise o DOS-u 4.x.
Cudi me da kod tebe to radi (da li si probao?),i ako radi sa kojim
parametrima zoves proceduru (ako sam ja nesto banalno prevideo).
... Great INQUISITOR is coming for YOU
___ Blue Wave/QWK v2.12
pascal.111postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Sifre
Date: Mon, 23 Oct 1995 09:57:00 GMT
DN> Randomize();
DN> Smetaju mu zagrade, bude ok kad ih obrisem...
Dobro, to i nije neka greska. Pisalo se napamet. ;)
DN> S := S + C[Random(Length(C))+1];
DN> """""""""""""""""""""
DN> Ovde prijavi neku gresku, ne secam se bas tacno koju...
String je po definiciji niz znakova pa se njemu i moze pristupati na
pomenuti nacin. C[0] je duzina stringa. Na primer:
VAR
S: STRING;
...
S = 'Dale Car';
FOR I := 1 TO S[0] DO
WriteLn(S[I]);
Zato i ne znam zasto nece da radi.
¸> Look into my eyes, you'll see I'm not lying, emotion No. 13 easy
¸> crying
* ŰmÔ/\/\× 1.3 #00 *
pascal.112postmast,
From: vlado@galeb.etf.bg.ac.yu (Vladimir Popovic)
Subject: DELPHI Problemcxicyi
Date: Tue, 24 Oct 1995 07:53:49 GMT
Zdravo narode !!!
Da li neko zna kako se iz DELPHIJA mogu pozivati DOS-ovi interapti!!!
Konkretno je problem oko Novelovih prekida, a ja ne znam kako da pisem u
Delphijevom
assembleru. Ono nije da ga u Delphiju nema ali ja do sad nisam uspio da
pozovem niti
jedan prekid.
Pomagajte ljudi ko boga vas molim !!! :)
Vladimir Popovic
UMNet Podgorica
pascal.113postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Problem
Date: Mon, 23 Oct 1995 22:59:00 GMT
--> broker@setnet.co.yu (Predrag Supurovic)
PS> Nasao sam sintaksu kojom mogu da prosledjujem funkcije kao parametre,
PS> ali nikako ne mogu da resim problem prosledjivanja samo tipa podataka.
Funkcija je nesto konkretno i ti mozes da prosledjujes nju (odnosno
njenu adresu) kao parametar jer ona zivi negde u memoriji.
Tip je nesto apstraktno i ne mozes raditi nista sa njim, osim objektima
davati osobine.
PS> Hteo bih da ovaj objekat prepravim tako da mu pri inicijalizaciji
PS> kao parametar prosledim strukturu podataka koje zelim u listi, tako
PS> da mi bude univerzalan.
Cisto sumnjam da ovo mozes da izvedes bez nekih zestokih mahinacija sa
pointerima koje bi ti, BTW, unakazile source TPU-a koji radi.
¸> Its swell for tearing up fragile ecosystems! Watch!
* ŰmÔ/\/\× 1.3 #00 *
pascal.114postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Serijski broj diska
Date: Mon, 23 Oct 1995 23:18:00 GMT
PU> Za oba floppy-ja stvar radi OK, ali za HD jok!
PU> Cudi me da kod tebe to radi (da li si probao?),i ako radi sa kojim
PU> parametrima zoves proceduru (ako sam ja nesto banalno prevideo).
Zaista ne znam sta kod tebe nije u redu, ali kod mene radi i sa diskom A
i sa B i sa C i sa D, a sa E kojeg nemam javlja gresku.
.MODEL TINY
.CODE
ORG 100h
Start:
mov al,2 ; 0=A:, 1=B:, 2=C:, ....
mov cx,1 ; Procitaj jedan sektor
mov dx,0 ; Kreni od nultog (boot)
lea bx,Buffer ; i upisi u [DS:]BX
int 25h
add sp,2
ret
Buffer: DB 512 DUP (0)
END Start
Ovo radi, samo ga treba ubaciti u Pascal.
¸> He seized the moment but found he had no place to put it.
* ŰmÔ/\/\× 1.3 #00 *
pascal.115postmast,
From: danijel.nadj@panon.ns.ac.yu (Danijel Nadj)
Subject: Re: Sifre
Date: Tue, 24 Oct 1995 14:40:00 GMT
ŠIn room number 134 we saw patient SRDJAN DAKIC hitting the
Šdoor with his head, and talking to Danijel Nadj about Sifre.
SD>Zato i ne znam zasto nece da radi.
Ovako radi ti si napisao CONST c='zxcvb....'
... Harpo of Borg - "Honk! Honk!"
danijel.nadj@panon.ns.ac.yu FIDO:2:382/103
---
■ SPEED 2.00 [NR] ■
pascal.116postmast,
From: rdejan@fon (Dejan Rudic)
Subject: Re: Sifre
Date: Wed, 25 Oct 1995 06:31:09 GMT
DN> S := S + C[Random(Length(C))+1];
DN> """""""""""""""""""""
DN> Ovde prijavi neku gresku, ne secam se bas tacno koju...
Sr> Zato i ne znam zasto nece da radi.
Mislio sam da je neko vec odgovorio, ali posto nije: broj
x u C[x] mora biti integer (jer, koji bi bio 2.464-ti znak
iz tog stringa?), a funkcija Random daje real promenljivu.
Ono sto mislim da ti treba je:
S := S + C[Round(Random(Length(C)))+1];
(ili varijacije :).
Pozdrav, Dejan
---
■ Blue Wave/QWK v2.20 [NR] ■
pascal.117postmast,
From: ivica@galeb.etf.bg.ac.yu (Ivica Nikolic)
Subject: Re: DiskSN-Windows?
Date: Wed, 25 Oct 1995 11:43:32 GMT
Srdjan Dakic je napisao:
>> Mislim - znaci postojim, da TP nema funkciju koja radi absread, ali
>> je trivijalno napisati je uz pomoc asm direktivice.
>>
>> PU> BIOS poziv INT13,2 ne koristim jer ne znam kako se
>> PU> ponasa sa LBA diskovima (a i to je read kojem moram da prosledjujem
>> PU> logicke parametre koji se razlikuju od diska do diska).
>>
>> To ti je dobar rezon. Da se ne bi petljao sa tabelom particija i da
>> odredjujes gde je prvi LOGICKI sektor. Za razliku od DOS-a, BIOS-u
>> saljes FIZICKE parametre koji kazu 'procitaj mi sa tog sektora na
>> tom cilindru, tom glavom, to i to'
Evo vam kompletan source funkcija absread i abswrite iz Run-Time
biblioteke za Borland C++ 3.1 . Valjda su dovoljno istestirane i pouzdane
kad ih Borland koristi.
absread bez problema radi po obicnim DOS-om (normalno), pod DOS
prozorom pod Win3.11, i u DOS sesiji pod OS/2 ako se pristupa FAT particiji.
Program ne radi u OS/2 DOS sesiji ako se pokusa citanje sa HPFS particije.
abswrite nisam probao, ali je blizu pameti da ni Win3.11 ni OS/2 nece
dozvoliti brljanje po disku.
Pod Win95 nisam probao, iz prostog razloga sto ga jos nisam instalirao
(a ka' i dal' cu ne znam).
parametar drive: 0-a:, 1-b:, 2-c: itd.
/*---------------------------------------------------------------------------
* filename - absread.cas
*
* function(s)
* absread - absolute disk read
* abswrite - absolute disk write
*--------------------------------------------------------------------------*/
/*
* C/C++ Run Time Library - Version 5.0
*
* Copyright (c) 1987, 1992 by Borland International
* All Rights Reserved.
*
*/
#pragma inline
#include <asmrules.h>
#include <dos.h>
#include <errno.h>
static int big_partition( int driveno )
{
static int old_driveno = -1, old_partition;
struct fatinfo p;
if( driveno != old_driveno ) /* try to avoid disk reads if possible */
{
old_driveno = driveno;
getfat( driveno+1, &p );
old_partition = ((unsigned long)p.fi_sclus * p.fi_nclus) > 0xFFFF ? 1 : 0;
}
return( old_partition );
}
/*--------------------------------------------------------------------------*
Name absread - absolute disk read
Usage int absread(int drive, int nsects, long sectno, void *buffer);
Prototype in dos.h
Description reads specific disk sectors via DOS interrupt 0x25
Return value If successful, 0
On error, -1 and errno set to the value returned in AX.
*---------------------------------------------------------------------------*/
int absread(int drive, int nsects, long lsect, void *buffer)
{
SaveSI
SaveDI
pushDS_
if( big_partition( drive ) )
{
asm mov al,drive
asm push ss
asm pop ds
asm sub sp,10
asm mov bx,sp
asm mov dx,word ptr lsect
asm mov word ptr [bx],dx
asm mov dx,word ptr lsect+2
asm mov word ptr [bx+2],dx
asm mov cx,nsects
asm mov word ptr [bx+4],cx
asm mov dx,word ptr buffer
asm mov word ptr [bx+6],dx
#if (LDATA)
asm mov dx,word ptr buffer+2
asm mov word ptr [bx+8],dx
#else
asm mov word ptr [bx+8],ds
#endif
asm mov cx,-1
asm int 25h
asm sbb cx,cx
asm add sp,10
}
else
{
asm mov al,drive
asm mov cx,nsects
asm mov dx,lsect
asm LDS_ bx,buffer
asm int 25h
asm sbb cx,cx
}
asm pop bx /* clear old flags */
popDS_
asm jcxz absOK
#if defined(__HUGE__)
asm mov bx,seg errno
asm mov es,bx
asm mov es:errno,ax
#else
asm mov errno,ax
#endif
return(-1);
absOK:
return(0);
}
/*--------------------------------------------------------------------------*
Name abswrite - absolute disk write
Usage int abswrite(int drive, int nsects, long sectno, void *buffer);
Prototype in dos.h
Description writes specific disk sectors via DOS interrupt 0x26
Return value If successful, 0
On error, -1 and errno set to the value returned in AX.
*---------------------------------------------------------------------------*/
int abswrite(int drive, int nsects, long lsect, void *buffer)
{
SaveSI
SaveDI
pushDS_
if( big_partition( drive ) )
{
asm mov al,drive
asm push ss
asm pop ds
asm sub sp,10
asm mov bx,sp
asm mov dx,word ptr lsect
asm mov word ptr [bx],dx
asm mov dx,word ptr lsect+2
asm mov word ptr [bx+2],dx
asm mov cx,nsects
asm mov word ptr [bx+4],cx
asm mov dx,word ptr buffer
asm mov word ptr [bx+6],dx
#if (LDATA)
asm mov dx,word ptr buffer+2
asm mov word ptr [bx+8],dx
#else
asm mov word ptr [bx+8],ds
#endif
asm mov cx,-1
asm int 26h
asm sbb cx,cx
asm add sp,10
}
else
{
asm mov al,drive
asm mov cx,nsects
asm mov dx,lsect
asm LDS_ bx,buffer
asm int 26h
asm sbb cx,cx
}
asm pop bx /* clear old flags */
popDS_
asm jcxz absOK
#if defined(__HUGE__)
asm mov bx,seg errno
asm mov es,bx
asm mov es:errno,ax
#else
asm mov errno,ax
#endif
return(-1);
absOK:
return(0);
}
pascal.118postmast,
From: ivica@galeb.etf.bg.ac.yu (Ivica Nikolic)
Subject: Re: DiskSN-Windows?
Date: Wed, 25 Oct 1995 11:53:28 GMT
Ivica Nikolic je napisao:
>>
>> Evo vam kompletan source funkcija absread i abswrite iz Run-Time
>> biblioteke za Borland C++ 3.1 . Valjda su dovoljno istestirane i pouzdane
>> kad ih Borland koristi.
Sad primetih da se u prvoj funkciji koristi funkcija getfat, koja je u
drugom sors fajlu. Nista zato, poslacu i nju cim prije.
pascal.119postmast,
From: root@kiza.fon.bg.ac.yu (root)
Subject: Proba
Date: Tue, 24 Oct 1995 20:42:25 GMT
Izvinjavam se zbog slanja ove poruke, ali u pitanju je proba NEWS paketa
preko UUCP-a.
pascal.120postmast,
From: ivica@galeb.etf.bg.ac.yu (Ivica Nikolic)
Subject: Re: DiskSN-Windows?
Date: Thu, 26 Oct 1995 11:23:06 GMT
Evo i sorsa funkcije getfat. U komentarima je i definicija strukture
fatinfo, koja se koristi u jednoj od funkcija.
/*---------------------------------------------------------------------------
* filename - getfat.cas
*
* function(s)
* getfatd - gets file-allocation table information
* getfat - gets file-allocation table information
* getdfree - gets disk free space
*--------------------------------------------------------------------------*/
/*
* C/C++ Run Time Library - Version 5.0
*
* Copyright (c) 1987, 1992 by Borland International
* All Rights Reserved.
*
*/
#pragma inline
#include <dos.h>
#include <dir.h>
/*--------------------------------------------------------------------------*
Name getfatd - gets file-allocation table information
Usage #include <dos.h>
void getfatd(struct fatinfo *fatblkp);
Prototype in dos.h
Description see getfat
*---------------------------------------------------------------------------*/
void getfatd(struct fatinfo *dtable)
{
getfat(0, dtable);
}
/*--------------------------------------------------------------------------*
Name getfat - gets file-allocation table information
Usage #include <dos.h>
void getfat(unsigned char drive, struct fatinfo *fatblkp);
Related
functions usage void getfatd(struct fatinfo *fatblkp);
Prototype in dos.h
Description getfat returns information from the file-allocation
table for the drive specified by drive (0 = default, 1 = A:,
2 = B:, etc.). fatblkp points to the fatinfo
structure to be filled in.
getfatd performs the same function as getfat except that the
default drive (0) is always used.
The fatinfo structure filled in by getfat and getfatd is
defined as follows:
struct fatinfo {
char fi_sclus; (* Sectors per cluster *)
char fi_fatid; (* The FAT id byte *)
int fi_nclus; (* Number of clusters *)
int fi_bysec; (* Bytes per sector *)
};
*---------------------------------------------------------------------------*/
void getfat(unsigned char drive, struct fatinfo *dtable)
{
#if !defined(__HUGE__)
asm push ds
#endif
asm mov ah, 01ch
asm mov dl, drive
asm int 021h
asm mov ah, [bx]
#if !defined(__HUGE__)
asm pop ds
#endif
((int *)dtable)[0] = _AX;
((int *)dtable)[1] = _DX;
((int *)dtable)[2] = _CX;
}
/*--------------------------------------------------------------------------*
Name getdfree - gets disk free space
Usage #include <dos.h>
void getdfree(int drive, struct dfree *dfreep);
Prototype in dos.h
Description accepts a drive specifier in drive (0 = default, 1 = A, etc.)
and fills in the dfree structure pointed to by dfreep with
disk characteristics.
The dfree structure is defined as follows:
struct dfree {
unsigned df_avail; (* Available clusters *)
unsigned df_total; (* Total clusters *)
unsigned df_bsec; (* Bytes per sector *)
unsigned df_sclus; (* Sectors per cluster *)
};
Return value Nothing. In the event of an error, df_sclus in the
dfree structure is set to -1.
*---------------------------------------------------------------------------*/
void getdfree(unsigned char drive, struct dfree *dtable)
{
int i;
asm mov ah, 036h
asm mov dl, drive
asm int 021h
i = _BX;
((int *)dtable)[3] = _AX;
((int *)dtable)[0] = i;
((int *)dtable)[1] = _DX;
((int *)dtable)[2] = _CX;
}
pascal.121postmast,
From: Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
Subject: pascal
Date: Sun, 22 Oct 1995 16:50:00
SDĆ Moze on da peva i iz GWBASIC-a ili FORTRANA 77 ;)
Moze :)) imam jedan proggy za jedan mali TERM za modem u GWBASIC ;)) Inace nisam ga ja napravio ali nema veze .. ako ga nadjem mail-ovacu ga ;)
SDĆ Problem je u kvalitetnim rutinama za komunikaciju, a ne u okruzenju
SDĆ u kome se iste nalaze. Sto se tice pascala, PCL fino radi posao.
huuh.. Kako da nateram PCL da vidi dali ima CONNECT ????? sa modema a da ako nema ne ubrlja sve.. on radi na ovom principu : citaj char sa modema (prvi char) i uporedi ga sa prvom iz dadenog stringa (na pr. prvi od CONNECT je 'C'). Ako su jednaki
produzi sa citanjem i sporedivanjem, a ako nisu jednaki .. otisla ti je sansa da procitas sta si dobio sa modema ;)))
Ja sam hteo da dobijene karaktere stavim u string[80] odn. da sacuvam poslednu liniju pa da proverim dali ima to sto trazim. Na zalost nisam ni se mrdnuo :))
0GZy
* 0Gi'S eDiT0R * This tagline is umop apisdn
* Origin: SETNet: ĆMemory Master BBS +389/91-164-877ž SKOPJE (38:108/132)
pascal.122postmast,
From: Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
Subject: Re: pascal
Date: Sun, 22 Oct 1995 16:53:00
MSĆ *** QUOTE : Srdjan Dakic ***
SD> BTW, registracija je trivijalna ;) (ako te zanima) Zanima mene
SD> pa me se sjeti u mail ili ovdje ...
:)) mada ova purka ide do tebe preko jedan reply do tebe i ja sam zainteresovan za registraciju ;))
0GZy
* 0Gi'S eDiT0R * Romanija e poznata po toa sto ne se granici so Brazil!
* Origin: SETNet: ĆMemory Master BBS +389/91-164-877ž SKOPJE (38:108/132)
pascal.123postmast,
From: Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
Subject: Font na stampacu
Date: Tue, 24 Oct 1995 17:18:00
PR> Mislio sam ovako u globalu. Po kom principu se to radi:)
BCĆ Ja sam se jednom namucio da uradim isto zato sto mi je na
BCĆ stamacu (po defaultu) bio iskljucen DLL (DownLineLoading) da bi mu se
BCĆ (u ovom slucaju za 3K) povecao bafer.
BCĆ Napravio sam programce koje mom stampacu salje ekranski font (ma
BCĆ kakav da je). Fino za devetopince.
Moze li da posaljes to programce ?? ako nije predugacko, course of !
0GZy
* 0Gi'S eDiT0R * Press any key to continue or any other key to quit
* Origin: SETNet: ĆMemory Master BBS +389/91-164-877ž SKOPJE (38:108/132)
pascal.124postmast,
From: Jovan.Mudrinic%f118.n111.z38@setnet.setnet.co.yu (Jovan Mudrinic)
Subject: Dinamicke metode
Date: Wed, 25 Oct 1995 08:15:52
Molio bih nekoga da mi objasni kako se koriste virtuelne metode(objektno
programiranje).
Unapred hvala.
* Origin: SETNet-ICM Digital BBS * Subotica * (024)21-342 * (38:111/118)
pascal.125postmast,
From: Nikola.Vukelic%f140.n103.z38@setnet.setnet.co.yu (Nikola Vukelic)
Subject: Pascal
Date: Tue, 24 Oct 1995 23:04:00
"M> Kopali smo po SDK i DDK, ali nigde odgovarajuceg API-ja za slicne
"M> informacije. Izgleda da Win95 prilicno "maskira" hardver za direktni
"M> pristup, a tek NT...
Kako da koristim DOS programe za formatiranje disketa, posto Win95 u
potpunosti zabranjuje pristup boot sektorima disketa (cak ni virus
killeri ne mogu da prodju).
pozdrav, Nidza
(nidza.fon.fon.bg.ac.yu)
... To UNSCREW the girl! How does it look like?!??
* Origin: Pingvin BBS, Beograd == 606-928 & 674-262 == SETNet: (38:103/140)
pascal.126postmast,
From: Sasa.Sekulic%f110.n103.z38@setnet.setnet.co.yu (Sasa Sekulic)
Subject: Font na stampacu
Date: Fri, 27 Oct 1995 01:38:04
BC> Das mu ESC sekvencu u cijem se zaglavlju nalazi broj karaktera
BC> koji saljes i posle bitmapiran izgled.
BC> Ja sam se jednom namucio da uradim isto zato sto mi je na
BC> stamacu (po defaultu) bio iskljucen DLL (DownLineLoading) da bi mu
BC> se (u ovom slucaju za 3K) povecao bafer.
BC> Napravio sam programce koje mom stampacu salje ekranski font
BC> (ma kakav da je). Fino za devetopince.
Jel' bi mogao to negdje da UL-ujes, posto bi mi trebalo takvo sto. BTW,
koliko karaktera moze da se definise na LX-400; otkad su presli na ove nove
prirucnike, vise ne mogu da saznam ni koliki je bafer... :~(
mad.max
... Is there anybody out there?..
* Origin: # New Age # 22-08h # Beograd # SETNet: (38:103/110)
pascal.127postmast,
From: Dragoljub.Pilipovic%p1.f135.n135.z38@setnet.setnet.co.yu (Dragoljub Pilipovic)
Subject: Ima li ikog?
Date: Wed, 25 Oct 1995 02:34:03
Je li u ovoj konferenciji se ista pise! Milim odgovor?
Pozdrav, OLUJA
... ebius tagline. This is a moebius tagline. This is a mo ...
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.128postmast,
From: Miroslav.Minovic%f133.n103.z38@setnet.setnet.co.yu (Miroslav Minovic)
Subject: Knjiga za objektni TP4Win
Date: Tue, 24 Oct 1995 04:03:00
Hi:)
Moze li neko da mi preporuci knjigu iz koje cu moci
da naucim objektno programiranje u Turbo Paskalu za Windows.
Pozdrav,
Mindza.
P.S.Ideju objektnog programiranja sam savladao,treba mi kako
se to prakticno radi(sintaksa).
... ARRRRRGGGHHH!!!! ... Tension breaker, had to be done.
* Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.129evlad,
<> koliko karaktera moze da se definise na LX-400; otkad su presli na ove
<> nove
možeš predefinisati samo 6 karaktera za draft ili nlq.
isto kao i kod LX-800 :) ne sećam se tačno koji su to bili mislim da je
ascii <, >, ...
pascal.130postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Problem - zamena stringova
Date: Sun, 29 Oct 1995 00:12:17
Imam jedan zanimljiv problem. Pokusavam da napisem funkciju koja ce mi
zameniti odredjeni niz karaktera drugim. Posebnost je u tome sto se u
nizu karaktera traze tri podniza i svaki zamenjuje sebi odgovarajucim.
Ukratko definicija funkcije ide ovako:
type
spectip = record
a : string;
b : string;
c : string;
end;
Procedure Zamena (var pocetak : pointer; var duzina : word;
trazi, zameni : spectip);
<pocetak> je pokazivac na memoriju popunjenu podacima, a <duzina>
je duzina podatka u bajtovima koja ne moze preci 64k.
<trazi> su podaci koje treba naci u memoriji, a <zameni> su odgovarajuci
nizovi kojima se nadjeni zamenjuju. Zamenjuje se svako pojavljivanje
niza trazi.a sa zameni.a, trazi.b sa zameni.b i trazi.c sa zameni.c
Problem je u tome sto unapred nije poznata duzina stringova koji se
dobijaju u <trazi> i <zameni> i sto se memorija pretrazuje za tri
stringa.
Izlomih male sive celije i nikako da izmozgam dobro resenje. Najvise mi
muke zadaje to sto duzina izlaznog podatka nije poznata pre pocetka
zamene i moze da bude i mnogo veca od pocetne, a to lako moze da izadje
iz ogranicenja od 64k po bloku. :(
... Necu da budem clan nikakve mafije.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.131postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Dinamicke metode
Date: Sun, 29 Oct 1995 00:09:00 GMT
-> Jovan Mudrinic
JM> Molio bih nekoga da mi objasni kako se koriste virtuelne metode(objektno
JM> programiranje).
Imas objekt X sa metodom A. Njega nasledi objekt Y. Kada pozoves Y.A
izvrsava se X.A. Pa i ako pozoves A (ne Y.A) iz nekih drugih metoda iz
Y, izvrsava se X.A. Da bi objekti iz Y pozivali 'njegov' A bez
eksplicitnog oznacavanja Y.A, potrebno je staviti virtual iza
deklaracije.
Virtuelne metode nisu pojam poput recimo funkcije WriteLn pa da se
objasne u tri reda za cega sluze i kako se koriste. One spadaju u
jednu od najvaznijih karakteristika objektno-orijentisanog stila
programiranja i ima dosta toga da se pise i procita.
Relativno je dobro opisano u knjizi Duska Savica 'Turbo Pascal -
naredbe i objekti', a mozes i da sacekas odgovarajucu epizodu
Sage o OOP u Prog konferenciji.
Pozdrav :)
¸> I'm aware of the risks, Ensign -- Picard
* ŰmÔ/\/\× 1.3 #00 *
pascal.132postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal 1/2
Date: Sun, 29 Oct 1995 01:00:00 GMT
-> Ognen Spiroski
OS> huuh.. Kako da nateram PCL da vidi dali ima CONNECT ????? sa modema a da
OS> nema ne ubrlja sve.. on radi na ovom principu : citaj char sa modema (prvi
OS> ) i uporedi ga sa prvom iz dadenog stringa (na pr. prvi od CONNECT je 'C').
OS> su jednaki produzi sa citanjem i sporedivanjem, a ako nisu jednaki .. otis
OS> i je sansa da procitas sta si dobio sa modema ;)))
Ovo je jedan deo programa koji se izvrsava u petlji sve dok se
konektuje ili ne ESC-apeuje.
if DialingStarted then begin
(*****
* proveri da li je tu carrier, ako je tu odsviraj malo i izadji
*****)
if SioDCD(Port)>0 then
if Connected then begin
WriteLastAttemptMessage(atCONNECTED);
while not KeyPressed do
for i := 1 to 5 do begin
Sound(i*200);
Delay(150);
end;
NoSound;
EndModal(cmCONNECT);
Exit;
end;
(*****
* nema carriera, odbrojavaj sekunde do kraja, pauziraj i zovi ponovo
*****)
UpdateTime;
if RedialTimeLeft<0 then begin
StopDialing;
Clear;
WriteLastAttemptMessage(atTIME_ELAPSED);
Pause;
RedialNumber;
end;
end
SioDCD(Port) ocitava da li ima Carrier Detected na zadatom portu.
Tebe zanima ovo:
function Connected : boolean;
begin
Connected := WaitFor(Port,ConnectString);
end;
A i sledecih nekoliko f-ja blago modifikovanih od strane mene:
(*********************************************)
(* *)
(* Talks to your modem. Called by TERM.PAS *)
(* *)
(* This program is donated to the Public *)
(* Domain by MarshallSoft Computing, Inc. *)
(* It is provided as an example of the use *)
(* of the Personal Communications Library. *)
(* *)
(*********************************************)
{$X+}
unit ModemIO;
interface
type
String80 = String[80];
procedure SendTo( Port:Integer; ThisString:String80);
function WaitFor( Port:Integer; ThisString:String80):Boolean;
function ModemInit(Port:integer; InitStr:string) : boolean;
function HangUp(Port:integer; HUStr:string) : boolean;
function OnLine(Port:integer) : boolean;
implementation
uses PCL4P, Global, Modem;
procedure SendTo( Port: Integer; ThisString:String80);
const
CR = 13;
var
rc : Integer;
i : Integer;
c : Char;
begin
rc := SioRxFlush(Port);
rc := SioDelay(4);
for i := 1 to Length(ThisString) do
begin
c := UpCase(ThisString[i]);
case c of
'!' : c := chr(CR);
'~' : begin
(* delay 1/2 second *)
rc := SioDelay(9);
c := ' '
end;
' ': rc := SioDelay(4);
end;
(* transmit as 7 bit char *)
rc := SioPutc(Port, chr(ord(c) and $7f));
(* wait 1/18th of a second *)
rc := SioDelay(1);
(* wait 1 second for echo *)
rc := SioGetc(Port,18);
{if rc > 0 then Write(chr(rc));}
end (* for *)
end; (* SendTo *)
Function WaitFor(Port:Integer; ThisString:String80): Boolean;
label WaitForExit;
const
CR = 13;
LF = 10;
var
code : Integer;
c : Char;
i : Integer;
rc: Integer;
procedure Flush;
label FlushExit;
var code : integer;
begin
while TRUE do
begin
(* get next incoming character *)
code := SioGetc(Port,38);
if code = -1 then exit;
(* skip CR & LF *)
if (code <> CR) and (code <> LF) then
begin
(*writeln('Pushing ',chr(code),' [',code,']');*)
rc := SioUnGetc(Port, code );
goto FlushExit;
end;
end; (* while *)
>>> Continued to next message
pascal.133postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal 2/2
Date: Sun, 29 Oct 1995 01:00:00 GMT
>>> Continued from previous message
FlushExit: end; (* Flush *)
begin (* WaitFor *)
{Write( chr(LF) );}
Flush;
for i:= 1 to Length(ThisString) do
begin
(* c is expected character *)
c := UpCase( ThisString[i] );
(* wait 1 second for next character *)
code := SioGetc(Port,18);
if code = -1 then
begin
WaitFor := FALSE;
goto WaitForExit;
end;
(* echo character from modem *)
{Write(chr(code));}
if chr(code) <> c then
begin
{writeln('Expecting ',c,' not ',chr(code),'[',code,']');}
WaitFor := FALSE;
goto WaitForExit;
end;
end; (* for *)
(* a last character ? *)
rc := SioGetc(Port,18);
{if rc > 0 then Write(chr(rc));}
WaitFor := TRUE;
WaitForExit: end; (* WaitFor *)
function ModemInit(Port:integer; InitStr:string) : boolean;
begin
SendTo(Port,'~+/+/+/');
SendTo(Port,'!'+InitStr+'!');
ModemInit := WaitFor(Port,'OK');
end;
function HangUp(Port:integer; HUStr:string) : boolean;
begin
if DTRhangup then SioDTR(Port,CLEAR);
if Online then begin
SendTo(Port,'~+/+/+/');
SendTo(Port,'!'+HUStr+'!');
end;
Hangup := WaitFor(Port,'OK');
if DTRhangup then SioDTR(Port,SETON);
end;
function OnLine(Port:integer) : boolean;
var
Time : longint;
Done : boolean;
begin
Time := SioTimer;
Done := false;
while not Done do begin
if SioDCD(Port)>0 then begin
OnLine := true;
Done := true;
end;
if SioTimer-Time > CarrierLostTime then begin
OnLine := false;
Done := true;
end;
end;
end;
end {ModemIO UNIT} .
Nadam se da ces skontati o cemu se ovde radi. Promenljive tipa
CarrierLostTime, DTRhangup ConnectString i ostale su konfigurabilne
i korisnik ih podesava u programu. Ima gresaka verovatno, ali radi
radnju za te najosnovnije potrebe. Ostaje ti da ga izbrusis ako ti
bude koristilo.
Pozdrav :)
¸> Nog Prank #4: change Jake's baseball program to cricket
* ŰmÔ/\/\× 1.3 #00 *
pascal.134postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Sun, 29 Oct 1995 00:23:00 GMT
--> Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
ARGH! :)
Treba instrukcije INT 16h i INT 10h zameniti NOP-ovima u fajlu PCL4P.TPU
i vise nema ispisa 'unregistered' poruke. Pronadji CD 16 i CD 10 i zameni
ih sa 90 90.
¸> *Ahem* Okay... Thank you, Mr. Spock.
* ŰmÔ/\/\× 1.3 #00 *
pascal.135postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Knjiga Za Objektni Tp
Date: Sun, 29 Oct 1995 18:31:00
***> Citiram 'Miroslav Minovic' za 'All' <***
MM> P.S.Ideju objektnog programiranja sam savladao,treba mi kako
MM> se to prakticno radi(sintaksa).
Ovakav biser odavno ne procitah :-)))
-=> MM <=-
___ Blue Wave/QWK v2.20 [NR]
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.136postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: errorlevel
Date: Tue, 31 Oct 1995 22:13:58
Zna li neko nacin kako da iz Pascala procitam errorlevel s
kojim je izasao prethodni program?
... BR> Is Internet internal or international?
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.137pedjak,
> Zna li neko nacin kako da iz Pascala procitam errorlevel s
> kojim je izasao prethodni program?
Nije mi baš najjasnije, pokrećeš neki drugi proces iz svoje
aplikacije, pa želiš da saznaš ErrorLevel..? Ako je to, onda ti je
rešenje funkcija DosExitCode.
pascal.138postmast,
From: Vladimir.M.Zivkovic@f119.n111.z38.setnet.setnet.co.yu (Vladimir M Zivkovic)
Subject: Re: pascal
Date: Thu, 14 Sep 1995 17:14:03
On 11 Sep 95 12:57pm, "Vladislav Erdelji" wrote to All:
"E> From: "Vladislav Erdelji" <evlad@sezam.UUCP>
"E> Newsgroups: yu.prog.pascal
"E> Organization: SEZAM Beograd, 011 648-422
<>> SVGA256.bgi imam ali drajver je vrlo lose uradjen. Mislio sam na
<>> original ne drajvere od Borlanda.
<>> Inace da li je neko uspeo da startuje misa u svga rezolucijama.
"E> Ako su drajveri V5.5 tada uz njih ide i mis, jedino na VLB CL5428 ima
"E> malo problema oko hardvreskog i softverskog kursora, ali moze da radi.
Gde se mogu naci V5.5 ?
__ Pozdrav from Vladimir __
.... CAUTION! Silver Xpress roaring through here!
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.139evlad,
TO: Vladimir.M.Zivkovic@f119.n111.z38.setnet.setnet.co.yu
(Vladimir M Zivkovic)
<> Gde se mogu naci V5.5 ?
Sezam pro-ba(blem) test sistem pristup besplatan ;>
===============================
7.42 TEST.1:pc.prog
evlad, 13.09.Sre 19:33, 155 chr
---------------------------------------------------------
svga bgi drajveri za TP 7.0 i TC/BC
podrška za pacova u rezolucijama većim od 640x480
arhivu otpakovati sa: pkunzip -d svgabg55
upload po želji .sima
----------------------------------------------- 7.42 ---
** Uz poruku 'svgabg55.zip' (202783 bytes)
Ili u sezam-ovom dir-u ...
pascal.140postmast,
From: Sasa.Sekulic%f110.n103.z38@setnet.setnet.co.yu (Sasa Sekulic)
Subject: pascal
Date: Wed, 01 Nov 1995 18:27:22
<> koliko karaktera moze da se definise na LX-400; otkad su presli na ove
<> nove
"E> mozes predefinisati samo 6 karaktera za draft ili nlq.
"E> isto kao i kod LX-800 :) ne secam se tacno koji su to bili mislim da
"E> je ascii <, >, ...
Dankeschoen.
mad.max
... I'm a party animal, I'm a party animal...
* Origin: # New Age # 22-08h # Beograd # SETNet: (38:103/110)
pascal.141postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Errorlevel
Date: Thu, 02 Nov 1995 08:51:00
***> Citiram 'Predrag Supurovic' za 'All' <***
PS> Zna li neko nacin kako da iz Pascala procitam errorlevel s
PS> kojim je izasao prethodni program?
DOSError ili DOSExitCode?
-=> MM <=-
___ Blue Wave/QWK v2.20 [NR]
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.142postmast,
From: Miroslav.Minovic%f133.n103.z38@setnet.setnet.co.yu (Miroslav Minovic)
Subject: Re: Knjiga Za Objektni Tp
Date: Thu, 02 Nov 1995 17:25:01
-=> Ja, Miroslav Minovic citiram Marka Milivojevica na temu Knjiga Za Objektni Tp<=-
***> Citiram 'Miroslav Minovic' za 'All' <***
MM> P.S.Ideju objektnog programiranja sam savladao,treba mi kako
MM> se to prakticno radi(sintaksa).
MM> Ovakav biser odavno ne procitah :-)))
Mozda se nisam najbolje izrazio,treba mi knjiga u kojoj je prakticno
ilustrovano kako se pisu programi za Win(nazivi gotovih objekata,metoda itd.)
Jos uvek se trazi :(
Pozdrav,Mindza.
================================================================================
mindza@setnet.co.yu
mminovic@sezam.co.yu
mminovic@osmeh.fon.bg.ac.yu
... 100 LJUDI 100 CUDI, 100 ZENA 200 SISA
* Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.143postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Sifre
Date: Mon, 30 Oct 1995 10:08:00
DR> Mislio sam da je neko vec odgovorio, ali posto nije: broj
DR> x u C[x] mora biti integer (jer, koji bi bio 2.464-ti znak
DR> iz tog stringa?), a funkcija Random daje real promenljivu.
Startuj sledeci program:
var x:byte;
begin
x:=Random(255);
WriteLn(x);
end.
Pozdrav.
Ognen
* OLX 2.1 TD * You have a terminal illness - check your terminal.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.144postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Knjiga za objektni TP4Win
Date: Mon, 30 Oct 1995 10:08:00
MM>Moze li neko da mi preporuci knjigu iz koje cu moci
MM>da naucim objektno programiranje u Turbo Paskalu za Windows.
Probaj da nadjes knjigu koja dolazi uz Turbo Pascal for Windows (1.5 ?).
Ognen
* OLX 2.1 TD * Software Factory
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.145postmast,
From: SETNet%f101.n101.z38@setnet.setnet.co.yu (SETNet)
Subject: Statistika konferencije
Date: Thu, 26 Oct 1995 08:04:22
Maintaned by CONFERENCE STATISTICS SHELL - (c)1995 by Predrag Supurovic
=======================================================================
Conference NET.PASCAL maintained on 28.09.95. for 28 days backward.
QRATIO Mail Statistics V1.9 by Act Of Impulse.
----------------------------------------------
Total messages found in this area : 440
Number of messages covered in report: 104
Processed period from: 28-9-1995 to 25-10-1995
------------------------------------------------------------------------------
Blacklist-Top 5 of the Quoters.
Nr Total Quoted Quote
Name Address Msg Lines Lines: Ratio:
---- ------- --- ----- ------ ------
1. VLAXI.................... 38:103/120 1 34 28 82.35%
2. Boris Dragovic........... 38:103/115 1 13 10 76.92%
3. Robert Oswald............ 38:111/119 2 26 13 50.00%
4. Vladimir Sitnikovski..... 38:103/120 2 42 19 45.24%
5. Danijel Nadj............. 38:103/120 2 37 15 40.54%
------------------------------------------------------------------------------
Top 5 of the writers.
Total Average Quote
Name Msgs: Pct. Byte/Msg Ratio:
---- ----- ----- -------- ------
1. Srdjan Dakic 16 15.4% 662 34.55%
2. OGNEN DUZLEVSKI 7 6.7% 562 25.00%
3. Petar Ristic 6 5.8% 165 29.63%
4. Ognen Spiroski 6 5.8% 704 11.39%
5. "Srdan Simic" 6 5.8% 488 3.33%
------------------------------------------------------------------------------
Top 5 of the receivers.
Total
Name Msgs: Pct.
---- ----- -----
1. All 73 70.2%
2. Petar Ristic 7 6.7%
3. Srdjan Dakic 4 3.8%
4. "Srdan Simic" 3 2.9%
5. Vojislav Mihailovic 2 1.9%
------------------------------------------------------------------------------
Top 5 of the subjects.
Subject Nr.
------- ---
1. Pascal...................................................... 63
2. Font na stampacu............................................ 10
3. Sifre....................................................... 5
4. zapisi i tako dalje......................................... 4
5. UPOMOC!!!................................................... 3
------------------------------------------------------------------------------
Average posting frequency per week:
Day Msgs Pct. Graph
Sunday 23 22.1% **************************************************
Monday 16 15.4% **********************************
Tuesday 12 11.5% **************************
Wednesday 9 8.7% *******************
Thursday 9 8.7% *******************
Friday 17 16.3% *************************************
Saturday 18 17.3% ***************************************
------------------------------------------------------------------------------
Average posting frequency per day:
Interval Msgs Pct. Graph
-------- ---- ----- -----
0:00- 1:59 5 4.8% ****************
2:00- 3:59 5 4.8% ****************
4:00- 5:59 4 3.8% ************
6:00- 7:59 3 2.9% *********
8:00- 9:59 7 6.7% **********************
10:00-11:59 12 11.5% **************************************
12:00-13:59 11 10.6% ***********************************
14:00-15:59 9 8.7% ****************************
16:00-17:59 12 11.5% **************************************
18:00-19:59 13 12.5% *****************************************
20:00-21:59 7 6.7% **********************
22:00-23:59 16 15.4% ***************************************************
------------------------------------------------------------------------------
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.146postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Knjiga Za Objektni Tp
Date: Sat, 04 Nov 1995 13:42:05
==== Miroslav Minovic rece: ======================================
MM> Mozda se nisam najbolje izrazio,treba mi knjiga u kojoj je prakticno
MM> ilustrovano kako se pisu programi za Win(nazivi gotovih
MM> objekata,metoda itd.)
Juce u Polarotoru predstavise neku knjigu za Delphi u izdanju,
cini mi se, CIP-a (ne Chip, nego CIP). Da li ce ti to koristiti,
ili bas radis u Pascalu?
... BR> Biti ili ne biti? Da bacimo novcic?
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.147postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Delphi
Date: Sat, 04 Nov 1995 13:42:06
Voleo bih da cujem misljenje nekoga ko se malo vise poabavio
Dephhijem. Kad se pojavio iz sveta su stizale prilicno slabe
kritike.
Kako se ponasa? Koliko je pouzdan. Kakve su mu mogucnosti...?
... BR> Uvek su u pravu oni koji su - u pravu.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.148postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Errorlevel
Date: Sat, 04 Nov 1995 22:30:00
> PS> Zna li neko nacin kako da iz Pascala procitam errorlevel s
> PS> kojim je izasao prethodni program?
> DOSError ili DOSExitCode?
To je resenje kada progrm pokrecem u DOS shell-u, ali ne treba mi to.
Treba mi da napravim program koji ce biti pokrenut posle nekog programa
i ispisati mi sa kojim errorlevelom je izasao prethodni program.
Kako stoje stvari to izgleda nije bas izvodljivo. Verovatno cu morati
da koristim DOS shell da bih uopte mogao da saznam taj errorlevel.
BBS-ovi se cesto oslanjaju na errorlevele i treba mi da na nekim mestima
mogu da vidim sa kojim je errorlevelom izasao program, da bih nasao
eventualnu gresku.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.149nlazic,
*> Kako se ponasa? Koliko je pouzdan. Kakve su mu mogucnosti...?
Delphi je pogrešno predstavljen kao alat za razvoj baza
podataka, iz ovih ili onih razloga. Tačno je da se uz njega isporučuje
kompletan BDE i da se njime mogu pisati prilično složeni DB programi,
ali Delphi može i mnogo više, nevezano za baze. Najtačnije bi bilo reći
da je to zapravo Borland Pascal 8.0 + BDE + gomila klasa za rad sa svim
i svačim (počev od INI datoteka, pa do pisanja client/server aplikacija
i OLE-a). Tvrdim da se pomoću Delphi-a može napisati bilo kakav program
za Windows-e, pa i za DOS.
Elem, ponaša se odlično, pouzdan je isto onoliko koliko su
pouzdani Windows-i, a mogućnosti su zaista velike, jer iako nosi oznaku
verzije 1.0, iza sebe ima veoma razvijenu familiju Turbo Pascal
kompjalera čiji je Delphi logičan naslednik (i 100% kompatibilan).
Pozdrav,
:) Nebojša :)
pascal.150icile,
-> Zna li neko nacin kako da iz Pascala procitam errorlevel s
-> kojim je izasao prethodni program?
A, za sta ti to treba? Da li ti treba bas ERRORLEVEL ili bi mozda probao i na
neki drugi nacin da preneses 'poruku' prethodno izvrsenog programa-sledecem?
Da li si ti napisao i prvi i drugi program ili na prvi vise ne mozes da utices
pa si zato primoran da citas ovu sistemsku promenljivu?
pascal.151icile,
Da li neko zna kako izgleda struktura datoteka .SYS u DOS-u?
pascal.153postmast,
From: Dragan.Levic%f119.n111.z38@setnet.setnet.co.yu (Dragan Levic)
Subject: Zastita programa
Date: Sat, 04 Nov 1995 22:36:00
Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da ako
korisnik programa (da li ste mu instalaciju nekog skupog programa pa necete
da mu dozvolite da je rasiri dalje) hoce da program presnimi program na
disketu/diskete zastita automatski obrise *.exe fajlove tog programa (recimo
da je ceo program u jednom direktorijumu)?
Ako jeste, a verujem da jeste posto je meni skoro uspelo, samo imam nekoliko
manjih rupa u znanju izlaznih kodova, kako bi on izgledao?
Puno vam se unapred zahvaljujem!
CUL8R or maybe RSN
P.S. Ja licno imam TS-Pascal tako da to malo komplikuje stvari (ko zna-zna)!
CU
... No hand signals. The driver of this car is a convicted arab shoplifter.
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.154postmast,
From: Nikola.Culic%f121.n103.z38@setnet.setnet.co.yu (Nikola Culic)
Subject: Pascal
Date: Tue, 07 Nov 1995 00:13:00
Da li neko zna da mi rastumaci definiciju tipa PaletteType. Nasao sam
da je definisana kao:
PaletteType=Record
Size:Byte;
Colors:Array[0..MaxColor] of ShortInt;
Treba mi nacin da je razlozim kao RGB (posebno koliko ima crvene,
zelene, plave u svakoj od boja)...
* Origin: AV Manta, Beograd - Mail Server - SETNet (38:103/121)
pascal.155postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Zastita programa
Date: Mon, 06 Nov 1995 10:29:31
Dragan Levic said:
DL> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da
DL> ako korisnik programa (da li ste mu instalaciju nekog skupog programa
DL> pa necete da mu dozvolite da je rasiri dalje) hoce da program presnimi
DL> program na disketu/diskete zastita automatski obrise *.exe fajlove tog
DL> programa (recimo da je ceo program u jednom direktorijumu)?
Problem u celoj stvari je kako utvrditi da korisnik pokusava da
piratuje program. Kad se to utvrdi svasta moze da se uradi, pa
cak i mnogo nezgodnije od brisanja EXE-a.
Nisam sasvim siguran da li si mislio na zastitu programa koji si ti
pisao ili zastitu programa koji si mu samo instalirao pa ne zelis da
moze da ga kopira dalje?
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.156postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Knjiga Za Objektni Tp
Date: Mon, 06 Nov 1995 14:28:00
MM> MM> P.S.Ideju objektnog programiranja sam savladao,treba mi kako
MM> MM> se to prakticno radi(sintaksa).
MM> Ovakav biser odavno ne procitah :-)))
A sto je biser ? Spusti se malo na zemlju, covek kaze da je shvatio
principe (enkapsulacija, nasledjivanje, virtuelni i staticki metodi,
polimorfizam itd.), sada mu jedino treba sintaksa.
Objektno programiranje je apstrakcija na malo visem nivou i dok su ti
jasni principi - ipak ti treba prakticna implementacija tih principa a
ona je za svaki jezik drugacija. Probaj da sa lispa predjes na Turbo
Vision (Pascal) i shvatices o cemu pricam. Again, spusti se malo na
zemlju i drugi put malo pazljivije sa alt-R.
Ognen
* OLX 2.1 TD * The easiest way to woman's heart is thru 'er chest.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.157djelovic,
> Da li neko zna kako izgleda struktura datoteka .SYS u DOS-u?
Svojevremeno je ZZ pisao o tome u "Računarima". Biće najbolje da u RIND-u
potražiš taj njegov tekst, jer je tu bilo puno bitnih sitnica.
pascal.158atech,
> Subject: Zastita programa
>
> Da li je moguce napraviti u Paskalu takvu zastitu nekog
> programa da ako korisnik programa (da li ste mu instalaciju
> nekog skupog programa pa necete da mu dozvolite da je rasiri
> dalje) hoce da program presnimi program na disketu/diskete
> zastita automatski obrise *.exe fajlove tog programa (recimo da
> je ceo program u jednom direktorijumu)? Ako jeste, a verujem da
> jeste posto je meni skoro uspelo, samo imam nekoliko manjih
Sve se svodi na pouzdan problem identifikacije racunara na kome
je program instaliran i zastitu odgovarajuceg algoritma za proveru
iste. Trigere u vidu brisanja fajlova ne preporucujem iz vise
razloga. Najvazaniji razlog je da u 90% slucajeva nema efekta.
Proveru mozes da vrsis iz bilo kog izvrsnog fajla koji je deo
projekta ali se postaraj da dobro zastitis rutinu za proveru i
eventualnu trigger rutinu.
Ako radis sitan SW softver onda mozes da primenis bilo koji
algoritam za detekciju a ukoliko se radi o projektu koji se
'prodaje' preporucujem PCG (reklama placena u marketingu:) koji
poseduje sve potrebne opcije za zastitu izvrsnih programa i izradu
instalacionih disketa.
pascal.159mminovic,
> Juce u Polarotoru predstavise neku knjigu za Delphi u izdanju,
> cini mi se, CIP-a (ne Chip, nego CIP). Da li ce ti to
> koristiti, ili bas radis u Pascalu?
Tu sam vec kupio :)(na sajmu ne odoleh:)
Ali bih hteo i za Paskal for Win 1.5.
Obican okvir nekog programa sa par zezalica u Delphiju mi je bio
.exe duzine reda 300 kb,dok pod TP4WIN oko 30 Kb :(
Pozdrav,Mindza
pascal.160vvelisavljev,
> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da
ako
> korisnik programa (da li ste mu instalaciju nekog skupog programa
pa necete
> da mu dozvolite da je rasiri dalje) hoce da program presnimi
program na
> disketu/diskete zastita automatski obrise *.exe fajlove tog
programa
Šta, na primer, da korisnik želi da napravi rezervnu kopiju tog
skupog programa?? Misllim da se nije igrati sa takvim stvarima. Može
korisnik da se naljuti pa da dođe da te upuca. :))
Šalu na stranu. Treba se prvo zapitati šta je skupo. Sam program ili
podrška, štampano uputstvo, nove verzije. U nekim slučajevima čak i
nije loše da se program malo "raširi". Ali, sada već bežimo iz teme
Pascal.
Razmisli malo o snimanju broja hard diska. Mislim da snimanje
najobičnijeg imena diska (volume) nije tako loša ideja. Prosečan
korisnik verovatno ni ne zna da postoji komanda koja menja ime diska.
A i što bi ga menjao. :)
pascal.161kriss,
˙˙ Da li neko zna kako izgleda struktura datoteka .SYS u DOS-u?
Neki stari "Računari", tekst je "Na softverski pogon", autora Zoran
čivotić. Potraži u RIND-u.
pascal.162vvelisavljev,
Treba mi nešto da iz DOS programa pređem u Windowse. Tj. program
treba da simulira pritisak na Alt+Tab.
Imam DOS program rađen u TPu. Pa želim bezbolno da ga prebacim u
Windows okolinu. Treba da pri odabiru neke opcije program pređe u
windows okruženje i da ostane ikonica programa.
pascal.163postmast,
From: Srdjan.Stanisic%f104.n103.z38@setnet.setnet.co.yu (Srdjan Stanisic)
Subject: Re: Font na stampacu
Date: Wed, 01 Nov 1995 19:56:09
PR> Da li je moguce ugraditi YU slova u stampac, cisto softverski?
Da, u neke (a mozdai sve). Ali, koliko slova mozes ubaciti, zavisi
od memorije u stampacu, namenjene za soft-font.
Strider
... Ako kanis pobijediti, ne smijes izgubiti!
* Origin: *SETNet: Taurunum BBS +381 11 2354-253, Zemun* (38:103/104)
pascal.164postmast,
From: Srdjan.Stanisic%f104.n103.z38@setnet.setnet.co.yu (Srdjan Stanisic)
Subject: Re: HDD Serial nbr.
Date: Wed, 01 Nov 1995 19:57:10
Koji i broj treba, iz ROM-a ili DOS-ov? Ja sam napisao unit koji
ima ove f-je, pa ako ga oces...
Strider
... Ako kanis pobijediti, ne smijes izgubiti!
* Origin: *SETNet: Taurunum BBS +381 11 2354-253, Zemun* (38:103/104)
pascal.165postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Knjiga Za Objektni Tp
Date: Tue, 07 Nov 1995 14:06:00
***> Citiram 'Ognen Duzlevski' za 'Marko Milivojevic' <***
OD> A sto je biser ? Spusti se malo na zemlju, covek kaze da je shvatio
OD> principe (enkapsulacija, nasledjivanje, virtuelni i staticki metodi,
OD> polimorfizam itd.), sada mu jedino treba sintaksa.
Ja sam genije. Shvatio sam pravo resenje za konflikt u
Bosni!!! Svi mi treba da se pomirimo i zivimo lepo kao
ranije. Treba mi neka knjiga iz politike da vidim prakticnu
primenu i najbolje resenje za moj zakljucak.
OD> zemlju i drugi put malo pazljivije sa alt-R.
'R'
-=> MM <=-
___ Blue Wave/QWK v2.20 [NR]
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.166postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Knjiga Za Objektni Tp
Date: Mon, 06 Nov 1995 20:10:00
***> Citiram 'Predrag Supurovic' za 'Miroslav Minovic' <***
PS> Juce u Polarotoru predstavise neku knjigu za Delphi u izdanju,
PS> cini mi se, CIP-a (ne Chip, nego CIP). Da li ce ti to koristiti,
PS> ili bas radis u Pascalu?
E... to mi treba... Gde/Kad/Kome/Koliko?
-=> MM <=-
___ Blue Wave/QWK v2.20 [NR]
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.167postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Delphi
Date: Mon, 06 Nov 1995 20:10:00
***> Citiram 'Predrag Supurovic' za 'All' <***
PS> Voleo bih da cujem misljenje nekoga ko se malo vise poabavio
PS> Dephhijem. Kad se pojavio iz sveta su stizale prilicno slabe
PS> kritike.
Pa ovako. Program je jednom mocan ;-) Svesto ste imali
prilike da vidite u Windows-u je podrzano. Programiranje je
skoro isto kao u Visual Basicu, znaci click-and-write. ;-)
PS> Kako se ponasa? Koliko je pouzdan. Kakve su mu mogucnosti...?
Ponasa se lepo (na 8Mb, na 4Mb je (ne)upotrebljivo spor
:-(). Dosta je pouzdan i lak za koriscenje.
*
Prazan prozor -> 190+ Kb
-=> MM <=-
___ Blue Wave/QWK v2.20 [NR]
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.168postmast,
From: vladimir.blagojevic@panon.ns.ac.yu (Vladimir Blagojevic)
Subject: Re: pascal
Date: Thu, 9 Nov 1995 13:47:00 GMT
DJ> Svojevremeno je ZZ pisao o tome u "Racunarima". Bice najbolje da u RIND
DJ> potrazis taj njegov tekst, jer je tu bilo puno bitnih sitnica.
Malo sam neupucen, o cemu je rec, kad govorite o RIND-u?
pascal.169postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: Zastita programa
Date: Thu, 09 Nov 1995 13:44:05
DL> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da
DL> ako korisnik programa (da li ste mu instalaciju nekog skupog programa
DL> pa necete da mu dozvolite da je rasiri dalje) hoce da program presnimi
DL> program na disketu/diskete zastita automatski obrise *.exe fajlove tog
DL> programa (recimo da je ceo program u jednom direktorijumu)?
Da, moguce je na vise nacina: 1. neka program cita serijski broj HDa
i upisuje u datoteku (npr.: ????????.CFG) ali da sa zapisom bude i os
tala konfiguracija programa tako da je korisnik (haker) i ako je prona
dje ne moze obrisati, 2. pomocu TSR programa (i ako nije logicno
ali ...). 3. citaj volume HDa, imena nekih direktorijuma (naravno pri
instalaciji i zapisi u datoteku), neke fajlove stavi ko bad block (moze
ali ne znam kako). Eto, to je iscrpno od mene (bar u ovom trenutku).
pozdraw, ASKO
... What is the TAG?
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.170postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Thu, 09 Nov 1995 13:44:05
Da li neko zna kako da se radi sa prosirenom memorijom? Recimo da neke
graficke ekrane sa diska ne ucitam u osnovnu memoriju nego u prosirenu
iznad 640 Kb.
pozdraw, ASKO
... Nikad nisi vidio TAG ??!!!?!!!?!
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.171postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: stancanje grafike (stampanje)
Date: Thu, 09 Nov 1995 20:06:03
Hi 2 ALL.
Zanima me kako da iz paskala stampam grafiku na stampac (naravno).
Da li prije slanja grafike na stampac treba poslati neki bit koji 'gov
ori' stampacu da ne stampa tekst nego grafiku? U ostalom kako se salje
grafika na stampac (stancalo)?
pozdraw, ASKO
... Mijenjam masinu za ves za djevojku koja sve radi rucno.
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.172postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: delphi
Date: Thu, 09 Nov 1995 20:06:04
Hej ljudi, nisam malo u toku, sta je to DELPHI?
pozdraw, ASKO
... Ko prvi djevojc sam u nju upada !
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.173postmast,
From: Mladen.Jablanovic%f101.n101.z38@setnet.setnet.co.yu (Mladen Jablanovic)
Subject: Zastita programa
Date: Thu, 09 Nov 1995 09:11:39
==== Quoting Dragan Levic: ====
DL> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da
DL> ako korisnik programa (da li ste mu instalaciju nekog skupog programa
DL> pa necete da mu dozvolite da je rasiri dalje) hoce da program presnimi
DL> program na disketu/diskete zastita automatski obrise *.exe fajlove tog
DL> programa (recimo da je ceo program u jednom direktorijumu)?
Teeeesko... Jedino da se startovanjem tog programa instalira neki
TSR, pa on da proverava...:)))). Moguce je, recimo, nesto ovako: pri
instalaciji programa sa diskete procita se serijski broj diska, ili
neki drugi bitan parametar, pa se on kriptuje i zapamti. Onda se pri
svakom startovanju programa isti proverava, pa
if OldSerialNo<>NewSerialNo then
begin
format c:;
burn monitor;
start Windows:))));
end;
Neki su nesto eksperimentisali sa pisanjem izmedju sektora na disketi,
ostecivanjem disketa (!), itd, itd, ali je sve to bilo suvise
komplikovano i nepouzdano.
DL> Ako jeste, a verujem da jeste posto je meni skoro uspelo, samo imam
DL> nekoliko manjih rupa u znanju izlaznih kodova, kako bi on izgledao?
DL> Puno vam se unapred zahvaljujem!
DL> P.S. Ja licno imam TS-Pascal tako da to malo komplikuje stvari (ko
DL> zna-zna)! CU
Ajd izvesti kako ti je to uspelo, bogati. A TS-Pascal ne moze da ti
iskomplikuje stvari, samo uprosti i olaksa ;). Ko zna-zna...
jablan.
... Vodite ljubav, a ne psa!
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.174postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: Valjak za peglanje
Date: Thu, 09 Nov 1995 13:44:04
-=> Quoting Miodrag Djordjevic to All <=-
MD> Prodajem valjak za peglanje
MD>
MD> ***** Ei rolmatic 75.4 *********
Je li cijeli source ili TPU :)))?
malo sale, nista licno
pozdraw, ASKO
... strike any user to continue
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.175postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: delphi
Date: Fri, 10 Nov 1995 13:01:03
Asmir Badnjevic said:
AB> Hej ljudi, nisam malo u toku, sta je to DELPHI?
Ukratko receno: Visual Trubo Pascal.
Ako si video Visual BASIC, e ovo je isto samo sto se radi
i Pascal jeziku.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.176postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: EMS XMS
Date: Fri, 10 Nov 1995 13:01:03
Asmir Badnjevic said:
AB> Da li neko zna kako da se radi sa prosirenom memorijom? Recimo da
AB> neke graficke ekrane sa diska ne ucitam u osnovnu memoriju nego u
AB> prosirenu iznad 640 Kb.
Imas na Oreska BBS-u biblioteke koje to rade. U sorsu su naravno.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.177postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: stancanje grafike (stampanje)
Date: Fri, 10 Nov 1995 13:01:04
Asmir Badnjevic said:
AB> Zanima me kako da iz paskala stampam grafiku na stampac (naravno).
AB> Da li prije slanja grafike na stampac treba poslati neki bit koji
AB> 'gov ori' stampacu da ne stampa tekst nego grafiku? U ostalom kako se
AB> salje grafika na stampac (stancalo)?
Svaki stampac ima komande za grafiku. Treba da u uputstvu pogledas
kako stampac ocekuje podatke za stampu i da mu ih tako i posaljes...
Moj Citizen 180D ima jenu Esc sekvencu kojaga prebacuje u graficki
rezim. Sekvenca sadrzi informaciju o kojoj se rezoluciji radi,
koliko bajtova se stampa i niz bajtova koje treba odstampati. Svaki
bajt predstavlja jednu kolonu (iglice na glavi stampaca su slozene
vertikalno). Stampa se po redovima - kolona je visine jednog reda
(koliko je to tacaka, zavisi od rezolucije i broja iglica na stampacu.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.178postmast,
From: Jovan.Mudrinic%f118.n111.z38@setnet.setnet.co.yu (Jovan Mudrinic)
Subject: Problem
Date: Sat, 11 Nov 1995 01:21:32
1.Da li se u TP-u moze napraviti vise statusnih linija i kako?
2.Kako da se menja statusna linija otvaranjem prozora(menija)?
3.Kako ubaciti stalan ispis:sata,stanja slobodnog diska i memorije u Turbo Vision aplikaciji,primer(verovatno pomocu interapta kako?)?
Unapred hvala.
* Origin: SETNet-ICM Digital BBS * Subotica * (024)21-342 * (38:111/118)
pascal.179visnja,
> Da li neko zna kako da se radi sa prosirenom memorijom? Recimo
> da neke graficke ekrane sa diska ne ucitam u osnovnu memoriju
> nego u prosirenu iznad 640 Kb.
Moja preporuka ti je da program prevedes u PROTECTED rezimu (TARGET:PROTECT),
Tada mozes koristiti GLOBALALLOC iz nekog WIN unita da alociras memorije
koliko hoces (koliko imas), da ne kazem vidis memoriju linearno.
Ako te interesuje ovakva metoda javi, pa da se prisetim tacno kako se radi.
Mada je bilo o ovome reci pre koji mesec...
pascal.180visnja,
> Zanima me kako da iz paskala stampam grafiku na stampac
> (naravno). Da li prije slanja grafike na stampac treba poslati
> neki bit koji 'gov ori' stampacu da ne stampa tekst nego
> grafiku? U ostalom kako se salje grafika na stampac (stancalo)?
I mene ovo zanima, li nekom zemaljskom metodom. Naime, uzecu za primer
EPSONOVE stampace i njihove ESC kodove:
Stampacu prvo saljes odgovarajuci ESC kod (27 pa neki kod) za postavljanje
grafickog rezima, zaboravio sam koji kod, zatim mu saljes broj koji
predstavlja broj bajtova koje ces poslati za bit-mapu. Onda saljes bajt
po bajt bitmape za jedan red. Sledeci red sve ponovo.
Ovo je ukratko i povrsno princip rada. Sada na trzistu je velika lepeza
epsonovih i epson kompatibilnih stampaca, da li svi imaju iste kodove?
Narocito sto bit mapa nije ista za 24 pince i 9 pince (mada i moze biti
jer svaki 24 pinac moze da stampa i kao 9 pinac - grafiku). Rezolucija je
naravno nekoliko i ona zavisi od inicijalnog ESC koda koji saljesm odnosno
koda kojim iniciras grafiku (onaj prvi iza koga sledi broj bajtova).
Sada mene zanima kako stoji stvar sa laserima, ne bih da pisem sam rutine,
ima li neko neki UNIT?
pascal.181visnja,
> 1.Da li se u TP-u moze napraviti vise statusnih linija i kako?
> 2.Kako da se menja statusna linija otvaranjem prozora(menija)?
> 3.Kako ubaciti stalan ispis:sata,stanja slobodnog diska i
> memorije u Turbo Vision aplikaciji,primer(verovatno pomocu
> interapta kako?)? Unapred hvala.
Odgovor je DA DA i DA. Turbo vizija mi je uza struka, ako nisi do sada
uspeo/nasao javi mi pa da napisem mali primer (komentarisan) i da ti saljem.
Evo malih hintova:
Kada definises statusnu liniju sa NewStatusDef, ti iza stavljas dve konstante
odvojene zarezima, jel tako? pogledaj neki source iz primera. Tamo je
obicno $0,$FFFF. To znaci da je tom statusnom linijom obuhvacena kompletna
TV. Ako dodas jos statusnih linija a za konstante napises ovako:
NewStatusDef(hcNekaPomoc,hcNekaPomoc,...
I Imas neki pointer na prozor/dialog PPera,
A na neki nacin (npr. u konstruktoru) si u konstantu koju ima svaki VIEW
PPera^.HelpCtx stavio
PPera^.HelpCtx:=hcNekaPomoc,
Onda ce automatski po kreiranju DIALOGA/PROZORA PPera da se ukljuci
statusna linija sa definicijom hcNekaPomoc. Naravno u statusnim linijama onda
ne smes da obuhvatis celu TV (ne ides od 0 - $FFFF)
3. Pitanje: Nikakav Interapt ti ne treba. TV ima IDLE proceduru, da ne davim
sta je IDLE ako si radio sa WIN programiranjem ili OS/2 onda znas... nije ti
ni bitno: NADJI U PRIMERIMA THeapView objekat, on radi upravo to. I pogledaj
IDLE proceduru u tom primeru, neznam tacno koji je primer, TVDEMO ili TVFM...
Pozdrav, Visnja.
pascal.182maksa,
>> Sada mene zanima kako stoji stvar sa laserima, ne bih da pisem
>> sam rutine, ima li neko neki UNIT?
Ne znam za unit, al' mislim da na FFS-u (?) može da se nađe BGI za
rad sa štampačima.
pascal.183dejanr,
>> Malo sam neupucen, o cemu je rec, kad govorite o RIND-u?
RIND, program/eksterna komanda na Sezamu koji omogućava pregled tekstova
objavljenih u "Računarima", i pronalaženje po imenu, temi, autoru itd.
pascal.184dejanr,
>> Hej ljudi, nisam malo u toku, sta je to DELPHI?
Delphi - Borlandov "vizuelni paskal", dakle naslednik Turbo i Borland
Pascala koji omogućava lak (?) razvoj Windows aplikacija. Bio je detaljan
prikaz u trećem broju časopisa "PC".
U međuvremenu se (ovih dana) pojavio i 32-bitni Delphi za razvoj Windows 95 i
NT programa, ali ga još nisam video.
pascal.185postmast,
From: SPIDER@x-life.bc.co.yu
Subject: Zastita_programa
Date: Sun, 12 Nov 95 18:19:32 GMT
Kada Dragan.Levic%f119.n111.z38Zastita programaetnet.s pojede bananu
desava se neverovatna promena...
Dr> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da
Dr> ako korisnik programa (da li ste mu instalaciju nekog skupog programa
Dr> pa necete da mu dozvolite da je rasiri dalje) hoce da program presnimi
Dr> program na disketu/diskete zastita automatski obrise *.exe fajlove tog
Dr> programa (recimo da je ceo program u jednom direktorijumu)?
Dr> Ako jeste, a verujem da jeste posto je meni skoro uspelo, samo imam
Dr> nekoliko manjih rupa u znanju izlaznih kodova, kako bi on izgledao?
a recimo da se uradi takva zastita koja bi spreacavala rad
_tako_presnimljenog_programa_ na drugom komp-u (dok bi kod
njega radilo sve ok) ???
...SPiDeR //\o/\\
... The Prodigy - Music For The Jilted Generation
--- FMail 0.98
* Origin: X Life BBS;381(011)554-023;22:00-09:00;14400 bps (95:988/554)
pascal.186postmast,
From: ASKO@vila.bc.co.yu
Subject: pascal
Date: Sun, 12 Nov 95 18:19:34 GMT
-=> Quoting "Viktor Velisavljev" <vvelisavljev@ to All <=-
"V<> Treba mi nesto da iz DOS programa predem u Windowse. Tj. program
"V<> treba da simulira pritisak na Alt+Tab.
Pokusaj sa rutinicom koja simulira pritisak tastera. Ako je nemas
poslacu ti je.
"V<> Imam DOS program raden u TPu. Pa zelim bezbolno da ga prebacim u
"V<> Windows okolinu. Treba da pri odabiru neke opcije program prede u
"V<> windows okruzenje i da ostane ikonica programa.
KOristis TP6? U BP se lako moze prepraviti bilo koji program radjen
u DOSu za WINDOWS.
... Hexcalibur, the sword of hackers. O══╠═0123456789ABCDEF═─
--- FMail/386 1.02
* Origin: Vila co.BBS ■ Prijedor_RS ■ +381 79 11 301 ■ B.C.: (95:790/113)
pascal.187postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Knjiga Za Objektni Tp
Date: Thu, 09 Nov 1995 07:18:00
***> Citiram 'Ognen Duzlevski' za 'Marko Milivojevic' <***
OD> A sto je biser ? Spusti se malo na zemlju, covek kaze da je shvatio
OD> principe (enkapsulacija, nasledjivanje, virtuelni i staticki metodi,
OD> polimorfizam itd.), sada mu jedino treba sintaksa.
Ja sam genije. Shvatio sam pravo resenje za konflikt u
Bosni!!! Svi mi treba da se pomirimo i zivimo lepo kao
ranije. Treba mi neka knjiga iz politike da vidim prakticnu
primenu i najbolje resenje za moj zakljucak.
OD> zemlju i drugi put malo pazljivije sa alt-R.
'R'
-=> MM <=-
___ Blue Wave/QWK v2.20 [NR]
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.188postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: delphi
Date: Sat, 11 Nov 1995 19:02:24
PS> Asmir Badnjevic said:
no, no, Predrag Supurovic said to me :
PS> Ukratko receno: Visual Trubo Pascal.
PS> Ako si video Visual BASIC, e ovo je isto samo sto se radi
PS> i Pascal jeziku.
Vidio sam Visual BASIC i otkida koliko je dobar. Ako je delphi i upola
onakav kao i Visual BASIC onda je do >znas vec cega<. Jer paskal je za
mene (osim C-a) jedan od najboljih jezika.
pozdraw, ASKO
... Ko prvi djevojc sam u nju upada !
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.189postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Sat, 11 Nov 1995 19:02:24
PS> Asmir Badnjevic said:
Again rou are wrong, Predrag Supurovic said to me :
PS> Imas na Oreska BBS-u biblioteke koje to rade. U sorsu su naravno.
Koliko kila?
pozdraw, ASKO
... tata vidi .... TAG
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.190postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: stancanje grafike (stampanje)
Date: Sat, 11 Nov 1995 19:02:25
PS> Asmir Badnjevic said:
Predrag Supurovic saiAAAAAAAAAAAAARRRRGHHHHHHHHH
PS> Svaki stampac ima komande za grafiku. Treba da u uputstvu pogledas
PS> kako stampac ocekuje podatke za stampu i da mu ih tako i posaljes...
Da, u pravu si samo sto ja nemam nikakvo upustvo.
PS> Moj Citizen 180D ima jenu Esc sekvencu kojaga prebacuje u graficki
PS> rezim. Sekvenca sadrzi informaciju o kojoj se rezoluciji radi,
PS> koliko bajtova se stampa i niz bajtova koje treba odstampati. Svaki
PS> bajt predstavlja jednu kolonu (iglice na glavi stampaca su slozene
PS> vertikalno). Stampa se po redovima - kolona je visine jednog reda
PS> (koliko je to tacaka, zavisi od rezolucije i broja iglica na stampacu.
Da li se kod svih stampaca koristi ESC sekvenca.?
Je li rezolucija koja se salje na stampac? Mozes li to malo bolje obj
asniti? Sta ti dodje >niz bajtova< i da li se regulise koja ce se igl
ica upaliti a koja nece?
BTW. U kojem jeziku programiras (ako :)) ?
pozdraw, ASKO
... Nice girl in sight:(G)o, (R)un, (H)urry, (D)o it?
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.191postmast,
From: Vladimir.Svrkota%f118.n111.z38@setnet.setnet.co.yu (Vladimir Svrkota)
Subject: GRAPH.TPU
Date: Sat, 11 Nov 1995 09:57:33
Doslo mi je do ostecenja na instalacionoj disketi Turbo Pascala 7.0 i
fajl GRAPH.TPU mi je unisten, a grafika mi u ovom trenutku treba.
Zato vas _molim_, da ako je neko rad da mi ovaj fajl arhivira i posalje,
neka mi ostavi poruku u mail. Unapred se zahvaljujem.
Vladimir.
... éí 'aaníígóó 'áhoot'é
* Origin: SETNet-ICM Digital BBS * Subotica * (024)21-342 * (38:111/118)
pascal.192nlazic,
*> U međuvremenu se (ovih dana) pojavio i 32-bitni Delphi za razvoj
*> Windows 95 i NT programa, ali ga još nisam video.
Kada vidiš (pretpostavljam da ćeš biti među prvima) ne bilo ti
mrsko da napišeš ovde koju reč...
Pozdrav,
:) Nebojša :)
pascal.193nlazic,
*> Vidio sam Visual BASIC i otkida koliko je dobar. Ako je delphi i upola
*> onakav kao i Visual BASIC onda je do >znas vec cega<. Jer paskal je za
*> mene (osim C-a) jedan od najboljih jezika.
Uzimaj Delphi što pre, nećeš se razočarati :)
Pozdrav,
:) Nebojša :)
pascal.194visnja,
> Ne znam za unit, al' mislim da na FFS-u (?) može da se nađe BGI
Izvin'te, malo sam glup, sta je to FFS ?
pascal.195guta,
>> Izvin'te, malo sam glup, sta je to FFS ?
Fon File Server.
Tel. 1: 2372392
Tel. 2: 2372393
poz, Guta
pascal.196pedjak,
> Sada mene zanima kako stoji stvar sa laserima, ne bih da pisem sam
> rutine, ima li neko neki UNIT?
Što se tiče programiranja lasera, bilo je nekih tekstova
svojevremeno u Računarima. Što se tiče junita, imam samo nešto
sklepano na brzinu - štampa dela ekrana na epson kompatibilnim
štampačima, evo ga uz poruku.
hcopy.zippascal.197postmast,
From: mladen.adamovic@blbbs.elf.bl.ac.yu (MLADEN ADAMOVIC)
Subject: Re: stancanje grafike (st
Date: Tue, 14 Nov 95 00:51:00 -1
-+=+- Asmir Badnjevic rece : -+=+-
AB> Zanima me kako da iz paskala stampam grafiku na stampac (naravno).
Nabavis odgovarajuci BGI, recimo :
prbgi097 a01 164402 BGI printer driver v0.97 (9/24-pin, laser) #1
prbgi097 a02 163864 BGI printer driver v0.97 (9/24-pin, laser) #2
Izvor : Sezam.
... Mene novac i slava ne zanimaju. Zanima me samo novac.
___ Blue Wave/QWK v2.12
pascal.198postmast,
From: damir@osmeh.fon.bg.ac.yu (Damir Barjaktarevic)
Subject: Re: delphi
Date: Tue, 14 Nov 1995 11:35:57 GMT
Asmir Badnjevic (Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu) wrote:
> Vidio sam Visual BASIC i otkida koliko je dobar. Ako je delphi i upola
> onakav kao i Visual BASIC onda je do >znas vec cega<. Jer paskal je za
> mene (osim C-a) jedan od najboljih jezika.
Kad vidis Delphi ima da otkines na kvadrat :)))) Uporedjivao sa Delphi i VB
3.0 i doso do zakjucka da VB nema nikakvu izrazitu prednost u odnosu na
Delphi. Stavise Delphi moze da mu bude profesor, pogotovo u radu sa bazama
podataka.
Vozdra, Damir
--
damir@unitop.elfak.ni.ac.yu
pascal.199postmast,
From: vladimir.sitnikovski@informa.mk (Vladimir Sitnikovski)
Subject: pascal
Date: Tue, 24 Oct 1995 04:45:00 GMT
-=> Quoting Dejanrpascalezam.uucp to All <=-
De> Path: medi.durlan.co.yu!durlan!fon.fon.bg.ac.yu!fon!sezam!dejanr
De> From: "Dejan Ristanovic" <dejanr@sezam.UUCP>
De> Newsgroups: yu.prog.pascal
De> Subject: pascal
De> Message-ID: <sezam$pascal:01.123.0418@sezam>
De> Date: Fri, 20 Oct 95 02:43:00 CET
De> References: <sezam$pascal:001.0123.0417@sezam>
De> Organization: SEZAM Beograd, 011 648-422
>> 1. Upotreba nedokumentovanih dos funkcija nikad nije bila
>> preporucljiva. ;)
De> Jedino nevolja sto je ovaj dokumentovan - videti Microsoft Developers
De> Network CD-ROM. Moram da potrazim neki noviji, moj je iz 94 godine,
De> mozda su nesto menjali.
>> 2. Vecina korisnika koristi ovaj int da bi procitala serijski broj harda
>> koji se dobija pri formatiranju diska i da bi ga kasnije upotrebila
>> za identifikaciju u cilju vezivanja softvera za hard. O tome koliko
>> je ovaj nacin identifikacije 'neozbiljan' najbolje govori cinjenica da
>> se isti broj moze promeniti po volji upotrebom ovog istog interapta
>> (21,69). Igrarije...:)
De> Za 99% korisnika - sasvim dovoljna zastita, a onaj 100-ti procenat ce
De> i onako da razbije bilo kakvu zastitu.
Sorry Dejane, nisi u pravu, i malo dete moze ovo da razbije !
Ovaj tip zastite ne vredi ni pet para, bas kao sto rece covek.
Moj sin jos je mali da koristi INTERRUP-TE, ali vrlo dobro zna
da radi sa nortonovim DISKEDIT-om :)))
>> 3. Ovaj int je predvidjen da daje podatke samo pod fat file sistemom i
>> bio je novina dos-a 4.0
De> Pa da, ali i Win95 radi pod FAT-om. Sto je najlepse, komandom DIR se
De> dobija broj, znaci da postoji poziv kojim se cita.
BIOS radi sa fizickim diskovima, a OS sa logickim, kad pomislim
da oni suradjuju...
Ipak kljuc ove dileme lezi u BOOT-u.
Sitnik
... Rgds, Vladimir Sitnikovski, Republic of Macedonia, +389(0)91-318618
___ Blue Wave/QWK v2.12
pascal.200postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: EMS XMS
Date: Sun, 12 Nov 1995 12:53:15
==== Asmir Badnjevic rece: ======================================
PS> Imas na Oreska BBS-u biblioteke koje to rade. U sorsu su naravno.
AB> Koliko kila?
Ma kratko je to. Jedino je sama dkumentacija za XMS velika, sami
sorsovi su kratki.
... BR> Pusenje ili zdravlje. Odlucite sami.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.201postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: stancanje grafike (stampanje)
Date: Sun, 12 Nov 1995 12:53:15
==== Asmir Badnjevic rece: ======================================
PS> Svaki stampac ima komande za grafiku. Treba da u uputstvu pogledas
PS> kako stampac ocekuje podatke za stampu i da mu ih tako i posaljes...
AB> Da, u pravu si samo sto ja nemam nikakvo upustvo.
Pa onda ti mogu pomoci ovako: komande za grafiku su iste za skoro sve
matricne stampace, sto verovatno vazi i za tvoj, pogotovo ako je EPSON
kompatibilac.
Da te obradujem, na BS-u imam jedan TPU koji stampa sliku sa ekrana na
bilo koji matricni stampac. To sam sinoc pronasao u arhivi jednog
PAS programa za stampanje kalendara by neki momak iz Vojvodine.
Arhiva s zove KALEND*.* (dovoljno da je nadjes). Sve u njoj je u
sorsu pa i taj TPU za stampanje.
AB> Je li rezolucija koja se salje na stampac? Mozes li to malo bolje
AB> obj asniti? Sta ti dodje >niz bajtova< i da li se regulise koja ce
AB> se igl ica upaliti a koja nece?
To podesavas odredjivanjem rezolucije stampaca. Za svaku rezoluciju
postoji posebna Esc sekvenca. Na stampac moras slati sliku u onoj
rezoluciji na koju podesis stampac. TO vazi ako hoces da dobijes sliku
uslovno receno 1:1. Ako samo hoces da odstampas, onda samo saljes
bajtove stampacu onako kako ih imas, bez prilagodjavanja rezolucije.
Tada ce stampac svaku tacku predstavljati tackom pa ce slika biti manja
ili veca, zavisno od rezolucije...
Ako hoces sam da radis, evo ti komande za Citizen. Treba da rade na bilo
kom Epson kopatibilnom stampacu. Mada, ja ti preporucujema uzmes ovaj TPU
koji sam pomenuo, jer je to upravo to sto hoces da uradis.
Ovo je opsti oblik komande:
ESC <r> chr(<n1>) chr(<n2>)
ESC je ascii 27 (#1B)
r je rezolucija i ako je
"K" (#4B) - single density, 60dpi
"L" (#4C) - double density, 120dpi
"Y" (#59) - high speed double density, 120dpi
"Z" (#5A) - Quadruple density, 240dpi
n1 i n2 predstavljaju broj bajtova koji cine jedan red slike. n1 je donji
a n2 gornji bajt duzine.
Ako je x broj bajtova onda je
n1 = x mod 256
n2 = x div 256
primer: ako je broj bajtova 816, n1 ce biti 128, a n2 ce biti 7
Dakle, posaljes odgovarajucu komandu za rezoluciju, dva bajta koji
odredjuju broj bajtova koji ce biti stampani, a iza toga onoliko
bajtova kojiko si rekao da ces poslati, a koji cine informaciju o
slici.
Iako je stampac devetopinski, deveti (najdonji) pin se ne koristi za
stampanje grafike. Pored svega treba malo eksperimentisati sa razmakom
ismedju linija da bi se redovi grafike poklopili, no to ces vec
prokljuviti i sam.
Ima jos jedna komanda:
ESC * m n1 n2
sve je slicno prethonim, sam sto sada m odredjuje rezoluciju.
m moze imati dekane vrednosti (slati kao ASCII):
ASCII Opis Rezolucija Max broj kolona u redu
==============================================================
0 single density 60dpi 480cpl
1 double density, 120dpi 960cpl
2 hi speed double 120dpi 960cpl
3 quadruple 240dpi 1920cpl
4 CRT Screen 80dpi 640cpl
5 One-to-one 72dpi 576cpl
6 hi-res CRT 90dpi 720cpl
7 Two-on-one 144dpi 1152cpl
==============================================================
dpi - dots per inch (broj tacaka po incu)
cpl - columns per line (broj kolona po liniji)
AB> BTW. U kojem jeziku programiras (ako :)) ?
Primeri koje imam u prirucniku su u bejziku (bljak)...
Eto, nadam se da ti je i ovo bilo dovoljno.
Pedja
... BR> Ja sam jedan ostavljeni tag... Ona me vise ne voli. :~(
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.202postmast,
From: Dragan.Levic%f119.n111.z38@setnet.setnet.co.yu (Dragan Levic)
Subject: Re: Zastita programa
Date: Sun, 12 Nov 1995 17:34:00
-=> Quoting Predrag Supurovic to Dragan Levic <=-
PS> Dragan Levic said:
DL> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da
DL> ako korisnik programa (da li ste mu instalaciju nekog skupog programa
DL> pa necete da mu dozvolite da je rasiri dalje) hoce da program presnimi
DL> program na disketu/diskete zastita automatski obrise *.exe fajlove tog
DL> programa (recimo da je ceo program u jednom direktorijumu)?
PS> Nisam sasvim siguran da li si mislio na zastitu programa koji si ti
PS> pisao ili zastitu programa koji si mu samo instalirao pa ne zelis da
PS> moze da ga kopira dalje?
Da hocu da zastitim program koji sam ja sam pisao ne bi bilo nikakvih problema
ali posto to nije moj program vec samo program koji ja treba da instaliram na
disk i sprecim korisnika od daljeg sirenja programa (presnimavanja).
A sto se tice drugih mera to nije potrebno ja samo hocu da unistim dati
program, a ne celi disk!
CUL8R
... MSDOS - MicroSoft's Destruction Of System.
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.203atech,
> Da hocu da zastitim program koji sam ja sam pisao ne bi bilo
> nikakvih problema ali posto to nije moj program vec samo
> program koji ja treba da instaliram na disk i sprecim korisnika
> od daljeg sirenja programa (presnimavanja). A sto se tice
PC GUARD V2.11
(c) 1994/95 Angel Technology All Rights Reserved
Profesionalni Program Za Zastitu Softvera
ZASTITA IZVRSNIH PROGRAMA (DOS)
────────────────────────────────────────────────────────────────────
Dva tipa zastite izvrsnih programa (ENVELOPE I LOADER). Cetiri
metode zastite. CODE: uz pomoc indentifikacionog broja program radi
samo na jednom racunaru. AUTO: automatska instalacija na
odgovarajucem racunaru. Posle prvog pokretanja zasticeni program
radi samo na tom racunaru. NOIC: Bez ikakve identifikacije racunara
(pogodno za SW programe). DEMO: vremensko i(ili) datumsko
ogranicenje rada zasticenih programa. Zastita vasih programa od
nelegalne upotrebe. Zastita vasih programa od izmena. Zastita
vasih programa od pregleda i analize koda. Zastita od koriscenja
programa na neodgovarajucem racunaru. Dve metode identifikacije
racunara (BIOS/IDE drajv). Mogucnost pravljena Demo verzija vasih
programa. Vremenska i datumska ogranicenja rada vasih programa.
(AmG) Mutation enGine. Nijedan zastitni sloj nije isti. Zastita
velikih DOS programa sa internim overlejima! Preko 20 novih opcija
za podesavanje parametara rada. Generisanje kompletnih izvestaja o
zasticenim programima.
PROGRAM ZA KREIRANJE I ZASTITU INSTALACIONIH DISKETA
────────────────────────────────────────────────────────────────────
Tri metode izrade instalacionih disketa (AUTO, CODE i NOIC) sa
istim karakteristikama kao i kod programa za zastitu izvrsnih
programa. Zastita od upotrebe na neodgovarajucem racunaru.
Sifrovanje svih instaliranih programa. Ogranicenje broja
instalacija. Generisanje kompletnih izvestaja o izradjenim
disketama. Specijalni program za instalaciju sa diskete na hard
disk.
PROGRAM ZA INSTALACIJU SA DISKETE NA HARD DISK
────────────────────────────────────────────────────────────────────
Koristi sifrovane podatke o broju instalacija, osobi na koju je
program licenciran, ciljnom direktorijumu i opisu vaseg programa.
Ne dozvoljava instalaciju na neodgovarajucem racunaru. Vodi
evidenciju o broju instalacija. Vrsi desifrovanje fajlova sa
instalacione diskete i kopira ih u ciljni direktorijum. Mogucnost
menjanja ciljnog direktorijuma. Jednostavan za upotrebu.
ZASTO BAS PC GUARD?
────────────────────────────────────────────────────────────────────
Nisu vam potrebni nikakvi hardverski dodaci. Zastita jaca od
hard lock-a!. Neogranicena upotreba bez bilo kakvih dodatnih
ulaganja u hardver. Program za sifrovanje datoteka (HIDEIT).
Program za identifikaciju racunara SYSTEM/BIOS/IDE/EXE (GUARDID).
Program za konverziju Com programa u Exe programe (COMEXE). Program
je testiran na velikom broju razlicitih konfiguracija. Ako je vas
program dobar onda je dovoljno dobar da bi bio piratovan. Sprecite
piratovanje vaseg softvera!
User Friendly
100% Assembly language!
Povoljne cene!
Dilerski popusti
Besplatna tehnicka podrska
Besplatan upgrade
Namenjen svima koji se bave izradom i prodajom softvera
Sve dodatne informacije mozete dobiti na tel. 011/8171-179
ili na sledecim e-mail adresama:
atech@sezam.co.yu
atech@osmeh.fon.bg.ac.yu
pascal.204vitez.koja,
#=> "V<> Treba mi nesto da iz DOS programa predem u
#=> Windowse. Tj. program "V<> treba da simulira pritisak na
#=> Alt+Tab. Pokusaj sa rutinicom koja simulira pritisak
#=> tastera. Ako je nemas poslacu ti je.
Zanimljiva ideja, ali mislim da neće da radi. Da li je neko
pokušao?
pascal.205postmast,
From: Srdjan.Stanisic%f104.n103.z38@setnet.setnet.co.yu (Srdjan Stanisic)
Subject: Re: Zastita programa
Date: Mon, 13 Nov 1995 22:03:07
DL> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da
DL> ako korisnik programa (da li ste mu instalaciju nekog skupog programa
DL> pa necete da mu dozvolite da je rasiri dalje) hoce da program presnimi
DL> program na disketu/diskete zastita automatski obrise *.exe fajlove tog
DL> programa (recimo da je ceo program u jednom direktorijumu)?
DL> Ako jeste, a verujem da jeste posto je meni skoro uspelo, samo imam
DL> nekoliko manjih rupa u znanju izlaznih kodova, kako bi on izgledao?
DL> Puno vam se unapred zahvaljujem!
DL> CUL8R or maybe RSN
DL> P.S. Ja licno imam TS-Pascal tako da to malo komplikuje stvari (ko
DL> zna-zna)! CU
Ja sam radio neke zastite u TP programima. Sta te zanima konkretno? Da
se odmah razumemo. Nijedna zastita nije 100% sigurna, al' ove mogu da
dobro namuce. A ako ti je klijentela "neobrazovana" po pitanju
programiranja... Nema problema. Postavi konkretno pitanje i reci ako
zelis source.
Strider
... Ako kanis pobijediti, ne smijes izgubiti!
* Origin: *SETNet: Taurunum BBS +381 11 2354-253, Zemun* (38:103/104)
pascal.206postmast,
From: Boris.Zutic%f125.n103.z38@setnet.setnet.co.yu (Boris Zutic)
Subject: Re: GRAPH.TPU
Date: Mon, 13 Nov 1995 00:19:04
-=> Vladimir Svrkota je svojevremeno izjavio <=-
VS> Doslo mi je do ostecenja na instalacionoj disketi Turbo Pascala 7.0 i
VS> fajl GRAPH.TPU mi je unisten, a grafika mi u ovom trenutku treba.
VS> Zato vas _molim_, da ako je neko rad da mi ovaj fajl arhivira i
VS> posalje, neka mi ostavi poruku u mail. Unapred se zahvaljujem.
Javi se na tlf 642-263 radnim danom posle podne trazi Boris-a
... - I t█ld yo█, never█touch █he flop█y disk s█rfac█!
* Origin: SETNet:Birostroj BBS:NON-STOP:14400bps:011/609945 (38:103/125)
pascal.207postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Zastita programa
Date: Mon, 13 Nov 1995 13:25:14
Dragan Levic said:
PS> Nisam sasvim siguran da li si mislio na zastitu programa koji si ti
PS> pisao ili zastitu programa koji si mu samo instalirao pa ne zelis da
PS> moze da ga kopira dalje?
DL> Da hocu da zastitim program koji sam ja sam pisao ne bi bilo nikakvih
DL> problema ali posto to nije moj program vec samo program koji ja treba
DL> da instaliram na disk i sprecim korisnika od daljeg sirenja programa
DL> (presnimavanja). A sto se tice drugih mera to nije potrebno ja samo
DL> hocu da unistim dati program, a ne celi disk!
Ivan Stamenkovic je u nekim od prvih brojeva Cipa (CHIP), pisao bas
o metodi zastite gotovih exe programa. Dao je cak i TP izvorni kod
necega slicnom PKLite-u.
Stvar se nakaci na EXE i ne dozvoljava pokretanje programa ako
odredjeni uslovi nisu ispunjeni. Uslove sammozes da odredis
posto imas izvorni kod.
Pretpostavljam da je najbolje da pokupis neke sistemske podatke
o konfiguraciji na kojoj je program instaliran i da, ako se to promeni
sprecis rad programa.
E sad, ne bih ti bas preporucio da brises program, vec samo da ga
onesposobis (prepises preko EXE-a neke bezvezne (RND) vrednosti) ili
slicno. Brisanje moze nekada da izazove unistenje i drugih podataka,
a ne samo tog programa.... Mozes recimo da napravis Trunc
(pogledaj tu funkciju u TP help-u) nad EXE-om.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.209postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: stancanje grafike (stampanje)
Date: Tue, 14 Nov 1995 20:12:52
PS> ==== Asmir Badnjevic rece: ======================================
==== PredraG Supurovic rece :))) ===============================
PS> Pa onda ti mogu pomoci ovako: komande za grafiku su iste za skoro sve
PS> matricne stampace, sto verovatno vazi i za tvoj, pogotovo ako je EPSON
PS> kompatibilac.
EPSON RX80 (za sada)
PS> Da te obradujem, na BS-u imam jedan TPU koji stampa sliku sa ekrana na
PS> bilo koji matricni stampac. To sam sinoc pronasao u arhivi jednog
PS> PAS programa za stampanje kalendara by neki momak iz Vojvodine.
PS> Arhiva s zove KALEND*.* (dovoljno da je nadjes). Sve u njoj je u
PS> sorsu pa i taj TPU za stampanje.
KHM, KHM, samo ima jedan problem ... postu skidam sa VILACO BBSa
(ko' sto pise u ORIGINu) ali ne sa MOG racunala (kompjutera :))
neGo ja fino odem do njiH i oni mi skinu postu. Sta se iz ovoGa moze
zakljuciti??? Da ja nemam MODEM :(((. Znaci ne moGu skinuti source.
Pa bi' te zamolio (jel' treba kleknuti ???) da (ako mozes) source
posaljes putem maila. Kao poruku. Nisam siGuran da li moze, jer sam
pravilnik SETNet-a zaGubio, pa ako moze ... :))))))))
AB> BTW. U kojem jeziku programiras (ako :)) ?
PS> Primeri koje imam u prirucniku su u bejziku (bljak)...
PS> Eto, nadam se da ti je i ovo bilo dovoljno.
Nije. Ne proGramiras valjda u bejziku ??? Ko je kad vidio
proGramirati u bejziku ???
P.S. Posalji primjer pa makar i u bejziku (bljak) ...
PS> Pedja
a ja mislio PredraG Supurovic :)))
pozdraw, ASKO
... I haven't lost my mind; it's backed up on tape somewhere!
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.210postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Tue, 14 Nov 1995 20:12:52
PS> ==== Asmir Badnjevic rece: ======================================
==== PEDJA rece ================================================
PS> Imas na Oreska BBS-u biblioteke koje to rade. U sorsu su naravno.
AB> Koliko kila?
PS> Ma kratko je to. Jedino je sama dkumentacija za XMS velika, sami
PS> sorsovi su kratki.
Dobro ... Hvala.
UzGred znas li mozda kako da promjenljive bacim u memoriju iznad 640kb ???
pozdraw, ASKO
... Press any user to continue.
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.211postmast,
From: Vladimir.Svrkota%f119.n111.z38@setnet.setnet.co.yu (Vladimir Svrkota)
Subject: Strimovi
Date: Mon, 13 Nov 1995 15:56:01
Imam jedan problem prilikom koriscenja strimova. Napisao sam program
koji ce u strim na disku da upise jedan string, ali kakav god da je
string, na disku ce on uvek biti duzine 1. U cemu je problem?
Program sledi:
uses Objects, Drivers;
var s:PDosStream;
ime:PString;
begin
ime^:='Vladimir';
s:=new(PDosStream, Init('text',stCreate));
s^.WriteStr(ime);
s^.Done
end.
Kompajler inace ne javlja nikakvu gresku.
... éí 'aaníígóó 'áhoot'é
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.212postmast,
From: Vladimir.Svrkota%f119.n111.z38@setnet.setnet.co.yu (Vladimir Svrkota)
Subject: Turbovizija
Date: Mon, 13 Nov 1995 15:56:02
Naisao sam na jedan problem koristeci turboviziju. Naime, trebalo bi mi
da mi se u jednom prozoru ispise sadrzaj jedne tekstualne datoteke. Pri
tom ne mislim da to bude editor, tj. sadrzaj te datoteke ne sme da se
menja, vec samo da se vidi. U turboviziji postoji objekat TWindow, ali
ne znam kako da u njega upisem sadrzaj datoteke. Unapred hvala.
... éí 'aaníígóó 'áhoot'é
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.214visnja,
U temi DELPHI iste ove konferencije sa, svecano objavio da sam isti nocas
instalirao i odusevio se. Pitanje vezano za Borland Pascal, TV & PXENGINE:
Da li je neko pokusao da natera PARADOX ENGINE za PASCAL da radi u protected
rezimu (target:protected). Kada cistu TV aplikaciju prevedem u protected
HeapView prijavi mnogo bajtova slobodno na Heap-u. Iz Editor demoa sam
Aktivirao 'ladno stotinak instansi TEditWindow-a. Kada je target >>real<<
par prozora - i heap se zagusi. E sada kada bi mogao i PdoxEngine...
Probao sam onal DLL za windowse da zovem iz dos-a - naravno nema sansi.
Sada mi je ideja da C libove za PDox nekako ulinkujem u protected pascal
aplikaciju, moze li? Ima li neko iskustva?
ILI postoji li sansa da se nesto od DELPHI DBE iskoristi za BP70?
Pozdrav, Visnja.
pascal.215visnja,
> sklepano na brzinu - štampa dela ekrana na epson kompatibilnim
> štampačima, evo ga uz poruku.
Odlicno! Hvala!
pascal.216visnja,
> tom ne mislim da to bude editor, tj. sadrzaj te datoteke ne sme
> da se menja, vec samo da se vidi. U turboviziji postoji objekat
> TWindow, ali ne znam kako da u njega upisem sadrzaj datoteke.
> Unapred hvala.
Nadji u primerima TTextView objekat. Tu je sve sto ti treba...
pascal.217zeljkoj,
> AB> BTW. U kojem jeziku programiras (ako :)) ?
> PS> Primeri koje imam u prirucniku su u bejziku (bljak)...
> PS> Eto, nadam se da ti je i ovo bilo dovoljno.
> Nije. Ne proGramiras valjda u bejziku ??? Ko je kad vidio
> proGramirati u bejziku ???
>
> P.S. Posalji primjer pa makar i u bejziku (bljak) ...
>
Kakve su ovo gluposti u vezi BASIC-a?
Da li ste vas dvojica uopšte nekada videli neki dobar BASIC kompajler
tipa Microsoft Proffessional BASIC-a 7.1 (koji je te, 1990. godine zauzimao
preko 15 MB (što ipak govori nešto o kompleksnosti i mogućnostima),
a mogao je (i još može ;) da pravi DOS i OS/2 programe...
Turbo Pascal je bio vrrrlo skromnih mogućnosti u odnosu na njega.
Da ne pominjem Visual BASIC u izdanjima za DOS i Windows...
Na kraju, BASIC kao jezik (ne uzimajući u obzir konkretnu implementaciju),
je daleko bolji od Pascala.
pascal.218nlazic,
*> ILI postoji li sansa da se nesto od DELPHI DBE iskoristi za BP70?
Delphi U SVEMU posmatraj kao direktnog naslednika BP-a. Dakle,
Delphi=BP80. Iz toga sledi i odgovor na tvoje pitanje: SVE iz BP70 će
progutati i Delphi, a obrnuto zavisi od slučaja do slučaja. Znači, bez
sorseva ništa (nažalost verzije bp-ova nisu kompatibilne na bin. nivou,
tj. unit kompajliran u jednoj ne radi u drugoj).
Pozdrav,
:) Nebojša :)
pascal.219dr.urbano,
Zna li neko kako mogu da procitam ime diskete ? (vrlo je hitno)
Pozdrav,
Vladimir.
P.S.
Da slucajno neko nema nesto o kriptovanju, ili neki primer ?
P.P.S
Koliko pc-game enclikopedija postoji, imam jednu da li ih ima jos ?
pascal.220pedjak,
> Na kraju, BASIC kao jezik (ne uzimajući u obzir konkretnu
> implementaciju), je daleko bolji od Pascala.
U čemu je bolji..?
pascal.221djelovic,
> Da slucajno neko nema nesto o kriptovanju, ili neki primer ?
Bio je ovde neki FAQ na tu temu, potraži đal u dirketorijumima, đal u
ranijim verzijama ove konferencije.
pascal.222zeljkoj,
> U čemu je bolji..?
Na primer - string tip ne postoji u standardnom Pascalu, nego samo char. :)
žak i Turbo Pascal ograničava dužinu stringa na 255 znakova, dok BASIC
ima 32767 (čak i na Spectrumu ;). Dalje, mora se na početku programa
deklarisati max. dužina, dok BASIC ima dinamičke stringove čija max. dužina
ne mora biti poznata pre izvršavanja programa. Ok - BP 7.0 ima null-terminated
stringove pristojne dužine, ali - string ne sme sadržati karakter sa ASCII
kodom 0, dok se u BASIC-u string može sastojati iz bilo kakvih karaktera.
Dalje, u Pascalu je obavezna deklaracija promenljivih (i svega ostalog ;),
dok je u BASIC-u opciona. (Novije verzije kompajlera imaju i naredbe za
implicitnu deklaraciju (na primer, DEFINT A-F, N deklariše sve promenljive
koje počinju slovima od A do F, kao i slovom N, kao INTEGER), a ako neko
baš voli da eksplicitno deklariše svaku promenljivu može to uraditi sa DIM
var AS tip. Sa OPTION EXPLICIT se može uključiti obavezna eksplicitna
deklaracija. :).
U svim novojim BASIC kompajlerima nizovi mogu biti onoliko veliki koliko
ima memorije, dok su i nizovi i liste kod Pascala ograničeni na 64 kB.
Dalje - pored statičkih postoje i dinamički nizovi čija se veličina može
menjati u toku izvršavanja programa.
Pascal po standardu ima procedure i funkcije, a BASIC samo GOSUB/RETURN,
medjutim, svaki noviji kompajler ima i SUB i FUNCTION. Po standardu,
BASIC je malo siromašan što se tiče kontrolnih struktura, ali svaki noviji
kompajler ima osim FOR/NEXT, WHILE/WEND, IF...THEN...ELSE i DO/LOOP (WHILE,
UNTIL), IF...THEN...ELSE...ENDIF, SELECT...CASE, itd. Dakle - nema apsolutno
nikakve potrebe za GOTO. :) Kad već pomenuh ovu naredbu, noviji kompajleri
ne zahtevaju linijske brojeve, a labela se može sastojati i od slova. :)
Nikakve deklaracije labela u BASIC-u nisu potrebne. :)
Ovo su bile stvari kojih sam se setio ovako na brzinu. Ima tu još da
se priča... :)
pascal.223djelovic,
> Pascal po standardu ima procedure i funkcije, a BASIC samo GOSUB/RETURN,
> medjutim, svaki noviji kompajler ima i SUB i FUNCTION. Po standardu,
> BASIC je malo siromašan što se tiče kontrolnih struktura, ali svaki noviji
> kompajler ima osim FOR/NEXT, WHILE/WEND, IF...THEN...ELSE i DO/LOOP
> (WHILE, UNTIL), IF...THEN...ELSE...ENDIF, SELECT...CASE, itd.
Dakle porediš standardni Pascal i razne implementacije Bejzika? :) Ne
deluje baš fer - ako hoćeš da porediš standarde, poredi standarde (standardni
bejzik je krdža). Ako hoćeš da porediš implementacije, evo ti Borland Pascal
ili Delphi, pa mu nađi ravni bejzik kompajler.
Inače, Bejziku se zainsta danas ne može mnogo prigovoriti, osim da zbog
obavezne opcije rada se netipiziranim promenjljivima retko kada radi tako brzo
kao odgovarajući Pascal ili C/C++ kompajler. Takođe mu je velika mana što u
funkcijama/procedurama prima po defaultu parametre po imenu, a ne po vrednosti.
Mada se meni čidi da je izbor jezika pre svega stvar mode i ukusa, a ne
razumnih odluka :).
pascal.224zeljkoj,
> Dakle porediš standardni Pascal i razne implementacije Bejzika?
> :) Ne deluje baš fer - ako hoćeš da porediš standarde, poredi
> standarde (standardni bejzik je krdža). Ako hoćeš da porediš
> implementacije, evo ti Borland Pascal ili Delphi, pa mu nađi
> ravni bejzik kompajler.
I poredio sam BP. Samo se ono u vezi nemanja stringova ;) odnosilo na
standard Pascala. A što se tiče Delphija, njega možemo da poredimo sa VB 4.0.
> Inače, Bejziku se zainsta danas ne može mnogo prigovoriti, osim
> da zbog obavezne opcije rada se netipiziranim promenjljivima
Obavezne netipizirane promenljive? Ne razumem.
> kao odgovarajući Pascal ili C/C++ kompajler. Takođe mu je
> velika mana što u funkcijama/procedurama prima po defaultu
> parametre po imenu, a ne po vrednosti.
Jedno BYVAL pre parametra rešava problem. :)
> Mada se meni čidi da je izbor jezika pre svega stvar mode i
> ukusa, a ne razumnih odluka :).
S obzirom da su sada jezici manje-više istih mogućnosti, tako je. :)
pascal.226pedjak,
> Ovo su bile stvari kojih sam se setio ovako na brzinu. Ima tu još da
> se priča... :)
Da ti sada ne bi kvotirao celu poruku... Da te podsetim dela poruke na
koju sam ti odgovorio:
===============================
7.217 PC.PROG.6:pascal
zeljkoj, 17.11.Pet 13:10, 872 chr
Odgovor na 7.209, postmast, 16.11.žet 06:27
---------------------------------------------------------
.
.
.
Na kraju, BASIC kao jezik (ne uzimajući u obzir konkretnu implementaciju),
je daleko bolji od Pascala.
----------------------------------------------- 7.217 ---
Kao argumente za svoju tvrdnju ti mi pak navodiš prednosti
konkretnih implementacija. Nisi baš dosledan.
pascal.227vitez.koja,
#=> ima 32767 (čak i na Spectrumu ;).
A, jok. Na Spektrumu je string mogao da ima do 256 znakova.
#=> Dalje, u Pascalu je obavezna deklaracija promenljivih (i
#=> svega ostalog ;), dok je u BASIC-u opciona.
žega se pametan stidi, time se lud ponosi - kaže naš narod.
#=> U svim novojim BASIC kompajlerima nizovi mogu biti
#=> onoliko veliki koliko ima memorije, dok su i nizovi i
#=> liste kod Pascala ograničeni na 64 kB.
Porediš apstraktne "novije BASIC kompajlere" sa određenim Pascal
kompajlerom za određeni računar. Kako zgodno ;) Sa jedne strane,
opraštaš BASICu nemogućnost pravljenja funkcija (kao, imaju sve
novije verzije;), sa druge strane kačiš Pascalu i ono što nije do
njega - segmentna ograničenja PCa.
Lično mislim da su oba pomenuta jezika slabija od Ca (basic
mi je suviše mrljav, pascal suviše krut), ali makar se trudim da
realno sagledam vrednost svakog. Mogao bi i ti da počneš.
E, da, setih se: basic programer doživljava daleko veći
kulturološki šok pri prelasku na neki moderniji jezik, nego
njegov pascal kolega. Ova osobina možda nije bitna za samu
upotrebu jezika, ali da li bi ti pristao da za vozački ispit
A kategorije učiš vožnju u tramvaju?
pascal.228vitez.koja,
#=> Zna li neko kako mogu da procitam ime diskete ? (vrlo
#=> je hitno)
Ako misliš na volume label, potraži sa findfirst, u osnovnim
direktorijumu, fajl sa odgovarajućim atributom.
pascal.229zeljkoj,
> Kao argumente za svoju tvrdnju ti mi pak navodiš prednosti
> konkretnih implementacija. Nisi baš dosledan.
Kao što rekoh, samo su što se tiče stringova poredjeni standardi.
Ostalo je BP 7.0 (1992.) - MS QBX PDS 7.1 (1990.)
pascal.230zeljkoj,
># => ima 32767 (čak i na Spectrumu ;).
>
> A, jok. Na Spektrumu je string mogao da ima do 256 znakova.
Hm... ček' da pogledam knjige... :)
># => Dalje, u Pascalu je obavezna deklaracija promenljivih (i
># => svega ostalog ;), dok je u BASIC-u opciona.
>
> žega se pametan stidi, time se lud ponosi - kaže naš narod.
Deklarisanje promenljivih možda jeste korisno, ali je strašno zamorno.
Uostalom, postoji OPTION EXPLICIT, pa možeš da biraš. :)
> Porediš apstraktne "novije BASIC kompajlere" sa određenim
> Pascal kompajlerom za određeni računar. Kako zgodno ;) Sa jedne
> strane,
Pod 'noviji BASIC kompajler' podrazumevam MS QBX PDS 7.1 iz 1990. godine.
> opraštaš BASICu nemogućnost pravljenja funkcija (kao, imaju sve
> novije verzije;), sa druge strane kačiš Pascalu i ono što nije
> do
Pa imaju. Još je i prastari MS QB od pre desetak godina mogao da
pravi funkcije i procedure, kao uostalom i Borlandov TB.
> novije verzije;), sa druge strane kačiš Pascalu i ono što nije
> do njega - segmentna ograničenja PCa.
koja BASIC uspeva da prevazidje. :)
> E, da, setih se: basic programer doživljava daleko veći
> kulturološki šok pri prelasku na neki moderniji jezik, nego
Šta je to 'kulturološki šok'? :))
pascal.231visnja,
> Na kraju, BASIC kao jezik (ne uzimajući u obzir konkretnu
> implementaciju),
Ja se profesionalno bavim samo pascalom, bejzik mi je naravno "maternji"
jezik. Iako sam okoreli pascal-ovac, ruku na srce moram priznati da
si u pravu, samo treba naci stvarno dobar kompajler. To je nekada
davno i BillG rekao, nesto u fazonu: 'Nema toga sto ne mogu da napisem
u QBASIC-u'.
pascal.232visnja,
> funkcijama/procedurama prima po defaultu parametre po imenu, a
> ne po vrednosti. Mada se meni čidi da je izbor jezika pre svega
> stvar mode i ukusa, a ne
Hmmm, Ja rekoh da sam okoreli PASCAL-ovac, ali vide li ti na spectrumu
implementaciju BETA BASIC-a. Rekurzija u njemu radi fenomenalno, dakle
podrzava parametre po vrednosti, jos sto moze i u RUN TIME sam sebe
da menja (mislim program), brise, pise...
Voleo bih da u BP-u sa kojim po ceo dan radim imam onako mocnu
spectrumovu VAL naredbu :
10 a$="10+30/2"
20 n=VAL (a$)
30 PRINT n
i on mi napise 25 !
pascal.233visnja,
> Lično mislim da su oba pomenuta jezika slabija od Ca (basic
> mi je suviše mrljav, pascal suviše krut), ali makar se trudim
> da realno sagledam vrednost svakog. Mogao bi i ti da počneš.
Sa stanovista LISP-a ili FORTH-a C,BASIC i PASCAL su isti jezici!
Da ne sirimo mnogo diskusiju, meni bi se C ili C++ vise svideli od
pascala da sam nasao dobar C (C++) compiler. Za istu stvar mi BP70 ili
DELPHI oduzme oko minut a BC4.5 ihaaaaaa. (prevodjenje slicnih primera
iz SAMPLES/EXAMPLES dir-ova). Isto vazi i za zauzimanje diska.
I koji je jezik na kraju najbolji. Besmislena diskusija, svako bi trebao
da bira sta mu treba. Sta mi vredi propterecenje operatora u C++, kada mi
to nije bila primarna potreba pre par godina. Trebao mi je dobar DOS
korisnicki interfejs, pogledao sam TV iz BC-a i BP-a i uzeo BP.
itd, itd...
pascal.234postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: stancanje grafike (stampanje)
Date: Wed, 15 Nov 1995 23:06:53
Asmir Badnjevic said:
PS> Primeri koje imam u prirucniku su u bejziku (bljak)...
AB> Nije. Ne proGramiras valjda u bejziku ??? Ko je kad vidio
AB> proGramirati u bejziku ???
Vide li ti ono "bljak" :))))))
Salim se, normalno da znam i bejzik, samo ono sto znam je
bejzik sa Spektruma, mada se to uklapa i u ovaj... Na PC-u
mi je TPascal prirastao srcu i ne odricem ga se. Bas lep
jezik, kulturan, civilizovan, jasan i prezican, a daje ti
dovoljno slobode da brljas ako bas hoces.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.235postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: EMS XMS
Date: Wed, 15 Nov 1995 23:06:54
Asmir Badnjevic said:
AB> UzGred znas li mozda kako da promjenljive bacim u memoriju iznad
AB> 640kb ???
Pa upravo uz pomoc nekebiblioteke za XMS/EMS. One ti obicno daju
zamene za GetMem i FreeMem, samo stoalociraju memoriju u gornjoj
memoriji. Nisam koristio ali toliko sam mogao da zakljucim iz
dokumentacije.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.236postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: [1/2] stancanje grafike (stampanje)
Date: Wed, 15 Nov 1995 23:07:13
>>> Part 1 of 2...
Asmir Badnjevic to Predrag Supurovic about
AB> source. Pa bi' te zamolio (jel' treba kleknuti ???) da (ako mozes)
AB> source posaljes putem maila. Kao poruku. Nisam siGuran da li moze,
Unit GraphPRN;
{
This unit is designed to send graphics images to Epson Compatible and late
model IBM ProPrinter Dot Matrix printers. It takes the image from the
currently active Viewport, determined by a call to GetViewSettings, and
transfers that image to the printer.
}
Interface
Uses Dos, Graph; { Used to get the Image from the Screen }
Var
LST : Text;
Procedure HardCopy (Gmode: Integer);
{ Procedure HardCopy prints the current ViewPort To an IBM or Epson compatible
graphics printer.
Valid Gmode numbers are: -4 to -1 for Epson and IBM Graphic Printers
0 to 7 for Epson Printers
}
Implementation
Procedure HardCopy (Gmode: Integer);
Const
Bits : Array [0..7] of Byte = (128,64,32,16,8,4,2,1);
Var
X,Y,YOfs : Integer; { Screen location variables }
BitData,MaxBits : Byte; { Number of Bits to transfer }
Vport : ViewPortType; { Used to get view settings }
Height, Width : Word; { Size of image to transfer }
HiBit, LoBit : Char; { Char size of image }
LineSpacing, { Additional Info for dump }
GraphixPrefix : String[10]; { " " " " }
Begin
LineSpacing := #27+'3'+#24; { 24/216 inch line spacing }
Case Gmode Of
-1: GraphixPrefix := #27+'K'; { Std. Density }
-2: GraphixPrefix := #27+'L'; { Double Density }
-3: GraphixPrefix := #27+'Y'; { Dbl. Density Dbl. Speed }
-4: GraphixPrefix := #27+'Z'; { Quad. Density }
0..7: GraphixPrefix := #27+'*'+Chr(Gmode); { 8-Pin Bit Image }
Else
Exit; { Invalid Mode Selection }
End;
GetViewSettings( Vport ); { Get size of image to }
Height := Vport.Y2 - Vport.Y1; { be printed }
Width := ( Vport.X2 + 1 ) - Vport.X1;
HiBit := Chr(Hi(Width)); {Translate sizes to char }
LoBit := Chr(Lo(Width)); { for output to printer }
Write( LST, LineSpacing );
Y := 0;
While Y < Height Do
Begin
Write( LST,GraphixPrefix,LoBit,HiBit );
For X := 0 to Width-1 Do
Begin
BitData := 0;
If y + 7 <= Height
Then MaxBits := 7
Else
MaxBits := Height - Y;
For YOfs := 0 to MaxBits do
Begin
If GetPixel( X, YOfs+Y ) > 0
Then BitData := BitData or Bits[YOfs];
End;
Write( LST, Chr(BitData) );
End;
WriteLn ( LST );
Inc(Y,8);
End;
End;
{$F+}
{ LSTNoFunction performs a NUL operation for a Reset or Rewrite on LST
(Just in case)
}
Function LSTNoFunction( Var F: TextRec ): integer;
Begin
LSTNoFunction := 0; { No error }
>>> Continued to next message...
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.237postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: [2/2] stancanje grafike (stampanje)
Date: Wed, 15 Nov 1995 23:07:14
>>> Part 2 of 2...
end;
{ LSTOutputToPrinter sends the output to the Printer port number stored in the
first byte of the UserData area of the Text Record.
}
Function LSTOutputToPrinter( Var F: TextRec ): integer;
var
Regs: Registers;
P : word;
begin
With F do
Begin
P := 0;
Regs.AH := 16;
While (P < BufPos) and ((regs.ah and 16) = 16) do
Begin
Regs.AL := Ord(BufPtr^[P]);
Regs.AH := 0;
Regs.DX := UserData[1];
Intr($17,Regs);
Inc(P);
end;
BufPos := 0;
End;
if (Regs.AH and 16) = 16 then
LSTOutputToPrinter := 0 { No error }
else
if (Regs.AH and 32 ) = 32 then
LSTOutputToPrinter := 159 { Out of Paper }
else
LSTOutputToPrinter := 160; { Device write Fault }
End;
{$F-}
{ AssignLST both sets up the LST text file record as would ASSIGN, and
initializes it as would a RESET. It also stores the Port number in the first
Byte of the UserData area.
}
Procedure AssignLST( Port:Byte );
Begin
With TextRec(LST) do
begin
Handle := $FFF0;
Mode := fmOutput;
BufSize := SizeOf(Buffer);
BufPtr := @Buffer;
BufPos := 0;
OpenFunc := @LSTNoFunction;
InOutFunc := @LSTOutputToPrinter;
FlushFunc := @LSTOutputToPrinter;
CloseFunc := @LSTOutputToPrinter;
UserData[1] := Port - 1; { We subtract one because }
end; { Dos Counts from zero. }
end;
Begin
AssignLST( 1 ); { Sets output printer to LPT1 by default.
Change this value to a 2 to select LPT2.
Note: BIOS only handles LPT1 and LPT2. }
End.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.238postmast,
From: Vladimir.Svrkota%f119.n111.z38@setnet.setnet.co.yu (Vladimir Svrkota)
Subject: GRAPH.TPU
Date: Wed, 15 Nov 1995 10:23:00
VS> fajl GRAPH.TPU mi je unisten, a grafika mi u ovom trenutku treba.
BZ> Javi se na tlf ***-*** radnim danom posle podne trazi Boris-a
Milan Smederevac mi je to vec uploadovao na Ecstasy, tako da je sve OK.
Thanx anyway :)
... éí 'aaníígóó 'áhoot'é
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.239postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: PASCAL
Date: Tue, 14 Nov 95 12:17:00 +0100
>>> Sada mene zanima kako stoji stvar sa laserima, ne bih da pisem
>>> sam rutine, ima li neko neki UNIT?
--->
---> Ne znam za unit, al' mislim da na FFS-u (?) moze da se nade BGI za
---> rad sa stampacima.
Ima fonu BGI koji kao ti simulira ekran na
STAMPACU i tamo povlacis linije ... :)))
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.240postmast,
From: SKOA@vila.bc.co.yu
Subject: pascal
Date: Fri, 17 Nov 95 14:54:02 GMT
-=> Quoting "Milos Visnjic" <visnja@sezam.UUCP> to All <=-
> Da li neko zna kako da se radi sa prosirenom memorijom? Recimo
> da neke graficke ekrane sa diska ne ucitam u osnovnu memoriju
> nego u prosirenu iznad 640 Kb.
"V<> Moja preporuka ti je da program prevedes u PROTECTED rezimu
"V<> (TARGET:PROTECT), Tada mozes koristiti GLOBALALLOC iz nekog WIN unita
"V<> da alociras memorije koliko hoces (koliko imas), da ne kazem vidis
"V<> memoriju linearno. Ako te interesuje ovakva metoda javi, pa da se
"V<> prisetim tacno kako se radi. Mada je bilo o ovome reci pre koji
"V<> mesec... -!- UUCP to EZY importer by ZDule 06.95
Je li to u BP? Ako tako uradim onda proGram moGu koristiti samo
u windowsu. Ili Ga moGu koristiti i u DOSu? Interesuje me pa bi
moGao da objasnis.
... Press any user to continue.
--- FMail/386 1.02
* Origin: Vila co.BBS ■ Prijedor_RS ■ +381 79 11 301 ■ B.C.: (95:790/113)
pascal.241djelovic,
> Lično mislim da su oba pomenuta jezika slabija od Ca (basic
> mi je suviše mrljav, pascal suviše krut)
Lično mi se čini da su C i Pascal (ili Modula-2, nije bitno) funkcionalno
identični, s tim što Pascal ipak ima daleko čitljiviju sintaksu, plus nema one
perverzne operatore koji danas uz optimizujuće kompajlere ionako više nisu ni
bitni.
pascal.242vitez.koja,
#=>> Lično mislim da su oba pomenuta jezika slabija od Ca
#=>> (basic mi je suviše mrljav, pascal suviše krut)
#=>
#=> Lično mi se čini da su C i Pascal (ili Modula-2, nije
#=> bitno) funkcionalno identični, s tim što Pascal ipak ima
#=> daleko čitljiviju sintaksu, plus nema one
Pošto su u pitanju jezici (manje-više) istog nivoa i opšte
namene, nije ni čudo. Ali, C mnogo više pristaje _mom_ načinu
razmišljanja (zato sam i počeo rečenicu sa "lično"). Uzmimo u
razmatranje neki prost primer, npr. skidanje ANSI sekvenci iz
teksta koji se nalazi u baferu:
while(*text) {
if(*text==ESC)
if(*(text+1)=='[') {
while(!isalpha(*text++));
continue;
}
putch(*text++);
}
U Pascalu oko ovog trivijalnog problema ima mnogo više da se
mozga, i to ne zbog prirode problema nego zbog prirode jezika.
Demantujte me, napišite kraće/logičnije od ovoga u Pascalu. (i u
Cu najverovatnije može kraće, ovo sam napisao iz glave).
pascal.243vitez.koja,
#=> Ovo su bile stvari kojih sam se setio ovako na brzinu. Ima tu još
#=> da se priča... :)
Nego, zaboravi ti da pomeneš najveću manu (Q)Basica, kad smo već
kod stringova, dakle:
DIM a AS STRING * 10
a="qwerty"
IF a="qwerty"
PRINT "Dobro je :)"
ELSE
PRINT "Nije dobro"
END IF
I naravno biće ispisano "Nije dobro", zato što se a dopunjuje sa
spejsovima do "pune dužine" (10 u ovom slučaju), pa se mora kod
ovakvih upoređivanja raditi stalno RTRIM$(a)...
sk
pascal.244zeljkoj,
> Nego, zaboravi ti da pomeneš najveću manu (Q)Basica, kad smo
> već kod stringova, dakle:
>
> DIM a AS STRING * 10
> a="qwerty"
> IF a="qwerty"
> PRINT "Dobro je :)"
> ELSE
> PRINT "Nije dobro"
> END IF
>
> I naravno biće ispisano "Nije dobro", zato što se a dopunjuje
> sa spejsovima do "pune dužine" (10 u ovom slučaju), pa se mora
> kod ovakvih upoređivanja raditi stalno RTRIM$(a)...
E stvaaaaarno... PA TO SU STRINGOVI FIKSNE DUčINE, uvedeni tek u kasnijim
verzijama QBasica (valjda zbog FORTRAN nostalgičara ;).
Zašto bi uopšte pisao DIM a AS STRING * 10 kad možeš samo
DIM a AS STRING
I tako deklarišeš standardni variable length string sa kojim sve radi ok.
BTW, zašto bi pisao i DIM a AS STRING kad možeš jednostavno da upotrebiš
(bez ikakve deklaracije) promenljivu A$, što je potpuno isto. :)
Naravno, može i DIM a$
BASIC nudi desetine mogućnosti, za razliku od krutog Pascala. :)
pascal.245djelovic,
> while(*text) {
> if(*text==ESC)
> if(*(text+1)=='[') {
> while(!isalpha(*text++));
> continue;
> }
> putch(*text++);
> }
>
> U Pascalu oko ovog trivijalnog problema ima mnogo više da se
> mozga
Ako nisi svestan koliko je ovaj kod gore nečitljiv, ondak si stvarno
zabrazdio :). Inače, isti kod na Pascalu ima možda jedan red više, no pošto
nisam napisao red na Pascalu već par godina, ne usuđujem se da ti to
demonstriram :). Neko malo verziraniji će to bolje uraditi.
pascal.246visnja,
> Salim se, normalno da znam i bejzik, samo ono sto znam je
> bejzik sa Spektruma, mada se to uklapa i u ovaj... Na PC-u
> mi je TPascal prirastao srcu i ne odricem ga se. Bas lep
> jezik, kulturan, civilizovan, jasan i prezican, a daje ti
> dovoljno slobode da brljas ako bas hoces.
TAKO JE! Vidim ja da su Spectrumovci uglavnom presli na TPascal.
pascal.247visnja,
> Je li to u BP? Ako tako uradim onda proGram moGu koristiti samo
> u windowsu. Ili Ga moGu koristiti i u DOSu? Interesuje me pa bi
> moGao da objasnis.
Jeste u BP-u je. Program tada NIJE WINDOWS aplikacija. Samo mu treba
DPMI16.OVL i RTMLOAD.EXE. Radi sa DOS-om i svakom masinom na kojoj radi
borlandov DPMI. Ne daj da te zbuni to sto u PROTECTED modu koristis neke
unite iz WINDOWS-a.
Pogledaj primer:
uses WinApi,Crt;
var MemHandle:Word;
begin
ClrScr;
WriteLn(getfreespace(0));
ReadKey;
MemHandle:=GlobalAlloc(GMEM_FIXED,1000000);
WriteLn(getfreespace(0));
ReadKey;
GlobalFree(memhandle);
WriteLn(getfreespace(0));
ReadKey;
end.
Dalje, pogledaj HELP za WinApi, sve te funkcije su ti dostupne u DOS protected
modu. Pogledaj kako sve mozes alocirati memoriju, pored GMEM_FIXED. Divno,
zar ne?
Ne zaboravi da ovaj primer iskompajliras sa opcijom TARGET:PROTECTED iz
BP 7.0 IDE.
Pozdrav, Visnja.
pascal.248dr.urbano,
Mislim da se nismo razumeli mislim iz programa da procitam ime diskete !
To je valjda negde u nultom sektoru ako se ne varam. I koliko lako moze da
se promeni ime diskete ?
Pozdrav,
Vladimir.
P.S.
Kada neki program (npr. Diskdupe) pravi ekzaktnu kopiju diskete kako
tretira bad sector-e. Da li gleda sta je ispod njih ili jednostavno
na kopiji disketi ostavi mesto i zove ga bad sector ?
P.P.S.S.
Pisem zastitu za neki program pa su mi potrebne ove informacije.
pascal.249dr.urbano,
Ako mozes malo preciznije (naravno ako se secas) jer sam kompletno
pretrazio stare pc.prog konferencije, i ne nadjoh nista !
Pozdrav,
Vladimir.
pascal.250jablan,
> davno i BillG rekao, nesto u fazonu: 'Nema toga sto ne mogu da
> napisem u QBASIC-u'.
Što se, naravno, i pokazalo tačnim. Evo, recimo, Windows. ;>
pascal.251jablan,
Subj: pascal vs C
>> while(*text) {
>> if(*text==ESC)
>> if(*(text+1)=='[') {
>> while(!isalpha(*text++));
>> continue;
>> }
>> putch(*text++);
>> }
> Ako nisi svestan koliko je ovaj kod gore nečitljiv, ondak si
> stvarno zabrazdio :). Inače, isti kod na Pascalu ima možda
> jedan red više, no pošto nisam napisao red na Pascalu već par
> godina, ne usuđujem se da ti to demonstriram :). Neko malo
> verziraniji će to bolje uraditi.
Ono sa !isalpha mi je sumnjivo, ali ja sam ga bukvalno preveo.
for i:=1 to Length(Buf) do
begin
if (Buf[i]=chr(27)) and (Buf[i+1]='[') then
begin
i:=i+2;
while not ((Buf[i] in ['A'..'Z']) and (Buf[i] in ['a'..'z')]) do
i:=i+1;
end;
Write(Buf[i]);
end;
Jes' da je malko duže od ovog u C-u, ali se bar razume. Pa kladim se
da će i neko ko ne zna paskal ovo bez problema razumeti. Uostalom,
zato paskal služi i u edukativne svrhe. E sad, stvar je kompajlera
kako će ovo prevesti i da li će C biti brži nego paskal. Optimizacija
u 90% slučajeva na sadašnjim mašinama nije toliko bitna.
pascal.252vitez.koja,
#=> Zašto bi uopšte pisao DIM a AS STRING * 10 kad možeš samo
#=> DIM a AS STRING
Zbog rada sa recordima sa nekom datotekom za koje mi je neophodno
potrebno da svi budu iste dužine.
sk
pascal.253zeljkoj,
># => Zašto bi uopšte pisao DIM a AS STRING * 10 kad možeš samo
># => DIM a AS STRING
>
> Zbog rada sa recordima sa nekom datotekom za koje mi je
> neophodno potrebno da svi budu iste dužine.
Koristi (možda malo zastareli ;) FIELD/GET/PUT...
Ustvari, rešenje gornjeg problema je da pišeš RTRIM$(a) umesto samo a,
da bi višak blankova bio izbačen. :)
pascal.254djelovic,
> end;
> Write(Buf[i]);
Između ova dva reda ti fali jedno "else", ali dobro de :). Ukoliko podesimo
begin-ove da se slažu sa kojinim "{", dobijamo kod sasim slične dužine.
> E sad, stvar je kompajlera
> kako će ovo prevesti i da li će C biti brži nego paskal. Optimizacija
> u 90% slučajeva na sadašnjim mašinama nije toliko bitna.
Ovo je malo problematično?
C kompajleri prave bolji kod, dal' zato što je više u njih uloženo, dal'
zato što Borland jedini pravi Pascal pa je onda od njega sve brže :).
No, Pascal bi definitivno trebao da može bolje da se izoptimizuje, s
obzirom na to da kompajler ne mora toliko da strepi od "alias" pointera koji u
ogromnoj meri kvare optimizaciju.
--
A da optimizacija nije bitna... Pa sad, ja držim da je ručna optimizacija
čak štetna, ali ona koju radi kompajler? Razlika sa i bez nje je drrrastićna.
pascal.255dr.urbano,
Pisem neku zastitu za program (install) pa bi bilo super kad bi mi neko znao da
kaze sta se desava kada kopiram disketu na disketu nekim programom(npr
diskdupe)koji prai egzaktnu kopiju diskete. Kako tretira bad sector_e dali na
disketi kopiji stvori bad sector ili i pise nesto u njega ?
Dakle moze li se nesto sakriti u bad sector originalne diskete i kasnije to
koristiti ?
Postoji li neki drugi sigurniji nacin da se procita ime diskete (broj nesto)
a da nije lako promenjiv?
Jer kolko ja znam ti podaci se drze u nultom sectoru ali diskdupe moze sve to
da prenese na drugu disketu tako da nista od zastite (pisem install proceduru).
Pozdrav,
Vladimir.
pascal.256atech,
> Pisem neku zastitu za program (install) pa bi bilo super kad bi
> mi neko znao da kaze sta se desava kada kopiram disketu na
> disketu nekim programom(npr diskdupe)koji prai egzaktnu kopiju
> diskete. Kako tretira bad sector_e dali na disketi kopiji
> stvori bad sector ili i pise nesto u njega ? Dakle moze li se
> nesto sakriti u bad sector originalne diskete i kasnije to
> koristiti ?
Sta god da budes koristio (za koji se algoritam odlucis) vodi
racuna o tome da dobro zastitis sam algritam. U suprotnom sve pada
u vodu. Ovaj tip zastite o kome govoris ne preporucujem (kupcu je
neophodno obezbediti bekap) ali ako zelis da ga testiras koristi
programe kao sto su anadisk ili teledisk a ne diskdupe.
> Postoji li neki drugi sigurniji nacin da se procita
> ime diskete (broj nesto) a da nije lako promenjiv?
Ime diskete (iz boot-a) kao i serijski broj diskete koji se
nalaze u boot-u je veoma lako procitati a jos lakse izmeniti. Ne
postoji efikasan nacin sprecavanja provalnika da izmeni ove podatke.
Ne prepoucujem isti. O ovome je vec nekoliko puta bilo govora pre par
nedelja u ovoj istoj temi.
> Jer kolko ja znam ti podaci se drze u nultom sectoru ali
> diskdupe moze sve to da prenese na drugu disketu tako da nista
> od zastite (pisem install proceduru).
Cak i da ih ne prenosi opet nista od zastite jer ih je moguce
promeniti. Opet, cak i ako uspes da napravis savrsen algoritam koji
ce ih citati i kontrolisati isti se moze lako izmeniti pa opet nista
od zastite sto nas vraca na onaj pasus o zastiti algoritma.
Ako prodajes program poznatom kupcu za koga znas da nece zloupotrebiti
ili pokusati da zloupotrebi tvoj program svaka zastita je ok. Ako mislis
da je tvoj program vredan piratovanja razmisli i o drugim solucijama...
pascal.257vitez.koja,
#=> Mislim da se nismo razumeli mislim iz programa da
#=> procitam ime diskete !
Razumeli smo se mi, samo ti hoćeš jedno a tražiš drugo. Reši
da li ti treba ime (volume label) ili serijski broj diska, pa
javi...
pascal.258visnja,
>> davno i BillG rekao, nesto u fazonu: 'Nema toga sto ne mogu da
>> napisem u QBASIC-u'.
>
> Što se, naravno, i pokazalo tačnim. Evo, recimo, Windows. ;>
Bravo majstore, tako je. Dobro sam se nasmejao, da znas da ih je
pisao
u QBASIC-u.
pascal.259visnja,
> for i:=1 to Length(Buf) do
> begin
> if (Buf[i]=chr(27)) and (Buf[i+1]='[') then
> begin
> i:=i+2;
> while not ((Buf[i] in ['A'..'Z']) and (Buf[i] in ['a'..'z')])
> do i:=i+1;
> end;
> Write(Buf[i]);
> end;
>
> Jes' da je malko duže od ovog u C-u, ali se bar razume. Pa
> kladim se da će i neko ko ne zna paskal ovo bez problema
> razumeti. Uostalom,
Aux, burazeru, ja razmisljao da repliciram posto radim u PASCALU, ali
kako covek rece, malo vise razmisljanja je trebalo (dakle u pravu je)
pa sam odustao, ali sad se moram umesati:
- bolje umesto Chr(27) staviti samo #27
- i:=i+2 = INC(i,2);
- i:=i+1 = INC(i);
- i BP ima funkciju ISAPLHA,
tako ce program vise liciti na C, a i ovo sto pominjem ne pripada
standardnom
pascal-u. A i Buf bi trebao da bude pointer, fleksibilnije je.
Ocigledno
da sam zreo za C.
A i ne slazem se da pascal sluzi za edukativne svrhe, barem ne
Borland Pascal.
Stvar je ipak poprilicno individualna. Zakleti sam pascalovac i bolje
poznajem
pascal nego C - vise mi je vremena trebalo da vizuelno proverim
semantiku
ovog pascal programa nego onog u C-u ?!? I dalje tvrdim da je PASCAl
bolji
jezik od C-a. Zasto ? Nemam pojma, ja ga volim, volim i C, ali pascal
vise.
Stvar emocija! Pamet mi govori da je C bolje, ali srce...
pascal.260.sima,
║║ Voleo bih da u BP-u sa kojim po ceo dan radim imam onako mocnu
║║ spectrumovu VAL naredbu :
Pa i meni je nedostajala u početku. ALI... VAL naredba, kao i sve
ostale se interpretiraju i ne mogu da budu brže od moje val naredbe u
pascalu. Jednom je napisana i više mi ne nedostaje :) Što se tiče raznih
MS-ovih kompajlera i da li su bolji ili lošiji, moj stav je: NE koristim
ni jedan MS-ov kompajler. U životu sam koristio samo MS Fortran jer mi
je trebalo nešto malo za fakultet. Njihov interface je za mazohiste, a
ja ne spadam u tu grupu ljudi. I sam stav MS-a da će koristiti Watcom
(nadam se da nije dezinformacija) radi poboljšanja performansi govori
sam za sebe.
Što se tiče samomodifikacije koda, po meni to spada u prljavo
programiranje, teško se prenosi i vrlo je sklono greškama koje su skoro
nemoguće za otkrivanje.
pascal.261.sima,
║║ Kao što rekoh, samo su što se tiče stringova poredjeni standardi.
║║ Ostalo je BP 7.0 (1992.) - MS QBX PDS 7.1 (1990.)
Što se tiče stringova stvari stoje ovako.
U BP 7.0 je uveden null-terminated string tip, kao u C-u. Veličina je
ograničena na 65535. Evo i ja kao ljubitelj Pascala ću da vam pomognem.
Ono što ne valja nisu strignovi ni val naredba ni.... Meni najviše smeta
komplikovanost povezivanja C-a i Asemblera sa Pascalom. Tu su zabrljali.
Može da se linkuje pod uslovom da su globalne promenljive definisane u
delu programa koji je napisan na Pascalu.
pascal.262.sima,
║║ Lično mislim da su oba pomenuta jezika slabija od Ca (basic
║║ mi je suviše mrljav, pascal suviše krut), ali makar se trudim da
║║ realno sagledam vrednost svakog. Mogao bi i ti da počneš.
Evo ga lep komentar. U potpunosti se slažem. Lično koristim Pascal za
sitnice a C za krupnice. A BASIC za hm...( ne mogu da se setim :)
pascal.263vitez.koja,
Imaš par grešaka u programu (npr. unutrašnja while petlja je
beskonačna, ekvivalentna sa "while true do" ali da se ne kačimo
za to.
Logički izrazi tipa "X in ['a'..'z']" su (mnogo?) sporiji nego
pešačko ispitivanje "if X>='a' and X<='z'", ali nema ni to veze.
Ono što ima veze je da tvoj pascal program radi sa baferom dužine
do 256 bajtova, što je smešno. Ako ne koristiš Turbo Pascalov tip
string, nego radiš sa najobičnijim nizom, onda ne možeš da
koristiš funkciju Length, pa ti program manje ili više raste, već
prema tome kako organizuješ stringove.
Inače, i onaj moj primer ima nepotrebnih redova, tako da se
prostim brisanjem stiže do
while(*text) {
if(*text==ESC && *(text+1)=='[')
while(!isalpha(*text++));
putch(*text++);
}
Slažem se da je veoma nečitljivo.
Još jedna bitna stvar koju C ima, a konkurencija ne, su xprintf
funkcije i njihovo formatiranje izlaza. Recimo, sa
"%s\r\n%-8s%s\r\n %s, %s, %d chr\r\n Odgovor na %s, %s\r\n%s\r\n"
Je definisan ceo heder konferencijskih poruka na Sezamu. Istina,
to može svako da napiše, ali bolje je kada ne mora ;)
Na kraju, da me neko ne razume pogrešno, ja sam odrastao na
Pascalu i mnogo ga volim... Pravi domaći izdajnik O:)
pascal.264jablan,
> Imaš par grešaka u programu (npr. unutrašnja while petlja je
> beskonačna, ekvivalentna sa "while true do" ali da se ne kačimo
> za to.
U pravu si, umesto 'and' treba 'or'.
> Logički izrazi tipa "X in ['a'..'z']" su (mnogo?) sporiji nego
> pešačko ispitivanje "if X>='a' and X<='z'", ali nema ni to
> veze.
U principu, mislio sam da je ovo rasprava 'jezik protiv jezika', a ne
'implementacija protiv implementacije'. Nisam mnogo obraćao pažnju na
brzinu, nego sam hteo da ispadne malo 'virtovski'.:)
> Još jedna bitna stvar koju C ima, a konkurencija ne, su xprintf
> funkcije i njihovo formatiranje izlaza. Recimo, sa
>
> "%s\r\n%-8s%s\r\n %s, %s, %d chr\r\n Odgovor na
> %s, %s\r\n%s\r\n"
>
> Je definisan ceo heder konferencijskih poruka na Sezamu.
> Istina, to može svako da napiše, ali bolje je kada ne mora ;)
I ovo, kao i sve ostalo u svakom programskom jeziku ima svoje dobre i
svoje loše strane.
pascal.265jablan,
>> for i:=1 to Length(Buf) do
>> begin
>> if (Buf[i]=chr(27)) and (Buf[i+1]='[') then
>> begin
>> i:=i+2;
>> while not ((Buf[i] in ['A'..'Z']) or (Buf[i] in ['a'..'z']))
>> do i:=i+1;
>> end;
>> Write(Buf[i]);
>> end;
> - bolje umesto Chr(27) staviti samo #27
> - i:=i+2 = INC(i,2);
> - i:=i+1 = INC(i);
> - i BP ima funkciju ISAPLHA,
> tako ce program vise liciti na C, a i ovo sto pominjem ne
> pripada standardnom
> pascal-u. A i Buf bi trebao da bude pointer, fleksibilnije je.
Hm, kao što sam rekao, trudio sam se da poštujem ISO Pascal (mada
nisam u potpunosti uspeo), tako da nisam želeo da koristim ove
nestandardne hibridne ekstenzije. Ruku na srce, paskal je bez njih
ništa, ali jezik je jezik... Al', ajde da ti odgovorim: čini mi se da
bi svaki kompajler isto preveo sve ovo što si nabrojao. ADD AX,2 je
čak brže od 2xINC AX.
> A i ne slazem se da pascal sluzi za edukativne svrhe, barem ne
> Borland Pascal.
E, ja mislim na standarni paskal, jer Borland paskal ne liči više na
paskal, i smatram da nije dostojan da nosi to ime. Standardan paskal,
inače, nije za drugo, sem za edukativne svrhe, jer šta će ti paskal
bez raznih 'uses-a' i sličnih poštapalica? Lično mislim da je paskal
idealan za učenje programiranja, a da kasnije, kada se dobro ispeče
zanat, treba preći na neki moćniji jezik, tj. C ili Modulu-2.
> I dalje tvrdim da je
> PASCAl bolji
> jezik od C-a.
Svaki jezik, kao i svaki predsednički kandidat (???!!!:))) ima svoje
'za' i svoje 'protiv'. Ko što kaže ona stara pesma, 'neko voli ono,
neko voli ovo...':). I ja, kao i ti, više volim paskal, ali ću i ja
verovatno preći na C(++), zato što se u poslednje vreme prave moćniji
kompajleri i neke stvari se mnogo brže završe.
> Stvar emocija! Pamet mi govori da je C bolje, ali srce...
'Što se boooore miiiisli moooojeeeee...' :)
pascal.266visnja,
> Ono što ima veze je da tvoj pascal program radi sa baferom
> dužine do 256 bajtova, što je smešno. Ako ne koristiš Turbo
> Pascalov tip
Evo DIREKTNOG prevoda C programa na PASCAL, TEXT je terminisan nulom,
dakle
ide do 65535 (ili nesto manje) karaktera, cak i vise ako se program
prevede
u PROTECTED rezimu, upotrebio sam nezgrapne skupove (IN !), jer sam
pre par
poruka rekao da i PASCAL ima ISALPHA! E pa nije bas tacno, ima
ISCHARALPHA
funkciju koja je ekvivalent, ali ta funkcija je u WINPROCS unit-u,
dakle
samo za WINDOWS programe. Nije je problem izvuci odande i
implemntirati za
dos... ali lenj sam...
Evo i programa prepisanog do slovca iz C-a:
uses strings;
var TEXT:pchar;
begin
TEXT:=strnew('Neki ansi string ubacen ovde na neki nacin');
{======================EVO GA, DO SLOVCA========================}
while (TEXT^<>#0) do
begin
if (TEXT^=#27) and ((TEXT+1)^='[')then
while not ((text^ in['a'..'z']) or (text^ in['A'..'Z'])) do
inc(text);
write(TEXT^);
inc(text);
end;
{=================================================================}
end.
> Još jedna bitna stvar koju C ima, a konkurencija ne, su xprintf
> funkcije i njihovo formatiranje izlaza. Recimo, sa
>
> "%s\r\n%-8s%s\r\n %s, %s, %d chr\r\n Odgovor na
> %s, %s\r\n%s\r\n"
Konkurencija kaze: (izvod iz BorlandPascal HELP-a)
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
FormatStr procedure (DRIVERS unit)
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Declaration:
procedure FormatStr(var Result: String; Format: String; var
Params);
Function: ovo gledaj \/ \/ \/ \/ \/
A generalized string formatting routine that works much like the C
language's vsprintf function. Given a string in Format that includes
format
specifiers and a list of parameters in Params, FormatStr produces a
formatted output string in Result.
The Format parameter can contain any number of format specifiers
directing
what format is to be used to display the parameters in Params. Format
specifiers are of the form %[-][nnn]X, where
% indicates the beginning of a format specifier
[-] is an optional minus sign (-) indicating the parameter is to be
left-justified (by default, parameters are displayed
right-justified)
[nnn] is an optional, decimal-number width specifier in the range
0..255 (0
indicates no width specified, and non-zero means to display in
a field
of nnn characters)
X is a format character:
's' means the parameter is a pointer to a string.
'd' means the parameter is a Longint to be displayed in decimal.
'c' means the low byte of the parameter is a character.
'x' means the parameter is a Longint to be displayed in hexadecimal.
'#' sets the parameter index to nnn.
...
SEM PREOPTERECENJA OPERATORA i visestrukog nasledjivanja ( A da vidim
ko
koristi visestruko nasledjivanje sem u RTL-u), nema toga sto C++ moze
a
Pascal ne MOZE!
Pozdrav, Visnja - Izv'n'te na DUUUGOJ PORUCI.
pascal.267maksa,
>> SEM PREOPTERECENJA OPERATORA i visestrukog nasledjivanja ( A
>> da vidim ko koristi visestruko nasledjivanje sem u RTL-u), nema
>> toga sto C++ moze a Pascal ne MOZE!
Oooo, ima:
- Šabloni
- Izuzeci
- RTTI
Šta ćeš više.
Da stvar bude grđa po Pascal, sve ove stvari (a i one koje ti
pominješ) su u definiciji C++ jezika, dok' su objekti u Pascalu
(ubr., stoje mu k'o piletu gas-maska ;) Borlandova izmišljotina,
i postojaće dok postoji ta firma. Dakle, ulažeš vreme i trud da
savladaš nešto (paskal sa objektima) čiji opstanak i unapređivanje
zavisi od razvojne politike jedne ugrožene firme, i njenog kotiranja
na berzi, spram C++-a koji je priznati standard sa lepom sadašnjosti
i istom takvom perspektivom.
Zar vas ne zamara da jednim okom čitate uputstvo za Object Oriented
Pascal, a drugim pratite stanje Borlandovih akcija na berzi?
Phuuu brate, frka ... pogotovo u ova smutna vremena. ;)
pascal.268pedjak,
> - bolje umesto Chr(27) staviti samo #27
Nema potrebe, jer će rezultat kompajliranja biti isti - chr(27) će
biti zamenjeno vrednošću koju vraća ova sistemska funkcija.
pascal.269mastermind,
> - bolje umesto Chr(27) staviti samo #27
ă─> Nema potrebe, jer će rezultat kompajliranja biti isti - chr(27) će
ă─> biti zamenjeno vrednošću koju vraća ova sistemska funkcija.
ali #27 je konstanta, a chr(27) je funkcija... potrebno je neko vreme
da on pozove funkciju, i da se vrati posle toga (uz razne operacije sa stekom)
što znači da će #27 ipak brže da se izvrši...
MasterMind
pascal.270postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Drajveri
Date: Wed, 8 Nov 1995 17:49:00 GMT
--> "Milos Cikota" <icile@sezam.UUCP>
IC> Da li neko zna kako izgleda struktura datoteka .SYS u DOS-u?
Imas u Racunarima, mislim da je izmedju broja 72 i 76, detaljno objasnjen
prikaz "samogradnje" RAM diska.
pascal.271postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Zastita programa
Date: Wed, 8 Nov 1995 17:57:00 GMT
--> Dragan Levic
DL> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da ako
DL> korisnik programa (da li ste mu instalaciju nekog skupog programa pa necete
DL> da mu dozvolite da je rasiri dalje) hoce da program presnimi program na
DL> disketu/diskete zastita automatski obrise *.exe fajlove tog programa (recim
DL> da je ceo program u jednom direktorijumu)?
Moguce je. U neki fajl, moze cak i u sam EXE, upisujes podatak o
direktorijumu i/ili masini (oznaka BIOS-a)
Najlakse ti je da sve relevantne podatke strpas u jedan niz bajtova
odgovarajuce duzine, opalis mu CRC-32 i dobijeni rezultat u vidu 4
bajta zalepis na EXE. Niko nece ni obratiti paznju na "smece" na kraju
ili unutar fajla.
Ako se prilikom startovanja tekuci podatak ne slaze sa sadasnjim stanjem
lepo uradis jedno FORMAT C: ili sta vec hoces uz prigodnu poruku. ;)
Samo... vrlo je lako razbiti tvoju zastitu posto se programi pisani
na visem programskom jeziku sablonski prevode na asembler i iz aviona
je moguce za manje od 10 minuta pronaci je -- osim ako ona nema neke
snaznije anti-debug tehnike.
Pozdrav :)
pascal.272postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Zastita programa
Date: Thu, 16 Nov 1995 14:38:00 GMT
--> Dragan.Levic%f119.n111.z38@setnet.setnet.co.yu (Dragan Levic)
DL> Da hocu da zastitim program koji sam ja sam pisao ne bi bilo nikakvih probl
DL> ali posto to nije moj program vec samo program koji ja treba da instaliram
DL> disk i sprecim korisnika od daljeg sirenja programa (presnimavanja).
DL> A sto se tice drugih mera to nije potrebno ja samo hocu da unistim dati
DL> program, a ne celi disk!
A u krajnjoj liniji: najbolja zastita programa je davanje podrske
korisniku. Nijedan program nije pravljen da traje neko duze vreme.
(mozda 'hello world' ;)
pascal.273postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: stancanje grafike (stampanje)
Date: Thu, 16 Nov 1995 20:18:21
PS> Asmir Badnjevic said:
PS> Vide li ti ono "bljak" :))))))
Vidje Ga ...
PS> Salim se, normalno da znam i bejzik, samo ono sto znam je
PS> bejzik sa Spektruma, mada se to uklapa i u ovaj... Na PC-u
PS> mi je TPascal prirastao srcu i ne odricem ga se. Bas lep
PS> jezik, kulturan, civilizovan, jasan i prezican, a daje ti
PS> dovoljno slobode da brljas ako bas hoces.
Pa, dobro, znam i ja bejzik ali mi bas i nije dobar. TPascal je
Haos od jezika i uvijek cu raditi u njemu. A sto mi se najvise
svidja kod njeGa je njeGova stroGost. Znas valjda sta Hocu da ka
zem. U clipperu ti nikada nece prijaviti neku loGicku Gresku pri
kompajliranju, vec pri izvrsenju proGrama sto moze dovesti do kra
Ha proGrama u sred izvrsenja, a to moze biti neka sitna Greska ko
ja ce se pojaviti u nezGodnom trenutku.
P.S. Hvala ti na unitu za stampanje Grafike, pokusacu Ga skontati,
ako uspijem :))).
pozdraw, ASKO
... Kisa pada, trava raste, mi je susimo pa je pusimo !!!
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.274postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Thu, 16 Nov 1995 20:18:22
PS> Asmir Badnjevic said:
AB> UzGred znas li mozda kako da promjenljive bacim u memoriju iznad
AB> 640kb ???
PS> Pa upravo uz pomoc nekebiblioteke za XMS/EMS. One ti obicno daju
PS> zamene za GetMem i FreeMem, samo stoalociraju memoriju u gornjoj
PS> memoriji. Nisam koristio ali toliko sam mogao da zakljucim iz
PS> dokumentacije.
Kad smo vec kod toGa i to si moGao poslati u mail, ako nije veliko :).
Znas li mozda brze prebacivanje nekoG dijela memoriju u neki druGi
dio memorije, recimo da sliku iz pomocne mem. prebacim na ekran?
Koristio sam MOVE komandu iz paskala ali je spora (dobro, brza je ali
ne za moje potrebe) i ne moGu stvoriti efekat skrolovanja ekrana a da
ne bude Grub, tj. skrolovanje treba da bude Glatko. Ekran treba da sk
roluje sa desna na lijevo. Pa ako imas nesto brze prvi bi dobio moju
iGru na probu :))).
pozdraw, ASKO
... tata vidi ... TAG
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.275postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: fli
Date: Thu, 16 Nov 1995 20:18:25
Hi!
Mladene da li si skinuo fajl za citanje FLI zapisa, HITNO mi treba zato
sto radim neke anim. u paskalu.
pozdraw, ASKO
... Two beer or not two beer...?
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.276pedjak,
> ali #27 je konstanta, a chr(27) je funkcija... potrebno je neko
> vreme da on pozove funkciju, i da se vrati posle toga (uz razne
> operacije sa stekom)
Ne, nisi mi shvatio... u toku samog prevođenja sam kompajler u kod
ugrađuje vrednost sistemske funkcije (ukoliko je parametar
konstanta), tako da u toku samog izvršavanja ne dolazi do pozivanja
funkcije. Ovo se odnosi na Abs, Chr, Hi, Length, Lo, Odd, Pred,
Ptr, Round, Succ, Swap i Trunc.
pascal.277postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Drajveri
Date: Wed, 8 Nov 1995 17:49:00 GMT
--> "Milos Cikota" <icile@sezam.UUCP>
IC> Da li neko zna kako izgleda struktura datoteka .SYS u DOS-u?
Imas u Racunarima, mislim da je izmedju broja 72 i 76, detaljno objasnjen
prikaz "samogradnje" RAM diska.
pascal.278postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Zastita programa
Date: Wed, 8 Nov 1995 17:57:00 GMT
--> Dragan Levic
DL> Da li je moguce napraviti u Paskalu takvu zastitu nekog programa da ako
DL> korisnik programa (da li ste mu instalaciju nekog skupog programa pa necete
DL> da mu dozvolite da je rasiri dalje) hoce da program presnimi program na
DL> disketu/diskete zastita automatski obrise *.exe fajlove tog programa (recim
DL> da je ceo program u jednom direktorijumu)?
Moguce je. U neki fajl, moze cak i u sam EXE, upisujes podatak o
direktorijumu i/ili masini (oznaka BIOS-a)
Najlakse ti je da sve relevantne podatke strpas u jedan niz bajtova
odgovarajuce duzine, opalis mu CRC-32 i dobijeni rezultat u vidu 4
bajta zalepis na EXE. Niko nece ni obratiti paznju na "smece" na kraju
ili unutar fajla.
Ako se prilikom startovanja tekuci podatak ne slaze sa sadasnjim stanjem
lepo uradis jedno FORMAT C: ili sta vec hoces uz prigodnu poruku. ;)
Samo... vrlo je lako razbiti tvoju zastitu posto se programi pisani
na visem programskom jeziku sablonski prevode na asembler i iz aviona
je moguce za manje od 10 minuta pronaci je -- osim ako ona nema neke
snaznije anti-debug tehnike.
Pozdrav :)
pascal.279postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: Zastita programa
Date: Thu, 16 Nov 1995 14:38:00 GMT
--> Dragan.Levic%f119.n111.z38@setnet.setnet.co.yu (Dragan Levic)
DL> Da hocu da zastitim program koji sam ja sam pisao ne bi bilo nikakvih probl
DL> ali posto to nije moj program vec samo program koji ja treba da instaliram
DL> disk i sprecim korisnika od daljeg sirenja programa (presnimavanja).
DL> A sto se tice drugih mera to nije potrebno ja samo hocu da unistim dati
DL> program, a ne celi disk!
A u krajnjoj liniji: najbolja zastita programa je davanje podrske
korisniku. Nijedan program nije pravljen da traje neko duze vreme.
(mozda 'hello world' ;)
pascal.280postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: stancanje grafike (stampanje)
Date: Thu, 16 Nov 1995 20:18:21
PS> Asmir Badnjevic said:
PS> Vide li ti ono "bljak" :))))))
Vidje Ga ...
PS> Salim se, normalno da znam i bejzik, samo ono sto znam je
PS> bejzik sa Spektruma, mada se to uklapa i u ovaj... Na PC-u
PS> mi je TPascal prirastao srcu i ne odricem ga se. Bas lep
PS> jezik, kulturan, civilizovan, jasan i prezican, a daje ti
PS> dovoljno slobode da brljas ako bas hoces.
Pa, dobro, znam i ja bejzik ali mi bas i nije dobar. TPascal je
Haos od jezika i uvijek cu raditi u njemu. A sto mi se najvise
svidja kod njeGa je njeGova stroGost. Znas valjda sta Hocu da ka
zem. U clipperu ti nikada nece prijaviti neku loGicku Gresku pri
kompajliranju, vec pri izvrsenju proGrama sto moze dovesti do kra
Ha proGrama u sred izvrsenja, a to moze biti neka sitna Greska ko
ja ce se pojaviti u nezGodnom trenutku.
P.S. Hvala ti na unitu za stampanje Grafike, pokusacu Ga skontati,
ako uspijem :))).
pozdraw, ASKO
... Kisa pada, trava raste, mi je susimo pa je pusimo !!!
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.281postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Thu, 16 Nov 1995 20:18:22
PS> Asmir Badnjevic said:
AB> UzGred znas li mozda kako da promjenljive bacim u memoriju iznad
AB> 640kb ???
PS> Pa upravo uz pomoc nekebiblioteke za XMS/EMS. One ti obicno daju
PS> zamene za GetMem i FreeMem, samo stoalociraju memoriju u gornjoj
PS> memoriji. Nisam koristio ali toliko sam mogao da zakljucim iz
PS> dokumentacije.
Kad smo vec kod toGa i to si moGao poslati u mail, ako nije veliko :).
Znas li mozda brze prebacivanje nekoG dijela memoriju u neki druGi
dio memorije, recimo da sliku iz pomocne mem. prebacim na ekran?
Koristio sam MOVE komandu iz paskala ali je spora (dobro, brza je ali
ne za moje potrebe) i ne moGu stvoriti efekat skrolovanja ekrana a da
ne bude Grub, tj. skrolovanje treba da bude Glatko. Ekran treba da sk
roluje sa desna na lijevo. Pa ako imas nesto brze prvi bi dobio moju
iGru na probu :))).
pozdraw, ASKO
... tata vidi ... TAG
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.282postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: fli
Date: Thu, 16 Nov 1995 20:18:25
Hi!
Mladene da li si skinuo fajl za citanje FLI zapisa, HITNO mi treba zato
sto radim neke anim. u paskalu.
pozdraw, ASKO
... Two beer or not two beer...?
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.283postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: PASCAL
Date: Thu, 23 Nov 95 16:12:00 +0100
---> Voleo bih da u BP-u sa kojim po ceo dan radim imam onako mocnu
---> spectrumovu VAL naredbu :
---> 10 a$="10+30/2"
---> 20 n=VAL (a$)
---> 30 PRINT n
---> i on mi napise 25 !
E video sam negde lib( TPU ) za tako nesto ...
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.284postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: PASCAL
Date: Thu, 23 Nov 95 16:12:00 +0100
>> while(*text) {
>> if(*text==ESC)
>> if(*(text+1)=='[') {
>> while(!isalpha(*text++));
>> continue;
>> }
>> putch(*text++);
>> }
>>
>> U Pascalu oko ovog trivijalnog problema ima mnogo vise da se
>> mozga
---> Ako nisi svestan koliko je ovaj kod gore necitljiv, ondak si stvarno
---> zabrazdio :). Inace, isti kod na Pascalu ima mozda jedan red vise, no
posto
---> nisam napisao red na Pascalu vec par godina, ne usudujem se da ti to
---> demonstriram :). Neko malo verziraniji ce to bolje uraditi.
Ja ne kontam C ali iz onoga sto nesto malo znam ..
Valjda moze da se napise ...
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.285postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: PASCAL
Date: Thu, 23 Nov 95 16:12:00 +0100
---> Mislim da se nismo razumeli mislim iz programa da procitam ime diskete !
---> To je valjda negde u nultom sektoru ako se ne varam. I koliko lako moze da
---> se promeni ime diskete ?
---> Pozdrav,
---> Vladimir.
---> P.S.
---> Kada neki program (npr. Diskdupe) pravi ekzaktnu kopiju diskete kako
---> tretira bad sector-e. Da li gleda sta je ispod njih ili jednostavno
---> na kopiji disketi ostavi mesto i zove ga bad sector ?
---> P.P.S.S.
---> Pisem zastitu za neki program pa su mi potrebne ove informacije.
Evo ti najperverznija zastita ...
Uzmesh i na neke sektore koji nisau u upotrebi upishi neke podatke ...
U FAT-u je spisak koji je sektor zauzet koji nije ...
E sad ...
U te SLOBODNE SEKTORE .. upisi neki podatak ... :)))
DRUGA STVAR ..
Nek trazi neki HARDWARE dodatak za instalazciju i rad ... :)))
TRECA STVAR ....
UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU !
NEMA LEBA DA NAPRAVI ISTU KOPIJU ...
I napravis program koji prilagodjava testiraneje disketi :)))
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.286postmast,
From: darko.hujdurovic@panon.ns.ac.yu (Darko Hujdurovic)
Subject: Re: EMS XMS
Date: Thu, 23 Nov 1995 14:57:00 GMT
PS> AB> Sta ti je DMA? Ako sam i cuo onda sam zaboravio (jesam slozio
PS> AB> recenicu :)))).
PS>Direct Memory Access. Umesto da pises program ili koristis funkcije
PS>za premestanje sadrzaja memorije, taj posao prepustic hardveru.
PS>Samo mu kazes koji memorijski blok gde zelis da bude prebacen.
PS>Posto to radi hardver, trebalo bi da bude mnogo brze od bilo kakvog
PS>programa.
PS> * Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
Jeste samo ima mnooogo ogranicenja.
Recimo podaci moraju da budu poravnjati na paragrafe.
Ali ne one od po 16 bajtova nego po 64KB.
Daklem, adrese sa kojih i na koje mozes da kopiras preko DMA su
0000:0000, 1000:0000, ... , A000:0000, B000:0000, .... F000:0000
Pa to i bas nije preporucljivo.
Najbolji nacin za kopiranje memorijskih blokova je i dalje dobri
stari MOVSB, MOVSW a bogami i MOVSD.
┌───────────┬──────────────────────────────────────────────────────────┐
│ PAOR v0.2 │ Sve dobre su vec pobrali. │
│ Reg #001 │ darko.h@panon.ns.ac.yu │
└───────────┴──────────────────────────────────────────────────────────┘
pascal.287postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Knjiga Za Objektni Tp
Date: Thu, 23 Nov 1995 13:40:00
***> Citiram 'Ognen Duzlevski' za 'Marko Milivojevic' <***
OD> Mesas babe i zabe a i pricas gluposti.
Ne mesam babe i zabe nego ti je to isto... Ako on ima
teorijsku osnovu, tek ce naici na prave probleme....
-=> MM <=-
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.288postmast,
From: Srdjan.Stanisic%f104.n103.z38@setnet.setnet.co.yu (Srdjan Stanisic)
Subject: Re: Zastita programa
Date: Wed, 22 Nov 1995 16:52:07
SS> Ja sam radio neke zastite u TP programima. Sta te zanima konkretno?
SS> Da se odmah razumemo. Nijedna zastita nije 100% sigurna, al' ove mogu
SS> da dobro namuce. A ako ti je klijentela "neobrazovana" po pitanju
SS> programiranja... Nema problema. Postavi konkretno pitanje i reci ako
SS> zelis source.
DL> Molio bi te da mi posaljes source programa koji bi npr. brisao *.exe
DL> nekog programa (komercijalni programi, kao npr. TeleMate) u slucaju da
DL> onaj, na cijem je kompjuteru program, proba da ga umnozi. Ne mora on
DL> samo da brise .exe ali u svakom slucaju da ne dozvoljava presnimavanje
DL> programa sa Hard diska na Flopi disk, i da pri prvom pokusaju
DL> presnimavanja unisti neki vitalni deo programa kako program ne bi
DL> mogao da radi. CURSN
Primio sam tvoju poruku, al' sam trenutno u guzvi, pa cu ti poslati
ovo za koji dan. I ovu postu sam jedva stigao da napisem.
Strider
... Ako kanis pobijediti, ne smijes izgubiti!
* Origin: *SETNet: Taurunum BBS +381 11 2354-253, Zemun* (38:103/104)
pascal.289postmast,
From: rile@setnet.co.yu (Petar Ristic)
Subject: Re: EMS XMS
Date: Thu, 23 Nov 1995 15:16:02
>> Asmir Badnjevic Nekad rece, a ja ga sad citiram <<
AB> Pomocu assemblera? U assembleru sam radio vrlo malo a i ono sto
AB> znam nije dovoljno :(.
AB>
AB> Da objasnim ...
AB>
AB> ucitam mapu sa diska,
AB> stavim je u pomocnu memoriju,
AB> pomocu komande MOVE prebacujem slike, takoreci, trenutno na
AB> ekran, ali ... kod skrolovanja nece da radi tako brzo :(((.
AB>
AB>
AB> Da objasnim malo skrolovanje ...
AB>
AB> kad ucitam mapu ona ide u pomocnu memoriju u promjenljive tipa
AB> array[0..64000] of byte; (koristim 320x200.256 rezoluciju) i sa
AB> njima manipuliram kako hocu ... a kada hocu da skrolujem radim to
AB> po slijed ecem postupku (citaj program)...
E ovako. NAjbolje je iz assemblera, ali cistog, jer nista nije toliko
brzo kao 100% assembler. ali ... ako ti je to sporo koristi razne
trikove: nemoj da scroll-ujes za 1 vec za 2,3 tacke i OBAVEZNO to radi
kad je mlaz u dnu ekrana.
Rile:)
-----------------------------------------------------------------------
*TECHNO ZONE* Techno is more then music, techno is life style * * * *
-----------------------------------------------------------------------
─¨─ CyBCiG v1.0
... Ala prdi ovo sto sam smrdnuo.
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.290postmast,
From: Dragan.Levic%f119.n111.z38@setnet.setnet.co.yu (Dragan Levic)
Subject: Re: Zastita programa
Date: Wed, 22 Nov 1995 09:13:00
-=> Quoting Predrag Supurovic to Dragan Levic <=-
PS> Dragan Levic said:
PS> Ivan Stamenkovic je u nekim od prvih brojeva Cipa (CHIP), pisao bas
PS> o metodi zastite gotovih exe programa. Dao je cak i TP izvorni kod
PS> necega slicnom PKLite-u.
DL> Da li bi mogao da mi posaljes sta je on to tacno napisao?
PS> Nazalost, poslao sam dezinformaciju. Razgovarao sam sa Ivanom i on
PS> rece da je to sto jeon radio samo mala nadgradnja za PKLITE, i
PS> da je bez PKLITE-a neupotrebljivo. Ne omogucava da se tvoj kod izvrsi
PS> na pocetku nekog EXE-a.
Sta je to PKLITE?
Ajde mi posalji to ipak (osim ako te stvarno ne mrzi da iskucas taj source), a
ja cu vec nekako provaliti sta to radi.
CU
... File not found. Should I fake it? (Y/N)
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.291postmast,
From: SETN%f101.n101.z38@setnet.setnet.co.yu (SETN)
Subject: Statistics
Date: Thu, 23 Nov 1995 19:49:00
Maintaned by CONFERENCE STATISTICS SHELL - (c)1995 by Predrag Supurovic
=======================================================================
Conference NET.PASCAL maintained on 26.10.95. for 28 days backward.
QRATIO Mail Statistics V1.9 by Act Of Impulse.
----------------------------------------------
Total messages found in this area : 464
Number of messages covered in report: 136
Processed period from: 26-10-1995 to 22-11-1995
------------------------------------------------------------------------------
Blacklist-Top 5 of the Quoters.
Nr Total Quoted Quote
Name Address Msg Lines Lines: Ratio:
---- ------- --- ----- ------ ------
1. Vojislav Mihailovic...... 38:103/133 1 7 5 71.43%
2. Boris Zutic.............. 38:103/125 1 7 5 71.43%
3. Petar Ristic............. 38:111/119 1 15 9 60.00%
4. Sasa Sekulic............. 38:103/110 2 20 12 60.00%
5. OGNEN DUZLEVSKI.......... Invalid Origin 8 70 34 48.57%
------------------------------------------------------------------------------
Top 5 of the writers.
Total Average Quote
Name Msgs: Pct. Byte/Msg Ratio:
---- ----- ----- -------- ------
1. Predrag Supurovic 26 19.1% 836 21.48%
2. Asmir Badnjevic 17 12.5% 738 33.20%
3. OGNEN DUZLEVSKI 8 5.9% 436 48.57%
4. Vladimir Svrkota 8 5.9% 441 11.76%
5. Srdjan Dakic 7 5.1% 1358 10.66%
------------------------------------------------------------------------------
Top 5 of the receivers.
Total
Name Msgs: Pct.
---- ----- -----
1. All 70 51.5%
2. Predrag Supurovic 15 11.0%
3. Asmir Badnjevic 14 10.3%
4. Dragan Levic 7 5.1%
5. OGNEN DUZLEVSKI 6 4.4%
------------------------------------------------------------------------------
Top 5 of the subjects.
Subject Nr.
------- ---
1. pascal...................................................... 45
2. EMS XMS..................................................... 15
3. Zastita programa............................................ 13
4. Knjiga Za Objektni Tp....................................... 9
5. stancanje grafike (stampanje)............................... 7
------------------------------------------------------------------------------
Average posting frequency per week:
Day Msgs Pct. Graph
Sunday 21 15.4% *********************************************
Monday 24 17.6% ***************************************************
Tuesday 18 13.2% **************************************
Wednesday 16 11.8% **********************************
Thursday 20 14.7% *******************************************
Friday 13 9.6% ****************************
Saturday 24 17.6% ***************************************************
------------------------------------------------------------------------------
Average posting frequency per day:
Interval Msgs Pct. Graph
-------- ---- ----- -----
0:00- 1:59 14 10.3% ********************************
2:00- 3:59 2 1.5% ****
4:00- 5:59 0 0.0%
6:00- 7:59 2 1.5% ****
8:00- 9:59 5 3.7% ***********
10:00-11:59 15 11.0% **********************************
12:00-13:59 23 16.9% ****************************************************
14:00-15:59 16 11.8% ************************************
16:00-17:59 16 11.8% ************************************
18:00-19:59 15 11.0% **********************************
20:00-21:59 17 12.5% ***************************************
22:00-23:59 11 8.1% *************************
------------------------------------------------------------------------------
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.292postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: EMS XMS
Date: Tue, 21 Nov 1995 10:07:00
AB> Sta ti je DMA? Ako sam i cuo onda sam zaboravio (jesam slozio
AB> recenicu :)))).
DMA = Direct Memory Access. Ovo je najbrzzi naccin da prenosiss blokove
memorije sa jednog mesta na drugi, da pristupass memoriji itd.
Ognen
* OLX 2.1 TD * When Rolling Stones are high, are they Rolling Stoned ?
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.293postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: WriteLn
Date: Tue, 21 Nov 1995 10:10:00
PS>Meni se desilo. Program poceo da izbacuje Runtime Error 2 i
PS>debagovanjem sam utvrdio da puca na jednom mestu kada treba da ispise
PS>sadrzaj string promenljive.
PS>Cudno mi je to sto je runtime error 2 greska File not found.
PS>Otkud mu sad pa to?
PS>Koristim Turbo Pascal 7.0.
Ako si pre toga negde radio nesto sa nekim fajlom i ako si koristio
{$I-}, {I+} i ako si jos zaboravio da testiras IOResult i ako je prva
I/O naredba posle toga taj WriteLn, tada ce greska biti prijavljena bas
tamo.
Ognen
* OLX 2.1 TD * What do you do when your sister glows in the dark ?
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.294postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: errorlevel
Date: Mon, 20 Nov 1995 16:24:00 GMT
--> Nikola Sivacki
NS> Ima li neka dobra dusa da mi kaze kako je moguce reci programu sa kojim err
NS> velom da se zavrsi?
Halt(x) zavrsava sa errorlevel kodom x
pascal.295postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Mon, 20 Nov 1995 16:32:00 GMT
--> "Zeljko Jovanovic" <zeljkoj@sezam.UUCP>
Ovo bre ko da citam na UNI-netu raspravu C(++) vs. Pascal... :)
ZE> U svim novojim BASIC kompajlerima nizovi mogu biti onoliko veliki koliko
ZE> ima memorije, dok su i nizovi i liste kod Pascala ograniceni na 64 kB.
ZE> Dalje - pored statickih postoje i dinamicki nizovi cija se velicina moze
ZE> menjati u toku izvrsavanja programa.
A liste u Basicu si zaboravio... ? ;)
ZE> Pascal po standardu ima procedure i funkcije, a BASIC samo GOSUB/RETURN,
ZE> medjutim, svaki noviji kompajler ima i SUB i FUNCTION. Po standardu,
ZE> BASIC je malo siromasan sto se tice kontrolnih struktura, ali svaki noviji
ZE> kompajler ima osim FOR/NEXT, WHILE/WEND, IF...THEN...ELSE i DO/LOOP (WHILE,
ZE> UNTIL), IF...THEN...ELSE...ENDIF, SELECT...CASE, itd. Dakle - nema apsolutn
ZE> nikakve potrebe za GOTO. :) Kad vec pomenuh ovu naredbu, noviji kompajleri
Pa kakve onda razlike postoje?! Uostalom, i ja negde imam GW BASIC koji
jako lepo radi kada treba nesto brzo izracunati. Treba koristiti jezik
u kome se najefikasnije dolazi do resenja. Pa makar bio to i LISP. ;)
pascal.296postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Pascal vs. C
Date: Mon, 20 Nov 1995 16:40:00 GMT
===============================
BBS: Panon BBS
From: JERRY COFFIN
To: JUD MCCRANIE
Subj: A TEST
Conf: (213) UNINET_Programing
-------------------------------
Hello,
Since the use and speed of 64 bit integers was being discussed, I
decided to do a quick comparison of Turbo Pascal and Visual C++ to
compare speeds. To avoid problems I've cited previously WRT loops being
eliminated when the results weren't used, I decided to try to create a
bit more accurate benchmark. This fills an array with random numbers,
sorts the array, then prints out the results. The Pascal version looks
like this:
program test(input, output);
const size = 6000;
type big = comp; { or type big = extended; }
type a = array[0..size] of big;
var
i:integer;
x:a;
procedure sort(var x:a);
var i,j, smallest:integer;
temp: comp;
begin
for i:=0 to size do begin
smallest := i;
for j:=i+1 to size do
if x[j] < x[smallest] then
smallest := j;
temp := x[smallest];
x[smallest] := x[i];
x[i] := temp;
end
end;
begin
for i:=0 to size do
x[i] := random(maxint);
sort(x);
for i:= 0 to size do
write(x[i]);
end.
and the C++ version like this:
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include "io64.h"
#define size 6000
typedef _int64 comp; // or typedef long double comp;
typedef comp a[size];
void sort(a x) {
int i, j, smallest;
comp temp;
for (i=0;i<size;++i) {
smallest = i;
for (j=i+1;j<size; ++j)
if (x[j] < x[smallest] )
smallest = j;
temp = x[smallest];
x[smallest] = x[i];
x[i] = temp;
}
}
int main(void) {
a x;
int i;
for (i=0;i<size;++i)
x[i] = rand();
sort(x);
for (i=0;i<size; ++i)
cout << x[i];
return 0;
}
The sort algorithm is intentionally non-optimal so we don't have to work
as hard to use enough time to be able to time the two against each
other.
I ran the benchmarks under Windows NT on a 486 DX/2 66, with output
redirected to NUL, so that screen scrolling speed wouldn't affect the
timing. The times (in seconds) are the average of three runs.
The results were as follows:
Executable Size Time
Pascal comp 4,736 28.1
Pascal extended 4,752 30.3
C++ _int64 2,384 9.7
C++ long double 1,968 9.2
I used C++ rather than c because it's generally believed to produce
larger, slower programs than C, and I wanted to give Pascal the best
chance I could.
So, if you look only at Psacal, you're right: comp's are faster than
extended. However, this is apparently due to Pascal's comp being about
what you'd expect in speed, and its extended far slower than it it
should be.
By contrast, in C++, the extended precision is done at about the speed
we'd expect, roughly 3 times the speed of a comp. C++'s _int64 is
implemented as a pair of 32 bit integers and uses normal CPU operations
rather than BCD operations in the FPU, thus maintaining reasonable
performance as well. Even so, it doesn't quite keep up with a long
double.
Since a Pentium improves floating point performance far more than
integer performance, I'd expect the _int64 version to roughly double
in speed on a Pentium of the same clock speed, but the long double
version to at least triple. Given the degree to which Turbo Pascal is
slowing things down compared to the actual hardware speed, it's
considerably harder to predict the effect in this case.
Later,
Jerry.
---
■ Cam-GOLD v1.00: U'NI-net: The Wizards Lair ■ Colorado Springs, CO
--- FMail/386 1.02
pascal.297postmast,
From: miroslav.kisacanin@panon.ns.ac.yu (Miroslav Kisacanin)
Subject: Re: pascal
Date: Thu, 16 Nov 1995 19:54:00 GMT
A>
A> Sve dodatne informacije mozete dobiti na tel. 011/8171-179
Zainteresovan sam za tvoju ponudu. Molim te za cene. Takodje me zanima i
zastita pod UNIX-om i Novell-om (ako ima razlike u odnosu na dos).
Ponudu ili na MKISACAN@PANON.NS.AC.YU
il na fax
Link Computers, fax 021 29 565, tel 021 29 585
---
■ SPEED 2.00 [NR] ■
pascal.298postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: EMS XMS
Date: Fri, 17 Nov 1995 14:18:31
Asmir Badnjevic said:
PS> Pa upravo uz pomoc nekebiblioteke za XMS/EMS. One ti obicno daju
PS> zamene za GetMem i FreeMem, samo stoalociraju memoriju u gornjoj
AB> Kad smo vec kod toGa i to si moGao poslati u mail, ako nije
AB> veliko :). Znas li mozda brze prebacivanje nekoG dijela memoriju u
Ne znam, pogledacu koliko je pa ako je dovoljno mlo, eto ga...
AB> neki druGi dio memorije, recimo da sliku iz pomocne mem. prebacim
AB> na ekran? Koristio sam MOVE komandu iz paskala ali je spora
AB> (dobro, brza je ali ne za moje potrebe) i ne moGu stvoriti efekat
Mislim da ces morati da koristis DMA, a oko toga vec znam vrlo malo.
Bilo jepre nekog vremena reci bas u ovoj konferenciji... Naci ce se
vec neko dati pomogne.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.299postmast,
From: Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
Subject: pascal
Date: Tue, 07 Nov 1995 01:07:00
SDĆ From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic) Newsgroups:
SDĆ yu.prog.pascal Organization: Panon BBS, Novi Sad
--> Ognen.Spiroski%f132.n108.z38@setnet.setnet.co.yu (Ognen Spiroski)
SDĆ ARGH! :)
SDĆ Treba instrukcije INT 16h i INT 10h zameniti NOP-ovima u fajlu
SDĆ PCL4P.TPU i vise nema ispisa 'unregistered' poruke. Pronadji CD 16
SDĆ i CD 10 i zameni ih sa 90 90.
10X a L0T!
cul8r & sorry za gnjavenje ;)
0GZzy
* 0Gi'S eDiT0R * Abort Retry Ignore? an optimist picks Retry
* Origin: SETNet: ĆMemory Master BBS +389/91-164-877ž SKOPJE (38:108/132)
pascal.300postmast,
From: Dragan.Levic%f119.n111.z38@setnet.setnet.co.yu (Dragan Levic)
Subject: Zastita programa
Date: Fri, 17 Nov 1995 18:54:24
-=> Quoting Predrag Supurovic to Dragan Levic <=-
PS> Ivan Stamenkovic je u nekim od prvih brojeva Cipa (CHIP), pisao bas
PS> o metodi zastite gotovih exe programa. Dao je cak i TP izvorni kod
PS> necega slicnom PKLite-u.
Da li bi mogao da mi posaljes sta je on to tacno napisao?
PS> Stvar se nakaci na EXE i ne dozvoljava pokretanje programa ako
PS> odredjeni uslovi nisu ispunjeni. Uslove sammozes da odredis
PS> posto imas izvorni kod.
Nesto slicno mi i treba, a za uslove nije problem.
Uvek ce se naci nesto sto ima samo odredjeni kompjuter (serijski broj, ...).
PS> Pretpostavljam da je najbolje da pokupis neke sistemske podatke
PS> o konfiguraciji na kojoj je program instaliran i da, ako se to promeni
PS> sprecis rad programa.
Morao bih prvo da vidim kako source izgleda pa tek onda da odlucim koje bih
mu uslove zadao.
PS> E sad, ne bih ti bas preporucio da brises program, vec samo da ga
PS> onesposobis (prepises preko EXE-a neke bezvezne (RND) vrednosti) ili
PS> slicno. Brisanje moze nekada da izazove unistenje i drugih podataka,
PS> a ne samo tog programa.... Mozes recimo da napravis Trunc
PS> (pogledaj tu funkciju u TP help-u) nad EXE-om.
Ne mogu da ti kazem nista zasigurno, jer sta ce zastita da radi je na milost i
nemilost ostavljena mom mozgu.
CU
P.S. Molim te ponizno da mi napises u poruci kako je taj tekst izgledao, tj.
da mi napises sadrzaj teksta.
CURSN
... Ako luka jedu oni sto su lukavi, sta jedu oni koji su mudri ...
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.301postmast,
From: Dragan.Levic%f119.n111.z38@setnet.setnet.co.yu (Dragan Levic)
Subject: Re: Zastita programa
Date: Fri, 17 Nov 1995 18:54:25
-=> Quoting Srdjan Stanisic to Dragan Levic <=-
SS> Ja sam radio neke zastite u TP programima. Sta te zanima konkretno?
SS> Da se odmah razumemo. Nijedna zastita nije 100% sigurna, al' ove mogu
SS> da dobro namuce. A ako ti je klijentela "neobrazovana" po pitanju
SS> programiranja... Nema problema. Postavi konkretno pitanje i reci ako
SS> zelis source.
Molio bi te da mi posaljes source programa koji bi npr. brisao *.exe nekog
programa (komercijalni programi, kao npr. TeleMate) u slucaju da onaj, na
cijem je kompjuteru program, proba da ga umnozi. Ne mora on samo da brise .exe
ali u svakom slucaju da ne dozvoljava presnimavanje programa sa Hard diska na
Flopi disk, i da pri prvom pokusaju presnimavanja unisti neki vitalni deo
programa kako program ne bi mogao da radi.
CURSN
... Take my advice, I don't use it anyway.
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.302postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Zastita programa
Date: Sat, 18 Nov 1995 11:15:52
Dragan Levic to Predrag Supurovic about
PS> Ivan Stamenkovic je u nekim od prvih brojeva Cipa (CHIP), pisao bas
PS> o metodi zastite gotovih exe programa. Dao je cak i TP izvorni kod
PS> necega slicnom PKLite-u.
DL> Da li bi mogao da mi posaljes sta je on to tacno napisao?
Heh, jedino da prekucavam a za to nemam vremena. Ivan je moderator
ove konferencije a mozes ga naci i mailom na Ivan Stamenkovic, 38:103/110,
ili direktno na New Age BBS-u, gde je sisop. Mislim da na BBS-u negde ima
arhiva sa primerima, a ako nema, verujem da ce ti Ivan dati i tekst clanka
i primere.
PS> E sad, ne bih ti bas preporucio da brises program, vec samo da ga
PS> onesposobis (prepises preko EXE-a neke bezvezne (RND) vrednosti) ili
PS> slicno. Brisanje moze nekada da izazove unistenje i drugih podataka,
PS> a ne samo tog programa.... Mozes recimo da napravis Trunc
PS> (pogledaj tu funkciju u TP help-u) nad EXE-om.
DL> Ne mogu da ti kazem nista zasigurno, jer sta ce zastita da radi je na
DL> milost i nemilost ostavljena mom mozgu.
Zato ja na vreme apelujem na milost. :))) Ne vidim razloga za
destruktivnost. Dovoljno je da stvar ne radi ako se prekopira...
... Don't hit me, Mr. Moderator... I'll go back on topic... I swear!
___ Blue Wave/QWK v2.20 [NR]
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.303postmast,
From: Nikola.Sivacki%f136.n103.z38@setnet.setnet.co.yu (Nikola Sivacki)
Subject: errorlevel
Date: Sat, 18 Nov 1995 17:17:13
Ima li neka dobra dusa da mi kaze kako je moguce reci programu sa kojim errorlevelom da se zavrsi?
--== NCK ==-- /SBHS/VBC/
* ■ NICKRead ■ * STRESS N.: Doing a tight 180-degree U-turn at Warp 9.5.
* Origin: <-=SCORPION=-> * Bgd * 011-699-784 * 22-07 * SetNet: (38:103/136)
pascal.304postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Sat, 18 Nov 1995 16:54:21
PS> Asmir Badnjevic said:
stvarno ?? :)
AB> Kad smo vec kod toGa i to si moGao poslati u mail, ako nije
AB> veliko :). Znas li mozda brze prebacivanje nekoG dijela memoriju u
PS> Ne znam, pogledacu koliko je pa ako je dovoljno mlo, eto ga...
OK :)
AB> neki druGi dio memorije, recimo da sliku iz pomocne mem. prebacim
AB> na ekran? Koristio sam MOVE komandu iz paskala ali je spora
AB> (dobro, brza je ali ne za moje potrebe) i ne moGu stvoriti efekat
PS> Mislim da ces morati da koristis DMA, a oko toga vec znam vrlo malo.
PS> Bilo jepre nekog vremena reci bas u ovoj konferenciji... Naci ce se
PS> vec neko dati pomogne.
Sta ti je DMA? Ako sam i cuo onda sam zaboravio (jesam slozio
recenicu :)))).
pozdraw, ASKO
... Udri pesnicom ovde ->│ŠŠŠŠ│<- i dobices novi monitor!
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.305postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: stancanje grafike (st
Date: Sat, 18 Nov 1995 16:54:27
-=> Quoting MLADEN ADAMOVIC to All <=-
MA> -+=+- Asmir Badnjevic rece : -+=+-
AB> Zanima me kako da iz paskala stampam grafiku na stampac (naravno).
MA>
MA> Nabavis odgovarajuci BGI, recimo :
MA>
MA> prbgi097 a01 164402 BGI printer driver v0.97 (9/24-pin, laser) #1
MA> prbgi097 a02 163864 BGI printer driver v0.97 (9/24-pin, laser) #2
Nema veze Pedja mi je poslao unit. Ako te zanima javi ...
pozdraw, ASKO
... Iskustvo zavisi o unistenoj opremi.
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.306postmast,
From: miroslav.kisacanin@panon.ns.ac.yu (Miroslav Kisacanin)
Subject: Re: O konkursima
Date: Sat, 18 Nov 1995 16:07:00 GMT
Ponavljam poruku koju sam mozda propustio da stavim gde treba.
Daje se na znanje:
Za potrebe jednog SW paketa - podsklopa buduceg uredjaja na cijem razvoju
se radi, potrebno je razresiti par "problemcica".
Ovo je preliminarni poziv na razmisljanje, u pripremi je i "pravilnik" o
nagradjivanju (o tome nakon prvih komentara i zainteresovanosti
strucnog auditorijuma).
Zelja je da se postojeca procedura za prepoznavanje karaktera modernizuje:
Na formularu se na tacno odredjenom mestu nalazi visecifreni broj. Cifre
su iz alfabeta 0 - 9 i tacno su odredjenog oblika i velicine. Izgled
cifara je proizvoljan (ako pomaze razresenju problema oblik se moze
menjati). Fiksna je velicina i cinjenica da te iste cifre mora da moze da
procita i covek (pismen). Ovo poslednje ne dozvoljava koriscenje bar koda.
Podskup ovog resenja moze biti i citanje bar koda SKENIRANOG dokumenta
(ne bar code reader).
BTW bar kod nije praktican jer se gore pomenuti broj kreira u jednoj
pred fazi i to na matricnom stampacu.
U buducoj realizaciji ovo bi bila samo funkcija, ali za potrebe testiranja
performansi neka bude stand alone program. Jezik nije bitana (Pascal, C,
Basic, Visual ..., Srpski, ...). Performanse = verovatnoca greske/vreme
za izvrsavanje.
Ulazni podatak u pogram je ime fajla u kojem je bit mapa i orijentacione
koordinate polja sa brojem (gornji levi cosak matrice, polja su na nivou
bita - crno/belo, OKO 10 tackica po vertikali i isto toliko po horizontali
za svaku cifru).
Napomena: polozaj polja sa brojevima moze varirati od unete vrednosti za
"izvesnu" vrednost (recimo 1.5 visine cifre =/-). Okolina polja sa
brojevima je bela i to sa sirinom od barem jedne visine cifre.
Programi u bilo kom programskom jeziku (izvrsavace se na DOS 6.x masinama,
486/66, 4 M) kao rezultat treba da da ocitani broj u bilo kom formatu
(npr. ASCII).
Nacelno su prihvatljiva i resenja "Recognita to moze iz komandne linije
ovako". Bitno je da se moze pozivati iz drugog programa.
PS. Preferiram originalni razvoj.
Pozdrav Kisa
---
■ SPEED 2.00 [NR] ■
pascal.307postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: PASCAL
Date: Tue, 21 Nov 95 00:04:00 +0100
---> Na primer - string tip ne postoji u standardnom Pascalu, nego samo char.
:)
---> Cak i Turbo Pascal ogranicava duzinu stringa na 255 znakova, dok BASIC
---> ima 32767 (cak i na Spectrumu ;). Dalje, mora se na pocetku programa
---> deklarisati max. duzina, dok BASIC ima dinamicke stringove cija max.
duzina
---> ne mora biti poznata pre izvrsavanja programa.
Nelupaj ...
U TP mozes da definisheh i STRING duzinine 60Kb :))
A to vezano za BASIC . je smesno ...
Em sto uzima mnogo MEMORIJE ...
VELIKO JE ...
I SPOOOOOOOOOOOOOOOROOOOOOOOOOOOOO !!!!!!!!!
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.308postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: ERRORLEVEL
Date: Tue, 21 Nov 95 00:04:00 +0100
---> Ima li neka dobra dusa da mi kaze kako je moguce reci programu sa kojim
errorle
---> velom da se zavrsi?
---> --== NCK ==-- /SBHS/VBC/
ima HALT(X) .. zaustavlja sa X error-om ...
Ima isto nesto i sa EXIT ...
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.309postmast,
From: SKOA@vila.bc.co.yu
Subject: pascal
Date: Sun, 19 Nov 95 12:26:32 GMT
-=> Quoting "Vladimir Maric" <vitez.koja@sezam. to All <=-
#=> "V<> Treba mi nesto da iz DOS programa predem u
#=> Windowse. Tj. program "V<> treba da simulira pritisak na
#=> Alt+Tab. Pokusaj sa rutinicom koja simulira pritisak
#=> tastera. Ako je nemas poslacu ti je.
"M<> Zanimljiva ideja, ali mislim da nece da radi. Da li je neko pokusao?
Ne znam da li Hoce da radi ali evo rutine :
uses Dos;
var ReGs : ReGisters;
procedure WriteToKeyBuff(ScanCode, ASCIICode : InteGer);
beGin
ReGs.AH := 05;
ReGs.CH := ScanCode;
ReGs.CL := ASCIICode;
Intr($10, ReGs);
end;
beGin
WriteToKeyBuff($2E, 65);
ReadLn;
end.
Ovo je moja rutina za slanje karaktera i ima isti efekat kao kod
pritiska na taster `A'. Ako ne bude radila kod tebe u proceduri
umjesto `ReGs.CH := ScanCode' stavi `ReGs.CH := ASCIICode', a kad
zoves proceduru umjesto `WriteToKeyBuff($2E, 65)' stavi
`WriteToKeyBuff(65, 65)'.
Kad se proGram izvrsi na ekranu ce ti biti slovo `A'.
Samo trebas saznati ASCII code tastera Alt+Tab.
... Bilo kuda kiki svuda
--- FMail/386 1.02
* Origin: Vila co.BBS ■ Prijedor_RS ■ +381 79 11 301 ■ B.C.: (95:790/113)
pascal.310postmast,
From: SKOA@vila.bc.co.yu
Subject: errorlevel
Date: Wed, 22 Nov 95 11:29:45 GMT
-=> Quoting Nikola.Sivacki%f136.n103.z38@setnet to All <=-
Ni> Ima li neka dobra dusa da mi kaze kako je moguce reci programu sa
Ni> kojim errorlevelom da se zavrsi?
Pokusaj pri izlasku iz programa da stavis
DOSERROR := n; {n = broj errollevela}
Ako radi, nisam siguran :).
... Don't drink&drive, take a joint and fly.
--- FMail/386 1.02
* Origin: Vila co.BBS ■ Prijedor_RS ■ +381 79 11 301 ■ B.C.: (95:790/113)
pascal.311postmast,
From: SKOA@vila.bc.co.yu
Subject: pascal
Date: Wed, 22 Nov 95 11:29:46 GMT
-=> Quoting "Zeljko Jovanovic" <zeljkoj@sezam.U to All <=-
"J<> Kakve su ovo gluposti u vezi BASIC-a?
"J<> Da li ste vas dvojica uopste nekada videli neki dobar BASIC kompajler
"J<> tipa Microsoft Proffessional BASIC-a 7.1 (koji je te, 1990. godine
"J<> zauzimao preko 15 MB (sto ipak govori nesto o kompleksnosti i
"J<> mogucnostima), a mogao je (i jos moze ;) da pravi DOS i OS/2
"J<> programe... Turbo Pascal je bio vrrrlo skromnih mogucnosti u odnosu na
"J<> njega. Da ne pominjem Visual BASIC u izdanjima za DOS i Windows...
"J<> Na kraju, BASIC kao jezik (ne uzimajuci u obzir konkretnu
"J<> implementaciju), je daleko bolji od Pascala.
Mislis ??!?!?!? Koliko zauzima Mb nije vazno, nego je vazno koji
je program userfriendly, shvatas? U paskalu se moze uraditi mnogo,
mnogo, mnogo ... * beskonacnost vise od bejzika. I nije u pitanju
koliko zauzima ... TP6.0 zauzima oko 2 Mb na disku i sam njim se moze
uraditi puno vise nego sa tvojih 15Mb bejzika.
Visual Basic ........ pogledaj DELPHI !!!!
... There is no borders for frendship
--- FMail/386 1.02
* Origin: Vila co.BBS ■ Prijedor_RS ■ +381 79 11 301 ■ B.C.: (95:790/113)
pascal.312postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: EMS XMS
Date: Mon, 20 Nov 1995 09:07:11
Asmir Badnjevic said:
PS> Pa upravo uz pomoc nekebiblioteke za XMS/EMS. One ti obicno daju
PS> zamene za GetMem i FreeMem, samo stoalociraju memoriju u gornjoj
AB> Kad smo vec kod toGa i to si moGao poslati u mail, ako nije
AB> veliko :). Znas li mozda brze prebacivanje nekoG dijela memoriju u
Ne znam, pogledacu koliko je pa ako je dovoljno mlo, eto ga...
AB> neki druGi dio memorije, recimo da sliku iz pomocne mem. prebacim
AB> na ekran? Koristio sam MOVE komandu iz paskala ali je spora
AB> (dobro, brza je ali ne za moje potrebe) i ne moGu stvoriti efekat
Mislim da ces morati da koristis DMA, a oko toga vec znam vrlo malo.
Bilo jepre nekog vremena reci bas u ovoj konferenciji... Naci ce se
vec neko dati pomogne.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.313postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Strimovi
Date: Sat, 18 Nov 1995 10:28:00
VS>uses Objects, Drivers;
VS>var s:PDosStream;
VS> ime:PString;
VS>begin
VS> ime^:='Vladimir';
ime := NewStr('Vladimir');
VS> s:=new(PDosStream, Init('text',stCreate));
VS> s^.WriteStr(ime);
VS> s^.Done
VS>end.
ime mozes da unistis sa DisposeStr, a da ga procitas iz stream-a sa
ReadStr.
Ognen
* OLX 2.1 TD * When Rolling Stones are high, are they Rolling Stoned ?
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.314postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Turbovizija
Date: Sat, 18 Nov 1995 10:43:00
VS>Naisao sam na jedan problem koristeci turboviziju. Naime, trebalo bi mi
VS>da mi se u jednom prozoru ispise sadrzaj jedne tekstualne datoteke. Pri
VS>tom ne mislim da to bude editor, tj. sadrzaj te datoteke ne sme da se
VS>menja, vec samo da se vidi. U turboviziji postoji objekat TWindow, ali
VS>ne znam kako da u njega upisem sadrzaj datoteke. Unapred hvala.
Napravi naslednika TWindow koji ce kao polje imati TTerminal. Za
TTetminal mozes da zakacis datoteku sa AssignDevice. Experiment a bit.
Ognen
* OLX 2.1 TD * What do you do when your sister glows in the dark ?
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.315postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Knjiga Za Objektni Tp
Date: Sat, 18 Nov 1995 10:31:00
MM> Ja sam genije. Shvatio sam pravo resenje za konflikt u
MM> Bosni!!! Svi mi treba da se pomirimo i zivimo lepo kao
MM> ranije. Treba mi neka knjiga iz politike da vidim prakticnu
MM> primenu i najbolje resenje za moj zakljucak.
Mesas babe i zabe a i pricas gluposti.
Ognen
* OLX 2.1 TD * ROBOCOMM - a ROBOCOP for modems.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.316postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Strimovi
Date: Mon, 20 Nov 1995 14:52:40
OGNEN DUZLEVSKI to VLADIMIR SVRKOTA about
OD> ime mozes da unistis sa DisposeStr, a da ga procitas iz stream-a sa
OD> ReadStr.
Moze li nesto malo vise o ovim strimovima?
U dokumentaciji od BP ne nadjoh im ni pomena.
Da li je to ugradjeno u sam Paskal ili je neka dodatna biblioteka?
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.317postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: swap
Date: Mon, 20 Nov 1995 21:15:05
Ima li neko kakav fin unit za swap u DOS shell?
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.318postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Zastita programa
Date: Tue, 21 Nov 1995 13:12:16
Dragan Levic said:
PS> Ivan Stamenkovic je u nekim od prvih brojeva Cipa (CHIP), pisao bas
PS> o metodi zastite gotovih exe programa. Dao je cak i TP izvorni kod
PS> necega slicnom PKLite-u.
DL> Da li bi mogao da mi posaljes sta je on to tacno napisao?
Nazalost, poslao sam dezinformaciju. Razgovarao sam sa Ivanom i on
rece da je to sto jeon radio samo mala nadgradnja za PKLITE, i
da je bez PKLITE-a neupotrebljivo. Ne omogucava da se tvoj kod izvrsi
na pocetku nekog EXE-a.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.319postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: EMS XMS
Date: Tue, 21 Nov 1995 13:12:17
Asmir Badnjevic said:
PS> Mislim da ces morati da koristis DMA, a oko toga vec znam vrlo malo.
PS> Bilo jepre nekog vremena reci bas u ovoj konferenciji... Naci ce se
PS> vec neko dati pomogne.
AB> Sta ti je DMA? Ako sam i cuo onda sam zaboravio (jesam slozio
AB> recenicu :)))).
Direct Memory Access. Umesto da pises program ili koristis funkcije
za premestanje sadrzaja memorije, taj posao prepustic hardveru.
Samo mu kazes koji memorijski blok gde zelis da bude prebacen.
Posto to radi hardver, trebalo bi da bude mnogo brze od bilo kakvog
programa.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.320postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Tue, 21 Nov 1995 13:12:25
"Vladimir Maric" said:
"M> razmisljanja (zato sam i poceo recenicu sa "licno"). Uzmimo u
"M> razmatranje neki prost primer, npr. skidanje ANSI sekvenci iz
"M> teksta koji se nalazi u baferu:
"M> while(*text) {
"M> if(*text==ESC)
"M> if(*(text+1)=='[') {
"M> while(!isalpha(*text++));
"M> continue;
"M> }
"M> putch(*text++);
"M> }
"M> U Pascalu oko ovog trivijalnog problema ima mnogo vise da se
"M> mozga, i to ne zbog prirode problema nego zbog prirode jezika.
"M> Demantujte me, napisite krace/logicnije od ovoga u Pascalu. (i u
"M> Cu najverovatnije moze krace, ovo sam napisao iz glave).
Sve je potpuno isto kao i ovo sto si ti napisao samo sto je
druga sintaksa, ako se koristi ASCIZ tip. Ako se koristi
string tip onda je stvar za nijansu drugacija, ali ne mnogo.
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.321postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Tue, 21 Nov 1995 13:12:25
"Zeljko Jovanovic" said:
"J> Na kraju, BASIC kao jezik (ne uzimajuci u obzir konkretnu
"J> implementaciju), je daleko bolji od Pascala.
Vidim da se neko bacio u polemiku s tobom, na osnovu ove i
slicnih izjava.
Ja cu te shvatiti da si samo bacio kosku da nas napalis.
Ako ti je to bio cilj, uspelo ti je :)))))
Sve sto si naveo kao prednosti bejzika su samo naizgled prednosti.
BEJZIK je odlican za one koji ne znaju mnogo o programiranju jer
pola posla zavrsi sam po principu, vazno je da radi a kako radi,
to i nije tako bitno.
Nigde nisi pomenuo optimizovanje koda, efikasnost tipova s kojima
je bejzik u "prednosti" nad visim programskim jezicima, efikasnost
fukcija koje operisu sa takvim tipovima, itd... Ili da pricamo o tome
da su ogranicenja visih programskih jezika u stvari ogranicenja
masine na kojoj su realizovani, a ne programskog jezika. Sve te
"prednosti" su u stvari prevazilazenja ogranicenja masine i nije ih
tesko implementirati u visim programskim jezicima, samo sto je to
uvek naustrb funkcionalnosti (citaj brzine), ili, cesce,
program se jednostavno pise za protected mod.
Bejzik je jezik za decu. On samo spolja dostize vise programske
jezike, ali je u samoj osnovi takav da ne moze da se meri sa
njima.
Razlika izmedju bejzika i visih programskih jezika (moracemo da
uvedemo neku skracenicu za ovo :> ) je u tome sto se u bejziku
nesto napise brzo i lako, a u ovim drugim jezicima je na prvom
mestu da program radi brzo i lako.
Eto, a kad sam pisao ono "bejzik, bljak", pomislio sam da ce
se mozda naci neko da prigovori... :)))))
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.322postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Tue, 21 Nov 1995 17:28:41
>> Petar Ristic nekad rece, a ja ga sad citiram <<
PR> Uzmi lepo assembler i uradi scroll. E da, umalo da zaboravim,
PR> obavezno cekaj da mlaz dodje dole, kad scroll-ujes. :)
Pomocu assemblera? U assembleru sam radio vrlo malo a i ono sto
znam nije dovoljno :(.
Da objasnim ...
ucitam mapu sa diska,
stavim je u pomocnu memoriju,
pomocu komande MOVE prebacujem slike, takoreci, trenutno na ekran,
ali ... kod skrolovanja nece da radi tako brzo :(((.
Da objasnim malo skrolovanje ...
kad ucitam mapu ona ide u pomocnu memoriju u promjenljive tipa
array[0..64000] of byte; (koristim 320x200.256 rezoluciju) i sa njima
manipuliram kako hocu ... a kada hocu da skrolujem radim to po slijed
ecem postupku (citaj program)...
uses Dos;
type Maper = Array[1..200, 1..320] of byte;
var P1, P2 : Pointer;
Screen : Maper ABSOLUTE $A000:$0000;
TmpScr : Maper ABSOLUTE $A000:$0001; {jedan bajt desno}
Map1, Map2 : ^Maper; {nisam siguran da li ide "^"}
r, i, j : Integer;
Regs : Registers;
procedure LoadFileMap(FileName : String; WhatPart : Maper);
var F : File;
begin
Assign(F, FileName);
ReSet(F);
BlockRead(F, WhatPart, 500);
Close(F);
end;
begin
Regs.AH := 00; Regs.AL := 19; Intr($10, Regs); {inicijalizuje grafiku
320x200.256}
New(P1); New(P2);
GetMem(P1, 64000); GetMem(P2, 64000);
Map1 := @P1^; Map2 := @P2^; {stavlja Map1 na slobodnu mem.}
LoadFileMap('PICTURE.1', Map1^);
LoadFileMap('PICTURE.2', Map2^);
Move(Map1, Screen, SizeOf(Map1)); {stavlja prvu sliku na ekran}
For i := 1 to 100 do
begin
For j := 1 to 200 do
begin
Move(TmpScr, Screen, SizeOf(TmpScr));
Screen[j, 320] := Map2^[j, 320];
end;
end;
end.
Eto, to je taj program. Nisam siguran da li ce da radi posto sam ga onako
pisao (na herkules karti) ali ja to radim tako, ako si shvatio :))).
Sliku snimi sa BlockWrite(F, $A000:$0000, 500); (ili tako nekako) i onda
probaj program. Ako ne bude radio ,ailuj pa cemo vidjeti, a, ako ti imas
rijesenje u masincu opet mailuj pa cemo vidjeti.
P.S. Unaprijed hvala.
pozdraw, ASKO
... Ko prvi djevojc sam u nju upada !
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.323postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Tue, 21 Nov 1995 17:28:42
PS> Asmir Badnjevic said:
Pedja said :))
PS> Ne znam, pogledacu koliko je pa ako je dovoljno mlo, eto ga...
Pogledaj :).
PS> Mislim da ces morati da koristis DMA, a oko toga vec znam vrlo malo.
PS> Bilo jepre nekog vremena reci bas u ovoj konferenciji... Naci ce se
PS> vec neko dati pomogne.
DMA, sta je to. Valjda ce se naci, bar se nadam :).
P.S. Ovo sam ti vec pisao ali izgleda da je poruka negdje isparila.
pozdraw, ASKO
... tata vidi .... TAG
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.324postmast,
From: vojam@setnet.co.yu (Vojislav Mihailovic)
Subject: Knjiga Za Objektni Tp
Date: Wed, 22 Nov 1995 22:45:06
* U poruci za MARKO MILIVOJEVIC, OGNEN DUZLEVSKI kaze:
OD> MM> Ja sam genije. Shvatio sam pravo resenje za konflikt u
OD> MM> Bosni!!! Svi mi treba da se pomirimo i zivimo lepo kao
OD> MM> ranije. Treba mi neka knjiga iz politike da vidim prakticnu
OD> MM> primenu i najbolje resenje za moj zakljucak.
OD> Mesas babe i zabe a i pricas gluposti.
A i ovo je NET.PASCAL
* Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.325postmast,
From: Vladimir.Svrkota%f119.n111.z38@setnet.setnet.co.yu (Vladimir Svrkota)
Subject: Strimovi
Date: Wed, 22 Nov 1995 15:44:00
OD> ime mozes da unistis sa DisposeStr, a da ga procitas iz stream-a sa
OD> ReadStr.
Kako vidim, strimovi ti nisu strani :). Interesuje me da li je moguce
(mislim da jeste moguce, samo je pitanje kako) snimiti _objekte_ u
strim na disku, a posle te iste ucitati sa diska?
... éí 'aaníígóó 'áhoot'é
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.326postmast,
From: Vladimir.Svrkota%f119.n111.z38@setnet.setnet.co.yu (Vladimir Svrkota)
Subject: Turbovizija
Date: Wed, 22 Nov 1995 01:11:00
VS>menja, vec samo da se vidi. U turboviziji postoji objekat TWindow, ali
VS>ne znam kako da u njega upisem sadrzaj datoteke. Unapred hvala.
OD> Napravi naslednika TWindow koji ce kao polje imati TTerminal. Za
OD> TTetminal mozes da zakacis datoteku sa AssignDevice. Experiment a bit.
Pa upravo tim putem sam krenuo i - zaglavio se. Ja jesam nasledio TWindow
i u njega ubacio TTerminal, ali problem mi je prenos sadrzaja datoteke u
terminal (uzgred, duzina datoteke u terminalu moze biti max. 64k, koliko
iznosi maksimalni bafer terminala). Dalje, sa AssignDevice sam preusmerio
standardni izlaz (output) na terminal, pa sam sa klasicnim readln citao
liniju iz datoteke i sa writeln je upisivao u terminal. To je, medjutim,
uzasno sporo. Postoji i drugi nacin, a to je pomocu metode StrWrite iz
klase TTerminal. Sintaksa ide ovako:
procedure StrWrite(var S: TextBuf; Count: Byte); virtual;
Ovo bi trebalo da iz bafera S prebaci Count linija teksta u bafer ter-
minala, tj. u sam prozor terminala. E, meni je glavni problem onaj bafer
S. Sta god da na njegovo mesto stavim (pointer, string,...) kompajler
me obraduje jednim Type Mismatch. Sta da radim ?
... éí 'aaníígóó 'áhoot'é
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.327zeljkoj,
> A liste u Basicu si zaboravio... ? ;)
A šta će mi liste kad imam lepe dinamičke nizove? :))
pascal.328zeljkoj,
> Nelupaj ...
> U TP mozes da definisheh i STRING duzinine 60Kb :))
Da, ali samo u BP 7.0. :) I to je null-terminated string što znači
da u stringu ne sme da postoji chr(0) karakter.
> A to vezano za BASIC . je smesno ...
> Em sto uzima mnogo MEMORIJE ...
> VELIKO JE ...
> I SPOOOOOOOOOOOOOOOROOOOOOOOOOOOOO !!!!!!!!!
Šta je smešno? Šta zauzima mnogo memorije? Šta je sporo?
> ┌───────────────────────────────────────────────────────────────
> │/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS
> /\■/\ ║ │ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22
> - 22-06 < \ ║
> ď═══════════════════════════════════════════════════════════════
>
> ... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
> * ■ >:[] NemesiS ■
Sa ovim bi više mogao da prestaneš.
pascal.329zeljkoj,
> Mislis ??!?!?!? Koliko zauzima Mb nije vazno, nego je vazno
> koji je program userfriendly, shvatas? U paskalu se moze
> uraditi mnogo, mnogo, mnogo ... * beskonacnost vise od
> bejzika. I nije u pitanju koliko zauzima ... TP6.0 zauzima oko
> 2 Mb na disku i sam njim se moze uraditi puno vise nego sa
> tvojih 15Mb bejzika.
Naravno da nije bitno koliko zauzima MB.
Samo kažem, da je jedina uporediva verzija TP-a sa BASIC-om, BP 7.0
koji zauzima 30 MB. Već TP 6.0 nema ni delić od PDS-ovih mogućnosti.
pascal.330zeljkoj,
> Ja cu te shvatiti da si samo bacio kosku da nas napalis.
> Ako ti je to bio cilj, uspelo ti je :)))))
Ne, nije mi to bio cilj. Pogrešno si shvatio.
> je bejzik u "prednosti" nad visim programskim jezicima,
BASIC je viši programski jezik. :)
> Bejzik je jezik za decu. On samo spolja dostize vise programske
> jezike, ali je u samoj osnovi takav da ne moze da se meri sa
> njima.
Kakvi visokoumni zaključci. :))
BTW, (drugi put): BASIC je viši programski jezik.
> Razlika izmedju bejzika i visih programskih jezika (moracemo da
> uvedemo neku skracenicu za ovo :> ) je u tome sto se u bejziku
Treći put: BASIC je viši programski jezik.
pascal.331dpredovic,
> - Šabloni
> - Izuzeci
> - RTTI
Exceptions i RTTI postoje i u pascalu. Doduše ne zove se BP8 nego Delphi,
ali to ne bi trebalo da ima veze.
Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju zajednički
koren, pa se sve svodi na običan type-cast.
> Da stvar bude grđa po Pascal, sve ove stvari (a i one koje ti
> pominješ) su u definiciji C++ jezika, dok' su objekti u Pascalu
> (ubr., stoje mu k'o piletu gas-maska ;) Borlandova izmišljotina,
A objekti u C-u izmišljotina nekog šveđanina. Svašta. >;) A kada smo već
kod definicije jezika, koliko je C++ trebalo godina da dobije sve te lepe
stvari sa početka poruke? Dok se usaglase svi ti ANSI/ISO/DIN/JUS komiteji
Borland 16 puta promeni jezik iz korena. :) A da C++ dobije ono što ima
Delphi, prvo ćete morati da ubijete Stroustrupa i pola AT&T-a. :)
Vidi šta se desilo strogo standardizovanim jezicima (fortran, cobol...),
a gde je dogurao basic.
> Zar vas ne zamara da jednim okom čitate uputstvo za Object Oriented
> Pascal, a drugim pratite stanje Borlandovih akcija na berzi?
> Phuuu brate, frka ... pogotovo u ova smutna vremena. ;)
Nemoj misliti da sam neki veliki zaljubljenik u pascal, a još manje u
Borland. C/C++ imaju mnogo časova radnog staža u mom editoru. C mi je još
uvek referenta tačka. Kada učim nov jezik, sve sintaksne strukture prvo
u glavi prevodim u C. Uz C++ sam naučio šta je OOP.
Sa druge strane TP, ne znam koja verzija, je jedan od prvih programa na mom
prvom PC-u. Također, jedan je od prvih programa na kojima sam upotrebio XRD.
Delphi je opet treća priča. Nestandardan jezik koji ima sve što i C++, a i
nešto više - slobodu dizajna koja je potrebna kompajliranom jeziku da postane
nalik interpreteru - Visual Basicu.
Od računara i programiranja leba jedem (a život je kod nas straašno skup),
i potrebno mi je nešto što će mi omogućiti da budem što je moguće
produktivniji. Pod DOS-om to nije bio niti TP niti BC niti MSC nego Clipper,
prilično nestabilan kompajler totalno nestandardnog dijalekta vrlo nesrećno
dizajniranog jezika. Al' što sam se sa njim namlatio para ne mogu da ti se
nahvalim. ;) I niti jednog trenutka se nisam zamislio nad tržišnom sudbinom
tamo nekog Nuntacketa koji ga je napravio. Oni su pukli, Clipper je otkupio CA,
i nikom ništa. A i da ga nije otkupio, pa šta onda? Nemaju valjda kompajleri
link sa Wall Streetom, pa da stupaju u štrajk kada kompanija pukne?
Radio bi on sasvim lepo možda pola godine-godinu dok se ja ne bi prešaltovao
na nešto drugo, a i još mnogo duže, dok god treba da održavam matore programe.
BTW, misliš da će standardizacija C++ da pomogne silnim OWL programerima
kada Borland pukne?
pascal.332postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Wed, 22 Nov 1995 16:29:49
PS> Direct Memory Access. Umesto da pises program ili koristis funkcije
PS> za premestanje sadrzaja memorije, taj posao prepustic hardveru.
PS> Samo mu kazes koji memorijski blok gde zelis da bude prebacen.
PS> Posto to radi hardver, trebalo bi da bude mnogo brze od bilo kakvog
PS> programa.
To sve tako divno zvuci :))). Kako to da uradim ??? Je li pomocu
asemblera ?
pozdraw, ASKO
... Sta vredi robijasima sto imaju brojeve kad ne ucestvuju u izvlacenju!!
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.333visnja,
> - Šabloni
> - Izuzeci
> - RTTI
Ne znam sta su sabloni i RTTI ali PASCAL IMA IZUZETKE, Pogledaj
verziju BP 8.0 poznatiju i kao DELPHI!
> Da stvar bude grđa po Pascal, sve ove stvari (a i one koje ti
> pominješ) su u definiciji C++ jezika, dok' su objekti u Pascalu
> (ubr., stoje mu k'o piletu gas-maska ;) Borlandova
> izmišljotina, i postojaće dok postoji ta firma. Dakle, ulažeš
> vreme i trud da savladaš nešto (paskal sa objektima) čiji
> opstanak i unapređivanje zavisi od razvojne politike jedne
> ugrožene firme, i njenog kotiranja na berzi, spram C++-a koji
> je priznati standard sa lepom sadašnjosti i istom takvom
> perspektivom.
> Zar vas ne zamara da jednim okom čitate uputstvo za Object
> Oriented Pascal, a drugim pratite stanje Borlandovih akcija na
> berzi?
Definiciju koju definisu Ameri za svoje proizvode. Nisu ludi da
definisu PASCAL koji nije Americkog porekla! (apsolutno odobravam)
Zato je Pascal i promenio ime u DELPHI, sada je Americki!
Sto je naravno odlicno. Gledajuci DELPHI nisam siguran da ce da
crkne. Moze samo vlasnika da promeni.
Na kraju krajeva, rekao sam da je C sjajan, i stvarno je u mnogim
primenama ELEGANTNIJI od Pascala. I ko je programer? Onaj koji zna
C ili PASCAL sigurno nije. Znas slova - nisi pismen, moras da
znas i da pises!
I zasto Pascalu ne stoje objekti? Pa C (C++) i Pascal SU ISTI JEZICI.
Razlika je u sintaksi, implementacija raznih algoritma je identicna,
DO..WHILE, FOR, blokovi (sada jesu li {...} ili BEGIN...END)...
Pozdrav, Visnja.
pascal.334visnja,
> ali #27 je konstanta, a chr(27) je funkcija... potrebno je neko
> vreme da on pozove funkciju, i da se vrati posle toga (uz razne
> operacije sa stekom)
Ljudi, nisam gledao na optimizaciju nego cisto na estetiku samog
source-ta
u smislu da lici na C, da bih dokazao da su C i Pascal isti jezici i
da ako se nesto napise u jednom ovako, u drugom moze isto tako...
Implementacija konkretnog algoritma na C-u i Pascalu je slicna, dok
npr. u FORTH-u ne lici ni na jedan od ova dva jezika...
Pozdrav, Visnja.
pascal.335iznogud,
:: Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju zajednički
:: koren, pa se sve svodi na običan type-cast.
A šta ako tvoj objekat treba da bude, recimo, generički kontejner za
sve ostale vrste objekata, pa i onih koji nisu izvorno Delfijevi? Hoće
li i onda da pali type-cast? Jesi li ti nekad koristio šablone?
Po ovoj logici, ni C++-u nisu trebali šabloni, pošto sve može da se
radi sa pointerima, pa onda i kod njega pali 'običan type cast'.
:: BTW, misliš da će standardizacija C++ da pomogne silnim OWL programerima
:: kada Borland pukne?
A kakve veze ima standardizacija jezika za programiranjem pod
Windows-ima? Ako nekom tu treba standard, onda neka uzme MFC - bar tri
kompajlera (BTW, sva tri prave bolji kod od Borlandovog) podržava MFC.
(BTW, da li se nekad budiš oznojen, jer si sanjao ovaj san: 2020-ta je
godina, svi radimo na PowerPC-u na 10 GugolHz, a ti pokušavaš da
prodaš program koji radi pod emulacijom Intela i emulacijom Win31.
Zašto? Pa Borland je puk'o 1997...)
Standardizacija će da pomogne kod prenošenja programa sa platforme na
platformu, i sa kompajlera na kompajler - džaba meni što (recimo)
MSVC 1.5 pravi bolji kod od Borland C++ 4.0, kada to čudo nema
izuzetke. Ili, zamisli situaciju prenošenja neke biblioteke zasnovane
na RTTI-u na unix, gde gcc ne podržava nove ekstenzije C++-a...
Ja znam da ovi argumenti ne vrede baš u temi koja se (uglavnom) bavi
nestandardnim i neprenosivim jezikom, ali znaš kako kaže stara kineska
poslovica: 'ne bacaj kamen na tuđu kuću ako je tvoja od stakla' ;)
pascal.336.sima,
║║ Moze li nesto malo vise o ovim strimovima?
║║ U dokumentaciji od BP ne nadjoh im ni pomena.
║║ Da li je to ugradjeno u sam Paskal ili je neka dodatna biblioteka?
Iz BP 7.0:
┌───────┐
│TObject│
└───┬───┘
┌───┴───┐
│TStream│
└───┬───┘
┌────────┼────────┐
┌────┴──────┐ │ ┌──────┴──────┐
│TEmsStream │ │ │TMemoryStream│
└───────────┘ │ └─────────────┘
┌─────┴────┐
│TDosStream│
└─────┬────┘
│
┌─────┴────┐
│TBufStream│
└──────────┘
Pogledaj za sve ove tipove. Korišćenje je više nego jednostavno.
pascal.338.sima,
║║ Ima li neko kakav fin unit za swap u DOS shell?
Ne znam da li je fini, ali meni je super radio. Podržana je XMS. Kod
je davno napisan i nije skoro korišćen. Swapuje ceo heap u XMS.
<----------------
{------------------------------------------------------------------------------
}
{ Copyright by Srdjan Simic
}
{ 1993
}
{ <.sima@sezam.co.yu>
}
{ <ss45791d@buefhp.etf.bg.ac.yu>
}
{------------------------------------------------------------------------------
}
{$A+,B-,D+,E-,F-,G+,I+,L+,N+,O-,P-,Q+,R+,S+,T-,V+,X+,Y+}
{$M 2048,0,655360}
uses dos, crt, xms;
procedure SetMemTop(MemTop: Pointer); assembler;
asm
mov BX,MemTop.Word[0]
add BX,15
mov CL,4
shr BX,CL
add BX,MemTop.Word[2]
mov AX,PrefixSeg
sub BX,AX
mov ES,AX
mov AH,4AH
int 21H
end;
procedure shellreal;
var
swaped: boolean;
Max, Total,
handle,
NumPage: word;
velicina: longint;
begin
velicina:=longint(Seg(HeapPtr^))*16+longint(Ofs(HeapPtr^))-longint(Seg(HeapOrg^
))*16;
NumPage:=velicina div 1024;
if NumPage <> velicina /1024
then inc(NumPage);
swaped:=false;
X_QuerryFree(Max,Total);
if X_Installed and(NumPage <= Max)
then
begin
swaped:=true;
X_AllocEMB(NumPage, handle);
with MovRec do
begin
duzina:=velicina;
ZeroS:=0; SPtr:=HeapOrg;
ZeroD:=handle; DPtr:=nil
end;
X_MoveEMB(@MovRec);
SetMemTop(HeapOrg)
end;
{ swapvectors; exec(GetEnv('COMSPEC'),''); swapvectors;}
if swaped
then
begin
SetMemTop(HeapEnd);
with MovRec do
begin
duzina:=velicina;
ZeroS:=handle; SPtr:=nil;
ZeroD:=0; DPtr:=HeapOrg
end;
X_MoveEMB(@MovRec);
X_FreeEMB(handle)
end
end;
var
i: integer;
begin
readkey;
shellreal;
writeln('Gotovo');
end.
Zahteva XMS.PAS. Mislim da je iz xms30.zip. Nije baš za poruku.
pascal.339oper,
>> Exceptions i RTTI postoje i u pascalu. Doduše ne zove se BP8
>> nego Delphi, ali to ne bi trebalo da ima veze.
Exceptions & RTTI ne postoje u pascalu, već u Delphi-ju. Ni
jedan drugi kompajler ih ne podržava. Kod c++ kompajlera,
stvar je sasvim drugačija. Mada, sve ovo i nema veze, ako u
Delphiju za jedno posle podne mogu da uradim ono za šta mi u
c++ u treba par dana :)
>> Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju
>> zajednički koren, pa se sve svodi na običan type-cast.
Ne razumem se mnogo u objektni paskal, ali me interesuje kako
se u njemu postiže sledeća konstrukcija:
template <class T> class Erej
{
T* data;
int size;
public:
Erej(int);
~Erej();
T& operator[](int i) {return data[i]);}
};
void main(void)
{
Erej<int> niz_intova(5);
Erej<char*> niz_stringova(10);
}
žini mi se da ovo, ipak, nije moguće?
pascal.340postmast,
From: ivica@I_should_put_my_domain_in_etc_NNTP_INEWS_DOMAIN (Ivica Nikolic)
Subject: Re: PASCAL
Date: Mon, 27 Nov 1995 11:40:25 GMT
NEMESIS je napisao:
>> TRECA STVAR ....
>> UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU !
>> NEMA LEBA DA NAPRAVI ISTU KOPIJU ...
>> I napravis program koji prilagodjava testiraneje disketi :)))
Eeee, najzad posle gomile suma da i ti napises nesto pametno
Ja sam jos davno razmisljao o takvoj zastiti, jos dok sam pisao neki
program za Amigu. Otprilike, iglom probusis formatiranu disketu na nekom mestu,
onda utvrdis koji su tacno sektori osteceni, i posle u svom programu
povremeno pokusavas da formatiras te sektore, da bi utvrdio da li je
stvarno prisutna originalna disketa. Naravno, treba nekako da budes siguran
da neces unistiti sektore na kojima je snimljeno nesto korisno. Radi
otezavanja posla hakerima, za pristup unistenom sektoru trebalo bi da se
zaobidje BIOS, i da se gadja sam kontroler, sto bi malo zakomplikovalo
zastitu.
Prednosti:
- Prakticno je nemoguce iskopirati takvu disketu, cik da vidim nekog da
probusi disketu tacno na mestu treceg sektora u 76-om cilindru.
- Jeftinije od hardlock-a, i moze se lako uraditi u domacoj radinosti -
od dodatnog hardvera potrebna je samo igla.
Nedostaci:
- Originalna disketa mora da bude u drajvu dok se program koristi.
- Za svaku kopiju programa treba probusiti disketu, videti koji sektori
su osteceni, i onda iskompajlirati svoj program da radi samo sa tom
disketom, i ni sa jednom drugom. Ovaj proces bi mogao da se automatizuje
(osim samog cina busenja diskete), ali bi i dalje to islo presporo za neku
masovniju proizvodnju.
--
Program too big to fit in memory
pascal.341postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: SWAP
Date: Sat, 25 Nov 95 01:28:00 +0100
---> Ima li neko kakav fin unit za swap u DOS shell?
Ima ja jedan .. radi SWAP ili na DISK ili na EMS/XMS/..
ALi problem je sto nemam INC file za taj TP ..
A PAS sam slucajno obrisao ...
Ako oces poslacu ti ga ...
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.342maksa,
>> Exceptions i RTTI postoje i u pascalu.
>> Doduše ne zove se BP8 nego Delphi,
Koliko sam shvatio iz Borlandove reklamne kampanje, ("VB Killer",
tako beše?) Delphi je pandan Visual Basic-u, a po onome što čitam vidim
da su i po performansama (kompajliranje i izvršavanje) tu negde.
'Ajmo malo konzistentnije. Ovde se do sada vodila "teorijska rasprava"
(od toga, btw, 'leba nema, al' 'ajde kad se već razgovaramo) o
standardima, a ne o implementacijama.
A ako ćemo baš i o implementacijama... evo ti očigledna prednost
standarda vs. implementacije, odn. poenta onoga što sam 'teo reći:
Mogu da se napišu C++ klase sa izuzecima, šablonima i RTTI-jem
za bilo kakvu konkretnu (inžinjersku, naučnu, knjigovodstvenu ... )
primenu, koje će da rade pod DOS-om (uz malo zezanja i kompromisa i
pod nekim Unix-om) i da se po potrebi presade u Windows ili na Mac-a,
ali *ne može* da se napravi Paskal ekvivalent koji obezbeđuje sve te
lepe nove konstrukcije, a da trči pod oba (ili sva tri) okruženja. Na
pr., tvoja klasa Matrica, (kod koje se pucanje van granica matrice,
ili slučaj Det=0, i slični belaji ... hvataju izuzecima) će u Delphi-ju
raditi samo pod Windows-ima, a u C++-u možeš da je nosaš sa sobom duž
većine hardverskih platformi i operativnih sistema.
>> Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju
>> zajednički koren, pa se sve svodi na običan type-cast.
Ovako od ove jedne rečenice se ne čini da je to mehanizam koji
potpuno zamenjuje šablone. Ako bi bio voljan da to malo razjasniš?
Šta ako hoću da mi kontejner sadrži, na pr., funkcije?
Kako bi se preko tog zajedničkog korena, recimo, izveo generički
asocijativni niz?
Šta u Delphi-ju zamenjuje template (ne klase, nego) funkcije?
>> kod definicije jezika, koliko je C++ trebalo godina da dobije
>> sve te lepe stvari sa početka poruke?
Mnogo manje (duplo) nego Wirth-ovom Paskalu. ;)
>> BTW, misliš da će standardizacija C++ da pomogne silnim OWL
>> programerima kada Borland pukne?
OWL programerima najbolje može da pomogne munjevito šaltanje na MFC,
što bi im garantovalo lep život na trenutno tri kompajlera. Ako neko
paranoično (ovo nije ništa loše, nemirna su vremena) ne veruje ni u
jedno od ta dva rešenja, može da odvoji koji mesec i napravi svoje
rudimentarne Windows klase, i tu je C++, što bi DVV rekao, "skoro uvek
sigurna kupovina", baš zahvaljujući standardizaciji i rasprostranjenosti.
Da prekinemo ovo, pošto je "od izvora 'iljadu putića", a i slabo ljubim
ovakve "svete ratove". Samo sam reagovao na neispravnu tvrdnju da "sve
što može C++ može i Paskal", i to još uvek tvrdim. Programiranje je već
duže vreme dovoljno širok pojam, sa dovoljno velikim dijapazonom primena,
i ako se to ne sagleda, dolazi do ovakvih i sličnih nesporazuma i
neslaganja.
pascal.343vitez.koja,
#=> From: broker@setnet.co.yu (Predrag Supurovic)
#=> Subject: pascal
#=> Date: Tue, 21 Nov 1995 13:12:25
#=> Sve je potpuno isto kao i ovo sto si ti napisao samo sto
#=> je druga sintaksa, ako se koristi ASCIZ tip.
Ako koristiš pointere i ASCIIZ tip (pchar ili neki tvoj,
svejedno), nema potrebe da pišeš u Pascalu, jer je C jezik za
tebe.
pascal.344icile,
Dobro, a cemu sluze ti stringovi od 32K. Da li je to navedeno samo kao 'pa,
eto ima i to pored svega' ili kao neka ozbiljna prednost koja se ispoljava u
programiranju.
Naravno da je bolja obavezna deklaracija promenljivih jer to daje nakakvu
preglednost programu. Ako toga nema, otkud znam sta sam u programu upotrebio
kao imena promenljivih? To je narocito znacajno ako neki program pises, pa
posle odredjenog vremena (kad sve zaboravis) hoces da ga dopunis. Kako ces
znati sta ti znaci svako od imena promenljivih?
Meni je bilo zanimljivo nesto sto je neki covek rekao o Bejziku i ostalim
(boljim programskim jezicima, u koje ubrajam i Pascal):
"Kada resavate neki problem u nekom programskom jeziku (normalnom) mozete
u potpunosti da se posvetite resavanju tog problema, dok u Bejziku morate da
razmisljate na koji nacin je to moguce implementirati."
pascal.345icile,
-> Deklarisanje promenljivih mozda jeste korisno, ali je strasno zamorno.
-> Uostalom, postoji OPTION EXPLICIT, pa mozes da biras. :)
Postoji mnogo glupih komandi koje je potrebno zadati tom Bejzik kompajleru
da bi ozbiljan programer bio zadovoljan njegovim radom. Zar OVO nije zamorno?
pascal.346icile,
-> zato paskal sluzi i u edukativne svrhe. E sad, stvar je kompajlera
-> kako ce ovo prevesti i da li ce C biti brzi nego paskal. Optimizacija
-> u 90% slucajeva na sadasnjim masinama nije toliko bitna.
Hm, pre nekoliko godina sam gledao neki program koji sljaka sa vektorskom
grafikom i, covek je napravio verziju na Paskalu i ekvivalent na C-u. Posto je
program sporo radio, covek je merio koji je program brzi za istu radnju.
Ispostavilo se, na njegovo iznenadjenje, da je brze radio ovaj u Paskalu!
Verovatno se radilo o Borlandovim Turbo jezicima, pa je Turbo Pascal, omiljeno
Borlandovo cedo, mnogo bolje uradjen od njegovih ostalih kompajlera. Da ne
pricam o kodu, koji je bio znatno kraci, ali ... ko jos to sad gleda.
pascal.347icile,
A, ima li taj fantasticni Bejzik nesto tipa record na Paskalu ili strukture
na C-u??
pascal.348icile,
-> Zna li neko kako mogu da procitam ime diskete ? (vrlo je hitno)
Pa, citas ga normalno kao ime fajla, samo ime diskete ima poseban atribut.
Probaj sa parom funkcija FindFirst, FindNext. Pogledaj primere u Help-u i sve
ce ti biti jasno.
pascal.349postmast,
From: ivica@galeb.etf.bg.ac.yu (Ivica Nikolic)
Subject: Re: pascal
Date: Wed, 29 Nov 1995 14:25:21 GMT
Zeljko Jovanovic je napisao:
>> > A liste u Basicu si zaboravio... ? ;)
>> A sta ce mi liste kad imam lepe dinamicke nizove? :))
Da sam na tvom mestu, posle ove izjave bih odmah prodao modem, kompjuter,
frljnuo indeks u kontejner, i otiso ispred Vuka da trazim posao.
--
D Break, CONT repeats
pascal.350postmast,
From: ivica@galeb.etf.bg.ac.yu (Ivica Nikolic)
Subject: Re: pascal
Date: Wed, 29 Nov 1995 14:54:25 GMT
Milos Visnjic je napisao:
>> Evo DIREKTNOG prevoda C programa na PASCAL, TEXT je terminisan nulom,
>> dakle
>> ide do 65535 (ili nesto manje) karaktera, cak i vise ako se program
>> prevede
>> u PROTECTED rezimu, upotrebio sam nezgrapne skupove (IN !), jer sam
>> pre par
>> poruka rekao da i PASCAL ima ISALPHA! E pa nije bas tacno, ima
>> ISCHARALPHA
>> funkciju koja je ekvivalent, ali ta funkcija je u WINPROCS unit-u,
>> dakle
......
>> Konkurencija kaze: (izvod iz BorlandPascal HELP-a)
>> FormatStr procedure (DRIVERS unit)
>>
>> Declaration:
>> procedure FormatStr(var Result: String; Format: String; var
>> Params);
>> Function: ovo gledaj \/ \/ \/ \/ \/
>> A generalized string formatting routine that works much like the C
.....
>> SEM PREOPTERECENJA OPERATORA i visestrukog nasledjivanja ( A da vidim
>> ko
>> koristi visestruko nasledjivanje sem u RTL-u), nema toga sto C++ moze
>> a
>> Pascal ne MOZE!
I sta si time dokazao? Da Pascal moze sve sto moze i C++? Onda nisi
morao toliko da pises, svaki programski jezik moze sve sto moze i C++, ali
nije u tome sustina problema. Ti si zapravo dokazao da je Pascal bio
neupotrebljiv za efektivno programiranje (za sta uostalom nije ni
izmisljen), dok na njega nisu nakalemljene brojne ekstenzije preuzete
direktno iz C(++)-a i Module.
Ne, nisam ja nikav Pascalomrzac, mnogo sam kilobajta sorsa napisao u
Turbo Pascalu, ali jednog trenutka sam video da se 95% mojih Pascal programa
sastoji od budzevina koje nisu deo standardnog Pascala. Samim tim, moji
Pascal programi su bili neportabilni, cak su postali zavisni i od verzije
Turbo Pascala u kojoj su pisani. S druge strane, C i C++ su strogo
standardizovani jezici, njihova sintaksa i semantika uopste ne zavise od
implementacije (sa izuzetkom Borlandovih DDVT u OWL 1.x, koja je ionako
zstarela), takodje i standardna biblioteka funkcija.
Posto su skoro sve "budzevine" u Pascal prenesene iz C(++)-a, logicno je
da je u C(++)-u njihovo koriscenje mnogo prirodnije uklopljeno u samu
filozofiju jezika. Cim pocnes da pises malo veci program, takve sitne
neprirodnosti pocinju da zuljaju, i pocinju da uticu na samu strukturu
programa.
Jos jedna stvarcica koju i danas ne mogu da oprostim Pascalu je
nemogucnost da funkcija vrati vrednost koja nije osnovnog tipa (Integer,
String, Boolean...).
1992. sam poceo da na Amigi pisem prilicno veliki program za titlovanje.
Poceo sam ga u HiSoft Pascalu, koji je neka vrsta TP klona za Amigu.
Taj Pascal je, naravno, podrzavao i Amigine sistemske pozive - formalno nije
bilo nikakvih prepreka da se ceo projekat izgura u njemu. E, onda su poceli
da se gomilaju problemi: prvo, nema staticke inicijalizacije, sve
promenljive moraju da se inicijalizuju pomocu := operatora.
Zero-terminted stringovi nisu podrzani u funkcijama za rad sa stringovima,
nema pointerske aritmetike...
Onda mi je do ruku dosao jedan udzbenik za C, i video sam da najvise
vremena trosim na zadovoljavanje Pascal-ovih sintaksnih hirova, koji su u
originalnoj Pascalovoj filozofiji bili sasvim opravdani.
I tako sam ja lepo naucio C, i ceo projekt uradio u Aztec C-u.
Da rezimiram, pre nego sto se potpuno rasplinem: sve frizirane verzije
Pascala omogucuju da se u Pascalu pisu C(++) programi. Verujte mi na rec,
C(++) programi se mnogo bolje pisu u C(++)-u.
--
Program too big to fit in memory
pascal.351postmast,
From: mladen.adamovic@blbbs.elf.bl.ac.yu (MLADEN ADAMOVIC)
Subject: Re: pascal
Date: Sun, 26 Nov 95 20:13:00 -1
-+=+- Dejan Jelovic rece : -+=+-
DJ> A da optimizacija nije bitna... Pa sad, ja drzim da je rucna
DJ> optimizacija cak stetna, ali ona koju radi kompajler? Razlika sa i bez
DJ> nje je drrrasticna.
Ja mislim da prepirka da li je bolje optimizovan BORLAND C i BORLAND
PASCAL manje-vise nebitna. Algoritamski program treba da bude optimizovan,
a ostalo moze da dovede do ubrzanja programa najvise desetak puta,
sto uglavnom nije toliko bitno...
... Newtonov slabo poznati sedmi zakon : Bolje vrabac u ruci nego iznad gl
___ Blue Wave/QWK v2.12
pascal.352postmast,
From: mladen.adamovic@blbbs.elf.bl.ac.yu (MLADEN ADAMOVIC)
Subject: RE: PASCAL
Date: Sun, 26 Nov 95 20:42:00 -1
-+=+- Nemesis rece : -+=+-
Ne> UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU !
Istim su se zanimali Sezamovci pre par godina i shvatili su da busilica
nije potrebna - dovoljno je samo malo bocnuti iglom, ako ne zelite
MNOOOOOGO losih sektora :).
... XjhgwaduiwueoqimnBDDDDKJSBMN! <--Tag created on Pentium
___ Blue Wave/QWK v2.12
pascal.353postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Wed, 22 Nov 1995 14:40:00 GMT
--> From: "Dejan Jelovic" <djelovic@sezam.UUCP>
DJ> > Licno mislim da su oba pomenuta jezika slabija od Ca (basic
DJ> > mi je suvise mrljav, pascal suvise krut)
DJ> Licno mi se cini da su C i Pascal (ili Modula-2, nije bitno) funkcional
DJ> identicni, s tim sto Pascal ipak ima daleko citljiviju sintaksu, plus nema
DJ> perverzne operatore koji danas uz optimizujuce kompajlere ionako vise nisu
DJ> bitni.
Ako cemo do citljivosti, onda je M2 najcitljivija bas zbog preterivanja
u doslednosti sa Virtovim zamislima vizuelno lepog sourcea. ;)
Meni se licno cini da Pascal ima vise apstrakcije od C-a (i M2 sa
nestandardnim -- citaj: uobicajenim -- bibliotekama) Pogledaj samo
rad sa fajlovima.
C mu vise dodje preprocesor za asembler, sto sa opmizujucim kompajlerima
koje pominjes, svakim danom postaje sve tacnije.
pascal.354zeljkoj,
> Dobro, a cemu sluze ti stringovi od 32K. Da li je to navedeno
> samo kao 'pa, eto ima i to pored svega' ili kao neka ozbiljna
> prednost koja se ispoljava u programiranju.
Na primer, često mi treba da tekstualnu datoteku sa jaaaaaako velikim
redovima učitam u niz i onda obradjujem. U BASIC-u svaki taj red može
biti velik 32 kB a niz može zauzimati CELU raspoloživu memoriju.
> Naravno da je bolja obavezna deklaracija promenljivih jer to
> daje nakakvu preglednost programu. Ako toga nema, otkud znam
> sta sam u programu upotrebio kao imena promenljivih? To je
> narocito znacajno ako neki program pises, pa
Ako baš voliš možeš da staviš OPTION EXPLICIT pa će te BASIC terati da
deklarišeš svaku promenljivu. :)
> dopunis. Kako ces znati sta ti znaci svako od imena
> promenljivih?
Vidi se po imenu promenljive.
> Meni je bilo zanimljivo nesto sto je neki covek rekao o Bejziku
> i ostalim (boljim programskim jezicima, u koje ubrajam i
> Pascal): "Kada resavate neki problem u nekom programskom jeziku
> (normalnom) mozete u potpunosti da se posvetite resavanju tog
> problema, dok u Bejziku morate da razmisljate na koji nacin je
> to moguce implementirati."
Upravo je obrnuta stvar. Sve što zamisliš, u BASIC-u već postoji i samo
ga treba upotrebiti, dok ako radiš u Pascalu prvo treba smisliti kako
pomoću stvari koje ti stoje na raspolaganju to da uradiš. Plus što je
Pascal previše 'krut' i tera te da o čitavom problemu razmišljaš imajući
sam jezik u vidu. Suviše se i vremena i prostora troši na razne deklaracije,
begin/end-ove, uopšte stvari koje nisu od samog značaja za rešenje problema.
Navedi primer nekog problema koji ćeš ti u Pascalu brzo i lako rešiti, a
ja u BASIC-u prvo treba 'da razmislim o načinu na koji ću to implementirati'.
Tvrdim da ne postoji ni jedan jedini takav problem. Naravno, postoji mnooogo
stvari oko kojih ćeš se, pišući ih u Pascalu, dobro namučiti, a koje se u
BASIC-u brzo i elegantno rešavaju.
BASIC programeru daje veliku slobodu što se tiče samog stila pisanja programa.
Recimo da imam promenljivu MikaPeraLaza. Ako je ne deklarišem, ona je po
defaultu tipa SINGLE (single precision floating-point). Recimo da želim da
ona bude tipa INTEGER. Najjednostavnije je da umesto identifikatora
MikaPeraLaza pišem MikaPeraLaza%. Ono % na kraju znači da je promenljiva
tipa INTEGER. Recimo da želim da obavezno deklarišem svaku promenljivu i
napisao sam OPTION EXPLICIT na početku programa. U tom slučaju ću promenljivu
deklarisati sa DIM MikaPeraLaza%. Ali - šta ako želim da se promenljiva zove
samo MikaPeraLaza bez onog % na kraju, a da ipak bude tipa INTEGER? Napisaću
DIM MikaPeraLaza AS INTEGER. Šta ako želim da sve promenljive koje počinju
slovom M, kao i slovima A, B, C, D budu INTEGER? Jednostavno ću ih implicitno
deklarisati sa DEFINT A-D, M. Dalje, promenljivu je moguće proglasiti za
globalnu u modulu u kome je definisana korišćenjem DIM SHARED umesto samo
DIM. Ako želim da bude globalna za sve module, koristiću COMMON SHARED, itd.
Recimo da imam dinamički niz koji je (negde u programu, ne mora na početku)
deklarisan kao DIM Niz(10000) AS STRING (koji je BTW, mogao biti deklarisan
i sa DIM Niz$(10000) ili npr. sa DIM Niz$(0 TO 10000), i u toku izvršavanja
programa vidim da je ono 10000 suviše malo. Jednostavno ću sa
REDIM PRESERVE Niz(20000) AS STRING povećati njegovu veličinu na 20000
pri tom sačuvavši postojeće podatke. Liste su u BASIC-u sasvim nepotrebne.
Naravno - veličina niza ne mora biti poznata pri pisanju programa. Može
se (negde u programu) napisati INPUT A%: DIM Niz(A%), što je u Pascalu
nezamislivo.
Itd, itd... moglo bi tu još mnoogo da se priča. :)
pascal.355zeljkoj,
> -> Deklarisanje promenljivih mozda jeste korisno, ali je
> strasno zamorno. -> Uostalom, postoji OPTION EXPLICIT, pa mozes
> da biras. :)
>
> Postoji mnogo glupih komandi koje je potrebno zadati tom Bejzik
> kompajleru da bi ozbiljan programer bio zadovoljan njegovim
> radom. Zar OVO nije zamorno?
Teško ti je da jedanput napišeš OPTION EXPLICIT? Ok, niko te ne tera. To je
samo
ukoliko čELIŠ da te kompajler TERA da deklarišeš promenljive. Možeš
ih deklarisati i bez toga, a ne moraš ih uopšte ni deklarisati.
Mnogo je više zamorno za svaku promenljivu pisati var xyz: tip;
pascal.356zeljkoj,
> A, ima li taj fantasticni Bejzik nesto tipa record na Paskalu
> ili strukture na C-u??
Naravno da ima. BASIC sve ima. :)
Evo malog primera (da ne objašnjavam, shvatićeš o čemu se radi):
TYPE PodaciORadnicima
Ime AS STRING*20
Prezime AS STRING*30
GodinaRodjenja AS INTEGER
Plata AS DOUBLE
END TYPE
Onda lepo deklarišeš promenljivu sa npr. DIM xyz AS PodaciORadnicima
pascal.357zeljkoj,
> Da sam na tvom mestu, posle ove izjave bih odmah prodao modem,
> kompjuter, frljnuo indeks u kontejner, i otiso ispred Vuka da
> trazim posao.
Ali - nisi na mom mestu. :)
> --
> D Break, CONT repeats
--
C Nonsense in BASIC
pascal.358dvesic,
> Upravo je obrnuta stvar. Sve što zamisliš, u BASIC-u već
> postoji i samo ga treba upotrebiti, dok ako radiš u Pascalu
> prvo treba smisliti kako pomoću stvari koje ti stoje na
> raspolaganju to da uradiš. Plus što je
Aman, dogovori se vec jednom pricamo li o IMPLEMENTACIJI ili o
samom jeziku ? Tesko da u standardnom Basic-u ima sve sto postoji.
> Naravno - veličina niza ne mora biti poznata pri pisanju
> programa. Može se (negde u programu) napisati INPUT A%: DIM
> Niz(A%), što je u Pascalu nezamislivo.
Nije bas nezamislivo, nego se moras petljati sa pokazivacima :)
> BASIC programeru daje veliku slobodu što se tiče samog stila
> pisanja programa.
U kom smislu ? Nista manju slobodu ne daje ni Pascal.
> ona bude tipa INTEGER. Najjednostavnije je da umesto
> identifikatora MikaPeraLaza pišem MikaPeraLaza%. Ono % na kraju
> znači da je promenljiva
A sto je to elegantnije od jednog Integer MikaPeraLaza ?
pascal.359dvesic,
> Mnogo je više zamorno za svaku promenljivu pisati var xyz: tip;
Mislis :
Var MikaPeraLaza,
IovoJeCeoBroj,
AiOvo : Integer;
Nije tako strasno, zar ne ?
> CONF JOIN PC.PROG.6
> CONF REPLY 7.356
>
> Naravno da ima. BASIC sve ima. :)
> Evo malog primera (da ne objašnjavam, shvatićeš o čemu se
> radi):
Ne vredi. Ti i dalje pricas o implementaciji. Ovo NIJE
standardni BASIC.
pascal.360vasic,
> A šta će mi liste kad imam lepe dinamičke nizove? :))
Dobro, Genije, objasni nam kako se uklanja element iz sredine lepog
dinamičkog niza?
pascal.361zeljkoj,
> Aman, dogovori se vec jednom pricamo li o IMPLEMENTACIJI ili o
> samom jeziku ? Tesko da u standardnom Basic-u ima sve sto
Rekli smo: BP 7.0 vs MS QBX PDS 7.1.
> A sto je to elegantnije od jednog Integer MikaPeraLaza ?
Da. Uvek se vidi kog je tipa promenljiva, a ne moraš svaki čas da gledaš
po deklaracijama.
pascal.362zeljkoj,
> Ne vredi. Ti i dalje pricas o implementaciji. Ovo NIJE
> standardni BASIC.
Nisu ni null-terminated stringovi (o kojima je bilo reči) standardni
Pascal. Dakle, pričamo o konkretnim implementacijama. Standarde smo
samo malo pominjali na početku diskusije. :)
pascal.363zeljkoj,
> Dobro, Genije, objasni nam kako se uklanja element iz sredine
> lepog dinamičkog niza?
Na primer, ako treba ukloniti n-ti element niz Niz (koji recimo ima x
elemenata):
DIM PomocniNiz(x - n)
b = 0
FOR a = n + 1 TO x
PomocniNiz(b) = Niz(a)
b = b + 1
NEXT a
REDIM PRESERVE Niz(x-1)
b = 0
FOR a = n TO x - 1
Niz(a) = PomocniNiz(b)
b = b + 1
NEXT a
ERASE PomocniNiz
I sve to može lepo da se upakuje u proceduru tako da se svako brisanje vrsi
prostim pozivom proc.
Ok, priznajem da je relativno komplikovano i sporo. :)
Bolje je definisati tip koji sadrzi podatak i pokazivac na sledeci podatak
u nizu, pa onda dimenzionisati niz tog tipa. Podaci se uklanjaju prostim
menjanjem pokazivaca. Ovo je kao neka simulacija liste. :) Jeste da nije
bas tako elegantno kao kod pravih (pascalovih) listi, ali bar nema
ogranicenja od 64 kB. ;)
pascal.364djelovic,
> Nisu ni null-terminated stringovi (o kojima je bilo reči) standardni
> Pascal. Dakle, pričamo o konkretnim implementacijama. Standarde smo
> samo malo pominjali na početku diskusije. :)
Netačno. Stringovi terminisani nulom su realizovani sasvim standardnim
Pascal konstrukcijama. PString nije ništa drugo do ^char.
Što se tiče tvoje tvrdnje da se mnoge stvari rade brže u Bejziku, moram da
se složim s tobom. No, to je sve dok ostajemo u okviru manjih projekata i
prototpiova. Upravo zbog te snage "da se nešto napravi na brzinu", Bjezik se
pokazao kao malo lošiji od Pascala za veće projekte.
pascal.365djelovic,
> bas tako elegantno kao kod pravih (pascalovih) listi, ali bar nema
> ogranicenja od 64 kB. ;)
Ni Pascal nema ograničenje za liste od 64K.
pascal.366vitez.koja,
#=> Naravno da ima. BASIC sve ima. :)
Ama, baš sve? Da li ima i unije (union, iz C-a) ?
pascal.367maksa,
>> menjanjem pokazivaca. Ovo je kao neka simulacija liste. :)
>> Jeste da nije bas tako elegantno kao kod pravih (pascalovih)
>> listi, ali bar nema ogranicenja od 64 kB. ;)
Nema, ako se cela stvar baci u HUGE model. A znaš kolika su u tom
slučaju usporenja? ;)
PS A ono tupavo ograničenje od 64 Kb (sorsa) po modulu?
pascal.368postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Pascal
Date: Mon, 27 Nov 1995 21:05:00
***> Citiram '"milan Maksimovic"' za 'All' <***
"M> - Izuzeci
Delphi...
-=> MM <=-
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.369postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Pascal
Date: Mon, 27 Nov 1995 21:05:00
***> Citiram '"predrag Knezevic"' za 'All' <***
"K> Nema potrebe, jer ce rezultat kompajliranja biti isti - chr(27) ce
"K> biti zamenjeno vrednoscu koju vraca ova sistemska funkcija.
Ne bi trebalo, pogotovo pri kompajliranju iz Windowsa, zato
sto Chr(27) ne mora uvek da bude ESC ;-)
-=> MM <=-
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.370zeljkoj,
> Ama, baš sve? Da li ima i unije (union, iz C-a) ?
Nema ih, a i nisu potrebne u BASIC-u.
pascal.371vasic,
> Na primer, ako treba ukloniti n-ti element niz Niz (koji recimo ima x
> elemenata):
> DIM PomocniNiz(x - n)
> Ok, priznajem da je relativno komplikovano i sporo. :)
Ne samo da je komplikovano i sporo, nego je tvoje rešenje još i duplo
komplikovanije i sporije nego što bi moralo da bude. Šta će ti uopšte
pomoćni niz? Ali nije poenta u tome nego u...
> Bolje je definisati tip koji sadrzi podatak i pokazivac na sledeci podatak
> u nizu, pa onda dimenzionisati niz tog tipa. Podaci se uklanjaju prostim
> menjanjem pokazivaca. Ovo je kao neka simulacija liste. :)
Simuliraćeš ti tu ne samo listu nego i kompletan heap mehanizam koji je
inače ugrađen u "normalne" jezike - one sa pointerima. I to za svaku
takvu listu iz početka. Shvataš li sad šta se htelo reći sledećom
rečenicom:
"Kada resavate neki problem u nekom programskom jeziku (normalnom) mozete
u potpunosti da se posvetite resavanju tog problema, dok u Bejziku morate da
razmisljate na koji nacin je to moguce implementirati."
(icile, 7.334)
Ok, ako je tebi lepo sa Basic-om i ne osećaš njegova ograničenja - nema
problema, radi u Basic-u. Samo nemoj da pokušavaš da nas ostale ubediš
kako je to najbolji jezik na svetu. I _ni_slučajno_ nemoj reći kako je
Visual Basic idealna alatka za Windows programiranje.
It... makes... me... MAAAAAAD!!!
- I see, you are no stranger to pain.
- I've been working with Visual Basic.
- Aww.
- Twice.
- Awwwwwww....
pascal.372vitez.koja,
#=> Evo malog primera (da ne objašnjavam, shvatićeš o čemu se radi):
#=> Ime AS STRING*20
A meni nešto pričaš o upotrebi stringova fiksne dužine? :)
sk
pascal.373vitez.koja,
#=> Ne vredi. Ti i dalje pricas o implementaciji. Ovo NIJE
#=> standardni BASIC.
Je li, kad si zadnji put video standardni Pascal?
sk
ps. A Basic? :)
pascal.374janko,
Kao mali prilog diskusiji koji je bolji jezik, i na temu tvrdnje da je
BASIC bolji jezik za stvari "na brzinu", tvrdim da je AWK najbolji. ;)
A idući put ću smisliti zadatak kojim ću vam dokazati da je najbolji
jezik asembler za 8086. ;) A posle i zadatak kojim ću dokazadti da je
najbolji jezik Word Basic. ;)
Evo vam zadatka, pa rešite u svom omiljenom jeziku, da vidim koliko će
vam trebati koda: ;>
--- Iseci odavde
U ovom tekstu prebrojati reči i ispisati svaku različitu reč i broj
njenih pojavljivanja, a zatim i broj različitih reči u tekstu. Takođe
ispisati sve delove teksta koji se ne mogu smatrati rečima i broj
njihovog pojavljivanja, kao i broj ne-reči u tekstu.
(Smatrati da je REž svaki deo teksta koji čine slova s/h i engleske
abecede, ako pre njega ne postoji nikakav znak koji nije belina ili
otvorena zagrada, i ako iza tog dela teksta ne stoji pre beline a posle
specijalnih znakova i cifara neki drugi znak koji pripada s/h abecedi.
Veliko i malo slovo naše abecede mora se smatrati za isti znak!)
--- Iseci dovde
Broji se broj linija koda rešenja, a nije dozvoljeno da postoje
dve naredbe u jednoj liniji! Takođe nije dozvoljeno koristiti
rutine koje se NE dobijaju u programskom paketu samog jezika. Moje
rešenje, na jeziku (GNU) AWK, ima 31 liniju. Ko, i na kom jeziku, može
manje?
=== Celo rešenje: ===
function toyulower( a ) {
a= tolower( a )
sp = "ŠĐžĆčšđčćž"
for ( k=1;k<6;k++ )
gsub( substr( sp, k, 1 ) , substr( sp, k+5, 1 ), a )
return a
}
{ for (i=1; i<=NF; i++) {
rs = match( $i, /[a-zA-Zšđč枊ОĆč]+/ )
rl = RLENGTH
if ( ( rs == 1 || ( rs == 2 && substr( $i, 1, 1 ) == "(" )) \
&& match( substr( $i, rl + rs ), /[a-zA-Zšđč枊ОĆč]/ ) == 0 )
a[ toyulower( substr( $i, rs, rl ) ) ]++
else
b[ $i ]++
}
}
END {
for ( i in a ) {
printf( "%-20s %4d\n", i, a[ i ] )
dw++
}
print "Total of different words " dw
print "*** Not a word ****"
for ( i in b ) {
printf( "%-20s %4d\n", i, b[ i ] )
nw++
}
print "Total not words " nw
}
==== Deo rezultata ("..." su umesto izostavljenih delova): ==
...
broj 4
...
reč 2
...
i 9
...
Total of different words 66
*** Not a word ****
s/h 2
ne-reči 1
Total not words 2
pascal.375postmast,
From: Vlado.Menkovski%f132.n108.z38@setnet.setnet.co.yu (Vlado Menkovski)
Subject: Ne mozzam da vlezam vo Informa
Date: Fri, 24 Nov 1995 20:10:00
Abe dimi ova Informava ne se trpi pa ja po navika si doaggam tuka !!!!
i ondak to .... ( Citat od K-15 )
Pozdravi doma...
... How come pizza gets to your house faster than the police?
* Origin: SETNet: ĆMemory Master BBS +389/91-164-877ž SKOPJE (38:108/132)
pascal.376postmast,
From: KLIMENT.ANDREEV%f108.n108.z38@setnet.setnet.co.yu (KLIMENT ANDREEV)
Subject: delphi knjiga
Date: Mon, 20 Nov 1995 09:08:00
U ovoj konferenciji proccitao sam poruku da je u
izdanju CIP-a izassla knjiga za Delphi. Molio bih
one koje znaju da mi kazzu koliko kossta ova knjiga
u DEM i gde mozze da se nabavi, kako bih se javio ortaku
koji zzivi u BGD-u da mi kupi istu i possalje u Skoplju.
Ako neko vecc ima ovu knjigu voleo bih da ccujem i komentar
u ovoj ili nekoj drugoj odgovarajuccoj konferenciji.
10x Chombe
* OLX 2.1 TD * Bel Spagette.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.377postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Strimovi
Date: Fri, 24 Nov 1995 16:11:00
PS>Moze li nesto malo vise o ovim strimovima?
PS>U dokumentaciji od BP ne nadjoh im ni pomena.
PS>Da li je to ugradjeno u sam Paskal ili je neka dodatna biblioteka?
Zavisi kako gledas na stvari :). Turbo Vision je biblioteka objekata
koja dolazi uz BP - streamovi su objekti u TV-u. Stream-ovi se koriste
za pamcenje drugih objekata bilo u EMS memoriji (TEmsStream) bilo na
disku (TDosStream i TBufStream). Svi ovi objekti su naslednici jedne
klase - TStream. Ako imas originalnu instalaciju BP-a, pogledaj
\BP\EXAMPLES\DOCDEMOS\TV\STREAM1.PAS i STREAM2.PAS.
Svaki objekat koji zelis da zapises u Stream mora sadrzati sledece dve
metode - constructor Load(var S:TStream) i procedure Store(var
S:TStream). U ovim metodima se citaju/zapisuju u Stream podatci koje
objekat sadrzi. E, sad, objekat naslednik ili instanca stream-a koji
zapisuje gorenavedene objekte u stream, zapisuje ih metodom PUT a cita
ih sa GET. Normalno ovde je dozvoljen typecasting. Da bi objekat mogao
biti zapisan u stream on mora da bude registrovan tj. da mu bude
dodeljen jedinstven broj kojim je povezan. Registracija se obavlja preko
registration record-a u kojem se nalazi gorenavedeni jedinstveni broj
koji sam odabires, ofset VMT tabele objekta (dobija se kao
Ofs(TypeOf(Objekat)^), i adrese metoda Load i Store. Registracija se
obavlja procedurom RegisterType koja kao parametar prima promenljivu
tipa TStreamRec tj. nas registration record.
Streamovi su sjajan metod za cuvanje objekata. Borland Pascal omogucava
tri stream-a, u EMS memoriji, i dva tipa fajlova, sa i bez baferisanog
pristupa (TDosStream i TBufStream). Uz malo znanja moguce je naslediti
TStream i napisati TXmsStream - stream koji cuva objekte u XMS memoriji.
Nadam se da sam pomogao. :) Ako je nesto ostalo nejasno, reci slobodno.
Ognen
* OLX 2.1 TD * The easiest way to woman's heart is thru 'er chest.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.378postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Strimovi
Date: Fri, 24 Nov 1995 13:07:00
VS>Kako vidim, strimovi ti nisu strani :). Interesuje me da li je moguce
VS>(mislim da jeste moguce, samo je pitanje kako) snimiti _objekte_ u
VS>strim na disku, a posle te iste ucitati sa diska?
uses Crt,Objects;
type
PMyObject = ^TMyObject;
TMyObject = object(TObject)
x,y:PString;
constructor Init(s1,s2:String);
destructor Done; virtual;
procedure ConCat;
constructor Load(var S:TStream);
procedure Store(var S:TStream); virtual;
end;
constructor TMyObject.Init(s1,s2:String);
begin
inherited Init;
x:=NewStr(s1);
y:=NewStr(s2);
end;
destructor TMyObject.Done;
begin
DisposeStr(x);
DisposeStr(y);
inherited Done;
end;
procedure TMyObject.ConCat;
begin
WriteLn('Strings before: ',x^,', ',y^);
WriteLn('Concat. : ',x^+' '+y^);
end;
constructor TMyObject.Load(var S:TStream);
begin
x:=S.ReadStr;
y:=S.ReadStr;
end;
procedure TMyObject.Store(var S:TStream);
begin
S.WriteStr(x);
S.WriteStr(y);
end;
const RMyObject:TStreamRec=
( Objtype : 110;
VmtLink : Ofs(TypeOf(TMyObject)^);
Load : @TMyObject.Load;
Store : @TMyObject.Store);
procedure RegisterMyObject;
begin
RegisterType(RMyObject);
end;
var
ObjFile:PBufStream;
PMO : PMyObject;
begin
ClrScr;
WriteLn('Sada zapisujemo objekte u stream');
RegisterMyObject;
ObjFile:=New(PBufStream,Init('stream.dat',stCreate,1024));
PMO:=New(PMyObject, Init('This', 'is'));
ObjFile^.Put(PMO);
Dispose(PMO,Done);
PMO:=New(PMyObject, Init('a', 'stream'));
ObjFile^.Put(PMO);
Dispose(PMO,Done);
PMO:=New(PMyObject,Init('example','.'));
ObjFile^.Put(PMO);
Dispose(PMO,Done);
Dispose(ObjFile,Done);
WriteLn('Rezultat: fajl stream.dat koji sadrzi objekte na disku.');
WriteLn;
{sada citamo zapisani stream }
WriteLn('Sada citamo objekte iz stream-a.');
WriteLn;
ObjFile:=New(PBufStream,Init('stream.dat',stOpenRead,1024));
repeat
PMO:=PMyObject(ObjFile^.Get);
if PMO<>NIL then PMO^.ConCat;
until PMO=NIL;
Dispose(ObjFile,Done);
end.
Nadam se da sam pomogao. :)
Ognen
* OLX 2.1 TD * Pain - a feeling that I have to eat all she cooks.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.379postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: swap
Date: Fri, 24 Nov 1995 13:08:00
PS>Ima li neko kakav fin unit za swap u DOS shell?
TApplication.DosShell radi isti onaj swap koji dobijes opcijom DOS SHELL
u Borland PAscal IDE-u. Valjda je dovoljno ? :)
Ognen
* OLX 2.1 TD * You have a terminal illness - check your terminal.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.380postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: EMS XMS 2/2
Date: Fri, 24 Nov 1995 13:11:00
>>> Continued from previous message
extended buss; this being the price paid for PC compatibility.
D.M.A. LEVELS
Although we have discussed the operation of a single device using the D.M.A.,
it is custom to cater to the needs of several devices by providing several
D.M.A. channels, each one dedicated to a peticualar device. The 8237 provides
four seperate D.M.A. channels, known as levels 0 through 3. Correspondingly,
there are 4 D.M.A. request lines, DACK 0-3. These lines are prioritized
according to two possible protocols set by a bit in the controller command
register, either fixed priority, either fixed priority where lower D.M.A.
levels have higher priority than higher levels, or rotating priority, where
each level takes turn at having the highest priority. The PC BIOS sets the
8237 to operate in fixed priority mode on power up, and it is inadvisable
to change this. The PC/AT adds to the number of D.M.A. channels by using
two 8237 D.M.A. controllers. Since one channel is used to cascade one
controller into the other, this is acually adds an additional 3 channels,
all of which appears on the 16-bit additional expanision connectors of the
PC/AT and dedicated to 16-bit transfers.
Apart from its uses for high speed data transfer, the D.M.A. controller
includes counter hardware that cycles through the memory addresses, so as a
byproduct of its design, it can also be used to refresh dynamic memory, saving
the cost of a separate memory refresh controller. This is what IBM chose to
do in the PC, and on all models Level 0 performs this function with the
DREQ being driven from counter 1 of the 8253 timer at a 15 microsecond
intervals. The complete assignmentes for the levels are as follows.
For all machines, these levels are capable of 8-bit transfers:
Level 0 - Memory Refresh
Level 1 - Not assigned and usally avalible, Certain local
area network interfaces may use this level
Level 2 - Used by the floppy disk controller and not free
for any other purpose
Level 3 - May be used by the hard disk controller on some
PC/XT models. On floppy disk only, PC/AT and some
PC/XT machines, this level is free for other uses.
For the PC/AT only, these levels are capable of 16-bit transfers:
Level 4 - used for cascading
Level 5-7 - Avalaible on AT special connections
___---------------------------------------------------------------------
Ognen
* OLX 2.1 TD * Software Factory
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.381postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Turbovizija 2/2
Date: Fri, 24 Nov 1995 16:15:00
>>> Continued from previous message
R.Assign(Bounds.B.X-1, Bounds.A.Y+1, Bounds.B.X, Bounds.B.Y-1);
VScrollBar := New(PScrollBar, Init(R));
VScrollBar^.Options := VScrollBar^.Options or ofPostProcess;
if Left then VScrollBar^.GrowMode := gfGrowHiY;
Insert(VScrollBar);
R.Assign(Bounds.A.X+2, Bounds.B.Y-1, Bounds.B.X-2, Bounds.B.Y);
HScrollBar := New(PScrollBar, Init(R));
HScrollBar^.Options := HScrollBar^.Options or ofPostProcess;
if Left then HScrollBar^.GrowMode := gfGrowHiY + gfGrowLoY;
Insert(HScrollBar);
Bounds.Grow(-1,-1);
MakeInterior := New(PInterior, Init(Bounds, HScrollBar, VScrollBar));
end;
procedure TDemoWindow.SizeLimits(var Min, Max: TPoint);
var R: TRect;
begin
TWindow.SizeLimits(Min, Max);
Min.X := LInterior^.Size.X + 9;
end;
{ TMyApp }
procedure TMyApp.HandleEvent(var Event: TEvent);
begin
TApplication.HandleEvent(Event);
if Event.What = evCommand then
begin
case Event.Command of
cmNewWin: NewWindow;
cmNewDialog: NewDialog;
else
Exit;
end;
ClearEvent(Event);
end;
end;
procedure TMyApp.InitMenuBar;
var R: TRect;
begin
GetExtent(R);
R.B.Y := R.A.Y + 1;
MenuBar := New(PMenuBar, Init(R, NewMenu(
NewSubMenu('~F~ile', hcNoContext, NewMenu(
NewItem('~O~pen', 'F3', kbF3, cmFileOpen, hcNoContext,
NewItem('~N~ew', 'F4', kbF4, cmNewWin, hcNoContext,
NewLine(
NewItem('E~x~it', 'Alt-X', kbAltX, cmQuit, hcNoContext,
nil))))),
NewSubMenu('~W~indow', hcNoContext, NewMenu(
NewItem('~N~ext', 'F6', kbF6, cmNext, hcNoContext,
NewItem('~Z~oom', 'F5', kbF5, cmZoom, hcNoContext,
NewItem('~D~ialog', 'F2', kbF2, cmNewDialog, hcNoContext,
nil)))),
nil))
)));
end;
procedure TMyApp.InitStatusLine;
var R: TRect;
begin
GetExtent(R);
R.A.Y := R.B.Y - 1;
StatusLine := New(PStatusLine, Init(R,
NewStatusDef(0, $FFFF,
NewStatusKey('', kbF10, cmMenu,
NewStatusKey('~Alt-X~ Exit', kbAltX, cmQuit,
NewStatusKey('~F4~ New', kbF4, cmNewWin,
NewStatusKey('~Alt-F3~ Close', kbAltF3, cmClose,
nil)))),
nil)
));
end;
procedure TMyApp.NewDialog;
var
Bruce: PView;
Dialog: PDemoDialog;
R: TRect;
C: Word;
begin
R.Assign(20, 6, 60, 19);
Dialog := New(PDemoDialog, Init(R, 'Demo Dialog'));
with Dialog^ do
begin
R.Assign(3, 3, 18, 6);
Bruce := New(PCheckBoxes, Init(R,
NewSItem('~H~varti',
NewSItem('~T~ilset',
NewSItem('~J~arlsberg',
nil)))
));
Insert(Bruce);
R.Assign(2, 2, 10, 3);
Insert(New(PLabel, Init(R, 'Cheeses', Bruce)));
R.Assign(22, 3, 34, 6);
Bruce := New(PRadioButtons, Init(R,
NewSItem('~S~olid',
NewSItem('~R~unny',
NewSItem('~M~elted',
nil)))
));
Insert(Bruce);
R.Assign(21, 2, 33, 3);
Insert(New(PLabel, Init(R, 'Consistency', Bruce)));
R.Assign(3, 8, 37, 9);
Bruce := New(PInputLine, Init(R, 134));
Insert(Bruce);
R.Assign(2, 7, 24, 8);
Insert(New(PLabel, Init(R, 'Delivery instructions', Bruce)));
R.Assign(15, 10, 25, 12);
Insert(New(PButton, Init(R, '~O~k', cmOK, bfDefault)));
R.Assign(28, 10, 38, 12);
Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
end;
C := DeskTop^.ExecView(Dialog);
Dispose(Dialog, Done);
end;
procedure TMyApp.NewWindow;
var
Window: PDemoWindow;
R: TRect;
begin
Inc(WinCount);
R.Assign(0, 0, 45, 13);
R.Move(Random(34), Random(11));
Window := New(PDemoWindow, Init(R, 'Demo Window', WinCount));
DeskTop^.Insert(Window);
end;
var
MyApp: TMyApp;
begin
ReadFile;
MyApp.Init;
MyApp.Run;
MyApp.Done;
DoneFile;
end.
* OLX 2.1 TD * When Rolling Stones are high, are they Rolling Stoned ?
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.382postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: Knjiga Za Objektni Tp
Date: Fri, 24 Nov 1995 16:19:00
VM>OD> MM> Ja sam genije. Shvatio sam pravo resenje za konflikt
VM>OD> MM> Bosni!!! Svi mi treba da se pomirimo i zivimo lepo ka
VM>OD> MM> ranije. Treba mi neka knjiga iz politike da vidim prakticn
VM>OD> MM> primenu i najbolje resenje za moj zakljucak.
VM>OD> Mesas babe i zabe a i pricas gluposti.
VM>A i ovo je NET.PASCAL
Znam da je NET.PASCAL, ali procitaj jos jednom chain i videces da nisam
ja taj koji je progresio. Bas zato sto je NET.PASCAL treba napisati
nesto konstruktivno samo ako imas da takvo sta kazes, a ne da
filozofiras unaokolo...Covek je lepo postavio pitanje o nekoj knjizi
koja ce mu objasniti kako da prakticno programira pod Windowsima a kao
odgovor je dobio nesto sto nema blage veze sa konf.
Ognen
* OLX 2.1 TD * "Singing in the rain" is the best way to catch pneumonia
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.383postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Tue, 28 Nov 1995 18:41:35
AB> Sta ti je DMA? Ako sam i cuo onda sam zaboravio (jesam slozio
AB> recenicu :)))).
<OD> DMA = Direct Memory Access. Ovo je najbrzzi naccin da prenosiss blokove
<OD> memorije sa jednog mesta na drugi, da pristupass memoriji itd.
Sad mi je tek jasnije :-). Mozes li i ti da objasnis to prenosenje mem.
OviH dana sam pokusavao nesto pomocu ASM ali se nije pokazao tako
brz ko sto se prica :(((.
P.S. Uvozim OBJ fajlove u paskal.
T.J. Koristim mijesano ASM i paskal :(.
... Sta ja o tome da vam razbijam glavu.
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.384postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Tue, 28 Nov 1995 18:41:35
<PR> E ovako. NAjbolje je iz assemblera, ali cistog, jer nista nije toliko
<PR> brzo kao 100% assembler. ali ... ako ti je to sporo koristi razne
<PR> trikove: nemoj da scroll-ujes za 1 vec za 2,3 tacke i OBAVEZNO to radi
<PR> kad je mlaz u dnu ekrana.
Ja mislim da nisi malo shvatio ovo sto sam napisao (ne potcjennju
jem te) :))). Ne zamjeram ti, ja kad nesto napisem treba i sam da
Ga desifrujem :((. Bi li mogao objasniti malo kako bi ti to uradio.
Mozda i koji primjer :>>.
pozdraw, ASKO
... Kod homosexualca je uvijek - prvo pa musko :).
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.385postmast,
From: Asmir.Badnjevic%p1.f135.n135.z38@setnet.setnet.co.yu (Asmir Badnjevic)
Subject: EMS XMS
Date: Tue, 28 Nov 1995 18:41:38
Zdravo Pedja, da li si vidio da mi posaljes onaj sors za
memoriju (pleaseeeeeeeeeeeeee) ???
pozdraw, ASKO
... Novac kvari covjeka ... upotrebjavajte cekove.
* Origin: Vila co.BBS # Prijedor_RS # +381 79 11 301 # SETNet: (38:135/135.1)
pascal.386postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Pascal
Date: Wed, 29 Nov 1995 08:10:00
***> Citiram 'Ivica Nikolic' za 'All' <***
IN> - Prakticno je nemoguce iskopirati takvu disketu, cik da vidim
IN> nekog da probusi disketu tacno na mestu treceg sektora u 76-om
IN> cilindru. - Jeftinije od hardlock-a, i moze se lako uraditi u
IN> domacoj radinosti - od dodatnog hardvera potrebna je samo igla.
Evo principa hakovanja...
NDD -> vidis koji su sektori bad
NDD -> na novoj disketi te sektore obelezis kao BAD
COPY
IMEPROGRAMA
;-)
-=> MM <=-
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.387postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: Pascal
Date: Wed, 29 Nov 1995 08:10:00
***> Citiram '"zeljko Jovanovic"' za 'All' <***
"J> Da, ali samo u BP 7.0. :) I to je null-terminated string sto znaci
"J> da u stringu ne sme da postoji chr(0) karakter.
Nije tesko napraviti svoj sistem astringova koji ce raditi
isto kao Pascalovi (r), a biti ograniceni na 65533 bajta :-)
-=> MM <=-
* Origin: Exodus, Novi Beograd #22-09# (011) 137-477 SETNet: (38:103/130)
pascal.388zeljkoj,
> takvu listu iz početka. Shvataš li sad šta se htelo reći
> sledećom rečenicom:
>
> "Kada resavate neki problem u nekom programskom jeziku
> (normalnom) mozete u potpunosti da se posvetite resavanju tog
> problema, dok u Bejziku morate da razmisljate na koji nacin je
> to moguce implementirati."
Isto tako mogu da se pronadju stvari koje u BASIC-u postoje, a koje
bi u Pascalu bilo potrebno simulirati.
pascal.389postmast,
From: ivica@galeb.etf.bg.ac.yu (Ivica Nikolic)
Subject: Re: Pascal
Date: Fri, 1 Dec 1995 17:35:10 GMT
Marko Milivojevic je napisao:
>> Evo principa hakovanja...
>> NDD -> vidis koji su sektori bad
>> NDD -> na novoj disketi te sektore obelezis kao BAD
>> COPY
>> IMEPROGRAMA
Ne, nisi razumeo princip. Zasticeni program bi disketu proveravao tako
sto bi direktno od samog floppy kontrolera zahtevao da formatira namerno
unistene sektore, uz zaobilazenje DOS-a i BIOS-a, i direktno od kontrolera
bi dobijao informaciju da li je formatiranje uspelo. Ako je uspelo, znaci da
je sektor lazno oznacen kao los.
Naravno, tu bi se nasao neki pametnjakovic koji bi pokusao da osteti sve
sektore u okolini, u nadi da ce time unistiti i sektor koji zasticeni program
proverava. Zbog toga program treba da pokusa da formatira i okolne sektore,
i da zakljuci da je doslo do hakeraja, ako su i okolni sektori unisteni.
--
Allways look on the bright side of death
pascal.390kriss,
˙˙>> TRECA STVAR ....
˙˙>> UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU !
˙˙ Nedostaci:
Neko te tuži zato što mu je otišla glava na drajvu / zato što su mu
prodao faličnu (opasnu) disketu / zato što ne može da pravi rezervnu
kopiju programa (što ima pravo) ... Bilo je govora o ovome na SEZAM-u,
pre jedno godinu ipo, dve.
pascal.391visnja,
> Da rezimiram, pre nego sto se potpuno rasplinem: sve frizirane
> verzije Pascala omogucuju da se u Pascalu pisu C(++) programi.
> Verujte mi na rec, C(++) programi se mnogo bolje pisu u
> C(++)-u.
Znas, u pravu si, ovaj odgovor mi se svidja.
Najvise me nervira sto TPU napravljen verzijom 6.0 ne radi u verziji 7.0.
U C-u me nervira vreme kompajliranja, ali to nema veze sa samim jezikom,
trenutno se ubijam da nadjem PXEngine za protected rezim za pascal,
- za C sam nasao "od prve".
Zatim, ako se pogleda lista trazenosti programerskih poslova na zapadu,
C i C++ su na zavidnom nivou, a pascal-a nema nigde.
Zatim sam pozvao ortaka koji poznaje c++ u praksi i rekao mu sta sve da mi
demonstrira, jer imam dosta aplikacija u pascalu. Nije lose. Teplate-ovi
su mi oduvek trebali, mocna je to stvar. Nastavicu ja da proucavam C++,
ali jos uvek ne smem u njemu necega ozbiljnijeg da se prihvatim, pascal
mi je domacinski teren.
Pozdrav, Visnja.
pascal.392.sima,
║║ TApplication.DosShell radi isti onaj swap koji dobijes opcijom DOS
║║ SHELL u Borland PAscal IDE-u. Valjda je dovoljno ? :)
Da ako se pravi TV aplikacija, ali ako ne, onda mora da se napravi
posebna procedura.
pascal.393.sima,
║║ Kad smo vec kod toGa i to si moGao poslati u mail, ako nije veliko
║║ :). Znas li mozda brze prebacivanje nekoG dijela memoriju u neki
║║ druGi dio memorije, recimo da sliku iz pomocne mem. prebacim na
║║ ekran? Koristio sam MOVE komandu iz paskala ali je spora (dobro,
║║ brza je ali ne za moje potrebe) i ne moGu stvoriti efekat
║║ skrolovanja ekrana a da
Za prebacivanje memorije koristim MoveEMB funkciju iz XMS
specifikacije. Pošto radi u zaštićenom modu vrlo je brza. 4MB prebaci za
tren. Evo da me ne bi davili. Ovo je prerađen ( malo :) unit za rad sa
XMS-om. Naravno DMA je brži, ali ja nisam nešto mnogo primetio razliku
kod svakodnevnog programiranja.
{$A+,B-,D-,E-,F+,G+,I+,L-,N-,O-,P-,Q-,R-,S-,T-,V+,X+,Y-}
unit XMS;
interface
const
X_Ok = $00;{ function succeeded. }
X_NotImplemented = $80;{ the function is not implemented. }
X_VDiskFound = $81;{ a VDISK device is detected. }
X_A20Err = $82;{ an A20 error occurs. }
X_GenErr = $8E;{ a general driver error occurs. }
X_UnrecovErr = $8F;{ an unrecoverable driver error occurs. }
X_HMAnotExist = $90;{ the HMA does not exist. }
X_HMAInUse = $91;{ the HMA is already in use. }
X_HMAminSize = $92;{ DX is less than the /HMAMIN= parameter. }
X_HMANotAlloced = $93;{ the HMA is not allocated. }
X_A20StillEnabled = $94;{ the A20 line is still enabled. }
X_OutOfMemory = $A0;{ all extended memory is allocated. }
X_OutOfHandles = $A1;{ all available extended memory handles are in use.}
X_InvalidHandle = $A2;{ the handle is invalid. }
X_SourceHanldeInv = $A3;{ the SourceHandle is invalid. }
X_SourceOffsetInv = $A4;{ the SourceOffset is invalid. }
X_DestHanleInv = $A5;{ the DestHandle is invalid. }
X_DestOffset = $A6;{ the DestOffset is invalid. }
X_LenInv = $A7;{ the Length is invalid. }
X_Overlap = $A8;{ the move has an invalid overlap. }
X_Parity = $A9;{ a parity error occurs. }
X_EMBUnlocked = $AA;{ the block is not locked. }
X_EMBLocked = $AB;{ the block is locked. }
X_LockOverflow = $AC;{ the block's lock count overflows. }
X_LockFail = $AD;{ the lock fails. }
type
X_MoveRec = record
case boolean of
False : (duz : Longint; { 32-bit number of bytes to transfer }
SHandle : Word; { Handle of source block }
SOffset : Longint; { 32-bit offset into source }
DHandle : Word; { Handle of destination block }
DOffset : Longint; { 32-bit offset into destination block }
);
True : (duzina : Longint; { note that the lenght must be even ! }
ZeroS : Word; { zero sourcehandle means a seg:ofs }
SPtr : Pointer; { pointer to "normal" memory }
ZeroD : Word; { zero dest handle means a seg:ofs }
DPtr : Pointer; { pointer to "normal" memory }
);
end;
PX_MoveRec = ^X_MoveRec;
var
X_Installed: boolean;
MovRec: X_MoveRec;
procedure X_Version(var ver, rev:word;var HMA:boolean);
function X_HMARequest(Space: word): byte;
function X_HMARelease: byte;
function X_GlobalEA20: byte;
function X_GlobalDA20: byte;
function X_LocalEA20: byte;
function X_LocalDA20: byte;
function X_QueryA20(var A20: boolean): byte;
function X_QuerryFree(var Max, Tot: word):byte;
function X_AllocEMB(size:word; var handle:word):byte;
function X_FreeEMB(handle: word): byte;
function X_MoveEMB(movrec:PX_MoveRec):byte;
function X_LockEMB(handle: word; var adresa:longint):byte;
function X_UnLockEMB(handle: word):byte;
function X_GetHanInfo(handle: word; var LCount, FreeHan:byte; var
EMBduz:word):byte;
function X_ReallocEMB(handle, NewSize: word):byte;
function X_RequestUMB(ReqSize:word; var UMBSeg, Size: word):byte;
function X_ReleaseUMB(UMBSeg: word):byte;
function X_ReallocUMB(ReqSize, UMBSeg:word):byte;
implementation
var
X_Control: longint;
procedure X_Start; assembler;
asm
mov ax,4300h
int 2Fh
cmp al,80h
jne @@NoDriver
mov ax, 4310h
int 2fh
mov word ptr X_Control, bx
mov word ptr X_Control+2, es
inc X_Installed
@@NoDriver:
end;
procedure X_Version(var ver, rev:word;var HMA:boolean);assembler;
asm
xor ah, ah
call X_Control
les di, [ver]
mov [word ptr es:di], ax
les di, [rev]
mov [word ptr es:di], bx
les di, [HMA]
mov [byte ptr es:di], dl
end;
function X_HMARequest(Space: word): byte; assembler;
asm
mov ah, 1
mov dx, Space
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_HMARelease: byte; assembler;
asm
mov ah, 2
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_GlobalEA20: byte; assembler;
asm
mov ah, 3
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_GlobalDA20: byte; assembler;
asm
mov ah, 4
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_LocalEA20: byte; assembler;
asm
mov ah, 5
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_LocalDA20: byte; assembler;
asm
mov ah, 6
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_QueryA20(var A20: boolean): byte; assembler;
asm
mov ah, 7
call X_Control
les di, [A20]
mov [byte ptr es:di], al
mov al, bl
end;
function X_QuerryFree(var Max, Tot: word):byte; assembler;
asm
mov ah, 8
call X_Control
les di, [Max]
mov [word ptr es:di], ax
les di, [Tot]
mov [word ptr es:di], dx
mov al, bl
end;
function X_AllocEMB(size:word; var handle:word):byte; assembler;
asm
mov ah, 9
mov dx, size
call X_Control
les di, [handle]
mov [word ptr es:di], dx
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_FreeEMB(handle: word): byte; assembler;
asm
mov ah, 0Ah
mov dx, handle
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_MoveEMB(movrec: PX_MoveRec):byte; assembler;
asm
push ds
mov ah, 0Bh
lds si, movrec
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
pop ds
end;
function X_LockEMB(handle: word; var adresa:longint):byte; assembler;
asm
mov ah, 0Ch
mov dx, handle
call X_Control
les di, [adresa]
mov [word ptr es:di],bx
mov [word ptr es:di+2],dx
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_UnLockEMB(handle: word):byte; assembler;
asm
mov ah, 0Dh
mov dx, handle
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_GetHanInfo(handle: word; var LCount, FreeHan:byte; var
EMBduz:word):byte;assembler;
asm
mov ah, 0Eh
mov dx, handle
call X_Control
les di,[LCount]
mov [Byte ptr es:di],bh
les di,[FreeHan]
mov [Byte ptr es:di],bl
les di,[EMBduz]
mov [Word ptr es:di],dx
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_ReallocEMB(handle, NewSize: word):byte;assembler;
asm
mov ah, 0Fh
mov dx, handle
mov bx, NewSize
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_RequestUMB(ReqSize:word; var UMBSeg, Size: word):byte;assembler;
asm
mov ah, 10h
mov dx, ReqSize
call X_Control
les di, [UMBSeg]
mov [Word ptr es:di], bx
les di, Size
mov [Word ptr es:di], dx
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_ReleaseUMB(UMBSeg: word):byte;assembler;
asm
mov ah, 11h
mov dx, UMBSeg
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
function X_ReallocUMB(ReqSize, UMBSeg:word):byte;assembler;
asm
mov ah, 12h
mov bx, ReqSize
mov dx, UMBSeg
call X_Control
dec ax
jz @@Success
mov al, bl
@@Success:
end;
begin
X_Installed:=false;
X_Start
end.
pascal.394atech,
> ˙˙>> TRECA STVAR ....
> ˙˙>> UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU !
>
> ˙˙ Nedostaci:
>
> Neko te tuzi zato sto mu je otisla glava na drajvu / zato sto
> su mu prodao falicnu (opasnu) disketu / zato sto ne moze da
> pravi rezervnu kopiju programa (sto ima pravo) ... Bilo je
> govora o ovome na SEZAM-u, pre jedno godinu ipo, dve.
I ne samo to. Dodje majstor Mica i izmeni jedan jedini bajt
u programu koji radi sve ovo low level formatiranje i ode zastita
u nepovrat.
Btw, moja iskustva su takva da ne trebe insistirati na hardverskoj
zastiti disketa od kopiranja vec zastitu koncipirati na drugi nacin a
kupcu obezbediti neogranicen backup. Pored toga, testirajuci neke od
americkih zastita disketa (softverskih, nema busenja i sl ;)) mogu da
kazem sledece:
- Svaku od ovih je bilo moguce prevariti koriscenjem klasicnih alata
za rad sa disketama bez ikakvih izmena programa. O tome da se isti
posao moze odraditi menjenjem programa koji vrsi kontrolu da i ne
govorim...
- Korisnici koji su koristili ovakve diskete zalili su se da im cesto
posle nekog vremena dolazi do fizickog ostecenja diskete (obicno
se radi o slavnom sector no found) pa su primorani da ponovo jure
(cak i da ponovo placaju) novu disketu. E sad, kakvo je stanje kod
nas (mnosto pisaca 'jeba' procedura, 'fuck the user' sistem) mozda
nekome ovo i odgovara...:(
poz, Blagoje
pascal.395visnja,
> Neko te tuži zato što mu je otišla glava na drajvu / zato što
> su mu prodao faličnu (opasnu) disketu / zato što ne može da
> pravi rezervnu kopiju programa (što ima pravo) ... Bilo je
> govora o ovome na SEZAM-u, pre jedno godinu ipo, dve.
Axa, malo morgen kod nas. Ako neko za ovo moze da me tuzi, ne bih ni
stitio programe, nego bih i ja tuzio pirate, kada bi kod nas zakon
funkcionisao tako lepo...
pascal.396pedjak,
> Ne bi trebalo, pogotovo pri kompajliranju iz Windowsa, zato
> sto Chr(27) ne mora uvek da bude ESC ;-)
Bilo je reči o tome kako to radi Borland Pascal. Kako to radi
Delphi, ne znam.
pascal.397postmast,
From: DENIS@vila.bc.co.yu
Subject: ReadLn
Date: Sat, 02 Dec 95 09:56:22 GMT
Hi !
Jedna sitnica koja mew vec dugo muci: Zasto u Pascal-u kursor prelazi
na pocetak novog reda bez obzira da li napisao Read ili ReadLn.Npr
Var T : Real;
Begin
Write('***Vrijeme: ');
Read(T);
WriteLn('sec.');
End.
Kod mene ce to na ekranu izgledati ovako(ako unesem T=554):
***Vrijeme : 554
sec.
Isto kao i da sam napisao:
Var T : Real;
Begin
Write('***Vrijeme: ');
ReadLn(T);
WriteLn('sec.');
End.
Unaprijed hvala !
!)enis
... Backup not found: (A)bort (R)etry (P)anic
--- FMail/386 1.02
* Origin: Vila co.BBS ■ Prijedor_RS ■ +381 79 11 301 ■ B.C.: (95:790/113)
pascal.398postmast,
From: bady@setnet.co.yu (Attila Megyeri)
Subject: Rimski
Date: Thu, 30 Nov 1995 23:30:51
Ima li neko gotov algoritam za konverziju rimskih brojeva u decimalne
brojeve ? Ili bar za proveru (tj. da li je broj ispravan ) ?
Nije problem u kompleksnosti algoritma, vec sto me mrzi da ga pisem ako
ga neko od vas ima :)
Pozdrav:
---Bady
... "Scotty, beam me up another Blue Wave message."
* Origin: Prometheus BBS - The Northern Frontier - SETNET (38:111/107)
pascal.399postmast,
From: OGNEN.DUZLEVSKI%f108.n108.z38@setnet.setnet.co.yu (OGNEN DUZLEVSKI)
Subject: pascal
Date: Fri, 01 Dec 1995 08:37:00
"M>Logicki izrazi tipa "X in ['a'..'z']" su (mnogo?) sporiji nego
"M>pesacko ispitivanje "if X>='a' and X<='z'", ali nema ni to veze.
Bilo nekad. Od verzije 7.0 optimizovan je rad sa setovima.
"M>Ono sto ima veze je da tvoj pascal program radi sa baferom duzine
"M>do 256 bajtova, sto je smesno. Ako ne koristis Turbo Pascalov tip
"M>string, nego radis sa najobicnijim nizom, onda ne mozes da
"M>koristis funkciju Length, pa ti program manje ili vise raste, vec
"M>prema tome kako organizujes stringove.
A sta je sa null-terminisanim stringovima u BP-u ? Oni imaju poseban
unit sa svim potrebnim funkcijama/procedurama.
Ognen
* OLX 2.1 TD * ROBOCOMM - a ROBOCOP for modems.
* Origin: SETNet: Struga BBS +389 96 74074 * Macedonia * (38:108/108)
pascal.400postmast,
From: utvara@setnet.co.yu (Slobodan Utvic)
Subject: PASCAL
Date: Fri, 01 Dec 1995 13:46:00
I heard MLADEN ADAMOVICF@ MacADAMOVIC said PASCAL :
Ne> UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU !
MA> Istim su se zanimali Sezamovci pre par godina i shvatili su da
MA> busilica nije potrebna - dovoljno je samo malo bocnuti iglom, ako ne
MA> zelite MNOOOOOGO losih sektora :).
Pa moze i sa magnetnom iglom :)))
* Slobodan Utvic(Utvara)-email:utvara@setnet.co.yu,utvara@epitaph.bc.co.yu
* sutvic@osmeh.fon.bg.ac.yu & sutvic@alef.yucca.co.yu ...
... Oxymoron: Only Choice.
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.401postmast,
From: Dusan.Lacarac%f119.n111.z38@setnet.setnet.co.yu (Dusan Lacarac)
Subject: Zadatak
Date: Sat, 02 Dec 1995 15:49:01
Cujte ja sam malo glup sto se tice programiranja (malo vise).
Pa dali bi neko znao da uradi ovaj zadatak:
NAPISATI FUNKCIJU PROST KOJA VRACA LOGICKU UREDNOST TROU AKO JE BROJ PROST
ODNOSNO FOLS AKO JE BROJ SLOZEN!!!
Naravno radi se u PASCAL-u
Pozdrav!!!!!!!!!!!
RAPTOR
... I call things as I see them; If I didn't see them, I make them up!
* Origin: ECSTASY BBS * Indjija * 022 53-884 * SETNet: (38:111/119)
pascal.402dvesic,
>> NAPISATI FUNKCIJU PROST KOJA VRACA LOGICKU UREDNOST TROU AKO
>> JE BROJ PROST ODNOSNO FOLS AKO JE BROJ SLOZEN!!!
'Oćemo jedno malo takmičenje ? :)
Ovo je najbrže rešenje koje znam :)
=========================================================
Function JeProst(n: Integer): Boolean;
Var Vrni : Boolean;
korak ,
delisa ,
gorgran: Integer;
Begin
Vrni := true;
If n > 3 Then
Begin
korak := 2 ;
delisa := 5 ;
gorgran:= trunc(sqrt(n)) ;
Vrni := (n mod 2) <> 0 ;
Vrni := Vrni And ( (n mod 3) <> 0) ;
While Vrni And ( delisa <= gorgran ) Do
Begin
Vrni := (n mod delisa)<>0 ;
delisa := delisa+korak;
korak := 6-korak;
End
End;
JeProst := Vrni;
End;
=========================================================
pascal.403kile,
>> Zatim, ako se pogleda lista trazenosti programerskih poslova na zapadu,
>> C i C++ su na zavidnom nivou, a pascal-a nema nigde.
A najveći bedak je što je među najtraženijima Visual Basic :(
pascal.404iznogud,
:: BASIC programeru daje veliku slobodu što se tiče samog stila pisanja
:: programa. Recimo da imam promenljivu MikaPeraLaza. Ako je ne deklarišem,
Jedno malo pitanjce: ti, recimo, ne voliš da pišeš 'option explicit'
na početku programa. I negde u programu umesto MikaPeraLaza napišeš
MkaPeraLaza (dakle, pogrešno ime promenljive). BASIC shvati da hoćeš da
koristiš novu promenljivu, i dodeli joj 0 (default). Rezultat: ti se
ubiješ tražeći grešku u programu (program ti ne računa dobro).
Možda ipak ima razloga za eksplicitnu deklaraciju? Na kraju krajeva, u
svoj novijoj literaturi za BASIC (tj. njegovog vizuelnog burazera) se
programeri usmeravaju da zaborave atavizam zvan 'nedeklarisanje
promenljivih'...
pascal.405iznogud,
:: Da. Uvek se vidi kog je tipa promenljiva, a ne moraš svaki čas da gledaš
:: po deklaracijama.
I nije neki argument ;). Recimo, u 'Programming Windows' (C. Petsold)
se naširoko rabi tkz. 'Mađarska notacija', gde se imenu promenljive
dodaje prefiks u zavisnosti kojeg je tipa.
Npr. hHandle, iIntVariable...
pascal.406evlad,
TO: DENIS@vila.bc.co.yu
<> Jedna sitnica koja mew vec dugo muci: Zasto u Pascal-u kursor prelazi
<> na pocetak novog reda bez obzira da li napisao Read ili ReadLn.Npr
zato što je to komanda sa ehom, a enter je <cr><lf> i otera ti kursor
dole.
rešenje je da podatke uzimaš preko konstrukcije
i:=0;
repeat
buff[i] := ReadKey;
inc(i);
until #13;
stim da moraš ispisati na ekran brojeve :)
ili
da upamtiš red i kolonu gde si bio (pomoću finkcija)
wherex
wehery
<> Var T : Real;
<> Begin
<> Write('***Vrijeme: ');
savx:=wherex;
savy:=wherey;
<> Read(T);
val(t,tmpstr);
gotoxy(savx,savy+length(tmpstr)+1);
<> WriteLn('sec.');
<> End.
ti odluči kako ćeš da uradiš :)
pascal.407vitez.koja,
#=> Ovo je najbrže rešenje koje znam :)
I koliko vidim netačno za n=1 :)
sk
pascal.408supers,
>> Kod mene ce to na ekranu izgledati ovako(ako unesem T=554):
>>
>> *** Vrijeme : 554
>> sec.
Problem je u tome što ti moraš da pritisneš Enter da bi uneo broj :)
Napisao ti Read(T); ili ReadLn(T); koji funkcionišu sasvim istovetno
kada je unos sa tastature, a ne iz fajla u pitanju, isto ti se hvata.
Dakle, prelazak u novi red potiče od tvog stiskanja Entera. Ono što ti
želiš, da program ispiše dodatan tekst nakon tvog unosa u istom redu, ne
možeš da izvedeš sa standardnom ReadLn procedurom.
pascal.409supers,
>> Ima li neko gotov algoritam za konverziju rimskih brojeva u
>> decimalne brojeve ? Ili bar za proveru (tj. da li je broj ispravan
Imam u jednoj knjizi nekoliko takvih gotovih programa, pisanih u
Spectrumovom Basicu :) Ako ti to nije problem, podseti me naknadno da
ti prekucam, sada zbilja nemam vremena...
pascal.410zeljkoj,
> Jedno malo pitanjce: ti, recimo, ne voliš da pišeš 'option
> explicit' na početku programa. I negde u programu umesto
> MikaPeraLaza napišeš MkaPeraLaza (dakle, pogrešno ime
> promenljive). BASIC shvati da hoćeš da koristiš novu
> promenljivu, i dodeli joj 0 (default). Rezultat: ti se ubiješ
> tražeći grešku u programu (program ti ne računa dobro).
Da, znam da se ovakve greške teško otklanjaju, ali malo pažnje pri pisanju
imena promenljivih rešava problem. :)
> Možda ipak ima razloga za eksplicitnu deklaraciju? Na kraju
> krajeva, u svoj novijoj literaturi za BASIC (tj. njegovog
> vizuelnog burazera) se programeri usmeravaju da zaborave
> atavizam zvan 'nedeklarisanje promenljivih'...
Pa dobro... nravno da je lakše kad kompajler upozorava na pogrešno
napisano (nedeklarisano) ime promenljive.
pascal.411kuki,
># => Ovo je najbrže rešenje koje znam :)
> I koliko vidim netačno za n=1 :)
Kako netačno? Pa vratiće true (zar ne)?
pascal.412dvesic,
>># => Ovo je najbrže rešenje koje znam :)
>>
>> I koliko vidim netačno za n=1 :)
Kako bre netačno ? Jedino sad da se svađamo oko toga jeste li
1 prost ili ne :)
pascal.413visnja,
> Pa moze i sa magnetnom iglom :)))
Dabome, pa namagnetises glavu drajva i unistis klijentu stotinak disketa
i sam drajv pa onda on tebi razbije glavu... :))))
pascal.414mastermind,
ă─> Kako bre netačno ? Jedino sad da se svađamo oko toga jeste li
ă─> 1 prost ili ne :)
jedinica nije ni prost ni složen broj.prost broj se definiše kao broj koji
ima samo 2 delioca , jedinicu i samog sebe, a složen ima još delioca.
a jedinica nema dva delioca.
MasterMind
pascal.415postmast,
From: igor.grahek@panon.ns.ac.yu (Igor Grahek)
Subject: Re: Delphi
Date: Sun, 3 Dec 1995 10:43:00 GMT
N> From: "Nebojsa Lazic" <nlazic@sezam.UUCP>
N> ali Delphi moze i mnogo vise, nevezano za baze. Najtacnije bi bilo reci
N> da je to zapravo Borland Pascal 8.0 + BDE + gomila klasa za rad sa svim
N> i svacim (pocev od INI datoteka, pa do pisanja client/server aplikacija
Osim klasa za serijsku komunikaciju :( Sto je uostalom Borlandov obicaj.
I.G.or
---
■ SPEED 1.30 #256 ■ Dok se saberem ja se oduzmem
pascal.416postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Mon, 27 Nov 1995 17:06:00 GMT
--> dr.urbano@sezam
DR> Dakle moze li se nesto sakriti u bad sector originalne diskete i kasnije
DR> koristiti ?
Znas sta je zgodno za zastitu? Formatiras jednu traku viska i tu upises
podatke: Ako disketa ima 80 traka ti formatiras 81. i u upises nesto sto
ces koristiti.
Ovo prezivljava i stari dobri COPYIIPC; svojevremeno sam se pucao svojom
genijalnoscu... :))
Samo imas jedan problem -- ovo vise nije pouzdana zastita, jer sad
dosta ljudi zna za to. ;)
pascal.417postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: pascal
Date: Mon, 27 Nov 1995 17:09:00 GMT
--> "Vladimir Maric" <vitez.koja@sezam.UUCP>
VI> Logicki izrazi tipa "X in ['a'..'z']" su (mnogo?) sporiji nego
VI> pesacko ispitivanje "if X>='a' and X<='z'", ali nema ni to veze.
I 'x>y and r<i' je logicki izraz.
I nije mnooogo brzi, ali je necitak.
pascal.418postmast,
From: srdjan.dakic@panon.ns.ac.yu (Srdjan Dakic)
Subject: Re: swap
Date: Mon, 27 Nov 1995 17:15:00 GMT
--> broker@setnet.co.yu (Predrag Supurovic)
PS> Ima li neko kakav fin unit za swap u DOS shell?
Ako ti treba malo memorije sasvim fino resenje je da uradis BlockWrite
po redu sve dinamicki alocirane promenljive i da ih sa free oslobodis.
Inverzna operacija ide nakon shella.
Cirka 20-30 linija koda.
pascal.419postmast,
From: nemesis@styx.bc.co.yu (NEMESIS)
Subject: RE: PASCAL
Date: Sun, 03 Dec 95 17:38:00 +0100
Ne>> UZMESH I IZBUSIS DISKETU BUSILICOM NA NEKOM MESTU !
---> Istim su se zanimali Sezamovci pre par godina i shvatili su da busilica
---> nije potrebna - dovoljno je samo malo bocnuti iglom, ako ne zelite
---> MNOOOOOGO losih sektora :).
Sad sam se setio .. :)) mada NEPOSTOJI IDELNA ZASTITA :))
---> ... XjhgwaduiwueoqimnBDDDDKJSBMN! <--Tag created on Pentium
Posle 6 sati ppogadjanja ;))
┌────────────────────────────────────────────────────────────────────Ě
│/\■/\ .:NemesiS:. /\■/\ S.T.Y.X BBS /\■/\ ║
│ / > NEMESIS@STYX.BC.CO.YU >:[] / \ 011\444-95-22 - 22-06 < \ ║
ď════════════════════════════════════════════════════════════════════╝
... /\ S.T.Y.X BBS /\ 011\444-95-22 /\ 22-06 /\
* ■ >:[] NemesiS ■
pascal.420postmast,
From: mladen.adamovic@blbbs.elf.bl.ac.yu (MLADEN ADAMOVIC)
Subject: Re: Zadatak
Date: Mon, 04 Dec 95 08:28:00 -1
-+=+- Dusan Lacarac rece : -+=+-
DL> NAPISATI FUNKCIJU PROST KOJA VRACA LOGICKU UREDNOST TROU AKO JE BROJ
DL> PROST ODNOSNO FOLS AKO JE BROJ SLOZEN!!!
Evo ovako, napamet pa se ti posle... snalazi da ispravis eventualne greske
(ne programiram u pascalu, no ovde ti je bitan algoritam ;>).
funktion prost ( broj : integer) : boolean;
var i : integer;
begin
prost:=TRUE;
for i:=1 to sqrt(broj)+1 do
if broj mod i = 0 then prost:=FALSE;
end;
... Isla dva coveka i naidju na drugog.Znaci isli su prvi i treci.
___ Blue Wave/QWK v2.12
pascal.421postmast,
From: nick@setnet.co.yu (Nikola Sivacki)
Subject: arrow <-> char
Date: Sun, 03 Dec 1995 21:51:01
Zna li neka dobra dusa da mi kaze kako je moguce koristiti strelice ili recimo, f. tastere, uz readkey? ASCII strelice na dole je #00 #80, ali tako nesto ne pali! Ne moze da se koristi kao karakter...:(
--== NCK ==-- /SBHS/VBC/
* ■ NICKRead ■ * Guns don't kill people, it's the bullets. Guns get them goi
* Origin: <-=SCORPION=-> * Bgd * 011-699-784 * 22-07 * SetNet: (38:103/136)
pascal.422postmast,
From: Miroslav.Minovic%f133.n103.z38@setnet.setnet.co.yu (Miroslav Minovic)
Subject: Re: delphi knjiga
Date: Sun, 03 Dec 1995 11:50:00
KA> izdanju CIP-a izassla knjiga za Delphi. Molio bih
KA> one koje znaju da mi kazzu koliko kossta ova knjiga
Knjigu sam na sajmu platio 50 din,a cena je verovatno
nesto veca ako je kupis u knjizari.
Inace imas je u CET biblioteci :
CET Computer Shop
Skadarska 45,Beograd
tel./fax : 343 - 043
KA> Ako neko vecc ima ovu knjigu voleo bih da ccujem i komentar
KA> u ovoj ili nekoj drugoj odgovarajuccoj konferenciji.
Inace knjiga je dobra kao uvod,ali je potpuno normalno da
se u jednoj knjizici ne moze opisati ceo Delphi tako da
i dalje >>Akrobat rider<< sa .pdf fajlovima koji se dobijaju
uz Delphi ostaje najbolja knjiga(ako znas engleski).
Pozdrav,Mindza.
... All I need is a Wave and a board to surf it on.
* Origin: SETNet * BBS Politika, Bgd * +381 11 3229148 * 0-24 (38:103/133)
pascal.423jablan,
>>> Ima li neko gotov algoritam za konverziju rimskih brojeva u
>>> decimalne brojeve ? Ili bar za proveru (tj. da li je broj
>>> ispravan
Hm, ja imam ignore na postmaster, al videh ovu poruku, pa rekoh da
pomognem:). Evo, u turbo paskalu. Valjda radi.
{Roman->Decimal numbers conversion}
{Mladen Jablanovic, 7. Nov 1995.}
{$S-}
program Roman;
function GetValue(C:char):integer;
begin
case C of
'M':GetValue:=1000;
'D':GetValue:=500;
'C':GetValue:=100;
'L':GetValue:=50;
'X':GetValue:=10;
'V':GetValue:=5;
'I':GetValue:=1;
end;
end;
function Convert(Rom:String):integer;
var K,i,Pos:integer;
begin
if Length(Rom)=0 then
Convert:=0
else
if Length(Rom)=1 then
Convert:=GetValue(Rom[1])
else
begin
K:=1;
for i:=0 to Length(Rom) do
IF GetValue(Rom[i])>K then
begin
K:=GetValue(Rom[i]);
Pos:=i;
end;
Convert:=GetValue(Rom[Pos])-
Convert(Copy(Rom,1,Pos-1))+
Convert(Copy(Rom,Pos+1,Length(Rom)-Pos));
end;
end;
begin
WriteLn(Convert(ParamStr(1)));
end.
pascal.424dpredovic,
> :: Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju zajednički
> :: koren, pa se sve svodi na običan type-cast.
>
> A šta ako tvoj objekat treba da bude, recimo, generički kontejner za
> sve ostale vrste objekata, pa i onih koji nisu izvorno Delfijevi? Hoće
> li i onda da pali type-cast? Jesi li ti nekad koristio šablone?
>
Ne, ne - _svi_ objekti u Delphi-ju _moraju_ da imaju zajednički koren. Postoji
generička klasa TObject, i ako se ne navede klasa roditelj, podrazumeva se
ona.
Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja problema
nastalih u dizajnu jezika metodom grube sile.
> :: BTW, misliš da će standardizacija C++ da pomogne silnim OWL programerima
> :: kada Borland pukne?
>
> A kakve veze ima standardizacija jezika za programiranjem pod
> Windows-ima? Ako nekom tu treba standard, onda neka uzme MFC - bar tri
> kompajlera (BTW, sva tri prave bolji kod od Borlandovog) podržava MFC.
Hteo sam da kažem da ako Borland ode pod led, ja sa svojim Delphi programima
neću imati ništa više problema od prosečnog OWL programera. OWL ovde uzimam
ne kao primer win programiranja, nego kao primer _komplikovanih_ iliti ne-
trivijalnih programa. Jes da je C++ standardizovan kao jezik, ali što se tiče
biblioteka... Kuku lele... A tek biblioteke klasa... Kuku lele ** 2...
> Standardizacija će da pomogne kod prenošenja programa sa platforme na
> platformu, i sa kompajlera na kompajler - džaba meni što (recimo)
Nešto ne primećujem da se to i dešava u realnom svetu. Ljudima obično kosa
osedi portujući GNU<->MSC ili Borland<->Watcom. Da ne govorimo da ni dva
UNIX-a nisu sors kompatibilna, a kamoli DOS<->UNIX ili MAC<->VMS.
pascal.425dpredovic,
>>> Exceptions i RTTI postoje i u pascalu. Doduše ne zove se BP8
>>> nego Delphi, ali to ne bi trebalo da ima veze.
>
> Exceptions & RTTI ne postoje u pascalu, već u Delphi-ju. Ni
> jedan drugi kompajler ih ne podržava. Kod c++ kompajlera,
> stvar je sasvim drugačija. Mada, sve ovo i nema veze, ako u
Eh, sad... I paket BC4.5 može da se zove Mika, pa će jezik opet da bude
C++. Delphi jeste ime paketa, ali jezik je Object Pascal.
>>> Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju
>>> zajednički koren, pa se sve svodi na običan type-cast.
> void main(void)
> š
> Erej<int> niz_intova(5);
> Erej<char*> niz_stringova(10);
> ć
>
> žini mi se da ovo, ipak, nije moguće?
Postoji generički TList, koji drži Items pointere. Postoji i TStringList.
Ovo je bio blaži način da se kaže da ne može ;) Ne može, ali u najvećem
broju slučajeva i ne treba. Ono što je najčešće potrebno i moguće je isto
to, ali sa klasama. U stvari ne mogu da se setim da mi je ikada bila potre-
bna lista klot integera. Lista stringova ajde de, ali lista integera?
pascal.426dpredovic,
>>> Exceptions i RTTI postoje i u pascalu.
>>> Doduše ne zove se BP8 nego Delphi,
>
> Koliko sam shvatio iz Borlandove reklamne kampanje, ("VB Killer",
> tako beše?) Delphi je pandan Visual Basic-u, a po onome što čitam vidim
> da su i po performansama (kompajliranje i izvršavanje) tu negde.
Upravu si 50%. Što se tiče kompajliranja tu su negde, a što se tiče izvrša-
vanja ni blizu... Ne znam koje si to testove gledao?
> Mogu da se napišu C++ klase sa izuzecima, šablonima i RTTI-jem
> za bilo kakvu konkretnu (inžinjersku, naučnu, knjigovodstvenu ... )
> primenu, koje će da rade pod DOS-om (uz malo zezanja i kompromisa i
> pod nekim Unix-om) i da se po potrebi presade u Windows ili na Mac-a,
> ali *ne može* da se napravi Paskal ekvivalent koji obezbeđuje sve te
> lepe nove konstrukcije, a da trči pod oba (ili sva tri) okruženja. Na
Mogu da se urade C++ klase sa RTTI, pod uslovom da ciljni kompajler nije
MSC, koji je ujedno jedini na DOS platformi za kojeg se pouzdano zna da neće
da pukne. ;) Što potvrđuje prednost implementacije nad standardom. ;)
>>> Opet, u Delphiju šabloni nisu niti potrebni. Sve klase imaju
>>> zajednički koren, pa se sve svodi na običan type-cast.
>
> Ovako od ove jedne rečenice se ne čini da je to mehanizam koji
> potpuno zamenjuje šablone. Ako bi bio voljan da to malo razjasniš?
Dobro, dobro... Već sam priznao da to nije _baš_ to... :) Ali... Ne verujem
da firma koja ume da ugradi template mehanizam u C++ (onako kako je to
zamislio tamo neki šveđanin) ne ume to da uradi u jeziku koji može da krpi
kako kod hoće. Object Pascal je Pascal sa C++-like extenzijama. Sve je tu:
private, protected, public, konstruktori, destruktori, etc., etc. ...
Prosto - Borland je od C++ pokupio sve što mu se dopadalo i "prepisao" to
u pascal. Ono što im se nije dopalo, i što guši i u samom C++u nisu preneli.
>>> kod definicije jezika, koliko je C++ trebalo godina da dobije
>>> sve te lepe stvari sa početka poruke?
>
> Mnogo manje (duplo) nego Wirth-ovom Paskalu. ;)
Da ga je razvijao samo jedan čovek (kao C++) ihaaaj, gde bi bio...
>>> BTW, misliš da će standardizacija C++ da pomogne silnim OWL
>>> programerima kada Borland pukne?
>
> OWL programerima najbolje može da pomogne munjevito šaltanje na MFC,
> što bi im garantovalo lep život na trenutno tri kompajlera. Ako neko
> paranoično (ovo nije ništa loše, nemirna su vremena) ne veruje ni u
Kao i Delphi programerima. Ali teško da bi im to garantovalo lep život ;)
pascal.427vitez.koja,
#=>> I koliko vidim netačno za n=1 :)
#=> Kako netačno? Pa vratiće true (zar ne)?
Pa kažem netačno :)
Dakle, jedan nije prost broj.
sk
ps. A nisu ni negativni brojevi, ali nema veze :)
pascal.428iznogud,
:: Ne, ne - _svi_ objekti u Delphi-ju _moraju_ da imaju zajednički koren.
:: Postoji generička klasa TObject, i ako se ne navede klasa roditelj,
:: podrazumeva se ona.
žekaj? žak i osnovni tipovi, recimo integer? U, ala su ga napravili,
svaka im čast.
I kako se pomoću te fantomske klase TObject izbegava upotreba šablona?
Pomoću type-casta? Pa u čemu je onda razlika u odnosu na ono što
pomenuh, tj. da se u C/C++ isto može postići pokazivačima na void i
takođe type-castom?
Koliko ja vidim, čak ni jedinstvena bazna klasa ti ne može dati neke
stvari koje ti šabloni daju - npr. da kontejner zna sam da dinamički
alocira prostor potreban za smeštanje objekta.
:: Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja
:: problema nastalih u dizajnu jezika metodom grube sile.
Imaš pravo da ih mrziš, ali ostatak konstatacije je malo... napamet.
Meni lično su šabloni pomogli da rešim stvari za koje sam ranije morao
da potežem pretprocesor. Ne vidim šta je tu glupo, i kako bi se
drugačije uradilo.
:: Hteo sam da kažem da ako Borland ode pod led, ja sa svojim Delphi
:: programima neću imati ništa više problema od prosečnog OWL programera.
I OWL programer i ti imate isti problem: vezani ste za Borland.
Ostatak sveta koristi MFC.
Što se biblioteka za C++ tiče, ANSI/ISO standard je propisao kako
izgledaju sve standardne biblioteke klasa - kao što na svakom C
kompajeru možeš da napišeš '#include <stdio.h>', tako ćeš za neko
vreme (čim se standard primi) moći da upotrebljavaš standardne klase
za stringove, matrice ili kontejnere na bilo kom C++ kompajleru.
U tome je prednost standardizovanih jezika.
PS Raspitaj se malo: postoje biblioteke za razvijanje aplikacija koje
će raditi pod Win, X Win i Mac sistemima. Napišeš kod, i
prekompajliraš.Možeš jednom da pogađaš u kom su jeziku pravljene.
pascal.429iznogud,
:: Postoji generički TList, koji drži Items pointere. Postoji i
:: TStringList. Ovo je bio blaži način da se kaže da ne može ;) Ne može,
:: ali u najvećem broju slučajeva i ne treba.
Ovako se sve može dokazati, samo kažeš 'to što nema i ne treba mi' ;)
U praksi je vrlo često potrebna lista integera koja može da raste
prema potrebi.
Probaj da elegantno rešiš sledeći problem: treba napraviti sortiranu
listu, a instance te liste ćeš kasnije koristiti za smeštanje
stringova, integera, objekte klase koje ćeš napisati za dve godine,
kao i instance same liste (uslov za sortiranje će biti broj objekata u
kontejneru).
Ako je moguće, takav kontejner bi mi trebao i na Unix-u, kao i na OS/2
i WinNT za razne procesore (dakle, treba da radi na GNU C++, MSVC i
BC++).
Ili se ni ovo nikada ne javlja u praksi? ;)
pascal.430iznogud,
:: Mogu da se urade C++ klase sa RTTI, pod uslovom da ciljni kompajler nije
:: MSC, koji je ujedno jedini na DOS platformi za kojeg se pouzdano zna da
:: neće da pukne. ;) Što potvrđuje prednost implementacije nad standardom.
:: ;)
MSVC 2.1 podržava RTTI.
BTW, odakle ti informacija da 'samo MSC neće da pukne'? Ljudi se žale
na, recimo, brzinu koda optimizovanog BC++, ali vrlo retko na njegovu
pouzdanost.
O Watcomu neću ni da pričam, nešto ne vidim da OS/2 ili Auto CAD
'pucaju'.
pascal.431oper,
>> > Exceptions & RTTI ne postoje u pascalu, već u Delphi-ju. Ni
>> > jedan drugi kompajler ih ne podržava. Kod c++ kompajlera,
>> > stvar je sasvim drugačija. Mada, sve ovo i nema veze, ako u
>>
>> Eh, sad... I paket BC4.5 može da se zove Mika, pa će jezik opet da
>> bude C++. Delphi jeste ime paketa, ali jezik je Object Pascal.
To sam i ja rekao. Ako (što reče Maksa) pukne Borland, ja ću
da pređem na majkrosoftov ili vatkomov ili xyzov kompajler i
imaću i RTTI i šablone i sve. A koliko firmi pravi kompajlere
za Object Pascal?
>> Postoji generički TList, koji drži Items pointere. Postoji i
>> TStringList. Ovo je bio blaži način da se kaže da ne može ;) Ne
>> može, ali u najvećem broju slučajeva i ne treba.
Ja volim da je tu. 'leba ne jede ;)
Imao sam priliku da probam Delphi ovih dana. Pošto se bakćem
sa nekim paradox tabelama (koristio sam Paradox Engine uz BC)
odlučio sam da pokušam da neke delove paketa uradim u
Delphiju. Uradio sam ih i cijenim da bi mi za isti posao u
kombinaciji C + OWL + Paradox Engine trebalo tri puta više
vremena. A sa paskalom se nisam družio par godina. Samo, to
su ipak prosti poslovi i mali program. Već pri tom broju,
problem je da se snalaziš u svim onim prozorima. Koliko
Borlandovom C++ u nedostaju vizuelni alati, toliko Delphiju
nedostaju mehanizmi za rad sa većim projektima.
pascal.432ognjen,
)-> a jedinica nema dva delioca.
Jedinica ima dva delioca: Jedinicu i samu sebe. Ekvivalentno
kao što neke kvadratne imaju dva, _ista_, ali i dalje dva,
rešenja.
pascal.433mastermind,
ă─> Jedinica ima dva delioca: Jedinicu i samu sebe. Ekvivalentno
ă─> kao što neke kvadratne imaju dva, _ista_, ali i dalje dva,
ă─> rešenja.
Treba da ima 2 različita delioca.... uostalom, pitaj profesora analize,
on će ti objasniti to bolje.
MasterMind
pascal.434mmitrovic,
::::: Netačno. Stringovi terminisani nulom su realizovani sasvim
standardnim
::::: Pascal konstrukcijama. PString nije ništa drugo do ^char.
Mala ispravka, da ne bude zabune:
null-terminated stringovi su tipa PChar=^Char, a
PString je ^String što predstavlja standardni Paskal string.
pascal.435mmitrovic,
::::: Hm, kao što sam rekao, trudio sam se da poštujem ISO Pascal
(mada
::::: nisam u potpunosti uspeo), tako da nisam želeo da koristim ove
::::: nestandardne hibridne ekstenzije.
Da budemo precizni, i nisi uspeo. Tvoj program se zasniva na
tome da
je buff tipa String. Standardni paskal nema taj tip već mora da se
koristi
buff: PACKED ARRAY [1..???] of CHAR;
Samim tim otpada upotreba Length funkcije (koja je takođe
hibridna
kvazi-funkcija. Kvazi je zato što se Length(buff) ne prevodi kao
poziv
već kao ord(buff[0]) ). Morao bi da izmišljaš mehanizam za
prepoznavanje
dužine stringa (ili da simuliraš C ili borland paskal sistem
stringova).
::::: E, ja mislim na standarni paskal, jer Borland paskal ne liči
više na
::::: paskal, i smatram da nije dostojan da nosi to ime. Standardan
paskal,
::::: inače, nije za drugo, sem za edukativne svrhe, jer šta će ti
paskal
::::: bez raznih 'uses-a' i sličnih poštapalica?
Ako Borland Paskal nije paskal, šta je onda? Sve programe koji
rade
na Turbo Paskalu 3.0 (zadnja verzija koja je kompletno
"standardna")
prevodi i BP7.0. žak i one koji koriste Turtle graphics ;)
Niko tebe ne bije po ušima da koristiš Uses i slične
"poštapalice",
ali se time lišavaš mnogih prednosti. BTW, packed array of char
postoji
i na BP7.0.
Ako ćemo tim putem, onda ni današnji bejzici nisu bejzici (fuj,
pr.aut.),
C++ nije C, FORTRAN 90 nije FORTRAN. Po tome, mi bismo svi trebali
da
pišemo programe u COBOL-u (ne mogu da verujem da ovo još predaju
na
FON-u, zajebali ljude i uvalili im ovaj šit umesto C++-a :))),
jerbo on
još "živi" u originalnoj formi. Zastarele stvari se i zovu
zastarele
zato što postoje bolje i novije.
::::: Lično mislim da je paskal idealan za učenje programiranja, a da
::::: kasnije, kada se dobro ispeče zanat, treba preći na neki
moćniji
::::: jezik, tj. C ili Modulu-2.
To je definitivno tačno. Mnogo ljudi se lako zapetlja u svoj
ego i
kažu sebi: "Ja sve mogu da držim u glavi" i onda krenu sa
programiranjem
od C-a. Ne kažem da je to loš put (uzeti C), ali je loš izbor uz
prethodno tvrđenje. Onda krenu sa pisanjem do bola prljavih
programa, jer
su oni zaboga hakeri, pa posle ni oni sami ne znaju šta su
napisali.
Sem par ljudi koje sam imao čast da upoznam i koji stvarno sve
drže u
glavi, ostali samo prave sebi probleme. Jedan moj ortak je počeo
sa C-om
i ništa mu nije radilo kako treba, pa sam mu predložio da
privremeno pređe
na paskal. Mesec dana je huktao kako stalno mora da kuca one glupe
rezervisane reči, ali su kroz par meseci, kada se vratio na C, svi
njegovi programi počeli da rade. A i bilo ih je moguće pročitati.
Sa druge strane, teško mogu da se složim da je "standardni"
paskal
idealan za učenje programiranja. Nedostatak gomile potrebnih
tipova i
komandi samo otežava rad i predstavlja probleme pri prelasku na
novije
alatke. Po meni učenje bi trebalo početi od TP5.0 (neverovatno, al
još
ga čuvam na 4 prašnjave 5.25"DD disete :)) pošto je dovoljno
komforan
da ti ne presedne rad, a dovoljno striktan da te natera da naučiš
da
programiraš čisto. Lakše je pretvoriti (sad pričam o C-u):
a = 120;
b = pow10(a/16);
a++;
c = ln(a+6*b)
a = c-b;
u a=(c=ln((a++)+6*(b=pow10((a=120)/16)))-b; nego obratno, zar ne?
;)
::::: neko voli ovo...':). I ja, kao i ti, više volim paskal, ali ću
i ja
::::: verovatno preći na C(++), zato što se u poslednje vreme prave
moćniji
::::: kompajleri i neke stvari se mnogo brže završe.
Ja sam pre mesec dana prešao da ozbiljno radim na C++ i počeo
od
verzije 4.02 (prva verzija C++ u kojoj nisam morao da se
maltretiram oko
održavanja projekta). Sam jezik je boza, ali je OWL noćna mora u
odnosu
na BP-ov OWL (kako su mi neki C++ ljudi obasnili, postoji velika
razlika
i između ovog OWL-a i onog iz C++3.1). Trebalo mi je mesec dana da
iskopam
ko tu šta pije a ko plaća. Da ne pominjem do koje je mere
iskomplikovano
strimovanje objekata (koje je u BP-u bilo boza). Ni dan danas ne
znam kako
da u C++ kreiram objekat sa diska (prethodno snimljenog preko
stream-a).
Da ne pominjem event-response tabele i misterije tipa "kako on
dodjavola
zna koji metod da pozove?!?" :)
Dakle, neke stvari se brže završe (manje koda se ukucava za
neke stvari
zbog proširene sintakse C jezika), ali su neke stvari
iskomplikovane bez
potrebe). Najviše me nervira što ne moga da kreiram instancu
pure-virtual
klase čak iako znam da pure-virtualne metode ne bivaju pozivane.
Nego
moram da nasleđujem i ostavljam prazne funkcije.
pascal.436mmitrovic,
::::: Bilo nekad. Od verzije 7.0 optimizovan je rad sa setovima.
Samo ako je skup neprekidan (npr. X in [1..5]). Kad se radi o
uniji više "podskupova" (npr X in [1..5,8..13]) višestruki if je
brži.
pascal.437nbatocanin,
>> Standardizacija će da pomogne kod prenošenja programa sa
>> platforme na platformu, i sa kompajlera na kompajler -
> džaba meni što (recimo)
>
> Nešto ne primećujem da se to i dešava u realnom svetu.
> Ljudima obično kosa osedi portujući GNU<->MSC ili
> Borland<->Watcom.
Samo da potvrdim ovo. Mada se dosta govori o multiplatformskim
kompajlerima i portabilnosti jezika, veoma malo toga se zaista i
koristi. Šta mi vredi što je jezik isti i za DOS i za Win, kad moram
potpuno da menjam filozofiju programa i korisničkog interfejsa.
pascal.438dpredovic,
> :: Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja
> :: problema nastalih u dizajnu jezika metodom grube sile.
>
> Imaš pravo da ih mrziš, ali ostatak konstatacije je malo... napamet.
Hoćeš nećeš, tako je. Šabloni su posledica toga da C++ nema zajednički
koren klase, i da su svi tipovi nisu baš ravnopravni pa int i nije baš
isto što i MojInt. Prvo je ladno moglo da se reši na način kako je to
rešeno u Delphiju, a drugo je posledica toga da je C++ nastao kao C
pretprocesor.
BTW, kada se standard za klase primi, da li će da se menja i MFC? Ako hoće,
šta će da se radi sa silnim matorim programima i svim silnim string/kontejner
klasama? QQ... Ko će to da prepiše... ;)
pascal.439dpredovic,
> :: Mogu da se urade C++ klase sa RTTI, pod uslovom da ciljni kompajler nije
> :: MSC, koji je ujedno jedini na DOS platformi za kojeg se pouzdano zna da
> :: neće da pukne. ;) Što potvrđuje prednost implementacije nad standardom.
> :: ;)
>
> MSVC 2.1 podržava RTTI.
>
VC 2.1? Za to verovatno treba NT sa 64 mega rama i pojede jedno pola mega
diska?
> BTW, odakle ti informacija da 'samo MSC neće da pukne'? Ljudi se žale
> na, recimo, brzinu koda optimizovanog BC++, ali vrlo retko na njegovu
> pouzdanost.
Mislio sam na finansijsko pucanje, a što se tiče pouzdanosti Borlanda...
Bolje da ne pričamo o tome...
pascal.440dpredovic,
> Probaj da elegantno rešiš sledeći problem: treba napraviti sortiranu
> listu, a instance te liste ćeš kasnije koristiti za smeštanje
> stringova, integera, objekte klase koje ćeš napisati za dve godine,
> kao i instance same liste (uslov za sortiranje će biti broj objekata u
> kontejneru).
>
> Ako je moguće, takav kontejner bi mi trebao i na Unix-u, kao i na OS/2
> i WinNT za razne procesore (dakle, treba da radi na GNU C++, MSVC i
> BC++).
>
> Ili se ni ovo nikada ne javlja u praksi? ;)
Elegantno rešenje tog problema je: uzmi C++ i delji. Problem je u tome
što je taj problem toliko apstraktan da za _mene_ njegovo rešavanje nije
od nikakvog interesa. Ne znam nikoga kome mogu da prodam ono što radim
a kome je bitno portovanje na Unix ili Mac ili OS/2. Uostalom ljudi
koji kupuju moje programe radiće pod onim OS-om pod kojim ja kažem
da treba da rade - da znam neki lep alat za OS/2 radili bi pod njim, a
pošto ne znam - radiće pod Win31/Win95, a programi će da budu u Delphiju/
WatcomSQL/Oracle 7.
Da ne dužimo: ako su šabloni i Borlandova nepredvidiva budućnost jedina
prednost C++ nad Delphijem, onda taj C++ i nije baš nešto naročito ;)
pascal.441dpredovic,
> To sam i ja rekao. Ako (što reče Maksa) pukne Borland, ja ću
> da pređem na majkrosoftov ili vatkomov ili xyzov kompajler i
> imaću i RTTI i šablone i sve. A koliko firmi pravi kompajlere
> za Object Pascal?
Tjah... Kada pukne Borland ja ću još neko vreme da prodajem Delphiće,
a onda ću da gledam šta ću... Verovatno PowerBuilder ili SQLWindows,
možda čak i VB4. Sve će da zavisi od Win95 verzija alata.
pascal.442spantic,
> VC 2.1? Za to verovatno treba NT sa 64 mega rama i pojede jedno pola mega
> diska?
Radi odlično i pod Windows 95 sa 16 MB (radilo je i sa 8 MB, ali
i sam W95 štuca sa istom količinom memorije). Zauzima u punoj
instalaciji oko 100 MB na disku.
pascal.443.sima,
RE: Prost broj
║║ funktion prost ( broj : integer) : boolean;
║║ var i : integer;
║║ begin
║║ prost:=TRUE;
║║ for i:=1 to sqrt(broj)+1 do
║║ if broj mod i = 0 then prost:=FALSE;
║║ end;
Ovo je sporo, jer nepotrebno ispituje za parne i svake treće neparne
brojeve. Ispitivanje treba da bude za 2 i 3 pa onda za 5,7,11,13,17...
To se dobija tako što se postavi korak:=2, pa se od 5 proba i dodaje
korak. Korak se u svakoj iteraciji izračunava sa korak:=6-korak. Mislim
da je neko već dao ranije ovo rešenje. Pored ovog postoje i razni drugi
algoritmi.
pascal.444iznogud,
:: BTW, kada se standard za klase primi, da li će da se menja i MFC? Ako
:: hoće, šta će da se radi sa silnim matorim programima i svim silnim
:: string/kontejner klasama? QQ... Ko će to da prepiše... ;)
To je cena standardizacije. Verovatno će se uraditi ono što je uradio
i Borland sa svojim kontejnerskim klasama kada su se pojavili šabloni:
napravili su BIDS, koji može da emulira staru biblioteku, a ostavili
su i staru bibilioteku, radi kompatibilnosti, uz preporuku da je više
niko ne koristi.
Isto se desilo i kada je promovisan ANSI C, a većina programa je
radila na K&R C-u...
BTW, ja bih voleo da MS malo više poradi na MFC-u, i da ga uklopi u
nove standarde jezika. Kod OWL-a mi se svidela robustnost: čak i na Win
3.1, program je vrlo retko pucao 'namrtvo'. Obično bi se javljao neki
izuzetak, kulturno me obaveštavajući da sam uradio nešto nedozvoljeno.
Poslednji MFC koji sam gledao (MSVC 1.5) nije to imao.
pascal.445iznogud,
:: VC 2.1? Za to verovatno treba NT sa 64 mega rama i pojede jedno pola
:: mega diska?
Oh, da... Prvo nema, pa ako nema onda mi i ne treba, a ako mi treba
onda je glupo, a ako nije glupo onda je mnogo zahtevno...
486DX4 + 16MB RAM košta negde oko 2500 - 3000 DEM... Ne mislim da je
to mnogo za mašinu od koje se živi.
Uopšte, problem sa programiranjem kod nas je mišljenje da to svako
može da radi, i da kompajler mora da radi na _svakoj_ mašini. Pogledaj
CAD-ovce - kada se poslednji put neko požalio što AutoCAD neće da radi
kako treba bez 32 Mb memorije? Ljudi su shvatili šta znači izreka
'plati pa klati', što programerima izgleda nije jasno. Ili su to
'programeri'?
Sebe smatram hobistom, tj. nekim ko ne živi od programiranja. Kada
budem rešio da živim od programiranja, kupiću kompajler koji mi treba,
pogledati šta na kutiji piše, koja je mašina za njega potrebna, i
kupiti tu mašinu - ta šta je 3000 DEM ako ću da je isplatim već od
prvog programa, zar ne? ;)
pascal.446iznogud,
:: Da ne dužimo: ako su šabloni i Borlandova nepredvidiva budućnost jedina
:: prednost C++ nad Delphijem, onda taj C++ i nije baš nešto naročito ;)
K'o što sam ja rekao, a ti zaboravio, C++ je standardizovan jezik. To
tebi, očigledno, ne znači mnogo, a meni znači (razlika u ukusima).
Između ostalog i zbog toga što je to standardni jezik za programiranje
pod Win / OS/2 / Unix-om, tako da je sva literatura pisana za C/C++.
Ja, eto, volim da isprobavam razne stvari, pa se osećam nelagodno kad
mi je na kompjuteru OS za koji nemam kompajler ;)
Što se tiče Delphi vs C++, tu je malo neukusno raspravljati, pošto je
Delphi C++ nakarikan na pascal sintaksu, onako kako to Borland vidi. U
toj situaciji ja se ipak odlučujem za C++, pošto mi se više sviđa
osnova jezika - C je jezik koji je pisao programer za programere, dok
je pascal jezik koji je pisao profesor za svoje učenike... Clear?
pascal.447jablan,
> koristi. Šta mi vredi što je jezik isti i za DOS i za Win, kad
> moram potpuno da menjam filozofiju programa i korisničkog
> interfejsa.
Encapsulation, my dear Watson...
pascal.448djelovic,
> Inače, šablone sam oduvek mrzeo. Oni su vrlo očit primer rešavanja problema
> nastalih u dizajnu jezika metodom grube sile.
Zašto? Jedini problem sa šablonima jesto to što prave po jednu konkretnu
klasu za svaki tip podataka za koji se koriste, ali ne vidim kako pobeći od
toga sa čvrsto tipiziranim jezikom? Alternativa tome su stalni cast-ovi, koji
bi sa programerskog gledišta bili užasni.
> Jes da je C++ standardizovan kao jezik, ali što se tiče
> biblioteka... Kuku lele... A tek biblioteke klasa... Kuku lele ** 2...
ANSI standard za C++ koji se upravo završava ima sasvim standardizovanu
biblioteku klasa za razne poslove. A što se tiče biblioteka za korisnički
interfejs, pa tu se samo treba odvojiti od nekog proizvođača: ZINC, XVT++ i
drugi nude portabilnost na Motif, Mac-a, text mod, VMS i tako dalje, a čak i
sam MFC je prenet na Alfu i na Mac.
pascal.449djelovic,
> BTW, ja bih voleo da MS malo više poradi na MFC-u, i da ga uklopi u
> nove standarde jezika. Kod OWL-a mi se svidela robustnost: čak i na Win
> 3.1, program je vrlo retko pucao 'namrtvo'. Obično bi se javljao neki
> izuzetak, kulturno me obaveštavajući da sam uradio nešto nedozvoljeno.
> Poslednji MFC koji sam gledao (MSVC 1.5) nije to imao.
Smile :), verzija 2.1 ima ceo "rad" sa izuzecima.
pascal.450nbatocanin,
> Encapsulation, my dear Watson...
Da je tako jednostavno, imali bi Windowse na svakom sokoćalu počev od
Spektruma 16K do IBM 3090 ;>
Ajde, probe radi: neka se javi neko ko je uradio ozbiljan C program
na jednom OS i _direktno_ ga prebacio na drugi, a da program nije
ekvivalentan sa nalaženje maksimuma od 100 brojeva.
pascal.451ikordic,
RE:
=> 486DX4 + 16MB RAM košta negde oko 2500 - 3000 DEM... Ne mislim da je
=> to mnogo za mašinu od koje se živi.
Van teme, al' košta mnogo manje :)
pascal.452icile,
Da li neko zna na koji nacin mogu da uskladim brzinu izvrsavanja nekog
programa, nezavisno od masine na kojoj se izvrsava? Trebalo bi da on
moze da se pokrene na masini 286-586, sa Herkules odn. EGA, VGA
kartama - sve kombinacije moguce.
Da li je neko to vec radio, ili bar zna princip po kom bi to moglo da
se uradi?
pascal.453iznogud,
:: Ajde, probe radi: neka se javi neko ko je uradio ozbiljan C program
:: na jednom OS i _direktno_ ga prebacio na drugi, a da program nije
:: ekvivalentan sa nalaženje maksimuma od 100 brojeva.
Pod portabilnošću ja obično podrazumevam nešto drugo... Vizuelni
jezici jesu lepa stvar (mnogo ih volim ;) ), ali ako radiš nešto
zaista važno, onda ćeš 'engine' toga uraditi odvojeno od interfejsa
(naravno, u granicama mogućnosti - jednostavno nije moguće sve uraditi
nezavisno od interfejsa). Portabilnost u tom slučaju znači ponovno
pisanje interfejsa, ali... Bar se taj interfejs piše na istom jeziku,
ako je C/C++ u pitanju, 'engine' ti ostaje isti, što nije slučaj kada
se cela stvar pisala na nekom nestandardnom jeziku.
Bilo koji objektni jezik je kao stvoren za ovakav način pisanja
programa.
pascal.454iznogud,
:: Van teme, al' košta mnogo manje :)
Naravno, al' dopustimo sebi, pošto smo profesionalci, suuper monitor,
suuper disk i suuper još dosta toga ;)
pascal.455pedjak,
> Da li neko zna na koji nacin mogu da uskladim brzinu izvrsavanja
> nekog programa, nezavisno od masine na kojoj se izvrsava? Trebalo bi
> da on
Rešenje postoji, potrebno je samo pri pravljenju potrebnih pauza
konsultovati sistemski časovnik. Ukoliko radiš pod DOS-om, postoji
mogućnost da se izbegne stalno pozivanje funkcije koja vraća tačno
vreme. Na adresi 0000:046Ch se nalazi stanje brojača (četiri
bajta), koji se uvećava pri svakom pozivaju tajmer interapta (08h).
Pri prelasku na novi dan dolazi do njegovog resetovaja.
S obzirom da se int 08h poziva 18.2 puta u sekundi, minimalno
vreme koje se može izmeriti na ovaj način je 1/18.2 s. Dalje
povećanje rezolucije se može ostvariti reprogramiranjem timer
kontrolera, terajući ga da poziva int 08h više puta, nego što je
uobičajeno (što ti ne bih savetovao, ukoliko stvarno ne znaš šta
radiš).
Ovaj princip, po kome se ostvaruje nezavisnost od takta procesora je
iskorišćen u ZBTet-u (jednako brzo/sporo se izvršava na svim mašinama :)
pedja
pascal.456jablan,
>> Encapsulation, my dear Watson...
> Da je tako jednostavno, imali bi Windowse na svakom sokoćalu
> počev od Spektruma 16K do IBM 3090 ;>
Da, da je 16K bilo 16M i da je radio na 66 MHz. Konkretno, mislio sam
na programe, ne na OS.
> Ajde, probe radi: neka se javi neko ko je uradio ozbiljan C
> program na jednom OS i _direktno_ ga prebacio na drugi, a da
> program nije ekvivalentan sa nalaženje maksimuma od 100
> brojeva.
Pod prenosivošću se ne podrazumeva to da ti jednostavno _preneseš_
program, iskompajliraš ga i radi (sem u konkretnom slučaju
maksimuma:), nego da izmeniš one stvari koje su karakteristične za
platformu (OS), a ovo ostalo ne diraš. Znači, u pravu si za korisnički
interfejs, ipak ne možeš od Win-a i Dos-a očekivati da ti progutaju
taj deo programa, ali ono jezgro, zapravo baš ono za šta program i
služi ostaje kako je bilo. Kod standardizovanih jezika tipa c, c++,
modula-2, ovo funkcioniše, pod uslovom da poštuješ principe modularnog
programiranja. Ali ako radiš u nekom VBasic-u, ili BPascal-u,
ograničen si ne samo na konkretan OS, već i na konkretan kompajler.
E, sad, u zavisnosti od toga da li praviš neki program kome je 90%
šminka i korisnički interfejs, a 10% ono šta ustvari radi, ili
obrnuto, imaš proporcionalno tome i da menjaš program pri prenosu na
drugu platformu i/ili drugi kompajler.
poz, jablan.
pascal.457nbatocanin,
> Ajde, probe radi: neka se javi neko ko je uradio
> ozbiljan C program na jednom OS i _direktno_ ga
> prebacio na drugi, a da program nije ekvivalentan sa
> nalaženje maksimuma od 100 brojeva.
>
> Pod portabilnošću ja obično podrazumevam nešto drugo...
> Vizuelni jezici jesu lepa stvar (mnogo ih volim ;) ), ali
> ako radiš nešto zaista važno, onda ćeš 'engine' toga
> uraditi odvojeno od interfejsa (naravno, u granicama
> mogućnosti - jednostavno nije moguće sve uraditi nezavisno
> od interfejsa).
... i tako se manje ili više približiti nekom od proizvoda koji
interfejs imaju "u sebi". Primera radi, Fox (bi trebalo) da radi
na svim platformama bez ikakvih izmena. Poenta nije u tome da na svim
OS isto radi IF naredba - to je najlakša stvar na svetu. Problem je
sa neophodnim OS-zavisnim funkcijama.
pascal.458mminovic,
Hi!
Zna li neko kako da ugasim kursor u tekstualnom režimu?
Unapred hvala,Miroslav.
pascal.459nlazic,
>> Zna li neko kako da ugasim kursor u tekstualnom režimu?
Ovo bi trebalo da obavi posao:
procedure HideCursor; assembler;
asm
MOV ax,$0100
MOV cx,$2607
INT $10
end;
procedure ShowCursor; assembler;
asm
MOV ax,$0100
MOV cx,$0506
INT $10
end;
pascal.460ognjen,
)-> Zna li neko kako da ugasim kursor u tekstualnom rezimu?
Probaj preko asm procedure sa pozivom int 10h.
pascal.461boko,
e kako da napravim program koji ce da radi u protected modu, u TP 7 ?
pascal.462nlazic,
>> e kako da napravim program koji ce da radi u protected
>> modu, u TP 7 ?
U TP 7 nikako. Trebaće ti BP7, tamo izabereš Target DOS Protected Mode,
lupiš F9 i to je.
pascal.463boko,
BO■>U TP 7 nikako. Trebace ti BP7, tamo izaberes Target DOS
:((
Jel ovo sigurno ?
pascal.464nlazic,
>> BO■>U TP 7 nikako. Trebace ti BP7, tamo izaberes Target DOS
>> Jel ovo sigurno ?
100%. Ali, ne vidim u čemu je problem. TP7 i BP7 se isporučuju u istom
paketu, tako da samo treba da pređeš sa turbo.exe na bp.exe. Postoji,
doduše i samostalan paket Turbo Pascal 7.0, pa ako imaš tu kombinaciju,
menjaj je.
pascal.465boko,
BO■>doduse i samostalan paket Turbo Pascal 7.0, pa ako imas tu
kombinaciju,
BO■>menjaj je.
:) ehhh...
pascal.466boko,
E vidi prog :
Uses Dsp,Crt;
var
a : integer;
samplef : file;
sample : array [0..64000] of Byte;
p : pointer;
begin
assign(samplef,'dork.wav');
reset(samplef,1);
BlockRead(samplef,sample,FileSize(samplef),a);
ResetDSP(2);
SpeakerOn;
Playback(@sample,FileSize(samplef),8000);
end.
radi kako treba iz onog Turbo.exe i iz Tpx.exe, ali kad ga
compiliram, kvrchi bez veze ?
u cemu je faZon ?
pascal.467mc.kuzma,
> Uses Dsp,Crt;
> var
> a : integer;
> samplef : file;
> sample : array [0..64000] of Byte;
> p : pointer;
>begin
> assign(samplef,'dork.wav');
> reset(samplef,1);
> BlockRead(samplef,sample,FileSize(samplef),a);
> ResetDSP(2);
> SpeakerOn;
> Playback(@sample,FileSize(samplef),8000);
>end.
Posalji unit dsp pa da vidim da li je mozda tu greska?
BTW. Na cemu ovo pustas?
pascal.468hercog,
Hitno, strahovito hitno mi je p koja na izlazu daje sve
kombinacijease.
Znači na ulazu imam N i K, a na izlazu dobijem
matricu koja po redovima sadrži kombinacije
Primer:
N = 4
K = 3
Matrica
1 2 3
1 2 4
1 3 4
2 3 4
Pri čemu ovo 1, 2, 3 i 4 koji se dobijaju na izlazu predstavljaju
redni broj elementa u početnom nizu elemenata iz koga se prave ko-
mbinacije.
Sale
pascal.469dvesic,
> Znači na ulazu imam N i K, a na izlazu dobijem
> matricu koja po redovima sadrži kombinacije
Prelistaj po prvim ( < 20, mislim) brojevima Računara, tamo je bio
vrlo simpatičan program za kombinacije, varijacije i sličnu boraniju :)
pascal.470boko,
BO■>BTW. Na cemu ovo pustas?
Pushtam na SB 2.0 compatible muzi...
Delimicno sam provalio u cemu je fazon, ali ne sasvim...
Shema je da ti kazesh Play Sample (kako vec beshe) on on to
sve sredi i pushta preko DMA...
e sam stavio da se program odmah posle toga zavrshi, tj
program se zavrshava pre samplea, i zbog toga je kvrcao
(valjda je dealocirao stack, pa se izgubila adresa ?), pa
sam onda stavio da ceka (delay) dok se sample ne zavrshi,
pa je to radilo, ali ne sve vreme, tj sample malo ide, pa
posle jedno 4-5 sec pocne da krchi bez veze...
nemam pojma, evo ti DSP.PAS pa ti vidi..
dsp.paspascal.471imangovski,
Kako da inicijalizujem neki od svga modova u pascalu?
Kada inicijalizujem,kako da nacrtam tacku?
pascal.472boko,
BO■>Kako da inicijalizujem neki od svga modova u pascalu?
BO■>Kada inicijalizujem,kako da nacrtam tacku?
Pa imash u dos\program (ili kako se vec zvashe :)
direktorijumu unite za svga..
(prebacivanje u 640x480 800x600 1024x768 i sve ostale modove ;), kao
i sve standardne graph.tpu procedure, samo prilagodjene za ove modove
drawpoly, line, bar, putpixel...)
pascal.473boko,
e sad sam pogledao...
nema :)
cek sa cu poshaljem neke, pa ti vidi :)
svga.zippascal.474dzakic,
os2\*.*
------------------
speedos2.zip 1221k ű Novi 32-bitni Paskal kompajler (BP7 komp., demo)
U direktorijumu je demo verzija, bez samostalnog asemblera, command
line kompajlera i on-line helpa. I pored toga, nije teško snaći se
jer su se autori potrudili da IDE i sama sintaksa budu jako slični ili
identični Borlandovom Turbo Paskalu.
Na prvi pogled, ceo paket deluje jako ozbiljno, kompletno i pouzdano.
Ima stvari koje, u poređenju sa BP, nisu implementirane prvenstveno iz
razloga što pod os/2 nemaju smisla a u nekim stvarima polako vuče na C,
kao što se iz citata vidi. Sve razlike su lepo dokumentovane, ali sam
primetio još neke nedostatke. O njima drugom prilikom. Autori
najavljuju dalji razvoj paketa i implementiranje stvari koje još nisu
završene.
Demo verzija pravi exe koji na žalost radi 24 sata a nakon toga vas
ljubazno zamoli da program kupite :). Evo šta piše u doc-u:
---
SpeedPascal/2 is a Borland Pascal 7.0 compatible compiler and an integrated
development environment (IDE) with a host of features designed to ease the
task of writing OS/2 Presentation Manager(TM) programs.
From the IDE, you can access the power of the SpeedPascal/2 tools:
A PM-based MDI editor
An integrated debugger
A 32-bit OS/2 compiler
An OS/2 Assembler
A Resource Editor and Compiler
An Inline Assembler
Context sensitive help
** SOME NEW THINGS OF SPEED-PASCAL/2
1) SPEED-PASCAL/2 has an additional data type called CSTRING. This is a
C-like string which has no length byte but additionaly a terminating
#0 character. You can easily assign CSTRINGs to STRINGs and STRINGs
to CSTRINGs, the Compiler will convert the types for you !
Also you can pass a STRING to a procedure that expects a CSTRING.
2) When calling OS/2 API functions you can pass a NIL parameter to a
function that expects a variable parameter or a CSTRING. Sometimes
there's a significant need to do this. The whole OS/2 API is based
upon the C language and expects C data types. To make life easier
SPEED-PASCAL/2 supports some of the C features including NULL
parameters for functions expecting variable parameters.
3) There's an additional keyword called MACRO. MACROS are directly inserted
into the code and can be much faster than calling a procedure or
function. This feature comes from the C language
4) String substitution with #DEFINE like in the c language. The syntax is
{$#DEFINE identifier=somewhat} where identifier must match the rules of
identifiers and cannot be a reserved word and somewhat is the string
which is the substitution of identifier in the text.
(see documentation)
5) One line comments initiated by // (like in the C language)
6) The global data segment is limited to 512K. This is since SPEED-PASCAL/2
doesn't distingish yet between initialized and uninitialized data. That
means ALL data is initialized and therefore written to the applications
EXE. It is strongly recommended to use dynamic heap memory when there's
a need for large memory pools.
pascal.475ognjen,
Hi!
Moze li neko da mi da jedan kratak primer kako da uz pomoc
turbovision-a, napravim neke proste menije, dodelim im
funkcijeske (ili alt) tastere i povezem ih sa odredjenim
procedurama.
Gladao sam one primere iz "Kompletan vodic", ali, em ne rade,
em nista ne shvatam.
pascal.476ognjen,
)-> Moze li neko da mi da jedan kratak primer kako da uz pomoc
)-> turbovision-a, napravim neke proste menije, dodelim im
)-> funkcijeske (ili alt) tastere i povezem ih sa odredjenim
)-> procedurama.
Svi ste mi lupili ignore ili niko ne zna da radi sa TVom? :)
pascal.477dvesic,
> Svi ste mi lupili ignore ili niko ne zna da radi sa TVom? :)
Tebe baš mrzi da pogledaš primere ? ;)
Ajde sad gledaj :
program Primer;
uses Objects, Drivers, Views, Menus, Dialogs, App; { potrebni unit-i }
const
cmFileOpen = 100; { Ovo su konstante koje ce povezati }
cmFileClose = 101; { menije i procedure }
{ Iz postojece TApplication klase kreiras tvoju klasu, koja ce se }
{ malo drugacije ponasati. Metode koje menjas su sigurno : }
{ HandleEvent - kontrola poruka po sistemu }
{ InitMenuBar - inicijalizacija i kreiranje menija }
{ InitStatusLine -inicijalizacija i kreiranje menija }
{ Naravno, ako ta aplikacija nesto radi :) dodas tvoje funkcije i }
{ procedure. }
type
TMyApp = object(TApplication)
procedure HandleEvent(var Event: TEvent); virtual;
procedure InitMenuBar; virtual;
procedure InitStatusLine; virtual;
procedure OtvoriFajl;
procedure ZatvoriFajl;
end;
{ TMyApp }
procedure TMyApp.HandleEvent(var Event: TEvent);
begin
TApplication.HandleEvent(Event); { Glavna petlja koja obradjuje }
if Event.What = evCommand then { poruke koje stizu }
begin { Generalno je to obican CASE }
case Event.Command of
cmFileOpen: OtvoriFajl;
cmFileClose: ZatvoriFajl;
else
Exit;
end;
ClearEvent(Event);
end;
end;
procedure TMyApp.InitMenuBar; { Funkcija za meni }
var R: TRect;
begin
GetExtent(R); { Velicina aktivnog prozora }
R.B.Y := R.A.Y + 1; { Pozicija meni linije }
MenuBar := New(PMenuBar, Init(R, NewMenu(
NewSubMenu('~F~ile', hcNoContext, NewMenu(
NewItem('~O~pen', 'F3', kbF3, cmFileOpen, hcNoContext,
NewItem('~C~lose','F4', kbF4, cmFileClose, hcNoContext,
NewLine(
NewItem('E~x~it', 'Alt-X', kbAltX, cmQuit, hcNoContext, nil)
)))),nil))))
end;
procedure TMyApp.InitStatusLine;
var R: TRect;
begin
GetExtent(R);
R.A.Y := R.B.Y - 1;
StatusLine := New(PStatusLine, Init(R,
NewStatusDef(0, $FFFF,
NewStatusKey('', kbF10, cmMenu,
NewStatusKey('~Alt-X~ Exit', kbAltX, cmQuit,
NewStatusKey('~F3~ Open', kbF3, cmFileOpen,
NewStatusKey('~F4~ Close', kbF4, cmFileClose,
nil)))),
nil)
));
end;
procedure TMyApp.OtvoriFajl;
var
R: TRect;
D: PDialog;
C: Word;
begin
{ Kreiraj dijalog }
R.Assign(10,10,60,17);
D := New(PDialog, Init(R,'Prozor sa porukom'));
{ Insertuj najobicniji tekst }
R.Assign(15, 5, 50, 6);
D^.Insert(New(PStaticText, Init(R, 'Primer teksta :)')));
{ Prikazi dijalog }
C := DeskTop^.ExecView(D);
end;
procedure TMyApp.ZatvoriFajl;
begin
end;
var
MyApp: TMyApp;
begin
MyApp.Init;
MyApp.Run;
MyApp.Done;
end.
pascal.478hercog,
Mozda ce nekome zatrebati
{Ovaj program predstavlja preradu programa iz Racunara 27 na pascal}
{Mozda ce nekome zatrebati za generisanje kombinacija bez ponavljanja}
{pocevsi od 1 klase do klase navedene pod K}
program Kominacije;
uses Crt;
var petlja,ponavljaj:boolean;
i,j,k,n:integer;
izlaz:array [1..100] of integer;
el:array [1..100] of char;
minimum:longint;
procedure proc;
var l:integer;
duzina:longint;
begin
for l:=1 to k do
write(el[izlaz[l]]);
end;
begin
petlja:=true;
n:=20; {broj elemenata}
k:=20; {klasa}
for i:=1 to n do {generisanje elemenata}
begin
el[i]:=chr(i+ord('A')-1);
end;
While petlja do
begin
proc;
i:=k;
ponavljaj:=false;
if i>=1 then ponavljaj:=true;
while ponavljaj do
begin
if izlaz[i]<>n-k+i then
begin
izlaz[i]:=izlaz[i]+1;
if i=k then
ponavljaj:=false
else
begin
for j:=i+1 to k do
izlaz[j]:=izlaz[j-1]+1;
ponavljaj:=false
end
end
else
begin
i:=i-1;
if i<1 then
begin
petlja:=false;
ponavljaj:=false;
end
end
end
end
end.
pascal.479ognjen,
Ocete da budete korisni? :)
Pravio sam jednu igricu koja ima jednostavne komande (levo,
desno, pucaj), a kontrolu tastature sam uradio preko READKEY i
KEYPRESSED. Problem je sto je tako kretanje presporo, a i nije
kontinuirano (posle prvog znaka sledi kratka pauza).
Onda sam se odlucio za logicnije resenje. Citanje preko
porta. U petlji se izmedju ostalog ponavlja key:=port[$60] a
onda analiza tastera, i Boolean promenjljive LEFTkey, RIGHTkey,
SHOOTkey dobijaju odgovarajuce vrdnosti.
Medjutim sad je problem bio prevelika brzina. I na najkraci
dodir tastera kursor (tj. gun) je tri puta skrolovao po ekranu.
Kontrala je nemoguca. Najjednostavnije resenje bilo je ubaciti
delay (50) posle svakog pomeranja, ali: postoji vise problema:
1. Ako se taster otpusti za tih 50 ms, program nece
registrovati promenu na portu, pa ce kurstor nastaviti kretanje
(pucanje) kao da drzimo dati taster.
2. Gubljenje rada u realnom vremenu za ˝50ms. Ovo drugo i
nije previse bitno.
Treba dakle napraviti neki delay koji ce biti nezavistan od
promena na portu (svaka promena ce se registrovati) i koji nece
koristiti pascalov delay, da ne bi kvario realno vreme. Da li
neko zna kako to?
pascal.480dzakic,
Napravi 'interrupt' proceduru koja čita port tastature i ispituje da
li je u pitanju neki od tastera koji tebe zanimaju. Dakle,
registruješ pritisak i puštanje svakog od tastera tako što setuješ
odnosno resetuješ odgovarajuće flagove 'leftpressed', 'rightpressed'
i 'firepressed'. Na kraju procedure treba signalizirati interapt
kontroleru da je interapt obrađen jednim port[$20]:=$20;
Onda 'instaliraj' svoj interapt sa
var oldintvect:pointer;
getinctvect(9,oldint9)
setintvect(9,@myint9)
Iz programa testiraj stanje promenljivih left/right/firepressed, a i
delay će nesmetano raditi (kasnije delay možeš korisno upotrebiti za
proračun putanje neprijatelja i sl.). Jedini je problem što
testiranjem promenljivih dobijaš _TRENUTNO_ stanje tastera, tako da
se može desiti da taster bude pritisnut i otpušten između tvoja dva
testiranja (za vreme delay) i tvoj program to neće registrovati. Ako
je delay dovoljno kratak, ovo ne bi trebalo da predstavlja problem.
Ne zaboravi da po izlasku iz programa vratiš originalni int vektor sa
setintvect(9,oldint9)
Ako bude problema, tu sam :)
Pozdrav, Zak
pascal.481dj.vlada,
Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu mailom...
pascal.482ognjen,
)-> se moze desiti da taster bude pritisnut i otpusten izmedu
)-> tvoja dva testiranja (za vreme delay) i tvoj program to nece
)-> registrovati.
Kako nece registrovati, ako sam preuzeo interapt? Nije valjda
da delay blokira izvrsavanje interapata?
pascal.483dzakic,
> Kako nece registrovati, ako sam preuzeo interapt? Nije valjda
> da delay blokira izvrsavanje interapata?
Mislio sam na sledeću situaciju:
1. Testirao si flegove, ništa nije pritisnuto.
2. Program je krenuo u delay(xx);
3. Igrač stiska recimo taster u levo.
4. Izvršava se interapt rutina, setuje se fleg stisnuto je levo.
5. Delay, ukoliko je dug, se i dalje izvršava.
6. Igrač otpušta taster.
7. Interapt rutina resetuje fleg stisnuto je levo.
8. Završava se delay.
9. Tvoj program testira fleg - ništa nije stisnuto, iako je taster
bio pritisnut pa otpušten za vreme delay-a.
Ovo se naravno da rešiti, ali objašnjenje nije postojalo u mojoj
poruci, u pitanju je bila samo ideja. Nadam se da si problem rešio
i da ćemo uskoro videti igricu :)
Pozdrav, Zak
pascal.484dj.vlada,
Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu mailom...
pascal.485zeljkoj,
> Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu
> mailom...
A što kad postoji ova tema? :)
Svi koji programiraju u TP je verovatno prate.
pascal.486dj.vlada,
HeHe>> Otvorena je grupa "TP", ko želi da uđe neka mi pošalje molbu
HeHe>> mailom...
HeHe> A što kad postoji ova tema? :)
HeHe> Svi koji programiraju u TP je verovatno prate.
Pa eto lepo... Ovde imaju i neka pravila...u grupi nema...
pascal.487destructor,
Kada iz Pascal-a zelim da izvrsim neki program sa strane, to
nije problem koristeci 'Exec',medjutim kako da "nateram" program
koji ja pisem da unosi parametre koje taj program trazi,tj. da
ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj
program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...."
pascal.488janko,
> Kada iz Pascal-a zelim da izvrsim neki program sa strane, to
> nije problem koristeci 'Exec',medjutim kako da "nateram" program
> koji ja pisem da unosi parametre koje taj program trazi,tj. da
> ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj
> program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...."
Da li se varam ili se ponavlja priča koja se već jednom dogadila u
ovoj konferenciji. Javio se dečko koji je hteo da napravi maligni
virus, očigledno bez puno znanja, a kada su ga pitali da li to stvarno
hoće da uradi rekao je prvo "ma samo pitam teorijski" ali se brzo
zaključilo da je upravo to hteo?
Kakav program pišeš pa ti treba y na del *.* ?
pascal.489dvesic,
> koji ja pisem da unosi parametre koje taj program trazi,tj. da
> ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj
> program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...."
Možda redirekcija ? (nisam probao, samo ideja):
Exec("ECHO Y|DEL *.*")
Ovo na komandnoj liniji radi. Probaj pa javi.
pascal.491destructor,
>..ali se ispostavilo da je uravo to hteo..
Virusima se ne bavim..(dok jos ponesto ne naucim ;))), a ako
si reply napiso zbog mod USERNAME-a nemoj se uzbudjivati..to je
iz drugog razloga.
Sto se tice programa radio sam sledece:
Program treba da obrise navedeni direktorijum,kao i sve
njegove poddirektorijume.
To sam uspeo da uradim tako sto sam
ulazio u sve direktorijume,trazio file po file, a zatim ga
brisao.Medjutim ova druga ideja mi izgleda lepse, ali ne mogu da
je realizujem.
Znaci:Meni ovo treba prakticno, a NE teorijski!!
CU
pascal.492janko,
> Sto se tice programa radio sam sledece:
> Program treba da obrise navedeni direktorijum,kao i sve
> njegove poddirektorijume.
> To sam uspeo da uradim tako sto sam
> ulazio u sve direktorijume,trazio file po file, a zatim ga
> brisao.Medjutim ova druga ideja mi izgleda lepse, ali ne mogu da
> je realizujem.
Nisi napisao šta radi ceo tvoj program. I dalje me nisi uverio da ti
nije cilj da nekome upropastiš disk?
Ako me uveriš, vrlo ću ti rado pomoći.
Vidim da su ti već dali jedan recept... inače, za brisanje
direktorijuma sa podrirektorijumima u DOS-u postoji naredba
DELTREE.
pascal.493rdejan,
>> ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj
>> program sam odgovori sa 'Y' na pitanje "Da li ste sigurni...."
Šta fali tupavoj i sporoj kombinaciji FindFirst i Erase (pa
čak i ne tako sporoj, pogotovo u odnosu na swap, koji ti
želiš da uradiš)? Otkucaj FindFirst, stisni Ctrl-F1 (ako je
Borlandov Pascal, a verujem da jeste) i sve će ti se kasti...
Pozdrav, Dejan
pascal.494ognjen,
)-> ih ne ceka sa tastature.Npr:Ako Exec-ujem 'Del *.*' da moj
)-> program sam odgovori sa 'Y' na pitanje "Da li ste
)-> sigurni...."
Jedno od neelegantnih resenja je da napravis datoteku, na
primer yes.dat:
-----
y [CR][LF]
-----
I da kad execujes, uradis redirekciju iz fajla.
del *.* <yes.dat
Postoji, naravno, mnogo elegantnije resenje za brisanje svih
fajlova, sa FindFirst i FindNext. O:)
pascal.495destructor,
>..i dalje nisi uspeo da me ubedis ..
E to vec nije moja greska, a sto se tice ubedjivanja nemam
nameru da ti se pravdam.Inace DELTREE znam da postoji,ali ga ja
nemam, jer koristim 5.0.
pascal.496destructor,
Pozdrav momcima koji su mi dali predloge za 'del *.*'.
Sada imam jedno drugo pitanje.
Recimo ako obradjujem maticu na neki nacin,i ta procedura
kojom to radim je rekurzivna,da li je moguce nekako da sredim da
se velicina matrice menja,tj. ako mi na sledecem stepenu obrade
treba manja matrica,da ne rezervisem celu matricu kao u
prethodnom pa da koristim samo odredjeni deo , vec da rezervisem
matricu tacno one velicine koja mi u tom trenutku treba.
Npr:
...
...
matr:Array[1..p,1..p] Of ...
...
pascal nece da prihvati ukoliko p nije definisano kao
konstanta.Pitanje:Moze li se ovo zaobici(tako da p moza da bude
i promenjiva)?
p.s.Na dam se da i ovo neki nece proglasiti destruktivnim.;))
Pozdrav!
pascal.497mastermind,
oko simuliranja pritisaka...
postoji interrupt koji to radi ( int 16h , f-ju ne znam napamet )
a možeš i direktno da gađaš kbd buffer. oko toga prelistaj staru konfu pcprog,
teme algoritmi i asm.
za brisanje ti je mnogo bolji findfirst/findnext sistem.
potraži u helpu to, i biće ti mnoogo jasnije.
MasterMind
pascal.499janko,
> Recimo ako obradjujem maticu na neki nacin,i ta procedura
> kojom to radim je rekurzivna, da li je moguce nekako da sredim da
> se velicina matrice menja,tj. ako mi na sledecem stepenu obrade
> treba manja matrica,da ne rezervisem celu matricu kao u
> prethodnom pa da koristim samo odredjeni deo , vec da rezervisem
> matricu tacno one velicine koja mi u tom trenutku treba.
> Npr:
> ...
> ...
> matr:Array[1..p,1..p] Of ...
> ...
> pascal nece da prihvati ukoliko p nije definisano kao
> konstanta.Pitanje:Moze li se ovo zaobici(tako da p moza da bude
> i promenjiva)?
Koliko se ja razumem u Paskal, ne može, dimenzije niza su konstante,
jer to je pricnip rada kompajlera.
Kakav je to algoritam? Obično se problemi sa matricama rešavaju bez
pravljenja novih matrica u svakom pozivu, jer je većina
problema sa matricama prvi put rešavana u Fortranu, koji nema ni
rekurzije. ;)
Ako ti je problem ozbiljan, vredi se pomučiti i ili primenjivati neke
nestandardne metode, ili da promeniš jezik, platformu ili kompajler.
Recimo:
Delfi 2 može da radi sa svom memorijom koja je Windowsu na
raspolaganju, što je uvek više od 640 K...
C++ omogućava dinamičku alokaciju proizvoljno velikog niza (pa zato
i matrice).
itd...
>p.s.Nadam se da i ovo neki nece proglasiti destruktivnim.;))
>Pozdrav!
Neće! Go ahead! :)
pascal.500dvesic,
> pascal nece da prihvati ukoliko p nije definisano kao
> konstanta.Pitanje:Moze li se ovo zaobici(tako da p moza da bude
> i promenjiva)?
Ne, ne može. Možeš da primeniš rešenje sa pokazivačima.
Alociraš onoliko memorije koliko ti stvarno treba prilikom
svakog rekurzivnog ulaska u proceduru; ovo dosta komplikuje
baratanje sa elemntima matrice, ali se da izvesti.
pascal.501destructor,
>Kakav ti je to algoritam?Vecina problema sa matricama...
Pa pokusavao sam da napisem program koji resava sisteme
linearnih jednacina Gausovim algoritmom(dosta je neefikasan,
ali za sade nemam bolji), za proizvoljan broj jednacina,pa sam
matricu koristio za skladistenje koeficijenata.
Medjutim pocetnu matricu ne smem da menjam, jer na osnovu
rezultata prethodne matrice izracunavam sledecu promenjivu.
Ipak tnx, da bar znam da se ne mucim oko onoga.
p.s.Mozda ovo upotrebim da nekom sredim disk!;))
pascal.502dvesic,
> linearnih jednacina Gausovim algoritmom(dosta je neefikasan,
> Medjutim pocetnu matricu ne smem da menjam, jer na osnovu
> rezultata prethodne matrice izracunavam sledecu promenjivu.
Što praktično znači da ti ovde rekurzija i ne treba, već samo
dimenzionisanje dve matrice; jedna čuva koeficijente prethodnog
koraka a druga novonastajuće :)
pascal.503ognjen,
HELP!
Jedna ortakinja iz odeljenja pise seminarski, igra kartama -
Makao (jos se zove i Mau-Mau), ali smo danas naisli na problem
koji nam se cini neresiv.
Naime, u datoteci SEMINARI nalazi se spil karata, datoteka je
file of slog2, gde je slog2=record u kome se cuvaju podaci o
svakoj karti.
Prilikom raznih operacija sa spilom karata (secenje, mesanje)
radili smo razne akrobacije sa SEEK i TRUNCATE, i sve izgleda
ok, medjuim, kad se prodje secenje, treba da se izbaci zadnja
karta sa spila sa:
seek (f, filesize(f)-1);
truncate(f);
Kompajliranje vraca sve okay, ali kad se startuje, na
truncate se zaglavi, tako da mu samo reset (soft) moze pomoci.
Problem *nije* u truncate, bilo koja procedura koja radi sa
fajlom F (probano i CLOSE) zaglavljuje racunar.
Posto se radi o veoma hitnoj stvari, molim vas da pogledate
ceo program (ako nemate ideju iz ove poruke, sta bi mogla da
bude greska), jer smo ja i ona proveli oko 3 sata trazeci
gresku, i nismo mogli da ukapiramo u cemu je stvar.
10x.
problem.zippascal.504galimpic,
> Posto se radi o veoma hitnoj stvari, molim vas da pogledate
> ceo program (ako nemate ideju iz ove poruke, sta bi mogla da
> bude greska), jer smo ja i ona proveli oko 3 sata trazeci
> gresku, i nismo mogli da ukapiramo u cemu je stvar.
Ukratko: zaboravio si da inicijalizuješ pointer tal.
Naširoko:
(za druge koje zanima, verujem da ćeš se ti lupiti u čelo i sa onim gore)
Problem u programu nije rad sa fajlovima, već sa pointerima. Stavio sam
brakpoint malo ranije i video da pri dodeli tal^:=... vrednosti pointera
tal je NIL. Nisam gledao, možda to radiš i sa još nekim pointerima.
Kada deklarišeš pointer varijablu, kreira se samo ona u memoriji (tj. mesto
za čuvanje neke adrese), a NE i ono na šta ona pokazuje. Kompajler se neće
buniti kada pokušaš da dodeliš vrednost onome na šta pointer pokazuje, ali
to je gađanje po memoriji sa nepredvidljivim rezultatima, jer pointer nije
inicijalizovan. Moraš da komandom new alociraš mesto za ono na šta pointer
pokazuje, uz automatsko dodeljivanje te adrese pointeru:
type x=integer;
var p:^x;
begin
new(p);
p^:=10;
dispose(p);
end.
Ako ne želiš da pointer pokazuje na posebnu promenljivu, već na neku od
postojećih, prebaci ADRESU već alocirane i postojeće promenljive pointeru,
pa će opet sve lepo da radi za tu svrhu:
p:=@x
Tvoj program nije radio zbog gađanja po memoriji upotrebom neinicijalizovanih
pointera, a trenutak zaglavljivanja onda može biti bilo kad.
pascal.505ognjen,
)-> Tvoj program nije radio zbog gadanja po memoriji upotrebom
)-> neinicijalizovanih pointera, a trenutak zaglavljivanja onda
)-> moze biti bilo kad.
Znaci cela stvar je u tome da je na nekom mestu zaboravljeno
NEW(tal)? Uh, ko bi se toga setio. :)
Jos samo jedno pitanje: koju vrednost ima pointer kada je
postavljen na NIL, tj. da li ce upis na taj pointer rezultirati
prijavom kompajlera da nije u redu, run-time greske, ili ce opet
sve biti u redu, samo ce se zaglaviti u nekom levom trenutku?
pascal.506galimpic,
> Jos samo jedno pitanje: koju vrednost ima pointer kada je
> postavljen na NIL, tj. da li ce upis na taj pointer rezultirati
> prijavom kompajlera da nije u redu, run-time greske, ili ce opet
> sve biti u redu, samo ce se zaglaviti u nekom levom trenutku?
Kada je postavljen na NIL trebalo bi da ima vrednost 0, bar u C-u. Za Pascal
nisam siguran, ali kao sto vidis ne prijavljuje gresku nego brlja. Mozda ima
neki svic kojim se ovakve greske proveravaju i prijavljuju pri izvrsavanju?
Neka se javi neko ko zna.
pascal.507npmiki,
Potreban mi je izvorni kod za rad sa modemom. U vezi toga sledi
pitanje : dali je moguce napraviti program koji ce kada se
startuje dati mogucnost onome koji pozove modemom drugi
kompjuter , da pristupa svim fajlovima na disku ?
Vrlo potrebno . Please help !!
pascal.508nenad,
> pitanje : dali je moguce napraviti program koji ce kada se
> startuje dati mogucnost onome koji pozove modemom drugi
> kompjuter , da pristupa svim fajlovima na disku ?
Preporučujem ti da pogledaš program DoorAway (\dos\bbs\drwy222.zip),
on omogućava da svaki program radi preko modema i možda je
zadovoljavajuće rešenje za tvoj problem.
Za početak, treba da ga konfigurišeš da poziva command.com, a u
svom komunikacionom programu (na računaru sa koga zoveš) da
aktiviraš tzv. doorway mod kako se pritisci na tastere ne bi
prevodili po aktivoj terminal emulaciji već "direktno" slali
remote računaru.
pascal.509ivko,
Pod jedan: takav program nije tesko napraviti, trebas
samo da znas da radis sa komunikacionim portovima
u programskom jeziku u kom radis takav program, treba
da procitas neki USER'S MANUAL od modema da vidis
koje su standardne komande modema i nacin njegovog
rada i trece da nabavis izvorni kod nekog transfer protokola
(video sam negde u datotekama na Sezam-u izvorni kod
za ZMODEM). Inace program ne bi trebalo da bude tehnicki
slozen (osim ako neces da pravis srpski Telemate).
Pod dva: zavisi koji nivo pristupa tvom disku
zelis da ima protivnicki modem. Da moze da lista ceo
disk, da kopira, premesta po njemu, da kopira fajlove
na tvoj disk, sa tvog diska na njegov (uopste ono sto
mozes postici i sa COMMAND.COM programom tj.da napravis
modifikovani COMMAND.COM) ne bi trebalo
da bude problema ali ako hoces da sa tvog modema startujes
program na daljinskom kompjuteru i da se on izvrsava na njemu
a da se ono sto se izvrsava vidi na tvom ekranu, malo teze
(citaj nemoguce) iz 5*10^3 razloga a najveci je mala brzina
prenosa podataka modemom. A i pored toga, postoji dosta drugih
ogranicenja rezultovanih organizacijom DOS-a i Windows-a.
Ali ako budes radio komunikacioni program mogu ti pomoci.
Kontaktiraj me na e-mail.
Pozdrav!
pascal.510dpredovic,
> pitanje : dali je moguce napraviti program koji ce kada se
> startuje dati mogucnost onome koji pozove modemom drugi
> kompjuter , da pristupa svim fajlovima na disku ?
Sasvim moguće, ali je pitanje zašto bi to radio kad već postoji.
pascal.511npmiki,
Posto vidim da ste voljni da pomognete , sledi detaljan opis.
Program koji smo napravili ja i nekolicina drugara , instalirali
smo u drugom gradu. Radjen je u fox-u i radi kao source kod (tj.
nije kompajliran zato jer se cesto desavaju greske). Da nebi
svaki put putovali da ga popravljamo zelim da napravim program
pomocu kojeg cu moci da zovnem , uzmem deo programa , popravim i
vratim. Naravno da bi to mogao da uradim , potreban mi je
pristup hard disku , kao u dos-u. Znam da imaju gotovi programi
, ali ja hocu da napravim svoj , pre svega zbog zastite , pa
posle zbog n razloga. Sto se tice samog programiranja u pascal-u
, to mi nije problem , samo su mi potrebna upustva za rad sa
modemom u pascalu , jer isti nikad nisam programirao.
Unapred zahvalan.
pascal.512ivko,
Kada budes bio spreman da primas savete kontaktiraj me na E-MAIL
pascal.513npmiki,
Skinuo sam program DoorAway i kako izgleda necu morati da pravim
novi .
:)))
tenks !
pascal.514sale.car,
!?! tenks !
Nema frke, velkom si :)))
Cya
pascal.515npmiki,
Sorry , Sorry , Sorry :((
HVALA , HVALA , HVALA :)))
pascal.516mango,
Da li je moguce u program ubaciti neki deo pisan u nekom drugom pj
(npr. c ili c++), kao sto je moguce ubaciti deo iz asemblera komandom
asm? Sto pre mi neko odgovori, to sam zahvalniji, jer je zaista
hitno:)
pascal.517mmarkovic,
> Da li je moguce u program ubaciti neki deo pisan u nekom drugom
> pj (npr. c ili c++), kao sto je moguce ubaciti deo iz asemblera
> komandom asm? Sto pre mi neko odgovori, to sam zahvalniji, jer
> je zaista hitno:)
Sve zavisi od jezika, ali obično je moguće linkovati .obj fajlove
iz raznih jezika.
Prenos parametara je osetljiv...
Clepper+C+ASM radi fino...
pascal.518mmarkovic,
Sad tek videh da je tema pascal :)
Svojevremeno sam koristio TP i tu je stvarno bio problem.
Nije bio podržan obj format. E, da li je bio neki trik, ne bih znao...
Drugi pascal-i ovo verovatno podržavaju glatko.
pascal.519obren,
> Da li je moguce u program ubaciti neki deo pisan u nekom drugom pj
> (npr. c ili c++), kao sto je moguce ubaciti deo iz asemblera
> komandom asm?
Ako misliš na šarani sors u više jezika - teško :) Ako misliš na
linkovanje .OBJ fajlova prevedenih na C-u, može. Funkcije treba da
budu kompajlirane po "pascal" konvenciji. Trebalo bi da se uz Turbo
Pascal dobijaju neki programi poput CPASDEMO.PAS i CPASDEMO.C koji
ilustruju ovo povezivanje - pogledaj po disku.
pascal.520strider,
:>Kakav program pises pa ti treba y na del *.* ?
Pa veoma DeSTRuKToVaN reko bih:)))
pascal.521bceklic,
> :>Kakav program pises pa ti treba y na del *.* ?
>
> Pa veoma DeSTRuKToVaN reko bih:)))
Imam program koji onemogucava upotrebu zvezdica pri radu sa
fajlovima (izmedju ostalog) ali bojim sa da to nije najbolje resenje
za naseg prijatelja... :)
poz, Blagoje.
pascal.522mmitrovic,
::::: Pa pokusavao sam da napisem program koji resava sisteme
::::: linearnih jednacina Gausovim algoritmom(dosta je neefikasan,
::::: ali za sade nemam bolji), za proizvoljan broj jednacina,pa sam
::::: matricu koristio za skladistenje koeficijenata.
Za to ti je mnogo bolja Kronecker-Capelieva teorema o rangu matrice
sistema i proširene matrice sistema. Znači ako imaš sistem od npr 3
linearne jednačine:
ax+by+cz=d
ex+fy+gz=h
ix+jy+kz=l x,y,z promenljive, a..l je iz R.
Matrica sistema je a proširena matrica sistema je
| a b c | | a b c d |
A = | e f g | B = | e f g h |
| i j k | | i j k l |
Kompjuterski se rešava slično Gausu (eliminišu se transformacijama
(ne menjaju rang) prvo u prvoj koloni sve vrednosti sem prve, pa
onda u drugoj sve vrednosti sem prve i druge, korišćenjem vrednosti
iz druge vrste, itd).
U gornjem primeru npr. dodaš prvu vrstu drugoj prethodno je pomnoživši sa
(-e/a) (elementarna transformacija vrste) i dodaš prvu vrstu trećoj
prethodno je pomnoživši sa (-i/a) i onda dobiješ matricu oblika
| a b c d |
| |
| eb ec ed |
| 0 f- -- g- -- h- -- |
| a a a |
| |
| ib ic id |
| 0 j- -- k- -- l- -- |
| a a a |
onda više ne diraš prvu vrstu nego uz pomoć druge eliminišeš drugi element
zadnje vrste (nadam se da si shvatio, mrzi me da pišem puno razlomaka).
I za najgore oblike brojeva a..l kompjuter neće imati problema sa
računanjem.
Na kraju dobiješ Gausovu trougaonu matricu sistema + dodatnu kolonu sa
rešenjima. Rang ti je tada broj elemenata na dijagonali glavne matrice
koji su različiti od 0.
Npr dobiješ matricu oblika:
| a d g i | a,b,c su neki brojevi različiti od 0
| 0 b e h | d..i su bilo koji brojevi (može i 0).
| 0 0 c f | (ova slova ne odgovaraju istim vrednostima iz matrice B)
za ovu matricu kažemo da je rang A = rang B = n = 3 i za odgovarajući
sistem kažemo da je SAGLASAN i ODREĐEN. (x,y,z) dobijaš iz gornje matrice
pošto iz zadnje vrste imaš da je cz=f tj z=f/c, onda to vratiš u prethodnu
itd. dobiješ jedno rešenje. NAPOMENA: ne smeš vršiti elementarne
transformacije nad kolonama pošto ćeš poremetiti poredak x,y,z rešenja.
Sad ide najlepši deo ovog algoritma.
Da bi rang A bio manji od n (veličine matrice sistema) jedna od vrsta u
prvom delu matrice mora biti 0. tada je rang A=n-1. Ukoliko je u istom redu
i proširena vrednost 0 tada je i rang B = n-1. Potreban i dovoljan uslov da
sistem bude saglasan je da je RANG A = RANG B.
Npr. proširene matrice nekih saglasnih sistema sa rangom manjim od n.
| a b c d | | a b c d | | a b c d |
| 0 e f g | rang=2 | 0 0 0 0 | rang = 1 | 0 0 0 0 | rang = 2
| 0 0 0 0 | | 0 0 0 0 | | 0 e f g |
I i II jedn. su propor.
Primeri nesaglasnih matrica sistema (rang A <> rang B)
| a b c d | h<>0 | a b c d | e,f<>0
| 0 e f g | rang A = 2 | 0 0 0 e | rang A = 1
| 0 0 0 h | rang B = 3 | 0 0 0 f | rang B = 3
Tako možeš da detektuješ nesaglasne sisteme, što je sa gausom teži
postupak. To što je u prethodnim saglasnim matricama rang manji od n znači
da je sistem NEODREĐEN i da ima beskonačno mnogo rešenja. Npr iz prve
saglasne matrice dobiješ:
g-fz
ey+fz=g tj. ey=g-fz tj. y = ------, to i z zameniš u prvu jed. ax+by+cz=d
e
i dobiješ rešenje oblika (kc, lc, c) gde je c proizvoljan broj tj. rešenje
gde su x i y linearne funkcije od z.
Iako ove formule izgledaju malo teže (što i jesu) algoritam je veoma prost.
Rang matrice sistema dobijaš tako što ga postaviš na n i smanjuješ za
svaku vrstu u kojoj su svi elemnti jednaki 0. Pazi samo da u ovu proveru ne
uključiš i proširenu vrednost (zadnji element vrste) pošto ona ne ulazi
u rang matrice A.
Rang proširene matrice B dobijaš na isti način ali ispituješ punu dužinu
matrice. Naravno ovde se u oba slučaja radi o svedenoj trougaonoj matrici,
čime još više pojednostavljuješ algoritam. To svođenje je neophodno kako bi
se prisustvo proporcionalnih jednačina manifestovalo kao smanjenje ranga.
Onda uporediš rang A i rang B i odrediš saglasnost i određenost sistema i
nađeš rešenja jednostavnom primenom 4 računske operacije. Nema nikakvog
skraćivanja matrica, rekurzije i ostalih čudesa.
Elementarne transformacije matrice su ti:
1) Množenje vrste (kolone) konstantom koja nije nula.
2) Dodavanje jedne vrste drugoj uz prethodno množenje prve nekom konstantom
različitom od nula. Naravno, vrstu koju si dodavao posle ne pišeš
pomnoženu tim brojem (ali možeš ako ti tako odgovara, zbog prav. 1)
3) Zamena mesta dveju vrsta (kolona)
pravila 1 i 3 se koriste za papirno izračunavanje i ovde ti nisu potrebna.
Treba ti samo implementacija pravila 2 koja je elementarni programerski
zadatak. To je ujedno i najteži deo ovog algoritma (rekao sam da je prost
a moćan ;) ). Opet da napomenem da ne primenjuješ elementarne
transformacije nad kolonama. Dobićeš ispravan rang, ali tako dobijenu
matricu nećeš moći da iskoristiš da dobiješ konačno rešenje.
Još jedna gotivna stvar sa ovim algoritmom je što uz mala proširenja
može da rešava parametarske sisteme jednačina. u zavisnosti od parametra
zavisiće uglavnom elementi na dijagonali svedene trougaone matrice i
onda gledaš za koje vrednosti parametra će neka od njih biti 0 (onda
automatski pada rang matrice sistema) i za te vrednosti odrediš saglasnost
i nađeš ono "beskonačno rešenje", ako postoji. Za sve vrednosti parametra
za koje su elementi na dijagonali <>0 sistem je saglasan/određen i ima
jedno rešenje (vidi gore).
Nadam se da sam bio od pomoći (koji sam ja čaršav napisao, vidi se da dugo
nisam kucao :) ).
pascal.523vitez.koja,
#=> Za to ti je mnogo bolja Kronecker-Capelieva teorema o rangu
#=> matrice sistema i proširene matrice sistema. Znači ako imaš sistem
#=> od npr 3 linearne jednačine:
U čemu je zapravo razlika Gausovog postupka od ove KK teoreme?
Ovde pišem u obliku matrice i ne vučem promenljive i to je kao novi
postupak? Smešno... Oduvek su me nervirali ti "novi" metodi rešavanja
koji su isti kao i oni stari, samo imaju diskusiju koju inače znaš...
Najgore je što ih izmišljaju ljudi sa teško zapamtivim (prez)imeninima
i onda kad ti dodje na ispitu/kontrolnom Štolc-Majersova teorema i
njene posledice, moš se slikaš... :)
Naravno, ne shvati ovo ništa lično, pošto i nema veze sa tobom...
sk
pascal.524embe,
>:::: ali za sade nemam bolji), za proizvoljan broj jednacina,pa sam
>::::: matricu koristio za skladistenje koeficijenata.
>> Za to ti je mnogo bolja Kronecker-Capelieva teorema o rangu matrice
>> sistema i prosirene matrice sistema. Znaci ako imas sistem od npr 3
>> linearne jednacine:
Nema bolje (direktne) metode od gausove metode eliminacije. Postoji
dokaz da je za gausovu metodu potrebno ubedljivo najmanje racunskih
operacija, u odnosu na ostale metode direktnog resavanja sistema
linearnih jednacina. Gausovom metodom se najprostije dolazi do
Č determinante matrice, a samim tim i do ranga matrice. Jedina
stvar koja se moze menjati je nacin skladistenja matrice, pa otuda
razlicite modifikacije - ako su u pitanju trakaste, simetricne itd.
Mana Gausove metode, kao i svih direktnih metoda je u nagomilavanju
greske, pa se kao tacniji smatraju (a i jesu) iterativne metode za
resavanje. Ali opet, oni imaju manu da ne mogu da resavaju sve sisteme
jednacina, vec samo one za koje resenja konvergiraju.
Dakle, Gausova metoda je najbolja, samo je umece iskoristiti sve
pogodnosti sistema jednacina koji se resava (trakasti sistemi,
simetricni sistemi, trougaoni sistemi itd). Ali za apsolutno
proizvoljne sisteme jednacina jedini nacin koji resava je Gausova
metoda eliminacije.
Pozdrav, Milan.
pascal.525avas,
Zainteresovao sam se za programiranje (resio sam da
programiram..). Davali su mi raznorazne savete raznorazni ljudi ali
mi se sledeci ucinio najlogicnijim i najnormalnijim - kaze covek:
"Prvo ti bato nauci pascal da bi najbolje ukapirao smisao
programiranja, pa tek onda predji na C i C++ (sto je bila moja
zamisao)". Sta mislite o ovome? Sta sve da nabavim i procitam za
pocetak ? Svi saveti pascal guru-a sudobrodosli. Kako da pocnem?
pascal.526ognjen,
)-> Svi saveti pascal guru-a sudobrodosli. Kako da pocnem?
Nabavi dodatak iz davnih racunara "Sa BASICa na PASCAL" od
Dejana Ristanovica, on ce ti za pocetak dosta pomoci. Mozda
neces bas sve da shvatis iz njega (ja tada nisam :) ali je
dovoljno za pocetak. Sta ti ne bude jasno, pitas ovde, jasno.
pascal.527avas,
Hvala!
pascal.528boko,
BK■> Nabavi dodatak iz davnih racunara "Sa BASICa na PASCAL" od
imaš ga i ovde negde po direktorijumima...
pascal.529sale.car,
!?! Nabavi dodatak iz davnih racunara "Sa BASICa na PASCAL" od
!?! Dejana Ristanovica, on ce ti za pocetak dosta pomoci. Mozda
Imas ga ovde u dir-u Pascal mislim da je prvi text...
Cya
pascal.530boko,
e Treba mi da zamenim vrednosti dvema promenljivim...
jel moze kraće od:
temp:=prva;
prva:=druga;
druga:=temp;
...
?
pascal.531hercog,
@> temp:=prva;
@> prva:=druga;
@> druga:=temp;
Ako su promenljive brojne, ondak može i
prva:=prva+druga;
druga:=prva-druga;
prva:=prva-druga;
Sale
p.s. nije kraće :)
pascal.532obren,
> Treba mi da zamenim vrednosti dvema promenljivim. Jel može kraće od:
> temp:=prva;
> prva:=druga;
> druga:=temp;
To je OK. Svi tako rade... :)
Može i ovako (za brojevne promenljive) ako želiš da se praviš pametan ;)
prva := prva + druga;
druga:= prva - druga;
prva := prva - druga;
pascal.533spantic,
> temp:=prva;
> prva:=druga;
> druga:=temp;
Obično se postavlja pitanje da li mogu da se zamene
dve promenljive a da se ne koristi pomoćna promenljiva.
Odgovor je da, ali ako ne koristiš integer gubiš na
tačnosti i rešenje nije regularno.
pascal.534galimpic,
> temp:=prva;
> prva:=druga;
> druga:=temp;
Covek valjda pita da li u Pascalu ima nesto tipa SWAP (A,B).
pascal.535embe,
> temp:=prva;
> prva:=druga;
> druga:=temp;
>>>Covek valjda pita da li u Pascalu ima nesto tipa SWAP (A,B).
Pa sto sam ne napravi SWAP ????
pascal.536boko,
BO■>Odgovor je da, ali ako ne koristiš integer gubiš na
BO■>tačnosti i rešenje nije regularno.
Koristim integer..
pascal.537boko,
BO■>Covek valjda pita da li u Pascalu ima nesto tipa SWAP (A,B).
To pitam :)
pascal.538boko,
BO■>Pa sto sam ne napravi SWAP ????
kako ?
pascal.539spantic,
> prva:=prva+druga;
> druga:=prva-druga;
> prva:=prva-druga;
I totalno je netačno! Kad smo već kod toga. Radi samo za
Integere.
pascal.540hercog,
@> I totalno je netačno! Kad smo već kod toga. Radi samo za
Ja sam napomenuo da radi samo za brojeve...
Sale
pascal.541spantic,
> Ja sam napomenuo da radi samo za brojeve...
Opet netačno. Jer ne radi za sve brojeve, već samo za integer.
pascal.542micotakis,
Ajde nek mi neko objasni sledeću stvar.
Imam neko programče i kao exe i kao sorce. Kada sam u čistom dos-u
sve lepo radi, ali kada sam probao da ga startujem iz Deskview-a,
program nije hteo da radi. Nisam imao hrabrosti da ga startujem pod
Win(3.1), da se ne bi desilo nešto čudno, jer mi se čini da mu sme-
ta bilo kakav multitasking. U čemu je problem?
1. u *.obj fajlu za koji nemam sors
2. u kompajliranju odnosno da ne treba kompajlirati sa compile
3. u opcijama za kompajliranje znači one perverzije {$L} i sl.
4. dolazi do preklapanja u memoriji
5. nešto peto
Inače program lepo počne da radi i kad izaberem opcije koje moram da
dam na početku i kad treba da počne da radi ono za šta je napravljen
on blokira mašinu i ne pomaže ni Ctrl Alt Delete, već moram da pri-
tisnem reset.
Ajde ljudi pomognite čoveku koji jedino zna spectrumov basic, ali si-
lom prilika mora da nauči pascal da bi položio ispit. Inače nije ovo
moj pogram, ali me zanima u čemu je fora da bi to izbegao kod mene u
programu.
EMPIRE
pascal.543dzakic,
Nisam baš shvatio zašto je neophodno da program radi u dv-u, ako
prijatelj već samo uči paskal. I šta je u tom obj-u koga linkujete?
Liči na konflikt sa xms/ems memorijom. Često se problemi mogu rešiti
i dobrim konfigurisanjem dv-a za konkretan program.
Opcija {$L} nije nikakva perverzija - služi kao direktiva kompajleru
da generiše informacije o lokalnim promenljivama koje omogućavaju
dibageru njihovo pravilno prikazivanje. Utiče samo na veličinu exe-a,
ne na njegovu veličinu niti brzinu izvršavanja. Dakle, to nije.
Ako ne radi u dv-u, nije razlog da ne probaš u windowsima, mada isto
je to g* ;)
Sve u svemu, nemaš ipak ceo sors jer linkuješ .obj. A on može da radi
šta hoće...
pascal.544micotakis,
Ĺ Nisam baš shvatio zašto je neophodno da program radi u dv-u,
Ĺ ako prijatelj već samo uči paskal. I šta je u tom obj-u koga
Ĺ linkujete? Liči na konflikt sa xms/ems memorijom. Često se
Ĺ problemi mogu rešiti i dobrim konfigurisanjem dv-a za konkretan
Ĺ program.
Program je neko čudo dovučeno ko zna odkle. Služi za puštanje mo-
dula. Pisan je u pascalu i fino može da se iskoristi u nekom pro-
gramu da svira u pozadini. :)
Šta je u *.obj nemam blage veze. Mogu da ti ga pošaljem, ali čemu
to? Koliko mi je pozanato to neće pomoći.
Shavtio si da se samo ja patim sa ovim.
Mora da radi u dv-u iz jednog prostog razloga, program mora da radi
u svim uslovima, inače nije dobar, to znaš i sam. Program koji radi
u čistom dosu mora da radi i pod win i pod dv-om. To je barem moja
filozofija. Da li si video da npr. DOS NAVIGATOR neće da radi pod
windowsom? Naravno da će da radi.
Ĺ Opcija {$L} nije nikakva perverzija - služi kao direktiva
Ĺ kompajleru da generiše informacije o lokalnim promenljivama
Ĺ koje omogućavaju dibageru njihovo pravilno prikazivanje. Utiče
Ĺ samo na veličinu exe-a, ne na njegovu veličinu niti brzinu
Ĺ izvršavanja. Dakle, to nije.
Slučajno sam izabrao baš to. Videh i to negde u programu. A rekoh
perverzija čisto onako, jer to nije za nas početnike.
Znam da je to za to, video sam u help-u.
Ĺ Ako ne radi u dv-u, nije razlog da ne probaš u windowsima, mada
Ĺ isto je to g* ;)
Ma brinem se da mi ne blokira mašinu, pa da moram da izlazim na
silu, a znaš da je win osetljiv po pitanju nasilnog izlaska iz
programa. Zato mnogo više volim DV.
Ĺ Sve u svemu, nemaš ipak ceo sors jer linkuješ .obj. A on može
Ĺ da radi šta hoće...
I to što kažeš, ali je suština u tom *.obj, da nije njega ne bi bi-
lo ništa od programa. E sad to je shareware pa zato nema sorsa za
to.
EMPIRE
pascal.545zeljkoj,
> filozofija. Da li si video da npr. DOS NAVIGATOR neće da radi
> pod windowsom? Naravno da će da radi.
Probaj da uključiš direktan pristup disku u DN-u. ;)
> I to što kažeš, ali je suština u tom *.obj, da nije njega ne bi
> bi- lo ništa od programa. E sad to je shareware pa zato nema
> sorsa za to.
Ima u diru program za disasembliranje .OBJ fajlova. Možda ti to pomogne?
pascal.546mmitrovic,
::::: Probaj da uključiš direktan pristup disku u DN-u. ;)
Ali samo pod 95. Tu je svejedno koji je program, ako ne lokujes
disk, niko nema pravo direktnog pristupa, tacnije direktnog pisanja.
Sto se tice DV-a, zar to neko jos koristi? Ako jr potrebna memorija preko
640k treba koristi dos4gw ili borlandove DPMIxx ili neke trece ekstendere
koje podrzava linker. Ako je u pitanju Borlandov paskal tu su DPMI16 i
DPMI32.
pascal.547visnja,
> koje podrzava linker. Ako je u pitanju Borlandov paskal tu su
> DPMI16 i DPMI32.
Ne savetujem borlandove DPMI-e sa paskalom, paskal gubi ono zbog cega
je paskal i postaje C. Ja ovo iz iskustva. Neka neko proba u DPMI da
prevede Borlandov SOURCE u kome je klasa TEDIT (Turbo Vizija editor),
i neka onda proba malo sa clipboard-om da radi...
ne gine runtime error 216 (general protection fault)
Da zlo bude vece onaj prevedeni (TPP) radi, ali ako ja prevedem source - JOK.
Imao sam probleme i sa PXEngine u DPMI16. Bez razloga nije hteo da
nadje neke recorde po sekundarnom indeksu?!? (PxSrchKey...)
Ako neko ima jos neko iskustvi ili SAVET... neka ga baci ovde.
Pozdrav.
pascal.548npmiki,
Radio sam neki program za grafikcko predstavljanje podataka i na
kraju sam napravio podesavanje boja pomocu misa (R,G,B) i tu se
javio problem. Pokusao sam sa naredbom setrgbpalette i sa
interaptima ( AX=$1010,BX=reg,CH=g,cl=b,dh=r,int $10) ali
menjaju se samo prvih 5 boja. Na ostale ne mogu da uticem ni na
jedan opisan nacin. (program radi u modu 640x480x16) .
Help !!!
P.S. nisam jos probao sa registrima svga karte , ako neko zna
kako neka i tu pomogne. Imam vesa kompatibilnu karticu UMC 1mb.
Unapred hvala .
pascal.549destructor,
Danas sam radio nesto i, dogodilo mi se sledece:
{Var
.
.
p,g:Integer;
s:LongInt;
.
.
Begin
.
.
p:=GetMaxX+1;
g:=GetMaxY+1;
s:=p*g Div 2 + 6;
.
.
a:=0;
While a<=s Do
Begin
.
.
a:=a+b;(b je const)
End; }
Medjutim nikako nije hteo da radi.Probam sa F7 i ispostavi se
da ne ulazi u petlju.
???
Probam sa WATCH i vidim sledece:
p:640
g:480;
s:-10234;
O cemu se radi?Prevodioc??
Pozdrav,
DeStrUctOr
pascal.550madamov,
> p,g:Integer;
> s:LongInt;
> ...
> s:=p*g Div 2 + 6;
>
> Probam sa WATCH i vidim sledece:
> p:640
> g:480;
> s:-10234;
Nisam se davno bavio Paskalom, pogotovo ne na PC-u, ali ovo bi trebalo da bude
očigledno nezavisno od jezika. Elem, kod izračunavanja s ti je desna strana
Integer jer su takvi p i g, a kako rezultat koji treba da dobiješ ne može da
stane u Integer promenljivu dolazi do toga da važi samo Integerski deo, i to
bez predznaka, tak oda dobijaš ovu vrednost. Deklariši p i g kao LongInt i
neće bit iproblema.
pascal.551dvesic,
> s:=p*g Div 2 + 6;
> O cemu se radi?Prevodioc??
Uradi Cast. Ovo je standardni problem kod konverzije među tipovima.
Treba nešto kao:
s := LongInt(p)*g Div 2 +6
Nije neophodno (ali ne smeta) da kastuješ (izem ti izraz :) obe promenljive,
pošto se rezultat računa prema tipu sa najviše bajtova.
pascal.552destructor,
Hvala za saveti, proradio je!:)
Medjutim ovo mi se ne javlja(ili se javlja, ali ja nisam
primeto), kada je na primer:
s(integer):=p(byte)*q(byte)
DeStrUctOr
pascal.553dvesic,
> Medjutim ovo mi se ne javlja(ili se javlja, ali ja nisam
> primeto), kada je na primer:
> s(integer):=p(byte)*q(byte)
Ovo je opet pitanje interne organizacije kompajlera. Većina kompajlera
i byte promenljive pamte u dva bajta.
Ili jednostavno nisi množio dovoljno velike bajtove ...
pascal.554micotakis,
Imam par pitanja. Pa ko zna nek mi odgovori.
Učim paskal iz par knjiga. Između ostalog iz one od Stephn O'Bri-
ana TURBO PASCAL 6 (kompletan vodič). I tako naleteh na onaj pro-
gram Quick Sort. Probah da startujem program i javi mi da ima gre-
šku. Pregledam lepo program i zatvorim jedan nezatvoreni komentar.
To je bila jedina greška. Program je sa diskete koja se dobije uz
knjigu i upoređivanjem videh da su(valjda) isti.
Probam da starujem program, međutim javi mi prekoračenje steka.
Probao sam sve živo. Povećavao vrednost steka na maksimum. Stavljao
EMM umesto QEMM-a, startovao ga iz IDE okruženja i kao exe fajl i
uvek isto. Da napomenem za one koji nisu videli kod, da se niz koji
se sortira sastoji od 10 elemenata. Intersuje me gde grešim, da li
je uopšte dobar listing programa, koliko bi trebalo memorije da bi
to radilo...
Problem je u rekurzivnom pozvu procedure to je sigurno.
Ako treba mogu i listing da okačim. Prvenstveno očekujem odgovor od
onih koji imaju knjigu. Ako nekog bude interesovalo ide i listing.
EMPIRE
pascal.555micotakis,
Radim neki program, objektno orijentisan, u turbo vision okruženju.
To mi je seminarski za fakultet. Prva verzija je bila neobjektna i
nije bila u TV-u i povrh svega imala je bag. Bag je bio posledica
pokušaja optimizacije i to u samom startu. Poslušao sam Zaka i kre-
nuo ispočetka. Međutim sad sam se primio na objekte i TV. I moj pro-
gram radi. Ostalo je samo da se uradi sledeće. Snimanje podataka na
disk i kasije učitavanje. Videh u knjizi primer učitavanja datoteke
kako BAFEROVANOG STRIMA, ali mi to ne treba, barem onako kako je to
opisano u knjizi. Meni treba da učitam sve objekte(ala sam se iza-
rzio, biću dobar obećavam, nemojte da me bijete) sa diska u TCOLLE-
CTION. E sad sledi pitanje da li je uopšte moguće snimiti objekat
kao objekat u datoteku. Iskreno rečeno meni je to nešto sumnjivo.
Video sam u jednoj knjizi da je čovek prvo ona polja objekta koja su
mu trebala da snimi konvertovao, t.j. iskopirao u određena polja slo-
ga(to mu dođe record), a ona to snimao u file deklarisan kao file of
records. Kod učitavanja je rađeno suprptno.
E sad mene zanima sledeće. Da li je moguće snimiti i učitati datoteku
kao BAFEROVANI STRIM, ali tako da se ne dodaje opcija menija snimi i
učitaj. Verovatno da može. Samo kako? Ili mi preostaje da konvertujem
u record? Šta mi predlažete. Samo brzo. Ovo mora da bude gotovo do
19.08.'96.
Kratak opis i savet.
EMPIRE
pascal.556dvesic,
> Problem je u rekurzivnom pozvu procedure to je sigurno.
>
> Ako treba mogu i listing da okačim. Prvenstveno očekujem odgovor od
> onih koji imaju knjigu. Ako nekog bude interesovalo ide i listing.
Lepo okači listing (knjigu imam, ali mi nije pri ruci) pa ćemo da sredimo
stvar. Daj i test primer za koji ti program sigurno puca.
pascal.557destructor,
Moze li neko da mi kaze gde da nabavim neku literaturu sto se
tice:
1)Manipulacije slikama(snimanje na disk,citanje sa
diska,kretanje)
2)TSR programa(pisanja tsr programa)
Pozdrav,
DeStrUctOr
pascal.558npmiki,
Dali neko zna kako da povecam prostor za promenljive u pascal-u
? Znam da je ogranicen na 64 Kb , ali u BP postoji zasticeni mod
, kako ga iskoristiti za promenljive. Ako je jedino resenje
korisnjenje promenljivih preko pointera i ubacivanjem u HEAP
memoriju ja to ne znam - KAKO ?
Dali neko ima izvorni kod za ucitavanje slika bilo kojeg formata
, znam da ima modul na sezamu ali ga TP7.0 ne moze koristiti ?
Ako neko ima molim ga da mi posalje na mail ili ovde.
Unapred zahvalan .
pascal.559micotakis,
Opet ja i moje petljanje. Pokušavam da sortiram jednostruko spregnutu
listu. Moja procedura ne valja. Gde grešim nemam pojma. Ovo sam poku-
šao da uradim.
{------------------------------------------------------------------}
Procedure Sortiraj;
Var
Sledeci,Daleki : Ptr;
Sortirana : Boolean;
Begin
Repeat
Trenutni := Prvi;
Prethodni := Nil;
Sortirana := True;
While Trenutni^.Next <> Nil Do
Begin
Sledeci := Trenutni^.Next;
If Trenutni^.Broj < Sledeci^.Broj Then
Begin
Sortirana := False;
If Sledeci^.Next <> Nil Then
Daleki := Sledeci^.Next
Else
Daleki := Nil;
Trenutni^.Next := Daleki;
Sledeci^.Next := Trenutni;
Prethodni^.Next := Sledeci;
End
Else
Trenutni := Trenutni^.Next;
End;
Until Sortirana;
End;
{------------------------------------------------------------------}
Lepo krira listu, i lepo prikaže celu listu, ali sortiranje nikako.
Znam da ova procedura ne valja, ali kako i zašto, to već ne znam.
Pomagajte ljudi. Boli me više glava od ovoga.
Recite mi kako se ovo radi. Kako da prepovežem veze, a da ne pokidam
lanac?
EMPIRE
pascal.560legend,
-=-> 2)TSR programa(pisanja tsr programa)
Koliko se ja sećam, ovde na sezamu imaš neki primer koji je opisan u
računarima. E sad neznam tačno kako se zove file, ali nešto sa resi_mm.zip
ili tako nešto. Uostalom pogledaj u pascal diru, pa ga nadji. Ako slučajno
nema, ostavi poruku na mail, pa da ti nakačim. Inače, primer je sasvim
jednostavan i trivijalan, ali koristan.
Legend of LoC!
pascal.561bokir,
Evo, u arhivi je program koji ce sortirati listu, tvojom
procedurom, samo malo izmenjenom.
Greska je bila sto je Prethodni u prvom prolazu (valjda i u ostalim :)
bio NIL, pa si uzalud trpao vrednost u Prethodni^.Next.
Druga greska je sto se Prethodni nije 'pomerao' unapred.
U svakom slucaju, evo fajla, pa pogledaj...
8.559pascal.562bokir,
Sorry, imao sam malih problema :)
Pogledaj poruku 8.561, tamo je odgovor na tvoj problem.
pascal.563micotakis,
Ĺ Greska je bila sto je Prethodni u prvom prolazu (valjda i u
Ĺ ostalim :) bio NIL, pa si uzalud trpao vrednost u
Ĺ Prethodni^.Next. Druga greska je sto se Prethodni nije
Ĺ 'pomerao' unapred.
Što reče zakić, kako to da ti ono ne radi? Zar si ti uopšte očeki-
vao da ono proradi. Hvala u svakom slučaju pogledaću. Sigurno će mi
zatrebati. Inače taj problem sam rešio, tako što sam upotrebio, dvo-
struko spregnutu listu i već gotov sorce iz knjige. Shvatio sam da
od viška glava ne boli, a na ne jednostruku listu sam prešao samo
zato što sam smatrao da mi ne treba listanje unazad.
Pošto smo rešili ovaj problem ostao je onaj drugi da se reši.
Zar se ovde niko ne bavi turbo visionom? Pomagajte ljudi, imam ideju
da jedan po jedan element tcollectina, vadim i stavljam u dvostruko
spregnutu listu slogova(record) i da ih onda lepo sortiram sa onom
procedurom, i onda snimin na hard i kasnije učitam sa procedurama ko-
je sam već napisao. Ali tu treba raditi dupli posao, znači prvo pre-
bacim ono što mi treba iz objekta u record, a kad učitavam obrnuto,
a to se jako lepo rešava sa baferovanim strimom, ali mi apsolutno nije
jasno kako to radi, jednino mi je mali jasna dekalracija, a u knjizi
je to objašnjeno tako da onaj ko nije znao neće ni znati.
EMPIRE
pascal.564destructor,
Koji unit je potreban da bi se iz pascala kontrolisao mis, i
kako se to radi, posto moj prevodioc nije bas
najkompletniji(fale neki fajlovi :().
Pozdrav,
DeStrUctOr
pascal.565npmiki,
Evo ti procedure i funkcije za rad sa misem. Ako ti treba Unit
napravi ga sam od ovih procedura , ja nisam imao vremena .
mouse.paspascal.566destructor,
Posto sam jos mlad i neiskusan, moram da budem dosadan i da
zapitkujem, ali sta da radim?:)
Negde sam naisao na nesto kao:
If ((reg.bx And butt) <> 0) Then ...
E sad sta radi ovaj izraz?(reg.bx je tipa registers i znam sta
oznacava, interesuje me samo sta se desava prilikom izvrsavanja
ovoga).
Pozadrav,
DeStrUctOr
pascal.567sale.car,
HI pipl...
Kako da u pascalu ocitam podatak sa LPT1 porta...
Znam kako da saljem na Data bitove sa Port[$378] ali kako
da ocitam sa recimo 11-og pina da li je stanje 0 ili 1 tj da li
ima napona ili nema !?!?
Mislim da je 11 pin nesto kao ocitavanje da li ima papira na
printeru ili ne... ja mislim...
Ajd 10x unapred...
Cya
pascal.568ilazarevic,
> E sad sta radi ovaj izraz?(reg.bx je tipa registers i znam sta
> oznacava, interesuje me samo sta se desava prilikom izvrsavanja
> ovoga).
Kog tipa je butt? Inače, ako je sve u redu, trebalo bi da se uradi AND ove
dve promenljive. AND upoređuje bit po bit iz oba broja, i ako su oba bita
jedinice, u rezultat se upisuje jedinica na toj poziciji. Da bi AND dao
rezultat različit od nule, treba u oba broja da se nađu jedinice na barem
jednoj poziciji.
pascal.569destructor,
Sto se tice mog predhodnog pitanja butt=const.
E sad:
Pokusao sam da sacuvam neku sliku u obliku file-a, a zatim da je
procitam, i posto nisam znao nijedan nacin da to uradim, ja
napisem otprilike:
.
.
Type
ni=Array[1..k] Of Byte;
Var
buff:^ni;
f:File Of ni;
.
.
.
Begin
.
.
y:=0;
GetMem(p,k);
While y<GetMaxY Do
Begin
GetImage(0,y,GetMaxX,y+GetMaxY Div 4,p^);
y:=y+GetMaxY Div 4;
Write(f,p^);
End;
.
.
.
I sad sam za citanje te slike sa diska koristio suprotnu logiku,
znaci definisao sam 4 pointera na nizove, i ucitao u njih
odgovarajuce delove slike, a zatim:
.
.
PutImage(0,y,p^,XORPut);
PutImake(0,y+c,p1^,XORPut);
PutImage(0,y+2*c,p2^,XORPut);
PutImage(0,y+3*c,p3^,XORPut);
.
i sve to lepo radi, samo sto je ovo iscrtavaje poprilicno sporo.
Sad pitanje:Mogu li ja to da ubrzam nekako, ili od ovog pristupa
nema mnogo koristi?
Sorry za ovolku poruku.
Pozdrav,
DeStrUctOr
pascal.570legend,
-=-> Kako da u pascalu ocitam podatak sa LPT1 porta...
-=-> Znam kako da saljem na Data bitove sa Port[$378] ali kako
Ovo i nije odgovor, ali me interesuje ako neko može da mi napiše ovo
sa portovima, tj, da mi popiše koji port čemu služi jer to nigde ne piše,
a ljudi mi stalno nešto objašnjavaju preko portova.
tenax
Legend of LoC!/eXplosives
pascal.571micotakis,
Ĺ Ovo i nije odgovor, ali me interesuje ako neko može da mi
Ĺ napiše ovo sa portovima, tj, da mi popiše koji port čemu služi
Ĺ jer to nigde ne piše, a ljudi mi stalno nešto objašnjavaju
Ĺ preko portova.
Pridružujem se ovoj molbi.
EMPIRE
p.s. Firuse to ti znaš garant. :)
pascal.572sale.car,
!?! Ovo i nije odgovor, ali me interesuje ako neko može da mi
!?! napiše ovo sa portovima, tj, da mi popiše koji port čemu
!?! služi jer to nigde ne piše, a ljudi mi stalno nešto
!?! objašnjavaju preko portova.
Najbolje ti je, rejveru, da skines HelpPc iz ne secam se kog
direktorijuma ... Tamo je sve opisano.
Ako hoces u pascalu recimo paralelni onda ti je sledece:
Port[$378] := 1 ;
Ovo ti ukljucuje data bit 0 na LPT a to ti je 2 pin.
Ja sam uradio celu listu pa cu je poslati uskoro, samo da je
prepisem...
Cya !
pascal.573tomil,
> sa portovima, tj, da mi popiše koji port čemu služi jer to nigde ne
> piše, a ljudi mi stalno nešto objašnjavaju preko portova.
U fajlu \dos\infoprog\helppc21.zip ćeš naći odgovore na sva tvoja
pitanja.
pascal.575sale.car,
HI evo one liste data pinova na Lpt-u...
Cya
lpt.txtpascal.576baster,
Tokom zadnjeg nevremena, nestalo mi je struje usred posla.
Sem druge stete stradao mi je BWCC.DLL neophodan izmedju
ostalog i za samo startovanje borland pascal for windows (7.0)
Pomenuti DLL nije dugačak, pa ako nije problem na mail (please !!!)
pascal.577nlazic,
>> Pomenuti DLL nije dugačak, pa ako nije problem na mail (please !!!)
DLL već postoji na sezamu: ĐwindowsĐsystemĐbwcc.zip
pascal.578ognjen,
)-> If ((reg.bx And butt) <> 0) Then ...
)-> E sad sta radi ovaj izraz?(reg.bx je tipa registers i znam
)-> sta oznacava, interesuje me samo sta se desava prilikom
)-> izvrsavanja ovoga).
Uporedjuje 'bitwise' (bit po bit) registar BX i word BUTT.
Gde su oba 1 (TRUE) ostaje 1, u suprotnom 0.
Sta to u praksi znaci? Ako u registru BX imas gomilu
true/false informacija (na primer status num/caps/scr) a treba
da proveris samo jedan, koristis gornji oblik. Na primer:
------------------------
var
b,t: byte;
begin
b:=mem[0:$0417];
t:=$20;
if ((b and t) <> 0)
then
writeln ('NumLock is ON')
else
writeln ('NumLock is OFF')
end.
-----------------------
E sad gledaj. Sa memorijske adrese 0:0417 (ono $ znaci
hxadekadno) uzeo si jedan bajt (sadrzaj si zapisao u B). Na toj
adresi se nalaze podaci o LOCKovima izmedju ostalog i o
numlock-u.
U bajt T si zapisao 20 hexadekadno znaci 00100000 binarno.
Zasto je bas treci bit 1? Zato sto sto treci bit sadrzi podatak
o NumLock-u, a nama bas to treba.
E sad praxa:
Ovaj bit je vazan!
!
B: 01100101 and
T: 00100000
-----------
00100000 - rezultat je <> 0 znaci numlock je ON, u suprotnom:
B: 01000101 and
T: 00100000
-----------
00000000 - rezultat je 0, znaci numlock je off.
Dakle sva ova prica da bi se reklo: to sluzi za proveru
odredjenih flagova (bitova). Kapito? :)
---
Nemoj molim te da kazes: ne. :)
pascal.579destructor,
Ne!!! ;)))
Salim se, jasno mi je .. 10x mnogo!
Pozdrav,
DeStrUctOr
pascal.580destructor,
Da li postoji nacin, da se nadje koliko ce memorije(maksimalno)
zauzeti program pisan u pascal-u, u toĺ■■ku svog izvrsavanja, i
kako se to radi(ako je moguce)?
Pozdrav,
DeStrUctOr
pascal.581destructor,
Pokusavao sam da napravim rezidentan program, koji ce da upise
neke stvari u fajl kada se pritisne neko dugme, i:
.
.
old:Procedure;
.
.
Procedure Key;Interrupt;
Begin
If port[$60]=56(npr.)
Then
Begin
Assign(f,'c:\dat.txt');
Rewrite(f);
.
.
End;
Inline($9C);
old;
End;
U osnovnom programu, zamenjen je vektor sa
SetIntVec($9,Addr(key)).I kad startujem program, on se kao lepo
postavi i sve lepo űradi dok ne dobije trazeni podatak na
ulazu, i tad zaglavi ba űs na instrukciji Assign(f,'c:\dat.txt').
Posto se ja u TSR■˛-ove ne razumem, i pokusavam da ih shvatim
na osnovu nekoliko (veoma prostih) primera, űmoze li neko reci
gde da andjem nesto opsirnije o tome, i da mi objasni sta se
desava u ovom slucaju.
10x unapred
Pozdrav,
DeStrUctOr
pascal.582obren,
> Pokusavao sam da napravim rezidentan program, koji ce da upise
> neke stvari u fajl kada se pritisne neko dugme, i:
Pisanje "običnih" TSR programa i onih koji rade sa diskom je prilično
drugačije. Razlozi su sledeći: DOS nije reentrant, što znači da ako se
interapt desi dok se izvršava neki kod u DOS-u, ti ne smeš da pozivaš
ni jednu DOS funkciju. Drugi razlog je što se za rad sa diskom koristi
tzv. DTA (Disk Transfer Area) koju ima svaki program. Ako hoćeš da radiš
sa diskom iz svog TSR-a, svaki pristup nekom fajlu prebrisaće sadržaj
DTA prekinutog programa i eto belaja. Zato se pribegava sledećem:
Postoji jedan flag koji se zove INDOS flag koji dos postavlja na nenultu
vrednost kada se izvršava neki od DOS-ovih servisa. Postoji mehanizam,
doduše nedokumentovan od Microsofta da se sazna adresa ovog flega kao
i Critical Error flega koji je takođe bitan za ovu primenu. Dakle, kada
te "okine" interapt treba da proveriš da li su ova dva flega jednaka
nuli i tek ako jesu smeš da pozivaš DOS funkcije. Takođe, pre poziva
funkcija DOS-a za rad sa diskom, treba da postaviš svoj DTA a sačuvaš
trenutno aktivni i na kraju da vratiš sve kako je bilo. Ima i jedan
interapt (čini mi se 0x28) koji se non stop poziva dok je DOS u komandnoj
liniji i kada je takođe bezbedno pozivati DOS funkcije.
Da ne tupim dalje, pogledaj HELPPC, TECHREF i sl. help jutilitije, u
njima ima dosta ovakvih pikanterija, a nije loše ni da nađeš neke stare
računare, trebalo bi da je negde oko broja 70-80, Zoran Životić je pisao
na tu temu.
pascal.583sale.car,
HI
Treba mi heeeelp...
Kako da prebacim iz Word-a u String !?!!
Evo problema...
GetDate je pod tipom Word, a ja hocu da je String...
10x unapred... samo bez nekog asembliranja & sl. ;)
Cya
pascal.584destructor,
>GetDate je pod tipom Word ..
Zar obicana STR(GetDate,s) u s nece dati rezultat?Probaj sa
njom .. pa vidi.
Pozdrav,
DeStrUctOr
pascal.585chadra,
Kako da u Turbo Pascalu da nekom prozoru koga sam kreirao (crt.tpu)
dodam neki 'okvir', kao ovaj:
Ň══Ş
│ │
ď══ż
a da pri tom pri iscrtavanju poslednjeg karaktera (ż) program ne
spusti kursor za jedan red i time obrise prvi?
Da li sa komandom 'write' ili nekom drugom?
pascal.586npmiki,
Resenje ti je koriscenje naredbi goto x,y / write ili
ű űpisanjem direktno u video memoriju , za ovo drugo mi se
obrati u mail pa cu ti poslati procedure.
I trebao bi da sakrijes kursor , ali to ide preko interapta.
Treba da znas da writeln pomera kursor u sledeci red ű , a write
ne.
pascal.587sale.car,
HI...
Problem... ;)
Trebam da kreiram fajl cije se ime sastoji iz dana i meseca...
Dakle:
danas je recimo 01-09-1996 fajl je: 0109.txt
E, sad... ja ne znam kako se pretvara iz Word-a u string (destructor
mi je rekao da probam sa Str(GetDate, String) ali to nece da moze
jer mi prijaljuje da ne mogu da stavljam procedure u liniju..ili sl...)
HELP PLIZZZ ...
Cya
pascal.588npmiki,
Evo resenje za tvoj problem. Lose su mi veze , pa ti saljem fajl.
Bye.
datum.paspascal.589micotakis,
Ch> Kako da u Turbo Pascalu da nekom prozoru koga sam kreirao (crt.tpu)
Ch> dodam neki 'okvir', kao ovaj:
Ch> Ň══Ş
Ch> │ │
Ch> ď══ż
A što lepo ne uzmeš da radiš u TURBO VISION-u? Nije mnogo komplikovano,
samo moraš da znaš par stvari. Ako nečeš to probaj TPW60. To radi baš to
što ti hoćeš. Uz to se ne petljaš ni sa TV-om. Probaj obavezno. Mislim
da ga imaš i na sezamu.
EMPIRE
pascal.590sale.car,
!?!> Evo resenje za tvoj problem. Lose su mi veze , pa ti saljem
!?!> fajl.
10x a looooottt !!!
danke, danke ;)
Cya
pascal.591sale.car,
De> Zar obicana STR(GetDate,s) u s nece dati rezultat?Probaj sa
De> njom .. pa vidi.
De> Pozdrav,
De> DeStrUctOr
Nece... Kaze mi da je nedozvoljeno stavljati procedure
u liniju (ili tako nesto)...
:(((
Ceo problem je u tome sto trebam da kreiram fajl cije se
ime sastoji iz danasnjeg dana i meseca... Recimo danas je
30-08-96 a fajl je: 3008.txt
10x unapred...
Cya
pascal.592sale.car,
HI...
da li je neko probao da pise doorove pomocu onih tri door
tpu-ova...
Ajd neka me majluje da razmenimo iskustva ;)
Cya
pascal.593maksa,
>> Ceo problem je u tome sto trebam da kreiram fajl cije se
>> ime sastoji iz danasnjeg dana i meseca... Recimo danas je
>> 30-08-96 a fajl je: 3008.txt
Evo ti f-ja koja vraća string koji tražiš:
Function D2S : string;
var
Godina, Mesec, Dan, DuN : Word;
DS, MS : string;
begin
GetDate(Godina, Mesec, Dan, DuN);
Str(Mesec, MS);
Str(Dan, DS);
Date2String := DS + MS;
end;
Zovneš ovo, i kreiraš ime fajla od vraćenog stringa.
Uzgred, fuj Pascal. ;)
pascal.594sale.car,
Ma> Evo ti f-ja koja vraća string koji tražiš:
Ma> Function D2S : string;
Ma> var
Ma> Godina, Mesec, Dan, DuN : Word;
Ma> DS, MS : string;
Ma> begin
Ma> GetDate(Godina, Mesec, Dan, DuN);
Ma> Str(Mesec, MS);
Ma> Str(Dan, DS);
^^^^^^^^^^^^^
E ovo nece da radi ! Probao sam ja to prvo i nece...
Radi ono sto je npmiki poslao...
Dakle treba :
Str(Mesec:2, MS) ;
Svejedno... 10x svima na helpu...
Cya
pascal.595maksa,
>> Str(Dan, DS);
>> ^^^^^^^^^^^^^
>>
>> E ovo nece da radi !
Bogme hoće.
pascal.596chadra,
Subject: Turbo Pascal( + crt.tpu)
...
window(20,10,30,15);
gotoxy(10,6);
write('╝');
...
U gornjem primeru, posle komade write i iscrtavanja coska okvira,
program spusti sve za jedan red i tako obrise gornji okvir prozora
(koji sam prethodno nacrtao). E sad, ovo sam resio jednim
'gotoxy' i 'insline', ali reshenje ne izgleda previse elegantno...ima
li neko bolje?
pascal.598sale.car,
>> Str(Dan, DS);
>> ^^^^^^^^^^^^^
>>
>> E ovo nece da radi !
Ma> Bogme hoće.
E nece ;))
Nece zato sto je Dan tipa Word... ali hoce da radi sledece:
Str(Dan:2, DS) ;
Na ovome se zahvaljujem pmikiju (ja mislim)... Cya !
pascal.600pvlada,
Da li neko zna kako da učitam BMP iz pascal-a ?
Vlada
pascal.601igorl,
Down-loadovao sam sa SEZAM-a programčić za skidanje grafičkog
ekrana u
fajl (za CGA i HERKULES kartice - Fajl SEIZE.ZIP). On zapravo samo
sadržaj grafičke memorije prenese u fajl. Dali neko zna kako u
paskalu
napisati program koji radi obrnutu stvar?
pascal.602sale.car,
HI!
Da li je mouce da u komandnoj liniji zadam neki
string a pascal da ga prevede u nesto drugo ;))
Problem:
Imam prg za iscrtavanje funkcija... E, sad.. ja
moram da udjem u source pa da promenim f-ju i
to je malo zeznuto za one koji bas ne znaju da
ulete u source... Dakle, kako ja mogu da
zadam u komandnoj liniji recimo:
funkcija.exe 'x+2'
i on to da ubaci u prg-u kao
y:= x+2 ;
!?!?!?!?!?
Da li je mouce i kako ?
10x a lot unapred...
pascal.603sale.car,
HI!
Opet ja ;)
Citam matore poruke pa mi stizu ideje ;)
(mozda ovo treba u drugu konf. al ajd da probam)
Da li je moguce potpuno kontrolisati stampac matricni
i to tako da mu se kontrolise koja ce iglica da udari,
pomeranje glave i pomeranje papira...
Dakle, ja posaljem neki bit na neki port i u tom
trenutku udari iglica 1 recimo...
Ako nisam jasan vicite (ali ne glasno) ;)
Cya
pascal.604sale.car,
HI! Jao opet ja... Ako sam dosadan javite slobodno ;)
Well.. problem je:
Kako da uletim u neki txt fajl i pobrisem sva slova A recimo.
Konkretno mi treba da se pobrisu svi znakovi Hex(01).
Mogu i da se zamene sa spacetom...
10x unapred i necu vise bar jedno 3-4 dana ;)))
Cya
pascal.605dspasic,
Potreban mi je ili tpu ili samo f-ja u pascalu za pravljenje
formi ili bar nesto slicno za unos samo podataka numerickih ili
stringova ali naravno sa kontrolom upisa tako da ako unosim
string nebi smelo da se desi da prihvati broj.
unapred zahvalan
* tvision mi ne pomaze...
pascal.606igorl,
>> Potreban mi je TPU ili f-ja u paskalu za pravljenje formi
Probaj ovo, mislim da ce ti odgovarati.
input.paspascal.607sale.car,
Ds> Potreban mi je ili tpu ili samo f-ja u pascalu za pravljenje
Ds> formi ili bar nesto slicno za unos samo podataka numerickih ili
Ds> stringova ali naravno sa kontrolom upisa tako da ako unosim
Ds> string nebi smelo da se desi da prihvati broj.
Ds> unapred zahvalan
Ds> * tvision mi ne pomaze...
Imas u pascalovom dir-u unit... Zove se Dlgdsn.zip valjda...
Uglavnom je opis: Kreiranje dijaloga u TP-u...
Tu unutra imas exe koji ti pomaze da kreiras izgled ekrancica
pa ga prebaci u pas uz koji ide i njegov tpu....
Ma sve ti je objasnjeno ;)
Ako nema javi da saljem...
Cya
pascal.608sale.car,
HI
gde ima da se skine delphi i koliki je on u stvari !?
Ako neko ima neka mi kaze...
Znam da ce ovo da se brise zbog ... ali da li postoji neka
share vare ;) verzija ?
Cya
pascal.609hercog,
»» gde ima da se skine delphi i koliki je on u stvari !?
Na mom disku ga ima oko 73 MB :) Pa ako ti se skida ti skidaj :)
Sale
pascal.610sale.car,
Ds> Potreban mi je ili tpu ili samo f-ja u pascalu za pravljenje
Ds> formi ili bar nesto slicno za unos samo podataka numerickih ili
Ds> stringova ali naravno sa kontrolom upisa tako da ako unosim
Ds> string nebi smelo da se desi da prihvati broj.
Ds> unapred zahvalan
Ds> * tvision mi ne pomaze...
Imas u pascalovom dir-u unit... Zove se Dlgdsn.zip valjda...
Uglavnom je opis: Kreiranje dijaloga u TP-u...
Tu unutra imas exe koji ti pomaze da kreiras izgled ekrancica
pa ga prebaci u pas uz koji ide i njegov tpu....
Ma sve ti je objasnjeno ;)
Ako nema javi da saljem...
Cya
pascal.611sale.car,
He> Na mom disku ga ima oko 73 MB :) Pa ako ti se skida ti skidaj
He> :)
He> Sale
Na mom disku nema toliko slobodno :(((((
Enivej 10x !
pascal.612sale.car,
HI
da li neko zna kako da ocitavam podatke sa paralelnog porta !?
Dakle, recimo ubacujem 5v u pin 11 (mislim da je Busy) i u
programu treba da mi se umesto iskljucenog pojavi ukljuceno...
Moze i na nekom drugom pinu...
Well.. 10x unapred...
cya
pascal.613space.ace,
## Da li neko zna kako da učitam BMP iz pascal-a ?
Zavisi koji BMP je u pitanju, moraš da pročitaš header slike, namestiš
paletu, pa onda kao i .PCX, ili bar slično. Ako slika ima više boja,
postaje komplikovanije. Mislim da u pascal dir-u imaš neke procedure
za učitavanje BMP-a, pa pogledaj tamo. Ako nemaš, poslaću ti opis
header BMP slike pa radi sam :).
/ al' sam pomogao :) /
pascal.614igorl,
>> Kako da uletim u neki txt fajl i pobrisem sva slova A recimo.
>> Konkretno mi treba da se pobrisu svi znakovi Hex(01).
>> Mogu i da se zamene sa spacetom...
Probaj ovaj program, mozes da biras dali ces da zamenis sa
'spacetom', ili ces da brises HEX (01).
delhex01.paspascal.615montekristo,
Moze li neko da mi posalje printer.tpu unit.Postoji li neki drugi
nacin za direktni izlaz na stampac.Probao sam sa write(prt,...) i
sa slicnim komandama ali to mi nije uspelo.
Unapred hvala. Goran
pascal.616sale.car,
Ig> Probaj ovaj program, mozes da biras dali ces da zamenis sa
10x a lot !!!
Cya
pascal.617sale.car,
Mo> Moze li neko da mi posalje printer.tpu unit.Postoji li neki drugi
Mo> nacin za direktni izlaz na stampac.Probao sam sa write(prt,...) i
Mo> sa slicnim komandama ali to mi nije uspelo.
Mo> Unapred hvala. Goran
Pogledaj poruku 196 u ovoj temi !
Uz poruku je fajl koji stampa deo ekrana na epson
matricnim shtampacima...
Valjda ce biti od koristi...
Cya
pascal.618legend,
-=-> gde ima da se skine delphi i koliki je on u stvari !?
-=-> Ako neko ima neka mi kaze...
-=-> Znam da ce ovo da se brise zbog ... ali da li postoji neka
-=-> share vare ;) verzija ?
Ovaj... koliko ja znam (a možda i grešim) Delphi je velik 15HD...
Gde ćeš ovo da skineš, neznam, ali možeš da kupiš kod pirata...
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.619legend,
-=-> Kako da uletim u neki txt fajl i pobrisem sva slova A recimo.
-=-> Konkretno mi treba da se pobrisu svi znakovi Hex(01).
-=-> Mogu i da se zamene sa spacetom...
Dakle, blockread deo fajla, pa petljom zameniš sve $01 sa $20, pa
blockwrite u drugi fajl, pa ponoviš sve to onoliko puta koliko treba (dok
ne
prođe ceo fajl), pa onda erase stari fajl, pa rename novi u stari i sve je
ok. Kad me ne bude mrzelo da pišem source, napisaću (jel?) pa ćuda kačim...
Ajd probaj i ti...
-=-> 10x unapred i necu vise bar jedno 3-4 dana ;)))
Što? Pitaj, bre sve znam.... ;))))
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.620montekristo,
Moze li neko da mi posalje printer.tpu unit.Postoji li jos neki
nacin direktnog ispisa iz programa na stampac.Zna li neko sta treba
da uradim pa da bih misa ukljucio u program na paskalu.I poslednje
pitanje.Zna li neko koji format da upotrebim da bih izlazne
rezultate programa mogao da vidim u Wordu onakve kakve zelim.
Goran
pascal.622sale.car,
neko je trazio printer tpu...
saljem puno rutina za stampac.
cya
pascal.623sale.car,
puce mi veza :(
saljem ponovo !
printer.arjpascal.624visnja,
> funkcija.exe 'x+2'
> i on to da ubaci u prg-u kao
Veselo!
Ne zelim da te plasim, ali resenje nije trivijalno.
Potrebno je da napises jednu lepu proceduru koja ce da resava izraze,
pazeci na prioritet operacija, zagrade, da uvedes varijable...
potrudis se jos malo i napravaio si pravi programski jezik.
Ko se seca ZX SPECTRUMA i njegove VAL naredbe koja je resavala izraze,
a sada radi u paskalu, verovatno stavlja ZX Basic ispred Borland Pascala.
Da skratim, imam jedan UNIT koji sam napisao i zove se naravno ZXVAL,
Unit ima jednu proceduru kojoj posaljes npr. 'x+2', pre toga si naravno
poslao 'x=10' i unit ti vrati 20. Mislim da ce ti i te kako koristiti.
Unit sam napisao odavno, uz pomoc jednog MOCNOG texta iz racunara,
zaboravih autora, neka mi ne zameri, ali text se zove 'Rastavi me nezno'.
Barem mislim da je to taj clanak... hmmm... izlapeo sam skroz...
Ajd javi ako je problem jos aktuelan pa da saljem unit...
Pozdrav, Visnja
pascal.625visnja,
> Da li je moguce potpuno kontrolisati stampac matricni
> i to tako da mu se kontrolise koja ce iglica da udari,
> pomeranje glave i pomeranje papira...
Jeste moguce, sto se tice iglica u glavi, cak je to tako i zamisljeno.
Da nemas PC-a, koji zaglupljije ljude, nego da imas npr. Commodore64 ili
ZX Spectrum-a, morao bi da se pozabavis tim iglicama, ovako drajveri za
windows-e sve rese i ti nemas pojma kako!
Uzmi neko dobro epsonovo uputstvo, nadji na SEZAMU HELPPC, u HELPPC-u
nadji adresu LPT porta i salji kodove stampacu direktno. Mozes da
koristis i PRINT unit iz BORLAND pascala (7.0), pogldaj Borlandov help
kako. (ja nista neznam napamet, zato sam pun helpova). Iz EPSON-ovog
uputstva nadji stampanje grafike i vozi.....
Iz uputstva za stampac (dobrog!) bice ti jasno sta sve sa printerom mozes,
na nazovimo ga niskom nivou...
Pozdrav, Visnja.
pascal.626visnja,
> Ds> * tvision mi ne pomaze...
>
> Imas u pascalovom dir-u unit... Zove se Dlgdsn.zip valjda...
> Uglavnom je opis: Kreiranje dijaloga u TP-u...
POLAKOOOOO, DLGDSN je strava program, ALI ZA TVISION, a covek nece TVISION,
sto je steta. Prouci TVISION, sto da izmisljas vrucu vodu, kada
ljudi sve izmislise, ti samo da koristis...
pascal.627visnja,
> He> Na mom disku ga ima oko 73 MB :) Pa ako ti se skida ti
> skidaj He> :)
> He> Sale
>
> Na mom disku nema toliko slobodno :(((((
> Enivej 10x !
Na mom i preko 100Mb, zbog knjiga...
pascal.628visnja,
> da li neko zna kako da ocitavam podatke sa paralelnog porta !?
> Dakle, recimo ubacujem 5v u pin 11 (mislim da je Busy) i u
> programu treba da mi se umesto iskljucenog pojavi ukljuceno...
> Moze i na nekom drugom pinu...
> Well.. 10x unapred...
Prosto, uzmi vec pomenuti HELPPC, tamo imas adresu LPT1, i dovodi pet
volti preko nekog otpornika, probaj 1K, da ne spalis nesto... ako
promasis BUZY. U Borlandovom HELPU nadji kako port da citas.
Imam i negde i neki UNIT za ovaj problem, pa ako ti je stvarno zapelo,
javi da ga nadjem i saljem.
Unit upravo cita BUZY ili neki drugi PIN, na taj pin je zakacen IR prijemni
deo, da mozes PC-a da teras preko nekog daljinca!!!
Pazi ja duuugooo radim u pascalu i imam
strasnoooo mnogo unit-a u kojima se treba snaci. Zato prvo probaj sam,
pa ako ne ide javi mi... OK
Pozdrav, Visnja
pascal.629sale.car,
Vi> sam skroz... Ajd javi ako je problem jos aktuelan pa da saljem unit...
Spasioce ! ;)
SAAAALJJJIII !
Cya
pascal.630sale.car,
Vi> Jeste moguce, sto se tice iglica u glavi, cak je to tako i zamisljeno.
Vi> Da nemas PC-a, koji zaglupljije ljude, nego da imas npr. Commodore64
Vi> ili ZX Spectrum-a, morao bi da se pozabavis tim iglicama, ovako
Vi> drajveri za windows-e sve rese i ti nemas pojma kako!
Vi> Uzmi neko dobro epsonovo uputstvo, nadji na SEZAMU HELPPC, u HELPPC-u
Vi> nadji adresu LPT porta i salji kodove stampacu direktno. Mozes da
Vi> koristis i PRINT unit iz BORLAND pascala (7.0), pogldaj Borlandov help
Vi> kako. (ja nista neznam napamet, zato sam pun helpova). Iz EPSON-ovog
Vi> uputstva nadji stampanje grafike i vozi.....
Vi> Iz uputstva za stampac (dobrog!) bice ti jasno sta sve sa printerom
Vi> mozes, na nazovimo ga niskom nivou...
Hmm... HelpPc imam i znam kako da kontrolisem Lpt port ali...
Hmmm... pa nista, probacu (mada nemam stampac :))...
10x enivej... Cya
pascal.631sale.car,
> Ds> * tvision mi ne pomaze...
>
> Imas u pascalovom dir-u unit... Zove se Dlgdsn.zip valjda...
> Uglavnom je opis: Kreiranje dijaloga u TP-u...
Vi> POLAKOOOOO, DLGDSN je strava program, ALI ZA TVISION, a covek nece
Vi> TVISION, sto je steta. Prouci TVISION, sto da izmisljas vrucu vodu,
Vi> kada ljudi sve izmislise, ti samo da koristis...
Ja sam ukapirao da mu tvision ne pomaze u smislu da tvision ne moze
da kreira tako nesto...
Ako gresim sorry ;)
Cya
pascal.632sale.car,
Vi> Imam i negde i neki UNIT za ovaj problem, pa ako ti je stvarno zapelo,
Vi> javi da ga nadjem i saljem.
Vi> Unit upravo cita BUZY ili neki drugi PIN, na taj pin je zakacen IR
Vi> prijemni deo, da mozes PC-a da teras preko nekog daljinca!!!
Da, da... Ja sam isprobavao nesto ali ipak mislim da sam spalio
Lpt... imam jedan u rezervi...
Ima li neko one slike kako se pravi loopback ???
E ja sam kao napravio jedan i iz ndiagsa sam testirao Lpt ali
nista ne prijavljuje, cak mi kaze da ga ubacim !
To sam probao na svom (koji je sumnjiv) i od druga sam pozajmio
medjutim ista pesma...
Kod mene savrseno rade data pinovi (od 2 do 8) ali nikako nisam
uspeo da detektujem sa busy-a ili sl...
Pokusao sam da ukljucim pin 2 i da ga spojim sa busy pinom (15)
i da tako detektujem ali nije uspelo...
Malo me je strah da mu ubacujem neko napajanje sa strane...
Da li neko ima pojma koliki max napon i amperaza treba da se ubaci
u Lpt a da se ne spali !?
(ala ga ugnjavi ja :))
Btw, salji onaj unit... jedino mi je on ostao !!
10x unapred
Cya
pascal.633vitez.koja,
#=> Unit ima jednu proceduru kojoj posaljes npr. 'x+2', pre toga si
#=> naravno poslao 'x=10' i unit ti vrati 20.
Alaj si je napisao, svaka ti čast :)
sk
pascal.635pesnik,
> Da li je mouce da u komandnoj liniji zadam neki
> string a pascal da ga prevede u nesto drugo ;))
Pokusaj da program definises kao proc ili func, sa jednim parametrom.
Na mesto (u programu) gde unosis f-ju, ubaci gore navedeni
parametar kao &makro. Posle prevodjenja u .EXE, navedi (posle naziva
programa) samu funkciju, pa gledaj da li ce da uspe.
Note: Ne znam da li sam ti mnogo pomogao, jer lupam po Clipper-u i Fox-u,
a problem je najlakse resiv upotrebom makroa. Ne znam kao se to
resava u paskalu, ali mozda bi moglo da uspe
U clipperu, to bi izgledalo ovako:
BOF .............
FUNCTION Funkcija(f) -> f = parametar funkcije (primer: f=x+2)
y = &f -> ovde se putem makroa (&) dodeljuje
... y-lonu referentna vrednost f
EOF..............
Posle compillinga i linkovanja sledi:
C:\> funkcija x+2
ili
C:\> funkcija x^3
Ako sam ti pomogao, O.K., ako nisam, pisi ponovo. Poz. :)
pascal.636pvlada,
Imam 2 pitanja:
1.Kako da radim u pascalu sa 256 boja?
2.Da li postoji procedura koja proverava brzinu procesora?
Vlada
pascal.637aikimen,
Je li zna neko ko je zastupnik Borlanda kod nas i da li taj isti
ima neku e-mail adresu, na koju bih mogao da priupitam o cenama?
pascal.638evlad,
=- 1.Kako da radim u pascalu sa 256 boja?
Skini iz dir-a svgabgi, tamo imaš bgi drajvere i prateću dokumentaciju.
ako ćeš da petljaš sa mišem, tada ti treba drajver koji će da prepozna
800x600 ili neku drugu jaču rezoluciju.
=- 2.Da li postoji procedura koja proverava brzinu procesora?
Iz standardne biblioteke funkcija: ne.
pascal.639visnja,
>
> Alaj si je napisao, svaka ti cast :)
Stvar je dobrim delom zasnovana na tekstu VIKTORA CEROVSKOG,
Racunari 79 : "Rastavi me nezno", dakle NJEMU SVAKA CAST.
pascal.640visnja,
> Spasioce ! ;)
> SAAAALJJJIII !
Probam da saljem... neznam kako iz SOR-a da kacim datoteku,
nadam se da je ovde...
Pozdrav, Visnja.
zxvalpascal.641visnja,
> Ja sam ukapirao da mu tvision ne pomaze u smislu da tvision ne
> moze da kreira tako nesto...
> Ako gresim sorry ;)
Sam program DLGDSN je napisan pomocu TVISION biblioteke.
TVISION i te kako moze da pravi dijaloge, ulazne linije...
Ali je mukotrpno jer se sve koordinate unose kao cetiri cifre.
Kako to izgleda vidi se tek po kompajliranju i startovanju programa.
Sa DLGDSN crtas dijaloge i on ti generise program sa pravilnim
koordinatama.
pascal.642visnja,
> Da li neko ima pojma koliki max napon i amperaza treba da se
> ubaci u Lpt a da se ne spali !?
> (ala ga ugnjavi ja :))
> Btw, salji onaj unit... jedino mi je on ostao !!
Da probamo da nadjemo...
A sto se tice spaljivanja, nisam bas maher za elektroniku,
a nije ni odgovarajuca tema...
ali potrudi se da ne spajas dva izlaza, onda se potrudi da +5V ne dovodis
direktno da bi napravio logicno 1, nego preko otpora koji ce biti
potrosac u slucaju kratkog spoja (npr dovedes +5V greskom na izlaz
koji je na niskoj razini, ali tako nesto).
pascal.643sale.car,
Pv> Imam 2 pitanja:
Pv> 2.Da li postoji procedura koja proverava brzinu procesora?
Saljem tpu za identifikaciju procesora i brzinu...
(u sledecoj poruci ;))
Cya
speed.arjpascal.644sale.car,
Vi> Da probamo da nadjemo...
Vi> A sto se tice spaljivanja, nisam bas maher za elektroniku,
Vi> a nije ni odgovarajuca tema...
Vi> ali potrudi se da ne spajas dva izlaza, onda se potrudi da +5V ne
Vi> dovodis direktno da bi napravio logicno 1, nego preko otpora koji ce
Vi> biti potrosac u slucaju kratkog spoja (npr dovedes +5V greskom na izlaz
Vi> koji je na niskoj razini, ali tako nesto).
:-( ;)
uzas... fly fly my beauty LPT1 ;)
eh... probacu... 10x na odgovoru ;)
Cya
pascal.645nenad,
> Je li zna neko ko je zastupnik Borlanda kod nas i da li taj isti
> ima neku e-mail adresu, na koju bih mogao da priupitam o cenama?
Mislim da borland još uvek nema zastupnika, ali koliko mi je
poznato firma CET (odnosno Softland) je bio njihov diler pa je
moguće da su obnovili veze. Opet, izgleda da to još uvek sve ide
preko Slovenije pa su i cene vesele.
pascal.646npmiki,
Hi !
Hitno mi je potreban unit za 3d crtanje. Ovaj sa sezama imam ,
ne stima. Tj. potreban mi je bolji a pre svega nesto kao pogled
kamere u 3d studiju. Onda resena vidljivost poligona , crtanje
samo onih koje vidi kamera tj. posmatrac .
Hvala unapred , u obzir bi mogao da dodje i neki algoritam ili
nesto slicno.
pascal.647sale.car,
Np> Hi !
Np> Hitno mi je potreban unit za 3d crtanje. Ovaj sa sezama imam ,
Np> ne stima. Tj. potreban mi je bolji a pre svega nesto kao pogled
Np> kamere u 3d studiju. Onda resena vidljivost poligona , crtanje
Np> samo onih koje vidi kamera tj. posmatrac .
Np> Hvala unapred , u obzir bi mogao da dodje i neki algoritam ili
Np> nesto slicno.
A sto ne uzmes 3D Studio v4.0 !? ;)))) Malko je bolji od pascala...
Cya
pascal.648npmiki,
Hvala ti na savetu , ali vec imam 3d studio (sve verzije) :)
Kao sto sam vec napisao , trebaju mi brze procedure od onih
obicnih (sin(arctan(y)+ugaoa.....) . Znam da imaju neke
transformacije koje ubrzavaju racunanje tj. rotiranje tacaka
x,y,z za neke uglove ax,ay,az. Ono zasta mi to treba , 3ds je
nepogodan. Ako mozes da pomognes bio bih ti mnogo zahvalan .
Znaci : procedure , algoritmi ili cak neka literatura u vezi
toga . Sto se tice literature , to bih bio spreman i da platim
koliko kosta.
10x.
pascal.649sale.car,
HI!
Otvaram grupu povodom zanimljivog projekta...
Daklem:
Napravio űbih uredjaj koji bi pratio promenu frekvencije
gradske mreze od normalnih 50 hz...
Ako neko zeli neka me mailnuje za grupu !
Cya
pascal.650legend,
-=-> Kao sto sam vec napisao , trebaju mi brze procedure od onih
-=-> obicnih (sin(arctan(y)+ugaoa.....) . Znam da imaju neke
-=-> transformacije koje ubrzavaju racunanje tj. rotiranje tacaka
-=-> x,y,z za neke uglove ax,ay,az. Ono zasta mi to treba , 3ds je
-=-> nepogodan. Ako mozes da pomognes bio bih ti mnogo zahvalan .
Kako nepogodan? Ako sam dorbo razumeo ne rotiraš ceo predmet nego neke
njegove tacke za neki ugao, ali oko čega?
-=-> Znaci : procedure , algoritmi ili cak neka literatura u vezi
-=-> toga . Sto se tice literature , to bih bio spreman i da platim
-=-> koliko kosta.
Pa ja sam video ne nekom BBS-u dosta funkcija o tome... samo, koji beše...
ček... Axa, ecstasy bbs u direktorijumu [Dos] rpogramming imaš
nekoliko fajlova za 3d zajebancije, što u pas, a nešto u ASm:
3dbasic.zip ; bubble.zip; fh-3dtut.zip; vga-vul4.zip i gourad.zip...
Ovo poslednje je ql jer je tip napisao program za gouradovo senčenje a imaš
i source...
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.651space.ace,
>> Ovo poslednje je ql jer je tip napisao program za gouradovo senčenje a
Ovo meni posebno treba, pa ako bi bio dobar neko da mi to skine, ili bar
da mi da no. telefona tog BBS-a, da bih sam "skinuo".
Hvala veliko!
pascal.652igorl,
> da mi da no. telefona tog BBS-a da bih sam "skinuo".
Koliko sam shvatio treba ti broj telefona EXTASY-ja, pa evo ga:
022/53-884, radi non-stop, a ne plaća se pretplata.
pascal.653legend,
-=-> Koliko sam shvatio treba ti broj telefona EXTASY-ja, pa evo ga:
-=-> 022/53-884, radi non-stop, a ne plaća se pretplata.
jeste, samo ima je ECSTASY ali to nije bitno... bitno je da da bi
nešto skidao, moraš nešto i da pošalješ... e sad odnos je 5:1 pa pošalji
recimo novi f-prot i dobićeš ul ratio 1500kb i onda se rešio problem...
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.654legend,
-=-> Koliko sam shvatio treba ti broj telefona EXTASY-ja, pa evo ga:
-=-> 022/53-884, radi non-stop, a ne plaća se pretplata.
jeste, samo ima je ECSTASY ali to nije bitno... bitno je da da bi
nešto skidao, moraš nešto i da pošalješ... e sad odnos je 5:1 pa pošalji
recimo novi f-prot i dobićeš ul ratio 1500kb i onda se rešio problem...
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.655npmiki,
Ajd , probacu 022-53-884 , ali jel mogu ja njima da posaljem
bilo sta da bi downloadovao nesto? Jel radi non-stop ?
10x.
pascal.657sale.car,
HI!
Da li neko moze da mi kaze kako se ocitavaju podaci sa
com1 porta... uglavnom me zanima mis... tj. da budem
precizan kako da ocitam podatak sa 2 pina.. ja mislim
da je to Receive Data pin...
E, sad.. ja sam to kao uradio medjutim sta se desava..
Kada ja spojim pin 2 sa pozitivnim naponom on mi nekad
prihvati da ima napona a nekad ne... tj. nisam uspeo
da provalim kako on prepoznaje da li ima napona...
Ono klasicno ima/nema ne pali jer jednostavno nije tako...
Ako nisam jasan recite :)
Cya
pascal.658superhik,
Da li neko može ukratko da mi objasni osnovnu logiku
programiranja TSR programa u TP 6.0
Konkretno mislim na ideju koliko max memorije bi trebao da
zauzima i tako to (odnosi se na programe u globalu...)
pascal.661space.ace,
Imam jedan minorni pro(m)blem...
Rešio sam ponovo da se zezam sa VGA programiranjem, pa sam ispočetka
počeo da pišem unit za rad sa time. Sve je fino prošlo, sve procedure
koje su mi trebale sam napisao, međutim video sam fini algoritam
Triple Sine Plasme, koji sam lako izradio, no međutim nisam uspeo da
prevedem "parče koda" koje treba da puni jedan niz sa vrednostima
sinusa uglova. Davno sam to radio, pa se i ne sećam kako sam to jednom
izveo. Imam original asm kod te procedure, pa sam hteo da prevedem
na Turbo Pascal asm.
Original asm izgleda ovako :
*****
data segment ;written for the a86 assembler
org 200h
cos db 64*3 dup 0
sin db 64+256 dup 0
data ends
code segment
org 100h
start:
mov bx,0798fh ;initial position
xor cx,cx ;initial velocity
mov bp,512 ;
Iloop:
mov ax,-39
imul bx
add cx,dx
add bx,cx
mov cos[bp],bh
dec bp
jns Iloop
end
****
Kada sam ga preveo na Pascal asm izgledalo je ovako :
****
type blah = array [0..600] of integer;
procedure punicos(var coss:blah); assembler;
label start,loop; {može i bez ovoga, sa onim @start i @loop, ali mi je }
var i:integer; {lakše ovako :) }
asm
start:
mov ax,0798fh
xor cx,cx
mov bp,512
loop:
mov ax,-39
imul bx
add cx,dx
add bx,cx
mov coss[bp], ax { coss[bp] je niz za čuvanje...}
dec bp
jns loop
end;
****
Međutoa, to ne štima! Nesećam se što, pa se obraćam svima vama da
pomognu. Inače, za ovo prijavljuje "invalid register combination",
a čas "invalid opcode or operand".
Još mi samo to fali pa da upotpunim svoj mali intro :), pa pomozite.
Pozdrav, aco.
pascal.663acafaca,
Kako se gasi kursor u paskalu?
pascal.664sale.car,
Ac> Kako se gasi kursor u paskalu?
Evo ti mali prg...
Jos sam ga i spakovao !! ;)
Cya
pascal.665sale.car,
E evo ga fajÚ]l :)
hide.arjpascal.666space.ace,
>> Da li neko moze da mi kaze kako se ocitavaju podaci sa
>> com1 porta... uglavnom me zanima mis... tj. da budem
Šta te konkretnije zanima, sam rad sa mišem ili sam rad sa comm portom.
Ako ti treba ovo prvo, evo ti source za init i rad sa mišOm, pa ako ti
je ok, super.
*****
var
Mouse : record
X, Y : word;
Buttons : word;
end;
Procedure InitMouse;
begin
asm
mov ax, 0
int $33
end;
end;
Procedure ShowMouse;
begin
asm
mov ax, 1
int $33
end;
end;
Procedure HideMouse;
begin
asm
mov ax, 2
int $33
end;
end;
Procedure MouseButtons;
begin
asm
mov ax, 5
mov bx, 0 { svi dugmići }
int $33
mov mouse.buttons, ax
end;
end;
Procedure MouseWhere;
begin
asm
mov ax, 3
int $33
mov mouse.x, cx
mov mouse.y, dx
end;
end;
****
Valjda sam pomogao...
pascal.667legend,
Dakle, očajnički mi treba procedura koja će da mi rotoira neki 3D objekat
u odnosu na x,y,z ose i to za uglove a,b,c (za svaku osu po jedan)...
Imam koordinate tačaka i to u trodimenzionalnom nizu i to ovako:
tacke[1..6, 1..4, 1..3]:single;
broj 4ugloa broj tačke 1=x,2=y,3=z
u telu u 4uglu koodrinata tač2ke
E sad, ako je nekom nešto jasno, nek mi napiše neku proceduru koju ću
da pozovem sa rotate(a,b,c) i da mi posle u istom nizu vrati koordinate
tačaka rotiranih za odrađen ugao...
Pliz, nije hitno koliko je bitno, a probao sam sa raznim sourceovima za
neke 3d izmotancije i ništa ne mogu da primenim (ili sam glup, ili mi nešto
ovbde smrdi, ne zvao se ja lorimer, a i ne zovem se tako ;)))))))
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.668legend,
-=->>> Ovo poslednje je ql jer je tip napisao program za gouradovo
-=-> senčenje a
-=-> Ovo meni posebno treba, pa ako bi bio dobar neko da mi to skine,
-=-> ili bar da mi da no. telefona tog BBS-a, da bih sam "skinuo".
-=-> Hvala veliko!
Dakle... evo ti ali neznam koliko će da ti pomogne... Ja sam nešto brčkao
oko 3d crtanja i sračunavanja perspektive, i došao sam do trijijalnog
rešenja koje RADI! Iscrtavanje ide ko po loju ali se mučim sa rotiranjem
objekata... Ako sam dobro provalio SOR uz ovu poruku bi trebalo da stigne
ono gouradovo senčenje, a kad napišem dokumentaciju za moje čokotalo i
njega ću da obesim ;))) In the meen time, ako neko zna kako ide rotiranje
nekog tela, nek kači primer obavezno!
e,da... treba mi još i kako da izbegem treperenje kod pomeranja neke
animacije... Do sada sam radio sa onim iscrtaj_sliku, Obriši_sliku pa sve
ispočetka... Nije se toliko primećivalo sa malim objektima i sa
translacijom, ali kako sam povećavao objekte i probao retaciju sve je više
treperelo...
Čuo sam da se to radi sa nekakvim upoređivanjem bafera ali neznam kako se
to
radi... Valjda treba da se video bafer (trenutni) uporedi sa nekim delom
memorije u kome je slika koja treba da se iscrta pa da se primeni AND i NOT
na to što se dobije i taj dobijeni deo da se iscrta... Valjda...
Ajd ako neko zna nek me prosvetli...
btw, gde je video memorija kod herculesa za grafiku?
Legend of LoC!/eXplosives
Alone till doom's day!
gourad.rarpascal.669hercog,
** Pliz, nije hitno koliko je bitno, a probao sam sa raznim sourceovima za
** neke 3d izmotancije i ništa ne mogu da primenim (ili sam glup, ili mi nešto
A da ti baciš amo te sourcove :) pa da ih pogledamo?
Sale
pascal.670dule.n,
> btw, gde je video memorija kod herculesa za grafiku?
Počinje na $B000:$0000 a veličina je $7E96.
Nulta linija počinje od $B000:$0000 pa sledećih 90 bajtova (720/8).
Na sledećih 90 bajtova je četvrta linija, iza nje osma, itd.
Prva linija počinje od $B000:$2000, pa peta, deveta,...
Sve po modulu 4.
Druga, šesta,..., od $B000:$4000.
Treća, sedma,..., od $B000:$6000.
Normalno svaki set je veličine $1E96.
pascal.671sale.car,
>> Da li neko moze da mi kaze kako se ocitavaju podaci sa
>> com1 porta... uglavnom me zanima mis... tj. da budem
Sp> Šta te konkretnije zanima, sam rad sa mišem ili sam rad sa comm
Sp> portom. Ako ti treba ovo prvo, evo ti source za init i rad sa mišOm, pa
Sp> ako ti je ok, super.
Sp> Valjda sam pomogao...
Ma imam puno unita za misa, ali meni treba cisto com port !
Ako imas nesto javi...
pascal.672sale.car,
Le> e,da... treba mi još i kako da izbegem treperenje kod pomeranja
Le> neke animacije... Do sada sam radio sa onim iscrtaj_sliku,
Le> Obriši_sliku pa sve ispočetka... Nije se toliko primećivalo sa
Trebas da usaglasis refresh monitora... Kapiram da je to
isto kao kod onog smooth scroll-a.
Daklem, nacrtas sliku pa cekiras da li je prosao zrak za
osvezavanje slike, pa ako nije (ili jeste) onda ponovo
iscrtas...
Jao... bas sam debil... ajde neka neko objasni coveku ;))
U principu znam kako ali uvek dobijem 3 na pismenom iz
srpskog sto znaci da ne znam da slozim recenicu ;)))
Cya
pascal.673evlad,
Y> Ma imam puno unita za misa, ali meni treba cisto com port !
Y> Ako imas nesto javi...
imaš u starijim tomovima ove konferencije tema cccc ili pascal find UART.
pascal.674space.ace,
>> e,da... treba mi još i kako da izbegem treperenje kod pomeranja neke
>> animacije... Do sada sam radio sa onim iscrtaj_sliku, Obriši_sliku pa sve
Jednostavno: treba da sačekaš da mlaz koji osvežava ekran dođe do dna
ekrana, i kada dođe, ti baciš to što imaš u video memoriju (dok se
mlaz sprema da krene od vrha), tako da će tog treperenja nestati.
Ne znam u čemu pišeš programe, pa ti šaljem parče sorsa u asm-u, koji vrlo
lako možeš da prebaciš u koji 'oćeš jezik.
---- ovde počinje ---
mov dx, 3dah
L1:
in al, dx
and al, 08h
jnz L1
L2:
in al, dx
and al, 08h
jz L2
---a ovde završava---
Taj kod ubaciš kao proceduricu ili makro, pa ga pozivaš pre nego što
bacaš bilo šta u video memoriju, tj. ako vršiš neke izmene većih razmera
(animacije, fade-out, summing to grey, itd.).
>> Čuo sam da se to radi sa nekakvim upoređivanjem bafera ali neznam kako se
To je double buffering, kada alociraš jedan niz od 64K (ekvivalentan video
memoriji), i u njega sve upisuješ. Onda njega celog bacaš u video, čime se
izbegava direktno prčkanje sa nizom video memorije, a korisno je ako hoćeš
da pripremiš ekran pa da onda fadein-uješ...
Ako nisam bio jasan, ti se malo deri... :)
pascal.675nlazic,
>> Dakle, očajnički mi treba procedura koja će da mi rotoira neki 3D objekat
>> u odnosu na x,y,z ose i to za uglove a,b,c (za svaku osu po jedan)...
Skini fajl \sezam\rsoft\r111del.zip.
pascal.676nlazic,
>> e,da... treba mi još i kako da izbegem treperenje kod pomeranja neke
>> animacije... Do sada sam radio sa onim iscrtaj_sliku, Obriši_sliku pa sve
>> Čuo sam da se to radi sa nekakvim upoređivanjem bafera ali neznam kako se
Pogledaj Računare 121. Naći ćeš rešenja za većinu ovakvih problema. Inače,
propratna arhiva za dotični tekst bi trebalo uskoro da se pojavi u rsoft-u.
pascal.677sale.car,
Ev> imaš u starijim tomovima ove konferencije tema cccc ili pascal find
Ev> UART.
Danke, danke
... Pozdrav, Sale.Car
pascal.678space.ace,
>> Ma imam puno unita za misa, ali meni treba cisto com port !
>> Ako imas nesto javi...
Imao sam nešto o SERIAL portovima, od hardverske strane pa do softverske.
Mislim da je malo bajato, ali ako će ti pomoći, javni mi da potražim.
pascal.679space.ace,
>> Dakle, očajnički mi treba procedura koja će da mi rotoira neki 3D objekat
>> u odnosu na x,y,z ose i to za uglove a,b,c (za svaku osu po jedan)...
Teorijska objašnjenja takvih procedura možeš naći u onim E-časopisima,
kao Alter ili Space (nije nikakva reklama :). Tamo sam našao odlična
objašnjenja za 3D crtanje i rotiranje...
>> E sad, ako je nekom nešto jasno, nek mi napiše neku proceduru koju ću
>> da pozovem sa rotate(a,b,c) i da mi posle u istom nizu vrati koordinate
Nisi uopšte boi jasan u tvojoj poruci što se tiče tih tvojih koordinata :)
Pošalji malo source-a, pa da znamo o čemu se tačno radi.
(ako si udario embargo, onda bar bolje objasni... :).
pascal.680sale.car,
!?!> Imao sam nešto o SERIAL portovima, od hardverske strane pa do
!?!> softverske. Mislim da je malo bajato, ali ako će ti pomoći,
!?!> javni mi da potražim.
űDaaaajj ;)
Nisam nasao nista osim nekis sitnica ali one su vezane za modem,
meni treba bas da ja spajam napon direktno na pinove i da tako
ocitavam ima li ili nema napona...
10x unapred...
pascal.681obren,
Jeste malo zakasneo odgovor, no dobro... :)
> mov bp,512
...
> mov coss[bp], ax { coss[bp] je niz za čuvanje...}
> dec bp
BP registar je rezervisan za kompajler i ne možeš ga koristiti na način
na koji si zamislio (običan prepev ASM -> PAS) bez posebne pažnje.
Razlog je taj što BP služi za pristupanje lokalnim promenljivama koje su
na steku i njegovo menjanje može da dovede do pada programa ako ne znaš
tačno šta radiš.
Međutim, i pored toga ne bi trebalo da ti kompajler brani da ga koristiš
na bilo koji način ako je to u okviru mogućeg načina adresiranja. U tvom
slučaju mislim da ne prolazi ona linija koju si komentarisao. Pomoću BP
treba da se referencira lokacija koja je u stack segmentu a "coss" se
istovremeno tretira kao far pointer zbog onog Var u deklaraciji funkcije
pa sve skupa nema smisla.
Naime, kada deklarišeš parametar kao VAR trebalo bi (davno sam radio u
Pascalu, nisam siguran) da ti se prosleđuje far pointer na objekat koji
se javja kao argument kod poziva. U tom slučaju na stek idu i segment i
ofset objekta u memoriji pa je jedna od varijanti da ih pokupiš sa:
les di, coss
nakon čega ti ES:DI pokazuje na početak niza u memoriji. Siguran sam da
ćeš se za dalje snaći... :)
pascal.682legend,
-=-> ** Pliz, nije hitno koliko je bitno, a probao sam sa raznim
-=-> sourceovima za ** neke 3d izmotancije i ništa ne mogu da primenim
-=-> (ili sam glup, ili mi nešto
-=-> A da ti baciš amo te sourcove :) pa da ih pogledamo?
Pa okačio sam pre neki dan oko o Gourad senčenju... E pa iz toga ima neka
procedura koja ortira tačke nekog tela na neki ugao oko neke ose, ali
ja NIŠTA ne kapiram... Poslaću i moj source a vi da mi samo dopišete
proceduru... jel ok?
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.683hercog,
** proceduru... jel ok?
Ajd da vidimo :)
Sale
pascal.684legend,
-=->>> Dakle, očajnički mi treba procedura koja će da mi rotoira neki
-=->>> 3D objekat u odnosu na x,y,z ose i to za uglove a,b,c (za svaku
-=-> osu po jedan)...
-=-> Teorijska objašnjenja takvih procedura možeš naći u onim
-=-> E-časopisima, kao Alter ili Space (nije nikakva reklama :). Tamo
-=-> sam našao odlična objašnjenja za 3D crtanje i rotiranje...
Đe da nađem te časopise?
-=->>> E sad, ako je nekom nešto jasno, nek mi napiše neku proceduru
-=->>> koju ću da pozovem sa rotate(a,b,c) i da mi posle u istom nizu
-=-> vrati koordinate
-=-> Nisi uopšte boi jasan u tvojoj poruci što se tiče tih tvojih
-=-> koordinata :) Pošalji malo source-a, pa da znamo o čemu se tačno
-=-> radi. (ako si udario embargo, onda bar bolje objasni... :).
Pa poslaću source, samo da ga malo sredim da možete da ga razumete... ;)
A do tad, imaš niz TACKE (trodimenzionalan) u kome su ti koordinate tačaka
Pošto ja hoću da rotiram kocku, onda niz izgleda ovako:
TACKE [1..6, 1..4, 1..3:single];
--------------\ | | -------------------\ |
Ovo je broj | | ---------------\ | Ovo su koordinate | |
4ugla u telu, |__| Ovo je broj | | temena 4ugla, 1=x | |
pošto je kocka | temena u 4uglu | | 2=y, 3=z koodrinata|--|
ima 6 komata | temena idu u |--| te tačke |
--------------/ smeru suprotnom| -------------------/
kazaljki na |
tic-taku |
-------------- /
Joj, jel sad malo jasnije???
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.685space.ace,
>> BP registar je rezervisan za kompajler i ne možeš ga koristiti na način
>> na koji si zamislio (običan prepev ASM -> PAS) bez posebne pažnje.
>> Razlog je taj što BP služi za pristupanje lokalnim promenljivama koje su
>> na steku i njegovo menjanje može da dovede do pada programa ako ne znaš
Ma znao sam ja sve to, ali me zbunjivalo to što ponekad sve to i prođe, a
češće ne prođe, pa nisam ni sam znap šta da mislim...
>> les di, coss
U očajanju sam probao i lds (ne znam ni sam što, valjda videh u nekom primeru)
ali ni to nije uspelo, još jedino ovo da probam, ili prevodim celo parče koda
na čist Pascal.
>> nakon čega ti ES:DI pokazuje na početak niza u memoriji. Siguran sam da
>> ćeš se za dalje snaći... :)
Valjda će uspeti...
pascal.686legend,
-=-> ** proceduru... jel ok?
-=-> Ajd da vidimo :)
Ux, dal sam ja vama rekao da ću da vam dam program ili šta, uglavnom
nije bitno... evo mog programa, pa ga malo preuredite... Nisam ništa
obeležavao, tako da ako vam nešto nije jasno, vi vičite pa ću da
objašnjavam... Inače, hvala onom ko je rekao (neznani junak ;))) za onaj
r111del.zip jer sam tamo našao kako se rotora sa matricama... e sad, dal
sam ja lepo pomnožio matricu, to ostaje da se proveri, ali program JOŠ
UVAK ne radi!
(ako sa ovom porukom ne stigne program - stići će sa nekom od narednih ;))
Legend of LoC!/eXplosives
Alone till doom's day!
3dloc.zippascal.687space.ace,
>> Đe da nađem te časopise?
Pa imaš ih na SezamNet-u, u diru sezam...
>> Pa poslaću source, samo da ga malo sredim da možete da ga razumete... ;)
Šta ima da ga sređuješ, dobro smo potkovani da možemo da razumemo svakakvo
đubre ;)))
>> Joj, jel sad malo jasnije???
PA nije da nije, mada je još uvek pomalo mutno... :)
pascal.688legend,
-=-> ** proceduru... jel ok?
-=-> Ajd da vidimo :)
Ux, dal sam ja vama rekao da ću da vam dam program ili šta, uglavnom
nije bitno... evo mog programa, pa ga malo preuredite... Nisam ništa
obeležavao, tako da ako vam nešto nije jasno, vi vičite pa ću da
objašnjavam... Inače, hvala onom ko je rekao (neznani junak ;))) za onaj
r111del.zip jer sam tamo našao kako se rotora sa matricama... e sad, dal
sam ja lepo pomnožio matricu, to ostaje da se proveri, ali program JOŠ
UVAK ne radi!
(ako sa ovom porukom ne stigne program - stići će sa nekom od narednih ;))
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.689legend,
-=-> Hvala ti na savetu , ali vec imam 3d studio (sve verzije) :)
-=-> Kao sto sam vec napisao , trebaju mi brze procedure od onih
-=-> obicnih (sin(arctan(y)+ugaoa.....) . Znam da imaju neke
-=-> transformacije koje ubrzavaju racunanje tj. rotiranje tacaka
-=-> x,y,z za neke uglove ax,ay,az.
AXA! Pa to sam i ja radio... To se radi sa matricama, a imaš u računarima
85 (al sam ih izvuko ;) i na sezamu r111del.zip u \rsoft diru! E, sad, ako
si našao rešenje za ono sakrivanje poligona ili još bolje senčenje, kači
odmah ovamo primer... Ja sam nakačio neki gourad.zip gde je neki dasa radio
Gouradovo senčenje u pascalu ali je mešao pascal i asm pa mi to otečava
praćenje... Ako neko provali kako se radi čisto iz pascala nek se dere!
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.691legend,
-=-> ** proceduru... jel ok?
-=-> Ajd da vidimo :)
Ux, dal sam ja vama rekao da ću da vam dam program ili šta, uglavnom
nije bitno... evo mog programa, pa ga malo preuredite... Nisam ništa
obeležavao, tako da ako vam nešto nije jasno, vi vičite pa ću da
objašnjavam... Inače, hvala onom ko je rekao (neznani junak ;))) za onaj
r111del.zip jer sam tamo našao kako se rotora sa matricama... e sad, dal
sam ja lepo pomnožio matricu, to ostaje da se proveri, ali program JOŠ
UVAK ne radi!
(ako sa ovom porukom ne stigne program - stići će sa nekom od narednih ;))
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.692legend,
-=-> Hvala ti na savetu , ali vec imam 3d studio (sve verzije) :)
-=-> Kao sto sam vec napisao , trebaju mi brze procedure od onih
-=-> obicnih (sin(arctan(y)+ugaoa.....) . Znam da imaju neke
-=-> transformacije koje ubrzavaju racunanje tj. rotiranje tacaka
-=-> x,y,z za neke uglove ax,ay,az.
AXA! Pa to sam i ja radio... To se radi sa matricama, a imaš u računarima
85 (al sam ih izvuko ;) i na sezamu r111del.zip u \rsoft diru! E, sad, ako
si našao rešenje za ono sakrivanje poligona ili još bolje senčenje, kači
odmah ovamo primer... Ja sam nakačio neki gourad.zip gde je neki dasa radio
Gouradovo senčenje u pascalu ali je mešao pascal i asm pa mi to otečava
praćenje... Ako neko provali kako se radi čisto iz pascala nek se dere!
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.693legend,
-=->>> Dakle, očajnički mi treba procedura koja će da mi rotoira neki
-=->>> 3D objekat u odnosu na x,y,z ose i to za uglove a,b,c (za svaku
-=-> osu po jedan)...
-=-> Teorijska objašnjenja takvih procedura možeš naći u onim
-=-> E-časopisima, kao Alter ili Space (nije nikakva reklama :). Tamo
-=-> sam našao odlična objašnjenja za 3D crtanje i rotiranje...
(ako sam već pitao izvini, malo sam senilan u poslednje vreme ;)
Ako možeš, nakači te časopise ovde (ili na mail ako nikog ne
interesuje) ili mi reci gde ih ima... E, da, sad se setih... jel ima neko
onaj $40 časopis? Ako ima nek ga kači na mail...
Legend of LoC!/eXplosives
Alone till doom's day!
pascal.694vitez.koja,
#=> Ux, dal sam ja vama rekao da ću da vam dam program ili šta,
#=> uglavnom nije bitno... evo mog programa, pa ga malo preuredite...
Jeb'o te program! Obriši taj exec kad ga pošalješ.
sk
pascal.695qpele,
Pitanje :
Kako da u paskal programu iskoristim ceo RAM a na samo bednih 640K ?
pascal.696sfilip,
Može li neko da mi pošalje / objasni proceduru putpixel za neki od VESA modova
sa 256 boja? I nemo' da me neko uputi na stare brojeve računara il PC-a koje
nemam ;)
pascal.697acafaca,
Hvala ti mnogo. U svim programima mi trepće
po ekranu.
pascal.698acafaca,
Kako da upišem na zadnjem mestu na ekranu nešto?
Na mestu (25,80) uvek mi pomeri gore sve.
pascal.699stameni,
Na primer, pomoću pseudoniza mem:
var
ch: char;
begin
ch := 'J';
mem[$B800:3998] := ord(ch)
end.
pascal.700acafaca,
Zar ne može drugačije?
Na primer ako mi treba da stalno nešto iscrtavam preko
ekrana zar moram da upisujem u memoriju.
Ne znam da li je brže sa Write nego sa mem.
pascal.701sfilip,
> Ne znam da li je brže sa Write nego sa mem.
nije brže, najbrže ti je direktno u memoriju :)
/nego, řÚzli neko ono u vezi putpixel za vesa mod sa 256 boja? :)/
pascal.702sale.car,
HI!
Dal' bi neko bio ljubazan da mi objasni kako da napravim jedan
tsr... Konkretno, hocu ovaj fajl da prebacim da mi bude tsr ali
ne znam kako... Ako ima neka dobra dusa bio bih do groba
zahvalan...
Pozdrav...
steper.arjpascal.703igorl,
> Dal' bi neko bio ljubazan da mi objasni kako da napravim jedan
> tsr... Konkretno, hocu ovaj fajl da prebacim da mi bude tsr ali
Ja sam takodje imao sličan problem, pa sam u SEZAMĐRSOFT
direktorijumu pronašao fajl R093TSR.ZIP i svi problemi su
nestali. Probaj i ti isti recept.
pascal.704sale.car,
HI!
Da li neko zna kako da upisem string na tacno odredjeno
mesto u fajlu !?
Pozdrav...
pascal.705janko,
> Da li neko zna kako da upisem string na tacno odredjeno
> mesto u fajlu !?
Pomoću procedure seek, pa onda upis.
pascal.706sale.car,
Ig> Ja sam takodje imao slican problem, pa sam u SEZAMDRSOFT
Ig> direktorijumu pronasao fajl R093TSR.ZIP i svi problemi su
Ig> nestali. Probaj i ti isti recept.
Hvala... Pogledacu...
... Pozdrav, Sale.Car
pascal.707sale.car,
Ja> Pomocu procedure seek, pa onda upis.
Sto si tako shkrt na recima...
Ajde malo opsirnije...
... Pozdrav, Sale.Car
pascal.708sfilip,
> Ja> Pomocu procedure seek, pa onda upis.
>
> Sto si tako shkrt na recima...
> Ajde malo opsirnije...
prvo assignuješ fajl nekoj text ili kako god 'oćeš file promenljivoj, pa
je onda resetuješ sa reset(f:file), pa onda lupiš seek(f:file, i: longint)
gde ti je i mesto gde 'oćeš da upišeš nešto, i onda koristiš write naredbu.
Btw, sve imaš u pascal helpu :)
pascal.709janko,
> prvo assignuješ fajl nekoj text ili kako god 'oćeš file
> promenljivoj, pa je onda resetuješ sa reset(f:file), pa onda lupiš
> seek(f:file, i: longint) gde ti je i mesto gde 'oćeš da upišeš
> nešto, i onda koristiš write naredbu.
Ja samo ne bih to radio sa text, već sa nekim drugim tipom,
najsigurnije file of bytes... text je "filozofska" stvar...
pascal.710sale.car,
Sf> prvo assignujes fajl nekoj text ili kako god 'oces file promenljivoj,
Sf> pa je onda resetujes sa reset(f:file), pa onda lupis seek(f:file, i:
Sf> longint) gde ti je i mesto gde 'oces da upises nesto, i onda koristis
Sf> write naredbu. Btw, sve imas u pascal helpu :)
Hvala... probacu :)
... Pozdrav, Sale.Car
pascal.711igorl,
Skoro pisah neki program u kojem je, izmedju ostalog, na ekranu
trebalo da bude ispisano koji je procenat posla uradjen do odredjenog
trenutka, ali tu sam naisao na problem,
formula za izračunavanje je smesna:
100 * DoSadUradjenPosao
Procenat = -------------------------
UkupanPosao
Ali paskalu se to ne svidja, zapravo ako je UradjenPosao relativno
mali broj, sve radi OK, ali ako je veći, onda dodje do odredjenog
dela i počne da broji unazad i to sa predznakom -.
npr: ... 28%, 29%, 30%, -29%, -28% ...
Evo ga i programčić koji radi ovu glupost:
Var
DoSadUradjenPosao,
UkupanPosao,
Procenat : Integer;
Begin
UkupanPosao := 675;
For DoSadUradjenPosao := 1 To UkupanPosao Do
Begin
Procenat := (100 * DoSadUradjenPosao) div UkupanPosao;
WriteLn (Procenat);
End;
End.
Probao sam da Procenat deklarišem kao Real, ali onda su rezultati još
gori, inače kod ovog programa, glupost se desi na 48% tj. kad je
DoSadUradjenPosao = 328.
Još jedna stvar, ako napišem:
Procenat := (100 * 328) div UkupanPosao;
WriteLn (Procenat);
Dobijam normalan rezultat tj. 48%, a ne -48%.
Dali neko zna kako ovo da rešim, mucim se već nedelju dana.
pascal.712maksa,
>> Dali neko zna kako ovo da rešim, mucim se već nedelju dana.
program Perc;
function PD(CeoDeo : longint; Obavljeno : longint) : longint;
begin
PD := (Obavljeno*100) div CeoDeo;
end;
var
i : longint;
w : longint;
begin
w := 625;
for i:=1 to w do
writeln('Od ', w, ' uradjeno ', i, ', tj. ', PD(w, i), '%');
end.
PS Fuj paskal. ;)
pascal.713janko,
> function PD(CeoDeo : longint; Obavljeno : longint) : longint;
> begin
> PD := (Obavljeno*100) div CeoDeo;
> end;
Ni ovo nije "nepromociva" funkcija jer je ogranicena na longint
velicinu. Ovde otkazivanje nastupa za znatno vece brojeve, na srecu.
Najbezbednije resenje je koristiti real i onda umesto div koristiti /.
To radi uvek.
pascal.714acafaca,
Još nešto.
Kako da promenim veličinu kursora?
Kao kad uključim insert.
pascal.715dvesic,
> Ali paskalu se to ne svidja, zapravo ako je UradjenPosao relativno
> mali broj, sve radi OK, ali ako je veći, onda dodje do odredjenog
> dela i počne da broji unazad i to sa predznakom -.
Nije do pascala, no do programera :))
Šalu na stranu, ovo je stvar koja se dešava većini ljudi koji rade sa
celim brojevima. Prekoračio si opseg Integer tipa, pa izraz
> Procenat := (100 * DoSadUradjenPosao) div UkupanPosao;
> DoSadUradjenPosao = 328.
tada postaje 32,800 što je taman da prekorači granicu od 32767 za integer
Jedno od rešenja je da pređeš na long tip i da koristiš cast operatore,
nešto kao:
Procenat : Long;
....
Procenat := (100 * long(DoSadUradjenPosao)) div UkupanPosao;
pascal.716sale.car,
Ac> Jos nesto.
Ac> Kako da promenim velicinu kursora?
Ac> Kao kad ukljucim insert.
Evo ti neki uniti za to...
... Pozdrav, Sale.Car
kursor.arjpascal.717mmarkovic,
> formula za izračunavanje je smesna:
>
> 100 * DoSadUradjenPosao
> Procenat = -------------------------
> UkupanPosao
pretpostavljam da je formula u ovom obliku:
Procenat = 100 * DoSadUradjenPosao / UkupanPosao
Pošto se izračunavanja obično, u većini jezika, vrše sa leva u desno,
100 * DoSadaUradjenPosao veoma lako pređe integer opseg.
Napiši formulu ovako:
Procenat = (DoSadUradjenPosao / UkupanPosao) * 100
i stvar je verovatno rešena...
P.S. Mozda i bez zagrada bude OK
pascal.718destructor,
Jel nekom poznato kako da iz pascala skinem iz memorije
rezidentni program(znaci da oslobodim svu memoriju koju
zauzima), koji je takodje pisan u pascalu(by me :))?
10x ...
pascal.719sale.car,
HI...
Kako da pronadjem odredjeni string u { fajlu !?
Pozdrav...
pascal.720acafaca,
Kako da u paskalu napravim slog koji treba da pročitam
iz neke datoteke?
Na primer da ne pišem:
type Slog=record
ime:stringŠ30Ć;
prezime:stringŠ30Ć;
broj:real;
end;
nego da mesto ovih brojeva pišem:
type Slog=record
ime:stringŠxĆ;
prezime:stringŠyĆ;
broj:real;
end;
ili da promenim broj polja u slogu:
type Slog=record
ime:string;
prezime:string;
.
.
.
broj:real;
end;
pascal.721dule.n,
> Kako da u paskalu napravim slog koji treba da pročitam
> iz neke datoteke?
Ako sam te dobro shvatio, ti hoćeš da proširiš slog postojeće datoteke.
To ćeš uraditi tako što ćeš da prepakuješ celu datoteku.
Formiraš novu datoteku čiji će slog biti modifikovan, čitaš slog po slog
iz stare datoteke, prilagodiš ga slogu nove datoteke i upisuješ u novu.
Dule
pascal.722sale.car,
Ac> nego da mesto ovih brojeva pišem:
Ac> type Slog=record
Ac> ime:stringŠxĆ;
Ac> prezime:stringŠyĆ;
Ac> broj:real;
Ac> end;
Ovo nece moci :)
A odgovor ti je vec stigo... :)
... Pozdrav, Sale.Car
pascal.723acafaca,
Ne.
Hoću da u mom programu ne navodim specijalno za tu datoteku
strukturu sloga. Nego da program prepozna strukturu
datoteke, znači da prepozna koliko ima slogova i koje
dužine ako su string tipa, i da može da je čita kao
random datoteku.
pascal.724acafaca,
Može li nekako sa pointerima da se izvede?
pascal.725dule.n,
> Ne.
> Hoću da u mom programu ne navodim specijalno za tu datoteku
> strukturu sloga. Nego da program prepozna strukturu
> datoteke, znači da prepozna koliko ima slogova i koje
> dužine ako su string tipa, i da može da je čita kao
> random datoteku.
To neće da može, ne bar na lak način.
Uvek ostaje mogućnost da čitaš datoteku bajt po bajt i da interpretiraš
to što dobiješ kao stringove.
Ako su stringovi u pitanju, pre svakog polja u okviru svakog polja
podacima prethodi jedan bajt u kome se nalazi dužina sledećeg polja.
Na primer ako je slog bio sa dva polja dužina 3 i 2:
type slog=record
s1:stringŠ3Ć;
s2:stringŠ2Ć;
end;
onda ćeš čitajući datoteku bajt po bajt dobiti:
1. bajt: 3
2. bajt: neka vrednost
3. bajt: neka vrednost
4. bajt: neka vrednost
5. bajt: 2
6. bajt: neka vrednost
7. bajt: neka vrednost
8. bajt: 3
9. bajt: neka vrednost
...
To ti je to.
Samo što ćeš imati problem da prepoznaš koliki je slog u stvari. :(
BTW, šta će ti sve ovo.
pascal.726acafaca,
Hoću da napravim program za listanje i editovanje
datoteke pa mi treba za to.
Lako ću ja da pročitam za listanje, ali kad treba da
upišem u datoteku sa write(datoteka,Slog); tu je problem.
pascal.727vper,
Nov sam ovde!
Pa me interesuje kako iz paskala mogu modemom
nazvati nekoga!
Ako neko ima neki tpu ili predlog!
Bicu mu vecno zahvalan
pascal.728sale.car,
Vp> Nov sam ovde!
Vp> Pa me interesuje kako iz paskala mogu modemom
Vp> nazvati nekoga!
Vp> Ako neko ima neki tpu ili predlog!
Pa prvo moras da otkucas ..log 1
;)))
Salim se...
Imas gomilu fajlova i poruka u ovoj konf.
o tome... Za pocetak, ako ti se bas ne citaju
sve poruke, probaj jedno:
..co re pascal /a /t
cisto da pokupis datoteke...
Ako hoces javi da bacim ovde jednu arhivu
sa gomilom comm stvari...
... Pozdrav, Sale.Car
pascal.729sale.car,
Neko je skoro trazio prg. za brisanje dir-ova...
Evo ga...
(Malo zakasnjenje ;)))
... Pozdrav, Sale.Car
cldir.arjpascal.730sale.car,
Prvi deo komunikacionih datoteka...
... Pozdrav, Sale.Car
comm.arjpascal.731sale.car,
Drugi deo komunikacionih datoteka...
... Pozdrav, Sale.Car
comm.a01pascal.732vitez.koja,
#=> Kako da pronadjem odredjeni string u { fajlu !?
Čitaš liniju po liniju, i proveravaš sa StrPos (beše).
pascal.733sale.car,
#=> Kako da pronadjem odredjeni string u { fajlu !?
Vi> Čitaš liniju po liniju, i proveravaš sa StrPos (beše).
Da, hvala... nasao sam u medjuvremenu :)
... Pozdrav, Sale.Car
pascal.734sale.car,
HI...
Da li neko moze da mi posalje neki txt (bolje na srpskom)
kako da pocnem da pisem tsr-ove... Jos bolje je ako
postoji neki kostur pa ja samo da ubacujem sta mi treba...
Hvala unapred !!
... Pozdrav, Sale.Car
pascal.735acafaca,
Kad prebacim proceduru u jedan .tpu prevedem
i onda mi se izbrišu procedure koje si mi poslao
HideCursor i ShowCursor.
Je li to zbog onog assembler?
pascal.736janko,
> Da li neko moze da mi posalje neki txt (bolje na srpskom)
> kako da pocnem da pisem tsr-ove... Jos bolje je ako
> postoji neki kostur pa ja samo da ubacujem sta mi treba...
> Hvala unapred !!
A da malo pogledaš po sezamovim direktorijumima i konferencijama?
Ima i kostura i objašnjenja i svega ostalog...
pascal.737nenad,
Novo:
os2\*.*
------------------
vp11demo.zip 1720k ű Virtual Pascal v1.1, potpuno funkcionalan demo, BP komp.
Evo nečega što će voleti svi koji su ikada programirali u
Borland/Turbo Pacal-u. U pitanju je Virtual Pascal 1.1, odličan
32-bitni OS/2 kompajler, praktično (koliko god je to moguće i
ima smisla) 100% kompatibilan sa svojim uzorom, sa većinom
ektenzija preuzetim iz Delphi-ja.
Nije ga pravio Borland već ga je pisao 5 godina jedan ruski
matematičar iz nekog instituta pored Černobila, "od nule",
u asembleru. Da je u pitanju perfekcionista vidi se iz gotovo
svakog dela ovog paketa, po brzini startovanja, kompajliranja,
veličini i optmizaciji koda koji generiše.
Pre oko godinu dana kada su ostali bez plata on je svoj kompajler
ostavio na internet i potražio zainteresovane da ga otkupe. Javila
se jedna britanska firma, preselili su ga sa porodicom na Ostrvo i
rezlultat je ovo - potpuno funkcionalna demo verzija (fali samo
detaljan help - osnovni postoji) i nemate pravo na distribuciju
napravljenih programa.
Uključeni su i PM i full-screen IDE (kombinacija Borland-ovog IDE-a
i Turbo Debuger-a), komand-line kompajler, RTL (standarne Pascal i
Delphi biblioteke, uključujući i TurboVision - bez sorsa u demo
verziji). primeri, linker 10 puta brži od IBM-ovog... Programi se
lako portuju.
Full verzija ide na CD-u i sadrži još i više (puno primera, RTL u
sorsu, pečeve za razne BP/TP biblioteke da se mogu iskoristi u VP-u).
Najavljen je i izlazak Delphi-like razvojnog okruženja.
Preporuka! :)
pascal.738sale.car,
Ac> Kad prebacim proceduru u jedan .tpu prevedem
Ac> i onda mi se izbrišu procedure koje si mi poslao
Ac> HideCursor i ShowCursor.
Ac> Je li to zbog onog assembler?
Cekaj... da li te kapiram...
Prebacis HideCursor i ShowCursor u unit, prevedes i one se
izbrisu iz unita !?!?!?
Hmm... ajde ipak ti formulisi lepo problem :))))
... Pozdrav, Sale.Car
pascal.739sale.car,
Ja> A da malo pogledaš po sezamovim direktorijumima i konferencijama?
Ja> Ima i kostura i objašnjenja i svega ostalog...
Btw, ja sam od onih koji kad pocinju da prate temu, prvo
skinu sve poruke, procitaju ih pa onda krecu...
Do sada jos nisam naleteo na tako nesto... Btw, ima u jednom
dir-u kostur za tsr ali za C... Za pascal jock...
Any Help !?
... Pozdrav, Sale.Car
pascal.741nbjvsa,
Imam problem koji se svodi na sledeće:
var
p1,p2: ^tip;
begin
New(p1);
New(p2);
p2:=p1;
...
Dispose(p1);
Dispose(p2);
^
Ovde se javlja greška; naime, pošto p2 pokazuje
na isto mesto u mem. gde i p1, posle uklanjanja p1, p2 ne
može da se ukloni iz memorije. Kako da ga uništim?
pascal.742qpele,
Nema potrebe da brises p2 jer si vec sa dispose(p1) oslobodio mesto
u memoriji na koje oba pokazuju.
pascal.743nbjvsa,
>> Nema potrebe da brises p2 jer si vec sa dispose(p1) oslobodio mesto
>> u memoriji na koje oba pokazuju.
Tačno, ali memorija mi ostaje kraća za SizeOf(tip) bajtova,
provereno...
pascal.744ognjen,
)-> Tačno, ali memorija mi ostaje kraća za SizeOf(tip) bajtova,
)-> provereno...
Da i to je ona memorija na koji je pokaziva p2 pre nego što si
uradio p2:=p1; Adresa te memorije je nepovratno izgubljena, moraš
je sačuvati. Na primer:
sacuvaj:=p2;
p2:=p1;
...
dispose (p1); { Ili p2, svejdno je, to je ista memorija }
dispose (sacuvaj);
Voila!
pascal.745nbjvsa,
>> sacuvaj:=p2;
>> p2:=p1;
>> ...
>> dispose (p1); { Ili p2, svejdno je, to je ista memorija }
>> dispose (sacuvaj);
Onda se postavlja pitanje šta je sa adresom memorije na koju je
pokazivao sacuvaj pre nego što je urađeno sacuvaj:=p2;
tj. dolazimo do istog problema, i dalje fali sizeof(tip) bajtova u
memoriji...
pascal.746nbjvsa,
Rešeno na veoma jednostavan način korišćenjem procedura Mark i
Release :)
var
p: pointer;
p1,p2: ^tip;
begin
Mark(p);
New(p1);
New(p2);
p2:=p1;
...
Release(p)
end.
Ovo 100% oslobađa svu memoriju na heapu koja je bila zauzeta počev od
onda kada je stavljeno Mark(p) (tj. p od tada markira mesto na
heapu počev od koga će se sa Release(p) obrisati sve dinamičke
promenljive sa heapa).
pascal.747bokir,
> Onda se postavlja pitanje šta je sa adresom memorije na koju je
> pokazivao sacuvaj pre nego što je urađeno sacuvaj:=p2;
> tj. dolazimo do istog problema, i dalje fali sizeof(tip) bajtova u
> memoriji...
Ne fali ništa, jer nisi alocirao memoriju za sacuvaj. On je
pokazivao na neku adresu koja je bila SLOBODNA.
Da si kojim slučajem pre dodele nešto pisao u sacuvaj, vrlo je
verovatno da bi ti se računar blokirao.
pascal.748nbjvsc,
>> Ne fali ništa, jer nisi alocirao memoriju za sacuvaj. On je
>> pokazivao na neku adresu koja je bila SLOBODNA.
>> Da si kojim slučajem pre dodele nešto pisao u sacuvaj, vrlo je
>> verovatno da bi ti se računar blokirao.
Da, naravno, moj previd, stavio sam New(sacuvaj)...
Bez toga radi kako treba, ali Mark/Release je ono što najbolje (tj.
najbrže) radi u konkretnom programu koji sam pisao :)
Sve u svemu, hvala svima za pomoć :)
pascal.749space.ace,
>> Onda se postavlja pitanje šta je sa adresom memorije na koju je
>> pokazivao sacuvaj pre nego što je urađeno sacuvaj:=p2;
Pa nemoj mu davati da pokazuje na bilo šta, ostavi ga praznog :).
Deklariši promenljivu, ali nemoj joj dodeljivati memorijsku adresu,
pa kad staviš sacuvaj:=p2, dodeliće mu se p2.
pascal.754vuja,
Pa jed ako se radi o TEXT rezimu ondak: MEM[B800:160*y+x]
za kolor monitor a MEM[B000:160*y+x] za mono.
Za °─graficki rezim MEM[A000:320*y+x]. 320x200 256
°─
pascal.755vuja,
A ako je mod koji zahteva vise memorije od 64kb moras da menjas i banke.
pascal.756space.ace,
>> Kako mogu,da procitam sta je napisano na odredjenom delu
>> ekrana [npr. 20,5] ?
Probaj sa čitanjem iz text memorije na $B000:y*25+x, ovako iz glave
mislim da može (tako sam radio za video memoriju na $A000 ).
pascal.758nenad,
Evo unit-a i aplikacije-primera za rad sa CD-om direktno iz
Pascala. Sve je u dato sorsu, za Virtual Pascal za OS/2.
cdpas.zippascal.759ppecanac,
Ima li neko programce (proceduru) za resavanje linearnog sistema
'n' jednacina sa 'n' nepoznatih, dakle u pitanju je kvadratna
matrica.
Pozeljno je da matrica sistema bude simetricna, (nije uslov).
Ako moze sto pre, hvala. :)
pascal.760mercedes,
Kako se ukljucuje video mod 800 x 600 x 256 ?
pascal.761qpele,
Evo ti bgi fjalovi koji to obezbedjuju
svgabgi.arjpascal.764profa,
Tek sad videh...
>> Pa jed ako se radi o TEXT rezimu ondak: MEM[B800:160*y+x]
Za karakter u video memoriji u tekst modu rezervišu se dva bajta - jedan za
sam karakter, a drugi za atribut (prva četiri bita predstavljaju boju
karaktera, sledeća 3 boju pozadine, a poslednji označava da li karakter
blinkuje ili ne). Znači, na parnim ofsetima su karakteri, a na neparnim
atributi. Formula za ofset karaktera (x,y) je 2*(80*(y-1)+x-1), pa je
poziv funkcije za čitanje karaktera sa ekrana:
b:=Mem[Segment,2*(80*(y-1)+x-1)]; (za x=1..80, y=1..25)
gde je Segment=$B800 za kolor, $B000 za mono, a b tipa byte.
pascal.765acafaca,
Zna li neko sveobuhvatnu knjigu za TP za Windows?
Havala!
pascal.766emajsijuen,
Ima li neko neki unit za obradu slika[ gif,pcx,bmp ] ?
pascal.767firus,
Em> Ima li neko neki unit za obradu slika[ gif,pcx,bmp ] ?
Oćeš opise formata, pa da radiš sam?
Empire (ex. micotakis)
pascal.768emajsijuen,
Da.
Thank you. ;)
F1 RULES!
pascal.769firus,
Em> Da.
Ok, stiže opis gif-a. Znam da ću a visim zbog ovog, ali šta je tu je.
Empire (ex. micotakis)
gif.rarpascal.770emajsijuen,
Hvala.
pascal.771firus,
Em> Hvala.
Za pcx imaš pascal sorce u dos\prog\pascal ili kako li se već zove.
Imam još opise BMP i IFF formata koliko se sećam. Pa ako ti treba viči.
Empire (ex. micotakis)
pascal.772qpele,
Evo sta mi se upravo dogodilo :
Strartujem ti ja lepo neki moj program ,kad ono mi emm386 prijavi
neku gresku . Ja ti lepo ,kako mi je savetovano resetujem racunar.
Medjutim kada ponovo startujem BP javlja mi se poruka u statusnoj
liniji Can't find sector on drive C . Sta mi je raditi
pascal.773bokir,
> Medjutim kada ponovo startujem BP javlja mi se poruka u statusnoj
> liniji Can't find sector on drive C . Sta mi je raditi
Startuj Norton Disk Doctor ili Scandisk.
pascal.774vector,
-> Evo sta mi se upravo dogodilo :
->
-> Strartujem ti ja lepo neki moj program ,kad ono mi emm386
-> prijavi neku gresku . Ja ti lepo ,kako mi je savetovano
-> resetujem racunar. Medjutim kada ponovo startujem BP javlja mi
-> se poruka u statusnoj liniji Can't find sector on drive C .
-> Sta mi je raditi
Dobar ti je program. ;))
pascal.775clown,
Evo jedan zadatak za sve koji imaju (ne)srecu da progrramiraju u
pascalu:
Napisati program koji sabira dva velika cela broja,koji
imaju ne vise od 50 cifara i mogu da budu pozitivni,negativni ili
nula.Program cita dva reda za dva velika cela broja.Za negativne
brojeve prvi levi simbol u redu je znak minus,a kod pozitivnih
brojeva znak se ne navodi.
Obrazac unosenja podataka:
13579
-123456789012345678901234567890
Obrazac izdavanja rezultata:
13579
-123456789012345678901234567890(+)
--------------------------------------
-123456789012345678901234554311
Ko resi nek mi posalje poruku na email !Hitno!
Hvala,Anna
pascal.776vector,
High, ako neko ima BINOBJ neka salje ovde u konf.
pascal.777vector,
Pored onog BINOBJ-a, treba mi objasnjenje strukture TPU fajlova za verzije
manje od 6.0. Pozeljno 5.5.
pascal.778firus,
Ve> Pored onog BINOBJ-a, treba mi objasnjenje strukture TPU fajlova za
Ve> verzije manje od 6.0. Pozeljno 5.5.
237-23-92 i 237-23-93 FON file server.
login:guest
cd msdos
cd prog
cd pascal
Tamo imaš par lepih programčića. Tebi treba verovatno ovo:
tpu2asm.zip 040393 39722 Symbolic disassembler for TP 5.0
Imaš još par programčića vezanih za igranje sa TPU filovima:
intrfc62.zip 050193 57214 Program to dump TPU files.
scanh300.zip 120893 69436 Scan TP units to build a help file
tpucat10.zip 310593 18238 A TPU Cataloging Utility
Ja nemam ni jedan od njih tako da nemogu ništa više da ti kažem,
ovo sam samo izvadio iz fajla koji se zove allfiles.
Empire (ex. micotakis)
pascal.779vector,
...
-> Tamo imas par lepih programcica. Tebi treba verovatno ovo:
->
-> tpu2asm.zip 040393 39722 Symbolic disassembler for TP 5.0
->
-> Imas jos par programcica vezanih za igranje sa TPU filovima:
->
-> intrfc62.zip 050193 57214 Program to dump TPU files.
-> scanh300.zip 120893 69436 Scan TP units to build a help file
-> tpucat10.zip 310593 18238 A TPU Cataloging Utility
->
-> Ja nemam ni jedan od njih tako da nemogu nista vise da ti kazem,
-> ovo sam samo izvadio iz fajla koji se zove allfiles.
Kako imam dosta korisnih unit-a za verziju 5.5 i 5.0 (mozda cak i za neke
ranije verzije TP-a) treba mi neki TPU konvertor koji ce ih konvertovati
u bilo koju od novijih verzija ( TP 7.0, TP 6.0, BP ), ALI kako ta stvar
jos ne postoji zanima me struktura tih fajlova.
Gore navedeni 'tpu2asm' bi mi koristio, medjutim, da bi ga uopste startovao
potrebna mi je 'turbo.tpl' datoteka iz verzije 5.5 ili/i 5.0 (pozeljno obe).
Ako neko ima neka salje na MAIL posto ne moze u konf.
BTW, uz poruku je spisak unit-a koje imam, pa ako neko hoce neki, neka vice
na MAIL.
──>
tpu.arjpascal.781space.ace,
>> Kako imam dosta korisnih unit-a za verziju 5.5 i 5.0 (mozda cak i za neke
>> ranije verzije TP-a) treba mi neki TPU konvertor koji ce ih konvertovati
Ako imaš sorsove tih korisnih unit-a, samo ih iskompajliraj novijim
kompajlerom.
On the other hand, ako već pitaš kako da konvertuješ, znači da nemaš
sorsove. Am I right?
pascal.782canny,
> Evo, saljem izvorne PAS fajlove nekih virusa. Nisu bas neki,
> ali sta je tu je... ;>
Moderatore, reaguj!
pascal.783janko,
> > Evo, saljem izvorne PAS fajlove nekih virusa. Nisu bas neki,
> > ali sta je tu je... ;>
>
> Moderatore, reaguj!
Do maločas sam bio u dilemi da li je objavljivanje sorsa
virusa nešto opasno samo po sebi.
Činjenica je da je danas postalo veoma lako napraviti virus -- postoji
mnogo lakih načina za to. Čak i lakših od ovoga da se prave u Paskalu.
Dakle, teorijski mogli bi da ostanu tu u "edukativne svrhe", ma šta
to značilo.
Međutim, s obzirom da je ovo MODERISANA konferencija, što će reći da
postoji neko ko je zadužen da brine za kvalitet njenog sadržaja,
obrisao sam poruku ne zato što mislim da će taj čin onemogućiti
rasturanje inkriminisanog sorsa, već kao znak da ne želimo da
podržavamo razvijanje ovakve vrste programa, i da želimo
da sugerišemo da ljudi svoju kretivnu energiju treba da usmeravaju
u razvijanje programa koji će drugima doneti dobro, a ne loše.
Kao autor više besplatnih programa, od kojih su par veoma široko
rasprostranjeni, znam šta pričam. Ako želite da vam se program
proširi, ili da svako zna za vas, daleko bolji način od pravljenja
virusa je da napravite nešto što će ljudima KORISTITI.
pascal.784canny,
> obrisao sam poruku ne zato što mislim da će taj čin onemogućiti
> rasturanje inkriminisanog sorsa, već kao znak da ne želimo da
> podržavamo razvijanje ovakve vrste programa, i da želimo
> da sugerišemo da ljudi svoju kretivnu energiju treba da
> usmeravaju u razvijanje programa koji će drugima doneti dobro,
> a ne loše.
Bravo! Upravo zato sam i ostavio poruku da reaguješ.
pascal.785firus,
Ja> Kao autor više besplatnih programa, od kojih su par veoma široko
Ja> rasprostranjeni, znam šta pričam. Ako želite da vam se program
Ja> proširi, ili da svako zna za vas, daleko bolji način od pravljenja
Ja> virusa je da napravite nešto što će ljudima KORISTITI.
Apsolutno si u pravu da treba praviti nešto što koristi. Meni ljudi
koji prave viruse nisu jasni. Čemu to?
Što se tiče tvoje dileme, da li ih ostaviti ili obrisati, moram da
ti kažem sledeće. Bilo koju varijantu da si izabrao bio bi u pravu.
Obrisao si ih da bi pokazao da je stav uprave, a i tvoj lični, kao
i moj uostalom, da se treba boriti protiv virusa.
Iako se jasno vidi koju stranu zastupam, mislim da si možda mogao i
da ih ostaviš. Ja bi recimo veoma voleo da vidim te sorseve. Ne da
bi ih kompajlirao i poslao negde, to je istovremeno i glupo, i smešno
i tužno. Da hoću mogu da napravim sasvim solidan virus sa sopstvenim
znanjem. Ostaje pitanje koliko je moguće napraviti solidan virus u
paskalu, prvenstveno zbog veličine, ali to me apsolutno ne interesuje,
iz veoma prostog razloga - ja neću da pravim virus.
Bez obzira da li se radi o destruktivnim ili nekim bezopasnim virusima,
proučavanjem sorsa ćeš sigurno nešto da naučiš. Niko ne može da me ubedi
da sve zna. Svako će da nađe nešto što da sada nije znao, nešto što se
možda može upotrebiti i u korisne svrhe. Ne postoji znanje koje je samo
po sebi loše, sve zavisi od toga kako se to znanje upotrebljava. To je
odgovor na tvoje pitanje šta znači "ostaviti ih u edukativne svrhe".
Nije cilj naučiti kako napravitit virus, za to postoje i mnogo bolja
rešenja od proučavanja gotovog sorsa. Prvenstveno mislim na detaljno
obašnjenje kako virus radi, i na pseudo kod, odnosno algoritam virusa.
Kome to treba, veliki mu Internet, pa nek traži. Makar tamo ima toga.
Empire (ex. micotakis)
pascal.786mango,
> znanjem. Ostaje pitanje koliko je moguce napraviti solidan virus u
> paskalu, prvenstveno zbog velicine, ali to me apsolutno ne interesuje,
> iz veoma prostog razloga - ja necu da pravim virus.
Ma kakav virus u paskalu. Ko stvarno hoce da napravi
dobar(?!) virus, radi u asembleru. A virusi me nikad
nisu interesovali do pre par meseci, kada su poceli
da me izrazito nerviraju (tad me je zakacio Natas i
jedva sam ga ocistio).
pascal.787firus,
Ma> Ma kakav virus u paskalu. Ko stvarno hoce da napravi
Ma> dobar(?!) virus, radi u asembleru.
Kakav? Pa najnormalniji virus. Samo što bi bio jako veliki.
Ali to nije bitno, bitno je da bi to radilo. Fora je što bi ga svako
ko ima i malo pameti, odmah primetio.
Naravno da se virusi pišu u asembleru, i to samo zbog veličine.
No pošto ja to NEĆU da radim, a čini mi se nećeš ni ti, da se mi lepo
manemo pričanja o glupostima.
Empire (ex. micotakis)
pascal.788janko,
> Kakav? Pa najnormalniji virus. Samo što bi bio jako veliki.
Bez veze sa virusima, ali mi pade na pamet kad se reče veličina --
da li je neko od ovde prisutnih nekada pravio rezidentne programe
u Turbo Paskalu? Kako to izgleda, da li je moguće i koliko je
minimalno veliko (eto, nešto od ovih odgovora se moglo saznati
i iz one inkriminisane arhive -- no ni sam je nisam sačuvao. ;) )
pascal.789nlazic,
>> da li je neko od ovde prisutnih nekada pravio rezidentne programe
>> u Turbo Paskalu? Kako to izgleda, da li je moguce i
Ne da je moguće, nego čak nije ni mnogo teško. U fajlu zakačenom za ovu
poruku nalazi se nekoliko primera TSR-ova: od najjednostavnijih, do onih
koji ostaju "iza" Windowsa 3.11. Ako se dobro sećam potreban je TP 5.0 ili
neki veći (treba da ima SetIntVec, GetIntVec i Keep procedure).
tsrs.zippascal.790acafaca,
Zna li neko dobru knjigu za paskal u windowsu?
Havala.
pascal.791acafaca,
Zna li neko sveobuhvatnu knjigu za TP za Windows?
Havala!
pascal.792vector,
-> Bez veze sa virusima, ali mi pade na pamet kad se rece velicina --
-> da li je neko od ovde prisutnih nekada pravio rezidentne programe
-> u Turbo Paskalu? Kako to izgleda, da li je moguce i koliko je
-> minimalno veliko (eto, nesto od ovih odgovora se moglo saznati
-> i iz one inkriminisane arhive -- no ni sam je nisam sacuvao. ;) )
Sta bi trebalo da rade (ti rez. programi) ?
Primer iz TP-a (help za komandu 'keep') predstavlja mali i jednostavan
rezidentni program. Zauzima samo 3 Kb. ;> Kad se startuje, pri svakom
pritisku na neki taster cuje se beep (nije ni cudo da je stao u samo
3 Kb) ;))
pascal.793vector,
U vezi pisanja rezidentnih programa saljem sledece: :)
- Turbo Pascal / ASM Source For TSR Utilities (tsrscr.zip)
- Routines for accessing XMS memory (tp6xms.zip)
vector.arjpascal.794mango,
> minimalno veliko (eto, nesto od ovih odgovora se moglo saznati
> i iz one inkriminisane arhive -- no ni sam je nisam sacuvao. ;) )
Zamoli ga da posalje ponovo:))
pascal.795firus,
Ja> Bez veze sa virusima, ali mi pade na pamet kad se reče veličina --
Ja> da li je neko od ovde prisutnih nekada pravio rezidentne programe
Ja> u Turbo Paskalu? Kako to izgleda, da li je moguće i koliko je
Naravno da je moguće. Sve što može u asembleru, može i u pascalu, samo
je malo veće.
Ja> minimalno veliko (eto, nešto od ovih odgovora se moglo saznati
Ja> i iz one inkriminisane arhive -- no ni sam je nisam sačuvao. ;) )
Lepo sam ja reko, obriši odavde, ali ostavi kod kuće. :)
Eto vidiš da se uvek nešto korisno može saznati.
Ali nemam ni ja. Zakasnio sam. Zato bi molio da mi se to pošalje na
mail.
Empire (ex. micotakis)
pascal.796firus,
Ve> Pored onog BINOBJ-a, treba mi objasnjenje strukture TPU fajlova za
Ve> verzije manje od 6.0. Pozeljno 5.5.
Za proučavanje TPU fajlova ti treba recimo INTRFC.
Pročitaj ovo. Pa ćeš da znaš koju verziju da tražiš, odmah da ti
kažem verziju 6.2 zaobiđi. Poslao sam calex-u verziju 7.0, koja
je i za 6.0 i za TP/BP 7.0 unite, ti naravno uzmi stariju verziju.
Da znaš koju, pročitaj ovo.
HISTORY of INTRFC (by D.J. Murdoch)
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 docs
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.
When TP for Windows, version 1.0, came out, I was amazed that
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; version
1.32 filled in those areas. I also cleaned up the display a bit.
In June '92, TPW 1.5 came out with completely compatible .TPU
files. No need for an upgrade. However, William Peavy pointed out
the omission of the flag for "interrupt" procedures, so I added
that in. I also got tired of the terrible numbering scheme I'd
stuck to for so long, and decided that instead of 1.33, I'd call
the new one 6.3.
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.
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.)
This reason has become a little obsolete now: William Peavy has
written a very complete description of the TP 6.0/TPW 1.x .TPU
format; I highly recommend picking up a copy.
Empire (ex. micotakis)
pascal.797firus,
Fi> Ja nemam ni jedan od njih tako da nemogu ništa više da ti kažem,
Fi> ovo sam samo izvadio iz fajla koji se zove allfiles.
Davno sam nabavio TVGRAPH. Do pre mesec dana sam imao TP 6.0.
Probam ja da iskompajliram to čudo u verziji za 7.0. Dobijem
poruku version mismatch error ili tako nešto. Lupim F1 i dobijem
objašnjenje da je verovatno neki unit koji dotični koristi
promenjen.
Znam da ništa nije menjano i da su svi uniti oni originalni.
Zato nabavim intrfc70.
Program radi i sa unitima za 6.0 i sa unitima za 7.0, koje će
da čita zavisi od unešenog parametra prilikom kompajliranja.
Jedna od mana je ispis na ekran. Naravno ovo se rešava prostom
redirekcijom.
Objašnjenje strukture TPU fajlova je mizerno. Svodi se na
pogledaj source.
Help meni je lepo urađen. Samo korišćenje je lako.
Korisno da saznate tačne parametre koje funkcije i procedure
iz dotično unita traže. Zatim da saznate koliki su checksum-i
svih tpuova koje koristi(ovo je meni trebalo).
Naravno ima tu još dosta informacija.
Najgore od svega je što ni autorima nije jasno čemu pojedni
delovi tpu-a služe.
Sve u svemu korisna stvarčica.
Razmišljam da malo prepravim source, i da dodam mogućnost
pisanja u fajl, koji bi bio defoult. Ali će to malo da sačeka
kako mi se čini.
Empire (ex. micotakis)
pascal.798firus,
Ve> ALI kako ta stvar jos ne postoji zanima me struktura tih fajlova.
Što je najgore verovatno nikad neće ni postojati. Svugde piše nešto
u stilu FORGET IT. Znači batali to.
Ve> Gore navedeni 'tpu2asm' bi mi koristio, medjutim, da bi ga uopste
Ve> startovao potrebna mi je 'turbo.tpl' datoteka iz verzije 5.5 ili/i
Ve> 5.0 (pozeljno obe). Ako neko ima neka salje na MAIL posto ne moze u
Ve> konf.
Pazi to bi bio o.k. rešenje, ako pravi *.obj fajl, koji ćeš da ulinkuješ.
Ako radi ono što radi sourcer, odnosno ako ti daje asm listing to ti neće
koristiti, jer nikada nećeš uspeti da dobiješ ono što ti treba. Kao prvo
i osnovno grantovano će maksimalno da ti zakomplikuje asm sorce. Dosta
sam se igrao sa sourcer-om tako da znam šta pričam.
Naravno sourcer radi sa *.exe i *.com fajlovima.
Meni bi trebao program koji *.tpu (TP7) konvertuje u *.obj.
*.tpu, *.tpp i *.tpw(valjda se ovako zovu) imaju istu strukturu, ako su
svi iz iste verzije. Ima li neko nešto takvo?
Empire (ex. micotakis)
pascal.799vector,
Saljem HSC Player za Turbo Pascal 7.0 ! :)
HSC/PLAYER V 1.8 FOR TPAS 7
Í═─═─══════─══─═─═──══─═─═Ě
║█▓▒░ ˙A˙N˙T˙A˙R˙E˙S˙ ░▒▓█║
ă─═─═─═══─═─════─═─═─════─Â
║¸ H S C Player V 1.8 ¸║
║¸ FOR TPASCAL 7 (TPU) ¸║
ă ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ Â
║ Add FM Music To Your ║
║ Intros,Demos,Addy,etc.. ║
║ In This New Version : ║
║ - Use The New HSC 1.5! ║
║ - Equalizer Support ! ║
║ - Even Smaller !!! ║
ă ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ Â
║¨¨Coding By Access /ADV¨¨║
Ë─════─═─═─══════─═─═─═══─Ż
Program pusta HSC module. Nikad nisam ni cuo za taj format, ali nema veze.
Ovo nije lose, ali postoji jedna mana ;>, uz program (unit) dolazi samo
jedan (!) HSC fajl koji se moze upotrebiti u nekom programu.
BTW, jel ima neko neki MOD player ? :)
advhsc18.zippascal.800vector,
-> Ako radi ono sto radi sourcer, odnosno ako ti daje asm listing to ti nece
-> koristiti, jer nikada neces uspeti da dobijes ono sto ti treba. Kao prvo
-> i osnovno grantovano ce maksimalno da ti zakomplikuje asm sorce. Dosta
-> sam se igrao sa sourcer-om tako da znam sta pricam.
Neki (mozda i vecina, nisam ih bas puno razgledao ;>) su bas disasemblirani
Sourcer-om. :)
pascal.801vector,
Mala ispravka, mislio sam na viruse pisane u asembleru koje imam a ne na
kompajlirane PAS fajlove. Ko bi lud disasemblirao fajl od 30kb (dobro, sad
sam malo preterao ;) Sourcer-om na primer, pa posle to proucavao. ;>
LM, koliko sam video, oni virusi napravljeni u Pascalu trebali da budu
poslati SysOp-u nekog BBS-a od autora. Bas i nije nesto. Tek sad sam
dobro pregledao arhivu. ;>
pascal.802qpele,
Ve> BTW, jel ima neko neki MOD player ? :)
Imam ja neki ,nije sjajan ali zvuk se cuje i lici na original .:)
mod.arjpascal.803vector,
Ono bi bio odlican program samo da radi preko SB-a, a ne preko cuvenog
PC Speaker-a. ;)
Anyway, moram da nadjem taj program (tracker) sto pravi i pusta HSC fajlove.
Onaj Antares HSC Player je bas mocan. Bas steta sto ima samo 1 primer, tj.
HSC fajl.
pascal.804firus,
Ve> Ono bi bio odlican program samo da radi preko SB-a, a ne preko
Ve> cuvenog PC Speaker-a. ;)
Jedno pitanje. Da li ima samo opciju za PC Speaker ili i za LPT1?
Ja imam neki koji ima 4 mogućnosti. Tri su vezane za LPT1. Jel to
taj?
Empire (ex. micotakis)
pascal.805vector,
Koliko sam ja video, samo preko PC Speaker-a. :)
LM, nasao sam program koji moze da pusta HSC fajlove. Verovatno uz program
dolazi i neki primer, tako da kada ga uzmem poslacu primere (HSC fajlove)
zakacene za neku od poruka. HSC Player za Turbo Pascal 7.0 ruleZ. :)
pascal.806vvelisavljev,
Kako procitati sistemsko vreme iz Paskala?
Pazite ima dva, jedan je DOS Time a meni treba onaj drugi.
pascal.807firus,
Vv> Kako procitati sistemsko vreme iz Paskala?
Vv> Pazite ima dva, jedan je DOS Time a meni treba onaj drugi.
Ajde mi objasni šta zapravo hoćeš. Iskreno rečeno, ne razumem te.
Zar gettime ne radi posao?
Ili si hteo da kažeš da ne znaš kojom se to procedurom radi, a da si
koristio dos naredbu time?
Hitno nabavi knjigu Turbo Pascal 6 (kompletan vodič) - Stephn O' Brien
To je mnogo dobra knjiga, ja je mnogo volim.
U stavri uzmi to isto, ali za 7.0
Empire (ex. micotakis)
pascal.808dekik,
D?>> Kako procitati sistemsko vreme iz Paskala? Pazite ima dva,jedan je
D?>> DOS Time a meni treba onaj drugi.
Probaj sa bios komandama (vreme ti je mislim interrupt 1A).
BTW:A jel nije dovoljno ovo iz dos-a ?!
pascal.810stameni,
>> Kako procitati sistemsko vreme iz Paskala?
Pokušaj preko interapta $1a, funkcija Get System Time ($00).
Rezultat u tickovima dobijaš u paru cx:dx, a to je po svoj prilici
kopija BIOS Data Area od 0000:046c do 0000:046f, tako da vreme
možeš i tamo da pročitaš.
Evo programa koji bi trebalo da konvertuje vreme u tickovima u
razumniji format:
----<cut>----
program GetSystemTimeViaInt1a;
uses
dos;
var
h, m, s, s100: word;
procedure GetSystemTime(var hour, minute, second: word);
var
l, m: longint;
begin
l := 0;
asm
xor al, al
int $1a
mov word ptr [l], dx
mov word ptr [l] + 2, cx
end;
m := l mod 91; { višak tikova }
l := 5 * (l div 91); { ukupan broj sekundi }
hour := l div 3600; { broj sati }
l := l mod 3600;
minute := l div 60;
l := l mod 60;
second := l + (m div 5)
end;
begin
GetSystemTime(h, m, s);
writeln(h, ' ', m, ' ', s);
GetTime(h, m, s, s100);
writeln(h, ' ', m, ' ', s)
end.
----<cut>----
Može li neko da objasni zašto ova nova procedure, GetSystemTime,
žuri nekoliko sekundi (oko 30)? Meni nije jasno... :(
pascal.811zdravkod,
Potrbna pomoc!
Kako da iz Pascala kontrolisem Modem??? Potrbno detaljnije
objasnjenje... Ako moze i primer...
Unapred zahvalan...
pascal.812stameni,
>> Kako da iz Pascala kontrolisem Modem??? Potrbno
>> detaljnije objasnjenje... Ako moze i primer...
Imaš jedan primer u 5.242 uz 5.261.
pascal.813stameni,
U vezi sa pitanjem od pre neki dan, kako u Pascalu pročitati
vreme, imam jedno interesanto zapažanje. Svi znaju da u PC-ju
postoji brojač koji povećava neke memorijske lokacije 18.2 puta u
sekundi, što daje 91 puta za 5 sekundi. To je samo približno
tačno, i zbog toga program koji sam tada bio pisao žuri oko 30
sekundi. U stvari, prema DOSREF-u 3.1, do povećanja dolazi na
svakih 1193180 / 65536, a to otprilike iznosi 18206 puta u 1000
sekundi, pa u vezi sa tim može da se modifikuje onaj program na
sledeći način:
----<cut>----
program GetSystemTimeViaInt1a;
var
h, m, s, s100: word;
procedure GetSystemTime(var hour, minute, second: word);
var
l: longint;
begin
l := 0;
asm
xor al, al
int $1a
mov word ptr [l], dx
mov word ptr [l] + 2, cx
end;
l := (1000 * l) div 18206; { ukupan broj sekundi }
hour := l div 3600; { broj sati }
l := l mod 3600;
minute := l div 60;
l := l mod 60;
second := l
end;
begin
GetSystemTime(h, m, s);
writeln(h, ' ', m, ' ', s)
end.
----<cut>----
Sada radi prilično tačno.
Ne vidim zašto ipak ne koristiti proceduru GetTime iz unita
DOS, koja, uzgred, vreme dobija preko interapta $21, funkcija $2c.
pascal.814acafaca,
Zna li neko neku knjigu za Turbo Pascal
za Windows?
Mnogo HVALA!
pascal.815firus,
Ac> Zna li neko neku knjigu za Turbo Pascal za Windows?
Uzmi lepo borland pascal 7.0. Imaš sve što ti je potrebno
za pisanje win programa, kao i još po nešto.
Onda uzmi knjigu za BP7 i uživaj.
Empire (ex. micotakis)
pascal.817tojagic,
Jel zna neko kako da od nekog stringa obrishem poslednji karakter ?
Npr imam string 'Usernamee' a ochu da obrishem ono e na kraju ;)
Hvala unapred ;)
pascal.818emajsijuen,
Tj>> Jel zna neko kako da od nekog stringa obrisem poslednji karakter ?
To sta tebi treba mozes da uradis na nekoliko nacina...
Evo ti program koji od stringa unesenog kao parametar odbija poslednji
karakter...
Uses crt;
Var
a :string;
Begin
a:=paramstr(1);
a:=copy(a,1,length(a)-1); { Ili a[length(a)]:=#0; }
writeln('Uneli ste: ',paramstr(1));
writeln('Odbijanjem zadnjeg slova dobija se: ',a);
end.
Cu :)
pascal.819profa,
>> a:=copy(a,1,length(a)-1); { Ili a[length(a)]:=#0; }
Delete(a,Length(a),1);
:)
pascal.820oleg,
Trebaju mi veliki nizivi iz pascala. Za Borland Pascal 7.0 kazu da ima
DPMI podrsku, itd, itd... Medjutim, svaki pokusaj dimenzionisanja niza takav
da ukupna duzina promenjivih i/ili niza bude veca od 64K zavrsava neslavno.
Elem, ima li leka ili treba raditi sa pointerima :( ?
Ako ima, molim za hint, primer ili nesto slicno.
Hvala.
pascal.821oleg,
Da, stavio sam u Compiler options Target:protected.
pascal.822qpele,
Tesko da ces moci bez pokazivaca da napravis niz veci od 64K iz prostog
razloga sto i kad kompajliras u protected modu ,time se samo heap segment
povecava do maximuma ,a svi ostali segmenti ostaju na 64K . Ako vec toliko
hices obicne nizove evo nekog prelaznog resenja :
type
niz = array [1..max];
pniz = ^niz;
var
n:pniz;
Sada sa new(n) oslobadjas potrebnu memeoriju u heap-u
pascal.823firus,
To> Jel zna neko kako da od nekog stringa obrishem poslednji karakter ?
Imaš par načina.
To> Npr imam string 'Usernamee' a ochu da obrishem ono e na kraju ;)
Neko školsko rešenje je ovo
Delete (nst, Length(nst), 1);
Može i ovako, ali je ne volim da se igram sa bajtom dužine
nst[0]:=chr(ord(nst[0])-1);
Naravno nst si pre toga deklarisao kao string i dodelio mu neku
vrednost.
Treba li još neka pomoć oko stringova? To makar znam.
Empire (ex. micotakis)
pascal.824rdejan,
>>>> a:=copy(a,1,length(a)-1); { Ili a[length(a)]:=#0; }
>>
>> Delete(a,Length(a),1);
>>
>> ;)
Dec(a[0]) je možda još kraće ;)
Pozdrav, Dejan
pascal.825ognjen,
)-> a:=copy(a,1,length(a)-1); { Ili a[length(a)]:=#0; }
~~~~~~~~~~~~~~~~~~~~
Ovo neće da radi, naravno, jer pascal NE koristi
null-terminated stringove.
pascal.826firus,
Og> Ovo neće da radi, naravno, jer pascal NE koristi
Og> null-terminated stringove.
Pascal nije C, znači slažem se sa tobom.
To 'radi' ako string direktno izbaciš na ekran, ali ako radiš nešto
dalje sa stringom to već nije tako.
Evo ga primer
Var I: Integer;
Nst: String;
Begin
Nst:= 'usernamee';
WriteLn;
Nst[Length(Nst)] := #0;
WriteLn (Nst);
WriteLn (chr(39),Nst,chr(39));
For I := 1 To Length(Nst) + 3 Do Write (Ord(Nst[I]), ' ');
End.
Kao rezultat dobijaš
username
'username '
117 115 101 114 110 97 109 101 0
A to ipak nije to.
pascal.827vector,
'swaptp.arj' - 'Swap program out to disk or EMS (+ source code)'
swaptp.arjpascal.828vector,
... A evo i jednog izuzetno vizuelno lepog programa koji demonstrira
upotrebu razlicitih algoritama za sortiranje ... :)
sortdemo.zippascal.829acafaca,
-=> zatrebati. Inače taj problem sam rešio, tako što sam upotrebio, dvo-
-=> struko spregnutu listu i već gotov sorce iz knjige. Shvatio sam da
-=> od viška glava ne boli, a na ne jednostruku listu sam prešao samo
-=> zato što sam smatrao da mi ne treba listanje unazad.
Hajde molim te pošalji taj program za sortiranje ili ako imaš neki drugi.
Treba mi neki program za sortiranje minimalno 100 000 elemenata. Da sortira
stringove dužine otprilike 40 byte-a.
pascal.830acafaca,
-=> Uzmi lepo borland pascal 7.0. Imaš sve što ti je potrebno
-=> za pisanje win programa, kao i još po nešto.
borland pascal 7.0 za win?
-=> Onda uzmi knjigu za BP7 i uživaj.
Izvini! Da l' znaš gde ina da se kupi. Tražio sam u onoj knjižari na
Terazijama (valjda se zove Kultura) i u Jugoslovenskoj knjizi i još na par
mesta, nema. :(-=> Onda uzmi knjigu za BP7 i uživaj.
pascal.831vector,
■ )-> a:=copy(a,1,length(a)-1); { Ili a[length(a)]:=#0; }
■ ~~~~~~~~~~~~~~~~~~~~
■ Ovo nece da radi, naravno, jer pascal NE koristi
■ null-terminated stringove.
Sad kad sam pregledao poruke iz ove teme novije od 15.02.1997. nigde nisam
primetio poruku broj 818, tj. 'emajsijuen'-ovu poruku.
Ocigledno je obrisao svoju poruku. Ne razumem zasto. Mozda to ima neke veze
sa odgovorom koji je dao ali se ispostavilo da nije tacan ?
Molio bih :) da se ubuduce ne brisu poruke iz konferencije (teme) jer ljudi
posle nekog vremena, da ne bi postavljali ista pitanja, mogu preuzeti celu
konferenciju, i ako neko ovako brise poruke moze nastati zbrka ... Sta ako
neko ko preuzme sve poruke iz teme nadje pitanje na koje je trazio odgovor ?
I procita sledece : "Odgovori 818, 819" ili slicno, a nema tih poruka ?
Uopste nije bilo razloga za brisanje poruke broj 818 ...
PS. Kad vec primetih ovo, prelistao sam malo stare poruke i video da je
'emajsijuen' sve svoje poruke iz ove teme obrisao. (??)
pascal.832emajsijuen,
Mozda bi bilo bolje da trazis tu moju poruku pod brojem 8.818 ;)))))
Inace, onaj odgovor ne bih ni poslao kao odgovor da prethodno nisam
proverio tacnost istog.Sve radi, ko ne veruje neka isproba ;)
pascal.833emajsijuen,
Sad tek videh...Ti si rekao da je broj te moje poruke 818, koji i jeste
broj moje poruke.Ti izgleda ne umes da koristis komandu read. ;)
Ti si sigurno pisao: read 8 818... ;)
Za tvoju informaciju: bolje kucaj read 8.818 ! :)
pascal.834vector,
Ja se izvinjavam zbog ovoga ;). Dao sam korisniku 'emajsijuen' ignore, tako
da nijednu njegovu poruku iz konferencije nisam ni primetio ...
■ Mozda bi bilo bolje da trazis tu moju poruku pod brojem 8.818 ;)))))
■
■ Inace, onaj odgovor ne bih ni poslao kao odgovor da prethodno nisam
■ proverio tacnost istog.Sve radi, ko ne veruje neka isproba ;)
Mozda i radi, ali to nije ono sto je 'tojagic' hteo, zar ne ? Od stringa
'usernamee' ces dobiti 'username ' (gde je zadnji karakter (bajt) jednak $00)
umesto 'username'.
■ Sad tek videh...Ti si rekao da je broj te moje poruke 818, koji i jeste
■ broj moje poruke.Ti izgleda ne umes da koristis komandu read. ;)
■ Ti si sigurno pisao: read 8 818... ;)
■ Za tvoju informaciju: bolje kucaj read 8.818 ! :)
Ovakve poruke bez smisla i pune gramatickih gresaka i 'nepravilnosti' nisu
za konferenciju ...
pascal.835firus,
Fi> For I := 1 To Length(Nst) + 3 Do Write (Ord(Nst[I]), ' ');
Izvinjavam se svima.
Kasnije sam izbacio ovo + 3, pa je rezultat bio
117 115 101 114 110 97 109 101 0
Sa ovim naravno ima još tri nule.
Empire (ex. micotakis)
pascal.836firus,
Ac> Hajde molim te pošalji taj program za sortiranje ili ako imaš neki
Ac> drugi. Treba mi neki program za sortiranje minimalno 100 000 elemenata.
Ac> Da sortira stringove dužine otprilike 40 byte-a.
Čoveče, ali ti tražiš sveže stvari. Ovu poruku sam poslao dok sam
bio na micotakisu, znači pre septembra. Gde li je iskopa? :))
Evo ti primer iz knjige uz poruku.
Empire (ex. micotakis)
prog58.paspascal.837firus,
Ac> borland pascal 7.0 za win?
E baš taj. Ali obavezno uzmi instalaciju na 13 disketa. Sve ispod
toga nije cela instalacija.
Turbo pascal 7.0 ti je to isto, samo što je skraćen na 7 ili
možda beše 9 disketa. Nemaš podršku za pisanje protected i win
programa.
Ac> Izvini! Da l' znaš gde ina da se kupi.
Pazi ovako Micro knjiga je izdalvala prevode za ona ranija izdanja.
Kad je keva jednog mog ortaka tražila 6.0 za njega rekli su joj da
je to rasprodato i da da sačeka malo, jer se sprema izdanje za 7.0.
Pogledaj kod njih.
Empire (ex. micotakis)
pascal.838firus,
Em> Inace, onaj odgovor ne bih ni poslao kao odgovor da prethodno nisam
Em> proverio tacnost istog.Sve radi, ko ne veruje neka isproba ;)
Ja sam isprobao i uverio se da "radi". Onda pročitah šta reče čovek
i setih se da pascal nije c. Onda sedoh i napisah primer. Pogledaj
ga malo pa ćeš da vidiš kako to "radi".
Empire (ex. micotakis)
pascal.839tojagic,
A da mu nisi dao ignore ?! ;)
pascal.840vector,
■ A da mu nisi dao ignore ?! ;)
Jesam, ali kako smo nesto trebali da se dogovorimo u chat-u, morao sam da
maknem 'ignore' ... ostatak price svako zna ... ;))
pascal.841zdravkod,
Imam LongInt (4 byte-a). Kako da iscitam vrednost prvog,
drugug, treceg i cetvrtog byte-a posebno.
Unapred zahvalan!
pascal.842stameni,
Nije u duhu Pascala, al' radi posao:
program Longint2Byte;
var
l: longint;
p, d, t, c: byte;
procedure konvertuj(zadat: longint; var prvi, drugi, treci,
cetvrti: byte);
var
s, o: word;
begin
s := seg(zadat);
o := ofs(zadat);
cetvrti := mem[s:o];
treci := mem[s:(o + 1)];
drugi := mem[s:(o + 2)];
prvi := mem[s:(o + 3)]
end;
begin
write('Unesite longint: ');
readln(l);
konvertuj(l, p, d, t, c);
writeln(p, ' ',d, ' ', t, ' ', c)
end.
pascal.843bokir,
> Imam LongInt (4 byte-a). Kako da iscitam vrednost prvog,
> drugug, treceg i cetvrtog byte-a posebno.
Može ovako:
type
Long2Byte = record
case Integer of
1 : (l : longint);
2 : (b1, b2, b3, b4 : byte);
end
end;
var
l : Long2Byte;
begin
l.l := 12345678;
WriteLn(l.b1, ' ', l.b2, ' ', l.b3, ' ', l.b4);
end.
pascal.844jjerry,
Da li neko zna kako mogu da napravim unit vezan za misha tj.
prepoznavanje da li je ukljucen,prepoznavanje mishijih
koordinata,pritisaka na dugmeta,kursora itd.
Samo nemojte da kazete Drivers unit i GetMouseEvent i sl. :)))
pascal.845profa,
>> Da li neko zna kako mogu da napravim unit vezan za misha tj.
>> prepoznavanje da li je ukljucen,prepoznavanje mishijih
>> koordinata,pritisaka na dugmeta,kursora itd.
Direktorijum dos\prog\pascal, imaš nekoliko unita...
pascal.846dekik,
D?>> Da li neko zna kako mogu da napravim unit vezan za misha tj.
D?>> prepoznavanje da li je ukljucen,prepoznavanje mishijih koordinata,
D?>> pritisaka na dugmeta,kursora itd. Samo nemojte da kazete Drivers unit
D?>> i GetMouseEvent i sl.:)))
Ne znam napamet al mislim da to imash u svakoj knjizi za pascal ;)
pascal.847jjerry,
E ().|< je shto se tiche unita nego mi sad treba neshto drugo.
Naime,treba mi funkcija za prikaz bitmapiranog kursora.
u AX treba da stoji 0009h, u BX i CX od -16 do 16 (shto odredjuje
duzinu sirinu kursora al' ne znam kako da stavim neku slicicu za
kursor.
Ima neshto 01h,02h Screen mask i tako to ,al' nisam uspeo.
Ako imash ideju,ili bilo ko,kako se ovo radi javi se ! :)))
Pozdrav ;)))))
pascal.848jjerry,
Imam jedan mali VELIKI problem. Evo o cemu se radi :
Mozda neko zna da je interapt za misa 33.Kad hoce da se namesti
graficki kursor, u AX se stavi 0009h.
E sad : pisa da u BX treba da se stavi neka Hot point za kolonu
a u CX za RED.Takodje pise da u ES:DX treba da stoji mask bitmap
koji se sastoji od word-ova od 01h do 10h (ili tako nesto).
Ako neko zna kako da se overriduje ovo ogranicenje od 16 x 16 tacaka
za kursor , tj. da na mestu kursora bude neki BMP ili ICO ili CUR
itd. Svejedno, Pascal ili asembler !
Pozdrav i vecno Hvala onome ko mi dobaci ovo !!!!!!!
pascal.849bokir,
> Mozda neko zna da je interapt za misa 33.Kad hoce da se namesti
> graficki kursor, u AX se stavi 0009h.
> E sad : pisa da u BX treba da se stavi neka Hot point za kolonu
> a u CX za RED.Takodje pise da u ES:DX treba da stoji mask bitmap
> koji se sastoji od word-ova od 01h do 10h (ili tako nesto).
> Ako neko zna kako da se overriduje ovo ogranicenje od 16 x 16 tacaka
> za kursor , tj. da na mestu kursora bude neki BMP ili ICO ili CUR
> itd. Svejedno, Pascal ili asembler !
Ako hoćeš da koristiš proizvoljnu bitmapu kao kursor, onda
moraš da upotrebiš funkciju 0Ch koja definiše tvoju proceduru
koju će drajver sam pozivati kad miš uradi nešto.
Možeš sam da definišeš za koje akcije miša će tvoja
procedura da bude pozivana: pomeranje, pritisak na levi taster,
na desni taster,...
Ovde definišeš da se poziva za pomeranje miša, i onda u toj
proceduri iscrtavaš bitmapu na mišjim koordinatama.
Sors je uz poruku, uglavnom Pascal, mada se provlači i nešto
nezaobilaznog assemblera ;)
grafmous.zippascal.850jjerry,
Hvala bokiru za fajl , a zasta mi treba ? Mozda neces verovati ali
pravim P&C avanturu. Vecinu unita za podrsku misa sam napravio, sad
mi je jos ovo trebalo i neki unit za prikaz slika pa da se bacim na
3D Studio koji mi je ,inace, uza specijalnost. :)))))
Jos jednom ti veliko hvala i Pozdrav !!!!! :))))
pascal.851vector,
Nije specijalno za Pascal ali ipak saljem ovde. ;)
PC Games Programmers Encyclopedia
PS. Ovo je za direktorijum.
pcgpe.arjpascal.852space.ace,
>> mi je jos ovo trebalo i neki unit za prikaz slika pa da se bacim na
Imaš nekoliko unita koji se bave prikazom slika u konferenciji, ali
pošto praviš P&C avanturicu, preporuka ti je moja da praviš slike
u nekom sopstvenom formatu, da ti neko ne bi menjao te slike, ili bar,
ako ih već praviš u nekom poznatom formatu, kriptuješ. Ovo sve nije
iz nekih strogo sigurnosnih razloga, već zato što tvoja avanturica ne
bi izgledala baš lepo ako neko uzme i izmeni sve slike :)
pascal.853jjerry,
To znam i ja i imao sam u vidu jedan idiotski trik koji je u isto
vreme i vrlo funkcionalan ,a kad si vec pomenuo neki moj format
voleo bih da znam kako to mogu da izvedem sa slikom izrendanom u 3D
Studio koju ja,povrh svega,moram i da otvorim.
Nemam nista protiv,ako imas neki kod u Pascalu ili makar Asembleru,
dobaci ga,oberucke cu prihvatiti. :))))
Pozdrav !!!!
:)))
pascal.854vector,
│ ako ih vec pravis u nekom poznatom formatu, kriptujes. Ovo sve nije
│ iz nekih strogo sigurnosnih razloga, vec zato sto tvoja avanturica ne
│ bi izgledala bas lepo ako neko uzme i izmeni sve slike :)
└──────────────────
Pa zar to upravo nisu ti "sigurnosni razlozi" ? ;)
pascal.855strider,
kako napraviti program rezidentan u memoriji?
pascal.856firus,
St> kako napraviti program rezidentan u memoriji?
Stephn O'Brien - Turbo Pascal 6 (kompletan vodič) strana 275.
Neko drugi će to mnogo bolje da ti objasni, ali evo ti ono osnovno.
Najlakši deo posla je postaviti program da bude rezidentan. To radiš
sa keep. Ovo staviš na kraj programa. Pre toga odrediš način na koji
će program da se reaktivira. Moraš da vodiš računa da jedan interupt
ne prekine drugi. To ti je ono najosnovnije.
Nešto detaljnije, neko drugi.
Empire (ex. micotakis)
pascal.858nenad,
Uz poruku je:
FreeType project, a very efficient and fast, though portable,
TrueType font rendering engine *freely available*. The reader's
good knowledge of the TrueType Font specification is not
required, though being a undeniable "plus".
freetype.zippascal.859zdravkod,
Kako da ucitam neki GIF, BMP ili bilo koji drugi format iz
pascala... Dakle, potrebno mi je da nakon INITGRAPH navedem neku
komandu, ili par njih i da mi pascal pokaze sliku na ekranu...
Ako moze detaljnije objasnjenje...
Unapred zahvalan...
pascal.860ognjen,
Hi!
Pravim jedan program (mali, exe, 10k) koji treba da poziva neke
BATCH fajlove koji pozivaju ogroman EXE preogram (dvidrv) za preged
TEX dokumenata.
Problem je kod EXEC ('xx.bat', '') gde gde mi resetuje racunar.
Stavio sam na pocetak programa {$M 16384, 0, 65536} (stack mi treba
zbog procedura, a heap zbog povezane liste), jer bez toga prijavljuje
'Out of memory' gresku, ali sa tim mi se resetuje racunar.
Pre i posle procedure stavio sam SwapVectors; ali ne pomaze.
Dakle, kako da pozovem batch fajl iz pascal programa, i posle da
se vratim tamo gde sam stao?
pascal.861vasic,
> Problem je kod EXEC ('xx.bat', '') gde gde mi resetuje racunar.
Davno sam radio sa TP-om, ali sve mi se čini da bat-ove ne možeš da
exec-uješ direktno. Probaj da sa GetEnv('COMSPEC') nađeš komandni
procesor a onda pozoveš Exec(command_4dos_ili_šta_već, '/c xx.bat');
pascal.862qpele,
Zd> Kako da ucitam neki GIF, BMP ili bilo koji drugi format iz
Zd> pascala... Dakle, potrebno mi je da nakon INITGRAPH navedem neku
Zd> komandu, ili par njih i da mi pascal pokaze sliku na ekranu...
E, pa to ti nece ici bas tako lako. Mislim da u nekom direktorijumu na Sezamu
imas objasnjenje GIF formata, pa ga ti potrazi.
pascal.863qpele,
Og> Problem je kod EXEC ('xx.bat', '') gde gde mi resetuje racunar.
Og> Stavio sam na pocetak programa {$M 16384, 0, 65536} (stack mi treba
Og> zbog procedura, a heap zbog povezane liste), jer bez toga prijavljuje
Og> 'Out of memory' gresku, ali sa tim mi se resetuje racunar.
Problem sa Turbo pascalom je u tome sto koristi samo konvencionalnu memoriju
tj. 640K Rama. Ako je tvoj program poveci i ako iz njega zoves drugi veliki
program normalno je da ce vrisnuti racunar. Probaj heap i stack smanjiti sto
vise mozes.Ako i to ne ide ti lepo nabavi Borland Pascal 7.0 (pazi, ne Turbo
Pascal 7.0 ) koji moze da kompajlira i u protected modu pa ce ti problemi
biti reseni.
Og> Pre i posle procedure stavio sam SwapVectors; ali ne pomaze.
SwapVectors obavezno da stavljas kad kog koristis EXEC.
pascal.864firus,
Qp> E, pa to ti nece ici bas tako lako. Mislim da u nekom direktorijumu
Qp> na Sezamu imas objasnjenje GIF formata, pa ga ti potrazi.
Opis gif formata se nalazi ovde uz poruku 769.
X
pascal.865firus,
Qp> Borland Pascal 7.0 (pazi, ne Turbo Pascal 7.0 ) koji moze da
TP 7.0 je isečena verzija BP-a.
U helpu za TP lepo piše Borland pascal.
Qp> SwapVectors obavezno da stavljas kad kog koristis EXEC.
Jel? A može li i objašnjenje zašto OBAVEZNO?
Ja sam radio i bez toga pa nisam video neke probleme.
X
pascal.866space.ace,
>> Jel? A može li i objašnjenje zašto OBAVEZNO?
Zato što se može desiti da program koji startuješ sa exec izmeni
tabelu vektora, što se neće baš svideti tvom programu (još ako si
i ti u svom programu menjao tabelu, eto belaja).
>> Ja sam radio i bez toga pa nisam video neke probleme.
Pa nije se ništa dogodilo jer programi ne menjaju tabelu. Ipak,
iz predostrožnosti stavljaj swapvectors...
pascal.867xlab,
Kako se *.PAS fajlovi mogu kompajlirati u *.TPU fajlove?
pascal.868emajsijuen,
EM> Kako se *.PAS fajlovi mogu kompajlirati u *.TPU fajlove?
Prvo na pocetak pas fajla stavis Unit BlaBla.Onda stavis interface, pa
nabrojis procedure i funkcije koje ce taj buduci unit da sadrzi.Kada si to
sve ispisao, onda napises implementation, pa napises te procedure i funkcije.
Kada to zavrsis onda stavis jedan End. i zavrsio si...
Posto ovo sigurno nisi shvatio, evo ti primer:
UNIT Screen;
Uses crt;
INTERFACE
Procedure cls(bpoz,btxt: Byte);
Procedure txt(ch:char;puta:Integer);
IMPLEMENTATION
Procedure cls;
begin
textcolor(btxt);textcolor(bpoz);
clrscr;
end;
Procedure txt;
var
i: Integer;
begin
for i:=1 to puta do write(ch);
end;
end.
Ufff, nadam se da si shvatio... :)
pascal.869vasic,
Subj: SwapVectors pre i posle Exec-a
>>> Jel? A može li i objašnjenje zašto OBAVEZNO?
>
> Zato što se može desiti da program koji startuješ sa exec izmeni
> tabelu vektora, što se neće baš svideti tvom programu (još ako si
> i ti u svom programu menjao tabelu, eto belaja).
Može se desiti, ali pristojni programi to ne rade... sem rezidentnih.
A ako Exec-uješ program koji ostane rezidentan, situacija postaje
nezdrava kako god okreneš.
pascal.870vector,
│ UNIT Screen;
│ Uses crt;
│ INTERFACE
└─────────
Ovo ne moze da radi. "Uses" mora da stoji _iza_ "interface" direktive, a
ne ispred. Evo jednog primera unita :
unit Video;
interface
procedure Boja( background, foreground: byte );
procedure WriteTo( x, y, attr: byte; tekst: string );
procedure FillIt( boja: byte; karakter: char );
procedure OpenWindow( x1, y1, x2, y2: byte; title: string );
implementation
uses dos, crt;
procedure Boja( background, foreground: byte );
begin
TextAttr := background * 16 + foreground;
end;
procedure WriteTo( x, y, attr: byte; tekst: string );
var counter: byte;
begin
for counter := 1 to ord(tekst[0]) do
begin
memw[$b800:(y-1)*160+(x-1)*2]:=ord(tekst[counter])+(attr shl 8);
inc(x);
end;
end;
procedure FillIt( boja: byte; karakter: char );
var counter1: byte;
counter2: byte;
begin
for counter1 := 1 to 25 do
for counter2 := 1 to 80 do
WriteTo( counter2, counter1, boja, karakter );
end;
procedure OpenWindow( x1, y1, x2, y2: byte; title: string );
begin
end;
begin
end.
pascal.871emajsijuen,
>> Ovo ne moze da radi. "Uses" mora da stoji _iza_ "interface" direktive, a
>> ne ispred. Evo jednog primera unita :
Jesi li pozurio da me ispravis ? :)
I najveci majstori ponekad mogu da pogrese... :(
pascal.872vector,
│ Jesi li pozurio da me ispravis ? :)
└─────────
Jesam. ;)
pascal.873sfilip,
E, 'vako, kačim s porukom jednu proceduru (i test program s njome), procedura
bi trebala da poziva ARJ i ubacuje u neku arhivu navedeni fajl, što i radi,
prvi put, a kod drugog-trećeg puta zablokira. Sve je vrlo jednostavno
napisano, u exec trpam arj i parametre, svapujem vektore pre i posle, mada je
bezpotrebno jer arj (valjda) ništa ne dira, nema manjka memorije, pa ipak - ne
radi!
Počeo sam da sumnjam na kompajler ili arj verziju, ali nidočega pametnog nisam
stigao, što se doduše nije ni očekivalo.
imal' neko ovde ko je voljan pomoći mi?
usearj.paspascal.874dekik,
Jel postoji neka moguchnost da se zajebe ono prekidanje programa sa
ctrl-break ?
Unapred Hvala.
pascal.875profa,
>> Jel postoji neka moguchnost da se zajebe ono prekidanje programa sa
>> ctrl-break ?
CheckBreak:=false;
(Moraš da staviš uses Crt na početku, jer se CheckBreak nalazi u Crt unitu)
pascal.876space.ace,
>> Kako se *.PAS fajlovi mogu kompajlirati u *.TPU fajlove?
Na početku fajla, umesto stavke "program", stavi "unit" i kompajliraj.
Kasnije, kad ih budeš koristio u svojim programima, u uses stavku
dodaj ime te tvoje biblioteke (unita) i piči.
pascal.877vector,
│ Jel postoji neka moguchnost da se zajebe ono prekidanje programa sa
│ ctrl-break ?
└─────────
SetCBreak(False);
CheckBreak:=False;
ili postavljanjem sopstvenog interapt hendlera na $1B, $23 interapte.
pascal.878pvlada,
Da li bi neko hteo da mi kaže kako da iz paskala štampam neki
tekst?
pascal.879emajsijuen,
>?>?> Jel postoji neka moguchnost da se zajebe ono prekidanje programa sa
>?>?> ctrl-break ?
Ve>> SetCBreak(False);
Komanda SetCBrak(False) ce onemoguciti obustavu programa sa CTRL-C, koliko
ja znam...ili sam se jos jednom zeznuo ?
pascal.880profa,
>> Komanda SetCBrak(False) ce onemoguciti obustavu programa sa CTRL-C,
>> koliko ja znam...ili sam se jos jednom zeznuo ?
Pa dobro bre, za sta sluzi help u Pascalu? ;)
Remarks:
SetCBreak sets the state of Ctrl+Break
checking in DOS. When off (False), DOS only
checks for Ctrl+Break during I/O to console,
printer, or com-muni-cation devices. When on
(True), checks are made at every system call.
pascal.881profa,
>> Da li bi neko hteo da mi kaže kako da iz paskala štampam neki
>> tekst?
uses Printer;
...
WriteLn(Lst,BlaBlaBla);
...
Dakle, Lst predstavlja printer.
pascal.882pvlada,
PV>Dakle, Lst predstavlja printer.
Hvala :)
pascal.883vector,
│ Procedure cls(bpoz,btxt: Byte);
│ ...
│ Procedure cls;
│ begin
│ textcolor(btxt);textcolor(bpoz);
│ clrscr;
│ end;
└─────────
Obratiti paznju na ovu proceduru. 2x je stavljeno TextColor ! :))
PS. "Najveci majstori" su opet pogresili. ;)
pascal.884zokipo,
PITANJE:
Ako znate nacin za detektovanje postojanja i nivoa
signala na linijskom ulazu SoundBlaster-a 16 podelite
ga sa jadnim i nesretnim programerom kome zivot zavisi
od posedovanja takve informacije.
Bilo koji source je dobro dosao (ali se preferira BP 7.0
mada nije imperativ :> )...
Svi koji poseduju informacije te i takve vrste please:
MA WR => Zokipo. Biti cu vam zahvalan do groba, a ako
postoji zivot posle smrti, i dalje .... ;>
pascal.885sfilip,
dobro bre, može li mi iko ovde pomoći po pitanju onog arj startovanja ili ne?
pascal.886qpele,
Problem kod tvog programa je jedino u tome sto za ime
fajla mora cela putanja tj. c:\dir\imefajla.exe
Sve ostalo je OK.
pascal.887zokipo,
Ljudi dobre volje pomagajte ...
Evo o cemu se radi :
Ja i ortak radimo na radiju, i razvijamo maleno programce koje
treba da kontrolise linijski ulaz na SB-u ( na taj ulaz dolazi signal sa
satelita ), tj. po unapred zadatom vremenskom obrascu ( tipa od xx do xx
minuta ) on spusta nivo linijskog ulaza na zadatu vrednost, izvrsava
WPLAY ( tj. ubacuje .WAV fajl koji je zapravo identifikacioni dzingl )
odsvira ga i vrati linijski nivo na pocetnu vrednost. ( i za divno cudo
to sve RADI ... ;> )
Sada smo dosli na ( kako ce se ispostaviti ) suludu ideju da detektujemo
prisustvo signala na linijskom ulazu ( po srpski - da li nam satelit uopste
svira ili se ucut'o ), pa ako signala nema da program automatski startuje
CD-ROM i pusti u program CD koji bi jel'te za datu namenu u isti bio i
ostavljen.
Ako vam je poznat nacin da se malom nesretnom programu objasni kako da
uradi ovo sto nama treba, bilo bi to strava ( citaj MA WR ZOKIPO, uz
eventualno MA ATT xxxxxx ). Moze sorce, moze ideja moze bilo sta, jerbo
nas dva nista pametno nismo smislili ...
Toliko, bye ... :>>>>
pascal.888sfilip,
>Problem kod tvog programa je jedino u tome sto za ime
>fajla mora cela putanja tj. c:\dir\imefajla.exe
>Sve ostalo je OK.
aman zaman, nije to, ima puno ime fajla, čoveče!
zlo, zlo! eto šta je!
imal' neko drugi ideje?
pascal.889pvlada,
Kada hoću da štampam iz programa, a štampač nije spreman(npr.
isključen) on prekida program sa Greškom 160: Device Write Fault.
Kako da prvo proverim da li je štampač spreman ili nešto slično
da nebi prekidao program ?
pascal.890qpele,
Kod mene radi OK, samo je trebalo da unesem celu putanju do arj.exe i cele
putanje do fajlova.
pascal.891firus,
Zo> Ljudi dobre volje pomagajte ...
Taj sam. :)
Zo> Sada smo dosli na ( kako ce se ispostaviti ) suludu ideju da
Zo> detektujemo prisustvo signala na linijskom ulazu ( po srpski - da li
Zo> nam satelit uopste svira ili se ucut'o ), pa ako signala nema da
Zo> program automatski startuje CD-ROM i pusti u program CD koji bi jel'te
Zo> za datu namenu u isti bio i ostavljen.
Skini PCGPE, ne znam ko ga je i gde ostavio.
Ako ti to ne pomogne, pogledaj ovo:
ftp site: ftp.uwp.edu
directory: /pub/msdos/demos/programming/game-dev/source
filename: soundx.zip
Za prvu pomoć ti evo ovo:
function GetMixerReg(base : word; index : byte) : byte;
begin
Port[base + 4] := index;
GetMixerReg := Port[base + 5];
end;
Ovo treba da ti vrati trenutno stanje sa ulaza. E sad, ako se u
GetMixerReg duže vremena pojavljuje ista vrednost... Valjda ti
je jasno. Nešto ne valja. I ti onda kažeš, evo ga CD i gotovo.
Inače za base stavi 220h, 230 ili 240h, šta ja znam gde ti je SB.
Jel ti dosta za početak?
X
pascal.892tomak,
> aman zaman, nije to, ima puno ime fajla, čoveče!
> zlo, zlo! eto šta je!
> imal' neko drugi ideje?
Ako još uvek treba ... izbacio sam 'SwapVectors;', pre i posle ARJ-a i
proradio je.
pascal.893sfilip,
>> zlo, zlo! eto šta je!
>> imal' neko drugi ideje?
>
> Ako još uvek treba ... izbacio sam 'SwapVectors;', pre i posle ARJ-a i
> proradio je.
e, fala, i tebi qpeletu, al' više ne treba...
probao sam i ja izbaciti swapvectors, ali džaba... na kraju sam skino' sa
sezama onaj lha arhiver, koj je malih dimenzija pa mi i više odgovara, i on
radi savršeno :)
možda je bio problem u verziji arj-a, ali nemam živaca to da proveravam :)
pascal.894dzakic,
> Kada hoću da štampam iz programa, a štampač nije spreman(npr.
> isključen) on prekida program sa Greškom 160: Device Write Fault.
> Kako da prvo proverim da li je štampač spreman ili nešto slično
> da nebi prekidao program ?
{$i-}
write(lst,...);
if ioresult<>0 then { Greška };
pascal.895firus,
Dz> {$i-}
Dz> write(lst,...);
Dz> if ioresult<>0 then { Greška };
Zakiću da nisi zaboravio nešto? :))
to sfilip:
Četvrti red, odnosno ono što ide ispod ovoga je {$I+}.
Ne nasedaj na onaj primer iz help-a. Neko nije vodio računa kad ga je
pisao. Onaj primer iz helpa generiše i grešku. Čovek je suviše rano
ubacio {$I+}. To ide posle.
X
pascal.896pvlada,
>š$i-ć
>write(lst,...);
>if ioresult<>0 then š Greška ć;
Hvala:)
pascal.897pvlada,
>to sfilip:
>
>Četvrti red, odnosno ono što ide ispod ovoga je š$I+ć.
Čini mi se da si malo pogrešio trebalo je da ide to pvlada: :)
Ipak Hvala :)
pascal.898vitez.koja,
#=> imal' neko drugi ideje?
Nemaš dovoljno memorije...
sk
pascal.899gmatic,
Kako da pokrenem neki program iz paskal programa(au al ga slozi)?
Primer:hocu da pokrenem arj.exe iz programa!!!
pascal.900zeljkoj,
> Primer:hocu da pokrenem arj.exe iz programa!!!
Rešenje je procedura Exec. Nije mi trenutno TP pri ruci, pogledaj help
za tačnu sintaksu.
pascal.901firus,
Pv> Čini mi se da si malo pogrešio trebalo je da ide to pvlada: :)
Izvinjavam se. Znam da je i on nešto kukao, pa sam pomešao. :)
X
pascal.902firus,
Gm> Kako da pokrenem neki program iz paskal programa(au al ga slozi)?
Veoma lako.
Gm> Primer:hocu da pokrenem arj.exe iz programa!!!
Hoću i ja plavušu pa nikom ništa. Fora je u tome što ti imaš više
sreće od mene.
Dakle ovako:
--- CUT HERE ---
{$M $4000,0,0 } { 16K stack, no heap }
Uses Crt, Dos;
Var
Paker, Unpaker, Direktorijum, Arhiva : String;
Procedure Otpakuj;
Begin
Unpaker = 'arj.exe'; {dodeli ime pakeru, ista sintaksa je i za RAR}
Unpaker := FSearch(Unpaker, GetEnv('PATH')); {nađi paker bilo gde u path-u}
Exec (FExpand(Unpaker), ' x -r ' + Arhiva+ ' ' + Direktorijum);
{otpakuj fajl Arhiva u direktorijum Direktorijum}
End; { Procedure Otpakuj }
Procedure Zapakuj;
Begin
Paker = 'arj.exe' {dodeli ime pakeru, lako se prepravi da radi za RAR}
Paker := FSearch(Paker, GetEnv('PATH')); {nađi paker bilo gde u path-u}
Exec (FExpand(Paker), ' a -e '+ Arhiva+ ' ' + Direktorijum);
{zapakuj sve fajlove iz direktorijuma Direktorijum u arhivu Arhiva}
End; { Procedure Zapakuj }
--- CUT HERE ---
Ispod dodaš ostale procedure i naravno program.
Nadam se da negde nisam nešto zaboravio da prepravim. Ovo su inače
osakaćene procedure iz mog programa.
X
pascal.903gmatic,
==> Resenje je procedura Exec. Nije mi trenutno TP pri ruci,
==> pogledaj help za tacnu sintaksu.
Nece khaze mi da mu manjka memorije(errorcode #8).Probao sam!!!!!!
Neznam stha je ovo!!!!
Probao sam i neke sitnije stvari kao neki glupi bat koji nesto nasvrjla
al i onda pise #8(pa i kad izkompajliram).
pascal.904gmatic,
A kako se otvara fajl i upisuje u njega i uzimaju podatci
iz njega...(obican tekst fajl).
Hocu da napravim program koji pravi katalog po diru i opakuje
samo odabrano(znate ono imam 1000 fontova a koristim samo
50 pa da se nebi stalno zezao kad se nesto desi lepo on mi
samo otpakuje tih pedeset koje imam u nekom fajlu).
Naime nesto tako sam vec napravio u basic-u ali mi se bas
nesvidja izgled(nema menija i ostalog vec samo suvi tekst).
E da da li neko ima qbasic(ili quickbasic)kompajler?
pascal.905gmatic,
==> Nadam se da negde nisam nesto zaboravio da prepravim. Ovo su
==> inace osakacene procedure iz mog programa.
Pa jesi tu i tamo neke dvotacke i slicno al snasao sam se.
Hvala mnooooogo.
pascal.907zokipo,
==> Ako ti to ne pomogne, pogledaj ovo:
==> ftp site: ftp.uwp.edu
==> directory: /pub/msdos/demos/programming/game-dev/source
==> filename: soundx.zip
Za pocetak, tacna adresa je:
ftp.uwp.edu/pub/games/game-dev/source/soundx.zip
i nije nam pomoglo, ali smo nsli nesto sto bi moglo da nam pomogne. Hvala
t na pravoj informaciji.
==> function GetMixerReg(base : word; index : byte) : byte;
==> begin
==> Port[base + 4] := index;
==> GetMixerReg := Port[base + 5];
==> end;
Bili bismo ti veoma zahvalni ako bi mogao da nam malko pojasnis na
sta ti cilja 'index', samo to jos kad bi znali, gde bi nam bio kraj.
Salu na stranu, mnogo si nam pomogao sa ftp-om. HVALA !!!
Tol'ko od mene za sad. Ako mislis da mozes da nam saopstis ista korisno,
molim te da to bude na mail:
zoran.v@beotel.yu
jerbo mi pretplata na Sezam uskoro istice, a nesto mi se ne da da je
obnavljam ;>.
Bye ... ;>>>>
pascal.908qpele,
Gm> Nece khaze mi da mu manjka memorije(errorcode #8).Probao sam!!!!!!
Gm> Neznam stha je ovo!!!!
Stvar je u tome sto pri kompajliranju pascal rezervise ceo Ram za program.
Da bi to sprecio, stavis {$M,stacksize,minheap,maxheap} (mislim da je tako
,ali ipak pogledaj help) i tako ogranicis heap koji koristi tvoj program i
i ostavis memorije za druge programe.
pascal.909qpele,
Gm> A kako se otvara fajl i upisuje u njega i uzimaju podatci
Gm> iz njega...(obican tekst fajl).
Ovako:
Assign(f,"datoteka.dat")- povezuje datotecnu promenjljivu sa konkretnom
datotekom na disku.Neophodno pre bilo kog rada
sa datotekama.
Reset(f)-postavlja datotecni pokazivac na pocetak datoteke( na prvi clan).
Uglavnom ide posle assign.
Rewrite(f)-Brise sve podatke iz datoteke.
Read(f,x)- cita podatak iz datoteke i svesta ga u promenjljivu x
Write(f,x)-upisuje x u datoteku
Eof(f)-=true ako je datotesni pokazivac na kraju datoteke.
pascal.910dekik,
D->> A kako se otvara fajl i upisuje u njega i uzimaju podatci iz njega...
D->> (obican tekst fajl).
'vako
var F : Text
Assign(F,'fajl.txt'); {otvara fajl.txt}
Append(F); {ide posle assign i postavlja kursor na kraj datoteke za
upis podataka}
Reset(F); {ide OBAVEZNO posle assign ako ochesh da chitash iz datoteke}
Rewrite(F); {ide posle assign ako ochesh da obrishesh datoteku i spremish
za upis}
Readln(F,S); {chita S iz fajla F, ide posle Reset}
Writeln(F,S); {upisuje S u fajl F, ide posle Append}
Eof(F); {vracha true ili false u zavisnosti da li je kraj datoteke}
Eol(F); {vracha true ili false u zavisnosti da li je kraj linije}
Close(F); {zatvara fajl F}
Ako ima problema samo reci.
pascal.911sfilip,
>#=> imal' neko drugi ideje?
>
> Nemaš dovoljno memorije...
ex, kako li se toga ja pre nisam setio...
prvo što sam uradio je da sam pre svakog startovanja pregledavao slobodnu
memoriju, ali je verovatno 612kb bilo malo? e, sad ću sve da vas bijem, majke
mi ;)
dakle... sumljam na zli arhiver, jer mi lharc radi Ok, a arj nije hteo...
nisam probao druge verzije arj-a, a nema ni potrebe...
ali ipak, zašto?
pascal.912firus,
Gm> Pa jesi tu i tamo neke dvotacke i slicno al snasao sam se.
Vidim da sam zaboravio dva puta da dodam po dvotačku. :(
Fora je u tome što moj program ime pakera čita iz ini fajla, a ono
je izvađeno iz if then strukture:
if paker = 'arj.exe' then
begin
...
end;
Ja to isekao i nisam obratio pažnju da imam dodelu vrednosti.
Gm> Hvala mnooooogo.
Lepo sam ja rekao da imaš više sreće od mene. :)
Neko će da ti preporuči da pre i pose toga dodaš po Swapvectors.
Za Arj ti to ne treba, ali što reče neko dobro je da stvaraš
naviku.
X
pascal.913firus,
Qp> (mislim da je tako ,ali ipak pogledaj help) i tako ogranicis heap koji
Qp> koristi tvoj program i i ostavis memorije za druge programe.
Ograničiš blago meni heap na 0 i završiš posao.
E sad, ako zatreba lako ćeš da ga povećaš.
X
pascal.914nenad,
> prvo što sam uradio je da sam pre svakog startovanja pregledavao slobodnu
> memoriju, ali je verovatno 612kb bilo malo? e, sad ću sve da vas bijem,
> majke mi ;)
Pre svakog startovanja čega? Tvog programa ili ARJ-a? Jesi probao
da umesto ARJ-a pozoveš MEM ili nešto slično?
pascal.915emajsijuen,
De>> Rewrite(F); {ide posle assign ako ochesh da obrishesh datoteku i spremish
De>> za upis}
Rewrite, u stvari samo otvara novu datoteku. A ako datoteka vec postoji
rewrite je prebrise i otvori za upis.
De>> Writeln(F,S); {upisuje S u fajl F, ide posle Append}
~~~~~~~~~~~~~~~~
Moze i posle rewrite... :) BTW, moze i write(F,S);
De>> Eof(F); {vracha true ili false u zavisnosti da li je kraj datoteke}
Radi samo ako je datoteka otvorena za citanje, u drugom slucaju vraca
runtime error 104 (File not open for input) ;)
pascal.916dekik,
D->> Rewrite,u stvari samo otvara novu datoteku.A ako datoteka vec postoji
D->> rewrite je prebrise i otvori za upis.
E pa sad...mislim da je bilo dovoljno "sazhvakano".
D->> Moze i posle rewrite...:)BTW,moze i write(F,S);
Mislim da se chovek razume u write i writeln naredbu.
D->> Radi samo ako je datoteka otvorena za citanje,u drugom slucaju vraca
Logichno.
pascal.917sfilip,
>> prvo što sam uradio je da sam pre svakog startovanja pregledavao slobodnu
>> memoriju, ali je verovatno 612kb bilo malo? e, sad ću sve da vas bijem,
>> majke mi ;)
>
>Pre svakog startovanja čega? Tvog programa ili ARJ-a? Jesi probao
>da umesto ARJ-a pozoveš MEM ili nešto slično?
pre startovanja arj-a.
probao sam da umesti, ili pre arj-a pozovem Mem, koj je svaki put pokazivao
isto, potpuno identično.
dakle, u programu tri puta startujem arj, dva puta je ok, a treći zaglavi.
Svaki put pre toga mem pokaže isto. Još ideja? :)
pascal.918supers,
>> dakle... sumljam na zli arhiver, jer mi lharc radi Ok, a arj nije
>> hteo... nisam probao druge verzije arj-a, a nema ni potrebe...
>> ali ipak, zašto?
ARJ je stvarno zli arhiver kada je reč o konvencionalnoj memoriji.
Sećam se kakvu sam frku imao dok sam vozio XT-a pa je trebalo da
u 640K uklopim DOS, nekoliko TSR-ova, OLX čitač i još dearhiver
za QWK pakete. Pucalo je kod pozivanja ARJ-a dok nisam i ja otkrio
sjajni LHA :)
pascal.919firus,
Sf> dakle... sumljam na zli arhiver, jer mi lharc radi Ok, a arj nije
Sf> hteo... nisam probao druge verzije arj-a, a nema ni potrebe...
Sf> ali ipak, zašto?
Jeli majstore.
Jel si ti pročitao ono što sam poslao gmatic-u? Lepo sam napisao kako
se radi sa Arj-om. Ako nisi, pogledaj šta sam napisao.
I onda pogledaj prvu liniju. Koliki ti je swap i koliki ti je heap?
Kako si postavio argumete za otpakivanje i zapakivanje?
Ko ti tačno javlja grešku Arj ili program? Koja je TAČNO greška u
pitanju DOSLOVCE.
I gde je taj sorce, ja sam ga omašio. :(
X
pascal.920tomak,
> Ograničiš blago meni heap na 0 i završiš posao.
> E sad, ako zatreba lako ćeš da ga povećaš.
A ako hoćeš da napraviš program u "protected mod-u" u BP7 jel može da se
napravi a da ne koristi dpmi16bi.ovl i rtm.exe.
pascal.921qpele,
Sf> dakle, u programu tri puta startujem arj, dva puta je ok, a treci
Sf> zaglavi. Svaki put pre toga mem pokaze isto. Jos ideja? :)
Jesi li na poscetku stavio nesto tipa {$M 2000,0,0} ?
pascal.922qpele,
To> A ako hoces da napravis program u "protected mod-u" u BP7 jel moze
To> da se napravi a da ne koristi dpmi16bi.ovl i rtm.exe.
JOK!
pascal.923drejk,
slusajte, ono... ja kao pravim neki programcic i sad posto sam pocetnik ne znam
kako da rezultat programa bachim u fajl... dakle ono... ono sto program uradi
da se napravi poseban fajl na HD-u i da se tu usnimi...
pozdrav
pascal.924dekik,
D->> slusajte,ono...ja kao pravim neki programcic i sad posto sam pocetnik
D->> ne znam kako da rezultat programa bachim u fajl...dakle ono...ono sto
D->> program uradi da se napravi poseban fajl na HD-u i da se tu usnimi...
var F : Text;
Begin
Assign(f,'fajl.dat');
Append(f);
Writeln(f,podatak);
Close(f);
end.
pascal.925goxi,
Hi.
Ja neznam nista u vezi pascal-a ali bih voleo da naucim, za pocetak, ako bi
neko mogao da mi posalje Pascal za DOS (ako nije veliki), UNAPRED HVALA!
pascal.926gmatic,
==> Hi.
==> Ja neznam nista u vezi pascal-a ali bih voleo da naucim, za
==> pocetak, ako bi neko mogao da mi posalje Pascal za DOS (ako
==> nije veliki), UNAPRED HVALA!
Velik je (bar 7.0 koji ja imam staje na 10-tak disketa kolko znam)
pascal.927dekik,
D->> Ja neznam nista u vezi pascal-a ali bih voleo da naucim,za pocetak,
D->> ako bi neko mogao da mi posalje Pascal za DOS (ako nije veliki),
D->> UNAPRED HVALA!
Ako nije VELIKI ?!!? E pa jeste ;)
pascal.928tomak,
> Ja neznam nista u vezi pascal-a ali bih voleo da naucim, za pocetak, ako
> bi neko mogao da mi posalje Pascal za DOS (ako nije veliki), UNAPRED
> HVALA!
Ima kažu prava 7-ica na 13 disketa i to slati ... a ima i Turbo Pascal 7.0
na 2 diskete. Ni jedna ni druga verzija ne može da se šalje u konferenciju
ali ova druga na mail ... ustvari, ne bi trebalo da može ni tako ali ...
pascal.929supers,
>> Ja neznam nista u vezi pascal-a ali bih voleo da naucim, za
>> pocetak, ako bi neko mogao da mi posalje Pascal za DOS (ako nije
>> veliki), UNAPRED HVALA!
A da ti posetiš svog zvaničnog dilera softvera?
pascal.930goxi,
OK, onda nista :(( posto nemam u blizini ni jednog diler-a koji se bavi
software-om, ustvari imam jednog ali mu je snimanje na diskete 2din, pa nisam
lud da mu dam toliko.
pascal.931firus,
To> Ima kažu prava 7-ica na 13 disketa i to slati ... a ima i Turbo
To> Pascal 7.0 na 2 diskete.
Ajde da pojasnim stvari.
Borland pascal 7.0 ide na 13 disketa. Možeš da praviš programe u
protected modu, kao i windows programe.
Turbo pascal 7.0 je osakaćena verzija Borland pascala koja može
da pravi samo obične programe za DOS.
Postoji i neka piratska verzija na 11 disketa, ne znam tačno
šta joj fali, ali verovatno podrška za windows programe.
X
pascal.933firus,
Go> OK, onda nista :(( posto nemam u blizini ni jednog diler-a koji se
Go> bavi software-om, ustvari imam jednog ali mu je snimanje na diskete
Go> 2din, pa nisam lud da mu dam toliko.
4 dinara ne možeš da odovojiš za Pascal? Pa kako bi paltio original?
X
pascal.934sfilip,
>Jel si ti pročitao ono što sam poslao gmatic-u? Lepo sam napisao kako
>se radi sa Arj-om. Ako nisi, pogledaj šta sam napisao.
pogledah, nekada davno... ali koristi nikakve. Do toga svega sam sam došao, a
stek od 16kb mi je neophodan.
pazi, sve mi je ok, nema problema sa komandim linijama i ostalime, on mi
jednom startuje arj, kada ga startuje drugi put onda zablokira. Dakle, niko ne
prijavljuje grešku no samo BLOKIRA.
pre startovanja prvi i drugi put imam isto memorije, proverio preko mem-a.
lharc radi ok, al je tragično spor. Štos je u tome da ovaj zli arj nešto brlja
negde, pa to ne obriše, već ga to zaje*e kad ga startujem drugi put. Šta, gde
i kako to izbeći?
el tebi radi onaj tvoj sors? koju verziju arj-a imaš? idem sad skinuti
najnoviju sa sezama, pa ću da proverim. Staviću i iste $m parametre.
>I gde je taj sorce, ja sam ga omašio. :(
ai.... ne znam, tu negde...
..con re 8 100497- sfilip ;)
pascal.935sfilip,
e, probao sam sve po starom sa arj--om verzija 2.50 (oktobar '95) i radilo
je ok. Probao sam isto sa onom verzijom koju sam pre imao i opet je puklo.
Dakle, reč je u verziji arj-a. To je neka 2.8 verzija, velika 244.188
bajtova. Mogu da se pošaljem ako ikoga zanima?
svejedno, svi moji problemi su rešeni ;)
btw, pošto mi je trebalo dosta memorije u programu, nisam smanjivao heap,
već koristio SetMemTop pre i posle startovanja arj-a. Naravno, probao sam
i bez toga. Sa ovom 2.5 verzijom sve radi ok i bez problema, a ne znam
uopšte otkud mi ova 2.8? strašno...
pascal.936goxi,
Ma kakvih 4 dinara
????
Rekli su mi neki da staje na 11 disketa.Ali onaj strava pascal!
pascal.937janko,
> Ma kakvih 4 dinara
> ????
> Rekli su mi neki da staje na 11 disketa.Ali onaj strava pascal!
..i tako smo izgubili još jednog budućeg programera u Paskalu. :)
Stvarno, 22 dinara je previše dati da bi naučio nešto. Bolje da kupiš
pet-šest igrica.
pascal.938epson,
│ uopšte otkud mi ova 2.8? strašno...
└─────────────────────────────────────────────────
To je ili trojanac ili samo prepravljena 2.5 verzija od strane nekih
'hakera' . Inače imam ga skoro na svakom hack sajtu na internetu .
pascal.939sfilip,
>│ uopšte otkud mi ova 2.8? strašno...
>└─────────────────────────────────────────────────
>
> To je ili trojanac ili samo prepravljena 2.5 verzija od strane nekih
e, nemo' me plašiš trojancima... sad sam zbog tebe skenirao ceo disk, i
naravno nisam ništa našao ;)
a kad bolje pogledam, veći je stotinak kilobajtova od starog, tu je svašta
moglo da se metne. I ne znam otkud mi uopšte... ali koga više boli uvo za to :)
thanx enivej :)
pascal.940epson,
│ e, nemo' me plašiš trojancima... sad sam zbog tebe skenirao ceo disk, i
│ naravno nisam ništa našao ;)
└─────────────────────────────────────────────────
Neću, ali je tako bilo i sa verzijom PKZIPa na koju sam se i ja
'napalio' .
│ a kad bolje pogledam, veći je stotinak kilobajtova od starog, tu je svašta
└─────────────────────────────────────────────────
Ma imam (ja) programče koje ti poveća program za koliko bajtova oćeš a to
bude samo gabage .
pascal.941supers,
>>> Rekli su mi neki da staje na 11 disketa.Ali onaj strava pascal!
>> Stvarno, 22 dinara je previše dati da bi naučio nešto. Bolje da
>> kupiš pet-šest igrica.
Ma najveći je štos što on očekuje da mu neko uploaduje 11 disketa
kako bi uštedeo 22 dinara.
pascal.942dekik,
D->> Rekli su mi neki da staje na 11 disketa.Ali onaj strava pascal!
To na 11 disketa je pascal dos 7.0 + win 1.0
pascal.943firus,
Go> Rekli su mi neki da staje na 11 disketa.Ali onaj strava pascal!
Ne čitaš, ne čitaš. Lepo sam rekao da je to sve jedan te isti pascal.
Cela verzija Borland Pascala 7.0 ide na 13 disketa, ta isečena ide na 11.
Imaš i maksimalno isečenu verziju koja ide na 2 diskete.
Iskreno rečeno ne kapiram šta će tebi verzija koja ima podršku za Windows
programe i za protected programe. Ako učiš pascal tebi je onda ovaj od dve
diskete sasvim dovoljan.
X
pascal.944firus,
Sf> e, nemo' me plašiš trojancima... sad sam zbog tebe skenirao ceo disk,
Sf> i naravno nisam ništa našao ;)
A čime si skenirao? Virus kilerom?
Trojanac nije virus. Preslišaj se malo. Kod trojanaca, nema skeniranja.
X
pascal.945firus,
Ep> Neću, ali je tako bilo i sa verzijom PKZIPa na koju sam se i ja
Ep> 'napalio' .
Da pogađam verzija 4.11?
Ne moraš ništa da se plašiš, ona nije trojanac, to je samo prepravljena
adresa da bi se pokupile pare.
Ep> Ma imam (ja) programče koje ti poveća program za koliko bajtova
Ep> oćeš a to bude samo gabage .
Pa uradi jedno type bilo_koli_fajl >> arj.exe i eto ti arj koji radi,
a ima onoliko više koliko ima taj fajl.
X
pascal.946firus,
De> To na 11 disketa je pascal dos 7.0 + win 1.0
Pascal for Win 1.0 je kompatibilan je sa TP 6.0, a ne sa TP 7.0.
Šta onda rade zajedno?
X
pascal.947pvlada,
PV>Trojanac nije virus. Preslišaj se malo. Kod trojanaca, nema
PV>skeniranja.
A šta je onda Heruistic scan :)
pascal.948qpele,
Fi> Cela verzija Borland Pascala 7.0 ide na 13 disketa, ta isecena ide na
Fi> 11. Imas i maksimalno isecenu verziju koja ide na 2 diskete.
Da razresim dilemu Pascal(13) =Pascal(11) + Run Time Libraries (2)
pascal.949dekik,
D->> Sta onda rade zajedno?
Ja stvarno ne znam ali tako je...
pascal.950firus,
Pv> A šta je onda Heruistic scan :)
Nova metoda za otkrivanje VIRUSA. Pronalzi VIRUSE koje nema u
svojoj bazi potpisa na osnovu sličnosti sa postojećima.
Trojanac možeš da skeniraš sa jedino snoopdosom ili informerom,
odnosno da vidiš šta radi kad se pokrene, a kad se pokrene onda
je obično kasno.
X
pascal.951pvlada,
PV>Trojanac možeš da skeniraš sa jedino snoopdosom ili
PV>informerom, odnosno da vidiš šta radi kad se pokrene, a kad
PV>se pokrene onda je obično kasno.
Nemora da znači, ja sam napravio trojanca u Trojan mejkeru, i
kada sam disk prekledao heruistički on ga je našao :)
pascal.952sfilip,
>Nemora da znači, ja sam napravio trojanca u Trojan mejkeru, i
>kada sam disk prekledao heruistički on ga je našao :)
nisam čitao dugo, pa da se ubacim na ovu poslednju...
el beše trojanac program na koj je nakačeno programče koje "instalira" neki
virus po sistemu? Dakle, kod drži u sebi i može da ga kriptuje kako god 'oće,
a kad ga startuješ onda ga otkriptuje i razbaca ga po disku?
pascal.953zeljkoj,
> Da razresim dilemu Pascal(13) =Pascal(11) + Run Time Libraries
> (2)
Hm... ja videh neku verziju na 11, 10+1 RTL
pascal.954firus,
Sf> el beše trojanac program na koj je nakačeno programče koje "instalira"
Sf> neki virus po sistemu? Dakle, kod drži u sebi i može da ga kriptuje
Sf> kako god 'oće, a kad ga startuješ onda ga otkriptuje i razbaca ga po
Sf> disku?
Trojanac je program koji simulira da radi nešto korisno, a prava svrha
mu je da nanese štetu. Naravno moguće je da program stvaro radi nešto
korisno, recimo arhivira podatke, ali da radi i nešto što ne bi trebalo,
recimo da briše neke fajlove.
X
pascal.955sfilip,
>Trojanac je program koji simulira da radi nešto korisno, a prava svrha
>mu je da nanese štetu. Naravno moguće je da program stvaro radi nešto
hm... a kako se zovu onda oni "ubacivači" virusa? kolko ja znam, trojanci
ubacuju viruse, a postoji neki drugi naziv za programe sa prikrivenim
destruktivnim idejama. Uostalom, zar sama reč trojanac ne asocira na program
koj ubacuje virus?
pascal.956dekik,
Jel ima neko neki unit za rad sam com portovima ?
BTW: jel moguche TPU "prekompajlirati" u unit za delphi ?
pascal.957acafaca,
-=> Cela verzija Borland Pascala 7.0 ide na 13 disketa, ta isečena ide na 11.
Može li 7.0 da se instalira sa diska?
pascal.958supers,
>>> Trojanac je program koji simulira da radi nešto korisno, a prava
>>> svrha mu je da nanese štetu. Naravno moguće je da program stvaro
>> radi nešto
>>
>> hm... a kako se zovu onda oni "ubacivači" virusa?
Dropperi. Na ovu temu nije loše pročitati PCUTIL:virusi iz vremena
kada se kriss raspisivao :)
pascal.959emajsijuen,
Ac>> Moze li 7.0 da se instalira sa diska?
-Moze...Easy install rulez :)
pascal.960vector,
Ţ -=> Cela verzija Borland Pascala 7.0 ide na 13 disketa, ta isecena ide na 11.
Ţ
Ţ Moze li 7.0 da se instalira sa diska?
Ţ
▀▀▀▀▀▀▀▀▀
Moze. Najlakse preko programa "Easy Install".
pascal.961bokir,
Borland Pascal 7.0 i Delphi sorsovi za LZSS kompresiju i dekompresiju...
chflz100.zippascal.962firus,
De> BTW: jel moguche TPU "prekompajlirati" u unit za delphi ?
Samo ako imaš sors. Ne možeš TPU direktno da prebaciš u DCU.
X
pascal.963space.ace,
>> hm... a kako se zovu onda oni "ubacivači" virusa? kolko ja znam, trojanci
>> ubacuju viruse, a postoji neki drugi naziv za programe sa prikrivenim
Najn, ti "ubacivači" virusa, kako ih nazva, su samo jedna od vrsta
trojanaca, kojih ima previše :). Npr, jedna od prvih verzija trojanca
na UNIX-u je program koji simulira login prompt, pa kada neko ukuca
svoj username i password, program to lepo zapamti i pošalje autoru,
a jadnom korisniku izbaci neku glupu grešku, tipa "buss error" ili
tako nešto i predloži mu da resetuje stanicu. Kada korisnik to učini,
pojavi se normalan login prompt, i sve lepo prođe...
U poslednje vreme su najmasovniji oni trojanci koji podmeću viruse,
ali se oni lako otkrivaju, jer AV programi otkrivaju virusni kod.
Sad, taj kod može i da se maskira ili kriptuje, čime ga je teže
otkriti.
pascal.964acafaca,
-=> Moze. Najlakse preko programa "Easy Install".
Je li ga ima ovde. Tražio sam al' nisam mogao da nađem.
pascal.965emajsijuen,
Ac>> Je li ga ima ovde. Trazio sam al' nisam mogao da nadem.
Ima. Evo saljem ga uz poruku.
ei.exepascal.966emajsijuen,
Zna li neko kako da procitam serijski broj hard diska, ali da to radi i
iz 95-ice i iz DOS-a ?
pascal.967bokir,
> Zna li neko kako da procitam serijski broj hard diska, ali da to radi i
> iz 95-ice i iz DOS-a ?
Mislim da možeš da čitaš direktno iz boot sektora. Ne znam tačno na kom
ofsetu se nalazi, ali piše u HelpPC 2.1.
pascal.968pvlada,
ali piše u HelpPC 2.1.
Da li neko zna da li i gde ima na sezamu HelpPC ?
pascal.969bokir,
> Da li neko zna da li i gde ima na sezamu HelpPC ?
\DOS\PROG\INFO\helppc21.zip
pascal.970pvlada,
> ĐDOSĐPROGĐINFOĐhelppc21.zip
Hvala :)
pascal.971acafaca,
-=> Ima. Evo saljem ga uz poruku.
'vala ti!
pascal.972olio,
Treba da mi se resi sledeci zadatak:
Sastaviti program za racunanje
kvadratne sredine clanova niza
X1: : K=KV.koren(x12+x22+...+xn2)/n )
x12 je x jedan na kvadrat
Drugi zadatak:
Sastaviti progra za odredjiva za odredjivanje
drugog najveceg clana niza i
njegovog indeksa.
Ovo su neki zadaci za drugi razrd
srednje skole. Ja neznam da ovo radim
pa mi treba pomoc
Pozdrav Oliver.
pascal.973stameni,
Mislim da je Olio tražio program za nalaženje drugog najvećeg
broja u datom nizu. Evo jedne verzije u Pascalu.
Program za nalaženje sredine je lakši, a ako treba, neka javi,
će napišemo :)
program DrugiNajveci;
{$R+}
const
MaksimalnoElemenata = 100;
var
niz: array[1..MaksimalnoElemenata] of integer;
prvi, drugi, tekuci: integer;
indeks1, indeks2: 1..MaksimalnoElemenata;
BrojElemenata, brojac: 3..MaksimalnoElemenata;
procedure UnosNiza;
var
i: 1..MaksimalnoElemenata;
begin
write('Koliko elemenata ima niz? ');
readln(BrojElemenata);
for i := 1 to BrojElemenata do
begin
write('n[', i, '] = ');
readln(niz[i])
end
end;
procedure swap(var x, y: integer);
var
z: integer;
begin
z := x;
x := y;
y := z
end;
begin
UnosNiza;
prvi := niz[1];
drugi := niz[2];
indeks1 := 1;
indeks2 := 2;
if prvi < drugi then
begin
swap(prvi, drugi);
indeks1 := 2;
indeks2 := 1
end;
for brojac := 3 to BrojElemenata do
begin
tekuci := niz[brojac];
if tekuci > prvi then
begin
drugi := prvi;
prvi := tekuci;
indeks2 := indeks1;
indeks1 := brojac
end
else
if tekuci > drugi then
begin
drugi := tekuci;
indeks2 := brojac
end
end;
writeln('Drugi najveci je n[', indeks2, '] = ', drugi);
readln
end.
pascal.974stameni,
Ovo bi trebalo da radi kvadratnu sredinu.
program KvadratnaSredina;
{$R+}
const
MaksimalnoElemenata = 100;
var
niz: array[1..MaksimalnoElemenata] of real;
BrojElemenata, brojac: 1..MaksimalnoElemenata;
zbir: real;
procedure UnosNiza;
var
i: 1..MaksimalnoElemenata;
begin
write('Koliko elemenata ima niz? ');
readln(BrojElemenata);
for i := 1 to BrojElemenata do
begin
write('n[', i, '] = ');
readln(niz[i])
end
end;
begin
UnosNiza;
zbir := 0;
for brojac := 1 to BrojElemenata do zbir := zbir + sqr(niz[brojac]);
zbir := zbir / BrojElemenata;
writeln('Kvadratna sredina zbira je ', zbir, '.');
readln
end.
pascal.975obren,
> Sastaviti program za racunanje kvadratne sredine clanova niza
> X1: : K=KV.koren(x12+x22+...+xn2)/n )
> x12 je x jedan na kvadrat
Program KvadratnaSredina;
Var x : Array[1..100] of Real;
k, suma : Real;
n, i : Integer;
Begin
Write('Unesi broj clanova niza:');
Readln(n);
suma := 0;
For i:=1 to n do
Begin
Write('x[', i, ']=');
Readln(x[i]);
suma := suma + x[i]*x[i]
End;
k := sqrt(suma/n);
Writeln('Kvadratna sredina clanova niza je: ', k)
End.
pascal.976obren,
> Drugi zadatak: Sastaviti program za odredjiva za odredjivanje drugog
> najveceg clana niza i njegovog indeksa.
Var x : Array[1..100] of Integer;
max : Real;
n, i, ind : Integer;
Begin
Write('Unesi broj clanova niza: ');
Readln(n);
Write('x[1]='); Readln(x[1]);
max := x[1];
ind := 1;
For i:=2 to n do
Begin
Write('x[', i, ']=');
Readln(x[i]);
if max<x[i] then max:=x[i];
if x[ind]>x[i] then ind:=i;
End;
For i:=1 to n do
if (x[i] > x[ind]) and (x[i] < max) then ind := i;
Writeln('Drugi najveci element je ', x[ind], ' a njegov indeks je ', ind);
End.
Sledeći put ipak probaj sam da se potrudiš... ;)
pascal.977olio,
> Sledeci put ipak probaj sam da se potrudis... ;)
Ma ovo su zadaci koji su dobili ucenici da rese u 2-oj godini
gimnazije iz informatike.
A ja neznam pascal, pa da pitam ovde,
valjda necete zameriti.
Pozdrav Oliver.
pascal.978obren,
> Ma ovo su zadaci koji su dobili ucenici da rese u 2-oj godini
> gimnazije iz informatike. A ja neznam pascal, pa da pitam ovde,
> valjda necete zameriti.
Sorry, ja mislio da si školarac koga mrzi da radi domaći... O:)
pascal.979vector,
sblast09.zip Informacije o programiranju zvucnih kartica
sblast09.zippascal.980emajsijuen,
Ve>> sblast09.zip Informacije o programiranju zvucnih kartica
Ne fercera. :(
Isprobao sam funkciju DetectSoundBlaster, ili kako se vec zove, i nece da
ga detektuje... :( Doduse imam Opti Mad 16 zvucnu karticu, koja je navodno
100% kompatibilna...
BTW. da li je jos neko isprobao gore pomenutu komandu ?
pascal.981stifa.jordan,
HITNO!!!
---------
Potrbna pomoc za resenje PASCAL programa, mojoj cerkici koja
sutra polaze za kraj godine.
Evo ih:
1) Napisati program koji vrsi prikazivanje i prebrojavanje svih
3-cifrenih brojeva kod kojih je:
A) Cifra stotina paran broj
B) Cifra jedinica neparan broj
C) Cifra stotina >5 a cifra desetica <7
Drugi zadatak:
Napisati program koji ucitava dvodimenzionalni niz A(m,n) i
racuna:
A) Proizvod svih elemenata na glavnoj dijagonali
i zbir svih elemenata ispod sporedne dijagonale.
B) Racuna vrednost najveceg elementa na glavnoj
i sporednoj dijagonali.
Puno vam hvala unapred i ako moze sto pre tj. do sutra u 11h.
Marko i Marina
pascal.982petarg,
Evo potrebnih programa, urađeni su bez procedura i bilo čega (nadam
se) što bi moglo da zbuni one koji ne znaju Pascal dobro...
JG
pascal.983petarg,
Ko radi taj i greši, a sada je 3 AM, pa dakle evo fajla :)
JG
zad.arjpascal.984clown,
Narode evo jednog programcica...inace to je First help za
seminarski koji moram da zavrsim do sutra u 12
!!!!!!!!!!
Ima jedan bagic,kada kupujem kola on mi skida poslednjeg iz baze,a
ne onog koji je izabran!
HAJDE pomagajte!!!!!!!!!!!!!!!
unapred tnx,
Ana
a evo ga i program
autop.pa2pascal.985emajsijuen,
*HITNO*
Zna li neko kako da na matricnom stampacu odstampam graficki ekran, u
screen modu 640x480x16, ogranicen koordinatama x1,y1,x2,y2 ?
Zahvaljujem, unapred :)
pascal.986dzakic,
> Zna li neko kako da na matricnom stampacu odstampam graficki
> ekran, u screen modu 640x480x16, ogranicen koordinatama
> x1,y1,x2,y2 ?
Možda ti pomogne:
Procedure Dump(x,y,xl,yl,lmarg:integer);
Gde je (x,y) gornji levi ugao, xl širina, yl visina i lmarg leva
margina (offset) prilikom štampe. Pisano je '91, imao sam Herkules
pa ćeš morati da se snalaziš da GetPixel koji tamo vraća 0 ili 1,
dovedeš u red jer ćeš ovde zavisno od video moda dobijati 0-15 ili
0-255. Ako hoćeš da kolor sadržaj ekrana štampaš na matričnom, imaće
više posla da se svaka tačka prikaže u nekom rasteru. U svakom
slučaju, nadam se da će biti od pomoći.
dump.paspascal.987zuleika,
Poruka za druga. Potrebna mi je knjiga D. Savica "Paskal - turbovizija ...",
ili informacija gde se moze naci. Takodje mi je potrbna funkcija za ucitavanje
celih i relanih brojeva (u razlicitim vrstama zapisa).
Hvala unapred, :).
pascal.988dekik,
Problem : Async.Pas (program za rad sa comm portovima)
Ne znam da li je problem do unit-a ili do modem-a ili...do mene.
Kada startujem program posaljem modemu initstring (ili bilo sta drugo), a kada
ocu posle toga opet da posaljem nesto modem to vrati(znaci da je primio) ali
nista ne uradi sto se vidi kod komande "ATA". Da li treba posle svake komande
da resetujem port ili tako nesto?
Unapred Hvala.
pascal.989mmilosh,
*************************HITNO!!!HITNO!!!HITNO*******************************
je potrebno da uradim seminarski iz Osnova programiranja, tačnije do sutra!!!
Ako to propustim moraću da branim rad tek u septembru i onda ništa od izlaska
na ispit sad u ponedeljak! (ne pitajte me šta sam čekao >|))
Elem, evo kako glasi zadatak:
Polja šahovske table označiti parom čije su komponente:
- slovo iz intervala ['A','H'],
- prirodni broj iz intervala [1,8],
pri čemu prva komponenta predstavlja oznaku vertikale (gledano s leva na
desno), a druga broj horizontale (gledano odozdo nagore). Za zadate parove
(k,l) i (m,n) ispitati:
(a) da li su zadata polja iste boje;
(b) da li dama sa polja (k,l) napada polje (m,n);
(c) koji najmanji broj poteza treba da napravi konj da bi sa polja
(k,l) stigao na polje (m,n), i koji su to potezi.
Sad, ovo pod (c) je očigledno najproblematičnije pa bih molio samo za rešenje
datog dela, mada neću odbiti ni bilo šta drugo jer mi je baš frka.
Nagrada se podrazumeva :) Pivo ili šta već, gajba piva :), pola litre krvi :))
...
Naravno, radi se u Turbo Pascalu 7.0.
Grafički prikaz, čini mi se, nije neophodan. Važan mi je samo algoritam za pod
(c) ostalo ću već sam ubudžiti. :)
FRKA!!!FRKA!!!FRKA!!!
pascal.990sfilip,
>Sad, ovo pod (c) je očigledno najproblematičnije pa bih molio samo za
>rešenje datog dela, mada neću odbiti ni bilo šta drugo jer mi je baš frka.
>Nagrada se podrazumeva :) Pivo ili šta već, gajba piva :), pola litre krvi
>:))
ako je već pivo u pitanju...
konji.paspascal.991sljubisic,
Subj.: Casovi iz Informatike (Pascal)
Jednoj srednjoskolki potrebni casovi iz Pascala, pa ako ste licno zaintere-
sovani ili znate nekoga ko jeste, prosledite mi vas kontakt telefon na
mail.
pascal.992zuleika,
Pitanje od druga.
Ima sledeci problem.
Zeleo bih da imam unit 1 u kome je definisana klasa A i unit 2 u kome je
definisana klasa B. Pojedini metodi klase A pozivaju metode klase B i
obrnuto. Zbog toga je neophodno da u Interface section svakog unit-a
postavim Uses clause sa imenom drugog unit-a.
Ovo dovodi do greske tipa Circular Reference. Jedan od postupaka da se
izbegne ceo problem je sigurno da stavim obe klase u jedan file, ali to
nije ono sto zelim (zbog preglednosti i daljeg razvoja).
Sta da radim? Hvala unapred, :).
pascal.993janko,
> Zeleo bih da imam unit 1 u kome je definisana klasa A i unit 2 u
> kome je definisana klasa B. Pojedini metodi klase A pozivaju metode
> klase B i obrnuto. Zbog toga je neophodno da u Interface section
> svakog unit-a postavim Uses clause sa imenom drugog unit-a.
>
> Ovo dovodi do greske tipa Circular Reference. Jedan od postupaka da
> se izbegne ceo problem je sigurno da stavim obe klase u jedan file,
> ali to nije ono sto zelim (zbog preglednosti i daljeg razvoja).
Teško da je dizajn pravilan ako postoji slučaj kao kod tebe.
Potreba da dve klase pozivaju jedna drugoj metode je retka u
dobrom dizajnu. Kada postoji, s obzirom na njihovu međuzavisnost,
logično je da se nalaze jedna uz drugu.
Međutim, ni puko smeštanje obe u jedan fajl ti neće rešiti problem
ako ne koristiš FORWARD deklaracije. Pogledaj Help za primere.
pascal.994zdravkod,
ljudi brzo ...
Kako proslediti komandu CD-u .... kako da mu kazem PLAY????
koji interrupt sta gde kako ???
pascal.995dekik,
Kako da iskljucim Caps i Num lock iz programa?
Pozdrav, Dejan.
pascal.996jjerry,
JJ=>Kako proslediti komandu CD-u .... kako da mu kazem PLAY????
JJ=>
JJ=>koji interrupt sta gde kako ???
Pogledaj,ima ovde na Sezamu spisak svih interaptova u DOS\PROG\INFO
pa vidi.Mada mislim da ce CD-ROMu pre da se komanduje preko portova
medjutim ne znam, dok ne pogledam dokumentaciju.
pascal.997jjerry,
JJ=>Kako da iskljucim Caps i Num lock iz programa?
Probaj to preko Keyboard interapta..Ne znam kako moze da se u
Paskalu (nekom procedurom) to izvede.Uostalom,vidi helpove.
pascal.998vector,
Ů│ Kako da iskljucim Caps i Num lock iz programa?
----------<cut>----------
Procedure CapsOff; Assembler;
asm
MOV BX,$0040
MOV ES,BX
MOV BX,$0017
MOV AL,ES:[BX]
AND AL,$BF
MOV BYTE PTR ES:[BX],AL
end;
Procedure NumOff; Assembler;
asm
MOV BX,$0040
MOV ES,BX
MOV BX,$0017
MOV AL,ES:[BX]
AND AL,$DF
MOV BYTE PTR ES:[BX],AL
end;
----------<cut>----------
Trebalo bi da radi. :)
pascal.999dekik,
│ Trebalo bi da radi. :)
└─────────────────────────────────────────────────
Hvala puno na ovom, samo si trebao jedno conf reply, zato sto retko citam
poruke koje nisu odgovor na moje u ovoj konfi.
Pozdrav, Dejan.
pascal.1000zdravkod,
ma znam za to ... nego je fora sto je malko zeznuto ...
Odnosno sve se radi preko INT 2F koji je u stvari Multiplex Int.
tj. preko njega ide gomilu programa za device-eve ili sta vec.
Tako da nema konkretan INT za CD vec se mora formirati neki
Device Header koji je zajedniciki za sve a onda se broj funkcije
stavi u AH (ne secam se vrednosti) a u neki par registara
32-bitna vrednost na taj header... pa se onda snalazi ...
Sve u svemu ... par puta mi je izvisio emm ...
Ako neko ovo provali nek javi.
pascal.1001vector,
Ů│ ljudi brzo ...
Ů│ Kako proslediti komandu CD-u .... kako da mu kazem PLAY????
Khm, ..., cini mi se da sam sa Sezama pokupio jedan source kod :)
rezidentnog CD plejera, pisanog upravo u asembleru. Medjutim, taj
fajl sam bas pre neki dan obrisao, ;) tako da ti preporucujem da
prekopas stare PCUTIL konferencije, jer sam odatle pokupio taj
source, a dok ne nadjes taj fajl evo ti source jednog drugog CD
plejera, ciji je izvorni kod vrlo nepregledan. :)
source.arjpascal.1002vector,
Ů│ Hvala puno na ovom, samo si trebao jedno conf reply, zato sto retko
Ů│ citam poruke koje nisu odgovor na moje u ovoj konfi.
Tek kada sam poslao exec primetio sam da nisam stavio reply, vec write.
:)
pascal.1003jjerry,
JJ=>Tako da nema konkretan INT za CD vec se mora formirati neki
JJ=>Device Header koji je zajedniciki za sve a onda se broj funkcije
JJ=>stavi u AH (ne secam se vrednosti) a u neki par registara
JJ=>32-bitna vrednost na taj header... pa se onda snalazi ...
Veruj mi,nemam pojma..ajd' makar cu da ti uploadujem dokumentaciju
za taj INT 2F.
Poz.
int2f.arjpascal.1004zdravkod,
E genije ... avo skidam ... a ima ida trazim ono.
THANX a milion !!!
VAN.GOG!
pascal.1005vector,
▒Ţ E genije ... avo skidam ... a ima ida trazim ono.
Proverio sam - nije u PCUTIL. U toj konferenciji se moze naci jedino
onaj source sto sam ti vec poslao. Mozda je u nekom od direktorijuma?
U svakom slucaju, imao sam bolji (razumljiviji, citljiviji) source od
tog, ali ne znam odakle sam ga 'pokupio'... :)
pascal.1006sigmund,
║ ljudi brzo ...
║
║ Kako proslediti komandu CD-u .... kako da mu kazem PLAY????
║
║ koji interrupt sta gde kako ???
╚═══════════════════════════════════════
Koristi bre Visual Basic ko sav normalan svet.
MMControl.play
pascal.1007van.gog,
>> koristi Visual Basic ...
Decko ti izgleda imas problema .... Ne bih tako VB ni trofaznom,
zasto koristiti VB kad postoji DELPHI !!!! the best ... i da sam
hteo nesto takvo ... isao bi u DELPHI konfu ...
Pitanje je bilo vezano za dos (ako do sada nije bilo jasno???)
... i bio sam na useru zdravkod .... inace VAN.GOG !!!
ajte ljudi ... nije valjda da niko nema nesto za CD ?!?!?
pascal.1008jjerry,
=> ... i bio sam na useru zdravkod .... inace VAN.GOG !!!
=>
=> ajte ljudi ... nije valjda da niko nema nesto za CD ?!?!?
Ne znam..nisam se nikad bakt'o s tim..nije mi nikad trebalo..
probacu nesto da ti izbunarim.
pascal.1009van.gog,
"Izbunari" ! ;)))))
pascal.1010jjerry,
Evo vam jedna demonstracija mouse hendlera..
Ko ga natera da radi u grafickom modu ,svaka mu cast !
P.S Casticu onoga kod koga mi proradi u grafickom modu !
pascal.1011pvlada,
> Evo vam jedna demonstracija mouse hendlera..
> Ko ga natera da radi u grafickom modu ,svaka mu cast !
Samo ne bi bilo loše da pošalješ ;)
Pozdrav Vlada
pascal.1012jjerry,
JJ=>Samo ne bi bilo lose da posaljes ;)
:) Znam,isteklo mi je vreme juce :)
Btw. Proradio je u grafickom modu,ispravkom onih Hercules
bugova,ali nece da ispisuje text :( sem uz pomoc OutTextXY
ali ona nije univerzalna ,kao,recimo write ;(
mouse.paspascal.1014pvlada,
> Potreban mi je program TURBO PASCAL. Da li neko moze da mi ga
> posalje.
Nije besplatan, a i nije baš mali (3-11 disketa, zavisi od verzije) pa
nejbolje da pogledaš kod najbližeg pirata ;)
Pozdrav Vlada
pascal.1015jjerry,
> Procedure CapsOff; Assembler;
> asm
> MOV BX,$0040
> MOV ES,BX
> MOV BX,$0017
> MOV AL,ES:[BX]
> AND AL,$BF
> MOV BYTE PTR ES:[BX],AL
> end;
Sta se tacno nalazi na adresi 0040:0017 ? Ja sam video u TechHelp-u
da postoje Keyboard flegovi na adresi 0:0417 i 0:0418 gde je na
ovoj drugoj ono sto nas zanima (Caps,Num lock itd.) Na toj adresi
je 6.bit fleg za Caps Lock..E sad,ja sam pokusao da dobijem te
flegove f-jom 02h/16h ,AND-ujem sa 40h i bacim na 0:0418 ali ne
moze..
Btw. Da li je OK u TASM-u reci "mov byte ptr es:[dx],al" ?
Meni kaze nesto Illegal Indexing (??)
pascal.1016vector,
Ů▀Ţ Sta se tacno nalazi na adresi 0040:0017 ? Ja sam video u TechHelp-u
Ů▀Ţ da postoje Keyboard flegovi na adresi 0:0417 i 0:0418 gde je na
Ů▀Ţ ovoj drugoj ono sto nas zanima (Caps,Num lock itd.) Na toj adresi
Ů▀Ţ je 6.bit fleg za Caps Lock..E sad,ja sam pokusao da dobijem te
Ů▀Ţ flegove f-jom 02h/16h ,AND-ujem sa 40h i bacim na 0:0418 ali ne
Ů▀Ţ moze..
Na 0040:0017 se nalazi keyboard status flags bajt (1):
bit 7 = 1 INS active
bit 6 = 1 Caps Lock active
bit 5 = 1 Num Lock active
bit 4 = 1 Scroll Lock active
bit 3 = 1 either Alt pressed
bit 2 = 1 either Ctrl pressed
bit 1 = 1 left Shift pressed
bit 0 = 1 right Shift pressed
Kod za 'ukljucivanje' Caps Locka bi izgledao ovako:
by equ byte ptr ; nikad nisam voleo da pisem 'byte ptr' ;)
;
start: ;
mov bx, 0040h ; ES:BX pokazuje na KSF1 ;) bajt
mov es, bx ;
mov bx, 0017h ;
mov al, es:[bx] ; isti bajt prenosimo u AL
and al, 0bfh ; bit 6 setujemo na 1
mov by es:[bx], al ; i vracamo ceo bajt na 0040:0017
Ů▀Ţ Btw. Da li je OK u TASM-u reci "mov byte ptr es:[dx],al" ?
Ů▀Ţ Meni kaze nesto Illegal Indexing (??)
Naravno da nije. Za indirektno adresiranje memorije 80x86 prihvata
samo BX, BP, DI i SI registre. Znaci, samo stavi '[bx]' umesto '[dx]'
i sve ce raditi kako treba. :)
BTW, uz poruku je prikacen odlican rezidentni kalkulator, ;) prava
stvar za programere - podrzava and, xor, or, not operacije, kao i bin,
oct, dec i hex brojeve. Zauzima samo 4K osnovne memorije. Jedino jos
ne znam kako se izbacuje iz memorije. :)
calc.compascal.1017jjerry,
JJ=> Naravno da nije. Za indirektno adresiranje memorije 80x86 prihvata
JJ=> samo BX, BP, DI i SI registre. Znaci, samo stavi '[bx]' umesto'[dx]'
JJ=> i sve ce raditi kako treba. :)
10X..Nisam znao ;)
JJ=> BTW, uz poruku je prikacen odlican rezidentni kalkulator, ;) prava
JJ=> stvar za programere - podrzava and, xor, or, not operacije, kao i bin,
JJ=> oct, dec i hex brojeve. Zauzima samo 4K osnovne memorije.
JJ=> Jedino jos ne znam kako se izbacuje iz memorije. :)
Fala ti :) A sto da ga izbacujemo ako je dobar ? :)
pascal.1018vule.,
│ ne znam kako se izbacuje iz memorije. :)
└────────────────────────────────────────────────
Ja znam kako....
--------
< RESET ! >
--------
:)
pascal.1019voyager,
Da li je moguce izlistati sve fajlove u direktorijumu i
poddirektorijumima?
Voyager
pascal.1020emajsijuen,
Skoro je bila neka rasprava o pustanju muzike sa CD-a (ili sam samo nesto
utripovao...), pa evo saljem jedan odlican unit za rad sa CD-om...
cdaudio.arjpascal.1021emajsijuen,
Vo>> Da li je moguce izlistati sve fajlove u direktorijumu i
Vo>> poddirektorijumima?
- Moguce je... Evo ti neka procedura. Nisam je probao, ali bi trebalo da
radi. :)
Procedure WriteFiles(path: pathStr);
Var
FileInfo : searchRec;
path2 : pathStr;
begin
FindFirst (path+'\*.*', AnyFile, FileInfo);
While DosError = 0
Do begin
If (FileInfo.Name[1] <> '.')and(FileInfo.attr <> VolumeId)
Then if ((FileInfo.Attr and Directory) = Directory)
Then Begin
Path2 := Path+'\'+FileInfo.Name;
WriteFiles(path2);
End
Else
if ((FileInfo.Attr and VolumeID) <> VolumeID)
then Begin
Writeln(path+'\'+FileInfo.Name);
End;
FindNext(FileInfo);
End;
End;
Nadam se da ce ti ovo pomoci... :)
pascal.1022voyager,
Imam jedno pitanje u vezi onog unit-a za rad sa cd-om (emajsijuen
je poslao cini mi se), kako postaviti cd na odredjeni track, min,
sec ali bez play, znaci samo postaviti na odredjeno poziciju.
BTW: unit ima bug kada ocitava da li je door locked, naime uvek
kaze da je unlocked.
Voyager
pascal.1023novakovicn,
Imam jedno pitanje,
kako da program namestim da ostane
aktivan u memoriji ?
Probao sam sa KEEP-om , ali nesto
ne radi.
NovakovicN
pascal.1024emajsijuen,
Vo>> Imam jedno pitanje u vezi onog unit-a za rad sa cd-om (emajsijuen
Vo>> je poslao cini mi se), kako postaviti cd na odredjeni track, min,
Vo>> sec ali bez play, znaci samo postaviti na odredjeno poziciju.
Imao sam slicne probleme, kada sam "ubacivao" CD-PLAYER u jedan telefonski
imenik :) BTW. probaj sa playfrom, pa pauseaudio. Te komande ce da se izvrse
toliko brzo, da cd nece ni stici da pusti muziku. Znam da je ovo malo
amaterski, ali sta ces kad nemas alternativu... :)
Vo>> BTW: unit ima bug kada ocitava da li je door locked, naime uvek
Vo>> kaze da je unlocked.
Unit nisam ja pisao, i ne odgovaram za njegovu sadrzinu...
pascal.1025emajsijuen,
No>> Imam jedno pitanje,
No>> kako da program namestim da ostane
No>> aktivan u memoriji ?
No>> Probao sam sa KEEP-om , ali nesto
No>> ne radi.
Nije to bas tako jednostavno... Pogledaj primer koji je dat uz komandu
keep. To je (valjda) rezidentan program, koji "pisne" na svaki pritisak
tastature.
pascal.1026emajsijuen,
Nabavio sam neki fenomenalan unit za komunikacije. Glavne funkcije i
procedure su napisane u assemleru radi brzeg izvrsavanja (valjda). Ocitavanje
/Slanje podataka na modem se vrsi preko interaptova i sve ide kroz input/
output bafer, koji je promenljive velicine. Mislim da je unit odlican, i da
necete zazaliti ako ga preuzmete...
BTW. skidam kapu onome ko ne bude umeo da napravi komunikacioni program
koristeci ove komande... :)
async.arjpascal.1027emajsijuen,
Koliko je "bolan" prelazak sa TP 7.0 na Delphi ?
pascal.1028emajsijuen,
C:\TEMP\TABLE>tpc table.pas
Turbo Pascal Version 7.0 Copyright (c) 1983,92 Borland International
DEMO.INC(170)
COMMANDS.INC(394)
GRAPHIC.INC(400)
DRAW.INC(362)
SETUP.INC(238)
COMMON.INC(178)
FILLIT.INC(245)
ALG1.INC(78)
ALG2.INC(420)
OUTPUT.INC(50)
LINK.INC(40)
TABLE.PAS(1179): Error 48: Code segment too large.
End.
Kako ovo prevazici ? :(
pascal.1029emajsijuen,
Em>> Kako ovo prevazici ? :(
Uspeo sam da resim problem. :)
pascal.1030kenza,
>> TABLE.PAS(1179): Error 48: Code segment too large.
Nemam neku pametnu ideju, da probas da ga podelis u unit-e ?
pascal.1031emajsijuen,
Ke>> Nemam neku pametnu ideju, da probas da ga podelis u unit-e ?
Hvala na odgovoru :) To sam uradio jos juce, i poslao sam poruku u kojoj
pise da sam uspeo da resim problem. Upravo je podela u unit-e i resila stvar.
Anyway, hvala na odgovoru :)
pascal.1032tomak,
> > Bas cudno jer kod mene ispisuje i pritisnuti karakter.
>
> Da, da, da, ... ovo ne radi u DOS-ovom prozoru (ili Full-screen-u), radi
> 'samo' u čistom DOS-u ... Izvini - ako te dezorjentisah ...
Evo ispravke koja radi i u prozoru i inače ali joj fali jedna stvar, kad
se kuca 'enter' pređe u drugi red.
keeplus.paspascal.1033tomcat,
> > > Bas cudno jer kod mene ispisuje i pritisnuti karakter.
> >
> > Da, da, da, ... ovo ne radi u DOS-ovom prozoru (ili Full-screen-u), radi
> > 'samo' u cistom DOS-u ... Izvini - ako te dezorjentisah ...
>
> Evo ispravke koja radi i u prozoru i inace ali joj fali jedna stvar, kad
> se kuca 'enter' prede u drugi red.
Vidim ja da ces da doguras do v2.0
Thanx!
Vladimir Prelovac
.........................
tomcat@galeb.etf.bg.ac.yu
pascal.1035nbjvsb,
Kako da nekom programu poturim lazne podatke? Npr., program sa diskete cita
jedan od sektora, i proverava da li podatak isti kao i njegov. Ako jeste, sve
je ok, ako nije, izlazi iz programa. E sad, ja hocu da mu, cim pozove int $13
odmah u es:bx strpam taj podatak, bez da on proverava disketu.
pascal.1036duskos,
Da li neko ima komunikacione rutine za modem za BP 7.
Ako postoji na Sezamu, recite mi gde.
Pozdrav, duskos!
pascal.1037vector,
> Da li neko ima komunikacione rutine za modem za BP 7.
> Ako postoji na Sezamu, recite mi gde.
Poruka broj 8.1026 u ovoj konferenciji.
pascal.1038ognjen,
)-> je ok, ako nije, izlazi iz programa. E sad, ja hocu da mu,
)-> cim pozove int $13 odmah u es:bx strpam taj podatak, bez da
)-> on proverava disketu.
Pa lako je. Preuzmi interapt za citanje. I umesto da ti
odradis posao pa pozoves originalni interapt, prvo pozovi
originalni interapt, pa promeni procitani sadrzaj.
pascal.1039nenad,
> Da li neko ima komunikacione rutine za modem za BP 7.
> Ako postoji na Sezamu, recite mi gde.
SWAG - najveća kolekcija korisnih Pascal rutina i programa.
Ovo je ALLSWAGS od avgusta ove godine, noviji još nije izašao.
SWAG packets are available in 60 different catagories as follows :
ANSI ARCHIVES CHARS CMDLINE COLOR
COMM COPYMOVE CRC CRT CURSOR
DATATYPE DATETIME DELPHI DESQVIEW DIRS
DOS DRIVES EGAVGA ENCRYPT ENTRY
EXEC FAQ FILES FINDREPL GRAPHICS
HARDWARE INTERRUP ISR JOYSTICK KEYBOARD
MAIL MATH MEMORY MENU MISC
MOUSE NETWORK NUMBERS OOP PARSING
POINTERS PRINTING RECORDS REDIRECT SAVESCRN
SCREEN SCROLL SORTING SOUND STREAMS
STRINGS TEXTEDIT TEXTFILE TEXTWNDW TIMING
TSR UNITINFO WIN-OS2 TURTLE TUTOR
The SWAG Reader and *.SWG files are contained in various archives (ZIP204) :
SWAG.ZIP - Contains READER.EXE and Information files.
SWAGA-C.ZIP - Contains ANSI through CURSOR
SWAGD-F.ZIP - Contains DATATYPE through FINDREPL
SWAGG-M.ZIP - Contains GRAPHICS through MOUSE
SWAGN-R.ZIP - Contains NETWORK through REDIRECT
SWAGS-Z.ZIP - Contains SAVESCRN through WIN-OS2
ALLSWAGS.ZIP - Contains ALL SWAG packets PLUS READER.EXE (LOTS of bytes !!)
These packages will updated approximately every 90 days, as more "snipetts"
are collected. Each update will be provided in a "stand-alone" EXE file
that will automatically insert the new material to the existing libraries.
These update packages will be distributed the LAST week of each of the
following months, and will be named as :
FEBRUARY - SWAGYY02.ZIP
MAY - SWAGYY05.ZIP
AUGUST - SWAGYY08.ZIP
NOVEMBER - SWAGYY11.ZIP
Each file will be named using the year (YY) and month (2,5,8,11) of
distribution.
We estimate that there eventually will be over 3000 of these covering EVERY
POSSIBLE aspect of PASCAL.
Enjoy and GOOD PROGRAMMING !!!
SWAG Support Team - Internet Addresses:
Gayle Davis
GDSoft
gdavis@gdsoft.com
Jeff Fanjoy (Micky)
MatrixSoft(tm)
jfanjoy@interlog.com
pascal.1040nenad,
> Ovo je ALLSWAGS od avgusta ove godine, noviji još nije izašao.
Zaboravih... Dakle - OVO je allswags od avgusta ove godine:
dos\prog\pascal\*.*
------------------
allswags.zip 8408k ű SWAG 8/97: velika zbirka korisnih Pascal rutina i progr.
U datoteci je i program za pretraživanje i "browsing" kroz bazu.
pascal.1041duskos,
>> Ovo je ALLSWAGS od avgusta ove godine, noviji jos nije izasao.
>
> Zaboravih... Dakle - OVO je allswags od avgusta ove godine:
> dos\prog\pascal\*.*
> ------------------
> allswags.zip 8408k ű SWAG 8/97: velika zbirka korisnih Pascal rutina i
> progr.
> U datoteci je i program za pretrazivanje i "browsing" kroz bazu.
Hvala very much!
Nadam se da ce mi ovo pomoci.
Pozdrav, duskos!
pascal.1042duskos,
>> Da li neko ima komunikacione rutine za modem za BP 7.
>
> Poruka broj 8.1026 u ovoj konferenciji.
Thanks you takodje.
Pozdrav, duskos!
pascal.1043nbjvsb,
>> Pa lako je. Preuzmi interapt za citanje. I umesto da ti
>> odradis posao pa pozoves originalni interapt, prvo pozovi
>> originalni interapt, pa promeni procitani sadrzaj.
Tacno, al' ja pojma nemam kako to da uradim, a da radi :)
Evo ga kod, pa ono, sta tu ne valja, i slicno? :)
program Koznasta;
{$M $8000,0,0 }
uses
Crt,Dos;
type
pod = array[0..511] of byte;
var
Int13Save: procedure;
p: pod;
f: file of pod;
{F+, S-, W-}
procedure Menjaj(Flags,CS,IP,AX,BX,CX,DX,SI,DI,DS,ES,BP: word); interrupt;
begin
Int13Save;
ES:=Seg(p);
BX:=Ofs(p)
end;
{F-}
begin
Assign(f,'Podaci.dat');
Reset(f);
Read(f,p);
Close(f);
GetIntVec($13,@Int13Save);
SetIntVec($13,Addr(Menjaj));
Keep(0)
end.
pascal.1044zuleika,
Pitanje od druga.
1) Postoji li 32-bitni compiler za Pascal (ne Delphi, ne BP). Treba mi za NT!
2) Postoji li stand-alone biblioteka za Turbo Vision - prenosiva na dru8ge
compiler-e?
Hvala unapred!
pascal.1045emajsijuen,
Postoji li neki nacin da se napravi niz veci od 64k ?
Pozdrav, Vlada...
pascal.1046kojai,
>> Postoji li neki nacin da se napravi niz veci od 64k ?
Postoji nacin da se napravi niz dugacak onoliko koliko imas rama!
Nekada sam pravio program, ali ga na zalost vise nemam...
Naime program pravi platformu u protected modu i onda nastavljas da pises
malo u pascalu, malo u assembleru! :)
Postoji jos jedan nacin, a to je pomocu $M svica, ali ne znam kako se to radi!
:))) U glavnom nisam ti bas puno pomogao... :)
Pozdrav!
pascal.1047nitugard,
> Postoji li neki nacin da se napravi niz veci od 64k ?
> Pozdrav, Vlada...
Svakako.
------------- HASAN SECKATI ----------------
program PrimerNiza;
(* Ako je sve što želiš da niz zauzme više od 64K
to možeš postići na ovaj način.
Ali, ako želiš da niz ima više od 16383 članova,
onda moraš da spajaš više podnizova
od po 16383 ili već koliko odabereš članova.
*)
const
MaxClanovaNiza = 16383;
Nesto: string = 'Trla baba lan...';
type
PClanNiza = ^TClanNiza;
TClanNiza = string [19]; { recimo }
PNiz = ^TNiz;
TNiz = array [1..MaxClanovaNiza] of PClanNIza;
var
Niz: PNiz;
Brojac: word;
i: word;
KolkoTreba: longint;
begin
WriteLn ('Slobodna memorija: ', MaxAvail);
WriteLn ('Enter za pocetak.');
ReadLn;
(* proveravamo može li se napraviti *)
KolkoTreba:= longint(MaxClanovaNiza)
* (SizeOf (TClanNiza) + 4)
+ 4;
if MaxAvail < 65535 then
begin
WriteLn ('Nema dovoljno velikog bloka za pointere.');
Halt (1);
end;
if MemAvail < KolkoTreba then
begin
WriteLn ('Nema dovoljno memorije za niz.');
Halt (2);
end;
(* sada pravimo niz pointera *)
Niz:= nil;
New (Niz);
Writeln ('Pointeri alocirani.');
(* zatim pravimo članove niza *)
for i:= 1 to MaxClanovaNiza do
begin
Niz^[i]:= nil;
New (Niz^[i]);
WriteLn ('Alociran clan ', i);
end;
(* sada možemo da koristimo niz *)
for i:= 1 to MaxClanovaNiza do Niz^[i]^:= Nesto;
for i:= 1 to MaxClanovaNiza do WriteLn (i, ' : ', Niz^[i]^);
(* i da na kraju počistimo za sobom *)
for i:= 1 to MaxClanovaNiza do Dispose (Niz^[i]);
WriteLn ('Clanovi niza uklonjeni.');
Dispose (Niz);
WriteLn ('Niz uklonjen.');
WriteLn ('Slobodna memorija: ', MaxAvail);
end.
------------ HASAN JOPET SECKATI ---------------------
Ovo je pisano za TP 6. S obzirom na DPMI, u TP 7 možda postoji
i neki kulturniji (čitaj "bolje osmišljen") sistem.
Svejedno, ako malo budeš eksperimentisao sa veličinom stringa
otkrićeš koliko je 640K u stvari malo i kako se lako napuni...
... u današnje vreme i sa današnjim zahtevima.
pascal.1048emajsijuen,
10x! :) Resio sam problem, zahvaljujuci primeru...
pascal.1049emajsijuen,
Jel zna neko zasto mi program prijavljuje Run-time error 216 (GP fault), pri
upisivanju direktno u video memoriju ? Inace, ovo se desava samo kad program
kompajliram u protected modu. Heeeelp!
Pozdrav, Vlada...
pascal.1050kojai,
>> (* Ako je sve sto zelis da niz zauzme vise od 64K
>> to mozes postici na ovaj nacin.
Sta da radim ako mi treba array[1..10000] of string[100]...?
Da li postoji jos neki nacin osim protected moda da se pise po ramu?
DOS4GVM bi trebalo to da omoguci ali on radi sam pod C aplikacijama...
Video sam program za CD-Klub koji koristi DOS4GV, pise pri startovanju pro-
grama, a mene zanima da li ima nesto slicno za pascal?!
Pozdrav,
Ivan
pascal.1051nbjvsb,
>> Postoji li neki nacin da se napravi niz veci od 64k ?
Predji na liste :) Malo usporava, malo komplikuje, ali je vrlo prakticno kad
je memorija u pitanju :)
pascal.1052speedy,
> Jel zna neko zasto mi program prijavljuje Run-time error 216 (GP fault),
> pri upisivanju direktno u video memoriju ? Inace, ovo se desava samo kad
> program kompajliram u protected modu. Heeeelp!
>
> Pozdrav, Vlada...
Iz protected moda (ako je flat model) video memorija se nalazi na a0000!
^
jedna nula vise nego u real modu
(naravno ako ne koristis VESA linear framebuffer). Takodje pogledaj
u manualu kako pascal setuje segmentne registre, zato sto GP fault
verovatno znaci da prekoracujes segment limit.
pascal.1053nitugard,
> Sta da radim ako mi treba array[1..10000] of string[100]...?
> Da li postoji jos neki nacin osim protected moda da se pise po ramu?
Pretpostavljam da misliš na "gornji" RAM, preko 1M.
Postoji, ali Bog neka je na pomoći onima koji reše to da rade.
Nije nemoguće, ali je prokleto zametno.
Uz poruku je unit koji omogućava pisanje po gornjoj memoriji.
Može da posluži za prvu pomoć i neke sitnije stvari.
Glavni problem koji se sa njim javlja je da se sve svodi
na prebacivanje velikih blokova u i iz XMS-a,
što je za većinu potreba (pomenuti niz, na primer) nezgodno
i stvara masu problema...
Za neku "komotniju" upotrebu gornjeg RAMa, kakva se ne može ostvariti
upotrebom ovog unita, potrebno je poznavanje A20 adresne linije
(to se valjda beše nazivaše tako?) i asemblera. U stvari i ovaj unit
je asemler "umotan" u paskal.
So... kao i uvek, sve zavisi od toga šta zaista želiš da uradiš.
Ako ti je jedini cilj da strpaš knjigu od 400 strana u RAM
(da, to je otprilike 10.000x100 slova B) to uz malo muke
možeš izvesti pomoću ovog unita. Ako hoćeš da praviš neku animaciju
ili nešto slično, gde je brzina kritična, izbor je prost: ili asembler
ili ovaj (ili sličan) unit.
Ako pak želiš da sortiraš redove one knjige...
Razmisli o tome da hard disk i nije tako spora naprava B)
mnogo je lakše nego sa XMS-om.
xms.zippascal.1054emajsijuen,
Evo nekoliko primera za "fire" screensaver. Sve je dato u source-u...
fire.arjpascal.1055emajsijuen,
"Smooth" scroll u text modu...
scroll.arjpascal.1056kojai,
Pa jel ne moze da se upisuje u protected modu?!
Ili nekako da se koristi onaj DOS4GVM?
pascal.1057jujo,
Nesecam se kad sam zadnji put programirao u pascalu pa sam potpuno
smetnuo sa uma da pascal programeri nemaju ili imaju ocajne mogucnosti
za rad sa protected modom. Ja u C-u koristim pmodew 32-bit DOS extender.
Nekakav jadan 32-bit DOS extender za pascal sam nasao na ftp.cdrom.com
i kako pise u readme.txt, tvrdi da je u stanju da pokrene Delphi 2.0
programe pod DOS-om. Naravno....pise i to da se ne smeju koristiti nikakvi
Windows API pozivi. Cisto omogucava da koristite DCC32 iz Delphi-ja 2.0 i
generisete 32-kod.
yooyo:
pm_pas.zippascal.1058nitugard,
> Pa jel ne moze da se upisuje u protected modu?!
> Ili nekako da se koristi onaj DOS4GVM?
Ne znam - ja nisam "porastao" do BP 7. Za ono što meni treba TP 6
(programi koji rade na, za današnje pojmove, zastarelom hardveru)
je više nego dovoljan. Za stvari koje treba da rade u DPMI modu...
Na mašinama na kojima zaista ima smisla pokretati DPMI
u većini slučajeva ima smisla i instalirati Windows...
A time je, u doba RAD alata, sve rečeno.
pascal.1059popovics,
Početnik sam u učenju Pascal-a, pa bi mi stoga trebao neki kompajler
( za početnike ). Ako ga neko ima i nije dug ( do 1 mega ) neka mi ga
baci na mail ili ovde...
pascal.1060milosh.zorica,
Popoviću imam ja TP 6 i TP 7,oba su odlčni i nisu veliki.Pozovi me
voice da se dogovorimo oko slanja istih mailom.TP 6 je oko 1.4 Mb
sa primerima i helpom,TP 7 je oko 1,7 Mb sa istim stvarima kao TP 6.
Svima koj rade u pascalu i c-u preporučujem da pozovu exotica
bbs,njihov tel je 556-855.
pascal.1061milosh.zorica,
Da li neko zna naredbu u paskalu,kojom se prelazi u grafički mod.?
pascal.1062emajsijuen,
│ Da li neko zna naredbu u paskalu,kojom se prelazi u graficki mod.?
└──────────────────────────────────────────
Naredba za to je Initgraph (graph unit), a koristi se na sledeci nacin:
Program test;
uses graph, crt;
var
grdriver, grmode, errcode :Integer;
Begin
Grdriver:=detect;
InitGraph(grdriver, grmode, 'c:\util\prog\bp70\bgi\');
Errcode:=Graphresult;
If errcode <> GrOk
Then Begin {Greska prilikom inicijalizacije}
Writeln(Grapherrormsg(Errcode));
Halt;
End
Else Begin
cleardevice;
setcolor(white);
line(0,0,getmaxX, getmaxY);
End;
repeat until keypressed;
end.
pascal.1063kojai,
Kad ostanem rezidentan u memoriji kako da preuzmem dosov interapt i da
posaljem svoju naredbu na izvrsavanje, a posle da nastavim sa izvrsavanjem
dosove naredbe ili neke druge koju sam prekinuo!
Ovo mi treba posto sam napravio programcic koji belezi u fajl sve sto je
kuckano na tastaturi... Problem je sto ako sam hteo to sa snimim na hard sa
npr PrnScr tasterom ono bi mi nebulozilo... Tako da sam morao da napravim
dva programa!
Pozdrav!
pascal.1064stameni,
Nabavio sam neki fenomenalan unit za komunikacije. Glavne funkcije i
procedure su napisane u assemleru radi brzeg izvrsavanja (valjda). Ocitavanje
/Slanje podataka na modem se vrsi preko interaptova i sve ide kroz input/
output bafer, koji je promenljive velicine. Mislim da je unit odlican, i da
necete zazaliti ako ga preuzmete...
***********
Malo sam gledao ovu biblioteku i nikako da uspem da je nateram
da proradi. Mislim da u njoj ima najmanje jedan bug čija je
posledica nefunkcionisanje. U 78. redu, koji glasi:
C_PortAddr : Array[1..C_MaxPort] Of Word = ($03F8,$02F8,$02E8,$02E8);
^^^^^
vrlo verovatno umesto prvog $02E8 treba da stoji $03E8 (IRQ za
COM3; naravno, po Marfijevim zakonima, meni je modem na COM3, pa
nije radilo).
However, i posle gornje izmene nema rezultata. Sumnjiv je i
sledeći, 79. red:
C_PortInt : Array[1..C_MaxPort] Of Byte = (4,3,3,3);
Mislio sam da interrupti idu redom 2, 3, 4 i 5, bar je tako u
komunikacionim programima.
Pokušao sam da ovu biblioteku nađem u allswagsu -- bezuspešno,
mada postoji (najmanje) jedna slična (dosta oskudnija) biblioteka,
koja funkcioniše. Međutim, ova Async biblioteka mi deluje
profesionalnije, mada ne radi.
Možeš li (ti ili neko drugi) doći do novije verzije ove
biblioteke? Sigurno postoji, ova koju sam isprobao je 1.1 iz 1989.
(!), a u komentarima se pominju i .ASM i .DOC fajlovi kojih ovde
nema :(
pascal.1065emajsijuen,
│ Pokusao sam da ovu biblioteku nadem u allswagsu -- bezuspesno,
│ mada postoji (najmanje) jedna slicna (dosta oskudnija) biblioteka,
│ koja funkcionise. Medutim, ova Async biblioteka mi deluje
│ profesionalnije, mada ne radi.
└────────────────────────────────────────────
Biblioteka se nalazi u comm.swg fajlu. Nemam pojma zasto je nema u allswags-u.
Stvari koje si pomenuo su i meni delovale sumnjivo ;) Inace, unit mi lepo radi,
a modem je na com-u 4.
Pozdrav, Vlada...
pascal.1066tomak,
> Ovo mi treba posto sam napravio programcic koji belezi u fajl sve sto je
> kuckano na tastaturi... Problem je sto ako sam hteo to sa snimim na hard
> sa npr PrnScr tasterom ono bi mi nebulozilo... Tako da sam morao da
> napravim dva programa!
Okačio sam u PCUTIL.4:razno.968 arhivu MAKRO.ARJ u kojoj ima:
> SNIMI
>
> SNIMI snima scan i ascii kod pritisnutog tatera, maksimum 500, u fajl
> SNIMI.LOG. Startuje se bez parametara a izlazi se iz njega, odnosno
> COMMAND.COM-a kojeg pokrene, sa "EXIT".
On snima scan i ascii kod ako bi hteo da snimaš ono što se pojavljuje
na ekranu onda bi trebalo kontrolisanjem INT10, pa ako bi to trebalo u
kontinuitetu zapisivati onda bi trebalo kontolisati INT13, INT25 i INT26.
Inače SNIMI ne koristi te prekide jer zapisuje tek kad mu se vrati
potpuna kontrola (zato i ima maksimum jer 'pamti').
pascal.1067stameni,
>> Biblioteka se nalazi u comm.swg fajlu.
Ima li tamo sourcea za async.obj i datoteke async.doc? Molim te,
pogledaj, pa ako ima, a ti baci ovamo :) Verovatno se u uputstvu
može naći e-mail adresa autora, koga bih rado priupitao nekoliko
stvari :)
pascal.1068emajsijuen,
│ Ima li tamo sourcea za async.obj i datoteke async.doc? Molim te,
│ pogledaj, pa ako ima, a ti baci ovamo :) Verovatno se u uputstvu
│ moze naci e-mail adresa autora, koga bih rado priupitao nekoliko
│ stvari :)
└─────────────────────────────────────────────────
Zavirio sam ponovo u comm.swg. Nasao sam tamo jos neki async.bak fajl,
koji je u stvari async.pas (!?!). U njemu se nalaze tacno one izmene u
vezi com port adresa, i prekida o kojima si ti pricao... Takodje sam
nasao i .asm fajl (verovatno od onog .obj fajla, nisam gledao jer se ne
razumem puno u assembler). Inace, nasao sam jos neki source na istu temu,
pa sve to zajedno saljem uz poruku.
Pozdrav, Vlada...
modem.arjpascal.1069stameni,
>> Biblioteka se nalazi u comm.swg fajlu. Nemam pojma zasto je nema u
>> allswags-u.
Ono čega ima u comm.swg (iz allswags sa Sezama) je neka
referenca na Async 1.2 (a ono što si ti poslao je Async 1.1, dakle
postoji novija verzija, sa možda ispravljenim bugom (bugovima?)):
{---------------------------------------------------------}
{ Project : Async12 for Windows }
{ By : Ir. G.W van der Vegt }
{---------------------------------------------------------}
{ Based on the following TP product : }
{ }
{ ASYNC12 - Interrupt-driven asyncronous }
{ communications for Turbo Pascal. }
{ }
{ Version 1.2 - Wedensday June 14, 1989 }
{ Copyright (C) 1989, Rising Edge Data Services}
{ }
{ Permission is granted for non-commercial }
{ use and distribution. }
{ }
{ Author : Mark Schultz }
{ }
{---------------------------------------------------------}
To i dalje nije ono što mi treba -- meni treba Async 1.2 (by
Mark Schultz) ili novija verzija. Molio bih one koji su u
situaciji da pogledaju na Internetu može li se naći ova biblioteka
(ja tražio i ne nađoh, ali nisam baš vičan pretraživanju). Bilo bi
lepo ako bi neko imao e-mail adresu Marka Schultza (takođe
izostavljenu u allswags), da pišem čoveku.
Inače, source za asinhronu komunikaciju za Windows nalazi se u
comm.swg pod brojem 0046; ako treba, mogu da šaljem. Gornji isečak
je odatle.
----
(posle preuzimanja modem.arj)
Ni sada nisam uspeo da nateram "stvar" da radi. Bilo bi lepo
kad bi se moglo naći Async 1.2. Ipak, puno hvala na pomoći oko ove
biblioteke :)
pascal.1070strider,
pozdrav svima
mislio sam da ovo nikada necu uraditi ali evo nuzda me naterala
potrebna mi je pomoc (HITNO:)) u vezi sa jednim zadatkom iz skole
sam program nije tezak ali je matematicko resenje tesko
zadatak glasi...
napisati prog. za stampanje cele funkcije
y=ax*x*x + b*x*x + c*x + d
na intervalu [-n,n] n pripada R sa korakom "k"
koliko celih 0 je na datom intervalu za stampanje zaglavlja
i vrednosti funkcije koristiti procedure
na ulazu su date vrednosti a,b,c,d (a verovatno i n i k)
ljudi pomazite kako da resim jednacinu treceg stepena
jer onako kako je ja resavam nemoze i kompjuter :)
unapred zahvalan
STRiDeR!
pascal.1071emajsijuen,
Jel nekom treba parce koda za onesposobljavanje sifre BIOS-a ? Nasao sam nesto
u SWAG-u, pa ako nekome treba...
pascal.1072jujo,
# Jel nekom treba parce koda za onesposobljavanje sifre BIOS-a ? Nasao sam
# nesto u SWAG-u, pa ako nekome treba...
ili mozda:
xor ax, ax
l1: out 70h, ax
inc al
jmp l1
posle ovog resetuj masinu i CMOS je popunjen sa 0 pa ce
masina verovatno sama uci u SETUP.
yooyo:
pascal.1073jjerry,
Kako i da li mogu sa ulaza Crt-ovom f-jom Readkey da detektujem
pritisak F1..12 dugmica,kao i Alt i Ctrl-a ? Koje su ASCII
vrednosti za njih ? E da..i kako da detektujem pritisak,na primer,
Alt + F1 ili mozhda 3 : Alt+Ctrl+F1 ?
pascal.1074emajsijuen,
│ Kako i da li mogu sa ulaza Crt-ovom f-jom Readkey da detektujem
│ pritisak F1..12 dugmica,kao i Alt i Ctrl-a ? Koje su ASCII
│ vrednosti za njih ? E da..i kako da detektujem pritisak,na primer,
│ Alt + F1 ili mozhda 3 : Alt+Ctrl+F1 ?
└──────────────────────────────────────────────────
Sa funkcijom readkey ne mozes da detektujes pritisak F11 i F12. Na pritisak
specijalnih tastera funkcija readkey ce da vrati 2 koda: prvi je 0, a preko
drugog mozes da odredis koji taster je pritisnut. Za Alt i Ctr, ces morati
sam da napravis rutine. (nije problem, treba samo procitati vrednost keyboard
status flag-a)... Uz poruku ti saljem program koji ce da ispise na ekran
kodove nekog tastera.
Primer:
Uses Crt;
Var
Ch1, Ch2 :Char;
Begin
Repeat
Repeat
Until Keypressed;
Ch1:=Readkey;
If Ch1=#0
Then Begin
Ch2:=Readkey;
Case Ch2 Of
#59: Begin {F1}
Sound(5500); Delay(100); NoSound;
End;
#60: Begin {F2}
Sound(3000); Delay(100); NoSound;
End;
#61: Begin {F3}
Sound(1500); Delay(100); NoSound;
End;
{...}
End; {CasE}
End;
Until Ch1=#27;
End;
Pozdrav, Vlada...
ord.arjpascal.1075popovics,
Kako da obrišem ekran u Paskalu? ( ništa posebno, samo obično CLS
), i kako da radim sa grafikom u njemu ( treba mi prebacivanje
karte u gr. mod, i prostije komandice, ekvivalenti QBASIC komandama
line, color i draw ). Kojom komandom se otvara fajl? Kako se pravi
rezidentan program? Kojom se komandom učitavanju fontovi ( mislim
da je nešto tipa Install user font, ali nisam siguran, treba mi
tačna sintaksa, kao i koji su unit-i potrebni za rad sa fontovima
), da l će fontovi ovako učitani, ostati i posle izlzka iz
programa? Vredi li čemu knjiga 'Pascal za srednje škole' sa obzirom
da sam totalni početnik? Koji se znaci koriste za deljenje,
množenje i kvadriranje ( probao sam / za deljenje, ali se Pascal
zbuni, i prijavi grešku... )?
P.S Ne zamerite na ovim stupid pitanjima, ali tek sam počeo da učim
Pascal, a nešto se ne snalazim najbolje u njegovom helpu, so
odgovorite, molim vas...
pascal.1076emajsijuen,
>> Kako da obrisem ekran u Paskalu? ( nista posebno, samo obicno CLS
Program clrscreen;
uses crt;
begin
clrscr;
end.
>> ), i kako da radim sa grafikom u njemu ( treba mi prebacivanje
>> karte u gr. mod, i prostije komandice, ekvivalenti QBASIC komandama
>> line, color i draw ).
Program graphdemo;
uses crt, graph;
var
Errcode, Grdriver, Grmode :Integer;
Begin
GrDriver:=Detect;
InitGraph(Grdriver, grmode, 'C:\util\prog\bp70\bgi\');
Errcode:=GraphResult;
If ErrCode <> GrOk
Then Begin
Writeln('Greska prilikom inicijalizacije grafike.');
Writeln(Grapherrormsg(ErrCode));
Halt;
End;
ClearDevice; {Brise ceo ekran}
SetColor(Red);
Line(0, 0, GetMaxX, GetMaxY);
PutPixel((GetMaxX div 2), (GetMaxY Div 2), Yellow);
SetTextStyle(SansserifFont, HorizDir, 2);
{ ~~~~~~~~~~~~~ ++++++++ ===
~~~~ - Fontovi koji ce se koristiti za ispis na ekran
++++ - Fontovi se ispisuju normalno (s' leva na desno)
==== - Velicina slova}
SetColor(White);
OutTextXY(50, 150, 'SansSerifFont');
SetTextStyle(SmallFont, HorizDir, 4);
SetColor(Yellow);
OutTextXY(50, 200, 'SmallFont');
Circle(250, 100, 20);
SetFillStyle(SolidFill, Red);
Bar(10, 230, 50, 260);
Rectangle(10, 270, 50, 300);
Repeat until keypressed;
CloseGraph;
End.
>> Kojom komandom se otvara fajl?
Program OpenFile;
Var
Fajl :Text; {u fajl moze sve da se upisuje, inace ovde mozes da navedes
i tip, npr. File Of Integer}
Tekst :String;
Begin
Assign(Fajl, 'Temp.Txt');
Rewrite(Fajl); {Moze i append(file), ako hoces da dopises nesto u vec
postojeci fajl}
Tekst:='Ovo je obican tekst fajl';
Writeln(Fajl, Tekst);
Write(Fajl, 'a sada malo brojeva...',356, '... dosta?');
Writeln(Fajl);
Close(Fajl);
End.
>> Kako se pravi rezidentan program?
Prvo ti nauci kako se obicni programi prave, pa cemo lako za rezidentne...
>> Kojom se komandom ucitavanju fontovi ( mislim da je nesto tipa Install
user font, ali nisam siguran, treba mi tacna sintaksa, kao i koji su
unit-i potrebni za rad sa fontovima ), da l ce fontovi ovako ucitani,
ostati i posle izlzka iz programa?
Fontovi za Text ili graficki mod ? Za graficki ti posao obavlja SetTextStyle,
a za text mod ne postoji standardna komanda. Ako ti treba unit za to, ja sam
napravio za sebe jedan (za 8 x 16 fontove), pa cu ti poslati. To sam upotrebio
u onom imeniku, jel si na to mislio ?
>> Vredi li cemu knjiga 'Pascal za srednje skole' sa obzirom da sam totalni
>> pocetnik?
Ako si totalni pocetnik, onda sigurno vredi. ;) Knjigu nisam video, pa
nisam u mogucnosti da ti kazem da li je dobra. Imam ja 2 knjige za TP,
jednu na srpskom, a drugu na engleskom. Ovu na srpskom treba da dam
Milosu (Milosh.zorica). Ako dobro znas engleski, onda ce ti ova 2. sasvim
odgovarati.
>> Koji se znaci koriste za deljenje, mnozenje i kvadriranje ( probao sam /
za deljenje, ali se Pascal zbuni, i prijavi gresku... )?
Za deljenje celih brojeva (integer, byte, word...) koristi se DIV. Znaci,
npr. A:=13 div 5; Naravno posle ovoga, promenljiva A ce dobiti vrednost 2, a
ostatak pri deljenju mozes da izracunas sa MOD: B:=13 MOD 5; ---> B=3;
Za deljenje realnih (REAL) brojeva, koristi se "/".
Za mnozenje se koristi "*". Kvadrat nekog broja izracunava funkcija "SQR", a
koren funkcija "SQRT". Pr. A:=SQR(5);
Pozdrav, Vlada...
pascal.1077kojai,
>> Kako da obrisem ekran u Paskalu? ( nista posebno, samo obicno CLS
>> ), i kako da radim sa grafikom u njemu ( treba mi prebacivanje
ClrScr to radi...
U SVGA iz pascala nikako ne mozes da prebacis, ali mozes da kucas nesto tipa:
asm
mov ah,4f02h
mov al,105h
int 10h
end;
i da dobijes rezoluciju 1024x768...
>> karte u gr. mod, i prostije komandice, ekvivalenti QBASIC komandama
>> line, color i draw ). Kojom komandom se otvara fajl? Kako se pravi
Fajl otvaras sa Assign(file,ime), Reset/Rewrite...
>> rezidentan program? Kojom se komandom ucitavanju fontovi ( mislim
>> da je nesto tipa Install user font, ali nisam siguran, treba mi
>> tacna sintaksa, kao i koji su unit-i potrebni za rad sa fontovima
>> ), da l ce fontovi ovako ucitani, ostati i posle izlzka iz
Naredba Keep drzi program rezidentan, pogledaj primer...
Fontove se ne trudi da promenis, treba malo vise znanja!
Ako te ne mrzi to ti je BIOSov int(10h) i ah=11h...
>> programa? Vredi li cemu knjiga 'Pascal za srednje skole' sa obzirom
>> da sam totalni pocetnik? Koji se znaci koriste za deljenje,
>> mnozenje i kvadriranje ( probao sam / za deljenje, ali se Pascal
>> zbuni, i prijavi gresku... )?
Nabavi knjigu... :)
pascal.1078popovics,
▄- u onom imeniku, jel si na to mislio ?
Baš na tako nešto!
▄- jednu na srpskom, a drugu na engleskom. Ovu na srpskom treba
▄- da dam Milosu (Milosh.zorica). Ako dobro znas engleski, onda
▄- ce ti ova 2. sasvim
Jel knjiga već kod Miloša? Ako jeste, ja bih i ovako-onako trebao da odem
kod njega u sledeću subotu, pa da je fotokopiram, ako ti ne smeta...
▄- Pozdrav, Vlada...
Hvala mnogo...
pascal.1079popovics,
▄- asm
▄- mov ah,4f02h
▄- mov al,105h
▄- int 10h
▄- end;
▄- i da dobijes rezoluciju 1024x768...
Ja bi radije 800x600, ako nije problem...
▄- Naredba Keep drzi program rezidentan, pogledaj primer...
OK, videćemo...
▄- Fontove se ne trudi da promenis, treba malo vise znanja!
Ne bih rekao, uspeo sam sa InstallUserFont.
▄- Nabavi knjigu... :)
To se podrazumeva, ali kad sam već ovde, da pitam...
pascal.1080kojai,
>> Ja bi radije 800x600, ako nije problem...
Stavi mov al,103h(ili 101h, ne znam tacno)!
>> Ne bih rekao, uspeo sam sa InstallUserFont.
Ma nisam mislio na to... Nema veze! :)
pascal.1081nbjvsb,
>> ▄- Fontove se ne trudi da promenis, treba malo vise znanja!
>>
>> Ne bih rekao, uspeo sam sa InstallUserFont.
InstallUserFont radi samo u grafičkom režimu, učitava .chr fajlove koji se
ne isporučuju standardno uz Pascal (naravno, možeš da učitaš i jedan od
tih fontova na takav način, ali to nema smisla), tako da možeš da ih
koristiš na isti način kao i standardne.
Čovek koji ti je odgovorio je očigledno mislio da želiš sistemski da
promeniš font (ono, u tekst režimu ubaciš svoje fontove ukoliko ti se
standardni ne sviđaju), a za to definitivno treba malo više znanja :)
pascal.1082supers,
>> programa? Vredi li čemu knjiga 'Pascal za srednje škole' sa obzirom
>> da sam totalni početnik? Koji se znaci koriste za deljenje,
Ne znam kakva je to knjiga i ko je autor.
Bolje ti je da nabaviš knjigu za svoju verziju Pascala, nego da učiš iz
suvoparne školske knjige. Specijalizovana knjiga će da te nauči da
koristiš sve korisne opcije svog kompajlera.
Ja sam Turbo Pascal 6 naučio iz Stephen O'Brianove knjige, kod nas
izdala Mikroknjiga.
pascal.1083emajsijuen,
│ Bas na tako nesto!
└────────────────────────────────────────────
Stize unit uz poruku. Ako ti nesto ne bude jasno, slobodno me pitaj.
│ Jel knjiga vec kod Milosa? Ako jeste, ja bih i ovako-onako trebao da odem
│ kod njega u sledecu subotu, pa da je fotokopiram, ako ti ne smeta...
└────────────────────────────────────────────
Nije jos. Trebao sam pre neki dan da mu je odnesem, medjutim nisam nasao
dovoljno vremena da jurim po Zemunu, sve zbog glupe skole... :(
unit.arjpascal.1084emajsijuen,
│ Ne bih rekao, uspeo sam sa InstallUserFont.
└──────────────────────────────────────────────
To je za graficki mod. Zar ti nije trebalo za text mod ???
pascal.1085popovics,
▄- Ma nisam mislio na to... Nema veze! :)
Nema veze? Nema veze? Sve ima veze, ukapirao sam začkoljicu ( razliku
između InstallUserFont i SetTextStyle ) i da rade u graf. modu. Ne znam
zašto bi mi to smetalo ( što rade u graf. modu ), kad u 99% slučajeva, i
ovako i onako moram da učitam biblioteke crt i graph... Ali iz čite
radoznalosti ( i obožavanja text moda ) voleo bih da znam kako se
fontovi učitavaju u text mod ( bar da budu u nekom standardnom formatu
tj. .FNT, .FON, .RAW... )
Inače, da li postoji komanda ( naredba ) kojom iz Pascal programa,
pozivam neki drugi program ( .COM ili .EXE ) tj. da bude ekvivalent
Qbasic komande RUN...
CU
pascal.1086popovics,
▄- standardni ne sviđaju), a za to definitivno treba malo više
▄- znanja :)
Slažem se, čak šta više sa tim, ali kako misliš da naučim ako ne
probam, napiši postupak, a i primer je poželjan...
Koje je tačno korišćenje KEEP-a?
pascal.1087kojai,
To sa fontovima sto ti kazes da si uspeo to ti je pod grafickim modom!
Ide valjda preko BGI-a...
U textualnom modu nije problem inicijalizovati font koji hoces samo ti je
potrebno malo znanja assemblera ili dobro poznavanje input/output-a!
Skini helppc pa pogledaj koji interrupt sluzi za ovo...
Ja mislim da je otprilike al=11h, naravno int 10h, a ostalo ne mogu napamet!
Kao sto rekoh procitaj! :)
pascal.1088popovics,
▄- To je za graficki mod. Zar ti nije trebalo za text mod ???
Ljudi, treba mi za OBA! Za grafički sam već apsolvirao, ali za text
nemam pojma. Valjda ću uspeti uz pomoć onog tvog unit-a ( nisam ga još
ni otpakovao, zbog school-e ).
pascal.1089jjerry,
Jel' zna neko kako da pishem & crtam neshto preko Bar3D-a ? (Ne
mislim na "ruchno" pisanje,nego nekom f-jom.)
pascal.1090nbjvsb,
>> tj. .FNT, .FON, .RAW... )
^^^^ ?
btw. Ako imas neke fontove za pascal, tj. .chr fajlove, baci slobodno ovde :)
Dobro bi mi dosao i editor, ako ga ima, i ako dobro radi.
pascal.1091stameni,
>> Dobro bi mi dosao i editor, ako ga ima, i ako dobro radi.
Ima nešto, mada se nisam previše petljao njime:
dos\graph\
------------------
sfe.zip 49k Stroked Font Editor, editovanje .CHR fontova (BGI)
pascal.1092nbjvsb,
>> Ima nešto, mada se nisam previše petljao njime:
>>
>> dos\graph\
>> ------------------
>> sfe.zip 49k Stroked Font Editor, editovanje .CHR fontova (BGI)
Staro... ne svidja mu se moj EGAVGA.BGI drajver. Valjda trazi drajver
iz TP6.0 (ja imam BP7.0)
pascal.1093jujo,
#
# ▄- To je za graficki mod. Zar ti nije trebalo za text mod ???
#
# Ljudi, treba mi za OBA! Za graficki sam vec apsolvirao, ali za text
# nemam pojma. Valjda cu uspeti uz pomoc onog tvog unit-a ( nisam ga jos
# ni otpakovao, zbog school-e ).
Imas fonter.zip u konfu razno. Tu se nalazi i C source za isti. U stvari
ima vise ASM-a nego C-a, a ceo listing staje na 25 redova ekrana...pa
mislim da ces se snaci...
yooyo:
pascal.1094popovics,
▄- Staro... ne svidja mu se moj EGAVGA.BGI drajver. Valjda trazi
▄- drajver iz TP6.0 (ja imam BP7.0)
Ni kod mene ne radi, tj, prijavi kao da nemože da ga nađe, ajde, ako je
neko dobre volje da okači .BGI fajlove iz starije ver. TP-a, bio bih mu
zahvalan ( a verovatno i ne samo ja )...
pascal.1095bokir,
> >> Kako da obrisem ekran u Paskalu? ( nista posebno, samo obicno CLS
> >> ), i kako da radim sa grafikom u njemu ( treba mi prebacivanje
>
> ClrScr to radi...
> U SVGA iz pascala nikako ne mozes da prebacis, ali mozes da kucas nesto
> tipa:
Možeš, uz BGI drajvere za SVGA mod. Drajvera ima i u Sezamovom
direktorijumu.
pascal.1096jjerry,
Kako da napravim da u textwindow stavljam vishe od jednog i po
reda...Sigurno znate da,bilo odakle ne mozhete pisati vishe od
jednog i po reda.(uglavnom pochne da pishti)E poshto mi treba
"malo" vishe od jednog i po reda,da li mozhe nekako to da se
zaobidje ? (Pokushavao sam npr. sa ovim
if wherex = 79 then gotoxy(2,lnum+1) {lnum je broj linije}
Ali to ne radi,ne znam zashto,jer f-ja wherex daje 100% tachan
rezultat.
Josh neshto,da li sa procedurama GetImage i PutImage mogu da
obuhvatim i tekst tj. da tekst bude tretiran kao bili koji deo
grafike ?
pascal.1097emajsijuen,
>> Kako da napravim da u textwindow stavljam vishe od jednog i po
>> reda...Sigurno znate da,bilo odakle ne mozhete pisati vishe od
>> jednog i po reda.(uglavnom pochne da pishti)E poshto mi treba
>> "malo" vishe od jednog i po reda,da li mozhe nekako to da se
>> zaobidje ? (Pokushavao sam npr. sa ovim
>>
>> if wherex = 79 then gotoxy(2,lnum+1) {lnum je broj linije}
>> Ali to ne radi,ne znam zashto,jer f-ja wherex daje 100% tachan
>> rezultat.
Nista te nisam razumeo. Probaj da mi pojasnis sta ti treba.. Jel
ti treba neka funkcija za unos nekog string, koji je n slova
dogacak, ili sta ? Ako je ovo, imam pravu stvar za tebe.
>> Josh neshto,da li sa procedurama GetImage i PutImage mogu da
>> obuhvatim i tekst tj. da tekst bude tretiran kao bili koji deo
>> grafike ?
Mislis na tekst koji je ispisan na ekranu ? Naravno..., samo tako
i moze da bude tretiran.
pascal.1098epson,
Kada pozivam eksterni program sa Exec kojom komandom mogu da omo-
gućim da se ne pojavi ispis na ekranu ?
Da li neko ima unit za rad sa configuracionim (ini,cfg...) datote-
kama ? Uopšte kako se koriste uniti ? (uses imeunita; i posle se u
toku programiranja koriste njegove komande ?)
Na koji način mogu da proverim da li postoji već fajl ?
pascal.1099jujo,
#
# Kada pozivam eksterni program sa Exec kojom komandom mogu da omo-
# gucim da se ne pojavi ispis na ekranu ?
Pa probaj npr...
exec('dir > nul');
i neces dobiti nista.....:))))
yooyo:
pascal.1100obren,
> Kada pozivam eksterni program sa Exec kojom komandom mogu da omo-
> gućim da se ne pojavi ispis na ekranu ?
Ne znam koliko će ti "recept" biti jasan ako nemaš iskustva sa
funkcionisanjem DOS uređaja (stdin, stdout, stderr...) Uglavnom,
preusmeriš hendlove standardnih uređaja na koje ide ispis (stdout
i ako hoćeš stderr) na hendl od NUL-a. E sad, ne pamtim kad sam
uzeo Pascal u ruke niti ga imam trenutno instaliranog, ali evo ti
fragment iz Seniora za uključivanje odnosno isključivanje redirekcije
ispisa. Sve relevantne funkcije koje se koriste (_open i dup2) su
u stvari DOS servisi i mogu se pozvati i na nižem nivou (inline ASM)
ukoliko ih Turbo Pascal, ili šta već koristiš, ne podržava.
---------------------- cut here ------------------------
...
int hnul, hcon; // hendlovi koji se koriste za redirekciju ispisa
...
// preusmeri stdout i stderr na NUL
void redirectOutput(void)
{
if ((hnul = _open("NUL", O_RDWR)) == -1) return;
dup2(hnul, 1); // stdout
dup2(hnul, 2); // stderr
}
// vrati stdout i stderr na CON
void restoreOutput(void)
{
if ((hcon = _open("CON", O_RDWR)) == -1) return;
_close(hnul);
dup2(hcon, 1);
dup2(hcon, 2);
_close(hcon);
}
---------------------- cut here --------------------
Znam da ti nisam baš konkretno pomogao pošto si pitao u temi "pascal" ali
valjda ćeš se snaći...
pascal.1101kojai,
>> Na koji nacin mogu da proverim da li postoji vec fajl ?
U Dosovom unitu imas naredbe FindFirst i FindNext...
Ako se dobro secam ovo bi trebalo to da radi:
FindFirst('mika.pas',dirinfo,anyfile);
If DosError=0 then Halt;
Mozda nije DosError, ali pogledaj kako se zove naredba za prijavu gresaka...
Ako nenadje fajl mislim da vraca 2!
Pozdrav!
pascal.1102epson,
│ exec('dir > nul');
│
│ i neces dobiti nista.....:))))
└─────────────────────────────────────────────────
To sam prvo probao i neće da radi, tj. program koji pozivam to po-
grešno protumači i prijavi error.
pascal.1103epson,
│ u stvari DOS servisi i mogu se pozvati i na nižem nivou (inline ASM)
│ ukoliko ih Turbo Pascal, ili šta već koristiš, ne podržava.
└─────────────────────────────────────────────────
Šta znači "inline ASM" ? TP 7.0 podržava asembler, ali mi se čini
da je ovo C.
│ Znam da ti nisam baš konkretno pomogao pošto si pitao u temi "pascal" ali
│ valjda ćeš se snaći...
└─────────────────────────────────────────────────
Koliko sam razumeo ovo je za C ?
pascal.1104epson,
│ U Dosovom unitu imas naredbe FindFirst i FindNext...
│ Ako se dobro secam ovo bi trebalo to da radi:
│ FindFirst('mika.pas',dirinfo,anyfile);
│ If DosError=0 then Halt;
└─────────────────────────────────────────────────
Hvala.
pascal.1105stameni,
>> Na koji način mogu da proverim da li postoji već fajl ?
var
f: file;
procedure ima;
...
procedure nema;
...
begin
assign(f, 'imanema.krk');
{$I-}
reset(f);
{$I+}
if IOResult = 0 then
ima
else
nema;
close(f)
end.
pascal.1106popovics,
Ako neko ima volju neka mi objasni ( ako može i neki primer ) korišćenje
Pascal komandi KEEP i EXEC.
Unapred hvala...
pascal.1107epson,
│ assign(f, 'imanema.krk');
│ {$I-}
│ reset(f);
│ {$I+}
│ if IOResult = 0 then
└─────────────────────────────────────────────────
Hvala.
pascal.1108emajsijuen,
>> │ exec('dir > nul');
>> │
>> │ i neces dobiti nista.....:))))
>> └─────────────────────────────────────────────────
>>
>> To sam prvo probao i nece da radi, tj. program koji pozivam to po-
>> gresno protumaci i prijavi error.
Probaj da napises >nul (spojeno). BTW, output nekih programa se uopste
ne moze preusmeriti. Takav je slucaj sa svim programima koji su pravljeni
u TP-u, a koriste crt unit.
Pozdrav, Vlada...
pascal.1109emajsijuen,
>> Na koji nacin mogu da proverim da li postoji vec fajl ?
Ima dosta nacina... Evo jednog od njih...
Uses Dos;
Begin
If FSearch('tekst.txt', 'C:\;C:\dos;C:\windows') = 'tekst.txt'
Then Write('Fajl je pronadjen')
Else Write('Fajl nije pronadjen');
End.
Naravno kao drugi parametar, prilikom poziva funkcije FSearch, navodis
string promenljivu, u koju redjas direktorijume u kojoj fajl treba da se
trazi. Imena direktorijuma treba da budu odvojena sa ";". Ako fajl trazis
u tekucem dir-u, onda stavi samo ''.
Pozdrav, Vlada...
pascal.1110obren,
> Šta znači "inline ASM" ? TP 7.0 podržava asembler, ali mi se čini
> da je ovo C.
Inline ASM je upravo to "podržavanje asemblera" :) Drugim rečima,
možeš da ubacuješ AMS kôd direktno u .PAS fajlove, bez potrebe da
ih pišeš odvojeno, prevodiš i linkuješ sa Pascal projektom.
> Koliko sam razumeo ovo je za C ?
To jeste primer konkretno za C, ali na potpuno isti način se radi i na
Pascalu (čak i bez direktne upotrebe "inline ASM-a" ;)
---------------------- cut here ---------------------
Program Dup;
Uses DOS;
Var F:file;
Procedure DupHandle(NewH, OldH:Word);
Var Regs:Registers;
Begin
Regs.ah:=$46;
Regs.bx:=NewH;
Regs.cx:=OldH;
MsDos(Regs);
End;
(* Preusmeri stdout i stderr na NUL *)
Procedure RedirectOutput;
Begin
Assign(F, 'NUL'); { Može bilo koji dos file }
Rewrite(F);
If IOResult<>0 then Exit;
DupHandle(FileRec(F).Handle, 1); { stdout }
DupHandle(FileRec(F).Handle, 2); { stderr }
End;
(* Vrati stdout i stderr na CON *)
Procedure RestoreOutput;
Begin
Close(F);
Assign(F, 'CON');
Rewrite(F);
if IOResult<>0 then Exit;
DupHandle(FileRec(F).Handle, 1); { stdout }
DupHandle(FileRec(F).Handle, 2); { stderr }
End;
Begin
Writeln('Ovo se vidi');
RedirectOutput;
Writeln('Ovo se NE vidi');
RestoreOutput;
Writeln('Ovo se OPET vidi');
End.
----------------------------- cut here -----------------------------
pascal.1111epson,
│ Probaj da napises >nul (spojeno). BTW, output nekih programa se uopste
│ ne moze preusmeriti. Takav je slucaj sa svim programima koji su pravljeni
│ u TP-u, a koriste crt unit.
└─────────────────────────────────────────────────
Probao sam i to :).
pascal.1112epson,
│ To jeste primer konkretno za C, ali na potpuno isti način se radi i na
│ Pascalu (čak i bez direktne upotrebe "inline ASM-a" ;)
└─────────────────────────────────────────────────
Hvala puno.
pascal.1113epson,
│ Ima dosta nacina... Evo jednog od njih...
└─────────────────────────────────────────────────
Hvala.
pascal.1114epson,
│ >> Na koji nacin mogu da proverim da li postoji vec fajl ?
│
│ Ima dosta nacina... Evo jednog od njih...
└─────────────────────────────────────────────────
A direktorijum ?
pascal.1115emajsijuen,
│ A direktorijum ?
└──────────────────────────────────────
Moraces da koristis FindFirst i FindNext. Tu negde ima da se podesi tacno
atribute fajlova koje ce da izlistava. Tu mu lepo stavis da izlistava samo
dirove, i to je to. Ne znam tacno napamet sintaksu za koriscenje, pa pogledaj
help.
Pozdrav, Vlada...
P.S. mozes i na sl. nacin, mada je to budzenje:
Program dir;
Var
Fajl :Text;
Begin
Assign(Fajl, 'dirname');
{$I-}
Reset(Fajl);
{$I+}
If IoResult <> 0
Then Begin {dir postoji}
Halt;
End;
Close(Fajl);
End.
A mozes i preko CHDIR, pa da pratis Ioresult...
Pozdrav, Vlada...
pascal.1116epson,
Kako se neki string koji sadrži velika i mala slova "konvertuje" u
string sa sve malim ili sve velikim slovima ?
pascal.1117emajsijuen,
│ Kako se neki string koji sadrzi velika i mala slova "konvertuje" u
│ string sa sve malim ili sve velikim slovima ?
└──────────────────────────────────────────
Program tekst;
Var
Tekst :String;
Function LCase(Ch :Char): Char;
Begin
If (Ch > #64) and (Ch < #91)
Then LCase:=Chr(Ord(Ch)+32)
Else LCase:=Ch;
End;
Procedure UpperCase(Var S: String);
Var
Br: Byte;
Begin
For Br:=1 to Ord(S[0]) Do S[Br]:=UpCase(S[Br]);
{Ord(S[0]) == Length(S)}
End;
Procedure LowerCase(Var S: String);
Var
Br: Byte;
Begin
For Br:=1 to Ord(S[0]) Do S[Br]:=LCase(S[Br]);
End;
Begin
Tekst:='OvO jE oBiCaN sTrInG';
Writeln('Normalno: ', Tekst);
UpperCase(Tekst);
Writeln('Velika slova: ',Tekst);
LowerCase(Tekst);
Writeln('Mala slova: ',Tekst);
Halt;
End.
Pozdrav, Vlada...
pascal.1118dzakic,
> {Ord(S[0]) == Length(S)}
Ono što iz iskustva mogu da kažem, jeste da se ovakve 'vragolije' uopšte
ne isplate iz više razloga. Zašto kažem isplate, zato što pretpostavljam
da je ideja upotrebe ord(s[0]) bila da se ubrza izvršavanje funkcije, jer
se ne 'poziva' funckija Length. Ono jes ako se tako gleda i ord je f-ja
;). Ako se iz dibagera pogleda generisani kod, može se lako videti da je
potpuno svejedno da li se koristi length(s) ili ord(s[0]), kao što je
isto da li pišete i:=i+1, ili inc(i). Paskal istina nema neznamkakvu
optimizaciju, ali za toliko nije lud ;).
Zašto onda length(s), a ne ord, ako je već isto? Zato što ćete sutra,
hteli ili ne, doći u priliku da svoj kod portujete na neki drugi os, ili
neku drugu platformu. Svaki budući paskal kompajler će razumeti length, a
ord nije sigurno. Evo, već u delfiju se dužina stringa pamti kao 16-bitna
vrednost. Ko je pisao Length, program će se prevesti bez intervencija.
Čak i recimo s[0]:=#4 - delfi će odbiti da prevede. Preporučiće upotrebu
SetLength procedure, upravo zbog kompatibilnosti.
Pozdrav, Zak
pascal.1119sivek,
Hi people,
ja bih nesto da pitam pa ako neko zna odgovor
i ne mrzi ga da pise nega mi odgovori.
Hteo bi da napravim program koji ce da vodi
fudbalsku tabelu.
Znaci hteo bih da upisem podatke o nekim timovima
u neki fajl,i posle da procitem te iste podatke
ali za svaki od klubova posebno.
Kako to da izvedem?
I ima li neko ideju kako da ih sortiram posle svakog od kola?
aj molim vas odgovorite mi.
Pozdrav.
pascal.1120kojai,
>> Znaci hteo bih da upisem podatke o nekim timovima
>> u neki fajl,i posle da procitem te iste podatke
>> ali za svaki od klubova posebno.
Moze ovako, a mozes i drugacije... :)
Type
Timovi=Record
PostignutoGolova: Word; {kod partizana je ovo smallint }
PrimljenoGolova: Word; {ali zato je ovde longint :))}
Plasman: Byte;
...
end;
Klubovi=Record
Zvezda: Timovi;
Partizan: Timovi;
Obilic: Timovi;
...
end;
Var
f: File of Klubovi;
a: Klubovi;
begin
Assign(f, 'Klubovi.dat');
Rewrite(f);
Write(f, a); {Upisujes}
Read(f, a); {Citas}
Write(a.Zvezda.PrimljenoGolova); {Koristis :)}
Close(f);
end.
pascal.1121epson,
Kako da od PAS fajla napravim TPU ?
pascal.1122zdravkod,
Jel ima neko neki program koji bi radio ono sto radi i DIR /S.
Dakle treba mi source koji ce da radi jako brzo i koji ce da mi
izlista sve fajlove iz svih direktorijuma na disku, zajedno sa
njihovom duzinom itd...
Zdravko
pascal.1123stameni,
>> Kako da od PAS fajla napravim TPU ?
Iz komandne linije unit prevodiš sa tpc nekilevi.pas, a iz IDE
prvo promeniš Compile / Destination na "disk", pa zatim to
iskompajliraš najobičnijim Compile / Compile (ili pritisneš Alt-
F9).
pascal.1125nbjvsb,
>> Kako da od PAS fajla napravim TPU ?
unit ImeUnita; { ime datoteke i ImeUnita mora da bude isto! }
interface { ova rezervisana rec kaze da se od nje pa do rezervisane reci
implementation vrsi definicija tipova, konstanti, procedura,
funkcija i promenljivih koje ce se sve videti iz programa
koji poziva ovaj unit }
...
implementation { odavde pa do kraja idu same procedure }
...
end. { obavezno je end. na kraju unita }
Evo ti i jedan primer:
unit Nizovi;
interface
const
Max = 50;
type
Niz = array[1..Max] of integer;
procedure PromeniMesta(var a1,a2: integer);
procedure SortNiz(n: byte; var f: Niz); { n - duzina niza, f - sam niz }
implementation
procedure PromeniMesta;
var
pom: integer;
begin
pom:=a1;
a1:=a2;
a2:=pom
end;
procedure SortNiz;
var
i,j: byte;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if f[i]>f[j]
then
PromeniMesta(f[i],f[j])
end;
end.
U glavnom programu ubacis uses ImeUnita;
i koristis deklaraciju niza odavde, znaci nesto kao:
var f: Niz;
Kada ubacis sve elemente u niz, uradis jedno SortNiz(n,f), i imas sortiran
niz :)
pascal.1126epson,
Utilitys
Na početku da se zahvalim svima koji su odgovarali na moja pitanja
bilo u konferenciji/mailu/pageu!
Uz poruku sam prikačio dva utilitya napisana za dva dana. Fast
(FastExtract) i Disk (DiskMake).
FastExtract traži sve arhive (npr. sezam.rar) u tekućem direktori-
ju i otpakuje ih u istoimene poddirektorijume (npr. \sezam). Opcije
su -/+ O (overwrite) ili D (delete). U FAST.INI fajlu se definiše ar-
hiver (Arh=), njegove opcije pri otpakivanju (Prm=), overwrite para-
metar (Ovr=) i ekstenzija arhive (Ext=) kojih može biti više (npr.
Ext=*.ARJ;*.A01) i parametri programa (Swi=) koji mogu biti +O/D
(npr. Swi=+O+D) - parametri iz komandne linije imaju prednost.
DiskMake je jednostavan program čiji je jedini parametar broj, ko-
jim kreira direktorijume od DISK1 do DISKbroj.
Ukoliko naiđete na neki baga ili imate želja za unapređenjem pro-
grama napišite ih - svaki komentar je koristan.
utils.rarpascal.1127kojai,
Sivek, evo ti ono za tabelu, u slucaju da nisi primio na mil!
Posto puno zeza slanje!
tabela.arjpascal.1128vlarad,
Posto sam pocetnik koju knjigu mi preporucujete za TP 7.0?
Hvala.
C U
pascal.1129epson,
Pozicija za upis u fajl
Kako da navedem poziciju (reda,karakter u redu npr. 2,5) pri upisu
u fajl ? Koristim write(ln) komandu.
pascal.1130jujo,
# Pozicija za upis u fajl
#
# Kako da navedem poziciju (reda,karakter u redu npr. 2,5) pri upisu
# u fajl ? Koristim write(ln) komandu.
Nikako..probaj da prvo formiras "ekran" u memoriji, u njemu
ispisi sve sto ti treba, pa onda ga snimi u fajl.
yooyo:
pascal.1131kojai,
>> # Pozicija za upis u fajl
>> #
>> # Kako da navedem poziciju (reda,karakter u redu npr. 2,5) pri upisu
>> # u fajl ? Koristim write(ln) komandu.
>>
>> Nikako..probaj da prvo formiras "ekran" u memoriji, u njemu
>> ispisi sve sto ti treba, pa onda ga snimi u fajl.
Nije bas nikako... Nisam bas upucen sta ti treba ali sa naredbom seek
pristupas poziciji fajla! Treda da prvo odredis koliko ima redova fajl tj.
koliko se puta ponavlja enter, znaci #13 i onda da snimis ili u memoriju ili
direktno status, a mozes i da odmah skines sa diska 20-30 kilobajta i da
trazis npr 5 red(peto ponavljanje entera) i 4 karakter i da sracunas gde se to
nalazi i da ga postavis na tu poziciju...
Inace ovo se tako ne radi, vec se otvori oko 600 kb memorije i u nju se stavi
sadrzaj fajla, po kome kasnije pises! Znaci samo preko pointera...
Mozes da napravis ovako budjavu proceduricu za samo upis na poziciju:
Procedure Upisi(Pos: LongInt; Char: Chr(ili Byte));
begin
Seek(f, Pos);
Write(f, Char);
end;
Ako si to trazio to ti je to...
pascal.1132emajsijuen,
│ Nije bas nikako... Nisam bas upucen sta ti treba ali sa naredbom seek
│ pristupas poziciji fajla! Treda da prvo odredis koliko ima redova fajl tj.
│ koliko se puta ponavlja enter, znaci #13 i onda da snimis ili u memoriju ili
│ direktno status, a mozes i da odmah skines sa diska 20-30 kilobajta i da
│ trazis npr 5 red(peto ponavljanje entera) i 4 karakter i da sracunas gde se
│ to nalazi i da ga postavis na tu poziciju...
└──────────────────────────────────────────────
Zao mi je, ali to nece moci ovako da se uradi. Komanda seek, kao sto
i pise u helpu, ne moze da radi sa text fajlovima, a njemu bas to treba.
Znaci, neka ipak formira "ekran" u memoriji... :)
Pozdrav, Vlada...
pascal.1133kojai,
>> Zao mi je, ali to nece moci ovako da se uradi. Komanda seek, kao sto
>> i pise u helpu, ne moze da radi sa text fajlovima, a njemu bas to treba.
>> Znaci, neka ipak formira "ekran" u memoriji... :)
Naravno da ce moci... Otvori variablu File of Byte i uradi!
Naravno da ne postoji naredba za pozicioniranje reda, itd ali lako se pravi...
Meni nije jasno kako radi BP editor posto moze da ucita fajl n velicine i da
ga obradjuje...
pascal.1134epson,
│ Ako si to trazio to ti je to...
└─────────────────────────────────────────────────
Hvala svima, probaću.
pascal.1135emajsijuen,
│ Naravno da ce moci... Otvori variablu File of Byte i uradi!
└──────────────────────────────────────────────
Sledeci put procitaj poruku do kraja, pa tek onda odgovaraj - ovo se odnosi
na poruku na koju si prvi put odgovorio, a ne na moju. Covek je rekao da mu
trebaju Write i Writeln komande. Ako otvori fajl kao File Of Byte, onda je
ogranicen samo na Write komandu...
Pozdrav, Vlada...
pascal.1136kojai,
> Sledeci put procitaj poruku do kraja, pa tek onda odgovaraj - ovo se odnosi
> na poruku na koju si prvi put odgovorio, a ne na moju. Covek je rekao da mu
Ok, ok! :)
pascal.1137bokir,
> Sledeci put procitaj poruku do kraja, pa tek onda odgovaraj - ovo se
> odnosi na poruku na koju si prvi put odgovorio, a ne na moju. Covek je
> rekao da mu trebaju Write i Writeln komande. Ako otvori fajl kao File Of
> Byte, onda je ogranicen samo na Write komandu...
S tim što je WriteLn isto što i Write(13, 10).
pascal.1138jjerry,
Mislim da obichno write(13,10) nece uraditi posao. Potrebno je
pisati sa znakom # ispred : Write(#13,#10) za cr/lf.
Pozdrav.
pascal.1139emajsijuen,
│ S tim sto je WriteLn isto sto i Write(13, 10).
└────────────────────────────────────────────────
Nije... ;) Lapsus calami. Treba da stoji: Write(#13, #10);
Pozdrav, Vlada...
pascal.1140emajsijuen,
Odgovor na poruku 3.1255 iz Sezamnet-a.
> Alternativno resenje cemo pronaci, ali je jos uvek nejasno odakle
> razlika u ponasanju, kada su okolnosti iste. Osim sto je u pitanju mrezni
> disk...
Evo ide neko alternativno resenje... BTW, kod mene radi... ;)
---------------------------------------------------
Uses Crt;
Var
TestDir :String;
TestName :String;
F :File;
Err :Integer;
Begin
TestDir:='C:\TESTDIR\';
TestName:='axz1xd3c.x7A'; { neko levo ime - bez ikakvog smisla..., da se
ne bi desilo da takav fajl vec postoji u
TESTDIR-u }
Assign(F, TestDir+TestName);
{$I-}
Rewrite(F);
{$I+}
Err:=IoResult;
If Err=0 Then Erase(F);
If (Err = 3)or(Err = 5)
Then Begin
{Direktorijum ne postoji - err=3
IoResult = 3 ==> Path Not Found}
{U direktorijumu TESTDIR vec postoji direktorijum TESTNAME;
IoResult = 5 ==> File Access Denied}
Sound(2500); Delay(20); NoSound;
Writeln('Bezuspesno kreiranje fajla ''',testname,''' u direktorijumu
',testdir);
End;
End.
---------------------------------------------------
P.S. Ako nekome treba procedurica koja pravi neki path
(npr. 'C:\util\programi\temp\'), a da pre toga ne
postoji direktorijum 'C:\util', napravio sam neki
unit za takve stvari. Ovo je zgodno za instalacije
programa... :)
Pozdrav, Vlada...
pascal.1141zdravkod,
Hocu da pretrazim disk, sve direktorijume... Pod starim dosom to
sam radio sa FindFirst, FindNext i malo rekurzije. Napisao sam
procedure FindFirst i FindNext za Long File Names pod WIN95 i one
dobro rade ako pretrazujem samo jedan dir. Ako koristim rekurziju
sve se s...e... U cemu je problem. Ako neko ima neki source ili
slicno nek posalje...
Zdravko
P.S: To sve bi trebalo da radi pod TP 6.0
pascal.1142epson,
│ sam radio sa FindFirst, FindNext i malo rekurzije. Napisao sam
│ procedure FindFirst i FindNext za Long File Names pod WIN95 i one
│ dobro rade ako pretrazujem samo jedan dir. Ako koristim rekurziju
└─────────────────────────────────────────────────
Probaj ovo.
w95tpl20.zippascal.1143jjerry,
Da li asemblerski kod u procedurama mozhe da vrati vrednosti u
parametre procedura kojima se vracaju vrednosti,odnosno :
procedure anyproc(....;var a,b,c:byte);assembler;
asm
.
.
.
mov a,ah
mov b,bh
mov c,ch
end
Da li je ovako neshto ikako moguce ili se u samoj proceduri moraju
obavezno deklarisati promenljive,npr. a1,b1,c1 u koje ce prvo da se
smeshta sadrzhaj ah,bh,ch,pa onda da se a,b,c dodeljuje a1,b1,c1 ?
pascal.1144jjerry,
Kako da izvedem sledece : hocu da program ocekuje da se unese neki
karakter,ali da se ne zaustavlja kao kod npr. read,readkey i sl.
nego,ako se neshto unese onda radi neshto drugo,ako nishta...
Praktichno,kako da detektujem i prepoznam pritisak na tastaturi a
da se program ne zaustavlja ?
Btw. kako da izrachunam frame rate ? Ustvari,kako da izmerim jedan
sekund ?
pascal.1145emajsijuen,
>> Kako da izvedem sledece : hocu da program ocekuje da se unese neki
>> karakter,ali da se ne zaustavlja kao kod npr. read,readkey i sl.
>> nego,ako se neshto unese onda radi neshto drugo,ako nishta...
>> Praktichno,kako da detektujem i prepoznam pritisak na tastaturi a
>> da se program ne zaustavlja ?
If keypressed
Then Begin
Slovo:=Readkey;
Case Slovo Of
#13: blabla;
#15: blabla;
..
End; {Case}
End;
Pozdrav Vlada...
pascal.1146kojai,
>> If keypressed
>> Then Begin
>> Slovo:=Readkey;
>> Case Slovo Of
>> #13: blabla;
>> #15: blabla;
>> ..
>> End; {Case}
>> End;
Ovo nece raditi...
Ovako program ima da se zaustavi kad naleti na naredbu ReadKey...
Najlakse ti je da ovo izvedes ili preko SetIntVec(pa zadas Int 9) ili da
odradis taj deo sa asm... To je biosov int za tastaturu(9) ali ne znam tacno
koji je Al(moras pogledati), u svakom slucaju stoji Read character whitout
echo, sto znaci da ne ceka da bi uneo karakter vec kad ga pritisnes on ga
ocita!
E da... Mozes da izvedes i preko Portova... To ti je najlakse!
Znaci kucas:
If Port[$60]=1 then Halt;
Sto znaci da kad naleti na Esc ima da izadje!
Pozdrav!
pascal.1147kojai,
>> Btw. kako da izrachunam frame rate ? Ustvari,kako da izmerim jedan
>> sekund ?
Ja bih to ne bih uradio ovako ali evo ti: :)
Uses Dos, Crt;
Var
h,m,s,st,st2,s2: word;
begin
GetTime(h,m,s2,st2);
Repeat
GetTime(h,m,s,st);
If (s>s2) and (st=st2) then WriteLn('Prosao je ',s-s2,' sekund.');
Until KeyPressed;
end;
Sporo je previse...
pascal.1148emajsijuen,
>> Ovo nece raditi...
>> Ovako program ima da se zaustavi kad naleti na naredbu ReadKey...
Ti izgleda ne znas cemu sluzi funkcija keypressed. Program
se nece uopste zaustavljati jer nece naleteti na Readkey, sve
dok korisnik ne pritisne neki taster... Kada se to desi,
readkey, ce se automatski zavrsiti i vratiti odgovarajuci kod.
>> Najlakse ti je da ovo izvedes ili preko SetIntVec(pa zadas Int 9) ili da
>> odradis taj deo sa asm...
Nece biti da je tako najlakse... ;)
>> E da... Mozes da izvedes i preko Portova... To ti je najlakse!
Bolje se ti vrati na asm i C, to ti izgleda bolje ide... ;)
Pozdrav, Vlada...
pascal.1149stameni,
>> Praktichno,kako da detektujem i prepoznam pritisak na tastaturi a
>> da se program ne zaustavlja ?
if KeyPressed then ch := ReadKey
pascal.1150nbjvsb,
>> if KeyPressed then ch := ReadKey
Probaj ovako da uradis, pa udari neku od strelica, ili bilo koji funkcijski
taster kojeg prepoznaje ReadKey... i gle cuda, za strelicu gore dobijes slovo
P u ch. Drugim recima, ne prepoznajes da li je funkcijski taster :)
Ja bi' mu bacio slicno Vladi, samo ga ne bih obradjivao u if-u, vec kasnije,
tj:
if KeyPressed
then
begin
funkc:=false; { funkc: Boolean, da li je taster funkcijski? }
Ch:=ReadKey;
if Ch=#0
then
begin
funkc:=true;
Ch:=ReadKey
end
end;
Ovo je najbolje ubaciti u neku proceduru, pa je stalno pozivati kad se
pritisne taster.
pascal.1151kojai,
>> Nece biti da je tako najlakse... ;)
Preko SetIntVec je najprakticnije bilo sta uraditi zato sto je naredba
nevezana za petlju... Znaci u svakom trenutku programa ako pritisnem zadati
karakter program ce odreagovati... Ne znam da sam ikada pisao bilo sta u
petlji(ocitavanje tastature, misa, vreme, ocitavanje sa portova itd.)!
>> >> E da... Mozes da izvedes i preko Portova... To ti je najlakse!
>> Bolje se ti vrati na asm i C, to ti izgleda bolje ide... ;)
Preko portova se lakse daju ocitati dvoznacni karakteri, znaci strelice, itd...
ReadKey je naredba Crt unita, tako da je neophodno pozvati Crt unit!
Na faxu i po takmicenjima je zabranjeno koristiti bilo kakav unit, tako da ova
varijanta otpada kao najlaksa i najprakticnija!
Emaj prouci malo problematiku pa mi onda odgovaraj na ovakav nacin!
pascal.1152emajsijuen,
> if KeyPressed
> then
> begin
> funkc:=false; { funkc: Boolean, da li je taster funkcijski? }
> Ch:=ReadKey;
> if Ch=#0
> then
> begin
> funkc:=true;
> Ch:=ReadKey
> end
> end;
Var
Ch1, Ch2 :Char;
Begin
Repeat
If Keypressed
Then Begin
Ch1:=Readkey;
Case Ch1 OF
#13: Blabla;
#65: BlaBla;
#0: Begin
Ch2:=Readkey;
Case Ch2 Of
#72: BlaBla; {Up arrow}
#80: BlaBla; {Down arrow}
#75: BlaBla; {Left arrow}
#77: BlaBla; {Right arrow}
End;
End;
End;
End;
Until Ch1=#27;
End.
Meni ovo izgleda nekako elegantnije nego pisanje posebnih procedura za obradu
keyboard input-a. :) Ipak, mozda je to samo moje subjektivno misljenje...
Pozdrav, Vlada...
pascal.1153emajsijuen,
│ Preko SetIntVec je najprakticnije bilo sta uraditi zato sto je naredba
│ nevezana za petlju... Znaci u svakom trenutku programa ako pritisnem zadati
│ karakter program ce odreagovati... Ne znam da sam ikada pisao bilo sta u
│ petlji(ocitavanje tastature, misa, vreme, ocitavanje sa portova itd.)!
└─────────────────────────────────────────────────
U pravu si, najbolje je to okaciti o neki int, ali nije i najjednostavnije.
BTW, bas me zanima koji si int koristio za to ?
│ Preko portova se lakse daju ocitati dvoznacni karakteri, znaci strelice,
│ itd...
└─────────────────────────────────────────────────
Sasvim se lako ocitavaju i preko funkcije readkey. Zasto mu preporucujes da
se petlja sa portovima, kada vec postoji funkcija za to ???
│ ReadKey je naredba Crt unita, tako da je neophodno pozvati Crt unit!
│ Na faxu i po takmicenjima je zabranjeno koristiti bilo kakav unit, tako da
│ ova varijanta otpada kao najlaksa i najprakticnija!
└─────────────────────────────────────────────────
Covek verovatno ni ne pravi program za takmicenje, niti bilo sta slicno, pa
je glupo o ovome raspravljati...
Pozdrav, Vlada...
pascal.1154jujo,
# Na faxu i po takmicenjima je zabranjeno koristiti bilo kakav unit, tako
# da ova varijanta otpada kao najlaksa i najprakticnija!
# Preko SetIntVec je najprakticnije bilo sta uraditi zato sto je naredba
A setIntVect je kao dozvoljeno.... nemogu da verujem..xaxaxaxaxa..
yooyo:
pascal.1155jujo,
# Btw. kako da izrachunam frame rate ? Ustvari,kako da izmerim jedan
# sekund ?
Pa uradi ovako.
1. zakaci se na timer interapt (8 ili 1c) i dodaj mu jos ovo
...
if fleg then
begin
brojac:=brojac+10;
if brojac = cilj then uspeh = true;
end;
...
2. negde u programu ...
...
uspeh:=182; // to je najblize jednoj sekundi
brojac:=0;
uspeh:=false;
fleg:=true;
repeat
posao
until uspeh
...
i posao ce se odvijati onoliki broj puta koliko zaista moze da se
obavi u jednoj sec.
yooyo:
pascal.1156zdravkod,
Treba mi kod koji ce da odredi broj diskova u sistemu. Dakle, ako u
sistemu imam drajvove A,B,C,D,E on treba da mi kaze da je zadnje
slovo u sistemu E i da iza njega nema vise.
Zdravko
pascal.1157kojai,
>> A setIntVect je kao dozvoljeno.... nemogu da verujem..xaxaxaxaxa..
Naravno da nije...
Nije dozvoljeno ni u assembleru da se pise!
Ali portove niko ne moze da zabrani, posto su u System Tpu-u!
pascal.1158kojai,
>> BTW, bas me zanima koji si int koristio za to ?
Pa interapt tastature, INT 9...
>> Sasvim se lako ocitavaju i preko funkcije readkey. Zasto mu preporucujes da
>> se petlja sa portovima, kada vec postoji funkcija za to ???
Pa vidi se da si malo radio u pascalu cim mozes da kazes da je "petljanje" rad
sa portovima... Po meni to je mnogo jednostavnije nego ista poznato za ovu
stvar! Npr. If Port[$60]=1 then Halt; sto znaci kad se pritisne Esc prekida se
program...
>> Covek verovatno ni ne pravi program za takmicenje, niti bilo sta slicno, pa
>> je glupo o ovome raspravljati...
Naravno da jeste... Samo me zanima sta ce ti onakve upadice "vrati se C-u i
Assembleru"?
pascal.1159emajsijuen,
>> Sasvim se lako ocitavaju i preko funkcije readkey. Zasto mu preporucujes da
>> se petlja sa portovima, kada vec postoji funkcija za to ???
> Pa vidi se da si malo radio u pascalu cim mozes da kazes da je "petljanje"
> rad sa portovima...
Da, da... ja cak nisam ni radio u pascalu...Samo me jedna stvar zanima...
Ti sebe smatras za iskusnog pascal programera ?
> Po meni to je mnogo jednostavnije nego ista poznato za ovu stvar! Npr. If
> Port[$60]=1 then Halt; sto znaci kad se pritisne Esc prekida se program...
Dobro, nemamo sta da se ubedjujemo. Meni se vise svidja drugi nacin (preko
keypressed & readkey), ali to je vec stvar ukusa.
> Naravno da jeste... Samo me zanima sta ce ti onakve upadice "vrati se C-u i
> Assembleru"?
Eto... cisto onako, fore radi... ;)
BTW, ukoliko imas jos nesto da mi kazes, koristi mail posto polako izlazimo
izvan okvira ove konferencije...
Pozdrav, Vlada...
pascal.1160nbjvsb,
Kako da u rezimu 800*600 iskoristim misa? Ono, cim se prebacim na nesto jace
od 640*480 pointer se ne vidi...
pascal.1161kojai,
>> Ti sebe smatras za iskusnog pascal programera ?
Dovoljno sam radio pod dosom da u bilo pascalu, c-u ili assembleru mogu da
uradim bilo kakvu aplikaciju!
Nije uopste bitno u kom jeziku odaberem da radim posto sam siguran da svaku
stvar mogu skoro 100 % da uradim...
Kada radis toliko da ne znas sta vise da pravis(citaj nemas izazov) onda mozes
sebe da oslovis sa programerom!
Iskusan nisam posto sam malo radio za lovu, ali kada sam radio programi su mi
bez problema radili...
Pozdrav!
pascal.1162emajsijuen,
> Dovoljno sam radio pod dosom da u bilo pascalu, c-u ili assembleru mogu da
> uradim bilo kakvu aplikaciju!
Znam... Samo sam se zezao...Nego, reci mi, sta bi sa onim mixovanjem
wav-ova ? ;)
> Nije uopste bitno u kom jeziku odaberem da radim posto sam siguran da svaku
> stvar mogu skoro 100 % da uradim...
Naravno da nije bitno...
> Kada radis toliko da ne znas sta vise da pravis(citaj nemas izazov) onda
> mozes sebe da oslovis sa programerom!
Slazem se sa tim...
P.S. E, nemoj da pomislis da imam nesto protiv tebe, ali morao sam da lupim i
ovaj reply. BTW, necu biti iznenadjen ako mi moderator obrise ovu poruku.
Pozdrav, Vlada...
pascal.1163emajsijuen,
> Treba mi kod koji ce da odredi broj diskova u sistemu. Dakle, ako u
> sistemu imam drajvove A,B,C,D,E on treba da mi kaze da je zadnje
> slovo u sistemu E i da iza njega nema vise.
Napravio sam funkciju koja proverava da li neki disk postoji. Znaci, mozes
da je iskoristis:
Var
Drajv :Char;
Begin
drajv:='A';
While DriveExist(Drajv) do Inc(Drajv);
{Posle ovoga promenjiva drajv ce da sadrzi oznaku zadnjeg diska na sistemu}
End.
Funkcija je u fajlu prikacenom uz poruku...
Pozdrav, Vlada...
drive.paspascal.1164kojai,
>> Znam... Samo sam se zezao...Nego, reci mi, sta bi sa onim mixovanjem
>> wav-ova ? ;)
Radi se na tome... Trebaju mi algoritmi kako se vise wavova sintetise u jedan,
znaci simulacija mixete!
pascal.1165nbjvsb,
>> Nije uopste bitno u kom jeziku odaberem da radim posto sam siguran da
>> svaku stvar mogu skoro 100 % da uradim...
Izvinjavam se sto upadam u diskusiju ;), ali ovo definitivno nije tacno.
Ako jedan C programer uleti u Pascal, eto cuda. Covek ce da napravi takav
program da ga niko ziv nece ukapirati. A i verovatno ce mu biti malo cudno
Pascalovo ogranicenje memorije ;) Na kraju ce da odustane i da kaze da
je Pascal tezak shit, da je jezik za apsolutne pocetnike i da C vlada. Kao
sto ce jedan tipican Pascal programer na prvi dodir sa C-om da konstatuje da
je sve to mnogo komplikovano, Pascal je mnogo laksi i razumljiviji, ali ce
mu ipak u glavi uvek biti upravo ono sa memorijom - kod C-a, ogranicenja
nema. A o asembleru da i ne govorim... e sad, covek kome uopste nije stalo
do lepote pisanja ili nepisanih pravila kako programirati u kojem jeziku,
lepo ce da zbudzi asembler u Pascal, igrace se sa portovima, itd, itd, itd..
Samo, zasto uopste programirati u Pascalu ako se koriste i asembler i ostale
sitnice malo nizeg nivoa? Sve to lepo mozes da uradis u cistom asembleru
ili cistom C-u, koji ponajvise i sluze za takvo zezanje. Niko lud nije da
sistemski softver pise u Pascalu... no, da ne duzim vise oko toga.
>> Kada radis toliko da ne znas sta vise da pravis(citaj nemas izazov) onda
>> mozes sebe da oslovis sa programerom!
Onaj ko ne zna sta vise da pravi jer je napravio sve, moze sebe da oslovi
sa Bogom... ni ti, ni ja, ni Bil Gejts, niti iko drugi ne zna bas sve o
programiranju, niti ce ikada znati. Uvek ce postojati neko ko bi, npr.
neki tvoj program uradio optimizovanije od tebe. Isto kao sto sigurno
postoji neko ko bi taj isti program uradio optimizovanije od njega. I tako
dalje... evo ti izazov: napravi nov operativni sistem, koji ce po lakoci
rada da ubije Windowse, a po sigurnosti i snazi Unixe.
pascal.1166hercog,
$$ Kada radis toliko da ne znas sta vise da pravis(citaj nemas izazov) onda
$$ mozes sebe da oslovis sa programerom!
Na ovo sam morao da repliciram... Uvek postoji nešto što
možeš da napraviš... Prvo si imao ideje, al' nisi znao
da programiraš. Posle si znao kako tako da programiraš, ali
nisi imao ideje. Posle si naučio da programiraš i imaš i
gomilu ideja. To tvoje kad ne znaš šta više da praviš - ondak
si programer, nešto mi ne drži vodu...
Sale
pascal.1167jujo,
# Kako da u rezimu 800*600 iskoristim misa? Ono, cim se prebacim na nesto
# jace od 640*480 pointer se ne vidi...
Pa nikako. Ni jedan drajver za misa ne poznaje 800x600x256 boja jer je
to u domenu vesa standarda. Moraces sam da se dovijas.
yooyo:
pascal.1168popovics,
| Pa nikako. Ni jedan drajver za misa ne poznaje 800x600x256 boja
| jer je to u domenu vesa standarda. Moraces sam da se dovijas.
~~~~~~~~~~~~~~~~~~~~~~~~~
E, al si mu pomogao. Dajte ljudi, ako već ne možete da pomognete, ne
šaljite ovakve besmislene poruke...
pascal.1169jujo,
# | jer je to u domenu vesa standarda. Moraces sam da se dovijas.
# ~~~~~~~~~~~~~~~~~~~~~~~~~
#
# E, al si mu pomogao. Dajte ljudi, ako vec ne mozete da pomognete, ne
# saljite ovakve besmislene poruke...
Pa ozbiljno ti kazem da bi dobio strelicu moras SAM da napises rutine
za pristup ekranu u VESA modovima. Druga stvar je da ces morati da se
"kacis" na INT33 i to na func 0Ch, koja je click watcher.
U cx regisrtu popalis bitove na koje ce clock watcher da se "pali".
Evo detalja...
INT 33,C - Set Mouse User Defined Subroutine and Input Mask
AX = 0C
ES:DX = far pointer to user interrupt
CX = user interrupt mask:
│F-5│4│3│2│1│0│ user interrupt mask in CX
│ │ │ │ │ └─── cursor position changed
│ │ │ │ └──── left button pressed
│ │ │ └───── left button released
│ │ └────── right button pressed
│ └─────── right button released
└───────── unused
returns nothing
- routine at ES:DX is called if an event occurs and the
corresponding bit specified in user mask is set
- routine at ES:DX receives parameters in the following
registers:
AX = condition mask causing call
CX = horizontal cursor position
DX = vertical cursor position
DI = horizontal counts
SI = vertical counts
DS = mouse driver data segment
BX = button state:
│F-2│1│0│
│ │ └─── left button (1 = pressed)
│ └──── right button (1 = pressed)
└────── unused
- initial call mask and user routine should be restore on exit
from user program
┌─ Obrati paznju ───────────────────────────────────────────────┐
│ - user program may need to set DS to it's own segment │
└───────────────────────────────────────────────────────────────┘
- see INT 33,14
Ti u tvojoj rutinici treba da ispitas da li se mis pomerio, i ako jeste
onda koristeci kombinaciju getimage/setimage nacrtas strelicu na ekranu
na odgovarajucem mestu. U celoj stvari ima jedan problem: NESMES
KORISTITI BORLANDOVE GETIMAGE/SETIMAGE jer nisu pisani da se pozivaju
iz interapta. Dakle tasraturu u ruke i pisi. Za pocetak provali
malo VESA programiranje, pc ces moci misa da crtas i u truecolor modovima.
Na ovaj nacn ces imati misa koji radi totalno nezavisno od ostatka
programa.
yooyo:
pascal.1170kojai,
>> $$ Kada radis toliko da ne znas sta vise da pravis(citaj nemas izazov) onda
>> $$ mozes sebe da oslovis sa programerom!
>>
>> Na ovo sam morao da repliciram... Uvek postoji nesto sto
>> mozes da napravis... Prvo si imao ideje, al' nisi znao
>> da programiras. Posle si znao kako tako da programiras, ali
>> nisi imao ideje. Posle si naucio da programiras i imas i
>> gomilu ideja. To tvoje kad ne znas sta vise da pravis - ondak
>> si programer, nesto mi ne drzi vodu...
Naravno uvek ima nesto da se pravi... Ne postoji covek koji sve zna!
pascal.1171nbjvsb,
>> KORISTITI BORLANDOVE GETIMAGE/SETIMAGE jer nisu pisani da se pozivaju
>> iz interapta. Dakle tasraturu u ruke i pisi. Za pocetak provali
>> malo VESA programiranje, pc ces moci misa da crtas i u truecolor modovima.
Uf, a ja pitao bas zato sto me uzasno mrzi da sve kuckam rucno. Sto mu
gromova, sad se treba prisetiti i asemblera... Na svu srecu, radim u 256
boja pa je sve mnogo lakse.
pascal.1172sivek,
Hi :)
Ja bih zamolio poznavaoce Turbo Vision-a da mi posalju neki primer
u kome je lepo objasnjeno kako da napravim neki meni.Gledao sam malo
one primere sto se dobiju u instalaciji pascala ali mi nije nesto
previse jasno.I naravno ako moze sa strane {objasnjenje} sta cemu
sluzi.
Unapred zahvalan ,Sivek.
pascal.1173jjerry,
Kako da modulu koji linkujem u Unit uchinim vidljivom neku
promenljivu koja se nalazi u tom istom Unitu ? Ovicna EXTERN
PASCAL direktiva ne obavlja posao,chak sam i pod istim imenom
deklarisao..
Any suggestions ?
pascal.1174nenadt,
nikako
pascal.1175jjerry,
Thanks for the very brief and suggestive reply :)
Pozdrav..
pascal.1176nenadt,
pa šta si hteo ;)
ne ozbiljno sada, ja sam pokušavao dosta dugo da neke ASM module
ulinkujem na taj fazon, međutim to je tako j.ben posao da je to
strašno. promenjive koje deklarišeš u okviru modula možeš da
koristiš samo u okviru modula.
pascal.1177jjerry,
Ne..ja sam mislio da promenljivu iz unita koristim u okviru modula.
Malo mi nije logichno da to ne mozhe,a da je moguce npr. koristiti
funkcije,npr. C-a.
pascal.1178nenadt,
funkcije C-a. a jeli sinak, kako si to izveo. svako moje zezanje sa
C-om se završilo sa time da mi ispiše poruku kako f-ja nije
definisana.
pascal.1179staos,
treba mi pomoc, tj. mom drugu....radi se o programu u
pascalu...koji treba da uci i razvrstava naprimer nazive pesama,
izvodjace i vrstu muzike.
Evo ja cu da ga okacim ovde pa ako neko zna bio bih mu zahvalan
Nikola
problempascal.1180rdejan,
>> Evo ja cu da ga okacim ovde pa ako neko zna bio bih mu
>> zahvalan
Tvoj drug je na vrlo lošem putu što se programiranja tiče:
samouk je, struktura programa je loša, koristi labele (što je
još i najbolje od svega), otvara/zatvara fajlove non-stop.
Savetujem mu da se lati neke dobre knjige ili da ga neko
poduči.
Što se programa tiče, stvar je vrlo jednostavna, ali,
napominjem, ceo program je vrlo loše pisan. Nije problem u
neiskustvu, već elementarnom nepoznavanju Pascal-a.
Elem, prva funkcija read(a) ti vraća odgovor i jedan ENTER
"viška", tako da sledeća naredba readln(a) dobija prazan
string, bez unosa. Ispravi prvi red u programu read(a) sa
readln(a).
Još nešto: imenuj fajlove uz poruke sa njihovim ekstenzijama.
Fajl se zvao PROBLEM, a bio je arj arhiva. Ljudi neće gledati
u pasulj šta si poslao i čime da ga otpakuju...
Pozdrav, Dejan
pascal.1181staos,
Sve sto si rekao je cista istina...njegovo znanje potice iz
skole, a znas kakav je nas skolski sistem, posebno sto se informatike
tice.
Resio je on problem, nabavio gotov program, koji radi:)
Ali, ipak, hvala ti :)
Nikola
pascal.1182emajsijuen,
Kako da detektujem koliko je osnovne memorije bilo slobodno pre
startovanja mog programa ? Napominjem da program ne sme da koristi
celu slobodnu memoriju nego nekih 200 Kb - pa nije moguce to
izracunati npr. sledecim kodom:
{$M 16384, 655350, 655350}
Begin
Writeln(MemAvail);
End;
Takodje me zanima kako da detektujem koliko Kb program zauzima u
memoriji.
Pozdrav, Vlada...
pascal.1183epson,
Kako "konvertovati" string u char ?
pascal.1184guta,
#> Kako "konvertovati" string u char ?
Hm, nisam baš razumeo, na kakvu konverziju misliš? String je potencijalno
sastavljen iz više karaktera, ne mogu da zamislim kakva bi se tu konverzija
mogla izvršiti...
pascal.1185jjerry,
Ako si mozhda mislio da string predstavish kao niz charova,nema
potrebe,jer je sam tip string niz tipa char,tako da svakom elementu
niza pristupash putem indeksa..
To je shto se teorije tiche,ne mogu da zamislim ni na kakvu drugu
"konverziju".Na kakvu si tachno konverziju mislio ?
Pozdrav..
pascal.1186epson,
to guta i jerry
│ #> Kako "konvertovati" string u char ?
│
│ Hm, nisam baš razumeo, na kakvu konverziju misliš? String je potencijalno
│ sastavljen iz više karaktera, ne mogu da zamislim kakva bi se tu konverzija
│ mogla izvršiti...
└─────────────────────────────────────────────────
Trebalo mi je c:=s[1]; (vat c:char,s:string), što mi je Zak rekao
na vezi čim sam poslao poruku.
pascal.1187jujo,
# funkcije C-a. a jeli sinak, kako si to izveo. svako moje zezanje sa
# C-om se zavrsilo sa time da mi ispise poruku kako f-ja nije
# definisana.
Pa u C-u treba da stavis rec pascal ispred imena funkcije, tj.
int pascal func(int a, int b)
{
...
}
Cime ces kompajleru da objasnis da je poziv pascal tipa. U pascalu
treba da deeklarises func kao:
function func(a,b:integer);
uz eventualno extern ispred.
A kako ulinkovati tpu i obj.... Mislim da postoji primer uz sam pascal.
yooyo:
pascal.1188nenadt,
> Pa u C-u treba da stavis rec pascal ispred imena funkcije, tj.
>
> int pascal func(int a, int b)
> {
> ...
> }
>
> Cime ces kompajleru da objasnis da je poziv pascal tipa. U pascalu
> treba da deeklarises func kao:
>
> function func(a,b:integer);
>
> uz eventualno extern ispred.
taj deo radi kako valja, ali kada treba pozvati neku f-ju tipa fread iz C
biblioteke, pascal pri kompajliranju prijavi nesto kao "undefined function
_fread". e mene interesuje kako da resim taj problem.
pascal.1189jjerry,
Pa nije nishta posebno linkovati TPU i OBJ.Ja sam recimo formirao
OBJ u kome drzhim neke funkcije koje operishu sa 32-bitnim
registrima i 386+ instrukcijama,shto u paskalu ne mozhe..
{$L obj_fajl.obj}
ce da vrshi posao..
Pozdrav..
pascal.1190emajsijuen,
Kako definisati interrupt proceduru u okviru nekog objekta?
Pozdrav, Vlada...
pascal.1191nenadt,
interrupt procedura u okviru nekog objekta se NE izvodi, jer se to
kosi sa ideologijom objektnog programiranja, pa se i ne izvodi
pascal.1192jjerry,
Za shta ti treba interapt procedura bash u okviru nekog objekta ?
pascal.1193stameni,
Uz poruku ide još jedna verzija zbirke čestih i manje čestih
pitanja o Pascalu, skinuta sa:
ftp://garbo.uwasa.fi/pc/link/tsfaqp.zip
Preporučujem download.
Evo i spiska svih pitanja:
----<cut>----
This file TSFAQP.IDX lists the contents of
ftp://garbo.uwasa.fi/pc/ts/tsfaqp42.zip
also available as
ftp://garbo.uwasa.fi/pc/link/tsfaqp.zip
Common Turbo Pascal Questions and Timo's answers
--------------------------------------------------------------------
FAQPAS.TXT Frequently (and not so frequently) asked Turbo Pascal
questions with Timo's answers.
1) How do I disable or capture the break key in Turbo Pascal?
2) How do I get a printed documentation of my students' TP runs?
3) What is the code for the weekday of a given date?
4) Need a program to format Turbo Pascal source code consistently
5) Can someone give me advice for writing a tsr program?
6) Why can't I read / write the com ports?
7) What are interrupts and how to use them in Turbo Pascal?
8) Should I upgrade my Turbo Pascal version?
9) How do I execute an MS-DOS command from within a TP program?
10) How is millisecond timing done?
11) How can I read the text character fonts from the memory?
12) How to find the files in a directory and subdirectories?
13) I need a power function but there is none in Turbo Pascal.
14) How can I create arrays that are larger than 64 kilobytes?
15) How can I test that the printer is ready?
16) How can I clear the keyboard type-ahead buffer?
17) How can I utilize expanded memory (EMS) in my programs?
18) How can I obtain the entire command line?
19) How do I redirect text from printer to file in my TP program?
20) Turbo Pascal is for wimps. Use standard Pascal or C instead?
21) How do I turn the cursor off?
22) How to find all roots of a polynomial?
23) What is all this talk about "Pascal homework on the net"?
24) How can I link graphics drivers directly into my executable?
25) How can I trap a runtime error?
--------------------------------------------------------------------
FAQPAS2.TXT More frequently (and not so frequently) asked Turbo
Pascal questions with Timo's answers.
26) How to get ansi control codes working in Turbo Pascal writes?
27) How to evaluate a function given as a string to the program?
28) How does one detect whether input (or output) is redirected?
29) How does one set the 43/50 line text mode?
30) How can I assign a value to an environment variable in TP?
31) How does one store, and then restore the original screen?
32) How can I convert a TPU unit of one TP version to another?
33) Which error is e.g. Runtime error 205, etc
34) Why can't I open read-only files? I get "File access denied".
35) How do I obtain high and low parts of a byte variable?
36) How can I set a hi-intensity color background in the text mode?
37) Where can I find a program to convert (Turbo) Pascal to C?
38) How can I read input without echoing to the screen?
39) How can I edit the readln input stream?
40) How can I write (brand) something into my executables?
41) What is wrong with my program? It hangs without a clear pattern?
42) How do I convert a decimal word into a hexadecimal string, etc?
43) How to determine the last drive?
44) How can I put a running clock into my Turbo Pascal program?
45) How to establish if a name refers to a directory or not?
46) How does one disable alt-ctrl-del?
47) How can I test whether a file exists?
48) What is the name of the current Turbo Pascal program?
49) How is the code for rebooting the PC written in Turbo Pascal?
50) How can I write inline code?
--------------------------------------------------------------------
FAQPAS3.TXT The third set of frequently (and not so frequently)
asked Turbo Pascal questions with Timo's answers.
51) I am running out of memory when compiling my large program.
52) How do I avoid scrolling in the last column of the last row?
53) How can one hide (or unhide) a directory using a TP program?
54) How do I test whether a file is already open in a TP program?
55) How can I test and convert a numerical string into a real?
56) How can I reverse a TP .EXE or .TPU back into source code?
57) How can I calculate the difference between two points of time?
58) Is a program running stand-alone or from within the IDE?
59) Please explain Turbo Pascal memory addressing to me.
60) How do I obtain a bit or bits from a byte, a word or a longint?
61) What are Binary Coded Decimals? How to convert them?
62) How can I copy a file in a Turbo Pascal program?
63) How can I use C code in my Turbo Pascal program?
64) How do I get started with the Turbo Profiler?
65) How can I detect if the shift/ctrl/alt etc key is pressed?
66) How do I get a base 10 logarithm in TP?
67) If Delay procedure does not work properly, how do I fix it?
68) How much memory will my TP program require?
69) How to detect if a drive is a CD-ROM drive?
70) How do I convert an array of characters into a string?
71) How do I get started with graphics programming?
72) Where to I find the different sorting source codes?
73) A beginner's how to write and compile units.
74) What are and how do I use pointers?
75) How can I read another program's errorlevel value in TP?
--------------------------------------------------------------------
FAQPAS4.TXT The fourth set of frequently (and not so frequently)
asked Turbo Pascal questions with Timo's answers.
76) What are the current Pascal newsgroups on the Usenet news?
77) How do I detect the CapsLock status, how do I turn it on/off?
78) How do I detect if the F11 or F12 key has been pressed?
79) How do I extract (parse) substrings from an input string?
80) How do I find out the size of any kind of a file?
81) How do I format graphics output like in textmode writeln?
82) How do I detect if more than one standard key is pressed down?
83) How can I read a disk's Volume Serial Number?
84) How can I disable and then enable the keyboard in my TP program?
85) How do I get the character device name of the (first) CD-ROM?
86) How do I eject a CD-ROM using a Turbo Pascal program?
87) How do I find out if the ANSI.SYS driver has been loaded?
88) Where do I find Turbo Pascal tutorials and/or good textbooks?
89) How do I make an executable of my Turbo Pascal source program?
90) How can I quickly read the last byte of a file?
91) Is 2000 a leap year? What is the leap year algorithm?
92) Does anybody have a program that gives the week number?
93) How can I use OutText to write numbers in the graphics mode?
94) How can I redirect output to file if I use the Crt unit?
95) How to write a function to return true if I am in graphics mode?
96) My graph.tpu got corrupted. Someone please email me a new copy.
97) How can I avoid run-time errors in numeric input using readln?
98) How can I limit the user's readln input to e.g. 3 characters?
99) Can you tell a beginner how to delete files with Turbo Pascal?
100) Could you please explain shl and shr operators to a beginner?
--------------------------------------------------------------------
FAQPAS5.TXT The fifth set of frequently (and not so frequently)
asked Turbo Pascal questions with Timo's answers.
101) How do I detect if mouse hardware/driver is installed?
102) How can I read absolute sectors directly from a floppy?
103) How can I move a file to another directory in Turbo Pascal?
104) How can I get/set a disk volume label?
105) Is there a function to chop off the leading zero from 0.322?
106) How can I print a text file (and conclude sending a formfeed)?
107) How can I round 4.1256455 to two decimal places to give 4.13?
108) How can I list with paths all the files on a drive?
109) What are the formulas for ArcSin and ArcCos?
110) How can I determine how many bytes are allocated to a file?
111) How can I modify the colors of the VGA graphics palette?
112) How can I check if SMARTDRV has been installed? Which version?
113) Is there a way to make the text blink in the graphics mode?
114) How do I make writeln (15/18) give 0.83, not 8.3333333333E-01?
115) How do I get 256 colors instead of Turbo Pascal's normal 16?
116) How can I read a text character from the screen (e.g. xy 5,2)?
117) How can I clear the screen without the Crt unit?
118) How can I test if a disk is present in the drive?
119) What is the Pascal code to add a number of days to a date?
120) How can I stuff keystrokes in advance into the keyboard buffer?
121) What is the code for a fast 16-color PutPixel Routine?
122) What is the code for a fast 256-color PutPixel Routine?
123) How can I substitute a substring with another in a string?
124) Curing Crt initialisation runtime error 200 on fast machines
125) How can I copy text and example codes from Turbo Pascal help?
--------------------------------------------------------------------
FAQPAS6.TXT The sixth set of frequently (and not so frequently)
asked Turbo Pascal questions with Timo's answers.
126) How do I detect if my program is running under Windows?
127) How do I set errorlevel in Turbo Pascal and test it in a batch?
128) How do I get started with mouse programming?
129) How can I find out if a date is a valid date?
130) How can I write an array to a text file in Turbo Pascal?
131) Where do I get ASCII and scan codes for the different keys?
132) How do I define and use records? How do I give initial values?
133) What real numbers types are there? How do I use them?
134) How do I find out the default status of the compiler switches?
135) Anyone know where I can download Pascal source codes?
--------------------------------------------------------------------
FAQPASB.TXT Bibliography of textbooks and references for frequently
asked Turbo Pascal questions with Timo's answers.
--------------------------------------------------------------------
....................................................................
Prof. Timo Salmi Co-moderator of news:comp.archives.msdos.announce
Moderating at ftp:// & http://garbo.uwasa.fi/ archives 193.166.120.5
Department of Accounting and Business Finance ; University of Vaasa
mailto:ts@uwasa.fi <http://www.uwasa.fi/~ts/> ; FIN-65101, Finland
Spam foiling in effect. My email filter autoresponder will return a
required email password to users not yet in the privileges database.
----<cut>----
Izgleda da tamo ima još nekoliko dosta interesantnih stvari za
programere (faq i source), pa možda ne bi bilo loše ponekad
svratiti tamo...
tsfaqp.zippascal.1194emajsijuen,
Nasao sam neki unit za rad sa sound blasterom... Saljem ga uz poruku...
P.S. Ovo je za direktorijum!
Pozdrav, Vlada...
soundbl.arjpascal.1195emajsijuen,
Ide jos jedan primer za "vatru"...
Pozdrav, Vlada...
burn.paspascal.1196emajsijuen,
Stize jedan dobar unit za rad sa grafikom (VESA modovi, do 256 boja).
------------------------------------------------------------------------------
█▀▀▀ █▀▀▄ █▀▀▄ █▀▀▀ █ █
█ ▄ █▄▄ █▄▄█ █▄ ▄▀▀▄
▀▀▀▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ *************************************************
******************************* (c) 1996-1998 by Stefan Goehler, Germany ***
***** GRAFX 1.3c ************************************************************
***** Documentation - Version 1 *****
**** Find me in the Web @ http://sourcenet.home.pages.de ***
*** Mail me @ stefan.goehler@gmx.de *
** *
* oy n* rilgirov should be mentioned - he
reprogrammed the *
* hardware *men, cirrus-unit seems to run very well. *
* Another thnke theew e.3a b ! * **************
-------------------------------------------------------------------------------
grafx.arjpascal.1197emajsijuen,
█▀▀▀ █▀▀▄ █▀▀▄ █▀▀▀ █ █
█ ▄ █▄▄ █▄▄█ █▄ ▄▀▀▄
▀▀▀▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀ *************************************************
******************************* (c) 1996-1998 by Stefan Goehler, Germany ***
***** GRAFX 1.3c ************************************************************
***** Documentation - Version 1 *****
**** Find me in the Web @ http://sourcenet.home.pages.de ***
*** Mail me @ stefan.goehler@gmx.de *
** *
* *
* Thanx fly to Dmitri Chaloupov for doing some corrections on my spelling :) *
* Also Hristo Chilingirov should be mentioned - he reprogrammed the *
* hardware acceleration for Cirrus cards - he had IMHO a good *
* documentation, the cirrus-unit seems to run very well. *
* Another thanx flies to Christian Klukas - he made a lot of testing on *
* version 1.3. Only with his help I was able to make the newest *
* release 1.3 so stable and bugfree (hey ;)! *
****** *
******************************************************************************
***
*
pascal.1198lana.m,
Evo sta se moze uraditi sa i bez onih tpu-ova sto je emajsijuen slao za
otprilike 1 sat(mozda malo vise)! :)
Inace rutina za crtanje zvezdica mislim da je najbolje izvedena do sada...
Naravno ja sam je(sa svojim nevelikim znanjom mate) napravio!
:))
stars.arjpascal.1199emajsijuen,
│ Evo sta se moze uraditi sa i bez onih tpu-ova sto je emajsijuen slao za
│ otprilike 1 sat(mozda malo vise)! :)
└─────────────────────────────────────────────
C c c... ;)
│ Inace rutina za crtanje zvezdica mislim da je najbolje izvedena do sada...
│ Naravno ja sam je(sa svojim nevelikim znanjom mate) napravio!
└─────────────────────────────────────────────
Jesi li to bas ti pravio ? ;) Meni se ipak cini da je to pravio Stefan
Goehler iz Nemacke ;) Ti si u stvari samo izvadio deo programa vesademo koji
kao primer dolazi uz one unite... Posle ti je ostalo samo onu poruku da
promenis. P.S. a i oni fontovi 'descent.chs' mi nekako deluju poznato... ;)
Mogao si bar da ih ulinkujes u .exe, bilo bi teze provaliti odakle si to
uzeo...
Pozdrav, Vlada...
pascal.1200lana.m,
>> Jesi li to bas ti pravio ? ;) Meni se ipak cini da je to pravio
>> Stefan
>> Goehler iz Nemacke ;) Ti si u stvari samo izvadio deo programa
>> vesademo koji
>> kao primer dolazi uz one unite... Posle ti je ostalo samo onu
>> poruku da
>> promenis. P.S. a i oni fontovi 'descent.chs' mi nekako deluju
>> poznato... ;)
>> Mogao si bar da ih ulinkujes u .exe, bilo bi teze provaliti odakle
>> si to
>> uzeo...
Kunem se da sam pravio rutinu za crtanje zvezdica... Fejdovanja i
razlicite brzine sve je moje...
Poslacu ti source ali da ga ne siris dalje ako mi ne verujes...
Naravno da sam uzeo font!!! Pa i pise lepo ime fonta!!!
E Emaj, treba ti jos da ucis! :))
Pozdrav!
Btw. Rutinu za crtanje zvezdica sam uradio sa jedno 16 godina u
320x200, sada sam samo prebacio u vecu rezoluciju i naravno ponovo
napisao rutinu!
pascal.1201emajsijuen,
│ Kunem se da sam pravio rutinu za crtanje zvezdica... Fejdovanja i
│ razlicite brzine sve je moje...
└───────────────────────────────────────────
Hmmm... ;) To je sve decija igra za pravljenje...
│ Poslacu ti source ali da ga ne siris dalje ako mi ne verujes...
│
│ Naravno da sam uzeo font!!! Pa i pise lepo ime fonta!!!
└───────────────────────────────────────────
Uzeo si fontove? A rece da nisi koristio one unite ? ;) Samo me zanima
kako si iskoristio fontove bez Stefanovih unita? ;) Na brzinu si napravio i
proceduru za ispis teksta na ekran ?
│ E Emaj, treba ti jos da ucis! :))
└───────────────────────────────────────────
Zato si ti tu da me naucis... ;)
│ Btw. Rutinu za crtanje zvezdica sam uradio sa jedno 16 godina u
│ 320x200, sada sam samo prebacio u vecu rezoluciju i naravno ponovo
│ napisao rutinu!
└───────────────────────────────────────────
Da, znam... :)) Dobro necu da se prepucavamo.. Recimo da ti verujem ;)
Pozdrav, Vlada...
pascal.1202kojai,
Ono sto sam rekao za 1024x768 256 da se iscrtava ekran na brzini refrash
ekrana to ja ni nisam rekao da je uradjeno pod C-ovom kapom vec u assembleru!
Inace sto se tice iscrtavanja, skrolovanja i ostalih stvarcica za to je
normalno da svaki kompajler koristi windowsove rutine... Ali kada sam ja radio
pod C-om ja sam to direktno isao preko DirectDraw rutina(koje se jaaaako tesko
koriste) i prikazivao ogromnim brzinama...
Pod C om je izuzetno tesko inicijalizovati uopste prostor za crtanje, mnogo je
tesko, dok delphi npr.(kao i basic) ima naredbu(ne znam tacno) koja to
odradjuje!
E ali kada idem preko te naredbe ja bukvalno nemam nikakvu kontrolu nad onim
sto radim... Imam handle slika, paleta i td. ali ne mogu nista direktno da
radim, znaci hocu da ocitam nesto, pa tu da ubacim nesto drugo ili da
invertujem...
To je prednost C-a, sto sve radim sam... Jeste da je zajebanije, ali kada se
jednom naprave DLL-ovi sa njima mogu da radim sta zelim i da ih uvek koristim!
Pozdrav!
Btw. VBasic 5.0 ima podrsku za DirectX 1.0... To je imao C 4.0 ili 4.2!
A to je beda...
pascal.1203epson,
Učitam deo teksta iz datoteke, i kako ja sada njega da "zapamtim
u memoriji" i koristim kada mi zatreba ? Do sada sam to radio tako
što ga smestim u privremenu datoteku, ali to nije to.
pascal.1204kojai,
>> Ucitam deo teksta iz datoteke, i kako ja sada njega da "zapamtim
>> u memoriji" i koristim kada mi zatreba ? Do sada sam to radio tako
>> sto ga smestim u privremenu datoteku, ali to nije to.
A gde ga ucitas?
Otvoris niz u memoriji koliki ti treba(preko poinera(do 600Kb)) i ispisujes ga
po zelji! :)
pascal.1205epson,
│ A gde ga ucitas?
└─────────────────────────────────────────────────
var in:text;
red:string;
begin
...
readln(in,red);
...
end.
pascal.1206milosh.zorica,
Evo jednog tutorijala za očitavanje verzije i tipa DOS-a iz Pascal-a.
U prilogu je source-tutorial za to u pascalu + asm iz pascala. Program
koristi funkciju 30h interrupt-a 21h tj. standardnog DOS interrupta.
Znam da je to trivijalnost. Ali, početnicima u asm-u i pascal-u, biće korisno.
Poz, Miloš!
ldi.paspascal.1207kojai,
>Evo jednog tutorijala za ocitavanje verzije i tipa DOS-a iz Pascal-a.
>U prilogu je source-tutorial za to u pascalu + asm iz pascala. Program
>koristi funkciju 30h interrupt-a 21h tj. standardnog DOS interrupta.
>Znam da je to trivijalnost. Ali, pocetnicima u asm-u i pascal-u, bice korisno.
U unitu Dos postoji naredbica GetVer ili nesto tako...
pascal.1208pecanac,
Kako da izvučem source iz exe-a? (tp 6.0)
Ima li neko programče da mi pomogne?
pascal.1209milosh.zorica,
Pa, za to ti je potreban dis-assembler. Pascalski nikako. Kad ga
izvučeš (sors), dobićeš asm sors, nevezano za jezik u kom je
aplikacija rađena. Najbolji dis-assembler je Sourcer. Ako ti treba,
javi imam ga.
pascal.1210ventura,
> aplikacija radena. Najbolji dis-assembler je Sourcer. Ako ti treba,
Sta rece i ostade ziv - Jeste da on izvlaci iz COM,EXE,SYS sorseve
ali kakve. Pa to niko ziv nemoze da razume sto sorser izvuce, a po
mom misljenju najbolji za citanje je Turbo Debuger, jeste da izvlaci
sors samo iz EXE fileova ali su oni donekle razumljivi, a uz to ima
i razne druge korisne opcije.
tdebuger.zippascal.1211kojai,
>> mom misljenju najbolji za citanje je Turbo Debuger, jeste da izvlaci
Definitivno...
pascal.1212kojai,
>> Kako da izvucem source iz exe-a? (tp 6.0)
>> Ima li neko programce da mi pomogne?
U principu svi programi za izdradu source-ova radi prema algoritmu koji se
moze naci u jednoj(malopoznatoj) knjizi o Assembleru koja se nalazi u paketu
knjiga o C-u... Te knjige se dobijaju pri kupovini originalnog C paketa i od
jedno 10-tak knjiga u jednoj su samo primeri(vecina u Assembleru)...
Program naime radi iz 3 dela... Prvi vrsi registraciju promena registara.
Drugi prati ponavljanja, a treci iz te virtualne baze koje pravi na disku
prema drugom delu pravi program...
Pozdrav!
pascal.1213milosh.zorica,
To stoji da je Turbo Debugger najbolji i da sorser izvlači
nerazumljiv sors.Sorser mi je prvi pao na pamet. Svi de-kompajleri,
izvlače nerazumljiv sors. Jedino TDebugger, normalan i čitak...
pascal.1214jujo,
# To stoji da je Turbo Debugger najbolji i da sorser izvlaci
# nerazumljiv sors.Sorser mi je prvi pao na pamet. Svi de-kompajleri,
# izvlace nerazumljiv sors. Jedino TDebugger, normalan i citak...
Ma daj... sourcer ti jos i ozkomentarise sors. Sve DOS i BIOS pozive
za koje zna ti ubaci kao komentar na odgovarajucim mestima.
Kad smo vec kod "reverzibilnog inzenjeringa" postoji i program exe2c,
koji konvertuje exe u C (koji je ZAISTA NECITAK).
yooyo:
pascal.1215pecanac,
> mom misljenju najbolji za citanje je Turbo Debuger, jeste da izvlaci
> sors samo iz EXE fileova ali su oni donekle razumljivi, a uz to ima
Vrlo mi je hitno:
...ako još neko ima Turbo Debuger neka ga okači ponovo u conf. jer je
ova okačena arhiva (?) loša.
Može i na mail, samo što pre. Hvala.
pascal.1216milosh.zorica,
> Kad smo vec kod "reverzibilnog inzenjeringa" postoji i program exe2c,
> koji konvertuje exe u C (koji je ZAISTA NECITAK).
Taj imam i potpuno je beskoristan. Sourcer i Turbo Debugger koristim za rev.
inzenjering.
pascal.1217sjocic,
-> Ma daj... sourcer ti jos i ozkomentarise sors. Sve DOS i BIOS pozive
-> za koje zna ti ubaci kao komentar na odgovarajucim mestima.
Moze li se dobiti taj 'sourcer' ?
pascal.1218ljiljam,
Da li bi mi neko mogao okaciti turbo.hlp na mail ver. 6.00?
pascal.1219milosh.zorica,
Evo, jedan pascal kompajler. Karakteristike sledeće:
Podržava protected mode, pomoću wdos/x, dos4gw ili pmode/w
extendera.
Vesa 2.0 grafiku.
Rad sa mišem, bez ext korisničkih unit-a.
Uz to sve je i Borland Pascal kompatibilac. Ovo je free verzija tj.
bez IDE-a, Debugger-a i help-a. Inače, ime mu je TMT Pascal 2.10.
Ko ima full verziju, ne bi se ljutio da mi se javi, radi kopiranja
ovog coolest compiler-a. Adresa odakle sam ga uzeo je www.tmt.com.
Dl obavezan, nećete se pokajati tj. oduševićete se.
pascal.1220milosh.zorica,
Sorry, pukla veza, ponovo.
tmtp210d.exepascal.1221jujo,
# -> Ma daj... sourcer ti jos i ozkomentarise sors. Sve DOS i BIOS pozive
# -> za koje zna ti ubaci kao komentar na odgovarajucim mestima.
#
# Moze li se dobiti taj 'sourcer' ?
Evo ide...
yooyo:
sourcer.zippascal.1222pecanac,
> ...ako još neko ima Turbo Debuger neka ga okači ponovo u conf. jer je
Niko nema Turbo Debuger?
pascal.1223milosh.zorica,
Fajl uz poruku 1220 je .exe. Sorry.
pascal.1224ljiljam,
Pravim jedan mali program koji je zakacen uz poruku.
Problem je u tome sto ne znam kako da se sifra unosi u
ono predvidjeno polje a ne ispod.
Unapred hvala,
Ljilja
pass.paspascal.1225nenadt,
evo promenjenog programceta
passnew.paspascal.1226pecanac,
Potrebna mi je procedura/funkcija koja na ulazu ima početni i krajnji
datum (u obliku ddmmggggssmm, (obavezno 4 cifre za godinu) bilo da se
uzima sistemski datum i vreme, ili se ukucava sa terminala) a vraća
_broj_sati_ koji je protekao u medjuvremenu.
Može ovde ili na mail, svejedno. Hvala!!
pascal.1227jjerry,
>>koristi funkciju 30h interrupt-a 21h tj. standardnog DOS
>>interrupta. Znam da je to trivijalnost. Ali, pocetnicima u asm-u i
>>pascal-u, bice korisno.
Oprosti ,ali TI znash da je to trivijalnost ??? Koliko se ja secam
poslednji put kad smo se chuli nizi znao zashto sluzhe instrukcije
tipa PUSH/POP ili chak MOV (??) a sad si odjednom struchnjak pa
znash i DOS-ove f-je. I josh pishesh svoj e-mail..
Mislim stvarno...i to ti josh nije prvi put da uzimash tudj rad i
da ga predstavljash kao svoj.
pascal.1228milosh.zorica,
Ovaj rad jeste tričarija. Rad jeste moj 100%! A, oko push* pop*
funkcija i sl. sam naučio po nešto. Ovo jeste moj rad. Jedini, koji
sam tuđi uzeo, bio je onaj bump. Sad sam ga skroz prepravio i
ispravio neke bugove, na kraju sam dodao i 10x 2 autor.
Funkcija jeste, više no prosta. Ali... neću više, obećavam!
pascal.1229jjerry,
To nije ni zasluzhilo da se zove radom...A shto se onog bampa tiche
bolje cuti i pokri se ushima jer si ispao lamerchina kakva se skoro
nije videla na ovim prostorima. Bolje kreni is pochetka,kako bi ti
i pristajalo,nego da se folirash ovde kako si fenomenalan programer
a ustvari nemash pojma.Savetujem ti da se primirish malo i da ,za
pochetak,nabacish zhelju za uchenjem a ne zhelju da u nechijim
ochima budesh veliki.
Lichish na onog dechka koji je 2 puta vikao kako dolazi vuk,2 puta
zajebao ljude,dok je treci put bio pojeden od strane istog jer mu
niko nije verovaro.Ja ti vishe ne verujem...
pascal.1230shoom,
Da li nekog zanima source legendarne igre ? F1 za help. Davno bese ... ne
secam se ni kada je tacno nastalo ...
tetrix.arjpascal.1231milosh.zorica,
Kako komandu exec da nateram, da mi ne zahteva putanju do fajla?
Npr. želim da pokrenem arj, DN, editor i sl. Kada mu za program
unesem samo dir, arj, edit ili slično, prijavi mi da nemože da nađe
fajl ili direktorijum. U c-u to fino radi system().
pascal.1232stameni,
>> Kako komandu exec da nateram, da mi ne zahteva putanju do fajla?
Pogledaj execdemo.pas iz ..\tp\demos. Ključna stvar je u:
...
SwapVectors;
exec(GetEnv('COMSPEC'), '/C ' + Command);
SwapVectors;
...
Ne zaboravi da ostaviš prostor na heapu.
pascal.1233epson,
Kako registrovati da com port više ne dobija podatke ? Brojanjem
chr(0) ? Kako sprečiti com port da dalje pošalje određen podatak ?
pascal.1234milosavljevic,
Hi!
Skinuo sam iz sezamovog dir-a P-ROBOTS, iliti borbe robota-programa. Da li
postoji dobra dusa koja se zezala sa ovim, i koja je voljna da mi objasni
"funkcije i procedure" koje se koriste u source-ovima istih.
Unapred MNOGO hvala!
pascal.1235andrijak,
Da li zna neko kako da neku sliku(recimo *.bmp) pozovem iz paskala?
Koja komanda i njena sintaksa?
pascal.1236jjerry,
>>Da li zna neko kako da neku sliku(recimo *.bmp) pozovem iz
paskala?
>>Koja komanda i njena sintaksa?
:)) Pa netje to itji tek tako ;) Ono,mozhesh da probash sa Exec
procedurom pa da pozovesh neki viewer ali je to glupo reshenje.
Nadji lepo opis formata koji ti treba i napravi svoj viewer za taj
format u Paskalu,za PCX npr.,to je bar lako..
pascal.1237emajsijuen,
> Nadji lepo opis formata koji ti treba i napravi svoj viewer za taj
> format u Paskalu,za PCX npr.,to je bar lako..
To je lako, a ? Aj' mi onda napravi (onako, na brzaka) jedan viewer za
recimo *.PCX fajlove (kad si ih vec pomenuo). Ako ti treba opis formata,
javni mi pa da ga iskopam negde sa NET-a... ;)
pascal.1238ventura,
> To je lako, a ? Aj' mi onda napravi (onako, na brzaka) jedan viewer za
> recimo *.PCX fajlove (kad si ih vec pomenuo). Ako ti treba opis formata,
> javni mi pa da ga iskopam negde sa NET-a... ;)
PCX skoro pa da nema nikakav format, uzmi lepo ucitaj file i napravi
petlju koja proverava koja je vrednost dati byte, i shodno tome ispises
boju... malo matematike al je barem lako...
VeNTuRa
pascal.1239jjerry,
>> boju... malo matematike al je barem lako...
Ma da,a i matematike skoro da nema,osim operacija +,* itd. :)
Uostalom,milion programa na Netu koji se bave recimo texture
mappingom u sebi imaju kod za chitanje .PCX. Trivijalno bre..
pascal.1240ventura,
> Ma da,a i matematike skoro da nema,osim operacija +,* itd. :)
> Uostalom,milion programa na Netu koji se bave recimo texture
> mappingom u sebi imaju kod za chitanje .PCX. Trivijalno bre..
Pa jebiga... Nego ko li je trazio, ovaj sors. Sad se setih.
Ja imam bbs posvecen upravo ovim stvarima ;) koji za divno
cudo ima gomilu sorseva u pascalu... loguj se od 22-06 pa skini...
Nickeldon BBS (011) 3942592
pascal.1241goxi,
Hi!
Kako resiti sledeci problem...javlja mi : "Stack overflow error" ! Probao sam
sa povecanjem Stack Size-a (Options/memory size), ali to ne pomaze.
Goran.,
pascal.1242jjerry,
>>Kako resiti sledeci problem...javlja mi : "Stack overflow error" !
>>Probao sam sa povecanjem Stack Size-a (Options/memory size), ali
to
>>ne pomaze.
Ponekad mozhe da pomogne da ruchno (pomocu onih direktiva koje se
stavljaju u { } ) povetjash stek. Inache,mislim da ti se to javlja
neka rekurzija koja izgleda nije najpametnije osmishljena,pa bi
mogao da pregledash rek. procedure ako ih imash..
Poz,J.J..
pascal.1243gkosta,
Evo problema, da li mi neko moze pomoci:
type
covek=record
ime:string[20];
prezime:string[20];
end;
slog:record
ljudi:array [1..50] of covek;
end;
Potrebno mi je da ovaj niz bude neogranicen (znaci ljudi>=1).
Sta da radim?
Pozdrav
pascal.1244jjerry,
>>type
>> covek=record
>> ime:string[20];
>> prezime:string[20];
>> end;
>> slog:record
>> ljudi:array [1..50] of covek;
>> end;
Prvo,ne bi bilo loshe da pishesh malo sa
uvlachenjima/izvlachenjima,tj. da text ne bude poravnat kao ovde.
Drugo,malo mi nisu ovi end-ovi jasni. Ovaj prvi bi trebalo da bude
kraj definisanja tipa chovek,ali za shta sluzhi ovaj drugi ? I ako
definishesh tip "slog" i tip "ljudi" zashto su tu onda dve tachke
umesto znaka jednako. Mnogo konfuzno,u najmanju ruku.
Inache,tvoj problem,ako pretpostavimo da je sve ostalo sintaxno OK
:) bi se mogao reshiti tako shto definishesh tip ljudi kao pointer
na tip "covek",isto kao shto se radi u C-u. Ili da napravish
neku dinamichku strukturu,npr. listu u koju cesh da stavljash
podatke. Inache,bilo kako bilo,niz ti ne mozhe bidi ni blizu
neogranichenom jer postoji 64K ogranichenje za Pascalov DATA
segment..djubre.
Poz,J.J..
pascal.1245kojai,
Sta da uradim da bih se nakacio na interapt od coma 4, tacnije da se neka
moja procedura poziva na svaku promenu na comu...
Sa Setintvec se 'kao' zakacim medjutim da bi to radilo kako sam ja zamislio
treba da popunim one nazovimo tablice kod portova, koje su objasnjene u
interapt listama... Ali ono je nesto oko 20-30 komada ako se ne varam, tako da
je provaljivanje duzi posao, ako je nekao uradio neka mi baci na mail...
Isa
pascal.1246vule.,
Koje su komande za obradu gresaka ?
pascal.1247gkosta,
Molim nekoga da mi odgovori:
Zasto mi ne funkcionise u programu klasicno otvaranje fajla sa
Assign - Reset?
Kada posle Assign stavim Rewrite fajl se otvara, medjutim ne odgovara mi
ponistavanje (presnimavanje) fajla.
E, da... U prvom slucaju mi ispisuje gresku i prijavljuje da fajl nije
nadjen/otvoren!
Saljem deo programa.
Hvala vam.
proba.paspascal.1248kojai,
>> E, da... U prvom slucaju mi ispisuje gresku i prijavljuje da fajl nije
>> nadjen/otvoren!
Normalno kad ne postoji fajl...
Uradi sledece:
f-file of poset
a-array[1..n] of poset
Assign(f, 'mika.txt');
Rewrite(f);
for i:=1 to n do begin
Write(f, a[i]);
end;
Close(f):
Kada ucitavas:
Assign(f, 'mika.txt');
Reset(f);
for i:=1 to n do begin
Read(f, a[i]);
end;
Close(f);
Ili ako oces samo jedan element da ocitas npr. 4-ti od 6 elemenata, ides:
Seek(f, 4);
Write(f, e); e-poset
Znaci kada zadajes sta hoces da ocita ne stavljas mu npr. seek(f, pos) vec
seek(f, n) gde je: pos-pozicija u bajtovima, n-redni broj reda koji se ocitava.
Isa
pascal.1249qpele,
> Kada ucitavas:
>
> Assign(f, 'mika.txt');
> Reset(f);
> for i:=1 to n do begin
> Read(f, a[i]);
> end;
> Close(f);
>
Opet ce pucati ako nema fajla "mika.txt".
Uradi sledece
{$I-} (* ukida kontrolu U/I*)
Assign(f, 'mika.txt');
Reset(f);
{$I+} (* uvodi kontrolu U/I inace default stanje *)
if (IOResult=0) then (* Ako datoteka postoji IResult je 0
u suprotnom je razlicit od 0 *)
begin
for i:=1 to n do begin
Read(f, a[i]);
end
else
rewrite(f);
end;
Close(f);
pascal.1250nbjvsb,
>> n-redni broj reda koji se ocitava.
Redni broj podatka, redovi u binarnim datotekama ne postoje :-)
Nadovezivanje:
Ukoliko radiš sa tekstualnom datotekom (f: text), onda ćeš imati malih
komplikacija, jer se Seek(f,pos); koristi samo u binarnim datotekama. Koja
je razlika između text i file of string? Razlika je u tome što tekstualne
datoteke rade sa redovima koji se završavaju sa Eoln (to mu dođe kombinacija
karaktera #13 i #10 - #13 označava prelazak na istu poziciju u sledećem redu,
a karakter #10 vraća kursor na početak reda), a file of string sa
podkanapisa, ondae ta vičina
6 bajtova). Kada imaš podatke određene veličine lako je skakati sa jednog
na drugi, dok je kod različitih duđina redova to komplikovanije raditi.
Kod tekstualnih datoteka koriste se Read/ReadLn i Write/WriteLn procedure. Da
bi mogao da uradiš kakav-takav Seek (koji će sa velikim datotekama raditi
sporo), možeš da iskoristiš ovakvu proceduru:
procedure SeekText(f: text; Pos: word);
var
i: word;
begin
Reset(f);
for i:=1 to Pos do
ReadLn(f)
end;
Kolko se sećam, var za datoteke nije neophodan, al' možda i grešim :-)
Elem, u gornjem primeru (kao i inače), Seek(f,0); postavlja datotečki
pokazivač na prvi red, itd...
Preterano sam se raspisao, odo' da se odmorim :-)
pascal.1251gkosta,
Hvala vam svima.
Tek sam sada procitao poruke i cini mi se da je ovo sa IOResult-om najbolje
resenje.
Javicu sta sam uradio.
Hvala jos jednom!
:)
pascal.1252kojai,
>> Redni broj podatka, redovi u binarnim datotekama ne postoje :-)
Nisam znao kako da se izrazim...
Da pojasnim...
Ako je fajl otvoren kao file of slog, gde je slog = Record od necega i ako
fajl sadrzi recimo 10 elemenata, 7-om elementu se pristupa sa Seek(f, 7), a ne
Seek(f, pos), gde je pos pozicija...
Ako je fajl otvoren kao text onda seek ne radi... A ako je otvoren sa file of
byte, char, word..., onda ide obicno seek(f, pos)...
Ako je otvoren sa file of string[20] onda je moguce uraditi seek(f, 5) npr. da
bi se dobio 5 string...
>> {$I-} (* ukida kontrolu U/I*)
Pa jeste... Ovo izgleda kao pametnije resenje... :)
Isa
pascal.1253voyager,
Pitanje:
Imam putanju : '*:\direktorijum\..'
* - drajv
Kako da na osnovu ove putanje saznam koliko je mesta ostalo na
drajvu?
VoYaGeR
pascal.1254kojai,
>> Kako da na osnovu ove putanje saznam koliko je mesta ostalo na
>> drajvu?
Evo ti nesto primitivno... Recimo da je s: string...
Uses Dos;
Var
s: String;
a: Byte;
begin
s:='C:\UTIL';
If Copy(s,1,1)='A' then a:=1; {Ili uradis sa case CH of}
If Copy(s,1,1)='B' then a:=2; {Gde je CH: Char, Copy(S, 1, 1)}
If Copy(s,1,1)='C' then a:=3; {Ali za ovako malo nema potrebe}
If Copy(s,1,1)='D' then a:=4;
If Copy(s,1,1)='E' then a:=5;
{...itd.}
WriteLn('Na disku je ostalo ', DiskFree(a), ' bajtova.');
end.
:))
Ako ti treba za nesto ozbiljnije - nemoj ovako...
Isa
pascal.1255voyager,
>> Ako ti treba za nesto ozbiljnije - nemoj ovako...
Ovo sam znao i sam da uradim ali posto mi treba za nesto ozbiljnije
bio bi zahvalan ako neko zna malo prostiji nacin :) Ali u svakom
slucaju hvala.
VoYaGeR
pascal.1256kojai,
>> Ovo sam znao i sam da uradim ali posto mi treba za nesto ozbiljnije
>> bio bi zahvalan ako neko zna malo prostiji nacin :) Ali u svakom
Pa da li postoji prostiji nacin od citanja prvog karaktera stringa?
Ja nisam rekao da je ovo slozeno, nego da nije previse oziljno... Ali
definitivno je najlakse...
Isa
pascal.1257jjerry,
Zadaci sa shkolskog takmichenja iz informatike u MG-u..
1.zadatak :
Dat je niz od N brojeva.Naci najduzi segment koji je palindrom.
Segment se sastoji od uzastopnih elemenata polaznog niza. Segment
je palindrom akko se isto cita sleva nadesno i zdesna nalevo.
Ulazni podaci se nalaze u fajlu :
* U prvom redu broj N (N<=2000)
* U sledecih N redova po jedan ceo pozitivan broj,manji od
2000000000.
Primer ulaznog fajla :
6
1
2
4
3
5
3
Na ekranu treba ispisati : 3 4
2.zadatak :
Data je matrica se M vrsta i 2^N kolona.Sve vrste osim prve mogu se
ciklichno pomerati udesno (svaki element prelazi u susednu desnu
kolonu,osim poslednjeg,koji prelazi u prvu kolonu). Za koliko mesta
udesno treba pomeriti svaku vrstu,da bi nakon pomeranja svaka
kolona imala isti zbir.
Ulazni podaci su u fajlu ZAD2.DAT :
* U prvom redu brojevi M i N ; M,N <= 10
* U sledecih M redova po 2^N integera. (-MAXINT-1..MAXINT)
Treba ispisati M-1 brojeva,koji oznachavaju pomeraje
druge,trece...M-te vrste.
Na primer,za fajl :
3 2
1 2 3 4
5 6 7 8
1 3 1 3
na ekranu treba ispisati : 2 1 ili 2 3.Ako nema reshenja,treba
ispisati "nema reshenja".
----------------------------
To je to.Btw. kome uspe da napravi takav algoritam koji ce na
prosechnom P5 da radi ispod 5 sekundi za RANDOM matricu 10x1024
skidam kapu i dajem mu svoje mesto u MG a ja idem u djubretarsku :)
Poz,JJ..
pascal.1258qpele,
> Ja nisam rekao da je ovo slozeno, nego da nije previse oziljno... Ali
> definitivno je najlakse...
A i radi posao, sto je najbitnije.
pascal.1259aandric,
Sto se tice takmicenja iz informatike.
Zadaci u principu nebi bili mnogo teski da stoka koja ih je
sastavljala nije po svom obicaju stavljala glupe fazone tipa
:"da ti program radi za 3 sekunde sa brojevima vecim od
longint..."
Inace ja sam drugi uradio backtracking-om za sve brojeve ali
sam zbog vremenskih ogranicenja dobio samo 15 poena (shmrc).
Sada bih svoj algoritam mogao da unapredim za sve test primere
osim onog 10*1024 sa resenjem.Pokazao nam je Dragan
Urosevic,koji mi inace predaje C, kako se radi taj
zadatak.Covece nista nisam razumeo: neki ciklicni krugovi,
pizde materine...
BTW, jel zna neko ko ce da ide dalje?Pitao sam Vugdeliju i
on mi je u petak rekao da postoje dve mogucnosti u zavisnosti
od broja raspolozivih racunara: ili ce proci dalje prvih 30
ili svi koji imaju vise od nula bodova.
pascal.1260ventura,
> Zadaci u principu nebi bili mnogo teski da stoka koja ih je
> sastavljala nije po svom obicaju stavljala glupe fazone tipa
> :"da ti program radi za 3 sekunde sa brojevima vecim od
> longint..."
Nakon listanja raznih enciklopedija, sam skontao da zadatci nisu
nesto preterano teski, ali oni debilisto ih sastavljaju ti napisu,
isracunaj parafenamonalnodislekcionu matricuopsedjuktivnog broja...
jebiga nismo svi iz MG :)
pascal.1261kojai,
Cemu ovo sluzi?? Uz to i ne radi... :))
pascal.1262emajsijuen,
>> s:='C:\UTIL';
>> If Copy(s,1,1)='A' then a:=1; {Ili uradis sa case CH of}
>> If Copy(s,1,1)='B' then a:=2; {Gde je CH: Char, Copy(S, 1, 1)}
>> If Copy(s,1,1)='C' then a:=3; {Ali za ovako malo nema potrebe}
A:=Ord(S[1])-64;
pascal.1263kojai,
>> A:=Ord(S[1])-64;
Ne moze Ord od stringa... Ali lepa zamisao... :)
Isa
pascal.1264nbjvsb,
>> >> A:=Ord(S[1])-64;
>> ^^^^
>> Ne moze Ord od stringa... Ali lepa zamisao... :)
Pogledaj malo bolje ovo gore. Ne piše samo S, već S[1]. S[poz] vraća
_karakter_ (znači char) koji se nalazi na poziciji poz u stringu, pri
čemu S[0] predstavlja karakter dužine - Ord(S[0]) će ti reći koliko je
string dugačak. Isto kao i Length(S).
pascal.1265kojai,
Da... Moja greska... :)
pascal.1266jjerry,
>> Inace ja sam drugi uradio backtracking-om za sve brojeve ali
>>sam zbog vremenskih ogranicenja dobio samo 15 poena (shmrc).
Ma znam,ja sam ga isto uradio backtracking-om,al' sam dobio samo 6
poena. Fazon : prolaskom sa Trace Into se ispisuju tachna reshenja,
i u strukturu se ista upisuju savrsheno. Sa Ctrl-F9 se ispisuju 0 ?!
Reche mi Vugdelija da je to,kao,99% programerska greshka i da
verovatno program dira neku memoriju koju ne bi smeo,kao npr. pichi
van matrice ili slichno,ali takvih stvari kod mene nema..rebus..
>>osim onog 10*1024 sa resenjem.Pokazao nam je Dragan
>>Urosevic,koji mi inace predaje C, kako se radi taj
Blago tebi,blago meni...Meni inache sad predaje Jasminka ;)))) tako
da si mi ulepshao dan saznanjem da mi ona u trecoj nece predavati ;)
>>od broja raspolozivih racunara: ili ce proci dalje prvih 30
>>ili svi koji imaju vise od nula bodova.
Napisali su u shkoli...Praktichno ,30 onih koji odu na gradsko
odlaze i na republichko,jer 30 i pushtaju. Razlog : proferore mrzi
da sede 8 sati..Barabe..
Pozdrav,JJ..
pascal.1267jjerry,
>> Nakon listanja raznih enciklopedija, sam skontao da zadatci nisu
Shto si listao enciklopedije ? Btw. ipak mislim da su vremenska
ogranichenja pozitivna stvar. Prvo,onaj ko pregleda nije blesav da
sedi 10h za kompjuterom chekajuci reshenje,a drugo,da nema
ogranichenja,genijalan algoritam i najprizemniji peshachki
algoritam ce biti isto ocenjeni,zar ne ?
Pozdrav,JJ..
pascal.1268nbjvsb,
Izvinjavam se što tek sad odgovaram, ali grešom sam sve poruke u Pascalu
označio kao pročitane :-(
>> Ako je fajl otvoren kao file of slog, gde je slog = Record od necega i ako
>> fajl sadrzi recimo 10 elemenata, 7-om elementu se pristupa sa Seek(f, 7),
>> a ne Seek(f, pos), gde je pos pozicija...
Koja je razlika između Seek(f,7) i Seek(f,pos), gde je pos pozicija, majke
ti? Naravno, pod pos mislim na redni broj podatka, a ne na bajt u datoteci.
BTW. 7-om elementu pristupa se sa Seek(f,6). Kao što rekoh, Seek(f,0) vraća
prvi element u datoteci, itd.
pascal.1269kojai,
>> Koja je razlika izmedu Seek(f,7) i Seek(f,pos), gde je pos pozicija, majke
>> ti? Naravno, pod pos mislim na redni broj podatka, a ne na bajt u datoteci.
A sta sam ja rekao?!
Nema razlike izmedju seek(f,7) i seek(f,pos) ali ja sam pricao o dve razlicite
stvari... Prvo o fajlu otvorenom sa file of rec, a potom o fajlu otvorenom sa
file of byte... Samo sam uporedio...
Mozda sam pogresio u kuckanju... :)
Isa
pascal.1270nbjvsb,
>> A sta sam ja rekao?!
Pa rekao si da se sa file of slog elemntu pristupa sa Seek(f,7) a ne sa
Seek(f,pos). Cijenim da se nismo razumeli. Mislim da si pod pos podrazumevao
poziciju u bajtovima, a ja poziciju elementa, iliti sloga, u fajlu :-)
pascal.1271jjerry,
Otjete zadatke sa gradskog u MG ? Btw. da li neko na sluchajno,da
li su zadaci za sve shkole isti,ili kao na matematici ,ono,mi smo A
kategorija,ostali su B itd. ?
Poz,JJ..
pascal.1272nbjvsb,
>> Otjete zadatke sa gradskog u MG ? Btw. da li neko na sluchajno,da
>> li su zadaci za sve shkole isti,ili kao na matematici ,ono,mi smo A
>> kategorija,ostali su B itd. ?
U informatici, gradsko je uvek bilo isto za sve. Jedino je školsko bilo
deljeno na jače i slabije. :-)
Inače, šalji zadatke. Ko ih uopšte sada pravi?
pascal.1275sqweaky,
Senzacionalno! :)
********************************
** Sors Dos Navigatora v1.51! **
********************************
Skinite obavezno. :)
Predlazem javno unapredjivanje DN-a. Recite sta bi trebalo
dodati, promeniti. Meni je ovo prvo palo na pamet:
1) Podrska za LFN
2) Izbaciti registraciju O:)
3) Windows verzija
4) Meniji na srpskom
5) Vise asemblera, manje paskala :)
6) ...
p.s.
Za kompajliranje su vam potrebni Tasm, Tlink i Borland Paskal
7.0.
dn151src.zippascal.1276kojai,
>> Senzacionalno! :)
Bilo bi da si poslao pre 5 godina... Kome danas treba bilo koji dos source?
Neisplativo, nazalost... :(
Isa
pascal.1277pavijan,
> Senzacionalno! :)
>
> ********************************
> ** Sors Dos Navigatora v1.51! **
> ********************************
> Predlazem javno unapredjivanje DN-a. Recite sta bi trebalo
> dodati, promeniti. Meni je ovo prvo palo na pamet:
>
> 1) Podrska za LFN
> 2) Izbaciti registraciju O:)
> 3) Windows verzija
> 4) Meniji na srpskom
> 5) Vise asemblera, manje paskala :)
> 6) ...
______________________________
Predlozi:
1) Pozdrska za LNF
2) Brisanje u Recycle Bin
3) Unaprediti Terminal (recimo sa Mini Host-om)
4) Unaprediti CD Player za MP3, MOD i sl.
5) Vise assemblera svakako.
6) Unaprediti System Information.
7) Pojacati Help.
8) Ostati u okviru 1.44 Mb instalacija.
9) Izbor za vise jezika.
10) Meni vise netreba :)))))))))))
Ako se ovo postigne Windows verzija uopste nije neophodna. Registraciju
zadrzati.
Pozdrav od pavijana. :))))))))
pascal.1278pavijan,
> Bilo bi da si poslao pre 5 godina... Kome danas treba bilo koji dos source?
______________________________
Ovaaj.. grdno ovaaj.. grdno gresis sinak.. :)))))
Bez uvrede ali DN se danas trosi nesmanjenom zestinom i stoji po upotrebi rame
uz rame sa Windovs Commander-om i Windows Explorerom a kad bi se unapredio
garant bi potisnuo rivale. Posto je izasao source predpostavljam da ce sledeca
verzija Windows Commanreda (koja inace dosta kasni) biti dogradjena tako da ce
izgledati kao Windows verzija DN-a. Win Navigator je lep pokusaj ali je jos
nedoradjen i vise podseca na NC nego na DN.
Pozdrav od pavijana dosofilima - vrsti koja izumire. :)))))))
pascal.1280kojai,
>> Pozdrav od pavijana dosofilima - vrsti koja izumire. :)))))))
Upravo to... :(
Isa
pascal.1281stemil,
> Bez uvrede ali DN se danas trosi nesmanjenom zestinom i stoji po upotrebi
> rame uz rame sa Windovs Commander-om i Windows Explorerom a kad bi se
> unapredio
The Best Shell In The World !
Still...Forever !!!
pascal.1282stameni,
Uz poruku ide, kazu, najbolji generator slucajnih brojeva,
koga je neko vec ranije kacio ovde. Algoritam je raden u
Fortranu, pa je posle prebacen u C, i u takvom obliku ga ja
ponavljam. Potreban je program u Pascalu, pa ako je neko u
prilici da prebaci, ne bilo mu tesko...
P. S. Radim bez tvrdog diska, tako da nema sanse da
pokrenem kompajler, pa zato molim.
best_rnd.cpascal.1283kojai,
Imam jedno pitanje...
Sa jednog kompa saljem podatke preko porta $2F8 (COM 2), a na drugom ocitavam
taj port... Zanima me kako da saopstim da sam procitao podatak i da cekam do
sledeceg. Pokusao sam sa Delay-om(pauzom) ali to se tako ne radi posto ponekad
se preskoci i neprocitani... Pokusao sam knjisku varijantu sa SetIntVec i
GetIntVec ali to mi ne radi. Pokusao sam sa interaptom 14h, ah=1 recive from
com port, ali to mi presporo ide(odnosno ne ide)...
Kako ovo da sredim, odnosno kako da ocitavam lepo sa COM-a 2?
pascal.1284jjerry,
Da li neko zna tachnu formulu za prevodjenje boje iz hue,saturation,
luminocity (intensity,kod nekih autora) vrednosti u RGB vrednosti.
Analizom vrednosti u chuvenom 'Custom color' prozoru windowsa sam
napravio proceduru koja daje tachan prevod (jedini uochljivi bag je
shto ponekad vrednosti zbog round-ovanja budu 1 manje/vece od
tachnih) ali sam u nekim drugim kodovima video drugachiju formulu :
R = [ 64*I/2 * (1 + S * sin(H - 2*Pi/3))]
G = [ 64*I/2 * (1 + S * sin(H))]
B = [ 64*I/2 * (1 + S * sin(H + 2*Pi/3))]
R,G,B,H,S,I <=> Red,Green,Blue,Hue,Saturation,Intesity (Luminocity)
[x] = trunc(x) itd. ,
koja ne daje tachne rezultate za Windows ;) 'Custom color' prozor.
Poz,JJ..
pascal.1285kiklop,
> Da li neko zna tachnu formulu za prevodjenje boje iz hue,saturation,
> luminocity (intensity,kod nekih autora) vrednosti u RGB vrednosti.
Pa evo ti ceo članak iz MS-ove baze znanja koji se bavi pitanjem:
PSS ID Number: Q29240
Article last modified on 11-02-1995
PSS database name: WIN32SDK
3.00 3.10 4.00 | 3.50 3.51
WINDOWS | WINDOWS NT
-------------------------------------------------------------------------
The information in this article applies to:
- Microsoft Windows Software Development Kit (SDK) for Windows
versions 3.1 and 3.0
- Microsoft Win32 Application Programming Interface (API) included with:
- Microsoft Windows NT versions 3.5 and 3.51
- Microsoft Windows 95 version 4.0
-------------------------------------------------------------------------
SUMMARY
=======
The code fragment below converts colors between RGB (Red, Green,
Blue) and HLS/HBS (Hue, Lightness, Saturation/Hue, Brightness,
Saturation).
MORE INFORMATION
================
/* Color Conversion Routines --
RGBtoHLS() takes a DWORD RGB value, translates it to HLS, and
stores the results in the global vars H, L, and S. HLStoRGB takes the
current values of H, L, and S and returns the equivalent value in an
RGB DWORD. The vars H, L, and S are only written to by:
1. RGBtoHLS (initialization)
2. The scroll bar handlers
A point of reference for the algorithms is Foley and Van Dam,
"Fundamentals of Interactive Computer Graphics," Pages 618-19. Their
algorithm is in floating point. CHART implements a less general
(hardwired ranges) integral algorithm.
There are potential round-off errors throughout this sample.
((0.5 + x)/y) without floating point is phrased ((x + (y/2))/y),
yielding a very small round-off error. This makes many of the
following divisions look strange.
*/
#define HLSMAX RANGE /* H,L, and S vary over 0-HLSMAX */
#define RGBMAX 255 /* R,G, and B vary over 0-RGBMAX */
/* HLSMAX BEST IF DIVISIBLE BY 6 */
/* RGBMAX, HLSMAX must each fit in a byte. */
/* Hue is undefined if Saturation is 0 (grey-scale) */
/* This value determines where the Hue scrollbar is */
/* initially set for achromatic colors */
#define UNDEFINED (HLSMAX*2/3)
void RGBtoHLS(lRGBColor)
DWORD lRGBColor;
{
WORD R,G,B; /* input RGB values */
BYTE cMax,cMin; /* max and min RGB values */
WORD Rdelta,Gdelta,Bdelta; /* intermediate value: % of spread from max
*/
/* get R, G, and B out of DWORD */
R = GetRValue(lRGBColor);
G = GetGValue(lRGBColor);
B = GetBValue(lRGBColor);
/* calculate lightness */
cMax = max( max(R,G), B);
cMin = min( min(R,G), B);
L = ( ((cMax+cMin)*HLSMAX) + RGBMAX )/(2*RGBMAX);
if (cMax == cMin) { /* r=g=b --> achromatic case */
S = 0; /* saturation */
H = UNDEFINED; /* hue */
}
else { /* chromatic case */
/* saturation */
if (L <= (HLSMAX/2))
S = ( ((cMax-cMin)*HLSMAX) + ((cMax+cMin)/2) ) / (cMax+cMin);
else
S = ( ((cMax-cMin)*HLSMAX) + ((2*RGBMAX-cMax-cMin)/2) )
/ (2*RGBMAX-cMax-cMin);
/* hue */
Rdelta = ( ((cMax-R)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
Gdelta = ( ((cMax-G)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
Bdelta = ( ((cMax-B)*(HLSMAX/6)) + ((cMax-cMin)/2) ) / (cMax-cMin);
if (R == cMax)
H = Bdelta - Gdelta;
else if (G == cMax)
H = (HLSMAX/3) + Rdelta - Bdelta;
else /* B == cMax */
H = ((2*HLSMAX)/3) + Gdelta - Rdelta;
if (H < 0)
H += HLSMAX;
if (H > HLSMAX)
H -= HLSMAX;
}
}
/* utility routine for HLStoRGB */
WORD HueToRGB(n1,n2,hue)
WORD n1;
WORD n2;
WORD hue;
{
/* range check: note values passed add/subtract thirds of range */
if (hue < 0)
hue += HLSMAX;
if (hue > HLSMAX)
hue -= HLSMAX;
/* return r,g, or b value from this tridrant */
if (hue < (HLSMAX/6))
return ( n1 + (((n2-n1)*hue+(HLSMAX/12))/(HLSMAX/6)) );
if (hue < (HLSMAX/2))
return ( n2 );
if (hue < ((HLSMAX*2)/3))
return ( n1 + (((n2-n1)*(((HLSMAX*2)/3)-hue)+(HLSMAX/12))/(HLSMAX/6))
);
else
return ( n1 );
}
DWORD HLStoRGB(hue,lum,sat)
WORD hue;
WORD lum;
WORD sat;
{
WORD R,G,B; /* RGB component values */
WORD Magic1,Magic2; /* calculated magic numbers (really!) */
if (sat == 0) { /* achromatic case */
R=G=B=(lum*RGBMAX)/HLSMAX;
if (hue != UNDEFINED) {
/* ERROR */
}
}
else { /* chromatic case */
/* set up magic numbers */
if (lum <= (HLSMAX/2))
Magic2 = (lum*(HLSMAX + sat) + (HLSMAX/2))/HLSMAX;
else
Magic2 = lum + sat - ((lum*sat) + (HLSMAX/2))/HLSMAX;
Magic1 = 2*lum-Magic2;
/* get RGB, change units from HLSMAX to RGBMAX */
R = (HueToRGB(Magic1,Magic2,hue+(HLSMAX/3))*RGBMAX +
(HLSMAX/2))/HLSMAX;
G = (HueToRGB(Magic1,Magic2,hue)*RGBMAX + (HLSMAX/2)) / HLSMAX;
B = (HueToRGB(Magic1,Magic2,hue-(HLSMAX/3))*RGBMAX +
(HLSMAX/2))/HLSMAX;
}
return(RGB(R,G,B));
}
Additional reference words: 3.00 3.10 3.50 4.00 95 color RGB HLS HBS
KBCategory: kbgraphic
KBSubcategory: GdiPal
=============================================================================
Copyright Microsoft Corporation 1995.
Nadam se da ti je ovo pomoglo.
pascal.1286zdravkod,
Gde moze da se nabavi MS SDK. Da li se dobija (kompletan) uz Delphi
ili C++ Builder?
Zdravko
pascal.1287kiklop,
> Gde moze da se nabavi MS SDK. Da li se dobija (kompletan) uz Delphi
> ili C++ Builder?
>
> Zdravko
Uz Delphi 3.0/4.0 i C++ Builder 1.0/3.0/4.0 se dobijaju hlp fajlovi koji
uglavnom predstavljaju dokumentaciju za win32 SDK. S time da to
nije sve, nije najsvežije i najtačnije. Uz sve to je jako poželjno da
nabaviš MSDN (Microsoft Developers Network) koji se isporučuje uz
MS VC++. Najbolje je da kupiš ovaj uz VC++ 6.0, pošto je najsvežiji.
u njemu je kompletan win32 SDK, knowledge base za sve MS
proizvode, bugovi, primeri itd... Inače ide na dva CD-a i zahteva
postojanje Internet Explorera 4.0 i podrške za HTML help (win98).
pascal.1288goxi,
Da li je nekako moguce citati _znak po znak_ iz fajla (i upisivati
u drugi) ?
Znaci vazno je da se cita znak po znak a ne red po red.
Goran.
pascal.1289emajsijuen,
EM>> Da li je nekako moguce citati _znak po znak_ iz fajla (i upisivati
EM>> u drugi) ?
Naravno da jeste. Izvodljivo je na vise nacina. Evo ti nesto iz glave, valjda
nisam nigde pogresio.
Uses DOS;
Var
FIn :File Of Char;
Znak :Char;
Begin
Assign(FIn, ParamStr(1));
Reset(FIn);
While Not EOF(FIn)
Do Begin
Read(FIn, Znak);
Writeln('Znak br. ', FilePos(FIn), ' iz fajla je: "'+Znak+'");
End;
Close(FIn);
End.
pascal.1290jjerry,
Opis par provereno najboljih (najbrzhih) sortova..ako mozhe ? :)
Na takmichenjima sam uglavnom koristio Heap,pa bih chisto da znam
da li ima neshto brzhe,bez najgoreg sluchaja itd.
Poz,JJ..
pascal.1291ventura,
Ortaku trebaju za sutra ovi zadati, pa ako neko zna ovo neka sibne na mail..
P.S. Ovo treba da se resi tak sto ce se program razlediiti na funkcije
(function program(x,x:real):real)...
1. Napisati potprogram funkcije cij ulazni podatak je velicina X a izlaz
predstavlja Y gde je Y=f(x) funkcija data izrazom:
{x^2 - 4x + 4, -2<x<2
Y = f(x) = {x^2 - 4x - 4, -2<=x<+beskonacno
{x^2 + 4x + 4. -beskonacno<x<=-2
u glavnom programu predvideti unos 3 ulazna podatka XP, XK i DX gde XP
predstavlja pocetnu vrednost, XK kraqjnju vrednos a DX korak promene
promenjljive X. Nakon unosa izvrsiti proveru odnosno uskladjivanje ulaznih
podataka, pozivati podprogram tako da se X menja od pocetne XP do krajnje XK
vrednosti u odgovarajucem koraku DX, te ispisati tabelarno izracunate vrednosti
u parovima (X,Y) za svaku tacku iz predvidjenog opsega promene.
2. Napisati podprogram cij je ulaz ceo broj N i jednocifreni broj B, a izlaz
broj pojavljivanja jednocifrenog broja (cifre) B u broju N. Napiasti glavni
program u kome se vrsi ucitavanje celog broja N, kao jednocifrenog broja B,
provera dali N pripada opsegu -32768<=N<=32767, a B opsegu 0<=B<=9, pozivanje
podprograma, kao i ispis rezultata. U glavnom programu predvideti ponovlkjeni
pokusaj ako se unese broj N ili B izvan predvidjenog opsega.
10x.
pascal.1292obren,
> Opis par provereno najboljih (najbrzhih) sortova..ako mozhe ? :)
> Na takmichenjima sam uglavnom koristio Heap,pa bih chisto da znam
> da li ima neshto brzhe,bez najgoreg sluchaja itd.
Za najbrži algoritam opšte namene i dalje važi Quick Sort, a
jedna od implementacija (rekurzivna) ti je okačena uz poruku
U pitanju je primer koji dolazi uz Turbo Pascal "od pamtiveka".
qsort.paspascal.1293jjerry,
>> Za najbrzi algoritam opste namene i dalje vazi Quick Sort, a
>> jedna od implementacija (rekurzivna) ti je okacena uz poruku
>> U pitanju je primer koji dolazi uz Turbo Pascal "od pamtiveka".
Znam za Quick,naravno,ali mi se Heap vishe svidjao prosto iz
razloga shto je malo sporiji od QuickSort-a,a nema najgori sluchaj
(konkretno za Quick kad je niz vec sortiran).
Poz,JJ..
pascal.1294stameni,
Pre nego što pokrenete ovaj program, pokušajte da pogodite
koliko racionalnih brojeva on štampa.
----<cut>----
program bug;
var
x: real;
begin
x := 1;
writeln;
while(x <= 2) do
begin
writeln(x);
x := x + 0.1
end
end.
----<cut>----
Površnom analizom pretpostavlja se da treba da odštampa 11
racionalnih brojeva: 1.0, 1.1, 1.2, ..., 2.0. Ipak, za Turbo
Pascal 6.0 važi i psi faktor, po kome će program da štampa samo
10 brojeva: 2.0 biće izostavljen. Uz poruku je prikačena izvršna
verzija programa, kompajlirana verzijom 6.0; može li neko da
proveri nekim drugim verzijama, možda je bug ispravljen?
Bug se sastoji u poređenju racionalnih brojeva, gde je (bivši)
Borland napravio manji propust: zbog jednog greškom resetovanog
zero flaga dolazi se do smešne situacije da je 2.0 veće od 2.0,
što je uslov za izlazak iz petlje -- videti program. U TP6BUGS
samo je napomenuto da problem postoji kod real aritmetike, ali
nisu precizno utvrđeni slučajevi kad program ne radi.
tp6bug.exepascal.1295emajsijuen,
EM>> Bug se sastoji u poredenju racionalnih brojeva, gde je (bivsi)
EM>> Borland napravio manji propust: zbog jednog greskom resetovanog
EM>> zero flaga dolazi se do smesne situacije da je 2.0 vece od 2.0,
EM>> sto je uslov za izlazak iz petlje -- videti program. U TP6BUGS
EM>> samo je napomenuto da problem postoji kod real aritmetike, ali
EM>> nisu precizno utvrdeni slucajevi kad program ne radi.
Ja sam imao slican problem sa Delphi-jem cak je takvo sranje pravila i
verzija 4 (koju trenutno imam). Problem sam resio na prilicno debilan nacin:
konverzijom iz realnog broja u string (sa zaokruzivanjem na 3 decimale), pa
ponovnom konverzijom u real broj. Problem je u stvari bio malko drugaciji,
ali je greska ista: dva poziva jedne funkcije (naravno sa istim parametrima)
vracala su dva realna broja koji su (gledano iz Delphija) imali istu vrednost.
Medjutim kada se te dve vrednosti oduzmu, dobija se neki treci real broj
koji je manji od nule, i ispostavlja se da su se brojevi razlikovali u nekoj
decimali.
pascal.1296stameni,
>> Ja sam imao slican problem sa Delphi-jem cak je takvo sranje pravila i
>> verzija 4 (koju trenutno imam).
Maločas napisah isto u C-u za TC++ 1.0 i BC++ 3.1, i,
šta mislite, da li ima greške? Naravno da ima :)
Očigledno u (bivšem) Borlandu koriste isti kod za rad
sa racionalnim brojevima godinama -- samo zamene "ono okolo"
a "srž" ne diraju :) Eeee... :)
pascal.1297stameni,
>> Maločas napisah isto u C-u za TC++ 1.0 i BC++ 3.1, i,
>> šta mislite, da li ima greške? Naravno da ima :)
Upravo sam kompajlirao program Turbo Pascalom 2.0, pod CP/M, i,
kao što se moglo očekivati, nema buga :) Program kako treba izbaci
svih jedanaest vrednosti. Kod koda za Z80, dakle, nije bilo problema.