Smiddy OS
Smiddy OS
Hi,
I've taken the liberty of creating a new topic for SmiddyOS. This OS can be downloaded as an attachment from the message at:
http://bos.asmhackers.net/forum/viewtopic.php?id=52 for SmiddyOS (you have to register before it'll show attachments)
Cheers,
Brendan
I've taken the liberty of creating a new topic for SmiddyOS. This OS can be downloaded as an attachment from the message at:
http://bos.asmhackers.net/forum/viewtopic.php?id=52 for SmiddyOS (you have to register before it'll show attachments)
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re:Smiddy OS
Hi,
Ok, here's my SmiddyOS results .
[tt]COMPUTER Q (Compaq Proliant 1600) - Dual Pentium II 400 MHz
384 Mb RAM
Dual-channel SCSI on motherboard
5 * 4.5 Gb SCSI hard-drives
IDE CD-ROM
Ethernet on motherboard[/tt]
This computer locks up just after displaying "A20 Gate: Initializing;"
[tt]WORK MACHINE - Pentium IV 1.6 Ghz
256 Mb RAM
40 Gb hard drive
8 Gb hard drive
NVIDEA RIVA TNT2 Model64 Pro video card
NETGEAR FA311/FA312 PCI Ethernet card
COMPUTER O - Pentium Pro 200 MHz
128 Mb RAM
Adaptec AHA-2940 SCSI controller
Compaq ST32550W SCSI hard-drive
IBM DCAS-34330W SCSI hard-drive
IBM DGHS09U SCSI hard-drive
Sony CDU-76S SCSI CD-ROM
Ethernet on motherboard
COMPUTER N - AMD-K6(tm) 3D processor 300 Mhz
64 Mb memory
24x CD-rom
1335Mb hard disk
S3 video card
ethernet card[/tt]
For these 3 computers, everything is working well (all PCI devices reported correctly, etc)!
[tt]COMPUTER E - running win95
Cyrix 6x86 (pentium) 133Mhz
1.44 Mb floppy
2 GB hard drive
CD-ROM using panasonic/creative connector
Unknown PCI video card
NE2000 compatible ethernet card
COMPUTER H - 160Mhz Cryix/Pentium
16Mb Memory
1.44 Mb floppy
514Mb Hard disk
CDrom using IDE interface
Cirrus Logic 5430/40 PCI video card
ESS ES688 Audiodrive sound card
NE2000 compatible ethernet card[/tt]
These 2 computers only have less than 32 MB of memory. During the memory map it displays "ERROR: Needs 33,554,432 bytes.". After loading VENDORS.TXT it says "Press and key to REBOOT...". I assume this is what's meant to happen if there isn't enough memory for the OS .
Cheers,
Brendan
Ok, here's my SmiddyOS results .
[tt]COMPUTER Q (Compaq Proliant 1600) - Dual Pentium II 400 MHz
384 Mb RAM
Dual-channel SCSI on motherboard
5 * 4.5 Gb SCSI hard-drives
IDE CD-ROM
Ethernet on motherboard[/tt]
This computer locks up just after displaying "A20 Gate: Initializing;"
[tt]WORK MACHINE - Pentium IV 1.6 Ghz
256 Mb RAM
40 Gb hard drive
8 Gb hard drive
NVIDEA RIVA TNT2 Model64 Pro video card
NETGEAR FA311/FA312 PCI Ethernet card
COMPUTER O - Pentium Pro 200 MHz
128 Mb RAM
Adaptec AHA-2940 SCSI controller
Compaq ST32550W SCSI hard-drive
IBM DCAS-34330W SCSI hard-drive
IBM DGHS09U SCSI hard-drive
Sony CDU-76S SCSI CD-ROM
Ethernet on motherboard
COMPUTER N - AMD-K6(tm) 3D processor 300 Mhz
64 Mb memory
24x CD-rom
1335Mb hard disk
S3 video card
ethernet card[/tt]
For these 3 computers, everything is working well (all PCI devices reported correctly, etc)!
[tt]COMPUTER E - running win95
Cyrix 6x86 (pentium) 133Mhz
1.44 Mb floppy
2 GB hard drive
CD-ROM using panasonic/creative connector
Unknown PCI video card
NE2000 compatible ethernet card
COMPUTER H - 160Mhz Cryix/Pentium
16Mb Memory
1.44 Mb floppy
514Mb Hard disk
CDrom using IDE interface
Cirrus Logic 5430/40 PCI video card
ESS ES688 Audiodrive sound card
NE2000 compatible ethernet card[/tt]
These 2 computers only have less than 32 MB of memory. During the memory map it displays "ERROR: Needs 33,554,432 bytes.". After loading VENDORS.TXT it says "Press and key to REBOOT...". I assume this is what's meant to happen if there isn't enough memory for the OS .
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re:Smiddy OS
Hi,
For the protected mode PCI BIOS interface, Bochs does a similar check when you call "bios32_entry_point" (line 8685), which also fails if an Intel host controller isn't present. Due to this and the real mode checks it is impossible for your code to get the address of the protected mode PCI functions from Bochs. To confirm this, open "bios/rombios.c" and search for the text "pcibios_protected".
From all of this I deduce that it would be impossible for your code to get anything about PCI devices from BIOS, unless there is an Intel I440FX PCI host controller.
My code ignores the BIOS and does the PCI scan with direct hardware IO, and also returns nothing about these PCI devices (even though the same scan works everywhere else, including under Bochs with the I440FX chipset enabled). The code in "iodev/pci.cc", which contains code to initialize, read and write PCI configuration space seems to confirm that without the I440FX chipset enabled PCI configuration space doesn't exist.
So I guess my question is, if you're not using the PCI BIOS and your not using direct IO ports, what are you using to detect the PCI devices (or alternatively, where have I messed up!)?
The class/sub-class codes can be read directly from PCI configuration space at offset 0x08 for each device. The PCI BIOS has functions to read from configuration space (for e.g. see http://www.ctyme.com/intr/rb-2377.htm).
Cheers,
Brendan
The "PCI32 BIOS Service is not present." would partially explain my Bochs theory. The real mode BIOS code for INT 0x1A checks if AH = 0xB1, and if it is does "jmp pcibios_real". The code at "pcibios_real" (line 8843 in bios/rombios.c) reads the PCI host controller vendor ID and device ID and checks if it is 0x12378086 (Intel 440FX host controller). If it's not it returns "PCI BIOS not present" and exits. If it is Intel, it then checks which function is being requested and performs that function. From this I deduce that you're not using the PCI BIOS in real mode to get your PCI device listing.smiddy wrote:Code: Select all
PCI32 BIOS Service is not present. ... 003D 00D1 Lockheed Martin Corp - i740 PCI 0E11 0001 Compaq Computer Corp. - PCI to EISA Bridge 0E11 0002 Compaq Computer Corp. - ISA Bridge
For the protected mode PCI BIOS interface, Bochs does a similar check when you call "bios32_entry_point" (line 8685), which also fails if an Intel host controller isn't present. Due to this and the real mode checks it is impossible for your code to get the address of the protected mode PCI functions from Bochs. To confirm this, open "bios/rombios.c" and search for the text "pcibios_protected".
From all of this I deduce that it would be impossible for your code to get anything about PCI devices from BIOS, unless there is an Intel I440FX PCI host controller.
My code ignores the BIOS and does the PCI scan with direct hardware IO, and also returns nothing about these PCI devices (even though the same scan works everywhere else, including under Bochs with the I440FX chipset enabled). The code in "iodev/pci.cc", which contains code to initialize, read and write PCI configuration space seems to confirm that without the I440FX chipset enabled PCI configuration space doesn't exist.
So I guess my question is, if you're not using the PCI BIOS and your not using direct IO ports, what are you using to detect the PCI devices (or alternatively, where have I messed up!)?
I'm also using the latest Bochs 2.2...smiddy wrote:One thing the PCI32 doesn't do is allow you to do a class/sub-class check like on a normal PC. However the devices do present themselves when you scan by Device ID and Vendor ID. As for your question about not seeing it within the code, well, I may not be using the same verion you are, possibly. I'm using 2.2 release.
The class/sub-class codes can be read directly from PCI configuration space at offset 0x08 for each device. The PCI BIOS has functions to read from configuration space (for e.g. see http://www.ctyme.com/intr/rb-2377.htm).
Here - my forum code needs a rewrite. I've been using an array in perl to hold a tree structure, and it's too ugly and twisted - will rewrite it in C one day (and add support for attachments and cookies).smiddy wrote:BTW, where would you prefer I post my info, here, or Mega-Tokyo?
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re:Smiddy OS
Hi Brendan,
Well, thanks for starting the thread. :-[ I should add this code is certainly not ready for prime-time. And, well, I don't have a site hosting it so I was only hoping, out of the goodness of bubach's heart that he'd allow me to post my image. I hope that bubach doesn't mind the traffic that I have unintendedly (that's a new word, from The Moosh In Smiddy's Skull (TM)).
Here is the latest one that should get past the A20 issue. This popped up on DennisCGc's 486DX-2 computer so I had to re-look at the code: http://bos.asmhackers.net/forum/attachment.php?item=7 I was only looking at one way of implementing A20 turn on, and have since found a way to turn it on.
:-[ How embarrassing! I realized last night after posting my results on the PCI checkout that I hadn't put in place a mechanism for not running my PCI call when it isn't present. This is also interesting since I wonder what the heck is going on when it is doing its checking. More investigation is needed on my part for sure as well as a mechanism for not allowing the checkout to occur if there isn't PCI32 found. :-[ So you haven't messed up, it was me. ARGH! I hadn't taken the time to read through Bochs' source. Perhaps that could be a source of inspiration (pun intended).
Memory Limitations
Just a note here for now, I have bloated my requirements so that I have ample room for development. The final 1.00 release will not require that much RAM. Current reality is that the code only uses a little under 100kB. Associated with VENDORS.TXT it expands RAM requirements at about 1.5 MB. So it is safely in the first 2 MB of RAM. But I am going to probably limit the requirement to a minimum of 8 MB when 1.00 is completed.
smiddyOS et al
I am in a transition phase of my life. That being said, I won't have a permanent place for my OS to be housed for some time until my transition is complete.
Philosophy? Uhm, well, this is my hobby OS, more than anything it allows me the outlet for getting to know the PC Hardware more closely. It isn't intended for mass consumption but more a tool of knowledge. I think my design is very closely related to bubach's BOS and Dex4u with hints of SolarOS. I'll provide a full description and design goals when I finally make this current transition complete.
Anyone trying this image, thanks! Please report your results and if there are errors I will address them, but I will need to see if bubach doesn't mind me using up his space for further uploads.
Well, thanks for starting the thread. :-[ I should add this code is certainly not ready for prime-time. And, well, I don't have a site hosting it so I was only hoping, out of the goodness of bubach's heart that he'd allow me to post my image. I hope that bubach doesn't mind the traffic that I have unintendedly (that's a new word, from The Moosh In Smiddy's Skull (TM)).
Here is the latest one that should get past the A20 issue. This popped up on DennisCGc's 486DX-2 computer so I had to re-look at the code: http://bos.asmhackers.net/forum/attachment.php?item=7 I was only looking at one way of implementing A20 turn on, and have since found a way to turn it on.
:-[ How embarrassing! I realized last night after posting my results on the PCI checkout that I hadn't put in place a mechanism for not running my PCI call when it isn't present. This is also interesting since I wonder what the heck is going on when it is doing its checking. More investigation is needed on my part for sure as well as a mechanism for not allowing the checkout to occur if there isn't PCI32 found. :-[ So you haven't messed up, it was me. ARGH! I hadn't taken the time to read through Bochs' source. Perhaps that could be a source of inspiration (pun intended).
Memory Limitations
Just a note here for now, I have bloated my requirements so that I have ample room for development. The final 1.00 release will not require that much RAM. Current reality is that the code only uses a little under 100kB. Associated with VENDORS.TXT it expands RAM requirements at about 1.5 MB. So it is safely in the first 2 MB of RAM. But I am going to probably limit the requirement to a minimum of 8 MB when 1.00 is completed.
smiddyOS et al
I am in a transition phase of my life. That being said, I won't have a permanent place for my OS to be housed for some time until my transition is complete.
Philosophy? Uhm, well, this is my hobby OS, more than anything it allows me the outlet for getting to know the PC Hardware more closely. It isn't intended for mass consumption but more a tool of knowledge. I think my design is very closely related to bubach's BOS and Dex4u with hints of SolarOS. I'll provide a full description and design goals when I finally make this current transition complete.
Anyone trying this image, thanks! Please report your results and if there are errors I will address them, but I will need to see if bubach doesn't mind me using up his space for further uploads.
Re:Smiddy OS
Hi,
To save Bubach some bandwidth, I've created a mirror of the latest version on my server:
http://bcos.hopto.org/smiddy/smiddyOS.IMZ.gz
If you want this mirror removed for any reason, just ask . Alternatively, if you want to use my server for some hosting I don't mind at all (just ask and we'll arrange something).
The new version works fine on the Compaq Proliant and reports all PCI devices correctly, and the rest of the computers still work the same, so no bugs on any of my computers (congrats!) .
Cheers,
Brendan
To save Bubach some bandwidth, I've created a mirror of the latest version on my server:
http://bcos.hopto.org/smiddy/smiddyOS.IMZ.gz
If you want this mirror removed for any reason, just ask . Alternatively, if you want to use my server for some hosting I don't mind at all (just ask and we'll arrange something).
The new version works fine on the Compaq Proliant and reports all PCI devices correctly, and the rest of the computers still work the same, so no bugs on any of my computers (congrats!) .
Cheers,
Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Re:Smiddy OS
As I said in a PM to smiddy, I don't mind. I got about 2.5 gb bandwith left each month, so it won't be a problem anytime soon.
I could even give you a "asmhackers" acount..
I could even give you a "asmhackers" acount..
Re:Smiddy OS
You know, I'm thinking about that...keep them ASMers together. It would mean breaking out my old HTML hat. Or learning phpbubach wrote: As I said in a PM to smiddy, I don't mind. I got about 2.5 gb bandwith left each month, so it won't be a problem anytime soon.
I could even give you a "asmhackers" acount..
Thanks man!
Re:Smiddy OS
Excellent! Thanks for mirroring. I had been considering bubach's site and may take him up on it.Brendan wrote:If you want this mirror removed for any reason, just ask . Alternatively, if you want to use my server for some hosting I don't mind at all (just ask and we'll arrange something).
The new version works fine on the Compaq Proliant and reports all PCI devices correctly, and the rest of the computers still work the same, so no bugs on any of my computers (congrats!) .
I am pleased that the A20 enabling has been fixed, this confirms it twice.
I will have to fix my failure mechanism this evening...
-
- Member
- Posts: 1600
- Joined: Wed Oct 18, 2006 11:59 am
- Location: Vienna/Austria
- Contact:
Re:Smiddy OS
have tested smiddyOS in the virtualPC emulation. It boots up pretty fine. it scans the pci bus for contents. I don't know if it performs well in VirtualPC due to the used method (PCI32-Bios?). I have to do a test on a real machine at home, no chance here.
... the osdever formerly known as beyond infinity ...
BlueillusionOS iso image
BlueillusionOS iso image
Re:Smiddy OS
Hi All,
After over a year of leaving this code behind to live my life, I have done so more coding on this puppy. You can get the zipped image here. It is a floppy image with two files, smiddyOS.EXE and VENDORS.TXT. The EXE will run under (pure) DOS. I have run it under Bochs 2.2.1, Bochs 2.3, DOSBox 0.63 (with DOSBox imposed errors), DOSBox 0.65, and on two machines (one MSI with AMD 3000+, one ASUS AMD 1900+).
There is a basic command line interface that is only capable of internal commands right now. Type help at the command line and you'll get a listing of current commands.
After over a year of leaving this code behind to live my life, I have done so more coding on this puppy. You can get the zipped image here. It is a floppy image with two files, smiddyOS.EXE and VENDORS.TXT. The EXE will run under (pure) DOS. I have run it under Bochs 2.2.1, Bochs 2.3, DOSBox 0.63 (with DOSBox imposed errors), DOSBox 0.65, and on two machines (one MSI with AMD 3000+, one ASUS AMD 1900+).
There is a basic command line interface that is only capable of internal commands right now. Type help at the command line and you'll get a listing of current commands.