psx.wiki

libraries/libsio: Difference between revisions

Revision as of 02:58, 23 October 2026
RemmyLee
(Run-time library pages: 20 libraries from the Library Overview and Reference 4.4)
Revision as of 03:05, 23 October 2026
RemmyLee
(File libraries under their SDK: /sdk/psy-q/; Psy-Q page; sidebar SDKs and System software)
Line 1:Line 1:
−---
−title: Serial Input/Output Library (libsio)
−type: component
−summary: Provides standard input and output functions for connecting the PlayStation to a PC.
−category: Libraries
−info: Library = libsio.lib
−info: Header File = libsio.h
−---
−
−## Overview
−
−The Serial Input/Output Library (libsio) provides standard input and output functions for connecting the PlayStation to a PC, and it supports the output of debug information to the PC.[^o17-3]
−
−A program that uses libsio links with libsio.lib and includes libsio.h.[^o17-3]
−
−## Serial I/O Driver
−
−libsio consists of the serial I/O driver and the serial I/O BIOS. The driver provides standard input and output through the standard C procedures, so standard I/O can be assigned to the communications port without other code. AddSIO() includes the driver and DelSIO() deletes it. For more complex communication, such as with a PC and a modem, the BIOS is used instead.[^o17-3]
−
−## Serial I/O BIOS
−
−The serial I/O BIOS provides low-level driver control and information that the standard C functions do not cover. Its interface function is _sio_control(). The libraries normally write debugging data to standard I/O. Data communication with a PC through the driver would therefore receive unexpected data, so such communication uses the BIOS without the driver and with standard I/O in NULL mode. The BIOS also works when the driver is not included.[^o17-3]
−
−_sio_control(cmd, arg, param) issues the SIO commands:[^r16-6]
−
−Table: _sio_control() commands
−
−| cmd | arg | Function |
−| --- | --- | --- |
−| 0 | 0 | Return the driver status |
−| 0 | 1 | Return the control line status |
−| 0 | 2 | Return the communications mode |
−| 0 | 3 | Return the communications speed in bps |
−| 0 | 4 | Read 1 byte |
−| 1 | 1 | Set the control line status to param |
−| 1 | 2 | Set the communications mode to param |
−| 1 | 3 | Set the communications speed to param bps |
−| 1 | 4 | Write 1 byte |
−| 2 | 0 | Reset the driver |
−| 2 | 1 | Clear the error bits of the driver status |
−
−The driver status has the following bits:[^r16-6]
−
−Table: Driver status
−
−| Bit | Symbol | Contents |
−| --- | --- | --- |
−| 9 | SR_IRQ | Interrupt on |
−| 8 | SR_CTS | CTS is on |
−| 7 | SR_DSR | DSR is on |
−| 5 | SR_FE | Frame error occurs |
−| 4 | SR_OE | Overrun error occurs |
−| 3 | SR_PERROR | Parity error occurs |
−| 2 | SR_TXU | No communications data |
−| 1 | SR_RXRDY | Communications data can be read |
−| 0 | SR_TXRDY | Communications data can be written |
−
−In the control line status bit 1 is RTS and bit 0 is DTR. In the communications mode bits 7 and 6 give the stop bit length (MR_SB_01, MR_SB_10 and MR_SB_11 for 1, 1.5 and 2 bits). Bit 5 (MR_P_EVEN) selects odd or even parity, bit 4 (MR_PEN) enables parity and bits 3 and 2 give the character length from 5 to 8 bits.[^r16-7]
−
−Sio1Callback() sets a function called on the interrupts enabled by _sio_control(1, 1, param), which are CR_DSRIEN, CR_RXIEN and CR_TXIEN. The callback must clear the interrupt flag with _sio_control(2, 1, 0) or _sio_control(1, 1, CR_ERRRST), since no further SIO interrupt occurs until the flag is cleared.[^r16-5]
−
−## Functions
−
−In the tables below, Introduced is the run-time library version that added the item.[^reff163]
−
−libsio has the following functions:[^reff163]
−
−Table: libsio functions
−
−| Function | Introduced | Purpose |
−| --- | --- | --- |
−| `AddSIO` | 3.6 | Initialize SIO driver. |
−| `DelSIO` | 3.6 | Delete SIO driver from kernel. |
−| `Sio1Callback` | 4.0 | Set SIO interrupt callback function. |
−| `_sio_control` | 3.6 | Issue SIO command. |
−
−## References
−
−[^o17-3]: Sony Computer Entertainment Inc. Run-Time Library Overview. Run-Time Library 4.4. January 1999. Page 17-3.
−[^r16-5]: Sony Computer Entertainment Inc. Run-Time Library Reference. Run-Time Library 4.4. January 1999. Page 16-5.
−[^r16-6]: Sony Computer Entertainment Inc. Run-Time Library Reference. Run-Time Library 4.4. January 1999. Page 16-6.
−[^r16-7]: Sony Computer Entertainment Inc. Run-Time Library Reference. Run-Time Library 4.4. January 1999. Page 16-7.
−[^reff163]: Sony Computer Entertainment Inc. Run-Time Library Reference. Run-Time Library 4.4. January 1999. Pages 16-3 to 16-6.