PDA

View Full Version : سوال: روش روشن خاموش كردن چراغ هاي كيبورد در اسمبلي !



worldman
یک شنبه 13 بهمن 1387, 22:31 عصر
با سلام خدمت شما عزيزان

بنده برنامه اي مي نويسم كه تشكيل يك رقص نور رو با استفاده از ال اي دي هاي كيبورد ميده .

براي روشن خاموش كردن ال اي دي ها از دو روش استفاده كردم كه متاسفانه در هر دو با مشكل مواجه شدم .

1 . مقادير موجود در 40:17 , 40:07 , 40:96 , 40:0ED رو تغيير دادم . عملكرد capslock , numlock , scrollLock تغيير پيدا كرد ، ولي ال اي دي ها روشن حاموش نشدن .

2 . خواستم از تابع 05h از اينتراپت 16h استفاده كنم كه به دليل پيدا نكردن كد اسكي اون سه كليد ، از رسيدن به نتيجه باز موندم .

ممنون ميشم اگه به بنده كمك كنيد .

با تشكر

Open-Source
یک شنبه 13 بهمن 1387, 22:51 عصر
http://courses.ece.uiuc.edu/ece390/books/artofasm/CH20/CH20-2.html

یه سری به اینجا بزن ببین به دردت میخوره؟:چشمک:

worldman
دوشنبه 14 بهمن 1387, 09:39 صبح
خيلي ممنون از جوابتون !

از اونجايي كه من مثل شما حرفه اي نيستم ، بعضي قسمت هاي برنامه برام نامفهوم بود .

فايل stdlib.a , stdlib.lib كه اينكلود شدن ، از كجا ميتونم پيدا كنم .

ظاهرا يكمي برنامه رو پيچوندن ... آيا روال كلي كار اين نيست كه بايد بيت وضعيت ال اي دي : 40:0ED رو تغيير و با پورت 60H به كيبورد ارسال كنم ؟

با تشكر

worldman
دوشنبه 14 بهمن 1387, 11:53 صبح
اين هم از كد بنده :




Bios_Data SEGMENT AT 40H
ORG 0EDH
kbstatue DB ?
Bios_Data Ends

XOR es:kbstatue , 00000100b
MOV AL , ES:kbstatue
OUT 60H , AL

worldman
سه شنبه 15 بهمن 1387, 01:33 صبح
بالاخره به جواب رسيدم ...

برنامه هيچ مشكلي نداشت . مشكل از ويندوز بود كه اجازه ي تغيير بايت 40:97H رو نميداد .

تو محيط داس درست عمل كرد .

ممنون از همه ي عزيزاني كه به اين تاپيك توجه كردند .

Open-Source
سه شنبه 15 بهمن 1387, 16:23 عصر
بالاخره به جواب رسيدم ...

برنامه هيچ مشكلي نداشت . مشكل از ويندوز بود كه اجازه ي تغيير بايت 40:97H رو نميداد .

تو محيط داس درست عمل كرد .

ممنون از همه ي عزيزاني كه به اين تاپيك توجه كردند .

خوشحالم که به نتیجه رسیدی.
وخوشحالم که هر روز یه چیز جالب وجدید یاد میگیرم.:لبخندساده: