📄 eppio.cpp
字号:
#include "stdafx.h"
#include "EPPIO.h"
#include "io.h"
void EPPIO::StartIO()
{
if (LoadIODLL() == -1)
{
AfxMessageBox("error load iodll");
}
if(IsDriverInstalled() == NULL )
{
AfxMessageBox("driver uninstalled");
}
}
void EPPIO::InitEPP()
{
PortOut(BASE_ADDRESS + 2, 0xF4); // write xxxx0100 to control port
EPP_WriteAddress(0xFF);
}
int EPPIO::Init8253(int freqency)
{
if (freqency <=65535 && freqency>=0)
{
int Mask = 0xff;
char LowByte = freqency&Mask;
freqency =freqency >> 8;
char HighByte = freqency&Mask;
EPP_WriteAddress(0xCF); // select 8253, and A1A0=11, select control port
EPP_WriteData(0x3E); // write control byte to control port
//select count0, write low byte first, in mode 3
//in binary form
EPP_WriteAddress(0xEF); // set A1A0 to 00, to initialize count 0
EPP_WriteData(LowByte); // write lowbyte first
EPP_WriteData(HighByte);// then write lowbyte
return 1;
}
else
return 0;
}
void EPPIO::StartGenWave()
{
EPP_WriteAddress(0x20);
}
void EPPIO::FalseReadRam(char address)
{
//write address
EPP_WriteAddress(0xF8); // enable 273
EPP_WriteData(address); // load address to the address pin of 6116
EPP_WriteData(address);
//read data
//there are errors!!!!!!!!!!!!!!!!!!!!!!!!!!!!
EPP_WriteAddress(0x38) ; //enable ram and it's OE and disable 245
//int result = EPP_ReadData();
// result = EPP_ReadData();
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//return result;
}
void EPPIO::WriteRam(char address, char data)
{
//write address
EPP_WriteAddress(0xF8); // enable 244
EPP_WriteData(address); // load address to the address pin of 6116
EPP_WriteData(address);
//write data
EPP_WriteAddress(0x78);// enable ram and disable 373
EPP_WriteData(data); // load data to the data pin of ram
EPP_WriteData(data);
}
void EPPIO::EPP_WriteData(char data)
{
// write data to epp data register
PortOut(BASE_ADDRESS + 4, data);
}
char EPPIO::EPP_ReadData()
{
char result = PortIn(BASE_ADDRESS + 4 );
return result;
}
void EPPIO::EPP_WriteAddress(char address)
{
PortOut(BASE_ADDRESS + 3, address);
}
void EPPIO::SPP_WriteData(char data)
{
PortOut(BASE_ADDRESS, data);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -