DragonVM/extra/dss/DragonOS/drivers/display_driver.dss

71 lines
No EOL
2.3 KiB
Text

@guard _DISPLAY_DRIVER_DSS_
@include <../../sdk/palette.dss>
## =========================================================================================================================
.data
$textCell <Text16VModeCell>
## =========================================================================================================================
.code
## =========================================================================================================================
_init_display_driver:
ret
## =========================================================================================================================
## =========================================================================================================================
_print_string: ## _print_string(string* str)
arg R1 ## @Param: str
movb [$textCell.CoordX], 0
movb [$textCell.CoordY], 0
movb [$textCell.Foreground], DefaultPalette.Blue
movb [$textCell.Background], DefaultPalette.Black
mov R10, 0x22
mov R8, R1
mov R9, $textCell
int 0x30
ret
## =========================================================================================================================
## =========================================================================================================================
_print_char: ## _print_char(int16 char, int16 x, int16 y, int16 color)
arg R1 ## @Param: char
arg R2 ## @Param: x
arg R3 ## @Param: y
arg R4 ## @Param: color
movb [$textCell.CoordX], R2
movb [$textCell.CoordY], R3
movb [$textCell.Foreground], R4
movb [$textCell.Background], DefaultPalette.Black
movb [$textCell.Character], R1
mov R10, 0x21
mov R9, $textCell
int 0x30
ret
## =========================================================================================================================
## =========================================================================================================================
_clear_screen: ## _clear_screen(int8_t color)
arg R1
movb [$textCell.Foreground], R1
movb [$textCell.Background], R1
movb [$textCell.Character], 0x20
mov R10, 0x24
mov R9, $textCell
int 0x30
ret
## =========================================================================================================================