aboutsummaryrefslogtreecommitdiff
path: root/src/ps1
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2025-07-07 13:22:53 +0200
committerXavier Del Campo Romero <xavi92@disroot.org>2025-11-11 00:08:15 +0100
commit7861a52adf92a083bb2aed4c35f98d8035dce032 (patch)
tree28cd3c40e4c878f730f5df3c1d93bdf91af490c3 /src/ps1
parent7fc48e9216ff809da5f8055a50b0be17628ef1df (diff)
downloadwnix-7861a52adf92a083bb2aed4c35f98d8035dce032.tar.gz
Setup project skeleton
Diffstat (limited to 'src/ps1')
-rw-r--r--src/ps1/CMakeLists.txt32
-rw-r--r--src/ps1/playstation.x2
-rw-r--r--src/ps1/start.c2
-rw-r--r--src/ps1/system.cnf8
-rw-r--r--src/ps1/wnix.xml20
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>