PCPROG.1

20 Sep 1991 - 03 Dec 1992

Topics

  1. ms.dos (235)
  2. cccc (0)
  3. asembler (321)
  4. pascal (896)
  5. clipper (1059)
  6. zastita (239)
  7. basic (178)
  8. baze.podataka (116)
  9. novi.fajlovi (66)
  10. algoritmi (52)
  11. razno (707)
  12. van.teme (126)
  13. unknown (986)

Messages - asembler

asembler.1 ppekovic,
U ovoj temi pitajte, prokomentarišite, pomozite drugome da reši probleme!!! i sve ostalo što ima veze sa assemblerom, naravno za INTEL-ovu porodicu 80x86! Paya
asembler.2 dzakic,
Nije BAŠ vezano za asembler, al' ajde... Nedavno sam imao prilike da pogledam gbiočićev program za YU fontove na VGA. S obzirom da sam imao sličnih problema sa YuHerc-om, mislim da je ono što stvara probleme poziv INT-a 10h, funkcija 0: set video mode. Tada BIOS resetuje kartu i, normalno, poništi definicije slova. Isto se dešavalo i meni, herkules se vraćao u tekst mod, i ništa od grafike. Predlažem Goranu da, pored interapta tastature, preuzme i desetku, i pri svakom pozivu proveri da li je u AH registru 0. Ako jeste, neka se nakon izvršenja originalnog programa iz BIOS-a, ponovo izvrši definisanje fonta. Nešto kao: newvideo: or ah,ah jnz real_int10 call dword:cs:[oldvideo] call set_font iret real_int10: jmp dword:cs:[oldvideolo] Pozdrav, Dragan
asembler.3 gbiocic,
> Predlažem Goranu da, pored interapta tastature, preuzme i > desetku, i pri svakom pozivu proveri da li je u AH registru 0. > Ako jeste, neka se nakon izvršenja originalnog programa iz > BIOS-a, ponovo izvrši definisanje fonta. Nešto kao: Lupus in fabula Zak. Ti mi izgleda čitaš misli, pohvalno za nekog kome je glava u herculesu :)). Upravo sam proteklog vikenda dovršio verziju 1.2 programa foggys koja uključuje tvoj predlog. Assemblerska izvedba je malo opširnija od tvog predloga, jer je bilo potrebno obezbediti da se ponovno aktiviranje YU slova vrši samo u text modu. FOGGY versus TELEMATE : score K.O. ??? Novu verziju šaljem uz ovu poruku. U njoj ima i drugih poboljšanja. Bulajo, predlažem da nova verzija zameni staru uz isti opis. BTW: Ko na herculesu fontove sadi, video mu se o glavu obija :)). Pozdrav, Goran B foggys.zip
asembler.4 dzakic,
>> Assemblerska izvedba je malo opširnija od tvog predloga, >> jer je bilo potrebno obezbediti da se ponovno aktiviranje >> YU slova vrši samo u text modu. Naravno, smetnuo sam s'uma da VGA i grafiku aktivira pozivom BIOS-a. A hercules jok, svaki program za sebe brlja po video kontroleru. Koji sh*t! zak
asembler.5 bulaja,
│Novu verziju saljem uz ovu poruku. U njoj ima i drugih poboljsanja. │Bulajo, predlazem da nova verzija zameni staru uz isti opis. └─── Done, nova verzija je u \ibmpc\yu direktroijumu. Thanks na prilogu. Pozdrav, Bulaja
asembler.6 max.headroom,
Ehey, koji mi (po mogucstvu Makro) Asembler predlazete? Ja sam do skoro radio samo sa C-ovim little-shitovima, kao i sa raznoraznim hand-made (but bad) asemblercicima. Ne znam gde mi je MASM. Help!
asembler.7 bulaja,
Pogledaj A86 asembler iz \ibmpc\program direktorijuma (datoteka a86v322.zip, 170K).
asembler.8 radunovic,
Verujem da se svima desilo da se neki program blokira i da ga je nemoguce prekinuti. Cak ni sa Ctrl-Break. Jedini nacin bio je reset kompjutera.Razlog je to da je program zapao u neku petlju u kojoj ne vrsi DOS interapte, pa je stoga nemoguce primiti Ctrl-Break poziv. Zato prilazem jedan koristan utility program. On preuzima INT 9H i reaguje na Ctrl-Break ili (jos bolje) Ctrl-Alt-4 sa ne-numericke tastature. Radi i sa takvim programima kao sto su npr TPASCAL Uostalom prilazem i listing programa kao i izvrsnu verziju pa probajte. Program je preuzet sa Bitnet-a sa CCUC @ UMCVMB i tamo se moze pokupiti jos gomila SORCE-ova za sve i svasta. Ako ima zaintere- sovanih mogu poslati i spisah svih fajlova. A sada evo programa: ;Resident program to enable cntl-break even if no DOS call is made ;This is done by doing a dummy DOS call when break key is let up ;THIS WON'T WORK WITHOUT DOING A break on STATEMENT IN DOS ;If cntl-break fails you may try CNTL-ALT-4 (the 4 on the top row) ;which is somewhat more powerful. If you break out of BASIC this way ;the NEXT time BASIC is run, it will hang, requiring a reboot ;Other programs (games?) may or may not respond. If they do respond, ;they may hang up DOS. cseg segment para public 'code' org 100h BREAKL proc far assume cs:cseg,ds:cseg jmp install ;this installation code used only once oldint9 dd 0 ;storage for old int 9 vector int9loc equ 9h*4 ;location of int 9 kbflag equ 417h ;keyboard "held down" status address ctrl equ 04 ;bit in kbflag for cntl alt equ 08 ;bit in kbflag for alt brkup equ 0c6h ;scan code for release of scroll lock cntl4 equ 05h ;scan code for 4 newint9: ;comes here from the hardware int 9 sti ;restart interrupt push es ;save registers push di push ax push cx push dx pushf mov ax,0 ;get cntl and alt status into ah mov es,ax mov di,kbflag mov ah,es:[di] test ah,ctrl ;test for cntl held down jz return ;if cntl is up, go to previous handler code in al,60h ;get scan code into al cmp al,brkup ;if not release of scroll lock or... je doit cmp al,cntl4 ;4 key, go to previous code jne return test ah,alt ;if alt not down with cntl-4 jz return ;go to previous code doit: mov cl,al ;put a pulse in interrupt port in al,61h ;for some obscure reason mov ah,al ;copied form BIOS listing or al,80h out 61h,al mov al,ah out 61h,al cli ;stop interrupt mov al,20h ;clear keyboard out 20h,al sti ;restart interrupts cmp cl,cntl4 ;test for cntl-alt-4 je fun4c ;if it is cntl-alt-4 go to code for that mov ah,19h ;DOS func call for read default disk. This int 21h ;is a dummy call to make DOS look for break popf ;restore registers in case DOS break pop dx ;didn't work pop cx pop ax pop di pop es iret ;this may never be used fun4c: mov al,01h ;error code for cntl-break mov ah,4ch ;DOS func call to terminate program int 21h iret return: popf ;this code simply passes control to the pop dx ;keyboard handler present before this pop cx ;resident program was loaded pop ax pop di pop es jmp cs:[oldint9] ;this jump doesn't change stack install: mov ax,0 ;get old int 9 vector into mov es,ax mov di,int9loc mov ax,es:[di] ;ax and bx mov bx,es:[di+2] mov si,offset oldint9 ;then put them into mov [si],ax ;location "oldint9" in this program mov [si+2],bx mov ax,0 mov es,ax mov bx,ds cli ;stop inteppupts mov di,int9loc ;put pointer to this program into mov ax,offset newint9 ;int 9 vector mov es:[di],ax mov es:[di+2],bx sti ;restore interrupts mov dx,offset install ;don't keep the install code int 27h ;terminate and stay resident BREAKL endp cseg ends end BREAKL Toliko od mene. Pozdrav Boki breakl.com
asembler.9 mjova,
> Program je preuzet sa Bitnet-a sa CCUC @ UMCVMB i tamo se > moze pokupiti jos gomila SORCE-ova za sve i svasta. Ako što ne pošalješ ceo paket? SY
asembler.10 ppekovic,
>> Verujem da se svima desilo da se neki program blokira i da ga je >> nemoguce prekinuti. Cak ni sa Ctrl-Break. Jedini nacin bio je reset >> kompjutera.Razlog je to da je program zapao u neku petlju u kojoj >> ne vrsi DOS interapte, pa je stoga nemoguce primiti Ctrl-Break poziv. Ajde još jednom (1000 put) da pomenem CTRLALT program koji rešava i ovakve situacije. Kombinacijom tastera CTRL-ALT-F9 je moguće izaći iz velikog broja blokiranja. Paya
asembler.11 mdjuric,
Radim na jednom programu čija je neverovatna želja da postane rezidentan, konačno uslišena, ali avaj! Ne mogu da ga se oslobodim. Zamenim lepo interapt, on se instalira i sve prođe kako treba. Onda pozovem interapt sa opcijom za deinstaliranje, on je prihvati, vrati INT na staru vrednost, radosno bipne da je sve OK, ali ne ode iz memorije, niti oslobodi blok u kome je rezidirao. Ako je neko radio u Asembleru 8086 za MS-DOS verzija 3.0 i zna kako da se ratosiljam neželjenog koda, nek prosvijedi informaciju. Zahvalnost moja, biti će neizmjerna a i korisnika PD soft parčeta na kome radim. Mladen
asembler.12 ppekovic,
>> Onda pozovem interapt sa opcijom za deinstaliranje, on je >> prihvati, vrati INT na staru vrednost, radosno bipne da je sve OK, >> ali >> ne ode iz memorije, niti oslobodi blok u kome je rezidirao. Ostavio sam u ms.dos temi source-ove mar, release, ... pa vidi kako oni to rade i primeni u svojim programima. Paya
asembler.13 prvul,
Ima li neko podatak o tome kako da 286 vratim iz zaštićenog u realni režim? M. P.S. Znam da postoji bolje resenje od reseta procesora...
asembler.14 dejanr,
>> P.S. Znam da postoji bolje resenje od reseta procesora... Koliko sam razumeo, stvarno ga resetuju. Jedino ako hoćeš da probaš sa onom LOADALL instrukcijom.Ako nešto uspe, javi!
asembler.15 radunovic,
Kako mogu da pristupim grafickoj kartici (ne preko BIOS-a). Imam SVGA i ne mogu da idem preko RAMa jer je suvise velika (512k). Kako bi islo preko CRT kontrolera i koliko brze od BIOS-a. Boki
asembler.16 prvul,
>> Koliko sam razumeo, stvarno ga restuju. Jedino ako hoćeš da probaš >> sa onom LOADALL instrukcijom... Možda... ali prvo ću da se raspitam... čini mi se da sam pre oko godinu dana čuo da postoji neki gadan, ali sasvim "legalan" način... tada mi nije trebalo, pa sam zaboravio... zato sam sada i pitao... ako nađem nešto bolje, javiću. M.
asembler.17 dzakic,
Imam TSR program (pogađate koji :), dodao sam opciju uninstall. Vratim sve vektore na originalnu vrednost, oslobodim memoriju (free allocated memory) koju je program zauzimao ali ne znam kako da proverim ima li drugih programa 'iznad', jer u pomenutoj situaciji bude belaja. Any ideas? dz
asembler.18 ppekovic,
>> kako da proverim ima li drugih programa 'iznad', jer u pomenutoj >> situaciji bude belaja. Any ideas? Pogledaj source-ove MARK i RELEASE programa, verovatno ćeš tamo naći što ti treba. Arhiva se nalazi uz jednu od poruka u ovoj conf. Paya
asembler.19 prvul,
>>Imam TSR program (pogađate koji :), dodao sam opciju uninstall. >>Vratim sve vektore na originalnu vrednost, oslobodim memoriju >>(free allocated memory) koju je program zauzimao ali ne znam >>kako da proverim ima li drugih programa 'iznad', jer u pomenutoj >>situaciji bude belaja. Any ideas? Misliš ako se neki program u međuvremenu nakačio na vektore na koje i ti? Tu nema jednostavnog rešenja. Moraš pri deinstalaciji da proveriš da li je int vektor jednak onome koji si ti stavio.. ako nije, znači da ga je neko u međuvremenu presreo... većina TSR programa u takvim situacijama jednostavno neće da se deinstalira, ili u svoju int rutinu ubace odmah na počeku skok na stari hendler (onaj koji su oni presreli)...
asembler.20 gbiocic,
> Imam TSR program (pogađate koji :), dodao sam opciju uninstall. > ...... Any ideas? Predlažem ti da isprobaš ovakvu tehniku. Na samom početku staviš: oldint dw ?,? newint: cmp status, DEINSTALLED jne newintgo jmp dword ptr: cs:oldint variables: . . . newintgo: ... Prilikom deinstaliranja postaviš status=DEINSTALLED i oslobodiš memoriju od labele variables. Istina, malecki deo koda ostaje u memoriji ali svi problemi u vezi provere i prosleđivanja int-ova otpadaju. I ne boli glava od mogućih hangova. Ovo je varijanta koju sam nameravao da isprobam sa jednim TSR-om (pogađaš kojim?). Ako se ti odlučiš da probaš, javi da li radi kako valja. Pa da se ja ogrebem :)) Pozdrav gb
asembler.21 prvul,
Ipak neka proveri da li se niko nije nakacio posle njega... pa ako nije, neka se kompletno deinstalira... ovako se fragmentira memorija Prvul.
asembler.22 dzakic,
>> Ovo je varijanta koju sam nameravao da isprobam sa jednim TSR-om >> (pogađaš kojim?). Ako se ti odlučiš da probaš, javi da li radi >> kako valja. Pa da se ja ogrebem :)) Ma ja sam hteo samo da dodam opciju koja bi izbacila moj program ako je na vrhu, u suprotnom da napiše "Other programs above". Ionako bi se napravile rupe po memoriji i ne verujem da to bilo koji program radi. U stvari, dobih ideju da mogu da proverim da li između rezidentnog dela i dela koji je upravo učitan postoji alociran blok tako što ću da pogledam podatke u MCB-u ispred rezidentnog dela. Pa ako je njegova dužina "taman" do ovog drugog, znači da je on na vrhu. Javiću da li ovo radi. Uostalom, ne verujem da je moguće osloboditi memoriju "odavde dovde" već samo one delove koji su alocirani funkcijom 48h. Dakle, samo ceo program. Pozdrav, dz
asembler.24 dzakic,
EUREKA! :) Da, ovaj metod radi (bar kolko sam stigao da ga istestiram na par karakterističnih slučajeva). Evo još jednom metode: ┌────────────────────┐ │Memory Control Block│ 1: segment PSP-a vlasnika, 3:dužina MCB-a └────────────────────┘ .. .. rezidentni deo .. (eventualno nešto između što mora imati svoj MCB) ┌────────────────────┐ │Memory Control Block│ └────────────────────┘ .. .. deo koji se izvršava .. Dakle, umanjim segment rezidentnog dela za jedan, uzmem sa ofseta 3 njegovu dužinu, uvećam je za jedan - dobijem segment sledećeg MCB-a. Sada sa tog segmenta uzmem vrednost sa ofseta 1 i uporedim sa CS-om. Ako su isti, nema drugih programa između. Gorane, nisam stavio copyright, slobodno iskoristi ideju :) Pozdrav, dz
asembler.25 gbiocic,
> Uostalom, ne verujem da je moguće osloboditi memoriju "odavde > dovde" već samo one delove koji su alocirani funkcijom 48h. > Dakle, samo ceo program. Moguće je, istina ne baš "odavde dovde" već "odavde do kraja mem.bloka". Funkcija 4Ah (modify allocated memory block). Inače, kad bolje razmisliš nije baš preporučljivo korisniku dozvoliti da tek tako izbacuje tvoje čedo iz memorije. Postavi mu bar neko kontrolno pitanje, npr: Are You sure? Man, this is YUHERC. > Gorane, nisam stavio copyright, slobodno iskoristi ideju :) Važi, ako iskoristim imaš piće. Zasad sam u plusu sa pićima za jedno dve tri bahanalije. Pozdrav, gb
asembler.26 dzakic,
>> Moguće je, istina ne baš "odavde dovde" već "odavde do >> kraja mem.bloka". Funkcija 4Ah (modify allocated memory >> block). Da u pravu si, mogao bi se smanjiti deo koji ostaje. Ali šta bi se desilo onda sa tom "rupom"? Ideja jeste interesantna i vredi je probati. >> Inače, kad bolje razmisliš nije baš preporučljivo >> korisniku dozvoliti da tek tako izbacuje tvoje čedo iz >> memorije. Postavi mu bar neko kontrolno pitanje, npr: >> Are You sure? Man, this is YUHERC. :))) Naravno da ovu opciju niko neće koristiti ;) ali mislim da bi svaki "well behaved" tsr program trebalo da je ima. Da su svi takvi, programi poput mark i release ne bi nam bili ni potrebni, zar ne?
asembler.27 dzakic,
Uskoro će u sezamovom direktorijumu biti nova verzija YUHERC-a. Verzija 2.0 ima nekoliko internih poboljšanja a izmenjena je i spoljna 'kozmetika'. Tu je još par opcija za lakši rad. Novo kod V2.0 2. Novembar, 1991. ═════════════ - Dodata opcija za isključivanje prikaza bold atributa (-b0 i -b1) - Dodate opcije za aktiviranje i deaktiviranje programa (-on i -off) - Omogućeno postavljanje proizvoljnog kodnog rasporeda (-c) - Ponovo uveden parametar za podešavanje brzine s tim da vrednost nula postavlja _vremenski_ limit od 1/18.2 sekunde - Font datoteka ima default extenziju, pretražuje se i home direktorijum - Dodata uninstall opcija za uklanjanje programa iz memorije (-u) filename: \ibmpc\yu\hyutil20.zip Pozdrav, dz
asembler.30 zzdrnja,
Moze li mi neko napisati kako da aktiviram biper ´k HHMK
asembler.31 darone,
>> Moze li mi neko napisati kako da aktiviram biper Ako ti zvucnik ne radi, otvori racunar i na ploci nadji natpis SPEAKER ili slicno. E, blizu njega (u stvari, odmah do njega) se nalazi jumper na koji se nakaci zica (pretpostavljam da je spala) koja vodi do zvucnika... Samo je nakaci... i nadam se da ce sve biti u redu... darone p.s. ako nisam najbolje objasnio, ostavi mi u mailu telefon pa da ti objasnim vojs, nikad nisam bio dobar sa recima na papiru (ekranu) :(
asembler.32 dzakic,
Visinu zvuka u hercima stavi u di registar, sound: push ax,dx,di mov al,0B6h out 43h,al mov dx,0014h mov ax,4f38h div di out 42h,al mov al,ah out 42h,al in al,61h mov ah,al or al,3 out 61h,al ;ovde stavi malu pauzu ako isprobavaš, ;zvuk posle ugasi sa: mov al,ah out 61h,al pop di,dx,ax Imaš o ovome članak u svetu kompjutera, septembar '87. pozdrav, zak
asembler.33 magician,
­=> p.s. ako nisam najbolje objasnio, ostavi mi u mailu ­=> telefon pa da ti objasnim vojs, nikad nisam bio ­=> dobar sa recima na papiru (ekranu) :( Izvini darone, ali covek je to stavio u temu asembler... Ne verujem da je to sto ti kazes :( MAGICIAN
asembler.34 darone,
>> Izvini darone, ali covek je to stavio u temu >> asembler... Ne verujem da je to sto ti kazes :( Uuuuups! Narode, izvinite, stvarno nisam citao ime teme... sori darone
asembler.35 lazo,
Ima li neko kakav dokumentcioni fajl o asembleru u kome su opisane komande asemblera kao što su MOV, itd... Nekad davno (prije 3,4 godine) sam nešto radio u asembleru na svom starom commodore, a koliko vidim ovaj nije ni nalik onom. Samo je princip ostao isti. Sve što imam je umetak iz starih računara vezano za asembeler na PC računarima od ZZ-a "Sve MS-DOS funkcije". Pozdrav Mickey. P.S. Pored komandi asemblera interesuju me vrste registara, njihova uloga i sl. Imam MASM asembler.
asembler.36 ppekovic,
>>P.S. Pored komandi asemblera interesuju me vrste registara, njihova >> uloga i sl. Imam MASM asembler. Nemogu tačno da se setim odakle sam pokupio NG (norton guide) bazu za assembler. Nisam siguran dali ga ima na sezamu, ako nema, upload-ovaću ga ako dobijem blagoslov file moderatora. Paya
asembler.37 mjova,
> Nekad davno (prije 3,4 godine) sam nešto radio u asembleru > na svom starom commodore, a koliko vidim ovaj nije ni > nalik onom. Samo je princip ostao isti. da, mnogo je sličniji sa Z80, ali ne preterano. što se tiče komandi za asembler, mislim da se mogu naći neke datoteke u pc.soft koje sam ostavio dosta davno. inače, uz tasm ima i lep help koji opisuje i asm komande i pseudo komande itd. SY
asembler.38 bulaja,
│Nemogu tacno da se setim odakle sam pokupio NG (norton guide) bazu za │assembler. Nisam siguran dali ga ima na sezamu, ako nema, upload-ovacu │ga ako dobijem blagoslov file moderatora. └─── Dobio si ga od mene ;), ali nazalost neces moci da ga uploadujes posto nije PD :( (prodavao ga ja Norton ranije zajedno sa MSC i TC NG). Inace taj NG je dobra stvar, ima gomila informacija o procesorskim instrukcijama, BIOS i DOS funkcijama i slicnim stvarima, mada izgleda da ima i nekih netacnosti. Btw bas sam sa 3KLa pre negi dan pokupio neki rezidentni help sa i8086 instrukcijama, ali je prg los, pa ga necu baciti na Sezam. Videcu ovih dana ima li jos nesto na istu temu.
asembler.39 spantic,
> Ima li neko kakav dokumentcioni fajl o asembleru u kome su > opisane komande asemblera kao što su MOV, itd... Najbolje je da probaš da nabaviš NG za ASM i/ili tutore.
asembler.40 adulic,
SPKR.SYS je DOS drajver koji omogućuje lako korišćenje PC-ovog zvučnika. Zahteva DOS 2.0 ili noviji. U config.sys ubaci ovaj red: device=<path>spkr.sys Koristi se kao i drugi uredjaji, kao što su CON:, PRN:, COM:... Novoinstalisani uredjaj je SPK: (SPeaKer), a podaci se mogu samo slati u njega, ne i primati iz njega. Da bi upotrebio SPK:, moraš poslati niz podataka frekvencije i trajanja zvuka u obliku datoteke u SPK:. Trajanje se odredjuje taktom sistemskog sata (što znači da najkraći zvuk traje oko 55 ms). Oblik podataka koji prepoznaje SPK: je: <frekvencija>,<trajanje>;<ENTER> Na ovaj način može se nanizati više tonova u jedan ASCII fajl. Kada se ovakav fajl naredbom copy pošalje u SPK:, dobija se isti efekat kao da su podaci poslani sa tastature, samo što ide mnogo brže. Naravno, SPK: je upotrebljiv i iz svih jezika kojima su dostupni uredjaji. Sve ovo i mnogo više, nalazi se u dokumentaciji zajedno sa samim drajverom u datoteci uz poruku. AD spk_sys.zip
asembler.41 zzdrnja,
HVALA NA POMOCI !! ps: biper je od miloste (zbog velikih mogucnosti) pps: Postoji li neki pametniji nacin da dodjem do knjige: MICROSOFT MACRO ASSEMBLER BIBLE osim da pisem cak u indianu? Zoran
asembler.42 lazo,
-> Dobio si ga od mene ;), ali nazalost neces moci da ga uploadujes posto -> nije PD :( (prodavao ga ja Norton ranije zajedno sa MSC i TC NG). A bil moglo preko mail-a? Hoće li falit išta da ga Paya pošalje menu k'o što si ti njemu:))?!?
asembler.43 ljupco,
A kako se (i dali se) podesava jacina zvuka? I koliko bitova kontrolise jacinu zvuka?
asembler.44 dzakic,
>> A kako se (i dali se) podesava jacina zvuka? I koliko bitova >> kontrolise jacinu zvuka? E da, negde sam pročitao da postoje dva načina za aktiviranje zvučnika. Jedan je ovaj koji sam napisao, da se to prepusti hardveru - sa 8255 PPI, izlazni registar 61, se šalju signali sa nultog i prvog bita. Signal sa nultog prolazi preko 8253 tajmera i AND-uje sa prvim signalom i na kraju aktivira zvučnik. U ovom slučaju je procesor slobodan da radi druge stvari dok zvučnik svira. Drugi način je da se to radi "kao na spektrumu". Dakle, procesor stalno dežura i šalje nule i jedinice speaker-u. Ovo ne znam kako se radi ali sam eksperimentisao na spek-u i pokazalo se da se zvuk čuje jače što je trajanje nule i jedinice ravnomernije, dakle "čist" testerast ton. Međutim, što se trajanje nule recimo, produžava u odnosu na trajanje jedinice (ukupno vreme ostaje isto) to se jačina zvuka smanjuje. Mislim da je to korišćeno i na PC-u u programima gde se čuje zvik promenljive jačine. ┌───┐ ┌───┐ ┌───┐ │ │ │ │ │ │ ───┘ └───┘ └───┘ └─ Ovo su dva tona iste frekvencije, a različite jačine, prvi je (naj)jači. ┌┐ ┌┐ ┌┐ ││ ││ ││ ───┘└──────┘└──────┘└──── zak
asembler.45 lazo,
Zašto slijedeći program neće da izmjeni fajlu TEST.EXE atribut? code segment public 'code' assume cs:code,ds:data,ss:stack prog proc far mov ax,data mov ds,ax mov dx, offset ime ───┐ mov ah,43h │ dio programa koji bi trebao da mov al,01h │ promjeni atribut TEXT.EXE, tj. mov cx,03h │ setuje R i H atribute. int 21h ────────────┘ mov ah,4ch int 21h prog endp code ends data segment ime db 'c:\test\test.exe' data ends stack segment stack 'stack' dw 1024 dup (?) stack ends end
asembler.46 dzakic,
# ime db 'c:\test\test.exe' Treba da stoji: ime db 'c:\test\test.exe',0 Ona nula na kraju je jako važna jer označava kraj stringa. Pretpostavljam da je DOS zbog toga vraćao kod greške 'File not found'. Pozdrav, zak
asembler.47 lazo,
-> Treba da stoji: -> -> ime db 'c:\test\test.exe',0 U parvu si, hvala. -> Pretpostavljam da je DOS zbog toga vraćao kod greške 'File not -> found'. Nije. Samo ništa nije radio. Pozdrav, i još jednom hvala, Mickey.
asembler.48 jknezovic,
Pozdrav... Iz razno-zaznih razloga potreban mi je assembler za z80 (po mogucnosti sa uputstvom ) na PC-u. Ko o ovome nesto brzo zna ili takvo nesto ima, molim brzi odgovor. :) Nije lose ako mi se i javi na tel (088)-422-797 . Traziti Mladju... JKnezovic
asembler.50 ljupco,
> E, sad, sve je to lepo, ali STA JE SA OSTATKOM FUNKCIJA? Pitaj Microsoft-a ;) Autor teksta o loadall instrukciji kaze: > Furthermore, Microsoft will give you a copy of the XMS driver, and >standard, free, if you write to them and ask for one. Write to Microsoft >Corporation, 16011 NE 36th Way, Box 97017, Redmond WA 98073, and politely >request a floppy copy of the XMS standard and driver. Thank you, Microsoft.
asembler.51 miro,
■■> Ima li neko dokumentaciju za XMS ? ■■> Imam ja (dragisha) ali sam u SA.:( Knjiga se zove MS-DOS Extensions (by Ray Duncan) u izdanju Microsoft Press. Osim te knjige imam i jedan file koji sam nekada davno skinuo sa MIPS-a a zove se XMS.ZIP (ime je tacno, ekstenzija je mozda .ARC) i koja sadrzi cak i sors neke tamo verzije. Osim XMS, pomenuta knjiga obradjuje i EMS, Microsoft Mouse Driver i Microsoft CD-ROM extensions. Ako ti puno treba mail send miro (a uskoro ce moci i na dragisha:) ) pa da se dogovorimo nekako oko slanja. Pozdrav.
asembler.52 miro,
Evo ovdje jedan file o XMS (izvadjen iz MS XMS distribucione arhive) dragisha xms.arj
asembler.53 bocko,
Thanks! Bocko
asembler.54 nbatocanin,
Ima li neko podatke za razlike u instrukcijama za 6502 i 65c02?
asembler.55 dtadic,
>> Ima li neko podatke za razlike u instrukcijama za 6502 i 65c02? Kod 65C02 su dodate sledece instrukcije: BRA (branch always) INA (increment acc) DEA (decrement acc) TRB (test and reset memory bits with acc) - zpg i abs TSB (test and set memory bits with acc) - zpg i abs PHX (push X on stack) PHY (push Y on stack), PLX (pull X from stack) PLY (pull Y from stack) STZ (store zero) - zpg zpg,X abs abs,X Pored ovoga, dodati su i novi modovi adresiranja za neke stare instrukcije: ADC, AND, CMP, EOR, LDA, ORA, SBC i STA podrzavaju indirektno adresiranje BIT podrzava adresiranje tipa imm, zpg,X i abs,X JMP podrzava adresiranje tipa (abs),X DT
asembler.56 jknezovic,
Htio bih raditi uredjaj sa procesorom 8080.Interesuje me asembler za taj procesor(paket softvera) te malo obavjestenja u pogledu razvoja uredjaja. telefTHelefon za kontakt je 088 422-797 Senad Tojaga.žZ
asembler.57 vbole,
> Htio bih raditi uredjaj sa procesorom 8080.Interesuje me asembler za taj > procesor(paket softvera) te malo obavjestenja u pogledu razvoja > uredjaja. Koliko ja znam, on se vise ni ne proizvodi, zasto ne uzmes Z-80 ?? 8080 Disasembler ( SID ) mozes da dobijes od mene - za CPM+, ali asembler za njega nemam, mozda da probas da programiras u Z-80 asembleru bez prosirenog seta instrukcija.Javi sta te konkretno interesuje/treba, da ti posaljem u mail. bye... vbole
asembler.58 zonjic,
> Htio bih raditi uredjaj sa procesorom 8080.Interesuje me asembler za > taj procesor(paket softvera) te malo obavjestenja u pogledu razvoja > uredjaja. Na ETF-u je na OGLASima neko ostavio, ako se ne varam spisak instrukcija ovog uProcesora. Mozda neki kolega izadje sa konkretnijom informacijom...
asembler.59 kole,
>> Htio bih raditi uredjaj sa procesorom 8080.Interesuje me asembler za taj >> procesor(paket softvera) te malo obavjestenja u pogledu razvoja uredjaja. AMSTRAD 6128 (odnosno CP\M+) je imao sve što Ti treba (DR-ov Macro Assembler i Debugger...) i to me baš nerviralo kad sam nešto pisao u makincu (sve je za 8080). Normalno instrukcije liče na Intel-ove ( eeeee Z80 gde si...) Lepo nađeš nekog klinca, daš mu Ninja-kornjaču i ćapiš AMSTRAD,... Pozdrav, Kole
asembler.60 pele,
> Na ETF-u je na OGLASima neko ostavio, ako se ne varam > spisak instrukcija ovog uProcesora. Mozda neki kolega > izadje sa konkretnijom informacijom... Sve bi to bilo lepo i krasno kad nebi bilo: "Oglasna tabla trnutno ne radi zbog zloupotrba!" ;( pele
asembler.61 dbojan,
Kako pozvati neki od SuperVGA graf. modova ???
asembler.62 radunovic,
Trebalo bi da imas uputstvo u kome pise koji je mod za sta jer mislim da kartica nije standardna(postoji VESA standard ali valjda nije jos stigao do nas). Za slucaj da nemas uputstvo evo ti neki modovi sa moje AVGA kartice: 800x600 256 Bios mode: 62H 800x600 16 Bios mode: 6AH,71H 640x480 256 Bios mode: 61H 1024x768 16 Bios mode: 74H Setujes mod sa INT 10H tako sto u AL stavis 0 a u AH Bios mode(valjda bese tako).
asembler.63 ljupco,
Kako da simuliram far call pomocu near call? Adresa gde skacem nalazi se zapisana kao dword (ofset, segment) na adresi _oldkey.
asembler.64 ljupco,
Kako da simuliram far call pomocu near call? Adresa gde skacem nalazi se zapisana kao dword (ofset, segment) na adresi _oldkey.
asembler.65 dgrbic,
:: Kako da simuliram far call pomocu near call? Adresa :: gde skacem nalazi se zapisana kao dword (ofset, segment) na adresi :: _oldkey. No way, amigo. Ako je ono sto ti treba da se pozove sub na adresi _oldkey, pa da se uradi near ret, rezultati su vrlo nepredvidljivi. Ali, mozes da gurnes na stek povratnu adresu i dword sa _oldkey pa da uradiš ret far. Ipak razmisli, da li je baš to ono što želiš da uradiš. Pomoću near call ne ide, jer treba promeniti i CS.
asembler.66 janko,
Znam da ima negde, da je neko pisao o tome, ali ne znam gde, pa pomagajte: 1. Kako se radi sa COM3 i COM4, a ne samo sa COM1, COM2 iz mašinca, C-a i sl.? Za ovo nisam siguran da je već pisano: 2. Da li ovi uobičajeni modemi mogu samo da okrenu broj, a onda da nas puste da pričamo glasom, i ako mogu, kako se to radi? U mojim uputstvima za modem nema ništa o tome.
asembler.67 janko,
Da li je neko pokušavao da se bavi nekom vrstom animacije u TEXT režimu? Ja ne umem da uskladim promenu sadržaja ekrana, sa onim skaniranjem koje radi kartica, pa mi se vidi da je slika "iskidana": moj program počne da menja sadržaj video memorije, pa kartica izgeneriše sliku, pa moj program nastavi... Izgleda da se na EGA-ma i jačim mogu da menjaju cele stranice u tekst režimu, samo gađanjem nekih lokacija, ili zvanjem nekih interapta. A može li se to i na Herkulesu? Postoji li univerzalno rešenje?
asembler.68 zormi,
* 2. Da li ovi uobičajeni modemi mogu samo da okrenu broj, * a onda da nas puste da pričamo glasom, i ako mogu, kako se * to radi? U mojim uputstvima za modem nema ništa o tome. Mogu. Ja sam to radio iz Sidekick-a pre dve godine kada sam ga koristio. SK je radio sve što je potrebno.
asembler.69 dgrbic,
:: 2. Da li ovi uobičajeni modemi mogu samo da okrenu broj, a :: onda da nas puste da pričamo glasom, i ako mogu, kako se to :: radi? U mojim uputstvima za modem nema ništa o tome. ATDPbroj; Znači, samo staviš ; na kraju.
asembler.70 obren,
> :: 2. Da li ovi uobičajeni modemi mogu samo da okrenu broj, a > :: onda da nas puste da pričamo glasom, i ako mogu, kako se to > :: radi? U mojim uputstvima za modem nema ništa o tome. > > ATDPbroj; > > Znači, samo staviš ; na kraju. Jesi li siguran da ; služi za to? Koliko je meni poznato ; je modifikator koji kada se nađe na kraju broja prouzrokuje da se posle dobijanja veze vrati u komandni mod. Posle sa AT O možeš da se vratiš online. Mislim da nećeš ništa posebno postići po pitanju prelaska na voice sa tim tačka-zarezom. Jedna od varijanti je da pošto modemi uspostave vezu, digneš slušalicu od telefona, a modemu saopštiš da "prekine vezu" (AT H). Ako imaš dva priključena telefona predhodni postupak bi bio analogan pozivanju nekoga pomoću jednog od njih, zatim duzanju slušalice drugog telefona i najzad spuštanju slušalice prvog. To sa tačka-zarezom sam i ja negde video (ali ne i probao!). Mislim da je u umetku o modemima iz Sveta kompjutera. Tada sam mislio da je to neka greška i nisam proverio. U svakom slučaju, ako si ti probao i radi, onda izvini... P.S. Ovo očigledno nije za temu asembler, ali pitanje je ovde postavljeno! Pozdrav, Dragan
asembler.71 dgrbic,
:: Jesi li siguran da ; služi za to? Koliko je meni poznato ; je :: modifikator koji kada se nađe na kraju broja prouzrokuje da se :: posle dobijanja veze vrati u komandni mod. Posle sa AT O možeš da :: se vratiš online. Mislim da nećeš ništa posebno postići po pitanju :: prelaska na voice sa tim tačka-zarezom. Nisam probao :) Evo šta piše u uputstvu za moj modem: *************************** ; instructs the modem to return to Command Mode after dialing, instead of originating a data call. The semicolon can be entered anywhere in the command line, and the modem's speaker stays on until you instruct the modem to hang up. This command is useful if you want to use the modem to dial a voice call; you can simply pick up the handset when you hear the person at the other end pick up the phone. *************************** Dakle modem ostaje u komandnom modu i ne uspostavlja vezu. Zvučnik ostaje uključen.
asembler.72 dzakic,
>> Dakle modem ostaje u komandnom modu i ne uspostavlja vezu. >> Zvučnik ostaje uključen. Da, ali ipak treba ručno poslati jedan space ili enter modemu da bi hangupirao. Jedina prednost ovoga nad klasičnim biranjem broja koji sam do sada koristio (običan atdp :) je što se ne može desiti da modem zapišti ako se ne reaguje odma. Nije loše...
asembler.73 dzakic,
>> Da li je neko pokušavao da se bavi nekom vrstom animacije u TEXT >> režimu? Ja sam pre neki dan (od prilike dan pre nego je napisana tvoja poruka, a ja kasnim jer sam bio odsutan na kratko) pravio neku vrstu intro-a koji smo viđali na komodorima i spektrumima. Običan skrol teksta veličine 14 redova, gađa pravo u tekst video memoriju, ali mučio me upravo ovaj problem... >> Ja ne umem da uskladim promenu sadržaja ekrana, sa onim >> skaniranjem koje radi kartica, pa mi se vidi da je slika >> "iskidana": moj program počne da menja sadržaj video memorije, Mislim da sam u onom helppc-u video da postoje neki bitovi na portu video kontrolera koji bi trebalo da signaliziraju horizontal i vertical retrace. Pretpostavljam da je to ono što nam treba i nešto sam eksperimentisao (stavim petlju da čeka recimo keca pa zatim nulu na tom mest) i nisam dobio ništa. Zapravo, ta se vrednost uopšte ne menja. Da li to radi samo na cga, ne znam. >> Izgleda da se na EGA-ma i jačim mogu da menjaju cele stranice >> u tekst režimu, samo gađanjem nekih lokacija, ili zvanjem nekih >> interapta. A može li se to i na Herkulesu? Postoji li univerzalno >> rešenje? Na herkulesu ne može. BIOS omogućava više text stranica, ali ona koja je vidljiva mora da se nalazi na B000 segmentu. Ostale se pamte na B200, B400 itd. S druge strane dve grafičke stranice se mogu smenjivati velikom brzinom, samo pomoću nekoliko out-a. Dve grafičke stranice na B000 i B800 lako se svičuju...
asembler.74 dzakic,
>> 1. Kako se radi sa COM3 i COM4, a ne samo sa COM1, COM2 iz >> mašinca, C-a i sl.? Ima u r:\rsoft zbirka zz-ovih rutina za rad sa com portovima 1 i 2. U staroj pc.soft vkostić je ostavio source sa prepravkama za rad sa com3 i com4. Isprobao sam i jako sam zadovoljan.
asembler.75 ivans,
Primecujete li malu nedoslednost u nazivu ove teme? Rec je o sledecem: postoje teme basic, pascal, clipper, i sve se pisu u originalu. Medutim, ova tema se zove aSembler, a ne aSSembler, kako bi trebalo... Naravno, sada je kasno menjati naziv teme (napravilo bi novi haos po Sor-ovima), ali u buduce (kada Sezam dobije nov disk ;))... Trebalo bi paziti... Pozdrav, Ivans.
asembler.76 radunovic,
?! Ja ne umem da uskladim promenu sadrzaja ekrana, sa onim ?! skaniranjem koje radi kartica, pa mi se vidi da je slika ?! "iskidana": moj program pocne da menja sadrzaj video memorije, ?! pa kartica izgenerise sliku, pa moj program nastavi... Probaj sa menjanjem video strana. Izaberi jednu za aktivnu a drugu za vidljivu i crtaj po aktivnoj pa kad zavrsis, samo ih zameni. Pogledaj u NG za asm int 10h
asembler.77 janko,
> > Mislim da sam u onom helppc-u video da postoje neki bitovi > na portu video kontrolera koji bi trebalo da signaliziraju > horizontal i vertical retrace. Pretpostavljam da je to ono > što nam treba i nešto sam eksperimentisao (stavim petlju > da čeka recimo keca pa zatim nulu na tom mest) i nisam > dobio ništa. Zapravo, ta se vrednost uopšte ne menja. Da > li to radi samo na cga, ne znam. Ja sam se igrao sa time, tako što sam neke programe koji idu uz turbo paskal, direktno gađaju tekst memoriju a imaju asemblerskog sorsa, malo menjao pa puštao, da vidim efekte. Zaključak mi je: to ipak služi samo za CGA, i ima ulogu 'SNOW CHECK-a'. Ono što često pitaju instalacije za razne programe je baš da li da uključe te petlje ili ne. To je bilo potrebno za CGA-e, koje su davale ružne efekte kada bi gađao ekransku memoriju u nezgodnom trenutku. Novije kartice i Hercules jednostavno odlože upis dok njima ne odgovara, pa je SNOW CHECK bespredmetan, po njima. Tako se to ne može da iskoristi ni za sinhronizaciju upisa, na žalost (eh, kako je to bilo lako na Spektrumu :) ). Bojim se da do sada niko nije napisao ovakve programe, kakvi su meni i tebi pali na pamet, samo zato što univerzalno rešenje ne postoji? :(
asembler.78 janko,
>>> 1. Kako se radi sa COM3 i COM4, a ne samo sa COM1, COM2 > > Ima u r:Đrsoft zbirka zz-ovih rutina za rad sa com > portovima 1 i 2. U staroj pc.soft vkostić je ostavio > source sa prepravkama za rad sa com3 i com4. Eto zbog toga treba da imamo direktorijum za Domaći softver. Rad sa COM3 i COM4 ipak zaslužuje da ne bude samo datoteka prikačena u nekoj konferenciji. Ili grešim?
asembler.79 dgrbic,
:: Na herkulesu ne može. BIOS omogućava više text stranica, ali :: ona koja je vidljiva mora da se nalazi na B000 segmentu. Pa zar ne može direktnom promenom u CRTC da se pomeri početak ekrana? Na CGA je to tako išlo, a radi i na VGA...
asembler.80 ndragan,
/ ali u buduce (kada Sezam dobije nov disk ;))... Trebalo bi paziti... Kada svi mi dobijemo nove diskove :)
asembler.81 janko,
> Pa zar ne može direktnom promenom u CRTC da se pomeri > početak ekrana? Na CGA je to tako išlo, a radi i na VGA... Može primer, pa da probam i na Herculesu?
asembler.82 dzakic,
>> Može primer, pa da probam i na Herculesu? Ja sam nedavno analizirao kako radi onaj flicker i mislim da on menja offset početka video memorije. To su registri 13 i 14 čini mi se. Nisam siguran, ne juri mi se sad po helpu, al znam da ih on menja (flicker) i da su to predzadnja dva registra, zadnja dva su za light pen. Valjalo bi malo eksperimentisati sa tim. S druge strane, bios to sigurno ne radi jer lepo kaže da mod 7 ima samo jednu text stranicu.
asembler.83 dgrbic,
:: S druge strane, bios to sigurno ne radi jer lepo kaže da mod 7 :: ima samo jednu text stranicu. Naravno, u BIOS-u je podrška za MDA, a ne za Hercules.
asembler.84 janko,
> Ja sam nedavno analizirao kako radi onaj flicker i mislim > da on menja offset početka video memorije. To su registri > 13 i 14 čini mi se. Nisam siguran, ne juri mi se sad po > helpu, al znam da ih on menja (flicker) i da su to > predzadnja dva registra, zadnja dva su za light pen. > Valjalo bi malo eksperimentisati sa tim. Eksperimentisao sam. Ipak mi nije uspelo da razmenjujem sadržaje dva ekrana. Ne znam gde se to događa, ali od one adrese u registrima u CRTC, izgleda da se uzimaju o obzir samo bitovi 0-10. Izgleda da to radi zato što je 25*80=2000=7d0h, pa neko (ne znam koji čip, u to se ne razumem) tu uzima samo kao (adresa & 7ffh). Tako mogu da pomerim sliku samo tako da uhvati još 48 bajtova koji neisu bili na prethodnoj. Ako nekog zanima, okačiću i program koji to demonstrira. Pošto sam 'tanak' sa tom hardverskom organizacijom, imam još pitanja: Pre svega, da li je CRTC čip (po helppc-u, onaj Motorolin 68..) jedino što programer može da vidi, ili je on neko 'predvorje' pravom grafičkom čipu? Konkretno, u tim podacima koje sam video u HelpPC, nema nikakvih specifičnosti za razne grafičke kartice. Da li grafičke kartice emuliraju možda taj Motorolin čip? Ima li neko specifikacije za Hercules, CGA, EGA koje relevantne, a ne postoje u HelpPC? I da, šta je to taj flicker koji se pominje da menja početak video memorije?
asembler.85 ljupco,
U 80386 Tehnical Reference kaze se da je exception 13 general protection exception i pobrojane su situacije kada se ovaj exception generise. Jedna od situacije je "Exceeding the segment limit when using CS, DS, ES, FS or GS". Interesantno je da kaze jos "ExcepthKn also detected in 80286/80386 REAL mode". Moze li neko da kaze pod kojim se uslovima ovaj exception dogadja kod 286-tice? I dali se ovo moze iskoristiti kod programa tipa kao sto je dzakicev yuherc?
asembler.86 janko,
Skoro je stigao DZakićev i Beast-ov program ZBtet. I u njemu, problem sa animacijom u niskoj rezoluciji na herkulesu, na koga sam i ja bio naleteo, nije rešen. Bacio sam pogled na bazu, DZakić je baš pominjao Intro, kada smo pričali o tom problemu! Zna li neko da li je moguće rešiti pomenuti problem, ili ostaje za vjeki vjekov? Usput, jeste li uspeli da pročitate ceo intro na herkulesu a da vam se ne zavrti u glavi? Možda bismo mogli da počnemo da koristimo računare umesto raznih opojnih droga? :) Meni u ZBTet-u fali mogućnost da ono što padne sklizne već kada je palo, što je stari tetris mogao, a ovaj ne može. Da li je u planu REZIDENTNA verzija? Problem je sa upisom na disk tabele skora, ali to bi moglo da se radi, recimo, samo pri deinstalaciji? Inače, program je jako pristojan, sa obzirom na cenu. (osmeh)
asembler.87 dzakic,
>> Zna li neko da li je moguće rešiti pomenuti problem, ili ostaje >> za vjeki vjekov? Izgleda ne :(( Na vga znam da može (ne i kako) al ne zanima me, ako ne može kod nas, nek se i oni pate ;) >> Usput, jeste li uspeli da pročitate ceo intro na herkulesu a da >> vam se ne zavrti u glavi? Možda bismo mogli da počnemo da Trebalo bi da se može dovoljno usporiti da se ne zavrti. žak i na bržim mašinama, paskal prvo "kalibriše" klok tako da je delay isti na svim konfiguracijama. Inače, ja sam vežbao i nekoliko puta ga iščitao do kraja uz pristojno malu vrtoglavicu ;) >> Meni u ZBTet-u fali mogućnost da ono što padne sklizne Nas dvojica to očigledno nismo do sada koristili, ja ne volim da se "podvlačim" ;) Planirano je da se ubaci u sledeću verziju verovatno kao opcija. >> Da li je u planu REZIDENTNA verzija? Problem je sa upisom na Nije za sad. Verovatno ćemo pre raditi neke extenzije za dva igrača i sl. Mada, i kod upisa, dovoljno je proveriti one flegove indos i dos critical... Pozdrav, dz
asembler.88 vkrstonosic,
>> Skoro je stigao DZakićev i Beast-ov program ZBtet. I u njemu, Oooo, pravo osveženje za domaću scenu. Pošto imam resign igre, moram ovde da odam priznanje autorima. Svaka čast, samo tako nastavite, sledeće je Summer Games ;)
asembler.89 dejanr,
Ne znam da li je namerno ili sticaj okolnosti, ali ZBTET ne broji poene kao tetris, štaviše dosta je "velikodušniji". Ja bih više voleo klasično brojanje, nekako onda imam osećaj šta sam uradio. Ako trebaju pravila, bila nekad davno u "Računarima".
asembler.90 dzakic,
>> Ja bih više voleo klasično brojanje, nekako onda imam osećaj šta >> sam uradio. Ako trebaju pravila, bila nekad davno u "Računarima". Da, sećam se toga i ta pravila sam koristio kod prethodnog, amstradovog tetrisa. Sad je korišćena jako logična formula inc(score,(level+1)*(22-visina)) gde je visina broj reda u kom je figurica bila kad je pritinut space ili se zaustavila na podlozi. Formula kazuje i da je veći deo igre pisan u paskalu, ako nekoga baš zanima :) dakle nija baš za ovu temu premda ima delova i u asembleru. Ono što omogućava više poena je izmenjen sistem po kom se određuje da treba povećati nivo. Ranije je to bilo 11, 21, 31... Izgledalo nam je da bi bilo lepše da za prelazak sa 8. na 9. treba sastaviti više linija nego za prelazak sa 2. na 3. Stavili smo "linearno" povećavanje te cifre pa je Beast izračunao te brojeve ne sećam se kako :) i evo tih konstanti: promena:array[1..9] of integer=(12,25,42,61,82,105,130,157,186); Nije baš okruglo, al ako neko voli da zna kolko je ostalo, možda bi se mogao staviti neki brojač u ćoše. To što je velikodušniji uradili smo namerno da se vidi da je score deklarisan kao longint :) Zak
asembler.91 skoprivica,
>-> Ne znam da li je namerno ili sticaj okolnosti, ali ZBTET ne broji >-> poene kao tetris, stavise dosta je "velikodusniji". A i 'dubina' je prevelika, a i ne povecavaju se nivoi u neko dogledno vreme, a i ona pravila poentiranja bas i ne valjaju, tj. imaju bag. Koji ? Pa reci cu vam ako vas bas zanima... Aje... CTEBO.
asembler.92 zmilan,
Nadam se da je pitanje u pravoj temi. Interesuje me Z80 asembler za PC koji pravi kod koji bi direktno mogao da ide u EPROM. Probao sam emulator CP/M, ali njegov asembler zahteva prepravke na nivou koda koji daje za ovu primenu. Nadam se da ce mi neko pomoci oko ovoga. Ukoliko je ovo vec bilo pitanje na Sezamu, unapred se izvinjavam korisnicima s' obzirom da sam od juce clan. Pozdrav, zmilan.
asembler.93 dzakic,
E, pa Janko, imam jednu radosnu vest :)) Otkrio sam, tačnije kolega vasić koji trenutno nije na sezamu, našao je rašenje radeći svoj cga simulator. Vertical retrace signalizira se resetovanje sedmog bita na portu 3BA. Upravo sam probao intro i razlika je ogromna, samo još da se nađe dobra duša da mi kaže kako to isto da uradim na VGA, pošto ja nemam dokumentaciju. Rešenje dakle postoji, i važi za herkules samo. Ono što smo isprobavali ranije je za cga, moguće je rešiti i na vga. Pozdrav, Zak
asembler.94 ilazarevic,
█ tj. imaju bag. Koji ? Pa reci cu vam ako vas bas zanima... Reci, reci, da bih ja napravio savršen tetris :))
asembler.95 dgrbic,
:: Rešenje dakle postoji, i važi za herkules samo. Ono što smo :: isprobavali ranije je za cga, moguće je rešiti i na vga. Port 3DA, bit 3. Moguće je pristupati RAM-u na kartici sledećih 1.25ms Izvor: HELPPC. Za bit 7 na 3BA ništa ne kaže!
asembler.96 skoprivica,
>-> dogledno vreme, a i ona pravila poentiranja bas i ne valjaju, >-> tj. imaju bag. Koji ? Pa reci cu vam ako vas bas zanima... >-> Reci, reci, da bih ja napravio savrsen tetris :)) Mislio sam na ORIGINALNI ruski tetris....Jos vas drzim u neizves- nosti za pravila, ha ? Aje... CTEBO. PS: Koliko vremena vam treba da postignete NEGATIVAN skor u tetrisu? Pola sata ? Mnoogooo...moze za 100 puta krace vrema...
asembler.97 ilazarevic,
█ PS: Koliko vremena vam treba da postignete NEGATIVAN skor u tetrisu? █ Pola sata ? Mnoogooo...moze za 100 puta krace vrema... Ovo znam... Samo pritiskaš next taster i ovaj ludak počne da ti smanjuje skor :)))
asembler.98 skoprivica,
>-> █ PS: Koliko vremena vam treba da postignete NEGATIVAN skor u >-> tetrisu? Pola sata ? Mnoogooo...moze za 100 puta krace vrema... >-> Ovo znam... Samo pritiskas next taster i ovaj ludak pocne da ti >-> smanjuje skor :))) Da, posebno se primeti na nultom nivou, kada pada 'kocka' i onda drzis 8 i ona (kocka) treperi,kao okrece se i kad padne imate -30 poena..., tj. u onim pravilima fali i da zavise od broja punih okretaja 'figure' Aje... CTEBO.
asembler.99 adezelin,
>|#*}- >|#*}- Usput, jeste li uspeli da procitate ceo intro na >|#*}- herkulesu a da vam se ne zavrti u glavi? Mozda bismo >|#*}- mogli da pocnemo da koristimo racunare umesto raznih >|#*}- opojnih droga? :) Ej, a da brobas sa taster "2" mozda radi!!! ;))) Uzgred receno z(ovo je slovo z)es prg!!!
asembler.100 zddb,
Imam problema sa 4. disketom programa MASM 6.0. Par bad sector-a i "help" mi ne radi. Može li neko da pomogne? Zoran D. Brkić
asembler.101 zmilan,
Vec neko vreme mi ne polazi za rukom da dodjem do video memo- rije graficke karte koja ima vise memorije nego sto je predvidjeno segmentom $A000 za video memoriju.. Naime, radi se o EGA/VGA kartama sa 256KB i vise memorije. Direktnim pristupom, izgleda, crta se samo u jednoj bit mapi, a rezidentan program kojim skidam ovaj segment takodje skida samo jednu bit mapu. Da li je segment $A000 samo 'prozor' u video memoriji video ka- rtice?? I kako doci do ostale memorije video karte, tj ostalih bit mapa svih stranica video memorije?? Ko u ovome ima iskustva neka pojasni malo... Napominjem da nemam nikakvu literaturu o ovome. Pozdrav, Z.Milan. HHHHPMM
asembler.102 obren,
> Naime, radi se o EGA/VGA kartama sa 256KB i vise memorije. > Direktnim pristupom, izgleda, crta se samo u jednoj bit mapi, a Direktnim pristupom se NE MOčE raditi sa EGA/VGA kao što je to bio slučaj sa CGA/HGC. Jednostavno bit-ravni postoje ali je način na koji su one organizovane interna stvar kartice. Mora se zatražiti od karte da ona sadržaj tih bit ravni za neki pixel (tačnije 8 odjednom) smesti u svoj interni 32-bitni registar iz koga posle "kupiš" informacije. Sve ovo važi za standardne EGA/VGA karte. Ne znam da li je kod ovih SuperVGA nešto promenjeno za one "šarene" modove sa dooosta bit ravni. > Da li je segment $A000 samo 'prozor' u video memoriji video ka- > rtice?? I kako doci do ostale memorije video karte, tj ostalih bit > mapa svih stranica video memorije?? Donekle si u pravu. Segment A000 jeste na neki način prozor u video memoriji ali u isto vreme i jedini kome se može direktno pristupiti. Ostala memorija video karte je nedostupna (koliko ja znam). Da bi se očitalo ili postavilo stanje nekog bita moraju se koristiti portovi. U pitanju su port 3CE i 3CF (prvi je index a drugi data port). Dakle nema ništa od poukovanja po video memoriji. Ovaj mehanizam koriste i TC i TP ali nešto komplikuju zbog univerzalnosti za svaku karticu. Kad stignem napisaću (onoliko koliko znam) koje sve funkcije ima port 3CE i kako se koriste. Da napomenem da je crtanje tačke ovim tehnikama brže od TC-ovog ili TP-ovog putpixel-a.
asembler.103 mjova,
> Naime, radi se o EGA/VGA kartama sa 256KB i vise memorije. > Direktnim pristupom, izgleda, crta se samo u jednoj bit > mapi, a ne znam da li će ti nešto značiti, ali pokušaću da izdvojim deo koda, ali iz C-a. ako ti to nije jasno, onda ti ne mogu pomoći ;). ova fn() puni neku strukturu stvarima oko videa, ali tebe će valjda zanimati samo deo: reg.h.ah= 0x0f; int86(VIDEO, &reg, &reg); t->currmode= reg.h.al; // u kom je modu kartica t->x_max= reg.h.ah; // ── rezolucija t->page= reg.h.bh; // if (reg.h.al == 7) { // ako je herc t->y_max= 25; // │ rezolucija t->video_seg= sreg.es= 0xb000; } else { reg.x.ax= 0x1130; // ako nije herc reg.x.dx= 0; // ako nije ega/vga onda ostaje 0 int86(VIDEO, &reg, &reg); t->y_max= (!reg.x.dx) ? 25 : (reg.x.dx + 1); t->video_seg= sreg.es= 0xb800; } reg.h.ah = 0xfe; // da li je dv promenio ofset reg.x.di = VIDEOFFSET; int86x(VIDEO, &reg, &reg, &sreg); t->video_seg= sreg.es; t->video_mem= (word far *) MK_FP(sreg.es, reg.x.di); ko zna, ovo sam doobroo ;) potkratio, možda i zafali neka linija koda. SY
asembler.104 radunovic,
Bio bih ti zahvalan kada bi napisao nesto konkretno. Npr. adrse portova i sl. (naravno i uputstvo za upotrebu:) BTW. gde si to pronasao ?
asembler.105 dejanr,
>> Kad stignem napisaću (onoliko koliko znam) koje sve funkcije ima >> port 3CE i kako se koriste. Da napomenem da je crtanje tačke ovim >> tehnikama brže od TC-ovog ili TP-ovog putpixel-a. Podržavam ideju, šta više mislim da bi tekst o programiranju VGA karti zanimao i "Računare".
asembler.106 obren,
> Bio bih ti zahvalan kada bi napisao nesto konkretno. Npr. adrse > portova i sl. (naravno i uputstvo za upotrebu:) BTW. gde si to > pronasao ? To o programiranju VGA karti sam iskopavao iz više izvora. Jedan je knjiga na engleskom debljine jedno 1000 strana (bavi se programiranjem VGA i SuperVGA karti sve do najnovijih Tseng i Trident kartica), koja na žalost nije moja, a druga knjiga je "Born to code in C" od Herberta Schildta (za njega ste sigurno čuli, specijalista McGraw Hill-a za C). Ako uspem da nabavim onu prvu biće lepo. :) Dakle kao što sam rekao sva komunikacija sa kartom obavlja se preko portova, nikako direktnim pristupom video memoriji. Štaviše, pristupanje video memoriji vrši se isključivo u kombinaciji sa pristupom portovima i to tačno određenim redom. Evo recimo kako se, da kažem hardverski (na najnižem mogućem nivou, ali zato i najbrže) vrši crtanje tačke: Izračuna se adresa bajta u kome je traženi pixel u okviru segmenta A000 pomoću sledeće formule: adresa pixela = A000:0000 + (Y * horizontalna_rezolucija/8) + X/8. Zatim se vrši "dummy" čitanje sadržaja ove memorijske lokacije, čime se signalizira VGA karti da sadržaj 4 bit ravni za ovu adresu spakuje u svoj interni 32-bitni registar. Tek sada nam je moguće da nacrtamo neku tačku (dakle ništa još uvek po video memoriji). Sledeći korak je da se odredi maska kojom se determiniše koji od 8 pročitanih pixela se menja. To je normalno obična binarna maska sa jedinicom na odgovarajućem mestu a nulama na svim ostalim. Dakle sve ovo je deo posla koji obavlja sam program iz koga crtamo pixel. Zatim je potrebno uraditi sledeće: 1) Na port 3CE poslati 0 jer je to funkcija kojom se signalizira VGA karti da sa porta 3CF preuzme novu boju za tačku. Zatim se na port 3CF pošalje 8-bitna vrednost boje. 2) Na port 3CE se pošalje 1, što je broj funkcije kojom se dozvoljava odnosno zabranjuje menjanje bita. Sledeća instrukcija je slanje broja 15 ili F hexa na 3CF (15 je vrednost za ENABLE WRITE). 3) Sada treba definisati način na koji se iscrtava novi pixel u odnosu na stari (to je ono OVERWRITE, XOR, AND i OR). Funkcija kojom se ovo signalizira je 3 i šalje se kao i ostale na 3CE. Zatim treba odabrati neki od ovih načina iscrtavanja slanjem vrednosti 0, 18h, 8 ili 10h na port 3CF. 4) Konačno treba proslediti masku kojom određujemo koji pixel treba da se promeni. Funkcija je 8 a maska je gore opisana. Poslednji korak je "dummy write" kojim se analogno čitanju, sada sadržaj internog 32-bitnog registra preslikava u video memoriju. Upisuje se bilo šta na izračunatu adresu u segmentu A000 (sa koje je izvrešeno čitanje). Dakle svejedno je da da li ćemo upisati 1 ili 255. Na kraju treba ponoviti sve one funkcije i upisati 0 umesto konkretnih vrednosti da bi se obrisao sadržaj internog registra. Jedino se za masku umesto 0 upisuje FFh. Iako postupak deluje "pipavo" on je brži od standardne rutine putpixel koju koriste Turbo C i Turbo Pascal. Da ne govorimo o BIOS-u... Ukoliko se u program ugradi inline asemblerska implementacija za šta je dušu dao Turbo Pascal 6.0, dobija se fantastično brza procedura za crtanje tačke. Mislim da sam pravio u C-u nešto slično pa ću okačiti o neku sledeću poruku. Eto toliko. Mislim da je primer poslužio da se vidi način na koji se komunicira sa VGA. Osim ovih "programibilnih" portova postoje i drugi, na primer statusni, sa koga se (skoro je bilo) može odrediti trenutak kada počinje vertikalni retrace i sl. Tema je preopširna da bi se mogla strpati u jednu poruku a i moje znanje je nekompletno. Ali potrudiću se da nabavim onu "debelu" ;) knjigu. Sad mi baš ćale ide u Nemačku. :))) Pozdrav, Dragan
asembler.107 mjova,
>> Direktnim pristupom, izgleda, crta se samo u jednoj bit > ne znam da li će ti nešto značiti, ali pokušaću da bljak, tek sam sad video da tebe zanima grafika, a ne text. nema veze, video si i sam da sam promašio temu ;) SY
asembler.108 zmilan,
>> Eto toliko. Mislim da je primer posluzio da se vidi nacin na koji se >> komunicira sa VGA. Naravno ;)))) S' obzirom na interesovanje ne bi trebao ovde da stanes. Dokumentuj sta jos znas o funkcijama ovog porta, dok ne dodjes do knjige. Pozdrav, Milan.
asembler.109 ivans,
Svaka cast na textu! Hocemo i nastavak (bar ja!)... Pozdrav, Ivans.
asembler.110 obren,
> S' obzirom na interesovanje ne bi trebao ovde da stanes. > Dokumentuj sta jos znas o funkcijama ovog porta, dok ne > dodjes do knjige. Pa ovako, trenutno imam prilično obaveza u školi, a ovo što pišem svodi se na pregledanje programčića koje sam odavno pisao što mi uzima prilično vremena. Danas sam napisao demo u TP6 koji ilustruje kako se crta tačka pomoću pristupa VGA portovima i koji je prikačen za ovu poruku. Neke od ovih stvari sam imao sistematizovane na jednom papiru ali sam ga negde zaturio. Kako ja obično znam gde mi šta stoji od tih papira i papirića ;) sad se ubih od traženja. Dakle dok ne prođe frka u školi oko pismenih, nema ništa od pisanja. Valjda će dotad stići i knjiga, a onda ću moći malo sistematičnije i više da napišem u vezi ove teme. Pozdrav, Dragan vgaplot.arj
asembler.111 zddb,
Zar stvarno niko nema MASM 6.0? Zbog par loših sektora na 4. disketi (ADVISOR disk), propali su mi fajlovi, te mi HELP ne radi. Ili mi je možda SYSOP obrisao prethodnu poruku? Zoran D. Brkić
asembler.112 draganf,
Pozdrav svima Pitanje na koje bi mi trebao odgovor , a možda i listing. Kako presretati podatke koji idu prema paralelnom i portu i po potrebi ih mjenjati. Stvar jako potrebna, a nisam baš neki veliki stručnjak za asembler zato napred oni koji u bolji. Dragan
asembler.113 dj.rainovic,
Ako sam dobro razumeo tebi treba kroskompajler za Z80, a onaj u emulatoru ti ne odgovara? Koji je to kompajler ? Da to nije možda m80.com ? Ja sam imao sličan problem i rešio sam ga koristeći SPECTRUM emulator (mislim da je PD) i program GENS koji generiše čist Z80 kod. Ako ti je mučno unositi tekst u Spectrum emulatoru (100% je tako) postoji mogućnost da .asm program napišeš u nekom editoru a posebnim programom tu datoteku prepraviš tako da je Spectrum emulator može pročitati. Taj program sam napisao u TP (tačnije na brzinu sklepao) pa ako ti ovakav pristup odgovara ti reci da ti pošaljem taj program.
asembler.114 adezelin,
>>>>>> 1. Kako se radi sa COM3 i COM4, a ne samo sa COM1, >>>> COM2 >>>> >>>> Ima u r:Drsoft zbirka zz-ovih rutina za rad sa com >>>> portovima 1 i 2. U staroj pc.soft vkostic je ostavio >>>> source sa prepravkama za rad sa com3 i com4. >>> >>> Eto zbog toga treba da imamo direktorijum za Domaci >>> softver. Rad sa COM3 i COM4 ipak zasluzuje da ne bude >>> samo Koj je broj poruke "source sa prepravkama za rad sa com3..." u "staroj pc.soft" konferenciji ? Thanx un-apred!
asembler.115 radunovic,
Izvinjavam se sto moja poruka ovoliko kasni, ali nisam stigao ranije da je napisem. ?! zato i najbrze) vrsi crtanje tacke: Izracuna se adresa bajta u kome ?! je trazeni pixel u okviru segmenta A000 pomocu sledece formule: ?! ?! adresa pixela = A000:0000 + (Y * horizontalna_rezolucija/8) + X/8. ?! ?! Zatim se vrsi "dummy" citanje sadrzaja ove memorijske lokacije, cime ?! se signalizira VGA karti da sadrzaj 4 bit ravni za ovu adresu spakuje ?! u svoj interni 32-bitni registar. Tek sada nam je moguce da nacrtamo ?! neku tacku (dakle nista jos uvek po video memoriji). Sledeci korak je ?! da se odredi maska kojom se determinise koji od 8 procitanih pixela ?! se menja. To je normalno obicna binarna maska sa jedinicom na ?! odgovarajucem mestu a nulama na svim ostalim. Dakle sve ovo je deo ?! posla koji obavlja sam Mozes li ovaj deo malo da pojasnis. Sta znaci dummy citanje i pisanje. Koliko bita predstavlja jednu tacku(za 256 boja bi trebalo 8 bita). ?! "pipavo" on je brzi od standardne rutine putpixel koju koriste Turbo ?! C i Turbo Pascal. Da ne govorimo o BIOS-u... Ukoliko se u program ?! ugradi inline asemblerska implementacija za sta je dusu dao Turbo ?! Pascal 6.0, dobija se fantasticno brza procedura za crtanje tacke. ?! Mislim da sam pravio u C-u nesto slicno pa cu okaciti o neku sledecu ?! poruku. Ako imas bilo kakav primer i ako stignes, posalji ga.
asembler.116 radunovic,
?! Pitanje na koje bi mi trebao odgovor , a mozda i listing. ?! Kako presretati podatke koji idu prema paralelnom i portu i po ?! potrebi ih mjenjati. Stvar jako potrebna, a nisam bas neki veliki ?! strucnjak za asembler zato napred oni koji u bolji. Ako program radi civilizovano(preko interapta) onda je moguce a ako ide direktno sa IN i OUT instrukcijama onda mislim da ne moze. Imas u norton gajdu za masinac mislim da je int 14h pa treba da presretnes taj interapt pri pozivu funkcije za pustanje podataka na stampac.
asembler.117 dragisha,
ű> moze. Imas u norton gajdu za masinac mislim da je int 14h ű> pa treba Interrupt je 17H za printer. dragisha
asembler.118 cacxa,
Jel' može jedan primer kako da stavim slovo u keyboard buffer? To bi trebalo da ide kao : .... xor ax,ax mov ds,ax mov dx,[041c] ; keyboard buffer tail pointer ... ; e ovde meni treba nešto kao mov [ds:dx],ASCII_kod ... ; pa inc dx pa mov scan kod inc dx ...
asembler.119 obren,
> Mozes li ovaj deo malo da pojasnis. Sta znaci dummy citanje i > pisanje. Dummy kao termin ili u kontekstu dummy read/write? Pretpostavljam da ti termin dummy nije poznat, jer mislim da sam u tekstu bio dovoljno jasan. Dummy operacija je neka operacija koja sama za sebe nema neki smisao/svrhu, ali ima neku formalnu ili skrivenu funkciju. Jesi li ikada u C-u napisao nešto poput a=a da bi izbegao upozorenje kompajlera? Znači, dodeljivanje promenljive same sebi je besmisleno, ali te oslobađa onog warninga da se promenljiva ne koristi nigde u programu. Pročitaj tekst malo bolje, verujem da će ti sada biti jasnije. > Koliko bita predstavlja jednu tacku(za 256 boja bi trebalo 8 bita). Da. broj_bitova = log2(broj_boja). > Ako imas bilo kakav primer i ako stignes, posalji ga. Poslao sam ga, verovatno nisi video. Pogledaj poruku 2.110. Pozdrav, Dragan
asembler.120 radunovic,
Nisam video tu poruku, izvini sto sam te ugnjavio. Hvala na informacijama.
asembler.121 zmilan,
>> Ako sam dobro razumeo tebi treba kroskompajler za Z80, a >> onaj u emulatoru ti ne odgovara? Koji je to kompajler ? >> Da to nije mozda m80.com ? U medjuvremenu sam problem resio sa croos assemblerom X80 i linkerom LINK1 i EPROM programatorom SUNSHINE. Ranije sam koristio GENS i pravi Spectrum. Spectrumova memorija postaje tesna za programe duze od 4KB. Ako te ova problematika interesuje, napisacu ti detaljnije moja isku- stva u radu sa X80.
asembler.122 dj.rainovic,
Hvala ali ja sam se te brige rešio :)))) Morao sam da radim jedan projekat na fakultetu sa Z80 pa sam se mučio sa tim emulatorom.
asembler.123 amiler,
Pozdrav svima, da li neko zna kako mogu da nabavim neki "inteligentni" disasembler, kao Sourcer npr.? Ako neko zna neka mi javi. Hvala, pozdrav Alek.
asembler.124 mjova,
šta se zapravo dešava kad se pritisne ctrl-break? pritisak na ctrl-c je jedno, a ctrl-break drugo... SY
asembler.125 janko,
Upravo sam probao VCS -- CGA emulator Aleksandra Vasića. Mislim da je to JEDINI emulator koji se ispravno bori sa TEXT MOD-ovima sa 40 znakova u redu! Po broju opcija i 'inteligentnosti' da prepozna u kom se modu nalazi program čini mi se bolji od svih meni poznatih emulatora. žestitam autoru na ovom SJAJNOM programu. ========================================= Predlog za sledeću verziju: dodati i 'povešani' ekran, ali da ne 'puni' svaku treću liniju (ostane crna, ali je bar slika veća). Takav emulator već postoji, ali nema ovoliko mogućnosti kao VCS (podržava samo jedan mod).
asembler.126 darone,
>> Upravo sam probao VCS -- CGA emulator Aleksandra >> Vasića. Ja imam VGA, ali sam sa zadovoljstvom presvičovao kartu u herkules i probao ga. Stvarno je zmaj. žestitke. darone
asembler.127 bbizic,
Zdravo svima! Vasa ovde. BB mi je dozvolio da se za ovu priliku posluzim njegovim racunom. (Evo ga, upravo se nesto buni zbog ovakvog pocetka, pominje Upravu, Ugovor... stvarno ne znam sta mu bi odjednom. :) Kao prvo, hvala Janku i Daroneu na pohvalama, a Janku i na predlogu (vec sredjeno). Nego, ono zbog cega pisem sve ovo je sledece: Palo mi je na pamet da bih mogao da za potrebe svog CGA simulatora umesto osmice upotrebim INT 70h (IRQ 8) - RT clock interrupt. Da se podsetimo: on se javlja 1024 puta u sekundi, nije dostupan na XT-u (generise ga drugi 8259 PIC koga tamo nema) i po defaultu je iskljucen. Njegova upotreba bi znacila da na AT-u vise nema problema sa igrama koje rezervisu osmicu iskljucivo za sebe: zamislite Elitu na velikom popunjenom ekranu, sa jos manje duhova nego do sad. Nesto o ovoj temi sam nasao u HelpPC-u, ali je to prilicno skrto i neupotrebljivo. Disasemblirajuci AT-SLOW uspeo sam da izolujem dve procedure koje dajem na kraju poruke. Ubacio sam ih u jednu stariju (i mnogo jednostavniju) verziju VCS-a, nesto izmenio rutinu za INT 8 i... RADI! ...skoro. Pokazalo se da je pri prvom startovanju VCS-a posle reseta potrebno enabl70 pozvati dvaput (?) da bi obavio svoj posao: Na adresu 0Bh u CMOS ramu se pri prvom pozivu ne upise sta treba. Kasnije sve radi OK, i iz prve. U cemu je fazon? Gresim li negde? Ima li ovde nekoga ko se vec bavio ovime (ili makar ima literaturu) ? Vasa P.S. Sorry zbog duzine, a evo i procedura: enabl70 proc near cli mov al,0Bh out 70h,al ; port 70h, RTC addr/enabl NMI jmp short loc_2 loc_2: in al,71h ; port 71h, RTC clock/RAM data or al,40h mov ah,al mov al,0Bh out 70h,al jmp short loc_3 loc_3: mov al,ah out 71h,al in al,0A1h ; port A1h, 8259-2 int IMR and al,0FEh out 0A1h,al ; port A1h, 8259-2 int comands sti ret enabl70 endp ; Interesantno je da AT-SLOW poziva enabl70 pri svakom izvrsenju INT 70h ; iako to nije neophodno. Zasto? disbl70 proc near cli in al,0A1h ; port A1h, 8259-2 int IMR or al,1 ; al = 1, inhibit IRQ8 RTC out 0A1h,al ; port A1h, 8259-2 int comands mov al,0Bh out 70h,al ; port 70h, RTC addr/enabl NMI jmp short loc_15 loc_15: in al,71h ; port 71h, RTC clock/RAM data and al,0BFh mov ah,al mov al,0Bh out 70h,al jmp short loc_16 loc_16: mov al,ah out 71h,al sti ret disbl70 endp
asembler.128 janko,
> RADI! ...skoro. Pokazalo se da je pri prvom startovanju > VCS-a posle reseta potrebno enabl70 pozvati dvaput (?) da > bi obavio svoj posao: Na adresu 0Bh u CMOS ramu se pri > prvom pozivu ne upise sta treba. U tim oblastima nemam nekog iskustva, ali, samo kao ideja: Ne sećam se tačno o kojem je čipu bilo reč, ali i gnjusni čipovi imaju neke SW bagove. Jedan drug mi je pričao da init-procedura koja postoji u proizvođačevom katalogu ne odgovara istini, i da upravo mora dvaput da se 'protera' da bi se ostvario željeni cilj. Sam se nisam bavio programiranjem čipova, osim školski (tj. bez praktičnog rada) pa ti ne mogu dati više detalja. A ako je samo to problem, da moraš dvaput da inicijalizuješ nešto, a nema sporednih efekata, bože moj... > hvala Janku i Daroneu na pohvalama, a Janku i na predlogu > (vec sredjeno). Što se kaže, nema na čemu. Meni je samo žao što smo samo nas dvojca to propratili. Sada verujem da je Vasin simulator _apsolutno_ najbolji, i da nema takvog na svetu, jer su Ameri i bogati odavno svi prešli na VGA. Jedva čekam da ga vidim. Mislim da je 'razvučeni nepopunjeni' režim najpogodniji i sa te strane kompatibilnosti, isto kao i 'smanjeni,' i zato što se ne pojavljuju duhovi. Ja ću sasvim sigurno da najviše koristim upravo taj režim. Puno uspeha u daljem radu.
asembler.129 zvonko,
Zdravo! Da li neko od prisutnih zna nešto (ili ima) asembler , simulator ili kros-kompajler za 8-bitni kontroler 8051 ? zvonko
asembler.130 bulaja,
│Da li neko od prisutnih zna nesto (ili ima) asembler , simulator ili │kros-kompajler za 8-bitni kontroler 8051 ? └─── Da li ti nesto znaci ovo (Trickle): directory: CROSSASM name size date desc UASM.ARC 107392 870328 Cross assembler for 8051/6805/Z8, w/'C' src
asembler.131 zvonko,
># Da li ti nesto znaci ovo (Trickle): HVALA, proverićemo ! zvonko
asembler.132 zddb,
Razmenjivao bih iskustva s korisnicima MASM 6.0. Da lije moguće da ovdje svi koriste samo Borlandov Turbo Assembler. ZDDB
asembler.133 mjova,
> Razmenjivao bih iskustva s korisnicima MASM 6.0. Da lije > moguće da ovdje svi koriste samo Borlandov Turbo > Assembler. pa vidi, u borlandu možeš lako da se spustiš na nivo MS-a, samo definišeš da nećeš sve pogodnosi ;))). šalim se, ovo je samo mala opaska koja može da bude ratna sekira ;), a hteo sam samo da kažem da nema veze koji je compiler u pitanju, sve je to dovoljno jako za naše potrebe. SY
asembler.134 nbatocanin,
> pa vidi, u borlandu možeš lako da se spustiš na nivo MS-a, > samo definišeš da nećeš sve pogodnosi ;))). Nešto mi se ne sviđa taj Borland što mnogo psuje konkurenciju: jeste li čitali uputstvo za TASM? Ono se zove omalovažavanje. Uzgred, kompatibilnost sa MASM ne radi uvek: ja sam probao da ga koristim za Clipper i nije u MASM modu uspeo da prevede EXTENDA.INC. A da Microsoft ne pravi neke programe, slažem se.
asembler.135 vitez.koja,
Da li bi neko mogao da mi napravi asemblersku rutinu za skrol (VGA) grafickog ekrana ? please... Pri tom trebapaziti sa deklaracijama, jer treba da je umetnem u Pascal program Ako neko odluci da me obraduje, neka mi posalje na mail ... vladimir
asembler.136 ivans,
Da li je neko uspeo da izasemblira fajl CTRLALT.ASM, iz paketa CTRLALT.ZIP (ima ga ovde na Sezamu)? Ja sam pokusao, i evo sta mi se dogodilo: Turbo Assembler Version 2.01 Copyright (c) 1988, 1990 Borland International Assembling file: ctrlalt.asm *Warning* ctrlalt.asm(334) Reserved word used as symbol: ENTER *Warning* ctrlalt.asm(356) Reserved word used as symbol: ESC *Warning* ctrlalt.asm(625) Reserved word used as symbol: DISPLAY **Error** ctrlalt.asm(954) Operand types do not match **Error** ctrlalt.asm(979) Operand types do not match *Warning* ctrlalt.asm(1121) Reserved word used as symbol: END Error messages: 2 Warning messages: 4 Passes: 1 Remaining memory: 175k Zanemarimo sada upozorenja, koncentrisimo se na greske - redovi 954 i 979. Tu stoji (na oba mesta) sledece: mov al,cs:stuff[bx] Izgleda da je ovaj stuff[bx] 16-bitan, jer ako se tu umesto al stavi ax - stvar prolazi asembliranje. E, sad, problem je u tome sto se nekoliko redova iznad (isto na oba mesta) nalazi xor ah,ah, tako da nisam siguran da li bi smela da se pise kombinacija sa citavim ax-om (inace sam probao tu zamenu i asembliranje je proslo samo sa upozorenjima). Da li je neko resio ovaj problem (da ne moram da otkrivam toplu vodu ;)? Pozdrav, Ivans.
asembler.137 ppekovic,
>> *Warning* ctrlalt.asm(356) Reserved word used as symbol: ESC >> *Warning* ctrlalt.asm(1121) Reserved word used as symbol: >> END Probao sam MASM i izbacio mi je samo ove dve warning poruke. Uradio sam jedno search & replace i sve radi savršeno. Paya P.S. Ne mjovo, neću ja da kažem da Borland ne valja, samo sam hteo da pomognem čoveku :).
asembler.138 ivans,
> Probao sam MASM i izbacio mi je samo ove dve warning poruke. > Uradio sam jedno search & replace i sve radi savrseno. Hvala, Payo, to zaista skida one "warninge"... Ostalo je jos skinuti "errore" ;). Pozdrav, Ivans.
asembler.139 vbole,
> Zanemarimo sada upozorenja, koncentrisimo se na greske - redovi 954 > 979. Tu stoji (na oba mesta) sledece: > mov al,cs:stuff[bx] Stavi: mov al,cs:BYTE PTR stuff[bx] > Izgleda da je ovaj stuff[bx] 16-bitan, jer ako se tu umesto al stavi ax - > stvar prolazi asembliranje. Ne mora da znaci - TASM prijavljuje gresku, bez obzira kako je stuff deklarisan: stuff: db 4000 dup (?) i opet prijavi gresku, iako je stuff deklarisan kao niz bajtova a ciljni registar je osmobitni.To je valjda da bi u startu iskljucili konfliktne situacije. Ipak - bolje da prijavi gresku, a ti lepo ispravis, nego da ne prijavi, a ti se sledeci put stvarno predjes u tipu operanda, pa CRASH... bye... vbole
asembler.140 ppekovic,
>> > Probao sam MASM i izbacio mi je samo ove dve warning >> poruke. >> > Uradio sam jedno search & replace i sve radi savrseno. >> >> Hvala, Payo, to zaista skida one "warninge"... Ostalo je >> jos skinuti >> "errore" ;). Ma OK. za warninge, nego se čudi kako radi sa masm-om a ne radi sa tasm-om. Zar tasm ne treba da je 100% kompatibilan sa masm-om? Paya
asembler.141 mjova,
> P.S. Ne mjovo, neću ja da kažem da Borland ne valja, samo > sam hteo da pomognem čoveku :). nisam ni pogledao ctrlalt.asm, ali ću da ti dam jedan odgovor, mada se asemblerom služim samo kad moram i kad zak nije tu ;) naime, tasm je daleko naprediniji od masm-a, i to po nekoliko stvari: 1) može da se spusti nisko O;> pa da radi kao masm pomoću direktive MASM 2) može da radi kao IDEAL (svoj na svome ;) 3) za programe pisane za masm, ali koji koriste BUG-ove! ;) masm-a treba dati direktivu QUIRKS > *Warning* ctrlalt.asm(334) Reserved word used as symbol: ENTER > *Warning* ctrlalt.asm(356) Reserved word used as symbol: ESC > *Warning* ctrlalt.asm(625) Reserved word used as symbol: DISPLAY > *Warning* ctrlalt.asm(1121) Reserved word used as symbol: END 'enter' - PROCESSOR INSTRUCTION: make stack frame for procedure parameters (sasvim logično da je javio upozorenje) 'esc' - nisam u toku ;) 'display' - ispis teksta na ekran (verovatno u toku prevođenja) 'end' - označavanje kraja izvornog koda dakle 4 rezervisane reči su upotrebljene za druge stvari. ovo je po nivou upozorenje, pa će možda generisani program i raditi nešto ;). što se tiče grešaka, primećujem da je bolje da ih prevodioc javi nego da glumi pamet, a posle da se silno vreme provede u lovu na bubice. SY
asembler.142 ppekovic,
>> nisam ni pogledao ctrlalt.asm, ali ću da ti dam jedan odgovor, >> mada se asemblerom služim samo kad moram i kad zak nije >> tu ;) >> >> naime, tasm je daleko naprediniji od masm-a, i to po nekoliko >> stvari: Ni ja se ne služim assemblerom tako često, ali mi nije nekako logično da je tasm bolji od masm-a, a uz pomoć masm-a sve lepo radi tok tasm štuca. :))) Paya P.S. Šalim se malo mjovo, i ja sam do sada svima koji su me pitali preporučivao tasm jer su masm-ove mogućnosti podskup tasm-ovih. Ali ipak mi nije jasno, zašto tasm nije hteo da svari onaj programčić a masm jeste, kad se Borland toliko hvali da je tasm 100% kompatibilan sa masm-om čak i u bug-ovima ;)
asembler.143 ivans,
* > Zanemarimo sada upozorenja, koncentrisimo se na greske - * > redovi 954 979. Tu stoji (na oba mesta) sledece: * > mov al,cs:stuff[bx] * * Stavi: * mov al,cs:BYTE PTR stuff[bx] E, Vbole, to je to! Sada ne samo sto radi, nego sam dobio i dva bajta manji program - verovatno se po jedan bajt skine na svakom mestu zbog BYTE PTR-a... Puno hvala na pomoci! * Ipak - bolje da prijavi gresku, a ti lepo ispravis, nego * da ne prijavi, a ti se sledeci put stvarno predjes u tipu * operanda, pa CRASH... Pa, naravno! Ne znam samo kako se i sam nisam setio da stavim byte ptr - verovatno mi nedostaje malo prakse u assembleru... A on, neka samo prijavljuje greske - bolje i to od havarije koju ne moz' da provalis... Pozdrav, Ivans.
asembler.144 janko,
Moram opet da malo hvalim Aleksandra Vasića. Na Sezamu se pojavila verzija 2.0 simulatora za CGA. Osim osobina o kojima sam ranije vać govorio, ima još jednu koju nisam nigde drugde video tako dobro rešenu: vađenje iz kome za programe koji rade 'snow checking.' Ranije, ukoliko biste startovali neki CGA simulator iz Norton komandera, (tako da uđe u neki CGA mod) mogli biste satima da gledate kako iscrtava znak po znak svoj ekran. Vasićev program se i tu izvuče. Ne znam kako mu je uspelo... ali sjajno je.
asembler.145 vbole,
> Moram opet da malo hvalim Aleksandra Vasica. Na Sezamu se > pojavila verzija 2.0 simulatora za CGA. Osim osobina o kojima I ja bi da se pridruzim, program je stvarno prva liga. Nije mi jasno zasto se ne otvori tema SEZAM:nove.datoteke sa malo detaljnijim opisima novih programa ? Ono iz komandne linije nije zgodno - ako ukljucim log, moram editorom da vadim spisak - a ako ne ukljucim, zaboravio sam cim se odjavim...
asembler.146 nboskovic,
*> Nije mi jasno zasto se ne otvori tema SEZAM:nove.datoteke *> sa malo detaljnijim opisima novih programa ? Uz većinu datoteka u Sezamovim direktorijumima ima i long opisa programa, pa se tamo mogu naći malo detaljniji podaci oko programa. *> Ono iz komandne linije nije zgodno - ako ukljucim log, *> moram editorom da vadim spisak - a ako ne ukljucim, *> zaboravio sam cim se odjavim... Zato, kad imaš vremena uradiš jedno dir /a /s /l & tako da ćeš u padu obiti sve datoteke koje se nalaze u direktorijumima koje pratiš sa dugim opisima. Kada to uradiš jedanput, posle samo kada se pojavinova datoteka uradiš za nju da se izlista u dir sa long opisom i stvar rešena. (c) klap nikola
asembler.147 janko,
>*> Nije mi jasno zasto se ne otvori tema >*> SEZAM:nove.datoteke sa malo detaljnijim opisima novih > programa ? > > Uz većinu datoteka u Sezamovim direktorijumima ima i long > opisa programa, pa se tamo mogu naći malo detaljniji > podaci oko programa. Ali, jedan red ipak nekad nije dovoljan? Ponekad skidam neki program samo da bih pročitao WHATSNEW i konstatovao da nisam morao ni da ga skidam. Samo mala porukica sa opisom programa (čemu služi, šta podržava) i WHATSNEW bila bi dovoljna. Ako moderatore mrzi to da rade, siguran sam da bi bilo dobrovoljaca, ako vi otvorite samo jednu temu? Hmmm?
asembler.148 dejanr,
>> > Uz većinu datoteka u Sezamovim direktorijumima ima i long >> > opisa programa, pa se tamo mogu naći malo detaljniji >> > podaci oko programa. >> >> Ali, jedan red ipak nekad nije dovoljan? Naravno da nije, zato probaj da otkucaš DIR /L
asembler.149 pstojanovic,
Nasao sam po neverovatno povoljnoj ceni, pre tri dana knjigu "Savremeni 16-bitni mikroprocesori I", autor Mile K. Stojcev & EI istrazivacko razvojni institut u izdanju Naucne Knjige. Knjigu sam kupio u Jugoslovenskoj knjizi (kod palate Albanija) po neverovatnoj ceni od 400 (cetiri stotine) najnovijih dinara. Knjiga sadrzi detaljan opis rada mikroprocesora 8086/85, MC 6800 i Zilog, sa posebnim osvrtom na opis asemblera za Intel 8086 procesor. Knjiga je otprilike dugacka 300 strana teksta.
asembler.150 dnikolic,
>> Uz vecinu datoteka u Sezamovim direktorijumima ima i long >> opisa programa, pa se tamo mogu naci malo detaljniji podaci >> oko programa. Znaci, ja moram da skinem arhivu od 150 K, da bih video sta ima unutra i pro- citao uputstvo?? A impulsi samo rade tak, tak, tak, tak .... :( dn
asembler.151 dnikolic,
>> Ako moderatore mrzi to da rade, siguran sam da bi bilo >> dobrovoljaca, ako vi otvorite samo jednu temu? Hmmm? Da, mislim da bi za skoro sve fajlove moralo da postoji fajl sa opisom sadrzaja arhive i nekakvim minimalnim uputstvom. To je par KB teksta, a kad se propusti kroz ARJ nije ni toliko. E sad, ako vas mrzi da to radite, to je druga stvar. Mozda ni ja to ne bih radio za moderatorsku platu! :) dn
asembler.152 ppekovic,
>> Da, mislim da bi za skoro sve fajlove moralo da postoji fajl sa opisom sadrzaja >> arhive i nekakvim minimalnim uputstvom. To je par KB teksta, a kad se >> propusti DIR ime_arhive /L Paya
asembler.153 stojke,
> Moram opet da malo hvalim Aleksandra Vasica. Na Sezamu se > pojavila verzija 2.0 simulatora za CGA. Osim osobina o kojima > sam ranije vac govorio, ima jos jednu koju nisam nigde drugde > video tako dobro resenu: vadenje iz kome za programe koji rade > 'snow checking.' Ranije, ukoliko biste startovali neki CGA > simulator iz Norton komandera, (tako da ude u neki CGA mod) > mogli biste satima da gledate kako iscrtava znak po znak svoj > ekran. Vasicev program se i tu izvuce. Ne znam kako mu je > uspelo... ali sjajno je. Kad si vec kod VCS-a 2.0. Ukucam ja: VCS 6 a f+ s+, kad ono puf, nestade slika sa ekrana. Kasnije se ispostavilo da je izgorela neka dioda u monitoru. Zakleo sam se da necu vise nikad da koristim ovaj simulator (jos uvek ga koristim). Pozdrav, Dragan S.
asembler.154 dzakic,
> Kad si vec kod VCS-a 2.0. Ukucam ja: VCS 6 a f+ s+, kad ono puf, > nestade slika sa ekrana. Kasnije se ispostavilo da je izgorela > neka dioda u monitoru. Zakleo sam se da necu vise nikad da koristim ovaj > simulator (jos uvek ga koristim). Pa ne misliš valjda da ti je to stvarno VCS skrivio? OK, jasno je da ne, čim ga i dalje koristiš. Ako je dioda već bila toliko dotrajala, isto bi ti se desilo i sa bilo kojim drugim programom koji vrši prebacivanje tekstualni -> grafički mod. Uh, sva sreća da ne koristiš yuherc. :)))
asembler.155 amilanov,
Jedno pitanje : Potreban mi je program koji omogučava pretvaranje *.obj fajlova, u *.asm. Dakle object to assembler converter ! Ako neko ima nešto takvo, bio bih mu VEOMA ZAHVALAN da to isto prosledi ovde ili u mail ! Pozdrav amilanov !
asembler.156 bearboy,
˙¨:> Potreban mi je program koji omogucava pretvaranje *.obj fajlova, ˙¨:> u *.asm. Dakle object to assembler converter ! Ako neko ima nesto ˙¨:> takvo, bio bih mu VEOMA ZAHVALAN da to isto prosledi ovde ili u mail ! Imam nesto sto bi moglo da posluzi. Lepo linkujes taj OBJ, i preko EXE-a predes sa SOURCER-om, koji ce ti vratiti listing za MASM 5.1. Jel' ovo dovoljno dobro ?
asembler.157 amilanov,
> Imam nesto sto bi moglo da posluzi. Lepo linkujes taj OBJ, > i preko EXE-a predes sa SOURCER-om, koji ce ti vratiti > listing za MASM 5.1. Jel' ovo dovoljno dobro ? Imam i ja Sourcer. Moglo bi i tako, ali je malo habasto, i sporo, da ne kažem nepraktično za veće stvari. Stvar je REŠENA, uz pomoć SEZAM-ovih "prijatelja" :)), mjove, duduka, i nbatocanina ! Koristim još jednom ovu priliku da im se od sveg srca zahvalim !!! P.S. Hvala i tebi na ideji ! :))) ! Pozdrav amilanov !
asembler.158 ppekovic,
>> Imam i ja Sourcer. Moglo bi i tako, ali je malo habasto, >> i sporo, da ne kažem nepraktično za veće stvari. Stvar >> je REŠENA, uz pomoć SEZAM-ovih "prijatelja" :)), mjove, >> duduka, i nbatocanina ! Koristim još jednom ovu priliku da >> im se od sveg srca zahvalim !!! Ako bi hteo da nam svima kažeš kako si rešio, mislim da bi mnogima bilo interesantno. Paya
asembler.159 amilanov,
> Ako bi hteo da nam svima kažeš kako si rešio, mislim da bi > mnogima bilo interesantno. Oprostite zbog malo zakasnelog odgovora. OBJ2ASM je bio potreban jednom članu SEZAM-a koji je zbog vremenskih neprilika, privremeno ostao bez modema. Radi se o Dejanu Djordjeviću, DDJJ na SEZAM-u. Ako Vas nešto konkretnije interesuje, možete mu ostaviti mail. Kako se povremeno javlja siguran sam da će moći da Vam prenese svoje iskustvo. Ja ću samo malo napomenuti par reči, o ćemu se ( i kako :) ) radilo. DDJJ radi na jednom svom projektu, koji uključuje glas u programu, uz pomoć COVOX-ovog VOICE MASTER KEY AD/DA "sound studio-a" :) ! Elem, uz njega ima C-source programe, kao i .obj interne biblioteke za MS C 5.1, i TC 2.0. Kako je bio imao neke probleme kod linkanja, sa BC-om ( sa MS C je sve bilo OK ), i kako su .obj fileovi datirali od 87 godine ( ko je tada znao za BC ;) ) hteo je da, ako je moguće dissasemblira .obj-e, pa da ručno "ispegla" probleme kod linkanja. Kasnije se "problem" rešio tako što su ustvari neke deklaracije promenljivih u sourcovima programa , bile "zastarene" za novu mašineriju BC-a, pa kad je to promenio, sve je došlo na svoje mesto. ( Još jednom je razum pobedio ;) ) ! Inače OBJ2ASM, uradi stvar, uglavnom ko što treba. Pretvori .obj u .asm. Kolko dobro, ne bih mogo da kažem, pošto moje znanje assemblera je veoma skromno ( za razliku od nekih viših jezika ;)) ! ). Sve u svemu, ako Vas nešto više interesuje o svim ovim stvarima .... mail send ddjj !! Puno pozdrava, Milanov
asembler.160 dj.rainovic,
1. Da li neko može da mi kaže gde da nađem dobar helpfile za 8086 asembler (instrukcije, direktive..). Da li ima negde onaj .ng, i ako ima da li vredi (greške ?). 2. Meni bi trebao jedan lep primer kako da analiziram parametre u com. liniji i drugi primer kako da analiziram promenljive okruženja (SET A=B ...) Svaka pomoć je dobro došla.
asembler.161 pstojanovic,
Pokusava
asembler.162 pstojanovic,
Treba mi pomoc. Pokusavam da pomocu dibagera, sa unapred postavljenim registrima uletim na odredjenu prekidnu proceduru. Posto svaki dibager izvrsava komandu INT XX kao posebnu komandu, a ne kao poziv prekidne rutine, napravio sam mali programcic u asembleru koji simulira izvrsavanje unapred zadatog interapta. Medjutim, on dobro skoci na pozivni interapt, ali kada se desi slucaj da se u okviru prekidne rutine izvrsava neki drugi interapt (bas u slucaju za prekid INT 5h - Print Screen, izvrsava se INT 10h funkcija 0Fh-citanje tekuceg video moda za rad ekrana), dibager jednostavno pretrci kompletan program bez zaustavljanja. Mislim, ne dodje do blokiranja programa, sve se izvrsi, ali ostatak prekidne rutine se ne moze pratiti od komande INT YY u prekidnoj rutini. Da li postoji neki debuger koji sam resava ove stvari ? Gde je greska u programu. Program je vezan uz ovu poruku i zove se JMPINT.ASM. HVALA. jmpint.asm
asembler.163 dj.rainovic,
Napravio sam jedan mali rezidentni program za herkules kartice. Program radi sledeću stvar: -čita bajt po bajt text video memorije, provlači ga kroz konverzionu tablicu i ispisuje na isto mesto -program može da napravi razne tablice, a ono za šta ga ja koristim je da yuscii textove vidim na ekranu kao custom 2 -program podržava 1.NONE 2.YUSCII 2.RAžUNARI 3.CUSTOM 2 4.LATIN 2 5.MOJ MIKRO -programu su potrebna 2 podatka: -izvorni kod -odredišni kod ti podaci su upisani u program ali njihova izmena nije teška ako malo pogledate kraj fajla... (u narednim verzijama će biti bolje) tamo se nalaze ovakvi znaci: ->chr(1)<- i ->char(3)<- -program je u toku rada moguće isključiti/uključiti popmoću ctrl+alt+f5 a i to se da promeniti (gore je opisano) -program osvežava ekran 18 puta u sekundi (čitaj: int08) -program za sada nije ispoljio nikakve gluposti -skoro da zaboravim, zauzima tačno 944 bajta RAM-a -program nema proveru svoje instaliranosti -program ne može sam sebe da deinstalira Program hh.com i njegov izvorni kod hh.asm su smešteni u fajlu hh.zip koji se nalazi uz ovu poruku. Jako bih se obradovao svim korisnim savetima u vezi asm fajla. Testirajte i javite šta mislite o ovome. hh.zip
asembler.164 janko,
> Jako bih se obradovao svim korisnim savetima u vezi asm > fajla. > > Testirajte i javite šta mislite o ovome. Za početak, evo ti strateškog saveta! Uskladi ga sa UKRASom. U njemu imaš podršku za jedanaest latiničnih rasporeda. Rezidentnom delu programa bi jedino kopirao formiranu tablicu (koju naprave UKRAS rutine). Napr. program koji ti generiše (verovatno sada puno kraći) .COM može da ti bude na Turbo Paskalu ili C-u. Imaš na Sezamu sorsove i za jedno i za drugo, (TP i C) i što je još bitnije, džabe su, a što je džabe i Bogu je drago. Skini konverenciju SEZAM.2:yu.kod od sredine maja do kraja, i datoteke i poruke, i pročitaj -- svideće ti se. U porukama ćeš naći sva objašnjenja. Ako ti nešto nije jasno od ovoga što sam napisao, pitaj. Ako ne želiš javno, može i na e-poštu.
asembler.165 ciki,
Imam jedno pitanjce. Kažite mi gde mogu da nabavim literaturu za assembler (za MASM 6.0 bi bilo carski), tj. da li je nasa kuca izdala dobru knjigu koja se bavi time. Molim porukicu u MAIL Jedno pitanje ako ima neki clipper-as.Lib clipint koja je pisana na assemleru neće da se linkuje sa demo programom koji ide uz lib. Javlja 2 greške pa molim da mi ih protumačite. 1. Dbgroup zahteva 64K 2. Invalid Stack ... Unapred zahvalan Ciki!
asembler.166 ppekovic,
>> Kažite mi gde mogu da nabavim literaturu za assembler >> (za MASM 6.0 bi bilo carski), tj. da li je nasa kuca >> izdala dobru knjigu koja se bavi time. Nisam do dana današnjeg ni jednu knjigu na našem jeziku koja se bavi time što tebe zanima. >> Javlja 2 greške pa molim da mi ih protumačite. >> 1. Dbgroup zahteva 64K >> 2. Invalid Stack ... Pa već sam ti rekao da imaš problema sa memorijskim modelima i da probaš sa drugim linker-om, najbolje rtlink-om. Paya
asembler.167 ciki,
>> Pa već sam ti rekao da imaš problema sa memorijskim modelima i >> da probaš sa drugim linker-om, najbolje rtlink-om. Poslušao sam te! Ali i rtlink ne prijavljuje ama baš ništa. Ja se obradovao kad EXE program ne radi!!!!!!!!
asembler.168 dnikolic,
Ima li neko MASM 6.0? dn
asembler.169 dj.rainovic,
Ţ Ţ Za početak, evo ti strateškog saveta! Uskladi ga sa Ţ UKRASom. U njemu imaš podršku za jedanaest latiničnih Ţ rasporeda. Znam ja za UKRAS , ali kada sam počeo ovo da pravim ciljevi su bili sledeći: 1. vežbati programiranje u asembleru 2. napraviti yuscii->custom 2 konverziju 3. program mora zauzimati što maje mesta kad se učita 4. dodati nove kodove , tako da se mogu menjati u toku rada Uz ovu poruku se nalazi h.com, nova verzija. Sada se polazni kod konverzije zadaje preko tastature: ctrl+alt+cifra cifra=1..6 podržani su raporedi: 1.yuscii 2.racunari 3.custom 2 4.latin 2 5.moj mikro 6.rezerva (prepraviti po volji) Program zauzima 1120 bajta Za korišćenje programa potrebno je sledeće: -imati herkules karticu sa ugrađenim yu slovima po nekom od gore pomenutih rasporeda -imati program koji piše po nekom drugom rasporedu (nekom od navedenih rasporeda) Otkucati H.COM p1 p2 p1-polazni (program) p2-odredišni raspored (u EPROM-u) p1 i p2 su cifre 1..6 Ovaj program radi sličan posao kao dzakic-ev yuherc (izuzev što je ovaj brži :) ) Javljajte ako ima problema. h.com
asembler.170 obren,
> Ovaj program radi sličan posao kao dzakic-ev yuherc > (izuzev što je ovaj brži :) ) Nisi u pravu. Tvoj program radi sličan posao kao cconv ili uyu, a sa yuhercom nema previše sličnosti. Jedno je konverzija kodnih rasporeda (tvoj program) a drugo softverski fontovi na herculesu (yuherc). Prema tome, ova dva programa ne rade isti posao pa je samim tim i njihovo poređenje u brzini besmisleno. To naravno ne znači da je tvoj program loš, već samo da si izabrao pogrešan program za poređenje ako si već hteo da mu napraviš reklamu. Pozdrav, Dragan
asembler.171 asrdjan,
> Ima li neko MASM 6.0? Stvarno ako neko ima...
asembler.172 dj.rainovic,
Ţ Nisi u pravu. Tvoj program radi sličan posao kao cconv ili Ţ uyu, a sa yuhercom nema previše sličnosti. Jedno je Ţ konverzija kodnih rasporeda (tvoj program) a drugo Ţ softverski fontovi na herculesu (yuherc). Prema tome, ova Ţ dva programa ne rade isti posao pa je samim tim i njihovo Ţ poređenje u brzini besmisleno. YUHERC je program koji rešava problem različitih kodnih rasporeda naših slova (ovo piše u yuherc.doc). On to radi koristeći grafiku i soft fontove. Program H.COM rešava problem različitih kodnih rasporeda koristeći već postojeći hardver, jer veliki deo herkules kartica kod nas ima naša slova u EPROM-u. Dakle namena programa je ista. To što YUHERC može da prikazuje razne fontove je svakako njegova prednost, ali ne dovoljno velika za mene da opravda nedostatke takvog rešenja. Namena ovog programa nije da zameni yuherc u takvim potrebama, već tamo gde postoje naša slova u EPROM-u ali po "pogrešnom" rasporedu i gde nije potrebna takva fleksibilnost (promena fonta). Poređenje H i UYU i YUCONV exe nema smisla jer druga dva programa PRERAĐUJU datoteke iz jednog rasporeda u drugi, a prvi je neka vrsta drajvera za herkules karticu. Ako ti uspeš da ubediš UYU da bude rezidentan i da radi ono što radi H imaš piće od mene. ŢTo naravno ne znači da je tvoj program loš, već samo da si izabrao Ţpogrešan program za poređenje ako si već hteo da mu napraviš reklamu. Na osnovu prethodno rečenog nije mi jasno kako si ustanovio da moj program nije loš ? Što se reklame tiče, od nje sigurno neću imati koristi jer NE tražim nikakvu naknadu za program (ako neko hoće da časti, nije red da uvredim čoveka :))) Ovaj program je napisan da sebi malo olakšam rad, a prvenstveno da vežbam rad u asembleru, i zbog toga mi je jako stalo da čujem primedbe i predloge u vezi rada programa. I dalje očekujem primedbe na rad programa. Kao i predloge za doradu.
asembler.173 obren,
> YUHERC je program koji rešava problem različitih kodnih rasporeda > naših slova (ovo piše u yuherc.doc). On to radi koristeći grafiku i > soft fontove. Program H.COM rešava problem različitih kodnih > rasporeda koristeći već postojeći hardver, jer veliki deo herkules > kartica kod nas ima naša slova u EPROM-u. Dakle namena programa je > ista. Za rešavanje problema različitih kodnih rasporeda se takođe koriste i drajveri za tastaturu, font editori, a skoro je bio i predlog za jedan novi standard (UKRAS) koji takođe služi za rešavanje problema različitih kodnih rasporeda. Prema tome, to što yuherc i h.com "rešavaju probleme različitih kodnih rasporeda" ih ne čini uporedivim programima u tom smisli da im možeš meriti brzinu. Ako kod yuherca postaviš naša slova po nekom od postojećih kodnih rasporeda ti, normalno, rešavaš problem naših slova jer ih ranije nisi ni imao. Tvoj program rešava neki drugi problem, a to je neusklađenost teksta koji se pojavljuje na ekranu sa već ugrađenim rasporedom u grafičku kartu, a to dvoje nikako nisu iste, pa ni slične operacije. > To što YUHERC može da prikazuje razne fontove je svakako > njegova prednost, ali ne dovoljno velika za mene da opravda > nedostatke takvog rešenja. To što yuherc može da prikazuje fontove nije njegova prednost nad tvojim programom, već njegova osnovna namena, ali ti to očigledno ne prihvataš. > Namena ovog programa nije da zameni yuherc u takvim potrebama, već tamo > gde postoje naša slova u EPROM-u ali po "pogrešnom" rasporedu i gde nije > potrebna takva fleksibilnost (promena fonta). Prema tome, namena tvog programa je da KONVERTUJE tekst iz jednog kodnog rasporeda u drugi. > Poređenje H i UYU i YUCONV exe nema smisla jer druga dva programa > PRERAĐUJU datoteke iz jednog rasporeda u drugi, a prvi je neka vrsta > drajvera za herkules karticu. Itekako ima smisla (sem u brzini) jer tvojim programom se može čitati datoteka koja nije napisana na kodnom rasporedu koji koristiš a upravo za to je UYU i osmišljen. Ako bi u svoj program uložio još 5 minuta truda, njega bi mogli da koriste vlasnici svih grafičkih karti, pa i VGA (u kombinaciji sa recimo programom foggys ili kako se već zove), pa je on mnogo manje drajver za herkules kartu od yuherc-a. Dovoljno je da u zavisnosti od video moda promeniš baznu adresu video memorije. Ovo shvati kao predlog za proširenje programa. > Ako ti uspeš da ubediš UYU da bude rezidentan i da radi ono što radi H > imaš piće od mene. Da "ubedim" UYU da bude rezidentan ne mogu, jer je "rezidentnost" tvog programa posledica koncepcije za koju si se opredelio, a da ga ubedim da konvertuje tekst ne moram - jer to već radi. > Na osnovu prethodno rečenog nije mi jasno kako si ustanovio da moj > program nije loš ? Ja uopšte nisam ocenjivao tvoj program, već se ogradio, da ne pomisliš da mi se tvoj program ne sviđa pa ti zbog toga prebacujem što ga porediš sa yuhercom. Srž moje poruke je da si (mislio sam slučajno, a sad vidim namerno) uporedio namenu svog programa sa namenom yuherca. Pošto ti još uvek stojiš pri svom stavu da su to u sutini programi vrlo slične namene onda te molim da navedeš koja je to zajednička operacija koju vrše oba ova programa i u kojoj je H.COM brži? Ta te podsetim: >> Ovaj program radi sličan posao kao dzakic-ev yuherc >> (izuzev što je ovaj brži :) )
asembler.174 dj.rainovic,
Ţ To što yuherc može da prikazuje fontove nije njegova Ţ prednost nad tvojim programom, već njegova osnovna namena, Ţ ali ti to očigledno ne prihvataš. Nije to čisto moj stav, ako nećeš meni da veruješ pogledaj šta piše u pratećoj dokumentaciji za yuherc (šta je namena a šta način rešavanja). Ţ Da "ubedim" UYU da bude rezidentan ne mogu, jer je Ţ "rezidentnost" tvog programa posledica koncepcije za koju Ţ si se opredelio, a da ga ubedim da konvertuje tekst ne Ţ moram - jer to već radi. On konvertuje tekst u datoteci a ne na ekranu i obrnuto h.com konvertuje tekst na ekranu a ne u datoteci i zbog toga nema elemenata da se oni porede, tj. njihovo poređenje je besmisleno. Da bi program konvertovao tekst na ekranu (bilo u ugrađen font bilo u soft font u grafici) MORA biti rezidentan. To nije posledica rešenja (u smislu da može a ne mora) već posledica problema (drugi programi pišu u video memoriju). Da te podsetim, postojeći problem ima dva oblika ispoljavanja: 1. Datoteke sa različitim rasporedom 2. Programi koji pišu na ekran različitim rasporedom Prvi se rešava sa uyu i yuconv. Drugi se rešava:-programiranjem eproma (samo jedan raspored) HERC -promenom fonta EGA, VGA -soft fontovima i translacijom u grafiku (yuherc) HERC -translacijom tekst->tekst u video mem. (h.com) HERC Ţ Prema tome, to što yuherc i h.com "rešavaju probleme Ţ različitih kodnih rasporeda" ih ne čini uporedivim Ţ programima u tom smisli da im možeš meriti brzinu. Ako kod Ţ yuherca postaviš naša slova po nekom od postojećih kodnih Ţ rasporeda ti, normalno, rešavaš problem naših slova jer ih Ţ ranije nisi ni imao. Tvoj program rešava neki drugi Ţ problem, a to je neusklađenost teksta koji se pojavljuje Ţ na ekranu sa već ugrađenim rasporedom u grafičku kartu, a Ţ to dvoje nikako nisu iste, pa ni slične operacije. Preduslovi za rad programa h.com : da u EPROM-u postoje yu slova po nekom rasporedu (uslov je u velikom broju slučajeva zadovoljen) Oba programa se instaliraju kao rezidentni, oba koriste kao ulazne podatke video memoriju za tekst, oba te ulazne podatke pišu u video memoriju. YUHERC koristi grafiku i soft fontove. H koristi tekst i ugrađene znake u EPROM. Kao posledica prihvaćenih rešenja h mora biti brži (čak i onda kada yuherc nema šta da konvertuje, h je brži). Ako ti to nije dovoljno kao dokaz o sličnosti namena, ja ne znam šta jeste. Kao primer problema i rešenja mogu se uzeti procesori teksta. Ima onih koji rade u tekst modu, i onih koji koriste grafiku, pa ipak i jedni i drugi se koriste kao tekst procesori i niko ne osporava njihovo poređenje. Ţ Ako bi u svoj program uložio još 5 minuta truda, njega bi Ţ mogli da koriste vlasnici svih grafičkih karti, pa i VGA Ţ (u kombinaciji sa recimo Hvala što se trudiš da daš predlog, ali tih 5 minuta bi bili apsolutno uzalud bačeni u situaciji kada postoji mnogo bolje rešenje za VGA (foggy). žitajući tvoju poruku imao sam osećaj kao da ne pričamo o istom programu, zbog toga bih ti postavio pitanje: da li si ti uopšte skinuo i pokrenuo taj program ? Ako nisi dalja diskusija je nepotrebna.
asembler.175 mjova,
> Nije to čisto moj stav, ako nećeš meni da veruješ pogledaj > šta piše u pratećoj dokumentaciji za yuherc (šta je namena > a šta način rešavanja). i bre, baš si dosadno nerazuman, a pošto vidim da ti obren nije dovoljan, moram i ja da ti kažem da si preterao. kad ćeš ukapirati da yuherc nema teorije porediti sa nekakvim on-line konvertorom teksta?! pa ako sam se ja opredelio za custom 2, zašto bih čitao tekstove koji su pisani drugim rasporedom? jednostavno startujem cconv i više ne razmišljam o čemu se radi. nemam nameru da se upuštam u to da li nekome treba to što si ti napisao i takođe ne želim da negiram tvoj rad i trud, ali smešnim pokušajem da porediš yuherc sa online konvertorom teksta omalovažavaš ono čemu svi skidaju kapu! moraš prihvatiti da je složenost yuherca daleko od konvertora i da je funkcija sasvim drugačija! yuherc *NE*KONVERTUJE* ništa, on *OMOGUĆAVA* prikazivanje naših slova, po nekom kodnom rasporedu na hekulesu. iz ličnog iskustva znam da se kod nas u herkulesu uglavnom nalaze naša slova po YUSCII rasporedu, a svi dobro znamo da je to ogromna glupost, pa i mnogi koji imaju naša slova u epromu herkulesa koriste yuherc da bi mogli da se reše te bede. e, sad, da li nekom treba konverzija teksta u toku prikazivanja na ekran to me ne zanima, ali moram priznati (pošto imam vga) da se upravljač tastature i vga za naša slova (foggy) kod mene instalira pri butovanju, pa meni lično više odgovara da konvertujem tekst pre ulaska u program LIST. stvar ukusa. i na kraju da rezimiram slikovito: yuherc -> ne konveruje ništa -> omogućava prikazivanje naših slova na herkulesu po BILO kom kodnom rasporedu (dakle, i ako ih nemaš, ona se vide, ne mogu ovo da pojasnim drugačije) -> upravlja tastaturom pa se vrlo lako imitiraju raspredi 'naše' i 'usa' tastature h -> 'u radu' konvertuje tekst iz jednog u drugi kodni raspored (a yuherc to ne radi!) -> ne omogućava prikazivanje slova, već samo ako postoje u EPROM-u -> nije upravljač za tastaturu šta još treba reći? pa treba reći da ako neko ne vidi, ni u jednoj od tri glavne osobine ne postoje sličnosti, dakle poređenje nema smisla. ovo je klasičan primer zadataka iz tautologije. SY
asembler.176 obren,
> Nije to čisto moj stav, ako nećeš meni da veruješ pogledaj šta piše > u pratećoj dokumentaciji za yuherc (šta je namena a šta način > rešavanja). YUHERC je program koji je razbio famu o tome kako se na herkulesu ne mogu dobiti soft fontovi. Priseti se recimo naslova u Računarima (Herkules mekog srca). Takođe i na Sezamu u opisu programa stoji 'Soft fontovi na herkulesu' a ne "Yu slova na herkulesu". Sasvim je razumljivo da će se u dokumentaciji program predstaviti uglavnom kao rešenje za yu slova za herkules kartice koje ih nemaju ugrađene, jer će ga potencijalni kupac najviše za to koristi, kao u ostalom i skoro svaki program u vezi sa fontovima kod nas. > žitajući tvoju poruku imao sam osećaj kao da ne pričamo o istom > programu, zbog toga bih ti postavio pitanje: da li si ti uopšte > skinuo i pokrenuo taj program ? Ako nisi dalja diskusija je > nepotrebna. Probao sam ga na VGA u modu 7 sa aktiviranim soft fontovima, što mu dođe isto kao i pokretanje na herkulesu sa yu slovima u epromu. Jedina primedba koju imam ti je poznata - smatram da nije pošteno porediti u brzini program koji omogućava yu slova sa programom koji konvertuje yu slova. Nema problema, smatraš da si u pravu - to isto mislim i ja, ali nema potrebe da dalje vodimo raspravu zbog jedne takve sitnice. Pozdrav, Dragan
asembler.177 mjova,
treba da malo brljam po programu koji traži puno memorije, a turbo debug-er je malo nezgodan jer ne ostavlja dovoljno mesta. postoji li nekakva mogućnost da se startuje tako da imam više slobodne memorije. kad se startuje td zauzima oko 260kb, to je mnogo... možda neki drugi, manji debuger?
asembler.178 ppekovic,
>> treba da malo brljam po programu koji traži puno memorije, >> a turbo debug-er je malo nezgodan jer ne ostavlja dovoljno >> mesta. postoji li nekakva mogućnost da se startuje tako >> da imam više slobodne memorije. kad se startuje td zauzima >> oko 260kb, to je mnogo... TD bi morao da ima opcije za rad sa ext/ems memorijom. Evo sta Microsoft CodeView nudi: /D Use Disk Overlays /E Use Expanded Memory /X Use Extended Memory Paya
asembler.179 prvul,
Ůtreba da malo brljam po programu koji traži puno memorije, a turbo Ůdebug-er je malo nezgodan jer ne ostavlja dovoljno mesta. postoji li Ůnekakva mogućnost da se startuje tako da imam više slobodne memorije. Ůkad se startuje td zauzima oko 260kb, to je mnogo... Ů▄▄ Ako možeš da nađeš još jednu mašinu, pa REMOTE opcija...
asembler.180 bearboy,
˙¨:> TD bi morao da ima opcije za rad sa ext/ems memorijom. Evo sta Microsoft ˙¨:> CodeView nudi: Pa i ima. Ne znam sto ga nije doticni setovao..
asembler.181 bulaja,
**** new file **** \ibmpc\program **** amisl083.zip Alternate Multiplex Interrupt Specification Library Public Domain 1992 Ralf Brown Version 0.83 LastEdit: 5/2/92 Advantages of AMISLIB: totally free adds only 1K to the executable -- TSRs can be less than 1.4K on disk and as little as 128 bytes in memory up to 256 AMIS-compliant TSRs can be resident simultaneously with no interrupt conflicts resultant TSR can load itself into high memory (either MSDOS 5 upper memory blocks or XMS upper memory blocks); the user has control over where TSR is allowed to load: high only, low only, or high first then low; high memory may use either the first or the best UMB; low memory may use either the low end or the high end of conventional memory. TSRs using AMISLIB or other AMIS-compliant code can be unloaded in any order, and can be unloaded by programs other than the TSR's original executable
asembler.182 obren,
Da li smem da oslobodim alociranu memoriju koju zauzima prekopirani environment pošto on programu (TSR) ni zašta ne treba? Recimo: po startu programa nađem u PSP-u na ofsetu 2Ch adresu alociranog segmenta u kome je ta kopija env. i onda ga otkačim funkcijom 49h? Znam da time nastaje rupa u memoriji, ali u nju može taman da stane isti taj environment za sledeći program koji se posle startuje, za šta je DOS dovoljno pametan, pa je ipak ušteda ako se izbaci kad već ne treba programu. Sve ovo sam i uradio i nisam naišao na probleme, ali ipak molim za savet ako neko ima iskustva sa ovim?
asembler.183 gbiocic,
Hi, > Da li smem da oslobodim alociranu memoriju koju zauzima prekopirani > environment pošto on programu (TSR) ni zašta ne treba? Recimo: po startu > programa nađem u PSP-u na ofsetu 2Ch adresu alociranog segmenta u kome Da, ja radim isto i no problem. Uradim to neposredno pre TSR f-je. Rupa koja nastane kao što si primetio nije baš nekorisna, mada štrči. Rešenje je da pretvoriš TSR-a u sisoja (SYS), tako radim odnedavno. Mada, nisam još probao kako u tom slučaju radi Uninstall f-ja? Nešto se mislim (hej, moderatore!) da se izdvoji tema TSR, ima tu vazda problema. Ili da neko potegne grupu MANIACS. pozdrav, gb
asembler.184 mjova,
> Mada, nisam još probao kako u tom slučaju radi Uninstall > f-ja? pa onda možeš napraviti neki program koji će menjati potrebno sa komandne linije? nešto slično koristi HYPER, mada je .exe.
asembler.185 obren,
> Da, ja radim isto i no problem. Uradim to neposredno pre TSR f-je. Ok, hvala puno!
asembler.186 kzoran,
Ljudi, zna li neko nacin da utvrdim radi li racunar sa 80486? Sve do 386 mi je jasno, ali dalje... Pozdrav, Zoran.
asembler.187 dejanr,
Imaš program koji određuje tip procesora (pa i 486) u "Bajtovima lične prirode", mislim u januarskim ili decembarskim "Računarima".
asembler.188 kzoran,
>Imaš program koji određuje tip procesora (pa i 486) u "Bajtovima lične >prirode", mislim u januarskim ili decembarskim "Računarima". Hvala, Dejane, potrazicu! Pozdrav, Zoran.
asembler.189 dzakic,
>> Da li smem da oslobodim alociranu memoriju koju zauzima >> prekopirani environment Mislim da nema nikakvih problema. Odavno u TSR programima brišem taj delić i nikome se nikad nije desilo ništa loše. Nemam stručnije objašnjenje, ali zašto bi uopšte nekom drugom trebala kopija environmenta ako već ne treba tvom programu?
asembler.190 snowwhite,
-> Imaš program koji određuje tip procesora (pa i 486) u -> "Bajtovima lične prirode", mislim u januarskim ili -> decembarskim "Računarima". Nakon probe na jednoj 486-ci (DX) taj program iz BLP mi daje : > This system has a i486 mp and a i487SX co-pr... ?????? Nije baš tako tačan :((( pozdrav, snow
asembler.191 dejanr,
>> Nakon probe na jednoj 486-ci (DX) taj program iz BLP mi daje : >> This system has a i486 mp and a i487SX co-pr... ?????? Hmm... čudno, to je zvaničan program koji Intel u tu svrhu distribuira. Al valjda niko nije savršen ;)
asembler.192 obren,
Jeste li znali da dosova funkcija 56h (rename) ume da "muva" fajlova i manja imena direktorijuma? Mislio sam da 4dos to radi direktno na disku, a on u stvari samo zna da koristi ono što postoji za razliku od komandosa...
asembler.193 dejanr,
>> Jeste li znali da dosova funkcija 56h (rename) ume da "muva" fajlova i >> manja imena direktorijuma? Daaaa... ali i dalje nema odgovora na moje "višegodišnje" pitanje - kako napraviti program koji čita/postavlja datum kreiranja direktorijuma? Jedino do sada predloženo rešenje je da se čitaju direktorijumi direktno sa diska, pa "prčka" po njima, ali je to dosta gadan (a povremeno i opasan ;) posao, prosto neverovatno da to ne može nekom "prečicom".
asembler.194 obren,
> Daaaa... ali i dalje nema odgovora na moje "višegodišnje" pitanje - > kako napraviti program koji čita/postavlja datum kreiranja direktorijuma? Ne znam za postavljanje, ali čitanje može sa findfirst/next + unpacktime.
asembler.195 janko,
>> kako napraviti program koji čita/postavlja datum > kreiranja direktorijuma? > > Ne znam za postavljanje, ali čitanje može sa > findfirst/next + unpacktime. Jes. A postavljanje -- ne može pozivanjem DOS interapta... bar dok se ne pojavi GNU MS DOS :) Kad smo kod DOSa: Sad mi je jedan drug (verovatno budući Sezamovac) ispričao kako Španci i Latinoamerikanci prevode MS DOS sa španskog (jer misle da je to ime za Špance) na Engleski -- MS TWO. Na španskom je DOS -- broj dva. Mali meki dva :) OS/2 je naravno OS DOS :)
asembler.197 dejanr,
>> Jes. A postavljanje -- ne može pozivanjem DOS interapta... bar >> dok se ne pojavi GNU MS DOS :) Verovatno, ali opet... na BIX-u mi je čovek koji je pisao onu čuvenu knjigu "nedokumentovani dos" rekao da misli da postoji i poziv za to. Kada sam pitao koji, rekao je da će pogledati i izgleda još gleda...
asembler.198 dzakic,
[Odgovor SEZAM.3:yu.kod, 9.120 janko] >> Možda nije za ovu konferenciju, ali, kakvi su rezultati >> kada staviš instrukciju za segment overrajd ispred lodsb? Vidiš, uopšte mi nije palo na pamet da se lodsb-u može reći da ne koristi ds. Mislio sam da je obavezan. Rezultat je pri prevođenju datoteke na ramdisku sa 1.81 pao na 1.76, što je oko 3% sporije. Ostavio sam ipak dve procedurice za dve vrste konverzije. Nisu posebno velike, dvadesetak bajtova.
asembler.199 janko,
>>> Možda nije za ovu konferenciju, ali, kakvi su rezultati >>> kada staviš instrukciju za segment overrajd ispred > lodsb? > > Vidiš, uopšte mi nije palo na pamet da se lodsb-u može > reći da ne koristi ds. Mislio sam da je obavezan. :) Zato sam te to i pitao. > Rezultat > je pri prevođenju datoteke na ramdisku sa 1.81 pao na > 1.76, što je oko 3% sporije. Ostavio sam ipak dve > procedurice za dve vrste I da li je to brže od onog sa MOV? To me je zanimalo. Nemam kod sebe one tablice sa instrakšn tajmingom, ali je baš zanimljivo ako je lodsb brži od običnog MOV?
asembler.200 ilotina,
HI! Evo imam jedan mali problemcic, mada cete ga vi iz prve resiti:) Evo programa: DATA SEGMENT ORG 10000 tex DB 'Ovo je test',13,10 DATA ENDS CODE SEGMENT mov ah,09h mov dx,offset tex int 021h CODE ENDS Sta ovde nevalja, stalno mi se comp zaledi:((( Pozdrav Ivan! P.S. A bio sam siguran da ce da proradi iz prve;)
asembler.201 asrdjan,
Početnik sam u asembleru pa će moje pitanje i biti početničko.Zašto mi ML javlja poruke 'no stack segment' i 'program has no starting adress'.Reč je o programu za programiranje zvučnika koji je napisao dzakic,program je prepisan iz Računara 81.
asembler.202 ivans,
Dodaj jedan "dolar" :) na kraj teksta koji hoćeš da štampaš, ovako: tex DB 'Ovo je test$',13,10 i trebalo bi da proradi... Pozdrav, Ivans.
asembler.203 ivans,
Naravno, ja ne bih bio ja kada negde ne bih zabrljao. U stvari, zaboravio sam da ono 13,10 označava CR+LF. Dakle, onaj dolar treba da dođe iza svega toga.
asembler.204 dejanr,
Ako praviš COM datoteku (EXE2BIN) onda *i treba* (tj. i mora) da ne bude stek segmenta jer je čitav program u jednom segmentu.
asembler.205 dragisha,
ű> mov dx,offset tex ű> int 021h mov ah, 4Ch int 21h ű> CODE ENDS Ne koristim ASM, ali bez ovoga sigurno neće raditi:) dragisha
asembler.206 dragisha,
ű> javlja poruke 'no stack segment' i 'program has no starting ű> adress'.Reč je o Prvo je warning i dejanr ti je rekao u čemu je fol, a što se drugog tiče pogledaj da li neki end ima labelu početka kao parametar. Bez toga linker ne zna odakle kreće tvoj program i zbog toga ne može da napravi ispravan EXE Header. dragisha
asembler.207 asrdjan,
Pošto vidim da nisam još dobio rešenje u veyi programa sa kojim sam imao problema,ja ovde dajem taj program,a vi pogledajte šta nije u redu. ML u MASM 6.0 mi prilikom prevođenja javlja poruke 'no stack segment' i 'program has no starting adress'.Ako neko zna šta je u pitanju neka se javi na mail ili u konf. .MODEL small,pascal,os_dos .DATA .CODE ORG 100h push ax push dx push di mov al,0b6h out 43h,al mov dx,0014h mov ax,4f38h div di out 42h,al mov al,ah out 42h,al in al,61h mov ah,al or al,3 out 61h,al mov al,ah out 61h,al pop di pop dx pop ax END ..SOR 2.30 EXEC ZFED8348 CONF JOIN PC.PROG CONF REPLY pascal Kako da u TP 6.0 saznam da li na direktorijumu postoji neki fajl npr blabla.txt i kako da smestim naziv tog fajla u promenljivu.
asembler.208 obren,
> Pošto vidim da nisam još dobio rešenje u veyi programa sa kojim sam > imao problema,ja ovde dajem taj program,a vi pogledajte šta nije u > redu. ML u MASM 6.0 mi prilikom prevođenja javlja poruke 'no stack > segment' i 'program has no starting adress'. žini mi se da je onaj primer bio samo fragment, ili listing koji guta A86 (jedan PD asembler). 'No stack segment' nije greška ako hoćeš da program prebaciš u .COM, a znači da nisi definisao segment u svom programu koji će služiti za potrebe steka. 'No starting address' je zato što nisi stavio posle END labelu od koje počinje program, pa linker ne zna šta da stavi u .EXE heder kao ulaznu tačku. Znači pre prve instrukcije programa, stavi recimo 'begin:' a umesto samo 'END' stavi 'END begin' i trebalo bi da ga lepo prevede, a da li će da radi zavisi od toga ima li grešaka. Pozdrav, Dragan
asembler.209 natila,
Posto sam tek sad poceo da ucim asembler, u vremenima kad se time nisam bavio obrisao sam EXE2BIN a sad mi treba. Jel' bi neka dobra dusa to poslala? A oma i da pitam nesto: Koko se menjaju Sign, Carry i Overflow flegovi? Moja (jedina) knjiga o asembleru to prilicno (za mene) nesshvatljivo objasnjava :( Hvala unapred! Nemeth Attila P.s. Umalo da zaboravim, jel' zna nako neki mali recimo rezidentni kalkulator koji ima mogucnost pretvaranja binarnih brojeva u decimalne ili hexadecimalne i obrnuto?
asembler.210 dzakic,
>> A oma i da pitam nesto: Koko se menjaju Sign, Carry i Overflow >> flegovi? Moja (jedina) knjiga o asembleru to prilicno (za Flegove postavljaju aritmetičke i logičke operacije. Ti recimo sabereš akumulator sa nekim brojem i po završetku operacije se flegovi postave u skladu sa dobijenim rezultatom. Overflow se setuje ako je došlo do prekoračenja, znači akumulator premašio dozvoljenu vrednost i dobijeni rezultat nije tačan. Carry se postavlja u operacijama šiftovanja i rotiranja, Sign kad je rezultat negativan, Zero kad je nula i sl. Kad se naredba završi, flegovi ostanu tako postavljeni, pa sledećom naredbom možeš da ispitaš njihovo stanje i izvršiš odgovarajuće grananje. Uslovni skokovi su recimo JZ (Jump if Zero), JNZ (Jump if Not Zero), JC, JNC, JS, JNS, itd. Ako si mislio na 'ručno' postavljanje, postoje naredbe koje setuju i resetuju carry flag: STC i CLC (SeT i CLear Carry). Druge postavljaš tako što žrtvuješ akumulator pa uradiš recimo xor ax, ax da bu postavio zero dovodeći nulu u akumulator i sličnim egzibicijama. Hope this helps
asembler.211 obren,
Zna li neko kako može da se dođe do definicije aktivnog fonta kod EGA/VGA?
asembler.212 ppekovic,
>> Zna li neko kako može da se dođe do definicije aktivnog >> fonta kod EGA/VGA? Satrtuj program sysid (ima ga ovde na sezamu) i videćeš adrese svih fontova. A ako baš voliš programiranje, e onda pozovi INT 10H sa: AH = 11H AL = 30H BH = font code 00H current Int 1FH contents 01H current Int 43H contents 02H ROM 8x14 (EGA,VGA) 03H ROM 8x8 04H ROM 8x8 (chars 80H-FFH) 05H ROM 9x14 (EGA,VGA) 06H ROM 8x16 (MCGA,VGA) 07H ROM 9x16 (VGA) Vraca: CX = points(bytes per char) DL = rows(char rows on screen-1) ES:BP segment:offset of font table Paya
asembler.213 obren,
> Satrtuj program sysid (ima ga ovde na sezamu) i videćeš adrese svih > fontova. A ako baš voliš programiranje, e onda pozovi INT 10H sa: > > AH = 11H > AL = 30H > BH = font code > 00H current Int 1FH contents > 01H current Int 43H contents > 02H ROM 8x14 (EGA,VGA) > 03H ROM 8x8 > 04H ROM 8x8 (chars 80H-FFH) > 05H ROM 9x14 (EGA,VGA) > 06H ROM 8x16 (MCGA,VGA) > 07H ROM 9x16 (VGA) Ma znam ja za ovo, ali ne treba mi ROM font, već FONT KOJI JE TRENUTNO AKTIVAN, što može biti i ROM ali i neki "user defined". Nigde nisam našao kako doći do njega. Izgleda da nema odgovarajući prekid za to.
asembler.214 natila,
> Flegove postavljaju aritmeticke i logicke operacije. Ti recimŰ > saberes akumulator sa nekim brojem i po zavrsetku operacije se > flegovi postave u skladu sa dobijenim rezultatom. E TO me zanima. Kako se tacno postavljaju. Sta treba da se desi da bi se neki od flegova setovao ili ne? > Overflow se > setuje ako je doslo do prekoracenja, znaci akumulator premasio > dozvoljenu vrednost i dobijeni rezultat nije tacan. Carry se > postavlja u operacijama siftovanja i rotiranja, Sign kad je > rezultat negativan, Zero kad je nula i sl. Cek' da pokusam da objasnim kako sam ja shvatio (ono sto mislim da sam shvatio :) a ti me ispravi. Recimo da se brojevi smestaju na 7 bita a 8. bit je predznak. 1. slucaj: ako saberemo dva relativno mala broja (ciji rezultat moze da stane na 7 bita i ciji rezultat nije 0) onda 8. bit tacno pokazuje predznak rezultata, Carry, Overflow i Zero su 0 dok Sign je 0 ako je rezultat pozitivan a 1 ako je rezultat negativan. 2. slucaj: ako saberemo dva veca broja (ciji rezultat staje na 8 bita) onda 8. bit ne pokazuje tacan predznak rezultata pa ni Sign jer su ta dva bita (8. bit i Sign) uvek isti. U tom slucaju se predznak nalazi u Carry-ju (znaci moze biti i 0 i 1 u zavisnosti dali smo sabrali pozitivne ili negativne brojeve) a i Overflow je setovan posto j█╩šý doslo do prekoracenja sa 8. bita na Carry. I ovde vazi da je Zero 0 akšŻ│ je rezultat razlicit od nule. 3. slucaj: a sta se desava kada saberemo dva veeelika broja ciji rezultat staje samo na svih 8 bita + Carry (jer kolko sam ja shvatio Carry se prakticno ponasa kao 9. bit)? Knjiga kaze jos i nesto poput: Overflow vam je u stvari jednak Carry XOR Sign (ili nesto poput ovoga). Sta mu to dodje? Nemeth Attila P.s. Jos uvek trazim EXE2BIN.COM (ili mu je nastavak EXE, ne secam se vise :)
asembler.215 ppekovic,
>> Ma znam ja za ovo, ali ne treba mi ROM font, već FONT KOJI JE TRENUTNO >> AKTIVAN, što može biti i ROM ali i neki "user defined". Nigde nisam našao >> kako doći do njega. Izgleda da nema odgovarajući prekid za to. A da, zaboravio sam da napišem upravo ono što je tebi trebalo, naime ako staviš u BH vrednost 10H i pozoveš INT 10H sa 30H u AL, dobićeš sledeće: CX - broj zauzetih bajtova po jednom karakteru. DL - broj vrsti za prikazivanje znakova na ekranu ES:BP - segment i offset adresa karakter tabele aktivnog fonta. Paya
asembler.216 ppekovic,
>> P.s. Jos uvek trazim EXE2BIN.COM (ili mu je nastavak EXE, ne >> secam se vise :) EXE2BIN je deo komercijalnog paketa pa mu stoga i nije mesto u konferenciji. Paya
asembler.217 obren,
> A da, zaboravio sam da napišem upravo ono što je tebi trebalo, > naime ako staviš u BH vrednost 10H i pozoveš INT 10H sa 30H u AL, > dobićeš sledeće: > > CX - broj zauzetih bajtova po jednom karakteru. > DL - broj vrsti za prikazivanje znakova na ekranu > ES:BP - segment i offset adresa karakter tabele aktivnog > fonta. Kod mene to ne radi - vrati mi pointer na običan ROM 8x16! :((( Probao sam i druge vrednosti u BH, ali ne pali - ili ROM font ili đubre. Ne znam da li je to do BIOS-a ili do grafičke karte? Morao sam ipak da zaposlim i sourcer nad jednim (najkraćim ;)) Nortonovim programom. Koliko sam video, INT 10h se koristi za menjanje fonta (kod onog iscrtavanja strelice u text modu), ali nemam pojma kako dođu do bit-mape aktivnog fonta? Verovatno direktnim pristupom kartici? Ne verujem da drajver za miša zna one štosove sa strelicom u tekst modu. Pogledaću još malo, možda i provalim... P.S. Hvala na trudu u svakom slučaju!
asembler.218 dzakic,
>> Recimo da se brojevi smestaju na 7 bita a 8. bit je predznak. Ne možemo to da pretpostavimo jer se zna kako se predstavljaju negativni brojevi. U jednom bajtu (dakle 8 bita) može se nalaziti nepredznačan ili predznačan (signed) broj. Nepredznačni su ti jasni, od 0 do 255. Ako bajt tretiramo kao označen broj to se radi u tzv. potpunom komplementu dvojke. Na taj način je sa FF hex označen broj -1, sa FE broj -2 itd... To znači da pozitivnih brojeva ima 127, sa nulom 128. A da negativnih ima tačno 128. Pazi tabelu: bajt vrednost 00000000 0 00000001 1 00000010 2 ... 01111110 126 01111111 127 10000000 -128 10000001 -127 10000010 -126 ... 11111110 -2 11111111 -1 Broj negiraš tako što sve bitove 'invertuješ' i rezultat uvećaš za jedan. Iz ovoga se takođe vidi da se znak može pročitati iz sedmog bita (najviši, broji se od 0). Obrati pažnju da ćeš sabiranjem -5 i 10 dobiti tačan rezultat, 5. Dakle, sabiraš 11111011 (-5) + 00001010 (10) C=1 = 00000101 ( 5) Keri jeste 1, ali je prekoračenje 0 jer smo dobili ispravan rezultat. Pazi kako ja pamtim kad je došlo do prekoračenja: - Kad sabiram pozitivan i negativan broj, NE MOčE da dođe do prekoračenja, overflow je uvek 0 - Kad sabiram pozitivan i pozitivan, ili negativan i negativan, MOčE doći do prekoračenja i rezultat mora biti istog znaka kao i zabirci. Ako nije, nastalo je prekoračenje. Ovo 'sabiram' mi ostalo sa ispita, to inače radi procesor upravo onim 'carry xor sign'. Sad, ako su tebi brojevi koje sabiraš nepredznačni, dakle sve pozitivni, pa ih uzimaš u opsegu 0..255, onda ti je prekoračenje zapravo carry i samo te on zanima. Overflow gledaš ako su brojevi predznačni. Postoje i naredbe ADC i SBC koje sabiraju dva registra zajedno sa kerijem. Recimo, sabiraš dva 32-bitna broja, DX:AX i CX:BX. Kažeš: ADD AX,BX ADC DX,CX i u DX:AX imaš rezultat. >> 3. slucaj: a sta se desava kada saberemo dva veeelika broja ciji >> rezultat staje samo na svih 8 bita + Carry (jer kolko sam ja >> shvatio Carry se prakticno ponasa kao 9. bit)? Tačno. Ideš redom, sabiraš bit po bit, i ono što pretekne na kraju (što si 'upamtio'), to je keri. Eto, nadam se da je jasnije. Nisam tu narednih par dana, ako još nešto nije jasno, pojasnićemo kad se vratim. Pozdrav, Zak
asembler.219 natila,
Hvala. Mislim da sam shvatio. Jel smem da te gnjavim ako mi jos nesto zatreba? Nemeth Attila
asembler.220 ddjj,
==> Inače OBJ2ASM, uradi stvar, uglavnom ko što treba. ==> Pretvori .obj u .asm. žini se da OBJ2ASM ima bug. Lepo se od OBJ dobije ASM ali ... U asemblerskom programu je sve u redu osim sto kod svih CALL instrukcija u kojima se pozivaju drugi OBJ moduli (iz iste biblioteke) uvek stoji adresa modula koji se disasemblira (ili možda bolje objtoasseblira) kao da se poziva rekurzivno, a nema veze od rekurzije - proverio Turbo Disassemblerom. Dali je možda problem u tome što sam obj-ecte dobio tlibom vadeći ih jedan po jedan iz biblioteke (LIB za Turbo C 2.0).
asembler.221 mivel,
Ispravka: instrukcije su ADC (Add With Carry) i SBB (Subtract With Borrow). SBC je ispravno na prastarom Z80 (oMKvovo mi "bode oci", jer i sam cesto po inerciji kodiram pogresno SBC!).
asembler.222 dzakic,
> Jel smem da te gnjavim ako mi jos nesto zatreba? Ti iznesi problem, naći će se već neko ko će da odgovori. Ne mogu ti obećati da ću uvek imati vremena da se ovako raspišem, ali sam u principu raspoložen da pomognem.
asembler.223 dzakic,
> Ispravka: instrukcije su ADC (Add With Carry) i SBB (Subtract Naravno, ostalo od Z80. :)
asembler.224 mdimitrijevic,
Hi! Da li bi neko mogao da mi napise brzu move naredbu. Koja premesta jedan blok memorije na drugo mesto. Trebalo bi da mogu da zadam OFF:SEG pocetka i OFF:SEG kraja i duzinu. Ako neko ima nesto slicno ili ako moze da napise bio bih veoma zahvalan. Pozdrav, Marjan Dimitrijevic
asembler.225 drpr,
Ajd pošto mi niko u pascal topiku nije odgovorio ja reko da pitam asembleraše :)) Elem da li postoji još neki interapt se time koji se pojavljuje u nekom intervalu vremena.Hoću pomoću njega da merimi neko interno vreme koje mi je potrebno u programu . Hvala u napred cope
asembler.226 natila,
Hvala. Mozes li mi preporuciti neku dobru knjigu na ovu temu (ali koja moze da se nabavi i kod nas)? Nemeth Attila
asembler.227 dzakic,
>> Da li bi neko mogao da mi napise brzu move naredbu. Najbrži način da se premesti blok bajtova je: MOV DS,source segment MOV SI,source offset MOV ES,destination segment MOV DI,destination offset MOV CX,len REP MOVSB Ako ti treba neki inter segmentarni ;) move, to bi se izvelo nekakvim žongliranjem sa pomenutom kombinacijom naredbi. Ako nisi zadovoljan brzinom, onda CX podeli sa dva, pa koristi MOVSW koja kopira cele reči, ali tada dužina ne može biti neparan broj.
asembler.228 dzakic,
>> Elem da li postoji još neki interapt se time koji se pojavljuje >> u nekom intervalu vremena.Hoću pomoću njega da merimi neko >> interno vreme koje mi je potrebno u programu . Ako sam dobro razumeo pitanje, program treba da meri vreme, samo mu je 1/18.2 sec suviše 'grubo'? Postoji jedan koji se izvršava oko 1000 puta u sekundi. Ne bih znao sada tačno da ti kažem, al ako ti treba da pitamo vasu, znam da je koristio u VCS-u (za ono brže osvežavanje ekrana). Mada, to sigurno piše u helppc-u.
asembler.229 mivel,
Za svaki slucaj, dodaj jedno "CLD" (ili STD, za smer "unazad") pre instrukcije MOVSB/MOVSB. Stanje Direction Flaga obicno je "navise", ali ne treba nagadjati... Milan
asembler.230 mdimitrijevic,
Hi! HVALA MNOGO za move naredbu u asembleru. Pozdrav, Marjan Dimitrijevic
asembler.231 spantic,
> Mozes li mi preporuciti neku dobru knjigu na ovu temu (ali > koja moze da se nabavi i kod nas)? Imam ja predlog. "Naučna knjiga" je izdala u tri dela knjigu M. Stojčevskog "Savremeni 16-bitni procesori". Knjiga obuhvata teoretsku potku i detaljno prikazuje INTEL 80X86, MOTOROLA MC 680XX kao i nešto o ZILOGU Z 8000.
asembler.232 mivel,
Dopuna (opsirnih) odgovora dzakica: a) za setovanje CF,PF,AF,ZF,SF mozes da koristis instrukciju SAHF: MOV AH,<flag_mask> SAHF b) za setovanje celog fleg registra (16-bitnog) simuliraj povratak iz interrupt-a: MOV AX,<flag_mask> PUSH AX PUSH CS LEA AX,FLAGS_ARE_SET PUSH AX IRET FLAGS_ARE_SET: ;ovde imas sadrzaj flag registra postavljen ; u prvoj instrukciji u AX registru Pazi, posle IRET mozes da budes negde u "hipersvemiru!!!" Strukturu (raspored bitova) flag-registra naci ces u NG ili helppc Puno srece! Milan
asembler.233 amilanov,
> Dali je možda problem u tome što sam > obj-ecte dobio tlibom vadeći ih jedan po jedan iz > biblioteke (LIB za Turbo C 2.0). Ne znam. Iskreno, nisam se mnogo bavio OBJ2ASM-om, da bih mogao nešto da 100% tvrdim. Ne bi bilo loše da neko ko koristi recimo MSC, da proba da "secira" neki MSC LIB na isti način, pa da vidimo rezultate. ( možda si i sam probao to ). Moguće je da nešto ne znamo oko OBJ2ASM, pa bilo bi lepo da ako ga neko intenzivnije koristi, i zna nešto detaljnije o njemu, da kaže par reći o njemu. Pozdrav, Milanov
asembler.234 drpr,
-> Ako sam dobro razumeo pitanje, program treba da -> meri vreme, samo mu je 1/18.2 sec suviše -> 'grubo'? Nije mi grubo nego neću da se igram sa sistemskim vremenom padne mašine i vreme se poremeti :(( -> znam da je koristio u VCS-u (za ono brže -> osvežavanje ekrana). Mada, to sigurno piše u -> helppc-u. Ne znam ja šta ti je to ali bi mi adresa ili već kako se zove interapta trebala. U napred hvala. cope Ps Ovde sam se javio jer sam znao da zakče ima odgovor :)
asembler.235 dzakic,
> Za svaki slucaj, dodaj jedno "CLD" (ili STD, za smer "unazad") > pre instrukcije MOVSB/MOVSB. Stanje Direction Flaga obicno je > "navise", ali ne treba nagadjati... Mislim da sam negde pročitao da DOS garantuje da će 'Direction flag' na početku izvršavanja programa biti resetovan (smer unapred). Ja se u svojim programima na to oslanjam, te ga ne resetujem dodatno ako ga već nigde nisam dirao. U procedurama koje se ubacuju u neke više programske jezike sigurno da ima logike staviti za svaki slučaj jedno CLD...
asembler.237 dzakic,
> Nije mi grubo nego neću da se igram sa sistemskim vremenom > padne mašine i vreme se poremeti :(( Nema razloga da se sistemsko vreme poremeti. Int 8 pri svakom 'otkucaju' poveća 'longint' brojač na adresi 0040:006C za jedan. Ti ga možeš iz svog programa pročitati, pa po završetku posla kome meriš vreme ponovo. Izračunaš razliku i eto ti proteklo vreme u 18.2-im delovima sekunde. Ako tu vrednost i promeniš, dos i drugi programi će privremeno imati pogrešnu informaciju o datumu i vremenu, ali će se po resetovanju sistema sve vratiti na normalu jer se za vreme butovanja pravo vreme čita iz CMOS-a i upisuje u ove promenljive. To recimo koristi zbtet za vreme padanja figurice. Ako ti je problem u paskalu, evo ti funkcije koja vraća vreme u osamnaestinkama koje je proteklo od uključenja računara. Funkcija je iz one zz-ove zbirke rutina za rad sa modemom: var day_countl:word; day_counth:word; old_countl:word; old_counth:word; function timer_get:longint; assembler; asm push es mov ax,$40 mov es,ax cli mov ax,es:[$6c] mov dx,es:[$6e] sti cmp old_counth, dx jb @calc cmp old_countl, ax jbe @calc add day_countl,$B0 adc day_counth,$18 @calc: mov old_counth,dx mov old_countl,ax add ax,day_countl adc dx,day_counth pop es end; Na početak programa stavi i jedno: day_countl:=0; day_counth:=0; old_countl:=0; old_counth:=0; > Ne znam ja šta ti je to ali bi mi adresa ili već kako se zove > interapta trebala. Kad se malo bolje prisetim :) Vasa je čini mi se programirao interapt kontroler da mu poveća frekvenciju generisanja interapta 8 pa je onda staru rutinu pozivao svaki n-ti put.
asembler.238 duduk,
> -> znam da je koristio u VCS-u (za ono brže > -> osvežavanje ekrana). Mada, to sigurno piše u > -> helppc-u. > Ne znam ja šta ti je to ali bi mi adresa ili već kako se > zove interapta trebala. > U napred hvala. Ja baš pre neki dan pitao Vasu. Int je 70h i normalno se ne generiše, dakle potrebno ga je aktivirati. U datoteci je asm sors enable70 i disable70 procedura koje ga (de)aktiviraju.
asembler.239 duduk,
Zaboravih ... 70.asm
asembler.240 nnedovic,
Hi, Zna li ko postoji li "nešto" (verovatno neki port) što sadrži liniju koju elektronski mlaz u katodnoj cevi trenutno ispisuje na ekran (raster)? dzakic i vasic su u BLP pominjali nešto o portu $3BA, ali on u nekim svojim bitovima drži samo informaciju da li je elektronski mlaz stigao do kraja linije, do kraja ekrana isl. Nikola P.S. I vreme je već jednom da neko baci na SEZAM spisak svih portova sa njihovim značenjem!
asembler.241 drpr,
-> Ja baš pre neki dan pitao Vasu. Int je -> 70h i normalno se ne generiše, dakle potrebno -> ga je aktivirati. U datoteci je asm sors -> enable70 i disable70 procedura koje ga -> (de)aktiviraju. -> Hvala ti puno .Ali postoji jedan problem ja ne radim u asembleru već u pascalu i to TP5.5 koji nema mogućnost da pišem asm sors aj jel može neko da bude dobar pa da mi to "prevede" na tp cope
asembler.242 nnedovic,
>> Ja baš pre neki dan pitao Vasu. Int je 70h i normalno se ne >> generiše, dakle potrebno ga je aktivirati. U datoteci je asm >> sors enable70 i disable70 procedura koje ga (de)aktiviraju. Stani, a šta radi taj interapt? Jel' to taj što se poziva 1000 puta u sekundi? Kod mene se poziva mnogo ređe (negde oko 0 puta u sekundi :)))), čak i posle aktiviranja tim enable70-om. Inače, koliko ja znam, to je hardverski IRQ8 (sat realnog vremena), i bilo bi logično da se poziva 100 puta u sekundi (svake stotinke), ali neće... Njemu sličan bi trebalo da bude int 71h (IRQ9-video), koji generiše video-adapter. I on bi trebalo da se generiše da li 60 puta u sekundi, ali posle ovoga ne znam šta da mislim...
asembler.243 dzakic,
> puta u sekundi? Kod mene se poziva mnogo ređe (negde oko 0 puta > u sekundi :)))), čak i posle aktiviranja tim enable70-om. Vasa reče da se iz za sada nepoznatih razloga pomenuta procedura Enable70 mora pozvati 2 (dva!) puta da bi se interapt zaista aktivirao. Ne upamtih kolka mu je frekvencija, valjda piše u helppc-u, nikako da pogledam :)
asembler.244 mstanic,
pitanje Mislim da je već bilo, kako se može neki kod ubaciti u keyboard buffer, kao da je pritisnut odgovarajući taster? Mislim da je bilo, ali stradao mi text u soru a nisam baš raspoložen da sve ponovo skidam.
asembler.245 mstanic,
pitanje (možda sam već preterao sa pitanjima?) U svoj dokumantaciji koju ima za mouse i trackball (logitech, genius i chicony) plus u helppc i dosref nisam našao kompletno objašnjenje uz funkcije 12, 20 i 24. Radi se o pozivu korisničkih rutina koje se aktiviraju pri nekom događaju (pritisak na mouse taster, pomeranje, pritisak Alt, Ctrl (kod chicony-ja) ili kombinacije)). Ja sam probao i on zaista aktivira te rutine ali prilikom povratka mi blokira računar. Najdetaljnije objašnjenje sam našao u dokumentaciji uz chicony keyboard with trackball i evo šta piše: NOTE : ■ Before ending your program, you must set the interrupt call mask to 0. ■ If the call mask and subroutine remain defined when the program is no longer running, the subroutine will still be executed if one of the conditions defined by the mask call occurs. Ako neko zna nešto neka napiše.
asembler.246 bearboy,
˙¨:> Hvala ti puno .Ali postoji jedan problem ja ne radim u ˙¨:> asembleru već u pascalu i to TP5.5 koji nema mogućnost da pišem ˙¨:> asm sors aj jel može neko da bude dobar pa da mi to "prevede" ˙¨:> na tp Uzmeš lepo masm, recimo, asembliraš u .OBJ i gotovo...
asembler.247 obren,
> U svoj dokumantaciji koju ima za mouse i trackball > (logitech, genius i chicony) plus u helppc i dosref nisam > našao kompletno objašnjenje uz funkcije 12, 20 i 24. > Radi se o pozivu korisničkih rutina koje se aktiviraju pri > nekom događaju (pritisak na mouse taster, pomeranje, Ne znam za te funkcije 20 i 24 ali 12 (iliti 1Ch) sam koristio u jednom programu u C-u i mogu da ti kažem svoja iskustva: - Funkcija mora da se zavšava sa retf a ne sa iret, pa ako radiš u nekom višem programskom jeziku vrlo lako ćeš naleteti na probleme. Ako funkciju deklarišeš kao: void far mouse_event() umesto void interrupt mouse_event() onda imaš retf umesto iret na kraju, ali gubiš sve reference sa podacima unutar te svoje funkcije jer kompajler ne inicijalizuje DS na početku jer ne zna da nju ne poziva program već drajver za miša. Ako staviš onu drugu varijantu (sa interrupt) onda imaš svu potrebnu inicijalizaciju za pravilan rad ali imaš iret umesto retf. Ja sam ostavio interrupt, preveo program na .ASM i ručno doterao šta ne valja. Drugo na šta se treba obratiti pažnja je da se OBAVEZNO na kraju programa pozove ista funkcija sa nulom kao maskom za pozive, što si koliko vidim i sam našao. Najlakše je da se to reši sa atexit() ili preko nekog destruktora ako radiš u cpp-u. E sad ne znam treba li ti ono osnovno, tj. značenje pojedinih bitova pri psosleđivanju maske drajveru, sadržaj registara pri pozivu i sl. što se može naći i u dokumentaciji za pacova (bar kod mene). Kaži ako treba, da ne kucam ako to već imaš.
asembler.248 mivel,
Pri postavljanju interrupt subrutine odredjuju se dogadjaju pri kojim ce mouse driver pozvati ovu subrutinu, kao i adresa subrutine: mov ax,12 mov cx,condition_mask les dx,subroutine_address int 33 Po zavrsetku programa, kod ove subrutine ostaje u memoriji i biva pozivan pri svakoj od predvidjenih promena misa (pomeranje, pritisak dugmeta, otpustanje dugmeta). Jasno, ako se ucita neki drugi program, kod rutine ce biti prekriven novim sadrzajem i svaki poziv od strane mouse drivera daje nepredvidljive rezultate. Zato, pre zavrsetka programa treba deaktivirati subrutinu: mov ax,12 xor cx,cx int 33h Funkcija 24 se ponasa isto kao funkcija 12, a predstavlja alternativnu subrutinu. Koju ce od ove dve rutine mouse driver da poziva zavisi od toga koja je aktivna - njihova aktivnos se menja funkcijom 20 (interrupta 33, svakako) Tako sam bar ja shvatio, i na taj nacin mi svi programi dobro rade (i dobro ne rade po zavrsetku :))) ) Pozdrav Milan
asembler.249 ddjula,
U nekoj od poruka bilo je reči o interaptu 70h, pa sam se zainteresovao i eksperimentisao malo. Evo šta sam otkrio: interapt izaziva real-time clock i to 1024 puta u sekundi. Da bi se koristio, mora dozvoliti clock-u da zahteva interapt i mora se dozvoliti da procesor primeti taj interapt (programiranjem interapt kontrolera). To sve radi ENABLE70, program koji je prikačen za neku od prethodnih poruka. Tako je to u teoriji... U praksi, postoji BIOS funkcija WAIT EVENT koja koristi taj INT 70h. Ta funkcija programira i gore navedene registre. Tako kad ja uključim INT 70h, BIOS ga isključi. Međutim kad se dva- put pozove ENABLE70, BIOS ga ne isključi (pojma nemam zbog čega), već setuje tajmer da broji do maksimalne vrednosti, a to je oko 68 min. Posle toga ga opet isključi! Jedno od rešenja je da se ne programiraju čipovi direktno, već da to uradi BIOS. Treba mu zadati da broji do maksimalne vrednosti - FFFFFFFFh Šsec. Te dve reči BIOS čuva na adresi LO 0:49Ch i HI 0:49Eh. Treba samo obez- bediti da se u jednom u sat vremena upiše npr. FFFFh u 0:49Eh. Tako će tajmer stalno brojati. Isključivanje INT 70h se može uraditi isključivanjem tajmera, opet preko BIOS-a. Napomena: ovaj interapt značajno usporava sistem (kod mene oko 12% po PCT-u i to u slučaju da se na njega kači samo mali test program)! Ako neko ima bolju ideju u vezi ovog ili nađe neki drugi interapt obavezno neka napiše... Pitanja: čemu služi SEQUENCER na VGA karti i kako se programira i šta je to PEL tj. PEL mask? Kad se menja taj PEL, menjaju se boje (izgleda nešto radi sa paletom), međutim ne shvatam po kom principu se menjaju boje... Pozdrav, Đula ────────────────────────────────────────────────────────────────────────── INT 15h, 83h (131) Event Wait Modifies a byte in the user's memory after a specified time interval. Control is transferred to the caller immediately after this service is called. On entry: AH 83h AL Subservice 00h - Set interval 01h - Cancel set interval ES:BX - Pointer to byte that will be posted CX:DX - Microseconds until posting (long integer) Returns: Carry Set if service not supported, else cleared ────────────────────────────────────────────────────────────────────────── After this service is called, control is returned immediately to the caller. This service does not work by delaying and then returning control to the user, but returns control immediately; the user must periodically look at the byte specified (pointed to by ES:BX) to determine when the interval has elapsed. Notes: The PC, PCjr, and the XT dated 11/08/82 do not support this service. The AT dated 1/10/84 is only able to set the interval; thus the value in AL is not used. The byte is posted by setting the high bit (bit 7). To test the end of the interval, make sure the high bit of the byte is clear before calling Subservice 0 (Set Interval). The real-time clock is used to count the number of microseconds. The granularity of the time is 976 microseconds. CX is the high-order word of the count. For example, if CX is 98h and DX is 9680h, then a 10-second delay would be specified.
asembler.250 dzakic,
Evo šta Geniusov GMOUSE.DOC Kaže o funkcijama 12 i 20: Function 12: Define Event Handler Entry Location Function 12 defines the address entry location of an event handler routine which is called when a certain event (defined by the call mask) occurs. The program is temporarily interrupted by the mouse driver. At the end of the event handler routine the program continues at the point it was interrupted. The call mask is a single integer value defining the conditions which will cause an interrupt. A specific condition corresponds to a bit in the call mask: Mask Bit Condition -------------------------------------------------- 0 cursor location changed 1 left button pressed 2 left button released 3 right button pressed 4 right button released 5 middle button pressed 6 middle button released 7 - 15 not used In order to call the event handler routine, set the mask bit to 1 and put the mask in at CX (G3%). To disable, set the mask bit to 0 and put the mask in at CX (G3%). Always be sure to set the call mask to 0 before the program finishes. (Leave the system in the same state upon exit as if was upon entrance.) 8086 Register Input: AX = 12 CX = call mask ES:DX = pointer to event handler routine Return: none BASIC Input: G1% = 12 G3% = call mask G4% = pointer to event handler routine Return: none Example: 110 ' Active BUTTDOWN Event Handler Routine, When One or More Buttons Pressed 120 G1% = 12 130 G3% = &H002A : G4% = BUTTDOWN% 140 CALL GMOUSE ( G1%, G2%, G3%, G4% ) Function 20: Swap Event Handler Entry Location Function 20 sets new values for the call mask and event handler routine address for mouse hardware interrupts and return the values that were previously specified. For detail information to reference Function 12 description. 8086 Register Input: AX = 20 CX = new call mask ES:DX = new pointer to event handler routine Return: CX = old call mask ES:DX = old pointer to event handler routine BASIC Input: G1% = 20 G3% = call mask G4% = pointer to event handler routine Return: G3% = old call mask G4% = old pointer to event handler routine Example: 100 ' Swap Event Handler Entry Location 110 ' Active BUTTDOWN Event Handler Routine, When One or More Buttons Pressed 120 G1% = 20 130 G3% = &H002A : G4% = BUTTDOWN% 140 CALL MOUSE ( G1%, G2%, G3%, G4% )
asembler.251 dzakic,
Evo šta Vasa ima da kaše o int 70h (pošto ga već njegov VCS koristi, a iz VCS-a su izvučene i procedure ENABLE70 i DISABLE70 - baš lepo od duduka što je to napomenuo): ------------------------------ > Tako kad ja uključim INT 70h, BIOS ga isključi. Međutim kad se dva- >put pozove ENABLE70, BIOS ga ne isključi (pojma nemam zbog čega), već setuje >tajmer da broji do maksimalne vrednosti, a to je oko 68 min. Posle toga ga >opet isključi! E, tako nešto sam i ja pitao pre neki mesec a zahvaljujući tvojoj poruci konačno sam našao i odgovor: BIOSov int 70h handler po svemu sudeći radi nešto kao ovo: sub word ptr ds:[49Ch],976 ; 976 = 1e6/1024 jnc loc1 dec word ptr ds:[49Eh] jc iskljuci_int_70h loc1: .... Inicijalno na 0:49Ch stoji 00000000h. Znači, prvi put kada se dogodi int 70h, biće odmah i isključen! Kada se drugi put pozove ENABLE70 tamo će se nalaziti FFFFxxxxh i u sledećih sat vremena sve izgleda OK. Rešenje prvog dela problema: (dvostruko pozivanje ENABLE70) Pre pozivanja ENABLE70 staviti 0FFFFh u 0:49Eh. Rešenje drugog dela problema (isključenje posle 68 min) je ono što si i sam rekao - s vremena na vreme u 0:49Eh staviti 0FFFFh. >Isključivanje INT 70h se može uraditi isključivanjem tajmera, >opet preko BIOS-a. Za probu sam ubacio u VCS rad sa int 70h preko biosa (jeste, radi, čak je i par bajtova kraći), ali me brine što i NG i HelpPC pominju neke rane verzije AT BIOSa koje nemaju ovu funkciju ili bar ne kompletnu - tj. bez mogućnosti isključivanja. Zato mislim da ću radije i ubuduće sam obavljati taj posao. Nemoj samo da mi neko sad kaže: "Ma ko još drži te matore krntije?" Moj bios je iz '87 (a računar kupljen prošle godine - hvala Jugodati) pa mi uopšte nije teško da zamislim i neki iz '84. V && !Z
asembler.253 mstanic,
>>> Radi se o pozivu korisničkih rutina koje se aktiviraju >>> pri nekom događaju (pritisak na mouse taster, pomeranje, Hvala svima, mada sam sve to znao je imam dokuntaciju za nekoliko miševa i trekbal(ova)a. Posle sam otkriu u čemu je štos, naime nije hteo da se vrati iz tih funkcija a ja sam ga u tome zeznuo (postavljao sa AX na nulu) Evo kako to izgleda: event_hand proc far sti push ax ovde sledi program po želji ali meni je trebao ovaj deo pop ax ret event_hand endp Još jednom hvala svima na uloženom vremenu i naporu.
asembler.254 dejanr,
Da li je neko uspeo da napiše program čija bi ekstenzija bila .EXE i koji bi se normalno izvršavao (recimo, kao rezidentni) ali koji bi mogao da se stavi i u CONFIG.SYS kao DEVICE=PERA.EXE? Ovo je moguće, recimo SMARTDRV je takav. Zna li neko kako?
asembler.255 d.petrovic,
A, jel može neko da predpostavi zašto sa VCS-om (vasićeva simulacija cga za herc) program (igra) koja na 386/33/svga radi normalno kod mene na 286/16/herc+vcs radi 3-5 puta brže ?
asembler.256 janko,
> Da li je neko uspeo da napiše program čija bi ekstenzija > bila .EXE i koji bi se normalno izvršavao (recimo, kao > rezidentni) ali koji bi mogao da se stavi i u CONFIG.SYS > kao DEVICE=PERA.EXE? Ovo je moguće, recimo SMARTDRV je > takav. Zna li neko kako? Za početak, pogledaju se reference koje definišu .EXE i .SYS fajlove, i algoritme koji se sprovode nad njima pri unosu u memoriju. ;)
asembler.257 skoprivica,
-> ali me brine sto i NG i HelpPC pominju neke rane verzije AT BIOSa -> koje nemaju ovu funkciju ili bar ne kompletnu Evo ja imam bios iz '85 god, pa napisi neki programcic i posalji mi i kazi sta treba da se desi, a ja cu ti reci sta se desilo... Aje... CTEBO.
asembler.258 obren,
> Da li je neko uspeo da napiše program čija bi ekstenzija bila .EXE > i koji bi se normalno izvršavao (recimo, kao rezidentni) ali koji > bi mogao da se stavi i u CONFIG.SYS kao DEVICE=PERA.EXE? Ovo je > moguće, recimo SMARTDRV je takav. Zna li neko kako? To su *device driveri* sa ekstenzijom .EXE, ima to u MS DOS Programmer's Reference, i nije nešto posebno teže od pravljenja običnih .SYS drajvera. Problem je (bar tako piše u dokumentaciji) što ovakvi drajveri ne rade sa IBM DOS-om jer je kod njega .EXE loader smešten u COMMAND.COM koji nije aktivan dok se interpretira config.sys. Doduše čuo sam priče da se i neki obični .EXE programi mogu startovati iz config.sys-a ali ja još ne nađoh takav... :)
asembler.259 mivel,
Bez problema! U prilogu je primer sa kratkim opisom Ka Milan odgovor.zip
asembler.260 mstanic,
>> Da li je neko uspeo da napiše program čija bi ekstenzija >> bila .EXE i koji bi se normalno izvršavao (recimo, kao >> rezidentni) ali koji bi mogao da se stavi i u CONFIG.SYS >> kao DEVICE=PERA.EXE? Ovo je moguće, recimo SMARTDRV je >> takav. Zna li neko kako? Ne znam kako .EXE ali imam u nekom časopisu (Nemačkom) za .COM verziju, zapravo kako se .COM pretvara u .SYS pa ako znaš Nemački mogu da ga skeniram i pošaljem.
asembler.261 nnedovic,
Hm, igrao sam se sad malo sa tim Vasinim interaptom 70h i zakačio za njegov vektor rutinu koja samo pushuje i popuje registre i proverava da li je već u toku opsluživanje tog interapta. Kad sam startovao programčić, sistem je poludeo (što bi automehaničari rekli, čini mi se da je crko komandni procesor). Naime, nije se ukočio nego je na (skoro) svaku komandu (pa čak i na format c: ) odgovarao sa "" a na neke komande imao začuđujuće originalno :) ponašanje. Jeste interesantno, ali ga treba i shvatiti. Dakle?
asembler.262 ddjj,
==> Inače OBJ2ASM, uradi stvar, uglavnom ko što treba. ==> Pretvori .obj u .asm. žini se da OBJ2ASM ima bug. Lepo se od OBJ dobije ASM ali ... U asemblerskom programu je sve u redu osim sto kod svih CALL instrukcija u kojima se pozivaju drugi OBJ moduli (iz iste biblioteke) uvek stoji adresa modula koji se disasemblira (ili možda bolje objtoasseblira) kao da se poziva rekurzivno, a nema veze od rekurzije - proverio Turbo Disassemblerom. Dali je možda problem u tome što sam obj-ecte dobio tlibom vadeći ih jedan po jedan iz biblioteke (LIB za Turbo C 2.0).
asembler.263 ddjula,
> iz VCS-a su izvučene i procedure ENABLE70 i DISABLE70 - baš lepo od > duduka što je to napomenuo): ^^^^^^ Nije mi baš jasno šta sam ja to napomenuo i što sam duduk, ali ja sam te procedure uzeo sa SEZAM-a, a sa tim VCS-om nemam nikakve veze - ne znam tačno ni čemu to služi. Pozdrav, Đula
asembler.264 ddjula,
> Evo ja imam bios iz '85 god, pa napisi neki programcic i posalji > mi i kazi sta treba da se desi, a ja cu ti reci sta se desilo... Evo, šaljem ti mali test programčić, pokreneš ga sa test70, a posle INT 70 možeš gasiti i paliti sa 70off i 70on. Ako imaš HERCULES, trebalo bi da se na- sred ekrana pojavi "" (smajli). Ako imaš VGA, biće isto, samo će da menja bo- ju 1024 puta u sekundi. Pogledaj i koliko ti se usporio sistem... Pozdrav, Đula int70.arj
asembler.265 mjova,
> ju 1024 puta u sekundi. Pogledaj i koliko ti se usporio > sistem... nisam probao, ali ako radi neki posao koji zahteva malo vremena (ali samo malo) osetno je usporenje, ipak se izvršava suviše često.
asembler.266 mjova,
jednom prlikom neko je ostavio breakl ovde, ali taj nije baš bio transparentan kako treba jer je 'otpuštanje' ctrl-break-a gušio. malo sam ja to prepravio, pa sad evo toga. mislim da sad ctrl-break radi isto kao i bez breakl-a, ali to nikad nije ni radilo dobro ;). sad je gotiva samo na ctrl-alt-4. toliko. breakl.arj
asembler.267 pstojanovic,
Dobio sam u firmi neku Panasonikovu tel. centralu, koja ima tu mogucnost da salje na serijski stampac preko RS232 odredjene tekstualne statisticke zapise. E sad, posto imam visak paralelnih stampaca, prva solucija je bila da se ne kupuje serijski vec da se proba nabaviti kartica za prebacivanje sa serijske veze na paralelnu. Medjutim, takvu karticu nisam uspeo nabaviti, pa mi je palo na pamet da preko jednog racunara preuzimam signale sa centrale (simuliram stampac) i stavljam u datoteku koja bi se mogla kasnije obradjivati. Sta mislite, da li je to moguce ?
asembler.268 dejanr,
>> Bez problema! U prilogu je primer sa kratkim opisom Pre svega, puno hvala na primeru. No postoji mali problem - .EXE fajl se zaista može instalirati sa DEVICE = xxx.EXE iz CONFIG.SYS-a, ali se kao samostalan program ne može startovati iako mu je ekstenzija EXE. Bolje reći, može se startovati ali se po startovanju računar zaglupi.
asembler.269 dzakic,
> A, jel može neko da predpostavi zašto sa VCS-om (vasićeva simulacija cga > za herc) program (igra) koja na 386/33/svga radi normalno kod mene na > 286/16/herc+vcs radi 3-5 puta brže ? Može. :) Može čak i da objasni, samo ako si raspoložen da slušaš (čitaš) o različitim adresama CGA i herc video portova, o presretanju čitanja sa (nepostojećih) CGA portova i njihovom preusmeravanju na herca i sličnim prljavštinama, kao i o pogrešnim podacima koje mali žuti daju u dokumentaciji za svoj hardver. Ako nisi, i ako se ta igra koju pominješ nekim slučajem zove 'Dangerous Dave' onda će ti i ovo pomoći: BA DA 03 EC C7 D2 A8 08 <- originalni sadržaj BA 80 <- izmene Ovo je patch za DAVE.EXE posle kojeg će se na hercu igra odvijati normalnom brzinom (čak i na tvojoj ljutoj makini;). Neće više ni blokirati na XT-u. PAčNJA! Sve ovo se odnosi **SAMO** na herca! Za ostale kartice treba sačuvati nekrpljenu verziju. Copyleft za ovo je (naravno) Vasin. ps. Imao sam tu negde i pokicu za bezbroj života, samo sad nikako ne mogu da je nađem... :(
asembler.270 dzakic,
>> iz VCS-a su izvučene i procedure ENABLE70 i DISABLE70 - baš lepo od >> duduka što je to napomenuo): > ^^^^^^ > Nije mi baš jasno šta sam ja to napomenuo i što sam duduk, ali ja sam te > procedure uzeo sa SEZAM-a, a sa tim VCS-om nemam nikakve veze - ne znam > tačno ni čemu to služi. Ma neeee... :) Pogledaj kako se zove osoba koja je te procedure *ostavila* na Sezam, ili jednostavno otkucaj: res sh duduk
asembler.271 dzakic,
> ali me brine što i NG i HelpPC pominju neke > rane verzije AT BIOSa koje nemaju ovu funkciju ili bar ne kompletnu - > tj. bez mogućnosti isključivanja. U stvari, funkcija za isključivanje (AX=8301h) i nije neophodna: Dovoljno je na 0:49Ch staviti 00000000h i pri sledećem nailasku INT 70h, bios će sam da ga isključi.
asembler.272 mivel,
Izvinjavam se, nisam dobro protumacio pitanje. U svakom slucaju, interesantno je i probacu malo da promozgam ...
asembler.273 mstanic,
>> jednog racunara preuzimam signale sa centrale >> (simuliram stampac) i stavljam u datoteku koja bi se >> mogla kasnije obradjivati. Sta mislite, da li je to >> moguce ? Svakako.
asembler.274 dejanr,
>> pa mi je palo na pamet da preko jednog racunara preuzimam signale >> sa centrale (simuliram stampac) i stavljam u datoteku koja bi se >> mogla kasnije obradjivati. Sta mislite, da li je to moguce ? Mislim (tj. ubeđen sam) da je moguće. Štaviše, ne moraš da se "patiš" sa asemblerom, lepo će poslužiti i neki C ili paskal, a bogami i bejzik koji je za tu RS232 komunikaciju još i najpogodniji.
asembler.275 d.petrovic,
Ă> Može. :) Može čak i da objasni, samo ako si raspoložen da slušaš Ă> (čitaš) o različitim adresama CGA i herc video portova, o Ă> presretanju čitanja sa Gkmpfhlj! Mani me bre, dosta mi je da znam da postoji logično objašnjenje. Neću da se mešam u prljave igre. Ă> Ako nisi, i ako se ta igra koju pominješ nekim slučajem zove Ă> 'Dangerous Dave' onda će ti i ovo pomoći: A, da izmisliš ( ili Vasić) još nešto tako štrokavo za Supremacy ? Ă> normalnom brzinom (čak i na tvojoj ljutoj makini;). Neće više ni Pa dobro bre! A šta bi rek'o da imam Amigu? ;)))
asembler.276 kvelkovski,
>> Doduse cuo sam price da se i neki obicni .EXE programi mogu startovati >> iz config.sys-a ali ja jos ne nadoh takav... :) INSTALL=C:\DOS\SHARE.EXE A bio i primer o startovanju Win31 iz config.sys-a. Kupe
asembler.277 dejanr,
Evo šta kažu na BIX-u po pitanju .EXE programa koji je i .SYS drajver. Ako je neko raspoložen da proba, garantovana mu je svetska slava (ili bar prilog u "Bajtovima lične prirode" ;) ========== ibm.dos/secrets.3 #4021, from barryn, 506 chars, Sun Sep 27 13:31:33 1992 Comment to 4020. ---------- To make an executable file (.EXE) usable as a device driver, construct the .EXE file so that the header and relocation table are followed immediately by the device driver image. The memory image of the executable file then follows the device driver in the file. If you know someone with a XIRCOM pocket token ring adapter, ask to borrow a copy of their SMARTLSP.EXE program. It's a good example of a combination .EXE/.SYS file. You can hex-dump the first part of the file to see the relationships.
asembler.278 zormi,
* Doduše čuo sam priče da se i neki obični .EXE programi mogu * startovati iz config.sys-a ali ja još ne nađoh takav... :) Koliko se sećam, programi iz paketa HYPER za cache su takvi.
asembler.279 mstanic,
>> example of a combination .EXE/.SYS file. You can hex-dump >> the first part of the file to see the relationships. Hiperdisk je isto .EXE i .SYS, bar tako piše u uputstvu.
asembler.280 dzakic,
> A, da izmisliš ( ili Vasić) još nešto tako štrokavo za Supremacy ? Hm. Pa nije štrokava pokica, nego je štrokavo kad interapt rutina (70h) menja registre i utiče na tok izvršavanja prekinutog programa - izigrava rezidentnu zakrpu. :) A i nemam(o) Supremacy, kad smo već kod toga. Probaj sam da središ, a ovo bi trebalo da ti pomogne: (Ako su simptomi isti, verovatno je i uzrok.) Prvo u .EXE-u potraži niz BA DA 03, tj 'mov dx,3DAh'. Ako negde iza toga sledi i jedno EC ('in al,dx') onda si na pravom mestu. Ono BA DA 03 onda zameniš sa BA BA 03 ('mov dx, 3BAh'). Time je pola posla završeno - čitanje sa CGA porta zamenjeno je čitanjem sa herca. Ali, i sami bitovi na portu su različito razmešteni: Negde iza ovoga trebalo bi da se nadje i A8 08 ('test al,8') ili 28 08 ('and al,8'). 08 zameniš sa 80. To bi onda trebalo da bude to. Možda će biti potrebno napraviti ove izmene na više mesta.
asembler.281 obren,
>* Doduše čuo sam priče da se i neki obični .EXE programi mogu >* startovati iz config.sys-a ali ja još ne nađoh takav... :) > > Koliko se sećam, programi iz paketa HYPER za cache su takvi. Pa hyper nije običan, on je predviđen i za takvo strtovanje što piše u dokumentaciji. Svaki program koji se tako instalira ima na samom početku device header - nije to neka mudrost napraviti (uz poruku je ZZ-ov HEX drajver u .EXE obliku, naravno proširen procedurom koja se izvršava u slučaju startovanja iz komandne linije). Ono što sam čuo je da je moguće *STARTOVATI* direktno iz config-a neki program. Konkretno, mazali su me da su na neki školski računar instalirali program preveden iz TP-a koji zahteva šifru, ali da je caka što su ga umesto u autoexec, stavili u config pa se nije mogao sprečiti start lupanjem po kontrol-brejku dok traje butovanje. Ja se naivan posle ubio da tako nešto postignem, ali tad sam još bio mlad i neiskusan ;) hex-exe.zip
asembler.282 janko,
> Ono što sam čuo je da je moguće *STARTOVATI* direktno iz > config-a neki program. Konkretno, mazali su me da su na A zar nije? Ili ja nisam nešto razumeo u tvojoj priči?
asembler.283 ddjula,
> Može. :) Može čak i da objasni, samo ako si raspoložen da slušaš (čitaš) > o različitim adresama CGA i herc video portova, o presretanju čitanja sa > (nepostojećih) CGA portova i njihovom preusmeravanju na herca i sličnim Ja sam raspoložen! Posebno me interesuje kako se može presresti čitanje i upis u I/O portove, pošto sam do sada bio uveren da to nije moguće. Pozdrav, Đula
asembler.284 obren,
>> Ono što sam čuo je da je moguće *STARTOVATI* direktno iz >> config-a neki program. Konkretno, mazali su me da su na > > A zar nije? Ili ja nisam nešto razumeo u tvojoj priči? Prilično loše sam se izrazio - mislio sam na obične programe, recimo napišeš u nekom jeziku, prevedeš i staviš kao device=xxxx
asembler.285 mivel,
EXE/SYS 1) svaki device driver se *STARTUJE* direktno iz config-a i ima potpunu kontrolu na sistemom sve dok ne odluci da zavrsi INIT rutinu! 2) svaki EXE fajl koji ima Device Driver header odmah iza EXE headera moze se startovati kao device driver, jasno uz postovanje strukture opisane u dokumentaciji o device driverima 3) ako taj EXE program ima neku drugu start adresu, onda ce, po startovanju iz DOS-a, dobiti kontrolu na tom mestu; kada se startuje iz CONFIG-a, onda je prva rutina koja se izvrsava INIT. Znaci, program ima dve razlicite ulazne tacke. Mozda je dejanr zelio da program startuje iz DOS-a, ostavi ga u memoriji tako da ovaj ima ulogu Device Drajvera?? I to je sigurno moguce, ali bi verovatno trebalo malo brljati po nedokumentovanim oblastima i po prvom memorijskom bloku. Cini mi se da je za tako nesto najsigurnije da se program startuje iz CONFIG.SYS-a, instalira neka vrsta SHELL-a device drajvera, a da se kasnije startovanjem iz DOS-a samo menja njegov modus operandi?! Milan
asembler.286 skoprivica,
-> Evo, saljem ti mali test programcic, pokrenes ga sa test70, a posle -> INT 70 mozes gasiti i paliti sa 70off i 70on. Ako imas HERCULES, -> trebalo bi da se na- sred ekrana pojavi "" (smajli). Ako imas VGA, -> bice isto, samo ce da menja bo- ju 1024 puta u sekundi. Pogledaj i -> koliko ti se usporio sistem... Evo skace mi ovaj tvoj smajli po sredini ekrana, i posto imam EGA karticu, treperi, ali je pretezno beo (mislim da je to zbog brzine). Inace, kad dir-nem neki dir, ostaju raznobojni smajliji na mestima gde je bio, tj u toj koloni u kojoj je smajli (razumes?). E, SI (iz 6.0) kaze 9.2 (testirano na 286) bez "uputrebe" smajlija tj. INTa 70, a posle test70 izjavljuje 8.8, nije strasno... Aje... CTEBO. PS: BIOS je AWARDov, i datiran je 11/15/85, tj. 15. novembar 1985.
asembler.287 dejanr,
>> Mozda je dejanr zelio da program startuje iz DOS-a, ostavi ga u memoriji >> tako da ovaj ima ulogu Device Drajvera?? U stvari, ideja je da se korisniku da fajl koji se, recimo, zove X.EXE Ako mu je volja, može da ga ugradi u CONFIG.SYS sa DEVICE=X.EXE i da onda njegove usluge koriste i ostali programi koji se učitavaju iz CONFIG.SYS-a. Ako mu se to ne sviđa, može da ga stavi u AUTOEXEC.BAT ili čak da ga kasnije startuje kucajući X, kada mu usluge tog drajvera trebaju. Kako će "visiti" na nekom interaptu, nije nužno da bude device driver. Mislim da će to moći da se uradi sa ovim informacijama, hvala svima na pomoći.
asembler.288 d.petrovic,
Ă> Prilično loše sam se izrazio - mislio sam na obične programe, Ă> recimo napišeš u nekom jeziku, prevedeš i staviš kao device=xxxx Koji ti dos čuči ? Verovatno su to izveli (ja sam recimo ced tako stavljao) sa install. To ide u dos-u 5.00 i ide iz config-a. Pozdrav, Dejan
asembler.289 obren,
> Koji ti dos čuči ? Verovatno su to izveli (ja sam recimo ced tako > stavljao) sa install. To ide u dos-u 5.00 i ide iz config-a. Uopšte nisam znao to za INSTALL! Reče to i kvelkovski, ali nije mi palo na pamet da probam sa bilo kojim programom. Sad mi je jasno kako je ono što sam naveo izvedeno, thanx obojici!
asembler.290 d.petrovic,
Ă> Prvo u .EXE-u potraži niz BA DA 03, tj 'mov dx,3DAh'. Ako negde iza Ă> toga sledi i jedno EC ('in al,dx') onda si na pravom mestu. Ono BA Ă> DA 03 onda zameniš sa BA BA 03 ('mov dx, 3BAh'). Time je pola posla Ă> završeno - Neeeeima ga niđe. Igra se sastoji od GAME.EXE i gomile .BIN .GPH fajlova. Ni u jednom .bin ili ti u game.exe nema tog niza (BA DA 03).
asembler.291 dzakic,
> Ja sam raspoložen! Posebno me interesuje kako se može presresti čitanje i > upis u I/O portove, pošto sam do sada bio uveren da to nije moguće. Dobro ako si raspoložen, mada ćeš se verovatno razočarati kad vidiš o čemu se stvarno radi. Koliko ja znam, upis i nije moguće presresti, ali se sa čitanjem može nešto postići (nekad i negde). Evo kako obično izgleda petlja koja na CGA proverava horizontal retrace (za izbegavanje 'snega'): ... mov dx,3DAh petlja1:in al,dx ; Ako se u petlju uleti pri kraju v.r.-a, test al,01h ; sačeka se da prodje ceo. jnz petlja1 petlja2:in al,dx test al,01h ; žeka se početak sledećeg... jz petlja2 ... E sad, ako se ovo izvršava na herkulesu, petlja1 je mrtva jer in al,dx uvek daje 0FFh i računar blokira. Tu na scenu stupa tajmer interapt rutina. (8 ili 70h - svejedno) Prvo proveri da li se u dx nalazi 3DAh. Onda proveri da li povratna adresa pokazuje na kod naredbe 'in al,dx' (0ECh). Ako je i jedno i drugo tačno, onda treba 'odglaviti' program: Recimo tako što se obavi 'in al, 3BAh' (herkulesov status port), bitovi rezultata se srede da odgovaraju onome što bi dala CGA, povratna adresa uveća za jedan da se preskoči problematični 'in al,dx' čiji smo posao upravo obavili, i to je to.
asembler.292 mivel,
Citanje ili pisanje I/O portova MOGUCE JE PRESRESTI, kao uostalom i svaku drugu instrukciju preko Interrupta 1 (Single Step, Trap). Fajl uz ovu poruku prikazuje nacin postavljanja u Single Step modus, ukidanje tog modusa i kostur interrupt rutine. Jasno, izvrsenje programa sa aktivnim INT 1 daleko je sporije jer se nakon svake instrukcije aktivira interrupt. trap.zip
asembler.293 bearboy,
˙¨:> Doduše čuo sam priče da se i neki obični .EXE programi mogu startovati ˙¨:> iz config.sys-a ali ja još ne nađoh takav... :) X00 fosil radi slično... I kao .SYS i kao .EXE...
asembler.294 kvelkovski,
>> Ako mu je volja, moze da ga ugradi u CONFIG.SYS sa DEVICE=X.EXE i da >> onda njegove usluge koriste i ostali programi koji se ucitavaju iz >> CONFIG.SYS-a. Ako mu se to ne svida, moze da ga stavi u AUTOEXEC.BAT >> ili cak da ga kasnije startuje kucajuci X, kada mu usluge tog drajvera A DESQview ima DEVICE.COM. Kad ti pritreba ANSI.SYS opalish jedno 'DEVICE ANSI.SYS' i gotovo ... Kupe P.S. Znam da postoji i DVANSI ali nisam nashao bolji primer :-)
asembler.296 ilazarevic,
█ program. Konkretno, mazali su me da su na neki školski računar █ instalirali program preveden iz TP-a koji zahteva šifru, ali da je █ caka što su ga umesto u autoexec, stavili u config pa se nije mogao █ sprečiti start lupanjem po kontrol-brejku dok traje butovanje. Ja se █ naivan posle ubio da tako nešto Pa to može da se reši u 4DOS-u. u config.sys je kod shella, pored normalnog c:Đ4dos.exe blabla stavi i ime fajla koji će se pozivati neposredno po učitavanju 4dos-a. Kada se program odatle pozove, ne može da se prekine sa kontrol-brejk.
asembler.297 d.petrovic,
Ă> učitavanju 4dos-a. Kada se program odatle pozove, ne može da se Ă> prekine sa kontrol-brejk. Xe. Učitaj ga sa install c:ĐtrućĐblabla pa uradi jedno MI ili MEM/C. Di se nalazi COMMAND ? :)
asembler.298 d.petrovic,
Ups, mislio sam sve to sa dos 5.0
asembler.300 vitez.koja,
Kako se regulise velicina kursora preko dosa i biosa ? Hvala unapred.
asembler.301 mjova,
> Kako se regulise velicina kursora preko dosa i biosa ? #define HIDE_CURSOR (0x2000) #define NORM_CURSOR ((VIDEOMODE!=7) ? 0x0D0E : 0x0607) #define HALF_CURSOR ((VIDEOMODE!=7) ? 0x070E : 0x0407) #define BLOCK_CURSOR ((VIDEOMODE!=7) ? 0x000E : 0x0007) ah= 1 // BIOS Set Cursor Type cx= // start-end scan line int 10h ako te zanima trenutan oblik kurzora onda ga možeš pročitati na: #define CURSOR (*((word far *)0x460lu)) // cursor shape
asembler.302 d.petrovic,
Ă> Kako se regulise velicina kursora preko dosa i biosa ? Hvala Ă> unapred. INT 10H funkcija 01H CH bitovi 0-4= startna linija kursora CL 0-5= krajnja Ima puno toga da se piše, javi mi se pa da ti dam da pročitaš. Pozdrav, Dejan
asembler.303 korvin,
­­­> Ima puno toga da se piše, javi mi se pa da ti dam da pročitaš. Jedno pitanjce :) Odakle (koja knjiga?)crpite to znanje o pozivima dos-a ??
asembler.304 ppekovic,
>> Jedno pitanjce :) Odakle (koja knjiga?)crpite to znanje o pozivima >> dos-a ?? Ray Duncan, Advanced MS-DOS programming (second edition) The Microsoft guide for Assebmly Language and C programmers. Pozive imaš i u obliku fajla ovde na sezamu u arhivi inter30. Paya P.S. Ako te knjiga zanima, mail me.
asembler.305 d.petrovic,
Ă> Jedno pitanjce :) Odakle (koja knjiga?)crpite to znanje o pozivima Ă> dos-a ?? E, sad ne mogu tačno da se setim naslova (knjiga je već kod njega :)) ). Mislim da beše : PC/ROM BIOS
asembler.306 korvin,
­­­> Ray Duncan, Advanced MS-DOS programming (second edition) ­­­> The Microsoft guide for Assebmly Language and C programmers. ­­­> ­­­> Pozive imaš i u obliku fajla ovde na sezamu u arhivi inter30. Puno ti hvala.
asembler.307 banex,
Ima li neko predlog za kupovinu neke dobre knjige za asembler? Naravno da se može kupiti kod nas. Meni bi bilo dosta da mi da spisak svih naredbi, šta joj je potrebno na ulazu, šta se dešava na izlazu, itd. Za primere se mogu snaći i sam (sourcer još uvek radi, zar ne?). CU! PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za takvu (štampač ionako zvrji prazan).
asembler.308 tuci,
¸> Ima li neko predlog za kupovinu neke dobre knjige za ¸> asembler? Naravno da se može kupiti kod nas. Meni bi bilo ¸> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za ¸> takvu (štampač ionako zvrji prazan). Pogledaj: R:/ibmpc/info/helppc21.arj(a01) * Zbog yuscii-a sam stavio slash umesto backslash-a. Pozdrav, Zlatko.
asembler.309 mjova,
> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za > takvu (štampač ionako zvrji prazan). odavno sam ti dao neki mali help koji sadrži osnovne komande 8086 procesora. mislim da je to sasvim dovočljno, pa ako ne možeš to da nađeš, mogu ja da potražim i da ti pošaljem...
asembler.310 robert,
<:> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za Zar ne postoji Nortonov vodič za asembler (kroz 8086-80286)???
asembler.311 mjova,
za banex-a i ostale kojima treba kratak help za asm. ovo je dakle, rezidentni prg koji ima opis svih komandi... zgodno za početak. lw286.arj
asembler.312 mjova,
takođe neki help za asm. ima osnovnih stvari, početak pisanja u asmu za pc-a itd.. asmhelp.arj
asembler.313 mjova,
ovaj tekst sam već slao ranije, ali nije loše duplirati malo po sezamu ;). mrzi me da tražim gde je, ovako mi je lakše, nek moderator obriše, čik ako sme ;) u glavnom, mislim da je ova datoteka za dir. vrlo lep tekst o asmebleru, za početnike. (preuzeo sam sa tricikla u lepa stara vremena, a sad pošto su nam linije cvikovane oslonimo se na ono što imamo ;) asmtutor.arj
asembler.314 vcalic,
Jel' može neko da napiše da li DOS-ova funkcija 2F u DOS-u 5.0 ima još nekih servisa osim onih koje je imala u 3.30 (APPEND, SHARE, etc) i koji su to?
asembler.315 vcalic,
Eh, u SOR-u videh da sam se zeznuo. Dakle, pitanje se odnosi na interapt 2F a ne na funkciju!
asembler.316 pmilan,
Da li neko zna kako da ocitavam neku U/I ili memorijsku lokaciju frekvencijom npr. 10 k Hz. Pozdrav, Kepa.
asembler.317 nbatocanin,
> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za > takvu (štampač ionako zvrji prazan). U NG-u za asembler imaš sve što ti treba: interesantne adrese, BIOS i DOS pozive, detaljan opis instrukcija i direktiva za MASM.
asembler.318 vitez.koja,
#=> nades, mogu ja da potrazim i da ti posaljem... posalji, ali ne na mail O:)
asembler.319 d.petrovic,
Ă> U NG-u za asembler imaš sve što ti treba: interesantne adrese, BIOS Ă> i Koliko je to? I uz šta ide, jel može da se UL-uje ovde....
asembler.320 nbatocanin,
> Koliko je to? I uz šta ide, jel može da se UL-uje ovde.... Oko 600K, pise Norton (C) :(
asembler.321 drpavlov,
Drug me je zamolio da se raspitam da li neko ima disasembler/asembler za M68000 ili M68010 za rad na PC-u pod DOS-om. Posto se ja u to ne razumem bilo bi dobro da ostavite ovde poruku ili meni na MAIL pa bih mu ja to preneo. Hvala.