COE205 Lab Project

السلام عليكم جميعا …

طبعا كلكم (و أعني طلاب COE205) عارفين المصيبة اللي حلت على راس أبونا بالبروجكت هادا … أنا صرفت يجي حوالي 3 ساعات أفكر بس كيف أبدا و ماني قادر. إيش نوع الكيبل اللي نستخدمه برضو ماني عارف … طيب على فرض إن كل شئ ماشي تمام كيف أخلي البرنامج يرسل و يستقبل (في نفس الوقت) … يعني لما اتنين بيعملوا chat كلهم طبعا حيكتبوا في نفس الوقت مو كل واحد حيستنى التاني … صح و لا مو؟

بصراحة الطبخة كده باين عليها مخبوصة … وغير واضحة المعالم … و عليه نناشد إخواننا الـ Senior أن يساعدوا إخوانهم المستضعفين من طلاب COE205 الذي قال فيهم أحد مدرسي اللابات أنهم سيخرجون من الكورس إلى مستشفى المجانين … وقد صدق لأنها مادة تخرج الواحد فعلا من عالمه و تدخله إلى داخل الـ AX و الـ BX و الميموري … وهلم جرا.

فيا إخواننا الـ Seniors … و الخريجين as well … يا ليت لو تساعدونا و تقولوا لنا كيف نبدأ نشبك كمبيوترين بلي؟ وهل نحتاج لي واحد ولا ليين … نبغا نبدأ

أرجوووكم

عليكم السلام…

طيب يا أخي وش رايك تحط النص حق البروجكت…؟؟ وخلي الجميع يتعاون في التفكير بشكل البرنامج وترتيبه…

بالمناسبة… من ناحية التشبيك… ترا بالعاده الواحد يحتاج Serial cable يشبكه على Serial Port حق الجهاز عشان يسوي حركات زي هذي… والحلو في هالكيبل إنه فيه خطين… رايح جاي… يعني الاثنين بيكتبون بنفس الوقت

الاخ x86

ممكن تراسلني عالخاص وافيدك ان شاء الله

هذا هو رابط البروجكت

و أشكر الأخ PathFinder و Dr.COE
المشكلة ان البروجكت يستخدم الميناء المتوازي و ليس المتسلسل

كيف تقدر تخلي المسامير من 18 إلى 25 مسامير بيانات بدلا من كونها مسامير أرضية زي ماهو ذاكر في نص البروجكت

شاكر و مقدرا لكم تعاونكم … وفي الحقيقة سيخدم هذا الموضوع كل طلاب 205 من متابعي المنتدى

و لكم أحلى و أرق تحية

عفوا يا سيدي… وآسف على التأخير بالرد…

قبل ما أبدا… هذي دعوه للكل إنهم يشاركون في التفكير في الشغله… خلونا نستفيد مع بعض…

فيه نقطتين أحب أوضحهم قبل ما ندخل في التفاصيل…

1- ترا من أهم أهداف تخصص الكمبيوتر إنه يعلم الطالب وشلون يقسم المشكله لمشاكل صغيره يقدر يحلها… لأنه بعض المشاكل لو حاول الواحد يحلها بدون تقسيم… بيتعب…

يعني مثلا البروجكت هذا… ما ينوخذ قطعه وحده… لازم نشتغل فيه قطعه قطعه… ولا نعدي وحده من القطع إلا وحنا متأكدين إنها تشتغل…

وبعدين الأستاذ يحيى الله يخليه ما قصر… مقسم لكم البروجكت خلقه… ومعطيكم خطوات تمشون عليها عشان ما تضيعون…

2- ترا ما يحتاج تستخدم البورتات 18-25…

البورتات 2-9 هي بورتات bi-directional… يعني رايح جاي…

طيب بتقول لي… لو جهازين A و B مشبوكين… و A قاعد يرسل لـ B… و B يبغى يرسل… وش اللي بيصير؟؟؟

اباقولك… هذي مره بسيطه…

شف يا عزيزي… الاتصالات ثلاث أنواع
Simplex: في اتجاه واحد… من A إلى B مثلا
Half dublex: في اتجاهين في أوقات مختلفه… يعني الخط يشتغل من A إلى B… أو من B إلى A… بس ما يشتغل بالاتجاهين…
Full dublex: في اتجاهين في نفس الوقت… زي التلفون مثلا…

في حالة الـ Half-dublex… اللي هي موضوعنا في هالبروجكت… لو A قاعد يرسل لـ B… وB يبغى يرسل لـ A… البيانات اللي عند B بتنتظر تلقائيا (في الـ hardware حق الـ parallel port) حتى تخلص البيانات اللي جايه من A… بعدها يستلم B الخط ويبدا يرسل…

يعني الخلاصه… البورتات من 2-9 تكفي… ولا تتعب نفسك بالباقي…

طيب السؤال يقول… وين نبدأ؟؟

أول شي… لازم نفهم وش اللي قاعد يصير…
المطلوب الأول… هو كتابة برنامج فيه
(two routines… a “read” routine and a “write” routine)
تقدر البرامج الثانيه تستخدمها عشان تتعامل مع الـ parallel port.

وعشان البرامج الثانيه تقدر تستخدم الـ routines هذي… لازم إن الـ routines تكون ساكنه في الذاكره حتى بعد ما البرنامج اللي “وداها” (يعني سوا لها Installation) هناك يخلص…

النوعيه هذي من الـ routines تتسمى
Terminate and stay resident (TSR) routines

بعد ما تثبت هالـ routines بالذاكره… تقدر كل البرامج تناديها عن طريق software interrupts…

يمكن مثلا تصير مهمة واحد من الـ routines إنه ياخذ address ويسوي output لهالـ address وكل الـ addresses اللي بعده حتى يجيه “\0” مثلا…

معناه المفروض نبدا بالكتابه والقرايه لـ parallel port… (وأهم شي فيها وشلون تتعامل مع الـ interrupts حقات البورت…)… وإذا انضبطت نحولها إلى TSR… ونستعملها من البرامج الثانيه…

أتمنى تكون الأمور وضحت شويه…

وياليت تحاول تبدا وتعلمنا بالتطورات…

وترا الكتاب اللي حاطه استاذكم “The art of assembly language programming”… فيه كل شي… من طقطق للسلام عليكم… ولا تنسى الانترنت… ترا فيها كل شي عن الاسيمبلي… وياما (بعد الله) انقذتنا من مشاكل…

أخوك
Pathfinder

ياسلام

من زمان نفسي أشوف موضوع حلو في ساحة الكمبيوتر :slight_smile:

أشكر كل المشاركين
وبالأخص أخونا الكريم (pathfinder)

مو خريج على الفاضي :):slight_smile:

الله يوفق الجميع لكل خير

محبكم

اخويPathfinder جزاكم الله كل خير على هالمعلومات القيمة وماشاء الله عليك الله يحميك!!!!!!!!

واتمنى من كل الاخوة اللي عندهم هالبروجكت يشاركون في الاسئلة حتى تعم الفائدة والسلام

الله يجزاكم كلكم خير يا جماعه…

وحنا ما سوينا شي… والبروجكت يبغى له تعاون الكل…

بس أنا اباستفسر عن الأخ x86 وباقي الشباب اللي عندهم نفس الماده… وينهم ما لهم صوت؟؟

نبي نسمع منهم وين وصلو… ووش المشاكل اللي تواجههم عشان نمشي مع بعض…

السلام عليكم

جزاك الله كل الخير يا أخ PathFinder على المعلومات الجميلة و الشرح المستفيض … و الله يقدرك على فعل الخير و مساعدة إخوانك و يجزل لك الأجر و المثوبة … قول آمين.

معليش أنا كنت مشغول شويه في ميجر !!

يا حبيبي … صلي عالنبي !

بداية … السلك اللي بنستخدمه للتوصيل عبارة عن سلك يوصل المسمار 1 للمسمار 1 و 2 إلى 2 و 3 إلى 3 … وهكذا حتى 25 إلى 25 … ما أدري إذا هدا ينفع و لا لا؟

طيب …

أنا قريت في الكتاب حق Art of Assembly و قريت الهاند اوت اللي ادانا هو المدرس … لقيت إنه لازم يكون فيه Cross مثلا 17 مع 13 و 1 مع 10 وهكذا … في الكتاب عامل Cross تاني بشكل تاني و تكنيك تاني (اللي هو حق اللابلينك).

طيب …

أنا أيت واحد استخدم فيهم ؟ حق Art of Assembly ولا حق الهاند اوت … مع ملاحظة إن اللي في الهاند أوت يرسل 8 بت في المرة الواحدة لكن حق اللابلينك يرسل 4 بت في المرة.

ثانيا …

انت قلت إن البتات من 2 إلى 9 Bi-Directional … يعني ممكن تكون In و ممكن تكون Out … طيب إيش اللي يحدد الشئ هدا؟

مثلا في كمبيوتر A أنا أرسلت OUT DX,AL و على فرض إن AL فيها 11111111 و الـ DX يشير إلى الـ Base address حق البورت … حتصير المسامير من 2 إلى 9 كلها تحمل الخمسة فولت … طيب لو كان الشي نفسه موجود في كمبيوتر B باستثناء إن ال AL فيها 00100101 في الكمبيوتر الثاني وشبكنا اللي …

شوف ايش اللي حيصير !!

كمبيوتر A:
C:\>debug
- i 378
FF

كمبيوتر B:
C:\>debug
- i 378
25

بمعنى إنه كل كمببيوتر محتفظ ببياناته … و مافي أحد راضي ياخد من الثاني وكأنه سبحان الله مافي لي موصلهم مع بعض … وهدا اللي مجنني.

كيف أقول لكمبيوتر B يسيب البيانات اللي في Data register حقه و ياخد البيانات حقت كمبيوتر A و يجيب لي هي في الـ AL ؟

و جزاك الله ألف خير على المساعدة … و تابعنا بنصائحك

أخوك x86

السلام عليكم

لعلي لا أطيل …

لكن أذكر أن هذا البروجكت كان في سنة قديمة …

لكن على شكل com port وليس على شكل parallel port

فلعلك تستفيد منه … وبدل أن تضع بت واحد يرسل ويستقبل …

فقط أضف عدد من الدوائر … ويمشي معك …

أهم شيء الانترفيس … والفايل تراسنفير …

Trying to receive a character??

Unable??

Now you can:p

Set the fifth bit in the control register for the receiving party

Using:

MOV DX,portAddress+2
IN AL,DX
OR AL,20h
OUT DX,AL

and receive will be successful!