Professional Documents
Culture Documents
c64 Grafik Programlama
c64 Grafik Programlama
2 9 - "# $8 .16 "*)
G 2 . & 8&
G #& %'
G & ;&
G 1>' %
G J""
G ;8 &7
G :1 #& #
G B&#)))
!"
# ## !' " $ $' ( "9+
' #" "*9 <
G /34 ## ! < #& K #&K #& K K M 8
M# &# # & # "
4
2
.7 & " # %(&9 ! ' % 2
.7 8+
%(&9 ( ' ' ) 2
. " # > &
%(" ) ! # & # -' !$#&+
*9') A& " ! 8 !"& 8K !+
2
.7 - >&> # > & ( ! - ) ? " - 9 ! ' $ -&> ) : ! +
./07& ! %8 &' ) * 9& 8K ( & & ( (
& " # ! ( "9 ! # "# () "!"& " ( ) & ! 8K #!& ! $' #- #
" ) # & $ # ! )
2
. %8 !9 # $ ! "8 # " +
!# '# #" 8K *" ) : # 8K
*9 ! !" ') % 9 ' 3 *
( &" ) ! & #& % " & '#
2
. #& %8 %) #& $8# %8
* #(" 9 ! (& 8 &" ! &
# & !# 8 !9) /34 # & !# >'+
" ) : ! $&& !( ( "
2
. #& (!" ) #& '8 "+
! ! ! ##9' 8K ! 9& >#&>
!" ) 2
. #& @ # @0 # +
! # %'" " !& !& ' " &8 !
!- !" ) :"# !' - >&>
! # *'" ) && ' (" ' '
! ( 8 *"9 ' ! # 9 2
.
# "'#" #9 % ! # !&* #' ! O
#& 8> " "*9')
# %P !9 " #') 8 O#" #& %P !)
2
. /34 # #" " *" - ! !9& $ # ! ( & ( %' &"8 '#
) #& #&9 H
& 8& N#&
FI !9&#) !+ ' ! #" # " -! %)
9& 2
.& %8 /347 ! #) #
=(& ! - & ! ! &'" H "&- I) ;' # 2
.
2
. /347 " (& & "9 " & !& !& '
%8#') ! #' $### ' 8K +
!( ! !- H! # "* " # #& '
#& # " & !+
8 !-I & # #9" ) - # 2
.
! # #!& ! $' ! ! (& '" #')
/347 ! ! !- %' !( >' "+
% #' ' $ 8K $ "9
9 8 %# % 8(&9 H # !
! & ! # 9& ) ;' ! 9&&
" ' # % 8&9I ! % +
# & & "8 ! $ # #
! )
%' #9! #') D& 27' "&- >>'
B'& " /34 2
. # >% & $! ( " < #!& ! - >9>>' " ( ! ) /34 #' '
#!& ! 9& (& ) ;' ! # "9 ! ( -#&+
! % #> " #' #!& ! $'
G ! H/34 '" 2
. "" I &9 % 8K ! " #')
G 2
. #& H/34 '" "" I /34 # ! ! %(&9' ! ( ( ! ) 1# '
! "#& "& " #' ' # "* ! # )
G
F H2
. /347 ! ( $! " I
# >#&> $ & & # 8 8
8%" # ) /34 #' # # # ! #"+
' &9 #"" ) :$ #" # # !#
%- ! & " & !8 ( 88 +
# >' !( ! " ) D ' +
./0 , 1 #
# #&9 ! " & >'> # -& * "+ % 12
" ) ' # ! !-> > !' #
*' !(" #' " # ! " ' #-+ ?# - 9 ) : /347 &+
>" #) );' 1"&- #& 8K !9 " ) 2
!$#&&9 ' ! ! ! ! # +
* #' ' & ! M' ) /34 #' # #&" ) : # "
# ! ' &9 #-% " " + 3)#& !(8 )#& ! # ) :$ -*
#' !-* #> 8K ! " M '+ 9 ' ! /3478 # (< 2
. & "&- 3
9' 9 & " #') * #' ! &#') #& 8K "* ' /34 2
.7 O! * #
1# /34 #' !' ! & !>> # ! & >%> !P *) 2
. & 3) #& !& 8 34)#&
# ! &" ) ;" >%> # !>> # >#&> 8K "* /34 O* # !P *) -
"*9 #->" ) ;' !>&> ! ! M' !- #& !"* & "9 ' H #& !( +
8 ! 8K " # >#& >#& ! ( $ I 2
.7 /347 " & # "
#-!" #')
"! # % /347 2
.7 " $ #& "&-
=(& ! !>> # !) M' # 2
. #& !9 9 ! # ' ) ' & " #& %+
* 8K "9 ! # ' ) "# & "
D ' #' /347 # 8#& &"8 &!" +
#& !( 2
.7 " & !( ')
#') >' /34 $ 8 # -' !
* !" O$ & P " #' 8#& &"8 #' =(& 2
.7 /347 # &!9 8#& &"8 H +
" !' !( ( 8" ) 69 /34 &"8 &+ #& #&9 H
FI I - - ! "& " & %" )
'# 2
. !( 8#& &"8 " 9 % $ #" 2
.7 %" - ! &9 ) /34 2
.7 O "&- !
/347 ! $ ' H# 8#& &"8 & 'I) - & 3)#& !( 9 ! #
- #' - > & 8%" 8 " ' %(+ >&P !" ) ! #& (# 2
.7 /347 +
9 ' $& ! ' #9*) '9' " # ! ( & # ! ' & !#' ! # %" -
!8 ! *#' O))) /34 8#& &"8 ! -' $8 ' !' -&> $ "9 ! 8
( " %( " )P " ')
" - " "9 ! #" /34
F # 9 !" 2
. & 3) #& !+
"*) "#& %( /34 2
. () & /34 " $ 8" # ! 8 $ +
"* # $8 ' "#) # &"8 9 ' !&9 !- !" #
$ " " & 8 !(" ) - & 8&9 (
./ 0 $ 2
.7 $ # !*9 #- - 9) R#&
/34 2
.7 8K "&- $' "9 !9 %
- & !*9' %" - ! "& ) 1# % " & # 8 & " "9
#' ! ! # 03) #& "" 9 /34 #' + ! #" #& %9 ! #" #& !( "9
# >#&> !&9' 9(& ' #- # " E ' " & !" 2
.7) 2
. /34 !
- 9 # !( ! * ) ! # ! ' # "' "& #" ! $ $ #& % 2
.7
#- #))) #' $ # ! !(+
F - # " )
9' % ! " # 8K #- !( #'
! "&- " " ' 4) # *' ( 2
.7 (& ! ( ! #& * &&9
F7 O #&
0/)#& &! * # %' ) -* %'9 #
FP " ) #&
F7 ## /34 $### ! ' +
>#& # #' #' ! !- & # # !( !-+ & "9 2
.7 " & - %" %
! ) "&- " ! ! ! + %(& - # & &!" )
& ( 8K # "'#" " & )
T
./0 , 1 #
Baslangic: % 2
.7 @4 # #& +
jsr RasterIRQHazirla
Son: " ) #& >%> !& #&
F &(& +
jmp Son " ) :9 !& !( "( "(
F7 &9
!' " 9(& #& 9 ' % ! >% " & +
" ') -* 9 !& 9 9(& #*
# ! !-> #* " >' " # %# ) >%> !& 4 8" ')
C " & ! ' !) C " ' &
-*
F $' & & &8 ->" lda $d011
#"#' ! -> " ) /34 " " && and #$7f
&8 " ) ;* 2
.7& #& #&9 9 ' sta $d011
%* "
F & ( 8" " & !&* lda #$20
& ! #"#' -> " ) sta $d012
RasterIRQHazirla:
sei " & * %(& " ) 5 "9 +
' % ! ' >(> ' ' )
0
./0 , 1 #
44 4 2
. % $& - #& #) #$ 8 ) & #" !>&> !"*
=# ! ! ' * * #$ * 2
. ! #+
& " & *" ) "&- - & @)#& 9 /34 !
& *)
4 '9 "9 ! +
#& ) ?9 ' ' !' 2
.7 " $ #& & #"* " #$ % % % &8 !
#& - & "9 #->" ) '9 ' # 9 # ! !' %' - *9')
#&
F &(& ( # H4 I
F7 " # #&+
9 ' #& 2
.7 ! & ( "" ') 2
. ! ! &&9 ' #& 4 # ?17 ! ! & # ! &
F
*
F # - *) "9 8 ( & # 8" .CL #&
" %8
F # 9 8 & "9 (
- 2
.7 #&9 ' #& /347
F - # ->" ) :"# !' ! & - +
$' ( ") C !
F # 9 /34 + '
F & - % $8 M 8 @4 " & +
8*) B* !-> &&9 ' ! /347 " 8&9 *9')
( ! 8 H !' 8 " ' " 8&9 ( #* !
#"#' ->I -' " " # #&9 ' ( 8 !(& * @4U " & ) ( "
!( # ' ) % (9 " & " ') " #') 2
. /34 # 8#& &"8 $& +
) =(& ! " & /34 2
.7 8#& &"8 " )
2
.7 4U # #& 2
. & "(&
F
lda #<IRQRutini
sta $0314 # ( /347 O & )
F #
lda #>IRQRutini ( ) #" & " # & ! $! P +
sta $0315 # #9" ) :$ -* ! &&9 ' ! 2
. %(&
F #!9 % /34 !
F $+
(9 ! ) >' @4U
-
F * " # #&9 ' ( % ! & % !&
F (9 ' ! % +
'" ' ! & ! - &
F& # !(" ) !" ) 4 "9 ! !& #&
F !&) 4U !+
& 4 ' # 2
.7 #&
F # 9 ' +
/34
F # 9 ' 9
F !& 4 # ?17 !' 8&9 ' #- ( "" ')
( 8&& #" !& @T40 @T43 #
& >#& !& ! # & ) ' ! @T40 4U ' 2
.
F # /34 - 9
@T43 %
F & ' !(% # '" ') -+ !& # " ) ! !& 4 2
. 47 ' " #&
/34 2
.&
F # * !'
F &+ " )
F # " " $ ! !& 2
. 8" )
' &*) /34
F # (& #" " & 4 8+
" )
cli
rts :"# '
F & ' 9 ' @4U7 '+
9 !" ') >' * " & 9 ' # "+
" " !& 4 8 # "" ') V4 #&
@4U ! ') A& ! 8 %" 8 " * *
& !>&> $' & 9 ' % * " &
F
" & ) ! ' #!! !(
# & !(! ') 69 # *
8 " * " ! - > #' (( )
# " ) :>(>> & !' @T407
F &+
' # & !& "& #" $ $ ! #+
!8&
F # # /34 @T40 @T437& # &+
4
#&*) ?# ! !&& '* ! " ) T437
$>' ' %>>) -* /34 #' ! # &+ ( *' #! <
8 !>> "# &*& ) " # % !'
F "( # 9(& %* "
F #+ G ' %' #& " &# !(" ) #& !(
- ' " ') *7 $ &# !(8 #" !& ! %' # 8*9 E
8 " ->>" )
G %' #9 #" && " ! #!& ! " " E
IRQRutini:
inc $d019
* #" *8 $ ") &
F # +
lda #$01 * /34 -* ?1 !' ( 8" " #"
sta $d020 !' & ' &" (&) =(& ! " & 8
lda #$00
sta $d020 ( ' 9 H** &>&&9I % # !' " & '
2
. "&- " #& ! #" #9 -+
jmp $ea81 " )
3
./0 , 1 #
# 2
.7 ! & #& % # #9 ) ( && " - >>" ) 69 ' * ! &&
!-> > ( - > !- # H !
IRQRutini: #& #" ! #" #& !( # !-I)
inc $d019 * ! " # %-'> > ! 9) Q ! %-'>
*9') , % %-'> # & !-> >
ldx #4
gecik1: O& #& & P !-> > &*)
dex
bne gecik1
lda #$01
sta $d020
lda #$00
sta $d020
jmp $ea81
IRQRutini:
inc $d019
ldx #4
gecik1:
dex
bne gecik1
lda #$01
sta $d020
ldx #$0a
gecik2:
dex
bne gecik2
lda #$00
sta $d020
jmp $ea81
/34
F # 9 " (& & "9 " & &+
8 ?17 & (&) =(& " ( & " " &
%(& ** ' "! ) /34 " & **7
**7 "! ) *
F # " & (9
**7 $ $ ! ! ) 1# !' - 9+
' #8& !#&)
F 9 ( " &
M 8 "9 ')
>> 8 " ' #"#' -+
> " ) W 8 " & T **)
F " & ! >%
**7 $# 9 !9 " /34 #&
( !( -* 4 ** $ *
M 8 " & & *) 2
.7&
F # $ #
' ! ) >' $ # /34 !'
%' %'9 ' " & #& !( >% '& (+
&" ) $' " /34 ! **7 * 2
.7 8K -+
' &!> &&9 % 8 " #"
%' ' 7 8K ! T 8"'#" #& !
/
$ ldy #2
gecik1:
dey
+
bne gecik1
ldx #$00
dongu:
lda renk_tablo,x
sta $d020
; # "* ) 2
. # 9 ' sta $d021
" ') & *9' ! ! -* !-> > #" +
& ! #& %'# -#& (&) !-> $ %"
ldy gecikme_tablo,x
#& *'# -#& !(*9') gecik2:
dey
C " '
F & !-> > 9(* #*) 6 !(& bne gecik2
F $' & *) ;*
F #&#
"*9 #& 9(& 8 ! ' $ " &# *9') inx
cpx #$60
F & & #& %'# " 8 #&E bne dongu
G 9(&
!-> -* 8 " )
F # +
G ! #" #& !
& #" %' ' >'> ! ( #& !( !(+
G 9(& % >%> ! * !(" ')
)))
@/ & #& & & " #& 9 ' % ! -> $+
G 9(& ' " ') :-> >' #% " S #& *9')
;; ------------------------------------------------
IRQRutini: ldy gecikme_tablo,x
inc $d019 gecik2:
#& 6&
lda $c080,x
" & $ #& ! * 8" ') :& " +
( #" ! ) 5 * 9 ! &!+
" "" 'E 2
. & #!& $' - " )
:"# !' $ #& ! ' #> #!& "+ " & * ** # *9 S #& 9 - +
%>> 2
. ! & #& $8 #!& ! $' %" " ) 9( ) 69 S #& @ $ >%> ! 9 #
! " & 0 ** #> ) ?# S #& @ $
%" $ ! #" ) .! # ! ' () Q *! !>> ! 9 # ! " & @*4 #" ! #
#* ! !-> >> *9') : # ! !->+ H @*7 % "9 ! #" !"9I (&9 % 3
> !*#') ** #> )
2
.7 ! #!& $' - 9 "9 ) A& 2
. ' " ' ! $### ! ' *
! 8! % $ #& ! /347 # ! #> + -> ' %(" " -> ' +
9 X" " X) X5# EX 9' !" ) 9 ' " & $' 9( # %" '" ')
1 & $ #" ! " !>&> & &+ " # % 9 ' &!" !& - (+
* ) Q ' ( () #& ! 2
. & ' ! !"& &(8 !( !"9 # )
/347 # ! #> " !' ( 88 #" & @/ !& &!" ! !"9 !( !(&
& !(&" ) # # - "" ' # ( $8 #!& $' %(* " &+
" %>> " 8K ! #!& ! $' ')
'" ) :>(>>))) 69 /34 9 #& 9 #&+
(&&9 " & (& # % )
>> 8 " 9' ' ! ' &!"# 9 +
'& 9 % ' !" ) ") && ! ' ,* &!"# 9
" #& & ' &&& '#'
=(& ! >' !' '9 ' " #& ! 9 #+ "( - >&> - >) R#&> ! % % ! &>#
& $ ' ! 8 # " ) - >+ #" ) Q %" 9* XMMX
9>>' " & $ # ! & &!" ! !-> !(*9')
9(& ! * & ' ( "" ')
inx
5 $
cpx #$60
bne dongu #& )8 7 & * ' #> !&& #" $ # ! '
$ & #& ) 1# ! #& %' (9 ! )
#& %' 8 ( ' ! ! ! % %+
! ) 8!* &" * 9( -'> #& %'# &
!>&> #& #& ' %' #9 -+
"! )
> >'> "& " "&#') :->> #* " S #+
& 9 & 8 $>' @/ "8 " 9 "& " + & # 8! ' >(> ) #
" ') @/ 9 '& & & #& *' %' #&" ') 1# !#& ! - 9
! #' )
lda #$00 8 #&9 ' & &"8 #& ! #& *' +
sta $d020 ! (9 "& "#) #& ! - >
sta $d021 H # "9 (9 !#& "I ! 8 "! %-'+
jmp $ea81
%( %" & !' & " & &(*#')
:>(> ))) #& ! #& *' ! ' ) 1# @
" & 9 ' & !>&> #& %' ( + @) #& # "# ! ) ' $ # !
') ? >' & ( !- *9 ! (9 #&" ' )
8
F & %" ')
% 2
.7&
F # $ # ! (9
#& )/0 "## !&9'
F & $ + >(>! ') # 2
. !' @) #&
Z 33 #& - *#') &! $ !
F - ) * # @4) #& #))) ' ! # $
@/ !& '9 " * &!" - *+ # ! & #& &! 9(& " "*9 +
#') #& &!" ./0 !9 & " ' $ # %' ! #& (9 ( - >> )
! #" !"9 !( H @*4I !( # #9+ 8 % !>&> 8 '
F & ' #"+
" ') 8&9 ' % ) 2
.7 @4 #& ! 9 ' ! #"+
#
F7 ! #& #" # #9 " )
/34 K # " & H Y&!"K #I $
' #!& $' H #!& # ** I %( ' )
ldx efekt_baslangic_satiri
69 K #& HS I 9 &!" &! +
#& 6&
C 8 'E %-'> " * &!"# "+ ! #& 8 #" 9(& & 8 "
$ # ! !& #" !( "! ) 1# ' )
F ) #& 9
ldy gecikme_tablo,x
6 7
$
$ #" ! #" #
F 4) #& *
;; ------------------------------------------------
renkleri_degistir:
ldy gecikme_tablo + 1 ,x jsr renkleri_temizle
ldx bar_pozisyonu_okunacak_index
ldy sin_table+$00,x
( " # $ ' * &!"# # jsr bar_ciz
#& * & # #9 (
inc bar_pozisyonu_okunacak_index
" ') %
F & ' #" >%> ! rts
8 & # 9(& # #9! ) ;; ------------------------------------------------
renkleri_temizle:
ldx #$00
inc gecik2-2 lda #0
rt_dongu1:
sta renk_tablo,x
inx
cpx #$60
!))) bne rt_dongu1
rts
A& ! #& ' 8& #&9' $ & + ;; ------------------------------------------------
((&% ! ( ( ' '" (*& ) ? bar_ciz:
lda tek_bar + 0
>' # $ & #& 8 %" $ " sta renk_tablo+ 0,y
# ! " ) lda tek_bar + 1
sta renk_tablo+ 1,y
Q & >(> ))) #& $ & && #&" ') lda tek_bar + 2
sta renk_tablo+ 2,y
A& ' %" $### "9 %
F # !' lda tek_bar + 3
$8 #& # ( ' ) #& 8 " ' sta renk_tablo+ 3,y
F & $ #& % &!"# "" ) lda tek_bar + 4
sta renk_tablo+ 4,y
,* &!" " & & ' ! - >&> &+ lda tek_bar + 5
(&) ? ' ! >' $% !"' ) sta renk_tablo+ 5,y
lda tek_bar + 6
& !' @) #& @) #& >'> ! ( sta renk_tablo+ 6,y
lda tek_bar + 7
&!"# 9 #& %' %'" # "#) sta renk_tablo+ 7,y
' ! %' !& !& ' ! #" # " # #&9 '
U
#& 6&
" & 8&9 ' ( !#& #) Q ! 8"'#+
Q ! " * ) - >9> >' !-> $ #+ " ## &!"# "*9 '
! %9 8 ! #" # -#& >' ! Y8"'#"Y"*YK # #" ') +
&!"# $' " ) % ( &8 " ) 9 K " 8 ## &!"# #&9 ' 9
8 #& "8 ! %' & &" ') &
G &!"# & ' H#$ " I #& ' 8"'#" %'* ! )
G #" - " # #& ! ! %' inc bar_pozisyonu_okunacak_index
rts
G * # % #" ! #" 9 "
>' & $'
2 #" " #" # #" ! #" +
>(> & & ' 8" ') !" & '+ 9 " >' K ! & " ')
! & & 8" ') #& !( ! %'
& & 8" ' %>> #" ! ' ! %' #&+ renkleri_temizle:
! ') & & - " & -* ! #+ ldx #$00
& &!"# % ! !( # #&9 ' #& + lda #0
rt_dongu1:
& ! " %'#) sta renk_tablo,x
inx
cpx #$60
renkleri_degistir: bne rt_dongu1
jsr renkleri_temizle rts
=(& ! & !( & ' & &8 ->+ %* %" ! ( ") -> &!"#
" ') # " '
' 9 ' #># &!"# !' @3 # + renk_tablo + 1 + $10 = renk_tablo + $11
( ! ( # 3/ & 9 #9" )
:"#
;'* #& " &
4
#& 6&
bar_pozisyonu_okunacak_index:
!by 0
" & 3/ !& #># &!"# &(8 ! #" #'
! !& " ) #& 9 ' % #># &!"#
&& " ') 6 ' &!" - #" !(
;" " ! #& #9 ' #" K %
%( ( ! %()
!& ! !& ( "" ')
;"% $* * 9 E
, %& %" & ! !-> > $ & ( ) Q
! ' 9 69 ))) & ' #& 8 " +
>' &!" ' 8 "
5 #') % !>&> 8 ' Y& '
& Y8Y"8 & &8 &
Q >%> ! 9( & ' &*9 & &+ #& 8 " !)
renkleri_degistir:
jsr arka_plan_kopyala
renkleri_degistir:
jsr renkleri_temizle ...
...
ldx bar_pozisyonu_okunacak_index ;; ------------------------------------------------
ldy sin_table+$00,x arka_plan_kopyala:
jsr bar_ciz ldx #$00
apk_dongu1:
ldy sin_table+$04,x lda arka_plan,x
jsr bar_ciz sta renk_tablo,x
inx
ldy sin_table+$08,x cpx #$60
jsr bar_ciz bne apk_dongu1
rts
ldy sin_table+$0c,x
jsr bar_ciz
ldy sin_table+$10,x !#&))) Q &! " #*$"" &
jsr bar_ciz
& % #!* #>8 - > ! #& &
ldy sin_table+$14,x & ( !" #') & ' *
jsr bar_ciz
$ ! 8! #')
ldy sin_table+$18,x
jsr bar_ciz # ! !-> >> !& -* #" " %" - !
" ) =#& #' ! &># 8 - )))
ldy sin_table+$1c,x
jsr bar_ciz
inc bar_pozisyonu_okunacak_index
rts
!align 255,0
sin_table:
!src "sin_table_00.a64"
!src "sin_table_00.a64"
44
.# 8
# $ #& #& ! & ! % #+
*& 9 " - >&>> "(& # !&
& #& % # !! )
G & "(& K 8K $ ! ) ' ' ( ( "! ) ; "))) : -'& )
! #!! !& & 8K " & # 3/)#& < ;* \44 8 ) #"& #* & &
" ' # ) & & !& " - >&> #
> & )
, " ! & #& % 3/ & & ! )
! 3/ & $ ! % !& K 8K H 3)#& < ;* \444 8 ) #"& #* & &
!&I " >' &"8 @ !& ) ! @ & & !& " - >&> #
!& !& & 8K ) =* !& * + > & )
& 8K #)
,- >>9> ! 2
. #& ! #& 2" & # +
:"# 2
. ! & #& #"& $ + ( ) =(& ! #& :1 ;& )
& "9 ! -9 & #" H" & #& "+
:1 #& " #& 2
. ! (8 " 0 &
I ! 9 T !& 8 H % 88I & T !&
4
:1 ;&
!& ! " !9 ' & #& + ! )
& X & #& !9X K4 8K # )
# 3) #& #& H & # # T) #& #& I :))) " * * "&# " ')
2
.7 8 4) & #& " ! $ $ ! +
2
. & % :1 " ! #& 0 !& "
& #& !9 T)!& # !)
!& #&) (& " !- ! #& 2
. +
' (" ! ' ))) " # &+ # ( " /T +**7 07 ! !& " )
9 $ !#&) #& #& 2
. $ & % T7> ( 9 ' ( 8 ) /T
! !& "" )
>> & 9 8K ! !& **7 $ * )
#9" ) 0 & " % 0 !& "" )
# /34 ( " /T & **
:1 #& # " #& & #& "*9 0 #&9 ! !9 ( " ( %( ) /34 %
!& " 0 !& 2" 1& #& "" ) =* '& ** "& ) " 4 ** % 4
#"& $' % **7 ( 8 ) " ** % 9 !9 ( # +
" # ! **7 # 8* ( ' +
:1 #& 2
. #& " 9 ( (& )
#& 0 !& % $ !9 (*)
, :1 #& ))))
# )))
=(& ! #& 2
. " # /T
$ $ ","
**7 8&9 ( " 2" 1& #& 0 !& $
" # ) :"# # /T &
** 2
.7 & *& )
% > &&9 ' # ! ) CJ 2" #
#!& $' "9 % 2
. :1 9 !>&> #& >' 2
. " /34 0 & **7
$' % '" ) ./0 *"* **7 ( 4 # /34 #8 ) #& 0 !& "! )
H " #I) #8 89 ( " & %" )
/34 2
. # ! #8 % ' ( $ -*
!$#& 9 ' ! # ) # - 9
1 raster sat#r# = 63 cycle
/34 $ # " ) & "
$* $ & & ') # &9 /34 "9
" #' 9 )
$& - ! # & $& > % ! "+
&( ' #99 ' % %" &') =(& 2
. ! # :1 #& /347 & 0
** " ) ;"* " :1 #& /34
( ! () 2
. /T **7 ! & #& %" ) && #+ #* /T + 0 [ T ** $ *9 2
. #& #" +
& "* -* #& & '
F & % (& )
->> H* &!"# 77 9 "9 ' I !
-& " & ** ' &"8 & /T =(& ! >' ! ' /34 %# :1 #& T
** &&9 $#88 XX ! ) /34 " & + ** 9 #& # /T **7 ) =#& "*
F +
9 ** ## % & && !! XC " * & ' -> :1 #& & T ** $ *+
6 &!X # !! ) 9 &#& ! )
4T
:1 ;&
40
8
G @ # & !& @ + @ #
& #& " & #& $ -* !$#&&) G @4 # & !& @0 + @0 #
( " ' " !>&> ! &
!(*9') )
! & ! # H#I >(>! ') G 0) #& TU) & #"& # @
# 33 # ) & !&
'9 % $ & & !& ! % "
& # # #' % 88 ! 9 +
& #& !& # ! ')
!; ;; <1 11 $
& !& # [ H & K K I ] & $ ! 2
.7& '* ! & #& && ) 6 +
#& !( 4 & "* 2" 1& # % #
!& 7 337 " & # & !+
B 9 & #& ' @ # !(8 @ + ) ( ! ( 2" 1& #& ! # "
# 8" #^ # ( & #"& $ & -'>+
# #&" # " & # # " ')
43
& ;&
B 9 2" 1& # ' @0 # !(" ) sta $0400 + (40 * 10) + 12,x
2 !' & & #& # " & 0)
#& !( " #&" ') ^
#& ## ! " ') " #& #K
9 ' " && # $ $ ! & +
G 0) #& ) #>& #"& # !
&# !" ') # 8 ' $+
G ! # 9 " ' #8 !' ' * 8 ! " (9
" % "
.
1 $ & ' ' !& $' 8 "8" ')
% ! - & Z! " & )
% # $ * 7 !' #99 Z#* " & ! ')
" & -' !& ! !- ! 8 $ & +
./0 %9 2" 1& # ( - + & #& K (& ) :& &
9 ' ! @0 + @ # # ) * #& ! $ ( K " $ X6 "X
./07& & " $ $' &9 ' " ./0 "& ) * Z#* " & HX;* ."XI
& & #& ) :"# @0 + @ # 9 & % ' % !>&> $ " !+
' " ./0 "& & -#& !+ & #
')
yaz#_uzunlu#u:
:& & #& $ # ( ( $ !by $15
$ 9 ! # # ! 8 " ' '+ yaz#:
! ') :& & $ !& # @47 !scr "yeni bir gun ba#l#yor"
!(8 H I @47 HDI ' ( ) "( &
@ K #$8& )
9(9 8 ' 9(& ! #') :&
! - ) *9' "& 'Y'97 -#& #&9' $
## & )
test:
lda #$01 :& & #& $ K " & #
sta $0400 ' ' 8%" - 9 /34 ## ! # !+
lda #$02
sta $0401 ! #') ' # 9 ( #&9 ' " & &
lda #$03 #& 9 & #& '
sta $0402
8 3 19
lda #$04
sta $0403
" #" >#& -( .: $ " ) 69
"* ' $ ## & # -> ') 5# ." "" 7 ( - #* "& !(
> 8%" %'9 ! * "& ) * +
ldx #$00 ' $' 9' ! 8 " & # & ! +
dongu: & #& &# #&! #')
lda yaz#,x
sta $0400 + (40 * 10) + 12,x
inx =(& ! #" ' @ !& ! +
cpx yaz#_uzunlugu & #& "## !( !( *#') "# ! +
bne dongu & #& &# * &!*9' ! _!
rts
! (' $' " ! #')
yaz#_uzunlu#u: #& %( ' "(& % !' #' !' $'
!by $10 & #& "# #" ')
yaz#:
!by $00, $01, $02, $03, $04, $05, $06, $07
!by $08, $09, $0a, $0b, $0c, $0d, $0e, $0f Q # #" ' #" () 6 ' ! "#
8*9')
4/
& ;&
G 2
.7 & #& !& "9 #- :$ -* ! &&9 ' ! !' ! #> #* #" 0 "#9
*9')
G 2" 1& # & #& ' & #+
' ' ) 5# " !#&(& % & ;& *
@7> & " # "!" # ( 2
. &#+
* 2" 1& # "!*9 # @07>
8 6 :; & " # 9 & () :"# @47 >#& 0 !&
2
. 2" 1& # % !& 4/ 9( !+
2
. &# " "(& % & #&+ # #9!" <
!& >!*9 @7> & " # +
(& () :"# !' & #& ' @ @ $d018'in üst 4 biti: Video Matris adresi:
@T ! # >!" ') -------------------- ---------------------
%0000 = $0 $0000
, ! #& ! ' & #& ' $8 %0001 = $1 $0400
%0010 = $2 $0800
0 #& ! "*9'< @ @ @T @T) %0011 = $3 $0c00
# 9 ' -9 *#') %0100 = $4 $1000
%0101 = $5 $1400
%- 8 : 9
%0110 = $6 $1800
%0111 = $7 $1c00
%1000 = $8 $2000
%1001 = $9
%1010 = $a
$2400
$2800
%1011 = $b $2c00
% 2" 1& #7& - ! #& ) # !+ %1100 = $c $3000
! ! %" &*9 ' #& ! ) %1101 = $d $3400
%1110 = $e $3800
;' # && & %" &') =(& (')))) %1111 = $f $3c00
% @47 !& ! (& ) R#& 0 !& 2" Video matris $0c00 => üst 4 bit = $3
1& # 8 " & 0 !& & #& Karakter seti $2000 => alt 4 bit = $8
8 " ) ---------------------------------------
$d018'e yaz#lacak de#er = $38
& #& ! & 0 !&& #* >#& T7> 2
. & +
& ) :"# " & ;& % (+
9 9 *9 2
.7 -#& ! )
Video matris $3400 => üst 4 bit = $d
Karakter seti $3800 => alt 4 bit = $e
---------------------------------------
$d018'in alt 4 biti: Karakter Seti adresi: $d018'e yaz#lacak de#er = $de
-------------------- ---------------------
%0000 = $0 $0000
%0010 = $2 $0800
%0100 = $4 $1000
%0110 = $6
%1000 = $8
$1800
$2000 , + ? 3
%1010 = $a $2800
%1100 = $c
%1110 = $e
$3000
$3800 8 1
& #&9 ' & #& % 8 ' +
4
& ;&
## 2
. $>' %' ! +
& #& #%* & !-> %'
# * ! & #& #**9') >&> 8 '
! #&
F "( # #98 "
F &+
@47 "9 9 ' )
4
:11 ,
8 ' ( -* 8# 8# +
) ) % ( 8*')
: 3 8&9 #- (&) =(& ! !>&> +
' ! 8# & #" @4/7 T !&
& 88 ' & ! &
#& %' ! ! ./07& ! # & " & #"& *'*9')
> $ X ' X &( >' #')
" ! -> $ *) >' ' &
' H#* " " ! I ) , ! #& "& # ( ! ' %" !#& ! -
' $ *'( ! 8# # >' &*9')
! & ) -* ' %" ( ! (
C "! ! ' !#&(& ) 6 & ! $ &"8 T
#9 8 ( ( #" "9 ) 8 "" +
8# H 0 & #"&I *9') - ! !
& #> " $## #
$ ( & *#')
& !)
& ( "9 ' '9' '
5" " & #& & #"& "9 ' +
9 $ #&" #' Q+/)47 !+
& ! ! #"& $ #"&+
! #')
* * # #9! ') ( 8 !
' - 9 /34 ## ! # )
4U
( '
jsr yaziyi_ekrana_koy
jsr yazinin_konumunu_degistir k815_dongu:
lda yazi1,x
jmp $ea81 sta ekran,x
inx
cpx #$4
bne k815_dongu
F & >' "9(*9') & 8&9 ' rts
( ) C " ' ! ( ! & & ;; ------------------
" ' !(&" ') ' %' ! #"+ konum_16_23:
%' % " 9(& ) ldx #$0
k1623_dongu:
lda yazi2,x
;; ------------------------------------------------
ekran = $0410 sta ekran,x
yaziyi_ekrana_koy: inx
lda yazi_konumu cpx #$4
and #$07 ; %00000111 bne k1623_dongu
sta $d016 rts
konum_24_31:
ldx #$0
& ! !& ' " # % " ') ;; ------------------
!&& ' " " @ @4 # 9( 9 k2431_dongu:
#*9') = 8&9 ' ( ' " & T !& + lda yazi3,x
sta ekran,x
4/7 8K $###& ) inx
cpx #$4
bne k2431_dongu
lda yazi_konumu rts
and #$f8 ; %11111000 ;; ------------------------------------------------
yazi0: !scr "a "
cmp #$00 yazi1: !scr " a "
beq konum_0_7 yazi2: !scr " a "
yazi3: !scr " a"
cmp #$08
beq konum_8_15
cmp #$10
beq konum_16_23 # 0 & & ) ! " !- !
& - >9>>' ' $ X- ! ( X
cmp #$18 #') # " " !& % #% - ! '
beq konum_24_31
% ! - ! ( $' ) 0 & 8 & (
"9 0 & "8 )
( '
4
( '
# !" ') "& #" @4/7 #!&+ A& !'
F & 4/7 '& $ #"
" ') -* ! #" !-> > # *) 4/7 '9 ' 9 "9 - >8 & #"&
! #" # %' @) #& & 8& !( # 8 "! ' )
>> >(>> #'
"( ) $>' #& #& ' !( ! -*#) :$
F & ' ! ' $ * H#*
;" " (9 " & & #& "## !& 4/7 9 8 &&I) :"# 9 ( +
@ # >>" ') & #"& % # ! %'
@047 #M ' $ @07 ( "*9')
*=$2000 ! @04 - > # $ " # +
!bin "../ext/c1x1.fnt",, 8# #" - >*) #" 4/7
'9 ' 8# #9 *) !>
$ % % 8# " '9 >(>> # T
* Y' 8 " %(& % %' " # " (- "*<
' " ) * -* - " ! " # % !#& ! - ' " ) +
- @* HTI # (& ) # " & #"& 8 % !->+
8 " %(& *'# !* !-* <I >> #& #& % # ! ) " & +
' (- 9(& " '<
( '
8 ' ( "8 9 %& lda $d016
sec
!( ) -* 4) #"&& ) #"& ) #"&& 4) sbc #$01
#"& T) #"&& ) #"& ( ') (+ and #$07
& #&9 ' ( 8 ( "*9') sta $d016
rts
Q ! "& (9 " & ' ! ' $ & +
<
A&
F & #& ! #' " & &
#"& ' ( "& " & -*
G 4/ 9 ! '& ! 8# 8
@4/7 # " ' H # I)
G !-> > #" ! >' " & 4/ " ( ! # $ '
- *9') 8 "! ( % (- ! " &8 " ')
G 9 4/ " ( # & #"& 8 4/ #& 9 "& " %
!- 4/7 '9 ' 9 ! "8#
G 47 TU7 &"8 TU #"&& & 7 T7 !' Y4/7 '" ') 4/7 ! "8# &&+
#"& "8 " ' ' H#* !- % " 9 I)
# !( !-> #& !( 9
G TU) #"& #M ! #" & (& )
'# ! ' & #" '9 9 $& +
" # # 9 " 9 (
& " * $' ') Y' - 9
F& !" )
!-> > &! 9(& " ') "
Y'T)/0 "## !*#') karakter_slotlarinda_kayma:
lda bizim_d016
beq slotlari_kaydirma_vakti
IRQRutini: rts
inc $d019
jsr bir_pixel_kayma
KayanBolgeninSonunuBekle: : %9 ' ! ! !-> !' Y4/7 9 #
lda $d012 "8 " 9 "& " #"& ' 8
cmp #$3c 9 " ) & #' ! #*
bmi KayanBolgeninSonunuBekle
! "" ) 4/ 7 47 9
lda #$0 ! ( 8 8 #* 9 & #" 8" )
sta $d016
jsr karakter_slotlarinda_kayma slotlari_kaydirma_vakti:
jmp $ea8 ldx #0
skv_dongu:
lda kayan_satir+1,x
sta kayan_satir,x
" & #&
F & (& ( inx
cpx #39
$ - >" #') * " & ! & 9 ' ! bne skv_dongu
& " !- ( @4/7 9 #!&+
# ! - >" #')
2 ! TU & ! #" #"& ->> - >+
" #') ->> " & ## & ( %+
;; ------------------------------------------------
kayan_satir = $0400 + (0 * 40)
)
bir_pixel_kayma:
lda bizim_d016
sec ldx sonraki_karakter
sbc #$01 lda yazi,x
and #$07 ; %00000111 sta kayan_satir+39
sta bizim_d016
sta $d016 inx
rts stx sonraki_karakter
rts
T
( '
bir_pixel_kayma:
lda bizim_d016
sec
sbc #$01
and #$07 ; %00000111
sta bizim_d016
ora #$08 ; 3 nolu biti 1 yap
sta $d016
rts
0
(& ) E ! 8 % "(& 7
!& !& 8 !& & #& % "9
# "& & ) & #& ' @ # "+
9 # #^
& & #& ' @0 + @03 # / & ! #+
........................ ' / 8 %# &(" ) :"# ! -
..........*******.......
.........*.......**..... % & 8 ' & ( ! / " & #
.........*.......*.*.... " ) B 9 ! >#& #" -(# "
........*........*..*... #& # H " & # 9 @0 ##I^
........*........*..****
..******************...*
**.....*.....**..*.....* en üst sat#r#n ilk üç karakter slotuna s#ras#yla $40, $41
*..**..*........*..**..* bir alt#ndaki sat#r#n ilk üç slotuna s#ras#yla $43, $44,
*.*..*.*........*.*..*.*
*.*..*.*.......*..*..*.*
***..**************..***
..*..*............*..*..
...**..............**... 9 " ' & "*)
........................
........................ & #& 8 % " >' & +
! ! 8 % 9( & &
! ') :>(>> #' ! 9(
- ! # & %'! 'E 0K4/ & & 77 $ & ! ") B 9
8# ! & % #9 " ) !' ! # K 8+ (9 " 8 %# ! " ' #9 )
# !-# &&9 ' !-> $
! ! & (& # & #& # / 8 %+ *=$0400
# ! & " & ( "*9') ;" !>&> 8+ !by $40, $41, $42, $40, $41, $42
' ! & & # " & # %
*=$0400 + (1 * 40)
! ! - "9 " & ) !by $43, $44, $45, $43, $44, $45
3
& ,
)
- - - -
$ -* #& %' 8 9 ' + - - - -
9 H7 437 4/ ./0 I !9 + - - - -
# '9 ' " # ( #"& %' - - - -
- - - -
&
8# ! ( " ') - - - -
- - - -
- - - -
Örne#in deminki araba örne#inde,
$d800 : 01 01 01 02 02 02 ...
$d828 : 01 01 01 02 02 02 ...
,( 8# & % "& # ( & +
)
( !9 9 ' # 6 #" >#& -+
( ! ' !' ! ' " ) " & #' ! 8# !& +
!" ') :$ -* & " ! 8# ! !&
A& !9 (& %"9 ' & !9 ' % ! 8# " !"( "!" )
" * " ') (- ! " 8 %# ( ?# ( ! 8# & % ! 8# 0
%(*& ) ! ')
G %" & (& 9' #"& (
!9 # 43 # ! 9 " )
Q ./07> - ( ! 9 '+
& &9 (( &#') Q &
B' * # & % ! -'& ) #+
#"& $8 & & -#& ) ?# ./0 ! +
! -' #$# & 8&
& #"&
& -#& ! )
$ %" $ & & -#& ! # #+
)
9 ) 6 # ( !9 9
" & " ! & #"& 8#+ # " & & 43 # "
2
. & " ( ( 9( ) + & %" " -'>> ) 9 & ' +
& ( !& ) A& & " % "& !9 43 # ! 9 "+
! ! !& $ ! !& ! 8# ( ') 9' # & 44 9 8# $
*9) 8# !9' >' + 43 9 +
! !&& !& ( 8 !->> ) ! ( 9 9 # 9 (
!& 8 ! 8# & # ) ! !& 0 ) +43 # 9 -* % #"
8# ) ! ! 8# !9' 9 $ "9 ! #' (& "
! 9( ) 8K (9 & & ! & #"+ 44 9 8# - >*9 & ) B 9 #" >#& -(
& K 9 0K 8# #9 !( ) %" ! & " # 4 +
/
& ,
#;3 jsr $1003
1>' 2
. %8 # E #" ' ! ) % )
D& %" ' ) # ./07& >' % (
!>> !-> >> ($ ;
: %8 >#& )
& ! ')
jsr $1000
!' 9( 8*9')
6 >#& !-# "" ' #) J"" ' 8 D 1 $
" #$) !' & " ' !>&> 8 #$
" #) : $ " ' #% ) &+
F & ' !>&> & 8 & "9 %
" ' #) " " & # ! ' >(> ) # %"9 '
F
& ' & #& ( " (- ! ( "*<
B# "" ' - >>9> & >#&> !
!' #& %'# % ) !- H "+
" 8I #$ "#) G * @4U
J"" ! & & ' !' #!& #& %'+ G & 8
( ! %( 8 ) ' " !-
G 47 * & #& # !
' ) %( & # ' - )
" # ! !' !& %" ( !) G * & 8
' (9 %( ( ! !' G 47 >%>*> & #& # !
!& 8 ) A& ! # ! !& % ! ' +
(& ) G >%>*> & 8
;" " ' & ' ' >' G M 8 @4
$ &Y #& - 9 ' ! ! & 8 )
" ! >' % & %9+ #& ! & 9 E Q ! "(& '
*9') & " 8 ' -' ! & " %
F & ' "+
& # ! ' $ & " " & % <
U
= =& "
G #& #" 8 H! #" #& +
$' I
G M 8 @4
=(& ! !#&)
F & ' %" - " ! ! !
9 - "& & " ' !( $
F $' +
-* 8 ! )
G >'9 !
& %9 )
G F '
G #"#' ->
& ' " & -&> "& ( ) " +
' ( ' 8 "! %! * ! (+
' %&% %-'!* $' ')
>> #& &#+
' "& &&)
6& ( ! & " * ' ) #" !->+
> >' & " ' !*9 ' !' & -9 +
*9') ! !-> "(& 9 ' #& % "& +
&*9') ?% ' - ! !-> "*)
T