SYSTEM.CNF: Difference between revisions
| Revision as of 02:22, 23 October 2026 RemmyLee (Hardware and system software pages from the Sony manuals) | Revision as of 02:45, 23 October 2026 RemmyLee (BIOS and kernel: A, B, C functions, syscalls, events, threads, file I/O, boot, PS-X EXE) | ||
| Line 5: | Line 5: | ||
| category: File formats | category: File formats | ||
| category: System software | category: System software | ||
| + | info: File name = SYSTEM.CNF | ||
| + | info: Location = Root directory of the disc | ||
| --- | --- | ||
| ## Overview | ## Overview | ||
| − | SYSTEM.CNF holds the PlayStation settings and names the application to start.[^os23] | + | SYSTEM.CNF is Sony's system designation file. It describes the PlayStation system settings and the application that is to be started.[^os23] The kernel reads the file at boot time and uses it to reserve memory for the stack, the tasks and the events.[^lo203] The [PS-X OS](/system/ps-x-os/) first checks the type of disc in the CD-ROM drive, and only an appropriate disc has its SYSTEM.CNF read and the named program executed.[^os23] The [boot](/system/bios/boot/) page describes the whole sequence. |
| − | Sony's name for SYSTEM.CNF is System Designation File.[^os23] | + | ## Syntax |
| − | At boot the [PS-X OS](/system/ps-x-os/) checks the disc. On the right disc it reads SYSTEM.CNF and starts the program it names.[^os23] | + | Each parameter is described from the beginning of a line in `<key word> = <content>` format. All characters are 1-byte uppercase alphanumerics, and lowercase characters may not be used. A space is necessary on both sides of the equal sign. When the same parameter appears more than once in a file, the first one found takes precedence.[^os23] The TCB and EVENT values are written in hexadecimal.[^lo203] |
| − | ## Syntax | + | ## Keywords |
| − | Each parameter starts at the beginning of a line in the form `<key word> = <content>`.[^os23] | + | The parameters that may be described are shown below. |
| − | The file uses 1-byte uppercase alphanumeric characters. Lowercase characters may not be used.[^os23] | + | Table: System designation file keywords |
| − | A space is needed on both sides of the equal sign.[^os23] | + | | Key word | Contents | Default | Minimum | Example | |
| + | | --- | --- | --- | --- | --- | | ||
| + | | BOOT | Device name, file name and version of the boot executable[^lo203] | cdrom:PSX.EXE;1 | | BOOT = cdrom:\SLUS_123.45;1 | | ||
| + | | TCB | Number of task control blocks (hex) | 4 | 1 | TCB = 5 | | ||
| + | | EVENT | Number of event control blocks (hex) | 0x10 | 0 | EVENT = 5 | | ||
| + | | STACK | Stack pointer value when the BOOT file starts | 0x801FFF00 | 0x8010000 | STACK = 800FFF0 | | ||
| − | When a parameter appears more than once, the first one found takes precedence.[^os23] | + | The PlayStation Operating System manual gives the STACK default as 0x8001FF00.[^os23] The Run-Time Library Overview and psx-spx both give 0x801FFF00, which is 256 bytes below the top of 2 MB of memory in segment B.[^lo203][^spxcnf] |
| − | ## Keywords | + | ## Limits |
| − | SYSTEM.CNF takes the following parameters: | + | The number of task control blocks and event control blocks that can be allocated is limited by the formula TCB * 192 + EVENT * 32 + 544 < 4096.[^lo203] The BIOS itself opens 5 events for its CD-ROM functions. Consequently, of the 16 events given by the default EVENT = 10, only 11 are available to the game.[^spxev] |
| − | Table: System designation file keyword list | + | ## Boot Argument |
| − | | Keyword | Content | Default | Example | | + | The BOOT line may carry an argument string after the file name. The BIOS copies this string to the 128-byte area at address 0x00000180, where the executable may read it.[^spxcnf][^spxmap] |
| − | | --- | --- | --- | --- | | ||
| − | | BOOT | Name of the file to be started[^os23] | GAME.PSX | BOOT = PSXAPP.EXE | | ||
| − | | TCB | Number of tasks | 4 | TCB = 5 | | ||
| − | | EVENT | Number of events | 16 | EVENT = 5 | | ||
| − | | STACK | Stack pointer value when the BOOT file starts | 0x8001FF00 | STACK = 800FFF0 | | ||
| + | ## Boot File Name | ||
| + | |||
| + | Licensed games name the boot executable after the product code printed on the case. Because ISO 9660 level 1 allows only 8 characters in a base name, the minus sign is replaced by an underscore and the last two digits move into the extension, so SLUS-12345 becomes SLUS_123.45.[^spxcnf] The suffix ";1" is the ISO 9660 file version number. When a disc has no SYSTEM.CNF, the BIOS boots the file PSX.EXE instead.[^spxcnf] | ||
| + | |||
| + | ## Example | ||
| + | |||
| + | A typical SYSTEM.CNF reads as follows.[^spxcnf] | ||
| + | |||
| + | ``` | ||
| + | BOOT = cdrom:\SLUS_123.45;1 | ||
| + | TCB = 4 | ||
| + | EVENT = 10 | ||
| + | STACK = 801FFF00 | ||
| + | ``` | ||
| + | |||
| ## References | ## References | ||
| [^os23]: Sony Computer Entertainment Inc. PlayStation Operating System. August 1998. Page 2-3, Table 2-1. | [^os23]: Sony Computer Entertainment Inc. PlayStation Operating System. August 1998. Page 2-3, Table 2-1. | ||
| + | [^lo203]: Sony Computer Entertainment Inc. Run-Time Library Overview. January 1999. Page 2-3, Table 2-1. | ||
| + | [^spxcnf]: psx-spx. CDROM File Formats, SYSTEM.CNF. https://psx-spx.consoledev.net/cdromfileformats/ | ||
| + | [^spxmap]: psx-spx. Kernel (BIOS), BIOS RAM Map. https://psx-spx.consoledev.net/kernelbios/ | ||
| + | [^spxev]: psx-spx. Kernel (BIOS), B(08h) OpenEvent. https://psx-spx.consoledev.net/kernelbios/ | ||