dev: started to add OS functions
This commit is contained in:
parent
53a9c6c91d
commit
fc244f8481
4 changed files with 1607 additions and 1474 deletions
103
zone.asm
103
zone.asm
|
|
@ -1,30 +1,97 @@
|
|||
; SPDX-License-Identifier: MPL-2.0
|
||||
; SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell
|
||||
; ============================================================
|
||||
; ZONE OS main section
|
||||
; ============================================================
|
||||
.section "zone","acrx"
|
||||
.global zone_start
|
||||
.global os_print_vec
|
||||
.global os_getch_vec
|
||||
.global os_outbyte_vec
|
||||
.global os_inbyte_vec
|
||||
.global os_main_loop
|
||||
; SPDX-License-Identifier: MPL-2.0
|
||||
; SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell
|
||||
; ============================================================
|
||||
; ZONE OS main section
|
||||
; ============================================================
|
||||
.section "zone", "acrx"
|
||||
.global zone_start
|
||||
.global os_print_vec
|
||||
.global os_getch_vec
|
||||
.global os_outbyte_vec
|
||||
.global os_inbyte_vec
|
||||
.global os_main_loop
|
||||
|
||||
.set UARTSTATUS, 6
|
||||
.set UARTDATA, 7
|
||||
|
||||
zone_start:
|
||||
ret
|
||||
ret
|
||||
|
||||
os_print_vec:
|
||||
ret
|
||||
; this takes a character in a and sends it to the UART
|
||||
push af
|
||||
push bc
|
||||
push de
|
||||
ld d, a
|
||||
ld bc, UARTSTATUS
|
||||
|
||||
$1:
|
||||
in a, (c); get status byte
|
||||
bit 0, a; test bit 0
|
||||
jr z, $1; jump back if UART not ready
|
||||
ld a, d
|
||||
ld bc, UARTDATA
|
||||
out (c), a; send byte to uart
|
||||
pop de
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
|
||||
os_getch_vec:
|
||||
ret
|
||||
ret
|
||||
|
||||
os_outbyte_vec:
|
||||
ret
|
||||
; this takes a byte in a and sends it to port in hl
|
||||
push af
|
||||
push bc
|
||||
push hl
|
||||
ld c, l
|
||||
out (c), a
|
||||
pop hl
|
||||
pop bc
|
||||
pop af
|
||||
ret
|
||||
|
||||
os_inbyte_vec:
|
||||
ret
|
||||
; this gets a byte from port in hl and returns it in a
|
||||
push bc
|
||||
push hl
|
||||
ld c, l
|
||||
in a, (c)
|
||||
pop hl
|
||||
pop bc
|
||||
ret
|
||||
|
||||
os_main_loop:
|
||||
jp os_main_loop
|
||||
jp os_main_loop
|
||||
|
||||
zoneSignon:
|
||||
.string "ZONE OS ver. 0.01"
|
||||
|
||||
zoneCopyright:
|
||||
.string "(c) A.M. Rowsell, license MPLv2"
|
||||
|
||||
zonePrompt:
|
||||
.string "z] "
|
||||
|
||||
; error messages
|
||||
|
||||
errorSyntax:
|
||||
.string "Syntax error!"
|
||||
|
||||
errorTimeout:
|
||||
.string "Command timed out."
|
||||
|
||||
errorNotFound:
|
||||
.string "Command/file not found."
|
||||
|
||||
errorHardware:
|
||||
.string "Hardware error!"
|
||||
|
||||
errorRAMFailed:
|
||||
.string "RAM test failed!"
|
||||
|
||||
stringTable:
|
||||
.word zoneSignon, zoneCopyright, zonePrompt
|
||||
.word errorSyntax, errorTimeout, errorNotFound
|
||||
.word errorHardware, errorRAMFailed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue