chore: remove build.sh
This commit is contained in:
parent
dc252706cd
commit
0ce1e73a09
200
build.sh
200
build.sh
|
@ -1,200 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# log reporting
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
plain() {
|
|
||||||
local mesg=$1; shift
|
|
||||||
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${BOLD} ${mesg}${ALL_OFF}\n" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
msg() {
|
|
||||||
local mesg=$1; shift
|
|
||||||
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${MAGENTA}==>${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
msg2() {
|
|
||||||
local mesg=$1; shift
|
|
||||||
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${BLUE} ->${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
error() {
|
|
||||||
local mesg=$1; shift
|
|
||||||
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${RED}==> ERROR:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
warning() {
|
|
||||||
local mesg=$1; shift
|
|
||||||
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${YELLOW}==> WARNING:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
success() {
|
|
||||||
local mesg=$1; shift
|
|
||||||
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${GREEN}==> SUCCESS:${ALL_OFF}${BOLD} ${mesg}${ALL_OFF}\n" "$@"
|
|
||||||
}
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# build
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# tools
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
build_tools() {
|
|
||||||
msg "Builing tools"
|
|
||||||
plain "tools dir: %s" "${TOOLS_DIR}"
|
|
||||||
|
|
||||||
make tools
|
|
||||||
}
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# doctor - check os dependancies
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
check_tool() {
|
|
||||||
local tool=$1; shift
|
|
||||||
|
|
||||||
printf "checking for %s " "${tool}"
|
|
||||||
|
|
||||||
tool_path="$(which "${tool}" 2> /dev/null)"
|
|
||||||
if [ -z "${tool_path}" ]; then
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${BOLD}${RED}NO${ALL_OFF}\n"
|
|
||||||
false;
|
|
||||||
else
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
printf "${GREEN}${tool_path}${ALL_OFF}\n"
|
|
||||||
true;
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
doctor() {
|
|
||||||
local err=0
|
|
||||||
|
|
||||||
check_tool fasm || ((err++))
|
|
||||||
check_tool gcc || ((err++))
|
|
||||||
check_tool bmake || ((err++))
|
|
||||||
check_tool sha256sum || ((err++))
|
|
||||||
check_tool python3 || ((err++))
|
|
||||||
|
|
||||||
if [ $err -gt 0 ]; then error "Some tools are missing"; fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# usage & version
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
local status=$1
|
|
||||||
|
|
||||||
if [ ${status} -eq 0 ]; then
|
|
||||||
cat <<EOF
|
|
||||||
Usage: $prgname [-hV] [COMMANDS]
|
|
||||||
Flags:
|
|
||||||
-h display this menu.
|
|
||||||
-V display version information.
|
|
||||||
Options:
|
|
||||||
Commands:
|
|
||||||
doctor
|
|
||||||
tools
|
|
||||||
build
|
|
||||||
EOF
|
|
||||||
else
|
|
||||||
printf "Try '%s -h' for more information.\n" "${prgname}" >&2
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit ${status}
|
|
||||||
}
|
|
||||||
|
|
||||||
version() {
|
|
||||||
VERSION_MAJOR="$(grep VERSION_MAJOR kernel/const.inc | cut -d' ' -f 3)"
|
|
||||||
VERSION_MINOR="$(grep VERSION_MINOR kernel/const.inc | cut -d' ' -f 3)"
|
|
||||||
|
|
||||||
printf "%s (StupidOS) %d.%d\n" "${prgname}" ${VERSION_MAJOR} ${VERSION_MINOR}
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
}
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
# entry
|
|
||||||
# -----------------------------------------------------------------------------
|
|
||||||
LC_ALL=C
|
|
||||||
export LC_ALL
|
|
||||||
|
|
||||||
unset INFODIR
|
|
||||||
unset LESSCHARSET
|
|
||||||
unset MAKEFLAGS
|
|
||||||
unset TERMINFO
|
|
||||||
|
|
||||||
unset ALL_OFF BOLD RED GREEN BLUE MAGENTA YELLOW
|
|
||||||
if [ ! -v NO_COLOR ]; then
|
|
||||||
ALL_OFF="\e[1;0m"
|
|
||||||
BOLD="\e[1;1m"
|
|
||||||
BLUE="${BOLD}\e[1;34m"
|
|
||||||
GREEN="${BOLD}\e[1;32m"
|
|
||||||
RED="${BOLD}\e[1;31m"
|
|
||||||
MAGENTA="${BOLD}\e[1;35m"
|
|
||||||
YELLOW="${BOLD}\e[1;33m"
|
|
||||||
fi
|
|
||||||
readonly ALL_OFF BOLD RED GREEN BLUE MAGENTA YELLOW
|
|
||||||
|
|
||||||
unset topdir prgname build_start
|
|
||||||
prgname="$(basename $0)"
|
|
||||||
topdir="$(realpath "$0")"
|
|
||||||
topdir="$(dirname "${topdir}")"
|
|
||||||
#build_start="$(date)"
|
|
||||||
readonly topdir prgname
|
|
||||||
#build_start
|
|
||||||
|
|
||||||
SRC_DIR="${topdir}"
|
|
||||||
BUILD_DIR="${topdir}/.build"
|
|
||||||
TOOLS_DIR="${topdir}/.tools"
|
|
||||||
TOOLS_PREFIX="stpd-"
|
|
||||||
export PATH="$PATH:$TOOLS_DIR"
|
|
||||||
|
|
||||||
if [ ! -f Makefile ] || [ ! -f LICENSE ]; then
|
|
||||||
error "Run this script at StupidOS root"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -eq 0 ]; then
|
|
||||||
usage 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
op=$1; shift
|
|
||||||
|
|
||||||
case "${op}" in
|
|
||||||
help | --help | -h)
|
|
||||||
usage 0
|
|
||||||
;;
|
|
||||||
--version | -V)
|
|
||||||
version
|
|
||||||
;;
|
|
||||||
doctor)
|
|
||||||
doctor
|
|
||||||
;;
|
|
||||||
tools)
|
|
||||||
build_tools
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
usage 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
|
@ -1,6 +1,28 @@
|
||||||
;; File: com.inc
|
;; File: com.inc
|
||||||
|
;;
|
||||||
|
;; Usefull links:
|
||||||
|
;; - <PC16550D datasheet at https://www.scs.stanford.edu/10wi-cs140/pintos/specs/pc16550d.pdf>
|
||||||
|
|
||||||
COM_MAJOR = 1
|
COM1 = 0x3F8
|
||||||
|
COM2 = 0x2F8
|
||||||
|
COM3 = 0x3E8
|
||||||
|
COM4 = 0x2E8
|
||||||
|
|
||||||
|
UART8250_RBR = 0x0
|
||||||
|
UART8250_THR = 0x0
|
||||||
|
|
||||||
|
UART8250_IER = 0x1
|
||||||
|
UART8250_IIR = 0x2
|
||||||
|
UART8250_FCR = 0x2
|
||||||
|
UART8250_LCR = 0x3
|
||||||
|
UART8250_MCR = 0x4
|
||||||
|
UART8250_LSR = 0x5
|
||||||
|
UART8250_MSR = 0x6
|
||||||
|
UART8250_SCR = 0x7
|
||||||
|
|
||||||
|
; DLAB = 1
|
||||||
|
UART8250_DLL = 0x0
|
||||||
|
UART8250_DLH = 0x1
|
||||||
|
|
||||||
com_init:
|
com_init:
|
||||||
ret
|
ret
|
||||||
|
@ -8,9 +30,13 @@ com_init:
|
||||||
com_probe:
|
com_probe:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
com_irq:
|
com_irq1:
|
||||||
pusha
|
pusha
|
||||||
|
|
||||||
popa
|
popa
|
||||||
iret
|
iret
|
||||||
|
|
||||||
|
com_irq2:
|
||||||
|
pusha
|
||||||
|
popa
|
||||||
|
iret
|
||||||
|
|
|
@ -74,7 +74,6 @@ ne2k_init:
|
||||||
|
|
||||||
|
|
||||||
ne2k_probe:
|
ne2k_probe:
|
||||||
|
|
||||||
ret
|
ret
|
||||||
|
|
||||||
ne2k_irq:
|
ne2k_irq:
|
||||||
|
|
|
@ -66,3 +66,8 @@ gdt_flush:
|
||||||
mov gs, ax
|
mov gs, ax
|
||||||
mov ss, ax
|
mov ss, ax
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
tss_flush:
|
||||||
|
mov ax, 0x2B
|
||||||
|
ltr ax
|
||||||
|
ret
|
||||||
|
|
|
@ -33,14 +33,22 @@ idt_setup:
|
||||||
cmp ecx, 0x30
|
cmp ecx, 0x30
|
||||||
jb @b
|
jb @b
|
||||||
|
|
||||||
|
mov ecx, 35
|
||||||
|
mov eax, com_irq2
|
||||||
|
call idt_set_gate
|
||||||
|
|
||||||
mov ecx, 36
|
mov ecx, 36
|
||||||
mov eax, com_irq
|
mov eax, com_irq1
|
||||||
call idt_set_gate
|
call idt_set_gate
|
||||||
|
|
||||||
mov ecx, 38
|
mov ecx, 38
|
||||||
mov eax, floppy_irq
|
mov eax, floppy_irq
|
||||||
call idt_set_gate
|
call idt_set_gate
|
||||||
|
|
||||||
|
mov ecx, 41
|
||||||
|
mov eax, ne2k_irq
|
||||||
|
call idt_set_gate
|
||||||
|
|
||||||
mov ecx, 0x42
|
mov ecx, 0x42
|
||||||
mov eax, isr_syscall
|
mov eax, isr_syscall
|
||||||
call idt_set_gate
|
call idt_set_gate
|
||||||
|
|
|
@ -71,6 +71,7 @@ kmain:
|
||||||
|
|
||||||
call gdt_set_tss
|
call gdt_set_tss
|
||||||
call gdt_flush
|
call gdt_flush
|
||||||
|
call tss_flush
|
||||||
|
|
||||||
call idt_setup
|
call idt_setup
|
||||||
|
|
||||||
|
@ -86,6 +87,8 @@ kmain:
|
||||||
;mov al, 'X'
|
;mov al, 'X'
|
||||||
;call cga_putc
|
;call cga_putc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.halt:
|
.halt:
|
||||||
hlt
|
hlt
|
||||||
jmp $
|
jmp $
|
||||||
|
@ -96,6 +99,8 @@ kmain:
|
||||||
jmp .halt
|
jmp .halt
|
||||||
|
|
||||||
include 'dev/at/cmos.inc'
|
include 'dev/at/cmos.inc'
|
||||||
|
include 'dev/at/com.inc'
|
||||||
|
include 'dev/at/ne2k.inc'
|
||||||
include 'dev/at/pit.inc'
|
include 'dev/at/pit.inc'
|
||||||
include 'dev/at/kbd.inc'
|
include 'dev/at/kbd.inc'
|
||||||
include 'dev/at/cga.inc'
|
include 'dev/at/cga.inc'
|
||||||
|
|
Loading…
Reference in a new issue