6502

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 14:08, 28 gru 2007
KMK (Dyskusja | wkład)
(Błędy w 6502)
← Previous diff
Wersja z dnia 19:42, 29 gru 2007
KMK (Dyskusja | wkład)
(Błędy w 6502)
Next diff →
Linia 23: Linia 23:
* wystąpienie przerwania podczas wykonywania rozkazu BRK spowoduje, że zostanie on zignorowany. * wystąpienie przerwania podczas wykonywania rozkazu BRK spowoduje, że zostanie on zignorowany.
* rejestr znaczników zapisany na stos przez PHP ma zawsze ustawiony bit B * rejestr znaczników zapisany na stos przez PHP ma zawsze ustawiony bit B
 +* rozkazy typu ''read-modify-write'' (ASL, DEC, INC, LSR, ROL, ROR) wykonują dwa zapisy do modyfikowanej komórki pamięci, z czego za pierwszym razem procesor zapisuje przypadkowe śmieci.
Błędów tych pozbawione są późniejsze wersje procesora, tj. [[65C02]] oraz [[65C816]]. Błędów tych pozbawione są późniejsze wersje procesora, tj. [[65C02]] oraz [[65C816]].

Wersja z dnia 19:42, 29 gru 2007

Procesor produkowany przez MOS Technology. Pierwszy raz wprowadzony do produkcji we wrześniu 1975 roku, wytwarzany przy wykorzystaniu technologii NMOS. Procesor w odróżnieniu od innych rówieśników nie był budowany w oparciu o mikrokod, był wewnętrznie prostszy i mógł pracować z mniejszymi częstotliwościami zewnętrznymi (zwykle pomiędzy 1 a 2 MHz), osiągając przy tym porównywalną wydajność. Obniżało to koszt układów z nim współpracujących, wykorzystywanych w komputerze.

Spis treści

Parametry

  • ośmiobitowa szyna danych
  • szesnastobitowe adresowanie
  • 56 udokumentowanych rozkazów
  • 13 trybów adresowania
  • jeden ośmiobitowy rejestr ogólnego przeznaczenia (A - akumulator)
  • dwa ośmiobitowe rejestry indeksujące (X i Y)
  • ośmiobitowy rejestr statusu - P
  • ośmiobitowy wskaźnik stosu - S
  • szesnastobitowy licznik programu - PC

W przestrzeni adresowej 6502 jest wyróźniony obszar przeznaczony na stos - jest to obszar od $0100 do $01FF.

Błędy w 6502

  • znaczniki są nieustalone po RESET
  • wystąpienie przerwania nie wyłącza trybu dziesiętnego ALU
  • dodawanie i odejmowanie w trybie dziesiętnym ustawia znaczniki N i Z nieodpowiednio dla uzyskanego wyniku dziesiętnego (odzwierciedlają one cząstkowy wynik binarny operacji, przed korekcją dziesiętną)
  • rozkaz JMP ($xxFF) pobierze adres skoku z komórek $xxFF/$xx00 zamiast z $xxFF/$xy00.
  • jednoczesne wystąpienie przerwania NMI oraz IRQ powoduje, że to drugie zostane zignorowane.
  • wystąpienie przerwania podczas wykonywania rozkazu BRK spowoduje, że zostanie on zignorowany.
  • rejestr znaczników zapisany na stos przez PHP ma zawsze ustawiony bit B
  • rozkazy typu read-modify-write (ASL, DEC, INC, LSR, ROL, ROR) wykonują dwa zapisy do modyfikowanej komórki pamięci, z czego za pierwszym razem procesor zapisuje przypadkowe śmieci.

Błędów tych pozbawione są późniejsze wersje procesora, tj. 65C02 oraz 65C816.

Ciekawostki

  • Procesor ma pewną liczbę nieudokumentowanych rozkazów. Szczegóły działania części z nich zależą od konkretnej wersji procesora. Dlatego, mimo że zastępują one w niektórych przypadkach kilka rozkazów standardowych, nie jest zalecane ich używanie.
  • Listing programu przeznaczony dla procesora 6502 był wykorzystany w filmie "The Terminator" (1984, pol. Elektroniczny Morderca) przy wyświetlaniu obrazu z kamery Terminatora T800 Model 101. Jest to listing programu dla komputera Apple II.
  • Robot Bender, bohater serialu animowanego Futurama, będącego jedną z głównych atrakcji czwartego Sztabu Małopolska, ma "mózg" zbudowany na procesorze 6502, o czym dowiadujemy się w epizodzie "Fry & the Slurm Factory".

6502 w Atari

Komputery serii 400/800 są wyposażone w układ 6502A lub 6502B. Są to "szybsze", czyli przystosowane do pracy z szybszym zegarem, wersje 6502. Zwykły 6502 może działać z częstotliwością do 1 MHz, wersja A do 2 MHz, a wersja B do 3 MHz.

Serie XL i XE mają jeszcze nieco zmodyfikowany procesor, znany jako 6502C. Zmiana w stosunku do oryginału polega na dodaniu linii HALT, której uaktywnienie powoduje zatrzymanie procesora i odłączenie go od magistrali. W modelach 400/800 robił to oddzielny obwód złożony z elementów dyskretnych.

Szybkość taktowania procesora w Atari zależy od tego, do jakiego systemu telewizji przystosowany jest komputer:

  • wersja NTSC: 1,789790 MHz lub (w XE) 1,7897725 MHz
  • wersja PAL: 1,773447 MHz
  • wersja SECAM: 1,7815 MHz (tylko XL i XE)

Zobacz także


Ten artykuł to tylko zalążek. Możesz pomóc rozwojowi Atariki poprzez rozszerzenie go o więcej informacji.

Personal tools