<L`L5 L5 x"˭#̭0έ1|LV 01./@ԩˍ" #͍ԩZ:ԩ XS HHlTppppFppppppppppppppWA.!5+!02/'2!-/7!.)!7+/$:)%-!3:9./79-+/-0,%479+,!$/7+/$5-!3:9./7%'/0!5,"5..# 7%23*!-5,4) "//402/'2!-4%./$$!7)%,%49'/$.)2/:'29:!.)!*%3,).)%*%34%3#!,+)%-,%.)794/4%.02/$5+4702/7!$:)#)%74!*.)+):!34/3/7!.)!-.%-/.)+/7'2!45,!#*%$,!0!5,!:!7902/$5+/7!.)%4!+730!.)!,9#(+/2%0%49#*):!73:%#(342/../3#4%-!4/7+/$5-!3:9./7%'/:!7!24%4502:9+,!$95*%4%7,%+#*!#($%-/.3425*!$:)!,!.)%).3425+#*)+/$5-!3:9./7%'/02/'2!-94%02!#5*!:39-5,!4/2%-)0/+!:5*!$/+,!$.)%#/3)%34!,/ *!+)%*%34$:)!,!.)%2%*%3425&,!'/7%'/))..9#(2%*%342/7)40.!#)3.)*#42, !C:HHͥL ͍iiɡ  Щ hhl BwD E;HI VLS BD E,HI VLt USUN WSZYSTKIE CARTRIDGE I POWTORZ LADOWANIE . TEN PROGRAM POTRZEBUJE MINIMUM 32K RAM. L L ,/!$).'%22/2L" ̈ɿL0 L" EJK VBD EHIꠈ B VD   ΍0ύ1 xˍ"̍#XL X)Ң L( HvH`0 1ǩ|ȩD RЍЩ./oԩԩ$6%@Ԣ؝D EJKB V{{ 4  ILppB|A K:{{@ {7 L {{{` 4 4 4L$ `é Ġ 4{   4{ 4{ 4 6{{L{${ ' 4 4{ 4{{LF { L {{{AL [L L {' { 5{LF {0L :L {~{ { 4LF { { {{{{L#L {+{LF {LF *{'LF {{LF -{LF {LF ={LF {LF {  5{{L {LLF { {{{{{{  {7L{ 4{ ]L `  % 6{@L {){{ b& ]{{L7 n ]L{{   L 4 4 4 4 5p"q 4 4 4p 4q{ ]  L{{ L {0 G :A`{ș{0{`:{{80m{{L0{87m{{:{{80 m{{L\{87 m{{:{{80m{{L{87m{{:{{80 m{{L{87 m{{`)IL\{ ũ>Ʃ ō{ȱiȱi {L{ 4{` KOREPETYCJE Z KODU MASZYNOWEGO. *******************************  BY PAUL BUNN (C) 1984 NEW GENERATION SOFTWAREWybierz wariant naciskajac RETURN Gdy juz wybrales to nacisnij SPACE ō{{ 4 4{ 4 4{{ 4 4{ 4 4 4 4 6 {{i{Ш{L LH{8 iŅȱŅĠÍ{ȱÅȱÅ 4{>7 {{ { 4{ L{{i{{LL~{ 4 4{ 4  4{LLåĩ<  6 Åą` NACISNIJ KLAWISZ SPACJI H'H{{ {0m{{{i{{Lm{0 d {L{0 {L{0  {L`m{{{i{`v{wxx ȹ` 4 4 4w q{ 4{ 4v q{ 4{ 4 4 4yxL9 q{ 4{ 4xyL,ȹxL9ȹxL9veyvxxL   6YL R  ҩD BDEJKlxBD>EHI V J L JL C:  Czy na pewno chcesz zaladowac nastepne lekcje ? (Y/N) BLV  Please position correct cassette (side two, three or four) and then press PLAY on cassette recorder followed by RETURN on keyboard to start. Do NOT press system reset whilst trying to load. LOADING ERROR. Przewin kasete a potem nacisnij PLAY i RETURN. {{{{{{ o7Gv#w { 4{i 4{ 4 6{{{ٽ{  {{L ;L <{ L v<{#v{{{{L1 @L vivwiw` 4 4 4" 5 { 4 6L v#w{AL{ v{#v{{{{L1 @Lv#w{#LsLNv{?v{{{{{$${{ b{LMLY @L{{ {LM{{{{L1 {{,G ( L]Lȹ{XPYLN{$,ȹ{{ {L7ͅv$w{ L.{{ bL{$)ȹ{{ {:v$w{ L.{{ bL 3v%w{ Lv$w{ L{$'{{ b{*;v$w{ L.ȹ{{ {L|v#w{ L|vP{Ev{{{{2{{{{{{{{hhL1 @L`{{{{hhL1L3{m{{{{m{i{L 4 4 4" 5 Ll{{`{` 4` 4 4 4{ { ~ 4 4 4{ { ~ 4! 4 4{ { ~ 4 4 4{{*i0 4 {jji0 4 {jjjj0i 4 {**i0 4 {ji0 4 {jjji0 4{`{L 4 4 4{  ~ 4 4 4{  ~ 4 4 4{  ~ 4 4 4{)i0 4 4 4 4,{1 4L0 4 4 4 4{jjji0 4 4 4 4{jji0 4 4 4 4{*i0 4 4 4 4{**i0 4`{ q${{{{{`{JJJJ i7{Li0{{) i7{`i0{`{{LY0{{{{8d{{id8 {{i 8{{` 4 4 4 4`{ 4 4 4 4L> 4 4 4 4L^ 4 4{ 4 4 4 4` 4 4{ 4 4 4 4`{ 4{ 4{L4{(LN{$L{{ L{{ b{ );, LN{XLN{)LNROR~SBCSTAADCyAND9CMPEORYLDALDXORASBCSTAADCuAND5ASLCMPDECEORUINCLDALDYLSRVORAROL6RORvSBCSTASTYLDXSTXADCaAND!CMPEORALDAORASBCSTAADCqAND1CMPEORQLDAORASBCSTAJMPLJSR BCCBCSBEQBMI0BNEBPLBVCPBVSp 4 4 4P{ 4{{`+ % 4 4 4{{{{i iL%ȱȱȱ e&ȱȱ e&ȱȱ e&ȱ{ &){ L) ?+`l{ 5{` %hhL {{L)` ׅ{`{{{i` {½{`{®{{{` &m{i` &m{L&+®{{{ȱi­{m{i` %®{{m{{ȱi­{` {{m{i` {{m{Lk' {{{{L+` {{{i{{q{L'`{)l{{{{h) {{`{{ {`{{ {`{{ {`{{ {L) 6hhL {L){`{L){`{L){`{-{{L){){`{ {`J{)L{h) {{`M{{L){)H(*{)L{h) {{`{{,{{) {h) {{`8{`{{ i{{ {L+{L+L({{ {{i{ {L({){`{) H({) {{q{h) {{`{)H({) {jh) {{`{L){{{)M{h) {{`{{L){{`{ {` 4 4 4# 4 6hhL  `{ {`{L){L){{{L){L){) H({) {{{h) {{`{) {{8h) {{`{) {{LR*{) {{LR*{{L){{L){{L){){`{{{L){){`{)L*`{){{`{)@`{)`{)`{)`{)`{)@` + 4L + 6hhL BLAD - ADRES NIEZNANY {`v+ 48 q{ 4 q{ 4{ 4`ADRES DOCELOWY - $z&88+&18 89 "(88+"(88+"(88+&18 89'_88+"(88+'v8|88&18 8=8'_8 8+"(88+"(88+&18 89'_88+"(88+*;;+ &18 89"(88+"(88+"(88+&18 89 '_88+ "(88+p(999&18 89"(88+"(88+"(88+&18 89'_88+"(88+&):++ `(799+ "(88+"(88+(P98+`(799+(/9)98"(88+'}9|8r9`(79=8+(/9)9 8"(88+(P98+`(799+(/9)98"(88+*;;+ `(799+"(88+"(88+"(88+`(799+ (/9)98 "(88+y(999`(799+"(88+"(88+"(88+`(799+(/9)98"(88+"(88+(9 89 "(88+"(88+"(88+(9 89(9"98"(88+(v8 88(9 8=8(9"9 8"(88+(.:++ (9 89(9"98"(88+*;f;+ (9 89"(88+"(88+"(88+(9 89 (9"98 "(88+C)999(9 89"(88+"(88+"(88+(9 89(9"98"(88+(+;++L)998 "(88+"(88+"(88+L)998p)/9"98"(88+(}9 8r9L)99:p)/9"9 8"(88+"(88+L)998p)/9"98"(88++;;+ L)998"(88+"(88+"(88+L)998 p)/9"98 "(88+)999L)998"(88+"(88+"(88+L)998p)/9"98"(88+"(88+4(9 89 "(88+"(88+X(9%894(9 89F(989"(88+)[:%8+"(88+)98 :"(88+X(9%894(9 89F(989"(88+*;9Z; 4(9 89"(88+"(88+X(9%89 4(9 89 F(989 "(88+)9%8 :4(9 89)989"(88+"(88+4(9 89"(88+"(88+N(f:%8=8*(f: 8J8 <(f:8=8"(88+N(f:%8J8*(f: 8J8<(f:8J8"(88+~*9 8B;*(f: 8=8*9 8{:"(88+N(f:%8J8*(f: 8J8<(f:8J8"(88+*;9P; *(f: 8J8"(88+"(88+N(f:%8J8 *(f: 8J8 <(f:8J8 "(88+*9:9*(f: 8J8*9l:{:"(88+N(f:%8J8*(f: 8J8<(f:8J8"(88+b*:%8=8p*: 8J8 "(88+"(88+b*:%8J8p*: 8J8 *[:8+"(88+):%8+p*: 8=8*[:8+"(88+b*:%8J8p*: 8J8 *[:8+"(88+*;:+ p*: 8J8"(88+"(88+"(88+p*: 8J8 *[:8+ "(88+*9:9p*: 8J8"(88+"(88+"(88+p*: 8J8 *[:8+"(88+G*:8=8#*:98 "(88+"(88+G*:8J8#*:98*:8+"(88+*:8+#*:9:):++"(88+G*:8J8#*:98*:8+"(88+*;:+ #*:98"(88+"(88+"(88+#*:98 *:8+ "(88+)9:9#*:98"(88+"(88+"(88+#*:98*:8+"(88+{HHH{Lk5{ɜ{L6ɝ{L6 LC5{L=5 {{L=5 L5γ{{ 5L=5{L5a8 {) { 5L+5i(ǥiȩ{L=5{{({L5hhh`ǩ|ȩȥ{{|L=5 {{α{L=5ǩ|ȭ{δ{i(ǥiL5α{{ 5L=5{HHH{ L4{L5` { i0ХǍ{ȍ{{{|8{ {{{L5 `HH u6{ { {{L@6ILH6hh{`BD{EHI V䭴{ɛ {L@6{{{ `{`{`{`{) {(L5ɇ`H{ai {h{`HH=7ЍЩ @h  hhLbL47HU7T ԍЍh@H{ ԍЍh@L_7{{{` 4 4 4( 4{ 4 4{ 4 4{{ܩ 4 4 4ȩ 4 `셽7 %  6L KONIEC PROGRAMU - KLAWISZ akumulator Rejestr X Rejestr Y Logicz. OR liczba # wartoscia z pamieci Przesuniecie w lewo Ciska rejestr stanu procesora na stos kom. pamieci Break - przerwanie operacjiNieprawidlowa instr. operandu NACISNIJ KLAWISZ 'RETURN' zgas przen.wsk. prawo lewo Obrot Logicz. AND akumulatora Testowanie bitow akumulatora ze stosu Wez Przesun log. wExclusive OR zap.wartoscia z pamieci Dodaj z przerw. kontrolow.Transfer Zapam. do kom. pamieci do wskaz. stosu do akumulatoraSkok do podprogr. Skok - Laduj liczn. program. nowym adresemZmniejsz. Ladujwskaz. stosu do rejestru Xnadmiar Nic nie rob.Zwieksz. tryb dzies. liczbe Odejmij z Porown. nie rowne zero (Z=0)rowne zero (Z=1)Skok, gdy dodatnie (N=0)ujemn.(N=1)Powrot z podprogramu do rejestru Yzap.(C=1)zgas (C=0)zgas przepelnienie (V=0)zapal przepelnien.(V=1){{{L; 4{ 4{ 4 6` ;{{{{{ꭀ{ L<{{{{{ u<{݀{{{{L-<{{{{L;`R< { 4" 4 6hhL BLAD - PODWOJNA ETYKIETA " 4{ 4{ 4 6` 4 4{ 4 6 LA>{ L={BJL={ N{ BA$(A#0L=L=: { ,0L=:L<` { L={) ( L={)( {${), 0 :L=L={),0GA:Ls=hhLN{ ,0:AGL=L=L=ʅ= LL>POWINIEN BYC ODSTEP MIEDZY NAZWA MNEMONICZNA A OPERANDEM. SWIECACA SIE LINIA WYMAGA POPRAWIENIA. x>  4 4{ 4 4 4 4 4 6hhL ETYKIETA NIE MOZE BYC DLUZSZA NIZ SZESC LITER. SWIECACA SIE LINIA ZAWIERA ZBYT DLUGA ETYKIETE. ?3?U?x????@1@T@{@@ Lekcja 8 - Transfery @ Przyklad 1 do lekcji 8 uB Lekcja 9 - Zapis binarny B Lekcja 10- Przesun. i rotacje \M Przyklad 1 do lekcji 10 DV Lekcja 11- Jeszcze 2 flagi W Przyklad 1 do lekcji 11 [ Lekcja 12- Instrukcje logiczne S\ Przyklad 1 do lekcji 12 g Lekcja 13- Adresowanie indeks. Oh Przyklad 1 do lekcji 13 o WPROWADZ.NASTEPNYCH LEKCJI\TRANSFERY W 6502 istnieje kilka instrukcji przesylania. Transfer jest kopiowaniem wartosci z jednego rejestru do drugiego. Do dyspozycji sa nastepujace instrukcje: TAX-KOPIUJ Z AKUMULATORA DO REJESTRU X TXA-KOPIUJ Z REJESTRU X DO AKUMULATORA TAY-KOPIUJ Z AKUMULATORA DO REJESTRU Y TYA-KOPIUJ Z REJESTRU Y DO AKUMULATORA Istnieja tez dwie inne instrukcje przesylania, ktore omowimy pozniej. LDA #104 TXA LDX #40 TXA CLC ADC #20 TAX TAY LDY #3 TYA BRK ZAPIS BINARNY Uzywany system dziesietny zawiera dziesiec roznych cyfr i nazywa sie 'o podstawie 10'. Komputer, jednak, uzywa systemu o podstawie 2. Liczba w tym systemie zawiera w kazdej z kolumn jednaz cyfr: 0 lub 1. Poszczegolne kolumny odprawej sa potegami liczby '2' poczynajacod zera. Analogiczny przyklad dla systemu o podstawie 10 bylby: 1000 100 10 1 ZAPIS BINARNY Tak wiec liczbe dziesietna 2398 mozna przedstawic tak: 2 po 1000 = 2000 3 po 100 = 300 9 po 10 = 90 8 po 1 = + 8 ---- Daje w rezultacie 2398 ZAPIS BINARNY W zapisie binarnym poszczegolne kolumnybeda: 128 64 32 16 8 4 2 1 Na przyklad zamiana liczby binarnej w dziesietna: 1 128 0 +0 0 +0 Tak wiec binarnie 1 +16 10010111 oznacza 0 +0 151 (128+16+4+2+1) 1 +4 dziesietnie 1 +2 1 +1 --- 151 ZAPIS BINARNY Kazda cyfra binarna (1 lub 0) oznacza BIT. Poprzednia liczba byla osmiobitowa.Bity od prawej do lewej sa numerowane od 0 do 7. Wszystkie rejestry i komorki pamieci sa osmiobitowe. Tak wiec max. wartosc, jaka moga pomiescic to jest 11111111 binarnie czyli 255 dziesietnie (128+64+32+16+8+4+2+1). Grupa osmiu bitow jest nazywana bajtem (ang. BYTE). W powyzszym zastosowaniu mozna zapisac binarnie jedynie liczbe dodatnia. Jednak stosujac liczby zmiennoznakowe sa one pamietane w formie UZUPELNIENIA DO DWOCH.  ZAPIS BINARNY Wykorzystujac uzupelnienie do dwoch liczby zmiennoznakowe zapisujemy operujac bitem nr 7 (najstarszym w bajcie), ktory reprezentuje znak. W 6502bit ten ma wartosc 1 dla ujemnych i zerodla dodatnich liczb. Zmiana znaku liczbyjest bardzo prosta. Najpierw musisz odwrocic wszystkie bity z zera na jeden i z jeden na zero. Nastepnie do wyniku trzeba dodac jeden (binarnie).  ZAPIS BINARNY Wezmy np. 00011010: odwroc: 00011010 bedzie: 11100101 i dodaj jeden +00000001 -------- 11100110 Dlatego wartosc ujemna liczby 00011010 to 11100110. ZAPIS BINARNY Stosujac uzupelnienie do dwoch mozesz uzyc dodawanie zamiast odejmowania. Wezmy np. 43-1. Minus jeden binarnie to 11111111 oraz 43 zapisane binarnie to 00101011. Wykonujac dodawanie otrzymasz: 00101011 + 11111111 -------- (1)00101010 Zaznaczone 1, ktore jest przeniesieniem w uzupelnieniu do dwoch nalezy pominac. Tak wiec wynik dodawania jest 00101010 czyli 42, to wynik prawidlowy.  PRZESUNIECIA I ROTACJE Istnieja instrukcje przesuniec i rotacji, powodujace zmiane wartosci poszczegolnych bitow. Kazda z nich zostanie teraz omowiona. Zapamietaj, ze instrukcja moze operowacna liczbie, reprezentujacej nr komorki pamieci albo na literze A, okreslajacej Akumulator. Tak wiec liczba, na ktorej ma byc przeprowadzona operacja musi znajdowac sie w jednym z nich.ROTAC. PRAWA ROR *** Ta instrukcja operuje dziewiecioma bitami. Wszystkie bity liczby zostaja przesuniete o jedno miejsce w prawo. W miejsce przeniesienia zostaje wstawio ny bit nr 0. Przeniesienie zostaje zapisane w bicie nr 7. Nastepujacy przyklad powinien wszystko wyjasnic: PRZED: przen liczba 1 01011010 POTEM: 0 10101101ROTAC. LEWA ROL *** Ta instrukcja operuje takze na dziewie ciu bitach. Przesuwa ona wszystkie bity o jedno miejsce w lewo. Bit nr 7 wstawiado wskaznika przeniesienia a przeniesie nie do bitu 0: PRZED: liczba przen 01111101 1 POTEM: 11111011 0 LOG. PRZES. W PRAWO LSR *** Ta instrukcja dziala podobnie do ROR ale przesuwa tylko osiem bitow. Przesuwawszystkie bity o jedno miejsce w prawo. Bit nr 0 jest wstawiany do przeniesieniaa do bitu nr 7 wstawiane jest zero. Instrukcja LSR sluzy do dzielenia bajtu przez dwa. Wynik zawiera polowe bajtu a przeniesienie stanowi wartosc polowy (przy dzieleniu liczb nieparzystych). Ponizszy przyklad ilustruje dzialanie instrukcji LSR: PRZED: przen liczba x 11100100 POTEM: 0 01110010 ARYTM. PRZES. W LEWO ASL *** Ta instrukcja jest podobna do instrukcji LSR, lecz przesuwa ona bity o jedno miejsce w lewo. Daje to efekt mnozenia liczby przez dwa. Do bitu nr 0 wstawiane jest zero a bit nr 7 jest wstawiany do przeniesienia. Gdy po wykonaniu instrukcji wskaznik przeniesienia jest zapalony (1) to znaczy, ze wynik przekroczyl zakres i do otrzymane go nalezy dodac 256 aby bylo prawidlowo. PRZED: przen liczba x 10000110 POTEM: 1 00001100 LDA #1 ROL A ROL A STA 100 ROL A SEC ASL 100 LDA 100 ROR A LDA #128 ASL A CLC LDA #2 LSR A ROR A BRK INNE 2 FLAGI WSKAZNIK ZNAKU Ten wskaznik zawsze odzwierciedla stan bitu nr 7 po wykonaniu instrukcji. Jeslibit nr 7 jest '1', to ten wskaznik jest zapalony. Jesli ma on wartosc '0', to ten wskaznik jest zgaszony. PRZEPELNIENIE Ten wskaznik jest zapalony, jesli wska-znik znaku jest zapalony lub jesli po operacji arytmetycznej wynik ma falszywyznak.  INNE 2 FLAGI Jesli dodasz dwie duze liczby, to moze sie zapalic wskaznik przepelnienia. Tak jak w ponizszym przykladzie: 01000011 (+67) +01000000 (+64) --------- 10000011 (-125)  INNE 2 FLAGI W przykladzie dodane dwie liczby dodatnie daly wynik ujemny. W tym przypadku wskaznik przepelnienia zostal zapalony. Zostaje on zapalony przy: Dodawaniu duzych liczb dodatnich Dodawaniu duzych liczb ujemnych Odejmowaniu duzej liczby dodatniej od duzej liczby ujemnej Odejmowaniu duzej liczby ujemnej od duzej liczby dodatniej. Wtedy wpisuj instrukcje CLV (zgas przepelnienie). Ponizszy program przedstawia sytuacje, gdy przepelnienie i wskaznik znaku sa zapalone jednoczesnie. SEC LDA #130 SBC #20 CLC LDA #65 CLV ADC #67 SEC CLV SBC #120 CLV CLC ADC #1 BRK INSTRUKCJE LOGICZNE Instrukcje logiczne sa podstawa algebryGeorge'a Boole'a. Kazda z nich operuje dwoma okresleniami: prawda lub falsz. W rzeczywistosci miedzy kazdymi dwiema liczbami zachodza jakies konkretne relacje. Wszystkie instrukcje logiczne okreslaja prawdziwosc konkretnych relacji miedzy zawartoscia akumulatora azawartoscia komorki pamieci lub okreslo-na liczba. 6502 bada pary bitow. Kazda instrukcja logiczna dostepna w 6502 zostanie teraz opisana.  INSTRUKCJE LOGICZNE AND *** Podczas wykonywania instrukcji AND porownuje sie kazde dwa bity: bajtu w akumulatorze z bajtem w pamieci lub bajtem konkretnej liczby. Jesli obydwa sa '1' to wynikiem jest 'true' czyli '1'W innych przypadkach wynik jest '0': Wart. 1: 0 0 1 1 Wart. 2: 0 1 0 1 ------------- Wynik: 0 0 0 1 Np.: 10101101 AND 11110001 daje: 10100001 INSTRUKCJE LOGICZNE Instrukcja AND jest pozyteczna przy selektywnym gaszeniu bitow za pomoca tzw. 'maski'. Na przyklad, powiedzmy, ze chcesz zgasic nieznaczace bity od nr 7 do 4. Mozesz do tego uzyc instrukcji ANDi zgasic je, jak to pokazuje ponizszy przyklad: 11011010 - Liczba poczatk. 00001111 - 'maska' bajtu 00001010 - Wynik Nowy wynik zawiera zgaszone cztery starsze bity. Zwroc uwage, ze np. w ten sam sposob mozesz bardzo latwo otrzymac zamiane liczby dziesietnej w binarna.  INSTRUKCJE LOGICZNE ORA *** Podczas instrukcji ORA (OR Accumulator)kazda para bitow jest porownywana. Jesliobydwa sa zero, wtedy wynik jest '0'. A oto tabela prawdy dla ORA: Wart. 1: 0 0 1 1 Wart. 2: 0 1 0 1 ------------- Wynik: 0 1 1 1 INSTRUKCJE LOGICZNE Przyklad zastosowania ORA: 10101011 - Liczba porownywana z: 00001111 - ta liczba daje 10101111 - ten wynik. Instrukcja ORA ma zastosowanie przy zapalaniu okreslonych (zadanych) bitow. Patrz powyzszy przyklad.  INSTRUKCJE LOGICZNE EOR *** Instrukcja podobna do ORA, lecz wynik jest '1', gdy obydwa bity nie sa rowne. W przeciwnym wypadku wynik jest '0'. A oto tabela prawdy EOR: Wart. 1: 0 0 1 1 Wart. 2: 0 1 0 1 ------------- Wynik: 0 1 1 0 EOR (ang. Exclusive OR) jest stosowana do selektywnego odwracania bitow. Kazdy bit w dowolnej liczbie lub komorce pamieci moze zostac odwrocony.  INSTRUKCJE LOGICZNE Ponizszy przyklad ilustruje zastosowanieinstrukcji EOR do odwracania bitow. EOR trzeba uzyc miedzy badana liczba a 11111111. Wynik bedzie mial odwrocone bity, przy czym ulega rowniez zmianie bit nr 7, czyli znak. 01101110 - liczba poddawana EOR z 11111111 - ta lizba daje: 10010001 - ta liczbe. LDA #1 ORA #2 ORA #4 ORA #4 AND #3 AND #2 AND #0 LDA #255 STA 1000 LDA #190 EOR 1000 EOR #255 BRK ADRES. INDEKSOWANE Do tej pory uzywalismy adresowania: IMMEDIATE (natychmiastowe), ABSOLUTE (pelne) i IMPLIED (implikowane). Forma implikowana adresowania jest latwa do zrozumienia: sa to po prostu trzy literymnemoniku, np. TXA. Tryb adresowania informuje 6502 skad ma on wprowadzic dane wykonujac dana instrukcje. Podczas adresowania natychmiastowego ostatnia podana wartosc dla 6502 jest liczba. Dlatego wykonujac instrukcje: LDA #20 6502 laduje akumulator liczba 20 a nie wartoscia komorki pamieci o numerze 20.  ADRES. INDEKSOWANE Podczas adresowania pelnego liczba umieszczona po instrukcji jest numerem komorki pamieci. Podczas wykonywania instrukcji LDA 20 6502 laduje akumulatorwartoscia komorki pamieci o adresie 20, ktora moze byc od 0 do 255, a nie liczba20, bedaca aktualnie niepotrzebna.  ADRES. INDEKSOWANE Adresowanie indeksowane jest podobne do adresowania pelnego w kwestii pobierania danych przez 6502 z komorki pamieci.Rejestry X i Y czasami nazywane sa rejestrami indeksowanymi, z uwagi na te forme adresowania. Dwa przyklady zastosowania adresowania indeksowanego powinny przekazac powyzszeuwagi i zapoznac czytelnika z metoda pracy z nimi.  ADRES. INDEKSOWANE Pierwszy przyklad adresowania indeksowanego to LDA 710,X a drugi to ORA 654,Y. W pierwszym do 710 jest dodawana zawar- tosc rejestru X, co daje nowy adres komorki pamieci. I tak, jezeli rejestr Xzawiera liczbe 25 to akumulator zostaniezaladowany zawartoscia komorki pamieci o adresie 735 (710+25). Podobnie w drugim przykladzie, rejestr Yjest dodawany do liczby 654, co daje adres komorki pamieci. I tak, jezeli rejestr Y zawiera liczbe 216 to zostaniewykonana instrukcja ORA na akumulatorze i zawartosci komorki pamieci o adresie 870. Przykladowy program pokazuje sposob uzycia adresowania indeksowanego. LDA #6 STA 605 CLC ADC #2 STA 606 ADC #2 STA 607 LDX #0 TXA LDA 605,X INX ADC 605,X INX ADC 605,X BRK) `h Ն Ť ɡ}àL3 6 6 6 RLȩ נ נ נ