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
|
mov ch, 0x20
|
||||||
int 0x10
|
int 0x10
|
||||||
|
|
||||||
|
; Set up segments for drawing routines
|
||||||
|
xor ax, ax
|
||||||
|
mov ds, ax
|
||||||
|
push word 0xb800
|
||||||
|
pop es
|
||||||
|
|
||||||
call draw_wallpaper
|
call draw_wallpaper
|
||||||
call flip_mouse_cursor
|
call flip_mouse_cursor
|
||||||
|
|
||||||
|
@ -115,33 +121,25 @@ mainloop:
|
||||||
; Drawing subroutines
|
; Drawing subroutines
|
||||||
; ------------------------------------------------------------------
|
; ------------------------------------------------------------------
|
||||||
|
|
||||||
|
; requires:
|
||||||
|
; ds = 0
|
||||||
|
; es = 0xb800
|
||||||
draw_wallpaper:
|
draw_wallpaper:
|
||||||
pusha
|
pusha
|
||||||
push es
|
|
||||||
push ds
|
|
||||||
|
|
||||||
xor ax, ax
|
|
||||||
mov ds, ax
|
|
||||||
|
|
||||||
push word 0xb800
|
|
||||||
pop es
|
|
||||||
|
|
||||||
mov si, WALLPAPER
|
mov si, WALLPAPER
|
||||||
xor di, di
|
xor di, di
|
||||||
mov cx, 80*25
|
mov cx, 80*25
|
||||||
rep movsw
|
rep movsw
|
||||||
|
|
||||||
pop ds
|
|
||||||
pop es
|
|
||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
; requires:
|
||||||
|
; ds = 0
|
||||||
|
; es = 0xb800
|
||||||
flip_mouse_cursor:
|
flip_mouse_cursor:
|
||||||
pusha
|
pusha
|
||||||
push es
|
|
||||||
|
|
||||||
push word 0xb800
|
|
||||||
pop es
|
|
||||||
|
|
||||||
; Column
|
; Column
|
||||||
xor bh, bh
|
xor bh, bh
|
||||||
|
@ -161,7 +159,6 @@ flip_mouse_cursor:
|
||||||
ror al, cl
|
ror al, cl
|
||||||
mov [es:bx], al
|
mov [es:bx], al
|
||||||
|
|
||||||
pop es
|
|
||||||
popa
|
popa
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue