71 lines
No EOL
2.3 KiB
Text
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
|
|
## ========================================================================================================================= |