; -----------------------------------------------------------------------
;
;   Copyright 2010 Gene Cumm
;
;   Portions from diskstart.inc:
;   Copyright 1994-2009 H. Peter Anvin - All Rights Reserved
;   Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin
;
;   This program is free software; you can redistribute it and/or modify
;   it under the terms of the GNU General Public License as published by
;   the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
;   Boston MA 02110-1301, USA; either version 2 of the License, or
;   (at your option) any later version; incorporated herein by reference.
;
; -----------------------------------------------------------------------

;
; geodsplib.inc
;
; Library file for geodsp*.asm
;

		; ES:BX points to the buffer with address
		; DX,CX as they should be for INT13h,AH=02
		; For now assume C<256
write_chs_lba:
		pushad
		mov si,s_atchs
		call writestr_early
		call write_chs
		mov al,':'
		call writechr
		mov eax,[es:bx]
		call writehex8
		call crlf
		popad
		ret

		; DX,CX as they should be for INT13h,AH=02
		; For now assume C<256
write_chs:
		pushad
		mov al,ch
		mov ah,cl
		shr ah,6
		call writehex4
		mov al,','
		call writechr
		mov al,dh
		call writehex2
		mov al,','
		call writechr
		mov al,cl
		and al,3Fh
		call writehex2
		popad
		ret

write_edd_lba:
		pushad
		mov si,s_atchs
		call writestr_early
		call writehex8
		mov al,':'
		call writechr
		mov eax,[es:bx]
		call writehex8
		call crlf
		popad
		ret


crlf:
		push si
		mov si,s_crlf
		call writestr_early
		pop si
		ret

writechr:
writechr_early:
		pushad
		mov ah,0Eh		; Write to screen as TTY
		mov bx,0007h		; Attribute
		int 10h
		popad
		ret

%include "writehex.inc"

s_atchs:	db '@'
s_chs:		db 'CHS'
s_space:	db ' ', 0
s_typespec:	db 'D='
s_type:		db 'CHS', 0
s_end:		db 0Dh, 0Ah, 'end'
s_crlf:		db 0Dh, 0Ah, 0

; This indicates the general format of the last few bytes in the boot sector
BS_MAGIC_VER	equ 0x1b << 9