Merge remote-tracking branch 'genec/gpxelinux-kpxe-for-hpa'
[profile/ivi/syslinux.git] / diag / geodsp / geodsplib.inc
1 ; -----------------------------------------------------------------------
2 ;
3 ;   Copyright 2010 Gene Cumm
4 ;
5 ;   Portions from diskstart.inc:
6 ;   Copyright 1994-2009 H. Peter Anvin - All Rights Reserved
7 ;   Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin
8 ;
9 ;   This program is free software; you can redistribute it and/or modify
10 ;   it under the terms of the GNU General Public License as published by
11 ;   the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
12 ;   Boston MA 02110-1301, USA; either version 2 of the License, or
13 ;   (at your option) any later version; incorporated herein by reference.
14 ;
15 ; -----------------------------------------------------------------------
16
17 ;
18 ; geodsplib.inc
19 ;
20 ; Library file for geodsp*.asm
21 ;
22
23                 ; ES:BX points to the buffer with address
24                 ; DX,CX as they should be for INT13h,AH=02
25                 ; For now assume C<256
26 write_chs_lba:
27                 pushad
28                 mov si,s_atchs
29                 call writestr_early
30                 call write_chs
31                 mov al,':'
32                 call writechr
33                 mov eax,[es:bx]
34                 call writehex8
35                 call crlf
36                 popad
37                 ret
38
39                 ; DX,CX as they should be for INT13h,AH=02
40                 ; For now assume C<256
41 write_chs:
42                 pushad
43                 mov al,ch
44                 mov ah,cl
45                 shr ah,6
46                 call writehex4
47                 mov al,','
48                 call writechr
49                 mov al,dh
50                 call writehex2
51                 mov al,','
52                 call writechr
53                 mov al,cl
54                 and al,3Fh
55                 call writehex2
56                 popad
57                 ret
58
59 write_edd_lba:
60                 pushad
61                 mov si,s_atchs
62                 call writestr_early
63                 call writehex8
64                 mov al,':'
65                 call writechr
66                 mov eax,[es:bx]
67                 call writehex8
68                 call crlf
69                 popad
70                 ret
71
72
73 crlf:
74                 push si
75                 mov si,s_crlf
76                 call writestr_early
77                 pop si
78                 ret
79
80 writechr:
81 writechr_early:
82                 pushad
83                 mov ah,0Eh              ; Write to screen as TTY
84                 mov bx,0007h            ; Attribute
85                 int 10h
86                 popad
87                 ret
88
89 %include "writehex.inc"
90
91 s_atchs:        db '@'
92 s_chs:          db 'CHS'
93 s_space:        db ' ', 0
94 s_typespec:     db 'D='
95 s_type:         db 'CHS', 0
96 s_end:          db 0Dh, 0Ah, 'end'
97 s_crlf:         db 0Dh, 0Ah, 0
98
99 ; This indicates the general format of the last few bytes in the boot sector
100 BS_MAGIC_VER    equ 0x1b << 9