[ASM] Pisanie w 13h

0

Prosilbym o pomoc kogos kto wie jak pisac na ekran w trybie graficznycm 320x200. Chodzi mi o to ze pisze sobie cos na klawiaturze i to wyswietlane ma byc na ekranie cos ala funkcja 01h - filtrowane wejscie z echem. ?

0

Dzieki ale nie do konca mi o to chodzilo. Wyjasnie to tak jak w trybie tekstowym sobie pisze to znaczki sa jeden za drugim wyswietlane na ekran jak nacisne Backspace to znaczek jest kasowany. Za pomoca tej funkci 9 przerwania 10h moge tylko wyswietlic znaczek, wiec wczytuje sobie za pomoca przerwania DOSowego jakis znaczek daje go do AL wyswietlam w trybie graficznym i tak wkolko ale nie dziala tutaj BkSpaces tzn kursor sie cofa ale literka juz narysowana sie nie kasuje :(. Dokladnie chodzi mi o to ze chce wpisywac sobie na klawce tekst max 10 liter z mozliwoscia ich kasowania i na biezaco ten tekst ma byc wyswietlany na ekranie w trybie 320x200 , ufff mam nadzieje ze znajdzie sie ktos kto to przeczytal :) Nadal prosze o pomoc

0

No w samym asmie to bedzie troche ciezko, ale w c + asn sie da bezproblemu wystarczy przechwycic przerwanie klawierki a puznij w zaleznosci od tego co zostanie nacisniete wrzucac dane to tablicy i ja wyyswietlac

0

W 13h to tekst duuuzy wyjdzie :)
Musisz tutaj po prostu napisac wlasna wersje obslugi klawiatury.
Niestety MS DOS to nie system operacyjny, a jedynie zbior przerwan. Wobec tego musisz odczytac znak z klawiatury (to DOS zapewnia), wyswietlic go na ekranie najlepiej uzywajac wlasnej czcionki (ta z 13h jak dla mnie jest za duza) i w przypadku, gdy nacisniety klawisz to Backspace to skasowac juz wypisany (zamalowac?). Analogicznie obsluga kursora itp. Jednym slowem duzo zabawy :(

0

Ojoj :( myslalem ze pojdzie jakos latwiej ale z tego co widze bez duzego wysilku sie nie obejdzie. Jeszcze raz dziek za pomoc.

0

Wobec tego musisz odczytac znak z klawiatury (to DOS zapewnia)

Zapomnij o int 21h dla obsługi klawiatury - korzystaj od razu z int 16h.

0

Zapomnij o int 21h dla obsługi klawiatury - korzystaj od razu z int 16h.

No tak. Zle sie wyrazilem. Powinienem napisac, ze juz oprogramowanie przerwan sie tym zajmuje. Bardziej ogolne. W szczegolnosci jakby sie kto uparl to i z in/out mozna ;)

//in al,60 to klasyka :) - m.M

0

Niestety MS DOS to nie system operacyjny, a jedynie zbior przerwan.

To coś nowego. Powiedz mi proszę, co więc jest systemem- przecież to normalne, że backspace nie kasuje niczego bez odpowiedniej obsługi. Równie dobrze można by się dziwić dlaczego po naciśnięciu Z wyświetla się Y- przecież tylko zmieniłem układ klawiatury z US na PL.

0

To coś nowego. Powiedz mi proszę, co więc jest systemem- przecież to normalne, że backspace nie kasuje niczego bez odpowiedniej obsługi. Równie dobrze można by się dziwić dlaczego po naciśnięciu Z wyświetla się Y- przecież tylko zmieniłem układ klawiatury z US na PL.

System operacyjny ma za zadanie:
/* z wikipedii */

  • zarządzanie zasobami komputera, m.in.: procesorem (a dokładniej czasem procesora), pamięcią, urządzeniami peryferyjnymi oraz przydzielanie zasobów procesom,
  • koordynacja pracy w/w urządzeń poprzez obsługę przerwań oraz odpowiednie na nie reagowanie,
  • ochrona danych i pamięci - tak aby jeden proces, w wyniku błędu lub zamierzonego działania nie mógł zniszczyć lub pozyskać danych innego procesu,
  • automatyzacja najczęściej wykonywanych funkcji,

Oraz jeszcze jeden IMHO bardzo ważny czynnik: zbiór programów wspomagających.
O ile ze wzgledu na to, że jest to system jednozadaniowy, to przydzielanie zasobów procesom oraz ochronę danych i pamięci można sobie odpuścić, to z tą automatyzacją najczęściej wykonywanych funkcji albo już zbiór programów wspomagających (zależy czy jest to zaimplementowane w systemie, czy jako zewnętrzne programy) to jest już słabo. Jak wiesz, pisząc w MS DOSie trzeba mnóstwo rzeczy robić samemu od zera. To nie jest cecha dobrego systemu operacyjnego.

To o czym mówisz, czyli zmiana Y na Z albo kasowanie po naciśnięciu Backspace, to nie jest funkcja systemu operacyjnego a powłoki (która w MS DOSie jest programem comand.com i należy do tej części "wymaganych programów wspomagających" :) ).

Zdaję sobię sprawę, że przesadziłem mówiąc, że MS DOS jest tylko zbiorem przerwań, ale chciałem jedynie podkreślić, że tam musisz wszystko robić sam, że nie jest to pełny system operacyjny.

0

W moim przekonaniu to jednak JEST system operacyjny i to taki, jaki być powinien.

Jednaozadaniowy system, więc nie musi zarządzać zasobami?- to tez ciekawe...

A co do command.com- no cóż, to część systemu właściwie. Jak bez niego miałby działać DOS?

OK, ale nie ważne.

0

A co do command.com- no cóż, to część systemu właściwie. Jak bez niego miałby działać DOS?

Wpisujesz w config.sys shell=c:\twoj prywatny shell.com i zapominasz o command.com-ie (a np. w autoexec.bat del c:\command.com - czy inna komendę nowego shella slużącą za kasowanie ;p)

0

Jednaozadaniowy system, więc nie musi zarządzać zasobami?- to tez ciekawe...

Chodzilo mi glownie o przydzielanie pamieci procesom. A co do tego, ze to jest system taki jaki byc powinien... Jako system ogolnego uzytku jak dla mnie jest za slaby. Jezeli jeden program ma byc wykonywany w danej chwili, to lepiej juz pisac program-system. Sam jeden ma do dyspozycji caly komputer.
Za to na pewno MS DOS jest dobry do nauki asm :)

//Warning - wątek nie na temat - m.M

1 użytkowników online, w tym zalogowanych: 0, gości: 1