asembler.1ppekovic,
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.2dzakic,
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.3gbiocic,
> 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.zipasembler.4dzakic,
>> 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.5bulaja,
│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.6max.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.7bulaja,
Pogledaj A86 asembler iz \ibmpc\program direktorijuma
(datoteka a86v322.zip, 170K).
asembler.8radunovic,
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.comasembler.9mjova,
> 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.10ppekovic,
>> 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.11mdjuric,
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.12ppekovic,
>> 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.13prvul,
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.14dejanr,
>> 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.15radunovic,
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.16prvul,
>> 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.17dzakic,
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.18ppekovic,
>> 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.19prvul,
>>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.20gbiocic,
> 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.21prvul,
Ipak neka proveri da li se niko nije nakacio posle njega...
pa ako nije, neka se kompletno deinstalira... ovako se fragmentira memorija
Prvul.
asembler.22dzakic,
>> 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.24dzakic,
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.25gbiocic,
> 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.26dzakic,
>> 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.27dzakic,
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.30zzdrnja,
Moze li mi neko napisati kako da aktiviram biper
´k
HHMK
asembler.31darone,
>> 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.32dzakic,
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.33magician,
=> 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.34darone,
>> 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.35lazo,
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.36ppekovic,
>>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.37mjova,
> 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.38bulaja,
│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.39spantic,
> 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.40adulic,
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.zipasembler.41zzdrnja,
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.42lazo,
-> 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.43ljupco,
A kako se (i dali se) podesava jacina zvuka? I koliko bitova kontrolise
jacinu zvuka?
asembler.44dzakic,
>> 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.45lazo,
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.46dzakic,
# 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.47lazo,
-> 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.48jknezovic,
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.50ljupco,
> 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.51miro,
■■> 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.52miro,
Evo ovdje jedan file o XMS (izvadjen iz MS XMS distribucione arhive)
dragisha
xms.arjasembler.53bocko,
Thanks!
Bocko
asembler.54nbatocanin,
Ima li neko podatke za razlike u instrukcijama za 6502 i 65c02?
asembler.55dtadic,
>> 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.56jknezovic,
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.57vbole,
> 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.58zonjic,
> 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.59kole,
>> 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.60pele,
> 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.61dbojan,
Kako pozvati neki od SuperVGA graf. modova ???
asembler.62radunovic,
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.63ljupco,
Kako da simuliram far call pomocu near call? Adresa
gde skacem nalazi se zapisana kao dword (ofset, segment) na adresi
_oldkey.
asembler.64ljupco,
Kako da simuliram far call pomocu near call? Adresa
gde skacem nalazi se zapisana kao dword (ofset, segment) na adresi
_oldkey.
asembler.65dgrbic,
:: 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.66janko,
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.67janko,
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.68zormi,
* 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.69dgrbic,
:: 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.70obren,
> :: 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.71dgrbic,
:: 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.72dzakic,
>> 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.73dzakic,
>> 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.74dzakic,
>> 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.75ivans,
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.76radunovic,
?! 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.77janko,
>
> 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.78janko,
>>> 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.79dgrbic,
:: 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.80ndragan,
/ ali u buduce (kada Sezam dobije nov disk ;))... Trebalo bi paziti...
Kada svi mi dobijemo nove diskove :)
asembler.81janko,
> 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.82dzakic,
>> 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.83dgrbic,
:: 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.84janko,
> 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.85ljupco,
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.86janko,
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.87dzakic,
>> 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.88vkrstonosic,
>> 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.89dejanr,
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.90dzakic,
>> 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.91skoprivica,
>-> 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.92zmilan,
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.93dzakic,
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.94ilazarevic,
█ tj. imaju bag. Koji ? Pa reci cu vam ako vas bas zanima...
Reci, reci, da bih ja napravio savršen tetris :))
asembler.95dgrbic,
:: 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.96skoprivica,
>-> 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.97ilazarevic,
█ 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.98skoprivica,
>-> █ 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.99adezelin,
>|#*}-
>|#*}- 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.100zddb,
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.101zmilan,
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.102obren,
> 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.103mjova,
> 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, ®, ®);
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, ®, ®);
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, ®, ®, &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.104radunovic,
Bio bih ti zahvalan kada bi napisao nesto konkretno. Npr. adrse portova i
sl. (naravno i uputstvo za upotrebu:) BTW. gde si to pronasao ?
asembler.105dejanr,
>> 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,
> 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,
>> 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,
>> 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,
Svaka cast na textu! Hocemo i nastavak (bar ja!)...
Pozdrav,
Ivans.
asembler.110obren,
> 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,
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,
>>>>>> 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,
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,
?! 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,
ű> 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,
> 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,
Nisam video tu poruku, izvini sto sam te ugnjavio. Hvala na
informacijama.
asembler.121zmilan,
>> 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,
Hvala ali ja sam se te brige rešio :))))
Morao sam da radim jedan projekat na fakultetu sa Z80 pa sam se mučio
sa tim emulatorom.
asembler.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,
>> 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,
Zdravo svima! Vasa ovde.
BB mi je dozvolio da se za ovu priliku posluzim njegovim racunom. (Evo
ga, upravo se nesto buni zbog ovakvog pocetka, pominje Upravu, Ugovor...
stvarno ne znam sta mu bi odjednom. :) Kao prvo, hvala Janku i Daroneu
na pohvalama, a Janku i na predlogu (vec sredjeno). Nego, ono zbog cega
pisem sve ovo je sledece:
Palo mi je na pamet da bih mogao da za potrebe svog CGA simulatora
umesto osmice upotrebim INT 70h (IRQ 8) - RT clock interrupt. Da se
podsetimo: on se javlja 1024 puta u sekundi, nije dostupan na XT-u
(generise ga drugi 8259 PIC koga tamo nema) i po defaultu je iskljucen.
Njegova upotreba bi znacila da na AT-u vise nema problema sa igrama koje
rezervisu osmicu iskljucivo za sebe: zamislite Elitu na velikom
popunjenom ekranu, sa jos manje duhova nego do sad.
Nesto o ovoj temi sam nasao u HelpPC-u, ali je to prilicno skrto i
neupotrebljivo. Disasemblirajuci AT-SLOW uspeo sam da izolujem dve
procedure koje dajem na kraju poruke. Ubacio sam ih u jednu stariju (i
mnogo jednostavniju) verziju VCS-a, nesto izmenio rutinu za INT 8 i...
RADI! ...skoro. Pokazalo se da je pri prvom startovanju VCS-a posle
reseta potrebno enabl70 pozvati dvaput (?) da bi obavio svoj posao: Na
adresu 0Bh u CMOS ramu se pri prvom pozivu ne upise sta treba. Kasnije
sve radi OK, i iz prve. U cemu je fazon? Gresim li negde? Ima li ovde
nekoga ko se vec bavio ovime (ili makar ima literaturu) ?
Vasa
P.S. Sorry zbog duzine, a evo i procedura:
enabl70 proc near
cli
mov al,0Bh
out 70h,al ; port 70h, RTC addr/enabl NMI
jmp short loc_2
loc_2: in al,71h ; port 71h, RTC clock/RAM data
or al,40h
mov ah,al
mov al,0Bh
out 70h,al
jmp short loc_3
loc_3: mov al,ah
out 71h,al
in al,0A1h ; port A1h, 8259-2 int IMR
and al,0FEh
out 0A1h,al ; port A1h, 8259-2 int comands
sti
ret
enabl70 endp
; Interesantno je da AT-SLOW poziva enabl70 pri svakom izvrsenju INT 70h
; iako to nije neophodno. Zasto?
disbl70 proc near
cli
in al,0A1h ; port A1h, 8259-2 int IMR
or al,1 ; al = 1, inhibit IRQ8 RTC
out 0A1h,al ; port A1h, 8259-2 int comands
mov al,0Bh
out 70h,al ; port 70h, RTC addr/enabl NMI
jmp short loc_15
loc_15: in al,71h ; port 71h, RTC clock/RAM data
and al,0BFh
mov ah,al
mov al,0Bh
out 70h,al
jmp short loc_16
loc_16: mov al,ah
out 71h,al
sti
ret
disbl70 endp
asembler.128janko,
> 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,
│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,
># 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,
> 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,
> 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,
>> *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,
> 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,
> 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,
>> > 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,
> 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,
>> 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,
* > 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,
> 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,
*> 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,
>*> 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,
>> > 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,
>> 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,
>> 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,
>> 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,
> 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,
> 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,
˙¨:> 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,
> 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,
>> 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,
> 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,
> 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,
>> 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,
>> 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,
Ţ
Ţ 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,
> 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,
Ţ 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,
> 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,
Ţ 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,
> 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,
> 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,
>> 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,
Ů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,
˙¨:> 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,
Hi,
> Da li smem da oslobodim alociranu memoriju koju zauzima prekopirani
> environment pošto on programu (TSR) ni zašta ne treba? Recimo: po startu
> programa nađem u PSP-u na ofsetu 2Ch adresu alociranog segmenta u kome
Da, ja radim isto i no problem. Uradim to neposredno pre TSR f-je.
Rupa koja nastane kao što si primetio nije baš nekorisna, mada štrči.
Rešenje je da pretvoriš TSR-a u sisoja (SYS), tako radim odnedavno.
Mada, nisam još probao kako u tom slučaju radi Uninstall f-ja?
Nešto se mislim (hej, moderatore!) da se izdvoji tema TSR, ima tu
vazda problema. Ili da neko potegne grupu MANIACS.
pozdrav, gb
asembler.184mjova,
> 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,
> 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,
Imaš program koji određuje tip procesora (pa i 486) u "Bajtovima lične
prirode", mislim u januarskim ili decembarskim "Računarima".
asembler.188kzoran,
>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,
>> 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,
-> 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,
>> 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,
>> 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,
> 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,
>> 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,
>> 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,
>>> 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,
Dodaj jedan "dolar" :) na kraj teksta koji hoćeš da štampaš, ovako:
tex DB 'Ovo je test$',13,10
i trebalo bi da proradi...
Pozdrav,
Ivans.
asembler.203ivans,
Naravno, ja ne bih bio ja kada negde ne bih zabrljao. U stvari, zaboravio sam
da ono 13,10 označava CR+LF. Dakle, onaj dolar treba da dođe iza svega toga.
asembler.204dejanr,
Ako praviš COM datoteku (EXE2BIN) onda *i treba* (tj. i mora) da ne bude
stek segmenta jer je čitav program u jednom segmentu.
asembler.205dragisha,
ű> mov dx,offset tex
ű> int 021h
mov ah, 4Ch
int 21h
ű> CODE ENDS
Ne koristim ASM, ali bez ovoga sigurno neće raditi:)
dragisha
asembler.206dragisha,
ű> javlja poruke 'no stack segment' i 'program has no starting
ű> adress'.Reč je o
Prvo je warning i dejanr ti je rekao u čemu je fol, a što se
drugog tiče pogledaj da li neki end ima labelu početka kao
parametar. Bez toga linker ne zna odakle kreće tvoj program i
zbog toga ne može da napravi ispravan EXE Header.
dragisha
asembler.207asrdjan,
Pošto vidim da nisam još dobio rešenje u veyi programa sa kojim sam imao
problema,ja ovde dajem taj program,a vi pogledajte šta nije u redu.
ML u MASM 6.0 mi prilikom prevođenja javlja poruke 'no stack segment' i
'program
has no starting adress'.Ako neko zna šta je u pitanju neka se javi na mail ili
u
konf.
.MODEL small,pascal,os_dos
.DATA
.CODE
ORG 100h
push ax
push dx
push di
mov al,0b6h
out 43h,al
mov dx,0014h
mov ax,4f38h
div di
out 42h,al
mov al,ah
out 42h,al
in al,61h
mov ah,al
or al,3
out 61h,al
mov al,ah
out 61h,al
pop di
pop dx
pop ax
END
..SOR 2.30 EXEC ZFED8348
CONF JOIN PC.PROG
CONF REPLY pascal
Kako da u TP 6.0 saznam da li na direktorijumu postoji neki fajl npr blabla.txt
i kako da smestim naziv tog fajla u promenljivu.
asembler.208obren,
> Pošto vidim da nisam još dobio rešenje u veyi programa sa kojim sam
> imao problema,ja ovde dajem taj program,a vi pogledajte šta nije u
> redu. ML u MASM 6.0 mi prilikom prevođenja javlja poruke 'no stack
> segment' i 'program has no starting adress'.
žini mi se da je onaj primer bio samo fragment, ili listing koji guta
A86 (jedan PD asembler). 'No stack segment' nije greška ako hoćeš da
program prebaciš u .COM, a znači da nisi definisao segment u svom programu
koji će služiti za potrebe steka. 'No starting address' je zato što nisi
stavio posle END labelu od koje počinje program, pa linker ne zna šta da
stavi u .EXE heder kao ulaznu tačku. Znači pre prve instrukcije programa,
stavi recimo 'begin:' a umesto samo 'END' stavi 'END begin' i trebalo bi
da ga lepo prevede, a da li će da radi zavisi od toga ima li grešaka.
Pozdrav, Dragan
asembler.209natila,
Posto sam tek sad poceo da ucim asembler, u vremenima kad se
time nisam bavio obrisao sam EXE2BIN a sad mi treba. Jel' bi
neka dobra dusa to poslala?
A oma i da pitam nesto: Koko se menjaju Sign, Carry i Overflow
flegovi? Moja (jedina) knjiga o asembleru to prilicno (za
mene) nesshvatljivo objasnjava :(
Hvala unapred!
Nemeth Attila
P.s. Umalo da zaboravim, jel' zna nako neki mali recimo rezidentni
kalkulator koji ima mogucnost pretvaranja binarnih brojeva u
decimalne ili hexadecimalne i obrnuto?
asembler.210dzakic,
>> A oma i da pitam nesto: Koko se menjaju Sign, Carry i Overflow
>> flegovi? Moja (jedina) knjiga o asembleru to prilicno (za
Flegove postavljaju aritmetičke i logičke operacije. Ti recimo
sabereš akumulator sa nekim brojem i po završetku operacije se
flegovi postave u skladu sa dobijenim rezultatom. Overflow se
setuje ako je došlo do prekoračenja, znači akumulator premašio
dozvoljenu vrednost i dobijeni rezultat nije tačan. Carry se
postavlja u operacijama šiftovanja i rotiranja, Sign kad je
rezultat negativan, Zero kad je nula i sl.
Kad se naredba završi, flegovi ostanu tako postavljeni, pa
sledećom naredbom možeš da ispitaš njihovo stanje i izvršiš
odgovarajuće grananje. Uslovni skokovi su recimo JZ (Jump if
Zero), JNZ (Jump if Not Zero), JC, JNC, JS, JNS, itd.
Ako si mislio na 'ručno' postavljanje, postoje naredbe koje
setuju i resetuju carry flag: STC i CLC (SeT i CLear Carry).
Druge postavljaš tako što žrtvuješ akumulator pa uradiš recimo
xor ax, ax da bu postavio zero dovodeći nulu u akumulator i
sličnim egzibicijama.
Hope this helps
asembler.211obren,
Zna li neko kako može da se dođe do definicije aktivnog fonta kod EGA/VGA?
asembler.212ppekovic,
>> Zna li neko kako može da se dođe do definicije aktivnog
>> fonta kod EGA/VGA?
Satrtuj program sysid (ima ga ovde na sezamu) i videćeš adrese svih
fontova. A ako baš voliš programiranje, e onda pozovi INT 10H sa:
AH = 11H
AL = 30H
BH = font code
00H current Int 1FH contents
01H current Int 43H contents
02H ROM 8x14 (EGA,VGA)
03H ROM 8x8
04H ROM 8x8 (chars 80H-FFH)
05H ROM 9x14 (EGA,VGA)
06H ROM 8x16 (MCGA,VGA)
07H ROM 9x16 (VGA)
Vraca:
CX = points(bytes per char)
DL = rows(char rows on screen-1)
ES:BP segment:offset of font table
Paya
asembler.213obren,
> Satrtuj program sysid (ima ga ovde na sezamu) i videćeš adrese svih
> fontova. A ako baš voliš programiranje, e onda pozovi INT 10H sa:
>
> AH = 11H
> AL = 30H
> BH = font code
> 00H current Int 1FH contents
> 01H current Int 43H contents
> 02H ROM 8x14 (EGA,VGA)
> 03H ROM 8x8
> 04H ROM 8x8 (chars 80H-FFH)
> 05H ROM 9x14 (EGA,VGA)
> 06H ROM 8x16 (MCGA,VGA)
> 07H ROM 9x16 (VGA)
Ma znam ja za ovo, ali ne treba mi ROM font, već FONT KOJI JE TRENUTNO
AKTIVAN, što može biti i ROM ali i neki "user defined". Nigde nisam našao
kako doći do njega. Izgleda da nema odgovarajući prekid za to.
asembler.214natila,
> Flegove postavljaju aritmeticke i logicke operacije. Ti recimŰ
> saberes akumulator sa nekim brojem i po zavrsetku operacije se
> flegovi postave u skladu sa dobijenim rezultatom.
E TO me zanima. Kako se tacno postavljaju. Sta treba da se desi
da bi se neki od flegova setovao ili ne?
> Overflow se
> setuje ako je doslo do prekoracenja, znaci akumulator premasio
> dozvoljenu vrednost i dobijeni rezultat nije tacan. Carry se
> postavlja u operacijama siftovanja i rotiranja, Sign kad je
> rezultat negativan, Zero kad je nula i sl.
Cek' da pokusam da objasnim kako sam ja shvatio (ono sto mislim
da sam shvatio :) a ti me ispravi.
Recimo da se brojevi smestaju na 7 bita a 8. bit je predznak.
1. slucaj: ako saberemo dva relativno mala broja (ciji rezultat
moze da stane na 7 bita i ciji rezultat nije 0) onda 8. bit tacno
pokazuje predznak rezultata, Carry, Overflow i Zero su 0 dok Sign
je 0 ako je rezultat pozitivan a 1 ako je rezultat negativan.
2. slucaj: ako saberemo dva veca broja (ciji rezultat staje na 8
bita) onda 8. bit ne pokazuje tacan predznak rezultata pa ni Sign
jer su ta dva bita (8. bit i Sign) uvek isti. U tom slucaju se
predznak nalazi u Carry-ju (znaci moze biti i 0 i 1 u zavisnosti
dali smo sabrali pozitivne ili negativne brojeve) a i Overflow je
setovan posto j█╩šý doslo do prekoracenja sa 8. bita na Carry.
I ovde vazi da je Zero 0 akšŻ│ je rezultat razlicit od nule.
3. slucaj: a sta se desava kada saberemo dva veeelika broja ciji
rezultat staje samo na svih 8 bita + Carry (jer kolko sam ja
shvatio Carry se prakticno ponasa kao 9. bit)?
Knjiga kaze jos i nesto poput: Overflow vam je u stvari jednak
Carry XOR Sign (ili nesto poput ovoga). Sta mu to dodje?
Nemeth Attila
P.s. Jos uvek trazim EXE2BIN.COM (ili mu je nastavak EXE, ne
secam se vise :)
asembler.215ppekovic,
>> Ma znam ja za ovo, ali ne treba mi ROM font, već FONT KOJI JE TRENUTNO
>> AKTIVAN, što može biti i ROM ali i neki "user defined". Nigde nisam našao
>> kako doći do njega. Izgleda da nema odgovarajući prekid za to.
A da, zaboravio sam da napišem upravo ono što je tebi trebalo,
naime ako staviš u BH vrednost 10H i pozoveš INT 10H sa 30H u AL,
dobićeš sledeće:
CX - broj zauzetih bajtova po jednom karakteru.
DL - broj vrsti za prikazivanje znakova na ekranu
ES:BP - segment i offset adresa karakter tabele aktivnog
fonta.
Paya
asembler.216ppekovic,
>> P.s. Jos uvek trazim EXE2BIN.COM (ili mu je nastavak EXE, ne
>> secam se vise :)
EXE2BIN je deo komercijalnog paketa pa mu stoga i nije mesto u
konferenciji.
Paya
asembler.217obren,
> A da, zaboravio sam da napišem upravo ono što je tebi trebalo,
> naime ako staviš u BH vrednost 10H i pozoveš INT 10H sa 30H u AL,
> dobićeš sledeće:
>
> CX - broj zauzetih bajtova po jednom karakteru.
> DL - broj vrsti za prikazivanje znakova na ekranu
> ES:BP - segment i offset adresa karakter tabele aktivnog
> fonta.
Kod mene to ne radi - vrati mi pointer na običan ROM 8x16! :((( Probao
sam i druge vrednosti u BH, ali ne pali - ili ROM font ili đubre. Ne znam
da li je to do BIOS-a ili do grafičke karte?
Morao sam ipak da zaposlim i sourcer nad jednim (najkraćim ;)) Nortonovim
programom. Koliko sam video, INT 10h se koristi za menjanje fonta (kod onog
iscrtavanja strelice u text modu), ali nemam pojma kako dođu do bit-mape
aktivnog fonta? Verovatno direktnim pristupom kartici? Ne verujem da drajver
za miša zna one štosove sa strelicom u tekst modu. Pogledaću još malo, možda
i provalim...
P.S. Hvala na trudu u svakom slučaju!
asembler.218dzakic,
>> Recimo da se brojevi smestaju na 7 bita a 8. bit je predznak.
Ne možemo to da pretpostavimo jer se zna kako se predstavljaju
negativni brojevi. U jednom bajtu (dakle 8 bita) može se
nalaziti nepredznačan ili predznačan (signed) broj. Nepredznačni
su ti jasni, od 0 do 255. Ako bajt tretiramo kao označen broj to
se radi u tzv. potpunom komplementu dvojke. Na taj način je sa
FF hex označen broj -1, sa FE broj -2 itd... To znači da
pozitivnih brojeva ima 127, sa nulom 128. A da negativnih ima
tačno 128. Pazi tabelu:
bajt vrednost
00000000 0
00000001 1
00000010 2
...
01111110 126
01111111 127
10000000 -128
10000001 -127
10000010 -126
...
11111110 -2
11111111 -1
Broj negiraš tako što sve bitove 'invertuješ' i rezultat uvećaš
za jedan. Iz ovoga se takođe vidi da se znak može pročitati iz
sedmog bita (najviši, broji se od 0). Obrati pažnju da ćeš
sabiranjem -5 i 10 dobiti tačan rezultat, 5.
Dakle, sabiraš 11111011 (-5)
+ 00001010 (10)
C=1 = 00000101 ( 5)
Keri jeste 1, ali je prekoračenje 0 jer smo dobili ispravan
rezultat. Pazi kako ja pamtim kad je došlo do prekoračenja:
- Kad sabiram pozitivan i negativan broj, NE MOčE da dođe do
prekoračenja, overflow je uvek 0
- Kad sabiram pozitivan i pozitivan, ili negativan i negativan,
MOčE doći do prekoračenja i rezultat mora biti istog znaka kao
i zabirci. Ako nije, nastalo je prekoračenje.
Ovo 'sabiram' mi ostalo sa ispita, to inače radi procesor
upravo onim 'carry xor sign'. Sad, ako su tebi brojevi koje
sabiraš nepredznačni, dakle sve pozitivni, pa ih uzimaš u opsegu
0..255, onda ti je prekoračenje zapravo carry i samo te on
zanima. Overflow gledaš ako su brojevi predznačni.
Postoje i naredbe ADC i SBC koje sabiraju dva registra zajedno
sa kerijem. Recimo, sabiraš dva 32-bitna broja, DX:AX i CX:BX.
Kažeš:
ADD AX,BX
ADC DX,CX
i u DX:AX imaš rezultat.
>> 3. slucaj: a sta se desava kada saberemo dva veeelika broja ciji
>> rezultat staje samo na svih 8 bita + Carry (jer kolko sam ja
>> shvatio Carry se prakticno ponasa kao 9. bit)?
Tačno. Ideš redom, sabiraš bit po bit, i ono što pretekne na
kraju (što si 'upamtio'), to je keri.
Eto, nadam se da je jasnije. Nisam tu narednih par dana, ako još
nešto nije jasno, pojasnićemo kad se vratim.
Pozdrav, Zak
asembler.219natila,
Hvala. Mislim da sam shvatio.
Jel smem da te gnjavim ako mi jos nesto zatreba?
Nemeth Attila
asembler.220ddjj,
==> Inače OBJ2ASM, uradi stvar, uglavnom ko što treba.
==> Pretvori .obj u .asm.
žini se da OBJ2ASM ima bug. Lepo se od OBJ dobije ASM ali ...
U asemblerskom programu je sve u redu osim sto kod svih CALL
instrukcija u kojima se pozivaju drugi OBJ moduli (iz iste
biblioteke) uvek stoji adresa modula koji se disasemblira (ili
možda bolje objtoasseblira) kao da se poziva rekurzivno, a nema
veze od rekurzije - proverio Turbo Disassemblerom. Dali je možda
problem u tome što sam obj-ecte dobio tlibom vadeći ih jedan po
jedan iz biblioteke (LIB za Turbo C 2.0).
asembler.221mivel,
Ispravka: instrukcije su ADC (Add With Carry) i SBB (Subtract With Borrow).
SBC je ispravno na prastarom Z80 (oMKvovo mi "bode oci", jer i sam cesto po
inerciji kodiram pogresno SBC!).
asembler.222dzakic,
> Jel smem da te gnjavim ako mi jos nesto zatreba?
Ti iznesi problem, naći će se već neko ko će da odgovori. Ne
mogu ti obećati da ću uvek imati vremena da se ovako raspišem,
ali sam u principu raspoložen da pomognem.
asembler.223dzakic,
> Ispravka: instrukcije su ADC (Add With Carry) i SBB (Subtract
Naravno, ostalo od Z80. :)
asembler.224mdimitrijevic,
Hi!
Da li bi neko mogao da mi napise brzu move naredbu. Koja premesta jedan
blok memorije na drugo mesto. Trebalo bi da mogu da zadam OFF:SEG pocetka i
OFF:SEG kraja i duzinu. Ako neko ima nesto slicno ili ako moze da napise bio
bih veoma zahvalan.
Pozdrav,
Marjan Dimitrijevic
asembler.225drpr,
Ajd pošto mi niko u pascal topiku nije odgovorio ja reko da
pitam asembleraše :))
Elem da li postoji još neki interapt se time koji se pojavljuje
u nekom intervalu vremena.Hoću pomoću njega da merimi neko
interno vreme koje mi je potrebno u programu .
Hvala u napred
cope
asembler.226natila,
Hvala.
Mozes li mi preporuciti neku dobru knjigu na ovu temu (ali koja moze da
se nabavi i kod nas)?
Nemeth Attila
asembler.227dzakic,
>> Da li bi neko mogao da mi napise brzu move naredbu.
Najbrži način da se premesti blok bajtova je:
MOV DS,source segment
MOV SI,source offset
MOV ES,destination segment
MOV DI,destination offset
MOV CX,len
REP MOVSB
Ako ti treba neki inter segmentarni ;) move, to bi se izvelo
nekakvim žongliranjem sa pomenutom kombinacijom naredbi.
Ako nisi zadovoljan brzinom, onda CX podeli sa dva, pa koristi
MOVSW koja kopira cele reči, ali tada dužina ne može biti
neparan broj.
asembler.228dzakic,
>> Elem da li postoji još neki interapt se time koji se pojavljuje
>> u nekom intervalu vremena.Hoću pomoću njega da merimi neko
>> interno vreme koje mi je potrebno u programu .
Ako sam dobro razumeo pitanje, program treba da meri vreme, samo
mu je 1/18.2 sec suviše 'grubo'?
Postoji jedan koji se izvršava oko 1000 puta u sekundi. Ne
bih znao sada tačno da ti kažem, al ako ti treba da pitamo vasu,
znam da je koristio u VCS-u (za ono brže osvežavanje ekrana).
Mada, to sigurno piše u helppc-u.
asembler.229mivel,
Za svaki slucaj, dodaj jedno "CLD" (ili STD, za smer "unazad")
pre instrukcije MOVSB/MOVSB. Stanje Direction Flaga obicno je
"navise", ali ne treba nagadjati...
Milan
asembler.230mdimitrijevic,
Hi!
HVALA MNOGO za move naredbu u asembleru.
Pozdrav,
Marjan Dimitrijevic
asembler.231spantic,
> Mozes li mi preporuciti neku dobru knjigu na ovu temu (ali
> koja moze da se nabavi i kod nas)?
Imam ja predlog. "Naučna knjiga" je izdala u tri dela knjigu M. Stojčevskog
"Savremeni 16-bitni procesori". Knjiga obuhvata teoretsku potku i detaljno
prikazuje INTEL 80X86, MOTOROLA MC 680XX kao i nešto o ZILOGU Z 8000.
asembler.232mivel,
Dopuna (opsirnih) odgovora dzakica:
a) za setovanje CF,PF,AF,ZF,SF mozes da koristis
instrukciju SAHF:
MOV AH,<flag_mask>
SAHF
b) za setovanje celog fleg registra (16-bitnog) simuliraj
povratak iz interrupt-a:
MOV AX,<flag_mask>
PUSH AX
PUSH CS
LEA AX,FLAGS_ARE_SET
PUSH AX
IRET
FLAGS_ARE_SET: ;ovde imas sadrzaj flag registra postavljen
; u prvoj instrukciji u AX registru
Pazi, posle IRET mozes da budes negde u "hipersvemiru!!!"
Strukturu (raspored bitova) flag-registra naci ces u
NG ili helppc
Puno srece!
Milan
asembler.233amilanov,
> Dali je možda problem u tome što sam
> obj-ecte dobio tlibom vadeći ih jedan po jedan iz
> biblioteke (LIB za Turbo C 2.0).
Ne znam. Iskreno, nisam se mnogo bavio OBJ2ASM-om, da bih mogao nešto
da 100% tvrdim. Ne bi bilo loše da neko ko koristi recimo MSC, da proba
da "secira" neki MSC LIB na isti način, pa da vidimo rezultate. ( možda
si i sam probao to ). Moguće je da nešto ne znamo oko OBJ2ASM, pa bilo
bi lepo da ako ga neko intenzivnije koristi, i zna nešto detaljnije
o njemu, da kaže par reći o njemu.
Pozdrav,
Milanov
asembler.234drpr,
-> Ako sam dobro razumeo pitanje, program treba da
-> meri vreme, samo mu je 1/18.2 sec suviše
-> 'grubo'?
Nije mi grubo nego neću da se igram sa sistemskim vremenom
padne mašine i vreme se poremeti :((
-> znam da je koristio u VCS-u (za ono brže
-> osvežavanje ekrana). Mada, to sigurno piše u
-> helppc-u.
Ne znam ja šta ti je to ali bi mi adresa ili već kako se zove
interapta trebala.
U napred hvala.
cope
Ps
Ovde sam se javio jer sam znao da zakče ima odgovor :)
asembler.235dzakic,
> Za svaki slucaj, dodaj jedno "CLD" (ili STD, za smer "unazad")
> pre instrukcije MOVSB/MOVSB. Stanje Direction Flaga obicno je
> "navise", ali ne treba nagadjati...
Mislim da sam negde pročitao da DOS garantuje da će 'Direction flag' na
početku izvršavanja programa biti resetovan (smer unapred). Ja se u svojim
programima na to oslanjam, te ga ne resetujem dodatno ako ga već nigde
nisam dirao. U procedurama koje se ubacuju u neke više programske jezike
sigurno da ima logike staviti za svaki slučaj jedno CLD...
asembler.237dzakic,
> Nije mi grubo nego neću da se igram sa sistemskim vremenom
> padne mašine i vreme se poremeti :((
Nema razloga da se sistemsko vreme poremeti. Int 8 pri svakom 'otkucaju'
poveća 'longint' brojač na adresi 0040:006C za jedan. Ti ga možeš iz svog
programa pročitati, pa po završetku posla kome meriš vreme ponovo.
Izračunaš razliku i eto ti proteklo vreme u 18.2-im delovima sekunde.
Ako tu vrednost i promeniš, dos i drugi programi će privremeno imati
pogrešnu informaciju o datumu i vremenu, ali će se po resetovanju sistema
sve vratiti na normalu jer se za vreme butovanja pravo vreme čita iz CMOS-a
i upisuje u ove promenljive.
To recimo koristi zbtet za vreme padanja figurice. Ako ti je problem u
paskalu, evo ti funkcije koja vraća vreme u osamnaestinkama koje je
proteklo od uključenja računara. Funkcija je iz one zz-ove zbirke rutina
za rad sa modemom:
var day_countl:word;
day_counth:word;
old_countl:word;
old_counth:word;
function timer_get:longint; assembler;
asm
push es
mov ax,$40
mov es,ax
cli
mov ax,es:[$6c]
mov dx,es:[$6e]
sti
cmp old_counth, dx
jb @calc
cmp old_countl, ax
jbe @calc
add day_countl,$B0
adc day_counth,$18
@calc: mov old_counth,dx
mov old_countl,ax
add ax,day_countl
adc dx,day_counth
pop es
end;
Na početak programa stavi i jedno:
day_countl:=0;
day_counth:=0;
old_countl:=0;
old_counth:=0;
> Ne znam ja šta ti je to ali bi mi adresa ili već kako se zove
> interapta trebala.
Kad se malo bolje prisetim :) Vasa je čini mi se programirao interapt
kontroler da mu poveća frekvenciju generisanja interapta 8 pa je onda
staru rutinu pozivao svaki n-ti put.
asembler.238duduk,
> -> znam da je koristio u VCS-u (za ono brže
> -> osvežavanje ekrana). Mada, to sigurno piše u
> -> helppc-u.
> Ne znam ja šta ti je to ali bi mi adresa ili već kako se
> zove interapta trebala.
> U napred hvala.
Ja baš pre neki dan pitao Vasu. Int je 70h i normalno se ne
generiše, dakle potrebno ga je aktivirati. U datoteci je asm sors
enable70 i disable70 procedura koje ga (de)aktiviraju.
asembler.239duduk,
Zaboravih ...
70.asmasembler.240nnedovic,
Hi,
Zna li ko postoji li "nešto" (verovatno neki port) što sadrži
liniju koju elektronski mlaz u katodnoj cevi trenutno ispisuje na
ekran (raster)? dzakic i vasic su u BLP pominjali nešto o portu
$3BA, ali on u nekim svojim bitovima drži samo informaciju da li
je elektronski mlaz stigao do kraja linije, do kraja ekrana isl.
Nikola
P.S. I vreme je već jednom da neko baci na SEZAM spisak svih
portova sa njihovim značenjem!
asembler.241drpr,
-> Ja baš pre neki dan pitao Vasu. Int je
-> 70h i normalno se ne generiše, dakle potrebno
-> ga je aktivirati. U datoteci je asm sors
-> enable70 i disable70 procedura koje ga
-> (de)aktiviraju.
->
Hvala ti puno .Ali postoji jedan problem ja ne radim u
asembleru već u pascalu i to TP5.5 koji nema mogućnost da pišem
asm sors aj jel može neko da bude dobar pa da mi to "prevede"
na tp
cope
asembler.242nnedovic,
>> Ja baš pre neki dan pitao Vasu. Int je 70h i normalno se ne
>> generiše, dakle potrebno ga je aktivirati. U datoteci je asm
>> sors enable70 i disable70 procedura koje ga (de)aktiviraju.
Stani, a šta radi taj interapt? Jel' to taj što se poziva 1000
puta u sekundi? Kod mene se poziva mnogo ređe (negde oko 0 puta u
sekundi :)))), čak i posle aktiviranja tim enable70-om.
Inače, koliko ja znam, to je hardverski IRQ8 (sat realnog
vremena), i bilo bi logično da se poziva 100 puta u sekundi
(svake stotinke), ali neće...
Njemu sličan bi trebalo da bude int 71h (IRQ9-video), koji
generiše video-adapter. I on bi trebalo da se generiše da li 60
puta u sekundi, ali posle ovoga ne znam šta da mislim...
asembler.243dzakic,
> puta u sekundi? Kod mene se poziva mnogo ređe (negde oko 0 puta
> u sekundi :)))), čak i posle aktiviranja tim enable70-om.
Vasa reče da se iz za sada nepoznatih razloga pomenuta
procedura Enable70 mora pozvati 2 (dva!) puta da bi se
interapt zaista aktivirao. Ne upamtih kolka mu je frekvencija,
valjda piše u helppc-u, nikako da pogledam :)
asembler.244mstanic,
pitanje
Mislim da je već bilo, kako se može neki kod ubaciti
u keyboard buffer, kao da je pritisnut odgovarajući
taster? Mislim da je bilo, ali stradao mi text u soru
a nisam baš raspoložen da sve ponovo skidam.
asembler.245mstanic,
pitanje (možda sam već preterao sa pitanjima?)
U svoj dokumantaciji koju ima za mouse i trackball
(logitech, genius i chicony) plus u helppc i dosref nisam
našao kompletno objašnjenje uz funkcije 12, 20 i 24.
Radi se o pozivu korisničkih rutina koje se aktiviraju pri
nekom događaju (pritisak na mouse taster, pomeranje,
pritisak Alt, Ctrl (kod chicony-ja) ili kombinacije)).
Ja sam probao i on zaista aktivira te rutine ali prilikom
povratka mi blokira računar.
Najdetaljnije objašnjenje sam našao u dokumentaciji uz
chicony keyboard with trackball i evo šta piše:
NOTE :
■ Before ending your program, you must set the interrupt
call mask to 0.
■ If the call mask and subroutine remain defined when the
program is no longer running, the subroutine will still
be executed if one of the conditions defined by the mask
call occurs.
Ako neko zna nešto neka napiše.
asembler.246bearboy,
˙¨:> Hvala ti puno .Ali postoji jedan problem ja ne radim u
˙¨:> asembleru već u pascalu i to TP5.5 koji nema mogućnost da pišem
˙¨:> asm sors aj jel može neko da bude dobar pa da mi to "prevede"
˙¨:> na tp
Uzmeš lepo masm, recimo, asembliraš u .OBJ i gotovo...
asembler.247obren,
> U svoj dokumantaciji koju ima za mouse i trackball
> (logitech, genius i chicony) plus u helppc i dosref nisam
> našao kompletno objašnjenje uz funkcije 12, 20 i 24.
> Radi se o pozivu korisničkih rutina koje se aktiviraju pri
> nekom događaju (pritisak na mouse taster, pomeranje,
Ne znam za te funkcije 20 i 24 ali 12 (iliti 1Ch) sam koristio u jednom
programu u C-u i mogu da ti kažem svoja iskustva:
- Funkcija mora da se zavšava sa retf a ne sa iret, pa ako radiš u nekom
višem programskom jeziku vrlo lako ćeš naleteti na probleme. Ako funkciju
deklarišeš kao:
void far mouse_event()
umesto
void interrupt mouse_event()
onda imaš retf umesto iret na kraju, ali gubiš sve reference sa podacima
unutar te svoje funkcije jer kompajler ne inicijalizuje DS na početku jer
ne zna da nju ne poziva program već drajver za miša. Ako staviš onu drugu
varijantu (sa interrupt) onda imaš svu potrebnu inicijalizaciju za pravilan
rad ali imaš iret umesto retf. Ja sam ostavio interrupt, preveo program na
.ASM i ručno doterao šta ne valja.
Drugo na šta se treba obratiti pažnja je da se OBAVEZNO na kraju programa
pozove ista funkcija sa nulom kao maskom za pozive, što si koliko vidim i
sam našao. Najlakše je da se to reši sa atexit() ili preko nekog destruktora
ako radiš u cpp-u.
E sad ne znam treba li ti ono osnovno, tj. značenje pojedinih bitova pri
psosleđivanju maske drajveru, sadržaj registara pri pozivu i sl. što se može
naći i u dokumentaciji za pacova (bar kod mene). Kaži ako treba, da ne kucam
ako to već imaš.
asembler.248mivel,
Pri postavljanju interrupt subrutine odredjuju se dogadjaju
pri kojim ce mouse driver pozvati ovu subrutinu, kao i
adresa subrutine:
mov ax,12
mov cx,condition_mask
les dx,subroutine_address
int 33
Po zavrsetku programa, kod ove subrutine ostaje u memoriji
i biva pozivan pri svakoj od predvidjenih promena misa
(pomeranje, pritisak dugmeta, otpustanje dugmeta).
Jasno, ako se ucita neki drugi program, kod rutine ce
biti prekriven novim sadrzajem i svaki poziv od strane
mouse drivera daje nepredvidljive rezultate.
Zato, pre zavrsetka programa treba deaktivirati subrutinu:
mov ax,12
xor cx,cx
int 33h
Funkcija 24 se ponasa isto kao funkcija 12, a predstavlja
alternativnu subrutinu. Koju ce od ove dve rutine mouse driver
da poziva zavisi od toga koja je aktivna - njihova aktivnos
se menja funkcijom 20 (interrupta 33, svakako)
Tako sam bar ja shvatio, i na taj nacin mi svi programi
dobro rade (i dobro ne rade po zavrsetku :))) )
Pozdrav
Milan
asembler.249ddjula,
U nekoj od poruka bilo je reči o interaptu 70h, pa sam se zainteresovao i
eksperimentisao malo. Evo šta sam otkrio: interapt izaziva real-time clock i
to 1024 puta u sekundi. Da bi se koristio, mora dozvoliti clock-u da zahteva
interapt i mora se dozvoliti da procesor primeti taj interapt (programiranjem
interapt kontrolera). To sve radi ENABLE70, program koji je prikačen za neku
od prethodnih poruka. Tako je to u teoriji... U praksi, postoji BIOS funkcija
WAIT EVENT koja koristi taj INT 70h. Ta funkcija programira i gore navedene
registre. Tako kad ja uključim INT 70h, BIOS ga isključi. Međutim kad se dva-
put pozove ENABLE70, BIOS ga ne isključi (pojma nemam zbog čega), već setuje
tajmer da broji do maksimalne vrednosti, a to je oko 68 min. Posle toga ga
opet isključi! Jedno od rešenja je da se ne programiraju čipovi direktno, već
da to uradi BIOS. Treba mu zadati da broji do maksimalne vrednosti - FFFFFFFFh
Šsec. Te dve reči BIOS čuva na adresi LO 0:49Ch i HI 0:49Eh. Treba samo obez-
bediti da se u jednom u sat vremena upiše npr. FFFFh u 0:49Eh. Tako će tajmer
stalno brojati. Isključivanje INT 70h se može uraditi isključivanjem tajmera,
opet preko BIOS-a. Napomena: ovaj interapt značajno usporava sistem (kod mene
oko 12% po PCT-u i to u slučaju da se na njega kači samo mali test program)!
Ako neko ima bolju ideju u vezi ovog ili nađe neki drugi interapt obavezno
neka napiše...
Pitanja: čemu služi SEQUENCER na VGA karti i kako se programira i šta je to
PEL tj. PEL mask? Kad se menja taj PEL, menjaju se boje (izgleda nešto radi sa
paletom), međutim ne shvatam po kom principu se menjaju boje...
Pozdrav, Đula
──────────────────────────────────────────────────────────────────────────
INT 15h, 83h (131) Event Wait
Modifies a byte in the user's memory after a specified time interval.
Control is transferred to the caller immediately after this service is
called.
On entry: AH 83h
AL Subservice
00h - Set interval
01h - Cancel set interval
ES:BX - Pointer to byte that will be posted
CX:DX - Microseconds until posting (long integer)
Returns: Carry Set if service not supported, else cleared
──────────────────────────────────────────────────────────────────────────
After this service is called, control is returned immediately to the
caller. This service does not work by delaying and then returning
control to the user, but returns control immediately; the user must
periodically look at the byte specified (pointed to by ES:BX) to
determine when the interval has elapsed.
Notes: The PC, PCjr, and the XT dated 11/08/82 do not
support this service. The AT dated 1/10/84 is only
able to set the interval; thus the value in AL is
not used.
The byte is posted by setting the high bit (bit 7).
To test the end of the interval, make sure the high
bit of the byte is clear before calling Subservice 0
(Set Interval).
The real-time clock is used to count the number of
microseconds.
The granularity of the time is 976 microseconds.
CX is the high-order word of the count. For example,
if CX is 98h and DX is 9680h, then a 10-second delay
would be specified.
asembler.250dzakic,
Evo šta Geniusov GMOUSE.DOC Kaže o funkcijama 12 i 20:
Function 12: Define Event Handler Entry Location
Function 12 defines the address entry location of an event handler routine
which
is called when a certain event (defined by the call mask) occurs. The program
is temporarily interrupted by the mouse driver. At the end of the event handler
routine the program continues at the point it was interrupted.
The call mask is a single integer value defining the conditions which will
cause
an interrupt.
A specific condition corresponds to a bit in the call mask:
Mask Bit Condition
--------------------------------------------------
0 cursor location changed
1 left button pressed
2 left button released
3 right button pressed
4 right button released
5 middle button pressed
6 middle button released
7 - 15 not used
In order to call the event handler routine, set the mask bit to 1 and put the
mask in at CX (G3%). To disable, set the mask bit to 0 and put the mask in at
CX (G3%). Always be sure to set the call mask to 0 before the program
finishes.
(Leave the system in the same state upon exit as if was upon entrance.)
8086 Register
Input: AX = 12
CX = call mask
ES:DX = pointer to event handler routine
Return: none
BASIC
Input: G1% = 12
G3% = call mask
G4% = pointer to event handler routine
Return: none
Example:
110 ' Active BUTTDOWN Event Handler Routine, When One or More Buttons Pressed
120 G1% = 12
130 G3% = &H002A : G4% = BUTTDOWN%
140 CALL GMOUSE ( G1%, G2%, G3%, G4% )
Function 20: Swap Event Handler Entry Location
Function 20 sets new values for the call mask and event handler routine
address for mouse hardware interrupts and return the values that were
previously specified.
For detail information to reference Function 12 description.
8086 Register
Input: AX = 20
CX = new call mask
ES:DX = new pointer to event handler routine
Return: CX = old call mask
ES:DX = old pointer to event handler routine
BASIC
Input: G1% = 20
G3% = call mask
G4% = pointer to event handler routine
Return: G3% = old call mask
G4% = old pointer to event handler routine
Example:
100 ' Swap Event Handler Entry Location
110 ' Active BUTTDOWN Event Handler Routine, When One or More Buttons Pressed
120 G1% = 20
130 G3% = &H002A : G4% = BUTTDOWN%
140 CALL MOUSE ( G1%, G2%, G3%, G4% )
asembler.251dzakic,
Evo šta Vasa ima da kaše o int 70h (pošto ga već njegov VCS koristi, a
iz VCS-a su izvučene i procedure ENABLE70 i DISABLE70 - baš lepo od
duduka što je to napomenuo):
------------------------------
> Tako kad ja uključim INT 70h, BIOS ga isključi. Međutim kad se dva-
>put pozove ENABLE70, BIOS ga ne isključi (pojma nemam zbog čega), već setuje
>tajmer da broji do maksimalne vrednosti, a to je oko 68 min. Posle toga ga
>opet isključi!
E, tako nešto sam i ja pitao pre neki mesec a zahvaljujući tvojoj poruci
konačno sam našao i odgovor:
BIOSov int 70h handler po svemu sudeći radi nešto kao ovo:
sub word ptr ds:[49Ch],976 ; 976 = 1e6/1024
jnc loc1
dec word ptr ds:[49Eh]
jc iskljuci_int_70h
loc1: ....
Inicijalno na 0:49Ch stoji 00000000h. Znači, prvi put kada se dogodi int
70h, biće odmah i isključen! Kada se drugi put pozove ENABLE70 tamo će se
nalaziti FFFFxxxxh i u sledećih sat vremena sve izgleda OK.
Rešenje prvog dela problema: (dvostruko pozivanje ENABLE70) Pre
pozivanja ENABLE70 staviti 0FFFFh u 0:49Eh. Rešenje drugog dela problema
(isključenje posle 68 min) je ono što si i sam rekao - s vremena na
vreme u 0:49Eh staviti 0FFFFh.
>Isključivanje INT 70h se može uraditi isključivanjem tajmera,
>opet preko BIOS-a.
Za probu sam ubacio u VCS rad sa int 70h preko biosa (jeste, radi, čak
je i par bajtova kraći), ali me brine što i NG i HelpPC pominju neke
rane verzije AT BIOSa koje nemaju ovu funkciju ili bar ne kompletnu -
tj. bez mogućnosti isključivanja. Zato mislim da ću radije i ubuduće sam
obavljati taj posao. Nemoj samo da mi neko sad kaže: "Ma ko još drži te
matore krntije?" Moj bios je iz '87 (a računar kupljen prošle godine -
hvala Jugodati) pa mi uopšte nije teško da zamislim i neki iz '84.
V && !Z
asembler.253mstanic,
>>> Radi se o pozivu korisničkih rutina koje se aktiviraju
>>> pri nekom događaju (pritisak na mouse taster, pomeranje,
Hvala svima, mada sam sve to znao je imam dokuntaciju za
nekoliko miševa i trekbal(ova)a.
Posle sam otkriu u čemu je štos, naime nije hteo da se
vrati iz tih funkcija a ja sam ga u tome zeznuo (postavljao
sa AX na nulu)
Evo kako to izgleda:
event_hand proc far
sti
push ax
ovde sledi program
po želji ali meni je trebao
ovaj deo
pop ax
ret
event_hand endp
Još jednom hvala svima na uloženom vremenu i naporu.
asembler.254dejanr,
Da li je neko uspeo da napiše program čija bi ekstenzija bila .EXE
i koji bi se normalno izvršavao (recimo, kao rezidentni) ali koji
bi mogao da se stavi i u CONFIG.SYS kao DEVICE=PERA.EXE? Ovo je
moguće, recimo SMARTDRV je takav. Zna li neko kako?
asembler.255d.petrovic,
A, jel može neko da predpostavi zašto sa VCS-om (vasićeva simulacija cga
za herc) program (igra) koja na 386/33/svga radi normalno kod mene na
286/16/herc+vcs radi 3-5 puta brže ?
asembler.256janko,
> Da li je neko uspeo da napiše program čija bi ekstenzija
> bila .EXE i koji bi se normalno izvršavao (recimo, kao
> rezidentni) ali koji bi mogao da se stavi i u CONFIG.SYS
> kao DEVICE=PERA.EXE? Ovo je moguće, recimo SMARTDRV je
> takav. Zna li neko kako?
Za početak, pogledaju se reference koje definišu .EXE i .SYS
fajlove, i algoritme koji se sprovode nad njima pri unosu u
memoriju. ;)
asembler.257skoprivica,
-> ali me brine sto i NG i HelpPC pominju neke rane verzije AT BIOSa
-> koje nemaju ovu funkciju ili bar ne kompletnu
Evo ja imam bios iz '85 god, pa napisi neki programcic i posalji
mi i kazi sta treba da se desi, a ja cu ti reci sta se desilo...
Aje... CTEBO.
asembler.258obren,
> Da li je neko uspeo da napiše program čija bi ekstenzija bila .EXE
> i koji bi se normalno izvršavao (recimo, kao rezidentni) ali koji
> bi mogao da se stavi i u CONFIG.SYS kao DEVICE=PERA.EXE? Ovo je
> moguće, recimo SMARTDRV je takav. Zna li neko kako?
To su *device driveri* sa ekstenzijom .EXE, ima to u MS DOS Programmer's
Reference, i nije nešto posebno teže od pravljenja običnih .SYS drajvera.
Problem je (bar tako piše u dokumentaciji) što ovakvi drajveri ne rade sa
IBM DOS-om jer je kod njega .EXE loader smešten u COMMAND.COM koji nije
aktivan dok se interpretira config.sys.
Doduše čuo sam priče da se i neki obični .EXE programi mogu startovati
iz config.sys-a ali ja još ne nađoh takav... :)
asembler.259mivel,
Bez problema! U prilogu je primer sa kratkim opisom
Ka Milan
odgovor.zipasembler.260mstanic,
>> Da li je neko uspeo da napiše program čija bi ekstenzija
>> bila .EXE i koji bi se normalno izvršavao (recimo, kao
>> rezidentni) ali koji bi mogao da se stavi i u CONFIG.SYS
>> kao DEVICE=PERA.EXE? Ovo je moguće, recimo SMARTDRV je
>> takav. Zna li neko kako?
Ne znam kako .EXE ali imam u nekom časopisu (Nemačkom) za
.COM verziju, zapravo kako se .COM pretvara u .SYS pa ako
znaš Nemački mogu da ga skeniram i pošaljem.
asembler.261nnedovic,
Hm, igrao sam se sad malo sa tim Vasinim interaptom 70h i zakačio
za njegov vektor rutinu koja samo pushuje i popuje registre i
proverava da li je već u toku opsluživanje tog interapta. Kad sam
startovao programčić, sistem je poludeo (što bi automehaničari
rekli, čini mi se da je crko komandni procesor). Naime, nije se
ukočio nego je na (skoro) svaku komandu (pa čak i na format c: )
odgovarao sa
""
a na neke komande imao začuđujuće originalno :) ponašanje.
Jeste interesantno, ali ga treba i shvatiti. Dakle?
asembler.262ddjj,
==> Inače OBJ2ASM, uradi stvar, uglavnom ko što treba.
==> Pretvori .obj u .asm.
žini se da OBJ2ASM ima bug. Lepo se od OBJ dobije ASM ali ...
U asemblerskom programu je sve u redu osim sto kod svih CALL
instrukcija u kojima se pozivaju drugi OBJ moduli (iz iste
biblioteke) uvek stoji adresa modula koji se disasemblira (ili
možda bolje objtoasseblira) kao da se poziva rekurzivno, a nema
veze od rekurzije - proverio Turbo Disassemblerom. Dali je možda
problem u tome što sam obj-ecte dobio tlibom vadeći ih jedan po
jedan iz biblioteke (LIB za Turbo C 2.0).
asembler.263ddjula,
> iz VCS-a su izvučene i procedure ENABLE70 i DISABLE70 - baš lepo od
> duduka što je to napomenuo):
^^^^^^
Nije mi baš jasno šta sam ja to napomenuo i što sam duduk, ali ja sam te
procedure uzeo sa SEZAM-a, a sa tim VCS-om nemam nikakve veze - ne znam tačno
ni čemu to služi.
Pozdrav, Đula
asembler.264ddjula,
> Evo ja imam bios iz '85 god, pa napisi neki programcic i posalji
> mi i kazi sta treba da se desi, a ja cu ti reci sta se desilo...
Evo, šaljem ti mali test programčić, pokreneš ga sa test70, a posle INT 70
možeš gasiti i paliti sa 70off i 70on. Ako imaš HERCULES, trebalo bi da se na-
sred ekrana pojavi "" (smajli). Ako imaš VGA, biće isto, samo će da menja bo-
ju 1024 puta u sekundi. Pogledaj i koliko ti se usporio sistem...
Pozdrav, Đula
int70.arjasembler.265mjova,
> ju 1024 puta u sekundi. Pogledaj i koliko ti se usporio
> sistem...
nisam probao, ali ako radi neki posao koji zahteva malo vremena (ali
samo malo) osetno je usporenje, ipak se izvršava suviše često.
asembler.266mjova,
jednom prlikom neko je ostavio breakl ovde, ali taj nije baš
bio transparentan kako treba jer je 'otpuštanje' ctrl-break-a
gušio. malo sam ja to prepravio, pa sad evo toga. mislim da
sad ctrl-break radi isto kao i bez breakl-a, ali to nikad nije
ni radilo dobro ;). sad je gotiva samo na ctrl-alt-4. toliko.
breakl.arjasembler.267pstojanovic,
Dobio sam u firmi neku Panasonikovu tel. centralu, koja ima tu
mogucnost da salje na serijski stampac preko RS232 odredjene tekstualne
statisticke zapise. E sad, posto imam visak paralelnih stampaca, prva
solucija je bila da se ne kupuje serijski vec da se proba nabaviti
kartica za prebacivanje sa serijske veze na paralelnu. Medjutim,
takvu karticu nisam uspeo nabaviti, pa mi je palo na pamet da preko
jednog racunara preuzimam signale sa centrale (simuliram stampac) i
stavljam u datoteku koja bi se mogla kasnije obradjivati. Sta mislite,
da li je to moguce ?
asembler.268dejanr,
>> Bez problema! U prilogu je primer sa kratkim opisom
Pre svega, puno hvala na primeru.
No postoji mali problem - .EXE fajl se zaista može instalirati
sa DEVICE = xxx.EXE iz CONFIG.SYS-a, ali se kao samostalan program
ne može startovati iako mu je ekstenzija EXE. Bolje reći, može
se startovati ali se po startovanju računar zaglupi.
asembler.269dzakic,
> A, jel može neko da predpostavi zašto sa VCS-om (vasićeva simulacija cga
> za herc) program (igra) koja na 386/33/svga radi normalno kod mene na
> 286/16/herc+vcs radi 3-5 puta brže ?
Može. :) Može čak i da objasni, samo ako si raspoložen da slušaš (čitaš)
o različitim adresama CGA i herc video portova, o presretanju čitanja sa
(nepostojećih) CGA portova i njihovom preusmeravanju na herca i sličnim
prljavštinama, kao i o pogrešnim podacima koje mali žuti daju u
dokumentaciji za svoj hardver.
Ako nisi, i ako se ta igra koju pominješ nekim slučajem zove 'Dangerous
Dave' onda će ti i ovo pomoći:
BA DA 03 EC C7 D2 A8 08 <- originalni sadržaj
BA 80 <- izmene
Ovo je patch za DAVE.EXE posle kojeg će se na hercu igra odvijati
normalnom brzinom (čak i na tvojoj ljutoj makini;). Neće više ni
blokirati na XT-u. PAčNJA! Sve ovo se odnosi **SAMO** na herca! Za
ostale kartice treba sačuvati nekrpljenu verziju.
Copyleft za ovo je (naravno) Vasin.
ps. Imao sam tu negde i pokicu za bezbroj života, samo sad nikako ne
mogu da je nađem... :(
asembler.270dzakic,
>> iz VCS-a su izvučene i procedure ENABLE70 i DISABLE70 - baš lepo od
>> duduka što je to napomenuo):
> ^^^^^^
> Nije mi baš jasno šta sam ja to napomenuo i što sam duduk, ali ja sam te
> procedure uzeo sa SEZAM-a, a sa tim VCS-om nemam nikakve veze - ne znam
> tačno ni čemu to služi.
Ma neeee... :) Pogledaj kako se zove osoba koja je te procedure
*ostavila* na Sezam, ili jednostavno otkucaj:
res sh duduk
asembler.271dzakic,
> ali me brine što i NG i HelpPC pominju neke
> rane verzije AT BIOSa koje nemaju ovu funkciju ili bar ne kompletnu -
> tj. bez mogućnosti isključivanja.
U stvari, funkcija za isključivanje (AX=8301h) i nije neophodna:
Dovoljno je na 0:49Ch staviti 00000000h i pri sledećem nailasku INT 70h,
bios će sam da ga isključi.
asembler.272mivel,
Izvinjavam se, nisam dobro protumacio pitanje. U svakom slucaju,
interesantno je i probacu malo da promozgam ...
asembler.273mstanic,
>> jednog racunara preuzimam signale sa centrale
>> (simuliram stampac) i stavljam u datoteku koja bi se
>> mogla kasnije obradjivati. Sta mislite, da li je to
>> moguce ?
Svakako.
asembler.274dejanr,
>> pa mi je palo na pamet da preko jednog racunara preuzimam signale
>> sa centrale (simuliram stampac) i stavljam u datoteku koja bi se
>> mogla kasnije obradjivati. Sta mislite, da li je to moguce ?
Mislim (tj. ubeđen sam) da je moguće. Štaviše, ne moraš da se "patiš"
sa asemblerom, lepo će poslužiti i neki C ili paskal, a bogami i bejzik
koji je za tu RS232 komunikaciju još i najpogodniji.
asembler.275d.petrovic,
Ă> Može. :) Može čak i da objasni, samo ako si raspoložen da slušaš
Ă> (čitaš) o različitim adresama CGA i herc video portova, o
Ă> presretanju čitanja sa
Gkmpfhlj! Mani me bre, dosta mi je da znam da postoji logično objašnjenje.
Neću da se mešam u prljave igre.
Ă> Ako nisi, i ako se ta igra koju pominješ nekim slučajem zove
Ă> 'Dangerous Dave' onda će ti i ovo pomoći:
A, da izmisliš ( ili Vasić) još nešto tako štrokavo za Supremacy ?
Ă> normalnom brzinom (čak i na tvojoj ljutoj makini;). Neće više ni
Pa dobro bre! A šta bi rek'o da imam Amigu? ;)))
asembler.276kvelkovski,
>> Doduse cuo sam price da se i neki obicni .EXE programi mogu startovati
>> iz config.sys-a ali ja jos ne nadoh takav... :)
INSTALL=C:\DOS\SHARE.EXE
A bio i primer o startovanju Win31 iz config.sys-a.
Kupe
asembler.277dejanr,
Evo šta kažu na BIX-u po pitanju .EXE programa koji je i .SYS
drajver. Ako je neko raspoložen da proba, garantovana mu je
svetska slava (ili bar prilog u "Bajtovima lične prirode" ;)
==========
ibm.dos/secrets.3 #4021, from barryn, 506 chars, Sun Sep 27 13:31:33 1992
Comment to 4020.
----------
To make an executable file (.EXE) usable as a device driver,
construct the .EXE file so that the header and relocation table
are followed immediately by the device driver image. The memory
image of the executable file then follows the device driver
in the file.
If you know someone with a XIRCOM pocket token ring adapter,
ask to borrow a copy of their SMARTLSP.EXE program. It's a good
example of a combination .EXE/.SYS file. You can hex-dump the
first part of the file to see the relationships.
asembler.278zormi,
* Doduše čuo sam priče da se i neki obični .EXE programi mogu
* startovati iz config.sys-a ali ja još ne nađoh takav... :)
Koliko se sećam, programi iz paketa HYPER za cache su takvi.
asembler.279mstanic,
>> example of a combination .EXE/.SYS file. You can hex-dump
>> the first part of the file to see the relationships.
Hiperdisk je isto .EXE i .SYS, bar tako piše u uputstvu.
asembler.280dzakic,
> A, da izmisliš ( ili Vasić) još nešto tako štrokavo za Supremacy ?
Hm. Pa nije štrokava pokica, nego je štrokavo kad interapt rutina (70h)
menja registre i utiče na tok izvršavanja prekinutog programa - izigrava
rezidentnu zakrpu. :) A i nemam(o) Supremacy, kad smo već kod toga.
Probaj sam da središ, a ovo bi trebalo da ti pomogne: (Ako su simptomi
isti, verovatno je i uzrok.)
Prvo u .EXE-u potraži niz BA DA 03, tj 'mov dx,3DAh'. Ako negde iza toga
sledi i jedno EC ('in al,dx') onda si na pravom mestu. Ono BA DA 03 onda
zameniš sa BA BA 03 ('mov dx, 3BAh'). Time je pola posla završeno -
čitanje sa CGA porta zamenjeno je čitanjem sa herca. Ali, i sami bitovi
na portu su različito razmešteni: Negde iza ovoga trebalo bi da se nadje
i A8 08 ('test al,8') ili 28 08 ('and al,8'). 08 zameniš sa 80. To bi
onda trebalo da bude to. Možda će biti potrebno napraviti ove izmene na
više mesta.
asembler.281obren,
>* Doduše čuo sam priče da se i neki obični .EXE programi mogu
>* startovati iz config.sys-a ali ja još ne nađoh takav... :)
>
> Koliko se sećam, programi iz paketa HYPER za cache su takvi.
Pa hyper nije običan, on je predviđen i za takvo strtovanje što piše
u dokumentaciji. Svaki program koji se tako instalira ima na samom početku
device header - nije to neka mudrost napraviti (uz poruku je ZZ-ov HEX
drajver u .EXE obliku, naravno proširen procedurom koja se izvršava u
slučaju startovanja iz komandne linije).
Ono što sam čuo je da je moguće *STARTOVATI* direktno iz config-a neki
program. Konkretno, mazali su me da su na neki školski računar instalirali
program preveden iz TP-a koji zahteva šifru, ali da je caka što su ga umesto
u autoexec, stavili u config pa se nije mogao sprečiti start lupanjem po
kontrol-brejku dok traje butovanje. Ja se naivan posle ubio da tako nešto
postignem, ali tad sam još bio mlad i neiskusan ;)
hex-exe.zipasembler.282janko,
> Ono što sam čuo je da je moguće *STARTOVATI* direktno iz
> config-a neki program. Konkretno, mazali su me da su na
A zar nije? Ili ja nisam nešto razumeo u tvojoj priči?
asembler.283ddjula,
> Može. :) Može čak i da objasni, samo ako si raspoložen da slušaš (čitaš)
> o različitim adresama CGA i herc video portova, o presretanju čitanja sa
> (nepostojećih) CGA portova i njihovom preusmeravanju na herca i sličnim
Ja sam raspoložen! Posebno me interesuje kako se može presresti čitanje i
upis u I/O portove, pošto sam do sada bio uveren da to nije moguće.
Pozdrav, Đula
asembler.284obren,
>> Ono što sam čuo je da je moguće *STARTOVATI* direktno iz
>> config-a neki program. Konkretno, mazali su me da su na
>
> A zar nije? Ili ja nisam nešto razumeo u tvojoj priči?
Prilično loše sam se izrazio - mislio sam na obične programe, recimo
napišeš u nekom jeziku, prevedeš i staviš kao device=xxxx
asembler.285mivel,
EXE/SYS
1) svaki device driver se *STARTUJE* direktno iz config-a i ima potpunu
kontrolu na sistemom sve dok ne odluci da zavrsi INIT rutinu!
2) svaki EXE fajl koji ima Device Driver header odmah iza EXE headera
moze se startovati kao device driver, jasno uz postovanje strukture
opisane u dokumentaciji o device driverima
3) ako taj EXE program ima neku drugu start adresu, onda ce, po startovanju
iz DOS-a, dobiti kontrolu na tom mestu; kada se startuje iz CONFIG-a,
onda je prva rutina koja se izvrsava INIT. Znaci, program ima dve
razlicite ulazne tacke.
Mozda je dejanr zelio da program startuje iz DOS-a, ostavi ga u memoriji
tako da ovaj ima ulogu Device Drajvera?? I to je sigurno moguce, ali
bi verovatno trebalo malo brljati po nedokumentovanim oblastima i po
prvom memorijskom bloku. Cini mi se da je za tako nesto najsigurnije
da se program startuje iz CONFIG.SYS-a, instalira neka vrsta SHELL-a
device drajvera, a da se kasnije startovanjem iz DOS-a samo menja
njegov modus operandi?!
Milan
asembler.286skoprivica,
-> Evo, saljem ti mali test programcic, pokrenes ga sa test70, a posle
-> INT 70 mozes gasiti i paliti sa 70off i 70on. Ako imas HERCULES,
-> trebalo bi da se na- sred ekrana pojavi "" (smajli). Ako imas VGA,
-> bice isto, samo ce da menja bo- ju 1024 puta u sekundi. Pogledaj i
-> koliko ti se usporio sistem...
Evo skace mi ovaj tvoj smajli po sredini ekrana, i posto imam
EGA karticu, treperi, ali je pretezno beo (mislim da je to zbog
brzine). Inace, kad dir-nem neki dir, ostaju raznobojni smajliji
na mestima gde je bio, tj u toj koloni u kojoj je smajli (razumes?).
E, SI (iz 6.0) kaze 9.2 (testirano na 286) bez "uputrebe" smajlija
tj. INTa 70, a posle test70 izjavljuje 8.8, nije strasno...
Aje... CTEBO.
PS: BIOS je AWARDov, i datiran je 11/15/85, tj. 15. novembar 1985.
asembler.287dejanr,
>> Mozda je dejanr zelio da program startuje iz DOS-a, ostavi ga u memoriji
>> tako da ovaj ima ulogu Device Drajvera??
U stvari, ideja je da se korisniku da fajl koji se, recimo, zove X.EXE
Ako mu je volja, može da ga ugradi u CONFIG.SYS sa DEVICE=X.EXE i da
onda njegove usluge koriste i ostali programi koji se učitavaju iz
CONFIG.SYS-a. Ako mu se to ne sviđa, može da ga stavi u AUTOEXEC.BAT
ili čak da ga kasnije startuje kucajući X, kada mu usluge tog drajvera
trebaju. Kako će "visiti" na nekom interaptu, nije nužno da bude
device driver.
Mislim da će to moći da se uradi sa ovim informacijama, hvala svima
na pomoći.
asembler.288d.petrovic,
Ă> Prilično loše sam se izrazio - mislio sam na obične programe,
Ă> recimo napišeš u nekom jeziku, prevedeš i staviš kao device=xxxx
Koji ti dos čuči ? Verovatno su to izveli (ja sam recimo ced tako
stavljao) sa install. To ide u dos-u 5.00 i ide iz config-a.
Pozdrav, Dejan
asembler.289obren,
> Koji ti dos čuči ? Verovatno su to izveli (ja sam recimo ced tako
> stavljao) sa install. To ide u dos-u 5.00 i ide iz config-a.
Uopšte nisam znao to za INSTALL! Reče to i kvelkovski, ali nije mi palo
na pamet da probam sa bilo kojim programom. Sad mi je jasno kako je ono što
sam naveo izvedeno, thanx obojici!
asembler.290d.petrovic,
Ă> Prvo u .EXE-u potraži niz BA DA 03, tj 'mov dx,3DAh'. Ako negde iza
Ă> toga sledi i jedno EC ('in al,dx') onda si na pravom mestu. Ono BA
Ă> DA 03 onda zameniš sa BA BA 03 ('mov dx, 3BAh'). Time je pola posla
Ă> završeno -
Neeeeima ga niđe. Igra se sastoji od GAME.EXE i gomile .BIN .GPH fajlova.
Ni u jednom .bin ili ti u game.exe nema tog niza (BA DA 03).
asembler.291dzakic,
> Ja sam raspoložen! Posebno me interesuje kako se može presresti čitanje i
> upis u I/O portove, pošto sam do sada bio uveren da to nije moguće.
Dobro ako si raspoložen, mada ćeš se verovatno razočarati kad vidiš o
čemu se stvarno radi. Koliko ja znam, upis i nije moguće presresti, ali
se sa čitanjem može nešto postići (nekad i negde).
Evo kako obično izgleda petlja koja na CGA proverava horizontal retrace
(za izbegavanje 'snega'):
...
mov dx,3DAh
petlja1:in al,dx ; Ako se u petlju uleti pri kraju v.r.-a,
test al,01h ; sačeka se da prodje ceo.
jnz petlja1
petlja2:in al,dx
test al,01h ; žeka se početak sledećeg...
jz petlja2
...
E sad, ako se ovo izvršava na herkulesu, petlja1 je mrtva jer in al,dx
uvek daje 0FFh i računar blokira. Tu na scenu stupa tajmer interapt
rutina. (8 ili 70h - svejedno) Prvo proveri da li se u dx nalazi 3DAh.
Onda proveri da li povratna adresa pokazuje na kod naredbe 'in al,dx'
(0ECh). Ako je i jedno i drugo tačno, onda treba 'odglaviti' program:
Recimo tako što se obavi 'in al, 3BAh' (herkulesov status port), bitovi
rezultata se srede da odgovaraju onome što bi dala CGA, povratna adresa
uveća za jedan da se preskoči problematični 'in al,dx' čiji smo posao
upravo obavili, i to je to.
asembler.292mivel,
Citanje ili pisanje I/O portova MOGUCE JE PRESRESTI,
kao uostalom i svaku drugu instrukciju preko Interrupta 1
(Single Step, Trap). Fajl uz ovu poruku prikazuje nacin
postavljanja u Single Step modus, ukidanje tog modusa
i kostur interrupt rutine. Jasno, izvrsenje programa
sa aktivnim INT 1 daleko je sporije jer se nakon svake
instrukcije aktivira interrupt.
trap.zipasembler.293bearboy,
˙¨:> Doduše čuo sam priče da se i neki obični .EXE programi mogu startovati
˙¨:> iz config.sys-a ali ja još ne nađoh takav... :)
X00 fosil radi slično... I kao .SYS i kao .EXE...
asembler.294kvelkovski,
>> Ako mu je volja, moze da ga ugradi u CONFIG.SYS sa DEVICE=X.EXE i da
>> onda njegove usluge koriste i ostali programi koji se ucitavaju iz
>> CONFIG.SYS-a. Ako mu se to ne svida, moze da ga stavi u AUTOEXEC.BAT
>> ili cak da ga kasnije startuje kucajuci X, kada mu usluge tog drajvera
A DESQview ima DEVICE.COM. Kad ti pritreba ANSI.SYS opalish jedno
'DEVICE ANSI.SYS' i gotovo ...
Kupe
P.S. Znam da postoji i DVANSI ali nisam nashao bolji primer :-)
asembler.296ilazarevic,
█ program. Konkretno, mazali su me da su na neki školski računar
█ instalirali program preveden iz TP-a koji zahteva šifru, ali da je
█ caka što su ga umesto u autoexec, stavili u config pa se nije mogao
█ sprečiti start lupanjem po kontrol-brejku dok traje butovanje. Ja se
█ naivan posle ubio da tako nešto
Pa to može da se reši u 4DOS-u. u config.sys je kod shella, pored normalnog
c:Đ4dos.exe blabla stavi i ime fajla koji će se pozivati neposredno po
učitavanju 4dos-a. Kada se program odatle pozove, ne može da se prekine
sa kontrol-brejk.
asembler.297d.petrovic,
Ă> učitavanju 4dos-a. Kada se program odatle pozove, ne može da se
Ă> prekine sa kontrol-brejk.
Xe. Učitaj ga sa install c:ĐtrućĐblabla pa uradi jedno MI ili MEM/C. Di se
nalazi COMMAND ? :)
asembler.298d.petrovic,
Ups, mislio sam sve to sa dos 5.0
asembler.300vitez.koja,
Kako se regulise velicina kursora preko dosa i biosa ? Hvala unapred.
asembler.301mjova,
> Kako se regulise velicina kursora preko dosa i biosa ?
#define HIDE_CURSOR (0x2000)
#define NORM_CURSOR ((VIDEOMODE!=7) ? 0x0D0E : 0x0607)
#define HALF_CURSOR ((VIDEOMODE!=7) ? 0x070E : 0x0407)
#define BLOCK_CURSOR ((VIDEOMODE!=7) ? 0x000E : 0x0007)
ah= 1 // BIOS Set Cursor Type
cx= // start-end scan line
int 10h
ako te zanima trenutan oblik kurzora onda ga možeš pročitati na:
#define CURSOR (*((word far *)0x460lu)) // cursor shape
asembler.302d.petrovic,
Ă> Kako se regulise velicina kursora preko dosa i biosa ? Hvala
Ă> unapred.
INT 10H funkcija 01H
CH bitovi 0-4= startna linija kursora
CL 0-5= krajnja
Ima puno toga da se piše, javi mi se pa da ti dam da pročitaš.
Pozdrav, Dejan
asembler.303korvin,
> Ima puno toga da se piše, javi mi se pa da ti dam da pročitaš.
Jedno pitanjce :) Odakle (koja knjiga?)crpite to znanje o pozivima
dos-a ??
asembler.304ppekovic,
>> Jedno pitanjce :) Odakle (koja knjiga?)crpite to znanje o pozivima
>> dos-a ??
Ray Duncan, Advanced MS-DOS programming (second edition)
The Microsoft guide for Assebmly Language and C programmers.
Pozive imaš i u obliku fajla ovde na sezamu u arhivi inter30.
Paya
P.S. Ako te knjiga zanima, mail me.
asembler.305d.petrovic,
Ă> Jedno pitanjce :) Odakle (koja knjiga?)crpite to znanje o pozivima
Ă> dos-a ??
E, sad ne mogu tačno da se setim naslova (knjiga je već kod
njega :)) ). Mislim da beše :
PC/ROM BIOS
asembler.306korvin,
> Ray Duncan, Advanced MS-DOS programming (second edition)
> The Microsoft guide for Assebmly Language and C programmers.
>
> Pozive imaš i u obliku fajla ovde na sezamu u arhivi inter30.
Puno ti hvala.
asembler.307banex,
Ima li neko predlog za kupovinu neke dobre knjige za
asembler? Naravno da se može kupiti kod nas. Meni bi bilo
dosta da mi da spisak svih naredbi, šta joj je potrebno na
ulazu, šta se dešava na izlazu, itd. Za primere se mogu
snaći i sam (sourcer još uvek radi, zar ne?).
CU!
PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za
takvu (štampač ionako zvrji prazan).
asembler.308tuci,
¸> Ima li neko predlog za kupovinu neke dobre knjige za
¸> asembler? Naravno da se može kupiti kod nas. Meni bi bilo
¸> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za
¸> takvu (štampač ionako zvrji prazan).
Pogledaj: R:/ibmpc/info/helppc21.arj(a01)
* Zbog yuscii-a sam stavio slash umesto backslash-a.
Pozdrav, Zlatko.
asembler.309mjova,
> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za
> takvu (štampač ionako zvrji prazan).
odavno sam ti dao neki mali help koji sadrži osnovne komande 8086
procesora. mislim da je to sasvim dovočljno, pa ako ne možeš to da
nađeš, mogu ja da potražim i da ti pošaljem...
asembler.310robert,
<:> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za
Zar ne postoji Nortonov vodič za asembler (kroz 8086-80286)???
asembler.311mjova,
za banex-a i ostale kojima treba kratak help za asm. ovo je
dakle, rezidentni prg koji ima opis svih komandi... zgodno
za početak.
lw286.arjasembler.312mjova,
takođe neki help za asm. ima osnovnih stvari, početak
pisanja u asmu za pc-a itd..
asmhelp.arjasembler.313mjova,
ovaj tekst sam već slao ranije, ali nije loše duplirati
malo po sezamu ;). mrzi me da tražim gde je, ovako mi je
lakše, nek moderator obriše, čik ako sme ;)
u glavnom, mislim da je ova datoteka za dir. vrlo lep
tekst o asmebleru, za početnike. (preuzeo sam sa tricikla
u lepa stara vremena, a sad pošto su nam linije cvikovane
oslonimo se na ono što imamo ;)
asmtutor.arjasembler.314vcalic,
Jel' može neko da napiše da li DOS-ova funkcija 2F u DOS-u 5.0 ima još
nekih servisa osim onih koje je imala u 3.30 (APPEND, SHARE, etc) i koji su
to?
asembler.315vcalic,
Eh, u SOR-u videh da sam se zeznuo. Dakle, pitanje se odnosi na
interapt 2F a ne na funkciju!
asembler.316pmilan,
Da li neko zna kako da ocitavam neku U/I ili memorijsku lokaciju
frekvencijom npr. 10 k Hz.
Pozdrav,
Kepa.
asembler.317nbatocanin,
> PS. Ne mora biti knjiga. Može i datoteka, ako neko zna za
> takvu (štampač ionako zvrji prazan).
U NG-u za asembler imaš sve što ti treba: interesantne adrese, BIOS i
DOS pozive, detaljan opis instrukcija i direktiva za MASM.
asembler.318vitez.koja,
#=> nades, mogu ja da potrazim i da ti posaljem...
posalji, ali ne na mail O:)
asembler.319d.petrovic,
Ă> U NG-u za asembler imaš sve što ti treba: interesantne adrese, BIOS
Ă> i
Koliko je to? I uz šta ide, jel može da se UL-uje ovde....
asembler.320nbatocanin,
> Koliko je to? I uz šta ide, jel može da se UL-uje ovde....
Oko 600K, pise Norton (C) :(
asembler.321drpavlov,
Drug me je zamolio da se raspitam da li neko ima
disasembler/asembler za M68000 ili M68010 za rad na PC-u pod DOS-om.
Posto se ja u to ne razumem bilo bi dobro da ostavite ovde poruku ili meni na
MAIL pa bih mu ja to preneo.
Hvala.