procedura przesuwajaca zawodnika z dokladnoscia do piksela (shifter);
przesuniecie wynosi od 1 do 3 pikseli w prawo i odbywa sie na biezacym generatorze znakow areny (6118);
procedura przesuwa po 4 znaki w jednej iteracji i zapisuje je na 5 znakach; powoduje to, ze generator znakow powinien zawierac o 3 puste znaki wiecej od ilosci znakow potrzebnej do reprezentacji formy zawodnika (chodzi o niepodzielnosc form zawodnika przez 4, do liczby znakow formy wliczamy znaki puste w kazdej linii);
na koncu kazdej linii tekstowej formy zawodnika znajduje sie pusty znak, dzieki czemu nie dochodzi do "zawijania sie" danych graficznych zawodnika przy przesuwaniu;
dzieki temu, ze procedura operuje tylko na generatorze znakow, mozliwe jest niezalezne przesuwanie zawodnikow po naniesieniu form ich obu na arene;

4F80 :                                     66 66 9C 9E
4F90 : 67 67 9D 63 07 27 47 67 87 A7 C7 E7

4F9C    LDA #$00            ; 2cyc ; A9 00
4F9E    STA $5E ;OLDADR     ; 3cyc ; 85 5E
4FA0    LDX $D2             ; 3cyc ; A6 D2
4FA2    LDA $E8,X ;FR2+2    ; 4cyc ; B5 E8
4FA4    AND #$20            ; 2cyc ; 29 20
4FA6    BEQ $4FAA           ; 2cyc ; F0 02
4FA8    INC $5E ;OLDADR     ; 5cyc ; E6 5E
4FAA    LDA $E8,X ;FR2+2    ; 4cyc ; B5 E8
4FAC    AND #$1C            ; 2cyc ; 29 1C
4FAE    LSR                 ; 2cyc ; 4A
4FAF    LSR                 ; 2cyc ; 4A
4FB0    TAY                 ; 2cyc ; A8
4FB1    LDA $4F94,Y         ; 4cyc ; B9 94 4F
4FB4    STA $5D ;OLDCHR     ; 3cyc ; 85 5D
4FB6    LDA $E0,X ;FR1      ; 4cyc ; B5 E0
4FB8    AND #$03            ; 2cyc ; 29 03
4FBA    BNE $4FBF           ; 2cyc ; D0 03
4FBC    JMP $5083           ; 3cyc ; 4C 83 50
4FBF    TAY                 ; 2cyc ; A8
4FC0    LDA $4F90,Y         ; 4cyc ; B9 90 4F
4FC3    STA $5014           ; 4cyc ; 8D 14 50
4FC6    STA $5023           ; 4cyc ; 8D 23 50
4FC9    STA $502F           ; 4cyc ; 8D 2F 50
4FCC    STA $503B           ; 4cyc ; 8D 3B 50
4FCF    LDA $4F8C,Y         ; 4cyc ; B9 8C 4F
4FD2    STA $501D           ; 4cyc ; 8D 1D 50
4FD5    STA $5029           ; 4cyc ; 8D 29 50
4FD8    STA $5035           ; 4cyc ; 8D 35 50
4FDB    STA $5041           ; 4cyc ; 8D 41 50
4FDE    LDA $6118           ; 4cyc ; AD 18 61
4FE1    CPX #$00            ; 2cyc ; E0 00
4FE3    BEQ $4FE8           ; 2cyc ; F0 03
4FE5    CLC                 ; 2cyc ; 18
4FE6    ADC #$02            ; 2cyc ; 69 02
4FE8    CLC                 ; 2cyc ; 18
4FE9    ADC $5E ;OLDADR     ; 3cyc ; 65 5E
4FEB    STA $5011           ; 4cyc ; 8D 11 50
4FEE    STA $5017           ; 4cyc ; 8D 17 50
4FF1    STA $501A           ; 4cyc ; 8D 1A 50
4FF4    STA $5020           ; 4cyc ; 8D 20 50
4FF7    STA $5026           ; 4cyc ; 8D 26 50
4FFA    STA $502C           ; 4cyc ; 8D 2C 50
4FFD    STA $5032           ; 4cyc ; 8D 32 50
5000    STA $5038           ; 4cyc ; 8D 38 50
5003    STA $503E           ; 4cyc ; 8D 3E 50
5006    STA $5044           ; 4cyc ; 8D 44 50
5009    LDY $5D ;OLDCHR     ; 3cyc ; A4 5D
500B    LDA #$08            ; 2cyc ; A9 08
500D    STA $60 ;FKDEF      ; 3cyc ; 85 60
500F    LDX $1620,Y         ; 4cyc ; BE 20 16
5012    LDA $6300,X         ; 4cyc ; BD 00 63
5015    ORA $1628,Y         ; 4cyc ; 19 28 16
5018    STA $1628,Y         ; 5cyc ; 99 28 16
501B    LDA $9E00,X         ; 4cyc ; BD 00 9E
501E    LDX $1618,Y         ; 4cyc ; BE 18 16
5021    ORA $6300,X         ; 4cyc ; 1D 00 63
5024    STA $1620,Y         ; 5cyc ; 99 20 16
5027    LDA $9E00,X         ; 4cyc ; BD 00 9E
502A    LDX $1610,Y         ; 4cyc ; BE 10 16
502D    ORA $6300,X         ; 4cyc ; 1D 00 63
5030    STA $1618,Y         ; 5cyc ; 99 18 16
5033    LDA $9E00,X         ; 4cyc ; BD 00 9E
5036    LDX $1608,Y         ; 4cyc ; BE 08 16
5039    ORA $6300,X         ; 4cyc ; 1D 00 63
503C    STA $1610,Y         ; 5cyc ; 99 10 16
503F    LDA $9E00,X         ; 4cyc ; BD 00 9E
5042    STA $1608,Y         ; 5cyc ; 99 08 16
5045    DEY                 ; 2cyc ; 88
5046    DEC $60 ;FKDEF      ; 5cyc ; C6 60
5048    BNE $500F           ; 2cyc ; D0 C5
504A    TYA                 ; 2cyc ; 98
504B    CMP #$FF            ; 2cyc ; C9 FF
504D    BEQ $5056           ; 2cyc ; F0 07
504F    SEC                 ; 2cyc ; 38
5050    SBC #$18            ; 2cyc ; E9 18
5052    TAY                 ; 2cyc ; A8
5053    JMP $500B           ; 3cyc ; 4C 0B 50
5056    LDA $5E ;OLDADR     ; 3cyc ; A5 5E
5058    BEQ $5083           ; 2cyc ; F0 29
505A    DEC $5E ;OLDADR     ; 5cyc ; C6 5E
505C    LDX $5011           ; 4cyc ; AE 11 50
505F    DEX                 ; 2cyc ; CA
5060    STX $5011           ; 4cyc ; 8E 11 50
5063    STX $5017           ; 4cyc ; 8E 17 50
5066    STX $501A           ; 4cyc ; 8E 1A 50
5069    STX $5020           ; 4cyc ; 8E 20 50
506C    STX $5026           ; 4cyc ; 8E 26 50
506F    STX $502C           ; 4cyc ; 8E 2C 50
5072    STX $5032           ; 4cyc ; 8E 32 50
5075    STX $5038           ; 4cyc ; 8E 38 50
5078    STX $503E           ; 4cyc ; 8E 3E 50
507B    STX $5044           ; 4cyc ; 8E 44 50
507E    LDY #$E7            ; 2cyc ; A0 E7
5080    JMP $500B           ; 3cyc ; 4C 0B 50
5083    RTS                 ; 6cyc ; 60


zmienne:

00D2: numer rysowanego gracza (0-bialy, 1-czerwony) (in);
00E0: przesuniecie dla gracza bialego w prawo (0-3 piksele) (in);
00E1: przesuniecie dla gracza czerwonego w prawo (0-3 piksele) (in);
00E8: ilosc zuzytych znakow dla gracza bialego (in);
00E9: ilosc zuzytych znakow dla gracza czerwonego (in);
6118: starszy bajt adresu biezacego generatora znakow dla areny (in);


dane pomocnicze:

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);
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);
6300-63FF: tablica wysunietych czesci bajtow po przesunieciu w prawo o 6 bitow (3 piksele);
