Home | History | Annotate | Download | only in geodsp
      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
    101