Tablice wektorów ROM

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 11:20, 24 kwi 2005
KMK (Dyskusja | wkład)

← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)

Linia 1: Linia 1:
-System operacyjny zawiera w obszarze $E400-$E44F i $E48F-$E4BE osiem tablic wektorów CIO wskazujących poszczególne funkcje (tj. kolejno OPEN, CLOSE, GET, PUT, STATUS, SPECIAL i INIT) sterowników standardowych urządzeń I/O (zdefiniowanych w ROM-ie).+System operacyjny zawiera w obszarze $E400-$E44F i $E48F-$E4BE osiem tablic wektorów [[CIO]] wskazujących poszczególne funkcje (tj. kolejno OPEN, CLOSE, GET, PUT, STATUS, SPECIAL i INIT) sterowników standardowych urządzeń I/O (zdefiniowanych w ROM-ie).
* $E400-$E40F - wektory edytora ("E:") * $E400-$E40F - wektory edytora ("E:")
Linia 26: Linia 26:
Wszystkie adresy (oprócz argumentu JMP) są zmniejszone o 1. Wszystkie adresy (oprócz argumentu JMP) są zmniejszone o 1.
-Tablice wektorów są zasadniczo przeznaczone do wykorzystania tylko przez programy, które modyfikują działanie urządzeń systemowych (nakładki). Programy aplikacyjne nie powinny z nich korzystać, bo omija się w ten sposób tablicę handlerów HATABS (zob. [[CIO]]), w której może być zainstalowany sterownik, który całkowicie zastępuje sterownik znajdujący się w ROM-ie. Program korzystający z opisywanej tu tablicy handlerów wywowłuje wtedy procedurę niewłaściwą do obsługi danego urządzenia i idzie na manowce.+Tablice wektorów są zasadniczo przeznaczone do wykorzystania tylko przez programy, które modyfikują działanie urządzeń systemowych (nakładki). Programy aplikacyjne nie powinny z nich korzystać, bo omija się w ten sposób tablicę handlerów HATABS (zob. [[CIO]]), w której może być zainstalowany sterownik, który całkowicie zastępuje sterownik znajdujący się w ROM-ie. Program korzystający z opisywanej tu tablicy handlerów wywołuje wtedy procedurę niewłaściwą do obsługi danego urządzenia i idzie na manowce.
 + 
 +[[Kategoria:Menu Główne]]
 +[[Kategoria:Programowanie Atari 8-bit]]

Aktualna wersja

System operacyjny zawiera w obszarze $E400-$E44F i $E48F-$E4BE osiem tablic wektorów CIO wskazujących poszczególne funkcje (tj. kolejno OPEN, CLOSE, GET, PUT, STATUS, SPECIAL i INIT) sterowników standardowych urządzeń I/O (zdefiniowanych w ROM-ie).

  • $E400-$E40F - wektory edytora ("E:")
  • $E410-$E41F - wektory ekranu ("S:")
  • $E420-$E42F - wektory klawiatury ("K:")
  • $E430-$E43F - wektory drukarki ("P:")
  • $E440-$E44F - wektory magnetofonu ("C:"); w DracOS wektory urządzenia null ("N:")

Trzy poniższe istnieją tylko w serii XL/XE:

  • $E48F-$E49E - wektory urządzeń znakowych podłączonych do szyny równoległej
  • $E49F-$E4AE - zarezerwowane (tablica pusta); w DracOS wektory urządzenia systemowego "@:"
  • $E4AF-$E4BE - zarezerwowane (tablica pusta)

Struktura tablicy wygląda następująco:

  • $00 - adres procedury OPEN
  • $02 - adres procedury CLOSE
  • $04 - adres procedury GET BYTE
  • $06 - adres procedury PUT BYTE
  • $08 - adres procedury STATUS
  • $0a - adres procedury SPECIAL
  • $0c - skok JMP do procedury INIT
  • $0f - bajt zarezerwowany

Wszystkie adresy (oprócz argumentu JMP) są zmniejszone o 1.

Tablice wektorów są zasadniczo przeznaczone do wykorzystania tylko przez programy, które modyfikują działanie urządzeń systemowych (nakładki). Programy aplikacyjne nie powinny z nich korzystać, bo omija się w ten sposób tablicę handlerów HATABS (zob. CIO), w której może być zainstalowany sterownik, który całkowicie zastępuje sterownik znajdujący się w ROM-ie. Program korzystający z opisywanej tu tablicy handlerów wywołuje wtedy procedurę niewłaściwą do obsługi danego urządzenia i idzie na manowce.

Personal tools