dev: created cold/warm boot entry points and stubs

This commit is contained in:
A.M. Rowsell 2025-12-21 14:22:54 -05:00
commit a4761efed2
Signed by: amr
GPG key ID: E0879EDBDB0CA7B1
5 changed files with 24 additions and 4 deletions

View file

@ -17,10 +17,13 @@ vectorTable.o: vectorTable.asm
zone.o: zone.asm zone.o: zone.asm
$(ASM) $(ASMFLAGS) -o $@ $< $(ASM) $(ASMFLAGS) -o $@ $<
zone.hex: float.o vectorTable.o zone.o linker.cmd boot.o: boot.asm
$(LINK) $(LINKFLAGS) -o $@ float.o vectorTable.o zone.o $(ASM) $(ASMFLAGS) -o $@ $<
zone.hex: float.o vectorTable.o zone.o boot.o linker.cmd
$(LINK) $(LINKFLAGS) -o $@ float.o vectorTable.o zone.o boot.o
clean: clean:
rm -f float.o vectorTable.o zone.o zone.hex rm -f float.o vectorTable.o zone.o boot.o zone.hex
.PHONY: all clean .PHONY: all clean

View file

@ -1,2 +1,13 @@
; SPDX-License-Identifier: MPL-2.0 ; SPDX-License-Identifier: MPL-2.0
; SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell ; SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell
.section "boot","acrx"
.global zone_setup
.global os_warm_boot
.extern os_main_loop
zone_setup:
ld sp, 0x6FFF
jp os_main_loop
os_warm_boot:
ret

View file

@ -3,6 +3,7 @@
SECTIONS SECTIONS
{ {
.zone 0xA000 : { *(.zone) *(zone) } .zone 0xA000 : { *(.zone) *(zone) }
.boot 0xC3C3 : { *(.boot) *(boot) }
.text 0xE000 : { *(.text) *(.float) *(float) } .text 0xE000 : { *(.text) *(.float) *(float) }
.vectors 0xF000 : { *(.vectors) } .vectors 0xF000 : { *(.vectors) }
.data 0x7000 : { *(.data) } .data 0x7000 : { *(.data) }

View file

@ -14,4 +14,5 @@ os_vectors:
.word os_getch_vec .word os_getch_vec
.word os_outbyte_vec .word os_outbyte_vec
.word os_inbyte_vec .word os_inbyte_vec
.zero 248 .word os_warm_boot
.zero 246

View file

@ -9,6 +9,7 @@
.global os_getch_vec .global os_getch_vec
.global os_outbyte_vec .global os_outbyte_vec
.global os_inbyte_vec .global os_inbyte_vec
.global os_main_loop
zone_start: zone_start:
ret ret
@ -24,3 +25,6 @@ os_outbyte_vec:
os_inbyte_vec: os_inbyte_vec:
ret ret
os_main_loop:
jp os_main_loop