We are here with you hands in hands to facilitate your learning & don't appreciate the idea of copying or replicating solutions. Read More>>


Looking For Something at vustudents.ning.com? Click Here to Search

Assignment No. 02 Graded Semester: Fall 2018 CS609: System Programming Due Date: January 30, 2019

Assignment No. 02

Graded
Semester: Fall 2018

CS609: System Programming

Total Marks: 20

 

Due Date: January 30, 2019

 

Instructions:

 

Please read the following instructions carefully before submitting assignment. It should be clear that your assignment will not get any credit if:

 

§  The assignment is submitted after due date.

§  The submitted assignment does not open or file is corrupt.

§  You have not followed steps described in Detailed Instructions of the problem statement.

§  Assignment is copied (partial or full) from any source (websites, forums, students, etc.) Strict action will be taken in this regard.

 

Note: You have to upload only .doc or .docx file. Assignment in any other format (extension) will not be accepted and will be awarded with zero marks.

 

Objectives:

 

The objective of this assignment is to provide hands-on experience of System Programming concepts including:

 

·         Understanding of BIOS Parameter Block and Drive Parameter Block

·         Generating undocumented interrupt service(s)

·         Using Debug feature of command prompt

·         Executing assembly instructions in Debug mode of command prompt

·         Taking memory dump

·         How to read and extract information from memory dump

 

Lectures Covered:

 

This assignment covers lecture # 30 to lecture # 32

 

 

 

 

For any assignment related query, contact at CS609@vu.edu.pk

 

 

Problem Statements:

 

TASK 1: [Marks = 10]

 

You are required to write a program in C language setting up a Slave DMA Channel 1 that can transfer 100 bytes in which auto initialization should be off and Channel 1 should be in single transfer mode of read cycle.

 

TASK 2: [Marks = 10]

 

Write a C language code snippet / function which enable you to get FAT version running on your machine. (Note: You are not required to write a complete program.)

 

Best of Luck!

 


+ Click Here To Join also Our facebook study Group.


+ Prohibited Content On Site + Report a violation + Report an Issue


..How to Join Subject Study Groups & Get Helping Material?..


See Your Saved Posts Timeline

Views: 3395

.

+ http://bit.ly/vucodes (Vu Study Groups By Subject Codes Wise)

Replies to This Discussion

samjha hi nahe a rahe kia idea da

Taras nahi arha mada banda per yeh pure coding han nahi hogi time short han zeroooooooooooooooooooooo agya

yar extended hai k nai koi b  share nai karaha

yes extended day ha 

Fall%202018_CS609_2.docx

ya file check karo right ha ya  wrong ha 

bai koi share kardaaa 

Ye kisi student ne reply kia tha same ques 1 k liye. Sirf 24 lec sun lein ques 1 hoo jaye ga.

Reply by Ali Raza on January 24, 2017 at 7:16pm
#include
#include
char st[80];
unsigned long int temp;
unsigned int i;
unsigned int count=48;
void main (void)
{
temp=(unsigned long int)_DS;
temp = temp 4L; i = *((unsigned int *)(&temp)); temp = temp>>16L;
outportb (0x81,*((unsigned char *)(&temp)));
outportb(0x06,*(((unsigned char *)(&i))));
outportb(0x06,*(((unsigned char *)(&i))+1));
count--;
outportb(0x07,*((unsigned char *)(&count)));
outportb(0x07,*(((unsigned char*)(&count))+1));
outportb(0x0b,0x0b);
outportb(0x08,0);
outport(0x0a,3);
getch();
}

This program is to transfer 48 byte with channel 3.
Watch lecture no 24 and try to edit this program according to assignment requirements... Just little bit change is required.

Answer no. 1

/* ISR Prototype */

 CY_ISR_PROTO(DmaInterruptHandler);

 /* ISR Implementation */

 CY_ISR(DmaInterruptHandler)

{

uint32 intr; /* Determine the interrupt source

 */ intr = CyDmaGetInterruptSourceMasked();

 /* Clear interrupt request */

 CyDmaClearInterruptSource(intr);

 /* Code to process the interrupt */

 }

 int main()

{

 /* Set interrupt vector for the DMA interrupt */ CyDmaSetInterruptVector(&DmaInterruptHandler);

 /* Enable interrupts */

 CyIntEnable(CYDMA_INTR_NUMBER); CyGlobalIntEnable;

 }

(a)

/* After transaction finishes */

 if (trig == 1)

 /* If trigger is high */

 {

 /* Wait for selected time or until trigger goes low */

Do

 {

 /* Increment on SYSCLK */

 num++;

 }

 while(num != triggerType && trig == 1)

 }

 /* Wait for new trigger */

 while(trig == 0);

 /* trigger new transaction */

 trigger;

RSS

© 2019   Created by + M.Tariq Malik.   Powered by

Promote Us  |  Report an Issue  |  Privacy Policy  |  Terms of Service