DragonVM/extra/dss/bios/data.dss
2024-06-22 00:20:17 +02:00

121 lines
No EOL
4.7 KiB
Text

@guard _DATA_DSS_
@export BIOS_API dss/bios_api.dss
## ============================= Memory Mapped Devices and Registers =============================
@export_comment /BIOS_API "These are the base addresses of the memory map."
@group /BIOS_API MemoryAddresses
MBR 0x1380
INT_VEC 0x1080
DISK_INTERFACE 0x1580
RAM 0x1740
CMOS 0x1000
VGA 0x1600
@end
@export_comment /BIOS_API "\n"
@group CMOS_Settings
MEM_START { MemoryAddresses.CMOS + 0x0000 }
MEM_SIZE { MemoryAddresses.CMOS + 0x0002 }
CLOCK_SPEED { MemoryAddresses.CMOS + 0x0004 }
BOOT_DISK { MemoryAddresses.CMOS + 0x0010 }
DISK_LIST { MemoryAddresses.CMOS + 0x007E }
@end
@export_comment /BIOS_API "These are the Hardware Interrupt codes of this machine."
@group /BIOS_API HW_Int
DISK_INTERFACE_FINISHED 0x80
KEY_PRESSED 0xA0
KEY_RELEASED 0xA1
TEXT_ENTERED 0xA2
@end
@export_comment /BIOS_API "\n"
@export_comment /BIOS_API "These are the memory-mapped registers used to interact with the video card's interface."
@group /BIOS_API VGA_Registers
VIDEO_MODE { MemoryAddresses.VGA + 0x0000 }
SIGNAL { MemoryAddresses.VGA + 0x0003 }
TEXT_SINGLE_CHAR { MemoryAddresses.VGA + 0x0004 }
TEXT_SIGNLE_INVERT { MemoryAddresses.VGA + 0x0005 }
TEXT_SIGNLE_STR { MemoryAddresses.VGA + 0x0006 }
BUFF_START { MemoryAddresses.VGA + 0x00E0 }
@end
@export_comment /BIOS_API "\n"
@export_comment /BIOS_API "These are the different Video Modes that the video card supports."
@group /BIOS_API VGA_VideoModes
TEXT_SINGLE_COLOR 0x00
@end
@export_comment /BIOS_API "\n"
@export_comment /BIOS_API "These are signals used to comunicate with the video card's interface, when in TEXT_SINGLE_COLOR mode."
@group /BIOS_API Sig_VGA_Text_Single_Color
CONTINUE 0x00
PRINT_CHAR 0x02
STORE_CHAR 0x03
PRINT_FLUSH_BUFF 0x04
FLUSH_BUFF 0x05
PRINT_BUFF 0x06
PRINT_STRING 0x07
REFRESH_SCREEN 0xE0
CLEAR_SCREEN 0xE1
@end
@export_comment /BIOS_API "\n"
@define S_REG_1 0x07
@define S_REG_2 0x08
@define S_REG_OFFSET 0x09
@define INST_BIOS_NODE_TOGGLE 0x02
## ===============================================================================================
.data
$_bios_version_number_maj 0x00, 0x00
$_bios_version_number_min 0x00, 0x04
$_bios_name "DragonBIOS "
$_clock_str " Clock: "
$_mem_str " Memory: "
$_hz_str " Hz"
$_byte_str " Bytes"
$_bios_logo_2_line_1 "|===================================================|"
$_bios_logo_2_line_2 "| '$$$o. |"
$_bios_logo_2_line_3 "| '$$$$bo... ..o: |"
$_bios_logo_2_line_4 "| '$$$$$$$$booocS$$$ .. ,. |"
$_bios_logo_2_line_5 "| '. '*$$$$SP V$o..o$$. .$$$b |"
$_bios_logo_2_line_6 "| '$$o. .$$$$$o. ...A$$$$$$$$$$$$$$b |"
$_bios_logo_2_line_7 "| ''bo. '*$$$$$$$$$$$$$$$$$$$$P*$$$$$$$$: |"
$_bios_logo_2_line_8 "| '$$. V$$$$$$$$$P'**''*'' VP * 'l |"
$_bios_logo_2_line_9 "| '$$$o.4$$$$$$$$X |"
$_bios_logo_2_line_10 "| '*$$$$$$$$$$$$$AoA$o..oooooo.. .b |"
$_bios_logo_2_line_11 "| .X$$$$$$$$$$$P'' ''*oo,, ,$P |"
$_bios_logo_2_line_12 "| $$P''V$$$$$$$: . ''*****' |"
$_bios_logo_2_line_13 "| .*' A$$$$$$$$o.4; . |"
$_bios_logo_2_line_14 "| .oP'' '$$$$$$b. .$; |"
$_bios_logo_2_line_15 "| A$$$$$$$$$$P |"
$_bios_logo_2_line_16 "| ' '$$$$$P' |"
$_bios_logo_2_line_17 "| $$P*' |"
$_bios_logo_2_line_18 "| .$' |"
$_bios_logo_2_line_19 "|===================================================|"
## $_bios_logo_line_1 " _____ ____ _____ ____ _____ "
## $_bios_logo_line_2 " | __ \ | _ \_ _/ __ \ / ____| "
## $_bios_logo_line_3 " | | | |_ __ __ _ __ _ ___ _ __ | |_) || || | | | (___ "
## $_bios_logo_line_4 " | | | | '__/ _` |/ _` |/ _ \| '_ \| _ < | || | | |\___ \ "
## $_bios_logo_line_5 " | |__| | | | (_| | (_| | (_) | | | | |_) || || |__| |____) | "
## $_bios_logo_line_6 " |_____/|_| \__,_|\__, |\___/|_| |_|____/_____\____/|_____/ "
## $_bios_logo_line_7 " __/ | "
## $_bios_logo_line_8 " |___/ "