1904 lines
82 KiB
Plaintext
1904 lines
82 KiB
Plaintext
|
*** Topic for #Bochs: Bochs Pentium Emulator .:. How is the latest release
|
||
|
+working on different platforms? .:. Who uses Bochs anyway? .:. Bugs and
|
||
|
+features! bochs is cool come here
|
||
|
<uninet> (although I think it just captures the upt to the current point... so
|
||
|
+I'll save it again before I close and all will be well.
|
||
|
<bryce> first thing on my list is: how is the Bochs pre-release working for
|
||
|
+people?
|
||
|
<yakovlev> no comment.
|
||
|
<bryce> anybody tried it?
|
||
|
<uninet> I haven't done a lot of testing yet, but so far so good. The RPM
|
||
|
+loads flawlessly.
|
||
|
<MarkK> Is the prerelease the RPM?
|
||
|
<uninet> Yes.
|
||
|
<MarkK> I've loaded it under RH
|
||
|
<MarkK> worked fine
|
||
|
<bryce> I heard someone say "I couldn't find bochs because I didn't have
|
||
|
+/usr/local/bin in my path"
|
||
|
<MarkK> ran the Linux model
|
||
|
<MarkK> that was me!
|
||
|
<bryce> some docs will fix that
|
||
|
<bryce> :)
|
||
|
<uninet> Mark - you have SuSE too, right? That problem doesn't show up
|
||
|
+there...
|
||
|
<MarkK> And shucks.....I'm a hardware guy....and I still figured it out! ;-)
|
||
|
<bryce> haha
|
||
|
<MarkK> No, SuSE is my email server at work....
|
||
|
<MarkK> so I haven't tried it there
|
||
|
<uninet> Ah.
|
||
|
<MarkK> I use RH for my Linux work
|
||
|
<uninet> Gotcha. I wasn't sure...
|
||
|
<bryce> I was hoping to get some bug reports on 1.2.pre1 to know what needs to
|
||
|
+be fixed before 1.2
|
||
|
<MarkK> yes...
|
||
|
<bryce> here's what's already been fixed since 1.2.pre1:
|
||
|
<bryce> - fixed compile problems in gui/nogui.cc, iodev/pci.cc
|
||
|
<bryce> - removed extra paren that broke SHOW_IPS
|
||
|
<bryce> - HALT macro in rombios.c causes a bochs panic (which can be
|
||
|
+turned off
|
||
|
<bryce> in .bochsrc) instead of actually halting.
|
||
|
<bryce> - added additional check for null pointer in debugger exit routine
|
||
|
<bryce> - now font/vga.pcf will be installed in the RPM package. Some
|
||
|
+systems
|
||
|
<bryce> don't have it.
|
||
|
<bryce> mostly really minor stuff
|
||
|
<uninet> What about Mark's problem? Perhaps a symlink to /usr/bin would be
|
||
|
+good.
|
||
|
<yakovlev> We should put in a fix for the timing.
|
||
|
<yakovlev> No, it belongs in /usr/local/bin on linux.
|
||
|
<MarkK> I would have been happy with finding it in a readme...
|
||
|
<bryce> timing? as in bochs takes 100% cpu?
|
||
|
<uninet> It seems that it is rather bad it installs outside the path of RH
|
||
|
+though...
|
||
|
<yakovlev> and sometimes runs faster than real time.
|
||
|
<yakovlev> I had an idea on that one.
|
||
|
<bryce> I agree that's important, but I think not for the 1.2
|
||
|
<bryce> I'm thinking bug fixes only, basically, but let's get the timing fixes
|
||
|
+into CVS for the next
|
||
|
<yakovlev> Well, what is 1.2?
|
||
|
<yakovlev> Are we calling it a bugfix release of any existing feature
|
||
|
+improvements?
|
||
|
<yakovlev> essentially?
|
||
|
<bryce> right. here's what I was thinking with 1.2.pre1
|
||
|
<uninet> I thought it was a feature release
|
||
|
<bryce> we had lots of features that only the authors have tried
|
||
|
<bryce> and finally the ability to make RPMS and win32 binaries
|
||
|
<bryce> so I wanted as many people as possible to be able to try the features
|
||
|
<MarkK> So I'll ask the question.....
|
||
|
<bryce> but wasn't so sure of stability, so I called it a pre-1.2 release
|
||
|
<MarkK> What features?
|
||
|
<MarkK> (Where do I find a list?)
|
||
|
<yakovlev> SMP, for one.
|
||
|
<bryce> CHANGES.txt in the source TAR file
|
||
|
<bryce> I'll paste them in now if you want.
|
||
|
<yakovlev> bochs-RFB I think is new in 1.2 also.
|
||
|
<MarkK> not necessary....I can't run tonight anyway
|
||
|
<MarkK> I'll look at the tar file
|
||
|
<bryce> there are some important ones, esp in the area of I/O (log file
|
||
|
+output)
|
||
|
<bryce> and what you see on stderr
|
||
|
<yakovlev> Oh yeah, the code maintenance issues like that one.
|
||
|
<uninet> http://bochs.sourceforge.net/docs-html/changelog.html has the log of
|
||
|
+changes too.
|
||
|
<yakovlev> Ugh, I'd really like to get my pit changes in, but Abigail has had
|
||
|
+different ideas... Babies do that. :)
|
||
|
<MarkK> I'm there now reading
|
||
|
*** smapnipss (rooot@cs6668169-151.austin.rr.com) has joined channel #Bochs
|
||
|
<bryce> so I think 1.2 OFFICIAL should be 1.2.pre1 with a few bug fixes
|
||
|
<uninet> Sounds reasonable.
|
||
|
<bryce> and anything major should go into CVS snapshots and wait for 1.3 or
|
||
|
+something
|
||
|
<yakovlev> Wow, already doing a feature freeze.
|
||
|
<bryce> :)
|
||
|
<uninet> Bochs going big time. :-)
|
||
|
<yakovlev> here's a stupid question:
|
||
|
<yakovlev> What kind of release schedule are we expecting here?
|
||
|
<yakovlev> 1.2 definitely is NOT ready for the big stuff.
|
||
|
<yakovlev> but, it's an incremental improvement.
|
||
|
<bryce> I should say pretty early on, I have only worked on projects of 2-3
|
||
|
+people before and have not done this kind of thing before, so I'm learning as
|
||
|
+I go.
|
||
|
<MarkK> so far I must say I'm REALLY impressed here though
|
||
|
<MarkK> I'm participating on some much larger projects
|
||
|
<MarkK> and they're no where as organized
|
||
|
<MarkK> (of course I don't really know how many are participating here!!)
|
||
|
<bryce> I hope to get more people involved in making decisions like when to do
|
||
|
+releases, but here's what I was thinking for the 1.2 thing
|
||
|
<bryce> I wanted to get binary releases out as soon as possible
|
||
|
<bryce> since that will allow the most people to try it out, and potentially
|
||
|
+bring in more develoeprs
|
||
|
<bryce> first thought was to do binaries of bugfix3 but the I/O improvements
|
||
|
+made such a difference that it seemed like a waste of time.
|
||
|
<yakovlev> Well, with the HALT bugfix in the bios... could we do a binary
|
||
|
+release of 1.1.2 also?
|
||
|
<bryce> sure, but what about the stderr cleanup, the .bochsrc cleanup, the I/O
|
||
|
+cleanup?
|
||
|
<uninet> What would be the advantage of a 1.1.2 binary release?
|
||
|
<bryce> there's too much that should be backported IMHO to make it worth it
|
||
|
<yakovlev> It would potentially run when the main problem is that HALT bugfix.
|
||
|
<bryce> ?
|
||
|
<bryce> what would run better in 1.1.2?
|
||
|
<yakovlev> What if we independently did a release of just the bios?
|
||
|
<yakovlev> I guess that's really what I'm advocating.
|
||
|
<bryce> anything is possible. we can backport anything we want.
|
||
|
<bryce> given enough time.
|
||
|
<yakovlev> We had at least a few messages on the list about people getting
|
||
|
+HALT messages when things used to run fine.
|
||
|
<uninet> Can't that be stopped in bochsrc?
|
||
|
<bryce> the bug fix to HALT causes errors to be reported correctly, that's
|
||
|
+all.
|
||
|
<yakovlev> from the bios fixes you recently added.
|
||
|
*** Signoff: nolu (Read error: Connection timed out)
|
||
|
<yakovlev> yup, that's the problem.
|
||
|
<bryce> anything that has STOPPED working because of that was always producing
|
||
|
+error conditions but they weren't being reported.
|
||
|
<bryce> so fixing the error reporting is causing people to see the errors that
|
||
|
+before were silent. Does that make sense?
|
||
|
<yakovlev> Okay, then what about a bios version that possibly reports but
|
||
|
+continues to run after errors occur.
|
||
|
<yakovlev> right
|
||
|
<uninet> I thought Bryce said the Bochsrc config allowed for this...
|
||
|
<bryce> that's easy enough, although we should eventually fix those errors
|
||
|
+instead of ignore them :)
|
||
|
<yakovlev> of course
|
||
|
<yakovlev> but once reported, it's a possibly easy workaround.
|
||
|
<bryce> Tim, the HALTs now produce a bochs panic. In 1.2 all panics can be
|
||
|
+turned non-fatal by changing the .bochsrc.
|
||
|
<yakovlev> but I don't trust any code executing after a HALT.
|
||
|
<uninet> So, that would include the ones Greg is referring to, right?
|
||
|
<bryce> Tim, yes
|
||
|
<yakovlev> Unles you guys are sure that wouldn't make a difference.
|
||
|
<bryce> we should distinguish between the rombios code calling the HALT macro
|
||
|
+and a HLT x86 instruction.
|
||
|
<MarkK> I agree with that
|
||
|
<uninet> That'd be very nice.
|
||
|
<yakovlev> I just mean have a version of the bios with HALT defined to be nop.
|
||
|
<bryce> the HALT macro was broken until 1.2.pre1, it did absolutely nothing
|
||
|
<yakovlev> Which was good from a user perspective, bad from a debugging one.
|
||
|
<bryce> the hlt instruction halts the bochs simulation, no question.
|
||
|
<yakovlev> doesn't HALT do a hlt?
|
||
|
<bryce> in 1.2.pre1, it does.
|
||
|
<bryce> I've been working on cvs, and here's what it does now:
|
||
|
<yakovlev> Right, and I'm just saying I don't want to have to disable all
|
||
|
+hlts, just the one in HALT.
|
||
|
<bryce> the HALT macro causes bochs to call panic
|
||
|
<bryce> with the line number of the HALT macro (in rombios.c)
|
||
|
<bryce> and then it does NOT call the x86 hlt
|
||
|
<yakovlev> oh, that's somewhat better.
|
||
|
<bryce> this lets you control what happens through the bochsrc by saying
|
||
|
+"panic: action=fatal" or "panic: action=report"
|
||
|
<bryce> do you think that's an ok behavior for a 1.2 release?
|
||
|
<yakovlev> Not too bad.
|
||
|
<bryce> :)
|
||
|
<yakovlev> You guys had talked about being able to isolate panic behavior to a
|
||
|
+particular unit.
|
||
|
<yakovlev> well, a particular section of code.
|
||
|
<bryce> right
|
||
|
<yakovlev> Sorry, work slipping in there.
|
||
|
<yakovlev> Is that doable from .bochsrc?
|
||
|
<bryce> Todd's I/O code has the capability of having a different action for
|
||
|
+each of panic,error,info,debug for each "module"
|
||
|
<bryce> where module is something like "HD", "CPU", "PIT"
|
||
|
<bryce> but there is not yet any .bochsrc syntax to specify this
|
||
|
<yakovlev> could we define the panics caused by the bios to be a specific
|
||
|
+macro?
|
||
|
<yakovlev> macroXXXXX module
|
||
|
<bryce> I think you mean something like: panic: facility=cdrom, action=fatal
|
||
|
<bryce> panic: facility=bios, action=report
|
||
|
<bryce> ?
|
||
|
<yakovlev> yup.
|
||
|
<bryce> panic: facility=default, action=fatal
|
||
|
<yakovlev> although that's a little awkward.
|
||
|
<bryce> yes, needs work
|
||
|
<yakovlev> but yes, basically that.
|
||
|
<bryce> the I/O functions are all ready to do that, we just need a syntax!
|
||
|
<bryce> any suggestion?
|
||
|
<yakovlev> PIT: panic=fatal
|
||
|
<yakovlev> default: panic=fatal
|
||
|
<bryce> what about debug,info, and error though?
|
||
|
<bryce> PIT: panic=fatal, error=report, info=report, debug=ignore
|
||
|
<yakovlev> HD: debug=ignore
|
||
|
<yakovlev> sure.
|
||
|
<bryce> that seems good enough
|
||
|
<yakovlev> it has the added advantage of giving us some direction for
|
||
|
+additional "module parameters"
|
||
|
<bryce> I have a feeling it will be better if the thing left of the colon can
|
||
|
+be the same for all such statements, but I'm not sure how to make it look ok.
|
||
|
<yakovlev> It seems to me that the only issue for panics, etc. is the action.
|
||
|
<yakovlev> hmmmm...
|
||
|
<yakovlev> well...
|
||
|
<bryce> true but what if you wanted to log HD messages to a different file?
|
||
|
<yakovlev> panic: action=fatal <insert char here> PIT
|
||
|
<bryce> log: obj=HD, file="hdlog.txt", panic=fatal, error=report, info=report,
|
||
|
+debug=ignore
|
||
|
<bryce> it's getting LONG
|
||
|
<bryce> :)
|
||
|
<bryce> but soon the GUI will do this for us.
|
||
|
<bryce> :)
|
||
|
<yakovlev> yup.
|
||
|
<yakovlev> just a minute, I like the log idea.
|
||
|
<yakovlev> hmmmm...
|
||
|
<yakovlev> what if we viewed these more as commands.
|
||
|
<yakovlev> so, we could use:
|
||
|
<yakovlev> log: filename="outfile", panic=fatal, error=report
|
||
|
<yakovlev> log: obj=PIT, filename="outfile2", panic=report, info=report
|
||
|
<yakovlev> that's cleaner.
|
||
|
<yakovlev> we'd have to decide just how to parse different things.
|
||
|
<bryce> so if you have no obj=X then it means the default?
|
||
|
<bryce> is that your point?
|
||
|
<yakovlev> yup.
|
||
|
<bryce> makes sense
|
||
|
<yakovlev> no, not just that.
|
||
|
<bryce> and later lines override settings from earlier lines
|
||
|
<yakovlev> we only have to specify part on a line,
|
||
|
<bryce> right
|
||
|
<yakovlev> right.
|
||
|
<bryce> ok, that sounds like a good start.
|
||
|
<yakovlev> filename would apply either only to the module.
|
||
|
<yakovlev> or even only to the reporting specified on that line.
|
||
|
<MarkK> Is there something easy you could do to keep separate runs in separate
|
||
|
+files?
|
||
|
<MarkK> So that if you wanted to run regression it would be easy
|
||
|
<bryce> (let's continue the .bochsrc syntax on email, so that we can get to
|
||
|
+other things too)
|
||
|
<MarkK> sure
|
||
|
<bryce> mark, maybe you could put in a %d or something
|
||
|
<bryce> into the filename, and then sprintf some time stamp into the %d
|
||
|
<MarkK> that's an idea
|
||
|
<yakovlev> there are several ways to do it.
|
||
|
<yakovlev> the calling program could just change the value in .bochsrc between
|
||
|
+runs.
|
||
|
<yakovlev> at any rate, next topic...
|
||
|
<bryce> I had a little survey written up
|
||
|
<yakovlev> Maybe the GUI interface would be appropriate?
|
||
|
<yakovlev> oh, go ahead.
|
||
|
<bryce> but given that we have only 5-6 people...
|
||
|
<bryce> let's just take a peek at it but try to get more people to answer it
|
||
|
+later on
|
||
|
<yakovlev> K.
|
||
|
<bryce> it's at http://bochs.sourceforge.net/ircsurvey.html
|
||
|
<bryce> or if it's easier I'll just paste it in
|
||
|
<bryce> let's add any number of possible responses that you can think of, and
|
||
|
+maybe we can make this into a web survey instead (or maybe SourceForge
|
||
|
+survey)
|
||
|
<uninet> Should I post my response here?
|
||
|
<bryce> sure!!
|
||
|
<yakovlev> I write bochs as a hobby. I'm more interested in getting it right
|
||
|
+than using it.
|
||
|
<bryce> Educator/Student: to see how the computer works
|
||
|
<yakovlev> However, I'm also interested in getting x86 programs to run on
|
||
|
+other OSes.
|
||
|
<uninet> For the first question (What do you use bochs for): Initially to try
|
||
|
+out Win32, although now just for the enjoyment of running a PC in my PC. :-)
|
||
|
<uninet> Future Bug fixes: bug 1. Feature Request: feature 8.
|
||
|
<bryce> also to be able to watch the OS working (esp Linux since I can see the
|
||
|
+source too)
|
||
|
<uninet> (Mouse problems, and emulation speed respectively)
|
||
|
<MarkK> Chip Designer: Inteested in interfacign it to my new design.
|
||
|
<MarkK> bad spelling. ;-)
|
||
|
<bryce> mark, are you allowed to say what you're designing? :)
|
||
|
<MarkK> Sort of....
|
||
|
<smapnipss> i use bochs for os development
|
||
|
<MarkK> I'm working on some leading edge 1394 stuff
|
||
|
<bryce> I understand, I'm a chip designer too.
|
||
|
<yakovlev> wow, me too.
|
||
|
<yakovlev> I can say. POWER4
|
||
|
<MarkK> but I'm also interested in chipset design, and how that might play in
|
||
|
+here
|
||
|
<uninet> I'm feeling out numbered here... I'm just a lowly web designer.
|
||
|
<bryce> We're thinking about SMP chip designs
|
||
|
<bryce> big surprise :)
|
||
|
<MarkK> The web rules...;-) We just work!
|
||
|
<MarkK> Anyway, long term I'm interestedin how I can use this with new chip
|
||
|
+designs prior to tapeout...
|
||
|
<yakovlev> Interesting.
|
||
|
<bryce> it could certainly be made into a good driver/monitor...
|
||
|
<yakovlev> Were you one of the guys pushing for a more modular design?
|
||
|
<MarkK> yes, driver could get deveoped in Windows.
|
||
|
*** Signoff: smapnipss ()
|
||
|
<MarkK> I usually have some sort of C model for the chip
|
||
|
<MarkK> hook it all together and try it out...
|
||
|
<uninet> That would be nice. Would the C code your are writting be able to be
|
||
|
+open sourced?
|
||
|
<bryce> haha
|
||
|
<MarkK> LOL
|
||
|
<uninet> :-)
|
||
|
<yakovlev> ;)
|
||
|
<MarkK> Laugh Out Loud or Lot's Of Luck
|
||
|
<MarkK> you're choice!!
|
||
|
*** eks|x (eks@HSE-Montreal-ppp123837.qc.sympatico.ca) has joined channel
|
||
|
+#Bochs
|
||
|
<eks|x> hi guys :)
|
||
|
<bryce> sorry, I'm just trying to picture the open source chip design...
|
||
|
+People have talked about it, but it's hard to see it happening.
|
||
|
<MarkK> hi eks
|
||
|
<bryce> Hi eks!
|
||
|
<uninet> Hi eks!
|
||
|
<eks|x> :)
|
||
|
<MarkK> Not really....
|
||
|
<bryce> eks: we're just talking about our answers to a little survey at
|
||
|
+http://bochs.sourceforge.net/ircsurvey.html
|
||
|
<MarkK> I worked in the IP industry before Phoenix bought us...
|
||
|
<uninet> <sigh> Oh well, I guess bochs needs more speed before it needs IEEE
|
||
|
+1394 anyway...
|
||
|
<MarkK> people are starting to do open source Verilog
|
||
|
<yakovlev> depends on how prevalent FPGAs become in configurable consumer
|
||
|
+electronics.
|
||
|
<MarkK> Or faster platforms to run Bochs on.
|
||
|
<yakovlev> Anyways, we're getting very sidetracked.
|
||
|
<MarkK> yes
|
||
|
<bryce> good point :)
|
||
|
<bryce> so I heard several votes for better mouse support (bug1)
|
||
|
<uninet> Definately.
|
||
|
<eks|x> what I would really appreciate is having the fpu more closely related
|
||
|
+to the debugger, aka fpu stack on cpu_dump
|
||
|
<bryce> ah, I never thought about that.
|
||
|
<MarkK> Is your 'Disk Image Tools' about how to build HDs with certain OS's
|
||
|
+and apps?
|
||
|
<yakovlev> bug1, bug4
|
||
|
<bryce> eks, that should not be hard to manage. Bochs must have the values in
|
||
|
+there somewhere, you just need printed out right?
|
||
|
<uninet> bug3 sounds like a nice one to fix too...
|
||
|
<bryce> yes, bug3 is tough though
|
||
|
<bryce> well maybe not tough, just lots of OSes out there.
|
||
|
<yakovlev> feature7, feature2
|
||
|
<eks|x> bryce: right
|
||
|
<uninet> Yeah, at least it would be nice on Win9x.
|
||
|
<bryce> for the cdrom support, what if we made a portable way to read from a
|
||
|
+cdrom disk image?
|
||
|
<yakovlev> yes, but if we get the CDROM model right, we're done.
|
||
|
<eks|x> bryce: we have some 3D computing code we try to work out in a gaming
|
||
|
+station, we worked out out own fpu stack out code, but it would be kinda neat
|
||
|
+to have them out on cpu_dump
|
||
|
<eks|x> yakovlev: cdrom model shouldn't be too hard to implement, close to hdd
|
||
|
+model
|
||
|
<MarkK> Bryce: So that part is under feature 1?
|
||
|
<bryce> not as convenient as the real cdrom (need lots of disk space) but then
|
||
|
+the job of reading the raw cd is left to platform-dependent tools that are
|
||
|
+already around.
|
||
|
<yakovlev> that would be good, Bryce.
|
||
|
<yakovlev> I was surprised that wasn't there already.
|
||
|
<uninet> Would it be possible to make bochs pretend /dev/cdrom was a cdrom
|
||
|
+image?
|
||
|
<bryce> I think we just need to understand a few of the ioctls (maybe snatch
|
||
|
+from linux kernel code or something) to see how to read table of contents and
|
||
|
+stuff
|
||
|
<yakovlev> well, it would take some looking, but basically, yes.
|
||
|
<eks|x> just out of nowhere like that, any of you familiar with 'bfe' ? ;)
|
||
|
<yakovlev> We'd have to add the removable media controls to the CDROM
|
||
|
+interface, but even that isn't ridiculous.
|
||
|
<bryce> eks: can you add that as a feature request on SF? otherwise I promise
|
||
|
+I'll forget. :)
|
||
|
<eks|x> it's a nice addition to bochs I think
|
||
|
<eks|x> bryce: I can do that,sure :)
|
||
|
<bryce> bfe: I looked at it once, and asked the author if he wanted to
|
||
|
+integrate it, he's not that interested.
|
||
|
<uninet> yakovlev: Could it do something similar to Win4Lin, where the guest
|
||
|
+OS handles how the CD's are mounted?
|
||
|
<uninet> (i.e. automount, standard mount, etc.)
|
||
|
<MarkK> could do that for all the physical I/O if you wanted to...
|
||
|
<yakovlev> well, bochs needs to know if a CD is there or not.
|
||
|
<eks|x> bryce: yeah, I know, but it's a good tool, I use it often, mostly to
|
||
|
+generate cpu-flow tracing in the history file
|
||
|
<bryce> bfe is actually what started me thinking about guis
|
||
|
<yakovlev> in the emulated sense.
|
||
|
<uninet> Hmm...
|
||
|
<yakovlev> Beyond that, it's just a file.
|
||
|
<eks|x> yakovlev: one problem I see is changing the actual cd ocne bochs is
|
||
|
+started
|
||
|
<uninet> Could it probe the CD-ROM drive every time it is requested?
|
||
|
<bryce> slow
|
||
|
<yakovlev> Wrong layer, guys.
|
||
|
<yakovlev> All bochs needs is:
|
||
|
<uninet> How's autmount do it?
|
||
|
<yakovlev> CDROM_INSERT().
|
||
|
<yakovlev> CDROM_EJECT().
|
||
|
<yakovlev> the OS interface code figures out when to call them.
|
||
|
<uninet> That'd make sense.
|
||
|
<eks|x> yip
|
||
|
<bryce> cdrom would be a big help in installing new software
|
||
|
<yakovlev> then maybe DISK_SEEK, DISK_READ, and DISK_WRITE to complete the
|
||
|
+set.
|
||
|
<MarkK> what's the interface look like between the IDE controller and the
|
||
|
+HD/CDROM?
|
||
|
<bryce> if I manage to make a larger-scale survey out of this, anything you'd
|
||
|
+like to add to it?
|
||
|
<MarkK> Does it run ATAPI commands?
|
||
|
<yakovlev> yes, ATAPI.
|
||
|
<uninet> bryce: perhaps a question on the most important feature of a new GUI?
|
||
|
<bryce> feature10: GUI for configuration and runtime control
|
||
|
<bryce> oh I see
|
||
|
<bryce> like what do you want the gui to do?
|
||
|
<uninet> Right.
|
||
|
<bryce> Answer: everything.
|
||
|
<uninet> Assuming that the GUI could have lots of different things (GUI
|
||
|
+debugger, GUI config, etc.)
|
||
|
<uninet> Bryce, I like that answer.
|
||
|
<bryce> should we talk about guis now?
|
||
|
<yakovlev> Answer: everything. I want to push all the interface as far away
|
||
|
+from bochs internals as possible. :)
|
||
|
<yakovlev> Notice a recurring theme in my messages? :)
|
||
|
<eks|x> any of you tried simnow! ?
|
||
|
<eks|x> yakolev? layering? ;)
|
||
|
<bryce> I like what Greg said in an email, that we can get separation just by
|
||
|
+putting the GUI code and the bochs code into different libraries that are
|
||
|
+linked together. Do I have that right?
|
||
|
<yakovlev> Nope. My impression is that it contains almost an entire
|
||
|
+microprocessor worth of simulation data.
|
||
|
<yakovlev> Sort of.
|
||
|
<uninet> Yeah, I liked that idea too.
|
||
|
<yakovlev> It doesn't necessarily HAVE to be in a different library, but
|
||
|
+that's the idea.
|
||
|
<uninet> Well, actually one should be a normal program that requires the
|
||
|
+shared library that contains the other code, right?
|
||
|
<yakovlev> Also, I used "GUI code" very loosely.
|
||
|
<yakovlev> right, tim.
|
||
|
<bryce> no reason to require shared library, but that is one way to do it.
|
||
|
<yakovlev> Tim, I mean.
|
||
|
<uninet> I think that would be best.
|
||
|
<uninet> (not shared library)
|
||
|
*** Psyon (exodus@exodus.psyon.org) has joined channel #Bochs
|
||
|
<yakovlev> Shared library good, but could be compiled separately.
|
||
|
<bryce> hi Don!
|
||
|
<Psyon> Im here!
|
||
|
<uninet> Or rather, what I mean, is Greg's idea. I have no preference in how
|
||
|
+it's done... I'm just thinking in terms of Perl. :-)
|
||
|
<Psyon> What did I miss?
|
||
|
<Psyon> HEY
|
||
|
<uninet> Hi Don!
|
||
|
<bryce> it will all be on the web site.
|
||
|
<Psyon> hehe
|
||
|
<Psyon> ok
|
||
|
<bryce> we're starting to talk about the GUI!
|
||
|
<Psyon> well... what am I hearing about Perl?
|
||
|
<Psyon> Good that is my dept?
|
||
|
<bryce> we're going reimplement all of bochs in perl.
|
||
|
<Psyon> oops
|
||
|
<uninet> Yeah, if it is dynamically linked that would be good. That way the
|
||
|
+GUI code could be switched without a recompile.
|
||
|
<Psyon> I meant !
|
||
|
<Psyon> Uhh...
|
||
|
<Psyon> is that a good idea?
|
||
|
<bryce> :)
|
||
|
<bryce> (that was a joke)
|
||
|
<Psyon> oh
|
||
|
<Psyon> ok
|
||
|
<Psyon> well...
|
||
|
<Psyon> You can write perl modules in C
|
||
|
<Psyon> cant you?
|
||
|
<uninet> :-) Maybe... it wouldn't require a compilier then.
|
||
|
<Psyon> I was told
|
||
|
<Psyon> write a bochs perl module
|
||
|
<Psyon> that would allow you to run bochs and have events caught by perl
|
||
|
<yakovlev> Anyways, I used "GUI code" to refer to any thing that interfaces
|
||
|
+with the host system.
|
||
|
<yakovlev> Ahh, but then we have to port perl to MacOS.
|
||
|
<Psyon> They have a Mac Perl
|
||
|
<Psyon> dont they?
|
||
|
<uninet> Yeah, I think that's a good definition... so anything that could be
|
||
|
+considered "client code" right?
|
||
|
<eks|x> btw, perl is an easy to write into language, but afaik, it's never as
|
||
|
+fast as optimized-compiled C
|
||
|
<yakovlev> Yeah, basically.
|
||
|
<bryce> greg, how is your model different from what Bochs already does?
|
||
|
<bryce> we have cpu, iodev, and gui all in separate libraries.
|
||
|
<yakovlev> Not very.
|
||
|
<yakovlev> iodev is pretty close to CPU.
|
||
|
<Psyon> so the new model reflects the Plex86 plugin structure?
|
||
|
<uninet> Is the current GUI library dynamically loaded?
|
||
|
<bryce> so with some makefile tricks we could compile them as shared
|
||
|
+libraries.
|
||
|
<bryce> not dynamic, no
|
||
|
<eks|x> bryce: feature added on sf (fpu stack dump)
|
||
|
<bryce> eks: thanks
|
||
|
<bryce> uh, I don't know anything about the plex86 plugins, is it based on
|
||
|
+shared libraries?
|
||
|
<Psyon> That is how Plex86 does the GUI and IO dev stuff now isnt it?
|
||
|
<yakovlev> Right, but we may want to clean up some of the interfaces a bit.
|
||
|
<Psyon> I know the GUI is
|
||
|
<uninet> bryce: Would it be difficult to make it dynamic so the GUI could be
|
||
|
+changed like a plugin?
|
||
|
<Psyon> it compiles it as a shared library
|
||
|
<Psyon> the GUI is in the bochs plugin
|
||
|
<Psyon> hehe
|
||
|
<Psyon> uni: There are just certain functions that are needed to be
|
||
|
+implemented for the GUI
|
||
|
<yakovlev> Methinks plugins is going a little far.
|
||
|
<Psyon> a shared lib that has them wouldnt be a problem
|
||
|
<bryce> it seems like compiling as a shared library is not really an important
|
||
|
+feature. it can be done on some platforms and not on others, big deal.
|
||
|
<uninet> I'm using plugins in the loose sense of being able to swap in another
|
||
|
+module without having to recompile (like Linux kernel modules)
|
||
|
<bryce> it reduces the size of the binary, and maybe you can load up only the
|
||
|
+device models you want that time.
|
||
|
<Psyon> the bad thing is that shared libs are done differently on different
|
||
|
+plat forms
|
||
|
<bryce> psyon, that's my worry too
|
||
|
<Psyon> THey are compiled differently
|
||
|
<eks|x> are you guys going with bochs using gui modules or gui using bochs
|
||
|
+module?
|
||
|
<Psyon> and... DLLs in windows have to have the exported functions defined
|
||
|
<Psyon> __declspec(dllexport)
|
||
|
<Psyon> or have a .def file
|
||
|
<eks|x> I don't see the real need to swap gui very often without recompile,but
|
||
|
+I might see where switching cpu would be a +
|
||
|
<uninet> eks|x: I would think the GUI would use the bochs module.
|
||
|
<Psyon> eks: it might come in handy with somethign like Bochs-RFB
|
||
|
<Psyon> where one time you want to run natively
|
||
|
<Psyon> then switch it so you can run over a network
|
||
|
<eks|x> yeah
|
||
|
<Psyon> but the compiled EXE is so small
|
||
|
<Psyon> I just keep two copies
|
||
|
<eks|x> one bochs without debugger one with it
|
||
|
<uninet> eks|x: It would also be handy if you wanted to use the console gui,
|
||
|
+and then wanted an X11 gui.
|
||
|
<bryce> modules might let you make a binary distribution with all the GUIs
|
||
|
+available at .bochsrc time, rather than only one
|
||
|
<eks|x> uninet: how often do you switch from one to the other?
|
||
|
<Psyon> How big is the compiled bochs on linux?
|
||
|
<uninet> eks|x: never. But I haven't actually even tried the console GUI yet.
|
||
|
<Psyon> I havent looked at it in linux in a while
|
||
|
<eks|x> -rwxr-xr-x 1 root root 1962770 May 29 20:24 bochs
|
||
|
<Psyon> whoa!
|
||
|
<Psyon> its like 400k in windows
|
||
|
<eks|x> with fpu, debugger, and disasm
|
||
|
<Psyon> wait
|
||
|
<bryce> [bryce@monster bochs-1.2.pre1]$ strip bochs
|
||
|
<bryce> ls -[bryce@monster bochs-1.2.pre1]$ ls -l bochs
|
||
|
<bryce> -rwxrwxr-x 1 bryce bryce 441036 May 30 22:44 bochs*
|
||
|
<Psyon> 384kb
|
||
|
<Psyon> that is an out of the box compile of BugFix 2
|
||
|
<eks|x> 1.1.3 with a few addys
|
||
|
<bryce> I don't think it's the binary size, it's the ability to mix and match
|
||
|
+parts that's powerful, right?
|
||
|
<yakovlev> Well, it sounds like we want a bochs executable which loads both a
|
||
|
+GUI and a BOCHS module.
|
||
|
<uninet> eks|x: the GUI module would probably be best in Binary releases. If
|
||
|
+you could switch from say a theoretical Motif gui to a GTK GUI or QT GUI...
|
||
|
<uninet> ...it would be good since one binary would work on all of those
|
||
|
+GUI's.
|
||
|
<eks|x> what about having a main binary using a bochs module and a gui module?
|
||
|
<bryce> you can do any of these, however you want.
|
||
|
<Psyon> This is where having a separate process for the viewer and the emu
|
||
|
+comes into play
|
||
|
<Psyon> that would make it easier to switch the viewer type
|
||
|
<yakovlev> eks: jynx
|
||
|
<bryce> bochs module with no debugger, optimized for speed, or bochs module
|
||
|
+with debugger and SMP enabled, etc.
|
||
|
<MarkK> or modules across a network?
|
||
|
<bryce> I haven't used shared libs much. does that make it hard for debugger
|
||
|
+to step through the source and tell you where you are?
|
||
|
<uninet> MarkK: That would be another nice reason for modules. RFB could be
|
||
|
+used just by changing modules.
|
||
|
<yakovlev> I actually don't like using shared libs for the main bochs at all.
|
||
|
<yakovlev> Too hard to make portable.
|
||
|
<Psyon> Usually a debugger will tell you which module (lib or dll) the code is
|
||
|
+in
|
||
|
<MarkK> I'm also thinking about sim speed....
|
||
|
<yakovlev> But compiling them separately would make them useful for other
|
||
|
+things.
|
||
|
<MarkK> I can link up 5 or 10 PCs if it's networked together
|
||
|
<bryce> they are already compiled separately, as static libraries
|
||
|
<yakovlev> Well, a bigger wrapper.
|
||
|
<eks|x> -rwxr-xr-x 1 eks users 1472404 May 30 22:42 bochs
|
||
|
<eks|x> bare bochs 1.1.3
|
||
|
<uninet> bryce: but since they are static libraries, that would mean they need
|
||
|
+to be recompiled for each change, right?
|
||
|
<bryce> markk, are you thinking that several pcs would simulate it faster?
|
||
|
<yakovlev> Eat up most of iodev, for one.
|
||
|
<MarkK> just thinking it might, in the long term
|
||
|
<bryce> markk: maybe, probably the first step is multithread support on a
|
||
|
+single machine
|
||
|
<MarkK> Also, it might simulate concurrency better later on...
|
||
|
*** Roadkill (~ondrej@baikonur.orbitec.com.au) has joined channel #Bochs
|
||
|
<MarkK> when you want a disk model running in parallel to a VGA model
|
||
|
<MarkK> that sort of thing
|
||
|
*** Roadkill has left channel #Bochs
|
||
|
<MarkK> If I had one PC running the HD model, and it had the disk image
|
||
|
<bryce> Another big question is what GUI library to use, and I think it should
|
||
|
+be determined by whoever is actually motivated to do some coding.
|
||
|
<MarkK> and anotehr running the CPU model...
|
||
|
<MarkK> then things would be a bit more like a real PC
|
||
|
<MarkK> (this is later though)
|
||
|
<uninet> bryce: Like I said (on IM) I'd be willing to make a QT GUI, but I
|
||
|
+would need to wait and see how someone else created a C++ gui for bochs
|
||
|
+first...
|
||
|
<yakovlev> Mark, that's a lower down distinction than where we're talking
|
||
|
+about.
|
||
|
<MarkK> I'm a hardware guy! ;-)
|
||
|
<Psyon> hehe
|
||
|
<yakovlev> :)
|
||
|
<MarkK> gimme a break! ;-)
|
||
|
<bryce> markk: we should try some of these things. I'm afraid that bochs
|
||
|
+spends very little time simulating the behavior of the devices and TONS OF
|
||
|
+TIME simulating all those complicated x86 instructions.
|
||
|
<MarkK> yes, and I think no time (maybe) simulating the chip set right now?
|
||
|
<Psyon> I think if we are going to make a GUI that uses a toolkit, it should
|
||
|
+use one that Is cross platform
|
||
|
<Psyon> QT has a windows version
|
||
|
<Psyon> but it costs
|
||
|
<Psyon> we might be able to get a special version for bochs though
|
||
|
<bryce> what about Tk or wxWindows?
|
||
|
<Psyon> is wxWindows any good?
|
||
|
<bryce> I have no idea, their website says it is :)
|
||
|
<bryce> but it's cross platform, all C++ based, and open-source
|
||
|
<uninet> Psyon: I was mainly thinking I could port what ever free
|
||
|
+crossplatform GUI came out to QT, after the initial work was done. I've never
|
||
|
+done a GUI before, so I probably couldn't do the initial work.
|
||
|
<uninet> All I can say is that it seems to me C++ is the way to go...
|
||
|
<uninet> (versus C for the GUI)
|
||
|
<Psyon> Well... I dont see why using the standard bochs GUIs are a problem
|
||
|
<yakovlev> neither do I.
|
||
|
<Psyon> using a GTK of some sort would still have code for Windows and X11 in
|
||
|
+it
|
||
|
<uninet> Psyon: GTK for Windows isn't very good at the moment, is it?
|
||
|
<Psyon> its decent
|
||
|
<Psyon> the Mouse code needs work
|
||
|
<Psyon> ive been looking at ways to improve
|
||
|
<Psyon> the problem is the way events are handled
|
||
|
<bryce> the problem with the current one is that there's no framework to add
|
||
|
+anything at all
|
||
|
<Psyon> since handle_events() is only called every so often
|
||
|
<uninet> Wouldn't it also cause some problems since it is C-based, where as I
|
||
|
+think MS's commonctrls are C++?
|
||
|
<Psyon> do to the emulation, the time between calls is a sec or so
|
||
|
<Psyon> so it slows it down
|
||
|
<Psyon> Who here is pretty familiar with how the mouse emu works?
|
||
|
<bryce> not me
|
||
|
<yakovlev> not I.
|
||
|
<MarkK> nor I
|
||
|
<bryce> basically, you're the expert :)
|
||
|
<Psyon> when i say handle_events() do you guys know what im refering to?
|
||
|
<yakovlev> I've looked at it, but haven't had time to really get into it.
|
||
|
<Psyon> well...
|
||
|
<eks|x> same here
|
||
|
<yakovlev> Are you saying the mouse code is polled.
|
||
|
<Psyon> when you amke the GUI
|
||
|
<yakovlev> ?
|
||
|
<Psyon> you have to keep your own queue of mouse and key events
|
||
|
<Psyon> then bochs calls handle_events() in the GUI code
|
||
|
<Psyon> and you have to pass it all the events
|
||
|
<Psyon> and all of bochs runs in the same thread
|
||
|
<Psyon> so it sometimes has a delay between cals
|
||
|
<Psyon> to pass teh events to bochs
|
||
|
<Psyon> you use mouse_move() or somethign like that
|
||
|
<Psyon> and I was thinking about just passing them to bochs as they come in
|
||
|
<Psyon> but the window callback for events is on a diff thread
|
||
|
<Psyon> and I dont know if that will cause problems
|
||
|
<bryce> how often does handle_events get called, and is it on Bochs emulate
|
||
|
+time or real time?
|
||
|
<Psyon> It seems to be called every .5 to 1 sec
|
||
|
<yakovlev> Hmmmm, sounds like something potentially worth moving from the GUI
|
||
|
+layer into the general bochs layer.
|
||
|
<Psyon> when there is heavy emulation being done
|
||
|
<Psyon> Well...
|
||
|
<Psyon> if we made IODevs have diff threads
|
||
|
<Psyon> it would help
|
||
|
<bryce> but is it scheduled by the real machine's timer, or by bochs timer
|
||
|
+(like N instructions have gone by)
|
||
|
<Psyon> Bochs just has it in a loop
|
||
|
<Psyon> Its called as often as It can be i guess
|
||
|
<yakovlev> from what Don is saying, sounds like bochs instructions.
|
||
|
<bryce> I'm afraid I need to look at it more to be able to know what is going
|
||
|
+on.
|
||
|
<Psyon> // Called periodically (vga_update_interval in .bochsrc) so the// the
|
||
|
+gui code can poll for keyboard, mouse, and other// relevant events.
|
||
|
<eks|x> I tend to agree with Greg that it's bochs' instructions
|
||
|
<Psyon> There
|
||
|
<Psyon> that is from Win32.cc in the GUI dir
|
||
|
<Psyon> Hmm...
|
||
|
<Psyon> I never noticed that
|
||
|
<Psyon> I wonder if I set vga_update_interval lower
|
||
|
<Psyon> but still
|
||
|
<Psyon> with bochs all in one thread
|
||
|
<Psyon> it would still cause latency
|
||
|
<bryce> I'm worried that we're getting far far away from gui libraries and who
|
||
|
+wants to write some dialog boxes... :)
|
||
|
<Psyon> hehe
|
||
|
<bryce> I want to fix that mouse too, some day.
|
||
|
<Psyon> I think that is a big part of the useability problem
|
||
|
<uninet> The GUI code is already seperated into a different module, right?
|
||
|
<uninet> (or rather library)
|
||
|
<Psyon> how well does the mouse work in X11?
|
||
|
<bryce> greg and don said, what's wrong with the current gui ?
|
||
|
<eks|x> tim: right
|
||
|
<eks|x> tim: libgui.a
|
||
|
<Psyon> There are some optimizing and cleanup that needs to be done with the
|
||
|
+current ones
|
||
|
<Psyon> but that is all
|
||
|
<uninet> eks|x: Do you know if it is done in C or C++?
|
||
|
<eks|x> tim: seemslike c++ to me
|
||
|
<Psyon> it is technically C++
|
||
|
<eks|x> bx_gui_c::handle_events(void)
|
||
|
<Psyon> but doesnt use classes
|
||
|
<eks|x> ;)
|
||
|
<Psyon> oh
|
||
|
<yakovlev> It sounds to me like the way handle_events is used is awkward.
|
||
|
<Psyon> guess it doees
|
||
|
<Psyon> hehe
|
||
|
<eks|x> eheh
|
||
|
<bryce> Bochs is a wierd mix of C++ without using a single feature of C++.
|
||
|
<bryce> :)
|
||
|
<Psyon> heheh
|
||
|
<uninet> Ah, thanks Bryce.
|
||
|
<bryce> greg and don said, what's wrong with the current gui ?
|
||
|
<Psyon> I dont think anything is
|
||
|
<bryce> and I think that's important to hash out
|
||
|
<uninet> So, theoretically, it wouldn't be hard to create a GUI using a C++
|
||
|
+toolkit?
|
||
|
<Psyon> It might look to plain for some people
|
||
|
<yakovlev> No GUI configuration of parameters.
|
||
|
<bryce> the thing I'm missing a LOT is the ability to put up dialogs
|
||
|
<uninet> Psyon: It looks rather bad, and doesn't have any config tools.
|
||
|
<bryce> such as "You just got a panic. do you want to continue"
|
||
|
<Psyon> hehehe
|
||
|
<bryce> or "Now choose the disk image you want to be in drive A:"
|
||
|
<Psyon> I think a live register display would help for debugging too
|
||
|
<bryce> that sort of thing
|
||
|
<MarkK> Speaking of "You just got a panic. do you want to continue?"
|
||
|
<Psyon> making swapable floppy images wouldnt be hard
|
||
|
<Psyon> beings you can do it now
|
||
|
<Psyon> just unmount it
|
||
|
<bryce> how?
|
||
|
<Psyon> copy a new disk
|
||
|
<MarkK> My 9 year old wants me to come say goodnight
|
||
|
<Psyon> and remount
|
||
|
<MarkK> bye
|
||
|
<eks|x> Psyon: if you mean live reg update, simnow! made the mistake of doing
|
||
|
+such, should be on/off thingy
|
||
|
<bryce> renaming the disk image file?
|
||
|
<bryce> markk: good night!
|
||
|
<Psyon> yes
|
||
|
<MarkK> later
|
||
|
*** Signoff: MarkK ()
|
||
|
<Psyon> just copy the new image to the one that is named in bochsrc
|
||
|
<Psyon> well...
|
||
|
<Psyon> we would want to make it loadable
|
||
|
<Psyon> but im saying
|
||
|
<yakovlev> copying the image file is awkward.
|
||
|
<Psyon> the features are there to do so
|
||
|
<bryce> yeah, and then click the stupid disk icon twice?
|
||
|
<bryce> it sucks!
|
||
|
<yakovlev> And the size can't change.
|
||
|
<Psyon> oviously you would unmount... change the image name in memmory
|
||
|
<Psyon> then remount
|
||
|
<Psyon> Im just saying
|
||
|
<Psyon> it should be hard to implement
|
||
|
<bryce> what's keeping us from having a dialog box?
|
||
|
<yakovlev> And you often forget to unmount, or forget to remount.
|
||
|
<bryce> IMHO, no GUI toolkit to write in
|
||
|
<yakovlev> I see your point.
|
||
|
<Psyon> Well... just make a new toolbar button that lets you load a new image
|
||
|
<bryce> psyon: should or shouldn't be hard to implement
|
||
|
<Psyon> shouldnt be
|
||
|
<bryce> right
|
||
|
<Psyon> well...
|
||
|
<Psyon> the GUI shoudl have access to all the internal bochs functions
|
||
|
<Psyon> init_disk
|
||
|
<Psyon> or waht ever it is
|
||
|
<yakovlev> What do you mean all the internal bochs functions?
|
||
|
<yakovlev> I VERY MUCH disagree with that statement.
|
||
|
<Psyon> Well
|
||
|
<Psyon> functions that arent in the GUI code
|
||
|
<bryce> more toolbar buttons would be fine, but I think we should use
|
||
|
+wxWindows or Tk to allow us to write a somewhat friendly set of controls for
|
||
|
+disk changes, choosing how verbose the logging should be, setting IPS
|
||
|
<yakovlev> The GUI should have access to only a limited number of bochs
|
||
|
+functions.
|
||
|
<bryce> (or something other than having to write native gui code for every
|
||
|
+little thing)
|
||
|
<eks|x> reducing the number of interaction points reduce the error rate
|
||
|
<eks|x> easier to debug
|
||
|
<yakovlev> I was thinking, what if we used something like an STL dictionary
|
||
|
+and/or list of parms that the GUI code gives bochs on startum.
|
||
|
<Psyon> bx_floppy_ctrl_c::init(
|
||
|
<Psyon> )
|
||
|
<uninet> bryce: I think Tk would be a mistake since it really doesn't work
|
||
|
+very well in Windows (in my experience).
|
||
|
<bryce> we haven't even agreed that we need any gui library, that's what I'm
|
||
|
+getting at.
|
||
|
<yakovlev> no, the GUI should get some well thought-out interfaces, not
|
||
|
+willy-nilly access to bochs internals.
|
||
|
<Psyon> BAH! I cant find the function that ejects it
|
||
|
<bryce> IMHO just making all the interfaces to the GUI through public member
|
||
|
+functions is a good way to "define the interface"
|
||
|
<yakovlev> Sort of.
|
||
|
<bryce> then the .h file for the outermose gui object says exactly what you
|
||
|
+can and can't do with it.
|
||
|
<yakovlev> What we really need are acls.
|
||
|
<bryce> ? access control lists?
|
||
|
<yakovlev> For instance, some disk public member functions should only be
|
||
|
+called by the emulator.
|
||
|
<yakovlev> others should only be called by the GUI.
|
||
|
<eks|x> can acl be checked at startup only or does it need to be checked at
|
||
|
+every function call?
|
||
|
<bryce> I mean that the GUI can only call public member functions of the
|
||
|
+interface object, not that the GUI can call public member functions of any
|
||
|
+object it can find.
|
||
|
<uninet> yakovlev: Right... the GUI doesn't need access to everything.
|
||
|
<yakovlev> Having a single .h file with the functions that are allowed to be
|
||
|
+accessed outside would be listed there.
|
||
|
<yakovlev> acls was just saying that public vs. private isn't descriptive
|
||
|
+enough in some cases.
|
||
|
<Psyon> Hmm.... (kinda old topic) but If im looking at this correctly you can
|
||
|
+call bx_floppy_ctrl_c::init() with a new image name it bochs should reload it
|
||
|
<Psyon> and it can be a new size
|
||
|
<bryce> for example, compile the gui library with only the .h file of one
|
||
|
+bochs class, an interface object whose methods define exactly what a GUI can
|
||
|
+do.
|
||
|
<yakovlev> Oh, okay, that's exactly what I'm advocating then, Bryce.
|
||
|
<yakovlev> maybe, but bochs doesn't handle floppies right anyways.
|
||
|
<Psyon> that seems like a smart idea
|
||
|
<Psyon> what doesnt it handle?
|
||
|
<Psyon> I reads my real floppies now :)
|
||
|
<eks|x> read with MT=0 ;)
|
||
|
<Psyon> hehe
|
||
|
<yakovlev> They should be interfaced to the GUI as simply a file interface and
|
||
|
+ejected/inserted.
|
||
|
<yakovlev> it's not separated that well.
|
||
|
<yakovlev> file interface meaning a large set of unorganized data.
|
||
|
<Psyon> hehe
|
||
|
<bryce> maybe the first step will be to clean up the interface between current
|
||
|
+GUI library and the rest.
|
||
|
<uninet> Question: if and when the GUI gets a config dialog, how should it
|
||
|
+decide whether to save changes to ~/bochsrc or to the bochsrc in the current
|
||
|
+directory?
|
||
|
<yakovlev> Right, that's the idea.
|
||
|
<Psyon> File/Save menu?
|
||
|
<bryce> wherever you choose
|
||
|
<Psyon> or ask on close
|
||
|
<Psyon> if changes are to be saved
|
||
|
<uninet> Ah, that would make sense.
|
||
|
<Psyon> just like a word processor would do
|
||
|
<yakovlev> What's a bochsrc?
|
||
|
<Psyon> bochsrc is the config file
|
||
|
<yakovlev> no, you missed the point.
|
||
|
<bryce> :)
|
||
|
<uninet> Psyon: good point, that would permit runtime only changes.
|
||
|
<bryce> bochsrc = some place to save the settings that you like, in some form
|
||
|
<bryce> so that you can get them back
|
||
|
<yakovlev> right.
|
||
|
<bryce> and also send them to somebody so they can duplicate your setup
|
||
|
<Psyon> Would be nice to have something like VMWare, so that when the program
|
||
|
+starts it asks what configuration you wish to load
|
||
|
<yakovlev> Something which exists totally outside the bochs emulation layer.
|
||
|
<Psyon> and has the option to start with power off
|
||
|
<uninet> Psyon: I agree, that would be VERY nice.
|
||
|
<bryce> greg, yes only that gui part would be reading and writing the bochsrc
|
||
|
+I think.
|
||
|
<uninet> VMware has a very well thought out GUI, I think it would be a good
|
||
|
+idea to use a lot of it's ideas.
|
||
|
<Psyon> hehehe
|
||
|
<eks|x> VMWare is quite good on the gui side, simply missing debugging :P
|
||
|
<yakovlev> Watch out for patents there. They're going to be looking at us
|
||
|
+fairly closely.
|
||
|
<Psyon> hehe
|
||
|
<eks|x> are gui patentable?
|
||
|
<bryce> yes, I've been handling different configurations by making a different
|
||
|
+directory for every OS that I can run
|
||
|
<Psyon> well... I dont think that a start with power off option is patented
|
||
|
<Psyon> I just like that idea, so you can start the program
|
||
|
<bryce> and each one has its own .bochsrc, disk images, and symbolic link to
|
||
|
+the most recent bochs binary and ROM
|
||
|
<Psyon> make config changes
|
||
|
<Psyon> then power on the system
|
||
|
<Psyon> and since there is already a power button on the toolbar
|
||
|
<uninet> yakovlev: you would just want to copy the general ideas, hopefully
|
||
|
+with enough improvements that the VMware people wouldn't even care.
|
||
|
<bryce> I'm not saying I like the "each os in a different directory", only
|
||
|
+that that's what I've resorted to for now.
|
||
|
<bryce> unless we do a blatant copy of their toolbar or something, I don't
|
||
|
+think we're in trouble.
|
||
|
<Psyon> can you run bochs with a config file as an argument... like "bochs
|
||
|
+mysystem.rc"
|
||
|
<Psyon> if not
|
||
|
<bryce> not sure if it works now, but it would be useful sometimes
|
||
|
<Psyon> yes
|
||
|
<Psyon> that is something else that might be done in the next release or
|
||
|
+something
|
||
|
<bryce> go for it :)
|
||
|
<Psyon> actually
|
||
|
<uninet> I thought it already worked as a command argument.
|
||
|
<Psyon> I think all options can be done on the command line
|
||
|
<Psyon> cant they
|
||
|
<Psyon> yeah
|
||
|
<bryce> yes something like bochs "boot:c" "diskc:blabla"
|
||
|
<Psyon> I mostly look at the GUI code so im kinda dumb as to how the rest
|
||
|
+works
|
||
|
<Psyon> hehe
|
||
|
<bryce> I think we should be able to do basically any kind of .bochsrc work in
|
||
|
+a GUI, if we ever expect to make it a user-friendly thing.
|
||
|
<Psyon> yeah
|
||
|
<yakovlev> I'll make up a generic interface in the next few days and post it
|
||
|
+to the list. It'll be VERY generic. That'll be a RFC.
|
||
|
<Psyon> I think the current way of bochs telling the GUI what Buttons to make
|
||
|
+on the tool bar could be carried over to a menu system also
|
||
|
<bryce> and once you've got that, it's not much of a stretch to have runtime
|
||
|
+control of some things like IPS and log behavior too
|
||
|
<yakovlev> For now, I'm headed to bed.
|
||
|
<uninet> 'night Yak.
|
||
|
<Psyon> cya
|
||
|
<bryce> greg, sounds great!
|
||
|
<yakovlev> All you West Coast boys have fun.
|
||
|
<yakovlev> :)
|
||
|
<bryce> good night
|
||
|
<Psyon> night
|
||
|
*** Signoff: yakovlev (Java Chat http://www.undernet.org/webchat.php)
|
||
|
<Psyon> bx_gui_c::headerbar_bitmap
|
||
|
<Psyon> oops
|
||
|
<Psyon> right now bochs calles bx_gui_c::headerbar_bitmap() and
|
||
|
+bx_gui_c::show_headerbar() to make the toolbar
|
||
|
<Psyon> something like that could be done for a Menu system
|
||
|
<Psyon> basically
|
||
|
<eks|x> Psyon: I think the bochs gfx window shouldn't have icons at all
|
||
|
<Psyon> well...
|
||
|
<Psyon> im saying
|
||
|
<Psyon> the same system
|
||
|
<Psyon> could be used to build menus
|
||
|
<eks|x> Psyon: I think the gfx window should be a videocard dev using the gui
|
||
|
+toolkit
|
||
|
<Psyon> so that the GUI doesnt have to be changed with each new option
|
||
|
<bryce> right, something pretty generic can be worked out like the toolbar
|
||
|
+thing
|
||
|
<uninet> eks|x: Wouldn't removing the icons lower the friendliness level below
|
||
|
+it's already "lowness"?
|
||
|
<eks|x> the gui interface would be using the gui toolkit for the icons
|
||
|
+directly
|
||
|
<eks|x> uninet: if you build up a gui to control bochs, you can have icons in
|
||
|
+it, no on the bochs output
|
||
|
<Psyon> bx_gui_c::headerbar_bitmap() is passed a bitmap ID returned by an
|
||
|
+earlier function, the alignment (left or right), and a pointer to a function
|
||
|
<eks|x> what I would like to see, is a window with nothing in it else than
|
||
|
+what you see on the crt of your comp
|
||
|
<Psyon> eks: the current Icons are just simple bit maps used to display the
|
||
|
+buttons
|
||
|
<Psyon> nothing stopping us from making that A toolbar button
|
||
|
<Psyon> or a menu item
|
||
|
<eks|x> and another window that is the bochs control/debugger/etc
|
||
|
<Psyon> I would like a full screen option :)
|
||
|
<Psyon> Ive been looking at how to do that also
|
||
|
<eks|x> definately :)
|
||
|
<Psyon> the current tool bar messes it up a little
|
||
|
<eks|x> yip
|
||
|
<Psyon> but I can work around it
|
||
|
<Psyon> at least for windows
|
||
|
<uninet> Does anyone here know how to convert normal bitmaps to the ones in
|
||
|
+the .h files in the source code?
|
||
|
<eks|x> having it all in the gui bochs control would allow that
|
||
|
<Psyon> Im not as familiar with X11 programming
|
||
|
<eks|x> tim: sorry, not me
|
||
|
<Psyon> uni: the ones in the H are just 1bit bitmaps
|
||
|
<bryce> we need to choose at what level the gui/bochs interface should talk.
|
||
|
+I guess this is what Greg said he would work on
|
||
|
<eks|x> yeah, the rfc
|
||
|
<uninet> Pyson: Win4Lin accomplishes fullscreen by starting a new X session on
|
||
|
+another tty, and then maximizing the window it's in...
|
||
|
<bryce> but there is everything from: Now print dialog box #7, which asks
|
||
|
+what disk you want to insert now
|
||
|
<uninet> Psyon: 1bit bitmaps?
|
||
|
<bryce> to: create a dialog, with a text field here and a button there
|
||
|
<Psyon> yep
|
||
|
<eks|x> bryce: the 'to:' is a gui toolkit job
|
||
|
<Psyon> each bit represetns one pixel
|
||
|
<bryce> this is a large space, and somewhere in the middle is the best answer
|
||
|
<Psyon> either black or white
|
||
|
<Psyon> or forground or background
|
||
|
<eks|x> #7 is the actual job of a gui front-end
|
||
|
<bryce> psyon: I think he wants to know how to make a new 1-bit bitmap to
|
||
|
+substitute
|
||
|
<Psyon> I should say monochomr
|
||
|
<uninet> Psyon: Ah, is there anyway to do color 8 bit bitmaps this way?
|
||
|
<Psyon> We would have to change how they are passed to the gui
|
||
|
<uninet> bryce: Yeah, although perferably also raise the quality above 1-bit.
|
||
|
<Psyon> unsigned bx_gui_c::create_bitmap(const unsigned char *bmap, unsigned
|
||
|
+xdim, unsigned ydim)
|
||
|
<Psyon> char *bmap is the bitmap
|
||
|
<Psyon> and that function in the GUI makes a native bitmap
|
||
|
<bryce> what tool can convert a GIF into such a bitmap though?
|
||
|
<eks|x> don: seems to me like the internals of the functions uses one bit
|
||
|
<Psyon> Hmm...
|
||
|
<Psyon> yes
|
||
|
<Psyon> You might have to do it manually
|
||
|
<uninet> Manually?
|
||
|
<uninet> How so?
|
||
|
<Psyon> yes
|
||
|
<eks|x> bryce: afaik, The Gimp under X, or photoshop under Win
|
||
|
<Psyon> picture an 16 by 16 square
|
||
|
<bryce> what format? XBM ?
|
||
|
<eks|x> bryce: monochrome bitmaps
|
||
|
<eks|x> .bmp
|
||
|
<Psyon> that would take 4 bytes to display
|
||
|
<Psyon> wait
|
||
|
<eks|x> Psyon: is the routine actually using whole byte of value 1 or 0 only?
|
||
|
<Psyon> well
|
||
|
<Psyon> it uses the bits
|
||
|
<Psyon> not the bytes
|
||
|
<bryce> that icon currently looks like this:
|
||
|
<bryce> static unsigned char bochs_icon_bits[] = {
|
||
|
<bryce> 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||
|
+0x00,
|
||
|
<bryce> 0xe0, 0xff, 0xff, 0x07, 0xf8, 0xff, 0xff, 0x1f, 0xf8, 0xff, 0xff,
|
||
|
+0x1f,
|
||
|
<bryce> 0xfc, 0xc7, 0xe3, 0x3f, 0xfc, 0xc7, 0xe3, 0x3f, 0xfc, 0xc3, 0xc3,
|
||
|
+0x3f,
|
||
|
<bryce> 0xfc, 0xc3, 0xc3, 0x3f, 0xf8, 0xc1, 0x83, 0x1f, 0xf0, 0xc0, 0x03,
|
||
|
+0x0f,
|
||
|
<bryce> 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03,
|
||
|
+0x00,
|
||
|
<bryce> 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03,
|
||
|
+0x00,
|
||
|
<eks|x> so a pic shouldn't be bigger than 32bytes
|
||
|
<bryce> 0x00, 0xc0, 0x03, 0x00, 0x00, 0xc0, 0x03, 0x00, 0xf0, 0xc0, 0x03,
|
||
|
+0x0f,
|
||
|
<bryce> 0xf8, 0xc1, 0x83, 0x1f, 0xfc, 0xc3, 0xc3, 0x3f, 0xfc, 0xc3, 0xc3,
|
||
|
+0x3f,
|
||
|
<bryce> 0xfc, 0xc7, 0xe3, 0x3f, 0xfc, 0xc7, 0xe3, 0x3f, 0xf8, 0xff, 0xff,
|
||
|
+0x1f,
|
||
|
<bryce> 0xf8, 0xff, 0xff, 0x1f, 0xe0, 0xff, 0xff, 0x07, 0x00, 0xff, 0xff,
|
||
|
+0x00,
|
||
|
<bryce> 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, };
|
||
|
<uninet> So if you created a 1-bit picture in the gimp, and saved it as a bmp,
|
||
|
+how would you get it in that format?
|
||
|
<Psyon> make that into 1s and 0s
|
||
|
<Psyon> and you will actually see the picture
|
||
|
<bryce> no, BMP is not the same as a C header file!
|
||
|
<Psyon> you have to convert that to a BMP
|
||
|
<eks|x> tim: you need some tool that converts binary->c headers
|
||
|
<uninet> eks|x: Hmm... do you know of a tool that can do that?
|
||
|
<eks|x> tim: a search on freshmeat should do that for ya
|
||
|
<Psyon> I could prolly make one
|
||
|
<eks|x> tim: or wait, are ya under win?
|
||
|
<bryce> this sort of crap is what a GUI toolkit should be doing for us
|
||
|
<bryce> read BMP or GIF or something, and execute the right code for each
|
||
|
+platform to make that the icon.
|
||
|
<eks|x> bryce: right
|
||
|
<Psyon> well... GTKs will want to use XPM or Jpg or PNG
|
||
|
<Psyon> which would look nicer
|
||
|
<eks|x> png seems fine to me
|
||
|
<uninet> eks|x: Linux.
|
||
|
<eks|x> tim: freshmeat.net <-- solution for ya ;)
|
||
|
<bryce> we are using a VERY low-level toolkit and that's why we have icons
|
||
|
+that look like a C header file.
|
||
|
<Psyon> I think we could easily convert this to use 256 color bitmaps
|
||
|
<uninet> eks|x: thanks. I think I'll try my hands at creating some new bitmaps
|
||
|
+then.
|
||
|
<uninet> Psyon: that would be nice.
|
||
|
<Psyon> each byte representing a color in the color table that bochs uses
|
||
|
<eks|x> Psyon: normalized palette or each their owns?
|
||
|
<eks|x> k
|
||
|
<Psyon> normallized
|
||
|
<eks|x> bochs palette
|
||
|
<Psyon> bochs has an internal pallet
|
||
|
<Psyon> Actually... looking at this
|
||
|
<eks|x> btw, one annoying thing I've seen is the actual colors used when
|
||
|
+displaying text in bochs (16 colors)
|
||
|
<Psyon> the GUI code would all that needs to be changed
|
||
|
<Psyon> just specify the bitmap the same way in the header
|
||
|
<eks|x> is this palette easily modifiable?
|
||
|
<Psyon> create_bitmap is just passed a pointer to the first byte
|
||
|
<Psyon> the they dimensions of the pic
|
||
|
<Psyon> so with a mono BMP
|
||
|
<Psyon> the size of the pic is (X * Y) / 8
|
||
|
<Psyon> but create images still wont be real easy
|
||
|
<Psyon> the bytes in the .h files are not in BMP format
|
||
|
<uninet> Hmm... I wonder how Kevin did it?
|
||
|
<bryce> I'm going to sound like a broken record...
|
||
|
<Psyon> he drew them out by hand
|
||
|
<bryce> :)
|
||
|
<Psyon> like an ASCII artist would
|
||
|
<bryce> ....use a toolkit!
|
||
|
<Psyon> why?
|
||
|
<Psyon> Toolkits take up too much space
|
||
|
<Psyon> :)
|
||
|
<eks|x> eheh
|
||
|
<bryce> a cross-platform GUI library has to deal with this problem
|
||
|
<uninet> Psyon: So you would just put out hex symbols until they looked like
|
||
|
+something?
|
||
|
<eks|x> "let's write bochs in asm, so it can fit in 100kb"
|
||
|
<eks|x> ;)
|
||
|
<bryce> of icon image formats or whatever
|
||
|
<Psyon> Yep
|
||
|
<Psyon> hehe
|
||
|
<Psyon> I think the current way of doing the GUI is nice
|
||
|
<Psyon> its just the actuall GUIs
|
||
|
<Psyon> that suck
|
||
|
<Psyon> heheh
|
||
|
<eks|x> don: any idea for that 16 colors palette used to display vga text?
|
||
|
<eks|x> hard to fix?
|
||
|
<Psyon> reword that
|
||
|
<eks|x> well, clear white gets out as light blue..
|
||
|
<eks|x> etc, colors are screwed
|
||
|
* eks|x should add a bug report..
|
||
|
<Psyon> Hmm...
|
||
|
<uninet> So most likely it would be easier to wait until we switch to a
|
||
|
+toolkit to work on the icons?
|
||
|
<eks|x> hrmm.. the vga color palette, when displaying text in the guest, gets
|
||
|
+out wrong
|
||
|
<Psyon> actually that standard VGA pallet kinda shows it as offwhite I think
|
||
|
<bryce> Tim, IMHO yes :)
|
||
|
<Psyon> and text looks fine to me
|
||
|
<eks|x> Psyon: colors are screwed on my side
|
||
|
<uninet> The text looks good to me too... just like a normal console.
|
||
|
<eks|x> Psyon: light blue is dark blue
|
||
|
<uninet> bryce: thanks.
|
||
|
<eks|x> Psyon: white is light blue, etc
|
||
|
<Psyon> It might be the GUI code then
|
||
|
<uninet> eks|x: Are you running at 256 colors?
|
||
|
<Psyon> each char on the screen is represented by 2 bytes
|
||
|
<bryce> on X windows, my text colors are always messed up unless I quit
|
||
|
+netscape first, and then run bochs
|
||
|
<Psyon> one is the character
|
||
|
<Psyon> and one is the format options
|
||
|
<eks|x> tim: full 32bit color
|
||
|
<Psyon> forground and background color
|
||
|
<Psyon> you running in X or windows?
|
||
|
<eks|x> X
|
||
|
<Psyon> ok
|
||
|
<uninet> eks|x: do the other apps around Bochs have weird colors too (when
|
||
|
+bochs is running)?
|
||
|
<Psyon> can you send me a screen?
|
||
|
<bryce> I have 8-bit color I guess, so netscape sucks up all the available
|
||
|
+colors , leaving my text purple or something
|
||
|
* eks|x is an anti-windows kindof guy ;)
|
||
|
<eks|x> tim: nope, I can screw in The Gimp in full color no problem but bochs
|
||
|
+is always screwed, alone or not
|
||
|
<bryce> wierd
|
||
|
<eks|x> the 0x07 color in text is fine
|
||
|
<eks|x> the 0x01 color is very too dark
|
||
|
<eks|x> and the 0x09 is like the 0x01 should normally be
|
||
|
<uninet> eks|x: Hmm... could it be an misconfig with bochrc's pallet settings
|
||
|
+(I think it can have a shared or internal pallet, IIRC)?
|
||
|
<eks|x> 0x0F gets out as the original 0x09
|
||
|
<Psyon> That is proably the internal bochs Pallet
|
||
|
<eks|x> that's my guess too
|
||
|
<Psyon> http://bochs.sourceforge.net/screenshot/freedos.png
|
||
|
<Psyon> that screen shot looks fine
|
||
|
<Psyon> so maybe its just you :)
|
||
|
<eks|x> eheh
|
||
|
<Psyon> actually it looks yellow
|
||
|
<Psyon> http://bochs.sourceforge.net/screenshot/kidos.jpg
|
||
|
<Psyon> but that one seems ok
|
||
|
<eks|x> ehe
|
||
|
<Psyon> I need to set up another linux box to play with bochs on
|
||
|
<Psyon> I dont like to run it on my web server
|
||
|
<Psyon> the X11 GUI uses XSetForeground and XSetBackground
|
||
|
<Psyon> so it maybe a problem with those
|
||
|
<Psyon> Yeah...
|
||
|
<Psyon> looking over the X code
|
||
|
<Psyon> I woudl say it is somethign with your X color pallet
|
||
|
<Psyon> Did I say somethign wrong? everyone is quiet?
|
||
|
*** Signoff: eks|x (h51.us.undernet.org McLean.VA.US.Undernet.Org)
|
||
|
*** Signoff: bryce (h51.us.undernet.org McLean.VA.US.Undernet.Org)
|
||
|
*** Signoff: uninet (h51.us.undernet.org McLean.VA.US.Undernet.Org)
|
||
|
*** Signoff: Psyon (http://www.psyon.org <-- It's all that and a Unix manual!)
|
||
|
*** uninet (~tbutler@c1331724-a.schrls1.mo.home.com) has joined channel #Bochs
|
||
|
*** Psyon (exodus@exodus.psyon.org) has joined channel #Bochs
|
||
|
*** bryce (~bryce@debussy.ne.mediaone.net) has joined channel #Bochs
|
||
|
<uninet> Ah people are posting again... I thought everyone had left and my
|
||
|
+client just didn't sense it.
|
||
|
<uninet> Psyon: Thanks!
|
||
|
<Psyon> Hmm..
|
||
|
<uninet> Perhaps I can make sense of some of this.
|
||
|
<Psyon> well that kinda explains why he did it that way
|
||
|
<Psyon> In windows
|
||
|
<Psyon> I an make it use 256 color bitmaps
|
||
|
<Psyon> not sure how to do it in X11
|
||
|
<Psyon> or Mac
|
||
|
<Psyon> for that matter
|
||
|
<Psyon> :)
|
||
|
<uninet> :-)
|
||
|
<uninet> I suppose this is a good reason for me to finally apply myself to
|
||
|
+learn C++.
|
||
|
<uninet> This chat seems to be dying a slow death...
|
||
|
<bryce> I'm back, sorry
|
||
|
<uninet> Hey Bryce!
|
||
|
<bryce> who's left
|
||
|
<Psyon> hehe
|
||
|
<uninet> eveyone besides myself and Don.
|
||
|
<Psyon> me
|
||
|
<uninet> (and you of course)
|
||
|
<bryce> are you still talking about icons :)
|
||
|
<uninet> Yup.
|
||
|
<Psyon> Yeah, but we can change the subject to something more important
|
||
|
<Psyon> hehe
|
||
|
<uninet> Sounds good, I think I'll sit it out for the toolkit to be decided on
|
||
|
+(if we even decide on one)
|
||
|
<bryce> I'm hoping that someone has actual experience with a cross-platform
|
||
|
+toolkit or is willing to learn
|
||
|
<Psyon> hehe
|
||
|
<Psyon> I can learn
|
||
|
<Psyon> I guess
|
||
|
<bryce> since we have bugs and features galore in addition to the gui to work
|
||
|
+on too
|
||
|
<uninet> The difficult thing is, there are lots of qualified people, but not
|
||
|
+so many that actually know bochs.
|
||
|
<Psyon> I know the bochs GUI parts
|
||
|
<Psyon> at least the current way
|
||
|
<uninet> I'd love to help... maybe I could help out somewhat...
|
||
|
<bryce> I would say it doesn't matter if they know bochs, it only matters that
|
||
|
+they care about it enough to spend some time on it
|
||
|
<bryce> we need to help define the interface
|
||
|
<Psyon> That is my big problem right now
|
||
|
<Psyon> I have to kill some of my other projects
|
||
|
<Psyon> and devot time to the major ones
|
||
|
<uninet> killall *projects
|
||
|
<Psyon> hehe
|
||
|
<bryce> (we = people who do know bochs and know what the GUI needs to be able
|
||
|
+to do)
|
||
|
<Psyon> http://www.perlhq.com <-- I have to keep stuff on that page updated.
|
||
|
<bryce> my road map is:
|
||
|
<bryce> fix up 1.2.pre1
|
||
|
<bryce> then call it 1.2
|
||
|
<bryce> put binaries of 1.2 everywhere under the sun
|
||
|
<Psyon> hehehe
|
||
|
<bryce> and then we have a chance at getting more people aware of the project
|
||
|
<uninet> Sounds good.
|
||
|
<bryce> I bet there are lots of people who stopped looking at www.bochs.com
|
||
|
+during the last year
|
||
|
<uninet> I'm suppose to get it up everywhere under the sun, right?
|
||
|
<bryce> I'll be happy to help with that, once we have a 1.2 that we're proud
|
||
|
+of.
|
||
|
<uninet> It seems to me, you should be proud of the current 1.2, it's a lot
|
||
|
+nicer being able to type bochs-dlx immediately after install, and try it out!
|
||
|
<bryce> :)
|
||
|
<Psyon> I need to fix up the raw disk code a little
|
||
|
<bryce> I'm nearly proud of it :)
|
||
|
<Psyon> right now its a hack
|
||
|
<Psyon> I need to make it proper
|
||
|
<uninet> Will that be difficult?
|
||
|
<Psyon> no
|
||
|
<Psyon> It just assumes a size of the disk
|
||
|
<bryce> well even having a 1.2 that makes people say "Wow that has a lot of
|
||
|
+potential, I wonder if there's a new one" would be good enough
|
||
|
<Psyon> _stat() on windows doesnt work when \\.\a: is opened
|
||
|
<Psyon> just need to make it check to see if its using a raw disk or now
|
||
|
<Psyon> not
|
||
|
<uninet> bryce: I agree. If people see Bochs poping on Freshmeat and such
|
||
|
+every few weeks, it might make people realize this project is alive!
|
||
|
<Psyon> Just need to get disk info a diff way
|
||
|
<bryce> psyon, do you have cvs?
|
||
|
<Psyon> I can set it up again
|
||
|
<bryce> it would probably help in staying current
|
||
|
<bryce> or maybe CVS snapshots are better, I don't know
|
||
|
<Psyon> oh
|
||
|
<Psyon> you just mean to get the code
|
||
|
<bryce> yes
|
||
|
<Psyon> i thought you meant the CVS server
|
||
|
<bryce> no we have one of those now
|
||
|
<Psyon> I have CVS on the linux box
|
||
|
<Psyon> Ill have to get a client for this one
|
||
|
<Psyon> ive just been using snapshots
|
||
|
<bryce> whatever works
|
||
|
<bryce> if you are actively messing with the code, cvs update would be useful
|
||
|
<bryce> random RFB thought: if we get networking going on bochs, you could run
|
||
|
+vncserver within bochs and connect to it with a vncviewer on the real
|
||
|
+machine, right?
|
||
|
<Psyon> Yes
|
||
|
<bryce> might be slow
|
||
|
<Psyon> but it would work slowly
|
||
|
<uninet> What is the difference between RFB and VNC again?
|
||
|
<Psyon> RFB is the protolcol
|
||
|
<Psyon> VNC is the program
|
||
|
<bryce> RFB = request for Bochs?
|
||
|
<uninet> Ah, I see... thanks. Sorry, I know that was a dump question.
|
||
|
<Psyon> brb... potty break
|
||
|
<uninet> hahaha
|
||
|
<uninet> I don't know if that was what AT&T was thinking, but I think that is
|
||
|
+a good explaination of that acronym
|
||
|
<bryce> :)
|
||
|
<uninet> Well, and then there were two.
|
||
|
<bryce> I think it might be easy to put those few survey questions on a
|
||
|
+SourceForge survey
|
||
|
<uninet> That would be nice... to get a feel for the general opinions of the
|
||
|
+Bochs community.
|
||
|
<Psyon> ok
|
||
|
<Psyon> bak
|
||
|
<bryce> I first looked at the SF survey as a way to handle the testing forms,
|
||
|
+and it really was not good for that, but for independent questions like
|
||
|
+these, it would be fine.
|
||
|
<Psyon> I just may be tooting my own horn... but I think bochs-RFB is a good
|
||
|
+way to separate the emulator and the GUI :)
|
||
|
<uninet> How do you set it up?
|
||
|
<Psyon> bochs RFB?
|
||
|
<bryce> tim: you have to be admin on the project
|
||
|
<uninet> Don, I agree, I think RFB is a very good system of dividing the GUI
|
||
|
+and emulator.
|
||
|
<bryce> and then type in the questions and answers, it's all web form stuff
|
||
|
<uninet> Psyon: I meant survey forms.
|
||
|
<uninet> bryce: Ah... I see. That's why I couldn't figure out how to set up a
|
||
|
+survey. :-)
|
||
|
<bryce> Don: doesn't RFB imply that you are sending a bunch of pixels for each
|
||
|
+VGA character, not just a single ascii code?
|
||
|
<Psyon> Uhh... Yes
|
||
|
<uninet> afk.
|
||
|
<Psyon> We need to write our own proto to optimize it
|
||
|
<bryce> did you have to "draw" the toolbar yourself?
|
||
|
<Psyon> but I went with RFB
|
||
|
<Psyon> since there are so many viewers
|
||
|
<Psyon> yes I drew the toolbar
|
||
|
<Psyon> but all teh GUIs do that
|
||
|
<bryce> right
|
||
|
<Psyon> I just draw it in the local frame buffer
|
||
|
<Psyon> and send it like the rest of the screen updates
|
||
|
<bryce> so if you were going to make a dialog box in Bochs-RFB, you would
|
||
|
+really have to do it without benefit of any library.
|
||
|
<Psyon> Right!
|
||
|
<bryce> like a button, you have to render it, handle clicks to it, etc.
|
||
|
<Psyon> yeah
|
||
|
<uninet> back.
|
||
|
<Psyon> I never said there werent draw backs
|
||
|
<Psyon> but
|
||
|
<uninet> Could the client vnc GUI use a toolkit to render a button?
|
||
|
<Psyon> I was going for compatibility of the viewer
|
||
|
<bryce> no a VNC client is VERY simple, right?
|
||
|
<Psyon> VNC client just draws data sent to it
|
||
|
<uninet> Yeah... could the RFB protocol be extended for "Boch Enhanced"
|
||
|
+clients, while maintaing compatiblity with normal VNC clients?
|
||
|
<Psyon> Hmm....
|
||
|
<Psyon> Sure
|
||
|
<bryce> VNC is open source right?
|
||
|
<Psyon> RFB is event based
|
||
|
<Psyon> Yep
|
||
|
<Psyon> so adding new Events for Bochs Enhancements
|
||
|
<bryce> have you seen Xvnc the VNC-X server for linux
|
||
|
<Psyon> would work
|
||
|
<Psyon> yes
|
||
|
<uninet> That way, an enhance client could do the fancy stuff like (dialog
|
||
|
+boxes) where the normal VNC client could just continue doing what it does
|
||
|
+now...
|
||
|
<Psyon> We would be better off just modifying it all
|
||
|
<bryce> Xvnc is portable, since it has no display code only networking code,
|
||
|
<Psyon> and just base it on RFB
|
||
|
<Psyon> It would be better to send a text update event and just send the chars
|
||
|
<Psyon> but that will only work while in a text mode
|
||
|
<Psyon> when In windows
|
||
|
<bryce> it seems like you could hack their Xvnc so that you could use any X11
|
||
|
+library you like
|
||
|
<Psyon> Text would still have to be sent as images
|
||
|
<uninet> bryce: I think you are right.
|
||
|
<Psyon> You know...
|
||
|
<bryce> the X11 library could be used to draw dialog boxes, handle all events,
|
||
|
+etc. without having to rewrite low level gui code.
|
||
|
<Psyon> I guess to extend RFB to work how we want it... you would only need to
|
||
|
+add two events
|
||
|
<Psyon> RFBEventGetUserInput or something to pop up a dialog box...
|
||
|
<Psyon> that would be sent to the client
|
||
|
<Psyon> RFBDialogItemEvent sent to the bochs server
|
||
|
<Psyon> those would be followed by data as to which dialog item was acted on
|
||
|
<Psyon> or what type of input to get
|
||
|
<uninet> If the client and server where on one computer, would there be much
|
||
|
+of a performance hit over the current system?
|
||
|
<Psyon> There is a bit
|
||
|
<bryce> yes
|
||
|
<Psyon> Bochs-RFB runs slowly even on the same computer, because I have not
|
||
|
+implemented compression yet
|
||
|
<Psyon> and passing all the graphics through Winsock
|
||
|
<Psyon> casues a bottlnet
|
||
|
<Psyon> bottleneck
|
||
|
<uninet> But if you did, do you think there would still be a hit?
|
||
|
<Psyon> not as much
|
||
|
<bryce> now bochs uses the lowest level APIs to draw graphics, and I think
|
||
|
+anything else will be a performance hit.
|
||
|
<uninet> bryce: that's true.
|
||
|
<Psyon> Then why do you want to use a toolkit?
|
||
|
<bryce> I'm advocating GUI libraries for dialogs and control panels and suc
|
||
|
<bryce> such
|
||
|
<bryce> NOT as a replacement for the current VGA display window
|
||
|
<Psyon> oh
|
||
|
<Psyon> ok
|
||
|
<bryce> which is performance-critical
|
||
|
<uninet> I still am not sure that Don's idea of using RFB to seperate the GUI
|
||
|
+might not be the best way to go...
|
||
|
<uninet> (no matter which toolkit is used)
|
||
|
<Psyon> I dont think it is the best way to go
|
||
|
<Psyon> I just think its a good start
|
||
|
<bryce> it can be done, but I think a much higher-level communication between
|
||
|
+bochs and gui is better
|
||
|
<Psyon> the concept and idea
|
||
|
<Psyon> did you put bochs-RFB in the CVS tree btw?
|
||
|
<uninet> Right, it would need to be worked on, but the concept is good.
|
||
|
<bryce> like gui says: "Hey Bochs, I want you to change the floppy disk to
|
||
|
+/home/bryce/newimage.img"
|
||
|
<bryce> and bochs says: "Ok, I did it"
|
||
|
<Psyon> I dont think it should be done like that
|
||
|
<Psyon> I think it should be done how the current toolbar is done
|
||
|
<Psyon> bochs tells the GUI to make a button
|
||
|
<Psyon> and gives it a function pointer
|
||
|
<bryce> the RFB way would be more like, gui says: "hey they clicked on
|
||
|
+312,12"
|
||
|
<Psyon> to be called
|
||
|
<Psyon> in this case
|
||
|
<Psyon> it could be giving an ID
|
||
|
<Psyon> and then when the Button or what ever is pushed
|
||
|
<Psyon> it would tell bochs that button ID has been pushed
|
||
|
<Psyon> and bochs will act on it
|
||
|
<bryce> and bochs says "ok 312,12 looks like the reset button so now gui
|
||
|
+should display an "Are you sure" message"
|
||
|
<Psyon> Yes
|
||
|
<uninet> that would work really well...
|
||
|
<bryce> I like the fact that that's general, and higher level
|
||
|
<Psyon> I dont think using the coords of the click is a good idea
|
||
|
<Psyon> then we would be limited to using images again
|
||
|
<bryce> but I'm afraid that a whole protocol like that will not give the GUI
|
||
|
+(whoever has to turn the dialog into actual API calls)
|
||
|
<Psyon> Hmm...
|
||
|
<uninet> Well, on non image things, couldn't it say "hey the user clicked on
|
||
|
+menuitem1"?
|
||
|
<bryce> a chance to make a decent looking dialog
|
||
|
<Psyon> uninet that is what I was thinking
|
||
|
<bryce> psyon, so what type of messages should bochs be telling the gui?
|
||
|
<Psyon> That is how the current one basically works
|
||
|
<uninet> Ah.
|
||
|
<bryce> buttons are easy, how about dialogs?
|
||
|
<Psyon> The current way of doing it is a good concept
|
||
|
<Psyon> it just needs improving
|
||
|
<Psyon> Well...
|
||
|
<Psyon> What are the types of dialogs that will be needed?
|
||
|
<Psyon> Yes/No, File, OK
|
||
|
<Psyon> what else?
|
||
|
<bryce> For each of these devices (HD, CMOS, CDROM, Floppy), choose what
|
||
|
<Psyon> well...
|
||
|
<Psyon> just in general
|
||
|
<bryce> a panic, debug, info, and error message should do?
|
||
|
<Psyon> well...
|
||
|
<bryce> crash, print, or ignore?
|
||
|
<uninet> Config dialogs too, right?
|
||
|
<Psyon> Oh yah
|
||
|
<Psyon> i forgot the config stuff
|
||
|
<Psyon> Hmm....
|
||
|
<bryce> that's a complicated one, and I think you may end up with the best
|
||
|
+looking dialog
|
||
|
<bryce> if you send a very high level message, like "show the log options
|
||
|
+dialog now"
|
||
|
<Psyon> I would like to see the dialogs defined by bochs
|
||
|
<bryce> rather than trying to make your protocol SO general that bochs can ask
|
||
|
+for any kind of dialog it might need
|
||
|
<Psyon> and just displayed by the GUI
|
||
|
<Psyon> like have bochs send the GUI a template for the dialog
|
||
|
<Psyon> and draw it based on that
|
||
|
<bryce> basically like a web form?
|
||
|
<Psyon> yes
|
||
|
<Psyon> HEY!
|
||
|
<bryce> oh no!
|
||
|
<Psyon> thats not a bad Idea
|
||
|
<Psyon> use XML or HTML to do the dialogs
|
||
|
<bryce> :)
|
||
|
<Psyon> then when submited... data can be passed back to bochs in a URLENcoded
|
||
|
+string
|
||
|
<uninet> Couldn't the GUI have the config template on the GUI side rather than
|
||
|
+have bochs send it to it?
|
||
|
<Psyon> boot=c&hd=linux.img
|
||
|
<Psyon> stuff like that
|
||
|
<Psyon> uninet: the GUI wouldnt have to be updated as much if bochs told it
|
||
|
+how to make it
|
||
|
<bryce> It certainly could be done that way, and if you're very sneaky you
|
||
|
+might use your browser as the viewer.
|
||
|
<Psyon> Well... you wouldnt use it as the viewer
|
||
|
<Psyon> cant draw the VGA screen to the browser
|
||
|
<Psyon> well... you could push it to it
|
||
|
<Psyon> as a streaming video
|
||
|
<bryce> no, VGA screen is low level APIs as it is now
|
||
|
<bryce> otherwise you add lots of overhead
|
||
|
<Psyon> Could do
|
||
|
<bryce> I mean the control panel
|
||
|
<uninet> Well, if you were using the browser as teh viewer, couldn't the VGA
|
||
|
+screen be shown in a Java applet and config handled by normal browser means?
|
||
|
<Psyon> char *bx_gui::ShowDialog(XMLCode *gui);
|
||
|
<Psyon> XMLCode beings XML or HTML code for the form
|
||
|
<bryce> yes, but slowly! We don't need any more speed penalties here.
|
||
|
<Psyon> and the return would be a string much like the QUERY_STRING of the web
|
||
|
+form
|
||
|
<Psyon> parsing would be a pain though
|
||
|
<Psyon> and might make a performace hit
|
||
|
<bryce> are you thinking of a custom viewer or an existing web browser?
|
||
|
<Psyon> custom viewer
|
||
|
<bryce> ok
|
||
|
<Psyon> well... there are plenty of open source HTML viewers
|
||
|
<bryce> I'm thinking nothing should go through this interface that is
|
||
|
+performance critical anyway.
|
||
|
<Psyon> could steal some code to rended the HTML forms
|
||
|
<uninet> Although what toolkit would be used to render the HTML forms? :-)
|
||
|
<bryce> anything performance critical should either go to the existing
|
||
|
+low-level API, or logged directly to a file.
|
||
|
<Psyon> What is with you people and toolkits?
|
||
|
<Psyon> :)
|
||
|
<uninet> I dunno... :-) I was just thinking you now have the same problem of
|
||
|
+rendering lots of things, and the added complexity of an HTML rendering
|
||
|
+layer.
|
||
|
<Psyon> well... it would only be HTML forms
|
||
|
<Psyon> not full HTML
|
||
|
<Psyon> maybe that is a bad idea
|
||
|
<Psyon> but its an idea
|
||
|
<uninet> It sounds good to me, I was just thinking you still have to figure
|
||
|
+out how to render the widgets on the form.
|
||
|
<bryce> well you can write XML for a form that describes exactly what the GUI
|
||
|
+needs
|
||
|
<bryce> without it having to be standard HTML
|
||
|
<Psyon> yes
|
||
|
<Psyon> and libXml is cross platform
|
||
|
<bryce> but is any of this a benefit?
|
||
|
<Psyon> hold on..
|
||
|
<Psyon> let me clear something up.
|
||
|
<bryce> ok
|
||
|
<uninet> I guess that the GUI could be seperate, but still extensible.
|
||
|
<Psyon> Will the GUI be a separate process... or the same one?
|
||
|
<Psyon> we need to make a decision on that
|
||
|
<uninet> I would think a seperate process would be better (better cross
|
||
|
+platform support), but that's only me.
|
||
|
<bryce> it could be either way
|
||
|
<Psyon> before we go any farther
|
||
|
<bryce> I think it's no problem to open a network socket between them,
|
||
|
+although then you need portable socket code and some semblance of security
|
||
|
<Psyon> Well, using XML for dialogs would benefit for remote viewers
|
||
|
<Psyon> most all socket code is pretty close to the same
|
||
|
<Psyon> in the sense that what if bochs is running on linux and being viewed
|
||
|
+in windows
|
||
|
<Psyon> or Vice Versa
|
||
|
<uninet> The nice thing about seperate processes with network code is it
|
||
|
+doesn't matter if the viewer is on the same computer or 2,000 miles away...
|
||
|
<Psyon> Even if it is the same process
|
||
|
<Psyon> it would work ok
|
||
|
<bryce> ok, sockets are fine and same process or different process is fine
|
||
|
<Psyon> Ok...
|
||
|
<bryce> but it seems like there are disadvantages to sending XML too
|
||
|
<Psyon> can we see any problems with using XML for dialogs?
|
||
|
<Psyon> why?
|
||
|
<bryce> as opposed to just saying "Ok gui, show dialog number 7"
|
||
|
<Psyon> well... the XML code can be cached
|
||
|
<Psyon> do like
|
||
|
<uninet> Idea:
|
||
|
<uninet> What if the GUI and Bochs sync on startup with the XML forms...
|
||
|
<bryce> if you tell it "show #7" then you can make the dialog look as good as
|
||
|
+possible for that system
|
||
|
<bryce> which is not a hard task
|
||
|
<uninet> ...so that once it was started, requests would just be show7, or what
|
||
|
+ever.
|
||
|
<Psyon> yes
|
||
|
<Psyon> thats what I was going to say
|
||
|
<bryce> if you send it XML, then the viewer's job is to make anything in the
|
||
|
+world look as good as possible, which is a hard task
|
||
|
<Psyon> send the code with and ID number
|
||
|
<Psyon> They only big problem im seeing with XMl is how to return data back to
|
||
|
+bochs
|
||
|
<Psyon> user URLEncoded strings would work
|
||
|
<bryce> anything would work
|
||
|
<uninet> Well, the nice thing about this too, is that even if the different
|
||
|
+platforms had different GUIs using different toolkits (or lack of), the menus
|
||
|
+and dialogs would look the same.
|
||
|
<bryce> you have a binary connection, send bytes?
|
||
|
<bryce> true
|
||
|
<Psyon> I think we should just do the dialogs in XML one way or the other
|
||
|
<Psyon> then we dont have to worry about crossplatform toolkits
|
||
|
<uninet> Exactly.
|
||
|
<uninet> Then the best toolkit for each platform could be used, rather than
|
||
|
+simply the lowest common denominator.
|
||
|
<Psyon> yes
|
||
|
<bryce> you do have to worry about writing a general form viewer for every
|
||
|
+platform, which is not exactly simple
|
||
|
<Psyon> Hmm...
|
||
|
<bryce> nor, one might argue, in the realm of bochs development at all :)
|
||
|
<uninet> True...
|
||
|
<bryce> maybe we should FIND one rather than write one
|
||
|
<uninet> Well, you could port the existing GUI to this system (without
|
||
|
+configs), and then as voluteers appears willing to create an "enhanced
|
||
|
+viewer" it could become available.
|
||
|
<Psyon> we could make our own toolkit
|
||
|
<bryce> aaaaaaaaah
|
||
|
<uninet> :-)
|
||
|
<bryce> :)
|
||
|
<uninet> Well, unless we make our own toolkit, BTK (?), or keep bochs
|
||
|
+toolkit-independant (where it uses the best gui for each platform)...
|
||
|
<Psyon> You know... the whole cross platform thing is what is making this hard
|
||
|
<uninet> ...there are going to be platform limitations based on the toolkit.
|
||
|
<Psyon> I can think of a hundred ways to just do it in windows
|
||
|
<uninet> Yup.
|
||
|
<bryce> yup.
|
||
|
<bryce> what is wrong with making the XML viewer in wxWindows which runs on
|
||
|
+tons of platforms already?
|
||
|
<uninet> That would be a good idea.
|
||
|
<uninet> We could always aim to have more viewers (using other toolkits) later
|
||
|
+on... but that would get the ball rolling.
|
||
|
<Psyon> how does wxWindows look?
|
||
|
<bryce> no idea
|
||
|
<uninet> I think it looks like Windows in Windows, Motif or GTK in *nix...
|
||
|
<Psyon> if the page will load
|
||
|
<bryce> http://www.wxwindows.org/
|
||
|
<uninet> http://www.wxwindows.org/samples.htm
|
||
|
<Psyon> ok
|
||
|
<Psyon> that looks ok
|
||
|
<Psyon> I guess
|
||
|
<Psyon> we can always mod it
|
||
|
<bryce> it looks good to me, but I haven't seen the API
|
||
|
<Psyon> and it runs on mac
|
||
|
<bryce> but it's open source, C++, and cross platform, that's a very good
|
||
|
+start
|
||
|
<uninet> It ain't beatiful, but if other GUI's could be written on the XML
|
||
|
+framework, that wouldn't be a problem...
|
||
|
<Psyon> If QT was opensource on all platforms
|
||
|
<Psyon> I would go for that
|
||
|
<Psyon> it has an XML renderer and everything
|
||
|
<uninet> I hear it wouldn't be hard to get QT-free to work in Windows...
|
||
|
<Psyon> Ive gotten it to work
|
||
|
<Psyon> but it requires an X server
|
||
|
<uninet> Really?
|
||
|
<uninet> Oh.
|
||
|
<Psyon> That is one of my other projects
|
||
|
<Psyon> I found some code on the MS FTP
|
||
|
<bryce> at the risk of being the devil's advocate all the time: why not write
|
||
|
+gui/wxWindows.cc and compile it directly into bochs? Would this not be a
|
||
|
+great starting point?
|
||
|
<Psyon> that maps some Xlib functions to Win32 API
|
||
|
<uninet> According to Mosfet (of KDE), it shouldn't be to hard to make it work
|
||
|
+like TrollTech's QT for windows, since they are both from the same codebase.
|
||
|
<Psyon> and I was working with that too
|
||
|
<Psyon> Uninet: http://www.sourceforge.net/projects/kde-cygwin
|
||
|
<bryce> well ok not a great one
|
||
|
<Psyon> that guy talks about the problems with compiling KDE on windows
|
||
|
<Psyon> bryce: that is a good start yes
|
||
|
<Psyon> that is what we need is a start
|
||
|
<uninet> If you compiled the wxWindows directly into Bochs, wouldn't that
|
||
|
+limit the expansion into other toolkits?
|
||
|
<Psyon> ok... have you guys looked at the bochs GUI functions yet? like
|
||
|
+tile_update, create_bitmap, text_unpdate?
|
||
|
<uninet> Wow! Don, I didn't know you were working on kde-cygwin! I just read
|
||
|
+about that at KDE's The Dot the other day.
|
||
|
<Psyon> any of them?
|
||
|
<Psyon> Im not working on that
|
||
|
<Psyon> thats not my projects
|
||
|
<Psyon> I have been doing the same thing
|
||
|
<Psyon> but thats not mine
|
||
|
<bryce> no I haven't
|
||
|
<uninet> Oh, I saw you are the developer list and assumed you were.
|
||
|
<Psyon> I am?
|
||
|
<Psyon> He added me?
|
||
|
<bryce> haha
|
||
|
<uninet> Yup.
|
||
|
<uninet> You are.
|
||
|
<uninet> http://sourceforge.net/project/memberlist.php?group_id=27249
|
||
|
<Psyon> oh
|
||
|
<uninet> Nothing like being on a project without being told about it, huh? ;-)
|
||
|
<Psyon> ok
|
||
|
<Psyon> :)
|
||
|
<Psyon> I emailed the guy a few times
|
||
|
<Psyon> and discussed some things with him
|
||
|
<Psyon> that is what takes up a lot of my time
|
||
|
<Psyon> im fighting against MS in my own way
|
||
|
<uninet> :-)
|
||
|
<Psyon> I figure by making KDE (or more importantly, Konqueror
|
||
|
<bryce> aren't we all.
|
||
|
<Psyon> ) run in windows
|
||
|
<Psyon> that strikes a blow against IE
|
||
|
<Psyon> :)
|
||
|
<uninet> I'd love to see Konqi in Windows.
|
||
|
<uninet> How's it going with that project?
|
||
|
<Psyon> Its going ok
|
||
|
<Psyon> I mostly was trying to make QT/Free compile in cygwin
|
||
|
<Psyon> which I did fine as a static lib
|
||
|
<Psyon> but had troubles making shared
|
||
|
<Psyon> but Ralf succeeded where I failed
|
||
|
<Psyon> and got that to work
|
||
|
<uninet> So, would it be hard to get QT/Free to work well enough in Windows
|
||
|
+that it could be used for the Bochs toolkit?
|
||
|
<Psyon> It will work with an X server now
|
||
|
<Psyon> as to make it work without one
|
||
|
<Psyon> im looking into it
|
||
|
<Psyon> I dont know exactly how dependant QT/Free is on X
|
||
|
<Psyon> Its a lot of code to look over
|
||
|
<Psyon> I know they tried to keep is as OS independant as possible
|
||
|
<uninet> It seems to me QT would be better than wxWindows in that you would
|
||
|
+also add QT/Embedded (which comes in a "free" version) to the platforms Bochs
|
||
|
+could run on...
|
||
|
<Psyon> QT/Embedded draws directly to the FrameBuffer of your graphics card
|
||
|
<Psyon> and wouldnt work in windows
|
||
|
<bryce> not being free is a big problem though, as good as QT might be
|
||
|
<uninet> Have you ever tried talking to mosfet about it?
|
||
|
<Psyon> oh
|
||
|
<Psyon> nm
|
||
|
<Psyon> mosfet?
|
||
|
<uninet> He's at www.mosfet.org.
|
||
|
<Psyon> Oh
|
||
|
<uninet> He's the one that wrote that it wouldn't be hard to port QT/free to
|
||
|
+natively run on windows.
|
||
|
<Psyon> the KDE guys
|
||
|
<uninet> yeah.
|
||
|
<Psyon> Ive talked to some of them about it
|
||
|
<uninet> It seems to me both Bochs and KDE could benefit if QT/free worked
|
||
|
+natively under Win32... maybe some of the KDE folks could help. :-)
|
||
|
<Psyon> heheh
|
||
|
<bryce> hard to see how porting toolkits is in the scope of Bochs...
|
||
|
<Psyon> hehe
|
||
|
<bryce> this QT must be pretty amazing!
|
||
|
<uninet> Well, I was just thinking if Don had already been investigating it...
|
||
|
<Psyon> QT is nice
|
||
|
<uninet> From my limited knowledge of it... it is.
|
||
|
<Psyon> and has a lot of the functionality we need
|
||
|
<bryce> how is it different from other GUI toolkits?
|
||
|
<Psyon> HEY! anyways
|
||
|
<uninet> It will also most likely be the toolkit of the future. Trolltech is
|
||
|
+on an ambitious campaign to make it the defacto toolkit used in Universities.
|
||
|
<Psyon> back to what I was saying before!!!
|
||
|
<bryce> ok
|
||
|
<bryce> XML?
|
||
|
<uninet> ?
|
||
|
<Psyon> Before we use QT or wxWindows
|
||
|
<Psyon> ok
|
||
|
<Psyon> now
|
||
|
<Psyon> as I was saying
|
||
|
<Psyon> right now bochs tells teh GUI code to add a bitmap to the toolbar
|
||
|
<Psyon> got that part?
|
||
|
<Psyon> well...
|
||
|
<uninet> yes.
|
||
|
<bryce> yes
|
||
|
<Psyon> we would need to add something
|
||
|
<Psyon> that tells it to add a menu item
|
||
|
<Psyon> or a button
|
||
|
<Psyon> or whatever
|
||
|
<uninet> right.
|
||
|
<bryce> right.
|
||
|
<Psyon> we have to do that before we make it use QT or wxWindows
|
||
|
<uninet> I'm still with you there.
|
||
|
<Psyon> bx_gui_c::add_menu_item
|
||
|
<bryce> I would have said "as" rather than "before"
|
||
|
<Psyon> then in that function
|
||
|
<Psyon> call the TK function to add the item
|
||
|
<bryce> no way to test it until you have something to hook it to, but go on
|
||
|
<Psyon> well
|
||
|
<Psyon> yes
|
||
|
<uninet> So in essence, this would become a compatiblity layer between bochs
|
||
|
+and what ever toolkit, right?
|
||
|
<Psyon> This keeps the same concept the the current GUI structure... but adds
|
||
|
+more functionality
|
||
|
<Psyon> yes
|
||
|
<Psyon> and we would d something like bx_gui_c::do_dialog()
|
||
|
<bryce> right, we need to make the C++ calls look more like the interface
|
||
|
+between bochs and the XML thing will eventually look
|
||
|
<Psyon> or something
|
||
|
<uninet> gotcha.
|
||
|
<Psyon> This doesnt push us towards having a separate GUI and Emu
|
||
|
<Psyon> but It does get us going towards user friendly
|
||
|
<Psyon> which I think is more important
|
||
|
<bryce> yes
|
||
|
<uninet> right.
|
||
|
<Psyon> and again, you could always recompile with Bochs-RFB :)
|
||
|
<uninet> :-)
|
||
|
<Psyon> also... the menu items should not be critical to bochs running
|
||
|
<Psyon> incase a GUI cant create them
|
||
|
<Psyon> like the curses one
|
||
|
<uninet> right.
|
||
|
<bryce> sure. (btw, yes rfb is in CVS, and in fact in 1.2.pre1)
|
||
|
<Psyon> oooh... good
|
||
|
<Psyon> now I can put Bochs Developer on my resume :)
|
||
|
<Psyon> hehehehe
|
||
|
<uninet> :-)
|
||
|
<bryce> :)
|
||
|
<Psyon> http://www.psyon.org/resume/index.html <--- well it needs some spicing
|
||
|
+up
|
||
|
<uninet> a good thing considering we are still in the No. 2 slot on SF.
|
||
|
<Psyon> I suck at resumes.
|
||
|
<Psyon> I dont like to look at that
|
||
|
<Psyon> but anways
|
||
|
<Psyon> so what would we need implemented... add_menu_item, show_dialog,
|
||
|
+add_button?
|
||
|
<Psyon> something along those lines?
|
||
|
<uninet> Sounds good to me...
|
||
|
<bryce> well are we going toward XML already, or waiting until later?
|
||
|
<uninet> Psyon: your resume actually looks good.
|
||
|
<Psyon> The layout is good... the content sucks
|
||
|
<Psyon> hmm...
|
||
|
<uninet> It seems to me, if you can do it with something simpler than XML, why
|
||
|
+not?
|
||
|
<Psyon> bryce: if we are keeping the current way of doing the GUI
|
||
|
<Psyon> lets wait till later
|
||
|
<Psyon> Well...
|
||
|
<Psyon> hmm...
|
||
|
<bryce> yeah, it's tricky
|
||
|
<Psyon> then how should we do dialogs
|
||
|
<Psyon> I think we will have to
|
||
|
<Psyon> to do the dialogs
|
||
|
<uninet> Couldn't XML be sandwiched in as an additional layer, if it was ever
|
||
|
+needed?
|
||
|
<Psyon> well... again... if this was all os specific, we could have each GUI
|
||
|
+with its own menu, and its own dialogs
|
||
|
<Psyon> I think we will have to look into XML
|
||
|
<Psyon> to do the dialogs
|
||
|
<bryce> yes, and I wonder if that's even the best way to do it...later.
|
||
|
<Psyon> Unless!
|
||
|
<Psyon> we do a separate function for each needed dialog
|
||
|
<bryce> once you have 3 dialogs coded in your new toolkit
|
||
|
<Psyon> show_config
|
||
|
<Psyon> hmm...
|
||
|
<bryce> it will then be easy to write XML that can reproduce those dialogs
|
||
|
<bryce> but without any examples to work from, you have a very general, very
|
||
|
+hard task in writing the XML parser
|
||
|
<bryce> without any XML code to try it with
|
||
|
<uninet> At the risk of sounding stupid, what would be the advantage of XML
|
||
|
+over sending the info without XML?
|
||
|
<Psyon> we could do, show_config() show_change_disk() and stuff like that
|
||
|
<bryce> (not writing the xml parser)
|
||
|
<Psyon> XML is a standard
|
||
|
<Psyon> well... what would be better
|
||
|
<Psyon> having one function called to show all dialogs
|
||
|
<uninet> True... but would that necessarily be beneficial in this case?
|
||
|
<Psyon> or a separate one for each
|
||
|
<bryce> I think doing show_config() and show_change_disk() is a good start
|
||
|
<uninet> me too.
|
||
|
<Psyon> so a separate one
|
||
|
<Psyon> and when we call add_menu_item (or whatever) it will contain a
|
||
|
+function pointer... which coudl be a pointer to show_blah_dialog directly
|
||
|
<uninet> right...
|
||
|
<bryce> something like that
|
||
|
<Psyon> ok
|
||
|
<bryce> that will get us going
|
||
|
<Psyon> so who is in chareg of getting this started :)
|
||
|
<Psyon> hehehe
|
||
|
<Psyon> Im guessing im the candidate?
|
||
|
<uninet> Idea: for an XML parser (if needed) could you take the one out of QT
|
||
|
+and make it independant?
|
||
|
<bryce> I think once we have some concrete examples of dialogs, it will be
|
||
|
+much more clear what the XML should look like.
|
||
|
<uninet> I vote for you.
|
||
|
<Psyon> uni: ive been thinking of that already
|
||
|
<uninet> (psyon)
|
||
|
<bryce> :)
|
||
|
<uninet> Psyon: we seem to be thinking along the same lines a lot tonight.
|
||
|
<Psyon> I will warn you guys that I will be out of town from the 8th till the
|
||
|
+14th of june
|
||
|
<Psyon> hehe
|
||
|
<bryce> I guess it better be done by the 8th then ;-)
|
||
|
<Psyon> Umm...
|
||
|
<Psyon> i doubt it
|
||
|
<Psyon> maybe a start
|
||
|
<Psyon> but not finished
|
||
|
<uninet> Sounds like a good idea... that's a whole 9 days!
|
||
|
<Psyon> the functions them selves wont be hard to add
|
||
|
<Psyon> its the dialogs that will be a pain
|
||
|
<bryce> right
|
||
|
<uninet> And the dialogs themselves will require settling on a starting point
|
||
|
+GUI, right?
|
||
|
<bryce> if we are using CVS, it's much easier to collaborate
|
||
|
<uninet> (or rather toolkit)
|
||
|
<bryce> so that one person doesn't have to do everything alone and send a diff
|
||
|
+when he's done
|
||
|
<Psyon> the current calls to create the toolbar are hard coded
|
||
|
<Psyon> so this wont be hard at all to implement the stufs
|
||
|
<Psyon> stubs
|
||
|
<uninet> So, you could stick with the hardcoded with the new implementation
|
||
|
+until you settled on a toolkit(s)?
|
||
|
<Psyon> yes
|
||
|
<bryce> do you think we should leave the icons alone for now?
|
||
|
<bryce> maybe that was the same question
|
||
|
<Psyon> My one problem here is how do different toolkits handle sub menus?
|
||
|
<Psyon> icons are staying for now
|
||
|
<bryce> ok
|
||
|
<uninet> I'd be happy to make new icons (if you want) but perhaps we should
|
||
|
+wait until something like wxWindows or QT comes into the picture...
|
||
|
<Psyon> Probably just change that over to a toolbar with buttons later
|
||
|
<bryce> I think between the two we should at least try wxWindows since it
|
||
|
+already runs on win32
|
||
|
<bryce> (without hacking necessary)
|
||
|
<Psyon> heheh
|
||
|
<uninet> true. The beauty of this system is that QT would still be an option
|
||
|
+for an additional GUI afterwards..
|
||
|
<bryce> one of the best benefits of separation of bochs and GUI is that they
|
||
|
+can be _developed_ independently
|
||
|
<Psyon> Yes
|
||
|
<uninet> that's very true.
|
||
|
<bryce> since the dialog code is the hard part, and connecting it to bochs is
|
||
|
+easy
|
||
|
<bryce> let's work together on the first few dialogs
|
||
|
<Psyon> Ok guys, hate to do this
|
||
|
<Psyon> but I need sleep
|
||
|
<bryce> sleep??
|
||
|
<uninet> What's that?
|
||
|
<Psyon> My fiance is already pissed that I didnt go to bed with her earlier
|
||
|
<Psyon> :)
|
||
|
<bryce> *nod*
|
||
|
<Psyon> I will work out a menu function
|
||
|
<Psyon> in the morning or when ever
|
||
|
<uninet> Hmm... man sleep says: "sleep - delay for a specified amount of time"
|
||
|
<Psyon> Yep, im delaying
|
||
|
<uninet> :-) Well good night Don! Sleep well.
|
||
|
<bryce> good night!
|
||
|
<Psyon> cya guys later
|
||
|
|