diff options
| author | Xavier Del Campo Romero <xavi92@disroot.org> | 2025-07-07 13:22:53 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi92@disroot.org> | 2025-11-11 00:08:15 +0100 |
| commit | 7861a52adf92a083bb2aed4c35f98d8035dce032 (patch) | |
| tree | 28cd3c40e4c878f730f5df3c1d93bdf91af490c3 /src/ps1 | |
| parent | 7fc48e9216ff809da5f8055a50b0be17628ef1df (diff) | |
| download | wnix-7861a52adf92a083bb2aed4c35f98d8035dce032.tar.gz | |
Setup project skeleton
Diffstat (limited to 'src/ps1')
| -rw-r--r-- | src/ps1/CMakeLists.txt | 32 | ||||
| -rw-r--r-- | src/ps1/playstation.x | 2 | ||||
| -rw-r--r-- | src/ps1/start.c | 2 | ||||
| -rw-r--r-- | src/ps1/system.cnf | 8 | ||||
| -rw-r--r-- | src/ps1/wnix.xml | 20 |
5 files changed, 59 insertions, 5 deletions
diff --git a/src/ps1/CMakeLists.txt b/src/ps1/CMakeLists.txt index 6ba4543..0aa710c 100644 --- a/src/ps1/CMakeLists.txt +++ b/src/ps1/CMakeLists.txt @@ -1,5 +1,37 @@ +# wnix, a Unix-like operating system for WebAssembly applications. +# Copyright (C) 2025 Xavier Del Campo Romero +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + target_link_libraries(${PROJECT_NAME} PRIVATE c) target_link_libraries(nanowasm PRIVATE c) +target_link_libraries(wip PRIVATE c) +target_link_libraries(dynstr PRIVATE c) target_sources(${PROJECT_NAME} PRIVATE start.c) target_link_options(${PROJECT_NAME} PRIVATE -T${CMAKE_CURRENT_LIST_DIR}/playstation.x) +add_custom_target(system_cnf ALL + ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_LIST_DIR}/system.cnf ${CMAKE_BINARY_DIR} +) +add_custom_target(mkpsxiso_xml ALL + ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_LIST_DIR}/wnix.xml ${CMAKE_BINARY_DIR} +) +add_custom_target(license ALL + ${CMAKE_COMMAND} -E copy_if_different + ${CMAKE_CURRENT_LIST_DIR}/infoeur.dat ${CMAKE_BINARY_DIR} +) +add_dependencies(mkpsxiso_xml system_cnf license ${PROJECT_NAME}) +add_dependencies(bin_cue mkpsxiso_xml) diff --git a/src/ps1/playstation.x b/src/ps1/playstation.x index 00a1a74..71a4c34 100644 --- a/src/ps1/playstation.x +++ b/src/ps1/playstation.x @@ -68,5 +68,7 @@ SECTIONS __bss_start = ADDR(.bss); __bss_end = ADDR(.bss) + SIZEOF(.bss); + __ram_end = 0x8020FFFF; + __scratchpad = 0x1f800000; } diff --git a/src/ps1/start.c b/src/ps1/start.c index 09ca6c9..c5558fe 100644 --- a/src/ps1/start.c +++ b/src/ps1/start.c @@ -1,7 +1,7 @@ __attribute__((__section__(".text.startup"))) void _start(void) { int main(void); - extern char *__bss_start, *__bss_end; + extern char __bss_start[], __bss_end[]; for (char *s = __bss_start; s < __bss_end; s++) *s = 0; diff --git a/src/ps1/system.cnf b/src/ps1/system.cnf index 1c3aebe..8c30bfa 100644 --- a/src/ps1/system.cnf +++ b/src/ps1/system.cnf @@ -1,4 +1,4 @@ -BOOT = cdrom:\wanix.exe;1 -TCB = 1 -EVENT = 8 -STACK = 801FF800 +BOOT = cdrom:\wnix.exe;1
+TCB = 1
+EVENT = 10
+STACK = 801FF800
diff --git a/src/ps1/wnix.xml b/src/ps1/wnix.xml new file mode 100644 index 0000000..b7a695e --- /dev/null +++ b/src/ps1/wnix.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<iso_project image_name="wnix.bin" cue_sheet="wnix.cue" no_xa="0"> + <track type="data"> + <identifiers + volume = "WNIX" + volume_set = "WNIX" + publisher = "WNIX" + /> + <license file="infoeur.dat"/> + <directory_tree> + <file name="system.cnf" source="system.cnf"/> + <file name="wnix.exe" source="wnix.exe"/> + <dir name="bin" source="bin"> + <file name="initd" source="bin/initd"/> + <file name="yes" source="bin/yes"/> + </dir> + <dummy sectors="13500" type="0"/> + </directory_tree> + </track> +</iso_project> |
