pascal.840andrejt,
-> #838, vgenijeQ> Kako da iz pascala napravim plaikaciju koja ce kontrolisati rad modema
Q> konkretno da na upucen pozziv modem se javi i posle je sve prica ostalog
Q> dela programa?
Evo ti jednog programa (mozda ga ima na sezamu ali ipak da posaljem)
koji radi sa modemom - mozda nesto korisno mozes da izvuces iz njega.
comm.arjpascal.841zeljkoj,
-> #834, inesic> program. Ne znam kako bih rešio štampu tako da se ona radi
> u pozadini, dok moj program čeka neki unos s tastature
> (ovaj program koji sam skrpio i onako 90% vremena radi baš
Pa napravi mali multitasking.
:)
pascal.842dejanr,
-> #838, vgenije>> Kako da iz pascala napravim plaikaciju koja ce kontrolisati rad modema
>> konkretno da na upucen pozziv modem se javi i posle je sve prica ostalog
>> dela programa?
Problem, ako hoćeš da ga rešiš ozbiljno, nije ni malo jednostavan. Pročitaj
tekstove Zorana čivotića iz "Računara" 57, 61 i 95. Imaš i primere u
direktorijumu RSOFT, doduše na C-u, ali nadam se da ćeš se snaći.
Naravno, imaš i gotovu biblioteku za rad sa modemom u direktorijumu PASCAL.
pascal.843sjocic,
Kakva je pouzdanost onog programa za očitavanje serijskog broja diska,
naime isti sam testirao na jednom Quantumu od 82 Mb i radi bez problema,
dok kod mene na Conner-u blokira mašinu, jel imao neko slična iskustva?
pascal.844janko,
-> #826, postmast> Ako ti treba da se recimo Pera Peric prosledi kao jedan
> parametar, stavi ga pod navodnike, tj. "Pera Peric". DOS
> sve izmedju navodnika, bez obzira na SPACE smatra za jedan
> parametar
DOS, koliko ga ja poznajem, nikada nije umeo da bilo šta smatra za bilo
šta. On programu radi samo dve stvari:
- Prosledi nedirnutu komandnu liniju
- Izdvoji dva imena datoteka iz komandne linije BEZ direktorijuma.
(nasledio od CP/M-a).
Sve ostalo rade aplikativni programi.
>> Kod nekih aplikacija je potrebno precizno navesti ceo
>> string, pa me zanima gde se u *NEPROMENJENOM* obliku
>> smestaju parametri koji su prosledjeni programu, odnosno,
>> celokupna komandna DOS linija posle starovanja programa.
Nalaze se u drugih 128 bajtova DOS-ovog PSP (Program Segment Prefix).
Prvi bajt je dužina komandne linije. Ostatak je nedirnuta komandna
linija, BEZ redirekcionih parametara.
pascal.845janko,
-> #829, inesic> Ono što mene zanima je kako da iz paskal programa
> printu prosledim argumente - fajlove za štampu. Da li
> je to moguće uraditi pomoću exec naredbe i kako da
> napišem onu $M kompajlersku direktivu, da ima memorije i
> za exec naredbu i za gomilu mojih procedura, koje su
> takođe memorijski zahtevne?
Moguće je pomoću exec. Kolka god ti je gomila procedura, malo je
verovatno da ti treba baš 500K za program. Za rad EXEC-a je dovoljno da
imaš oko 60-tak KB slobodno (ako ne pozivaš PRINT iz komandnog
procesora, već direktno).
Međutim, postoji još elegantnije rešenje, koje zahteva malo više posla
(ako nemaš neke gotove biblioteke):
Koristiti DOS funkcije koje obezbeđuje PRINT po instalaciji! Ako umeš da
pozivaš iz višeg prog. jezika DOS interapte, mnogo je zgodno.
---------------------------------------------
INT 2F - Multiplex - DOS 3+ PRINT.COM - INSTALLATION CHECK
AX = 0100h
Return: AL =
00h not installed, OK to install
01h not installed, not OK to install
FFh installed
---------------------------------------------
INT 2F - Multiplex - DOS 3+ PRINT.COM - SUBMIT FILE
AX = 0101h
DS:DX -> packet (see below)
Return: CF set on error
AX = error code
CF clear if successful
AL = 01h added to queue
9Eh now printing
SeeAlso: AX=0102h
Format of submit packet:
Offset Size Description
00h BYTE level (must be 0)
01h DWORD pointer to ASCIZ filename (no wildcards)
---------------------------------------------
INT 2F - Multiplex - DOS 3+ PRINT.COM - REMOVE FILE
AX = 0102h
DS:DX -> ASCIZ file name (wildcards allowed)
Return: CF set on error
AX = error code
SeeAlso: AX=0103h
---------------------------------------------
INT 2F - Multiplex - DOS 3+ PRINT.COM - REMOVE ALL FILES
AX = 0103h
Return: CF set on error
AX = error code
SeeAlso: AX=0102h
---------------------------------------------
INT 2F - Multiplex - DOS 3+ PRINT.COM - HOLD QUEUE/GET STATUS
AX = 0104h
Return: CF set on error
AX = error code
01h function invalid
02h file not found
03h path not found
04h too many open files
05h access denied
08h queue full
09h spooler busy
0Ch name too long
0Fh drive invalid
DX = error count
DS:SI -> print queue (null-string terminated list of 64-byte ASCIZ
file names)
SeeAlso: AX=0105h
---------------------------------------------
INT 2F - Multiplex - DOS 3+ PRINT.COM - RESTART QUEUE
AX = 0105h
Return: CF set on error
AX = error code
SeeAlso: AX=0104h
---------------------------------------------
INT 2F - Multiplex - DOS 3.3+ PRINT.COM - CHECK IF ERROR ON OUTPUT DEVICE
AX = 0106h
Return: CF set on error
AX = error code
DS:SI -> device driver header
CF clear if successful
AX = 0000h
Note: eventually calls device driver for spooled device with request 0Ah,
looping until not busy or timeout
SeeAlso: AX=0104h
---------------------------------------------
I da, ne obraćaj pažnju na to da PRINT navodno "pravi probleme." Ako
njega instaliraš pri dizanju sistema, a posle samo koristiš usluge, ne
bi trebalo da pukne (godinama mi na par mašina radi tako, aplikacije ga
koriste u toku rada, štampanje je non stop u pozadini i sve je OK.)
pascal.846andrejt,
-> #843, sjocicQ> Kakva je pouzdanost onog programa za ocitavanje serijskog broja diska,
Q> naime isti sam testirao na jednom Quantumu od 82 Mb i radi bez problema,
Q> dok kod mene na Conner-u blokira masinu, jel imao neko slicna iskustva?
Jel' moze broj poruke u kojoj je iznet program ?
pascal.847zeljkoj,
-> #838, vgenije> Kako da iz pascala napravim plaikaciju koja ce kontrolisati rad
> modema konkretno da na upucen pozziv modem se javi i posle je
> sve prica ostalog dela programa?
Pa treba ti neka biblioteka. Ima toga ovde na Sezamu.
pascal.848sjocic,
-> #846, andrejt> Jel' moze broj poruke u kojoj je iznet program ?
Ne znam koja poruka bese, mislim da je tekst bio i u racunarima, ali
evo kompletnog sorsa:
Program disk;
Uses Crt;
Function GetDiskSerNo:string; {vratice 10 bajtova}
var bbb,i :integer;
srno: array[1..20] of char;
srnostr : string[10];
begin
while port[$1F7] = $50 do { wait for controller not busy}
begin end;
port[$1F6] :=$A1; {Get first drive }
port[$1F7] :=$EC; {Get drive info data }
while port[$1F7] = $58 do { wait for data ready}
begin end;
delay(1000);
for i:=1 to 10 do bbb:=portw[$1F0];
for i:=1 to 5 do
begin
bbb:=portw[$1F0];
srno[2*i-1] :=Chr(Mem[Seg(bbb):Ofs(bbb)+1]);
srno[2*i ] :=Chr(Mem[Seg(bbb):Ofs(bbb)]);
end;
Move(srno,srnostr[1],10);
srnostr[0]:=Chr(10);
GetDiskSerNo := SrNoStr;
end;
Begin
Writeln(' Serijski broj diska je:',GetDiskSerNo)
end.
pascal.849szeman,
-> #826, postmast>> Ako ti treba da se recimo Pera Peric prosledi kao jedan parametar,
>> stavi ga pod navodnike, tj. "Pera Peric". DOS sve izmedju navodnika,
>> bez obzira na SPACE smatra za jedan parametar.
Nikako! TP - ova funkcija paramstr() radi na upravo onaj način koji sam
opisao. Rešenje problema je poslao ANDREJT, pa pogledj.
pascal.850vgenije,
E imam ideju(kao i 500 proslih neostvarenih) da napravim simulacuju berze
na racunaru.naravno prilagodenu modemu-da se covek lepo prikljuci
pokupuje,isprodaje itd..
U startu bi imao otprilik1 oko 100 000 bodova
i imao ponudu robew koju nudi moja firma -tj.racunar a kako bi se
igra razvijala korisnici bi sve vise prelazili natransakcije jedni sa drugima
.Pitanje je dali ce ovo upaliti kod sireg auditorijuma-dali ce ljudi igrati
tu igru?
Sto se programerskog stanovista tice mislim da ne bi bilo problema pri
programiranju
ali me zanima i vase misljenje
pozdrav
pascal.851wizard,
-> #837, vitez.koja> Probaj sa exec('c:\dos\copy', 'ime_fajla prn'),
Ne bih hteo da ti narušavam koncepciju, a možda i nisam u toku, ali zar
copy nije interna komanda DOS-a? :)
pascal.852andrejt,
-> #848, sjocicQ> Ne znam koja poruka bese, mislim da je tekst bio i u racunarima, ali
Q> evo kompletnog sorsa:
Tenks na sorsu. Inace, meni lepo radi. (Western Digital)
pascal.853ognjen,
-> #850, vgenije)-> ali me zanima i vase misljenje
Ne razumam. Kako ti tu zaradjujes? Uzimas neki mali procenat
od transakcija? Onda, treba ubediti firme da je to dobar softver
i korisna mreza, sto znaci da moras da se pomucis sa programom,
pa da imas jos min 10 linija, da je ponuda povoljna, i da je
sistem siguran. U protivnom, firme nece biti zainteresovane.
Ako mislis na neku mini berzu (prodaje na malo) /sto sam
svojevremeno predlagao na sezamu, ali nije naislo na odziv/ to i
nije losa ideja, i mozda i nije tako glupo za realizaciju, ali
treba nesto razjasniti.
Da li bi na taj sistem bilo pretplate (ako da, onda bi trebala
biti simbolicna, a da je u pocetku i nema)? Bilo bi dobro da
svako da koliko para zeli (recimo 100 din) i za to dobije toliko
bodova (100 bodova) i kad nesto hoce da kupi, odbijaju mu se
bodovi, a prenose se na 'racun' prodavca. S tim da ti dobijas
(recimo) 2% od cene, na racun prodavca.
Koliko ja znam, ti se nalazis van Beograda, pa je to jos jedan
neuslov za realizaciju svega toga.
pascal.854andrejt,
-> #851, wizardQ>> Probaj sa exec('c:\dos\copy', 'ime_fajla prn'),
Q> Ne bih hteo da ti narusavam koncepciju, a mozda i nisam u toku, ali zar
Q> copy nije interna komanda DOS-a? :)
Mozda je mislio (ko god da je) exec(getenv('comspec'),'/c copy ' + ...) ?
pascal.855duzle,
-> #824, postmast>**> Ja imam skoro sve probleme resene sa menijem itd.
>**> Meni je to trebalo na trecoj iz numericke...
>**>
>**> Rado cu ti pomoci u svemu, ali ti ne zelim resiti problem,
>**> jer to su elementarne stvari ako se bavis programiranjem
>**> i nikad neces nauciti ako samo prepises.
>**>
>**> BTW te metode mozes naci u skoro svakoj knjizi iz numericke
>**> matematike.
:) Hvala na ponudi, ali me nisi shvatio. Znam ja da su sve to elementarne
stvari i imao sam knjige koje su mi potrebne - ali nisam jednostavno imao
vremena. Thx, anyway.
Ogi
pascal.856vgenije,
-> #853, ognjen> (recimo) 2% od cene, na racun prodavca.
>
> Koliko ja znam, ti se nalazis van Beograda, pa je to jos jedan
> neuslov za realizaciju svega toga.
Mozda ste pogresno protimacili poruku-berza bi radila kao door program
besplatno bi se pristupalo i svi bi u pocetku imali isti broj bodova
Ono sto mene zanima je dali bi siri auditorijum bio zainteresovan za ovako
nesto-dali bi igrao igru,inace zarada mi nije u prvom planu,a i da jeste
nemam toliko programerskog staza da bih mogao da prilagodim program firmama
Inace ne vidim razlog zbog cega je neuslov to sto moj pozivni nije 011
vec 026.tel troskovi?
pascal.857inesic,
-> #845, jankoZanimljivo. Zahvaljujem. Ako ima neki pointer na neki fajl
prisutan na sezamu, gde ima detalja o ovome, bio bih još više
zahvalan.
pascal.858vgenije,
sto se tice onog programa za stampanje o kome je bilo reci
comanda preko exec comande nece da mi radi zbog malo memorije .
moze li se to resiti pomocu lst komande stim sto kad napisem
writelN(lst,'imefajla');
on odprinta :imefajla
a ako stavim pod neku varijablu tipa string on stampa njeno ime!
ima li resenja(mislim kako izgleda) ako mi varijabla ima vrednost(??)
a:='fajl1' da on odstampa ceo fajl a ne njeno ime.
Malo sam poduze objasnjavao ali se nadam da ce te shvatiti
pozdrav
vlada biskupljanin
pascal.859sjocic,
Hteo bih da napravim rezidentni help, koji bi se recimo pozivao
pritiskom na npr.F5, i koji bi bilo moguce pozvati u toku rada
sa q editorom i iskljuciti isto sa F5.
Dok sam u cistom DOS-u radi Ok, ali se isto ne iskljucuje, naime
treba da se pritiskom na F5 cuje Beep, pojavi tabela, i ponovnim
pritiskom na F5 cuje beep i ukloni ista (u svakom dos okruzenju).
Kako to izvesti ? Unapred hvala na odgovorima :)
---------------------------------------------------
Program okvir;
{BM B800,0,0 }
uses Crt, Dos;
var
KbdIntVec : Procedure;
Radi:boolean;
{BF+}
procedure Keyclick; interrupt;
begin
if Port[B60] = B3F then
begin
sound(5000);
delay(1);
if not(radi) then begin
Window(10,4,70,12);
write('┌───────────────────────────────────────────────────────────┐');
write('│ │');
write('│ │');
write('│ │');
write('│ │');
write('├───────────────────────────────────────────────────────────┤');
write('│ │');
write('└───────────────────────────────────────────────────────────┘');
radi:=true;end;
if radi then begin { Kako izvesti uklanjanje tabele? } end;
Nosound; {-------------------------------}
end;
inline (B9C);
KbdIntVec;
end;
{BF-}
begin
radi:=false;
GetIntVec(B9,Addr(KbdIntVec));
SetIntVec(B9,Addr(Keyclick));
Keep(0);
end.
pascal.860ognjen,
Mozda vam nikada i nece zatrebati dinamicka alokacija memorije:
const max_imena = 30;
type user = record
ime: string[14];
poruka: integer;
end;
var useri: array [1..max_imena] of user;
!!!!!!!!!!!!
Uglavnom, nisam ubacio nikakvu proveru da li je doslo do 30
(max_imena) jer sam smatrao da nema sanse da taj broj ikada dodje
do 30. Ali, posto se uvek nadje neko da testira program do
poslednjih granica, frizirao sam ulazni fajl, tako da ima 42
username-a, da vidim sta ce se desiti, i gle cuda - program bez
greske odradi posao, iako sam rezervisao memoriju samo za 30
usera! Bug? Feature?
pascal.861sjocic,
-> #858, vgenije├> comanda preko exec comande nece da mi radi zbog malo memorije .
├> moze li se to resiti pomocu lst komande stim sto kad napisem
├> writelN(lst,'imefajla');
├> on odprinta :imefajla
├> a ako stavim pod neku varijablu tipa str
Probaj ovako:
Var
Izlaz:text;
red:string;
begin {BM 2000,0,0}
While not( eof(izlaz) )do begin
Readln(izlaz,red); Writeln(lst,red);
end;Close(izlaz);end;
pascal.862janko,
-> #857, inesic> Zanimljivo. Zahvaljujem. Ako ima neki pointer na
> neki fajl prisutan na sezamu, gde ima detalja o ovome,
> bio bih još više zahvalan.
Da podsetim (i sam sam zaobravio o čemu je reč ;) ) čovek pita o
korišćenju usluga DOS-ovih PRINT funkcija.
U prethodnoj poruci sam ti dao SVE potrebne detalje, ako umeš da pozivaš
DOS fje iz višeg programskog jezika i imaš pristojno znanje o
"iznutricama" kompajlera i asembleru 80x86.
Kao što se videlo, program PRINT koristi tzv. "multiplex" interapt --
interapt koji je MS specijalno predvideo za proširivanje mogućnosti MS
DOS-a. SVI detalji su u prethodnoj poruci.
Ako ne umeš, hmmm... trebalo bi malo da naučiš o procesoru, malo da
konsultuješ literaturu kompajlera kako se pozivaju fje, pa da paziš da
li pozivi i parametri koje ove fje zahtevaju narušavaju konvencije
kompajlera itd.
Ili da daš da ti neko ko zna napravi biblioteku "omotača" tih DOS fja --
ti ih potom koristiš kao da su to najobičnije procedure ili funkcije iz
višeg programskog jezika. Npr. za Kliper sam video da je neko to već bio
uradio. Za Turbo Paskal je moguće napraviti istu stvar.
Prostije rešenje: ništa ti neće faliti i da pozivaš PRINT pomoću EXEC --
razliku u brzini na keširanoj mašini skoro nećeš primetiti, a i tih par
desetina KB možeš uvek da obezbediš.
pascal.863janko,
-> #860, ognjen> var useri: array [1..max_imena] of user;
> !!!!!!!!!!!!
****************
> poslednjih granica, frizirao sam ulazni fajl, tako da ima
> 42 username-a, da vidim sta ce se desiti, i gle cuda -
> program bez greske odradi posao, iako sam rezervisao
> memoriju samo za 30 usera! Bug? Feature?
Slučajnost. Niko ne može ni da pretpostavi kada će ti ovakav program
pući -- čak ni ti. Može svaki put, može ponekad -- zavisi i od toga gde
su ti ostele promenljive zauzele memoriju i sl.
Hoću da kažem, program ti se ponaša tako, da sluša imperativ kojim si
nazvao svoju promenljivu.
pascal.864andrejt,
-> #859, sjocicQ> Kako to izvesti ? Unapred hvala na odgovorima :)
Da ne ulazim u ono sto si poslao ...
Trebas da 'sacuvas' sadrzaj ekrana pre ispisivanja 'tabele'
i da posle samo popunis taj deo ekrana onime sto si 'sacuvao'.
Ja to radim preko video memorije (za text mod) - bilo je pre
nekih poruka o ovome pa pogledaj.
P.S.
Ako ti nije bilo dovoljno jasno pitaj me u mail pa cu
da ti posaljem neko resenje.
pascal.865drpr,
-> #859, sjocic-> if radi then begin { Kako izvesti uklanjanje tabele? } end;
-> Nosound; {-------------------------------}
Koliko ja znam treba da zapamtiš šta je bilo na ekranu pre
pisanja a onda da to ponovo napišeš i nema problema. To možeš
da uradiš tako što ćeš da cimneš deo video memorije i to je to.
To je onako što mi je prvo palo na pamet e sad verovatno ima i
nekih drugih fora.
cope
pascal.866djelovic,
-> #859, sjocic-> if radi then begin { Kako izvesti uklanjanje tabele? } end;
-> Nosound; {-------------------------------}
BC++ ima funkcije gettext i settext za koje prebacuju sadrzaj dela ekrana u
memoriju i vice versa. Proveri da li mozda i BP ima iste funkcije?
pascal.867vgenije,
-> #861, sjocic> Probaj ovako:
> Var
> Izlaz:text;
> red:string;
> begin {BM 2000,0,0}
> While not( eof(izlaz) )do begin
> Readln(izlaz,red); Writeln(lst,red);
> end;Close(izlaz);end;
e nece ni ovako.Pokusacu da blize objasnim problem(mozda cu biti i
dosadan):
u jednom delu programa racunar zove jednu proceduru i varijabli a(inace
tipa string) dodeljuje vrednost 'd51'
u proceduri za stampanje treba da stoji programcwe koje ce da pokrece
stampac da otprinta fajl 'd51' odnosno A
POzdrav i izvinjavam se ako sam naporan ovim naizgled prostim stvarima
pascal.869beast,
-> #859, sjocic>> { Kako izvesti uklanjanje tabele? }
Procedure StoreWindow(x,y,w,h:integer; var p:pointer);
(* x,y - koordinate, w,h - veličina prozora koji se pamti (wide, high) *)
(* Na primer: StoreWindow(1,1,80,25,p) pamti ceo ekran. *)
begin
GetMem(p,w*2*h+8);
asm
dec x
dec y
push ds
lds si,p
mov di,[si]
mov ax,[si+2]
mov es,ax
mov ax,x
stosw
mov ax,y
stosw
mov ax,w
stosw
mov ax,h
stosw
mov ax,y
mov cl,160
mul cl
mov si,x
add si,si
add si,ax
mov ax,SEG @data
mov ds,ax
mov ax,videoseg
mov ds,ax
mov dx,h
@l1: mov bx,si
mov cx,w
rep movsw
mov si,bx
add si,160
dec dx
jnz @l1
pop ds
end;
end;
Procedure RestoreWindow(var p:pointer);
var x,y,h,w:integer;
begin
asm
push ds
mov ax,videoseg
mov es,ax
lds si,p
mov ax,[si]
mov bx,[si+2]
mov ds,bx
mov si,ax
lodsw
mov x,ax
lodsw
mov y,ax
lodsw
mov w,ax
lodsw
mov h,ax
mov ax,y
mov cl,160
mul cl
mov di,x
add di,di
add di,ax
mov dx,h
@l1: mov bx,di
mov cx,w
rep movsw
mov di,bx
add di,160
dec dx
jnz @l1
pop ds
end;
FreeMem(p,w*2*h+8);
end;
Videoseg definiši kao: const VideoSeg:word=$B000 (ili $B800 (VGA i Herc).
Pozdrav, Dejan
pascal.870postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: pascal
Date: Thu, 22 Dec 1994 14:10:09
-=> Reply to: Predrag Supurovic <=-
PS> Ako ti treba da se recimo Pera Peric prosledi kao jedan parametar,
PS> stavi ga pod navodnike, tj. "Pera Peric". DOS sve izmedju navodnika,
PS> bez obzira na SPACE smatra za jedan parametar.
Probaj ovo bez NDOS-a ili 4DOS-a...
-=> MM <=-
... Ko tebe kamenom, taj te gadja!
* Origin: SETNet - Belgrade HUB1 (38:103/1.1)
pascal.871postmast,
From: broker@setnet.co.yu (Predrag Supurovic)
Subject: Re: pascal
Date: Tue, 27 Dec 1994 21:34:00
> PS> Ako ti treba da se recimo Pera Peric prosledi kao jedan parametar,
> PS> stavi ga pod navodnike, tj. "Pera Peric". DOS sve izmedju navodnika,
> PS> bez obzira na SPACE smatra za jedan parametar.
> Probaj ovo bez NDOS-a ili 4DOS-a...
Ne koristim nijedan od pomenutih. U uputstvu za neki program sam nasao
ovo i isprobao na par programa i radilo je. Medjutim, ne radi sa svakim...
* Origin: Oreska BBS, Uzice = SF BIBLIOTEKA = SETNet: (38:101/101)
pascal.872inikolic,
Imam mali problem vezan za ANSI grafiku. Zanima me sta treba da se posalje
preko modema (koji karakter, odnosno ASCIIkod) da bi se kod onog tamo kursor
pozicionirao u gornji levi ugao, pri cemu ne dolazi do brisanja ekrana. Nasto
kao kada bi rekli GoToXT(1,1) , u PASCAL-u. Prijatelj mi je rekao da za to
postoji kod ali ga on ne zna.
HH IVAN
pascal.873andrejt,
-> #872, inikolicQ> posalje preko modema (koji karakter, odnosno ASCIIkod) da bi se kod onog
Q> tamo kursor pozicionirao u gornji levi ugao, pri cemu ne dolazi do
Nije to bas vezano za pascal. Kod je "ESC[1,1H".
pascal.874postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: pascal
Date: Wed, 28 Dec 1994 07:42:28
-=> Reply to: Predrag Supurovic <=-
PS> Ne koristim nijedan od pomenutih. U uputstvu za neki program sam nasao
PS> ovo i isprobao na par programa i radilo je. Medjutim, ne radi sa
PS> svakim...
To zavisi od programa i kako oni analiziraju komandnu
liniju. Ako naidje na _"_ onda sve do sledeceg _"_ tretira
kao jedan string. U NDOS-u i 4DOS-u je ovo ugradjeno ;-)
-=> MM <=-
... Death is life's way of telling you you've been fired.
* Origin: SETNet - Belgrade HUB1 (38:103/1.1)
pascal.875postmast,
From: markom@setnet.co.yu (Marko Milivojevic)
Subject: Re: pascal
Date: Wed, 28 Dec 1994 07:44:06
-=> Reply to: "Nenad Milenkovic" <=-
NM> Ne bih hteo da ti narusavam koncepciju, a mozda i nisam u toku, ali
NM> zar copy nije interna komanda DOS-a? :)
Jeste i stoga gorepomenuti primer nece raditi ;->
-=> MM <=-
... Nice girl in sight: (G)o, (R)un, (H)urry, (D)o it?
* Origin: SETNet - Belgrade HUB1 (38:103/1.1)
pascal.876zeljkoj,
-> #872, inikolic> pozicionirao u gornji levi ugao, pri cemu ne dolazi do brisanja
> ekrana. Nasto kao kada bi rekli GoToXT(1,1) , u PASCAL-u.
> Prijatelj mi je rekao da za to
Imaš u DOS helpu ANSI sekvence.
Otkucaj help ansi.sys
pascal.877vitez.koja,
-> #851, wizard#=>> Probaj sa exec('c:\dos\copy', 'ime_fajla prn'),
#=>
#=> Ne bih hteo da ti narušavam koncepciju, a možda i nisam
#=> u toku, ali zar copy nije interna komanda DOS-a? :)
Koliko ja znam, jeste... :) Nešto sam se očigledno bio zabunio,
ali ideja je tu.
pascal.878vitez.koja,
-> #859, sjocic#=> Hteo bih da napravim rezidentni help, koji bi se recimo
#=> pozivao pritiskom na npr.F5, i koji bi bilo moguce
#=> pozvati u toku rada sa q editorom i iskljuciti isto sa
#=> F5.
Ne valja ti metoda... ti ceo help pokušavaš da smestiš u
interapt rutinu, što naravno nije moguće. U okviru procedure
koja opslužuje interapt moguće je odraditi samo veoma
kratkotrajne poslove, tipa klika iz primera (pisanje po disku
je već kritična kategorija).
Programi koji iskaču na pritisak tastera se pišu tako što se u
interapt rutini glavna procedura tog programa proglasi za 'osnovni
zadatak', pa se po završetku interapt rutine izvršava glavna
procedura.
Elem, za pisanje ozbiljnijeg rezidentnog programa je potrebno
više od primera iz helpa... Za početak (a možda i za kraj, jer
malo toga tamo nema) pročitaj tekstove na temu u Računarima.
pascal.879ognjen,
-> #870, postmast)-> Probaj ovo bez NDOS-a ili 4DOS-a...
Probao 4dos i MSdos 5.0, ni jedan ne radi.
pascal.880postmast,
From: Ivan.Panasiuk@f119.n111.z38.setgate.setnet.co.yu (Ivan Panasiuk)
Subject: luk
Date: Fri, 30 Dec 1994 12:31:18
Treba da povucem luk izmedju dve tacke, s tim da se on moze
menjati. Tj. nesto kao sto imaju najprostiji programi za crtanje:
Obelze se dve tacke i povuce se luk izmedju i onda se moze taj luk
savijati, uvecavati i smanjivati.
Ako je neko radio nesto slicno nek vice.
Vec sam uradio nesto, ali mi izgleda jako primitivno, tako da me
interesuju i ideje ostalih.
Pozdrav [3,14]
* Origin: ECSTASY BBS * Indjija * 022 53 218 * SETNet: (38:111/119)