T H E   C R O S S   P L A T F O R M   I A - 3 2   E M U L A T O R
  
Current Release:
Bochs 2.8
bochs: think inside the bochs. 

  - Home Page
  - SF Project Page

Search

Get Bochs

  - Download Current
  - See All Releases
  - Disk Images

Support

  - Bochs Wiki
  - Bochs FAQ
  - Documentation
     - User Guide
     - Devel. Guide
     - Doc. Guide
  - Mailing Lists
  - Discussion Boards
  - SF Site Docs

Feedback

  - Bug Reports
  - Feature Requests

Development

  - Get Involved
  - View the Source
  - Patches
  - Tech Specs Pages

Resources

  - Bochs History
  - Bochs Links
  - Related Links
  - Screen Shots
A Window, Tux, and the BSD Daemon
Transcript of 6/19/2001 Bochs Chat

Those in attendance were: Bryce Denney (bryce), Greg Alexander (yakovlev), Donald Becker (Exodus/Psyon), Dave Poirier (eks), Todd Fries (fries), Tim Butler (uninet), daboy(daboj_awa), divad547, Rob Lemley (rjlemley), Peter, KWeisshar, eSoul, doug_, Moja
Elapsed Time: 4.1 Hours (5:49 PM - 10:05 PM PDT)



[19:49] bryce hi
[19:49] uninet Good Evening!
[19:50] *** yakovlev (~gwa@slip129-37-118-40.nc.us.prserv.net) has joined #bochs
[19:50] yakovlev hey bryce
[19:51] eks hi guys :)
[19:51] bryce can a few people turn on logging, just in case :)
[19:51] eks Value of LOG set to ON
[19:51] *** yakovlev (~gwa@slip129-37-118-40.nc.us.prserv.net) Quit (Quit: changing servers)
[19:51] uninet Bryce: do you know how to enable chat logging in GAIM? Perhaps I'm over looking it...
[19:52] bryce There's a little button to the right of the smiley faces, that I think is a miniscule picture of a log. :)
[19:52] uninet Thanks.
[19:52] uninet I'll attempt to make a copy then, that way I'll be able to immediately post our chat. :-)
[19:53] *** yakovlev (~gwa@slip129-37-118-40.nc.us.prserv.net) has joined #bochs
[19:53] *** Moja (~bofh@cs6625174-155.austin.rr.com) has joined #bochs
[19:54] *** divad547 (somebody@24-168-204-6.wo.cox.rr.com) has joined #Bochs
[19:54] yakovlev this should be much better.
[19:54] yakovlev anyone there?
[19:54] uninet I am.
[19:54] bryce hi
[19:54] divad547 hi
[19:54] yakovlev oh, good.
[19:54] Moja yo
[19:55] yakovlev Last time things were fast and furious pretty quickly.
[19:55] bryce is Psyon here, or just sleeping again? (Psyon camps out on this channel 24/7 usually, but I don't see him here.)
[19:55] bryce Greg, should we decide in advance where to try in case of a netsplit?
[19:55] yakovlev yes.
[19:55] yakovlev our current one is good.
[19:55] eks netsplit were common just a few hours ago
[19:56] bryce which is...
[19:56] yakovlev irc.ladns.com
[19:56] *** rjlemley (selma@dsl092-005-134.sfo1.dsl.speakeasy.net) has joined #bochs
[19:56] uninet What's a netsplit?
[19:56] yakovlev do /whois username
[19:56] *** eks|x (eks@HSE-MTL-ppp60070.qc.sympatico.ca) has joined #Bochs
[19:57] *** eks|x (eks@HSE-MTL-ppp60070.qc.sympatico.ca) has left #Bochs
[19:58] *** eks|x (eks@HSE-MTL-ppp60070.qc.sympatico.ca) has joined #Bochs
[19:58] *** eks|x is now known as eks|x_
[19:58] * yakovlev has a pretty good idea how to use nickserv.
[19:58] eks jeez.. irc.oasis-net.net is lagged..
[19:58] *** eks|x_ (eks@HSE-MTL-ppp60070.qc.sympatico.ca) Quit (Quit: Assembly: My blood, my life, my spirit)
[19:59] bryce eks: it's in the UK...
[19:59] bryce eks: maybe try irc.ladns.com
[19:59] yakovlev everyone who isn't on irc.ladns.com, change servers to save yourself from netsplits.
[19:59] yakovlev eks already left.
[19:59] eks bryce: that's my current server
[19:59] yakovlev oh, he's back.
[19:59] *** rjlemley (selma@dsl092-005-134.sfo1.dsl.speakeasy.net) has left #bochs
[19:59] bryce switching to ladns...
[19:59] *** bryce (~bryce@debussy.ne.mediaone.net) has left #bochs
[19:59] * yakovlev likes /server
[19:59] eks yakovlev: I used a clone ;)
[19:59] uninet brb. I went with newnet.net.
[20:00] *** rjlemley (selma@dsl092-005-134.sfo1.dsl.speakeasy.net) has joined #bochs
[20:00] yakovlev bryce was already on ladns!
[20:00] *** uninet (~tbutler@c1331724-a.schrls1.mo.home.com) has left #bochs
[20:00] *** bryce (~bryce@debussy.ne.mediaone.net) has joined #bochs
[20:00] *** ChanServ sets mode: +o bryce
[20:00] eks lol@bryce
[20:00] bryce :)
[20:00] yakovlev bryce, you were already on ladns, that's why I chose it.
[20:00] *** uninet (~tbutler@c1331724-a.schrls1.mo.home.com) has joined #bochs
[20:00] *** ChanServ sets mode: +o uninet
[20:01] bryce haha it picked it at random, I didn't even know which I was on :)
[20:01] yakovlev both you and at least one other person.
[20:01] eks :)
[20:01] uninet So which one did you want me to be on again?
[20:01] bryce sigh
[20:01] yakovlev that's what /whois bryce would do for you.
[20:01] eks uninet: irc.ladns.com
[20:01] bryce I'm telling you, /whois doesn't do anything in this client!
[20:01] yakovlev uninet: /server irc.ladns.com
[20:02] yakovlev what client, bryce?
[20:02] bryce gaim
[20:02] eks gaim ;)
[20:02] yakovlev ahhh, doesn't exactly have all of ircii?
[20:02] uninet eks: thanks.
[20:02] * yakovlev is using the real deal.
[20:02] * eks is using BitchX
[20:02] *** uninet (~tbutler@c1331724-a.schrls1.mo.home.com) has left #bochs
[20:02] Exodus hey
[20:03] Exodus Its me, Don
[20:03] Exodus heheh
[20:03] yakovlev it's a client Exodus.
[20:03] *** Exodus is now known as Psyon
[20:03] bryce Hey Don
[20:03] yakovlev Oh, cool.
[20:03] bryce Now that Don is here, shall we start?
[20:03] yakovlev looks like the gang is here.
[20:04] Psyon What are we starting?
[20:04] eks Psyon: chat session? ;)
[20:04] Psyon Hmm...
[20:04] Psyon dan
[20:04] Psyon damn
[20:04] Psyon I was hoping itw ould be a big party
[20:04] Psyon with bear and stuff
[20:04] * eks isn't the one wanting bear around..
[20:05] Psyon beer
[20:05] Psyon hehe
[20:05] Psyon oops
[20:05] Psyon I need a spell checker for mIRC
[20:05] *** eSoul (Chat-Zone@ACABEF78.ipt.aol.com) has joined #Bochs
[20:05] eks eheh
[20:05] eks wb eSoul
[20:05] eSoul Thanks
[20:05] eks eSoul: switch to irc.ladns.com
[20:05] eSoul aight, give me a few
[20:05] *** eSoul (Chat-Zone@ACABEF78.ipt.aol.com) Quit (Quit: ox: its more addictive then crack)
[20:06] bryce So we're #1 most active on source forge again today :)
[20:06] Psyon We are?
[20:06] Psyon wow!
[20:06] bryce 1300 downloads, 9800 page views yesterday
[20:06] divad547 maybe people watching for this chat...
[20:06] *** eSoul (Chat-Zone@ACABEF78.ipt.aol.com) has joined #Bochs
[20:06] bryce yeah right :)
[20:06] bryce I think it's people marvelling at the length of our bugs list....
[20:07] Psyon hehehe
[20:07] *** uninet (~tbutler@c1331724-a.schrls1.mo.home.com) has joined #bochs
[20:07] *** ChanServ sets mode: +o uninet
[20:07] eSoul hmm, about bugs, I have one, I think
[20:07] divad547 well, one bug I have seen : no-one apparently does a "make distcheck"...
[20:07] bryce what's that do?
[20:07] Psyon distcheck?
[20:08] divad547 verifies the distribution
[20:08] divad547 including that configure can be run from another directory
[20:08] Psyon heheh
[20:08] bryce is there a standard distcheck somewhere?
[20:08] bryce that we should stick into the makefile?
[20:08] divad547 it is part of autoconf/automake
[20:09] eSoul hmm, anyone ever used os/2 yet with bochs?
[20:09] bryce I use autoconf but not automake
[20:09] eSoul ...or tried?
[20:09] Psyon I have no experience with OS2 at all really
[20:09] * yakovlev could try.
[20:09] bryce host os2 or guest os2?
[20:09] yakovlev I'm not sure I'm in the mood, though.
[20:09] eSoul I tried, it hangs on boot up
[20:09] bryce hang ? freeze with no response?
[20:09] yakovlev I don't want to go through all 40 disks.
[20:10] eSoul Yea, no boot messages jsut the green text for the VGA bios
[20:10] yakovlev icky
[20:10] bryce hm, you may have to get into the debugger and turn on tracing to get any clue about that
[20:10] Moja hrm. sorry if this is a silly question, but why is this sample mini linux distro included with the bochs binaries so slow using linux as a host OS?
[20:10] eSoul and, for some reason, the green text is moved up one line, the V is cut of from V
[20:11] divad547 ok, alternative to distcheck : make another directory and do original_directory/configure, and then build....
[20:11] eSoul *Version
[20:11] uninet Moja: It's pretty slow in Windows too.
[20:11] eSoul anyway, ill be back in a few, supers done
[20:11] eSoul *suppers
[20:11] *** eSoul (Chat-Zone@ACABEF78.ipt.aol.com) Quit (Quit: ox: i greased montel's head)
[20:12] bryce moja: bochs is emulating every instruction, and that's why it goes very slowly. It doesn't take advantage of the fact that it's running linux in linux.
[20:12] yakovlev Actually, I found dlxlinux quite snappy, all things considered.
[20:13] bryce it loads fast compared to a full redhat install, that's for sure. smaller kernel, not much to set up during boot.
[20:13] Psyon I still love the fact that a search for "bochs win32" on yahoo brings up my page on teh top of the list :)
[20:13] uninet Yeah, I think it's really quite nice in the CVS as of June 9th...
[20:13] Psyon just something to piont out
[20:13] Psyon :)
[20:13] Moja bryce; ah. I installed bochs way back when & figured I'd give it a shot again today to see if it would be any faster than vmware. not sure if thats a dirty word around here :)
[20:14] bryce faster than vmware may be plex86's goal, but it's not possible for bochs.
[20:14] uninet Moja: It's a different kind of beast than VMware.
[20:14] yakovlev vmware is MUCH faster.
[20:14] bryce they take advantage of running intel instructions on an intel, so they can zoom compared to bochs (emulating everything)
[20:14] Psyon I wonder does bochs run inside VMWare?
[20:14] yakovlev I'd be amazed if it didn't.
[20:14] uninet Ps: That would be interesting.
[20:14] Psyon I should try
[20:15] yakovlev More interesting would be does vmware run inside bochs?
[20:15] Psyon I was gonna try for bochs in bochs untill i lost my Win95 image
[20:15] Moja yakovlev; that would probably be painfully slow
[20:15] yakovlev somebody said they did bochs inside bochs.
[20:15] yakovlev Moja: that's not the point.
[20:16] bryce bochs is not for speed. :)
[20:16] uninet yak: Do you know who did the bochs in bochs thing? I'd love to post a screenshot of that.
[20:16] Psyon http://prdownloads.sourceforge.net/bochs/bochs-1.2.1.win32.zip --- is that a source zip or binary?
[20:16] Moja yako; yeah, i guess I'm probably not the target audience. I just need some kind of 'doze implementation to run this one particular proprietary crapware app that my office forces me to use.
[20:16] yakovlev I thought I had seen one.
[20:16] bryce that's a binary ZIP
[20:17] Psyon ok
[20:17] uninet Moja: Plex86 is probably more what you are looking for.
[20:17] yakovlev come across on the list... maybe I'm mistaken.
[20:17] uninet Huh... I should look in the archives.
[20:17] Psyon Moja: why not Wine?
[20:17] Moja uninet; thanks, I'll go STFW on that
[20:18] uninet Moja: certianly.
[20:18] Moja psyon; unfortunately this one doesn't work with wine. tried it.
[20:18] uninet Good point Don, Wine has improved a lot as of late.
[20:18] bryce moja: what are you trying to run?
[20:18] Moja bryce; its called viewmail - integrated fax/voicemail, etc. app
[20:19] Moja so I can save my faxes, save my voicemails as wavs, etc.
[20:19] yakovlev mj: is it dos or windows?
[20:19] Moja its 'doze.
[20:20] yakovlev Yeah, I'd try plex86.
[20:20] bryce I think for simply running a Win application (assuming you have x86 hardware), vmware or plex86 or win4lin may be the easiest solution.
[20:20] bryce he needs modem support too, plex86's serial.cc is the same as ours and it's not perfect at this point
[20:21] Moja I'd been running vmware since it uses netbios over tcp/ip. I don't need modem support - just my NIC
[20:21] Psyon So who all here does Win32 programming? or am I the only one?
[20:21] yakovlev I think you're it.
[20:21] divad547 I do it when I must.... and despise it.
[20:21] yakovlev Although I have to muddle through the cygwin stuff sometimes.
[20:22] eks I try to avoid at all cost win32
[20:22] Psyon Ever done anything with ASPI?
[20:22] Moja heh, this is wild. The first time I installed bochs like 2 yrs ago it took me 1/2 a day to get it working. Today I snagged an RPM and was rocking in ~5 mins.
[20:22] yakovlev ASPI? Don't you just love computer culture?
[20:22] Psyon Advanced Scsi Programming Interface
[20:22] uninet Moja: Aren't Binaries great?
[20:23] bryce even if we only have one brave enough to program win32, it should be noted that 3 times more windows ZIPs have been downloaded than linux RPMs or source tars.
[20:23] Psyon Yako: even though it is the SCSI interface... it allows you to read sectors from an IDE cdrom also
[20:23] Moja uninet; aye. Although the first time I installed, it wasn't the compilation that got me - that always worked okay.
[20:23] yakovlev Ahhh, I see.
[20:24] Psyon Yako: and you should know why I need to read those damn cdrom sectors
[20:24] bryce :)
[20:24] yakovlev So, we're only going to support ATAPI?
[20:24] uninet Moja: yeah, the DLX-Linux configuration out of the box really speeds up the time it takes to launch bochs.
[20:24] Psyon No
[20:24] Psyon it will read SCSI or IDE
[20:24] Psyon interchangeably
[20:24] yakovlev Oh, okay.
[20:24] Psyon ASPI makes the IDE devices look like a SCSI device
[20:25] bryce psyon: does it work in win95/98 and later too?
[20:25] divad547 any IDE or IDE ATAPI ?
[20:25] Psyon It works in All versions of Windows
[20:25] bryce excellent
[20:25] Psyon but I will still use the current method for NT/2k
[20:25] Moja uninet; yeah. Other than the fact that for some reason my redhat machine didn't want to add that damned vga font, it was practically instantaneous.
[20:25] Psyon Div: there are a few older IDE drives that dont like ASPI
[20:25] Psyon but most should work
[20:25] Psyon its better than none
[20:26] Moja heres one for the FAQ: after running mkfontdir, do xset fp+ /path/to/misc
[20:26] divad547 right. ATAPI is SCSI commands over IDE, so a SCSI driver can do ATAPI drives too.
[20:26] Moja even if /path/to/misc appears to already be in your font path *boggle*
[20:26] bryce ok
[20:27] Psyon The other option is to make a DLL that thunks to a 16bit DLL... the problem I have with that is a.) two dlls, that I dont want b.) not everyone has a 16bit compiler or thunk.exe
[20:27] Psyon Thunk = Calling 16bit code from 32bit programs
[20:27] Moja anyway. Thks for the advice folks.
[20:27] *** Moja (~bofh@cs6625174-155.austin.rr.com) Quit (Quit:
[BX] The Borg use BitchX. It will be assimilated. Shouldn't you?)
[20:28] yakovlev Probably not good for future MS OSen either
[20:28] *** daboy (~daboy@lnk2-bfrost-gw.binary.net) has joined #bochs
[20:28] Psyon New versions of windows should be able to use the current way of reading the cdrom
[20:28] Psyon if you open \\.\d: where d is your cdrom
[20:28] Psyon you can read the sectors
[20:28] uninet yak: You have a point there. WinXP doesn't support any (or nearly any) 16-bit code, AFAIK.
[20:28] Psyon actually you can do it for any drive letter
[20:29] Psyon that is how the floppy drive is done also
[20:29] divad547 I have a patch that allows a CDROM image to be used instead of a real CDROM drive. seems to work...
[20:29] bryce does Calvin's patch (in CVS now) work for win? Has anyone tried the CVS version on that?
[20:29] bryce all it does is convert "d:" to "\\.\d:"
[20:29] bryce and leave other file names alone, I think
[20:30] Psyon ahhh
[20:30] Psyon heheh
[20:30] daboy hi
[20:30] daboy i don't have a bunch of time...
[20:30] bryce hi daboy
[20:30] daboy but i wanna say...
[20:30] eks bryce: I don't want to be obstrusive, but shouldn't we first start by what was on topic?
[20:30] daboy I WANT FPU
[20:30] daboy :P
[20:30] daboy and i want to see the registers
[20:30] daboy and i want float data types :)
[20:30] bryce you have FPU
[20:30] yakovlev We have fpu.
[20:30] Psyon bryce: could just make it so you specirfy \\.\d: in the bochsrc
[20:30] daboy yes, but i can't see the registers
[20:30] Psyon then dont have to worry about tranlating
[20:30] Psyon hehe
[20:30] daboy and i can't display memory as a float
[20:31] yakovlev That's being worked on.
[20:31] daboy oki :)
[20:31] bryce do you know of any code that translates the hex into the right kinds of data?
[20:31] bryce as in free software to use as an example...
[20:31] Psyon that translates Hex into what?
[20:31] yakovlev As far as memory as float: learn perl.
[20:31] *** daboy is now known as daboj_awa
[20:32] bryce eks help me out!
[20:32] Psyon ?
[20:32] bryce the FPU has different formats for double precision float, single precision float, etc.
[20:32] bryce but of course in hardware it's all binary
[20:32] Psyon im not familiar with the FPU code
[20:32] bryce so when we display the FPU stack in the debugger or something
[20:32] Psyon sorry
[20:32] Psyon hehe
[20:33] bryce it's useful to print it in nice floating point form
[20:33] bryce daboy, is that what you mean?
[20:33] eks bryce: using 'scanf' you can convert to any C type format, using %something you can print them in any other format
[20:33] *** eSoul (Chat-Zone@AC85C638.ipt.aol.com) has joined #bochs
[20:33] Psyon OH! One other thing I wanted to bring up
[20:33] Psyon ok....
[20:33] Psyon I made my HD Image
[20:33] Psyon booted from a Win98 boot disk image
[20:33] eks bryce: the thing about printing them in a nice float form is the actual 'sharing' of fpu stack between fpu/mmx/sse/3dnow
[20:33] Psyon fdisked the drive in bochs
[20:33] Psyon and formated
[20:33] Psyon but mtools wont recognize it
[20:33] bryce eks: even from whatever 80-bit binary junk is in the floating point registers on an intel machine??
[20:34] *** eSoul (Chat-Zone@AC85C638.ipt.aol.com) Quit (Quit: Read error: 250hb/m (Excessive heartbeats per minute))
[20:34] eks bryce: nope, this you will have to handle yourself afaik
[20:34] bryce mtools for win32.
[20:34] Psyon yeah
[20:34] Psyon thats what I used
[20:34] bryce eks: that's what I was asking him about ... :)
[20:34] eks bryce: if I'm not mistaken, the AMD optimization manuals do come with a routine to do that
[20:34] bryce never tried it!
[20:34] bryce eks: somebody with a manual, type it in!
[20:35] bryce who has used mtools on any system?
[20:35] bryce I always mount the disk images with loopback
[20:35] * yakovlev has, a while back.
[20:35] Psyon Mtools doesnt handle the disk iamges like bochs
[20:35] Psyon or something
[20:35] Psyon maybe they are one byte off
[20:35] Psyon i dont know
[20:35] bryce but it's hard with a hard drive partition, because the first 32256 bytes are the boot track
[20:35] * eks doesn't have the manuals, but know that such code is in it
[20:36] bryce that's why I did the split hard disk thing, so the boot track could be in img0 and the rest could be in img1. THen I can mount img1 with loopback.
[20:36] Peter Pyson: I don't know if this would help but i had the same problem. It was due to me writing the wrong harddrive specifications in the .bochsrc file
[20:36] yakovlev No, mtools recognizes partitions.
[20:36] bryce ok
[20:37] yakovlev You have to tell it which partition you want.
[20:37] Psyon Peter: Im pretty sure they were the same
[20:37] bryce has anyone had trouble with bximage making an unusual disk geometry?
[20:37] yakovlev I haven't used bximage.
[20:38] bryce AFAIK it's always legal, but for small disks it's definitely different from what a normal disk would have.
[20:38] Psyon I havent used it yet
[20:38] uninet Yako: you should try it - it makes creating disk images and configuring them a really simple job.
[20:38] Psyon been too focused on this ASPI cdrom thing
[20:38] *** KWeisshar (vze26rvn@adsl-138-89-120-162.nnj.adsl.bellatlantic.net) has joined #bochs
[20:38] Psyon havent looked at the new binaries
[20:39] bryce bximage comes with bochs now, and it's supposed to make disk images for you. You say "I want a 99 meg hard disk" and it makes one, and gives you the diskc line that you need to use.
[20:39] bryce makes various size floppies too
[20:39] KWeisshar is there any way to accesss the floppy and cd-rom drive directly when running bochs under win98 or windows me
[20:40] Psyon Im working on that
[20:40] *** rjlemley (selma@dsl092-005-134.sfo1.dsl.speakeasy.net) Quit (Quit: [x]chat)
[20:40] Psyon KWeisshar: Win98/Me do not provide a direct way to access the cdrom sectors
[20:40] KWeisshar what about floppy sectors
[20:40] Psyon nope
[20:40] Psyon well...
[20:40] Psyon kina
[20:40] bryce floppy: you can grab the whole floppy into a disk image, and read the disk image.
[20:41] bryce (what's the win32 tool for that, like inverse of rawrite?)
[20:41] Psyon Umm...
[20:41] Psyon dont know
[20:41] divad547 rawread I believe
[20:41] Psyon Rawwrite.exe
[20:41] Psyon heheh
[20:41] Psyon rawwrite for windows will do it
[20:41] bryce does it do reading too??
[20:41] eks bryce: I prefer partcopy from John Fine
[20:41] eks http://erols.com/johnfine/pcopy02.zip
[20:41] *** Psyon sets mode: +o yakovlev
[20:42] bryce Calvin Smith also said www.winimage.com has a good image manipulation tool
[20:42] *** Psyon sets mode: +o fries
[20:42] eks you can byte-align transfer anything to/from floppies
[20:42] KWeisshar how do i create an image from the cd-rom to use with bochs
[20:42] bryce psyon: shouldn't we be grabbing the source of rawrite or whatever tools like that?
[20:42] bryce they may have already solved your problem?
[20:42] Psyon Rawrite for win is in Delphi
[20:42] Psyon and it uses the thunk method
[20:43] Psyon Which I dont like
[20:43] bryce is it open source?
[20:43] Psyon there is a halfway direct way to access the floppy with API calls
[20:43] Psyon you can use a call to DeviceIoControl() to do Int 13 calls
[20:43] Psyon it will only work on floppies though from what I can tell
[20:43] bryce ok
[20:43] bryce anyone know cdrom image tools?
[20:43] Psyon MS just doenst like to tell you that
[20:44] bryce I would think some CDwriter software would grab an ISO image off of a cdrom...
[20:44] Psyon bryce: ive been trying to find some tools to make cdrom images that are opensource... would help me learn how to read the sectors
[20:44] Psyon Most cd burning softwar
[20:44] KWeisshar does bochs support cd-rom iso image
[20:44] Psyon has a proprietary format though
[20:44] Psyon I think the .BIN from cue/bin formats are closes
[20:44] Psyon not sure though
[20:44] Psyon actually
[20:44] Psyon the ISO format should be the same
[20:44] bryce KWeisshar: the latest CVS version can read an ISO image on windows
[20:44] yakovlev support is in win32 for iso images, but it's only checked in CVS.
[20:45] bryce we don't have binaries of it yet, it only came in last week
[20:45] yakovlev bryce: how hard would it be to port the iso image code over to linux?
[20:45] bryce it looked like all that patch did was comment out the parts that tried to eject the disk, etc.
[20:46] bryce I haven't tried it in unix to see what the pitfalls are.
[20:46] bryce but if it's just commenting out ioctls, I volunteer :)
[20:46] bryce (making them conditional I should say)
[20:46] yakovlev I suspect it's something like that, although I don't know.
[20:46] bryce it's still on the feature list....
[20:47] bryce KW: did that answer your question?
[20:47] bryce you either need to compile the CVS snapshot, or wait for a release with binaries for windows, I think
[20:47] * yakovlev wishes he had emacs under cygwin.
[20:47] KWeisshar if i get the cvs version, do i need to compile it
[20:47] bryce yes
[20:47] KWeisshar what compiler do i need to compile the win32 version
[20:48] bryce vc++ or cygwin
[20:48] KWeisshar i don't have any win32 compiler
[20:48] yakovlev Hmmm, I wonder if iso images would work under cygwin?
[20:48] Psyon You can get a free one from borland
[20:48] uninet bryce: could you use GCC under Win32 to compile it?
[20:48] uninet (I think I might have asked that before)
[20:48] yakovlev I don't know if it's been tried.
[20:49] bryce isn't that what the cygwin compiler is? gcc
[20:49] bryce or is there something else "gcc under win32"?
[20:49] yakovlev I assumed be meant more like djgpp
[20:49] uninet There is a GCC port that is suppose to avoid needing cygwin binaries.
[20:49] Psyon Borland gives away Borland C++ 5 now
[20:49] Psyon its an 8mb download
[20:49] uninet Yak: I think that is what I mean. :-)
[20:50] KWeisshar vc++ is expensive
[20:50] yakovlev I don't know if you'd have the required includes, etc.
[20:50] yakovlev cygwin is free, but big.
[20:50] Psyon if borland dosnt have the includes... you can get teh SDK from MS
[20:50] Psyon and it has them
[20:50] Psyon last I checked
[20:50] KWeisshar i have seen retail version of cygwin for windows nt and it's expensive
[20:50] Psyon commercial version of cygwin?
[20:50] divad547 is cygwin GCC still tainted with GPL?
[20:51] KWeisshar there is a retail version of cygwin in staples, what does the retail version include
[20:51] uninet divad: what do you mena "tainted" with GPL?
[20:51] yakovlev Retail version?
[20:51] Psyon Staples?
[20:52] Psyon Hmm... If staples carries it I can have my buddy get me a copy
[20:52] bryce I think we should move on. We can talk about compilers and platforms forever (and open source licenses) ...
[20:52] yakovlev I download it from sources.redhad.com/cygwin
[20:52] KWeisshar it costs aabout $100
[20:52] divad547 last time I looked, the cygwin support libraries where GPL without the exceptions in GCC's libraries.
[20:52] yakovlev redhad-redhat
[20:52] divad547 so anything you built with cygwin had to be GPL.
[20:52] bryce Greg, do you want to describe your work on the networking front?
[20:53] Psyon yes
[20:53] Psyon please
[20:53] Psyon Id like to hear about that
[20:53] uninet divad: Ah... good for open source, but I wonder if Bochs would qualify as a LGPL app?
[20:53] yakovlev Hmmmm, I'm not sure I like that interpretation, but anyways.
[20:53] yakovlev Is bochs lgpl?
[20:53] bryce bochs is LGPL
[20:54] yakovlev Oh, cool.
[20:54] divad547 LPGL? it can be linked to?
[20:54] yakovlev Not that there's much to link it with.
[20:54] yakovlev YET
[20:54] bryce Kevin had ways of building bochs as a library
[20:55] yakovlev Networking: I discovered that the NE2K won't work under linux.
[20:55] bryce :)
[20:55] yakovlev (linux client)
[20:55] Psyon why wont NEk2 work under linux?
[20:55] bryce you mean that the NE2K is missing some features that linux requires, right?
[20:55] yakovlev or (so I hear) with a windows client.
[20:55] bryce we need to get the NE2K docs and add the features.
[20:55] yakovlev Peter sent them to me.
[20:56] bryce cool I want one too :)
[20:56] *** doug_ (~none@pc-62-31-74-146-ed.blueyonder.co.uk) has joined #Bochs
[20:56] yakovlev It's a big pdf off of... let me look.
[20:56] bryce So do you mean emulated NE2K will never work in linux, or that NE2K doesn't work now?
[20:56] bryce (you can send it later, no hurry)
[20:57] yakovlev it doesn't work now.
[20:57] bryce ok
[20:57] yakovlev it'll need some improvement.
[20:57] bryce but it did work in OpenBSD because of driver differences.
[20:57] yakovlev Once I realized that was the problem, I tested under openbsd.
[20:57] yakovlev I got an ARP response accepted, which I feel is a big step.
[20:58] bryce what is your goal? is it turning ethernet into PPP packets and back? or getting the ethernet packets into slirp?
[20:58] Psyon if you guys can develop the emu NIC interface with some functions like WritePacket and ReadPacket or soemthing
[20:59] Psyon I can make the code to send the packets in Win32
[20:59] bryce psyon: that's already there
[20:59] yakovlev I looked at tinytcp, it's one heck of a lot simpler that slirp.
[20:59] Psyon it is?
[20:59] Psyon I really need to look closer at the source
[20:59] Psyon hehehe
[20:59] bryce you just need to write iodev/eth_win32 based on iodev/eth_fbsd.
[20:59] bryce greg: that's good
[21:00] Psyon Again... the problem with the way this needs to be done is that it cant be compiled by everyone
[21:00] Psyon you would have to have the DDK
[21:00] bryce device driver kit = ddk I believe
[21:00] Psyon Driver Development Kit
[21:01] bryce psyon, can you build the win32 specific stuff as a DLL and we can link to and distribute the DLL without having to recompile it?
[21:01] yakovlev I'm thinking what I'll do is use that as a basis, but hand-code some TCP code.
[21:01] yakovlev The real problem is that means no UDP== no DNS
[21:01] *** KWeisshar (vze26rvn@adsl-138-89-120-162.nnj.adsl.bellatlantic.net) has left #bochs
[21:01] bryce greg: yes, that's bad
[21:02] bryce is it a lot harder to translate ethernet to real PPP?
[21:02] Psyon So what NIC does that emulate?
[21:02] yakovlev what NIC does what emulate?
[21:02] bryce psyon: the emulated NIC is NE2K in all cases (so far)
[21:02] Psyon I mean like if Win95 deteced it... what would it come up as
[21:02] bryce all this other stuff is trying to answer the question fo
[21:02] yakovlev There's a generic packet interface.
[21:02] bryce of "How do we get the packets to the real world"
[21:03] Psyon Under Win32 you make an NDIS Protocol driver that can be loaded at run time
[21:03] Psyon that is how all packet capture libs for Win32 work
[21:03] yakovlev If all ppp wrapper is is basically a wrapper around an IP packet, converting to PPP is easy.
[21:03] yakovlev except for all the connection headache.
[21:04] bryce it seems like converting to PPP is a benefit because you have the option of either REAL PPP or slirp (emulated PPP)
[21:04] *** daboj_awa (~daboy@lnk2-bfrost-gw.binary.net) Quit (Quit: [BX] Get your free warez from ftp://127.0.0.1!)
[21:04] yakovlev Psyon: the interface is: send(char*, len) rxh(char*, len)
[21:04] bryce psyon: with the sendpacket/readpacket method, is there any chance that the kernel can see the packet, or does it go directly out to the physical network?
[21:05] Psyon directly to network im guessing
[21:05] bryce that's the problem with the fbsd implementation
[21:05] Psyon Never looked into it a lot
[21:05] bryce take a look at http://bochs.sourceforge.net/networking
[21:05] bryce Peter Grehan drew some diagrams of the different options
[21:05] Psyon http://www.rawether.net/ --- wonder if they would make a license donation to the project
[21:05] bryce packet filter is what is done now (see pkt_filter.gif)
[21:06] Psyon I have enought sample drivers
[21:06] Psyon to make my own
[21:06] Psyon so im not actually worried about it
[21:06] yakovlev slirp is going to be a pain to get compiling on non-gnu machines.
[21:07] bryce greg: what kind of code is gcc specific?
[21:07] yakovlev I wish I knew.
[21:07] yakovlev I can't tell what is supposed to come from where.
[21:07] yakovlev so I don't know why my compiler won't compile it.
[21:07] bryce so you have major compile problems on aix?
[21:07] yakovlev Yup.
[21:07] bryce ok
[21:08] yakovlev And it's not like bochs where I could look and see what it was complaining about.
[21:08] bryce I can try on a few different systems (compile farm at SF, testdrive)
[21:08] bryce if you want
[21:08] yakovlev What all does slirp do, anyways?
[21:08] Psyon http://netgroup-serv.polito.it/winpcap/
[21:09] yakovlev I'm not totally clear on that, so I'd like to have an idea.
[21:09] bryce slirp takes a PPP or SLIP packets on one side
[21:09] bryce (usually talking through a modem to your home machine)
[21:10] bryce and turns those packets into TCP/UDP/ICMP code
[21:10] bryce It can run as a normal, non-root user, and give a similar
[21:10] bryce effect to having a real PPP connection.
[21:10] bryce So it is like a user-mode PPP substitute.
[21:11] yakovlev I don't understand how it can be done for UDP/ICMP
[21:11] yakovlev (incoming, that is)
[21:11] bryce I'm not sure
[21:11] bryce UDP, you can bind a port right?
[21:11] yakovlev Outgoing is easy.
[21:11] yakovlev Right, but that's not transmitted.
[21:12] bryce maybe you have to configure it to redirect port X on the slirp machine to port Y on the remote?
[21:12] bryce You can't bind a reserved port as a user anyway, so I think you would have to have a port mapping like that in any case.
[21:12] yakovlev I know that's what you have to do for TCP.
[21:12] *** eSoul (Chat-Zone@AC9210B6.ipt.aol.com) has joined #bochs
[21:12] yakovlev So, this still doesn't explain how you get DNS.
[21:12] bryce slirp is a big unknown still
[21:12] bryce DNS outgoing?
[21:13] yakovlev DNS responses.
[21:13] bryce slirp sees the UDP packet coming in from the PPP line
[21:13] bryce it opens a UDP port to send that response on behalf of the remote PPP guy
[21:13] yakovlev Right, and send it to the DNS server, easy so far.
[21:13] Psyon Why cant we use libpcap for the linux part?
[21:13] Psyon it lets you send and recv packets
[21:13] yakovlev How does it come back?
[21:14] Psyon or base it off the code
[21:14] yakovlev UDP is connectionless.
[21:14] bryce collects the response from the real server, and then puts the UDP response back on the PPP line
[21:14] yakovlev Does it return it to the source port?
[21:14] bryce Psyon: pcap is a packet filter solution, which will not talk to the host OS kernel, so it's incomplete...
[21:15] bryce see http://bochs.sourceforge.net/networking/pkt_filter.gif" for a diagram
[21:15] bryce greg: why not?
[21:15] Psyon Why does it need to talk to the host kernel? oh! for host client communications?
[21:15] bryce uhhhhhh yeah!
[21:15] * yakovlev needs to reread the DNS RFC.
[21:16] Psyon brb gotta cook
[21:16] bryce greg: me too :) but a normal user process can get DNS responses back. I don't know what port it uses....
[21:16] bryce you don't need root to look up a DNS number, so there has to be a user-mode solution to that.
[21:18] bryce Should we at least sum up the "big picture" on networking?
[21:18] bryce There are 6 or so different proposals listed at http://bochs.sourceforge.net/networking/bochs-network-planning.txt with pros and cons
[21:19] bryce these came from conversations with lots of people
[21:19] yakovlev Okay, what we have people working on:
[21:19] bryce and all of our talk about slirp and PPP is related to #3 and #4
[21:20] yakovlev I'm working on getting a home-grown sockets approach and have looked at converting ethernet to PPP
[21:20] yakovlev I'm uncomfortable with the PPP RFC is the main problem with setting that part up.
[21:21] divad547 you might consider SLIP instead of PPP....
[21:21] bryce how are they different? I really don't know
[21:21] divad547 SLIP is much simpler, but only does IP.
[21:21] bryce what other protocols does PPP do?
[21:21] divad547 I think PPP can do anything...
[21:22] bryce arp?
[21:22] divad547 also may be able to wrap the MAC addresses..
[21:22] bryce does arp only exist on ethernets?
[21:22] yakovlev I'm not sure.
[21:22] divad547 ARP only needs to exist on protocols with addresses...
[21:22] divad547 not needed in point-to-point protocols like PPP and SLIP
[21:23] yakovlev Yeah, PPP is point-to-point.
[21:23] bryce what's the right term for the level of protocol that ARP exists on? How about IP, PPP, SLIP?
[21:24] yakovlev It's not really clear.
[21:24] yakovlev What is the protocol field in PPP?
[21:25] yakovlev Is it it's own meaning, like ether_type, or does it match another protocol field?
[21:25] divad547 I don't know...
[21:26] bryce I have "Internetworking with TCP/IP Principles Protocols and Architecture" on my shelf, and I never thought I would read it. But maybe I should. :)
[21:27] bryce Does everybody understand the problem with the packet filter approach that eth_fbsd and eth_* currently use?
[21:27] bryce Peter explained that to me, so I can try to pass it on if necessary.
[21:27] bryce (Peter Grehan, who wrote ne2k code)
[21:28] divad547 is that the method 2 version?
[21:28] bryce yes
[21:28] bryce and also diagram http://bochs.sourceforge.net/networking/pkt_filter.gif
[21:28] yakovlev are 0-1024 reserved in UDP?
[21:29] divad547 I believe so, 0-1023.
[21:30] bryce I think the quickest (not highest performance) way to get networking in Bochs is by fixing up serial.cc and running PPP/SLIP on both the guest OS and the host OS.
[21:30] bryce I really think this should be done soon, since
[21:31] bryce looking at the packets that come out of that
[21:31] bryce will help to debug all the other protocol tricks
[21:31] bryce that Greg and others want to do.
[21:32] *** eks (eks@HSE-MTL-ppp60070.qc.sympatico.ca) Quit (Ping timeout for eks
[HSE-MTL-ppp60070.qc.sympatico.ca])
[21:32] bryce (that is #6, if you're counting)
[21:32] divad547 not sure anyone wants to consider this, but: one could create a new particularly simple pseudo-device and write device drivers for it.
[21:33] bryce Is that #1 Emulated NE2K + virtual ethernet driver ?
[21:33] bryce a kernel module
[21:33] eSoul Hmm, I was thinking of a internet connection idea for bochs, how about making a NIC card driver that you would install in bochs, that would allow use of the host machines internet connection?
[21:33] divad547 actually, I was thinking something simpler that NE2000.
[21:34] bryce eSoul: do you mean a guest OS specific driver?
[21:34] eSoul yea
[21:34] eSoul It would almost have to be
[21:34] bryce can be done, but it's not nearly as attractive as tackling all guest oses at once....
[21:34] eSoul Yea, true
[21:35] bryce if you want a guest OS specific driver, I think you can grab code from user-mode-linux and several other places
[21:35] divad547 guest OS specific driver would help in part for speed...
[21:35] bryce yes
[21:35] eSoul but there are just too many
[21:35] bryce but we don't have any lower-speed alternative for all those other OSes yet
[21:35] fries hi
[21:35] bryce Hey Todd!
[21:35] fries brb
[21:36] yakovlev Ahhh, got it!
[21:36] yakovlev UDP is transaction oriented.
[21:36] *** KWeisshar (vze26rvn@adsl-138-89-120-162.nnj.adsl.bellatlantic.net) has joined #bochs
[21:36] KWeisshar what compiler should i use to compile bochs under win98
[21:36] Psyon Borland C++ 5
[21:36] Psyon or CYGWin
[21:36] Psyon or Visual C++ if you have it
[21:37] bryce it compiles with no effort on VC++
[21:37] Psyon Actually....
[21:37] bryce and cygwin
[21:37] Psyon no one has eer compiled in Borland
[21:37] Psyon have they?
[21:37] bryce they haven't told us about it
[21:37] eSoul I would really like to see Direct cd access in bochs for Win32, so i can install linux, along with some other apps
[21:37] KWeisshar how much is visual c++
[21:37] yakovlev Cygwin is free.
[21:38] KWeisshar i don't have any compilers because i'm not a developer
[21:38] Psyon You can get a version of VC++ for about $100
[21:38] KWeisshar i just want to try out bochs
[21:38] uninet Try the binary then.
[21:38] bryce KWeisshar, please try a binary distribution of version 1.2.1
[21:38] KWeisshar i tried the pre-compiled binaires and it only runs dlxlinux
[21:39] bryce no, that was only a demo
[21:39] uninet it will run more, you just need to add more disk images.
[21:39] KWeisshar the reset button doesn't reboot, it shuts down bochs
[21:39] Psyon HEY! thats what I need to find... ther is an open source PSX emu for Windows that reads raw cdrom sectors
[21:39] yakovlev CVS just has the bleeding edge stuff.
[21:39] KWeisshar why isn't warm boot working
[21:39] uninet KW: it isn't implemented.
[21:40] fries kweisshar hah it runs more than dlxlinux I used cygwin myself to run openbsd on win32
[21:40] uninet Don: good thinking. there's a psx emu for Win?
[21:40] eSoul Psyon, that sounds awesome
[21:40] bryce KWeisshar, we've been trying to make warm boot right for all OSes. Until it does, the reboot button will just quit.
[21:40] yakovlev What should the reboot button do?
[21:41] yakovlev What does it do on real machines?
[21:41] yakovlev I always assumed it basically pulled reset on all the chips.
[21:41] KWeisshar when you reboot the bios jumps to ffff:0000
[21:41] fries bryce reboot quit? hmm? Ithought I made it reboot ;-)
[21:41] KWeisshar ffff:0000 is a jump instruction to the bios initialization routine
[21:42] KWeisshar it's 5 bytes
[21:42] bryce bochs's problem with reboot is resetting all the I/O devices
[21:42] bryce (pulling reset on all the chips)
[21:42] bryce it's not JUST jumping to rom again
[21:42] uninet bryce: what about just killing the current process after forking a new copy of bochs when the reboot button is pressed?
[21:43] bryce Todd: in CVS it tries to reboot, but it never works for me. So in the 1.2 branch I reverted those reboot changes to make it panic again, since that was the only way to make it work consistently.
[21:43] yakovlev Which devices won't accept init a second time?
[21:43] bryce there's just no code yet to call init on them again, I think.
[21:43] bryce it doesn't sound hard at all
[21:43] fries yakovlev: OpenBSD hangs on reading the floppy 2nd time around, and usually floppy doesn't respond either
[21:44] fries but bryce is right, no uniform methodology on reboot exists, its just 'reset a few things and hope for the best' right now which really doesn't work well
[21:44] bryce I think it would be safest to call init (or reset or whatever) on every single device
[21:44] bryce and try to get all of them back to their "I just ran bochs" state
[21:44] bryce rather than try to emulate a soft boot exactly
[21:45] uninet Is there any real need to have a "real" soft boot in bochs?
[21:45] KWeisshar why not just have reboot reinitialize bochs
[21:45] bryce that's what I'm saying
[21:45] KWeisshar it's only an emulator
[21:45] uninet KW: that's what I was thinking with forking the process.
[21:46] bryce uninet: I don't see any use. fork copies the existing process, it doesn't reload the startup values.
[21:46] yakovlev Forking the process is awkward.
[21:46] yakovlev I mean, we could just quit and tell the shell to rerun bochs!
[21:46] bryce yeah yeah
[21:47] bryce we just need to figure out which init code is not getting run
[21:47] bryce and run it!
[21:47] bryce the main problem is, there are so many bugs on the stinking list that this has not come anywhere near the surface.
[21:47] divad547 extra point - reset doesn't actually clear memory...
[21:47] bryce right
[21:47] yakovlev So?
[21:47] KWeisshar the bios has to inialize the io devices
[21:48] yakovlev Would it be "wrong" if it did?
[21:48] divad547 so if the bios cooperates, a program can outlast a soft boot...
[21:48] uninet bryce/yak: gotcha.
[21:48] divad547 this is how a 286 gets back to real mode...
[21:48] fries
[21:49] KWeisshar i have a few old dos games and it just runs too fast when i run it natively on my pentium
[21:49] bryce Todd, that was just a blank line
[21:49] uninet divad: is there any useful program for a 386 or higher than needs to "live beyond" a reboot?
[21:49] eSoul KWeisshar, there are utitlites for that
[21:49] divad547 I have no idea.
[21:49] KWeisshar i have 300mhz but my old dos games was designed for 386
[21:49] yakovlev Oh, now I see.
[21:49] divad547 is that the point?
[21:49] yakovlev the bios used to be cooperative.
[21:49] KWeisshar i have the police quest collection
[21:49] fries kweisshar you can crank the ips
[21:50] eSoul KWeisshar, search google for abandonwarez, and you prolly run across utilities that slwo down your pc for games
[21:51] KWeisshar i tried moslo but it's still too fast
[21:51] yakovlev I remember having one to slow down my dad's 286 so I could run my XT games on it.
[21:51] KWeisshar i have trouble with the police quest 3 driving interface
[21:51] eSoul haha, slowing a 286
[21:51] yakovlev :)
[21:51] yakovlev Those were the days.
[21:51] KWeisshar i don't have a turbo button
[21:51] bryce we have a feature request [ #418731 ] bochs uses 100% CPU which is related to the too fast problem
[21:51] eSoul KWeisshar, if you must use bochs, what is the problem that you cant install ms-dos?
[21:51] bryce one solution proposed to that problem is a
[21:52] bryce "maximum ips" setting
[21:52] Psyon im doing some researc... if you need me... /notice me so I get a ding or something
[21:52] KWeisshar i'm running windows me
[21:52] eSoul Why cant you install ms-dos in bochs?
[21:52] yakovlev He might not have a ms-dos license.
[21:52] yakovlev (had to be said)
[21:52] uninet What about FreeDOS?
[21:53] KWeisshar i don't have any ms-dos disks
[21:53] bryce maximum ips would look at the system time and notice if bochs is running faster than real time, and call "usleep" or something until real time catches up. This would solve Todd's keyboard repeat problem too.
[21:53] * eSoul wonders if Freedos would run Win3.1
[21:53] uninet bryce: that would be great! Is that hard to implement?
[21:53] uninet eSoul: I think so.
[21:53] eSoul KWeisshar, get the FreeDOS image from boch.sourceforge.net?
[21:54] eSoul *bochs
[21:54] yakovlev Are these 3.1 games or DOS games?
[21:54] KWeisshar dos games
[21:54] KWeisshar my collection is on cd-rom
[21:54] bryce uninet: I don't think it's hard, it may not do exactly what you want without a little work though...
[21:54] yakovlev Definitely try FREEDOS.
[21:54] KWeisshar it's called swat career pack and it includes pq1, pq2, pq3, pq4, swat1 and swat2
[21:54] uninet Or DR-DOS if that does work....
[21:54] * yakovlev has no idea why that was all caps.
[21:54] fries kweisshar you can use freedos, there's a demo download on the web page, or there should be ;-)
[21:55] KWeisshar how can i install a cd-rom game under freedos running in bochs
[21:55] KWeisshar the game is written for dos
[21:56] KWeisshar i can't install the game unless bochs can read either a raw cd-rom sectors or a cd-rom image
[21:56] yakovlev FreeDos is a freeware port of the DOS api.
[21:56] yakovlev not freeware.
[21:56] yakovlev free.
[21:56] KWeisshar is there any utility to create a cd-rom image that is compatible with bochs
[21:56] divad547 I use "dd"
[21:56] fries have to load a cdrom like a real
[21:56] fries cdrom
[21:57] bryce Todd, what goes wrong if you try to read from an ISO?
[21:57] eSoul is there a program that could copy files into a image that could be read as a hard disk image?
[21:57] yakovlev We're working on the CD-ROM.
[21:57] divad547 Does bochs include El Torito support?
[21:57] fries haven't tried lately
[21:57] fries last time I tried, it had problems doing an ioctl to a file
[21:57] bryce El Torito: not at this point
[21:57] divad547 pity.
[21:57] bryce todd: we must try conditioning ioctls
[21:57] bryce that's all that was necessary for win32 apparantly
[21:57] fries cool
[21:58] bryce if (using_file==0) { ioctl... }
[21:58] KWeisshar will bochs support ioctl
[21:58] uninet El Torito is the spec that makes bootable CD's right?
[21:58] divad547 yes
[21:58] fries I did an '#if 0' around it and told it not to set ready=0 once, but it still didn't work beyond bochs being happy
[21:58] fries uninet yes and it requires bios asm/c coding
[21:58] KWeisshar what command do i need to put in bochsrc to use ioctl
[21:58] bryce kw: ioctl is a unix software thing, it only matters if you are running linux
[21:59] bryce or something
[21:59] KWeisshar dos uses msdos ioctl for diskcopy
[21:59] KWeisshar it's one of the int21 calls
[21:59] bryce I didn't know that
[21:59] bryce and does it fail?
[22:01] bryce Let's be sure to talk about GUIs as well...
[22:02] bryce Psyon, EKS, and I have been working (in different ways) on the GUI problem
[22:02] uninet GUIs... one of my favorite subjects to talk about that I can't implement!
[22:03] bryce is everybody still on? it's very quiet suddenly
[22:03] eSoul Im alive..
[22:03] divad547 end time....
[22:03] bryce :)
[22:03] uninet still here.
[22:03] bryce ok
[22:03] bryce I haven't heard from eks in the last hour
[22:04] yakovlev Bryce, I was looking at your parms interface.
[22:04] bryce what did you think?
[22:04] *** KWeisshar (vze26rvn@adsl-138-89-120-162.nnj.adsl.bellatlantic.net) has left #bochs
[22:04] yakovlev The big problem I see is that you still use an enormous parser.
[22:04] bryce did you call that thing a parser????
[22:04] fries ewww
[22:04] fries hehe
[22:05] fries parser re-write was on my subconscious list of todo items
[22:05] divad547 simplistic one perhaps....
[22:05] fries after I finish getting the io code to what I envision it can be
[22:05] bryce I don't see that as a problem with the parameters
[22:05] yakovlev The parameters can do the parsing themselves.
[22:05] fries i keep trying to convince bryce of the generic container and he keeps coming up with static arrays for a quick solution,so I'd like to get one subsystem with a generic container (io stuff, my specialty) ..
[22:05] yakovlev In the handlers.
[22:06] bryce in fact I think we can use parameters to clean it up
[22:06] bryce right
[22:06] eSoul oh, btw, when trying to boot from a "Read-Only" disk image, you get a rombios.c error, just wanted to say you should add somewhere in documentation, that they cant be. This could be a common error when people are trying to boot linux using the images of the cd
[22:06] yakovlev They should really go in a hash table by name (the thing before the ':')
[22:06] bryce esoul: that's fixed now in cvs
[22:07] eSoul cool
[22:07] bryce esoul: write protected floppies are recognized as such
[22:07] yakovlev What about write-protected hard drives?
[22:07] bryce there's no hardware equivalent right?
[22:07] yakovlev Well, maybe a CD-ROM
[22:08] bryce so I think we should allow them to be opened, and just make the writes to it fail (log maybe)
[22:08] bryce cdrom is limited size
[22:08] yakovlev so is a HD.
[22:08] divad547 zip disks can be secured like floppies...
[22:08] bryce you want to use the IDE controller and all
[22:08] bryce divad: want to write an emulated ZIP drive?
[22:08] yakovlev Is there a ro bit in the IDE spec?
[22:08] eSoul Oh, also, for some reason in 1.2.1, my windows98 install disk finds a cd-rom drive, even when its not specified in bochsrc
[22:08] divad547 not really...
[22:09] bryce me either.
[22:09] bryce if there's a R/O bit in the IDE spec we'll implement it but I highly doubt it.
[22:09] bryce you really need it to appear as a hard drive
[22:10] bryce or else you have to run a guest os that allows booting from zip, cdrom, etc.
[22:10] bryce but it's just going to print errors into the bochs log when you try to write
[22:10] bryce I can't see any other way there
[22:10] divad547 is there any intent to allow more than 2 IDE devices? or to configure them by controller and device?
[22:11] yakovlev I suspect there is something like R/O in the spec, but I don't really know.
[22:11] bryce with some hacking at harddrv.cc, yes
[22:11] bryce should be not that hard to have 4 hard disks or 3 hard disks+cdrom
[22:11] bryce (and some hacking at rombios, but not major)
[22:11] bryce if it's not on the feature list, please add it.
[22:11] fries you can have more than 2 controllers, especially if you do ide
[22:12] fries you can even have multiple video cards with .. grr .. pci .. I meant pci not ide above ;-)
[22:13] bryce can we get back to GUIs please?
[22:13] bryce :)
[22:13] eSoul hah
[22:13] *** fries changes topic to 'bryce can we get back to GUIs please?'
[22:13] uninet :-)
[22:13] bryce Greg, other than the horrid parsing that's been there forever,
[22:13] bryce do you have any other comments about the parameter thing?
[22:14] yakovlev Well, it would be nice if we could define the parameter in one place, where it's used...
[22:14] fries I liked the hash suggestion, if you fit it in a container, you can store it however, and the big point I like is you don't have to know the size ahead of time, just link in objects and they'll all get init'ed ;-)
[22:14] bryce like in floppy.cc for floppy params?
[22:14] yakovlev and have it set up everything else.
[22:15] yakovlev right.
[22:15] bryce yes that would be best
[22:15] fries yakovlev: I updated bochs earlier this evening so that setparam("[VGA ]") is now setparam("VGA")
[22:15] fries it would be nice to enhance even rename setparam() to register the device class
[22:15] yakovlev You'd have to use a base class for that.
[22:15] fries rather than the backwards way its being done now, which is bx_devices pointing to static globals
[22:15] fries yakovlev: already done
[22:15] fries look at logio.cc
[22:15] fries there are iofunctions and logfunctions
[22:16] fries iofucnctions typically have one instance
[22:16] * yakovlev is talking about parms, not io functions.
[22:16] fries logfunctions are inherited by all device classes (and allocated a couple of places)
[22:16] fries listen to what Im saying ;-)
[22:16] fries you wanted to register things
[22:16] fries the logfunctions CLASS ..
[22:16] fries registers with 'setparam()' already TODAY ;-)
[22:17] fries so just add code to setparam()
[22:17] fries maybe it should be called register()
[22:17] bryce Todd: does it register using the string "vga" and then the class "this" ?
[22:17] bryce so that you can later look up the class pointer using the string "vga"?
[22:17] fries bryce: not yet but that's the goal
[22:17] * yakovlev is having a problem with bximage.
[22:18] fries bryce: this is the whole reason I said 'settype()' will go away
[22:18] bryce (greg, can we fix it later?)
[22:18] bryce ( :) )
[22:18] yakovlev No, you just asked if anyone had had any trouble, and I'm having one. :)
[22:18] bryce todd: ok, should all parameters also be registered by name too?
[22:19] fries bryce: parameters should be known to the class
[22:19] yakovlev I mean yes, we can fix it later.
[22:20] bryce ok, so floppy.cc will have a parameter or at least a pointer to a param for the floppy size, pathname, etc.
[22:20] fries bryce: aka the class should be an island of its own stuff
[22:20] bryce and then it registers that parameter by name, like "floppya:path" so that others can find it
[22:20] fries bryce: menus and guis and stuff should be able to discover what it has, its treasures so to speak
[22:20] fries it should not be hardcoded anywhere ;-)
[22:20] bryce rather than getting at it by "bx_floppy.path"
[22:20] bryce ?
[22:21] fries pseudocode:
[22:21] fries ... for each regsitered class
[22:21] fries ... for each config function found
[22:22] fries ... display option and choice, have a type of 'path' for floppy a and floppy b in the floppy class
[22:22] fries make sense?
[22:22] yakovlev type of string.
[22:22] yakovlev no reason to make it a path.
[22:22] fries well, you could have a bool of types
[22:22] fries kindof like a gui with registered methods
[22:23] yakovlev bool-pool, I assume.
[22:23] bryce type = path could mean that you edit it using a file-open box, rather than just a text field
[22:23] yakovlev Oh, I see.
[22:23] fries you could have a string of methods registration pool, but that gets hard to make work with most guis
[22:23] bryce todd wants a dynamic container for everything!
[22:23] fries why not?
[22:23] fries its more clean
[22:23] fries you can code a pci device
[22:23] bryce what did you mean by "for each config function found"?
[22:23] fries and have a dozen of them if you choose
[22:24] bryce how are you going to discover the config functions? and why several?
[22:24] fries bryce aka call something on the class .. getnextconfigfunction()
[22:24] eSoul brb, rebooting
[22:24] *** eSoul (Chat-Zone@AC9210B6.ipt.aol.com) Quit (Quit: ox: keyboard is disconnected or is not responding. press any key to reconnect it)
[22:24] yakovlev I would have a descriptor and a type for each parm.
[22:24] fries anyway, I'll read further discussion and respond later, bbl
[22:25] bryce greg: I don't understand what you mean...descriptor and a type
[22:25] yakovlev Here's what I would think (sort of like iofunctions)
[22:25] yakovlev bryce:
[22:25] yakovlev it's a string, or an int.
[22:26] bryce right now I have C++ classes for each type of parameter. bx_param_num_c, bx_param_bool_c, bx_param_string_c.
[22:26] yakovlev however, a string may be a choice from several options.
[22:26] yakovlev or a path
[22:26] yakovlev or whatever you want.
[22:26] bryce I would make bx_param_enum_c (choice from several options) and bx_param_path_c (a pathname)
[22:26] yakovlev If you're just dumping .bochsrc straight, you only care that it's a string.
[22:27] bryce enum inherits from num, and path inherits from string.
[22:28] yakovlev Depends on where you want to put the different parsing actions for a .bochsrc dump vs. a gui setup.
[22:28] bryce the reason I have different classes for different types is
[22:28] bryce that in a GUI (which one of these years we will be starting to write)
[22:28] bryce a different type of GUI object is used to display and edit each type of data
[22:29] bryce so a bx_param_enum (choice from several options) might be a drop-down box
[22:29] yakovlev But as a result it gets harder and harder to:
[22:29] yakovlev a.) parse .bochsrc
[22:29] yakovlev b.) hand write a .bochsrc
[22:30] bryce ?
[22:30] yakovlev If you're writing a quick and dirty port.
[22:30] bryce you need different code to parse an int, an enum, and a string
[22:30] bryce so putting that different parsing code in the same method ofdifferent classes seems logical
[22:30] bryce I don't see why it's harder?
[22:31] yakovlev What exactly are you planning for an enum?
[22:31] yakovlev Are you planning to pass it a string and it does the parsing for you?
[22:31] yakovlev or do you have to give it the number?
[22:31] bryce it has a get/set method that deals with ints
[22:31] uninet Is anyone else here still logging? I need to reboot.
[22:31] yakovlev Which means you have to figure out what your string matches.
[22:31] fries how can it be hard to do a .bochsrc if you have a 'toString()' method in each class? or something
[22:31] divad547 when we are talking about a "GUI" here, is this a configuration app or a display of the running system?
[22:32] bryce and the methods that display it on a GUI or on a console ask you which of the string options
[22:32] fries i am
[22:32] bryce uninet, I am logging too
[22:32] yakovlev But I don't want to display it on a GUI.
[22:32] yakovlev (playing devil's advocate)
[22:32] bryce you don't want to display the number, you want to display the string version
[22:33] uninet bryce: thanks.
[22:33] uninet brb.
[22:33] yakovlev I want to "DISPLAY" anything.
[22:33] fries so, parse the return chars to whatever .. 'char * toString()' ..
[22:33] bryce so that methods that are specific to UI tell the user the choices in terms of string version
[22:33] *** uninet (~tbutler@c1331724-a.schrls1.mo.home.com) has left #bochs
[22:33] yakovlev I'm talking FROMstring.
[22:33] bryce and then store the number
[22:33] bryce divad: I mean a configuration panel
[22:34] bryce divad: we want to leave the display of the running system alone (at least I do)
[22:34] yakovlev It's a lot harder to hand code an rc file if I have to know what number text=green is.
[22:34] bryce no no
[22:34] bryce nobody has to do that
[22:34] bryce the enum class has a list of the string choices
[22:34] bryce so it can convert string to number and number to string whenever it needs to
[22:35] bryce the enum class should be called to do this conversion, anytime it needs to be done
[22:35] bryce including parsing
[22:35] yakovlev Now: At what level?
[22:35] bryce and including building the GUI, and interpreting the user's response in the UI back into an int.
[22:35] yakovlev Can I pass it a line from .bochsrc?
[22:36] bryce we need to work that out
[22:36] bryce there are 10 ways to do it
[22:36] yakovlev You were saying you expected there to be a configuration program... did you expect that to be standalone?
[22:37] bryce at first, I think it's much easier for the configuration and control UI to be running in the same process, communicating by method calls
[22:37] yakovlev Well, it's VERY important that you decide that.
[22:37] bryce Now I think it's time to point to http://bochs.sourceforge.net/tmp/ui/ which I wrote up before this began
[22:38] bryce People have said that the UI should be separable, so I've tried very hard to make the UI talk only to a well-defined interface
[22:38] bryce called siminterface.h
[22:38] yakovlev If it's not standalone, there are some cool things we can do.
[22:38] bryce the text mode UI doesn't even include bochs.h, only includes siminterface.h, to guarantee that it follows the rules and doesn't touch anything directly
[22:38] *** eSoul (Chat-Zone@ACA68BD5.ipt.aol.com) has joined #bochs
[22:39] yakovlev Here's my idea of what parms "should" look like.
[22:39] yakovlev (to bochs internals, not the outside)
[22:40] *** uninet (~tbutler@c1331724-a.schrls1.mo.home.com) has joined #bochs
[22:40] *** ChanServ sets mode: +o uninet
[22:40] yakovlev in main.cc we call parm_handler
[22:40] yakovlev I mean parm_handler.init.
[22:40] yakovlev then we call init_parms in all the devices, etc.
[22:41] yakovlev Inside each device, we define all the parms we want, and init_parms just calls parm.init
[22:41] yakovlev on every parm in the class.
[22:42] yakovlev parm.init registers the parm with parm_handler.
[22:42] fries shouldn't that be part of the class'es ::init() or constructor?
[22:42] fries why do we have to have a separate ::init() ?
[22:42] yakovlev No, ::init initializes the device, which requires that some parm values be set.
[22:43] yakovlev (I'm having to add extra functions because we don't dynamically allocate)
[22:43] bryce ok that sounds good so far
[22:44] bryce when registering, are you putting them all in one big crowd,
[22:44] yakovlev Then the parms list that is now in parm_handler is shown to the "GUI" code for display.
[22:44] bryce or do you register the parameters by the device and the name both?
[22:44] yakovlev That's a naming convention.
[22:44] bryce otherwise it's hard for the GUI to magically group them in a sensible way
[22:45] fries why can you not parse the devices dynamically by the gui ? what if you want to remove or add devices? think of pcmcia, etc ..
[22:46] yakovlev removable devices make things a little tough.
[22:46] bryce everything that is dynamic has a cost too
[22:46] yakovlev I'm not sure they're really worth it.
[22:46] bryce in complexity, and sometimes in performance as well
[22:47] bryce if you're trying to organize your GUI in a way that makes sense and fits on the screen,
[22:47] bryce you MAY have to hardcode some things...
[22:48] bryce you can make rules that do something reasonable for most cases
[22:48] yakovlev Well, you can dump options you don't know about in a "other" category hidden off in a corner.
[22:48] bryce but for other things, you just have to override the default and say "put this here"
[22:48] yakovlev Or ignore them altogether. All options should have a sensible default.
[22:49] bryce but on the subject of putting the parameter declarations in the device that they control, I agree
[22:49] bryce and dynamically registering themselves, great.
[22:50] bryce so now you have a registry of parameters, which you can look up by name or somehow get a list of all of them.
[22:50] yakovlev I guess having them appear and disappear isn't so bad, if that's all we're talking about.
[22:50] yakovlev Right.
[22:50] bryce so now the GUI needs to be able to probe the registry to find out what it should display
[22:51] yakovlev not sure I follow you.
[22:52] bryce How does the GUI know which options to put on the first menu
[22:52] yakovlev The GUI can look through the registry, it's basically a container class.
[22:52] bryce or how to group them into pages?
[22:52] yakovlev That's GUI-specific.
[22:52] yakovlev doesn't belong in the emulation layer.
[22:53] divad547 the parameters could provide a categorization for themselves in addition to their name, type, and value.
[22:53] bryce After going to all the trouble of making a registry of parameters by name, do you want the GUI to have a hardcoded input that says to show floppy options in this order?
[22:53] bryce ok
[22:53] yakovlev yes.
[22:54] divad547 I wouldn't want the GUI to be handcoded like that....
[22:54] bryce that seems like a waste of effort
[22:54] yakovlev It's reasonable to have the emulation layer let you know they're floppy options.
[22:55] divad547 yakovlev: agreed
[22:55] bryce what categories could we have
[22:55] yakovlev Well, what exactly do you want the emulation layer to give you?
[22:55] divad547 I would leave the list of categories open ended.
[22:55] divad547 and perhaps hierarchical
[22:55] yakovlev I mean, they can be devices/disks/floppy/parmnames
[22:55] bryce floppy:0:path means path name of floppy number zero
[22:55] bryce I was thinking of that as a name of that option
[22:56] divad547 they are often closely related...
[22:56] divad547 but the categories might also be multi-valued
[22:57] bryce divad: example?
[22:57] fries controller, bus, device
[22:58] fries chipset..?
[22:58] yakovlev however, telling the gui: show path, then size, then spt, then tracks, etc. seems like a bit much for the emulation layer.
[22:58] fries memory
[22:58] fries output
[22:58] bryce greg: but I think you need that kind of control somewhere to be able to have an intuitive interface
[22:58] fries nah
[22:58] yakovlev It really belongs only in the GUI.
[22:59] bryce it is possible to display every single option in a big tree
[22:59] divad547 I'm having trouble thinking of one in the context of Bochs
[22:59] divad547 perhaps Devices/Disks/Floppy/A/Path and Path/Floppy/A
[22:59] divad547 one trick you could do: strip leading digits from the categories....
[22:59] bryce but it will never look very good
[22:59] divad547 so that you can add numeric prefixes to set the order.
[22:59] yakovlev That's where the gui comes in.
[22:59] yakovlev if it's something used everyday, it'll have something hard coded.
[23:00] bryce why is it out of place for the emulation layer, which created all these options, provide hints as to what order and what grouping they should be displayed in?
[23:00] yakovlev if it's something obscure, you have to walk the hierarchy.
[23:00] divad547 one could also have a seperate configuration file for the gui tool...
[23:00] yakovlev because all these options are superficial to what the emulation layer does.
[23:00] divad547 seems overkill...
[23:01] bryce divad: one that only the developer would want to edit, maybe
[23:01] *** eSoul is now known as Fucker
[23:01] *** Fucker is now known as eSoul
[23:01] divad547 exactly
[23:01] bryce greg: so is parsing, but I think it would be a mistake to offload that to the gui too
[23:02] yakovlev ummm, this is a corporate account, I'd appreciate not doing too much cursing in PLAINTEXT!
[23:03] yakovlev parsing, to a certain extent, belongs in the emulation layer.
[23:03] yakovlev menu LOOKS don't.
[23:04] bryce so in your model, the source code contains the name of the parameter and maybe the name implies a category
[23:04] bryce source code = bochs emulation layer
[23:04] yakovlev right, we can even be more explicit than that about name.
[23:05] * yakovlev thought that was what you meant.
[23:05] bryce give an example
[23:05] bryce ?
[23:05] yakovlev We could I guess specify menu instead of name.
[23:05] yakovlev But really that's just name.
[23:05] bryce and then the GUI has access to a separate database that maps those names into particular menus
[23:06] yakovlev like: menu: menuname, parm: parmname
[23:06] yakovlev I guess.
[23:06] yakovlev Most of the parms the GUI simply won't care about.
[23:06] *** Ground_Ho (~hog_g@CPE-203-45-159-243.qld.bigpond.net.au) has joined #Bochs
[23:07] *** Ground_Ho is now known as GroundHog
[23:07] *** Peter (peter@h117n1fls20o53.telia.com) Quit (Quit: )
[23:07] bryce what's an example for floppy options?
[23:07] yakovlev DMA vs. Non-DMA
[23:08] bryce what would be the name that you register under?
[23:08] bryce floppy/0/dma
[23:08] yakovlev devices/floppy/0/usedma
[23:08] divad547 except that is probably at the controller level
[23:09] yakovlev so it's controller 0, that's not the point.
[23:09] bryce how about floppy disk type, like 1.44
[23:09] yakovlev The point is, it's not an opton that needs to be pretty.
[23:09] yakovlev That probably should be pretty.
[23:09] bryce devices/floppy/0/format is an enum, with options 720k, 1.44MB, 2.88MB etc
[23:09] yakovlev The enum already tells you it's a list of choices.
[23:10] yakovlev Right. You'll probably hardcode a nice big "Change disk" button into the gui.
[23:11] yakovlev That will bring up a hardcoded menu that has floppy/0/format and floppy/0/path in it.
[23:11] yakovlev because those are used all the time.
[23:11] bryce ok
[23:12] bryce and in addition to the hardcoded stuff, you have some interface that takes care of
[23:12] bryce all the other stuff
[23:12] yakovlev Right.
[23:12] bryce or more likely, every option will appear there, even the ones that can be done with some dumb wizard.
[23:12] yakovlev Right.
[23:13] yakovlev Also, you'd want to let the OS-specific code register parms too, since those would vary.
[23:13] fries think about if you didn't have a floppy though?
[23:14] yakovlev (that's from a little earlier, but I thought I'd bring it up)
[23:14] bryce I was picturing the GUI as having less knowledge about what it was going to display, and discover more by asking hints from bochs. The reason this is useful is that we're probably going to have multiple implementations of the GUI part, and if they all do their own thing it's much harder to support and test.
[23:15] yakovlev Add a layer. :)
[23:15] bryce I don't think it does any harm for bochs to provide some hints about things, and it would help to make the GUIs more uniform, so that they would appear to be the same piece of software no matter which platform you are on.
[23:16] yakovlev If you really intend for your parm to be visible from the outside, out it in another descriptor area.
[23:16] bryce did anybody look at my link?
[23:16] bryce http://bochs.sourceforge.net/tmp/ui/
[23:17] yakovlev out=put
[23:18] divad547 I did
[23:18] yakovlev But that's a lot of extra code if you only want to read the parms from .bochsrc
[23:18] bryce I'm sure we'll hack it to bits :)
[23:18] bryce in which case do you mean?
[23:19] bryce the -get () ?
[23:19] yakovlev Extra code in the emulator if you include parm formatting information in it.
[23:20] bryce you can read an integer param with an inline get function that is no slower than reading *intptr.
[23:20] yakovlev What if we defined a second, optional, menu interface for building menus from parms?
[23:20] bryce I already have one :)
[23:20] bryce bx_param_list_c contains a pointer to a series of parameters
[23:20] yakovlev So if you want the menu info, you call init_menus
[23:21] yakovlev if not, you don't.
[23:21] bryce I was going to use the "list" idea for all types of grouping
[23:21] bryce 1. grouping parameters into menus
[23:21] bryce 2. grouping all the floppy options together
[23:22] bryce but if the name implies the grouping, that may not be necessary
[23:22] yakovlev name would probably imply floppy option.
[23:23] yakovlev so menu/device/floppy/0 would have:
[23:23] bryce you have to remember, this code has grown gradually out of the old bx_options, so that's where it got all of its origins.
[23:23] yakovlev 1: device/floppy/0/path
[23:23] yakovlev 2: device/floppy/0/format
[23:23] yakovlev and would not include device/floppy/0/dma
[23:25] bryce you know, having strong feelings about how it should be done may mean that you have to do some of those parts :)
[23:27] bryce we should come up with a catalog of device names
[23:27] yakovlev I just don't want to have to figure out what menu to put parm_q123f435 into.
[23:27] bryce for each member of bx_options and its sub-structs (bx_floppy_options, etc.)
[23:28] *** yakovlev (~gwa@slip129-37-118-40.nc.us.prserv.net) Quit (Quit: Leaving)
[23:28] bryce uh oh greg is gone...
[23:31] bryce did anybody see the discussion of how to get windows running in bochs without doing a full install?
[23:33] bryce I'll check back in a minute.....
[23:33] uninet nope.
[23:33] uninet Where was that?
[23:33] bryce I posted a way
[23:33] uninet On here?
[23:34] bryce and someone said it would be better to get a clean install
[23:34] bryce in mailing list some time
[23:34] bryce Date: Thu, 14 Jun 2001 15:59:17 -0400 (EDT)
[23:35] uninet Oh yeah. I remember that.
[23:35] bryce it did work, but certainly windows under bochs got confused when all of its hardware disappeared :)
[23:35] bryce so I had several bouts with safe mode
[23:36] bryce but I wonder if the process can be cleaned up (even automated) a bit
[23:37] bryce for example, we could make a linux bootable floppy with some scripts
[23:37] bryce that would mount a blank disk image on /dev/hda1
[23:37] uninet That'd be neat.
[23:37] bryce and a raw hard disk with windows on it at /dev/hdb (or something)
[23:37] uninet Instant Windows (just add water!)
[23:38] bryce and it would copy all the necessary files onto hard disk c
[23:38] uninet That'd be good.
[23:38] bryce if the process could be made simpler like that, it would save people tons of time.
[23:38] uninet Come to think of it...
[23:39] uninet ...I bet MS doesn't hold a copyright on the actual registry DATABASE, perhaps a fresh copy of the registry, optimized without non-Bochs hardware, could be included...
[23:40] uninet (user.dat and system.dat)
[23:40] bryce not sure, that sounds a little fishy
[23:40] divad547 the Bochs rescue disk?
[23:40] bryce I would be wary of including anything except scripts and stuff that you write on the floppy
[23:40] bryce but since you have access to a whole working windows system,
[23:40] uninet Yeah...
[23:40] bryce you can just copy the stuff
[23:40] uninet true.
[23:41] bryce maybe with some hacking to remove all the devices so that they had to be re-detected
[23:41] uninet Yeah.
[23:41] uninet I believe Windows has a commandline based version of regedit...
[23:41] bryce hmmm
[23:41] divad547 there are programs to do that
[23:42] bryce where?
[23:42] divad547 but I don't think there is one as part of windows normally.
[23:42] uninet So if the bochs rescue disk started up a dos session (using DOS 7.0)...
[23:42] divad547 NT Resource kit has one...or two
[23:42] uninet I think regedit.exe, if run from the command line, let's you integrate .reg files.
[23:42] uninet I know there are several useful registry utilities for command line usage in Win9x.
[23:42] bryce what happens if you erase the registry? does it rebuild one when it boots next time, or just crash?
[23:43] divad547 well, NT stores the partition map in the registry so if you loose that, it doesn't know the disks
[23:43] bryce :)
[23:44] bryce ok maybe we need to be a little selective
[23:44] uninet Yeah.
[23:44] uninet I don't think Windows can rebuild the registry like that.
[23:44] bryce we need a registry editor that is already there (on all windows versions)
[23:44] bryce or else a free one that we can distribute
[23:44] uninet It's going to be tough to make a one-for-all script that could work with both Windows 9x and NT/2k.
[23:45] bryce how many different ones then?
[23:45] bryce 95,98,2k,me,nt ?
[23:46] uninet yup.
[23:46] uninet and soon XP and Server.NET (formerly 2002 Server)
[23:46] bryce well I have 95 and 98 here that I could test with
[23:46] uninet oh and Win 98 SE, which has a few minor difference from 98...
[23:46] bryce ugh
[23:46] uninet I have 2k and ME.
[23:47] bryce the basics will be the same though
[23:47] uninet (and a XP beta I haven't installed)
[23:48] bryce do you want to try this out too?
[23:48] uninet sure.
[23:48] bryce if we ever want to automate it, let's write down exactly what we do
[23:49] uninet Okay.
[23:49] bryce I suggested a linux boot disk because I know better how to automate things that way
[23:49] uninet Yeah...
[23:49] uninet it could be a two stage setup...
[23:49] bryce like running fdisk, mounting things, copying things
[23:50] uninet Linux disk manipulates as much as possible, and then boots Windows MS-DOS mode for finalizing things with a few batch files.
[23:50] bryce right
[23:50] bryce that would be cool!
[23:50] uninet Yeah, very cool.
[23:50] bryce even if there are a lot of steps, the fact that it can be done in 30 minutes is a great attraction
[23:50] bryce :)
[23:52] bryce anything else to talk about tonight?
[23:52] bryce I'm running out of steam.
[23:53] uninet Not that I can think of.
[23:54] bryce ok I'm out of here
[23:54] uninet Okay, g'night bryce... I'm going to do the same.
[23:54] bryce thanks everybody!
[23:54] uninet Good night everyone!
[23:54] bryce Sorry that we lost Greg at the last miunte.
[23:54] bryce minute


And with interesting closing thoughts on automating Windows(R) setup under Bochs, we ended the 6/19/2001 Bochs chat.

  
  
SourceForge Logo
Please send comments and questions concerning the site to Volker Ruppert.
Web site feature requests and bug reports should be added to the Web site tracker.
Last Modified on Saturday, 16-Jul-2022 08:03:02 UTC.
© 2001-2024 The Bochs Project. See the project statistics here.