@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 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 } @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_3 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 " |___/ "