PCPROG.2

06 Nov 1992 - 26 Jul 1993

Topics

  1. algoritmi (223)
  2. ms.dos (250)
  3. asembler (141)
  4. jezici (278)
  5. pascal (1307)
  6. cccc (752)
  7. cpp (91)
  8. clipper (1027)
  9. baze.podataka (229)
  10. razno (379)
  11. van.teme (189)
  12. basic (56)

Messages - pascal

pascal.741 melev,
H E L P !!! Zanima me da li je moguce ispisivati tekst u grafickom modu vertikalno (ali ne odozdo na gore nego odozgo na dole)? Ja sam pokusavao sa SetTextStyle(DefaultFont,VertDir,Size) a tekst ispisujem sa OutTextXY(x,y,Text) Koristeci ovo ispisuje se samo odozdo na gore sto meni ne treba. Primetio sam da ne mogu da se koriste drugi fontovi kao recimo GothicFont... Melev
pascal.742 darone, -> #736, ivans
>> * Ljuba je u inostranstvu, ima tome skoro godina >> * dana. >> >> Nisam to znao. Pametan je čovek, a uz to još i >> sposoban. Zato je i otišao. darone
pascal.743 zamahajev, -> #740, drmarke
Zahvaljujem se na pril .I
pascal.744 zamahajev, -> #740, drmarke
Poštovani kolega, Zahvaljujem se za odgovor i željno očekujem vaša predavanja. Nadam se da će mi pomoći. Već sam na osnovu grafičko demo programa u potpunosti savladao grafiku i zvuk i naravno najosnovnije naredbe. Voleo bih, ako imate dobre volje da kasnije dođem do vas i presnimim programe koje ste radili. Uzgred kako stojite sa ostalim paketima programa za TIM. Prvenstveno me interesuje dBASE II, jer ću možda biti prinuđen i njega da radim na TIMu. Pozdrav B.3AMAXAJEB
pascal.745 vvelisavljev, -> #726, drpr
> Isto kao i datoteke :) Ovo kod mene radi samo ako je uključen štampač. Znači kad je isključen štampač Ioresult bude 0 kao da je sve OK. :(
pascal.746 peca.st, -> #741, melev
!-> Zanima me da li je moguce ispisivati !-> tekst u grafickom modu vertikalno (ali ne !-> odozdo na gore nego odozgo na dole)? pa napravi proceduru. :) evo ovako: (kucam bez provere, tako da ne zameri na ev. greškama) procedure ispisi_bre_uspravno(x,y:integer;s:string); var i:integer; razmak:byte; begin razmak:=50; šovde stavi kolko vec hoces da ti bude izmedju dva slovać for i:=1 to length(s) do outtextxy(x,y+i*razmak,sŠiĆ); end; jednostavno, zar ne? P e C a
pascal.747 drmarke, -> #744, zamahajev
> i zvuk i naravno najosnovnije naredbe. Voleo bih, ako > imate dobre volje da kasnije dođem do vas i presnimim > programe koje ste radili. Na žalost od programa i nemam baš neku zbirku, jer su to uglavnom radili klinci, a neke diskete su stradale (blago rečeno sažvakane su). Ja se doduše više bavim PC-om, ali nema problema, uvek sam spreman na saradnju. > Uzgred kako stojite sa ostalim > paketima programa za TIM. Prvenstveno me interesuje dBASE > II, jer ću možda biti prinuđen i njega da radim na TIMu. Pa ovako za TIM imam sledeće pakete: GBASIC, Pascal, Fortran Nevada (čitati: ne valja), Cobol (?), dBASE II, neke igre, testove inteligencije, testove vožnje (GSB škola), i možda bi se našlo još po nešto.... Pozdrav DrMarke
pascal.748 drmarke, -> #746, peca.st
> jednostavno, zar ne? Pa nisam baš ubeđen da je čovek to hteo. Ovo tvoje piše ovako: P E C A a on je valjda hteo da mu i slova budu zarotirana za PI/2 u negativnom matematičkom smeru. Ili možda grešim? Pozdrav DrMarke
pascal.749 peca.st, -> #746, peca.st
!-> for i:=1 to length(s) do !-> outtextxy(x,y+i*razmak,sŠiĆ); hm, sad vidim da bi bolje bilo ovako: for i:=1 to length(s) do outtextxy(x,y+(i-1)*razmak,sŠiĆ); mada i onako radi, ali ne počne ispis od one pozicije koje si naveo, nego za RAZMAK niže... Peđa.
pascal.750 ndragan, -> #715, stomic
/ Da to je sve lepo, ali ne sme svako da menja tvoj sors. Ovo Za krupnije stvari, svakako da ne sme. Za sitnije i/ili kozmetičke izmene, lokalna kopija pod drugim imenom i stavljanje autoru na znanje. E kad ta kopija proradi bolje od originala, vreme je da se zameni. Ono o čemu sam ja govorio u prvoj poruci je, recimo, rutina za zalivanje cveća, koja traži dva parametra - količinu vode i mesto gde se nalazi cveće. Autor (ili neko ko sme to da radi) doda treći parametar, recimo spisak dodataka (substral itd). Ako će rutina 100% emulirati prethodnu verziju kad se pozove sa dva parametra, a raditi dodatni posao kad se pozove sa tri, to je to. Svi stari programi će raditi, čak i ako se u njih ubaci nova verzija, a u novim se pojavljuje nova mogućnost.
pascal.751 ssokorac, -> #741, melev
─┼┤ OutTextXY(x,y,Text) function inverzno(tx:string):string; var t:byte; pom:string; begin pom:=''; for t:=length(tx) downto 1 do pom:=pom+txŠtĆ; inverzno:=pom end; OutTextXY(x,y,inverzno(text)); Možda postoji i drugi način, ali ovako je sigurno najjednostavnije :).
pascal.752 eagle, -> #741, melev
> Zanima me da li je moguce ispisivati tekst u grafickom modu > vertikalno (ali ne odozdo na gore nego odozgo na dole)? > Ja sam pokusavao sa Pitanje i nije baš jasno. Pretpostavljam da si mislio da slova okrenuta na desno, okreneš na levo (ili beše obrnuto?). Ja mislim da to može samo ovako: Ako radiš u modu sa više strana, ispišeš tekst sa Vertdir na strani koju ne koristiš. Prethodno napraviš proceduru koja ti određenu površinu preslikava preko vertikalne linije(osa simetrije), koja je levo ili desno od te površine(dela ekrana), i preslikaš taj tekst. Onda ga uzmeš sa Getimage, i staviš tamo gde ti treba.. that's all. A ako imaš samo jednu stranu, neće izgledati baš lepo, jer je jaaaakoooo sporo. ) ( < E > ) (
pascal.753 eagle,
YO! Zanima me kako mogu da koristim EXE datoteku, bez da je stalno startujem sa diska, ako je tako nešto uopšte moguće..
pascal.754 ilazarevic, -> #732, drmarke
> Iz pascala možeš da se vrtiš u petlji dok IOresult ne bude ok, > a ako baš hoćeš da znaš šta mu fali koristiš int 17h ah=02h, > dx=br porta (0=lpt1...), a kao izlaz u ah dobijaš status i to Ovo je već mnogo zgodnije, zato što meni treba baš tačna informacija o stanju štampača, a ne odokativna procena. Hvala...
pascal.755 janko, -> #744, zamahajev
> Uzgred kako stojite sa ostalim paketima programa za TIM. > Prvenstveno me interesuje dBASE II, jer ću možda biti > prinuđen i njega da radim na TIMu. Ovo sa TIM-om me podseti da pitam: Voleo bih da nađem nekog ko ima ASEMBLER i što bolji DISASEMBLER za Z80, a, po mogućstvu, i simbolički dibager za Z80. ? Pretpostavljam da neko još čuva negde omiljene mu CP/M programe, pa mi ne bi smetalo takvo rešenje, jer sam skinuo odnekud (odavde?) CP/M emulator za PC zvani Z80MU. A nekad davno radio sam intenzivno na CP/M-u: Wordstar, dBase II, Turbo Paskal (ne sećam se koja verzija, ali se sećam da je pitao, svaki put kada se staruje, da li da učita i fajl sa tekstovima poruka o greškama :), ASM za 8080... E da, ako neko ima nešto specijalno za PC, ali da radi 100% (imam jedan disasembler za Z80 za PC, ali se, jednostavno, 'zamrzne' kada mu gurnem fajl koji hoću da disasembliram) i tako nešto je dobrodošlo.
pascal.756 vitez.koja, -> #741, melev
#=> ne treba. Primetio sam da ne mogu da se koriste drugi #=> fontovi kao recimo GothicFont... ?! Koliko ja znam moze, i to bez problema...
pascal.757 pedjak, -> #739, eagle
> Evo ovako: Interesuje me kako mogu da eksploatišem modove(valjda se > tako zovu) napravljene u Modedit-u, tj. one datoteke sa ekstenzijom MOD. > Ako neko ima neki source, ili opis MOD fajla, bio bih mu zahvalan... Skoro je neko u ovoj temi poslao source za sviranje .MOD fajlova. Pogledaj malko unazad.
pascal.758 nbatocanin, -> #717, peca.st
> ??? vozio sam "stojadina". - 2 boda. Ajde što voziš stojadina, al' što repliciraš meni na poruku koju nisam ja napisao... :)
pascal.759 peca.st, -> #748, drmarke
!-> a on je valjda hteo da mu i slova budu !-> zarotirana za PI/2 u negativnom !-> matematičkom smeru. Ili možda grešim? možda stvarno nisam dobro razumeo, ali ovo što ti kažeš se dobija sa vertdir... Peđa.
pascal.760 skerl,
╔═════════════════════════════════════════════════════════════════════════╗ ║ MouseLib ║ ║ initial release, Loewy Ron, Feb 90. ║ ║ second release, written by Loewy Ron, AUG 90. ║ ║ Third release, TP6.0 asm support, LR Jan 91. ║ ║ Fourth release, added functions, LR May 91. ║ ║ Fifth release, added intercept, release functions, Jun 91. ║ ║ 6.th Release - Better Docs., Test Sample Program. ║ ║ 7.th Release - Support for BP7 DPMI mode. ║ ║ 8.th Release - Support VGA true text cursor, help database. ║ ╚═════════════════════════════════════════════════════════════════════════╝ mouseLib documentation file : mouseLib.doc, rel 8.0. last update : Feb. 23, 1993, LR. Whats new --------- V8.0 - Supports VGA true cursor. Use setVGATextGraphicCursor before initMouse. - MouseTST program, operates now with true (graphic) VGA text cursor. - Added the tpDESQ and video support units. - Added the mouselib help database, and the help RL HLPDK help engine. V7.0 - Support for BP7 DPMI mode - corrected the graphics mode detection to work with DPMI mode. - Improved MOUSETST program includes sample to event handler code. V6.0 - Added better documentation in MOUSELIB.PAS source. - Added A Simple Sample program - MOUSETST.PAS. - From this version mouseLib is distributed by ISoft D&M, P.O.B 5517, Coralville IA 52241, U.S.A Introduction ------------ mouseLib is a Turbo (Borland) Pascal 6.0/7.0 mouse support unit, designed to provide event driven mouse support, using a standard (default) event handling mechanism. The unit includes all of the normal mouse library functions, (show, hide cursor, define tresh- hold, detect mouse etc..). mouseLib was used for over 3 years now, with many programs and products written by the author, and other programmers. Several mouseLib based packages are distributed by ISoft D&M, and can be downloaded for evaluation from BBSes around the world. Pozdrav, Skerl.
pascal.761 bulaja, -> #760, skerl
> ** Uz poruku 'mouslib8.zip' (191267 bytes) Hvala, prebaceno u \ibmpc\PASCAL dir. Btw arhiva sa ovom verzijom je znatno duza od stare (191 prema 43 Kb) zbog tog HelpEngine koji su ubacili.
pascal.762 ssokorac, -> #745, vvelisavljev
─┼┤ Ovo kod mene radi samo ako je uključen štampač. Znači kad je ─┼┤ isključen štampač Ioresult bude 0 kao da je sve OK. :( Kod mene je ioresult<>0 kada je isključen štampač... Možda nešto nisi ok uradio?
pascal.763 melev, -> #748, drmarke
║ Pa nisam baš ubeđen da je čovek to hteo. ║ Ovo tvoje piše ovako: ║ P ║ E ║ C ║ A ║ a on je valjda hteo da mu i slova budu zarotirana za PI/2 u ║ negativnom matematičkom smeru. Ili možda grešim? Upravo na to sam mislio, da tekst (jednu rec) rotiram za PI/2 udesno. Vidim da me ostali nisu razumeli, ali to je verovatno zato sto ja nisam lepo objasnio sta mi traba. Hvala svima koji su mi odgovorili, i opet postavljem pitanje da li je ovako nesto moguce. Nadam se da je sada jasno sta i treba. pozdrav......... Melev
pascal.764 dejanr,
U direktorijumu IBMPC\PASCAL je obećani LOGON.ZIP, source u TP-u koji omogućava logovanje na Novell mrežu pod kontrolom vašeg programa. Podržava kriptografisanje lozinke i rad sa više servera. Program je, što je malo čudno obzirom da je nastao krajem '92, pisan u nekom antičkom Turbo Pascalu (3.0?) koji je pravio COM a ne EXE fajlove (?). Međutim, dosta se lako da prepraviti na TP 6.0 (ili 5.5), dosta je na početku staviti USES DOS i naći opis RegsType pa ono što tamo piše zameniti sa RegsType: Registers.
pascal.766 eagle, -> #759, peca.st
> možda stvarno nisam dobro razumeo, ali ovo što ti kažeš se > dobija sa vertdir... On i hoće Vertdir, ali na suprotnu stranu.. > Peđa. Gde nestade PeCa!? ) ( < E > ) (
pascal.767 peca.st, -> #763, melev
!-> Hvala svima koji su mi odgovorili, i opet !-> postavljem pitanje da li je ovako nesto !-> moguce. Nadam se da je sada jasno sta i !-> treba. Da sad je jasno... Sori na pogrešnoj informaciji... A ovo što hoćeš, nećeš moći bez simetričnog preslikavanja... Znači, prvo uradiš ono što je rekao ss-ovac, pa onda preslikavaš u odnosu na vertikalnu simetralu... Drugačije ne može, a ovo sporo radi... Šta ćeš. Peđa. P.S. Još jedno moguće rešenje: da onim font editorom nekako, pojma nemam kako preslikaš fontove, pa ih onda snimiš.
pascal.769 skerl,
----------------------------------------------------------------------- Sally Tpu Peephole Optimizer version 1,00 Morten Welinder February 1993 ----------------------------------------------------------------------- 1. Welcome Welcome to Sally Tpu Peephole Optimizer, Spo. This program lets you produce faster programs with Borland Pascal version 7.0 by optimizing the intermidiate code produced by that compiler. Only real mode target units are handled; I don't know the internals of protected mode units and I don't really care. As a special bonus of using this program, the longint shift bug in the runtime library will be eliminated. Some optimized versions of Turbo.Tpl can be obtained. These can be used together with Spo but they are not worth the while. They simply cannot compete with removing the overhead of far calls and returns. Pozdrav, Skerl. spo100.zip
pascal.770 mikeli,
Help ! Zna li ko kako se prave skrolovi texta iz pascala ? Pomagajte ! Pozdrav.Mikeli :)
pascal.771 drmarke, -> #770, mikeli
> Help ! Zna li ko kako se prave skrolovi texta iz pascala ? Ajde malo objasni šta hoćeš da radiš! Šta ti podrazumevaš pod skrolom teksta? jel hoćeš prozor sa extom da vozaš po ekranu ili ti je tekst širi od ekrana pa hoćeš da se šetaš po susednim ekranima ili..... Nemoj da si škrt na rečima ako želiš da dobiješ pravi odgovor. :) Pozdrav DrMarke
pascal.772 isekulovic, -> #763, melev
>> Upravo na to sam mislio, da tekst (jednu rec) rotiram za PI/2 udesno. >> Vidim da me ostali nisu razumeli, ali to je verovatno zato sto ja >> nisam lepo objasnio sta mi traba. >> Hvala svima koji su mi odgovorili, i opet postavljem pitanje da li je >> ovako nesto moguce. Nadam se da je sada jasno sta i treba. žekaj ako ti treba P E C A imaš pecinu proceduru a ako ti treba obrnuto to dobiješ sa vertdir. A možeš i da promeniš malo pecinu proceduru tako što ćeš petlju zameniti sa for i:=1 to length(s) do outtextxy(x,y-(i-1)*razmak,s[i]); end;
pascal.773 mikeli, -> #771, drmarke
Hvala sto hoces da pomognes :) Pogledaj igru maze of torment (maze.zip) na SEZAMU ili ZB-tet pa njegov DEMO.Ja mislim da ce ti onda biti jasno kakve skolove hocu :) A isto bih volio,ako znas kako se prave oni obicni sa textom.Znas ono neki text se skroluje sa lijeve strane u desnu ili obrnuto.Bez treptaja ako moze :) Mislim da sada nisam stedio rijeci :))) Pozdrav,Mikeli :)
pascal.774 majkl, -> #764, dejanr
> LOGON.ZIP, source u TP-u koji omogućava logovanje na Novell mrežu > pod kontrolom vašeg programa. Radi li ovo kod nekog? Na 3.11 ispravno prepoznaje slučajeve za 'Login failed', ali logovanje ne ide. Datoteka uz ovu poruku sadrži sors i izvršni kod programa koji pod 3.11 daje broj konekcije i ime korisnika na njoj. who.zip
pascal.776 eagle,
Evo programa koji tekst obrće na sledeći način: ┌──┐ ┌──┐ tekst: ├──┘ │ │ └──┘ ───┬──┐ crta: └──┘ ┌─────┐ └ ┘ Program Valjda_je_ovo_trebalo; ... procedure preslikaj(x1,y1,x2,y2:integer;razmak:integer); var a:word; i,j:integer; osa:record xosa,yosa:integer;end; begin with osa do begin xosa:=x1*2; yosa:=(y1+((y2-y1) div 2))*2; for i:=x1 to x2 do for j:=y1 to y2 do begin a:=getpixel(i,j); putpixel(xosa-i-razmak,yosa-j,a); end; end; end; ... BEGIN ... razmak:=10; *** ili bilo koja vrednost *** settextjustify(lefttext,toptext); settextstyle(1,1,4); outtextxy(500,280,'EAGLE'); preslikaj(500,280,500+textheight('EAGLE'),280+textwidth('EAGLE'),razmak); ... END. Dakle, ne koristi se procedura koja pravi inverzan string, a zatim preslikavanje preko neke prave, jer to daje otprilike odraz u ogledalu, već se isti string preslikava preko jedne tačke (centralna simetrija). Ovo getpixel/putpixel je primetno sporo za veliki broj tačaka, tako da je poželjno koristiti textwidth i textheight. Ako sam dobro shvatio, ovo si tražio (inače sam džabe pisao)... ) ( < E > ) (
pascal.777 inesic, -> #770, mikeli
> Help ! Zna li ko kako se prave skrolovi texta iz pascala ? Iz pascala - uz pomoć prozora. Readwin odavde doovde, pa onda writewin red više ili niže ili levije ili desnije ili ukoso ili kako već treba.
pascal.778 peca.st,
Jedno pitanje, koje verovatno čudno zvuči... Dakle, kako, i da li je moguće iz pascala praviti .EXE datoteke? Peđa.
pascal.779 darone, -> #778, peca.st
>> Dakle, kako, i da li je moguće iz pascala >> praviti .EXE datoteke? Na kapiram baš, ali ako si mislio da od .pas napraviš .exe, onda bi bilo najbolje kompajlerom (tpc.exe). Iako može i (neka_options / destination / disk). darone
pascal.780 dmajkic, -> #778, peca.st
+> Dakle, kako, i da li je moguće iz pascala praviti .EXE +> datoteke? A da nisi mislio na .COM ?
pascal.781 ssokorac, -> #773, mikeli
─┼┤ A isto bih volio,ako znas kako se prave oni obicni sa textom.Znas ono ─┼┤ neki text se skroluje sa lijeve strane u desnu ili obrnuto.Bez ─┼┤ treptaja ako moze :) tekst:='Stasha. '; (* obavezno space na kraju stringa *) red:=27; for t:=79 downto -length(tekst)+1 do if t>0 then begin gotoxy(t,red); write(tekst) end else begin (* nestajanje na levoj ivici *) gotoxy(1,red); write(copy(tekst,1,length(tekst)-1+t)) end; P.S. Jedan ortak iz razreda ima problema sa skrolovanjem teksta u grafickom modu, samo treba da voza nekoliko redova teksta na gore. Ne mora da bude glatko, lepo i sl, samo da je brzo, kako kaže.
pascal.782 vitez.koja, -> #778, peca.st
#=> Dakle, kako, i da li je moguće iz pascala praviti .EXE #=> datoteke? Je'l ti ne znas ta kompajliras program ili si namislio da pises kompajler ?
pascal.783 peca.st, -> #779, darone
!-> Na kapiram baš, ali ako si mislio da !-> od .pas napraviš .exe, onda bi bilo !-> najbolje kompajlerom (tpc.exe). Iako !-> može i (neka_options / destination / !-> disk). Hvala darone. ;) Znam znam, to najlakše uradiš kao f10, c, d, alt-f9. :) Znao sam da će biti ovakvih poruka, jer nisam imao vremena lepše da obrazlžim. Dakle, meni treba da MOJ program koji sam napravio, ima opciju za pravljenje .EXE datoteka, koje će raditi _TO_I_TO_. Ajde ako neko zna, ne bilo mu zapoveđeno... Peđa.
pascal.784 mcule, -> #778, peca.st
Da l' da ja pocnem da prosipam pamet? ;)
pascal.785 bearboy, -> #644, drpr
║ Da li vam je nekad bilo potrebno da definišete konstantu ║ koju možete da menjate? Da i reći će te da se to radi u stilu: Pa ako je menjaš, onda više nije konstanta :)
pascal.786 peca.st, -> #781, ssokorac
!-> P.S. Jedan ortak iz razreda ima problema !-> sa skrolovanjem teksta u grafickom modu, !-> samo treba da voza nekoliko redova teksta !-> na gore. Ne mora da bude glatko, lepo i !-> sl, samo da je brzo, kako kaže. IH, ss-ovac, pa ovo tvoje radi u tekst modu... žovek je ako sam ja shvatio tražio u grafičkom, dakle isto ovo što tebi (tvom ortaku) treba... So, ja vi možda ovijeh dana pošaljem to, ako budem našao program u kome sam to koristio. Peđa.
pascal.787 peca.st, -> #782, vitez.koja
!-> Je'l ti ne znas ta kompajliras program !-> ili si namislio da pises kompajler ? Pošto sam već odgovorio na prvi deo pitanja, evo odgovora na drugi: Ne mislim baš da pišem kompajler, ali recimo, mislim da pišem neki program tipa GIF-->EXE (ne baš taj program, ali tog tipa). Peđa.
pascal.788 dejanr, -> #783, peca.st
>> Dakle, meni treba da MOJ program koji sam napravio, ima opciju za >> pravljenje .EXE datoteka, koje će raditi _TO_I_TO_. To bi značilo da tvoj program bude kompajler. Hm, naravno, može se najzad napisati i kompajler, ali ne verujem da bi to bio tako jednostavan posao. Preporučio bih da uzmeš TPC (ili kako se već zove), Turbo Pascal stand alone compiler. Onda kada tvoj program napravi .PAS datoteku, sa EXEC pozoveš TPC da od nje napravi EXE. Naravno, morao bi da se pobrineš za tretman eventualnih greški (valjda TPC vraća ERRORLEVEL (?)) i onda da, ako je prevođenje uspelo, startuješ prevedeni program. Nikada to nisam radio, ali ne vidim razloga zašto ne bi moglo, ako se TPC-u ostavi dovoljno memorije.
pascal.789 skerl,
Í──────────────────────────────────────────────────────────────── ║ SVGA Driver and Utilities ║ ║ Here are some simple SVGA utility programs that will allow you ║ have some fun with these none standard modes. The SVGA driver ║ caters for most popular brands and should work on the brands ║ listed ( just have a look through SVGA.PAS ). ║ ║ The programs given allow you to create your own palettes, draw ║ your own pictures and finally use them in your own programs ║ via the SVGA driver. A font editor program is also given so ║ can create your own fonts. ║ ║ Some palettes and images are given as examples ( these are the ║ *.pal and *.img files ). the MARS.IMG and SKULL.IMG files use ║ SWORD.PAL and LIFE.IMG uses LIFE.PAL. These image files can be ║ viewed with SVGAMAP.PAS. For example to view LIFE.IMG run ║ SVGAMAP and press 'x'. Type in 'life.pal' as the file name of ║ the palette. Then press 'l' and type in 'life.img'. ║ ║ The source code is given for all of these to enable you to ║ customize the programs to your needs, or to enable you to ║ make improvements to the SVGA driver. Ofcourse, any ║ improvements to the driver would appreciated by me and anyone ║ else who is using the driver. Suggestions are also welcome ║ but there is no guarantee I will have time to implement them. Pozdrav, Skerl. svgadc30.zip
pascal.790 skerl,
Evo prave stvari za one koji se bave programiranjem koprocesora iz pascal-a. Unit daje kompletnije izvestaje o greskama. Pozdrav, Skerl. ERROR87 1.3 - Turbo Pascal units to improve coprocessor error reports. Copyright (c) 1990,1993, D.J. Murdoch. All rights reserved. Portions of DECODE87.PAS copyright 1985,86, L. David Baldwin. INTRODUCTION Turbo Pascal doesn't handle floating point errors well. The number of errors that are reported as run-time "Error 207" is large, and in some versions the error address is miscalculated, so you don't have a clue where to look for them. ERROR87 is a unit that attempts to address both of these problems - it gives more informative error messages, and it tries to improve on the calculation of the error address. In this package, you should find the following files: ERROR87.DOC - this file ERROR87.PAS - source code to the error handling unit DECODE87.PAS - source code used to decode the instructions DV87.ZIP - a little TSR to fix a bug in Desqview 2.26 that crashes windows on coprocessor errors NMI.ZIP - a little program to turn on NMI handling on XT clones, so that they don't crash on coprocessor errors err87_13.zip
pascal.791 kenza, -> #778, peca.st
(;> Dakle, kako, i da li je moguce iz pascala praviti .EXE datoteke? E,svasta ;) kompajliras *.pas u *.exe.Ili uzmes TPC i....
pascal.792 drmarke, -> #773, mikeli
> A isto bih volio,ako znas kako se prave oni obicni sa > textom.Znas ono neki text se skroluje sa lijeve strane u > desnu ili obrnuto.Bez treptaja ako moze :) Za text mod ti je nešto poslao recimo ssokorac, a ja pošto trenutno nemem vremena da kopam gde mi je napravljeno mogu da ti preporučim da se obratiš almi-ju jer se on baktao sa tim stvarima (nešto je bilo i u računarima sa očitavanjem portova). On mi danas reče, da je video u ovom nivom file-u u info "vgadoc2.arj" da ima urađen scroll ekrana pa vidi. Pošto ima source na pascalu malo pročitaj pa će da radi. Pozdrav DrMarke
pascal.793 drmarke, -> #781, ssokorac
> tekst:='Stasha. '; (* obavezno space na kraju stringa *) Pa ja ovo malo gledah pa baš i ne radi. Naime mislim da bi scroll bio scroll on mora da ono što je napisano pre pomeranja i da obriše. Zato ti treba još jedna promenljiva koja sadrži prazninu iste dužine kao i tekst. Npr. ovako: Ň══════════════════════════════════════════════════════════════Ş │ │ │ uses Crt,Brlj; │ │ var t,red,zn:integer; │ │ tekst,bris:string[10]; │ │ begin │ │ clrscr; │ │ HideCursor; │ │ tekst:='Stasha. '; (* obavezno space na kraju stringa *) │ │ bris :=' '; │ │ red:=12; │ │ for t:=79 downto 1 do │ │ if t>length(tekst) then │ │ begin │ │ write(bris); │ │ gotoxy(t-length(tekst),red); │ │ write(tekst); │ │ gotoxy(t-length(tekst),red); │ │ delay(25); │ │ end │ │ else │ │ begin (* nestajanje na levoj ivici *) │ │ gotoxy(1,red); │ │ write(copy(bris,length(bris)+1-t,t)); │ │ gotoxy(1,red); │ │ write(copy(tekst,length(tekst)+1-t,t)); │ │ delay(30); │ │ end; │ │ readln; │ │ restorecursor; │ │ end. │ │ │ ď══════════════════════════════════════════════════════════════ż Pozdrav DrMarke
pascal.794 dgrbic, -> #787, peca.st
:: Ne mislim baš da pišem kompajler, ali recimo, mislim da :: pišem neki program tipa GIF-->EXE (ne baš taj program, :: ali tog tipa). Gledaj ovako: 1. Napišeš program koji radi ono što tebi treba (npr. prikazuje GIF); 2. Napraviš ga tako da on učitava podatke iz .EXE fajla (tj. samog sebe) 3. Napraviš drugi program koji "lepi" taj program i podatke 4. Gotovo :)
pascal.795 ivans, -> #755, janko
* Voleo bih da nađem nekog ko ima ASEMBLER i što bolji * DISASEMBLER za Z80, a, po mogućstvu, i simbolički dibager * za Z80. ? Vidim, niko se ne javi da odgovori čoveku, pa rekoh da pokušam ja... Mada je i od mene mala pomoć... :( Imam asembler i to makro, a još kažu da je relokatibilni (ovo poslednje nisam proveravao). Zove se ZAS. Uz njega idu linker ZLINK i "bibliotekar" ZLIB. Što se dibagera tiče, imam dva: jedan je ZDM, a drugi DSD. Ovaj prvi nikada nisam ozbiljnije koristio, valjda zato što nigde nisam našao spisak svih opcija koje omogućava, a i inače mi je delovao jako ružno, otprilike kao MS DOS-ov DEBUG. Ovaj drugi je znatno bolji, ima ugrađen help-podsistem i gomilu opcija koje sam video tek kod nekih dibagera za PC (konkretno, Turbo Debugger). U svakom trenutku se na ekranu vidi stanje registara i memorije, disasemblirano bilo koje parče memorije (najčešće ono na kome je PC registar), moguće je trejsovati program sa prikazom stanja registara i memorije posle svakog koraka ili trejsovati, na primer, hiljadu instrukcija bez prikazivanja promene registara / memorije (dakle, nešto brže, i to prilično) itd. Glavni problem je što je sve to smešteno na jednu TIM-011 disketu, sa koje PC ne može da čita fajl, već je potrebno "krpiti" programe sektor po sektor... A to daje nikakve rezultate :(. Ako neko ima ideju kako da se do ovoga dođe - neka se javi... Pozdrav, Ivans.
pascal.796 almi, -> #792, drmarke
Otklanjanje trperenja se najbolje postiže ispitivanjem port-a $03DA tj. da li je njegov 3. bit setovan pr.: REPEAT UNTIL (PORT[$3DA] AND 8) = 8; I posle ovog reda treba iscrtati nešto. Pozdrav Mišel.
pascal.797 djnsnd,
Da li neko zna kako da iz Turbo Pacal-a procitam serijski broj diska na kojem je program instaliran ? Pre nekog vremena je u Bajtovima Lične Prirode bilo nešto o tome na C-u ? Djn
pascal.798 djnsnd,
Da li je neko u stanju da mi kreira nove TButtons za Turbo Viziju? Trebaju mi tasteri koji zauzimaju manje prostora na ekranu. Ovi postojeci imaju najmanje 2 reda, pa bi mogla da se skine senka. Dejan 434-822
pascal.799 ssokorac, -> #793, drmarke
─┼┤ scroll bio scroll on mora da ono što je napisano pre ─┼┤ pomeranja i da obriše. Zato ti treba još jedna promenljiva Tome i služi space na kraju stringa. :) Kada bih stalno sve brisao suviše bi 'treptalo' a i sporije je.
pascal.800 peca.st, -> #794, dgrbic
!-> Gledaj ovako: !-> 1. Napišeš program koji radi ono što tebi !-> treba (npr. prikazuje GIF); 2. Napraviš !-> ga tako da on učitava podatke iz .EXE !-> fajla (tj. samog sebe) 3. Napraviš drugi !-> program koji "lepi" taj program i podatke !-> 4. Gotovo :) Zamolio bih te da ovo malo više pojasniš, baš mi ne ide u glavu... Peđa.
pascal.802 janko, -> #795, ivans
> Glavni problem je što je sve to smešteno na jednu TIM-011 > disketu, sa koje PC ne može da čita fajl, već je potrebno > "krpiti" programe sektor po sektor... A to daje nikakve > rezultate :(. Ako neko ima ideju kako da se do ovoga dođe > - neka se javi... A postoji li program koji sve sektore redom pročita i sruči u PC fajl? Ako ima, onda uz dokumenjtaciju o organizaciji TIM diskete (eto šta treba iskopati) čas posla se napravi programče da rasturi sve na fajlove... Frčno je i to da li su ti programi samo za TIM ili za svaki CP/M. TIM ima i neke svoje bubice, a ja nemam nameru da pišem TIM emulator...
pascal.803 dgrbic, -> #800, peca.st
:: Zamolio bih te da ovo malo više pojasniš, baš mi ne ide u :: glavu... OK, idemo: Napraviš program za prikazivanje ili-šta-ti-već-treba i to tako da on iz samog sebe čita podatke (npr. na kraj programa naredbom copy nalepiš neki string koji ti služi kao marker, ili zapišeš dužinu programa...) pa onda opet naredbom copy (ili ekvivalentnom procedurom iz svog programa) nalepiš podatke iza tog markera. Program za prikazivanje nađe marker u fajlu čije ime dobiješ sa paramstr(0) i onda lepo čita potrebne podatke. Sam .exe fajl za prikazivanje možeš da upakuješ u program koji vrši spajanje kao binarnu sliku (program binobj vrši posao). Ako ti još nešto nije jasno... javi, će pojasnimo :)
pascal.804 ivans, -> #802, janko
* A postoji li program koji sve sektore redom pročita i * sruči u PC fajl? Bojim se da nema :(. Naime, još pre nego što sam nešto radio sa Anadiskom, pokušavao sam da pročitam TIM-ovu disketu pomoću dva druga programa (jedan mi je poslao Bulaja, a drugi jedan Sezamovac, neka mi ne zameri što mu nisam upamtio ime ;), i nijedan nije uspeo da izvuče ništa sa disketa... Anadisk je bar nešto uspeo, taman toliko da je to što je uspeo neupotrebljivo... :( Što se tiče organizacije TIM diskete mislim da je čak vrlo standardna. Neko je ovde na Sezamu bacio opis CP/M formata diskova, i uspeo sam da prepoznam nešto što je zajedničko sa TIM disketom - dakle, nije potpuno nestandardna... a ipak ne može "normalno" da joj se pristupi. :( * Frčno je i to da li su ti programi samo za TIM ili za * svaki CP/M. Oni Z* programi koje sam naveo su bili isporučivani na sistemskim disketama, pa postoji šansa da nisu za svaki CP/M... Mada bi trebalo da jesu - ne verujem da su u "Pupinu" radili nešto drastično na njima... Opet, ko zna... Međutim, onaj dibager (DSD), koji se nekako volšebno ;) uvukao na moje diskete, vrlo verovatno nije napisan (ili prilagođen) za TIM-011 - ko bi se petljao s tim kad već postoji ZDM? ;) Samo, potrebno je i to nekako pročitati, a, kao što napisah gore, ni Anadisk ne uspeva... Sad mi pade na pamet - postojale su verzije TIMa-011 sa 5.25" drajvom (nikada isporučivane školama), pa bi se eventualno sa njih moglo nešto pročitati... Naravno, zbog toga bi trebalo otići u "Pupin" i naći nekog spremnog za saradnju, što je verovatno "malo" poteže :(. Pozdrav, Ivans.
pascal.805 predragd, -> #706, peca.st
> Ako ima source, stvarno nema frke prepraviti ga da radi i > u drugim rez... Ja sada imam ono čudo što radi samo u 640 > 480 16, al mi treba za više, Stiže (source za RW PCX-a). Peđa. pcx.arj
pascal.806 peca.st, -> #803, dgrbic
!-> Ako ti još nešto nije jasno... javi, će !-> pojasnimo :) Ma sad je jasno, no problemo, ali si ti suviše direktno shvatio ono što sam ja rekao "neki program tipa GIF-->EXE". So, uz pomoć packObj može to da se uradi, hvala. (mada to i nije bilo ono što je meni u suštini trebalo). i onako nije bilo previše važno, nešto sam hteo da uradim, što i nije mLogo bitno. :) Peđa.
pascal.807 ilazarevic,
Šta znači ovo: inline($9c); Radi se o primeru za rezidentan program iz BLP, pisao vitez.koja.
pascal.808 ilazarevic,
Napisao sam nešto ovako: uses crt,dos; var proc:procedure; š$M 1024,0,0ć procedure sat; interrupt; var h,m,s,s100:integer; begin inline($9c); proc; gettime(h,m,s,s100); gotoxy(1,1); write(h,':',m,':',s); end; begin swapvectors; getintvec($1c,čproc); setintvec($1c,čsat); window(30,1,60,3); keep(0); end. Ovo mi okači satić na vrhu ekrana i otkucava :) Jedini problem je to što ja hoću da mi sat radi u pozadini, dok ja mogu normalno da radim šta već poželim u DOS-u. Kako to?
pascal.809 vitez.koja, -> #807, ilazarevic
#=> Šta znači ovo: inline($9c); To je ekvivalent PUSHF asemblerske naredbe, postavlja fleg registar na stek jer se iz interapt rutine vraca sa IRET (koja automatski vraca flegove sa steka) a ne sa RET.
pascal.810 eagle, -> #808, ilazarevic
> Ovo mi okači satić na vrhu ekrana i otkucava :) Jedini problem > je to što ja hoću da mi sat radi u pozadini, dok ja mogu > normalno da radim šta već poželim u DOS-u. Kako to? Možeš da ubacuješ vreme direktno u ekranski bafer, dakle bez šetkanja kursora. Inače, sumnjam da ćeš moći ovako nešto sa "gettime". Bolje uradi samo jedno gettime na početku, a posle uzmi neki brojač i uvećavaj ga u svojoj proceduri. E sad nek' mi neko objasni ovo: Namestim tako da mi se npr. svakog minuta ispisuje nešto na ekranu, i to lepo radi kad ništa ne diram. Međutim, kad držim neprekidno Enter ili bilo šta drugo, promaši za 2-3 sekunde!? A ja mislio da prekid sata ima prednost nad prekidom tastature.. ) ( < E > ) (
pascal.811 peca.st, -> #805, predragd
!-> Stiže (source za RW PCX-a). !-> Peđa. TOOOOOOOOOOOO Imenjače! Ljudi, ja bih mu odmah na neviđeno dao godinu dana pretplate, kad bi mene neko pitao. (a ne pita me) Peđa.
pascal.812 dzakic, -> #808, ilazarevic
>> gettime(h,m,s,s100); GetTime je funkcija dosa, pa ti zato program verovatno radi samo na promptu, a u ostalim situacijama zaglavi. Treba da izbegneš pozivanje ove funkcije recimo direktnim čitanjem sata iz promenljivih na segmentu $40.
pascal.813 ilazarevic, -> #809, vitez.koja
># => Šta znači ovo: inline($9c); Hvala, doživeo sam prosvetljenje :)
pascal.814 ilazarevic, -> #812, dzakic
> pozivanje ove funkcije recimo direktnim čitanjem sata iz > promenljivih na segmentu $40. Da, videh u DOS referenci da se tamo vraća broj otkucaja. Zbun je u tome što ne znam da li će mi vratiti broj otkucaja interapta 1Ch (mnooogo veliki broj :) ili broj sekundi ili tačno vreme. Izgleda da ću morati da probam...
pascal.815 zamahajev,
Kako u Pascalu napisati program koji koristi programsku datoteku kao Basicu npr. 10 Data Pera,170,Mika,183,Laza,194, ..... itd 20 for i=1 to 12 30 read ime$, vis 40 print ime$, vis 50 next i Pozdrav 3AMAXAJEB B.
pascal.816 dejanr, -> #815, zamahajev
>> Kako u Pascalu napisati program koji koristi programsku datoteku kao >> Basicu npr. >> 10 Data Pera,170,Mika,183,Laza,194, ..... itd >> 20 for i=1 to 12 >> 30 read ime$, vis >> 40 print ime$, vis >> 50 next i Približan ekvivalent bi bio: CONST imena: ARRAY[1..4] OF string[10] = ('Pera', 'Mika', 'Laza', 'čika'); broj: ARRAY[1..4] OF integer = (10,20,30,40);
pascal.817 dejanr,
Iako BP 7.0 još nije stigao do nas :( (tj. u svakom slučaju nije do mene), evo par zanimljivih poruka na tu temu: ========== borland/turbo.pascal #6637, from klrv, 499 chars, Mon Mar 15 14:22:59 1993 Comment(s). ---------- TITLE: BCC 3.1 interfacing Does the new (7.0) version of Turbo Pascal finally allow to generate .OBJ files, which can be linked to other programs? Did anyone ever try to interface BCC and Pascal routines in one program? (this was almost impossible with previous versions of TP) All suggestions are more than welcome! We would like to interface a program written in C with an existing program written in Turbo Pascal... At this moment, we're afraid we'll have to re-write everything in C... Luc ========== borland/turbo.pascal #6638, from terjem, 880 chars, Mon Mar 15 16:50:07 1993 Comment to 6637. Comment(s). More refs to 6637. ---------- > Does the new (7.0) version of Turbo Pascal finally allow to generate .OBJ > files, which can be linked to other programs? No, it still generates .TPU files. You can link in supporting C functions as .OBJ files, but there is no way to use a C main() program. IMHO any serious Turbo Pascal programmer should consider getting StonyBrook's Pascal+, which can generate BC++/MSC-compatible .obj files, and optimizes the code to where it is comparable to, and in some cases better than, the best C compilers. I did take part in the beta test of the current StonyBrook compiler, V6.1, but I have no other interests in the company. Pascal+ is compatible with Turbo Pascal V6.0, so if you have started to use the BP7.0 extensions, or need to use protected mode, you still have a problem. --Terje Mathisen (Internet: terjem@nho.hydro.com, FAX: +47-22-433606, Compu$erve 10030,547) ========== borland/turbo.pascal #6640, from klrv, 66 chars, Mon Mar 15 17:59:16 1993 Comment to 6638. ---------- You really made my day! Thanks a lot for this advise :-) :-) Luc ========== borland/turbo.pascal #6641, from mfang, 124 chars, Mon Mar 15 21:32:40 1993 Comment to 6637. Comment(s). ---------- BP 7.0 does support dynamic link libraries. So if your program is Windows-oriented, you can skip the .OBJ. ========== borland/turbo.pascal #6642, from abailey, 101 chars, Mon Mar 15 22:07:39 1993 Comment to 6641. ---------- BP 7.0 isn't limited to Windows for DLL's. You can make DLL's for the DOS protected mode. ========== borland/turbo.pascal #6643, from fred.robinson, 846 chars, Tue Mar 16 19:15:07 1993 Comment(s). ---------- Borland DPMI vs. Windows' DPMI (I think) I've run into a minor snag with these two DPMI servers. I'm working on FATMAP (listings\ibm.utils, FATMAP4.ZIP). It uses Int $25 to read sectors from the disk. In real mode, everything is fine. In protected mode everything ain't. Int $25 normally leaves a word on the stack when it returns, so part of the sector-reading code removes this word after the int call. Now, in a Windows DOS window, this turns out as expected. However, outside of Windows, where I assume DPMI16BL.OVL is being used, this extra word is not in the stack after the call. Is the Borland DPMI doing some unexpected cleanup after an interrupt? If so, this is a major PITA since I can't tell after the interrupt whether I should pop the extra word or not (this is in assembly code, in a linked-in .OBJ). ========== borland/turbo.pascal #6644, from mfsargent, 337 chars, Tue Mar 16 22:00:44 1993 Comment to 6643. Comment(s). ---------- Fred, You could push your own sentinal onto the stack before doing the Int $25. On return, if the top of the stack isn't your sentinal, assume it's the flags and remove it. The sentinal value should probably be chosen to be something that is an invalid flag word. ========== borland/turbo.pascal #6645, from fred.robinson, 549 chars, Thu Mar 18 19:10:24 1993 Comment to 6644. Comment(s). More refs to 6644. ---------- OK, Mike, I tried the flag value on the stack, and it works, to the point where I no longer get the bogus value popped into DS and a GPF. Now, under DPMI, int $25 itself is acting differently between Windows DOS boxes and plain old DOS. In Windows, it acts as expected. But in DOS, it fails somehow, and returns an error code corresponding to "sector not found" and *no* extra word on the stack. I don't think I'm telling it to look for anything unusual, since the same code works in Windows and for the real-mode version. Help, anybody! Fred ========== borland/turbo.pascal #6646, from fred.robinson, 205 chars, Thu Mar 18 19:11:23 1993 Comment to 6644. ---------- I'll give that a whack. I'll push something like $FFFF onto the stack and the check for it after the int $25 call. I only hope I don't trash the rest of the code in the process :-/ . Thanks. Fred ========== borland/turbo.pascal #6647, from abailey, 350 chars, Thu Mar 18 21:24:54 1993 Comment to 6645. More refs to 6645. ---------- According to the bible on Borland DPMI " Borland Open Architecture Handbook for Pascal", Int 25h and 26h are _not_ reflected through to protected mode. To do it right you would have to set up a simulate real-mode interrupt (DPMI function 0300h) to pass the call down to real-mode. ( I have to do the same thing with VESA graphics calls.) ========== borland/turbo.pascal #6648, from mtoney, 333 chars, Sat Mar 20 22:15:16 1993 Comment to 6645. ---------- This is just a thought (more of a curiousity), but have you tried using someone else's DPMI server (Like QEMM's) instead of Borlands? If any other is out there, Borlands protected mode programs (DOS ones) will use it instead of their own. This is what happens in Windows at least, a windows program uses the Windows DPMI server...
pascal.818 almi,
Kako da alociram niz u XMS ili EMS. Pozdrav Mišel.
pascal.819 dmajkic,
Kako da u turbo paskalu iskoristim grešku, a da mi se program ne prekine? Konkretno, kada proba da izračuna LN(x) za x<0, da ne prijavi runtime error već da skoči na neku proceduru.
pascal.820 eagle, -> #819, dmajkic
> Konkretno, kada proba da izračuna LN(x) za x<0, da ne prijavi > runtime error već da skoči na neku proceduru. Valjda bi najjednostavnije bilo da napraviš neku svoju funkciju, npr. LNN, koja ti daje ln(x) za ispravnu vrednost, a poziva neku proceduru ako je x neispravno. ) ( < E > ) (
pascal.821 ssokorac,
Može li neko (samo ukratko, ali ako je rapoložen može i opširnije:) da objasni šta se tačno dešava posle komande SetActivePage(1); Ne mislim na efekte, nego u koju se sada memoriju upisuje sve što se ispisuje na ekran, i, uopšte, kako pristupiti toj memoriji da nemamo SetActivePage proceduru i sl. Thanks mnoogo, Stasha.
pascal.823 dekiper, -> #819, dmajkic
dmajkicu-u, mislim da onaj savet koji sam ti dao u Klubu i nije baš najbolji pa je mnogo praktičnije da pre poziva funkcije Ln (za računanje logaritma) proveriš kakav joj argumenat daješ, pa ako je u pitanju negativan broj jednostavno pozoveš proceduru koja će signalizirati grešku. Na primer: Program Logaritam; Procedure Greska; Begin WriteLn('Greška: Nemoguće je dobiti logaritam negativnog broja'); End; Var A:Integer; Rez:Real; Uspelo:Boolean; Begin repeat WriteLn('Unesite argumenat funkciji Ln'); ReadLn(a); If A<0 then Begin Rez:=Ln(A); Uspelo:=TRUE; End Else Greska; until Uspelo; WriteLn('Logaritam je: ',Rez); End.
pascal.824 ssokorac, -> #819, dmajkic
─┼┤ Konkretno, kada proba da izračuna LN(x) za x<0, da ne prijavi š$I-ć p:=LN(x); š$I+ć If IOResult<>0 then Procedura;
pascal.825 peca.st, -> #818, almi
!-> Kako da alociram niz u XMS ili EMS. Teško. Nisam siguran da li u opšte može. Peđa.
pascal.826 dejanr, -> #823, dekiper
>> dmajkicu-u, mislim da onaj savet koji sam ti dao u Klubu i nije baš >> najbolji pa je mnogo praktičnije da pre poziva funkcije Ln (za >> računanje logaritma) proveriš kakav joj argumenat daješ, pa ako je u >> pitanju negativan broj jednostavno pozoveš proceduru koja će >> signalizirati grešku. Na primer: Ovo dolazi u obzir kada se zbilja radi o računanju jedne funkcije. Međutim, ako se javljaju duži izrazi, dosta komplikuje da se za svaki LN stavlja IF, pa onda za svaki koren, pa onda prekoračenja, podkoračenja... trećina programa će biti radni deo, a dve trećine nekakvi IF-ovi. Ako imam segment programa koji ima mnogo numerike koja može da napravi grešku, obično instaliram exit proceduru - kada bi da prijavi grešku, program upadne u moju proceduru, ja proverim da li je greška numerička i ako jeste zanemarim je i idem nazad na petlju, sledeća iteracija. Radi jako dobro i strašno se lako programira. O exit procedurama je bilo reči ovde, u Bajtovima lične prirode a pominju se čak i u uputstvu :)
pascal.827 dejanr, -> #824, ssokorac
>> š$I-ć p:=LN(x); š$I+ć >> If IOResult<>0 then Procedura; Jesi li ovo probao? Nešto nisam ubeđen da će da radi, {$I-} samo maskira I/O greške, dakle za razne RESET, READ itd. Ne bih rekao da maskira numeričke greške.
pascal.828 dejanr, -> #825, peca.st
>> > Kako da alociram niz u XMS ili EMS. >> >> Teško. Nisam siguran da li u opšte može. Sve može, ali ne znači da je jednostavno... pogledaj recimo fajl uz poruku 6.268
pascal.829 janko, -> #826, dejanr
> Ako imam segment programa koji ima mnogo numerike koja > može da napravi grešku, obično instaliram exit proceduru - > kada bi da prijavi grešku, program upadne u moju > proceduru, ja proverim da li je greška numerička i ako > jeste zanemarim je i idem nazad na petlju, sledeća > iteracija. Radi jako dobro i strašno se lako programira. Postoji i puno elegantniji metod (doduše, nisam ga primenjivao na TP-u, već na BC-u). Emulator 8087 procesora koji prati Borlandove proizvode je izuzetno veran specifikaciji pravog 8087, pa je moguće i podešavati operacije koje on sam izvodi, koristeći kontrolne reči 8087 procesora. Program pišete potpuno jednako bilo da radi sa pravim procesorom bilo da radi sa emulatorom (vi uopšte ne vidite emulator!). Po IEEE specifikacijama, (a 8087 je dosta blizak njima) rutine za pokretni zarez treba da obezbede svu silu mogućnosti da zanemare neke ekscesne situacije ili da ih prijave, i još trista čuda uz to. Setovanjem ili resetovanjem samo jednog bita može da se isključi javljanje underflow ili overflow operacije. Za te operacije nad kontrolnom reči 8087 procesora BC ima i ugrađene primitive (ne pišu se nikakve ASM linije!). Na TP-u, (ili ovim novijim čudima) ako su mogući ovakvi metodi (trebalo bi dobro pročačkati uputstva), trebalo bi aktivirati 8087 emulaciju i koristiti IEEE formate (a ne onaj interni real).
pascal.830 draganm, -> #804, ivans
*> Bojim se da nema :(. Naime, jos pre nego sto sam nesto radio *> sa Anadiskom, pokusavao sam da procitam TIM-ovu disketu pomocu *> dva druga programa (jedan mi je poslao Bulaja, a drugi jedan *> Sezamovac, neka mi ne zameri sto mu nisam upamtio ime ;), i *> nijedan nije uspeo da izvuce nista sa disketa... Anadisk je *> bar nesto uspeo, taman toliko da je to sto je uspeo *> neupotrebljivo... :( Ja sam uspeo sa Anadiskom da dump-ujem celu disketu na hard .....
pascal.831 pedjak, -> #817, dejanr
> IMHO any serious Turbo Pascal programmer should consider getting > StonyBrook's Pascal+, which can generate BC++/MSC-compatible .obj files, > and optimizes the code to where it is comparable to, and in some cases > better than, the best C compilers. > Pascal+ is compatible with Turbo Pascal V6.0, so if you have started to Jel' zna neko nešto više o tom Pascal+ kompajleru ? Ako generiše .OBJ ondak je to odlično ! pedja
pascal.832 dmajkic, -> #826, dejanr
+> Ovo dolazi u obzir kada se zbilja radi o računanju jedne +> funkcije. Međutim, ako se javljaju duži izrazi, dosta +> komplikuje da se za svaki LN stavlja IF, pa onda za svaki +> koren, pa onda prekoračenja, podkoračenja... trećina programa +> će biti radni deo, a dve trećine nekakvi IF-ovi. Potpuno si u pravu. Ali, ajde da ja pojasnim o čemu se radi: Napisao sam mali program za crtanje grafika funkcije. Meni je mnogo pomagao, ali su onda funkcije počele da se komplikuju. Problem je sa domenom (oblast definisanosti fj-e). Primetio sam :) da bi bilo mnogo lakše da iskoristim grešku u računanju, jer fj-a baš tu nije definisana, nego da od malog programa pravim ogroman uz pomoć IF-ova. Pošto ja unapred ne znam kakva će fj-a da bude, ne mogu da isključim sve slučajeve. Znači, odpada ono 'if x<0 then...' . Pokušao sam i sa ( $I+ ) i ioresult ali nije radilo. Dakle, program bi trebao da bude 'svestan' da se dogodila floating-point greška, ali da se pri tome ne zaustavi njegovo izvršavanje. +> Ako imam segment programa koji ima mnogo numerike koja može da +> napravi grešku, obično instaliram exit proceduru - kada bi da +> prijavi grešku, Bio bih veoma zahvalan da me uputiš gde se ovde o tome raspravljalo. žisto da ne lutam po konferenciji... Hvala
pascal.833 vitez.koja, -> #824, ssokorac
#=> š$I-ć p:=LN(x); š$I+ć Neće moći :) jerbo $I služi za kontrlolu I/O grešaka, a toga verovatno nema u funkciji LN.
pascal.834 ssokorac, -> #827, dejanr
─┼┤ Jesi li ovo probao? Nešto nisam ubeđen da će da radi, š$I-ć samo Probao, ne radi. Izvinjavam se :).
pascal.835 ssokorac, -> #821, ssokorac
Dobro, možda je jednostavnije ovakvo pitanje :). Šta je uopšte page-iranje video memorije, kako se vrši i tako to? :) Hajde, pliz, ako neko bar malo može o tome da napiše...
pascal.836 almi,
Da li ima neko zamenu za rutine put i get image koje brže rade nego one iz graph-unti-a.Ako neko ima zamolio bih ga da mi ih pošalje Unapred zahvalan Mišel.
pascal.837 vdarko,
Radim neke testove iz psihologije na TP6 i treba mi savet od ljudi koji su se bavili grafičkom animacijom u TP-u. Naime, korisnik je izrazio želju (o, kako to grozno zvuči) da mu se tokom testa na ekranu pojavljuje PEŠžANI sat koji bi radio onoliko vremena "koliko mu se kaže". Ima li na Sezamu nečega što bi mi pomoglo da tako nešto napravim. Sat ne mora da rotira kao u Windows-u, već je dovoljno da "radi" i da mogu da ga postavim na bilo koji deo ekrana.
pascal.838 .obj, -> #835, ssokorac
> Dobro, možda je jednostavnije ovakvo pitanje :). Šta je uopšte page-iranje > video memorije, kako se vrši i tako to? :) Recimo, radiš u rezoluciji 800x600 u npr. 256 boja. Kada lepo preračunaš koliko je to video memorije, bude negde oko 480Kb. U realnom (8086) režimu, procesor jednostavno ne može da rezerviše toliko memorije samo za video (adresni prostor na 8086 je samo 1Mb). Zato (zbog Intela;) se video memoriji pristupa preko stranica od, recimo, 64k koje se nalaze negde u memoriji (npr. A000:0000). E, sad, taj način prebacivanja je pravio najviše problema svim prozvođačima softvera (nije standardan), pa su se onda nekako dogovorili (VESA standard) oko tih i ostalih spornih stvari kod softverske podrške SuperVGA kartica. Na Sezamu ima jedna arhiva, mislim da se zove VGAKIT ili tako nekako, gde su programčići koji prebacuju stranice na raznim video karticama, Tseng, Oak, Trident i ostalo najpopularnije. Pogledaj tamo, procedure su vrlo jednostavne (mislim, samo inicijalizacija grafike, PutPixel i LineTo), ali su dovoljno informativne za to što te zanima.
pascal.839 draganm,
Ortak me je zamolio da vam ostavim njegovih ruku delo u ovoj konferenciji ...... Radi se o rutinama za user interface u textualnom modu ....
pascal.840 peca.st, -> #836, almi
!-> Da li ima neko zamenu za rutine put i get !-> image koje brže rade nego one iz !-> graph-unti-a.Ako neko ima zamolio bih ga !-> da mi ih pošalje ima ss-ovac al ne da. :( Peđa.
pascal.841 eagle, -> #840, peca.st
>! -> Da li ima neko zamenu za rutine put i get >! -> image koje brže rade nego one iz >! -> graph-unti-a.Ako neko ima zamolio bih ga >! -> da mi ih pošalje > > ima ss-ovac al ne da. :( Stiče se utisak da ih ipak nema... ajde SS, demantuj! ) ( < E > ) (
pascal.842 ssokorac, -> #840, peca.st
─┼┤ ima ss-ovac al ne da. :( Ma, već sam ti rekao, rade samo u specifičnim slučajevima :(.
pascal.843 bearboy, -> #835, ssokorac
║ Dobro, možda je jednostavnije ovakvo pitanje :). Šta je uopšte page-iranje ║ video memorije, kako se vrši i tako to? :) Hajde, pliz, ako neko bar malo može ║ o tome da napiše... Verovatno nisam najkompetentniji, al' ajd :) 'Vako - Neke video kartice imaju više memorije na sebi nego što koriste u trenutačnom videjo modu. Zato se dostupna memorija podeli na pejdžove, i ti možeš da pomeraš page window (64K - od A000 do B000) da prikazuje ne prvih 64K na video kartici, već deo od 64K do 128K, tj. drugi pejdž. Tako npr. VGA kartica sa 256K ima 4 pejdža u 320x200x256. Ovo pejdžovanje se koristi za brzo iscrtavanje - dok je na prvom skrinu neka slika, ti radiš na drugoj stranici i kad si gotov, proglasiš tu drugu za aktivnu, itd. E sad, ista tehnika se koristi ako radi sa SVGA modovima, gde se mora pristupiti više od 64K odjednom (npr 640x480x256 - 307K) i tu se tih 307K potrebnih za to datu rezoluciju podeli na blokove (bankove) od 64K i aktivna bnaka se menja po potrebi. Kako se radi ? Ako hoćeš obično listanje u nižim video modovima, koristiš SETVISUALPAGE i SETACTIVEPAGE. Ako hoćeš da koristiš SVGA modove, onda skini VGADOC2.ARJ i tamo piše posabno za svaki čip-set.
pascal.844 mrmf,
Jel zna neko kako da nateram spiker da odsvira akord? Ili da to bar tako nekako zvuci :) Brada
pascal.845 mmile, -> #844, mrmf
> Jel zna neko kako da nateram spiker da odsvira akord? Ili da to > bar tako nekako zvuci :) uses crt; const c = 131; e = 165; g_ = 208; š _ = # ć c_ = 139; f = 175; a = 220; d = 147; f_ = 185; a_ = 233; d_ = 156; g = 196; b = 248; var dtime : word; š delay time ć Function Power2(n : byte) : word; š n-ti stepen broja 2 ć begin if n=0 then power2:=1 else power2:=2*power2(n-1); end; Function Frequency(base : word ; n:byte) : word; var w:word; begin Frequency:=base*power2(n-1); š racuna ton n-te oktave ć end; Procedure Play(s,d : word); begin sound(s); š frekvencija s u trajanju d ć delay(d); end; begin dtime:=60; repeat play(Frequency(c,1),dtime); š C - dur C E G ć play(Frequency(g,1),dtime); play(Frequency(e,1),dtime); until keypressed; nosound; readkey; repeat play(Frequency(d,1),dtime); š D - mol D F A ( valjda? ) ć play(Frequency(f,1),dtime); play(Frequency(a,1),dtime); until keypressed; nosound; readkey; end. Ako hoces da ubrzas smanji vrednost dtime Mozes i sam da napravis proceduru koja "izracunava" koje tonove akord sadrzi na sledeci nacin : Poredjas sve tonove u krug C C# D D# E F F# G G# A A# B C C#... Ako sviras dur odaberes ton ( ciji dur sviras) pa akord izgleda ovako 1. ton koji si izabrao 2. ton koji si izabrao + ton cetiri mesta desno od njega 3. ton koji si izabrao + ton sedam mesta desno od njega npr. C - DUR izgleda ovako C C# D D# E F F# G G# A A# B C C#... 1 0 0 0 1 0 0 1 pa c dur cine tonovi C,E i G Ako sviras mol onda isto samo mesto (10001001 ide 10010001)