• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
26write_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
41write_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
59write_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
73crlf:
74		push si
75		mov si,s_crlf
76		call writestr_early
77		pop si
78		ret
79
80writechr:
81writechr_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
91s_atchs:	db '@'
92s_chs:		db 'CHS'
93s_space:	db ' ', 0
94s_typespec:	db 'D='
95s_type:		db 'CHS', 0
96s_end:		db 0Dh, 0Ah, 'end'
97s_crlf:		db 0Dh, 0Ah, 0
98
99; This indicates the general format of the last few bytes in the boot sector
100BS_MAGIC_VER	equ 0x1b << 9
101