Thread View: pl.comp.lang.asm
3 messages
3 total messages
Started by onex
Wed, 10 Sep 2008 21:41
Sterownik konsoli pod dosa
Author: onex
Date: Wed, 10 Sep 2008 21:41
Date: Wed, 10 Sep 2008 21:41
48 lines
2376 bytes
2376 bytes
Proboje napisac sterownik konsoli (ekranu) pod DOSa 6.22 (narzucone, to nie jest moj wymysl...).
Do testowania sterownika jest wykorzystywany DOS 6.22 stawiany na virtualboxie lub dosemu.
Ow sterownik powinien obslugiwac dwie rzeczy - inicjalizacje (00h - init) oraz zapis (08h).
Po wpisaniu skompilowanego w nasmie sterownika do config.sys obserwujemy nastepujace
zjawisko:
- dosemu laduje sie do konca, pokazuje wiersz polecen i pika wsciekle przy czym nie odbiera znakow (?)
(wpisywanie znakow nie wplywa na pikanie)
- DOS 6.22 w virtualboxie odpala sie konca, pokazuje wiersz polecen i wisi (wisi rownie wsciekle jak poprzednik pika)
W kazdym z tych przypadkow sterownik laduje sie poprawnie jako, ze widac komunikat wypisywany przez
procedure inicjalizacyjna (szeregowanie, przerwanie - wszystko na swoim miejscu).
Procedura zapisu wyglada tak
zapis
pusha
push ds
push si
;pobranie adresu obszaru danych oraz ich ilosci
mov ax, [es:di+0eh]
mov si, ax
mov ax, [es:di+10h]
mov ds,ax
mov cx, [es:di+12h]
znak
mov al, [ds:si]
mov ah, 0eh
int 10h
inc si
loop znak
pop si
pop ds
popa
jmp zakonczPrzerwanie
---
Jednym slowem sterownik ma po prostu dostac znak i go wypisac (jesli rozgryze czemu tego nie robi moze zacznie robic cos wiecej).
Jakies sugestie badz przyklady takich sterownikow? Moze nalezy zdefiniowac jeszcze jakies funkcje?
Z gory dziekuje za pomoc
Pozdrawiam
B.
Re: Sterownik konsoli pod dosa
Author: Bernard
Date: Thu, 11 Sep 2008 14:38
Date: Thu, 11 Sep 2008 14:38
66 lines
2640 bytes
2640 bytes
onex wrote: > Proboje napisac sterownik konsoli (ekranu) pod DOSa 6.22 (narzucone, to > nie jest moj wymysl...). > Do testowania sterownika jest wykorzystywany DOS 6.22 stawiany na > virtualboxie lub dosemu. > > Ow sterownik powinien obslugiwac dwie rzeczy - inicjalizacje (00h - > init) oraz zapis (08h). > Po wpisaniu skompilowanego w nasmie sterownika do config.sys obserwujemy > nastepujace > zjawisko: > > - dosemu laduje sie do konca, pokazuje wiersz polecen i pika wsciekle > przy czym nie odbiera znakow (?) > (wpisywanie znakow nie wplywa na pikanie) > - DOS 6.22 w virtualboxie odpala sie konca, pokazuje wiersz polecen i > wisi (wisi rownie wsciekle jak poprzednik pika) > > W kazdym z tych przypadkow sterownik laduje sie poprawnie jako, ze widac > komunikat wypisywany przez > procedure inicjalizacyjna (szeregowanie, przerwanie - wszystko na swoim > miejscu). > > Procedura zapisu wyglada tak > zapis > pusha > push ds > push si Jak się dwa razy coś wrzuci na stos to już można być prawie pewnym, że się wrzuciło ;) > > ;pobranie adresu obszaru danych oraz ich ilosci > mov ax, [es:di+0eh] > mov si, ax > mov ax, [es:di+10h] > mov ds,ax Może po prostu LDS si, [] ? > mov cx, [es:di+12h] > znak > mov al, [ds:si] lodsb? > > mov ah, 0eh > int 10h czy ta funkcja zachowuje cx? > > inc si > loop znak > > pop si > pop ds > popa > > jmp zakonczPrzerwanie I być może pod tą etykietą leży pies pogrzebany. Na wszelki wypadek dokładnie nic nie napisałeś o tym, jak ten "sterownik" ma działać (.COM?, .SYS?, jak wywoływany?) Nic też nie wiadomo o kodzie inicjującym sterownik, a ten jest mocno podejrzany o opisywane efekty.
Re: Sterownik konsoli pod dosa
Author: onex
Date: Thu, 11 Sep 2008 19:15
Date: Thu, 11 Sep 2008 19:15
3 lines
1129 bytes
1129 bytes
Zadanie nakazuje zdefiniowanie funkcji 00h i 08h (inicjalizacja i zapis) i ma dzialac jako sys. Problem zostal rozwiazany: sterownik dziala, jesli zdefiniuje sie i porzadnie napisze 04h (odczyt). Mimo wszystko dziekuje za zainteresowanie :)
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads