Defragmentation is the process of locating the noncontiguous fragments of data and rearranging the fragments and restoring them into fewer fragments or into the whole file.
In terms of computer performance File fragmentation directly affects the access and write speed of that hard disk. All computers suffer from fragmentation. We use defragmentation to resolve this issue.Performance of system degraded during defragmentation but improve after it’s completion as compared to previous
CS609: System Programming Graded Assignment No. 01 Solution and Discussion
-

Semester: Spring 2019
CS609: System Programming
Graded
Assignment No. 01
Total Marks: 20Due Date: May 13, 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:
• How can interrupts be generated
• What are Interrupts
• Interrupt functions writing
• TSR program
• Calling interrupt functionsFor any assignment related query, contact at [email protected]
Problem Statement:
You are required to writ C program using interrupt 65H to print your own Student ID, Name or your Study Program depending upon the number input i.e 1,2,3 respectively. When the user enters 1 it will print your own Student ID, if 2 then print your own Name and finally, if the user enters 3, it will print your Study Program.
Instructions:- Declare 3 character strings st1,st2,st3 having Student ID, Name and Study Program
- You should save interrupt 65H vector in a pointer to vector variable name oldint65 through getvect instruction.
- Call any new function i.e newint65( ) through setvect instruction.
- Through printf instruction, show message “What you want to print: Press 1,2,3= ” i.e
printf(“What you want to print: Press 1,2,3= ”); - Then use scanf to take input input in an integer variable i.e scanf(“%d”, &i)
- In this program, you will implement interrupt 65H which is currently not used by operating system.
- Place service number in AH register. Interrupt 65H will check its value and will perform relevant function.
- Interrupt 65H function must check for Service Number using Switch Statement. In Case of Service Number 1, it should print Student ID i.e BC123456 and in case of Service Number is 2, it should print your own full name i.e Ali Ahmad. Similarly your study program i.e BS/MCS etc should be printed in case of number 3.
- Use keep() function to make this program TSR.
Note: Your assignment solution will be in this Word file (.doc or .docx) containing code of C only as given in sample solution:
Best of Luck!
Sample Solution:
//Header Files #include<stdio.H> #include<BIOS.H> #include<DOS.H> #include<conio.H> void interrupt (*oldint 65)(); //To store current interrupt char str1[80]={“BC123456$”} // Write your own particulars char str2[80]={“Ali Ahmad$”} char str3[80]={“Degree Program: BS$”} int i; void interrupt newint65(void); //NewInt prototype void main() { // Keep vector of current INT //setting to newint65 clrscr(); printf(“What you want to print: Press 1,2,3=>”); scanf(“%d”,&i); _AH=i; getch(); } void interrupt newint65() { switch(i) { case 1: //Service Number // Register for output. break; } case 2: break; } case 3: break; } default: { } }
-
#include<stdio.h> #include<fcntl.h> #include<io.h> #include<DOS.h> void interrupt *newint65(void); int a = {"my id "}; void interrupt newint65(void); printf("press 0 for student Id ",y) unsigned char far *scr=(unsigned char far*)0xb8000000; //corrected void main() { int i; //instruction added for (i=0;i<2000;i++) //corrected { *scr=0x20; //corrected *(scr+1)=0x07; //corrected scr=scr+2; } } void main() { oldint65 = getvect(0x65); setvect(0x65, newint65); geninterrupt (0x65); geninterrupt (0x65); geninterrupt (0x65); setvect(0x65, oldint65); } void interrupt(*newint65)( ) { _AH = 0x09; _DX=(unsigned int)st; geninterrupt (0x21); }
-
#include<stdio.H> #include<BIOS.H> #include<DOS.H> #include<conio.H> char str1[80]={“bs012345678$”} char str2[80]={“your name$”} char str3[80]={“Degree Program: BSCS$”} void interrupt (*oldint 65)(); void interrupt newint65(void); keep(0,1000); int i; void main() { oldint65 = getvect(0x65); setvect(0x65,newint65); clrscr; printf(“What you want to print: Press 1, 2 or 3: ”); scanf(“%d”,&i); _AH=i; geninterrupt(0x65); getch(); } void interrupt newint65() { switch(i) case 1: _AH = 0x09; _DH = (unsigned int) st1; geninterrupt (0x21); break; case 2: _AH = 0x09; _DH = (unsigned int) st2; geninterrupt (0x21); break; case 3: _AH = 0x09; _DH = (unsigned int) st3; geninterrupt (0x21); break; default: printf(“You did not entered any valid option”); }


100% Off on Your FEE Join US! Ask Me How?


