Lecture 10 unsigned long int time unsigned long

  • Slides: 13
Download presentation
Lecture 10

Lecture 10

unsigned long int * time = (unsigned long int *) 0 x 0040006 C

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

#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

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

#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

#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 ()

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

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)

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 Ports (PPI)

Parallel Communication Output D 0 D 1 D 2 CPU D 7 Parallel Out

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

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

Parallel Communication ØFaster ØOnly Economically Feasible For Small Distances