diff options
author | Matt Fleming <matt.fleming@intel.com> | 2011-10-18 13:13:06 +0100 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2011-12-01 13:14:05 +0000 |
commit | 9f51b69d7c0500e04b3c404bb5138a9234810035 (patch) | |
tree | d566e6984457f331288f34d780f15a680334af94 /core/comboot.inc | |
parent | dd5e4935f3e2f8f1940c72d9c3b39a926300c42e (diff) | |
download | syslinux-9f51b69d7c0500e04b3c404bb5138a9234810035.tar.gz |
core: Reimplement lots asm code in C
There is an awful lot of code currently implemented in assembly when
it could just as easily be implemented in C. Having it in C makes it
much easier to share code between the BIOS and forthcoming EFI
firmware backend. The following code fragments have been rewritten,
- timer initialisation
- adjust_screen()
- check_esapes() and mem_init()
- conio.inc
- plaincon.inc
- cleanup.inc
- serirq.inc
- font.inc
- graphics
- writehex
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'core/comboot.inc')
-rw-r--r-- | core/comboot.inc | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/core/comboot.inc b/core/comboot.inc index b0e118ad..880f5db1 100644 --- a/core/comboot.inc +++ b/core/comboot.inc @@ -173,6 +173,7 @@ comboot_setup_api: ; Restore the original state of the COMBOOT API vectors, and free ; any low memory allocated by the comboot module. ; + global comboot_cleanup_api comboot_cleanup_api: pusha mov si,DOSSaveVectors @@ -238,7 +239,7 @@ comboot_int21: sti mov es,bp mov bp,sp ; Set up stack frame - call adjust_screen ; The COMBOOT program might have changed the screen + call _adjust_screen ; The COMBOOT program might have changed the screen mov cx,int21_count mov si,int21_table @@ -309,7 +310,7 @@ comboot_exit_msg: pop bx ; Return address RESET_STACK_AND_SEGS si ; Contains sti, cld pm_call comboot_cleanup_lowmem - call adjust_screen ; The COMBOOT program might have changed the screen + call _adjust_screen ; The COMBOOT program might have changed the screen jcxz .nomsg mov si,KernelName call writestr @@ -425,7 +426,7 @@ comboot_int22: mov es,bp mov bp,sp ; Set up stack frame - call adjust_screen ; The COMBOOT program might have changed the screen + call _adjust_screen ; The COMBOOT program might have changed the screen cmp ax,int22_count jb .ok @@ -807,7 +808,7 @@ comapi_usingvga: mov [GXPixRows],dx test al,08h jnz .notext - call adjust_screen + call _adjust_screen .notext: clc ret @@ -1002,6 +1003,11 @@ feature_flags_len equ ($-feature_flags) err_notdos db ': attempted DOS system call INT ',0 err_comlarge db 'COMBOOT image too large.', CR, LF, 0 + global VGAFontSize, UserFont + alignz 2 +VGAFontSize dw 16 ; Defaults to 16 byte font +UserFont db 0 ; Using a user-specified font + section .bss16 alignb 4 DOSErrTramp resd 33 ; Error trampolines |