pascal.1258nikac,
-> #1254, vitez.koja>■ Srećan slučaj, pogodilo se da se program slaže sa ostalim
>■ stvarima koje koristiš. Pročitaj _bilo šta_ o pisanju ISRa,
>■ videćeš da se pominje tzv. reentrancy. Vidim da ti ne bi
>■ škodilo malo "formalnog obrazovanja" ;)
Covek je sasvim u pravu. Po teoriji iz TSR programa nesmeju
se koristiti DOS-ove funkcije jer bi to predstavljalo
rekurzivni ulazak u DOS sto je nemoguce. Medjutim teorija
je teorija a praksa je praksa kao i obicno :)))))
-=Nikac=-
pascal.1259nikac,
Jel neko zna kako mogu da stavim uslovno prevodjenje u pascal-u...
Konkretno hteo bih da mi prevede nesto ovako:
Ako je lastmode=mono onda
trtrmrt (jedna deklaracija type-a)
Inace
drugi trtmrt (druga deklaracija type-a)
-=Nikac=-
pascal.1260jasicp,
-> #1255, vitez.koja> Ne mogu da ucitam pozadinu, _nikako_ :(
> U cemu je
:))))))))))))))))))))))
pascal.1261djnsnd,
Da li neko moze da mi pomogne?
Imam neki Pascal source koji pri prevodjenju zahteva postojanje
datoteke tipa .OBP. Imam i source .ASM tog programa,
ali ne mogu da nateram TASM da ga prevede u .OBP, vec samo u .OBJ.
Pronasao sam prekidac /op kojim TASM-u naradjujem da generise kod za
protected mode, ali i tada se generise .OBJ datoteka.
Unapred hvala.
Djn
pascal.1262drakce,
-> #1259, nikac
│ Jel neko zna kako mogu da stavim uslovno prevodjenje u pascal-u
└──────────
{$DEFINE MonoMode}
...
{$IFDEF MonoMode}
trtmrt1
{$ELSE}
trtmrt2
{$ENDIF}
Pozdrav
pascal.1263drpr,
Haj,
Potreban mi je dobar generator slučajnih brojeva napisan u
pascal-u pošto kažu da random baš nije najbolji. Bila je pre
3-4 meseca rasprava u algoritmi i u računarima je bio program
ali u c-u koji ja veoma tj. nikako ne poznajem. Generator treba
da je dobar u opsegu 10000-60000.
cope
pascal.1264vitez.koja,
-> #1260, jasicp#=>> Ne mogu da ucitam pozadinu, _nikako_ :(
#=>> U cemu je
#=>
#=> :))))))))))))))))))))))
Molim te budi ljubazan pa objasni cemu se smejes...
pascal.1265jasicp,
-> #1264, vitez.koja> Molim te budi ljubazan pa objasni cemu se smejes...
Izvini na malo, hmmm, recimo preslobodnom shvatanju onih nekoliko
reci. Bilo je neko drustvo pa smo zajedno citali poruke i onda je neko
izvali nesto o onom "ucitavanju pozadine" sto je u kontxtu sale bilo smesno,
ali na ekranu ocigledno nije...
Pokrivam se ushima !
pascal.1266mikeli,
Help !
Programcic u DEBUG-u glasi ovako:
Mov ax,0
Mov ds,ax
Mov ax,1234
ds:
Mov [472],ax
Jmp ffff:0000
Namjena mu je da resetuje system.
Kad ocu ovo isto da koristimu TP6 kao proceduru ide ovako:
Procedure reset;assembler;
asm
mov ax,0
mov ds,ax
mov ax,1234
mov ds:[472],ax
Jmp ffff:0000
end;
E tu se kod predzadnjeg reda Jmp ffff:0000 "buni" i prijavljuje
gresku :((((((
Moze li se mesto jmp ffff:0000 staviti eventualno nesto drugo ????
Mich.
pascal.1267bole,
e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke datoteke samo 20 bajta
od nekog ofseta
KO SVATIO SVATI KO NIJE OBJASNICU PONOVO!
pascal.1268dejanr,
-> #1267, bole>> e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke datoteke samo 20
>> bajta od nekog ofseta
var f: file;
buf: array [1..25] of byte;
procitano: word;
begin
assign(f,'ime.tip');
reset(f,1);
seek(f, ofset);
blockread(f, buf, 20, procitano);
if procitano<>20 then writeln('Greska');
end.
pascal.1269drpr,
-> #1267, bole-> e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke
-> datoteke samo 20 bajta od nekog ofseta
Može ovako :
Var dat:file;
baffer:array[1..20] of byte;
recsread:word;
offset:longint;
begin
readln (offset);
assign(dat,<imefajla>)
reset(dat,1);
seek (dat,offset);
blockread(dat,baffer,sizeof(baffer),recsread);
if recsread<20 then write('Od datog mesta ima manje od dvadeset bajtova')
else writeln('procitao sam!');
end.
Eto ti programče i mislim da sam ti pomogao, samo treba da se
proveri da li ideš na neko mesto koje je unutar veličine fajla
(može da se proveri sa mislim filesize(dat) ). A ostalo je na
tvojoj mašti :))
cope
pascal.1270spantic,
-> #1263, drpr> Potreban mi je dobar generator slučajnih brojeva napisan u
> pascal-u pošto kažu da random baš nije najbolji. Bila je
> pre
Imam ja gotove programe za generatore pseudoslučajnih brojeva na
FORTRANu i Cu, ali pošto ti to ne odgovara hoćeš li knjige sa
osnovom za iste ili pomoć da se isti prepevaju?
pascal.1271mazi,
-> #1266, mikeli<O-O> Moze li se mesto jmp ffff:0000 staviti eventualno nesto
<O-O> drugo ????
Verovatno samo JMP FAR FFFF:0000
Ivan.
pascal.1272drpr,
-> #1270, spantic-> Imam ja gotove programe za generatore pseudoslučajnih
-> brojeva na FORTRANu i Cu, ali pošto ti to ne odgovara hoćeš
-> li knjige sa
Baci mi te na fortranu jer sam baš polagao PJMP pa znam dosta
dobro fortran da bi ga preveo na pascal. Ako imaš u ne
elektronskoj formi donesi mi u klub pa ću ja da kucam i
prevodim :)))
cope
PS
Red bi bio da naučim taj C-e :))
pascal.1273ssokorac,
-> #1267, bole ─┼┤ e ljudi, kako u tp-u 6.0 mogu da procitam recimo iz neke datoteke samo
─┼┤ 20 bajta od nekog ofseta
Ne verujem da sam te dobro razumeo, tj, sigurno nisam :), ali evo kako da
pročitaš 20 bajtova iz datoteke, a za 'ofset' valjda nema razlike :).
var
f:file;
begin
assign(f,'ime');
reset(f,1);
seek(f,Pozicija); (* može i pozicija ofseta :) *)
blockread(f,ofset,20);
close(F)
end.
pascal.1274bole,
-> #1268, dejanrE dejane, zaboravio si string gde je upisano 20 bajta od ofseta! to mi treba,
ne dal' ima 20 bajta od ofseta nego string od ofseta....
pascal.1275dejanr,
-> #1274, bole>> E dejane, zaboravio si string gde je upisano 20 bajta od ofseta! to mi
>> treba, ne dal' ima 20 bajta od ofseta nego string od ofseta....
Nisam dobro razumeo šta ovim hoćeš da kažeš, podaci koje si pročitao su
u nizu buf. Ako hoćeš da to što si dobio bude baš string, stavi deklaraciju:
buf: string[25]
i onda u blockread-u stavi:
blockread(f, buf[1], 20, procitano);
buf[0]:=chr(20);
i... to je to.
pascal.1276ssokorac,
-> #1275, dejanr ─┼┤ blockread(f, bufŠ1Ć, 20, procitano);
─┼┤ bufŠ0Ć:=chr(20);
Zar neće raditi i samo
blockread(f,buf,20);
Onda valjda nema potrebe za onim bufŠ0Ć:=...?
pascal.1277dgrbic,
-> #1266, mikeli:: Jmp ffff:0000
Probaj sa jmp 0ffff:0
Nemam instaliran TP6.0 pa nisam siguran, ali mi se čini (a i logično je)
da integrisani asembler očekuje da brojevi počinju sa ciframa 0-9 (čak i
ako se radi o heksa broju).
Jer, kako bi program mogao da razlikuje labelu abc od broja 0abc?
Gledanje u pasulj sigurno nije neko rešenje ;)
pascal.1278dejanr,
-> #1276, ssokorac>> > blockread(f, buf[1], 20, procitano);
>> > buf[0]:=chr(20);
>>
>> Zar neće raditi i samo
>> blockread(f,buf,20);
>> Onda valjda nema potrebe za onim buf[0]:=...?
Neće valjati. Da bi string imao smisla, nulti bajt mora da mu je dužina.
Ako je u datoteci samo tekst, onda taj tekst treba učitati počev od prvog
bajta stringa, a naknadno u nulti snimiti dužinu.
Naravno, ako je u fajl već snimljen paskalski string, onda se radi tako
kako kažeš, ali je to u praksi jako retko, jer onda takav fajl ne bi bio
tekstualni nego bi na početku svakog reda bila neka "kvaka" koja označava
dužinu. Dodatni problem bi mogli da prave stringovi dužije 10, 13, 26...
pascal.1279ssokorac,
-> #1278, dejanr ─┼┤ Neće valjati. Da bi string imao smisla, nulti bajt mora da mu je dužina.
Mislio sam da se onda sam TP brine za to, ali sam shavtio da njega u stvari
baš briga kog je tipa ono što čita sa blockread, on samo čita i piše :).
pascal.1280rcolic,
Zdravo!
Posto nisam bas mogao da mnogo preturam po svim porukama na ovu temu, izvin'te
ako cu postaviti stari problem...Nabavio sam BGI drajver VGA256.BGI (za rez.
320x200x256 i pokusao sam da ga instaliram ali nije islo. Jos sam pri
koriscenju InstallUserDriver primetio da u helpu postoji greska ;>. Nije hteo
da prihvati i vracao mi je kod -3, to mu dodje device driver not found ili
nesto slicno...ne secam se. Ako neko ima pojma o tome, nek mi odma' javi.
fala
pozdrav,
R a s h a .
pascal.1281ssokorac,
-> #1280, rcolic
─┼┤ nesto slicno...ne secam se. Ako neko ima pojma o tome, nek mi odma'
─┼┤ javi.
function modfunc:integer;
begin
modfunc:=0
end;
procedure Inic256;
var
gd,gm:integer;
begin
gm:=0;
gd:=installuserdriver('svga256',čmodfunc);
initgraph(gd,gm,'ĐprogĐsvgaĐ')
end;
Ovo će instalirati drajver za 320x200x256. Probano, i radi :).
pascal.1282m.hristodulo,
-> #1248, dejanr>> Znatno je preporučljivije koristiti
>> konkatenaciju, dakle s:=s+ch. Tada sam paskal
>> "brine" o dužini.
Ali je i sporije... Mnogo je brže:
Inc ( i ) ;
s [ i ] := ch ;
s [ 0 ] := Chr ( i ) ;
Znam iz iskustva...
pascal.1283rcolic,
-> #1281, ssokorac'vala! Iako sam i sam pokusao nesto slicno (nije radilo), verujem da je to ono
sto mi treba. Idem odmah da probam. Pozdrav,
R a s h a .
pascal.1284predragd,
-> #1258, nikac> rekurzivni ulazak u DOS sto je nemoguce. Medjutim teorija
> je teorija a praksa je praksa kao i obicno :)))))
To i jeste on što sam ja hteo da kažem. Nije mi ni na kraj
pameti da vređam nečiju inteligenciju. Znam da se u TSR
programima ne mogu koristiti DOS pozivi, koristiti dinamička
memorija... Međutim kao što ti kažeš teorija je jedno, a praksa
vrlo često nešto sasvim drugo.
Peđa.
pascal.1285bole,
e ljudi kako da u tp60 ucitam neki font koji sam dobijo?
b o l e
pascal.1286nikac,
-> #1285, bole>■ e ljudi kako da u tp60 ucitam neki font koji sam dobijo?
Installuserfont(var fontcode:integer,filename:stringŠ4Ć);
A posle: settextstyle(fontcode,....);
Pozdrav,
-=Nikac=-
P.S. Ne skodi ponekad procitati help :)
pascal.1287bole,
-> #1286, nikac>> P.S. Ne skodi ponekad procitati help :)
Nemam taj obicaj, VI ste mi bolji help:))
pascal.1288bole,
E evo jos jedno pitanjee:
Kako da preko pascala pustam SEMPLOVE ne modove, ima onaj MOD-obj.obj e kad bi
bilo nesto tako al za semplove, ne modove....
pascal.1289ssokorac,
-> #1285, bole ─┼┤ e ljudi kako da u tp60 ucitam neki font koji sam dobijo?
var
novifont:integer;
begin
novifont:=InstallUserFont(ime);
.
.
.
SetTextStyle(novi,0,2);
OutText('Novi font!')
.
.
Inače, ime mora da bude os 4 slova, bez ekstenzije. Znači, za, recimo neku
ćirilicu moraš imati fajl CIRI.CHR, a ime je 'CIRI'.
pascal.1290quale,
Hi
Interesuje me setovanje modema,
dakle inicijalizacija, slanje kontrolnih znakova
modemu, (setovanje registara itd)
P.S. Po mogucnostceli sors ;)
pascal.1291dejanr,
-> #1290, quale>> Interesuje me setovanje modema,
>> dakle inicijalizacija, slanje kontrolnih znakova
>> modemu, (setovanje registara itd)
Jesi li probao PCL4P30.ZIP iz direktorijuma PASCAL? Pogledaj takođe fajlove
uz poruke u ovoj temi, kao i u pretphodnoj konferenciji PC.PROG (npr.
CONF DOWNLOAD pascal /a /t).
Ima svačega zanimljivog.
pascal.1292valhala,
U zadnjim R je izasao tekst o pisanju TSR-a. Elem, iako
se radi o C-u uspeo sam da ukontam skoro sve, sem prokletog
INT 9. Nimije jasno kako taj INT treba uopste pozvati?! Ako
bi neka dobra dusha mogla da mi objasni to, bio bih veoma zahvalan.
Ne bi bilo lose kad bi neko okacio neki mali TSR, cisto da vidim
kako to izgleda u praxi. Thanks in any case.
Val.
pascal.1293mmile,
-> #1290, quale│ Interesuje me setovanje modema,
│ dakle inicijalizacija, slanje kontrolnih znakova
│ modemu, (setovanje registara itd)
└─────────
begin
assign(output,'COM1'); (* Ili koji vec com *)
rewrite(output);
writeln('ATS0=1 i sl. '); (* Setovanje registara i sl. *)
close(f);
assign(output,'');
rewrite(output);
end.
pascal.1294v.nesic,
-> #1292, valhala> INT 9. Nimije jasno kako taj INT treba uopste pozvati?! Ako
On se zove sam (tj. zove ga hardver). Ono sto ti radis je da
podmetnes tvoj program da se izvrsava umesto interapta (jerbo
kako bi ga drugacije aktivirao kada je neki drugi program aktivan)
P.S. Mislim da u helpu za turbo paskal imas neki primer.
pascal.1295bole,
-> #1294, v.nesic>> P.S. Mislim da u helpu za turbo paskal imas neki primer.
Probaj u helpu primer za KEEP
pascal.1296jasicp,
Kako da obogatim Telemate script procedurama pisanim u Pascalu ?
pascal.1297isekulovic,
-> #1292, valhala>> Ne bi bilo lose kad bi neko okacio neki mali TSR, cisto da vidim
>> kako to izgleda u praxi. Thanks in any case.
Pretraži malo ovu ovu i prethodnu pascal temu, kao i kraj teme
turbo.pascal u pc.softu. Bilo je više puta diskusije (sa primerima) na
tu temu. Mada bi ti najbolje bilo da pogledaš u Mom Mikrou 9/91 tekst
Pritajeni programi u Turbo Pascalu, Janeza Dmešara. U njemu je opisano
sve živo što ti treba na maksimalno razumljiv način.
pascal.1298ficus,
-> #1281, ssokorac> function modfunc:integer;
> begin
> modfunc:=0
> end;
>
> procedure Inic256;
> var
> gd,gm:integer;
> begin
> gm:=0;
> gd:=installuserdriver('svga256',čmodfunc);
> initgraph(gd,gm,'ĐprogĐsvgaĐ')
> end;
>
> Ovo će instalirati drajver za 320x200x256. Probano, i radi :).
Izvini ssokorac, ali mislim da ne može BAŠ ovako... Dosta davno sam i ja naba-
vio ovaj drajver i ložio sam se na 256 boja ko dete na zvečku...
Ali, pošto sam izgubio source od mog programa, ostaje mi samo da se setim da
mi je trebalo skoro 40-ak linija (konsultujući literaturu TP-a).
Dakle, Rashi ostaje jedino i najbolje da pogleda u literaturu TP-a...
Pozdrav, Deki
pascal.1299ficus,
-> #1290, quale> Hi
> Interesuje me setovanje modema,
> dakle inicijalizacija, slanje kontrolnih znakova
> modemu, (setovanje registara itd)
>
> P.S. Po mogucnostceli sors ;)
Pogledaj u PASCAL disrektorijum, a mogao bi i da pogledaš knjigu Aleksandra
Radovanovića "PC Modemske komunikacije". Knjiga je odlična. Pazi, primeri i
funkcije u ovoj knjizi su u C-u, ali sve jedno, neće ti biti teško da ih preba-
ciš u TP...
Pozdrav, Deki
pascal.1300ficus,
-> #1292, valhala> U zadnjim R je izasao tekst o pisanju TSR-a. Elem, iako
> se radi o C-u uspeo sam da ukontam skoro sve, sem prokletog
> INT 9. Nimije jasno kako taj INT treba uopste pozvati?! Ako
> bi neka dobra dusha mogla da mi objasni to, bio bih veoma
> zahvalan. Ne bi bilo lose kad bi neko okacio neki mali TSR,
> cisto da vidim kako to izgleda u praxi. Thanks in any case.
> Val.
Pogledaj Računare broj 90. Tu je vitez.koja dao jedan fini primer. Ako te mrzi
da tražiš, ja ću ti prekucati primer, a za objašnjenje gledaj poruke u ovo temi
od februara i marta. Evo primera:
š Copyright (C) Vladimir Marić (vitez.koja) ć
Program CLS;
Uses Crt, Dos;
Var KBD:Procedure;
Act:Boolean;
Procedure Brisi; Interrupt;
Begin
Inline($9C);
KBD;
If(PortŠ$60Ć=88) And Act Then
Begin
ClrScr; Sound(3000); Delay(20);
NoSound; GoToXy(1,1);
End;
If PortŠ$60Ć=87 Then Act:=Not(Act);
End;
Begin
SwapVectors;
GetIntVec(9,čKBD);
SetIntVec(9,Addr(Brisi));
Act:=True;
Keep(0);
End.
Pozdrav, Deki
pascal.1301quale,
Zahvaljujem na odgovorima...
Dalje sto me interesuje je mogucnost ispisa│
sa com porta u isto vreme dok se nesto sasvim deseto
radi.
dakle interesuje me postojili neki fazon za iscitavanje
statusa com porta(ima li znaka na njemu, itd)
Thanx
pascal.1303ssokorac,
-> #1298, ficus ─┼┤ Izvini ssokorac, ali mislim da ne može BAŠ ovako... Dosta davno sam i ja
─┼┤ naba- vio ovaj drajver i ložio sam se na 256 boja ko dete na zvečku...
─┼┤ Dakle, Rashi ostaje jedino i najbolje da pogleda u literaturu TP-a...
Nema potrebe da zamajavaš čoveka zato što ti nisi znao da instaliraš :).
Radim ovako veš 3-4 meseca i ne moš' bolje raditi :).
pascal.1304mmile,
-> #1301, quale> Zahvaljujem na odgovorima...
>
> Dalje sto me interesuje je mogucnost ispisa│
> sa com porta u isto vreme dok se nesto sasvim deseto
> radi.
> dakle interesuje me postojili neki fazon za iscitavanje
> statusa com porta(ima li znaka na njemu, itd)
>
> Thanx
OK.Valjda ce ti ovo biti od pomoci :
INT 14h, 00h (00) Initialize Serial Port Parameters
Initializes the baud rate, parity, stop-bit, and word length
parameters for a serial port, and returns the status for the port.
On entry: AH 00h
AL Communications parameters (see below)
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AX Line and modem status (see Service 03h)
──────────────────────────────────────────────────────────────────────────
Baud rate Parity Stop bits Word Length
Bit: 7 6 5 4 3 2 1 0
0 0 0 110 0 0 None 0 One 1 0 7 bits
0 0 1 150 0 1 Odd 1 Two 1 1 8 bits
0 1 0 300 1 0 None
0 1 1 600 1 1 Even
1 0 0 1,200
1 0 1 2,400
1 1 0 4,800
1 1 1 9,600
──────────────────────────────────────────────────────────────────────────────
INT 14h, 01h (1) Send One Character
Sends one character to the specified serial port.
On entry: AH 01h
AL Character
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AH Line status (see Service 03h)
──────────────────────────────────────────────────────────────────────────
If an error occurs, bit 7 of AH will be set. SInce bit 7 is used as a
general error flag, this service is unable to identify a time-out
error. For complete diagnostic information, use Service 03h (Get
serial port status).
──────────────────────────────────────────────────────────────────────────────
INT 14h, 02h (2) Receive One Character
Receives one character at the specified serial port.
On entry: AH 02h
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AL Character
AH Line status (See service 03h)
──────────────────────────────────────────────────────────────────────────
Notes: This service waits for a character. If no character
is available or an error occurs, no character is
returned and bit 7 of AH is set.
If an error occurs, bit 7 of AH is set. SInce bit 7
is used as a general error flag, this service is
unable to identify a time-out error. For complete
diagnostic information, use Service 03h (Get serial
port status).
──────────────────────────────────────────────────────────────────────────────
INT 14h, 03h (3) Get Serial Port Status
Returns line status and modem status information for a specified
serial port.
On entry: AH 03h
DX Serial port number (0 - COM1, 1 - COM2, etc.)
Returns: AX Line and Modem status (See below)
──────────────────────────────────────────────────────────────────────────
Status information is returned in AX, as follows:
AH (Line status)
7 6 5 4 3 2 1 0
1 . . . . . . . Time-out error
. 1 . . . . . . Transfer shift register empty
. . 1 . . . . . Transfer holding register empty
. . . 1 . . . . Break-detect error
. . . . 1 . . . Framing error
. . . . . 1 . . Parity error
. . . . . . 1 . Overrun error
. . . . . . . 1 Data ready
AL (Modem status)
7 6 5 4 3 2 1 0
1 . . . . . . . Received line signal detect
. 1 . . . . . . Ring indicator
. . 1 . . . . . Data set ready
. . . 1 . . . . Clear to send
. . . . 1 . . . Change in receive line signal detected
. . . . . 1 . . Trailing edge ring detector
. . . . . . 1 . Change in data set ready
. . . . . . . 1 Change in clear to send
If bit 7 of the Line status byte (AH) is set, then the rest of the
bits in AH and AL are unpredictable.
Notes: Early versions of the ROM-BIOS for the original PC
had a programming error that would cause "time-out"
errors to be reported as "transfer shift register
empty" and "break-detect" errors. This has been
corrected in all other versions of the ROM-BIOS.
Sve je iz NG-a za asembler.
Izvinite zbog duzine poruke.
pascal.1305novim,
Prilažem ovde uz poruku lamenttp.zip (9,585) - source
za "Lament nad Beogradom" Miloša Crnjanskog (u čast
njegovih 100 godina) - u TP-u (od 5 pa dalje). Ko 'oće
nek' zameni moj YUSCII svojim, kompajlira etc. (a ima
i tri korisna unit-a unutra).
lamentbg.zip (sa lamentbg.exe) je u SEZAM.2:razno.
- novim
lamenttp.zippascal.1306novim,
Ispravka: lamentbg.zip ( .exe) je uz
poruku 5.17 u CIVILIZACIJA.3:knjizevnost
(gde mu je i mesto). - novim
pascal.1307isekulovic,
Jel ima neko sve extended kodove za tipke na tastaturi? Pronašao sam
u jednom unitu (tpw60) neke kojih nema u uputstvu. Tablica u uputstvu
ima sledeće rupe 0-14 (izuzev 3), 26-29, 39-43, 51-58, 69, 70 i eventualno
141+. Ako bi neko znao da popuni rupe...