🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
3 messages
3 total messages Started by onex Wed, 10 Sep 2008 21:41
Sterownik konsoli pod dosa
#1852
Author: onex
Date: Wed, 10 Sep 2008 21:41
48 lines
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
#1853
Author: Bernard
Date: Thu, 11 Sep 2008 14:38
66 lines
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
#1854
Author: onex
Date: Thu, 11 Sep 2008 19:15
3 lines
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