Hoist segment register modification out of drawing subroutines
This commit is contained in:
parent
8da69da9a2
commit
a2c1aaf6ec
27
ponydos.asm
27
ponydos.asm
|
@ -87,6 +87,12 @@ initialize_screen:
|
|||
mov ch, 0x20
|
||||
int 0x10
|
||||
|
||||
; Set up segments for drawing routines
|
||||
xor ax, ax
|
||||
mov ds, ax
|
||||
push word 0xb800
|
||||
pop es
|
||||
|
||||
call draw_wallpaper
|
||||
call flip_mouse_cursor
|
||||
|
||||
|
@ -115,33 +121,25 @@ mainloop:
|
|||
; Drawing subroutines
|
||||
; ------------------------------------------------------------------
|
||||
|
||||
; requires:
|
||||
; ds = 0
|
||||
; es = 0xb800
|
||||
draw_wallpaper:
|
||||
pusha
|
||||
push es
|
||||
push ds
|
||||
|
||||
xor ax, ax
|
||||
mov ds, ax
|
||||
|
||||
push word 0xb800
|
||||
pop es
|
||||
|
||||
mov si, WALLPAPER
|
||||
xor di, di
|
||||
mov cx, 80*25
|
||||
rep movsw
|
||||
|
||||
pop ds
|
||||
pop es
|
||||
popa
|
||||
ret
|
||||
|
||||
; requires:
|
||||
; ds = 0
|
||||
; es = 0xb800
|
||||
flip_mouse_cursor:
|
||||
pusha
|
||||
push es
|
||||
|
||||
push word 0xb800
|
||||
pop es
|
||||
|
||||
; Column
|
||||
xor bh, bh
|
||||
|
@ -161,7 +159,6 @@ flip_mouse_cursor:
|
|||
ror al, cl
|
||||
mov [es:bx], al
|
||||
|
||||
pop es
|
||||
popa
|
||||
ret
|
||||
|
||||
|
|
Loading…
Reference in New Issue