Farid
Posts : 111 Join date : 2010-07-25 Age : 39 Location : IRAN گروهبان سوم
| Subject: Re: ترجمه Nerdy Nights week 6 2015-02-28, 3:30 am | |
| هر سطر از جدول صفحه نمایش از 32 تا کاشی تشکیل میشه. هر کاشی با یه بایت نمایش داده میده. بنابراین برای نمایش یک سطر باید 32 بایت که همون مقدارهای هگز کاشیها از جدول تکههای پازل هستن رو انتخاب بکنیم. به عنوان نمونه برای ساختن چهار سطر به صورت زیر مقادیر هگز رو تعریف میکنیم : - Code:
-
background: .db $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 .db $24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24 .db $24,$24,$24,$24,$45,$45,$24,$24,$45,$45,$45,$45,$45,$45,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$53,$54,$24,$24 .db $24,$24,$24,$24,$47,$47,$24,$24,$47,$47,$47,$47,$47,$47,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$24,$55,$56,$24,$24 بعد با استفاده از یه حلقه کل این 128 تا مقدار رو به جدول صفحه نمایش کپی میکنیم. جدول صفحه نمایش از آدرس 2000 پردازنده گرافیک شروع میشه. بنابراین : - Code:
-
LoadBackground: LDA $2002 LDA #$20 STA $2006 LDA #$00 STA $2006 LDX #$00 LoadBackgroundLoop: LDA background, x STA $2007 INX CPX #$80 BNE LoadBackgroundLoop در مرحله بعدی باید رنگهای این کاشیها رو اعمال بکنیم. این کار با معرفی دادههای جدول خصیصه و به صورت زیر انجام میشه : - Code:
-
attribute: .db %00000000, %00010000, %01010000, %00010000, %00000000, %00000000, %00000000, %00110000 بعد این هشت بایت رو با استفاده از یه حلقه به جدول خصیصهها انتقال میدیم که از آدرس 23C0 شروع میشه - Code:
-
LoadAttribute: LDA $2002 LDA #$23 STA $2006 LDA #$C0 STA $2006 LDX #$00 LoadAttributeLoop: LDA attribute, x STA $2007 INX CPX #$08 BNE LoadAttributeLoop همچنین دادههای مربوط به جعبه رنگها هم باید اعلام بشن : - Code:
-
palette: .db $22,$29,$1A,$0F, $22,$36,$17,$0F, $22,$30,$21,$0F, $22,$27,$17,$0F .db $22,$1C,$15,$14, $22,$02,$38,$3C, $22,$1C,$15,$14, $22,$02,$38,$3C بعد با استفاده از یه حلقه این دادهها رو به آدرس مربوط به جعبه رنگها که از 3F00 شروع میشه انتقال میدیم : - Code:
-
LoadPalettes: LDA $2002 LDA #$3F STA $2006 LDA #$00 STA $2006 LDX #$00 LoadPalettesLoop: LDA palette, x STA $2007 INX CPX #$20 BNE LoadPalettesLoop در نهایت میتونین کدهای مربوط به درس امروز رو به همراه اسمبلر مورد نیاز از اینجا دانلود بکنین. |
|