From 7861a52adf92a083bb2aed4c35f98d8035dce032 Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Mon, 7 Jul 2025 13:22:53 +0200 Subject: Setup project skeleton --- src/ps1/CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ src/ps1/playstation.x | 2 ++ src/ps1/start.c | 2 +- src/ps1/system.cnf | 8 ++++---- src/ps1/wnix.xml | 20 ++++++++++++++++++++ 5 files changed, 59 insertions(+), 5 deletions(-) create mode 100644 src/ps1/wnix.xml (limited to 'src/ps1') 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 . + 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 @@ + + + + + + + + + + + + + + + + -- cgit v1.2.3