pascal.431predragd,
-> #423, lovro> Bilo bi lepo od tebe, pa ako ih imas...
>
Evo ih stižu. Videćeš da na biperu malo šušti, ali ipak radi. žuo
sam da postoji i novija - bolja verzija, ali ne znam tačno gde.
Peđa.
modcode.arjpascal.432predragd,
-> #421, ilazarevic> U kojoj rezoluciji, po difoltu, radi TP program ako je BGI
> drajver EGAVGA?
Zavisi koju karticu imaš. Ako je EGA onda je 640x350, a ako je VGA
onda u 640x480 sve to u 16 boja. Naravno sve to važi za sledeću
proceduricu.
DetectGraph (GraphDriver, GraphMode);
InitGraph (GraphDriver, GraphMode, '');
Peđa.
pascal.433predragd,
-> #414, dejanr> je TP 7 ograničen na DOS. Možda će te zanimati da pogledaš
> preliminarni prikaz Pascala 7.0 u prošlim "Računarima"
Nisam siguran da li sam dobro shvatio taj članak, ali da li BP može
da prihvati sledeće
var
Niz: Array Š1..70000Ć of Byte;
Peđa.
pascal.434bulaja,
**** new file ****
R:\IBMPC\PASCAL\*.*
----------------------
tpti1 arj 132264*+Turbo Pascal Technical Informations (Borland) #1
tpti2 arj 71832*+Turbo Pascal Technical Informations (Borland) #2
Ranije je na Sezamu vec bila datoteka tpti10.arj, ali smo nabavili jos
neke TP TI od Borland-a, pa smo napravili malu reorganizaciu arhiva :).
U tpti1.arj se nalaze uglavnom stvari koje su bile i u tpti10, ali
takodje ima i nekih novih stvari. U tpti10 su se nalazile i neke stvari
za Turbo Prolog (takvu arhivu smo svojevremeno skinuli sa Trickle-a)
koje su sada prebacene u \ibmpc\program\tpro_ti.arj. U tpti2.arj se
nalaze nove stvari vezane za TP 6.0 i novije verzije (TP 4 Win, BP 7.0).
Nadam se da je sve jasno :).
pascal.435dgrbic,
-> #383, ppekovic:: Probao i tako, ali neće :(.
Nekad oće, nekad neće.
Probao i ja, i dobio sledeće rezultate:
1. Font mora da ti bude u tekućem dir-u, jer installuserfont ne prima celu
kobasicu sa punim imenom fajla.
2. žak i onda, nekad oće a nekad neće (?) Ja probao sa onim Borlandovim
fontovima koji se i dobiju uz Pascal, i sa dva je radilo kako treba a sa
dva nikako, to jest, ne baš nikako, funkcija install... je očito
zavirila u fajl, vratila kao rezultat broj fonta isti ko što piše za taj
font u helpu, a ondak... ništa, ružna debela slova.
Probato sa TP 5.0 i sa TC++ neznamkojaverzijamoraobihdaizađemamrzime i
isti su rezultati.
pascal.436dgrbic,
-> #391, pedjak:: Nee... Svaki taster ima samo jedan SCAN kod. Njegova
:: vrednost ide od 1-127. Ukoliko je taster pritisnut onda
:: je sedmi bit resetovan, a ako je taster pušten onda je
:: setovan. Zato se scan kodovi za pritisnut i otpušten
:: taster razlikuju za 128.
E, kako bi bilo lepo da je tako prosto...
Ali nije!
Pogledaj u HelpPC, ima čitava gomila scan kodova koje šalju neki tasteri,
pa se još to razlikuje na AT i PS/2, pa ovo, pa ono...
Mada, za neku normalnu primenu, moglo bi da se uvaži gorecitirano
objašnjenje (osobito ako se radi o programu koji ne pravi egzibicije sa AT
tastaturom, nego treba jednako da radi i na XTu).
pascal.437skerl,
┌───────────────────────────────────────────────────────────────────┐
│ │
│ Documentation for │
│ │
│ TPU2ASM.EXE │
│ │
│ A symbolic disassembler for │
│ Turbo Pascal version 5.0 units │
│ │
│ Copyright (C) 1989 by Per Bent Larsen │
│ All rights reserved │
│ │
│ Version 1.0, March 1989 │
│ │
└───────────────────────────────────────────────────────────────────┘
What it is
──────────────────────────────────────────────────────────────────────────────
TPU2ASM is a symbolic disassembler capable of extracting compiled code from a
version 5.0 Turbo Pascal TPU file. The output is a TASM compatible assembly
file.
How to register
──────────────────────────────────────────────────────────────────────────────
This program is sold under the ShareWare concept. This means that you may keep
a copy of it for a period of 30 days for the sole purpose of testing it. After
you have reviewed it, you should register it if you plan to continue using it.
As a benefit of registration, you will receive the full source code for TPU2ASM
(requires Turbo Professional 5.0 to compile) plus a few public domain utilities
for Turbo Pascal, also written by me. You are encouraged to distribute the sha-
reable version of TPU2ASM along with this documentation to others via BBS or on
diskette.
pascal.438ndragan,
-> #400, inesic/ treba da odbroji tih 'iljadu i(S)teracija. To je gubljenje
Ionako radiš iteracije u petlji; napraviš petlju u petlji i nju teraš do
1000, kad izađe, zaviriš.
pascal.439almi,
Kako da iz pascala pristupim VIDEO memoriji (recimo rez.800x600x256) tako da
mogu direktno da menjam njen sadržaj.
Pozdrav ALMI
pascal.440ssokorac,
-> #417, pedjak ─┼┤ Jel' mogu već sad rezervišem mesto u budućoj grupi za testiranje
─┼┤ novog SUPI-ja, a ? Ajde sredi mi :))
Teško, s obzirom da je puna :). Ali ako bude potrebe, za obimnije
testiranje SUPI-ja 54 od 2.5Mb, napraviću drugu grupu O:).
pascal.441ssokorac,
-> #419, pedjak ─┼┤ A da li će raditi na Herc/mouse ?
Pošto bi onda ružno izgledalo - ne :).
pascal.442ssokorac,
-> #418, pedjak
Ovo sam pravio kada sam probao kako radi. Startuj sa demosvir ime_moda.
Nije ništa efektno, ako tako nešto očekuješ :) samo crta i svira istovremeno.
demosvir.arjpascal.443ssokorac,
-> #421, ilazarevic ─┼┤ U kojoj rezoluciji, po difoltu, radi TP program ako je BGI drajver
─┼┤ EGAVGA?
640x480, vidiš uz pomoć getmaxx i getmaxy :).
pascal.444pedjak,
-> #421, ilazarevic> U kojoj rezoluciji, po difoltu, radi TP program ako je BGI drajver
> EGAVGA?
Pa u onoj rezoluciji koja se prosledi kao parametar procedure
InitGraph ( Driver, Mode, Path )
Znači Mode je odgovoran za rezoluciju.
pascal.445ssokorac,
-> #435, dgrbic ─┼┤ Probao i ja, i dobio sledeće rezultate:
Ja sam probao i radilo mi je ok sa svim fontovima koje sam probao, a ima ih
5. Samo je bio štos da ime mora biti samo 4 slova.
pascal.446dejanr,
-> #433, predragd>> Nisam siguran da li sam dobro shvatio taj članak, ali da li BP može
>> da prihvati sledeće
>>
>> var Niz: Array Š1..70000Ć of Byte;
Ma žalost ne, u tom obliku (nikad pobeći od ta 64 kilobajta :( ). Ipak,
BP 7.0 ima mehanizam koji to obezbeđuje, pogledaj poruku koju sam pre
oko mesec-mesec ipo dana preneo sa BIX-a u okviru koje je izloženo
moguće rešenje.
pascal.447vvelisavljev,
-> #428, vitez.koja{$X+} Uključuje Extended syntax. (!?) Šta mu to dođe?
pascal.448peca.st,
E jedno pitanjce, koje je verovatno glupo, al nikako da gi rešim.
Na tekstualnom ekranu je nešto ispisano. Kako da to nešto, sa određenog dela
ekrana sačuvam? Mislim, nešto kao getimage ali za text mod.
P e C a
pascal.449peca.st,
-> #425, dzakic!->>> Kako da ispraznim bafer tastature?
A kako da ubacim znak u bafer tastature a da ne pritiskam tastaturu?
To mi već odavno treba...
P e C a
pascal.450mjova,
-> #449, peca.st> A kako da ubacim znak u bafer tastature a da ne pritiskam
> tastaturu? To mi već odavno treba...
int 16/05h
pascal.451ilazarevic,
Hvala svima!
pascal.452ilazarevic,
-> #449, peca.st> A kako da ubacim znak u bafer tastature a da ne pritiskam tastaturu?
> To mi već odavno treba...
Pozoveš int 16h, funkcija 05h. U CH turiš scan code, a u CL ascii
kod znaka. U CF ti vraća da li je greška ili ne.
pascal.453pedjak,
-> #436, dgrbic> Mada, za neku normalnu primenu, moglo bi da se uvaži gorecitirano
> objašnjenje (osobito ako se radi o programu koji ne pravi egzibicije sa AT
> tastaturom, nego treba jednako da radi i na XTu).
Ma da :))) potpuno se slažem sa ovim. Kod EXTENDED tastatura
postoje i drugi SCAN kodovi ( sivi tasteri i tako to ). Zoran čivotić
je svojevremeno napisao jedan tekst u "Računarima" o toj temi.
pedja
pascal.454pedjak,
-> #441, ssokorac> A da li će raditi na Herc/mouse ?
> Pošto bi onda ružno izgledalo - ne :).
A da li ćeš uz svaku kopiju SUPI-ja deliti besplatno i VGA i
monitor, da bi sve to izgledalo lepše , a ? :))))))
Na nas sa Herculesom niko ne misli, šmrc :(((
pedja
pascal.455peca.st,
Povodom onog mog pitanja o snimanju tekstualnog ekrana...
Ja sam prvo postavio pitanje, a posle toga mi lovro reče da on otprilike zna
kako bi to trebalo da se uradi. E, on mi objasni to malo u školi, onako iz
glave, ja dođem kući i uz malo muke uspem da napravim to što mi je trebalo...
E, ako nekog zanima, mogu da pošaljem...
P e C a
pascal.456ssokorac,
-> #447, vvelisavljev ─┼┤ š$X+ć Uključuje Extended syntax. (!?) Šta mu to dođe?
Možeš da pozivaš funkcije kao procedure.
pascal.457stomic,
-> #447, vvelisavljev$ {$X+} Uključuje Extended syntax. (!?) Šta mu to dođe?
žini mi se mogućnost ignorisanja vrednost koju vraća funkcija, tj.
isto tretiranje procedura i funkcija (kada je potrebno, naravno).
ST.
pascal.458stomic,
-> #448, peca.st$ E jedno pitanjce, koje je verovatno glupo, al nikako da gi
$ rešim. Na tekstualnom ekranu je nešto ispisano. Kako da to
$ nešto, sa određenog dela ekrana sačuvam? Mislim, nešto kao
$ getimage ali za text mod.
Na $b000:0000 za Hercules i $b800:0000 pa nadalje (4000 bajtova)
su redom slovo, atribut za svaku poziciju na ekranu. Pročitaj
odatle, sačujav, pa posle vrati upisivanjem na isto mesto. Može
preko interrupt-a, ali je sporije (teže?).
ST.
pascal.459dgrbic,
-> #447, vvelisavljev:: {$X+} Uključuje Extended syntax. (!?) Šta mu to dođe?
To mu dođe da možeš funkciju da koristiš i kao proceduru (ko u C-ju),
na primer imaš
function a (i : integer): integer;
pa možeš da staviš
b:=a(1);
a možeš i samo
a(1);
ako ti tako nešto treba.
Može da bude korisno.
pascal.460ppekovic,
-> #455, peca.st>> E, ako nekog zanima, mogu da pošaljem...
Samo napred, sigurno će nekog zanimati.
Paya
pascal.461ssokorac,
-> #454, pedjak ─┼┤ A da li ćeš uz svaku kopiju SUPI-ja deliti besplatno i VGA i
─┼┤ monitor, da bi sve to izgledalo lepše , a ? :))))))
Može, ali SUPI košta 1000Dem. :)
─┼┤ Na nas sa Herculesom niko ne misli, šmrc :(((
Ma, šalim se, radiće, samo neće biti tako lepo :).
pascal.462ssokorac,
-> #455, peca.st ─┼┤ glave, ja dođem kući i uz malo muke uspem da napravim to što mi je
─┼┤ trebalo...
A što jednostavno kad može komplikovano :). Imaš uz TP 6.0 windemo.pas u
kome ima lepo primer i procedure za skidanje dela ekrana.
pascal.463zolika,
-> #448, peca.st>> E jedno pitanjce, koje je verovatno glupo, al nikako da gi rešim.
>> Na tekstualnom ekranu je nešto ispisano. Kako da to nešto, sa određenog
>> dela ekrana sačuvam? Mislim, nešto kao getimage ali za text mod.
Naravno, Modula-2 rešava problem!!! Evo ti procedura pisana na MODULI-2,
koja sadržaj prozora zadate širine i visine, i koordinate gore-levo prenosi
u bafer, a takođe i sa bafera na ekran. Mala podešavanja mislim da će biti
potrebna, u zavisnosti od početne adrese video-memorije. Dakle:
CONST
WindowWidth = 20; (* The width and height of the window with the message *)
WindowHeight = 7; (* can be easily changed *)
BufferSize = WindowWidth*WindowHeight;
TYPE
BufferType = ARRAY[1..BufferSize] OF WORD; (* For putting the contents of
the screen*)
Action = (ToScreen, ToBuffer); (* Which action? *)
PROCEDURE BufferScreen(ScrBegin, Line, Column : CARDINAL;
VAR Buf : BufferType; Mode : Action);
VAR
i, j: CARDINAL; (* this procedure moves block from video memory *)
BegAddr: FarADDRESS; (* with Line and Column as coordinates of top- *)
BEGIN (* -left-handside corner to Buf or from Buf *)
BegAddr:=[ScrBegin: (* which depends on Action. Segment of screen *)
160*(Line-1)+2*(Column-1)]; (* begin is given in the ScrBegin *)
FOR i:=Line TO Line+WindowHeight-1 DO
FOR j:=Column TO Column+WindowWidth-1 DO
IF Mode=ToBuffer THEN
Buf[(j-Column+1)+WindowWidth*(i-Line)]:=BegAddr^;(* move to buffer *)
BegAddr^:=BlankScreen;
ELSE
BegAddr^:=Buf[(j-Column+1)+WindowWidth*(i-Line)];(* ...or to screen!*)
*)
END;
IncFarAddr(BegAddr,2);
END;
BegAddr:=[ScrBegin:160*i+2*(Column-1)]; (* new line *)
END;
END BufferScreen;
Nazovi program kako hoćeš, iskompajliraj ga i uživaj!!!
pascal.464darone,
-> #442, ssokorac>> Nije ništa efektno, ako tako nešto očekuješ :)
>> samo crta i svira istovremeno.
E pa kod mene ili svira ili crta ;) Sad - zavisi
kako ga startujem :))
>> D:\>demosvir.exe
>> Error #1 in music unit, please report to author
>> BGI Error: Graphics not initialized (use InitGraph)
Prvo, što ne reče da mu treba egavegea, jedva ga
nađoh na disku :)) Pazi sad ozbiljno: kada mu dam
parametar oxygene.mod, ali bez egavga u blizini, on
počne da svira, posle par sekundi napiše BGI Error
(...) i nastavi da šušti (logično). Međutim, kada
mu dobacim egavegea, samo crta i ne svira :(((
Buaaaaaaa, zašto?
darone
pascal.465isekulovic,
-> #432, predragd>> Zavisi koju karticu imaš. Ako je EGA onda je 640x350, a ako je VGA
>> onda u 640x480 sve to u 16 boja. Naravno sve to važi za sledeću
>> proceduricu.
Da li to znači da ako se grafika incijalizuje na taj način, na vga
raditi u 640x480 iako se podesi kartica da radi u 1024x768 modu? Ne
zamerite ako je pitanje glupo ja sam hercaš.
pascal.466inesic,
-> #456, ssokorac> Možeš da pozivaš funkcije kao procedure.
???????
žemu to služi, a uz to i ne radi?
pascal.467dzakic,
-> #466, inesic> žemu to služi
Recimo, imam neku proceduru koja treba da uradi nešto i da mi vrati Boolean da
li je posao uspeo ili ne. Recimo, da iskopira datoteku uz jednog u drugi
direktorijum. Ja tu proceduru napišem kao funkciju i stavim da vraća boolean.
Sad, kad mi treba izveštaj da li je posao uspeo ili ne, pozivaću sa
Stat:=MyCopy(s1,s2);
Međutim, ako me ne zanima da li je kopiranje uspelo ili ne, što da džabe
deklarišem promenljivu, lakše staviti samo
MyCopy(s1,s2);
Eto čemu služi, a naravno da radi.
Zak
pascal.468peca.st,
-> #450, mjova!-> int 16/05h
A šta dalje? Ajde malo opširnije!
P e C a
pascal.469dzakic,
-> #468, peca.stNema tu mnogo šta opširnije...
05H Place a keystroke into the keyboard buffer. (11/15/85 BIOS)
Input: CL = ASCII character.
CH = Scan Code byte (or 0 if you don't care).
Output: AL = status: 0=success; 1=buffer full
Function InBuf(c:char):boolean; assembler;
asm mov cl,c
sub ch,ch
mov ah,5
int $16
xor al,1
end;
Funckiji proslediš karakter koji oćeš da staviš u bafer, ona vrati true ako je
uspelo ili false ako nije. Ako nije bitno, pogledaj moju prethodnu poruku.
pascal.470vitez.koja,
-> #447, vvelisavljev#=> {$X+} Ukljucuje Extended syntax. (!?) Sta mu to dode?
Mozes da pozivas funkciju kao proceduru, tj da zanemaris vrednost koja
se vraca kroz ime funkcije (kao u Cu)
pascal.471skerl,
-> #455, peca.st
Posto predpostavljam da to pitas zbog pravljenja nekih
prozora i slicnih stvarcica, saljem jedan jaako upotrebljiv unit
za sad sa prozorima. Pusti demo program koji je vrlo ilustrativan.
Pozdrav,
Skerl.
─────────────────────────────────────────────────────────────────────────
TPW60 March 15, 1988
MULTI-LEVEL WINDOWS
FOR BORLANDS TURBO PASCAL
Version 6.0
FILES
In this version, TPW60.ARC contains
TPW60.TPU - Turbo Pascal window unit
TPW60.PAS - Source for TPW60.TPU
TPW60.OBJ - Object used by TPW60.PAS
TPD60.PAS - Demonstration program
TPW60.TXT - This document file.
USING TPWINDO
You can either leave the TPW60.TPU unit file as a
stand-alone unit or put it in the TURBO.TPL library with
the TPMOVER program. Include TPW60 in your uses
statement.
Rick Fothergill
141 Oak Hill Road
Pittsfield, MA 01201
procedure TPWprint(row,col:integer;strdat:str80;tattr:integer);
procedure TPWfill (row,col,rows,cols:integer;ch:char;tattr:integer);
procedure TPWattr (row,col,rows,cols,tattr:integer);
procedure TPWprintc(row,colL,colR:integer;strdat:str80;tattr:integer);
procedure TPWborder(colornum:integer);
procedure TPWbox(col,row,col1,row1,wattr,wbattr,brdrsel,zoom,sattr,
shadow:integer;TPWptr:byteptr);
procedure TPWrbox(row,col,rows,cols,shadow:integer;TPWptr:byteptr);
procedure TPWtitle(loc,row,col,rows,cols:integer;strdat:str80;
tattr:integer);
procedure MakeWindow(row,col,rows,cols,wtattr,wbtattr,brdrsel,stattr,
shadow,zoom:integer);
procedure MakeBox(row,col,rows,cols,wtattr,wbtattr,brdrsel,stattr,
shadow,zoom:integer);
procedure TitleWindow(dir,tattr:integer;title:str80);
procedure RemoveWindow;
procedure ClearWindow;
procedure PrtWindow(row,col:integer;strdat:str80);
procedure PrtCWindow(row:integer;strdat:str80);
procedure CursorChange(new:integer;var old:integer);
procedure MakeMenu(var menu:menurec);
procedure VideoOn;
procedure VideoOff;
procedure EGA43;
function Attr (fore,back:integer):integer;
pascal.472ssokorac,
-> #464, darone ─┼┤ počne da svira, posle par sekundi napiše BGI Error
─┼┤ (...) i nastavi da šušti (logično). Međutim, kada
─┼┤ mu dobacim egavegea, samo crta i ne svira :(((
žudo da uopšte crta :(. Problem je u mom initgraph-u :), dakle, ako nekome
ne crta, neka stavi egavga.bgi u direktorijum c:ĐtpĐbgi, a ako nema takav
direktorijum - neka ga napravi samo za ovu priliku :). To je valjda to, ako
neće i dalje - viči! :)
pascal.476predragd,
-> #465, isekulovic> Da li to znači da ako se grafika incijalizuje na taj
> način, na vga raditi u 640x480 iako se podesi kartica da
> radi u 1024x768 modu?
Naravno, pod uslovom da koristiš EGAVGA drajver. Za rad sa SVGA
rezolucijama morao bi da koristiš neki SVGA BGI drajver (SVGA16 ili
SVGA256). Nisam baš siguran, ali mi se čini da bi ti i tada
DetectGraph naredba predložila najveću rezoluciju koju podržava ta
kartica.
Peđa.
pascal.477peca.st,
-> #463, zolika!-> Nazovi program kako hoćeš, iskompajliraj
!-> ga i uživaj!!!
Ma idi bre ovako je mnogo komplikovano...
Rešio sam sam, procedura ima dva tri reda...
Evo je:
procedure getchar(x,y:byte;var boja:byte;var ch:char);
type niz=array Š1..4000Ć of byte;
var textekran:niz absolute $b800:$000; šovde staviti $b000 za Herculesć
begin
dec(x);
dec(y);
boja:=textekranŠ2*(x+y*80)Ć;
ch:=chr(textekranŠ2*(x+y*80)+1Ć;
end;
A dalje je lako, samo u matricu slogova ubacuješ pomoću ovoga boju i karakter
sa dela ekrana...
pascal.478peca.st,
Htedoh da napravim neki rezidentni program, kad ono...
Kojim interruptom se očitava interni časovnik?
Mislim, hoću da on nešto uradi na primer na svakih pola sata, pa ne znam kojim
se interruptom to kontroliše... Ajde ko zna neka bači vamo taj interapt!
P e C a
pascal.479drpr,
-> #471, skerl-> TPW60 March 15, 1988
Šteta što si morao ponovo da ga ul-uješ jer sam ja to ulovao
još pre godinu dana (fajl modertori diga ste sada ;)) ali evo
mene zanima asinhorona komunikacija sa com portovima a video
sam da na trickle-u (do koga ja ne mogu da dođem) ima neki
fajlić o tome pa ako ti nije frka bio bi presretan da baciš
neki.
cope
pascal.480peca.st,
-> #467, dzakic!-> Eto čemu služi, a naravno da radi.
Pa to je haos.
Znači samo š$X+ć i onda mogu ovako da radim?
P e C a
pascal.481skerl,
TPU2TPS program je napisao isti covek koji je napisao i
INTRFC61 za dumpovanje tpu-ova. Ovaj program vadi iz SYSTEM.TPU
bootstrap file SYSTEM.TPS kojim se moze napraviti novi SYSTEM.TPU
Moze u dir!
Pozdrav,
Skerl.
────────────────────────────────────────────────────────────────
TPU2TPS - Extracts SYSTEM.TPS from TP6.0/TPW1.0 run-time library
Written by D.J. Murdoch for the public domain, July 1991, after
having my curiosity piqued by Mitch Davis.
Syntax:
TPU2TPS
will read SYSTEM.TPU, and create SYSTEM.TPS, suitable for recompiling
into a new version of SYSTEM.TPU.
What does it do?
Turbo Pascal keeps most of the run-time library in the SYSTEM unit,
which is usually stored in SYSTEM.TPU within TURBO.TPL or TPW.TPL. To
recompile it, you need a special "bootstrap file" called SYSTEM.TPS.
This program, TPU2TPS, extracts the bootstrap file from a compiled
version of SYSTEM.TPU.
What use is it?
If you have SYSTEM.TPS in the current directory, you can compile a new
SYSTEM unit and change the run-time library. Why bother? Perhaps you
don't need any of the standard library; if you're writing a tiny utility
that doesn't use any of its services, there's no point linking in
several K of it that won't be used. The included SYSTEM.PAS is an
absolutely minimal replacement; using it, you can shrink the sample
TEST.PAS from an .EXE size of 1400 bytes down to 128 bytes. Everyone
will think you wrote it in assembler.
How do I use it?
First, get a copy of SYSTEM.TPU from TP 6.0 or TPW 1.0 (or compatible
later versions) in the current directory. You may have to use TPUMOVER
to get it out of TURBO.TPL or TPW.TPL; the syntax to use is
TPUMOVER TURBO *SYSTEM
or
TPUMOVER TPW *SYSTEM
Then, run TPU2TPS. It'll create SYSTEM.TPS (or tell you that something
has gone wrong).
Next, get rid of the original SYSTEM.TPU (keeping a copy of course!),
and compile SYSTEM.PAS. (You may want to make some changes to it
first.) This should give you a new version of SYSTEM.TPU. Don't put it
into *.TPL unless you're very sure of yourself; it is almost certainly
not the one you want to use as a default.
Finally, hide the old SYSTEM.TPU and *.TPL; be sure they aren't on the
path, in the .TPU directory, or in the same directory as your compiler.
Make sure that the new SYSTEM.TPU is available in one of those places,
and compile TEST.PAS or another program of your choice. Don't use any
system procedures or functions; don't use strings, sets, longints,
floating point, or files; don't use dynamic memory or overlays; disable
stack and range checking, IEEE reals, and floating point emulation. All
of those need a real SYSTEM.TPU.
If you use one of those by mistake, you'll be in real trouble: the
compiler doesn't expect you to fool around with SYSTEM.TPU this way, and
it can get very, very confused if it goes looking for services that
aren't there. A more robust SYSTEM replacement would halt with an error
if you tried any of those things, but the included one won't. (There
are over 130 functions/procedures in the real thing; I was too lazy to
code that many stubs!)
tpu2tps.zippascal.482skerl,
Ovaj unit aktivira IBM enhanced tastaturu na racunarima koji
je imaju i simulira je na onima bez nje.
Moze u dir!
Pozdrav,
Skerl.
───────────────────────────────────────────────────────────────────
This unit activates the IBM enhanced keyboard for machines that have
one, and simulates an enhanced keyboard for machines that don't. The
enhanced scan codes will be returned by all normal calls which read
the keyboard, e.g, ReadKey (from CRT), ReadKeyWord (from TPCRT and
supplied here), and even when DOS reads from the keyboard. This unit
should be USEd early in a program's USES list. There are no procedures
to call here -- operation is completely transparent to the program.
The unit interfaces a variable, HasEnhancedKbd, which will be True if
an enhanced keyboard was detected, False otherwise. It interfaces a
second variable, EnableEnhanced, which defaults to true. If you set
this variable to False, the ENHKBD special functions will be disabled
until you set the variable to true again.
The following table summarizes the keys which are affected by using this
unit. The entries are the values of the scan word in hex. The high byte
of the scan word is the scan code, the low byte the ASCII character. If
the low byte is 00, the high byte will be returned on the next call to
ReadKey. Any keys not listed are returned in the usual manner (see the
Turbo Pascal 4.0 manual, first printing pages 571-572, for a scan code
chart). See Notes, following the table, for the key to special symbols.
Plain Shift Control Alt
----- ----- ------- ----
F11 8500% 8700% 8900% 8B00%
F12 8600% 8800% 8A00% 8C00%
Esc 011B 011B 011B 0100*
Backquote 2960 297E 2960 2900*
Backspace 0E08 0E08 0E7F 0E00*
Tab 0F09 0F00 9400* A500*
Left Brack 1A5B 1A7B 1A1B 1A00*
Right Brack 1B5D 1B7D 1B1D 1B00*
Backslash 2B5C 2B7C 2B1C 2B00*
Semicolon 273B 273A - 2700*
Quote 2827 2822 - 2800*
Enter 1C0D 1C0D 1C0A 1C00*
Comma 332C 333C - 3300*
Period 342E 343E - 3400*
Slash 352F 353F - 3500*
Insert 5200 5230 9200* A200#
Del 5300 532E 9300* A300#
Home 4700 4737 7700 9700#
End 4F00 4F31 7500 9F00#
PgUp 4900 4939 8400 9900#
PgDn 5100 5133 7600 A100#
Up 4800 4838 8D00* 9800#
Down 5000 5032 9100* A000#
Left 4B00 4B34 7300 9B00#
Right 4D00 4D36 7400 9D00#
Pad-Asterisk 372A ! ! 3700# (numeric keypad keys)
Pad-Minus 4A2D 4A2D 8E00* 4A00#
Pad-Plus 4E2B 4E2B 9000* 4E00#
Pad-5 4C00* 4C35 8F00* 9C00#
Notes:
- These keystrokes are ignored.
* These keystrokes are not normally returned by the non-enhanced keyboard.
# These keystrokes are not normally returned by the enhanced keyboard.
! These keystrokes control printscreen and print echoing. They cannot
simulate the effect of the enhanced keyboard, which has the Asterisk and
PrtSc keys separated.
% The F11 and F12 keys are returned only if they actually exist on the
keyboard.
With a few exceptions, the EnhKbd unit returns results identical to
those of the enhanced keyboard BIOS. One difference makes the enhanced
keyboard simpler to use in a program: those scan words which normally
contain E0 in the low byte to indicate that the key is specific to the
enhanced keyboard (like the dedicated cursor keys) will have the low
cleared to zero by EnhKbd.
Keys marked with # are normally ignored by the enhanced BIOS. By defining
these numeric keypad keys when Alt is pressed, the usual ability to enter
arbitrary keys on the numeric keypad is disabled. Within applications, the
ability to use alt-shifted arrow keys will generally be more useful. The
arbitrary keys from the numeric keypad are still available by pressing both
Alt and Left Shift simultaneously.
tpenhkbd.zippascal.483skerl,
Unapredjene rutine za mnozenje, deljenje, korenovanje,
sin, cos, arctan, exp i ln za racunare i programe koji rade sa
real tipom i koji su bez koprocesora.
Moze u dir.
Pozdrav,
Skerl.
───────────────────────────────────────────────────────────────────────
Improved Floating Point Subroutines for Turbo Pascal
This software package is meant to be a superior alternative for Turbo
Pascal's built in floating point library for the "real" format. Programs
using the "real" format for intensive numeric computation can benefit
from this package when run on a computer without a numeric co-processor.
To use this package, you should have Turbo Pascal version 4.0 or later.
The library is in the form of a TPU file. To use this library, you need
to add the statement "uses rlib;" at the beginning of your program. The
library consists of subroutines for floating point multiplication,
division, sqrt, sin, cos, arctan, exp and ln. To get the equivalent of
x*y in your program, just substitute _mul(x,y). Similarly, to get x/y,
use _div(x,y).(x and y can themselves be expressions instead of
variables.) To get the other functions, just add an underscore before
the equivalent TP definition. For example, _sin(x) for sin(x).
Creating RLIB.TPU
Since TPU files created using different versions of Turbo Pascal are,
in general, incompatible with one another, the TPU file has to be
compiled using your current version of Turbo Pascal. To create RLIB.TPU,
compile RLIB.PAS to disk, making sure that the correct path to the OBJ
files which come in this package is specified in the compiler. This
package also comes with a program 'TEST.PAS' which can be used to compare
this package with Turbo Pascal's. The average speed improvement ranges from
20% for multiplication to about 1200% for sqrt. The "Savage" option is
a benchmark to test the accuracy of the routines. The lower the residual
error, the better is the accuracy of the routines. This package can be
seen to be superior than Turbo Pascal's by running the "Savage" option.
Error Handling
When a floating point error occurs, the type of error and the address
where the error occured in the main program are displayed and the
program is halted. Errors are of three types-division by zero, overflow,
and illegal function call. If you want, you can write your own error
handling routine. The rules are:
1. The global pointer variable matherrptr declared in RLIB.TPU should
be set to the address of your routine at the beginning of the program.
Eg., matherrptr:=@myerrproc;
2. The error handling routine should be compiled with the far option
turned on.({$F+})
3. The input parameters to the error handling routine are an integer
and a pointer in that order. The integer contains the type of floating
point error (1-division by zero, 2-overflow, 3-illegal function call)
and the pointer contains the address of the main program from where the
call was made. Even if you don't use these parameters, they should appear
in the procedure declaration. Also, do not use "var" in the input
declaration. A typical error handling routine might look like:
procedure myerrproc(typeoferror:integer;erroraddr:pointer);
begin
writeln('Its debugging time!');
end;
Failure to follow the above rules might result in a crashed program!
The error handler can pass control back instead of halting. In that case,
the value returned by the floating point subroutine would be 1.7E38 in
magnitude, the sign depending on the input variables to the routine.
tpreal2.zippascal.484skerl,
-> #479, drpr│ mene zanima asinhorona komunikacija sa com portovima a
│ video sam da na trickle-u (do koga ja ne mogu da dodem)
│ ima neki fajlic o tome pa ako ti nije frka bio bi
│ presretan da bacis neki.
└─────
Evo jednog paketcica sa trickle-ta.
Pozdrav,
Skerl.
──────────────────────────────────────────────────────────────────
INTRODUCTION
This utility is an answer to the many public domain serial port
routines which I have acquired in the quest for good RS-232 support
under Turbo Pascal. Unlike the others, this one works. Not only
does it work, but it also allows you to use as many COM ports as
you want at the same time. Designed to be relatively simple and
easy to use, I hope many will benefit from it.
FEATURES
- Easily expandable interrupt routine
- Interrupt driven send and receive routines
- Carrier Detect monitoring for modem support
- Turbo Pascal 4.0 & 5.x compatible TPU source code
- Convenient TPU format keeps your code uncluttered
- Easy to customize for your hardware, and software requirements
- Uninstalls the interrupt handlers on abnormal program termination
- Number of COM ports limited only by buffer sizes & Turbo memory limits
- A TPU which handles 4 ports can be less than 8K in size
- Easy to use even if you don't understand how it works
- All COM ports handled concurrently in the background
- Example TTY and port setup routines included
- Optional error checking and error messages
- Extensive documentation for software use
- Heavily documented source code
comm-tp5.zippascal.485skerl,
-> #479, drpr│ mene zanima asinhorona komunikacija sa com portovima a
│ video sam da na trickle-u (do koga ja ne mogu da dodem)
│ ima neki fajlic o tome pa ako ti nije frka bio bi
│ presretan da bacis neki.
└─────
Evo jos jednog paketcica sa trickle-ta.
Pozdrav,
Skerl.
──────────────────────────────────────────────────────────────────
1.1 FEATURES
The LiteComm-TP Toolbox(Tm) is a set of powerful routines designed to
provide easy access to the full capabilities of the PC's asynchronous
communications ports. The LiteComm-TP ToolBox supports fully
interrupt-driven and buffered communications support on COM1 through
COM4 simultaneously. Now you can quickly incorporate sophisticated
communications support in your applications without having in-depth
knowledge of how the hardware functions.
LiteComm-TP is implemented as a set of 4 units for the basic product,
with additional units providing the protocol-engine capability. The
protocol engines are a part of the registered version of the package.
ltcomm50.arcpascal.486pedjak,
-> #478, peca.st> Mislim, hoću da on nešto uradi na primer na svakih pola sata, pa ne znam
> kojim se interruptom to kontroliše... Ajde ko zna neka bači vamo taj
> interapt!
Interapt 21H, funkcija 2CH - očitavanje sistemskog vremena
==========================================================
Poziv sa: Rezultat:
AH=2CH CH=sati
CL=minuti
DH=sekunde
DL=stotinke
Hm, samo ne znam zašto bi koristio interapte kad već u Pascalu imaš
proceduru GetTime koja radi istu stvar ?
pedja
pascal.487peca.st,
-> #486, pedjak!-> Hm, samo ne znam zašto bi koristio
!-> interapte kad već u Pascalu imaš
!-> proceduru GetTime koja radi istu stvar ?
Pa hoću da to bude rezidentno! Kako drugačije da stalno očitavam vreme u
rezidentnom programu? Za gettime znam, koristim ga ali meni treba ovo:
setintvec(????????,čradi_to_i_to);
meni treba ovo ????????
P e C a
pascal.488isekulovic,
Pišem jedan program sa grafikom u tp-u 6.0 i često mi se događa da kad
startujem program pored onog što hoću na ekranu se pojave i razne brljotine.
Ako prekinem program pa ponovo strtujem brljotina ama baš nikad nema.
Takođe ih nema ama baš nikad kad program iskompjaliram u .exe pa ga onda
startujem. Šta je uzrok ovoga?
pascal.489ilotina,
-> #488, isekulovic> Pišem jedan program sa grafikom u tp-u 6.0 i često mi se
> događa da kad startujem program pored onog što hoću na
> ekranu se pojave i razne brljotine.
Da ti se to ne bi događalo u meniju Options, ili beše negde
drugde imaš opciju "save graphics screen"(ili tako nešto) pa
je postavi na on i problem je rešen.
Ivan
pascal.490ilazarevic,
-> #488, isekulovic> Ako prekinem program pa ponovo strtujem brljotina ama baš nikad nema.
Može da bude da treba da se uradi jedno ClearDevice. Procedura je
u graph unitu, mora da se već bude u graph režimu. Trebalo bi da ti
ona očisti izlaz na ekran u grafici, tako da nema problema.
pascal.491drpr,
-> #485, skerl-> Evo jos jednog paketcica sa trickle-ta.
-> Pozdrav,
-> Skerl.
E jesi maher još ako ih poteram da rade na tp6.0 eto moje
sreće!
cope
pascal.492peca.st,
Verovatno je već bilo ovakvo pitanje, al ajde...
Da li je ikako moguće da se egavga.bgi uključi u exe fajl, a ne da ga
akam zajedno sa njim, kao poseban fajl? Ajde odgovor...
P e C a
pascal.493skerl,
-> #491, drpr│ -> Evo jos jednog paketcica sa trickle-ta.
│ -> Pozdrav,
│ -> Skerl.
│
│ E jesi maher jos ako ih poteram da rade na tp6.0 eto moje
│ srece!
└──────
Ja sam ih poterao bez problema na sestici!
Skerl.
pascal.494drakce,
-> #492, peca.st
│ Da li je ikako moguće da se egavga.bgi uključi u exe fajl, a ne da ga akam
└───────
Moguće je. Uz TP 6.0 dobija se program BGILINK.PAS, gde je sve na primeru
objašnjeno. Možeš ubaciti i fontove u EXE fajl.
Pozdrav
pascal.495predragd,
Ima li neko iskustva sa korišćenjem BGI drajvera za štampače (na
SEZAM-u PRBGI094.ZIP). Naime pokušao sam da nešto odštampam na HPLJ
III i nije išlo, dobio sam neke kuke i kvake. Doduše drajver je
namenjen za HPLJ II, ali ipak mislim da bi trebalo da radi. Postoji li
možda novija verzija.
Peđa.
pascal.496stomic,
-> #487, peca.st$ !-> Hm, samo ne znam zašto bi koristio
$ !-> interapte kad već u Pascalu imaš
$ !-> proceduru GetTime koja radi istu stvar ?
$
$ Pa hoću da to bude rezidentno! Kako drugačije da stalno
$ očitavam vreme u rezidentnom programu? Za gettime znam,
$ koristim ga ali meni treba ovo:
$ setintvec(????????,čradi_to_i_to); meni treba ovo ????????
Ako misliš da kačiš proceduru na interrupt za očitavanje vremena
ne verujem da ćeš baš postići što želiš, tj. tvoja procedura će
biti pozvana tek kada se očitava vreme.
Okači proceduru o $08 interrupt koji se okida svakih 55ms, pa u
tvojoj proceduri uvećavaj neki brojač, koji kada dostigne x, gde je
x=30*60*100/55, uradi šta želiš.
Koliko sam razumeo ovo si tražio. Right?
ST.
pascal.497ilazarevic,
-> #492, peca.st> Da li je ikako moguće da se egavga.bgi uključi u exe fajl, a ne da ga
> akam zajedno sa njim, kao poseban fajl? Ajde odgovor...
Može sa RegisterBGIDriver. Pogledaj u Helpu sintaksu i ostalo.
pascal.498peca.st,
-> #494, drakce!-> Moguće je. Uz TP 6.0 dobija se program
!-> BGILINK.PAS, gde je sve na primeru
!-> objašnjeno. Možeš ubaciti i fontove u EXE
!-> fajl.
TOOOOO! Hvala puno!
P e C a
pascal.499skerl,
Jos jedan program za dump-ovanje tpu-ova koje je
napravio tp6.0.
Ovo bi moglo da ide uz INTRFC u PASCAL dir.
Pozdrav,
Skerl.
───────────────────────────────────────────────────────────────────────
TPUINFO.EXE
===========
TPUINFO is a utility that will list various facts concerning .TPU files
created by Turbo Pascal v. 6.0. TPUINFO will accept wild cards allowing
a listing of multiple .TPU files within a directory. A sample execution
of TPUINFO would be:
C>TPUINFO d:\TURBO\TVISION
TPUInfo version 6.0 Copyright (C) 1990, J.P. Ritchey
Unit Flags Init Code Data Actual Name
-------- ------------ --- ------ ------ -----------
OBJECTS $N-,O+,D-,L- 8298 456
DRIVERS $N-,O-,D-,L- Yes 2775 734
MEMORY $N-,O+,D-,L- 559 10
VIEWS $N-,O+,D-,L- 21866 864
HISTLIST $N-,O+,D-,L- 489 14
MENUS $N-,O+,D-,L- 9615 414
DIALOGS $N-,O+,D-,L- 12607 1372
COLORSEL $N-,O+,D-,L- 6894 622
APP $N-,O+,D-,L- 3561 628
MSGBOX $N-,O+,D-,L- 1463 84
STDDLG $N-,O+,D-,L- 12040 932
TEXTVIEW $N-,O+,D-,L- 2495 304
The "Unit" column is the name of the .TPU as it is found on disk.
The "Flags" column lists the state of those compiler options that are
detectable by a simple inspection of a .TPU file.
The "Init" column will contain "Yes" if the unit contains initialization
code.
The "Code" column indicates the number of bytes of code contained within
the .TPU.
The "Data" column indicates the number of bytes of data (both
initialized and unitialized) contained within the .TPU.
TPUINFO has a command line option, Verbose (enabled by specifying /v on
the command line), that will list the source and object files used to
create the .TPU in addition to the information listed when /Verbose is
not specified. An example follows:
C>TPUINFO D:\TURBO\TVISION\DRIVERS /v
TPUInfo version 6.0 Copyright (C) 1990, J.P. Ritchey
Unit Flags Init Code Data Actual Name
-------- ------------ --- ------ ------ -----------
DRIVERS $N-,O-,D-,L- Yes 2775 734
PAS 11/05/90 06:00:00a DRIVERS.PAS
OBJ SYSINT.OBJ
OBJ FORMAT.OBJ
TPCONFIG.EXE
============
This utility will take your IDE configuration file (TURBO.TP) and create
a configuration file (TPC.CFG) for use with the command line compiler.
It will also take as input a TPC.CFG file and update your TURBO.TP file
to reflect the options contained in the TPC.CFG file.
tp6util.zippascal.500skerl,
┌──────────────────────────────────┐
│ Multitasking Routines for TP 6.0 │
└──────────────────────────────────┘
Copyright (c) 1991,1992 A.B.S. - ALL RIGHTS RESERVED
2.00 First Distributed Release
2.10 Fixed Windows Checking
2.11 Took out VMiX Code
2.20 Fixed DDOS Code - Locking up Novell
2.21 Fixed Code - Tried to be too smart for my own good
CONST
MultiTasker : Boolean = True;
DV_Loaded : Boolean = False; {DESQview 2.26+}
TV_Loaded : Boolean = False; {DV 2.00-2.25, TaskView,
TopView, OmniView, & clones}
DDOS_Loaded : Boolean = False; {DoubleDOS}
WIN386_Loaded : Boolean = False; {Windows in 386enh mode}
PROCEDURE TimeSlice;
{Gives up one Time Slice, call while polling the keyboard for input,
has no effect if a multitasker is not present}
PROCEDURE PreventSwitching;
{Prevents Task Switching until ResumeSwitching is called, used for
critical code, don't leave on for too long!, has no effect if a
multitasker is not present}
PROCEDURE ResumeSwitching;
{Resumes Task Switching, has no effect if a multitasker is not present}
FUNCTION MulVersion : Word;
{Returns the Version Number for TopView, DESQview 2.26+, and Win386,
0 for all others or none, OmniView - who knows}
FUNCTION VirtualBuffer : Word;
{Returns the Virtual Buffer for Direct Screen Writes
Should only be called once for DESQview & TV, should be called
EVERY write for DDOS, returns 0 if no multitasker is present}
PROCEDURE TV_UpdateBuffer(Num : Word; Buffer, CharOffset : Word);
{Updates the screen from the virtual buffer. Num is the number of
sequential characters that have been modified. Buffer is the
VirtualBuffer. CharOffset is the offset of the first character
modified. Do NOT call with Num = 0! Only needed for TV, DESQview
will discontinue the automatic screen updating if this is called!,
might crash if TV/DV is not present!}
FUNCTION DDOS_Visible : Boolean;
{Returns True if the current task is the visible task, might crash if
DDOS_Loaded is False!}
tpmul221.zippascal.501drpr,
-> #493, skerl
-> Ja sam ih poterao bez problema na sestici!
-> Skerl.
Ipak izgleda najbolji fajl koji si poslao ltcomm50.arc neće da
radi na šestici :((.Prijavljuje mi lošu verziju tp a na moju
probu da u zaglavlju promenim broj na TP9 kaze mi da ima
neki invalid u zapisu tpu-a :((.Elem izgleda ili da se vrćem
nazad na 5.5 ( ili treba na 5.0) ili da čekam bolja vremena.
cope
pascal.502peca.st,
-> #496, stomic!-> Koliko sam razumeo ovo si tražio. Right?
Ma to čoveče! Onaj obrazac što si napisao za izračunavanje 30min jasan mi je,
mada sam ja to stavio tek primera radi. Hvala puno, meni je baš trebalo nešto
ovako što se vrlo često izvršava...
Hvala!
P e C a
P.S. Ima li neki koji se izvršava češće od 55ms? :)
pascal.503valhala,
e ovako, moj glupavi turbo paskal nece da prihvati asemblerske naredbe(mov,
ret, push...), iako sam mu zadao ono "asm". Sta da radim?
pascal.504ssokorac,
-> #500, skerl ─┼┤ has no effect if a multitasker is not presentć
Je l' ovo znači da rutine rade samo pod DV-om, Windowsima i sličnima?
P.S. Svaka ti čast za fajlove, samo napred!
pascal.505dejanr,
-> #503, valhala>> e ovako, moj glupavi turbo paskal nece da prihvati asemblerske naredbe(mov,
>> ret, push...), iako sam mu zadao ono "asm". Sta da radim?
Za početak, da li je "glupavi turbo pascal" verzija 6.0 ili neka ranija?
Pre 6.0 nije ni mogao da se integriše asembler u program.
pascal.506skerl,
-> #501, drpr│ Ipak izgleda najbolji fajl koji si poslao ltcomm50.arc
│ nece da radi na sestici :((
└─────
Na zalost, nisam primetio da neostaje source za tpu.
Videcu da li mogu da isceprkam nesto pisamo bas za sesticu.
Pozdrav,
Skerl.
pascal.507skerl,
Evo jedne udarne doze raznoraznih Turbo Pascal 6.0
unit-a. Evo spiska unita koji ce biti poslati.
PSDIR101.ZIP Directory functions for Turbo Pascal 6
PSLST100.ZIP List functions for Turbo Pascal 6
PSPPD100.ZIP Database functions for Turbo Pascal 6
PSSTK101.ZIP Stack functions for Turbo Pascal 6
PSSTR102.ZIP String/keyboard functions for Turbo Pascal 6
PSDSM103.ZIP Replaces GetMem and FreeMem for Turbo Pascal 6
PSXMH103.ZIP Access to XMS heap for Turbo Pascal 6
PSGUI130.ZIP GUI for Turbo Pascal 6
Ovo automatski treba da ide u dir!
Pozdrav,
Skerl.
pascal.508skerl,
PSDIR101.ZIP Turbo Pascal 6 directory functions (source/NG)
Various directory functions for Turbo Pascal 6. Download this if you
download the PSGUI. Free Software, No Registration Required. (Postcard
would be nice). Source is included. Popup help for the unit is
available in .NG format.
pascal.509skerl,
PSLST100.ZIP List functions for Turbo Pascal 6
Free Software, No Registration Required. (Postcard would be nice).
Source is included. Popup help for the unit is available in .NG format.
pslst100.zippascal.510skerl,
PSPPD100.ZIP Database functions for Turbo Pascal 6
Advanced database support. Allows you to store files in files. This
saves disk space and is ideal for storing many little files (like
icons). You can request a file from the database as if it were a
normal file and thus makes programs more professional without major
code modification.
Free Software, No Registration Required. (Postcard would be nice).
Source is included. Popup help for the unit is available in .NG format.
pascal.511skerl,
PSSTK101.ZIP Stack functions for Turbo Pascal 6
Various stack functions. This emulates a second stack in Turbo
Pascal 6 and thus allows one to push and pop various variables.
Free Software, No Registration Required. (Postcard would be nice).
Source is included. Popup help for the unit is available in .NG format.
psstk101.zippascal.512skerl,
PSSTR102.ZIP String/keyboard functions for Turbo Pascal 6
Many fast assembler routines for Turbo Pascal 6. Various string,
keyboard and other general procedures have been implemented. Required
by PSGUI.
Free Software, No Registration Required. (Postcard would be nice).
Source is included. Popup help for the unit is available in .NG format.
pascal.513skerl,
PSDSM103.ZIP
This unit replaces GetMem and FreeMem. When using the Turbo
Pascal Heap (in Version 6), you will find that you are not
permitted to get more than 64 kb.
By using {$M <StackSize>,0,0} in your program, no heap is allocated
for your program. This leaves all that memory available to DOS.
You can then get blocks of this memory from the procedures in this
unit, even blocks greater than 64 kb.
This unit can also replace the Graph.GetImage function as the
function does not give values for sprites greater than 64 kb in
size.
To use this unit, simply place DosMem as the last unit in your
Uses statement. Any GetMem's will then use the DOS heap.
If you still want to use the Pascal Heap you can, using
System.GetMem.
psdsm103.zippascal.514skerl,
PSXMH103.ZIP
This unit gives the pascal programmer access to an XMS heap for
Pascal. It uses a similar system to the Pascal standard heap.
This unit is ideal for programmers requiring many large blocks of
data.
Requirements
Turbo Pascal 6
TPXMS.TPU (Public Domain by Vernon E. Davis, Jr.)
DosMem (Public Domain by Pure Power Software, PSDSM)
Both PSDSM and TPXMS should be available where you obtained this
file.
How it works
HIMEM requires a request for memory. Usually HIMEM only permits
32 blocks, that is, only 32 handles are issued. Thus requesting
a new handle each time is silly as one often uses more than 32
pointers in a program, often more than the 128 HIMEM maximum.
So, when you allocate your XMS heap with GetXMSHeap, the unit takes
a block (one handle) from HIMEM. You can then access this memory
in any size chunks you wish, from blocks of 1 byte to blocks of
640 kb. The unit has its own handles and can allocate many handles
to the XMS heap (set by MaxPointers).
Your programs will now use handles to the XMS heap (not to XMS
controlled by HIMEM), not only pointers. Handles point to the XMS
heap, pointers point to the Pascal or DOS heap (see DosMem).
When you request a block of memory from the unit, you are issued
with a handle, that is, a unique number, a word. When you want
to access the data in that block of memory, you will have to
request it with AwakePointer which places it in conventional memory
for you. Once you have used it, you then copy it back to XMS with
SleepPointer.
It's actually much easier than it sounds. All you have to do is
awaken a pointer before using it. You must also remember to put
it in sleep mode again when you are done with it.
This unit supports up to 2 Gb of XMS, which should do for most
of your programs. ;-)
psxmh103.zippascal.515skerl,
PSGUI130.ZIP Pure Power GUI for Turbo Pascal 6
Requirements:
- Turbo Pascal 6
- EGA, VGA or Super VGA
- Pure Power Units: Strings (v1.02) [Not Included],
Directories (v1.01) [Not Included],
Keyboard Definitions,
Icons,
BGI PGUI Mouse Driver
These units should be available at the same site / BBS that you found this
unit.
- Expert Help or Norton Guides
Optional:
- Mouse with Mouse Driver
- Super VGA BGI Drivers
Features:
- Internal BGI Mouse Driver (Still needs standard mouse driver)
- Supports Mouse Cursors with 64k colours
- Mouse Supports Super VGA Modes
- Easy Window Popup Routines
- Fast
- Popup Help in .NG Format
- Source Included
- Free
- User Support
You can make nice looking programs quickly. Save yourself weeks of
programming by using units available on the public domain and units
available as shareware. Today so many fine programmers are releasing
their source code for the benefit of software in general. Make use
of this.
pascal.516kenza,
-> #503, valhala [;> e ovako, moj glupavi turbo paskal nece da prihvati asemblerske
[;> naredbe(mov, ret, push...), iako sam mu zadao ono "asm". Sta da radim?
Koji je to pascal!?
pascal.517ssokorac,
-> #514, skerl ─┼┤ TPXMS.TPU (Public Domain by Vernon E. Davis, Jr.)
─┼┤ DosMem (Public Domain by Pure Power Software, PSDSM)
Još ako možeš i ova dva da pošalješ, i častim te pićem. Mada si ga i ovako
zaslužio :).
pascal.518valhala,
-> #505, dejanr"glupavi paskal" je 5. ja stvarno nisam znao da ne moze da prihvati asm. ima li
drugog nacina da se unesu asemblerske naredbe u njega? i ako nećš_üq5šťđp
i ako nema znaci li to da su primeri iz racunara 84 za mene neupotrebljivi?
pascal.519dejanr,
-> #518, valhala>> "glupavi paskal" je 5. ja stvarno nisam znao da ne moze da prihvati asm.
>> ima li drugog nacina da se unesu asemblerske naredbe u njega?
Ne direktno, ali se može napraviti .OBJ fajl pa se linkovati u Turbo Pascal
program direktivom {$L }. Naravno, pre toga ga asembliraš pomoću MASM-a
ili TASM-a. Pogledaj u uputstvu (za 5.0/5.5), ima čitavo poglavlje o
povezivanju Pascal/Assembler.
pascal.520isekulovic,
Par pitanja u vezi Tp-a: (čega drugog:)
1.Da li je u grafičkom režimu rada moguće uraditi na neki način
treptanje kao što to može u textulanom režimu dodavanjem 16 na boju ili
se moram kačiti na int 08?
2.Da li je moguće iz programa postaviti vrednost enviroment promenljive?
Razmišljao sam preko procedure exec i set ime_prom=to_i_to ali da li će
uspeti ako je program startovan iz npr. NC-a jer negde sam pročitao da
ako je aktivan NC kucanje set ime_prom.... na promptu ne daje željeni
rezultat.
3.Nije mi najasnija sintaksa naredbe SetUserCharSize. Prema helpu
ona glasi SetUserCharSize( MultipX, DivX, MultipY, DivY :Word);
Šta je koji parametar? Da li se sa vrednošču koju prosledim u MultipX
pomnoži neka osnovica, a sa vrednošču u DivX podeli? Ako jeste kolika je
ta osnovica u pixelima? Možda je osnovica veličina karaktera font pri
veličini 1 ?
Pozdrav, Ivan
pascal.521bulaja,
-> #507, skerl│Evo jedne udarne doze raznoraznih Turbo Pascal 6.0 unit-a.
└───
Thanks! Eno ga ponesto vec prebaceno u dir (gui i str),
a i ostalo ce cim ga pregledam.
pascal.522peca.st,
-> #503, valhala!-> ret, push...), iako sam mu zadao ono
!-> "asm". Sta da radim?
Kolko ja znam, ne može asm nego mora assembler.
Nisam siguran.
P e C a
pascal.523dejanr,
-> #520, isekulovic>> 2.Da li je moguće iz programa postaviti vrednost enviroment promenljive?
Imaš baš u januarskim "Računarima" tekst o tome. Doduše, primeri su u C-u
ali je stvar više do DOS-a nego do C-a, tako da se lako prepravlja na
asembler, paskal, bilo šta.
Ukratko, moguće je, ali ne baš jednom funkcijom nego treba malo više koda.
pascal.524cubro,
Evo pokusacu poslati TUTILITY program za rekonstrukciju PARADOX
datoteka. Ovo ce dobro doci svima koji koriste ObjectVision,
Paradox, QuattroPro, itd..., znaci sa DB datotekama. Program
sam DL sa Borland BBS-a i predlazem bulaji da stavi na neko
prikladno mesto, jer o ovom programu se govori u oficijelnoj
knjizi Borlanda. Ja sam stavio ovde jer Engine radim u Pascalu,
ali sam mogao staviti bilo gde. Program je ODLICAN !!!
tutil40.zippascal.525kenza,
-> #522, peca.st [;> Kolko ja znam, ne moze asm nego mora assembler.
Stavlja se asm,problem je u verziji ;(
pascal.526skerl,
-> #521, bulaja││ Evo jedne udarne doze raznoraznih Turbo Pascal 6.0
││ unit-a.
│└───
│ Thanks! Eno ga ponesto vec prebaceno u dir (gui i str),
│ a i ostalo ce cim ga pregledam.
└────
Nema na cemu, jedino pozuri jer gui trazi i neke od onih
ostalih da bi radio. Bas su haos :)
Pozdrav,
Skerl.
pascal.527skerl,
-> #517, ssokorac│ ─┼┤ TPXMS.TPU (Public Domain by Vernon E. Davis, Jr.)
│ ─┼┤ DosMem (Public Domain by Pure Power Software, PSDSM)
│
│ Jos ako mozes i ova dva da posaljes, i castim te picem.
│ Mada si ga i ovako zasluzio :).
└────
TPXMS je poslao pedjak, fajl je uz poruku 6.270, a
DosMem je poslat u ovom naletu :) PSDSM103.ZIP uz poruku 6.513.
Pozdrav,
Skerl.
p.s. Racunam na picence :)
pascal.528zolika,
-> #505, dejanr
>> Za početak, da li je "glupavi turbo pascal" verzija 6.0 ili neka ranija?
>> Pre 6.0 nije ni mogao da se integriše asembler u program.
Uzmi TopSpeed Modulu-2, tu SIGURNO može da se sve pomeša (uključujući i
asembler) k'o šopska salata...
pascal.529drpr,
-> #523, dejanr-> Imaš baš u januarskim "Računarima" tekst o tome. Doduše,
-> primeri su u C-u ali je stvar više do DOS-a nego do C-a,
-> tako da se lako prepravlja na
A da li bi , kad smo već kod januarskih računara, neko bio
jubazan da prevede onaj algoritam za slučajne brojeve sa C-a na
TP jer sam ja nepismen što se C-a tiče a taj programčić me baš
zanima :))
cope
pascal.530eagle,
-> #496, stomic> Okači proceduru o $08 interrupt koji se okida svakih 55ms, pa u
> tvojoj proceduri uvećavaj neki brojač, koji kada dostigne x,
> gde je x=30*60*100/55, uradi šta želiš.
Sve je to lepo radilo...until this:
Npr. napravim program koji svaki minut ispisuje " Miloš car",
startujem nešto što radi sa diskom(npr. CHKDSK),to počne da radi sa istim,
dodje vreme za cara,pa pošto timer ima prednost nad diskom,
pojavi se poruka " Miloš car " i disk prestaje da radi,
što rezultuje padom sistema :(
Jel se može ovo izbeći?
pascal.531eagle,
Jel ima neko SVGA driver(800*600*256), ali za OAK VGA? Ovaj sa Zezama mi za
svaki mod iznad 320*200*256(obicna Vga) ispisuje " Your board does not
support this mode " :(, a inace imam Svga :).
pascal.532ssokorac,
-> #527, skerl ─┼┤ p.s. Racunam na picence :)
Zaslužio si :).
P.S. GUI-demo neće da mi radi bez .ico fajlova, kojih nigde nema :(.
pascal.533dejanr,
-> #528, zolika>> Uzmi TopSpeed Modulu-2, tu SIGURNO može da se sve pomeša (uključujući i
>> asembler) k'o šopska salata...
Može i u TP-u... Ja sam toj Moduli ozbiljno hteo da dam šansu pre par
godina, čak sam pomišljao da pređem na nju. Međutim, posle vrlo opsežnih
testiranja i poređenja, došao sam do zaključka da je za rad daleko
nepogodnija od Turbo Pascala pa je palo jedno (tj. dva, pošto sam probao
Logitech i TopSpeed) veliko XRD ;)