asembler.105dejanr,
-> #102, obren>> 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.106obren,
-> #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 ?
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.107mjova,
-> #103, 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.108zmilan,
-> #106, obren>> 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.109ivans,
-> #106, obrenSvaka cast na textu! Hocemo i nastavak (bar ja!)...
Pozdrav,
Ivans.
asembler.110obren,
-> #108, zmilan> 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.arjasembler.111zddb,
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.112draganf,
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.113dj.rainovic,
-> #92, zmilan 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.114adezelin,
-> #76, radunovic>>>>>> 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.115radunovic,
-> #106, obren
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.116radunovic,
-> #112, draganf
?! 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.117dragisha,
-> #116, radunovicű> moze. Imas u norton gajdu za masinac mislim da je int 14h
ű> pa treba
Interrupt je 17H za printer.
dragisha
asembler.118cacxa,
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.119obren,
-> #115, radunovic> 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.120radunovic,
-> #119, obren
Nisam video tu poruku, izvini sto sam te ugnjavio. Hvala na
informacijama.
asembler.121zmilan,
-> #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 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.122dj.rainovic,
-> #121, zmilanHvala 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.123amiler,
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.124mjova,
šta se zapravo dešava kad se pritisne ctrl-break?
pritisak na ctrl-c je jedno, a ctrl-break drugo...
SY
asembler.125janko,
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.126darone,
-> #125, janko>> 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.127bbizic,
-> #126, daroneZdravo 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.128janko,
-> #127, bbizic> 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.129zvonko,
Zdravo!
Da li neko od prisutnih zna nešto (ili ima)
asembler , simulator ili kros-kompajler za
8-bitni kontroler 8051 ?
zvonko
asembler.130bulaja,
-> #129, zvonko│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.131zvonko,
-> #130, bulaja># Da li ti nesto znaci ovo (Trickle):
HVALA, proverićemo !
zvonko
asembler.132zddb,
Razmenjivao bih iskustva s korisnicima MASM 6.0. Da lije moguće da ovdje
svi koriste samo Borlandov Turbo Assembler.
ZDDB
asembler.133mjova,
-> #132, zddb> 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.134nbatocanin,
-> #133, mjova> 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.135vitez.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.136ivans,
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.137ppekovic,
-> #136, ivans>> *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.138ivans,
-> #137, 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" ;).
Pozdrav,
Ivans.
asembler.139vbole,
-> #136, 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]
> 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.140ppekovic,
-> #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" ;).
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.141mjova,
-> #137, ppekovic> 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.142ppekovic,
-> #141, mjova>> 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.143ivans,
-> #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]
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.144janko,
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.145vbole,
-> #144, janko> 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.146nboskovic,
-> #145, vbole*> 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.147janko,
-> #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.
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.148dejanr,
-> #147, janko>> > 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.149pstojanovic,
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.150dnikolic,
-> #146, nboskovic>> 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.151dnikolic,
-> #147, janko>> 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.152ppekovic,
-> #151, dnikolic>> 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.153stojke,
-> #144, janko> 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.154dzakic,
-> #153, stojke> 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.155amilanov,
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.156bearboy,
-> #155, amilanov˙¨:> 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.157amilanov,
-> #156, bearboy> 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.158ppekovic,
-> #157, amilanov>> 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.159amilanov,
-> #158, ppekovic> 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.160dj.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.161pstojanovic,
Pokusava
asembler.162pstojanovic,
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.asmasembler.163dj.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.zipasembler.164janko,
-> #163, dj.rainovic> 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.165ciki,
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.166ppekovic,
-> #165, ciki>> 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.167ciki,
-> #166, ppekovic>> 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.168dnikolic,
Ima li neko MASM 6.0?
dn
asembler.169dj.rainovic,
-> #164, jankoŢ
Ţ 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.comasembler.170obren,
-> #169, dj.rainovic> 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.171asrdjan,
> Ima li neko MASM 6.0?
Stvarno ako neko ima...
asembler.172dj.rainovic,
-> #170, obrenŢ 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.173obren,
-> #172, dj.rainovic> 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.174dj.rainovic,
-> #173, obrenŢ 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.175mjova,
-> #174, dj.rainovic> 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.176obren,
-> #174, dj.rainovic> 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.177mjova,
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.178ppekovic,
-> #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...
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.179prvul,
-> #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...
Ů▄▄
Ako možeš da nađeš još jednu mašinu, pa REMOTE opcija...
asembler.180bearboy,
-> #178, ppekovic˙¨:> 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.181bulaja,
**** 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.182obren,
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.183gbiocic,
-> #182, obrenHi,
> 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.184mjova,
-> #183, gbiocic> 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.185obren,
-> #183, gbiocic> Da, ja radim isto i no problem. Uradim to neposredno pre TSR f-je.
Ok, hvala puno!
asembler.186kzoran,
Ljudi,
zna li neko nacin da utvrdim radi li racunar sa 80486? Sve do 386 mi je jasno,
ali dalje...
Pozdrav,
Zoran.
asembler.187dejanr,
-> #186, kzoranImaš program koji određuje tip procesora (pa i 486) u "Bajtovima lične
prirode", mislim u januarskim ili decembarskim "Računarima".
asembler.188kzoran,
-> #187, dejanr>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.189dzakic,
-> #182, obren>> 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.190snowwhite,
-> #187, dejanr-> 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.191dejanr,
-> #190, snowwhite>> 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.192obren,
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.193dejanr,
-> #192, obren>> 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.194obren,
-> #193, dejanr> 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.195janko,
-> #194, obren>> 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.197dejanr,
-> #195, janko>> 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.198dzakic,
[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.199janko,
-> #198, dzakic>>> 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.200ilotina,
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.201asrdjan,
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.202ivans,
-> #200, ilotinaDodaj 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.203ivans,
-> #202, ivansNaravno, 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.204dejanr,
-> #201, asrdjanAko praviš COM datoteku (EXE2BIN) onda *i treba* (tj. i mora) da ne bude
stek segmenta jer je čitav program u jednom segmentu.
asembler.205dragisha,
-> #200, ilotinaű> mov dx,offset tex
ű> int 021h
mov ah, 4Ch
int 21h
ű> CODE ENDS
Ne koristim ASM, ali bez ovoga sigurno neće raditi:)
dragisha