Lecture 10 unsigned long int time unsigned long
- Slides: 13
Lecture 10
unsigned long int * time = (unsigned long int *) 0 x 0040006 C void main() { unsigned long int tx; unsigned int divisor = 0 x 21 FF; while (divisor >= 0 x 50) { outportb(0 x 43, 0 x. B 4); outportb(0 x 42, *((char*)(&divisor))); outportb(0 x 42, *(((char*)(&divisor))+1)); outportb(0 x 61, Inportb(0 x 61) | 3); tx = *time; tx = tx + 4; while (*time <= tx); divisor =divisor -30; } }
#include <dos. h> #include <bios. h> void interrupt (*oldint 15) ( ); void interrupt newint 15 (unsigned int BP, unsigned int DI, unsigned int SI, unsigned int DS, unsigned int ES, unsigned int DX, unsigned int CX, unsigned int BX, unsigned int AX, unsigned int CS, unsigned int IP, unsigned int flags); void main ( ) { oldint 15 = getvect (0 x 15); setvect (0 x 15, newint 15); keep (0, 1000); }
void interrupt newint 15( unsigned int BP, unsigned int DI, unsigned int SI, unsigned int DS, unsigned int ES, unsigned int DX, unsigned int CX, unsigned int BX, unsigned int AX, unsigned int CS, unsigned int IP, unsigned int flags) { if (_AH = = 0 x 4 F) { if (_AL == 0 x 1 F) { outport (0 x 43, 0 x. B 4); outport (0 x 42, 0 x. FF); outport (0 x 42, 0 x 21); outport (0 x 61, Inport(0 x 61) ^ 3); } } else (*oldint 15) ( ); }
#include <dos. h> #include <bios. h> unsigned int divisors[4]={0 x 21 ff, 0 x 1 d 45, 0 x 1 b 8 a, , 0 x 1 e 4 c}; unsigned long int far *time =(unsigned long int far *)0 x 0040006 C; void main () { unsigned long int tx; int i=0; while (!kbhit()) { while (i<4) { outport(0 x 43, 0 x. B 4); outport(0 x 42, *((char *)(&divisor[i]))); outport(0 x 42, *(((char *)(&divisor[i]))+1)); outport(0 x 61, inport(0 x 61)|3); tx=*time; tx=tx+4; while (tx >= (*time)); i++; } i=0; } outport(0 x 61, inport(0 x 61)&0 x. FC); }
#include <stdio. h> #include <dos. h> #include <bios. h> struct tag. Tones { unsigned int divisor; unsigned int delay; }; struct tag. Tones[4]={ {0 x 21 ff, 3}, {0 x 1 d 45, 2}, {0 x 1 b 8 a, 3}, {0 x 1 e 4 c, 4}}; int i, ticks, flag=0 ; void interrupt (*oldint 15)(); void interrupt (*oldint 8)(); void interrupt newint 15(); void interrupt newint 8();
unsigned char far *scr = (unsigned char far *)(0 x 00400017); void main () { oldint 15=getvect(0 x 15); setvect(0 x 15, newint 15); oldint 8=getvect(0 x 08); setvect(0 x 08, newint 8); keep(0, 1000); }
void interrupt newint 15() { if (_AH==0 x 4 f) { if ((_AL==0 x 1 f)&&(((*scr)&12)==12)) { ticks=0; i=0; outport(0 x 43, 0 xb 4); outport(0 x 42, *((char *)(&Tones[i]. divisor))); outport (0 x 42, *(((char *)(&Tones[i]. divisor))+1)); outport(0 x 61, inport(0 x 61)|3); flag=1; } else if ((_AL==0 x 1 E)&&(((*scr)&12)==12)) { outport(0 x 61, inport(0 x 61)&0 xfc); flag=0; } return; } (*oldint 15)(); }
void interrupt newint 8() { if (flag==1) { ticks++; if (ticks == Tones[i]. delay) { if (i==3) i=0; else i++; outport (0 x 43, 0 x. B 4); outport(0 x 42, *((char *)(&Tones[i]. divisor))); outport(0 x 42, *(((char *)(&Tones[i]. divisor))+1)); outport(0 x 61, inport(0 x 61)|3); ticks = 0; } } (*oldint 8)(); }
Parallel Ports (PPI)
Parallel Communication Output D 0 D 1 D 2 CPU D 7 Parallel Out Put Device Busy Strobe
Parallel Communication Input D 0 D 1 D 2 CPU D 7 Parallel Input Device DR CPU I/O Controller
Parallel Communication ØFaster ØOnly Economically Feasible For Small Distances
- Int sum(int a int n) int sum=0 i
- Int max(int x int y)
- Interface calculator public int add(int a int b) class test
- Public void drawsquare(int x, int y, int len)
- Divideint
- Unsigned int long
- Warning
- Typedef unsigned int
- Short int
- Float long
- Unsigned short
- Signed vs unsigned int
- Once upon a time long long ago
- Once upon a long time ago