Announcement

Collapse

Forum etiquette

Our mission ...

This forum is part of our mission to promote the preservation of vintage computers through education and outreach. (In real life we also run events and have a museum.) We encourage you to join us, participate, share your knowledge, and enjoy.

This forum has been around in this format for over 15 years. These rules and guidelines help us maintain a healthy and active community, and we moderate the forum to keep things on track. Please familiarize yourself with these rules and guidelines.


Remain civil and respectful

There are several hundred people who actively participate here. People come from all different backgrounds and will have different ways of seeing things. You will not agree with everything you read here. Back-and-forth discussions are fine but do not cross the line into rude or disrespectful behavior.

Conduct yourself as you would at any other place where people come together in person to discuss their hobby. If you wouldn't say something to somebody in person, then you probably should not be writing it here.

This should be obvious but, just in case: profanity, threats, slurs against any group (sexual, racial, gender, etc.) will not be tolerated.


Stay close to the original topic being discussed
  • If you are starting a new thread choose a reasonable sub-forum to start your thread. (If you choose incorrectly don't worry, we can fix that.)
  • If you are responding to a thread, stay on topic - the original poster was trying to achieve something. You can always start a new thread instead of potentially "hijacking" an existing thread.



Contribute something meaningful

To put things in engineering terms, we value a high signal to noise ratio. Coming here should not be a waste of time.
  • This is not a chat room. If you are taking less than 30 seconds to make a post then you are probably doing something wrong. A post should be on topic, clear, and contribute something meaningful to the discussion. If people read your posts and feel that their time as been wasted, they will stop reading your posts. Worse yet, they will stop visiting and we'll lose their experience and contributions.
  • Do not bump threads.
  • Do not "necro-post" unless you are following up to a specific person on a specific thread. And even then, that person may have moved on. Just start a new thread for your related topic.
  • Use the Private Message system for posts that are targeted at a specific person.


"PM Sent!" messages (or, how to use the Private Message system)

This forum has a private message feature that we want people to use for messages that are not of general interest to other members.

In short, if you are going to reply to a thread and that reply is targeted to a specific individual and not of interest to anybody else (either now or in the future) then send a private message instead.

Here are some obvious examples of when you should not reply to a thread and use the PM system instead:
  • "PM Sent!": Do not tell the rest of us that you sent a PM ... the forum software will tell the other person that they have a PM waiting.
  • "How much is shipping to ....": This is a very specific and directed question that is not of interest to anybody else.


Why do we have this policy? Sending a "PM Sent!" type message basically wastes everybody else's time by making them having to scroll past a post in a thread that looks to be updated, when the update is not meaningful. And the person you are sending the PM to will be notified by the forum software that they have a message waiting for them. Look up at the top near the right edge where it says 'Notifications' ... if you have a PM waiting, it will tell you there.

Copyright and other legal issues

We are here to discuss vintage computing, so discussing software, books, and other intellectual property that is on-topic is fine. We don't want people using these forums to discuss or enable copyright violations or other things that are against the law; whether you agree with the law or not is irrelevant. Do not use our resources for something that is legally or morally questionable.

Our discussions here generally fall under "fair use." Telling people how to pirate a software title is an example of something that is not allowable here.


Reporting problematic posts

If you see spam, a wildly off-topic post, or something abusive or illegal please report the thread by clicking on the "Report Post" icon. (It looks like an exclamation point in a triangle and it is available under every post.) This send a notification to all of the moderators, so somebody will see it and deal with it.

If you are unsure you may consider sending a private message to a moderator instead.


New user moderation

New users are directly moderated so that we can weed spammers out early. This means that for your first 10 posts you will have some delay before they are seen. We understand this can be disruptive to the flow of conversation and we try to keep up with our new user moderation duties to avoid undue inconvenience. Please do not make duplicate posts, extra posts to bump your post count, or ask the moderators to expedite this process; 10 moderated posts will go by quickly.

New users also have a smaller personal message inbox limit and are rate limited when sending PMs to other users.


Other suggestions
  • Use Google, books, or other definitive sources. There is a lot of information out there.
  • Don't make people guess at what you are trying to say; we are not mind readers. Be clear and concise.
  • Spelling and grammar are not rated, but they do make a post easier to read.
See more
See less

XTIDE Universal BIOS v2.0.0 beta testing thread

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #31
    Just an update, I tested the v2 beta in an Amstrad PC-2286 along side it's Western Digital RLL controller, which worked pretty well (the WD was the boot drive). I also successfully tested Trixter's 8088 Corruption on a 5155 a couple of times, which I've found to be quite tough test in the past. This was a custom build from the code I checked out yesterday, albeit that the only change was to set A4 in the fast-XTide write routine.

    HTH

    Comment


      #32
      After noticing drives in extended partitions create with XTIDE weren't visible with the drive connected directly to a P200 mobo IDE port, I've run the BIOSDRVS utility, here are the results:

      On the P200:

      ah=25h returned code 1

      old in13h ah=08h and ah=15h
      cyl 1023, hds 16, sec 63
      total sectors 2046240

      ebios ah=48h
      ver 21h, int bitmap 1h
      cyl 63, hds 16, sec 2031
      total sectors 2047248
      sec sz 512


      On XT-IDE adapter:

      ah=25h
      name: Industrial CF Card
      Cyl 2031, hds 16, sec 63
      chs sectors 2047248
      lba28 sectors 2048000

      XTIDE Universal BIOS v2.0.0b1 generates the following L-CHS:
      cyl 1015, hds 32, sec 63

      Old in13h ah=08h and ah=15h
      cyl 1015, hds 32, sec 63
      total sectors 2046240

      ebios ah=48h
      ver 21h, int bitmap 1h
      total sectors 2048000
      sec sz 512


      Hope that helps!

      Comment


        #33
        Interesting. It looks like the P200 BIOS just limits the P-CHS cylinders to maximum L-CHS cylinder value of 1024 and then reserves one diagnostic cylinder. What is strange that the AH=15 returns the same total sectors as XTIDE Universal BIOS, 2046240 sectors. That is a result from multiplying 1015 cylinders, 32 heads and 63 sectors. So at AH=15h the P200 BIOS seems to use the same L-CHS values as XTIDE Universal BIOS but in AH=08h the L-CHS values are different.

        P200 certainly auto detects the drive but does it use LBA or LARGE addressing mode? Probably LARGE since AH=48h seems to return total sectors from multiplied P-CHS values. The larger sector count returned by XTIDE Universal BIOS is the LBA sector count read from ATA-information.

        Is the P200 BIOS from Phoenix (likely not), Award or AMI?

        Comment


          #34
          Chaintech 5SIM motherboard with patch Award BIOS I think, but let me check (and the numbers) in case I've made a mistake.

          The extended partition does appear in FDISK, but no logicial drives in it.

          Comment


            #35
            Something like "BIOSDRVS > output.txt" should reduce the risk of a mistake (not to mention your typing). If it appears to hang, just hit enter.
            Looking for a cache card for the "ICL ErgoPRO C4/66d V"

            Comment


              #36
              Why didn't I think of that So here it is:

              -- Chaintech 5SIM P200 (Award BIOS) --

              BIOS Drive Information Tool v1.0.1
              (C) 2012 by XTIDE Universal BIOS Team
              Released under GNU GPL v2
              http://code.google.com/p/xtideuniversalbios/

              -= Drive 80h =-
              ATA-information from AH=25h...
              BIOS returned error code 1h
              Old INT 13h information from AH=08h and AH=15h...
              Cylinders : 1023 , Heads: 16 , Sectors: 63
              Total sectors: 2046240
              EBIOS information from AH=48h...
              Version : 21h , Interface bitmap: 1h
              Cylinders : 63 , Heads: 16 , Sectors: 2031
              Total sectors: 2047248
              Sector size : 512

              BIOS translation options are:
              Options (size/cyls/hds/sector):
              LBA : 1047/1015/32/63
              Normal: 1048/2031/16/63
              Large : 1027/1015/32/63

              It seems to suggest the default is LBA; drives are on 'auto' in the detection section.

              -- PC/XT with XT-IDE Universal BIOS --

              BIOS Drive Information Tool v1.0.1
              (C) 2012 by XTIDE Universal BIOS Team
              Released under GNU GPL v2
              http://code.google.com/p/xtideuniversalbios/

              -= Drive 80h =-
              ATA-information from AH=25h...
              Name: Industrial CF Card
              Cylinders : 2031 , Heads: 16 , Sectors: 63
              CHS sectors: 2047248
              LBA28 sectors: 2048000
              XTIDE Universal BIOS v2.0.01 (2012-03-19) generates following L-CHS...
              Cylinders : 1015 , Heads: 32 , Sectors: 63
              Old INT 13h information from AH=08h and AH=15h...
              Cylinders : 1015 , Heads: 32 , Sectors: 63
              Total sectors: 2046240
              EBIOS information from AH=48h...
              Version : 21h , Interface bitmap: 1h
              Total sectors: 2048000
              Sector size : 512

              Comment


                #37
                Originally posted by pearce_jj View Post
                BIOS translation options are:
                Options (size/cyls/hds/sector):
                LBA : 1047/1015/32/63
                Normal: 1048/2031/16/63
                Large : 1027/1015/32/63

                It seems to suggest the default is LBA; drives are on 'auto' in the detection section.
                I think it uses the NORMAL addressing because AH=08h returns 1023,16,63. Heads and Sectors are unchanged so no translation. Cylinders are simply limited to the maximum old INT 13h value. That is the 504 MiB limit so DOS 6 and older can only access half the CF capacity in NORMAL mode. Also note that the LBA CHS is the same what XTIDE Universal BIOS uses. Try to manually set LBA mode if possible.

                For some odd reason AH=15h seems to report the LBA or LARGE capacity even thought the AH=08h seems to return NORMAL mode CHS (with cylinders limited). Looks like a bug in Award BIOS. What I don't understand is why EBIOS reports P-CHS capacity and not LBA capacity.

                Comment


                  #38
                  I've done some research and I'm sorry to say but the L-CHS parameters in v2 beta 1 are still not generated correctly. This makes moving drives from one system to another problematic, so I don't recommend doing that. I'll try to fix the geometry translations to beta 2. It would help to have BIOSDRVS.COM results from many systems and drives.

                  Comment


                    #39
                    Odd issue with v2 beta BIOS with a Kingston 128MB Compact Flash card (labelled CF/128 P722282X1 9930295-002.A00). Card supports PIO mode 4.

                    Connected in a IDE-to-CF adapter directly on a Chaintech 5Sim motherboard with P200, card works fine - detected OK, then can boot from DOS floppy, wipe it, create a partition, format, transfer system, and boot from the card.

                    Connected in my 8-bit CF board, can do all the above BUT it won't boot, it reports the DOS 4 boot sector message (Missing operation system).

                    Move the CF card back to the motherboard port and it won't boot there either when the XT-IDE Universal BIOS is installed, so the configuration at this point is: 8-bit CF board installed with no CF card fitted, XT-IDE Universal BIOS installed but handling no drives, motherboard BIOS handing the card on the on-port IDE channel. Result: Can't boot. Flick the switch to disable the XT-IDE Universal BIOS and reboot, and it boots fine.

                    As said it won't boot with XTIDE Universal BIOS installed, but in this configuration when booted from a floppy the partition on the card can be accessed fine and passes any number of pattern tests.

                    Next I built the universal BIOS with a delay between the reset and sector access:

                    Code:
                    LoadFirstSectorFromDriveDL:
                    	LOAD_BDA_SEGMENT_TO	es, bx				; ES:BX now points to...
                    	mov		bx, BOOTVARS.rgbBootSect		; ...boot sector location
                    	mov		di, BOOT_READ_RETRY_TIMES		; Initialize retry counter
                    
                    .ReadRetryLoop:
                    	call	.ResetBootDriveFromDL			;
                    	push	AX						; JJP debug - add a 200ms wait after device reset,
                    	mov	AX, 4						; in attempt to resolve certain CF card boot issues
                    	call	Timer_DelayTimerTicksFromAX	; 
                    	pop	AX						; 
                    	call	.LoadFirstSectorFromDLtoESBX	; 
                    	jnc		SHORT .Return			;
                    	dec		di					; Decrement retry counter
                    	jnz		SHORT .ReadRetryLoop		; Loop while retries left
                    .Return:
                    	ret
                    With that in place it will boot every time when the card is in my 8-bit CF board BUT NOT in the on-board IDE port (no change).

                    Finally when I move the 8-bit CF board to real XT, it won't boot with either BIOS build but the drive can be accessed OK mostly, but when rebooting the BIOS detection often shows garbled drive ID string.

                    Comment


                      #40
                      Originally posted by pearce_jj View Post
                      Next I built the universal BIOS with a delay between the reset and sector access
                      Strange that such delay was necessary. I just made few changes. Boot loader now resets drive only after error so the delay should no longer be needed. I made another change as well, there is now extra delay after resetting controller and before initializing drives. It is actually meant to wait until drive motor reaches full speed so it might not do any good for CF cards.


                      but when rebooting the BIOS detection often shows garbled drive ID string.
                      It might be hardware related but it might not. I had similar problem with 4GB Magicstor Microdrive and XTIDE rev 1 on IBM 5150. The ID string was garbled on first power up and when rebooting. Some change to the BIOS made the string appear fine or at least something made it appear fine but the drive never passed disktest.exe Walking-Zeros test. Hitachi microdrive never had any problems with the same system and BIOS. The Magicstor worked fine on a P133 system with same XTIDE and BIOS, so I don't know what the problem is.

                      Comment


                        #41
                        Regarding 32-bit I/O support on VLB IDE controllers. This site is a good reference and has programming info: http://www.ryston.cz/petr/vlb/vlbidechips.html

                        Don't know if support for all those different chipsets can be crammed into the ROM though.

                        Comment


                          #42
                          Originally posted by aitotat View Post
                          Strange that such delay was necessary. I just made few changes. Boot loader now resets drive only after error so the delay should no longer be needed. I made another change as well, there is now extra delay after resetting controller and before initializing drives. It is actually meant to wait until drive motor reaches full speed so it might not do any good for CF cards.
                          Hi, thanks - this seems to work OK, from a quick test at least, in the P200. It won't run in the 5160 still.

                          What's puzzling me is why the universal-BIOS Int19h handler seemingly prevents the card booting when it's though attached to the motherboard IDE board and handled by the motherboard BIOS. To help me debug that, how involved is the universal-BIOS in the boot process if it's handling no drives?

                          Comment


                            #43
                            Originally posted by pearce_jj View Post
                            To help me debug that, how involved is the universal-BIOS in the boot process if it's handling no drives?
                            INT 19h handler should work no matter what BIOS handles the drive. I don't know why it does not work. I suspect the problem might be in INT 13h handler and not in INT 19h handler. I might be that the 13h handler unintentionally requires at least one drive to be handled by XTIDE Universal BIOS. I'll need to do some testing but I'm quite busy at the moment.

                            Comment


                              #44
                              Originally posted by njroadfan View Post
                              Regarding 32-bit I/O support on VLB IDE controllers. This site is a good reference and has programming info: http://www.ryston.cz/petr/vlb/vlbidechips.html

                              Don't know if support for all those different chipsets can be crammed into the ROM though.
                              Thank you, although I already know that site. In fact I implemented the QDI Vision support (not in beta 1) using that info. The biggest problem is that I don't have controllers to test with. I do have one with Promise PDC20230C so that is next in line, then Intel Pentium chipsets. If I only had enough time...

                              Comment


                                #45
                                Originally posted by aitotat View Post
                                INT 19h handler should work no matter what BIOS handles the drive. I don't know why it does not work. I suspect the problem might be in INT 13h handler and not in INT 19h handler. I might be that the 13h handler unintentionally requires at least one drive to be handled by XTIDE Universal BIOS. I'll need to do some testing but I'm quite busy at the moment.
                                I did a bit more digging. Every other CF-Card I have boots fine in either my controller or the P200's onboard controller in both cases, i.e. with the XT-IDE BIOS installed or not. There seems to be something about the v2 beta BIOS that is stopping the Kingston CF/128 card working even when its installed in the mobo port and controlled by the mobo BIOS.

                                Comment

                                Working...
                                X