pascal.426postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Sat, 03 Sep 1994 13:17:30
==== "Slobodan Tomic" rece: ======================================
"T> $ racuna o nasim slovima. Umesto da svakoj funkciji prosledjuje
"T> podatak $ koja su nasa slova, to jednostavno podesis u glob
"T> promenljivoj...
"T> Naravno, ali ta promenljiva je globalna na nivou unita (modula), ne
"T> na nivou celog programa (mislio sam na te globalne promenljive). Znaci
"T> globalna promenljiva se nalazi samo u IMPLEMENTATION delu (nevidljiva
"T> je za ostatak programa), a njen sadrzaj se menja preko vidljivih
"T> procedura, cime i dalje imamo lepu crnu kutijicu :).
Star kako ko vise voli. Meni se vise svidja da tu promenljivu
ostavim vidljivu, nego da pisem funkcije za menjanje njenog sadrzaja.
Posebno mi to vise odgovara ako je promenljiva neki record, posto
korisnik onda moze da promeni sadrzaj samo dela strukture bez nekih
vecih komplikacija.
=======
Usput, hteo bih da zamolim sezamovce da na pocetku poruke stavljaju
jedno: 'To: username' posto mi ovde dobijamo da su poruke za All. Slucajno
prepoznah da je citiran deo moje poruke pa sam pretpostavio da je odgovor
bio upucen meni.
... COMPLAINTS > NUL
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.427szeman,
Baš me zanima kao je rešeno deljenje pristupa datoteka u programu RIND.
(Program je pisan na TP-u za one koji se pitaju zašto ovde postavljam
pitanje ;) Ako neko može nešto više da napiše o deljenu pristupa datoteka na
TP pri upisu, pošto to u osnovi (ako uopšte jeste) nije podržano kao kod C-a.
Pozdrav, Saša
pascal.428dejanr,
-> #427, szeman>> Baš me zanima kao je rešeno deljenje pristupa datoteka u programu RIND.
Jako jednostavno, na početak programa se stavi filemode:=$42 i posle toga
se koristi normalno reset. Fajlovi se tako otvaraju u modu koji omogućava
da više programa istovremeno otvori isti .DBF.
Naravno, sve to može zato što kod RIND-a svi samo čitaju bazu, a niko ne
piše u nju. Ako treba da se obezbedi i upis u neku bazu, onda se mora ići
na rešenje sa zaključavanjem slogova, za šta Turbo Pascal baš i nije
opremljen, pa se koriste direktni pozivi DOS funkcija.
pascal.429kenza,
-> #420, de.pavlov(;> Ima li kakvih nagovestaja za pojavljivanje Borland Pascal 8.0 ?
Rece mi ssokorac pre neki dan da bi trebalo uskoro
da se pojavi. Kaze da je u Kanadi reklamna kampanja u toku i
da se ocekuje svakog casa.
pascal.430szeman,
-> #428, dejanr>> Jako jednostavno, na početak programa se stavi
>> filemode:=$42 i posle toga se koristi normalno reset.
>> Naravno, sve to može zato što kod RIND-a svi samo čitaju
>> bazu, a niko ne piše u nju.
Naravno, to sam i predpostavljao. Ima li nekih indicija da će se to
rešiti u nekoj od sledećih verzija TP-a?
pascal.431peca.st,
-> #423, omega!-> Program je Font Maker v3.0. Pravila su ga dva klinca iz Nis ;) Kad
!-> startujes, ne poverujes da nisi u Win! Cak i system.fon koriste!!!
Pa jel' u pitanju samo program koji ima Windows look, ili je
to kompletna biblioteka (dakle, nevezana sa taj program) kao
što je to Turbo vision?
Peđa.
pascal.432omega,
-> #431, peca.stŢPa jel' u pitanju samo program koji ima Windows look, ili je
Ţto kompletna biblioteka (dakle, nevezana sa taj program) kao
Ţšto je to Turbo vision?
Nažalost samo look :(
pascal.434postmast,
From: markom@Osmeh.FON.BG.AC.YU (Marko Milivojevic)
Subject: Re: pascal
Date: Mon, 5 Sep 1994 21:19:38 GMT
Sasa Zeman (szeman@sezam.UUCP) wrote:
:: Bas me zanima kao je reseno deljenje pristupa datoteka u programu RIND.
:: (Program je pisan na TP-u za one koji se pitaju zasto ovde postavljam
:: pitanje ;) Ako neko moze nesto vise da napise o deljenu pristupa datoteka
:: na TP pri upisu, posto to u osnovi (ako uopste jeste) nije podrzano kao kod
:: C-a.
Pogledaj po starim PC.PROG konferencijama DZakiceve poruke u temi
Pascal, nema ih mnogo, a jedna je bas na tu temu, ali za pocetak
pogledaj u dokumentaciji/help-u FileMode... :)
pascal.435pedjak,
-> #429, kenza> Rece mi ssokorac pre neki dan da bi trebalo uskoro
> da se pojavi. Kaze da je u Kanadi reklamna kampanja u toku i
> da se ocekuje svakog casa.
Koje su novosti..?
pascal.436pedjak,
-> #430, szeman> Naravno, to sam i predpostavljao. Ima li nekih indicija da će se to
> rešiti u nekoj od sledećih verzija TP-a?
A šta bi trebalo da se reši..? Jednostavno napišeš rutine za
zaključavanje/otključavanje slogova i eto ti rešenja.
pascal.437stomic,
-> #412, mmitrovic$ Ovo meni sve liči na "Što prosto kad može komplikovano". Crne kutijice
$ kako ih ti zoveš su ostavljene proizvođačima modula da zaštite princip
$ rada svojih modula i da preko funkcija kontrolišu da li su prosleđeni
$ podatci validni. Ako ti sam pišeš modul za sebe onda uopšte nemaš potrebe
$ za tim. Em ima više koda, em je sporije. Navedeš promenljivu u
Prvo, izvinjavam se što tek sada odgovaram na poruku :).
Crne kutijice (npr. apstrakcija) ne služe da bi proizvođači zaštitili
princip rada svojih modula, već da bi onaj koji koristi te module (makar
na programu radio samo jedan čovek sa svim modulima koje je on napisao)
oslobodio sebe razmišljanja baš o tom principu rada.
Uopšte, zašto moraš da znaš princip rada modula koje koristiš? Tebe
interesuje šta oni rade, a ne kako (tačka gde postaješ programer-korisnik).
Samim tim se bolje koncentrišeš na glavni program a ne na neke pomoćne
module koji se bave sporednim stvarima kao npr. interfaceom :)
Da ne spominjem lakoću održavanja i čistoću izvornog koda.
BTW, gotovo identična rasprava je bila pre nekih godinu i po :).
---
Slobodan Tomić (stomic@hobbiton.co.yu, stomic@sezam.co.yu)
pascal.438stomic,
-> #422, mmitrovic$ timu, pošto sam većbio u jednom. Međutim ova diskusija je počela oko
$ jednog programa jednog autora. Takvo čistunisanje je samo teret, jer
$ da su globalne promenljive nepotrebne ne bi ih ni bilo.
žistunisanje može biti trenutni teret, ali te oslobaća od kasnijih
problema koji mogu nastati prljavim programiranjem. Zašto pereš zube
kada je u trenutku samo teret :)?
Glupo bi bilo tvrditi da su globalne promenljive nepotrebne; unutar
samog modula ih često koristim. Ali se u velikoj većini slučajeva mogu
izbeći (bez gotovo ikakvog dodatnog napora) za komunikaciju među
modulima.
Prilično velika diskusija na istu temu je bila pre oko godinu i po,
tako da ne bih želeo da ponavljam iste odgovore :).
---
Slobodan Tomić (stomic@hobbiton.co.yu, stomic@sezam.co.yu)
pascal.439postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Thu, 08 Sep 1994 19:19:17
"M> Sto stalno potezete to pitanje timova, ja znam sta treba za rad
"M> u timu, posto sam vecbio u jednom. Medutim ova diskusija je pocela
"M> oko jednog programa jednog autora. Takvo cistunisanje je samo teret,
"M> jer da su globalne promenljive nepotrebne ne bi ih ni bilo.
Ako i kad si sam radis kao da si u timu, pri ukljucivanju u timove ne
moras ni malo da se prilagodjavas. Programiranje je izmedju ostalog i
stvar navike i treba raditi tko da se naviknes na ono sto je najefikasnije.
... BR> Oreska BBS, Uzice, 031 28276 = 23:00-09:00
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.440kenza,
-> #435, pedjak(;> Koje su novosti..?
Kaze da bi DELPHI(bp8.0) trebao da podrzava CHICAGO,
i da ce izaci u novembru.Videcemo..
pascal.441drpr,
Haj svima,
pravio sam jedan program tj. malo se igram sa merenjem vremena
na compu, ne toliko merenjem, već da imam jedan što tačniji
interval vremena (sekundu ili pola sekunde). Za tu svrhu sam
koristio INT 15h fja 83h. Taj interapt postavlja user alarm
koji će se javiti za broj mikrosekundi koji mu se zada. Sve sam
ja to lepo napisao i probao da merim. Ja sam očekivao tačnost
bar na milisekundu (greška od 1000 mikrosekundi), ali takvu
tačnost nisam dobio, zašto ne znam. Nemoguće je da se vreme
razlikuje za 3-4 mili sekunde?? Zanimljivo je da se proteklo
vreme menja u intervalima, recimo kao (0.88 0.88 0.82 0.87.0.88
0.82.....) intervali su različiti za različite vremenske
intervale, što bi verovatno trebalo da bude nekom indikativno.
U samom sorsu (test.pas) se nalaze i procedure za startovanje i
zaustavljanje int70h koje je pisao Vasic , jer neki biosi ovo
isključuju, što kod mene nije slučaj, pa reko ajd da stavim ako
nekom ko proba neće da radi. Sam sors je mali i ništa ne radi
(sem dekrementiranja jednog brojaca) dok se na promenljivu
"dali" ne postavi najviši bit kada je aktiviran alarm. Toliko
od mene s nadom da će mi neko pomoći.
cope
PS
Pitanje je možda čisto hardversko/asemblersko/msdosovsko pa su
i ostale sugestije dobrodošle!
PPS
Ako mi neko predlaže da se kačim o int 1ch ili ostale tajmerske
intove odma da kažem džaba, jer ako rešim ovo bezveze je kačiti
se o neke interapte i tako praviti gluposti.
PPPS
Dat je i sors tpu-a kojim merim proteklo sistemsko vreme.
alarm.zippascal.442postmast,
From: dragisha@hobbiton.CO.YU (Dragisa Duric)
Subject: Re: pascal
Date: Thu, 15 Sep 1994 15:33:32 GMT
Miljan Mitrovic (mmitrovic@sezam.UUCP) wrote:
: Naravno, ali ta promenljiva je globalna na nivou unita (modula), ne
: na nivou celog programa (mislio sam na te globalne promenljive). Znaci
: globalna promenljiva se nalazi samo u IMPLEMENTATION delu (nevidljiva je
: za ostatak programa), a njen sadrzaj se menja preko vidljivih procedura,
: cime i dalje imamo lepu crnu kutijicu :).
: Ovo meni sve lici na "Sto prosto kad moze komplikovano". Crne kutijice
: kako ih ti zoves su ostavljene proizvodacima modula da zastite princip
: rada svojih modula i da preko funkcija kontrolisu da li su prosledeni
: podatci validni. Ako ti sam pises modul za sebe onda uopste nemas potrebe
: za tim. Em ima vise koda, em je sporije. Navedes promenljivu u
: INTERFACE delu i nju ce videti svi moduli i program koji ima uses za taj
: modul.
:
: Jedno modul.promenljiva:=vrednost je mnogo efikasnije od
: modul.PostaviPromenljivu(vrednost);
Mnogo? Koliko je to mnogo?:) Moderni kompajleri znaju da salju
argumente u registrima, sto kad se primijeni na gornji primjer donosi za
nijansu sporiji kod od direktnog pridruzivanja.
Samo, nije poenta u tome koliko je sta brze. Najbrze je da se sve
radi u jednom modulu, i to u asembleru. Banalizujem, ali ne mnogo vise nego
ti.
Za programe koji se rade adhoc, za jednokratnu upotrebu, i uz to su
nekoliko kilo linija, nije bitno kako ga pises. Mnogi su se slozili.
Medjutim, za projekte preko 10K linija, koji se odrzavaju vise godina, bitno
je da su komponente sto slabije povezane (pojam slabe veze ima mnooogo veze
sa globalnim varijablama, jer zahtijeva da moduli komuniciraju u sto manjem
broju strogo kontrolisanih tacaka). Ja sam imao priliku da se vracam na
programe koje sam radio prije dvije-tri godine, i veoma mi je pomogao nacin
na koji su pisani.
: Sad ako mislis da ces uspeti da sam sebi ukrades modul, onda
: ne znam. ;)
Ukrades?
pascal.443postmast,
From: dragisha@hobbiton.CO.YU (Dragisa Duric)
Subject: Re: pascal
Date: Thu, 15 Sep 1994 15:49:02 GMT
Miljan Mitrovic (mmitrovic@sezam.UUCP) wrote:
: svoje tajne, vec da bi svaki modul imao jasno definisan interfejs.
: Uhh :)
: Recimo da si u pravu, i nazovimo to (u nedostatku boljeg izraza)
: cistim programiranjem. Cisto programiranje nije i efikasno
: programiranje, zbog razloga koje sam vec naveo. Ne postoje apsolutno
: nijedan dobar razlog zbog koga bi trebalo sakrivati promenljive od
: samog sebe. Specijalno one koje se koriste u visim modulima i u samom
: programu.
Naveo si nesto sto TI smatras argumentom, a prosta analiza dva
fragmenta koda bi pokazala da je razlika smijesna. Drugo, dobar razlog za
sakrivanje promjenljivih je pojednostavljivanje interfejsa, nebitno za
interfejse sa tri varijable i pet procedura uz jedan ili dva tipa podataka,
koji se uz to koristi u jednom ili najvise dva modula. Jos jedan dobar
razlog je cistoca koda i imena koja se daju. Lakse cu i kvalitetnije dati
dva nego dvadeset imena. T(B)P ima (po meni) gadan ambiguity, a to je da
nece da vrisne ako se ponovi neko ime u nekom interfejsu pri parsiranju USES
(dozvoljava on modul.objekat, ali treba to PRIMIJETITI na vrijeme, sto je
lako kad se cijeli program radi u komadu, a nemoguce kad program raste
vremenom, sto je common case).
Prava potreba za skrivanjem nastupa kod apstraktnih tipova podataka.
ADT je uglavnom pointer na neku strukturu, a operacije nad njim su procedure
koje izmedju ostalog postavljaju i razna polja unutar te strukture. Mnoge
procedure samo to i rade, pa bi (po tebi) najbolje bilo ubaciti tu strukturu
u interfejs i izbaciti suvisne procedure:). I naravno, pozdraviti se sa
idejom o unapredjivanju takvog ADT, jer svaka promjena povlaci promjenu u
proizvoljnom broju modula koji uvoze taj interfejs.
: Sto se tice zastite o kojoj sam govorio, nju sam naveo iz licnog
: iskustva vezanog za analizu TVision objekata. Kad se izvuku privatni
: metodi i polja, ceo princip funkcionisanja TVa postaje mnogo jasniji.
: Probaj (opet ako si radio sa TVom) da objasnis na koju foru rade
: Load, Store, PutPeerView, itd objekti za rad sa Strimovima. Odokativno
: izgleda kao da tu nesto fali i uopste nije bilo jasno sta se tu i
: na koji nacin odvija (narocito sa snimanjem pointera koji se svaki put
: drugde nalaze). Analizom metoda i privatnih polja koja koriste ceo
: princip se pokazao savrseno jednostavnim.
Da si probao RTFM, sto je standardni pristup, skontao bi i prije. Da
radis sa iole kompleksnijim klasama/modulima/unitima, ili nekima koje si
kupio/dobio kao object module, to bi ti jedino i ostalo, a to i jeste
profesionalni pristup.
pascal.444pedjak,
-> #441, drpr> Pitanje je možda čisto hardversko/asemblersko/msdosovsko pa su
> i ostale sugestije dobrodošle!
Zašto ne probaš da kontrolišeš vreme preko 8253 i njegovog
kanala/porta 0, koji je odgovoran za aktiviranje int 8h ? Naime,
njegov brojac broji od 65535 do 0 i zatim okida int 8h. Teoretski
možeš postići rezoluciju od 838 nanosekundi.
Sa nekih prašnjavih disketa sam iskopao ovo TPHRT V3. Mana je
jedino što ima .tpu fajlove za TP 5.0 i 5.5, tako da jedino da
probaš sa nekim od njih ili da probaš da propustiš .tpu kroz
TPU2ASM i da probaš da isčupaš relevantne rutine. Evo šta kaže DOC:
TPHRT (Turbo Pascal High Resolution Timer) is a software library that
provides the software developer with reliable timing functions that
work across the entire Intel 80xxx PC compatible hardware environment
with microsecond resolution. The TPHRT timing logic calibrates itself
to the host PC clock rate and processor environment at run-time, so a
single executable program will yield accurate results regardless of
the host microprocessor and clock speed.
tphrtv3.arjpascal.445omega,
-> #444, pedjakŢ Zasto ne probas da kontrolises vreme preko 8253 i njegovog
Ţ kanala/porta 0, koji je odgovoran za aktiviranje int 8h ? Naime,
Ţ njegov brojac broji od 65535 do 0 i zatim okida int 8h. Teoretski
Ţ mozes postici rezoluciju od 838 nanosekundi.
Naravno, to je CISTA teorija. 1.19Mhz nema sanse da izvuces, ali
mozes bar 22KHz, tj. oko 45 mikrosekundi...Jos ako kupis nove Racunare
(102), sve ce ti biti jasno ;)
pascal.446postmast,
From: dragisha@hobbiton.CO.YU (Dragisa Duric)
Subject: Re: pascal
Date: Thu, 15 Sep 1994 15:50:50 GMT
Predrag Knezevic (pedjak@sezam.UUCP) wrote:
: > Jasno, ali je poenta u tome sto je doticni program pisan u Moduli, a
: > sad bi trebalo da se prevede na Paskal. Posto se radi o povecem
: > programu, nesto
: Eh, da me sad vidi dragisha :) Koja te je muka navela da prevodis
: program na paskal..?
Big Brother is watching you!:))))
A bogami i Atilu! :)
pascal.447janko,
Da li je operator @ dokumentovan u Turbo Paskalu i sta uopste radi?
pascal.448ilazarevic,
-> #447, janko> Da li je operator č dokumentovan u Turbo Paskalu i sta uopste radi?
Prvo, sori što je to kod mene č a ne "majmun", radim na juskiju.
Drugo, dokumentovan je, i vraća adresu promenljive ili čega već. Sinonim je
funkcija Addr.
pascal.449petkovicd,
kN
Kako se u TVisionu Prozor = object(TWindow) moze koristiti
kao obican ekran na koji neka procedura posle obavlenog posla
izbaci izvestaj (neki tekst)? U Prozor je ubacen TScroller.
Nije problem otvoriti prozor i ubaciti u njega tekst koji je
jednom procitan nego u isti prozor stalno ubacivati nov tekst.
:)ejan
pascal.450dejanr,
-> #447, janko>> Da li je operator @ dokumentovan u Turbo Paskalu i sta uopste radi?
Dokumentovan je, vraća adresu onoga na šta ga primeniš (obično promenljive)
pascal.451janko,
-> #448, ilazarevic
Nevr majnd za juski, i ja ga koristim, otkačio sam ga samo da bih maksimalno
skratio pitanje.
Pitanje sam postavio jer radim program koji bi trebalo da
parsira TP kod, a pri ruci sam imao samo help iz TP 5.5 i 6.0.
U TP 5.5 se operator pominje samo kada pominju prioritete, a u šestici ga
nema nigde, pa sam se malo čudio.
Pitanje dva:
Ima li neko originalne menjuele koji idu uz TP 4.0?
tag: Manuel!
Ke?H
pascal.452ilazarevic,
-> #451, janko> Pitanje sam postavio jer radim program koji bi trebalo da
> parsira TP kod, a pri ruci sam imao samo help iz TP 5.5 i 6.0.
žudi me, zakleo bih se da ga u šestici ima sigurno?!
pascal.453postmast,
From: ss45791d@buefhp.etf.bg.ac.yu (Srdjan Simic)
Subject: pascal
Date: Tue, 20 Sep 1994 01:31:19 GMT
"Ivan Lazarevic" <ilazarevic@sezam.UUCP> je napisao:
> Cudi me, zakleo bih se da ga u sestici ima sigurno?!
I mene cudi narocito sto sam pogledao u help i tamo je :)
--
Srdjan Simic ss45791d@buefhp.etf
pascal.455postmast,
From: Ognen.Duzlevski@f108.n108.z38.setgate.setnet.co.yu (Ognen Duzlevski)
Subject: Re: TP & ASM
Date: Sat, 17 Sep 1994 16:08:01
PS> Nadam se da nece zvucati suvise laicki, ali me oduvek zanimalo kako
PS> se pisu ASM u TP-u; koja je sintaksa, koje mogucnosti, koja
PS> ogranicenja i o cemu treba voditi racuna?
Imass dve moguccnosti za mesanje ASM u TP source:
1. procedure DoSmt(var S:String); assembler;
asm
les di,s
mov es:[di],0 ; duzzina stringa je sada 0...
end;
Ova procedura sa rezervisanom reci assembler generise nesto manji ulazni i
izlazni kod od obicne TP procedure. Kod funkcija rezultat se vraca u
registru AX ili DX:AX, zavisno od tipa funkcije.
2. Direktno mesanje ASm koda u TP kod:
....
WriteLn('.....');
.
.
.
ASM
mov ax,bx
xchg cx,bx
.
.
.
END;
WriteLn('Opet paskal...:) ');
.
.
.
end.
E, sada, ASM kod mozze da pristupa svim TP promenljivima itd. 32-bitne asm
instrukcije nisu direktno podrzane ali se to zaobilazi upotrebom opcode-a
60h ispred date asm instrukcije.
* Origin: Struga BBS +389 96 74074 * Macedonia * SETNet: (38:108/108)
pascal.456mvulovic,
-> #445, omega> Ţ Zasto ne probas da kontrolises vreme preko 8253 i njegovog
> Ţ kanala/porta 0, koji je odgovoran za aktiviranje int 8h ?
> Naime, Ţ njegov brojac broji od 65535 do 0 i zatim okida int
> 8h. Teoretski Ţ mozes postici rezoluciju od 838 nanosekundi.
>
> Naravno, to je CISTA teorija. 1.19Mhz nema sanse da izvuces,
> ali mozes bar 22KHz, tj. oko 45 mikrosekundi...Jos ako kupis
> nove Racunare (102), sve ce ti biti jasno ;)
Prvo, piše ematic, istekla mi je pretplata pa do daljneg virim preko
ramena mvul-u ;), a sudeći po novim cenama pretplate tako će i da ostane
;).
Elem, pre par meseci sam imao isti problem kao cope, naime trebale su mi
precizne kratke pauze. Prvo sam probao preko int 15h, f-ja 86h (wait
f-ja). Ona meri vreme uz pomoć RTC-a i njena granularnost je mislim 973
Šs, ali preciznost ipak nije zadovoljavajuća. Bolje rečeno, preciznost
je ok ako se iz komada prave veće pauze reda recimo sekunde, međutim kad
su potrebni intervali reda ms, pa se to još zatvori u neku petlju,
dolazi do greške, pretpostavljam zbog vremena koje odlazi na sam poziv
interapt mehanizma pa se to vreme akumulira ili šta ja znam ;). Zato me
je muka naterala ;) da pročačkam malo oko 8253, da vidim šta može tu da
se uradi.
Za one koji ne znaju, 8253 sadrži tri nezavisna tajmera koji mogu da
rade u 6 modova rada. Izlaz tajmera 0 je vezan za interapt kontroler i
kreše int 8, tajmer 1 je vezan za dma kontroler i služi(o) je za refresh
dinamičkih memorija, a tajmer 2 je namenjen generisanju zvuka.
Vrednosti tajmera 0, 1 i 2 mogu da se čitaju/pišu sa portova 40h, 41h i
42h respektivno, dok se upravljački registar 8253 nalazi na portu 43h i
to je otprilike to što se tiče sâmog 8253. Samo po sebi se nametnulo da
je za zajebanciju ;) najbolje ne čačkati mečku sa tajmerom 0 i 1 nego
iskoristiti tajmer 2. Prema dokumentaciji, gejt tajmera 2 se nalazi na
bitu 0 porta B PPI-a (port 61h), bit 1 istog porta se and-uje sa izlazom
i ide na zvučnik, a sâm izlaz tajmera 2 možemo pratiti na bitu 5 PPI
porta C (62h) (o tome kasnije). Dalje je prosto, ako hoćemo recimo ton
određene frekvencije stavljamo 8253 u mod 0, odabiramo tajmer 2, punimo
ga sa vrednošću kojom delimo ulazni klok 8253 (1.19318 MHz), kresnemo
gejt (PPI B, bit 0), aktiviramo i bit 1 istog porta i svirka kreće. Ako
ne želimo svirku, bit 1 istog porta se stavi da bude nizak i nema
muzike. U modu 3 ciklus se ponavlja samo jednom i nakon toga se izlaz sa
tajmera 2 postavlja na keca i to je to što je potrebno da bi se pravila
kratka pauza, dovoljno je da propratimo izlaz tajmera 2 i gotova stvar
:) Sve je to divno i krasno, i sve piše u dokumentaciji pa da ne
prepisujem.
Međutim, stvar je u tome da jeste to tako kod XT-a, ali već nadalje ovo
ne važi, to jest izlaz sa tajmera 2 se *ne nalazi* tamo gde piše u
dokumentaciji, na bitu 5 PPI porta C, već na bitu 5 PPI porta B (bar kod
moje i još par parova mašina). Dok sam to provalio počeo sam da ćelavim,
što mi pored kilaže koju polako povećavam i nije baš potrebno ;>. To
najbolje znaju zak, cvele i zlaya sa kojima sam brbljao o ovoj temi i
koje sam terao da listaju manuale da vidim gde grešim, međutim pošto ja
ne grešim O;) znači da greši dokumentacija. Koristim ovu priliku i da im
se zahvalim što su saosećali sa mnom ;)
Zato, da bih video gde se nalazi izlaz sa tajmera 2 upotrebio sam silu
;) i sklepao sledeće programče, izvršni program je vezan uz poruku:
TIMERCTRL equ 43h
TIMER2 equ 42h
PPI_B equ 61h
PPI_C equ 62h
CR equ 13
LF equ 10
IFNDEF DELILAC
DELILAC equ 1193
ENDIF
code segment
assume cs:code, ds:code
org 100h
main proc
mov ah, 09h
mov dx, offset header
int 21h
petlja:
mov ah, 0eh
in al, TIMERCTRL
mov dl, al
in al, PPI_B
mov dh, al
in al, PPI_C
mov bh, al
mov al, dl
call write
mov al, dh
call write
mov al, bh
call write
mov al, CR
int 10h
mov ah, 1
int 16h
jz petlja
xor ax, ax
int 16h
cmp al, 'u'
je timeron
cmp al, 'U'
je timeron
cmp al, 't'
je soundon
cmp al, 'T'
je soundon
cmp al, 'i'
je timeroff
cmp al, 'I'
je timeroff
cmp al, ' '
jne petlja
mov ah, 0eh
mov al, CR
int 10h
mov al, LF
int 10h
mov al, LF
int 10h
mov ax, 4c00h
int 21h
timeron:
mov al, 0b6h
out TIMERCTRL, al
mov ax, DELILAC
out TIMER2, al
mov al, ah
out TIMER2, al
in al, PPI_B
or al, 1
out PPI_B, al
jmp petlja
soundon:
mov al, 0b6h
out TIMERCTRL, al
mov ax, DELILAC
out TIMER2, al
mov al, ah
out TIMER2, al
in al, PPI_B
or al, 3
out PPI_B, al
jmp petlja
timeroff:
in al, PPI_B
and al, 0fch
out PPI_B, al
jmp petlja
main endp
write proc
mov bl, al
mov ah, 0eh
mov cx, 8
inner:
mov al, '1'
shl bl, 1
jc dalje
mov al, '0'
dalje:
int 10h
mov al, ' '
int 10h
loop inner
mov al, ' '
int 10h
int 10h
ret
write endp
header db CR, LF
db '''U'' ukljucenje, ''T'' uklj+ton, ''I'' iskljucenje, spejs
kraj'
db CR, LF, CR, LF
db 'TIMER CTRL(43h) PPI PORT B(61h) PPI PORT C(62h)', CR, LF
db '7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0', CR, LF
db '$'
code ends
end main
Dakle, pusti se ovo gore i gde počne da promrdava kec tu je otprilike
izlaz tajmera 2 ;) Kada se to utvrdi, može da se napiše funkcija koja
pravi tačnu i dovoljno kratku pauzu. Evo jedne takve, za pauze od 1 do
55 ms, pa ko hoće nek je koristi i krpi po želji:
void pascal pauza(int vreme) /* u ms */
{
vreme = vreme * 1193;
asm {
cli
mov al, 0b0h
out 43h, al
mov ax, vreme
out 42h, al
mov al, ah
out 42h, al
jmp S2
} S2: asm {
in al, 61h
mov ah, al
or al, 1
out 61h, al
jmp cekaj
} cekaj: asm {
in al, ONAJ_PORT_GDE_JE_IZLAZ_TAJMERA
test al, BIT_NA_KOME_JE_IZLAZ_TAJMERA
jz cekaj
sti
}
}
Zasad toliko. Koga zanima još nešto neka pita slobodno pa da pojasnim.
Takođe se izvinjavam zbog čaršava. Ako je poruka pomalo (xe, pomalo ;)
konfuzna takođe se izvinjavam, beletristika mi nikad nije bila jača
strana ;)
Pozdrav
ematic :)
mrdaj.compascal.457janko,
-> #453, postmast> "Ivan Lazarevic" <ilazarevicčsezam.UUCP> je napisao:
>> Cudi me, zakleo bih se da ga u sestici ima sigurno?!
>
> I mene cudi narocito sto sam pogledao u help i tamo je :)
A gde tamo, interesantan sam znati. Tamo gde su svi drugi (pod naslovom
"OPERATORS") nema ga, nema ga u indeksu...?
pascal.458postmast,
From: ss45791d@buefhp.etf.bg.ac.yu (Srdjan Simic)
Subject: pascal
Date: Sat, 24 Sep 1994 01:26:48 GMT
>A gde tamo, interesantan sam znati. Tamo gde su svi drugi (pod naslovom
>"OPERATORS") nema ga, nema ga u indeksu...?
Moja greska gledao sam u help od 7.0 :(
Operator @ je doduse objasnjen u knjizi.
--
Srdjan Simic ss45791d@buefhp.etf
pascal.459inikolic,
Imam problem koji i nije za ovu konferenciju, ali posto radim u PASCAL-u
ostavljam ga ovde:
1. zanima me kako da nadjem ENTER u TXT datoteci, svaki znak ima svoj ASCII
karakter pa promena oko rasporeda slova nije problem, ali ENTER-a nigde nema u
ASCII-u , pa me zanima kakoje on zapisan ikako da ga promenim, po mogucstvu u
PASCAL-u premda moze i ASM.
2. HZanima me kako da detektujem ring na modem. U stvari ja ga detektujem
ali mi posle toga blokira i za sledecu zvonjavu ne javlja ring, procedura koju
sam napisao nije velika i stoga je ovde nisam poslao, zato molim one koji imaju
konkretno resenje, da mi ga dostave ovde, predlozi nisu potrebni jer i ja imam
ideju ali nece, zato me zanima konkretno, pomogucstvu neka bude u ASM-u posto
je PASCAL u tim stvarima malo skrt.
unapred hvala IGOR
pascal.460omega,
-> #459, inikolicŢ 1. zanima me kako da nadjem ENTER u TXT datoteci, svaki znak ima svoj ASCII
Ţ karakter pa promena oko rasporeda slova nije problem, ali ENTER-a nigde
Ţ nema u ASCII-u , pa me zanima kakoje on zapisan ikako da ga promenim, po
Jel nije? ;) A sta je onda ASCII kod 13?
pascal.461dejanr,
-> #459, inikolic>> 1. zanima me kako da nadjem ENTER u TXT datoteci, svaki znak ima svoj
>> ASCII karakter pa promena oko rasporeda slova nije problem, ali ENTER-a
>> nigde nema u ASCII-u , pa me zanima kakoje on zapisan ikako da ga
>> promenim, po mogucstvu u PASCAL-u premda moze i ASM.
Enter je chr(13), a obično do njega ide i chr(10) (line feed).
>> 2. HZanima me kako da detektujem ring na modem.
Imaš dve mogućnosti, svaka ima svoje prednosti i mane. Jedna je da koristiš
RING liniju RS-232 porta, druga je da detektuješ tekst RING (po ASCII-ju)
koji modem šalje. Verovatno je ovo drugo lakše.
Imaš u direktorijumu PASCAL unit(e) koji rešavaju probleme komunikacija,
možda da pogledaš neki od njih?
pascal.462inikolic,
-> #460, omegaDorada pitanja:
1. Poznato mi je da je ASCII kod Enter-a #13 i da je #10 prelazak u
sledei red , ali pitanje je gde je to zapisano u TXT datoteci? Konkretno mi
treba da one silne entere koje Word4Win nalazi na kraju svakog reda u tekstu
kucanom u recimo CW-u da skine, da bi moglo lepo da se sredi strana, a ne da ja
peske to skidam u Word-u. Znaci pitanje je gde ih on pise?
2. Ring sam uspeo da detektujem procedura je sledeca:
mov AH,03h
mov AL,00h
mov DX,00h - com1
Int 14h
Test AL,01000000b
jz Detect
HHHjmp Kraj
Detect:
Sta ovde
Kraj:
Problem je dakle sto neznam kako da ovaj ring izbacim na ekran, probao
sam , posto je ovo radjeno u pascal-u, da kada ga detektujem izbacim RING
klasicno naredbom WriteLn ali kada startujem program on odma pocinje da pise
RING. Gde je greska? Molim da mi dostavite ako moze gotovu proceduru.
IGOR
pascal.463evlad,
-> #462, inikolic>> 1. Poznato mi je da je ASCII kod Enter-a #13 i da je #10 prelazak u
>> sledei red , ali pitanje je gde je to zapisano u TXT datoteci? Konkretno
>> mi treba da one silne entere koje Word4Win nalazi na kraju svakog reda u
>> tekstu kucanom u recimo CW-u da skine, da bi moglo lepo da se sredi
>> strana, a ne da ja peske to skidam u Word-u. Znaci pitanje je gde ih on
>> pise?
Uzmes LIST sa sezama i kada udjes u file otkucas ALT H pa ce ti biti jasno
gde se nalaze.
Ako si stavio:
Var
dat : File;
dat1 : Text;
dat je ne tipizirana datoteka i koristis read i write i ako citas datoteku
byte po byte naici ces i na kontrolne CR i LF.
dat1 je tipizirana datoteka i koristis readLN i writeLN tako da sam
paskal 'vodi racuna' od CR i LF.
Capito ?
>> Problem je dakle sto neznam kako da ovaj ring izbacim na ekran, probao
>> sam , posto je ovo radjeno u pascal-u, da kada ga detektujem izbacim
>> RING klasicno naredbom WriteLn ali kada startujem program on odma
>> pocinje da pise RING. Gde je greska? Molim da mi dostavite ako moze
>> gotovu proceduru.
Probaj sa paskalovom naredbom rdbyte := PORT[adresa]
da iscitas vrednost iz registra UART-a. +----------------+
|
(* THE ASYNCHRONOUS COMMUNICATION ADAPTER | *)
(* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *)
(* The Registers of the 8250,16550 Asynchronous Communication Element *)
(* ================================================================== *)
(* *)
(* Recieve Buffer / Transmitter Holding Register port 0x3f8 0x2f8 *)
(* 0-7 8-bit data character *)
(* *)
(* Interrupt Enable Register port 0x3f9 0x2f9 *)
(* 0 Recieved data available *)
(* 1 Transmitter holding register empty *)
(* 2 Receiver line status *)
(* 3 Modem status *)
(* 4-7 (unused) *)
(* *)
(* Interrupt Identification Register port 0x3fa 0x2fa *)
(* 0 Interrupt pending (0 = true, 1 = false) *)
(* 1-2 Interrupt type *)
(* 11 = Receiver line status (OE, PE, FE, BI) *)
(* 10 = Received data available (DR) *)
(* 01 = Transmitter holding register empty (THRE) *)
(* 00 = Modem status (DCTS, DDSR, RI, DDCD) *)
(* 3-7 (unused) *)
(* *)
(* Line Control Register port 0x3fb 0x2fb *)
(* 0 WLS0 Word length select *)
(* 1 WLS1 Word length select *)
(* 00 == 5 bits *)
(* 01 == 6 bits *)
(* 10 == 7 bits *)
(* 11 == 8 bits *)
(* 2 STB Number of stop bits *)
(* 0 == 1 stop bit *)
(* 1 == 2 stop bit *)
(* 3 PEN Parity enable *)
(* 4 EPS Even parity select *)
(* 10 == Undefined *)
(* 00 == No parity *)
(* 01 == Odd parity *)
(* 11 == Even parity *)
(* 5 SP Stick parity *)
(* 6 BRK Set break *)
(* 7 DLAB Divisor latch access bit *)
(* *)
(* Modem Control Register port 0x3fc 0x2fc *)
(* 0 DTR Data terminal ready *)
(* 1 RTS Request to send *)
(* 2 OUT1 (not connected) *)
(* 3 OUT2 Enable interrupt buffer *)
(* 4 LOOP Loopback (CTS, DSR, DCD, RI = DTR, RTS, OUT1, OUT2) *)
(* 5-7 (unused) *)
(* *)
(* Line Status Register port 0x3fd 0x2fd *)
(* 0 DR Data ready *)
(* 1 OE Overrun error *)
(* 2 PE Parity error *)
(* 3 FE Framing error *)
(* 4 BI Break interrupt *)
(* 5 THRE Transmitter holding register empty *)
(* 6 TSRE Transmitter shift register empty *)
(* 7 (always zero) *)
(* *)
(* Modem Status Register port 0x3fe 0x2fe *)
(* 0 DCTS Delta clear to send *)
(* 1 DDSR Delta data set ready *)
(* 2 TERI Trailing edge ring indicator *)
(* 3 DDCD Delta data carrier detect *)
(* 4 CTS Clear to send *)
(* 5 DSR Data set ready *)
(* 6 RI Ring indicator *)
(* 7 DCD Data carrier detect *)
(* *)
(* Note : The port addresses are shown as COM1 first, then COM2 *)
(* *)
(* Divisor Latch Low Byte port 0x3f8 0x2f8 *)
(* Divisor Latch High Byte port 0x3f9 0x2f9 *)
(* *)
(* Example: *)
(* Divisor = 115200 / BaudRate *)
(* *)
(* Baud Rate DLHB DLLB *)
(* 50 0x09 0x00 *)
(* 75 0x06 0x00 *)
(* 110 0x04 0x17 *)
(* 134 0x03 0x59 *)
(* 150 0x03 0x00 *)
(* 300 0x01 0x80 *)
(* 600 0x00 0xC0 *)
(* 1200 0x00 0x60 *)
(* 1800 0x00 0x40 *)
(* 2000 0x00 0x3A *)
(* 2400 0x00 0x30 *)
(* 3600 0x00 0x20 *)
(* 4800 0x00 0x18 *)
(* 7200 0x00 0x10 *)
(* 9600 0x00 0x0C *)
(* 19200 0x00 0x06 *)
(* 38400 0x00 0x03 *)
(* 57600 0x00 0x02 *)
(* 115200 0x00 0x01 *)
(* *)
(*************************************************************************)
U modem status registru je ring inikator, pa se igraj do mile volje ;).
Izvinjavam se sto je poruka mal(k)o duza.
pascal.464inesic,
-> #463, evlad> Izvinjavam se sto je poruka mal(k)o duza.
Neka, neka.
pascal.465duzle,
Da li je neko video neuralnu mrežu implementiranu u paskalu i kako to
izgleda i da li se neko bavi ovde veštačkom inteligencijom (posebno me
interesuje da li poseduje literaturu u elektronskom obliku vezanu za
neuro-mreže).
pascal.466drpr,
-> #456, mvulovic-> pravi tačnu i dovoljno kratku pauzu. Evo jedne takve, za
-> pauze od 1 do 55 ms, pa ko hoće nek je koristi i krpi po
-> želji:
Prvo hvala na iscrpnom odgovoru. Javljam se malo sa
zakašnjenjem jer sam bio na (ne)zasluženom odmoru pa sam tek
sada pročitao tvoju poruku. Moram priznati sa zadovoljstvom.
Napravio sam mali test programčić i sve šljaka kako treba sa
tačnošću koja više nego zadovoljava. Na mestu kada ispituješ
port ja sam samo ubacio jedno inkrementiranje i merio razlike.
Ja imam problem da mi treba vremenski period od jedne sekunde
ili pola sekunde i dosao sam do odličnih rezultata. Prvo
procedura je brojala za oko 1 sec (pisano asemblerski u
pascalu) 376000 puta što mi je više nego dovoljno. najvažnije
je da su se razlike kretale od 0 do 7 brojanja što na toliku
cifru izgleda zanemarljivo i uočio sam da mi je najbolji
osnovni interval negde oko 45 milisekundi. Još jednom ti se
zahvaljujem a ako nekog zanima taj test program vrlo radu ću ga
baciti ovde u conf mada mislim da svako može da prepravi po
svojoj potrebi sors koji si nam dao.
cope
PS
Da upotpuniš kolekciju ljudi i meni je port 61h 5 bit a imam
386 na 33 MHz.
pascal.467mjova,
-> #462, inikolic> treba da one silne entere koje Word4Win nalazi na kraju
> svakog reda u tekstu kucanom u recimo CW-u da skine, da bi
> moglo lepo da se sredi strana, a ne da ja peske to skidam
> u Word-u. Znaci pitanje je gde ih on pise?
uh, svašta. pa zar ne znaš za autoformat? to sve može word sam da
sredi. lakše je napisati čak i makro za word, no petljati po
datoteci...
pascal.468ognjen,
Ja ne znam da li radi onaj Debugger iz TP 6.0 ???
Lepo prekinem program na tacno odredjenom mest, posmatram
promenjljive, i radim step po step, i gldam. I sve izgleda u
redu. Kada dodje do linije Write (WriteFile, TxtChar); sve
izgleda normalno, i izgleda da ga zaista upise, ali kada izadjem
iz programa (pustim ga da se zavrsi do kraja), i pogledam
datoteku, upisao je nekih 10ak znakova, i tu je stao! A ja sam
gledao kako radi program, i nije prijavljivao nikakvu gresku! U
cemu je stvar???
pascal.469janko,
-> #467, mjova>> treba da one silne entere koje Word4Win nalazi na kraju
>> svakog reda u tekstu kucanom u recimo CW-u da skine, da
>> bi moglo lepo da se sredi strana, a ne da ja peske to
>> skidam u Word-u. Znaci pitanje je gde ih on pise?
>
> uh, svašta. pa zar ne znaš za autoformat? to sve može word
> sam da sredi. lakše je napisati čak i makro za word, no
> petljati po datoteci...
Problem je klasičan i izuzetno lak za rešavanje -- tekst u CW snimiš
kao običan tekst fajl. Onda taj tekst fajl daš jednom malom programčiću
da isfiltrira, pa isfiltrirani fajl uvučeš u Word.
Bitno je da pišeš pasuse tako da izgledaju ovako
red teksta prvog paragrafa
red teksta prvog paragrafa
red teksta novog paragrafa.
tj da paragrafe odvajaš jednim praznim redom.
Programčić za filtriranje iseci iz ove poruke i nazovi todoc.awk
Da bi ga pokrenuo, skini program AWK 3.0 sa Sezama (bio u nekoj od
starijih programerskih konferencija, ne znam zašto ga nema u dirovima
(Bulajoooo? ;) ) i kucaj u DOS komandnoj liniji:
AWK todoc IMETVOGTXTFAJLA > IMENOVOGFAJLA
---- cut ---- (program written by Janko ;> ) ----
BEGIN { p=0 }
/^([\ \t])*$/ { p=1 }
p==0 { printf("%s ",$0) ; p=0 }
p==1 { print $0 ; p=0 }
---- cut ----
Ako ne iskopaš AWK, skini GAWK koga ima u Sez. dir i koji je malo veći
jer ima i sors, ali je u poslednjem parčetu višedelne arhive i .EXE
Njegova sintaksa je
GAWK -f todoc.awk IMETVFAJ > IMENOVFAJ
a programčić je isti.
pascal.470omega,
-> #468, ognjenŢ redu. Kada dodje do linije Write (WriteFile, TxtChar); sve
Ţ izgleda normalno, i izgleda da ga zaista upise, ali kada izadjem
Ţ iz programa (pustim ga da se zavrsi do kraja), i pogledam
Ţ datoteku, upisao je nekih 10ak znakova, i tu je stao! A ja sam
Ţ gledao kako radi program, i nije prijavljivao nikakvu gresku! U
Ţ cemu je stvar???
Verovatno si zaboravio close(WriteFile); na kraju.
pascal.471dejanr,
-> #468, ognjen>> Kada dodje do linije Write (WriteFile, TxtChar); sve
>> izgleda normalno, i izgleda da ga zaista upise, ali kada izadjem
>> iz programa (pustim ga da se zavrsi do kraja), i pogledam
>> datoteku, upisao je nekih 10ak znakova, i tu je stao! A ja sam
>> gledao kako radi program, i nije prijavljivao nikakvu gresku! U
>> cemu je stvar???
Za početak, proveri da li si datoteku zatvorio.
pascal.472postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Fri, 30 Sep 1994 11:34:55
"N> Problem je dakle sto neznam kako da ovaj ring izbacim na ekran,
"N> probao sam , posto je ovo radjeno u pascal-u, da kada ga detektujem
"N> izbacim RING klasicno naredbom WriteLn ali kada startujem program on
"N> odma pocinje da pise RING. Gde je greska? Molim da mi dostavite ako
Mislim da nepotrebno komplikujes. Preporucljivije je da RING detektujes tako
sto ocekujes da ti modem posalje rec 'RING' nego da cekas da proveravas
statusne registe. Cak je i standardom ovo preporucen metod. Video sam da
neki programi koriste kombinaciju: cekaju i na promenu statusa i na RING
od modema.
... BR> Jedan im'o s kim, im'o s cim, im'o i gde - pa sad nema kud.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.473postmast,
From: Stevan.Dejanovic@f119.n111.z38.setgate.setnet.co.yu (Stevan Dejanovic)
Subject: rs232
Date: Thu, 29 Sep 1994 22:01:06
Nabavio sam unit rs232.tpu, i neznam kako da ga koristim,
tj. modem mi je instaliran na com4 i kad unesem taj podatak
nece da posalje poruku modemu kao da program nije predvidjen za
com4. Probao sam sa com1 tj. sa misem i onda radi.
Posto me mrzi da menjam com na modemu da li postoji neko drugo resenje.
=> Mad Dog <=
... Not tonight, dear. I have a modem.
* Origin: ECSTASY BBS * Indjija * 022 53 218 * SETNet: (38:111/119)
pascal.474postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: rs232
Date: Sat, 01 Oct 1994 11:35:51
==== Stevan Dejanovic rece: ======================================
SD> Nabavio sam unit rs232.tpu, i neznam kako da ga koristim,
SD> tj. modem mi je instaliran na com4 i kad unesem taj podatak
SD> nece da posalje poruku modemu kao da program nije predvidjen za
SD> com4. Probao sam sa com1 tj. sa misem i onda radi.
Verovatno ta bibilioteka ne podrzava druge portoveosim COM1 i COM2.
Probaj Async. nisam je probao na com3 i 4 posto modeme uvek montiram na
com1 ili com2, ali po dokumentaciji, trebalo bi da radi.
... BR> All good and evil of this world is in a woman.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.475postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: Lokalne konstante
Date: Sat, 01 Oct 1994 23:12:01
Da li i za konstante u TurboPascal-u vazi da su lokalne u proceduri u kojoj
su definisane?
Pojavio mi se problem, da se unapred definisana promenljiva koja je
definisana u const sekciji procedure ponasala kao globalna.
Evo otprilike kako je to izgledalo:
Program test;
Procedure A;
const
testc : string[8] = '00000000';
begin
{ ovde je kod koji menja sadrzaj testc }
end;
begin
Procedure A;
{ medjukod }
Procedure A;
end;
Problem je u sledecem: kada je procedura A prvi put izvrsena, promenljiva
testc dobija zadatu vrednost '00000000', a kasnije se ta vrednost u
samoj funkciji menja. Kada je procedura A u glavnom programu ponovo pokrenuta,
vise se ne menja vrednost testc, tj. ne postavlja se ponovo na '00000000'
vec zadrzava vrednost koju je imala kada je prosli put zavrseno izvrsavanje
procedure.
Problem sam resio tako sto sam preskocio da promenljivu definisem u
const sekciji, nego na uobicajeni nacin, na pocetku procedure, i tada je
sve radilo. Ipak, zanimjivo je da se ovako ponasa...
Broker
... BR> Sankcije? Najzad svoji na svome.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.476ognjen,
Vec sam rekao da mi ne radi upisivanje u fajl sa
Write (WriteFile, TxtChar);
do kraja, a sada naslucujem i zasto. Naime, primetio sam da
nedovrsen fajl ima duzinu koja je uvek deljiva sa 128. Verovatno
neki disk kes. Koristim SmartDrive, ali kada sam ga izbacio, i
dalje je bila ista stvar. :( Podigao sam i sistem sa diskete, i
ponovio sve, ali i dalje ne radi. Verovatno je 'kriv' TP (6.0).
Da li on ima neki bafer u koji privrmeno smesta podatke za upis,
pa tek kad se isti napuni on ka isprazni na disk? Ne bi trebao,
ali mozda...?
pascal.477mjova,
-> #469, janko> Problem je klasičan i izuzetno lak za rešavanje
pazi, nije da mi se rešenje AWKom nije dopalo, već se radi o tome
da Word ima autoformat komandu koja baš to radi i još mnogo više!
samo treba uzeti dokumentaciju (iz helpa ;) u ruke...
pascal.478dejanr,
-> #469, janko>> Problem je klasičan i izuzetno lak za rešavanje -- tekst u CW snimiš
>> kao običan tekst fajl. Onda taj tekst fajl daš jednom malom programčiću
>> da isfiltrira, pa isfiltrirani fajl uvučeš u Word.
>>
>> Bitno je da pišeš pasuse tako da izgledaju ovako
>>
>> red teksta prvog paragrafa
>> red teksta prvog paragrafa
>>
>> red teksta novog paragrafa.
>>
>> tj da paragrafe odvajaš jednim praznim redom.
Da... ako se tekst namenski piše tako da bude zgodan za konverziju.
U praksi to obično nije slučaj, dobiješ često tekst bez praznih redova
među pasusima. Ako neko uvlači pasuse za par blankova, i to je dosta,
ali biva da se i to ne radi, ili se ne radi uvek, naročito kada postoje
neka nabrajanja, listinzi itd.
Međutim, Chi (bar verzije koje sam ja viđao) imaju zgodnu osobinu da,
pri export ascii, na krajeve redova koji nisu krajevi pasusa stave po
jedan blanko, dakle tekst izgleda ovako (_ je oznaka za blanko):
red teksta iz prvog pasusa_
drugi red teksta iz provog pasusa_
treći red teksta iz prvog pasusa
čitav drugi pasus
prvi red teksta iz trećeg pasusa_
itd.
Štos je da se to onda uvuče u WordPerfect (ili nešto drugo) pa onda ide:
zameni _[HRt] sa ##$$
zameni [HRt] sa _
zameni ##$$ sa [HRt][HRt]
I rešen problem.
pascal.479isekulovic,
-> #476, ognjen>> Vec sam rekao da mi ne radi upisivanje u fajl sa
Pretpostavljam da radiš
Rewrite(f);
probaj sa:
Rewrite(f,1);
pascal.480janko,
-> #477, mjova> pazi, nije da mi se rešenje AWKom nije dopalo, već se radi
> o tome da Word ima autoformat komandu koja baš to radi i
> još mnogo više! samo treba uzeti dokumentaciju (iz helpa
> ;) u ruke...
Izvini, kada kažeš Word, na koji Word misliš? 2 ili 6? U 2 nisam
primetio tako nešto, a na 6 se još nisam nakanio...
Svejedno, ovo je programerska konf. pa je bilo logično da se pokaže
programersko rešenje. Ako ništa drugo, viđi ga al' je lijep. ;) Šalim
se, ono što mi stvarno fali je što Word ne ume da radi ništa pod milim
bogom sa regularnim izrazima a oni su takoooo zgodni.
(Jao al' zastranismo ;) Da se ne bi mrdala poruka, moram da dam odgovor
onom momku (Predrag) koji je pitao zašto mu tipizirani CONST zadržava
vrednost između dva poziva TP fje: zato što TAKO TREBA. Tipizirani CONST
u pozivu fje je ono što se u FORTRAN-u zove SAVED promenljiva (ako se
sećam) ili u C-u static promenljiva u fji -- baš joj je i namena da pamti
šta je rađeno u poslednjem pozivu. Dizajneri TP-a su očigledno bili
dobro upoznati sa svim prednostima C-a, pa su se potrudili da što više C
fora ubace u (da zlobno kažem teško upotrebljivu) Virtovu definiciju
Paskala.
pascal.481janko,
-> #478, dejanr> Međutim, Chi (bar verzije koje sam ja viđao) imaju zgodnu
> osobinu da, pri export ascii, na krajeve redova koji nisu
> krajevi pasusa stave po jedan blanko, dakle tekst izgleda
> ovako (_ je oznaka za blanko):
Jao, jeste, jako zgodna osobina, dosta pojednostavljuje... Sad sam se
setio da si o toj osobini CW već negde pisao, nekad. Nema veze, dadoh
rešenje koje radi i za običan tekst fajl koji nije generisan izvozom iz
CW.
U stvari, sve ovo sam pisao najviše zato što je pitanje postavljeno u
temi Paskal, a hteo sam da podsetim da ima jedan jezik koji se specijalno
bavi žvakanjem i prežvakavanjem teksta, te je pogodniji od Paskala za
takve rabote. Na kom još (kompjuterskom) jeziku se gornji problem rešava
u četiri reda? :)
> Štos je da se to onda uvuče u WordPerfect (ili nešto
> drugo) pa onda ide:
>
> zameni _[HRt] sa ##$$
> zameni [HRt] sa _
> zameni ##$$ sa [HRt][HRt]
>
> I rešen problem.
Ne znam šta radi WP, tj ne znam šta mu je to HRt, ali ako je kraj
paragrafa, nešto mi je čudan gornji red, jer, u Wordu (i 2.0 i posle,
sigurno) je dovoljno zameniti razmak i kraj pasusa (kraj pasusa se kuca
strelica na gore pa malo slovo p, tj. ^p) sa običnim razmakom i to je
sve.
pascal.482pedjak,
-> #475, postmast> Da li i za konstante u TurboPascal-u vazi da su lokalne u proceduri
> u kojoj su definisane?
> Problem je u sledecem: kada je procedura A prvi put izvrsena,
> promenljiva testc dobija zadatu vrednost '00000000', a kasnije se ta
> vrednost u samoj funkciji menja. Kada je procedura A u glavnom
> programu ponovo pokrenuta, vise se ne menja vrednost testc, tj. ne
> postavlja se ponovo na '00000000' vec zadrzava vrednost koju je
> imala kada je prosli put zavrseno izvrsavanje procedure.
> sve radilo. Ipak, zanimjivo je da se ovako ponasa...
Pa da, jeste zanimljivo, i meni se prvi put učinilo da to nije
normalno ponašanje, ali to je dokumentovana osobina, evo:
Note: Typed constants are initialized only once--at the beginning of a
program. For each entry to a procedure or function, the locally-declared
typed constants are not reinitialized.
Jedino bi bilo lepo da postoji neki svič, pa da svako može da
odredi kako će se svaka procedura ponašati.
pascal.483pedjak,
-> #472, postmast> Mislim da nepotrebno komplikujes. Preporucljivije je da RING
> detektujes tako sto ocekujes da ti modem posalje rec 'RING' nego da
> cekas da proveravas statusne registe. Cak je i standardom ovo
> preporucen metod. Video sam da
Kakvim standardom...?
pascal.484pedjak,
-> #476, ognjen> do kraja, a sada naslucujem i zasto. Naime, primetio sam da
> nedovrsen fajl ima duzinu koja je uvek deljiva sa 128. Verovatno
> neki disk kes. Koristim SmartDrive, ali kada sam ga izbacio, i
Dužina fajla je deljiva sa 128, zato što je inicijalna vrednost
paskalovog bafera za tekstualne datoteke 128 bajtova. Izgleda da ne
zatvaraš datoteku.
pascal.485goxx,
-> #475, postmast■ Procedure A;
■ const
■ testc : stringŠ8Ć = '00000000';
■ begin
■ š ovde je kod koji menja sadrzaj testc ć
■ end;
Ne zamerite ako grešim (već par godina ne radim pascal), ali kako je
uopšte moguće menjati konstantu. Em se ruši definicija njene suštine,
em kompajler to dozvoljava ?
Goran
pascal.486srdjan.j,
-> #485, goxx==>■ const
==>■ testc : stringŠ8Ć = '00000000';
==> Ne zamerite ako grešim (već par godina ne radim pascal), ali kako je
==> uopšte moguće menjati konstantu. Em se ruši definicija njene suštine,
==> em kompajler to dozvoljava ?
Ovo je ekstenzija Turbo Pascala. testc je samo inicijalizovana varijabla.
Neznam koji im je djavo bio pa su napravili takvu sintaksu, ali to nije
konstanta !
pascal.487ognjen,
-> #470, omega[dejanr]
)-> Za pocetak, proveri da li si datoteku zatvorio.
[omega]
)-> Verovatno si zaboravio close(WriteFile); na kraju.
Hvala vam k'o braci! Niste ni svesni koliko ste mi pomogli.
Mesecima nisam mogao da dovrsim program jer nisam znao sta se
desilo. Pre neki dan sam stampao listing, i sve sam crtao sta
kako ide, ali nisam mogao da ukapiram u cemu je problem... Vec
sam pomislio da je bug u pascalu. :)
[ Treba zatvoriti datoteku.
Treba zatvoriti datoteku.
Treba zatvoriti datoteku.
Treba zatvoriti datoteku.
Treba zatvoriti datoteku.
Treba zatvoriti datoteku.
. . .
Treba zatvoriti datoteku. ]
pascal.488vlador,
-> #476, ognjen> nedovrsen fajl ima duzinu koja je uvek deljiva sa 128. Verovatno
> neki disk kes. Koristim SmartDrive, ali kada sam ga izbacio, i
Pre će biti da ti je TxtChar podatak dužine 128 (array [0..127] of Char,
String[127]...). Izvini ako si ovo znao... Za svaki slučaj. :)
pascal.489ognjen,
-> #488, vlador)-> Pre ce biti da ti je TxtChar podatak duzine 128 (array
)-> [0..127] of Char, String[127]...). Izvini ako si ovo znao...
)-> Za svaki slucaj. :)
Nije to bilo u pitanju, zaboravio sam da zatvorim datoteku. U
svakom slucaja hvala svima koji su pokusali (i uspeli) da mi
pomognu.
pascal.490nikac,
-> #475, postmast>■ Procedure A;
>■ const
>■ testc : string[8] = '00000000';
>■ begin
>■ ...
>■ end;
>■ ... ne resetuje se stalno na '000...'
To je dokumentovano ponasanje, tako se u pascalu definisu static
promenljive...
pascal.491mmitrovic,
-> #486, srdjan.jŮ█▀█Ţ Neznam koji im je djavo bio pa su napravili takvu sintaksu, ali to nije
Ů█▀█Ţ konstanta !
Verovatno zato što bi morala da se dodaje nova rezervisana reč ili da
se menja sintaksa var definicije, a to je teško uraditi bez da se
poremeti sintaksa standardnog pascala.
pascal.492postmast,
From: Sloba.Markovic@f101.n101.z38.setgate.setnet.co.yu (Sloba Markovic)
Subject: String u stringu
Date: Tue, 04 Oct 1994 08:52:00
Da li bi neko bio ljubazan da mi pokaze (napise proceduru) kako da
trazim string u stringu. Npr. kako da nadjem string '445' u stringu
'217364450349267'. Hvala unapred,
+ ,
O:)-|--< MAGIC FLASH!
+ '
... Daddy, what does "FORMATTING DRIVE C:" mean?
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.493postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Tue, 04 Oct 1994 11:31:06
To: "Ognjen Blagojevic" <ognjen@sezam.UUCP>
"
"B> redu. Kada dodje do linije Write (WriteFile, TxtChar); sve
"B> izgleda normalno, i izgleda da ga zaista upise, ali kada izadjem
"B> iz programa (pustim ga da se zavrsi do kraja), i pogledam
"B> datoteku, upisao je nekih 10ak znakova, i tu je stao! A ja sam
BIlo bi dobro da prilozis malo koda, da vidimo o cemu se radi. U svakom
slucju, probaj da promenljivu TxtChar stavis u Watch i pratis i njen
sadrzaj.
... BR> Nema vise industrijskog zagadjivanja! Hvala UN!
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.494postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: String u stringu
Date: Tue, 04 Oct 1994 11:31:06
==== Sloba Markovic rece: ======================================
SM> Da li bi neko bio ljubazan da mi pokaze (napise proceduru) kako da
SM> trazim string u stringu. Npr. kako da nadjem string '445' u stringu
Evo izvoda iz TP Help-a:
Pos (function)
===============
Searches for a substring in a string.
Declaration:
function Pos(Substr: String; S: String): Byte;
Target:
Windows, Real, Protected
Remarks:
Substr and S are string-type expressions. Pos
searches for Substr within S, and returns an
integer value that is the index of the first
character of Substr within S. If Substr is not
found, Pos returns zero.
Sample Code:
{Pos.PAS}
{Sample code for the Pos function.}
var S: String;
begin
S := ' 123.5';
{ Convert spaces to zeroes }
while Pos(' ', S) > 0 do
S[Pos(' ', S)] := '0';
end.
... BR> Jedan im'o s kim, im'o s cim, im'o i gde - pa sad nema kud.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.495postmast,
From: markom@exodus.fon.bg.ac.yu (Marko Milivojevic)
Subject: Re: pascal
Date: Wed, 5 Oct 1994 07:44:23 GMT
Ognjen Blagojevic (ognjen@sezam.UUCP) wrote:
:: do kraja, a sada naslucujem i zasto. Naime, primetio sam da
:: nedovrsen fajl ima duzinu koja je uvek deljiva sa 128. Verovatno
:: neki disk kes. Koristim SmartDrive, ali kada sam ga izbacio, i
:: dalje je bila ista stvar. :( Podigao sam i sistem sa diskete, i
:: ponovio sve, ali i dalje ne radi. Verovatno je 'kriv' TP (6.0).
:: Da li on ima neki bafer u koji privrmeno smesta podatke za upis,
:: pa tek kad se isti napuni on ka isprazni na disk? Ne bi trebao,
:: ali mozda...?
Jao, jao, cekaj. Kad otvaras fajl koji nije tipa TEXT, ako mu ne
navedes velicinu sloga, po defaultu je 128, zar ne? Ispravite me
ako gresim, ali nisam pratio ovo iz pocetka. Takodje, ako nije
neki TopSecret, posalji deo koda sa kojim otvaras fajl, tako ce
nam biti mnogo lakse...
--
Marko Milivojevic markom@exodus.fon.bg.ac.yu
Home phone: 137-477 (09-22) Exodus phone: +381 11 137-477 (22-09)#! rnews 786
pascal.496postmast,
From: markom@exodus.fon.bg.ac.yu (Marko Milivojevic)
Subject: Re: pascal
Date: Wed, 5 Oct 1994 07:50:39 GMT
Marko Milivojevic (markom@exodus.fon.bg.ac.yu) wrote:
:: Jao, jao, cekaj. Kad otvaras fajl koji nije tipa TEXT, ako mu ne
:: navedes velicinu sloga, po defaultu je 128, zar ne? Ispravite me
Greska, ako je fajl tipa FILE, jer ostali tipovi imaju velicinu
navedenog tipa... Definitivno mislim da je tu omanuo ;)
--
Marko Milivojevic markom@exodus.fon.bg.ac.yu
Home phone: 137-477 (09-22) Exodus phone: +381 11 137-477 (22-09)#! rnews 521
pascal.497sdjordjevic,
EJ PROVALIO SAM KAKO SE PUŠTA BMP NA PASCALU ALI LAKO MOžE DA SE PRERADI ZA
NPR: "C"
UZ PORUKU JE PRIKAžENO TO ŠTO SAM PROVALIO
s_w_bmp.arjpascal.498dejanr,
-> #495, postmast>> Jao, jao, cekaj. Kad otvaras fajl koji nije tipa TEXT, ako mu ne
>> navedes velicinu sloga, po defaultu je 128, zar ne?
Odnosi se na netipiziran fajl. Dakle, ako otvaraš fajl koji je deklarisan
sa:
var ime: file
onda treba koristiti:
reset (ime, 1)
inače će stvarno biti slog od 128 bajta, što najverovatnije nije ono što
se želelo. To je, inače, zbog kompatibilnosti sa Turbo Pascalom 2 i 3.
Ukoliko fajl ima tip (znači, ne samo tekst, nego bilo koji), onda je slog
onoliki koliki je tip, dakle otvara se običnim reset (ime).
pascal.499postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Thu, 06 Oct 1994 22:56:01
"B> Vec sam rekao da mi ne radi upisivanje u fajl sa
"B>
"B> Write (WriteFile, TxtChar);
"B>
"B> do kraja, a sada naslucujem i zasto. Naime, primetio sam da
"B> nedovrsen fajl ima duzinu koja je uvek deljiva sa 128. Verovatno
Ako si datteku otvorio kao binarni tj kao tip FILE a ne ka TEXT,
onda pri otvaranju treba da navedes duzinu sloga, npr:
Reset (WriteFile,1); { duzina sloga je jedan bajt }
Ako ovo ne navedes, podrazumeva se da je duzina sloga 128 bajta, pa
ce, cak i ako je ono sto upisujes krace od 128 bajta biti upisano 128 bajta,
s tim da ce 'visak' biti ono sto se naslo u memoriji na odgovarajucoj lokaciji.
... Don't shoot! There are people too.
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.500postmast,
From: broker@setgate.setnet.co.yu (Predrag Supurovic)
Subject: pascal
Date: Thu, 06 Oct 1994 22:56:02
MM> Predrag Supurovic (broker@setgate.setnet.co.yu) wrote:
MM> :: Mislim da nepotrebno komplikujes. Preporucljivije je da RING
MM> detektujes tako :: sto ocekujes da ti modem posalje rec 'RING' nego da
MM> cekas da proveravas :: statusne registe. Cak je i standardom ovo
MM> preporucen metod. Video sam da :: neki programi koriste kombinaciju:
MM> cekaju i na promenu statusa i na RING :: od modema.
MM>
MM> ATQ1, da vidim kako ce da mi stigne RING od modema ;>
ATQ1 se koisti sam u specificnim situacijama. Za normalan rad to bi
bilo katastrofalno iskljuciti jer teminal ne bi od modema mogao da
dobije nijednu informaciju o statusu veze, sem samih podataka koji
se prenose. Ne bi cak mogao da sazna ni kojom brzinom se pravi konekt,
ni da li je BYSY ili NO RESPONSE .... Jednostavno, to je specifican
slucaj koji se moze zanemariti. S druge strane, cesto moze da se desi da
recimo kabal kojim je modam spojen na racunar jednostavno nema RING
liniju, i eto belaja...
... COMPLAINTS > NUL
* Origin: Oreska BBS, UZICE = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.501kenza,
-> #492, postmast(;> Da li bi neko bio ljubazan da mi pokaze (napise proceduru) kako da
(;> trazim string u stringu. Npr. kako da nadjem string '445' u stringu
Zar to ne radi POS ? Ako ti POS ne odgovara, javi pa cemo
nesto vec da napisemo :)
pascal.502bajaga,
Da li je moguče u paskalovom asembleru koristiti 386 instrrukcije
i ako jeste kako?
pascal.503pedjak,
This package is for users of Turbo Pascal, version 5.0 or later.
These three files are all you need to add XMS support to overlaying.
If you think you can use it, then I probably don't have to explain
what the benefits are of using XMS memory over EMS memory - or
emulations thereof. But I will anyway:
- XMS is found on more machines than EMS.
- All XMS is addressable as one physical unit, not in chunks of 16 kB
like EMS.
- XMS is faster. How much faster, depends on the kind of system.
It probably doesn't matter much on 386/486 systems, but the speedup
is noticable on a 286 with emulated EMS. Or if you have a typical
1 MB 286 clone, configured as 640+384, without either board EMS or
emulated EMS (served by e.g. Quarterdeck's QRAM memory manager),
then thanks to OVERXMS you'll have fast loading overlays at last.
... and last but not least:
- OVERXMS is compact. It adds a mere 425 bytes of code to your .EXE
file.
overxmspascal.504srdjan.j,
-> #491, mmitrovic==> Verovatno zato što bi morala da se dodaje nova rezervisana reč ili da
==> se menja sintaksa var definicije, a to je teško uraditi bez da se
==> poremeti sintaksa standardnog pascala.
A ovako su poremetili sintaksu const definicije, pa nikom ništa !
Srđan.
pascal.505mmitrovic,
-> #502, bajagaŮ█▀█Ţ Da li je moguče u paskalovom asembleru koristiti 386 instrrukcije
Ů█▀█Ţ i ako jeste kako?
Jeste, ali posredno. moraš da dodaš bajt 66h ispred svake instrukcije
koja koristi 32b registre kako bi naznačio da se radi o recimo EAX a ne
o AX, pošto je opcode za te dve instrukcije identičan.
pascal.506postmast,
From: markom@exodus.fon.bg.ac.yu (Marko Milivojevic)
Subject: Re: pascal
Date: Mon, 10 Oct 1994 19:57:16 GMT
Predrag Supurovic (broker@setgate.setnet.co.yu) wrote:
:: slucaj koji se moze zanemariti. S druge strane, cesto moze da se desi da
:: recimo kabal kojim je modam spojen na racunar jednostavno nema RING
:: liniju, i eto belaja...
Hmda, tacno... Ali veruj mi da je to redje slucaj nego da je
na modemu postavljeno ATQ1 ;)
--
Marko Milivojevic markom@exodus.fon.bg.ac.yu
Home phone: 137-477 (09-22) Exodus phone: +381 11 137-477 (22-09)#! rnews 1389
pascal.507postmast,
From: Slobodan.Popovic@f1.n103.z38.setgate.setnet.co.yu (Slobodan Popovic)
Subject: Editor
Date: Fri, 07 Oct 1994 19:00:04
* Originally from: Igor Loncarevic
* Originally to: All
IL> Zeljko Dakic (Zeljko.Dakic@f116.n103.z38.setgate.setnet.co.yu) wrote:
IL> : Nasam sam savrseni editor !!! Lepo izgleda (mnogo lepse od mnogih,
IL>
IL> Ima jedan jos bolji :). Zasto nikom nije palo na pamet da koristi
IL> editor iz Borland paketa (BP6|7,BC4), moze da edituje koliko i sta
IL> hoces. Btw, meni jos nije palo na pamet :).
Mozda zato sto ima 400 KB?
... Prema zadnjim procenama, preko 67% statisticara gresi.
* Origin: SETNet - Belgrade HUB1 (38:103/1)
pascal.508postmast,
From: Slobodan.Popovic@f1.n103.z38.setgate.setnet.co.yu (Slobodan Popovic)
Subject: Editor
Date: Sat, 08 Oct 1994 04:29:07
* Originally from: Predrag Kraguljac
* Originally to: Slobodan Popovic
PK> Road Runer bar sto se mene tice radi skoro savrseno. Normalno ubacuje
PK> fajlove jedan u drugi kao i sve moguce delove fajla. Verzija koju ima
PK> Miomir je kao i moja posto sam je i uzeo sa Sensible BBS-a. Radio sam
PK> istovremeno sa nekoliko fajlova ukupne duzine preko 3 Mb i sve je
PK> radilo savrseno. Sve u svemu "Nijesam imao zamjerki".
Evo, ovo je jos jedna potvrda o kvalitetu RoadRunnera. Da ne bude da
sam ja "ciganin koji svoga konja hvali"... :)
... Glumiti znaci stajati go i polako se okretati. -- Rosalind Russell
* Origin: SETNet - Belgrade HUB1 (38:103/1)
pascal.509postmast,
From: anubis@hobbiton.CO.YU (Igor Loncarevic)
Subject: Re: pascal
Date: Tue, 11 Oct 1994 22:19:17 GMT
Goran Zafirovic (goxx@sezam.UUCP) wrote:
: Procedure A;
: const
: testc : stringS8C = '00000000';
: begin
: s ovde je kod koji menja sadrzaj testc c
: end;
: Ne zamerite ako gresim (vec par godina ne radim pascal), ali kako je
: uopste moguce menjati konstantu. Em se rusi definicija njene sustine,
: em kompajler to dozvoljava ?
Pa tako deklarisana konstanta je ustvari var promjenjiva koja je inicija
lizovana datom vrijednoscu. I treba da je moguce da se mjenja. Licno,
ja ovu osobinu koristim do bola u programima :).
---------------------------------------------------------------------------
anubis@hobbiton.CO.YU - anubis@hobbiton.sin.com
pascal.510omega,
-> #508, postmastŢ Evo, ovo je jos jedna potvrda o kvalitetu RoadRunnera. Da ne bude da
Ţ sam ja "ciganin koji svoga konja hvali"... :)
Pitam se samo ko je ovde konj, a ko ciganin? ;)
pascal.511ddobic,
rz
B00000000000000
Hitno mi je potrebna
ZBIRKA RESENIH ZADATKA
PROGRAMSKI JEZIK PASCAL
autori: Stojkovic i Tosic
izdavac: Naucna knjiga (1989)
Knjigu bih kupio novu ili fotokopiranu ili pozajmio da iskopiram.
Unapred hvala DDobic
pascal.513postmast,
From: dragisha@hobbiton.CO.YU (Dragisa Duric)
Subject: Re: Lokalne konstante
Date: Fri, 14 Oct 1994 17:47:51 GMT
Predrag Supurovic (broker@setgate.setnet.co.yu) wrote:
: Da li i za konstante u TurboPascal-u vazi da su lokalne u proceduri u kojoj
: su definisane?
: Pojavio mi se problem, da se unapred definisana promenljiva koja je
: definisana u const sekciji procedure ponasala kao globalna.
Da ne citiram mnogo, ponasa se kako se i ocekuje. Uporedivo je sa
statickim varijablama u C procedurama.
: Procedure A;
: const
: testc : string[8] = '00000000';
: begin
: { ovde je kod koji menja sadrzaj testc }
: end;
Koji je smisao konstante koju mijenjas kodom? Inicijalizacija? E, morace
drugacije :).
pascal.514postmast,
From: Nikola.Sivacki@f125.n103.z38.setgate.setnet.co.yu (Nikola Sivacki)
Subject: Re: pascal
Date: Sun, 16 Oct 1994 20:12:02
-=> Quoting "Srdan Dordevic" to All <=-
"D> EJ PROVALIO SAM KAKO SE PUSTA BMP NA PASCALU ALI LAKO MOzE DA SE
"D> PRERADI ZA NPR: "C"
"D> UZ PORUKU JE PRIKACENO TO STO SAM PROVALIO
Kako si to uspeo?!?!?!?!?!?!?!?!?!?Molio bih te da mi posaljes mail u kojem bi
to malo pojasnio.Mooooooooooooooooooooolim te...
Nikola Sivacki
* Origin: SetNet:Birostroj BBS,NON-STOP,14400bps,011/609945 (38:103/125)
pascal.515uobradovic,
Da li neko ima Norton Guide za Pascal.Jako mi je potreban.
Sve poruke slati na mail.
Uroš
pascal.516evlad,
-> #515, uobradovic>> Da li neko ima Norton Guide za Pascal.Jako mi je potreban.
>> Sve poruke slati na mail.
Moze i meni :)
pascal.517djelovic,
-> #515, uobradovic> Da li neko ima Norton Guide za Pascal.Jako mi je potreban.
Originalni NG za Pascal nije PD/SW pa je tako nedostupan preko Sezama.
Ne znam da li postoji i neka PD/SW verzija.
pascal.518jovca.car,
-> #517, djelovic/* > Da li neko ima Norton Guide za Pascal.Jako mi je potreban.
/* Originalni NG za Pascal nije PD/SW pa je tako nedostupan preko Sezama.
Neko je u (valjda) ovoj temi ostavi ng za TurboVision. Potraži.
pascal.519superhik,
-> #517, djelovic=:> Originalni NG za Pascal nije PD/SW pa je tako nedostupan
=:> preko Sezama. Ne znam da li postoji i neka PD/SW verzija.
Jel bi mogao neko da mi
objasni Šta je to Norton Guide tj.
za šta služi
(e jesam neupućen ccc... ;)
pascal.520dejanr,
-> #519, superhik>> Jel bi mogao neko da mi
>> objasni Šta je to Norton Guide tj.
>> za šta služi
Norton Guide je rezidentni program koji omogućava da, ako imaš odgovarajuću
bazu (.NG fajl), tokom rada sa nekim programom pogledaš sintaksu neke od
naredbi, primer itd. Nešto kao on-line dokumentacija.
Sam Norton Guide (program) nije pd/sw, a pojedine baze jesu, dok su druge
deo komercijalnih paketa pa se ne mogu slobodno distribuirati.
pascal.521superhik,
-> #520, dejanr=:> Sam Norton Guide (program) nije pd/sw, a pojedine baze jesu,
=:> dok su druge deo komercijalnih paketa pa se ne mogu slobodno
=:> distribuirati.
Kog komercijalnog paketa!?
pascal.523uobradovic,
-> #518, jovca.carĆĆĆ Neko je u (valjda) ovoj temi ostavi ng za TurboVision.
ĆĆĆ Potraži.
Treba mi i ostatak Pascala a ne samo TV.
pascal.524dejanr,
-> #521, superhik>> > a pojedine baze jesu, dok su druge deo komercijalnih
>> > paketa pa se ne mogu slobodno distribuirati.
>>
>> Kog komercijalnog paketa!?
Pa, recimo kupiš Clipper i uz njega dobiješ Norton Guide za Clipper.
Taj fajl (odnosno ti fajlovi) je deo paketa CA Clipper, i ne možeš ga
slobodno distribuirati.
pascal.525postmast,
From: Predrag.Knezevic@f127.n103.z38.setgate.setnet.co.yu (Predrag Knezevic)
Subject: pascal
Date: Wed, 19 Oct 1994 18:55:05
Pozdrav,
"D> Hitno mi je potrebna
"D> ZBIRKA RESENIH ZADATKA
"D> PROGRAMSKI JEZIK PASCAL
"D> autori: Stojkovic i Tosic
"D> izdavac: Naucna knjiga (1989)
Mislim da je na tom nivou i od Cabarkape i Spalivic.
ZBIRKA ZADATAKA IZ PROGRAMIRANJA SA RESENJIMA U PASCAL_u
Moze se lako nabaviti.
Krang
* Origin: SetNET Krang CITY BBS +381-11-474-373, Beograd (38:103/127)
pascal.527uobradovic,
-> #518, jovca.carĆĆĆ Neko je u (valjda) ovoj temi ostavi ng za TurboVision.
ĆĆĆ Potraži.
Treba mi i ostatak Pascala a ne samo TV.
pascal.528pedjak,
Pre jedno mesec dana bilo je rasprave o tome da li postoje juniti
za turboviziju u grafičkom modu... pa postoji :)
TVGRAPH 1.10
TURBO VISION
using TURBO VISION In EGA/VGA graphics
(C) Mindware 1991,1993
Brisbane,QLD,Australia
Fido : 3:640/307
0. See Modified TVDEMO program and STYX.PAS to show you how to do things
To recompile the TVDEMO program, copy TVDEMO.PAS and STYX.PAS to the
TVDEMO directory, then build TVDEMO. Ensure all standard units are the
original (i.e. time stamp is 7.0x) or version mismatches will occur.
1. All that is required is to include TVGRAPH in the uses statement in your
main program and amazing - TV will work in graphics mode.
tvg110a.zippascal.529saricl,
Imam jednu veoma hitnu molbu za one koji imaju iskustva sa
pisanjem softvera na
PASCALU a koji treba da radi pod NOVEL MREžOM.
Radi se o sledećem : prijateljica ide na višu pedagošku i treba da
sastavi sledeći program:
1) Postoji deset grupa pitanja.
2) Svaka grupa pitanja sadrži po deset pitanja.
3) Potrebno je da se na svakom terminalu pojavi pitanje tipa :" broj grupe ?"
nakon unošenja broja grupe treba da se pojave pitanja te grupe.
4) Takođe treba da postoji mogućnost povratka na pitanje "broj grupe?"
i izlaska iz programa.
Ovo je trivijalan problem, međutim ja nisam pravio progarame za mreže pa neznam
na koji se načiin pišu programi za mreže, Takođe me zanima dali je nešto ovako
moguće
uopšte uraditi iz TP v7.0
Zahvaljujem se svima koji mi budu pomogli. Ovo je zaista hitno, treba da
bude gotovo za četvrtak popodne, pa vas molim da mi odgovore pošaljete do tada.
pascal.530pedjak,
-> #529, saricl> PASCALU a koji treba da radi pod NOVEL MREžOM.
> Radi se o sledećem : prijateljica ide na višu pedagošku i treba da
> sastavi sledeći program:
> 3) Potrebno je da se na svakom terminalu pojavi pitanje tipa :" broj
> grupe ?" nakon unošenja broja grupe treba da se pojave pitanja te
> grupe.
> 4) Takođe treba da postoji mogućnost povratka na pitanje "broj
> grupe?" i izlaska iz programa.
Pa jednostavno, koliko sam shvatio, startuješ napisani program na
svakoj stanici... Program pišeš najnormalnije kao i za go DOS..
jedino ako program treba da vrši neke zajedničke obrade rezultata
koji se ukucavaju sa raznih stanica, onda se koriste zajedničke
datoteke u koje se upisuju podaci.