DragonVM/extra/dss/bios/display_info.dss

80 lines
No EOL
2 KiB
Text

@guard _DISPLAY_INFO_DSS_
.code
_print_machine_info:
mov R9, $_bios_logo_2_line_1
mov R10, 0x0C
int 0x30 ## Print Next Logo Line
mov R10, 0x02
int 0x30 ## Print New Line
mov R9, $_bios_logo_2_line_2
mov R10, 0x0C
int 0x30 ## Print Next Logo Line
mov R10, 0x01
mov R9, 32
int 0x30 ## Print ' ' character
mov R10, 0x0B
int 0x30 ## Invert colors
mov R10, 0x0C
mov R9, $_bios_name
int 0x30 ## Print BIOS Name
mov R10, 0x04
mov R9, [$_bios_version_number_maj]
int 0x30 ## Print BIOS Version (Major)
mov R10, 0x01
mov R9, 46
int 0x30 ## Print '.' character
mov R10, 0x04
mov R9, [$_bios_version_number_min]
int 0x30 ## Print BIOS Version (Minor)
mov R10, 0x0B
int 0x30 ## Invert colors
mov R10, 0x02
int 0x30 ## Print New Line
mov R9, $_bios_logo_2_line_3
mov R10, 0x0C
int 0x30 ## Print Next Logo Line
mov R10, 0x0C
mov R9, $_clock_str
int 0x30 ## Print Clock label
mov R10, 0x04
mov R9, [CMOS_Settings.CLOCK_SPEED]
int 0x30 ## Print Clock speed
mov R10, 0x0C
mov R9, $_hz_str
int 0x30 ## Print hz label
mov R10, 0x02
int 0x30 ## Print New Line
mov R9, $_bios_logo_2_line_4
mov R10, 0x0C
int 0x30 ## Print Next Logo Line
mov R10, 0x0C
mov R9, $_mem_str
int 0x30 ## Print Memory label
mov R10, 0x04
mov R9, [CMOS_Settings.MEM_START]
int 0x30 ## Print Memory start
mov R10, 0x01
mov R9, 47
int 0x30 ## Print '/' character
mov R10, 0x04
mov R9, [CMOS_Settings.MEM_SIZE]
int 0x30 ## Print Memory size
mov R10, 0x0C
mov R9, $_byte_str
int 0x30 ## Print bytes label
mov R10, 0x02
int 0x30 ## Print New Line
mov R9, $_bios_logo_2_line_5
mov R7, 4
mov ACC, 19
_print_machine_info_logo_loop:
inc R7
mov R10, 0x0C
int 0x30 ## Print Next Logo Line
addip R9, 54 ## 54 is the length of a line
mov R10, 0x02
int 0x30 ## Print New Line
jls $_print_machine_info_logo_loop, R7
ret