الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيفية التعامل مع البوردات

مغلق
بدأه الاخير زمانه في 14 أبريل 2006 · 9 رد · 1,261 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اخواني ممكن حد يوضحلي شوي كيفية التعامل مع البوردات و ما هو مبدأ عملها ..

في لغة سي نحن نستخدم

  

inportb( ), inport( ), outportb( ) and
outport( ) functions

ممكن توضيح على هذه الدوال ..

و في بيئة و ينوز هل يمكن ان نتعامل كذلك مع البوردات ام ان الامر اختلف ؟؟؟

** انا لدي برنامج يقوم بأستخدام البوردات يقوم بتصفير CMOS ، هذا البرنامج مفيد اذا كان هنالك كلمة سر على ال setup فبتصفير ال CMOS تذهب كلمة السر ، لكن ماذا لو كان هنالك كلمة سر على الحاسبة كلها يعني في هذه الحالة لا يمكن تشغيل الحاسبة لكي انفذ برنامجي ليقوم بالتصفير و اتخلص من كلمة الس .. هل ممكن تطوير البرنامج ليتجاوز هذه المشكلة ؟؟

و هل من الممكن عمل نفس البرنامج في بيئة ويندوز ؟؟

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#4

السلام عليكم ..

مشكور اخي الكريم على الروابط ،

بس ممكن سؤال (طلب توضيح)

كيف من الممكن التعامل مع البوردات في بيئة الويندوز ، هل هناك دوال API ??

ارجو فقط التوضيح من اصحاب الخبرة ،

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#5

CreateFile()

WriteFileEx()

ReadFileEx()

بس يا أخى يا ريت توضح إزاى بتوصل لل CMOS تقرا منه و تكتب فيه لأنى عايز أعرف الموضوع دا من زمان .

و بالنسبة لموضوع لو الجهاز مقفول بباسوورد معتقدش إن فيه طريقة تدخل بيها على ال CMOS من برة الجهاز و على حسب معلوماتى مفيش حاجة بتشتغل قبل ال BIOS غير كارت الشاشة يعنى لو قدرت تكتب برنامجك على ال BIOS بتاع كارت الشاشة يبقى ممكن :lol: .

#6

السلام عليكم ..

لدي كتاب به فصل يتحدث عن كيفية التعامل مع ال CMOS بلغة سي

في مشاركتي اللاحقة سأحاول ان ارفقه

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#7

السلام عليكم

كل الدوال التي ذكرتها فهي خاصة بمترجمات شركة Borland القديمة، و هي خاصة بمنافذ التوازي Parallel فقط

بالنسبة للدالتين inport و inportb فهي مصل بعضها فقط الدالة inportb تقوم بإستقبال Byte واحد فقط كل كل عملية، أما intport فهي تستقبل كلمة Word في كل عملية ... أما الدالتين outport و outportb فهما معاكستين لدالتين السابقتين

و مثال على ذلك إذا أردت إرسال السلسلة 00001000 (أي هنا سيتم إرسال 5 فولت إلى pin الرابع من دبابيس البيانات، و هذه صورة توضيحية لك من دبابيس منفذ التوازي:

parallel.gif

) فذلك يكون كتالي:

outporb(0x378, 0x08);

هنا القيمة 0x378 هي عنوان المنفذ، أما القيمة 0x08 فهل التي سيتم إرسالها إلى المنفذ (طبعا ترسل ثنائيا)، هذا في حالة الإرسال، أما الإسقبال سيكون كتالي:

Variable_Name = inportb(0x378);

و توجد طريقة أخرى لإرسال و اسقبال البيانات من المنافذ، عبر العناوين...

أما منفذ التسلسل Serial فذلك سكون عبر الدالة bioscom، و كل الدوال السابقة موجود في الملف bios.h (أما في النسخ الحديث فأعتقد أنها موجودة في dos.h)

#8

مشكور اخي الكريم ..

اخي Blueteeth

هذا مقتطف من الكتاب ، واذا كنت مهتم بالموضوع ، ممكن ابعث لك الكتاب على الايميل اذا بتحب

42.1 Viewing contents of CMOS RAM
42.1.1 Logic
CMOS data are accessible via I/O ports 70h and 71h. First send the respective address of
CMOS to I/O port 70h and then read the data from I/O port 71h.
Caution
Any write to port 70h should be followed by an action to port 71h, otherwise RTC will be left in an
unknown state.
42.1.2 Code
Following is the code to view contents of CMOS RAM. As I said earlier, CMOS RAM is
available in two sizes: 64 & 128 bytes. Here I assume that the size of my CMOS RAM is 128
bytes. You need not know the exact size of CMOS RAM for basic operations like viewing
contents. However you must know the exact size of CMOS RAM for hazardous operations like
clearing CMOS RAM.
#include <dos.h> 
#define  CMOS_ADDR  (0x70)    /* address port of CMOS */ 
#define  CMOS_DATA  (0x71)    /* data port for CMOS */ 

int main( void ) 
{ 
   int offset, data; 
   const int size = 128;  /* or 64 depending upon your system */ 
   for ( offset=0; offset<size; ++offset ) 
   { 
 disable( ); 

  outportb( CMOS_ADDR, offset ); 
  data = inportb( CMOS_DATA ); 
 enable( ); 
  printf( "%0xX ", data ); 
   } 
   return(0); 
}

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

#9

يا ريت يا أخى تبعتلى الكتاب على الميل أبقى شاكر أفضالك.

ُ

#10

السلام عليكم ..

اخي موقع الكتاب هو

http://guideme.itgo.com/atozofc/#contents

و اسف على التأخير

/index.php/topic/264448-%D8%A7%D9%84%D8%A8%D8%AF%D8%A7%D9%8A%D8%A9-%D9%85%D8%B9-%D8%A7%D9%84%D8%A7%D9%86%D8%AF%D8%B1%D9%88%D9%8A%D8%AF/

 

اني وان كنت الاخير زمانه ---- لأتِ بما لم تستطعه الاوائلُ

هذا الموضوع مغلق.

مواضيع مشابهة