Zakres(y) rozszyfrowanego kodu:

1B00-370B
371E-5806
5ABC-610F
6220-6250
6260-62E8
6300-BFFF


zmienne:

PORTB: FF czyli standardowo OS wlaczony, BASIC i SELFTEST wylaczony;

0216: wektor IMIRQ wskazuje na 3AE0;
0222: wektor VBLKI wskazuje na 3901;
0224: wektor VBLKD wskazuje standardowo na C28A czyli EXITVBL;

//0050: #00/#01 - demo/gra
//0051: #00/#01 - 1 gracz/2 gracze
0050: #00/#01 - zawodnik bialy sterowany przez komputer/gracza
0051: #00/#01 - zawodnik czerwony sterowany przez komputer/gracza



0054: #00/#01 - muzyka wylaczona/wlaczona
0055: #00/#01 - odglosy wylaczone/wlaczone

005C: numer obrazka tla (0-6); uzywane przez procedury zmiany obrazka tla oraz przez procedury obslugi DLI; uzycie przez DLI powoduje, ze nie mozna zmieniac tej komorki w dowolnym momencie;

005D: uzywana przez 5509 (polozenie lewego skraju zawodnika), 415D;
005E: uzywana przez 5509 (polozenie prawego skraju zawodnika), 4537 (na poczatku zapamietana na stosie, na koncu przywrocana);
005F: uzywana przez 4537 (na poczatku zapamietana na stosie, na koncu przywrocana);

0062,0063: uzywane przez 4502,4660;

006A-0075: patrz opis 3CAF;

007A: uzywana przez procedure obslugi klawiatury 3312;

pozycje i kolory sprite'ow stosowane do areny, zapisywane przez CPU:
009A: pozycja sprite 0;
009B: pozycja sprite 1;
009C: pozycja sprite 2;
009D: pozycja sprite 3;
009E: pozycja missile 3;
009F: pozycja missile 2;
00A0: pozycja missile 1;
00A1: pozycja missile 0;
00A2: kolor sprite 0/missile 0;
00A3: kolor sprite 1/missile 1;
00A4: kolor sprite 2/missile 2;
00A5: kolor sprite 3/missile 3;
00A6: rozmiar sprite 0 / rozmiar missiles;
00A7: rozmiar sprite 1;
00A8: rozmiar sprite 2;
00A9: rozmiar sprite 3;
00AA: #0;

pozycje i kolory sprite'ow stosowane do areny,
pobierane przy przetwarzaniu Display List:
00AB: pozycja sprite 0;
00AC: pozycja sprite 1;
00AD: pozycja sprite 2;
00AE: pozycja sprite 3;
00AF: pozycja missile 0;
00B0: pozycja missile 1;
00B1: pozycja missile 2;
00B2: pozycja missile 3;
00B3: kolor sprite 0/missile 0;
00B4: kolor sprite 1/missile 1;
00B5: kolor sprite 2/missile 2;
00B6: kolor sprite 3/missile 3;
00B7: rozmiar sprite 0 / rozmiar missiles;
00B8: rozmiar sprite 1;
00B9: rozmiar sprite 2;
00BA: rozmiar sprite 3;
00BB: #0;

00C0-00CF: komorki wykorzystywane przez odtwarzacz muzyki;

00D0: faza
00D1: numer zawodnika, ktory wygral runde (ustawiany przez 2918); numer zawodnika, ktory jest przetwarzany przez 2F3D;
00D2: numer zawodnika, ktoremu dodane beda punkty (0-bialy,1-czerwony); numer zawodnika, ktory jest przetwarzany;
gracz 0 jest zawsze kodowany na pierwszej czesci generatora znakow (pierwsze 64 znaki), a gracz 1 na drugiej czesci generatora; sprite'y moga pokrywac jednego lub drugiego gracza - w zaleznosci od tego, ktory jest widoczny w calosci;
00D3: numer rundy (BCD);
00D4: numer zawodnika zadajacego cios w ostaniej klatce ruchu;
00D5: numer ciosu zadanego w ostaniej klatce ruchu;
00D7: timer liczacy do zera, zmniejszany o 1 co ramke VBL;
00D8: wartosc ciosu zadanego w ostaniej klatce ruchu, 0-brak, 1-HALF POINT, 2-FULL POINT;
00D9: liczba punktow za cios gracza bialego (0-5, full point = 2);
00DA: liczba punktow za cios gracza czerwonego (0-5, full point = 2);
00DB: blokada doliczania punktow bonusowych; jesli != 0 to procedura 2732/4537 nie doda punktow; jesli = 0 to doda ilosc setek punktow podana w 6132;
00DC: timer BCD czasu walki (w sekundach);
00DD: numer klatki animacji gracza bialego 0-53;
00DE: numer klatki animacji gracza czerwonego 0-53;
00DF: licznik zliczajacy w przod ramki VBL;

00E0: przesuniecie dla gracza bialego w prawo (w pikselach);
00E1: przesuniecie dla gracza czerwonego w prawo (w pikselach);
00E2: orientacja gracza bialego (0-przodem w prawo, 1-przodem w lewo);
00E3: orientacja gracza czerwonego (0-przodem w prawo, 1-przodem w lewo);
00E4: #1 oznacza, ze orientacja zawodnika bialego zostala odwrocona w trakcie biezacego ruchu;
00E5: #1 oznacza, ze orientacja zawodnika czerwonego zostala odwrocona w trakcie biezacego ruchu;
00EA: kolor zawodnika bialego i liter w tabeli wynikow (#$0F);
00EB: kolor zawodnika czerwonego (#$36);
(kolor areny szarej (Nowy York) to #$06);
!!! dla niebieskiego proponuje kolor #$84 !!!;
00EC: numer ruchu/sekwencji klatek (0-35) do wykonania przez zawodnika bialego
00ED: numer ruchu/sekwencji klatek (0-35) do wykonania przez zawodnika czerwonego
00EE: offset klatki w tabeli sekwencji klatek ruchow dla zawodnika bialego;
00EF: offset klatki w tabeli sekwencji klatek ruchow dla zawodnika czerwonego;
00F0: offset nastepnej klatki dla zawodnika bialego;
00F1: offset nastepnej klatki dla zawodnika czerwonego;

00F2,00F3,00F4,00F5: bufor klawiatury (od najmlodszego do najstarszego kodu klawisza);
00F6: poziom umiejetnosci (0-5) zawodnika sterowanego przez komputer, zalezny od numeru rundy - patrz opis 2CEF;
00F7,00F8,00F9: (ekranowy) licznik punktow zawodnika bialego (BCD 6 cyfr); zlicza punkty z calego turnieju;
00FA,00FB,00FC: (ekranowy) licznik punktow zawodnika czerwonego (BCD 6 cyfr); zlicza punkty z calego turnieju;

00FD: licznik liczacy od 0 do 5 co ramke VBLK; 6 natychmiast zamieniane na 0; obslugiwany przez procedure VBLKI $3901; jezeli 0 to (czyli co szosta ramke) pomijane jest wywolanie playera muzyki $276B - tylko dla systemu NTSC

0300-07FF: 1 bufor PMG dla areny i definicje PMG dla ekranu statusowego i obrazka tla;

0300-03FF: 1 definicja pociskow;
0400-04FF: 1 definicja duszka 0;
0500-05FF: 1 definicja duszka 1;
0600-06FF: 1 definicja duszka 2;
0700-07FF: 1 definicja duszka 3;

0800-0A3F: bufor 1 areny 12 linii x 48 (576) znakow;

0A40-0A6F: bufor dolnej linii ekranu wyswietlajacej napisy; kasowany i wypelniany przez procedure 2C90;

0B00-0FFF: 2 bufor PMG dla areny;

0B00-0BFF: 2 definicja pociskow;
0C00-0CFF: 2 definicja duszka 0;
0D00-0DFF: 2 definicja duszka 1;
0E00-0EFF: 2 definicja duszka 2;
0F00-0FFF: 2 definicja duszka 3;

0E27-0E4E: pusta linia w trybie #0E w kolorze areny;

1000-13FF: 1 zestaw znakow areny - bufor 1;
1400-17FF: 2 zestaw znakow areny - bufor 2;

1800-1A3F: bufor 2 areny 12 linii x 48 (576) znakow;

1A40-1A6F: nieuywany bufor dolnej linii ekranu wyswietlajacej napisy (dla bufora 2 areny); kasowany i wypelniany przez procedure 2C90;

1B00-1BFF: tablica odbic lustrzanych wszystkich 256 bajtow dla trybu 4-kolorowego (2 bity na piksel);

1C00-1CFF: tablica konwersji bajtow generatora znakow na lewy (starszy) polbajt sprite'a; piksel sprite'a jest zapalany dla koloru 3 (11 binarnie) generatora znaku, a dla pozostalych kolorow gaszony (kolor 3 reprezentuje stroj zawodnika);

1D00-1DFF: tablica konwersji bajtow generatora znakow na prawy (mlodszy) polbajt sprite'a; piksel sprite'a jest zapalany dla koloru 3 (11 binarnie) generatora znaku, a dla pozostalych kolorow gaszony (kolor 3 reprezentuje stroj zawodnika);

1E00-1EFF: tablica masek do kasowania tych pikseli w danych gracza przeslonietego, ktore staja na miejscu pikseli o kolorze roznym od 0 w danych gracza widocznego w calosci;

6114: numer zawodnika widocznego w calosci (0 - bialy, 1 - czerwony);
6115: numer bufora graficznego, do ktorego zapisuje CPU (0 = bufor 2, 1 = bufor 1); wartosc poczatkowa to 0; zmieniany (negowany) tylko przez 3BF9/3C0A;
6115: numer zawodnika, ktorego 415D i 51C0 sprawdzaja w pierwszej kolejnosci (0 - bialy, 1 - czerwony);
6116: numer podklatki dla klatki $2B i $2F (zakres wartosci 0-3) - licznik klatek animacji gwiazdek po upadku zawodnika (modulo 4);
6117: MSB adresu generatora sprite'ow (PMBase + 03, by wskazywal bezposrednio na Missiles)($03 lub $0B), do ktorego zapisuje CPU;
6118: MSB adresu generatora znakow dla areny, do ktorego zapisuje CPU ($10 lub $14);
6119: MSB adresu areny, do ktorej zapisuje CPU;
611C: kolor zawodnika widocznego w calosci;
611D: kolor zawodnika przeslonietego;
611E: MSB adresu areny, z ktorej czyta Antic; przepisywane przez DLI 3626 do 62CE (miejsce w Display List); $08 lub $18;
611F: MSB adresu generatora znakow dla areny, z ktorego czyta Antic ($10 lub $14) przepisywane przez DLI do CHBASE;
6120: MSB adresu generatora sprite'ow, z ktorego czyta Antic ($00 lub $08) przepisywane przez DLI do PMBASE; trzymany na $00 jesli runda unikania broni (patrz 3BF9/3C0A);
6121: licznik ramek dla opozniania animacji zawodnikow;

6122-6126: kolory dla areny;

dane sterujace ekranu stosowane do areny,
pobierane przy przetwarzaniu Display List:
611D: kolor 4 - bialy / czerwony;
611F: CHBASE;
6120: PMBASE;
6122: kolor 1 - rozowy;
6123: kolor 2 - czarny;
6125: kolor 3 - bialy / czerwony;
6126: kolor 0 - ale nie przepisywany;
613E: kolor 0 - arena;

6128-6130: ustalane przez 415D;
6132: ustalane przez 415D;
6136-613C: ustalane przez 415D;
613F-6140: ustalane przez 415D;
6144: ustalane przez 415D;
6151: ustalane przez 415D;

6128: numer zawodnika nie zadajacego ciosu w ostaniej klatce ruchu;
6130: numer ruchu upadku po otrzymaniu ciosu;
6131: numer ruchu po zadaniu ciosu;
6132: liczba setek, o jaka nalezy zwiekszyc licznik punktow zawodnika (BCD); uzywana przez 2732/4537; ustawiana przez 2918,2A49,415D;

UWAGA dotyczaca komorek 6136-613C: okreslenie "zawodnik zadajacy cios" nalezy tu rowniez rozumiec jako "rozpatrywany zawodnik" - w tej sytuacji "zawodnik nie zadajacy ciosu" to "przeciwnik rozpatrywanego zawodnika";

6136: bezwgledna roznica miedzy 6139 i 613A podzielona przez 4 (czyli w znakach)
6137: bezwgledna roznica miedzy 6139 i 613A (w pikselach);
6138:
-bit 0 - orientacja zawodnika nie zadajacego ciosu (0-przodem w prawo, 1-przodem w lewo);
-bit 1 - orientacja zawodnika zadajacego cios;
-bit 2 - 1 = gracz zadajacy cios jest na prawo wzgledem drugiego, 0 = gracz zadajacy cios jest na lewo wzgledem drugiego, wyznaczone na podstawie znaku roznicy 6139 - 613A;
6139: polozenie poziome punktu oddalonego od konca zawodnika o 12 pikseli (3 znaki) w strone srodka zawodnika - dla zawodnika zadajacego cios;
613A: polozenie poziome punktu oddalonego od konca zawodnika o 12 pikseli (3 znaki) w strone srodka zawodnika - dla zawodnika nie zadajacego ciosu;
613B: numer zawodnika zadajacego cios;
613C: numer zawodnika nie zadajacego ciosu;
613D: numer obrazka do zaladowania;
613E: kolor areny uzywany przez DLI;
613F: numer obrazu zdobytych punktow do wyswietlenia na arenie;
6140: pozioma pozycja dla wyswietlanej na arenie liczby punktow
6141: timer liczacy od 50 do zera, zmniejszany o 1 co ramke VBL; jezeli osiagnie zero, ustawiany jest natychmiast na 50; timer liczy tylko pod warunkiem, ze 6181 <> #$1C (czyli nie jest wyswietlany dymek BEGIN);
6144: liczba punktow za cios (wartosc ciosu), o jaka nalezy zwiekszyc ilosc punktow za cios zawodnika; ustalana przez 415D a takze 2918/2A49; uzywana przez 4502; 1 = half point, 2 = full point;
6145,6147: licznik setek punktow zawodnika bialego zdobytych w rundzie (BCD); kasowany przed kazda runda przez 2C42;
6146,6148: licznik setek punktow zawodnika czerwonego zdobytych w rundzie (BCD); kasowany przed kazda runda przez 2C42;
6149: numer przerwania DLI dla obrazka (0-2)
614C: stan joysticka - 4 najmlodsze bity;
614D: zawartosc 614C z-or'owana z odwroconym stanem przycisku joysticka podanym na bicie 4 (1 == wcisniety);
614F: liczba setek bonusu w kodzie BCD
6150: numer rundy (0 - 8, modulo 9); zaczyna liczyc od 1; przy 4 jest runda z lamaniem desek; przy 0 jest runda z unikaniem broni;
6151: numer zawodnika ktory zadal ostatnio skuteczny cios, 0 lub 1; na poczatku rundy ustawiany na $FF przez 2CEF i aktualizowany po kazdym skutecznym ciosie przez 415D;
6152: proc. 4A47 zapisuje tu numer komunikatu dziadka wyswietlonego na ekranie;
6154: liczba pozostalych prob unikania broni; inicjowana na podstawie tabeli 2F3A-2F3C z liczbami prob, indeksowanej przez 615F; dekrementowana po probie; 
6155: indeks miejsca gdzie zawodnik zostal trafiony lub 0 gdy nie zostal trafiony przez przelatujaca bron w biezacej probie;
6156: pozycja pionowa przelatujacej broni;
6159: pozycja pozioma przelatujacej broni;
615A: predkosc przelatujacej broni; ilosc pikseli na ramke;
615B: kierunek przelatujacej broni; 0 = w prawo, 1 = w lewo;
615C: rodzaj przelatujacej broni; 0 = obracajaca sie, 1 = kopia, 2 = noz;
615D: 1 = animacja przelatujacej broni wlaczona; 0 = wylaczona;
615E: 1 = cykl animacji broni trwa; 0 = cykl animacji zakonczony;
615F: poziom trudnosci proby; indeks dla tabeli 2F3A-2F3C z liczbami prob; przybiera wartosci 1-2 (z powodu bledu, a powinno byc 0-2); 1 dla pierwszej rundy z bronia (15 prob), 2 dla pozostalych (20 prob)
6162: numer proby unikania broni (0-19 w trakcie proby), inkrementowany po probie (1-20 po probie);

6167: bilans ciosow - wskaznik poczatku punktow zawodnika czerwonego w pojedynku dwoch graczy - waha sie od $36 (wszystkie czerwone) do $42 (wszystkie biale), $3C to rownowaga;
6168: numer zawodnika/portu joysticka, ktorym sterowal gracz i dla ktorego nastapi wpis do tabeli wynikow (i ktory ukloni sie po dokonaniu wpisu); ustawiany w 2918 jako numer zawodnika, ktorym sterowal gracz i przegral; czytany w 2EC3 x2,5C8C x4,5EBC;
6169: indeks wiersza tabeli wynikow, ktory zostal wstawiony;
616A: aktualny numer pasa;
616B: licznik zliczajacy w przod ramki VBL, wykorzystywany przy edycji wpisu do tabeli wynikow, dzieki niemu stan drazka jest odczytywany co 5 ramek VBL;
616C: aktualny kod znaku (z zakresu #$23-#$3E) wykorzystywany przy edycji wpisu do tabeli wynikow przy pomocy joysticka;
616D: stan przycisku joysticka o numerze w 6168, 0 = wcisniety;
616E: stan[t-1] przycisku joysticka o numerze w 6168, 0 = wcisniety, uzywany do wykrycia opadajacego zbocza sygnalu stanu przycisku, czyli momentu wcisniecia;
616F: stan drazka joysticka o numerze w 6168;
6170: numer (0-2) znaku wpisu, ktory jest aktualnie edytowany;
6171: licznik liczacy w przod; zwieksza sie o 1, gdy licznik 0014 osiaga zero, czyli co okolo 5 sekund; licznik 0014 czyli RTCLOCK+2 zlicza w przod ramki VBL, krecac sie w kolko (0-255);
6172: #00/#FF - brak odtwarzania/trwa odtwarzanie odglosu walki
6173: numer poprzedniej klatki animacji zawodnika bialego 0-55;
6174: numer poprzedniej klatki animacji zawodnika czerwonego 0-55;
6175: numer dzwieku do odtworzenia ustawiany po wykryciu zmiany klatki dowolnego z zawodnikow przez 39A1;
6178: flagi przepisywane przez 39A1 z 6191 lub 6192 przy wykryciu zmiany klatki ruchu odpowiedniego zawodnika;
617C: ilosc ramek VBL, po ktorych ma rozpoczac sie odtwarzanie odglosu
617D: numer odglosu do odtworzenia (#00-#05)
617E: kolor napisu w dolnej linii ekranu;
617F: jezeli == #0, w do dolnej linii ekranu wyswietlany jest napis "Game essence ..."; jezeli == #1, w dolnej linii ekranu wyswietlany jest napis "International Karate ...";
6180: kolor pasa (w przypadku czarnego kolor sie zmienia a jasnosc #0A)
6181: numer ruchu/sekwencji klatek (0-35) wykonywanego aktualnie przez zawodnika bialego
6182: numer ruchu/sekwencji klatek (0-35) wykonywanego aktualnie przez zawodnika czerwonego
6183: <> #0 oznacza, ze biezacy ruch zawodnika bialego jest wciaz wazny i moze byc bez przeszkod dalej animowany - zmiana ruchu przez gracza w trakcie trwania animacji poprzedniego ruchu zeruje ta flage, inicjacja nowego ruchu ustawia ja;
6184: <> #0 oznacza, ze biezacy ruch zawodnika czerwonego jest wciaz wazny i moze byc bez przeszkod dalej animowany - zmiana ruchu przez gracza w trakcie trwania animacji poprzedniego ruchu zeruje ta flage, inicjacja nowego ruchu ustawia ja;
6185: <> #0 oznacza, ze animacja zawodnika bialego jest wstrzymana na klatce ciosu do momentu, az gracz zmieni ruch czyli polozenie joysticka - jest to licznik, ktory zlicza klatki podczas zatrzymania animacji - dolicza jednak tylko do #$80 i zatrzymuje sie;
6186: <> #0 oznacza, ze animacja zawodnika czerwonego jest wstrzymana na klatce ciosu do momentu, az gracz zmieni ruch czyli polozenie joysticka - jest to licznik, ktory zlicza klatki podczas zatrzymania animacji - dolicza jednak tylko do #$80 i zatrzymuje sie;
6187: porzadek animacji zawodnika bialego (0 - normalnie, 1 - wstecz);
6188: porzadek animacji zawodnika czerwonego (0 - normalnie, 1 - wstecz);
6189: <> #0 oznacza, ze nalezy wykonac animacje wsteczna odwracajaca niedokonczony ruch; sprawdzane tylko, gdy zawodnik sterowany przez gracza; dotyczy zawodnika bialego;
618A: <> #0 oznacza, ze nalezy wykonac animacje wsteczna odwracajaca niedokonczony ruch; sprawdzane tylko, gdy zawodnik sterowany przez gracza; dotyczy zawodnika czerwonego;
618B: licznik klatek bezczynnosci / licznik opoznienia sekwencji przywolywania gracza do gry dla zawodnika bialego - odlicza w razie bezczynnosci gracza, uruchamia sekwencje losowo, gdy wartosc licznika >= #$80 - wtedy tez inicjuje licznik nowa wartoscia losowa z zakresu $10-$50;
618C: licznik klatek bezczynnosci / licznik opoznienia sekwencji przywolywania gracza do gry dla zawodnika czerwonego - odlicza w razie bezczynnosci gracza, uruchamia sekwencje losowo, gdy wartosc licznika >= #$80 - wtedy tez inicjuje licznik nowa wartoscia losowa z zakresu $10-$50;
618D: <> #0 oznacza, ze dalsza animacja zawodnika bialego zostala zablokowana (np. po upadku);
618E: <> #0 oznacza, ze dalsza animacja zawodnika czerwonego zostala zablokowana (np. po upadku);
618F: <> #0 oznacza, ze biezacej klatce zawodnika bialego towarzyszy odglos / ta klatka moze byc zablokowana przez przeciwnika blokiem;
6190: <> #0 oznacza, ze biezacej klatce zawodnika czerwonego towarzyszy odglos / ta klatka moze byc zablokowana przez przeciwnika blokiem;
6191: flagi klatki ruchu zawodnika (zwiazane rowniez z odglosami do odtworzenia) zawodnika bialego;
6192: flagi klatki ruchu zawodnika (zwiazane rowniez z odglosami do odtworzenia) zawodnika czerwonego;
6193: flagi te co w 6191, ale dla poprzedniej (w czasie) klatki;
6194: flagi te co w 6192, ale dla poprzedniej (w czasie) klatki;
6195: przechowuje numer ruchu wykonanego ostatnio przez zawodnika bialego lub 0, gdy zawodnik nie wykonal zadnego ruchu w czasie rundy (gracz nie poruszyl joystickiem); zerowana przez 2C42 i nigdy nie sa ustawiana w wersji na Atari; w wersji na C64 do komorki tej kopiowana jest przez 51F9 (dokladnie powinno to byc pod adresem 526B) zawartosc 00EC - numer ruchu/sekwencji klatek (0-35) do wykonania przez zawodnika bialego;
6196: przechowuje numer ruchu wykonanego ostatnio przez zawodnika czerwonego lub 0, gdy zawodnik nie wykonal zadnego ruchu w czasie rundy (gracz nie poruszyl joystickiem); zerowana przez 2C42 i nigdy nie sa ustawiana w wersji na Atari; w wersji na C64 do komorki tej kopiowana jest przez 51F9 (dokladnie powinno to byc pod adresem 526B) zawartosc 00ED - numer ruchu/sekwencji klatek (0-35) do wykonania przez zawodnika czerwonego;
6197: numer podklatki (w sekwencji mimiki) dla klatki $33 dla bialego (zakres wartosci 0-64);
6198: numer podklatki (w sekwencji mimiki) dla klatki $33 dla czerwonego (zakres wartosci 0-64);
6199: ilosc rund wygranych przez zawodnika bialego (gra 2 zaw.)
619A: ilosc rund wygranych przez zawodnika czerwonego (gra 2 zaw.)
619B: tempo walki #00-#03;
619C: kod statusu zakonczenia operacji wczytywania obrazka; #00, gdy wczytywanie sie powiedzie lub kod bledu SIO (>=#$80) w przeciwnym razie;
619D: jezeli <> #0, wykonuje sie procedura VBLK bardzo zblizona do systemowej; jezeli == #0, wykonuje sie procedura VBLK gry; patrz - opis 3901;
619E: jezeli <> #0, oznacza, ze trzeba zaladowac nastepny obrazek tla; ustawiana na 1 przez procedure obslugi klawiatury 3312, jezeli wcisnieto A, D, Z i M; kasowana przez procedury ladowania obrazka 438C i 439B;
619F: flaga uzywana przez procedury ladowania obrazka 438C i 439B - ta druga ustawia ja na 1 co powoduje ze pozniej nie wywoluje 2786, ktora inicjuje scene przed walka (arena i status);

61C0-620F: ekran statusowy 2x40 znakow;

dane tabeli wynikow:
6220-6226: setki tysiecy i dziesiatki tysiecy punktow w formacie BCD;
6227-622D: tysiace i setki punktow w formacie BCD;
622E-6234: same zera;
6235-623B: numer pasa (0 - bialy, 1 - zolty, ...);
623C-6242: pierwsze litery nazw zawodnikow;
6243-6249: drugie litery nazw zawodnikow;
624A-6250: trzecie litery nazw zawodnikow;

6260-62E8: DisplayList;

6300-63FF: tablica wysunietych czesci bajtow po przesunieciu w prawo o 6 bitow (3 piksele);

6400-65FF: zestaw znakow ekranu statusowego (tylko 64 znaki);

6600-66FF: tablica pozostalych czesci bajtow po przesunieciu w prawo o 2 bity (1 piksel);
6700-67FF: tablica wysunietych czesci bajtow po przesunieciu w prawo o 2 bity (1 piksel);

6800-686F: tablica 56 adresow 12-bajtowych form dla poszczegolnych klatek animacji postaci;
6870-687F: pusty obszar;
6880-68EF: tablica 56 adresow danych dla poszczegolnych klatek animacji postaci;
68F0-68FF: pusty obszar;
6900-6B9F: dane 12-bajtowych form dla poszczegolnych 56 klatek animacji postaci;
6BA0-6BBF: pusty obszar;
6BC0-6BF7: tablica ilosci znakow dla poszczegolnych 56 klatek animacji postaci;
6BF8-6BFF: pusty obszar;
6C00-9BFF: dane graficzne dla poszczegolnych 56 klatek animacji postaci (12kB);

9C00-9CFF: tablica pozostalych czesci bajtow po przesunieciu w prawo o 4 bity (2 piksele);
9D00-9DFF: tablica wysunietych czesci bajtow po przesunieciu w prawo o 4 bity (2 piksele);
9E00-9EFF: tablica pozostalych czesci bajtow po przesunieciu w prawo o 6 bitow (3 piksele);

9F00-AFFF: sample odglosow walki;
B000-BFFF: obrazek tla;
obrazek konczy sie na adresie BF4F; obszar BF50-BFFF jest wypelniony zerami z wyjatkiem fragmentu BF58-BF5F, ktory zawiera powtorzony 8 razy numer obrazka (numer ten jest sprawdzany po zaladowaniu obrazka i w razie niezgodnosci z numerem ladowanego obrazka w 613D ladowanie uznawane jest za nieudane);



procedury:

1F00-20C2,26C0-26D2: odtwarzacz muzyki; z muzyka zajmuje 2k;
20C3-26BF: dane dla muzyki;

26D3-2707: pusty obszar;

2708-2795: tablica skokow;

w wersji kasetowej mamy:
2708    JMP $2796 ;punkt startu calej gry;
270B    RTS ;tu w pelnej wersji jest ladowanie nowego tla
270C    RTS
270D    RTS
270E    RTS
270F    RTS
2710    RTS
2711

w wersji pelnej mamy:
2708    JMP $2796 ;punkt startu calej gry;
270B    JMP $438C ;ladowanie nastepnego obrazka tla; wolana przez: 2833, 2C90, 2F3D, 3058 (poprzez kod wspolny z 2F3D); 438C nie jest wolana bezposrednio;
270E    JMP $439B ;ladowanie pierwszego obrazka tla; wolana tylko przez 3270; 439B nie jest wolana bezposrednio (z wyjatkiem wywolania wlasnego);
2711    JMP $3F92 ;wyznacza relacje polozen zawodnikow;
2714    JMP $4787 ;nanosi dymek z mowa dziadka na obie areny;
2717    JMP $4A47 ;przygotowuje tresc dymka mowy dziadka w generatorach znakow obu aren;
271A    JMP $45CC ;nanosi obraz dziadka na jedna z aren;
271D    JMP $4651 ;kopiuje dane wygladu dziadka do generatorow znakow obu aren;
2720    JMP $5F66 ;wypisuje kolor pasa;
2723    JMP $4660 ;nanosi obraz zdobytych punktow (4 znaki) na jedna z aren;
2726    JMP $46F0 ;kopiuje dane obrazu zdobytych punktow do generatorow znakow obu aren;
2729    JMP $415D ;bada, ktory z zawodnikow zadal cios i wyznacza jego skutki;
272C    JMP $53BC ;koordynuje animacje zawodnika w 00D2;
272F    JMP $51F9 ;ustala numery ruchow dla obu zawodnikow na podstawie stanu joysticka;
2732    JMP $4537 ;zwieksza i wyswietla licznik punktow gracza podanego w 00D2; wartosc licznika zwiekszana jest o liczbe setek podana w 6132 (BCD);
2735    JMP $50E6 ;inicjuje tablice wymagane do animacji;
2738    JMP $4D10 ;wypelnia znaki tworzace forme gracza (00D2) w buforze areny;
273B    JMP $3D04 ;wybiera ruch dla zawodnika w 00D2 (o ile jest on sterowany przez komputer) i inicjuje jego wykonanie;
273E    JMP $5C8C ;wyswietla tablice wynikow, przeprowadza wpis do tabeli;
2741    JMP $2F30 ;'Wait X VBL frames';
2744    JMP $2EC3 ;rysuje dziadka i zawodnikow (zawodnika jezeli faza = #6) w aktywnym do zapisu buforze graficznym i przelacza aktywne bufory;
2747    JMP $5359 ;inicjuje wykonanie przez zawodnika Y sekwencji klatek ruchu o numerze podanym w A;
274A    JMP $51F1 ;koordynuje animacje zawodnika w 00D1;
274D    JMP $44F0 ;nanosi na ekran czerwone pola dla punktow za ciosy dla obu graczy;
2750    JMP $4502 ;nanosi na ekran zolte (swiecace) pola dla punktow za ciosy dla gracza w 00D2;
2753    JMP $5084 ;koryguje dane znakow kolizyjnych;
2756    JMP $4F9C ;przesuwa zawodnika w 00D2 z dokladnoscia do piksela (shifter);
2759    JMP $4E9F ;naklada sprite'y na zawodnika o numerze w 00D2;
275C    JMP $4B13 ;umieszcza w buforze areny znaki tworzace forme gracza w 00D2;
275F    JMP $1F00 ;INIT MUSIC; wolana tylko przez 3270;
2762    JMP $1F03 ;STOP MUSIC; wolana tylko przez procedure obslugi klawiatury 3312;
2765    JMP $27E3 ;MUTE MUSIC; wolana tylko przez inicjator odtwarzacza odglosow walki 3A7C;
2768    JMP $27E8 ;UNMUTE MUSIC; wolana przez odtwarzacz odglosow walki 3AE0 oraz przez 32A4;
276B    JMP $1F06 ;PLAY MUSIC ON VBLKI
276E    JMP $5C71 ;wyswietla pozostaly czas walki na ekranie;
2771    JMP $5BB2 ;wypelnia znakami ekran statusowy przed walka;
2774    JMP $5ABC ;kasuje aktywny bufor graficzny;
2777    JMP $51C0 ;glowna procedura petli animacyjnej obu zawodnikow;
277A    JMP $51DC ;procedura petli animacyjnej obu zawodnikow nie wybierajacej ruchu dla zawodnika sterowanego przez komputer;
277D    JMP $51EE ;procedura petli animacyjnej zawodnika w 00D1 (sterowanego przez gracza);
2780    JMP $5807 ;animuje przelatujaca bron;
2783    JMP $530F ;inicjuje wykonanie przez zawodnika Y sekwencji klatek ruchu o numerze podanym w 00EC+Y;
2786    JMP $32A4 ;inicjuje scene przed walka (arena i status);
2789    JMP $3B55 ;wlacza przerwania i obraz, ustawia wektory przerwan; nie jest nigdzie wolana przez 2789, tylko w jednym miejscu w 32A4 bezposrednio przez 3B55;
278C    JMP $3B38 ;wylacza przerwania i obraz;
278F    JMP $32E1 ;zeruje pamiec z wyrownaniem do strony;
2792    JMP $5B5C ;zapewnia czarne obrzeza areny;
2795    BRK

