<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Programowanie%3A_Przesuw_poziomy_z_regulowan%C4%85_pr%C4%99dko%C5%9Bci%C4%85</id>
	<title>Programowanie: Przesuw poziomy z regulowaną prędkością - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://mirror.atariki.pl/w/index.php?action=history&amp;feed=atom&amp;title=Programowanie%3A_Przesuw_poziomy_z_regulowan%C4%85_pr%C4%99dko%C5%9Bci%C4%85"/>
	<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Programowanie:_Przesuw_poziomy_z_regulowan%C4%85_pr%C4%99dko%C5%9Bci%C4%85&amp;action=history"/>
	<updated>2026-10-03T18:14:59Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mirror.atariki.pl/w/index.php?title=Programowanie:_Przesuw_poziomy_z_regulowan%C4%85_pr%C4%99dko%C5%9Bci%C4%85&amp;diff=3305&amp;oldid=prev</id>
		<title>imported&gt;Atariki recovery: Reconstructed from archived HTML; see provenance manifest</title>
		<link rel="alternate" type="text/html" href="https://mirror.atariki.pl/w/index.php?title=Programowanie:_Przesuw_poziomy_z_regulowan%C4%85_pr%C4%99dko%C5%9Bci%C4%85&amp;diff=3305&amp;oldid=prev"/>
		<updated>2026-10-01T08:51:48Z</updated>

		<summary type="html">&lt;p&gt;Reconstructed from archived HTML; see provenance manifest&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Poniższy kod źródłowy jest przykładem realizacji najpopularniejszego niegdyś &amp;quot;efektu&amp;quot; w programach demonstracyjnych, mianowicie poziomego przesuwu tekstu, zwanego popularnie scrollem.&lt;br /&gt;
&lt;br /&gt;
Program wzbogacony jest o możliwość sterowania prędkością przepływu tekstu na ekranie, w zakresie 0 (najszybszy przesuw - pętla opóźniająca czeka jedną ramkę) do 7 (siedem ramek). Kod został przygotowany w makroasemblerze [[MADS]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;                    opt  h+&lt;br /&gt;
&lt;br /&gt;
                    org  $80&lt;br /&gt;
&lt;br /&gt;
scroll_pos          .ds  1              ; wartość przesuwu delikatnego&lt;br /&gt;
scroll_speed        .ds  1              ; prędkość przesuwu&lt;br /&gt;
scroll_ptr          .ds  2              ; wskaźnik do tekstu&lt;br /&gt;
scroll_buf          .ds  2              ; wskaźnik do bufora na ekranie&lt;br /&gt;
&lt;br /&gt;
                    org  $2000&lt;br /&gt;
&lt;br /&gt;
start               lda  #$0e&lt;br /&gt;
                    sta  COLOR1&lt;br /&gt;
                    lda  #$00&lt;br /&gt;
                    sta  COLOR2&lt;br /&gt;
&lt;br /&gt;
                    lda  #00&lt;br /&gt;
                    sta  scroll_speed&lt;br /&gt;
&lt;br /&gt;
                    lda  &amp;amp;lt;display_list&lt;br /&gt;
                    sta  SDLSTL&lt;br /&gt;
                    lda  &amp;amp;gt;display_list&lt;br /&gt;
                    sta  SDLSTH&lt;br /&gt;
&lt;br /&gt;
                    lda  &amp;amp;lt;scroll_text&lt;br /&gt;
                    sta  scroll_ptr&lt;br /&gt;
                    lda  &amp;amp;gt;scroll_text&lt;br /&gt;
                    sta  scroll_ptr+1&lt;br /&gt;
&lt;br /&gt;
                    lda  &amp;amp;lt;scroll_screen&lt;br /&gt;
                    sta  scroll_buf&lt;br /&gt;
                    lda  &amp;amp;gt;scroll_screen&lt;br /&gt;
                    sta  scroll_buf+1&lt;br /&gt;
&lt;br /&gt;
                    ldy  #47&lt;br /&gt;
@                   lda  (scroll_ptr),y&lt;br /&gt;
                    sta  (scroll_buf),y&lt;br /&gt;
                    dey&lt;br /&gt;
                    bne  @-&lt;br /&gt;
&lt;br /&gt;
                    lda  #04&lt;br /&gt;
                    sta  HSCROL&lt;br /&gt;
                    sta  scroll_pos&lt;br /&gt;
&lt;br /&gt;
loop                dec  scroll_pos&lt;br /&gt;
                    lda  scroll_pos&lt;br /&gt;
                    sta  HSCROL&lt;br /&gt;
                    jsr  wait&lt;br /&gt;
                    bne  loop&lt;br /&gt;
&lt;br /&gt;
                    lda  #04&lt;br /&gt;
                    sta  scroll_pos&lt;br /&gt;
&lt;br /&gt;
                    ldy  #47&lt;br /&gt;
@                   lda  (scroll_ptr),y&lt;br /&gt;
                    bpl  @+&lt;br /&gt;
                    and  #$07&lt;br /&gt;
                    sta  scroll_speed&lt;br /&gt;
                    lda  #&amp;quot; &amp;quot;&lt;br /&gt;
@                   sta  (scroll_buf),y&lt;br /&gt;
                    dey&lt;br /&gt;
                    bne  @-1&lt;br /&gt;
&lt;br /&gt;
                    clc&lt;br /&gt;
                    inc  scroll_ptr&lt;br /&gt;
                    bne  @+&lt;br /&gt;
                    inc  scroll_ptr+1&lt;br /&gt;
&lt;br /&gt;
@                   lda  (scroll_ptr),y&lt;br /&gt;
                    cmp  #$ef&lt;br /&gt;
                    bne  loop&lt;br /&gt;
&lt;br /&gt;
                    jmp  (DOSVEC)&lt;br /&gt;
&lt;br /&gt;
wait                pha&lt;br /&gt;
                    ldx  scroll_speed&lt;br /&gt;
@                   lda  RTCLOK+2&lt;br /&gt;
                    cmp  RTCLOK+2&lt;br /&gt;
                    beq  *-2&lt;br /&gt;
                    dex&lt;br /&gt;
                    bpl  @-&lt;br /&gt;
                    pla&lt;br /&gt;
                    rts&lt;br /&gt;
&lt;br /&gt;
                    .align $0400&lt;br /&gt;
&lt;br /&gt;
display_list        .he  70 70 70&lt;br /&gt;
                    .he  52&lt;br /&gt;
                    .wo  scroll_screen&lt;br /&gt;
                    .he  41&lt;br /&gt;
                    .wo  display_list&lt;br /&gt;
&lt;br /&gt;
scroll_screen   :48 .he  00&lt;br /&gt;
&lt;br /&gt;
                    ; prędkość regulowana w zakresie f0..f7&lt;br /&gt;
                    ; f0 - najszybszy przesuw, f7 - najwolniejszy&lt;br /&gt;
                    ; wskaźnik prędkości jest zamieniany na spację&lt;br /&gt;
&lt;br /&gt;
scroll_text     :48 .he  00&lt;br /&gt;
                    .sb  &amp;#039;Stand up, damned of the Earth&amp;#039;&lt;br /&gt;
                    .he  f1&lt;br /&gt;
                    .sb  &amp;#039;Stand up, prisoners of starvation&amp;#039;&lt;br /&gt;
                    .he  f4&lt;br /&gt;
                    .sb  &amp;#039;Reason thunders in its volcano&amp;#039;&lt;br /&gt;
                    .he  f1&lt;br /&gt;
                    .sb  &amp;#039;This is the eruption of the end.&amp;#039;&lt;br /&gt;
                    .he  f6&lt;br /&gt;
                    .sb  &amp;#039;Of the past let us make a clean slate&amp;#039;&lt;br /&gt;
                    .he  f0&lt;br /&gt;
                    .sb  &amp;#039;Enslaved masses, stand up, stand up. &amp;#039;&lt;br /&gt;
                    .sb  &amp;#039;The world is about to change its foundation &amp;#039;&lt;br /&gt;
                    .sb  &amp;#039;We are nothing, let us be all. &amp;#039;&lt;br /&gt;
                    .sb  &amp;#039;This is the final struggle &amp;#039;&lt;br /&gt;
                    .sb  &amp;#039;Let us group together, and tomorrow &amp;#039;&lt;br /&gt;
                    .sb  &amp;#039;The Internationale &amp;#039;&lt;br /&gt;
                    .sb  &amp;#039;Will be the human race. &amp;#039;&lt;br /&gt;
&lt;br /&gt;
                    .he  ef&lt;br /&gt;
&lt;br /&gt;
                    run  start&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Atariki recovery</name></author>
	</entry>
</feed>