All pastes #348513 Raw Edit

Something

public c v1 · immutable
·published 2007-02-10 05:37 UTC
rendered paste body
/*   DAn Williams   Aug 14 2004   RifRaf 2007   Demo of parallel port access and controll.    uses inpout.dll    Enjoy.*/#include <conio.h>#include <stdio.h>#include <windows.h>#include <time.h>/* definitions on what port is what base address depends, so use this */#define LPT1     0x378#define LPT2     0x278#define LPT3     0x3BC/* register offsets */#define DATA     0#define STATUS   1#define CONTROLL 2#define  BASE_ADDRESS   LPT1   /* this is the address we use (modify here if you need to) */typedef short _stdcall (*INP32)(short PortAddress);typedef void  _stdcall (*OUT32)(short PortAddress, short Data);int main(void) {    short     value;            HINSTANCE hLib;    INP32     Inp32;    OUT32     Out32;     /******************** LIBRARY INIT ***********************/         if ((hLib = LoadLibrary("inpout32.dll")) == NULL) {        printf("Unable to load inpout32.dll, did you copy it to the system folder?\n");        return 0;    }        if ((Inp32 = (INP32)GetProcAddress(hLib, "Inp32")) == NULL) {        printf("Unable to establish handle to input function.\n");        return 0;    }        if ((Out32 = (OUT32)GetProcAddress(hLib, "Out32")) == NULL) {        printf("Unable to establish handle to output function.\n");        return 0;    }/*********************** MAIN CODE **************************/     int x = 0;     while (x <= 10) {     //  Write to the data register      value = 0xC0;     Out32( BASE_ADDRESS , value );     Sleep(100);     //  Now use a different value      value = 0x60;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x30;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x18;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x0C;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x06;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x03;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x01;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x06;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x0C;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x18;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x30;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x60;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0xC0;     Out32(BASE_ADDRESS, value);     Sleep(100);     value = 0x80;     Out32(BASE_ADDRESS, value);     Sleep(100);     x++;     } /******************** CLEANUP ******************************/     // GO FREEE LITTLE LIBRARIES!, GO FREEEEE!!!     FreeLibrary(hLib);     // were done.     printf("Press any key to exit.\n");     getch();     return 1;}