#!/usr/bin/env mksh
# $Id$
-# $miros: src/sys/arch/i386/stand/bootxx/mkbxinst.sh,v 1.18 2009/06/07 13:07:46 tg Exp $
+# $miros: src/sys/arch/i386/stand/bootxx/mkbxinst.sh,v 1.20 2009/06/07 18:00:43 tg Exp $
#-
# Copyright (c) 2007, 2008, 2009
# Thorsten Glaser <tg@mirbsd.org>
if (( g_code[0] < 1 || g_code[1] < 1 || g_code[1] > 256 ||
g_code[2] < 1 || g_code[2] > 63 )); then
print -u2 Invalid geometry, values out of bounds.
- elif [[ $(print "(${g_code[0]} * ${g_code[1]} * {g_code[2]})" \
+ elif [[ $(print "(${g_code[0]} * ${g_code[1]} * ${g_code[2]})" \
"> 4294967295" | bc) = 1 ]]; then
print -u2 Invalid geometry, more than 2 TiB of data.
else
thecode[mbrpno++]=0
(( thecode[mbrpno++] = (partp ? partp : 0x27) ))
(( thecode[mbrpno++] = g_code[1] - 1 ))
- (( cylno = g_code[0] > 1023 ? 1023 : g_code[0] ))
+ (( cylno = g_code[0] > 1024 ? 1023 : g_code[0] - 1 ))
(( thecode[mbrpno++] = g_code[2] | ((cylno & 0x0300) >> 2) ))
(( thecode[mbrpno++] = cylno & 0x00FF ))
thecode[mbrpno++]=0