@@ -4,25 +4,31 @@ CFLAGS=-ttelestrat
44ASFLAGS =-ttelestrat
55LDFILES =
66
7- all : init kernel memmap unittest
7+ all : init kernel memmap
88.PHONY : prepare_tmp all
99
1010prepare_tmp :
1111 @mkdir -p tmp/
1212
1313KCH395_LIB_VERSION =2025.1
14-
1514SOURCE =src/kernel.asm
16-
1715PROGRAM_NAME =kernel
1816
17+ ifeq ($(strip $(GITHUB_WORKSPACE ) ) ,)
18+ WORKSPACE = $(ORICUTRON_PATH )
19+ else
20+ WORKSPACE = $(GITHUB_WORKSPACE ) /oricutron/
21+ endif
22+
1923ifeq ($(CC65_HOME ) ,)
20- CC = cl65
24+ CL = cl65
25+ CC = cc65
2126 AS = ca65
2227 LD = ld65
2328 AR = ar65
2429else
25- CC = $(CC65_HOME ) /bin/cl65
30+ CL = $(CC65_HOME ) /bin/cl65
31+ CC = $(CC65_HOME ) /bin/cc65
2632 AS = $(CC65_HOME ) /bin/ca65
2733 LD = $(CC65_HOME ) /bin/ld65
2834 AR = $(CC65_HOME ) /bin/ar65
4147
4248kernel : $(SOURCE )
4349 @mkdir -p tmp/
44- @cd src/kernel8 && bpm update && cd ..
50+ @cd src/kernel8 && bpm update && cd ..
4551 @echo Rom are built in $(PATH_PACKAGE_ROM )
4652 @echo " ########################################################"
4753 @echo " # Build kernelsd.rom for Twilighte board #"
@@ -77,41 +83,79 @@ kernel: $(SOURCE)
7783
7884 @$(AS) --cpu 6502 -DWITH_SDCARD_FOR_ROOT=1 --verbose -s -ttelestrat src/kernel_main_memory.s -o tmp/kernel_main_memory.ld65
7985 @$(AS) --verbose -s -tnone --debug-info --cpu 6502 -tnone src/kernel8/src/kernel8.s -o tmp/kernel_bank8.ld65 $(ASFLAGS) > output.log
80- @$(AS) --verbose -s -tnone --debug-info -o kernel_bank0.ld65 -DWITH_SDCARD_FOR_ROOT=1 src/kernel_bank0.s $(ASFLAGS) > output.log
81- @$(AS) --verbose -s -tnone --debug-info -o kernelsd.ld65 -DWITH_SDCARD_FOR_ROOT=1 $(SOURCE) $(ASFLAGS) > output.log
86+ @$(AS) --verbose -s -tnone --debug-info -o tmp/kernel_bank0.ld65 -DWITH_SDCARD_FOR_ROOT=1 src/kernel_bank0.s $(ASFLAGS) > output.log
87+ @$(AS) --verbose -s -tnone --debug-info -o tmp/kernelsd.ld65 -DWITH_SDCARD_FOR_ROOT=1 $(SOURCE) $(ASFLAGS) > output.log
88+ @$(LD) -C cfg/kernel.cfg -DWITH_SDCARD_FOR_ROOT=1 tmp/kernelsd.ld65 tmp/kernel_bank0.ld65 tmp/kernel_main_memory.ld65 tmp/kernel.lib -Ln tmp/kernelsd.sym -m tmp/memmap.txt -vm
89+ @cp kernel.rom kernelsd.rom
8290
8391 @$(AS) --cpu 6502 -DWITH_SDCARD_FOR_ROOT=1 --verbose -s -ttelestrat src/kernel_bank0.s -o tmp/kernel_bank0.ld65 --debug-info > memmap.md
8492 @$(LD) -C cfg/rom.cfg tmp/kernel_bank8.ld65 tmp/kernel_bank0.ld65 tmp/kernel_main_memory.ld65 tmp/kernel_bank8.lib src/kernel8/orixlibs/ksocket/usr/share/ksocket/2025.1/ksocket.lib src/kernel8/orixlibs/kch395/usr/share/kch395/$(KCH395_LIB_VERSION)/kch395.lib src/kernel8/orixlibs/ch395/usr/share/ch395/2024.4/ch395.lib -o kernel8.rom -Ln tmp/kernel8sd.sym -m tmp/memmap8.txt -vm
8593
8694
87- @cp kernel.rom kernelsd.rom
88- # @sed -re 's/al 00(.{4}) \.(.+)$$/\1 \2/' kernelsd.sym| sort > kernelsd2.sym > output.log
95+ @# @sed -re 's/al 00(.{4}) \.(.+)$$/\1 \2/' kernelsd.sym| sort > kernelsd2.sym > output.log
8996 @cp kernelsd.rom $(PATH_PACKAGE_ROM)/
90- # @cp kernelsd.sym $(PATH_PACKAGE_ROM)/
91- # @cp kernelsd.map $(PATH_PACKAGE_ROM)/
97+ @ # @cp kernelsd.sym $(PATH_PACKAGE_ROM)/
98+ @ # @cp kernelsd.map $(PATH_PACKAGE_ROM)/
9299
93100 @echo "# #######################################################"
94101 @echo "# Build kernelus.rom for Twilighte board #"
95102 @echo "# #######################################################"
96103 @$(AS) --verbose -s -tnone --debug-info -o kernel_bank0.ld65 -DWITH_TWILIGHTE_BOARD=1 src/kernel_bank0.s $(ASFLAGS) > output.log
97104 @echo "WITH_TWILIGHTE_BOARD">$(PATH_PACKAGE_ROM)/kernelus.lst
98105 @$(AS) --verbose -s -tnone --debug-info -o kernelus.ld65 $(SOURCE) $(ASFLAGS) > output.log
99- @$(LD) -C cfg/kernel.cfg tmp/kernelsd.ld65 tmp/kernel_bank0.ld65 tmp/kernel_main_memory.ld65 tmp/kernel.lib -m kernelus.map -DWITH_TWILIGHTE_BOARD=1 -Ln kernelus.sym > output.log
106+
107+
108+
109+ compile_cc65 :
110+ @echo " ########################################################"
111+ @echo " # Compile C file with cc65 #"
112+ @echo " ########################################################"
113+ @echo " FILE_TO_COMPILE: $( FILE_TO_COMPILE) FINAL_BIN: $( FINAL_BIN) "
114+ @$(CC ) $(CFLAGS ) $(FILE_TO_COMPILE ) -o tmp/$(FINAL_BIN ) _1000.s
115+ @$(CC ) $(CFLAGS ) $(FILE_TO_COMPILE ) -o tmp/$(FINAL_BIN ) _2304.s
116+
117+ @$(AS) $(CFLAGS) tmp/$(FINAL_BIN)_1000.s -o tmp/$(FINAL_BIN)_1000.o
118+ @$(AS) $(CFLAGS) tmp/$(FINAL_BIN)_2304.s -o tmp/$(FINAL_BIN)_2304.o
119+
120+ @$(LD) $(CFLAGS) tmp/$(FINAL_BIN)_1000.o -o tmp/$(FINAL_BIN)_1000 --start-addr 2048 telestrat.lib
121+ @$(LD) $(CFLAGS) tmp/$(FINAL_BIN)_2304.o -o tmp/$(FINAL_BIN)_2304 --start-addr 2304 telestrat.lib
122+ @dependencies/orix-sdk/bin/relocbin.py3 -o tmp/$(FINAL_BIN) -2 tmp/$(FINAL_BIN)_1000 tmp/$(FINAL_BIN)_2304
123+
124+ prepare-unit-test :
125+ @cp build/usr/share/kernel/kernelsd.rom ${WORKSPACE} /roms/kernel.rom
126+ @cat tests/unit_test/xopen.sub > ${WORKSPACE} /sdcard/ETC/AUTOBOOT
127+ @cat tests/file_operations/file_operations.sub >> ${WORKSPACE} /sdcard/ETC/AUTOBOOT
128+ @cat tests/unit_test/xrm.sub >> ${WORKSPACE} /sdcard/ETC/AUTOBOOT
129+ @cat tests/unit_test/tail.sub >> ${WORKSPACE} /sdcard/ETC/AUTOBOOT
130+ @cp tmp/tfseek ${WORKSPACE} /sdcard/BIN
131+ cat ${WORKSPACE} /sdcard/ETC/AUTOBOOT
132+
133+ launch-unit-test : build-unit-test prepare-unit-test execute-oricutron
134+ @echo " ########################################################"
135+ @echo " # Launch unit test #"
136+ @echo " ########################################################"
137+
138+ execute-oricutron :
139+ @cp kernelsd.rom ${WORKSPACE} /roms/kernel.rom
140+ @cp kernel8.rom ${WORKSPACE} /roms/
141+ @cd ${WORKSPACE} && ./oricutron
142+
143+ memmap :
100144 @cp kernel.rom kernelus.rom
101145 @cp kernelus.rom $(PATH_PACKAGE_ROM ) /
102146
103- unittest :
104- @$(CC ) $(CFLAGS ) tests/mkdir.c -o tmp/tmkdir
105- @$(CC ) $(CFLAGS ) tests/fwrite.c -o tmp/tfwrite
106- @$(CC ) $(CFLAGS ) tests/unit_test/mainarg.s -I dependencies/orix-sdk/macros/ -o tmp/1000 --start-addr 2048
107- @$(CC ) $(CFLAGS ) tests/unit_test/mainarg.s -I dependencies/orix-sdk/macros/ -o tmp/1256 --start-addr 2304
147+ build-unit-test :
148+ @$(MAKE ) compile_cc65 FILE_TO_COMPILE=" tests/file_operations/fseek_test.c" FINAL_BIN=" tfseek"
149+ @# $(CL) $(CFLAGS) tests/file_operations/mkdir.c -o tmp/tmkdir
150+ @$(CL ) $(CFLAGS ) tests/file_operations/fwrite.c -o tmp/tfwrite
151+ @$(CL ) $(CFLAGS ) tests/unit_test/mainarg.s -I dependencies/orix-sdk/macros/ -o tmp/1000 --start-addr 2048
152+ @$(CL ) $(CFLAGS ) tests/unit_test/mainarg.s -I dependencies/orix-sdk/macros/ -o tmp/1256 --start-addr 2304
108153
109- memmap :
110154 @echo "# #######################################################"
111155 @echo "# Build memmap.md #"
112156 @echo "# #######################################################"
113157 @$(AS) --cpu 6502 -DMEMMAP_GENERATE=1 --verbose -s -ttelestrat src/kernel_main_memory.s -o tmp/kernel_main_memory.ld65 > memmap.md
114- # @$(LD) -C cfg/kernel.cfg tmp/kernelsd.ld65 tmp/kernel_bank0.ld65 tmp/kernel_main_memory.ld65 tmp/kernel.lib -m kernelus.map -o kernel-telestrat.ld65.rom -DWITH_ACIA=2 -DWITH_SDCARD_FOR_ROOT=1 -Ln kernel-telestrat.ca.sym
158+ @ # @$(LD) -C cfg/kernel.cfg tmp/kernelsd.ld65 tmp/kernel_bank0.ld65 tmp/kernel_main_memory.ld65 tmp/kernel.lib -m kernelus.map -o kernel-telestrat.ld65.rom -DWITH_ACIA=2 -DWITH_SDCARD_FOR_ROOT=1 -Ln kernel-telestrat.ca.sym
115159 @sh generate_memmap.sh
116160
117161test :
0 commit comments