⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 classic.cpp

📁 CHAPT04CHAPT04.CPP 16-Bit test program for the Digi Classic board CHAPT04CHAPT04.EXE 16-Bit executa
💻 CPP
字号:
// ******************** START OF CLASSIC.CPP ********************
//
//

#include <dos.h>
#include "rs232.h"
#include "pc8250.h"
#include "_pc8250.h"
#include "pcirq.h"
#include "classic.h"

void classic_isr( struct classic_data *isr_info )
{
    _enable();
    int port = inp( isr_info->status_register );
    port &= 7;
    if ( isr_info->data_pointers[ port ] )
        isr_8250( isr_info->data_pointers[ port ] );
}

ClassicHandler::ClassicHandler( irq_name irq_line,
                                int status_register_address )
{
    int i;

    isr_info.status_register = status_register_address;
    for ( i = 0 ; i < 8 ; i++ )
        isr_info.data_pointers[ i ] = 0;
    irq = irq_line;
    connected = ConnectToIrq( irq,
                              &isr_info,
                              (void (*)( void *)) classic_isr );
}

ClassicHandler::~ClassicHandler( void )
{
    if ( connected == RS232_SUCCESS )
        DisconnectFromIRQ( irq );
}

RS232Error ClassicHandler::AddPort( RS232PortName port_name,
                                    struct isr_data_block *data )
{
    if ( connected != RS232_SUCCESS )
        return connected;
    if ( isr_info.data_pointers[ port_name - COM5 ] )
        return RS232_PORT_IN_USE;
    isr_info.data_pointers[ port_name - COM5 ] = data;
    return RS232_SUCCESS;
}

void ClassicHandler::DeletePort( RS232PortName port_name )
{
    isr_info.data_pointers[ port_name - COM5 ] = 0;
}

// ******************** END OF CLASSIC.CPP ********************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -