PCPROG.3

26 Jul 1993 - 22 Apr 1994

Messages - ms.dos

ms.dos.209 dragisha, -> #201, mjova
-> > U jednom od brojeva racunara sam procitao kako se -> > softwerski resetuje PC. -> -> jmp far 0f000:fff0h Jel' neko probao ovo u DOS prozoru pod Windows? Vrlo nedosljedno od malog mekog. -- [Pick, scrape, roll into a ball, and flick.]
ms.dos.210 cnenad, -> #206, dvidovic
ŁŁŁ Iz dosa, na dva načina. Prvi je da počneš da koristiš 4dos. On Ima četiri načina. Pored dva koja si naveo, ostaje još NDOS u kome isto kuca REBOOT a može i preko BE REBOOT.
ms.dos.211 milan,
A propos DOS-a 6.2. Postoji Step Up sa DOS-a 6.0 na 6.2 (bio je valjda i ovde na SEZAM-u). Fajlovi na njemu nose datum 30 sept 1993. Međutim fajlovi na instalacionim disketlama DOS-a 6.2 nose datum 27. sept 1993 (nigde ne piše da je beta pa valjda i nije). No to nije bitno, bitno je da se osnovni fajlovi (io.sys, msdos.sys i commamd.com) razlikuju! Zna li neko u čemu je stvar? Pl poz M
ms.dos.212 drakce, -> #211, milan
│ Postoji Step Up sa DOS-a 6.0 na 6.2 (bio je valjda i ovde na SEZAM-u). │ Fajlovi na njemu nose datum 30 sept 1993. Međutim fajlovi na instalacionim │ disketlama DOS-a 6.2 nose datum 27. sept 1993 (nigde ne piše da je beta pa └──────── Vrlo važno, tri dana gore-dole ;). Instalirao sam taj od 27. septembra i nisam imao problema (osim onog sa FORMAT /U, al' to je druga priča). Jedan od mogućih scenariJa bi bio: DOS 6.2 završen 27. septembra i pušten u promet. Trebalo im tri dana da dovrše upgrade verziju. Fajlovi se razlikuju u dužini, jer su hteli da upgrade bude što manji, kako bi se mogao modemom prenositi. Zato su radili "patch"-eve starih fajlova i postigli funkcionalnu jednakost (šta god to značilo), a nisu marili da se baš u bajt poklope. Eto, to mi se javlja. Da li me čujete? :)
ms.dos.213 milan, -> #212, drakce
> Eto, to mi se javlja. Da li me čujete? :) Da! Pl poz M P.S. A propos, pade mi na pamet da taj vrač-pogađač tako i postiže svoj uspeh. Šta god da prethodno lupi on na kraju kaže: "Da li me čujete?". črtva, kud' će šta će, kaže: "Da!" i tako ispada da je on u pravu. :))))))
ms.dos.214 markom, -> #210, cnenad
■■■ Ima četiri načina. Pored dva koja si naveo, ostaje još NDOS u ■■■ kome isto kuca REBOOT a može i preko BE REBOOT. Aj' sad može i iz programa reboot.exe, a i iz mase debuggera. U onom dosovom 'debuggeru' se to valjda radi sa g FFFF:0000, ali nisam siguran :)) Marko
ms.dos.215 andrejt, -> #214, markom
QUOTE>>'debuggeru' se to valjda radi sa g FFFF:0000, ali nisam siguran :)) Da bese u Racunarima (a to je valjda preuzeto sa SEZAMa ;) ). (echo g = ffff : 0000 | debug > nul) (Ne znam dal' je neko spomenuo al' to je isto sto i valjda JMP FFFF0 u bilo kom asmu)
ms.dos.216 markom, -> #215, andrejt
■■■ (Ne znam dal' je neko spomenuo al' to je isto sto i valjda ■■■ JMP FFFF0 u bilo kom asmu) Ajmi napišite program koji će to da radi!! Ja se ubi od pokušavanja, al' neće! Marko
ms.dos.217 mjova, -> #209, dragisha
> -> jmp far 0f000:fff0h > Jel' neko probao ovo u DOS prozoru pod Windows? Vrlo > nedosljedno od malog mekog. lično ne koristim win, ali mislim da nije dovoljno skočiti samo na datu lokaciju. to je bio samo hint, a zapravo potpun odgovor bi bio ovakoav:
ms.dos.218 markom, -> #217, mjova
■■■ lično ne koristim win, ali mislim da nije dovoljno skočiti ■■■ samo na datu lokaciju. to je bio samo hint, a zapravo potpun ■■■ odgovor bi bio ovakoav: ■■■ ■■■ Kakav ????? Marko
ms.dos.219 mjova, -> #217, mjova
> ovakoav: ;)) ovakav: mov ax, 40h mov ds, ax mov ax, 1234h mov ds:72h, ax jmp far 0f000h:fff0h dakle, treba malo džarati. ovako nešto piše u tech ref 4.0: 0:0472 2 1234H means Ctrl-Alt-Del reboot is in progress. BIOS checks this to avoid doing a "cold boot" with the time-consuming POST 4321H means reset, preserving memory 5678H, 9abcH, and abcdH (are internal PC Convertible codes) dalje, zar ovakav tag-line na moju poruku? a? ;) > [Pick, scrape, roll into a ball, and flick.]
ms.dos.220 bigbrada, -> #217, mjova
!##! datu lokaciju. to je bio samo hint, a zapravo potpun odgovor !##! bi bio ovakoav: Dobar odgovor nema šta ;)
ms.dos.221 bearboy, -> #217, mjova
> lično ne koristim win, ali mislim da nije dovoljno skočiti samo > na datu lokaciju. to je bio samo hint, a zapravo potpun odgovor > bi bio ovakoav: > > Prilično traljav odgovor, ako smem da primetim ;)
ms.dos.222 markom, -> #219, mjova
■■■ mov ax, 40h ■■■ mov ds, ax ■■■ mov ax, 1234h ■■■ mov ds:72h, ax ■■■ jmp far 0f000h:fff0h ---------------------------- Moj program: ■■■ .model small ■■■ .code ■■■ mov ax, 40h ■■■ mov ds, ax ■■■ mov ax, 1234h ■■■ mov ds:72h, ax ■■■ jmp far 0f000h:ffff0h ■■■ end ---------------------------- Evo šta mi reče TASM: --------------------- ■■■ Assembling file: asm.ASM ■■■ **Error** asm.ASM(7) Illegal immediate ■■■ Error messages: 1 ■■■ Warning messages: None ■■■ Passes: 1 ■■■ Remaining memory: 443k Aj' mi sad recite gde sam pogrešio ... Marko
ms.dos.223 mivel, -> #222, markom
++ jmp far 0f000h:0fff0h Dobra zamena: mov ax,-1 push ax inc ax push ax retf
ms.dos.224 mjova, -> #222, markom
da li je u pitanju lenjost ili nešto drugo? danas ljudi očekuju potpuno sažvakan i trenutno upotrebljiv odgovor - u protivnom odustaju. ;) .model tiny .code org 100h reboot proc far start: mov ax, 40h mov ds, ax mov ax, 1234h mov ds:72h, ax jmp far ptr rom_init reboot endp ROM_SEG segment at 0f000h org 0fff0h rom_init label ends end start
ms.dos.225 kriss, -> #222, markom
˙˙ ■■■ jmp far 0f000h:ffff0h +++++ ˙˙ Aj' mi sad recite gde sam pogrešio ... Nešto mi je veliki ovaj brojčić za 16 bita. ;) Možda je trebalo nulu na početak?
ms.dos.226 markom, -> #224, mjova
■■■ da li je u pitanju lenjost ili nešto drugo? danas ljudi ■■■ očekuju potpuno sažvakan i trenutno upotrebljiv odgovor - u ■■■ protivnom odustaju. ;) Definitivno je u pitanju lenjost :)) ali dok ima tako dobrih & vrednih kao ti, mi lenji nismo u opasnosti :)))) Hvala za primer, nadam se da radi :) Marko
ms.dos.227 mjova, -> #226, markom
> Definitivno je u pitanju lenjost :)) ali dok ima tako > dobrih & vrednih kao ti, mi lenji nismo u opasnosti :)))) traćiti tuđe povorenje i vreme povlači za sobom izvesne konsekvence.
ms.dos.228 dragisha, -> #219, mjova
-> dalje, zar ovakav tag-line na moju poruku? a? ;) -> -> > [Pick, scrape, roll into a ball, and flick.] THor, sram da ga je i stid!! :)) Radim isto što i ti, ali Windows se zaledi kad se ovo proba. Moraću da probam 4Dos reboot u DOS prozoru, da vidim jel' pametniji:). -- [" If All Fails, READ THE DOCS ! "]
ms.dos.229 niklaus, -> #226, markom
(:> Hvala za primer, nadam se da radi :) Ex, baš si lenj. (: Probaj ga, složi utiske, pa se (eventualno) požali ili pohvali mjovu uz preporuku programčeta ostalima... (: Sean :)
ms.dos.230 mstanic, -> #222, markom
>> ■■■ jmp far 0f000h:fff0h ^^^^ original >> ■■■ jmp far 0f000h:ffff0h ^^^^^ jedan f viška >> ■■■ **Error** asm.ASM(7) Illegal immediate Za ono što si napisao potrebno je 20 bita, moguće je samo 16. >> Aj' mi sad recite gde sam pogrešio ... Verovatno si prevideo.
ms.dos.231 markom, -> #229, niklaus
■■■ Ex, baš si lenj. (: Probaj ga, složi utiske, pa se ■■■ (eventualno) požali ili pohvali mjovu uz preporuku ■■■ programčeta ostalima... Programče radi :) Mogu da kažem da mi uopšte nešto onakvo nije padalo na pamet i pored svih pokušaja, a bilo ih je ihaaa. Na žalost onaj primer je za mene relativno neupotrbljiv jer ne može da se lin- kuje sa Pascalom :(( Ne može da se linkuje jerbo TP ne podržava skokove u dru- gi kodni segment :(( Marko
ms.dos.232 dcolak, -> #231, markom
│ kuje sa Pascalom :(( Ne može da se linkuje jerbo TP ne podržava skokove u │ dru- gi kodni segment :(( Da li je neko pomislio o prelasku na Amigu? Sledge DAMMIR!
ms.dos.233 kriss, -> #231, markom
˙˙ Na žalost onaj primer je za mene relativno neupotrbljiv jer ne ˙˙ može da se lin- kuje sa Pascalom :(( Ne može da se linkuje ˙˙ jerbo TP ne podržava skokove u dru- A jel si probao da ga prvo TASM-uješ, pa da obj ulinkuješ?
ms.dos.234 markom, -> #233, kriss
■■■ A jel si probao da ga prvo TASM-uješ, pa da obj ulinkuješ? Naravno. Marko
ms.dos.236 niklaus, -> #231, markom
(:> Na žalost onaj primer je za mene relativno neupotrbljiv jer ne može da (:> se lin- kuje sa Pascalom :(( Ne može da se linkuje jerbo TP ne podržava (:> skokove u dru- gi kodni segment :(( A šta kaže BP.EXE, Target Platform: Protected Mode Application? (: Sean :)
ms.dos.237 markom, -> #236, niklaus
*** A šta kaže BP.EXE, Target Platform: Protected Mode *** Application? Nemam BP, koristim TP, pogledaću taĘno pa ću proslediti ... Marko
ms.dos.238 nikac, -> #230, mstanic
>■>> ■■■ jmp far 0f000h:fff0h >■ žžžž original >■>> ■■■ jmp far 0f000h:ffff0h >■ žžžžž jedan f viška >■>> ■■■ **Error** asm.ASM(7) Illegal immediate >■ >■ Za ono što si napisao potrebno je 20 bita, moguće je >■ samo 16. Da ali isto prijavljuje i za jmp far 0f000h:0ffffh A ako stavis jmp far ptr 0f000h:0ffffh onda se buni "Near call or jump to different CS" oli nesto tako... Za sada radi jedino ono sto je poslao mjova a poneki put prodje i sledece: mov ax,0f000h mov es,ax jmp es:0ffffh Zna li neko u cemu je stos? Napominjem da _cesto_ radi ali poneki put ne?!
ms.dos.239 ficus, -> #208, dsisic
:) Ne bih da se pravim pametan, ali mi je malo bez veze to :) linkovanje u clipper.lib, jer bolje je da sve svoje modulcice U pravu si jednostavno to mi prvo pade na pamet :) Sa druge strane, nista lakse od ukljucivanja te biblioteke :) u EXE modul :) ... bla bla truc truc Slazem se ali eto reko pade mi na pamet ja napisah uostalom moj prvi prg koj je bio vezivan sa clipperom (asm+cliper) je bio tako ubacen jednostavno uradis jednom i vise ne razmisljas do prvog update-a. A da sa neke strane nije prakticno nije.
ms.dos.240 goranr, -> #204, drdjokic
// Kako softverski da resetujem racunar iz DOS bat fajla ili iz programa u // CLIPPERU 5.01 Imaš u Cliptool biblioteci na sezamu... ÔOPAH
ms.dos.241 ficus, -> #231, markom
:) Na zalost onaj primer je za mene relativno neupotrbljiv jer ne moze da se :) lin- kuje sa Pascalom :(( Ne moze da se linkuje jerbo TP ne podrzava :) skokove u dru- gi kodni segment :(( trebalo bi da podrzava jer postoji far modifikator koj se pise iza funkcija cim postoji tako nesto logicno je.... nazalost ja nemam asm tako da nisam uspeo nista a basm(integrisani asm) ne sljaka bas kako ocu evo saveta: postoji jedna davno zaboravljena naredba turbo pascala i zove se inline drugim recima prevedi prg u obicnom asm-u zatim izvuci opcode i ostlo sto uz to ide i to bi trebalo da radi. Jos jedan praktican savet predji na c on sasvim lepo radi sto se tice takvih vezivanja i slicnog.
ms.dos.242 ficus, -> #241, ficus
U vezi reseta iz tp-a problem je definitivno resen: procedure res; begin inline($9A/$F0/$FF/$00/$F0); END; ovo pisem online ali je procedura testirana u tp 7.0 i radi ovo je ustvari far jmp na f000:fff0 ali preveden u masinski jezik trebalo je malo prekopati po knjigama za op-code zato nisam poslo prosli put
ms.dos.243 markom, -> #241, ficus
*** Jos jedan praktican savet predji na c on sasvim lepo radi sto *** se tice takvih vezivanja i slicnog. Znam da C sve to lepo radi, ali i tu imam problema. Vidi temu:cccc ... Marko
ms.dos.244 ialeksic,
pitanja : 1. ansi.sys drajveri raznih proizvodjaca super VGA kartica (npr. TRIDENT, REALTEK,...) za rad sa rezolucijom vecom od 80x25 ne podrzavaju kombinaciju CTRL-TAB koja je zgodna u 4dos-u,na primer. DOS-ov ansi.sys ne podrzava VGA rezime rada iznad 80x25 u karakter modu. Ima li spasa? 2. Hot-key kombinacja SHIFT-F1 za aktiviranje Norton Guide-a radi normalno sa superVGA drajverima npr.tansi.sys ali sa standardnim DOS ANSI.SYS drajverom aktivira se na ekranu tek kad se posle uobicajene SHIFT-F1 kombinacije pritisne jos neka dirka sa tastature !?
ms.dos.245 dens, -> #244, ialeksic
>> DOS-ov ansi.sys ne podrzava VGA rezime rada iznad 80x25 u karakter modu. >> Ima li spasa? Uzmi NNANSI. Mnogo je brži i naravno ne brlja u "advanced" text modovima. Ako ga ne nađeš, poslaću ti ga na mail.
ms.dos.246 dragisha, -> #244, ialeksic
-> 1. ansi.sys drajveri raznih proizvodjaca super VGA kartica -> (npr. TRIDENT, REALTEK,...) za rad sa rezolucijom vecom od 80x25 -> ne podrzavaju kombinaciju CTRL-TAB koja je zgodna u 4dos-u,na primer. -> DOS-ov ansi.sys ne podrzava VGA rezime rada iznad 80x25 u karakter modu. -> Ima li spasa? Ja koristim 132*34 (vrapci već pričaju:) na Trident i to BEZ ansi.sys. Radi i sa ANSI, ali je problem u onome preko 25og reda. DENS mi je poslao nnansi i on ne brlja preko 25og reda, ali kad uradim cls kursor se izgubi. Zaključio sam da je to zbog toga što u nestandardnim modovima cls radi nuliranje video memorije, a u standardnim punjenje blankovima i odgovarajućim atributom. Ovo se i vidi kad poslije cls (ne vidi se kursor) kucaš neki znak (i dalje se ne vidi) pa backspace (e sad se vidi kursor na mjestu gdje je bio znak). Imam i ANSI.COM i sa njim mi se dešava isto. Interesantno je da DOS mode komanda priznaje samo DOSov ANSI kad probaš MODE CON: lines=43. -- [A dry sense of humor is better than slobbering everywhere]
ms.dos.247 mjova, -> #244, ialeksic
> 1. ansi.sys drajveri raznih proizvodjaca super VGA > kartica uzmi nansi sa sezama. nisam video bolji ansi veznik.
ms.dos.248 dens, -> #246, dragisha
>> DENS mi je poslao nnansi i on ne brlja preko 25og reda, ali kad uradim >> cls kursor se izgubi. Zaključio sam da je to zbog toga što u nestandardnim Kako se to izgubi kursor? Kod mene (takođe Trident) radi OK.
ms.dos.249 dragisha, -> #248, dens
-> >> DENS mi je poslao nnansi i on ne brlja preko 25og reda, ali kad -> uradim >> cls kursor se izgubi. Zaključio sam da je to zbog toga što u -> nestandardnim -> Kako se to izgubi kursor? Kod mene (takođe Trident) radi OK. boot. Radi! Sve je ok dok ne dođe ispis do dna ekrana, tj dok ne mrdne malo gore ili dok ne uradim cls. Onda se vidi na cmd liniji samo dok ne počnem da kucam (onda nestane). Ponovo se vidi kad uradim BS, na mjestu gdje sam ubio karakter. -- [If you can read this, thank your teacher.]
ms.dos.250 dens, -> #247, mjova
>> uzmi nansi sa sezama. nisam video bolji ansi veznik. Poslao sam mu nnansi.sys koji je (navodno) nastao iz pomenutog nansi-ja. Probaj...
ms.dos.251 ialeksic, -> #245, dens
>> Uzmi NNANSI. Mnogo je brzi... Dobro, ali da bih ga prilagodio svojoj kartici (Trident) treba ponovo prevesti source. Ja medjutim nisam u posedu TASM/TLINK vec kad koristim MASM/LINK. Pa da bi se to prevelo treba menjati source, itd. malo je to "tres complique". Moze li se doci do TASM/TLINK kombinacije?
ms.dos.252 dens, -> #251, ialeksic
>> "tres complique". Moze li se doci do TASM/TLINK kombinacije? Verovatno može ;) Pogledaću...
ms.dos.253 ialeksic, -> #251, ialeksic
Ipak sam izmenio source i spremio NNANSI drajver sa MASM/LINK kombinacijom. Saljem ovako izmenjen source ako jos nekom bude zatrebalo. Za .SYS verziju treba: MASM nnansi /DTSR=0 LINK nnansi EXE2BIN nnansi.exe nnansi.sys a za .COM: MASM nnansi /DTSR=1 LINK nnansi EXE2BIN nnansi.exe nnansi.com nnansi.arj
ms.dos.254 zzivotic,
Izgleda da DOS funkcija FIND FIRST (4Eh) vraća status da fajl postoji i ako se navede neki od postojećih karakter device drajvera. Recimo FIND FIRST("con") vraća da je sve ok i da postoji fajl sa tim imenom, a atribut mu je postavljen na (nedokumentovanu?) vrednost 40h. Jel ovo oduvek ovako bilo ili je to neki novitet DOS 6.x? Pozdrav, zz
ms.dos.255 todorp, -> #254, zzivotic
> FIRST("con") vraca da je sve ok i da postoji fajl sa tim imenom, a > atribut mu je postavljen na (nedokumentovanu?) vrednost 40h. Jel ovo > oduvek ovako bilo ili je to neki novitet DOS 6.x? E svasta, probao ja na DOS-u 5.0 i na Compaq-ovom 3.31 i opet je 40h (7-mi bit je setovan). A nigde se po dokumentaciji ne pominje. Velju 7 i 8 bit reserved for future use. U svakom slucaju trebalo bi da je ovo siguran (?) nacin za proveru da li je nesto file ili neki device. Pozdrav od Todora
ms.dos.256 dr.grba,
DOS program PRINT radi tako što na kraju štampe svake datoteke prosledi FORM FEED štampaču. Ima li neki haker koji bi mogao da nađe način da se ovo isključi?
ms.dos.257 janko, -> #256, dr.grba
> Ima li neki haker koji bi mogao da nađe način da se ovo > isključi? Ima, naravno. :)) Malo disasembliranja i krpi se stvar, ali, ko će da to radi za svaku bogovetnu verziju DOS-a? Lakše je jednostavno ne generisati POSLEDNJI FF u datoteci koja će se štampati. Onda PRINT-ov radi što treba. Drugi štos je -- slanje dva zaredom FF-a štampaču može da se izbegne pisanjem rezidentnog programčića, koji ne bi puštao drugi od dva. Meni nikad nije zasmetalo što PRINT to radi, što radi -- uvek mi je BAŠ TO i trebalo.
ms.dos.258 markom, -> #256, dr.grba
*** Ima li neki haker koji bi mogao da nađe način da se ovo isključi? Trebalo bi da ima neki svič, ili možda nema ?
ms.dos.259 mbole, -> #257, janko
Kad ste već kod print-a, jel moguće nekako ga naterati da štampa binarni file, tj da se ne zaustavi kad naiđe na Ctrl-Z.
ms.dos.260 dr.grba, -> #258, markom
>> *** Ima li neki haker koji bi mogao da nađe način da se ovo >> isključi? >> >> Trebalo bi da ima neki svič, ili možda nema ? Nema.
ms.dos.261 mirche, -> #259, mbole
> file, tj da se ne zaustavi kad naiđe na Ctrl-Z. Za print ne verujem al' probaj: COPY xx.yyy /B lpt1
ms.dos.262 mbole, -> #261, mirche
> Za print ne verujem al' probaj: COPY xx.yyy /B lpt1 Da samo ovo ne štampa u pozadini dok ja radim nešto drugo.
ms.dos.263 vega,
Imam 286 sa 640 K RAM-a (jer mi je riknuo neki cip pa je otisla EXTENDED memorija). Kako da iz nekog svog programa pristupim neiskoriscenoj memoriji u delu od A0000 do FFFFF, tj. onoj memoriji koju MFT prijavljuje kao unused? Pozdrav, >>> VEGA <<<
ms.dos.264 markom, -> #262, mbole
*** Da samo ovo ne štampa u pozadini dok ja radim nešto drugo. Pa DOS nije ni predviđen za MTasking ... :)
ms.dos.265 cnenad, -> #264, markom
ŁŁŁ *** Da samo ovo ne štampa u pozadini dok ja radim nešto drugo. ŁŁŁ ŁŁŁ Pa DOS nije ni predviđen za MTasking ... :) :)))))
ms.dos.266 mmitrovic, -> #178, niklaus
čŠĐŠč Neću se smiriti dok ne vidim primerčić (ili mi neko ne približi mat- čŠĐŠč eriju, tako da dalje mogu sam) koji radi bolje nego bilo koja druga čŠĐŠč metoda... Tek toliko da se zna. (; Pošto ste toliko zainteresovani za DMA ja sam malo kopao po svojoj dokum. i našao sam isečak (Mark, Cut, Paste) iz jednog starog e-magazina za asm programere. Nije baš sve crno belo al' baca novo svetlo na stvar. BTW, ako ste zainteresovani za taj časopis imam brojeve 2,3,5,12/89, pa mi sendnite mail. Ako bude bilo zainteresovanih okačiću ih u asm. Daklem, sledi "čaršavčić": DMA Transfers for FAST Memory Moves If you ever have the need for super fast moves of blocks of memory and you can put up with a lot of restrictions in order to gain the speed there is a method in the PC environment to move bytes at the rate of one every 3 clock cycles. Compare that to the clocks for a rep movsb and then say that isn't fast. This isn't for every programmer and it certainly isn't for every time you need to move a few bytes. The DMA chip is a four channel device. Channel 0 is reserved for refresh of memory that requires at least 256 consecutive bytes be read some- where in memory at intervals less than about 4ms. The other three channels are available for such things as transferring information to and from the disk drives or the ports. Interesting trivia so far, but not very useful in moving memory around. It gets worse. The 8259 DMA doesn't know anything about segments. It only knows a 64k universe. This is where the Page registers come in. The page registers decide which page (on 64k boundaries) the 8259 will look at for any operation. There are not, as you might guess, 4 page registers,but only 2 plus a default. If it is not channel 1 or 2 then it uses the default register programmed as channel 3. A careful reading of the data sheet of the 8259 discloses that it is capable of doing a memory to memory transfer but only between channels 0 and 1. That is why this method is a little tricky to use. In order to set up your own parameters you have to disable the timer from asking for a DMA from chan- nel 0 every x milliseconds and reconfigure the 8259 and assume the respon- sibility for doing the memory refresh. It actually sounds worse than it is. The configuring and re configuring of the 8259 doesn't take all that long, so the time is made up after only moving a few tens of bytes, and if you move at least 256 CONSECUTIVE bytes the memory refresh requirement is met for another 2 or 3 milliseconds. The page registers are taken care of by setting channels 1 and 3 to the same value. Given below is an example of a program I wrote just to test the idea. A lot of the setup is too complex to explain in this short article, but if you are interested in checking it all out you will need a data sheet on the 8259. This worked nicely on my machine and should on most compatibles just the way it is. With the not-so-compatible it may very well not. I hope this listing is well enough commented so you can figure it out and make use of it sometime. DMA SOURCE PAGE 60,132 TITLE DMA MEMORY TO MEMORY DMA EQU 0 STACK SEGMENT PUBLIC 'STACK' DB 32 DUP('STACK') STACK ENDS DATA SEGMENT PUBLIC 'DATA' SOURCE DW 08000H TARGET DW 09000H NUMBER DW 800H INCDEC DB 0 PAGER DB 0BH ;PAGE (O TO F) FILL DB 0 ;2 IF A FILL OP DATA ENDS ASSUME CS:CODE,DS:DATA,ES:DATA CODE SEGMENT PUBLIC 'CODE' START: MOV AX,DATA MOV DS,AX MOV AX,0B800H MOV ES,AX PAGE: MOV AL,PAGER ;PAGE TO OPERATE IN OUT 83H,AL UNDMA: OUT 0DH,AL ;MASTER RESET OF DMA MOV DX,03D8H MOV AL,1 OUT DX,AL MOV AX,SOURCE ;WHERE IS IT COMING FROM OUT 0H,AL MOV AL,AH OUT 0H,AL MOV AX,TARGET ;WHERE TO PUT IT OUT 2H,AL MOV AL,AH OUT 2H,AL MOV AX,NUMBER ;HOW MANY OUT 3H,AL MOV AL,AH OUT 3H,AL MOV AL,009H ;ENABLE M TO M,COMPRESSED OR AL,FILL ;WILL BE 2 IF FILL OP OUT 8H,AL MOV AL,088H ;BLOCK MODE, INC, READ OR AL,INCDEC ;WILL BE 20H IF DEC OUT 0BH,AL MOV AL,85H ;BLOCK MODE, INC, WRITE OR AL,INCDEC ;WILL BE 20H IF DEC OUT 0BH,AL MOV AL,4 ;THIS IS THE REQUEST OUT 9,AL ;DO IT MOV AL,9 OUT DX,AL RESET: OUT 0DH,AL ;THIS IS A MASTER RESET OUT 0CH,AL ;RESET F/L F/F MOV AL,01 OUT 0,AL OUT 0,AL REINIT: MOV AL,0 OUT 83H,AL ;MOVES REFRESH TO BASE PAGE MOV AL,0FFH OUT 1,AL PUSH AX OUT 1,AL OUT 0BH,AL INC AL ;MODE CHAN3 OUT 0BH,AL PUSH AX POP AX POP AX POP AX MOV AH,4CH INT 21H CODE ENDS END START
ms.dos.267 kriss,
Da li neko zna gde se nalazi (sad ću da lupim) bit koji kontroliše blink efekat na ekranu? Izgleda da mi je to malo čudo (re)setovano, tako da tekst koji treba da blinkuje ne blinkuje, nego se vidi inverzno. P.S. Zaboravih, probao sam INT 10h, funkcija 10h, AL=3 (tad bi trebao da se pojavi blink, ali pored piše i EGA, tako da je na VGA ostalo bez efekta :( ).
ms.dos.268 peca.st, -> #267, kriss
!-> Da li neko zna gde se nalazi (sad ću da lupim) bit koji kontroliše !-> blink efekat na ekranu? Izgleda da mi je to malo čudo !-> (re)setovano, tako da tekst koji treba da blinkuje ne blinkuje, !-> nego se vidi inverzno. Pa za svaki znak na ekranu imaš dva bajta. Jedan je atribut a drugi je ascii kod. Prva četiri bita atributa su boja znaka, sledeća tri boja pozadine (znači imaš 8 boja za pozadinu, a ne 16) i zadnji je onaj koji tebi treba - blink. Postoji način da se ovaj bit ukine pa da onda imaš svih 16 boja za pozadinu. Video memorija za tekst mod počinje od b800:0000. Imaš 80*25*2 = 4000 bajtova, prvo ide ascii kod pa onda atribut. Ovo je iz glave, nadam se da nisam nešto pobrkao. :) Peđa.
ms.dos.269 kriss, -> #268, peca.st
˙˙ Pa za svaki znak na ekranu imaš dva bajta. Jedan je atribut ˙˙ a drugi je ascii kod. Prva četiri bita atributa su boja znaka, Jest. ˙˙ sledeća tri boja pozadine (znači imaš 8 boja za pozadinu, a ne ˙˙ 16) i zadnji je onaj koji tebi treba - blink. Postoji način da ˙˙ se ovaj bit ukine pa da onda imaš svih 16 boja za pozadinu. Au. Znači moram da protrčim kroz celu video-memoriju i da setujem svaki bit posebno. :( Mada, ipak mislim da neću ništa da uradim. Od kako sam instalirao 4dos, imam dotičnu pojavu. :( ˙˙ Video memorija za tekst mod počinje od b800:0000. Imaš 80*25*2 ˙˙ = 4000 bajtova, prvo ide ascii kod pa onda atribut. OK sad će da napišem nešto što preleće preko i setuje sve živo, pa ću da javim da li radi. ;) ˙˙ Ovo je iz glave, nadam se da nisam nešto pobrkao. :) Jao ako jesi :)))) P.S. Probao - ne radi. Evo ga source, zanima me da li je greška tu ili kod nekog drugog. :(( .model tiny .code org 0100h start: xor bx,bx xor si,si mov ax,0b800h mov ds,ax mov cx,2000 lp: inc si ; znači preskačem ascii, setujem ; zadnji bit atributa. or byte ptr ds:[bx + si],080h inc si ; loop lp mov ah,04ch int 21h end start
ms.dos.270 dzakic, -> #269, kriss
> Au. Znači moram da protrčim kroz celu video-memoriju i da setujem > svaki bit posebno. :( Mada, ipak mislim da neću ništa da uradim. > Od kako sam instalirao 4dos, imam dotičnu pojavu. :( Tek sad pročitah poruku... Ono što tebi treba je "BrightBG = No" u 4dos.ini-ju. Mislim da je to default, ali ti je neko za odgovor podmetnuo Yes :)