Sync push
This commit is contained in:
parent
b2bbf7c560
commit
626b1b28e7
9 changed files with 29 additions and 5 deletions
0
extra/font_big.bmp → extra/dragon info/font_big.bmp
Executable file → Normal file
0
extra/font_big.bmp → extra/dragon info/font_big.bmp
Executable file → Normal file
|
Before Width: | Height: | Size: 429 KiB After Width: | Height: | Size: 429 KiB |
Binary file not shown.
15
extra/dss/drake/bootsector.dss
Normal file
15
extra/dss/drake/bootsector.dss
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
.load 0x0000
|
||||||
|
|
||||||
|
@define S_REG_3 0x09
|
||||||
|
|
||||||
|
.data
|
||||||
|
|
||||||
|
.code
|
||||||
|
mov R10, 0xE0
|
||||||
|
int 0x30
|
||||||
|
mov R10, 0x0C
|
||||||
|
mov R9, $string
|
||||||
|
int 0x30
|
||||||
|
|
||||||
|
.dynamic_data
|
||||||
|
$string "Hello BOOTSECTOR!!"
|
||||||
|
|
@ -21,7 +21,15 @@
|
||||||
call $_load_boot_sector
|
call $_load_boot_sector
|
||||||
or FL, 0b0000000000000001 ## Enable interrupts
|
or FL, 0b0000000000000001 ## Enable interrupts
|
||||||
mov FL, ACC
|
mov FL, ACC
|
||||||
|
|
||||||
|
mov reg(S_REG_3), MemoryAddresses.RAM
|
||||||
|
inc reg(S_REG_3)
|
||||||
|
mov R1, *reg(S_REG_3)
|
||||||
|
addip R1, reg(S_REG_3)
|
||||||
|
mov *reg(S_REG_3), R1
|
||||||
|
dec reg(S_REG_3)
|
||||||
jmp MemoryAddresses.RAM
|
jmp MemoryAddresses.RAM
|
||||||
|
|
||||||
_infinite_loop:
|
_infinite_loop:
|
||||||
jmp $_infinite_loop
|
jmp $_infinite_loop
|
||||||
hlt
|
hlt
|
||||||
|
|
@ -53,6 +61,7 @@ _load_boot_sector:
|
||||||
mov [{MemoryAddresses.DISK_INTERFACE + 0x9}], MemoryAddresses.RAM ## MemoryAddress
|
mov [{MemoryAddresses.DISK_INTERFACE + 0x9}], MemoryAddresses.RAM ## MemoryAddress
|
||||||
movb [MemoryAddresses.DISK_INTERFACE], 0x00 ## Signal = Start
|
movb [MemoryAddresses.DISK_INTERFACE], 0x00 ## Signal = Start
|
||||||
_load_boot_sector_block_wait_loop:
|
_load_boot_sector_block_wait_loop:
|
||||||
|
debug_break
|
||||||
mov ACC, [{MemoryAddresses.DISK_INTERFACE + 0xB}] ## Moving <Status> register into ACC
|
mov ACC, [{MemoryAddresses.DISK_INTERFACE + 0xB}] ## Moving <Status> register into ACC
|
||||||
jne $_load_boot_sector_block_wait_loop, 0x00 ## If <Status> register not Free, loop around and wait
|
jne $_load_boot_sector_block_wait_loop, 0x00 ## If <Status> register not Free, loop around and wait
|
||||||
ret
|
ret
|
||||||
|
|
@ -14,6 +14,7 @@ printf "${green}\n==============================================================
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
cd scripts
|
cd scripts
|
||||||
/bin/bash ./bios_flash
|
/bin/bash ./bios_flash
|
||||||
|
cp dss/bios_api.dss ../extra/dss/bios_api.dss
|
||||||
/bin/bash ./load_mbr
|
/bin/bash ./load_mbr
|
||||||
cd ..
|
cd ..
|
||||||
printf "${green}Compiling Test Program...\n"
|
printf "${green}Compiling Test Program...\n"
|
||||||
|
|
@ -24,5 +25,4 @@ if [ $? -eq 0 ]; then
|
||||||
./ddb config/testMachine.dvm --verbose-load
|
./ddb config/testMachine.dvm --verbose-load
|
||||||
cp dragon/disk1.dr ../extra/dragon/disk1.dr
|
cp dragon/disk1.dr ../extra/dragon/disk1.dr
|
||||||
cp dragon/cmos.dr ../extra/dragon/cmos.dr
|
cp dragon/cmos.dr ../extra/dragon/cmos.dr
|
||||||
cp dss/bios_api.dss ../extra/dss/bios_api.dss
|
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@ printf "${green}\n==============================================================
|
||||||
if [ $? -eq 0 ]; then
|
if [ $? -eq 0 ]; then
|
||||||
cd scripts
|
cd scripts
|
||||||
/bin/bash ./bios_flash
|
/bin/bash ./bios_flash
|
||||||
|
cp dss/bios_api.dss ../extra/dss/bios_api.dss
|
||||||
/bin/bash ./load_mbr
|
/bin/bash ./load_mbr
|
||||||
cd ..
|
cd ..
|
||||||
printf "${green}Compiling Test Program...\n"
|
printf "${green}Compiling Test Program...\n"
|
||||||
|
|
@ -24,5 +25,4 @@ if [ $? -eq 0 ]; then
|
||||||
# ./dvm config/testMachine.dvm --force-load activeTest.bin 0x00
|
# ./dvm config/testMachine.dvm --force-load activeTest.bin 0x00
|
||||||
cp dragon/disk1.dr ../extra/dragon/disk1.dr
|
cp dragon/disk1.dr ../extra/dragon/disk1.dr
|
||||||
cp dragon/cmos.dr ../extra/dragon/cmos.dr
|
cp dragon/cmos.dr ../extra/dragon/cmos.dr
|
||||||
cp dss/bios_api.dss ../extra/dss/bios_api.dss
|
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ clear='\033[0m'
|
||||||
printf "\n${green}Reloading MBR Block...\n${clear}"
|
printf "\n${green}Reloading MBR Block...\n${clear}"
|
||||||
cd ..
|
cd ..
|
||||||
cp ../extra/dss/drake/* ./dss/drake/
|
cp ../extra/dss/drake/* ./dss/drake/
|
||||||
./dasm dss/drake/entry.dss -o dragon/drake.bin --extalu --save-disassembly disassembly/drake.dds --verbose
|
./dasm dss/drake/loader.dss -o dragon/drake_loader.bin --extalu --save-disassembly disassembly/drake_loader.dds --verbose
|
||||||
./dtools load-binary dragon/disk1.dr dragon/drake.bin 0x00000000
|
./dtools load-binary dragon/disk1.dr dragon/drake_loader.bin 0x00000000
|
||||||
printf "\n"
|
printf "\n"
|
||||||
cp dragon/disk1.dr ../extra/dragon/disk1.dr
|
cp dragon/disk1.dr ../extra/dragon/disk1.dr
|
||||||
rm dragon/drake.bin
|
rm dragon/drake_loader.bin
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue