HomeSearchRegisterLog in

Share | 
 

 ترجمه Nerdy Nights week 6

View previous topic View next topic Go down 
AuthorMessage
Farid
avatar

Posts : 98
Join date : 2010-07-25
Age : 32
Location : IRAN
درجه : سرباز یکم

درجه : سرباز یکم


PostSubject: ترجمه Nerdy Nights week 6   2015-02-27, 6:58 pm

جدول‌های صفحه نمایش و خصیصه‌ها
در کل چهار تا جدول قابل نمایش بر روی صفحه وجود داره ولی به دلیل محدودیت سخت افزاری فقط میشه از دو جدول استفاده کرد. دو تا جدول دیگه دقیقا از روی دو تا جدول اصلی کپی میشن. این جدول‌ها در آدرس‌های زیر ذخیره میشن :


جدول صفحه نمایش یک23BF2000
جدول خصیصه یک23FF23C0
جدول صفحه نمایش دو27BF2400
جدول خصیصه دو27FF27C0
جدول صفحه نمایش سه2BBF2800
جدول خصیصه سه2BFF2BC0
جدول صفحه نمایش چهار2FBF2C00
جدول خصیصه چهار2FFF2FC0

هر یک از این جدول‌ها از 32 در 30 تا کاشی تشکیل میشن که میتونه کل صفحه نمایش رو پوشش بده. در جدول صفحه نمایش هر کاشی با یک بایت نمایش داده میشه. بنابراین کلا با 960 بایت میشه کل صفحه رو نمایش داد.



هر بایت از جدول خصیصه‌ها مسئول تنظیم رنگ 16 تا کاشی 4 در 4 هست :



از طرف دیگه به دلیل محدودیت‌های سخت افزاری هر گروه از کاشی‌های 2 در 2 فقط میتونن چهار تا رنگ داشته باشن :



 این چهار تا رنگ در واقع یه گروه از از جعبه رنگ هست. هر جعبه رنگ هم از چهار تا گروه تشکل میشه که هر گروه شامل چهار تا رنگ هست.


با استفاده از دو تا بیت به راحتی میشه گروه مورد نظر رو برای یه قسمت 2 در 2 انتخاب و اعمال کرد.
ضمنا کل پس زمینه صفحه هم میتونه حداکثر 13 تا رنگ داشته باشه!


Last edited by Farid on 2015-02-28, 3:36 am; edited 1 time in total
Back to top Go down
http://microbaz.blogfa.com
Farid
avatar

Posts : 98
Join date : 2010-07-25
Age : 32
Location : IRAN
درجه : سرباز یکم

درجه : سرباز یکم


PostSubject: 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


در نهایت میتونین کد‌های مربوط به درس امروز رو به همراه اسمبلر مورد نیاز از اینجا دانلود بکنین.
Back to top Go down
http://microbaz.blogfa.com
 

ترجمه Nerdy Nights week 6

View previous topic View next topic Back to top 
Page 1 of 1

 Similar topics

-
» Spring 2012 Fashion Week Sweepstakes *usa only*
» VALHALLA WOMENS WEEK VACATION GIVEAWAY
» Off Topamax for a week, not feeling right...
» HarperCollins Classics Fan of the Week
» SofLens daily disposables is giving away over 100 Sport Tote Daily Prizes per week and a $5,000 Scholarship Grand Prize!

Permissions in this forum:You cannot reply to topics in this forum
Microbaz :: برنامه نویسی اسمبلی 6502-