LineA
From Atariki
Wersja z dnia 10:27, 4 maj 2007 Vulgar (Dyskusja | wkład) ← Previous diff |
Wersja z dnia 16:48, 1 maj 2024 Sorcerer.dragonnel (Dyskusja | wkład) (→Spore uzupełnienie o techniczne detale) Next diff → |
||
Linia 1: | Linia 1: | ||
- | Instrukcje '''Line A''', są to proste instrukcje graficzne Atari ST. Odpowiadają za podstawowe operacje graficzne. Za ich pomocą można tworzyć kompleksowe operacje przy pomocy kilku prostych komend. Można nimi narysować pixele, linie, kwadraty oraz kontrolować duszki i kursor myszki. | + | Instrukcje '''Line A''', są to proste instrukcje wejścia/wyjścia odnoszące się do hardware Atari ST zrealizowane z pomocą specyficznego emulatora nieistniejących rozkazów procesorów MC680x0. Realizuje je kod $A00x, gdzie x oznacza wywołanie jednego z 16 możliwych wektorów przerwań ($A000-$A00F), wywoływanych przez tą pseudo-komendę procesora Motoroli. Każde wywołanie takiej pseudo-komendy obarczone jest dodatkowymi cyklami procesora, których wymaga obsługa przerwań. Jedyna korzyść, to oszczędność pamięci przy definiowaniu komend. Użyto ich ze względu na konieczność zmieszczenia pierwszych wersji TOS'a w 192KB pamięci ROM. Miały zostać wyeliminowane w późniejszych wersjach systemu [[TOS]], ale pozostały w użyciu ze względu na kompatybilność. |
- | razem z [[BIOS]]em oraz [[XBIOS]]em stanowią najniższą warstwę logiczną systemu [[TOS]]. Procedury [[GEM]]u zbudowane są z tych instrukcji. | + | Odpowiadają za podstawowe operacje graficzne, dostęp do klawiatury i myszy. Za ich pomocą można tworzyć kompleksowe operacje przy pomocy kilku prostych komend. Można nimi narysować pixele, linie, kwadraty, pisać tekst, kopiować bloki graficzne oraz kontrolować software'owe duszki, w tym kursor myszki. Po inicjalizacji komendą $A000 można się m.in. dowiedzieć, jaki aktualnie jest adres zestawu znaków, pozycja myszki, rozdzielczość i wielkość ekranu, ilość bitplane itd. Niestety statystyki te są przekłamywane przez popularne akceleratory systemowego interfejsu graficznego, takie jak Warp9 i QuickST co powoduje, że trzeba brać poprawkę na to iż w bloku tzw. negatywnych zmiennych linii A mogą znaleźć się całkowicie bezsensowne liczby. |
+ | Razem z [[BIOS]]em oraz [[XBIOS]]em stanowią jedną z najniższych warstw logicznych systemu [[TOS]]. Wiele procedur [[GEM]]'u wykorzystuje te instrukcje, ze względu na oszczędność pamięci przeznaczonej na system operacyjny. Są dostępne natychmiast po włączeniu komputera, co oznacza że można z nich korzystać np. w krótkim kodzie mieszczącym się w około 500 bajtach boot-sector'a, bez konieczności inicjalizacji czy rezerwacji dodatkowych przestrzeni pamięci. Można w ten sposób zaoszczędzić jeszcze więcej RAM'u nawet niż przy uruchamianiu programów z katalogu [[AUTO]]. | ||
+ | == Odnośniki zewnętrzne == | ||
+ | * [https://freemint.github.io/tos.hyp/en/linea_main.html Komendy linii A] | ||
+ | * [https://freemint.github.io/tos.hyp/en/linea_escape.html Spis bloku negatywnych zmiennych linii A] | ||
Wersja z dnia 16:48, 1 maj 2024
Instrukcje Line A, są to proste instrukcje wejścia/wyjścia odnoszące się do hardware Atari ST zrealizowane z pomocą specyficznego emulatora nieistniejących rozkazów procesorów MC680x0. Realizuje je kod $A00x, gdzie x oznacza wywołanie jednego z 16 możliwych wektorów przerwań ($A000-$A00F), wywoływanych przez tą pseudo-komendę procesora Motoroli. Każde wywołanie takiej pseudo-komendy obarczone jest dodatkowymi cyklami procesora, których wymaga obsługa przerwań. Jedyna korzyść, to oszczędność pamięci przy definiowaniu komend. Użyto ich ze względu na konieczność zmieszczenia pierwszych wersji TOS'a w 192KB pamięci ROM. Miały zostać wyeliminowane w późniejszych wersjach systemu TOS, ale pozostały w użyciu ze względu na kompatybilność.
Odpowiadają za podstawowe operacje graficzne, dostęp do klawiatury i myszy. Za ich pomocą można tworzyć kompleksowe operacje przy pomocy kilku prostych komend. Można nimi narysować pixele, linie, kwadraty, pisać tekst, kopiować bloki graficzne oraz kontrolować software'owe duszki, w tym kursor myszki. Po inicjalizacji komendą $A000 można się m.in. dowiedzieć, jaki aktualnie jest adres zestawu znaków, pozycja myszki, rozdzielczość i wielkość ekranu, ilość bitplane itd. Niestety statystyki te są przekłamywane przez popularne akceleratory systemowego interfejsu graficznego, takie jak Warp9 i QuickST co powoduje, że trzeba brać poprawkę na to iż w bloku tzw. negatywnych zmiennych linii A mogą znaleźć się całkowicie bezsensowne liczby.
Razem z BIOSem oraz XBIOSem stanowią jedną z najniższych warstw logicznych systemu TOS. Wiele procedur GEM'u wykorzystuje te instrukcje, ze względu na oszczędność pamięci przeznaczonej na system operacyjny. Są dostępne natychmiast po włączeniu komputera, co oznacza że można z nich korzystać np. w krótkim kodzie mieszczącym się w około 500 bajtach boot-sector'a, bez konieczności inicjalizacji czy rezerwacji dodatkowych przestrzeni pamięci. Można w ten sposób zaoszczędzić jeszcze więcej RAM'u nawet niż przy uruchamianiu programów z katalogu AUTO.
Odnośniki zewnętrzne
Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.