Pakiet matematyczny

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 09:30, 3 sty 2006
KMK (Dyskusja | wkład)

← Previous diff
Wersja z dnia 09:30, 3 sty 2006
KMK (Dyskusja | wkład)

Next diff →
Linia 1: Linia 1:
[[Pakiet matematyczny]], zwany też pakietem procedur zmiennoprzecinkowych, to zawarty w systemie operacyjnym zestaw podprogramów służących do obliczeń na liczbach rzeczywistych. Zajmuje 2k pamięci ROM w obszarze od $D800 do $DFFF i jest intensywnie wykorzystywany przez interpreter [[Atari BASIC]]-a oraz wiele innych programów użytkowych (np. [[MAC/65]], [[UmonXL]] itp., by już przemilczeć napisane w BASIC-u gry w rodzaju [[Crusade in Europe]]). [[Pakiet matematyczny]], zwany też pakietem procedur zmiennoprzecinkowych, to zawarty w systemie operacyjnym zestaw podprogramów służących do obliczeń na liczbach rzeczywistych. Zajmuje 2k pamięci ROM w obszarze od $D800 do $DFFF i jest intensywnie wykorzystywany przez interpreter [[Atari BASIC]]-a oraz wiele innych programów użytkowych (np. [[MAC/65]], [[UmonXL]] itp., by już przemilczeć napisane w BASIC-u gry w rodzaju [[Crusade in Europe]]).
-Pakiet matematyczny jest jedyną częścią systemu nie mającą własnej tablicy wektorów.+Pakiet matematyczny jest jedyną częścią systemu nie mającą własnej tablicy wektorów. Bardzo utrudnia to przygotowanie jego ulepszonych wersji.
== Format liczb FP == == Format liczb FP ==

Wersja z dnia 09:30, 3 sty 2006

Pakiet matematyczny, zwany też pakietem procedur zmiennoprzecinkowych, to zawarty w systemie operacyjnym zestaw podprogramów służących do obliczeń na liczbach rzeczywistych. Zajmuje 2k pamięci ROM w obszarze od $D800 do $DFFF i jest intensywnie wykorzystywany przez interpreter Atari BASIC-a oraz wiele innych programów użytkowych (np. MAC/65, UmonXL itp., by już przemilczeć napisane w BASIC-u gry w rodzaju Crusade in Europe).

Pakiet matematyczny jest jedyną częścią systemu nie mającą własnej tablicy wektorów. Bardzo utrudnia to przygotowanie jego ulepszonych wersji.

Format liczb FP

Dopuszczalny zakres liczb rzeczywistych dla obliczeń to od 10-98 do 1096, z dokładnością do 10 cyfr. Liczba kodowana jest na sześciu bajtach: pierwszy bajt zajmuje 1 bit znaku oraz siedem bitów wykładnika, pozostałe pięć bajtów to mantysa zapisana w kodzie BCD, po dwie cyfry na bajt, w kolejności od najstarszej do najmłodszej. Wykładnik jest to właściwy wykładnik liczby 100 zwiększony o 64.

Przykładowo, w ciągu liczb $41,$15,$36,$00,$00,$00 pierwszy bajt o wartości $41 to cecha. Najstarszy bit jest skasowany, jest to więc liczba dodatnia. Na pozostałych siedmiu bitach zapisany jest wykładnik liczby 100 zwiększony o 64 ($40). Wykładnik ten w danym przykładzie wynosi więc 1.

Dalej znajduje się mantysa zapisana w kodzie BCD. Punkt dziesiętny znajduje się po pierwszym jej bajcie, mamy tu więc zapisaną wartość 15,36 (piętnaście i trzydzieści sześć setnych). W połączeniu z obliczonym wyżej wykładnikiem liczby sto daje to 1001*15,36 = 1536.

Lista procedur

AdresEtykietaOpis
Konwersja liczb
$D800AFP
$D8E6FASC
$D9AAIFP
$D9D2FPI
Przesłania itp. rejestrów FP
$DA44ZFR0
$DD89FLD0R
$DD8DFLD0P
$DD98FLD1R
$DD9CFLD1P
$DDA7FST0R
$DDABFST0P
$DDB6FMOV01
$DD28FMOV12
$DD34FMOV0E
Działania
$DA60FSUB
$DA66FADD
$DADBFMUL
$DB28FDIV
$DDC0EXP
$DDCCEXP10
$DECDLOG
$DED!LOG10

W rzeczywistości ROM pakietu zmiennoprzecinkowego zawiera więcej procedur, poza wymienionymi jednak nie są one specjalnie przydatne.

Personal tools