| ; ----------------------------------------------------------------------- |
| ; |
| ; 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 |