From 7b8ed58815b5a453bfc5a746d6a7a2d3b1b984ca Mon Sep 17 00:00:00 2001 From: Volker Ruppert Date: Thu, 27 Oct 2005 07:38:20 +0000 Subject: [PATCH] - end-of-track (EOT) condition implemented - set valid EOT value in BIOS floppy read/write functions - added hack to make older Bochs BIOS version work with EOT feature --- bochs/bios/BIOS-bochs-2-processors | Bin 65536 -> 65536 bytes bochs/bios/BIOS-bochs-4-processors | Bin 65536 -> 65536 bytes bochs/bios/BIOS-bochs-8-processors | Bin 65536 -> 65536 bytes bochs/bios/BIOS-bochs-latest | Bin 65536 -> 65536 bytes bochs/bios/rombios.c | 8 ++++---- bochs/iodev/floppy.cc | 26 +++++++++++++++----------- bochs/iodev/floppy.h | 3 ++- 7 files changed, 21 insertions(+), 16 deletions(-) diff --git a/bochs/bios/BIOS-bochs-2-processors b/bochs/bios/BIOS-bochs-2-processors index c9693c6db22a918738cb3449bf6873acea89844e..b5fdf55f6bf65d035b328f854200318cf1274f3f 100644 GIT binary patch delta 3505 zcmZWr3s6&68ouX-mw*sJD2j$C8L_fU!mA)s$49)_t-A(Tt7~@=R*kJQtB8QCB8d=` zTmlLQ#3^94I9qjF7mXdS(n=V0X6v?E*Sgx;c0nn7Fe*s#MJUih zvK`AJ_sX@}Dq*TWFbh-7_x^NV6vF&DO^;a!i?iuaJ{;H)3JRcC=`nBuo+wQL#rRVR zeGSn-gHeQ6ZyFz1aSD2s=kUh^;PAc!h zSE1koO;A}e%@BsGyrdyKlBQg%W#uYcnynz9J@0as(bUR z?HCYyH7O1rOjp91EQt7v}mUF6Kx5n^P*c90-MXG@dy0y_JjwB!p}G;3Qqiq z_Q3A42;UnrQRq#R1y=lxp4dZQa$@kZ!N;(AC*B)!JpOp2G6``OJ(WB#SxiWk@U*gv z3`LZLvAHu@?qkUlM<%n}$1Im9-b88pO{Fj>3WKD99~K9VSQLey2;YhMZR1QVNIYJe zFQ#9!FrD}MM_R3P5eLYzwZm9bnBg!Blf_ZBo^gkpn;6FiWbp#RX>-y;|2#U*p38{r zw&y}x;kIWYVK3|%bdm5e{?x-urbJ+bPE#bvfsqvo!+M;-ytvcwk{5L@FZPjrq0`T% zDa?zR6f-Xh6f-ZTQp~&0Hd+|HNFTMCrrj7IBDfqA=S$fV5j}o z<+RWes5XVJ8r|;BCe|4sOcX}l#_A&6?U`#d^|7n|B4IB)^A;KBxn-izlYW?Lesx9! zkyS=_py2Ns8^*)ZJluucgpTdxYV+f98ne?>_^~ukk~c=;Mzv%P!`5yyFF8A}{@kIiM;I44CjZJd)r zm^RKy&Ta5RF&^Z>Z^dHJZq2Gn1~DDm@S^R}zvA-mrTJ`~rs=ubWj-J4{7|y=RXM5x zEm4+a%bS*LOP-|+eqzyrNpRR=2Ww$(b#h2T&DtFSr8@d^dl#xk)sawB6ZgACTgfYL zx%o#?@JIti6Wjm#C3{m`DK_5|1uwiAIHKwCtalwqFfAYzRYJhkE>9m<><;`# zjT#(;|E*C(br<5vRtcl?=j%{MAvq(5C^-B9Zs=B_a?hmDVutX@zIy7MHpQ)1er6V9x?@5_atg4GhN}$cubLO2Jn0g&unw zgFbFC3qztXWU>{+I*W#o1V7q4B|MuvLmGC(3Ru5!Q#5edDeVfE<@Y%MIjI`l@$Lz zACD*sa!hFhE#pCilh;xr;k3mZc)d;uCcwva%DIW8(TjO36qJVZKenQA*r_)FTiR>zzDbWHj^!w72{;=wuC*$`$(*e6BK&W555 zvs!VlJPRrW}A=^%2x3pefyR~&p7KOy)R{U9Sxh$Ba_fph<$|G>lh=0&e* z>^t<0E-NDw4eU$f3SyAFaaCr@SA~JA{_yt794|#!kl-?2PoqGknW?kOs3;5tBYwrFaSyW0B+V6BahwMLR>d$g!y|kbS z?Z(0?dxlGR12!}rRRlMqR+6R9#92~AGiq?^SJ{^`8U_E@+!PVhEO7(p2ApTOfsO%Z z-w`fNRv3XLeR~EBZkap%S~FVyqQ!U3D1A(eo@SH+S2xdu^)0jfRwu--?rI6-IG}_7 zYEc8F)zMM{@W0~sck=k_(D0!&o;zes`9OO0~pQ2Zz8G!$>o_dI?2Oa6*Aw^a@Jz8_Ea{KQY#+UCQJ zaG+p5%x!($I_H1y@jfTp+K%_GT}kpvd0F2#$1rg4a7BL{_!*k}Gr(2rt^NZ(9xD#? zZL;oo`oweAzYpfiF7aIDol_?iIhL<#ZrZ&RIdQg{oA~O>jl81JGtvW_M;Ch?Zi>{e VyaG>nOs;c2^G;T4lDLr@{|B#=THycy delta 3501 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 Vx&lwQO|5r4^-PLYC32%5{vSWGTXg^c delta 3501 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 K$_3oe)&B#1$!_xi delta 3640 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 V@eW*c2q?Gx>=YZVUZfaV^M80fl==Vw diff --git a/bochs/bios/rombios.c b/bochs/bios/rombios.c index 375d7521a..c76a6179c 100644 --- a/bochs/bios/rombios.c +++ b/bochs/bios/rombios.c @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: rombios.c,v 1.154 2005-09-24 08:09:38 vruppert Exp $ +// $Id: rombios.c,v 1.155 2005-10-27 07:37:46 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -939,7 +939,7 @@ Bit16u cdrom_boot(); #endif // BX_ELTORITO_BOOT -static char bios_cvs_version_string[] = "$Revision: 1.154 $ $Date: 2005-09-24 08:09:38 $"; +static char bios_cvs_version_string[] = "$Revision: 1.155 $ $Date: 2005-10-27 07:37:46 $"; #define BIOS_COPYRIGHT_STRING "(c) 2002 MandrakeSoft S.A. Written by Kevin Lawton & the Bochs team." @@ -6806,7 +6806,7 @@ BX_INFO("floppy: drive>1 || head>1 ...\n"); outb(0x03f5, head); outb(0x03f5, sector); outb(0x03f5, 2); // 512 byte sector size - outb(0x03f5, 0); // last sector number possible on track + outb(0x03f5, sector + num_sectors - 1); // last sector to read on track outb(0x03f5, 0); // Gap length outb(0x03f5, 0xff); // Gap length @@ -6940,7 +6940,7 @@ BX_INFO("floppy: drive>1 || head>1 ...\n"); outb(0x03f5, head); outb(0x03f5, sector); outb(0x03f5, 2); // 512 byte sector size - outb(0x03f5, 0); // last sector number possible on track + outb(0x03f5, sector + num_sectors - 1); // last sector to write on track outb(0x03f5, 0); // Gap length outb(0x03f5, 0xff); // Gap length diff --git a/bochs/iodev/floppy.cc b/bochs/iodev/floppy.cc index 616e0c0c8..0e49505f9 100644 --- a/bochs/iodev/floppy.cc +++ b/bochs/iodev/floppy.cc @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: floppy.cc,v 1.83 2005-10-09 17:58:37 vruppert Exp $ +// $Id: floppy.cc,v 1.84 2005-10-27 07:37:46 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -132,7 +132,7 @@ bx_floppy_ctrl_c::init(void) { Bit8u i; - BX_DEBUG(("Init $Id: floppy.cc,v 1.83 2005-10-09 17:58:37 vruppert Exp $")); + BX_DEBUG(("Init $Id: floppy.cc,v 1.84 2005-10-27 07:37:46 vruppert Exp $")); DEV_dma_register_8bit_channel(2, dma_read, dma_write, "Floppy Drive"); DEV_register_irq(6, "Floppy Drive"); for (unsigned addr=0x03F2; addr<=0x03F7; addr++) { @@ -941,22 +941,26 @@ bx_floppy_ctrl_c::floppy_command(void) BX_FD_THIS s.status_reg2 = 0x00; enter_result_phase(); return; - } + } if (cylinder != BX_FD_THIS s.cylinder[drive]) BX_DEBUG(("io: cylinder request != current cylinder")); - logical_sector = (cylinder * BX_FD_THIS s.media[drive].heads * BX_FD_THIS s.media[drive].sectors_per_track) + + logical_sector = (cylinder * BX_FD_THIS s.media[drive].heads * BX_FD_THIS s.media[drive].sectors_per_track) + (head * BX_FD_THIS s.media[drive].sectors_per_track) + (sector - 1); if (logical_sector >= BX_FD_THIS s.media[drive].sectors) { BX_PANIC(("io: logical sector out of bounds")); - } - + } + // This hack makes older versions of the Bochs BIOS work + if (eot == 0) { + eot = BX_FD_THIS s.media[drive].sectors_per_track; + } BX_FD_THIS s.cylinder[drive] = cylinder; BX_FD_THIS s.head[drive] = head; BX_FD_THIS s.sector[drive] = sector; + BX_FD_THIS s.eot[drive] = eot; if ((BX_FD_THIS s.command[0] & 0x4f) == 0x46) { // read floppy_xfer(drive, logical_sector*512, BX_FD_THIS s.floppy_buffer, @@ -1334,25 +1338,25 @@ bx_floppy_ctrl_c::increment_sector(void) // values after completion of data xfer // ??? calculation depends on base_count being multiple of 512 BX_FD_THIS s.sector[drive] ++; - if (BX_FD_THIS s.sector[drive] > BX_FD_THIS s.media[drive].sectors_per_track) { + if ((BX_FD_THIS s.sector[drive] > BX_FD_THIS s.eot[drive]) || + (BX_FD_THIS s.sector[drive] > BX_FD_THIS s.media[drive].sectors_per_track)) { BX_FD_THIS s.sector[drive] = 1; if (BX_FD_THIS s.multi_track) { BX_FD_THIS s.head[drive] ++; if (BX_FD_THIS s.head[drive] > 1) { BX_FD_THIS s.head[drive] = 0; BX_FD_THIS s.cylinder[drive] ++; - } } - else { + } else { BX_FD_THIS s.cylinder[drive] ++; - } + } if (BX_FD_THIS s.cylinder[drive] >= BX_FD_THIS s.media[drive].tracks) { // Set to 1 past last possible cylinder value. // I notice if I set it to tracks-1, prama linux won't boot. BX_FD_THIS s.cylinder[drive] = BX_FD_THIS s.media[drive].tracks; BX_INFO(("increment_sector: clamping cylinder to max")); - } } + } } unsigned diff --git a/bochs/iodev/floppy.h b/bochs/iodev/floppy.h index 4886773a0..43941143f 100644 --- a/bochs/iodev/floppy.h +++ b/bochs/iodev/floppy.h @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////// -// $Id: floppy.h,v 1.20 2005-08-24 20:44:55 vruppert Exp $ +// $Id: floppy.h,v 1.21 2005-10-27 07:37:46 vruppert Exp $ ///////////////////////////////////////////////////////////////////////// // // Copyright (C) 2002 MandrakeSoft S.A. @@ -87,6 +87,7 @@ private: Bit8u cylinder[4]; // really only using 2 drives Bit8u head[4]; // really only using 2 drives Bit8u sector[4]; // really only using 2 drives + Bit8u eot[4]; // really only using 2 drives /* MAIN STATUS REGISTER * b7: MRQ: main request 1=data register ready 0=data register not ready