
-=[ PROGRAM LISTINGS ]=-

All programs are provided in PASCAL. Most programs are also provided in C.
BASIC listings are provided where language commands make such an
undertaking practical.

7_SEG: Control a 7 segment display driven by a parallel printer port.
       Demonstrates how to control a 7 segment LED display to show all hex
       digits:  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E,  and F

ADC_0804: Uses the parallel printer port to input analog data converted to
       8 bit binary by an ADC-0804 Analog / Digital, ( A/D ), converter IC

ADC_0809:  Input 8 analog inputs through the parallel printer port using an
       ADC-0809 8-bit, 8-channel, multiplex Analog / Digital, (A/D)
       converter IC.

ADC_DEMO:  Demo that inputs a voltage, between 0 and 5 volts, converted to
       8-bit binary data by an ADC-0804 analog / digital converter IC.
       Data is input through the parallel printer port.  Readings are
       displayed in large letters

AD_SER input analog data from a TLC548, serial Analog/Digital converter

AT_GAME: Read and display joystick status.  Uses Bios calls added to AT bios.
       This routine will not work on XT machines.

BATCH_SW: This program is run at the start of an Autoexec.BAT program. It
       reads switches connected to an IBM parallel printer port. It leaves
       the resulting value, (0 - 255 ), as an ERROR CODE for the remaining
       AUTOEXEC.BAT code. Using AUTOEXEC.BAT's GOTO command, the
       AUTOEXEC.BAT program can then branch to different system
       configurations at boot up.

BAT_TST: Demo BATCH file that reads switches interfaced to the IBM type
       parallel printer port. The value read is left as an ERROR LEVEL
       for the remaining batch file program code.

BI_PRN: Demo program for Universal Printer Port Adapter. The program, when
       used with the adaptert, converts a standard IBM parallel
       printer port into a true 8-bit I/O interface device with eight bi-
       directional data bits and 4 control lines.

CTRL_TST: Demonstrates how to send 4-bit data, ( a nibble ), out a printer
       port's control lines.  The program sequentially sets each control
       bit high.  Signals are sent on Centronics Parallel Printer Port
       control lines: pin 1, STROBE; pin 14, AUTO-FEED; pin 31, INIT; and
       pin 36, SELECT.

DAC_0832: Digital to Analog conversion using a DAC-00832 D/A interfaced.
       8-bit digital data is sent to a DAC-0832 via an IBM type parallel
       printer port.  The DAC-0832 converts the binary data to an analog
       signal.  As an example, the program generates a sine wave.

DRIVER: With a ULN-2803 8-bit driver interfaced to an IBM type printer
       port, repeatedly turn each data bit, D0 to D7 high and low.

DRV_RLY: Repeatedly turn a relay interfaced to a printer port's D7, pin 9,
       on and off.

DSP_DEC: Demonstrate how to send decimal numbers, 0 - 99, out the parallel
       printer port, in the form of two data nibbles, to two BCD to 7-segment
       displays.

DUALFAZE: Dual phase operation of a six wire stepping motor.  Two of the
       four windings are always energized.  This method will also work with
       8-wire stepping motors configured for 6-wire operation.

DUALSTEP;  Efficient 5 and 6 Wire Stepping Motor DUAL PHASE Control.
       The control logic, binary numbers between 0 to 3, are transmitted as
       two bit data via the parallel printer port.  Driver board logic
       converts the data to one-of-four logic, then uses the data to drive
       the stepping motor windings.

FASTSORT:  Fastest internal memory sort method I know of.  The theory is
       simple. A big list is easier to sort if you "divide and conquer".
       The Quick Sort Procedure repeatedly cuts sections in half until a
       resulting segment has 10 or less elements. The program then calls the
       Sifting Sort Procedure to sort the small sections.

GAMEPORT:  Relatively fast input of joystick port info.  Originally written
       for IBM XT / XT clone machines.  With the AT and higher machines,
       you can use BIOS interrupts to read joystick information. However,
       this method still has some applications.

GRAYCODE: Operate a bipolar stepping motor with GRAY CODE control logic.

HALFSTEP: Half Step operation of a six wire stepping motor.

IO_BASIC: Demonstrates basic concept of computer/real world interfacing by
       controlling a 117 volt AC load from the parallel printer port. When
       printer port data bit, D6, is high, blender is turned on, when
       printer port data bit, D6, is low, blender is turned off.

LCD_DEMO:  Demonstrates how to control any LCD device that uses Hatachi's 44780
       controller. The 44780 is widely used to control LCD displays of up
       to two lines of 40 characters. This demo controls a LCD display via
       an IBM parallel printer port.  It generates 5 by 7 pixel characters
       and graphics, as well as 5 by 10 pixel characters and graphics,

LED_SINK: Sink current control of LEDs interfaced to parallel printer port.

LED_SRCE: Source current control of LEDs interfaced to parallel printer port.

LOGICAL: Demonstrates programing logical operators AND, OR, and XOR.

MM74C922: Matrix keyboard input.  Inputs 4 bit data from National's MM74C922
       matrix key-pad encoder via standard Centronics Parallel Printer
       Port.

MOT_1042:  Bidirectional stepping motor control from parallel printer port
       using CLOCK & DIRECTION control logic.

MOT_3: Basic 5-wire stepping motor control logic.

MOT_5: Basic 4-wire, bipolar, stepping motor control.

MOT_BIN: Stepping motor control using binary logic.

MOT_BI_A PAS      1978 08-23-93   6:23p  -=[ delete file ]=-

MOT_CLK: Bidirectional stepping motor control from parallel printer port
       using CLOCK PULSES. ClockWise pulses via D0, on port pin 2,
       CounterClockWise pulses via D1 on port pin 3.

MUSIC: Demo music porgram.  Play Dill Pickle Rag via Signetics PCD331
       Tone Generator interfaced to an IBM type parallel printer port.

MY_TPU: A TPU unit of procedures I repeatedly use

OPTOS: Sequentially turn each opto-coupler high and low

OPTO_IN: Input 8-bit opto-coupled data, and output four opto-coupled control
       bits. via an IBM type parallel printer port,

OPTO_OUT: Output 8-bit opto_coupled data, and four opto_coupled control bits
       via an IBM type parallel printer port.

OSC_8253: Produce a square wave by interfacing an IBM parallel printer
       port to an Intel 8253 timer IC.

PCD3311: Generate modem, musical, and DTMF telephone tones,  from an IBM
       type parallel printer port interfaced to a Signetics PCD3311 tone
       generator IC.

PIA_8255: Expand an 8-bit parallel printer port into three 8-bit
       bidirectional ports. IBM type printer port is interfaced to an Intel
       8255 PIA IC.

PWM_8253: Generate pulse width modulation oscilations by interfacinng an
       IBM type parallel printer port to Intel's 8253 Interval Timer IC

RS232: Input / output 8-bit data from an IBM type Serial Port, COM1 or COM2.

SERVO: Control R/C Model Servo Motors from an IBM type parallel printer port.

SPEECH: Produce speech using General Instrument's SPO256 Speech Processor
       interfaced to an IBM type parallel printer port.

SSR_DEMO: Repeatedly turn a solid state relay, interfaced to an IBM type
       parallel printer port, on and off.

SW_IN: Input BUSY, ACK, PAPER END, INPUT, STROBE, AUTO FEED, ERROR,
  and SELECT INPUT signals from an IBM type parallel printer port.

TEST_PRN: Demo program that tests an IBM type parallel printer port for
       input and output data bits.

TMP      BAT        40 09-05-93   7:40p

TSR_DEMO: This program creates a DEMO TSR HARDWARE INTERRUPT. The Parallel
  Printer Port's ACK line, pin 10, can be set as a hardware interrupt. The
  interrupt is activated when The ACK line, pin 10, is pulled low, to
  ground.

TSR_INTR PAS      4562 07-27-93   6:28a  -=[ DELETE FILE ]=-

UL_BA: Use the IBM type parallel printer port's ACK line, pin 10, as
       a TSR hardware interrupt to activate a burglar alarm.



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-=[ FILES LEFT TO DOCUMENT ]=-
                      997376 bytes free
       54 file(s)     177828 bytes

TMP      BAT        40 09-05-93   7:40p  -=[ DELETE FILE ]=-


