home *** CD-ROM | disk | FTP | other *** search
- #ifndef parallel_H
- #define parallel_H
-
- /* C header file for Parallel
- * written by DefMod (Sep 7 1994) on Wed Sep 7 21:20:00 1994
- * Copyright © Acorn Computers Ltd, 1994
- */
-
- /*************************************************************************
- * This source file was written by Acorn Computers Limited. It is part *
- * of the OSLib library for writing applications for RISC OS. It may be *
- * used freely in the creation of programs for RISC OS. *
- *************************************************************************/
-
- #ifndef types_H
- #include "types.h"
- #endif
-
- #ifndef os_H
- #include "os.h"
- #endif
-
- /**********************************
- * SWI names and SWI reason codes *
- **********************************/
- #undef Parallel_HardwareAddress
- #define Parallel_HardwareAddress 0x42EC0
- #undef XParallel_HardwareAddress
- #define XParallel_HardwareAddress 0x62EC0
- #undef Parallel_Op
- #define Parallel_Op 0x42EC1
- #undef XParallel_Op
- #define XParallel_Op 0x62EC1
- #undef ParallelOp_Read
- #define ParallelOp_Read 0x0
- #undef ParallelOp_WriteData
- #define ParallelOp_WriteData 0x1
- #undef ParallelOp_WriteControl
- #define ParallelOp_WriteControl 0x2
-
- /*************************
- * Function declarations *
- *************************/
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- /*************************************************************
- * NOTE: The following functions provide direct access to *
- * the SWI's noted in the function description. *
- * Please read the relevant PRM section for more *
- * information on their input/output parameters. *
- *************************************************************/
-
- /* ------------------------------------------------------------------------
- * Function: parallelop_read()
- *
- * Description: Reads the data and status registers
- *
- * Output: data_register - value of R1 on exit
- * status_register - value of R2 on exit
- *
- * Other notes: Calls SWI 0x42EC1 with R0 = 0x0.
- */
-
- extern os_error *xparallelop_read (bits *data_register,
- bits *status_register);
- extern void parallelop_read (bits *data_register,
- bits *status_register);
-
- /* ------------------------------------------------------------------------
- * Function: parallelop_write_data()
- *
- * Description: Writes the data register
- *
- * Input: data - value of R1 on entry
- *
- * Other notes: Calls SWI 0x42EC1 with R0 = 0x1.
- */
-
- extern os_error *xparallelop_write_data (bits data);
- extern void parallelop_write_data (bits data);
-
- /* ------------------------------------------------------------------------
- * Function: parallelop_write_control()
- *
- * Description: Reads/writes the control register
- *
- * Input: eor_mask - value of R1 on entry
- * and_mask - value of R2 on entry
- *
- * Output: old_control - value of R1 on exit (X version only)
- * new_control - value of R2 on exit
- *
- * Returns: R1 (non-X version only)
- *
- * Other notes: Calls SWI 0x42EC1 with R0 = 0x2.
- */
-
- extern os_error *xparallelop_write_control (bits eor_mask,
- bits and_mask,
- bits *old_control,
- bits *new_control);
- extern bits parallelop_write_control (bits eor_mask,
- bits and_mask,
- bits *new_control);
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif
-