pascal.953dejanr,
==========
pascal/turbo #4645, from klrv, 1858 chars, Mon Apr 26 16:07:55 1993
Comment(s).
----------
I just found a small (but annoying) bug in the STony Brook Pascal compiler.
The program:
--------------------------------------------------------
PROGRAM bugtest;
VAR
buffer : array[1..100] of char;
bb : char;
PROCEDURE myproc
(VAR b : char);
BEGIN
b := buffer[6]
END;
BEGIN
bb := '6';
buffer[6] := '5';
myproc(bb);
writeln (bb)
END.
--------------------------------------------------------
I compile this program with the option //DATA:L.
I don't specify any other options.
bb is incorrect (it's not '5'). If I compile without any option, bb is '5'.
The code generated is:
9 b := buffer[6]
0003 B8 0127 MOV AX, SEG _BSS
0006 8E C0 MOV ES, AX
0008 C4 5E 04 LES BX, WORD PTR [BP+4]
000B 26 A0 0005 MOV AL, BYTE PTR _BSS+5
000F 26 88 07 MOV BYTE PTR ES:[BX], AL
At address 0006, ES is loaded with the segment of "buffer". This is the segment
that should be used in the statement at address 000B.
Unfortunately, ES is overwritten by the segment of "b" at address 0008.
Result: the statement at address 000B, which is preceeded by the "ES:"
prefix (hex 26), [by the way, the ES: prefix is _not_ displayed in the
machine code in the rightmost column], is using the ES value which was
intended for the statement at address 000F.
The bug appears to happen during the peephole optimization.
If I specify //NOOPTIMIZE:H, the correct code is generated:
0003 B8 0002 MOV AX, SEG _BSS
0006 8E C0 MOV ES, AX
0008 26 A0 0005 MOV AL, BYTE PTR _BSS+5
000C C4 5E 04 LES BX, WORD PTR [BP+4]
000F 26 88 07 MOV BYTE PTR ES:[BX], AL
(which, by the way is just as efficient as the "optimized" one, but has
the added benefit of being correct :-) :-)
pascal.954paki,
-> #951, spantic> U svakom slučaju ne preporučujem knjige Duška Savića. Sam sam
> svojevremeno kupio njegovu knjigu "Turbo Pascal - naredbe i
> objekti" i ne mislim da sam iole pametno uložio novac.
Nisi jedini :(((
pascal.955dr.grba,
-> #951, spantic>> U svakom slucaju ne preporucujem knjige Duska Savica. Sam sam svojevremeno
>> kupio njegovu knjigu "Turbo Pascal - naredbe i objekti" i ne mislim da sam
>> iole pametno ulozio novac.
Znaci, nisam jedini ))):
pascal.956miro,
-> #940, dzakicű> na disk. Opet, ako si siguran da je heap na početku bio prazan
ű> i da je u njemu ˙samo˙ tvoje stablo, onda možeš da snimiš deo
ű> memorije od HeapOrg do HeapPtr, zajedno sa stanjem pointera
ű> HeapPtr i da ga,
I još da je siguran da je stanje DOS memorije isto i pri drugom
ulasku i da je upamtio i par neophodnih pointera i...
ű> alociranje memorije. Valjalo bi probati...
...ako ima vremena za gubljenje.
pascal.957pedjak,
-> #951, spantic> Pa nemaš baš neki izbor. Ako hoćeš da naučiš Pascal onda je najbolja
> knjiga tvoraca Pascala ( pogotovo ako si već malo familijaran
> sa
Knjiga je sasvim ok, ali u vreme kad sam učio pascal to sam radio
iz Nolitove knjige "Računarstvo sa programskim jezikom Pascal".
Inače ova knjiga je prevod sa slovenačkog i svojevremeno se
koristila u deželi kao udžbenik. Knjiga je vrlo fina, opisuje se
najstandardniji pascal bez ikakvih ekstenzija. Preporučujem.
> odnosno Borland Pascal. Za njihove ekstenzije ( da ne kažem novi
> jezik ) će ti biti potrebna nova knjiga. Za to ima više knjiga,
> ali verovatno će dobar izbor biti prevod "Turbo Pascal 6.0
> kompletan vodič", osim cene, avaj.
Srećnim slučajem posedujem ovu knjigu i mogu ti baš reći da nisam
preterano oduševljen sadržajem. Zamisli ona nosi naziv " Turbo
Pascal 6.0 ", ali u knjizi nema ni jednog jedinog slova o upotrebi
integrisanog asemblera, koji je jedan u glavnih noviteta u v6.0 :))
Inače nije loša, jer se obrađuju i neke opšte stvari kao što su
algoritmi sortiranja, sa implementacijom.
> U svakom slučaju ne preporučujem knjige Duška Savića. Sam sam
> svojevremeno kupio njegovu knjigu "Turbo Pascal - naredbe i
> objekti" i ne mislim da sam iole pametno uložio novac.
Nemam neko lepo mišljenje o stilu Duška Savića, ali ja ovu knjigu
mnogo koristim kao referencu. Kad ne mogu da se setim nekog
parametra, ja lepo otvorim knjigu. Međutim, neki početnik će
jako teško moći da nauči nešto iz ove knjige.
pascal.958pedjak,
-> #953, dejanr> I just found a small (but annoying) bug in the STony Brook Pascal
> compiler.
Jel ima neko iskustva sa ovim kompajlerom ? Kol'ko sam čuo potpuno
je kompatibilan TP 6.0 i plus ima neke nove mogućnosti, kao što su
memorijski modeli i sl.
pedja
pascal.959vitez.koja,
-> #946, marzi#=> Koja knjiga je najbolja za pocetak i ucenje PASCAL-a.
Milan žabavkapa : 'Osnovi programiranja u PASCALu sa ekstenzijom
TURBO PASCALa'.
pascal.960spantic,
-> #953, dejanr> I just found a small (but annoying) bug in the STony Brook
> Pascal compiler.
Nije previše bitno, ali da li je ovo Pascal prevodilac za ATARI ST?
pascal.961drmarke,
-> #951, spantic> Jensen-Wirth, Pascal priručnik.
>
> To ti u svakom slučaju preporučujem kao osnovu u
> svakom slučaju, uključujući i eventualnu kasniju
> želju za prelazak na Turbo Pascal, odnosno Borland
> Pascal.
Ovo nikako ne stoji. Sigurno da je knjiga najbolja za Pascal
(mada mislim da ni za to nije baš najbolja, jer ima puno
formalizama koji su potrebni samo za konstrukciju prevodioca,
i da ne govorim o radu sa stringovima itd.), ali mislim da bi
sigurno trebalo preporučiti čoveku neku knjigu o Turbo
Pascal-u. Tu bi se kao početnička mogla zaista preporučiti
Milanova knjiga (jeste da je prilično školska ali u najboljem
smislu te reči), za nastavak mislim da je dobra i ona o TP 6.0
u izdanju Micro knjige. Zavisi od toga za šta je čovek
zainteresovan da radi u Pascalu.
Pozdrav DrMarke
pascal.962dejanr,
-> #960, spantic>> Nije previše bitno, ali da li je ovo Pascal prevodilac za ATARI ST?
Hmmm... ne bi trebalo, postoji Stony Brook za PC, oduvek sam želeo da
vidim na šta to liči... ali taman kad im pisasmo za primerak za prikaz,
uvedoše sankcije :(
pascal.963valhala,
Kako se TACNO koriste direktiva {$L ime.filea} i exec komanda?Nemam literature
za tp6.0 pa ne znam a ni tphelp mi nije bas od neke pomoci.
Da li se na sezamu moze negde naci bilo sta o ovim osobinama tp-a?
Val.
pascal.964almi,
Ja sam se isto zaje*ao pa sam kupio obe njegove knjige (tp5.5 tp6.0)
Ia,Ia,Ia,Ia :)
pascal.965valhala,
Begging, pleeding, crying for help!:)
Treba mi procedura koja ce ucitavati u pascal slike venturinog formata, odnosno
venturine style-ove, ali tako da ja mogu da ih promenim i snimim opet u ventu-
rin format.
Znaci napravim style u venturi, ucitam ga pomocu te procedure, pa ga izbacim na
ekran, unesem odgovarajuce podatke na odgovarajuca mesta, pa sve to lepo snimim
opet kao ven. format da bih ga mogao stampati. Ili bi bilo jos bolje kada bih
skinutu sliku mogao da stampam i onako, samo je iz nekog programa koji bi kori-
stio tu proceduru srucim na stampac(po moguctstvu ne previse izopacenu:)znaci
ako moze to onda ne mora da se snima kao vent. format slike.Nadam se da me bar
neko razumeo:))))
Val.
pascal.966eagle,
-> #957, pedjak> Nemam neko lepo mišljenje o stilu Duška Savića, ali ja ovu
> knjigu mnogo koristim kao referencu. Kad ne mogu da se setim
> nekog parametra, ja lepo otvorim knjigu. Međutim, neki početnik
??? Sadržaj je sasvim OK, ali je to sve jaaakooo haotično sklopljeno
u nešto što bi trebalo biti "priručnik za svakodnevni rad". Inače, imam
pored ovog i jedan priručnik stanovitog Mihaila Šolajića, koji ima
gotovo identične opise, pa čak i primere!!! Biće da su oba samo prevod
nekog stranog priručnika, samo je D.Savić dodao elemente objektnog
programiranja. BTW, preporučujem ovaj drugi, jer je stvarno lepo uređen.
(E)
pascal.967eagle,
-> #963, valhala> Kako se TACNO koriste direktiva š$L ime.fileać i exec
> komanda?Nemam literature za tp6.0 pa ne znam a ni tphelp mi
> nije bas od neke pomoci.
Jednostavno definišeš procedure koje se nalaze u .obj fajlu sa external
(staviš "external" posle zaglavlja), i onda (a možeš i na samom početku)
staviš $L itd. Te procedure koristiš kao bilo koje druge :)
Što se execa tiče, moraš pre i posle pozivanja da uradiš jedno swapvectors,
da ti neki "neodgovorni" program ne bi poremetio vektore. Najsigurnije je
da uvek pozivaš command.com :
exec(getenv('comspec'),'/c '+ komandna_linija)
Prvi parametar ti definiše datoteku koju pozivaš, a drugi komandnu liniju.
U ovom slučaju pozivaš COMMAND.COM: getenv je funkcija koja vraća promenjivu
tipa string, koju si postavio naredbom SET u autoexec.bat-u, ili koju
DOS postavlja pri boot-ovanju. "Comspec" je path do command.com-a
npr. ako butuješ sa diskete, comspec ti postaje a:Đcommand.com. Kao komandnu
liniju možeš da staviš i internu komandu dosa.
(E)Eagle
pascal.968peca.st,
-> #963, valhala!-> Kako se TACNO koriste direktiva š$L
!-> ime.fileać i exec komanda?
Pa, koriste se onda kada ti trebaju. :)
Šalim se.
$L ImeFajla.OBJ se koristi kada želiš da iz nekog OBJ fajla
prebaciš podatke u pascal. Tj, napravio si nešto u assembleru,
od toga napravio OBJ fajl, i sad to treba povezati sa Pascalom.
Za to služi $L. Međutim, prvo moraš definisati zaglavlja procedura
koje se nalaze u tom OBJ fajlu, pa onda napisati da je to External procedura.
Ako na primer u ZVRK.OBJ fajlu imaš procedure bla_bla (a : byte)
i trt_mrt (x : real) onda to uradiš ovako:
unit bez_veze;
interface
procedure bla_bla (a : byte);
procedure trt_mrt (x : real);
implementation
š$L ZVRK.OBJć ------ (sori na ovom š i ć, imam YUSCII,
to su vitičaste zagrade)
procedure bla_bla; external;
procedure trt_mrt; external;
end.
Što se tiče EXEC komande za to ti je stvarno dovoljan smo Help.
Peđa.
pascal.969spantic,
-> #957, pedjak> Knjiga je sasvim ok, ali u vreme kad sam učio pascal to
> sam radio iz Nolitove knjige "Računarstvo sa programskim
> jezikom Pascal". Inače ova knjiga je prevod sa slovenačkog
Kupio sam svojevremeno tu knjigu i nemam bog-zna kakvo mišljenje o
njoj. Moguće je da je razlog što je knjiga bukvalno zamišljena za
totalne početnike i u programiranju.
> Nemam neko lepo mišljenje o stilu Duška Savića, ali ja ovu
> knjigu mnogo koristim kao referencu. Kad ne mogu da se
> setim nekog parametra, ja lepo otvorim knjigu. Međutim,
> neki početnik će
Da bi knjiga mogla da se koristi kao referenca, mora biti pregledna.
A to se za istu ne može reći :(
pascal.970dejanr,
-> #965, valhala>> Treba mi procedura koja ce ucitavati u pascal slike venturinog formata,
>> odnosno venturine style-ove, ali tako da ja mogu da ih promenim i
>> snimim opet u venturin format.
Da li misliš na SLIKU koju Ventura prima ili na kompletnu stranu
prelomljenu u Venturi? Za sliku u PCX ili IMG formatu možda i može
nešto da se nađe, a za Ventura stranu... teško.
pascal.971dejanr,
-> #967, eagle>> exec(getenv('comspec'),'/c '+ komandna_linija)
>>
>> Prvi parametar ti definiše datoteku koju pozivaš, a drugi komandnu
>> liniju. U ovom slučaju pozivaš COMMAND.COM: getenv je funkcija koja
>> vraća promenjivu tipa string, koju si postavio naredbom SET u
>> autoexec.bat-u, ili koju DOS postavlja pri boot-ovanju.
>> "Comspec" je path do command.com-a npr. ako butuješ sa diskete,
>> comspec ti postaje a:Đcommand.com. Kao komandnu liniju možeš da
>> staviš i internu komandu dosa.
A tome svemu treba dodati da na početku programa koji će koristiti
exec treba staviti nešto kao {$M 16000,0,0}. Takođe, ako se ne poziva
COMMAND.COM nego direktno neki .EXE fajl, mora da se navede puno
ime sa sve path-om i ekstenzijom, dakle recimo D:\RAZVOJ\PROJEKAT\PRG.EXE.
Path je obavezan čak i ako je PRG.EXE u tekućem direktorijumu.
pascal.972ajankovic,
Hitno potrebna knjiga "Turbo Paskal 5.5", od autora Ivana Papeša.
Ma se ajankovic ili 011/101-728...
pascal.973valhala,
Begging, pleeding, crying for help!:)
Treba mi procedura koja ce ucitavati u pascal slike venturinog formata, odnosno
venturine style-ove, ali tako da ja mogu da ih promenim i snimim opet u ventu-
rin format.
Znaci napravim style u venturi, ucitam ga pomocu te procedure, pa ga izbacim na
ekran, unesem odgovarajuce podatke na odgovarajuca mesta, pa sve to lepo snimim
opet kao ven. format da bih ga mogao stampati. Ili bi bilo jos bolje kada bih
skinutu sliku mogao da stampam i onako, samo je iz nekog programa koji bi kori-
stio tu proceduru srucim na stampac(po moguctstvu ne previse izopacenu:)znaci
ako moze to onda ne mora da se snima kao vent. format slike.Nadam se da me bar
neko razumeo:))))
Val.
pascal.974valhala,
Kakav izgled treba da ima asm fajl ako hocu da ga sa tasmom pretvorim u .obj
i da ga koristim u tpascalu 6.0? Znaci kako kad ga pisem u editoru treba da
izgledaju pocetak i kraj( primer CSEG SEGMENT PUBLIC
ASSUME CS:CSEG
GLAVNI PROC FAR
... {program}
GLAVNI ENDP
CSEG ENDS
END
ovakav izgled ima jedan asm fajl koji sam
skinuo sa sezama ali nisam siguran da li radi
autor je neko pod sifrom >ciki<, ne znam o
kome se radi, niti sta procedura radi(davno
sam je skinuo:)) ))
Val.
pascal.975drmarke,
-> #957, pedjak> Pascal 6.0 ", ali u knjizi nema ni jednog jedinog slova o
> upotrebi integrisanog asemblera, koji je jedan u glavnih
> noviteta u v6.0 :))
Pazi stvarno, ni u originalu nema ničeg o tome! Kako li si to
primetio? Ja sam je baš lepo koristio i nisam primetio da to
nema. Tek sad. Baš sam iznenađen.
> Inače nije loša, jer se obrađuju i
> neke opšte stvari kao što su algoritmi sortiranja, sa
> implementacijom.
I još mnoge lepe stvari: rad sa grafikom, pokazivačima,
memorijom, portovima, objektima, Turbo-vizijom....
Pozdrav DrMarke
pascal.976ssokorac,
-> #961, drmarke ─┼┤ sigurno trebalo preporučiti čoveku neku knjigu o Turbo
─┼┤ Pascal-u. Tu bi se kao početnička mogla zaista preporučiti
Mislim da je ubedljivo najbolja knjiga o Turbo Pascalu za početnike, a i ne
samo za početnike O'Brienova Turbo Pascal 6.0.
pascal.977mdrljaca,
Pozdrav svima od drpr-a :
Da li ste znali da TP6.0 (ne znam za ranije verzije) ima može se
reći bag kod naredbe GOTOXY. Probelm je u sledećem:
Ako koristite neki nestandardni mod (recimo uz pomoć Vgamax-a) ka recimo
30 redova * 80 kolona naredba gotoxy(1,28) će vas poslati u 1,1 a ne na
željeno mesto.Problem se lako rešava pozivanjem interapta 10.
Uz poruku prilažem malo rešenje koje se može modifikovati po želji i po
kartici za razne oblike cursora.
Pozdrav,
Cope
cursor.arjpascal.978valhala,
-> #970, dejanrEvo da ilustriram problem:
recimo da sam u venturi napravio style, koji kad god ga pozovem postavi na
ekran odredjeni raspored teksta i ostalog(znate vec o cemu govorim).
E sad, ja recimo hocu da takav style ucitam u svoj program i unesem podatke u
njega, da bih ga posle mogao stampati(isto iz svog prg-a); but, ja hocu da
napravim vise styleova u venturi i da ih sve ucitam u svoj program, da bi ih
on kasnije koristio kao svoje styleove.Mozda umesto style bolje da stavim
"tabela/formular/obrazac za unos teksta".
Zasto mi to treba? Trebalo bi da pravim program za svog starog koji je sudski
prevodilac i kome je dozlogrdilo da kuca stalno jedne te iste obrasce, pa
bi tako mogao u jedan standardni da unosi samo nove podatke.
Hope you understand me better now.
Evo da probam da nacrtam:
--------------------------------------------------------------------
naziv dokumenta(birth certificat...)
--------------------------------------------------------------------
---------------------------------------------------------------------
- polje br1. - polje br2. - etc. - -
- za unos - - - -
Ako moze neko da mo pomogne unapred puuno hvala.
Val.
pascal.979mdrljaca,
-> #974, valhala-> Kakav izgled treba da ima asm fajl ako hocu da ga sa tasmom
-> pretvorim u .obj i da ga koristim u tpascalu 6.0? Znaci kako
-> kad ga pisem u editoru treba da izgledaju pocetak i kraj(
-> primer CSEG SEGMENT PUBLIC ASSUME CS:CSEG
-> GLAVNI PROC FAR
-> ... {program}
-> GLAVNI ENDP
-> CSEG ENDS
-> END
Evo ti pomoći iz O'Brien-ove knjige :
.model tpascal
.data
buffer db 256 dup (?)
.code
public switch
switch Proc far a:dword, b:dword, dsize:word
lds si,a
lea di,buffer
mov cx,dsize
..... ; ima jo što šta mrzi me da prepisujem
ret
switch endp
end
Objašnjenje ispod
.model tpascal : nalaže Turbo asembleru da generiše kod koji
treba da se linkuje sa TP programom.
.code : zamenjuje dosta složene pseudo instrukcije
cope
PS
Nadam se da si dobio dovoljno informacija (možda neke nisi ni znao :)
pascal.980mdrljaca,
-> #979, mdrljacaSamo da napomonem da sam probao sve da prevedem u tp-u i
radilo je a nisam probao da ulinkujem u pascal a i mislim
da ne bi trebalo da ima nekih problema─ :)
cope
pascal.981dejanr,
-> #978, valhalaShvatam problem ali, na žalost, ne mogu da pomognem. Znam da su neki
ljudi pokušavali da "dekoduju" Venturine .CHP i .STY fajlove i da su
nešto uspeli, ali ne znam koliko detaljno. Bojim se da je taj format
toliko složen da se ne može razumeti bez nekakve tehničke dokumentacije
koju, na žalost, nemamo (bolje reći, ja je nemam), ako uopšte i postoji.
Mogu da ti predložim dve stvari. Prvo, da umesto Venture uzmeš WordPerfect
koji, uz ostalo, ima mail merge mehanizam koji radi baš to - proizvodi ti
razne dokumente koji su identični osim što su im neka polja različita.
Uz to imaš i dobar makro jezik koji je dokumentovan i kojim se rade takve
stvari. Ako WP ne odgovara, možeš da uzmeš i bilo koji drugi moderniji
tekst procesor, svaki bi trebalo da ima i mail merge i makroe.
Drugo, ako je potrebno nešto veće, da praviš program koji obrađuje i
štampa podatke, dakle ništa Ventura, sva štampa ide iz tvog programa.
To znači da moraš da kontrolišeš štampač, šalješ grafičke sekvence itd,
ali videćeš da to i nije tako teško kao što izgleda. Takvi programi ako
ima puno "muljanja" sa podacima često se rade na Clipper-u, ali može i
paskal, zašto da ne.
pascal.982pedjak,
-> #969, spantic> Da bi knjiga mogla da se koristi kao referenca, mora biti pregledna.
> A to se za istu ne može reći :(
Slažem se, al' sam već naučio gde je šta :(
pascal.983pedjak,
-> #975, drmarke> Pazi stvarno, ni u originalu nema ničeg o tome! Kako li si to
> primetio? Ja sam je baš lepo koristio i nisam primetio da to
> nema. Tek sad. Baš sam iznenađen.
Pa trebalo mi je :) i onda videh da toga nema. Jedino među
rezervisanim rečima na kraju knjige možeš da pronađeš i jedno
ASSEMBLER.
pascal.984pedjak,
-> #962, dejanr> Hmmm... ne bi trebalo, postoji Stony Brook za PC, oduvek sam želeo
> da vidim na šta to liči... ali taman kad im pisasmo za primerak za
> prikaz, uvedoše sankcije :(
Šteta, i mene kopka :(
pascal.985pedjak,
-> #976, ssokorac> Mislim da je ubedljivo najbolja knjiga o Turbo Pascalu za početnike,
> a i ne samo za početnike O'Brienova Turbo Pascal 6.0.
Pa sad... ma moraš imati više knjiga iz jedne oblasti, jedna knjiga
nije dovoljna.
pascal.986pedjak,
-> #971, dejanr> A tome svemu treba dodati da na početku programa koji će koristiti
> exec treba staviti nešto kao š$M 16000,0,0ć. Takođe, ako se ne
> poziva
Ne mora baš $M 16000,0,0 . Heap je potrebno smanjiti toliko da se
može učitati drugi program u memoriju.
pascal.987pusa,
-> #976, ssokorac> Mislim da je ubedljivo najbolja knjiga o Turbo Pascalu za početnike,
> a i ne samo za početnike O'Brienova Turbo Pascal 6.0.
Imam knjigu (u vidu fotokopije :( ) i delim misljenje da
je dobra.
Ja sam paskal ucio iz Racunara pre X godina. To su bili dobri
tekstovi i bas upravljeni na nacin razmisljanja coveka ako je malo
radio sa kucnim racunarima, pa bi da predje na paskal. A objasnjavaju
i razne koncepcijske stvari koje su posle potrebne i za druge jezike.
Ne znam zasto Racunari od toga nisu napravili neku knjigu. Mozda
jos nije kasno? :)
Posle sam neko vreme radio u paskalu, ali nekako sam se
stalno osecao skuceno sa onim memb, memw, outb itd - nista mi
tu nije konkretno nedostajalo, ali mi je nekako bilo- ne znam,
dobra rec je bas skuceno! "nasao sam sebe" kada sam se dokopao
C-a, odjednom je programiranje postalo mnogo slobodnije. Mada
priznajem da mi ponekad nedostaje ono sto je paskal mogao da
ukljuci RANGE CHECK ON
pascal.988skerl,
Kada je vec rec o knjigama o pascalu, evo jedne u elektronskom
izdanju. Sve je legelno!!! Ima Sezamov header pa noze da ide u dir.
Pozdrav,
Skerl.
Turbo Pascal Reference
A Free Book
(c) Copyright 1992 by Ed Mitchell.
Welcome to the Turbo Pascal Reference, an electronic freeware book. This
reference book is divided into ten chapters, providing detailed reference
information to Turbo Pascal 6.0, Turbo Pascal 7.0, Borland Pascal, and Turbo
Vision. Chapter 1 contains information about this book, why it was created,
information regarding your right to copy this book, and a detailed outline of
the remaining chapters.
The contents of the book is stored as a self-extracting archive. Run:
TPR-BOOK.EXE to extract the TPR chapter text files, and the two
programs FIGURES.EXE and SOURCE.EXE. The latter two programs are
self extracting archives containing illustrations and source code,
respectively.
The information in the book is stored as a standard ASCII text file. You may
read it using any text editor program If you wish, you can use the README.COM
program that comes with Turbo Pascal and Borland Pascal to read these
chapters. To use README.COM, copy README.COM from the appropriate Borland
directory (example \bp\readme.com) to the directory containing this book.
Then,type:
readme tpr1.txt
to read chapter 1, contained in the file tpr1.txt.
You can use the readme utility to easily page forward or backwards through the
text and to rapidly search for keywords.
Please read Chapter 1 for important information about this electronic freeware
book, including the copyright notice and distribution rules (yes, you may copy
this free book), and disclaimers. I have published my electronic mail address
in Chapter 1 in the event that you wish to contact me directly.
Thank you for reading the Turbo Pascal Reference.
Sincerely,
Ed Mitchell
pascal.989.bale.,
Pascal-ovci, hocete li mozda sors tex-a (mambu)?
Regards from .bale. !
#:*)+-<
pascal.990skerl,
Drugi i poslednji deo knjige o pascalu.
pascal.991dejanr,
-> #988, skerlHvala na prilogu, knjiga je prebačena u direktorijum INFO.
pascal.992zolika,
-> #959, vitez.koja>> Milan žabavkapa : 'Osnovi programiranja u PASCALu sa ekstenzijom
>> TURBO PASCALa'.
Bolje naučite programski jezik MODULA-2, više se isplati... :-)))))))))
pascal.993spantic,
-> #974, valhala> Kakav izgled treba da ima asm fajl ako hocu da ga sa
> tasmom pretvorim u .obj i da ga koristim u tpascalu 6.0?
> Znaci kako kad ga pisem u editoru treba da
Evo ti uz poruku primer gde je glavni program doduše u Cu, ali tu
nekih problema nećeš imati sa definisanjem ulaza. t.j. promenljivih.
U paketu imaš i make.
projekat.zippascal.994isekulovic,
Imam problema sa TP-om. Uđem u IDE i startujem program (Ctrl+F9),
program radi, sve OK. Izađem iz programa (mog) ponovo oću da ga startujem
kad imam šta da vidim sors mi totalno sjeban. Kroz ceo sors umesto ; : " '
ima znakove ispod asci(32).
Mogući uzrok?
Ivan
ps ponovilo se "samo" triputa
pascal.995dejanr,
-> #994, isekulovicPrvi mogući uzrok - nešto sa memorijom. Koji je računar i koji od "qemm"-ova?
pascal.996sslavko,
-> #968, peca.st>> $L ImeFajla.OBJ se koristi kada želiš da iz nekog OBJ
>> fajla prebaciš podatke u pascal. Tj, napravio si nešto u
>> assembleru,
A kako u TP-u 6.0 napraviti .OBJ fajl?
pascal.997bulaja,
-> #996, sslavko> A kako u TP-u 6.0 napraviti .OBJ fajl?
Nikako.
pascal.998ficus,
-> #996, sslavkoKAzu da moze sa tp 7.0
a mos i da napises funkcije pa da ih disasembliras pa da ih u asembleru
prevedes u obj .
treci nacin ti je ja mislim da ima negde tpu2obj raspitaj se malo a mislim da
ima i tpu disasembler pa onda samo startuj masm i resio si problem
pascal.999stomic,
-> #992, zolika$ Bolje naučite programski jezik MODULA-2, više se isplati...
Pa gde si ti da nam pomogneš :).
Pozdrav, stomic@hobbiton.
pascal.1000almi,
Ja znam da je u svetu kompjutera bio program koji može da koristi fontove
iz CHI-writer-a.
Pozdrav Mišel.
pascal.1001pedjak,
-> #989, .bale.> Pascal-ovci, hocete li mozda sors tex-a (mambu)?
Ja hoću mambo :)
pascal.1002lovro,
-> #971, dejanr=- COMMAND.COM nego direktno neki .EXE fajl, mora da se navede
=- puno ime sa sve path-om i ekstenzijom, dakle recimo
=- D:\RAZVOJ\PROJEKAT\PRG.EXE. Path je obavezan cak i ako je
=- PRG.EXE u tekucem direktorijumu.
Onda ja imam neki falican TP6.0 jer kod mene radi.
Lovro
pascal.1003eagle,
Evo ovako: Kako da u TP-u napravim MOVE proceduru, koja bi premeštala
datoteku u neki drugi direktorijum? Konkretno, hoću da premestim ceo
direktorijum, nešto kao Prune&Graft iz PC-Toolsa. Thanks unapred :)
(E)
pascal.1004.bale.,
-> #1001, pedjakŮŢ Ja hoću mambo :)
Ona hoce mambo! (ajmo svi)
pascal.1005skerl,
Po zelji korisnika :)
INSIDE-TP
Pozdrav,
Skerl.
p.s. Ima Sezamov header...
insidetp.zippascal.1006mdrljaca,
Haj svima.
Imam jedno pitanje za sve vas. Da li postoji način (relativno brz)
uz pomoć koga bih mogao da snimam u datoteku stringove promenljive
dužine? Evo šta hoću. Recimo imam stringove koji ne prelaze recimo
50 karaktera (string[50]) a recimo želim da snimim ime od 3 karaktera
(npr'Ana') ali isto tako i nešto od čitavih 50 karaktera. Sve bi bilo
dobro raditi sa blockread i write jer je writeln(dat,str) mnogo sporo.
Sad me zanimaju ideje i kako sve to recimo zbudžiti da stoji u jednoj
datoteci a da se dobije na smanjenju iste, od recimo slučaja kada bih
pisao sve u prostoru od pedeset pa gurao blankove tamo gde nema ništa.
cope
PS
Nadam se da sam bio dovoljno jasan :)
pascal.1007mmile,
-> #1006, mdrljaca>uz pomoć koga bih mogao da snimam u datoteku stringove promenljive
>dužine? Evo šta hoću. Recimo imam stringove koji ne prelaze recimo
>50 karaktera (stringŠ50Ć) a recimo želim da snimim ime od 3 karaktera
>(npr'Ana') ali isto tako i nešto od čitavih 50 karaktera. Sve bi bilo
>dobro raditi sa blockread i write jer je writeln(dat,str) mnogo sporo.
>Sad me zanimaju ideje i kako sve to recimo zbudžiti da stoji u jednoj
>datoteci a da se dobije na smanjenju iste, od recimo slučaja kada bih
>pisao sve u prostoru od pedeset pa gurao blankove tamo gde nema ništa.
Napraviš dve datoteke : jedna je sekvencijalna i ukazuje na poziciju i
dužinu nekog zapisa u drugoj datoteci. Tj. iz prve iscitas informacije
o poziciji u drugoj datoteci, u drugoj napravis seek na tu poziciju i
zatim čitaš podatke sa BlockRead.
Ovo nije u jednoj datoteci ali je ideja ;)
pascal.1008isekulovic,
-> #995, dejanr>> Prvi mogući uzrok - nešto sa memorijom. Koji je računar i koji od
>> "qemm"-ova?
286/16 headland g2 ploča sa 2Mb rama, instalirani mm.sys (ems driver),
qram i qext.sys (umesto himema).
pascal.1009dejanr,
-> #1008, isekulovicJesi li probao sa "čistom" mašinom, naročito bez QRAM-a? Mada, pošto se
problem javlja povremeno, mučno je čekati ga da se pojavi...
pascal.1010ficus,
-> #1006, mdrljaca:) Haj svima.
:)
:) Imam jedno pitanje za sve vas. Da li postoji nacin (relativno brz)
:) uz pomoc koga bih mogao da snimam u datoteku stringove promenljive
:) duzine? Evo sta hocu. Recimo imam stringove koji ne prelaze recimo
Prelistaj poruke u jezici i cccc upravo se o tome diskutuje (to je jedna
od tema) ali evo ti nesto cisto da imas od cega da pocnes pre nego sto
prelistas te poruke mozes to da uradis ovako:
u slucaju sekvencijalne datoteke:
pises stringove a kraj stringa oznacis nekim terminatorom tj.
procedure upis_stringa(f:text;x:string);
var i:integer;
begin
for i:=1 to x[0] do write(f,x[i]);
write(0);
end;
Soru ako sam negde pogresio nisam probao stvar ovo ti je vise teorija
a i pascal sam pomalo zaboravio.
Ako oces da mozes direktno da pristupis n-tom clanu datoteke onda
pored ovog fajla uvedes jos jedan koji ti pokazuje na pocetak n-tog clana
Naravno u svemu ovome postoji par problema pa lepo udari dow 5/a pa citaj
na miru offline.
pascal.1011mmile,
-> #1010, ficus> procedure upis_stringa( f:text;x:string);
žvar
> var i:integer;
> begin
> for i:=1 to xŠ0Ć do write(f,xŠiĆ);
žord
> write(0);
> end;
pascal.1012ficus,
-> #1011, mmile:) > procedure upis_stringa( f:text;x:string);
:) Cvar
:) > for i:=1 to xS0C do write(f,xSiC);
:) Cord
:((((((((((((
Pa rekoh da sam pisao online i da u paskalu nisam radio dugo i da je to
vise algoritam nego procedura.
Inace ono u prvom redu nisam siguran da je greska cini mi se da var ne
mora ali ova druga greska priznajem nisam razmisljao u c-u bi proslo
jer su char i int jedno te isto (istina unsigned char=byte unsigned int=word)
ali eto ko radi taj i gresi.
pascal.1013eagle,
-> #1010, ficus> procedure upis_stringa(f:text;x:string);
> var i:integer;
> begin
> for i:=1 to xŠ0Ć do write(f,xŠiĆ);
> write(0);
> end;
Ima par greščica. Treba da ide npr. ovako:
for i:=1 to ord(xŠ0Ć) do write(f,xŠiĆ);
write(f,0);
Btw, ovo je malko sporo.... a i ne može kasnije da koristi seek.
(E)
pascal.1014mmile,
-> #1012, ficus>Pa rekoh da sam pisao online i da u paskalu nisam radio dugo i da je to
>vise algoritam nego procedura.
>Inace ono u prvom redu nisam siguran da je greska cini mi se da var ne
>mora ali ova druga greska priznajem nisam razmisljao u c-u bi proslo
>jer su char i int jedno te isto (istina unsigned char=byte unsigned int=word)
>ali eto ko radi taj i gresi.
Ma OK.
Ipak mislim da se sve datoteke kao parametar moraju prenositi sa var,
ali eto ko radi neboji se gladi ;)))
PS neboji = ne boji.
pascal.1015valhala,
-> #979, mdrljacaThanks,zbilja za .code nesam znadeo:)
pascal.1016valhala,
-> #993, spanticKad smo vec kod make, cemu sluzi make program koji dolazi uz tasm, i uz
tvision?
Val.
pascal.1017mdrljaca,
-> #1010, ficus-> Soru ako sam negde pogresio nisam probao stvar ovo ti je
-> vise teorija a i pascal sam pomalo zaboravio.
->
-> Ako oces da mozes direktno da pristupis n-tom clanu datoteke
-> onda pored ovog fajla uvedes jos jedan koji ti pokazuje na
-> pocetak n-tog clana
->
-> Naravno u svemu ovome postoji par problema pa lepo udari dow
-> 5/a pa citaj na miru offline.
OK pogledaću iako mi je pala na pamet ideja da pravim neku
vrstu zipa, naravno mnogo uprošćenog, jer meni treba neki
marker da mi pokazuje gde je karaj neke reči i "kad unzipujem"
ja u napred znam kolika je dužina polja gde treba da ubacim
blankove da bi sve radilo kako treba . Malko razmišljanja i
trebalo bi da radi, samo što ja želim da bude ultra brzo :))
cope
pascal.1018ficus,
-> #1013, eagle:) Ima par grescica. Treba da ide npr. ovako:
Ok za grescice sam vec reko nisam se petljao sa pascalom vec duze vremena...
:) Btw, ovo je malko sporo.... a i ne moze kasnije da koristi seek.
Sto se brzine tice ne mora da bude sporo jer prvo pise u buffer a posle u
fajl a sto se seek-a tice mislim da sam i to rekao kako moze da sredi. Uos-
talom imas li neki bolji predlog (ne mislim na indexne fajlove koji su u sv.
slucaju bolji.). ako imas reci ga jer i mene interesuje (uostalom i meni ce
uskoro trebati nesto slicno) Mada mozda bi se mogli iskoristiti oni
slogovi promenljive duzine u pascalu ali nesto u stilu (neznam dal radi)
slog= record
case duzina:byte of
1:x:array [1] of char;
...
...
200:x:array....
end
Salim se naravno jeste li probali da stavite file of string[50] mozda upali
mada nesto bas ne verujem (u svakom slucaju vredi probati)
pascal.1019ficus,
-> #1018, ficus:) 1:x:array [1] of char;
^^^
sory opet se ja zalecem u c.
pascal.1020eagle,
-> #1018, ficus> fajl a sto se seek-a tice mislim da sam i to rekao kako moze da
> sredi. Uostalom imas li neki bolji predlog (ne mislim na
> indexne fajlove koji su u sv. slucaju bolji.).
Sumnjam da je mnogo brže, ali je barem lakše.
Dakle, kad si se već uhvatio za tip TEXT, što ne bi jednostavno koristio
writeln i readln, umesto postavljanja markera? :) I ne mora "for to
length" već možeš odjednom da upišeš ceo string.
(E)
pascal.1021mdrljaca,
Samo da javim da sam svoj problem uspeo da rešim i da sam ušio acd
u dužini datoteke u kojoj čuva imena dirova :)). Samo me zanima
kako acd uspeva onako brzo da iskenira dirove (2.5 puta brže nego ja
kad je sve u kešu). Ajd jel neko ima ideju. Ja sam radio sa findfirst
i findnext koje sam pravio sam uz pomoć Msdos(regs) u pascalu i ne mogu brže
tj. malo sam brži od samog pascalovog jer me ne zanimaju svi oni atributi
itd. Možda je moj algoritam loš recimo ja idem nešto ovako
findfirst
Hako nadje onda udjem u while
pozivam istu proceduru( rekurzivno) za pod dir
KKfindnext
wrtim se sve dok findnext ne vrne ništa
Ovako sam rečima napisao da nebi sve opterećivao kodom, a mislim da je jasno.
MOžda acd "zna" neku foru kako da traži sam dirove jer ako stavim da mi je
atribut fajla 10h dos mi daje sve fajlove i dirove. Eto malko razmišljanja
ko želi a možda za ovo findfirst i next sam trebao da postravim u msdos ili
u assembler :))
cope
pascal.1022peca.st,
-> #1014, mmile!-> Ipak mislim da se sve datoteke kao
!-> parametar moraju prenositi sa var, ali
!-> eto ko radi neboji se gladi ;)))
Moraju se prenositi, mada je najbolje sa globalnom promenljivom,
zbog memorije...
Peđa.
pascal.1023spantic,
-> #1016, valhala> Kad smo vec kod make, cemu sluzi make program koji dolazi
> uz tasm, i uz tvision?
MAKE služi za organizaciju projekta. U njemu tačno definišeš koje sve
module koristiš, kako, čime i uz koje opcije iz prevodiš, kako ih linkuješ,
vodi računa da prilikom promene na nekom modulu nema potrebe sve ponovo
prevoditi ( veoma značajno pri velikim poslovima )...
Naročito je značajan i poželjan kada se program distribuira u sorsu da
bi se lako preneo na različite platforme ( vidi primer GNU programa ).
pascal.1024mmile,
-> #1022, peca.st> Moraju se prenositi, mada je najbolje sa globalnom
> promenljivom, zbog memorije... žžžžžžžžž
Ajde kazi to svom profanu iz programiranja da je tako najbolje ;)
pascal.1025ficus,
-> #1021, mdrljaca:) kako acd uspeva onako brzo da iskenira dirove (2.5 puta brze nego ja
:) kad je sve u kesu). Ajd jel neko ima ideju. Ja sam radio sa findfirst
:) i findnext koje sam pravio sam uz pomoc Msdos(regs) u pascalu i ne mogu brze
Pa postoji drugi nacin samo je mnoooogo komplikovan.
Lepo uzmes pa direktno citas fajl u kom je direktorijum.
P.S. Nisam siguran kako da pristupis root-diru i to bi verovatno
jos malo zakomplikovalo ali da je brze brze je a i mozes da napravis
fajl sa spiskom subdir.
pascal.1026ssokorac,
-> #1021, mdrljaca
Ja u cdp-u tražim čak sa pascalovim FindFirst i FindNext, i jedva je nešto
malo sporiji od acd-a, verovatno to 'drugačije' upisivanje u fajl usporava kod
tebe...
P.S. Novi CDP je već duplo brži od ACD-a, uskoro ću da ga šiljnem, samo još
prune&graft da završim :).
pascal.1027miroslavn,
Kako da u TP6.0 detektujem pritisnute strelice na tastaturi?
Koriste se neki extended kodovi, al pošto nemam odgovarajuću literaturu,
a u online helpu to nepiše, eto meni problema.
Drugi mali problemčić je kako da ulinkujem BGI u .exe fajl? Znam da to može, i
da je opisano u nekoj library reference book-u od Borlanda al ja to nemam?
pascal.1028eagle,
-> #1027, miroslavn> Kako da u TP6.0 detektujem pritisnute strelice na tastaturi?
ch:char;
spec:boolean;
...
ch:=readkey;
if ch=#0 then
begin
ch:=readkey;
spec:=true
end
else spec:=false;
...
Spec ti je true ako je neki "specijalan" taster pritisnut, a
u ch ti onda ostaje kod tog tastera.
pascal.1029ficus,
-> #1027, miroslavn:) Kako da u TP6.0 detektujem pritisnute strelice na tastaturi?
:) Koriste se neki extended kodovi, al posto nemam odgovarajucu literaturu,
Kodovi ti se sastoje od 0 i prateceg koda. mislim da su prateci kodovi negde
oko 75 ali uzmi lepo pa napisi programce koje ispisuje pritisnute kodove i
resio si problem (mislim da je funkcija readkey.
:) a u online helpu to nepise, eto meni problema.
:) Drugi mali problemcic je kako da ulinkujem BGI u .exe fajl? Znam da to moze,
:) i da je opisano u nekoj library reference book-u od Borlanda al ja to nemam?
Imas primer koj ti ide uz original tp 6.0 pogledaj u bgi direktorijumu
programce se zove bgilink ili tako nesto.
pascal.1030ppekovic,
-> #1024, mmile>>> Moraju se prenositi, mada je najbolje sa globalnom
>>> promenljivom, zbog memorije... žžžžžžžžž
>>
>> Ajde kazi to svom profanu iz programiranja da je tako najbolje ;)
Profesor i treba da uči tome da se što manje koriste globalne
promeljive. Zavisnost procedura i funkcija od istih donosi
probleme kada procedure i funkcije iz starog programa pokušaš da
preneseš u novi.
Paya
pascal.1031peca.st,
-> #1030, ppekovic!-> Profesor i treba da uči tome da se što
!-> manje koriste globalne promeljive.
!-> Zavisnost procedura i funkcija od
!-> istih donosi probleme kada procedure i
!-> funkcije iz starog programa pokušaš da
!-> preneseš u novi.
To je apsolutno tačno, i ja se slažem. žak sam i ja za to da se koristii
prenošenje putem parametara, ali mislim da postoje izuzeci.
(na primer, ako se u nekoj rekurzivnoj proceduri / funkciji koristi
neka povelika struktura, valjda je nećemo prenositi putem parametara,
jer stek ode za tren oka)
.to mmile : A što se tiče profana, kod bivšeg profesora (čeljka) skoro
da nismo smeli koristiti "bočni efekat", dok od kada je došao Đurišić
on maltene forsira to. :)
Peđa.
pascal.1032beast,
-> #1027, miroslavn>> Kako da u TP6.0 detektujem pritisnute strelice na tastaturi?
Pročitaj taster sa Readkey, ako je #0 dobijaš još jedan scan
kod, a on je: 72 za gore, 80 za dole, 75 za levo i 77 za
desno.
Preporučujem ti da napraviš neki proceduru (GetKey) koja u
slučaju da je taster #0 čita ponovo taster (sa Readkey) i
uvećava scan code za 128. Time 'gubiš' neke grafičke znake
(║═█ itd.) al ko ih ionako kuca sa tastature :) a mnogo ćeš
univerzalnije pisati program.
pascal.1033.obj,
-> #1025, ficus> :) kako acd uspeva onako brzo da iskenira dirove (2.5 puta brze nego ja
> :) kad je sve u kesu). Ajd jel neko ima ideju. Ja sam radio sa findfirst
> :) i findnext koje sam pravio sam uz pomoc Msdos(regs) u pascalu i ne mogu b
>
> Pa postoji drugi nacin samo je mnoooogo komplikovan.
> Lepo uzmes pa direktno citas fajl u kom je direktorijum.
To bi jako tešto uradio, bilo bi nekompatibilno (sa.. pojma temam čime
;) i na kraju bi opet bilo sporo. Radi se o algoritmu. Recimo, ako onaj
alg. prvo pročita glavni direktorijum, nađe neki dir i "uđe" u njega,
pa onda opet tako, svašta će se nakupiti po DOS-ovim keševima i na
kraju će on "odustati" od baferisanja. Zato, prvo se očita *ceo* glavni
dir, pa onda *ceo* prvi poddir i tako dalje. Biće daleko brže, mada
traži malo više memorije. Sve ovo, naravno, važi ako je na sistemu neki
glup i mali keš (ili ga ni nema - toliko je mali;).
pascal.1034ficus,
-> #1031, peca.st:) (na primer, ako se u nekoj rekurzivnoj proceduri / funkciji koristi
:) neka povelika struktura, valjda je necemo prenositi putem parametara,
:) jer stek ode za tren oka)
Ne ode stek jer se povelike strukture prenose preko pokazivaca na iste tj.
napravi se kopija pa onda... Ali sve jedno ode heap. Ako se cak kopija i
pravi na steku ti lepo lupis u var i onda opet imas samo pointer.
:) .to mmile : A sto se tice profana, kod bivseg profesora (Zeljka) skoro
:) da nismo smeli koristiti "bocni efekat", dok od kada je dosao Durisic
:) on maltene forsira to. :)
Pa sad stilovi se razlikuju (zbog toga smo ja i kareem (jankey)) definitivno
prekinuli da radimo na bilo cemu zajedno.
pascal.1035ficus,
-> #1032, beast:) slucaju da je taster #0 cita ponovo taster (sa Readkey) i
:) uvecava scan code za 128. Time 'gubis' neke graficke znake
A sto ne za 256 i lepo covek resi sve probleme (naravno vraca int mesto
char ili byte)
pascal.1036ficus,
-> #1033, .obj:) > Pa postoji drugi nacin samo je mnoooogo komplikovan.
:) To bi jako testo uradio, bilo bi nekompatibilno (sa.. pojma temam cime
:) ;) i na kraju bi opet bilo sporo. Radi se o algoritmu. Recimo, ako onaj
Ja lepo gore rekoh da je mnoooogo komplikovan. Sto se kompatibilnosti tice
radilo bi u dosu dok on ne promeni nacin pisanja informacija u fajl sa dir.
ali onda ce popucati mnoooogi programi.
:) pa onda opet tako, svasta ce se nakupiti po DOS-ovim kesevima i na
:) kraju ce on "odustati" od baferisanja. Zato, prvo se ocita *ceo* glavni
Mozda ali opet oba algoritma imaju iste korene naprimer ja kad orvorim fajl
lepo iscitam sta mi treba i onda rekurzivno pretrazujem a sto se redosleda
trazenja tice sta bi vas algoritam reko za nesto ovakvo
2 - 3 - 4 - 5
1 (root)
6 - 10
7 - 11
8 - 12- 13- 14 - 15 - 16
9
.
.
.
30 - 1002-1003 ...
Ocigledno je da je vas cd brzi za dir blizi root-u a moj ako je blizi
top-u.
P.S. Jos uvek ostajem pri tome da treba kreirati tree fajl. To cete se
sloziti da je ipak najbrze.
pascal.1037isekulovic,
-> #1009, dejanr>> Jesi li probao sa "čistom" mašinom, naročito bez QRAM-a? Mada, pošto
>> se problem javlja povremeno, mučno je čekati ga da se pojavi...
Javio se samo tri puta i to ne uzastopce, a nemam baš preterano vremena
da čekam da se pojavi. Jedino što mogu da radim je da neko vreme kad pišem
nešto dižem comp samo sa dosom, pa ako se pojavi da ponovo kukam. ako
se ne pojavi koj' će ga znati.
pascal.1038skerl,
Welcome to XMM version 1.2 !
────────────────────────────────
eXpanded Memory Manager for Turbo Pascal
Files in this package:
----------------------
README.DOC - This file!
DIRECTIV.10 - Compiler directives for Quick Pascal 1.0
DIRECTIV.40 - Compiler directives for Turbo Pascal 4.0
DIRECTIV.50 - Compiler directives for Turbo Pascal 5.0
DIRECTIV.55 - Compiler directives for Turbo Pascal 5.5
DIRECTIV.60 - Compiler directives for Turbo Pascal 6.0
DIRECTIV.INC - Compiler directive back-bone
XMS.PAS - Pascal source of XMM driver
XMM.ASM - Assembler source of XMM driver
XMM.OBJ - Object code of XMM driver
XMS20.ZIP - Microsof XMS driver (Public Domain)
XMS30.DOC - XMS 3.0 specifications
Short description :
-------------------
XMM is a Turbo Pascal eXtended Memory Manager implementation that
supports Microsofts XMS specification level 3.0.
It enables programs running on an AT-like, 386-like or 486-like
machine to use extended memory (memory above the 1 megabyte barrier)
to store data and code.
Almost all code is written in machine language and Microsofts XMS driver
version 2.06 (which is public domain) is included.
Pozdrav,
Skerl.
p.s. Bulaja, prebaci ovo u dir, vec ima zainteresovanih :)
Ima Sezamov header.
pascal.1039.obj,
-> #1036, ficus> P.S. Jos uvek ostajem pri tome da treba kreirati tree fajl. To cete se
> sloziti da je ipak najbrze.
Pa normaalno :) Nego predlažem ti da ne izmišljaš toplu vodu :) nego
pogledaj strukturu TREEINFO.NCD datoteke, vrlo je prosta, a svako se
iznenadi kad vidi "opa, kako brzo pročitao.. vidi ti njega!" :) A i ja
ne znam disk koji nema TREEINFO.NCD ;)
pascal.1040m.hristodulo,
-> #1008, isekulovic>> 286/16 headland g2 ploča sa 2Mb rama, instalirani mm.sys (ems
>> driver), qram i qext.sys (umesto himema).
Izvinte što mašim temu ali moram odma da pitam. Sine aj
mi pošalji taj mm.sys. Imam isti hardver ko ti al ne mogu da
instaliram qram jer nemam EMS 4.0 u hardveru... Ako može i neki
savet iskustvo i slično. Ajde care mojne da te molim dvaput!
pascal.1041mdrljaca,
-> #1026, ssokorac-> Ja u cdp-u tražim čak sa pascalovim FindFirst i FindNext, i jedva je nešto
-> malo sporiji od acd-a, verovatno to 'drugačije' upisivanje u fajl usporava
kod
-> tebe...
->
-> P.S. Novi CDP je već duplo brži od ACD-a, uskoro ću da ga šiljnem, samo
još
-> prune&graft da završim :).
Ako kažem kod acd-a /recreate onda sam i ja brži ali nikako da ga stigem
kad kažem /qcretae ili /create :(. Više ne koristim rekurziju i milsim da
ne bi trebalo da ga moje upisivanje toliko uspori :(
cope
PS
Pogledaću tvoj novi cdp ali kako radim sa blockread i write ne verujem da ću
toliko usporiti svoj program :(
pss
Pišem online milim ubrzati :)
pascal.1042beast,
-> #1039, .obj>> nego pogledaj strukturu TREEINFO.NCD datoteke, vrlo je prosta
..i ogromna. :) Bolje pogledaj acd.idx, odličan 'školski'
primer zapisivanja samo najneophodnijih informacija :)
A NCD ima stringove iste dužine (12), tako da su većinom
stringovi poluprazni (dakle: 'dos ') što nije baš
elegantno :)
pascal.1043ssokorac,
-> #1039, .obj ─┼┤ iznenadi kad vidi "opa, kako brzo pročitao.. vidi ti njega!" :) A i ja
Ih, NCD brz, dobar fazon :). Probaj cdp O:).
pascal.1044zolika,
-> #1034, ficus>> Pa sad stilovi se razlikuju (zbog toga smo ja i kareem (jankey))
>> definitivno prekinuli da radimo na bilo cemu zajedno.
Kad pomenu KAREEMa (onog od Montenegro?) šta je sa tim čovekom? Postoji li
još na ovim našim širinama (i dužinama)?
pascal.1045.obj,
-> #1043, ssokorac>> iznenadi kad vidi "opa, kako brzo pročitao.. vidi ti njega!" :) A i ja
>
> Ih, NCD brz, dobar fazon :)
:) Mislio sam da on napravi programče koje čita TREEINFO.NCD pa onda da
korisnik kaže "opa, ..." :)
> Probaj cdp O:)
Evo probaj ti OCD O:)) Copright ja 1990 :)
ocd.zippascal.1046ilotina,
HI!
Može li se nekako izvesti sledece.
Ako je grafička kartica hercules onda ide nešto ovako:
var ScreenAddr:absolute $B000:0000;
A ako je neka u koloru:
var ScreenAddr:absolute $B800:0000;
Predpostavljam da se to može izvesti onim takozvanim kondicionim
prevođenjem, ali se ja baš nešto ne razumem u njega.
Interesuje me još da li se kod tog prevođenja program mora
kompjlirati
na onoj mašini na kojoj će da radi (ja barem tako misli)?
Pozdrav Ivan!
P.S. Ja mislim da sam tačno ubo one video adrese:)
pascal.1047lovro,
-> #1046, ilotina=- Ako je graficka kartica hercules onda ide nesto ovako:
=- var ScreenAddr:absolute $B000:0000;
=- A ako je neka u koloru:
=- var ScreenAddr:absolute $B800:0000;
=- Predpostavljam da se to moze izvesti onim takozvanim
=- kondicionim
Moze!
if herc then screenaddr := ptr($B000:0)
else screenaddr := ptr($B800:0);
Lovro
pascal.1048valhala,
Kako da izvedem ovo: skinuo sam sa Sezama fajl sa opisom pcx formata, i sad
bih da napravim program za dekodiranje slika;jedini problem je sto ne znam kako
da OTVORIM .pcx fajl, odnosno bio bih zahvalan kad bi mi neko objasnio kako se
uopste manipulise sa fajlovima u paskalu koji nisu pravljeni u njemu.
Nadam se da ste me shvatili, jer sam pomalo konfljuzan:))
Val.
pascal.1049dejanr,
-> #1048, valhala>> sto ne znam kako da OTVORIM .pcx fajl, odnosno bio bih zahvalan kad bi
>> mi neko objasnio kako se uopste manipulise sa fajlovima u paskalu koji
>> nisu pravljeni u njemu.
Ima raznih načina. Evo najsporijeg, ali za početnike najjasnijeg:
var slika: file of byte;
a: byte;
....
assign(slika, 'ime.pcx');
reset(slika)
while not eof(slika) do
begin
read(slika,a);
...
end;
close(slika)
pascal.1050ssokorac,
-> #1041, mdrljaca ─┼┤ kad kažem /qcretae ili /create :(. Više ne koristim rekurziju i milsim
Naravno da nećeš stići qcreate, zato što traži samo *. direktorijume. :) To
značajno ubrzava...
pascal.1051m.hristodulo,
-> #1027, miroslavn>> Drugi mali problemčić je kako da ulinkujem BGI u .exe fajl?
>> Znam da to može, i da je opisano u nekoj library reference
>> book-u od Borlanda al ja to nemam?
Evo ti fora! Postoji čak i demo u TP6.0 paketu, ali sam
ja to malo prepravio, tako da je dovoljno da u bilo kom trenutku
programa izvršiš InitGraph, i grafika je tu, u EXE-u.
allgraph.zippascal.1052ssokorac,
-> #1046, ilotina ─┼┤ Interesuje me još da li se kod tog prevođenja program mora
─┼┤ kompjlirati na onoj mašini na kojoj će da radi (ja barem tako misli)?
Ma, moš' kompajlirati gde hoćeš samo piši ovako -
if memŠ0:$0449Ć=7 then ScrPtr:=Ptr($B000,0)
else ScrPtr:=Ptr($B800,0);
Tj. ako je na 0:$0449 sedmica onda je u pitanju herkules, a ako nije onda
je EGA/VGA.