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, -> #2, dzakic
> 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, -> #3, gbiocic
>> 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, -> #3, gbiocic
│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, -> #6, max.headroom
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, -> #8, radunovic
> 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, -> #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. 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, -> #11, mdjuric
>> 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, -> #13, prvul
>> 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, -> #14, dejanr
>> 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, -> #17, dzakic
>> 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, -> #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? 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, -> #17, dzakic
> 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, -> #20, gbiocic
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, -> #20, gbiocic
>> 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, -> #22, 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, -> #22, dzakic
> 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, -> #25, gbiocic
>> 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, -> #30, zzdrnja
>> 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, -> #30, zzdrnja
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, -> #31, 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) :( Izvini darone, ali covek je to stavio u temu asembler... Ne verujem da je to sto ti kazes :( MAGICIAN
asembler.34 darone, -> #33, magician
>> 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, -> #35, lazo
>>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, -> #35, lazo
> 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, -> #36, ppekovic
│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, -> #35, lazo
> 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, -> #30, zzdrnja
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, -> #38, bulaja
-> 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, -> #32, dzakic
A kako se (i dali se) podesava jacina zvuka? I koliko bitova kontrolise jacinu zvuka?
asembler.44 dzakic, -> #43, ljupco
>> 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, -> #45, lazo
# 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, -> #46, dzakic
-> 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, -> #49, bocko
> 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, -> #49, bocko
■■> 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, -> #52, miro
Thanks! Bocko
asembler.54 nbatocanin,
Ima li neko podatke za razlike u instrukcijama za 6502 i 65c02?
asembler.55 dtadic, -> #54, nbatocanin
>> 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, -> #56, jknezovic
> 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, -> #56, jknezovic
> 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, -> #56, jknezovic
>> 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, -> #58, zonjic
> 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, -> #61, dbojan
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, -> #63, ljupco
:: 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, -> #66, janko
* 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, -> #66, janko
:: 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, -> #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. 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, -> #70, obren
:: 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, -> #71, dgrbic
>> 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, -> #67, janko
>> 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, -> #66, janko
>> 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, -> #67, janko
?! 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, -> #73, dzakic
> > 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, -> #74, dzakic
>>> 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, -> #73, dzakic
:: 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, -> #75, ivans
/ ali u buduce (kada Sezam dobije nov disk ;))... Trebalo bi paziti... Kada svi mi dobijemo nove diskove :)
asembler.81 janko, -> #79, dgrbic
> 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, -> #81, janko
>> 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, -> #82, dzakic
:: 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, -> #82, dzakic
> 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, -> #86, janko
>> 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, -> #86, janko
>> 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, -> #87, dzakic
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, -> #89, dejanr
>> 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, -> #89, dejanr
>-> 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, -> #86, janko
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, -> #91, skoprivica
█ tj. imaju bag. Koji ? Pa reci cu vam ako vas bas zanima... Reci, reci, da bih ja napravio savršen tetris :))
asembler.95 dgrbic, -> #93, dzakic
:: 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, -> #94, ilazarevic
>-> 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, -> #96, skoprivica
█ 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, -> #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 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, -> #86, janko
>|#*}- >|#*}- 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, -> #101, zmilan
> 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, -> #101, zmilan
> 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, -> #102, 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 ?