It looks like you're new here. If you want to get involved, click one of these buttons!
ansarali
Posts: 25,240
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:
1) Declare 3 character strings st1,st2,st3 having Student ID, Name and Study Program
2) You should save interrupt 65H vector in a pointer to vector variable name oldint65 through getvect instruction.
3) Call any new function i.e newint65( ) through setvect instruction.
4) 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= ”);
5) Then use scanf to take input input in an integer variable i.e scanf(“%d”, &i)
6) In this program, you will implement interrupt 65H which is currently not used by operating system.
7) Place service number in AH register. Interrupt 65H will check its value and will perform relevant function.
8) 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.
9) 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:
Comments
#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); }q.1 Function of interrupt ID Register in UART (marks 3)
q.2 (in BIOS data area) write address of Keyboard Status Byte ( marks 3)
q.3 draw the diagram of Keyboard interface (marks 5)
q.4 write name of 5 registers used in UART (marks 5)
q.5 write two types of interrupts along one difference between them (marks 5)