Image Map Image Map
Page 14 of 37 FirstFirst ... 410111213141516171824 ... LastLast
Results 131 to 140 of 364

Thread: XTIDE Universal BIOS

  1. #131

    Default

    XTIDE Universal BIOS v1.1.4 can be found here.

    Here are the changes since v1.1.3:
    • Correct number of drives is now returned from AH=08h when it is redirected to foreign BIOS.
    • Interrupt controllers are now unmasked during drive reset.
    • OS hooks are now enabled for all builds. IRQ waiting no longer uses HLT instruction to fix some EMM386 and VCPI issues.
    • XT+ build is no more since it would now be the same as AT build.


    There is no longer XT+ build since it would now had the same functionality as AT build. Use AT build if you previously used XT+.

    EMM386/VCPI and HLT instruction bug was a strange one. I have been installing 386 system to gaming condition and of course that means it must have Gravis Ultrasound in it. GUS has Mega-EM utility to emulate Roland MT-32 and General Midi. When Mega-EM was loaded and game used it, the system would always crash to a EMM386 error #1.

    Eventually i found that there were no problems when running the game from a hard disk managed by motherboard BIOS. After a lot of testing i found out that disabling interrupts would make everything work when running the game from XTIDE Universal BIOS managed drive. Again lots of testing revealed that HLT instruction was the reason for those EMM386 errors. Removing one single instruction made everything work. HLT simply puts the processor to sleep until any interrupts wakes it.

    I'm not sure what exactly the problem was. EMM386 worked fine when Mega-EM was not used. I think Mega-EM uses VCPI so this all was somehow related to virtual x86 and protected mode since HLT is a system instruction.

  2. #132

    Default

    I forgot to mention one thing. XT+ and AT builds had different default settings so you need to change IDE controller variables (port, bus type) and possibly enable late initialization when using AT build on XT systems. Maybe i should maintain the XT+ build anyway? Another alternative would be to allow loading default settings from configurator program.

  3. #133

    Default

    It has been a while since last release. I've been rewriting library functions (menu system etc). It took 3-4 weeks to write them for the first time and 6 months to rewrite them. I was hoping to save maybe 1 kB but the new libraries actually requires more space than the old one. Once again I made a big mistake by rewriting code that already works.

    XTIDE Universal BIOS does not yet use the new libraries (you'll have to wait v1.2.0 that hopefully won't take 6 months) but v1.1.5 comes with new configuration and flashing program that do use them. New flashing program is xtidecfg.com so make sure you use that. idecfg.com is still available since the new configurator does not have couple of settings that I'm going to remove from v1.2.0.

    There are potential compatibility problems since new libraries write directly to screen AND uses BIOS for handling teletype characters. That is sort of a compromise between speed and code size.

    Configurator menu now appears in colors but MDA is also supported. Monochrome attributes are automatically used in video mode 7. Black & White attributes are used in video modes 0 and 2 for color adapters connected to B&W monitor. DOS has mode.com that can be used to switch between color and B&W modes.

    So here is XTIDE Universal BIOS v1.1.5. Just some bug fixes and I'm not sure that booter games work since I have none to test with.

    XTIDE Universal BIOS v1.1.5 (28 November 2010)
    * Errors are now being checked when calling previous INT 13h handler on AH=08h Read Disk Drive Parameters. This fixes infinite drive checking loop on unofficial MS-DOS 7.10 installer.
    * Better INT 40h handler detection to fix floppy drive detection with AMI 286/386 BIOS.
    * AA55h signature no longer required when booting from floppy drives. This should make booter games work.

  4. #134
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    5,387

    Default Incompatibility: XTIDE Universal BIOS and first IBM 5170 BIOS

    Having the optional 360KB floppy drive fitted to my early IBM 5170 means that a second 5.25" form factor MFM hard drive is not a possibility (even half height). I decided to try a VCF XTIDE card with CF card to provide the second drive.

    Initially, I could not get the XTIDE card (any of the few I have) to work in my early 5170. A friend tried to get his XTIDE card working in his 5170, and he also could not get it working. I switched from CF card to standard IDE drive and had the same problem.

    I had no problem getting the XTIDE card to work in my 286 clone. If I took the working XTIDE_card/cable/drive combination from my 286 clone and placed it in my early 5170, no go.

    To cut a very long story short, it appears that present versions of the XTIDE Universal BIOS are incompatible with the IBM BIOS fitted in the early model 5170s, specifically the first IBM BIOS which is dated 01/10/84 (U27=6181028/U47=6181029).

    Substitute that IBM BIOS with either an AMI one (5170 compatible) or an Award one (5170 compatible), and the problem disappears.
    Substitute that IBM BIOS with either the second revision IBM one (06/10/85) or the third revision IBM one (11/15/85), and the problem disappears.
    Put the first revision IBM BIOS back in, and the problem returns.

    I have 3 early 5170 motherboards that exhibit this same problem.

    SYMPTOMS

    Differs, dependent on version of the XTIDE Universal BIOS.

    Version 1.1.0

    1. Power on.
    2. Master and slave identified as expected - good.
    3. Boot menu appears - good.
    4. On selecting the hard drive attached to the XTIDE card, "Boot sector found!" is displayed - good.
    5. BAD - nothing else happens.

    At this point, depending on the make/model of the hard drive attached, the drive access LED may be on solid.
    At this point, a CTL-ALT-DEL will restart the 5170, but then the XTIDE Universal BIOS will report "not found" when trying to 'identify' the Master drive. A hard reset is required.

    Additional info: At the menu, if one chooses the floppy drive, the 5170 will boot from the floppy.

    Versions 1.1.3 / 1.1.4 / 1.1.5

    1. Power on.
    2. Master and slave identified as expected - good.
    3. BAD - nothing else happens (5170 appears frozen).

    At this point, depending on the make/model of the hard drive attached, the drive access LED may be on solid.
    At this point, a CTL-ALT-DEL will restart the 5170, but then the XTIDE Universal BIOS will report "not found" when trying to 'identify' the Master drive. A hard reset is required.

    OTHER

    In attempting to get the XTIDE Universal BIOS / first 5170 BIOS combination working, I have tried:

    * Minimum configuration (motherboard / PSU / XTIDE / hard drive/ video card)
    * Different video cards (CGA and EGA)
    * XTIDE card
    * Generic 16-bit IDE card (no BIOS - all chips are TTL) with XTIDE Universal BIOS located on EPROMS in sockets U17/U37
    * Acculogic sIDE-2 card with XTIDE Universal BIOS located on EPROMS in sockets U17/U37
    * 5 different IDE hard drives (ranging from 80 MB to 6 GB)
    * IDE to CF adapter
    * Many different configuration settings within the XTIDE Universal BIOS
    * Upping base RAM from 512K to 640K (stab in the dark)

  5. #135

    Default

    Quote Originally Posted by modem7 View Post
    * Many different configuration settings within the XTIDE Universal BIOS
    So you've tried with Full operating mode disabled and enabled?
    Have you tried different boot loader types (to disable boot menu)? If not, try other boot loaders with Full Operating mode enabled and be sure to use AT build.

  6. #136
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    5,387

    Default

    Quote Originally Posted by aitotat View Post
    So you've tried with Full operating mode disabled and enabled?
    Have you tried different boot loader types (to disable boot menu)? If not, try other boot loaders with Full Operating mode enabled and be sure to use AT build.
    Yes, I had tried many possible combinations, including those elements.

    I have just now retried various combinations and seen the same result.
    I list those combinations below.

    ------------------------------------------------------------------------------

    The XTIDE card has the AT version of 1.1.5 loaded.

    Minimum hardware configuration: motherboard / CGA card / floppy controller / XTIDE card / PSU / keyboard / battery

    With the AMI BIOS in place, the XTIDE card works as expected.
    That verifies that I haven't introduced a second problem (e.g. bad cable).
    When I then swap the AMI BIOS for the first revision IBM one - problem appears as expected.

    I then experiment with the XTIDE BIOS configuration as follows:

    * Full=yes - Menu - interrupts off - block transfers on
    * Full=yes - Menu - interrupts off - block transfers off

    * Full=yes - Menu - interrupt=3 - block transfers on (for this test, jumper on XTIDE card added for IRQ3)
    * Full=yes - Menu - interrupt=3 - block transfers off (for this test, jumper on XTIDE card added for IRQ3)

    * Full=yes - 'A then C' - interrupts off - block transfers on

    * Full=yes - System - interrupts off - block transfers on (if no boot floppy present, this boots to BASIC)

    * Full=no - Menu - interrupts off - block transfers on

    None of the combinations work.

    ------------------------------------------------------------------------------

    SOMETHING POSSIBLY RELEVANT

    I'd noticed this before, and have just verified it.

    Whenever the EEPROM is flashed, the message "EEPROM was written successfully. Press any key to reboot." appears.
    With the first revision IBM BIOS on the motherboard, pressing any key results in the screen going blank, but nothing more - no restart.

    With the first revision IBM BIOS on the motherboard, GSETUP can successfully restart the 5170.

    If I then upgrade the motherboard BIOS to the second revision one, XTIDECFG can then restart the 5170.
    A bug in the first revision IBM BIOS for the 5170 ?

  7. #137

    Default

    Quote Originally Posted by modem7 View Post
    None of the combinations work.
    No idea whats wrong. Does any part of the boot menu appear when it is enabled?
    Can you try one more time with XT build? Enable Full operating mode and use A then C boot loader. Be sure to connect both master and slave drive. No need to try other settings if those won't work.


    A bug in the first revision IBM BIOS for the 5170 ?
    Reset is very simple:
    Code:
    .RebootComputer:
    	mov	al, 0FEh			; System reset (AT+ keyboard controller)
    	out	64h, al			; Reset computer (AT+)
    	nop
    	jmp	WORD 0F000h:0FFF0h	; XT reset
    It first tries to reset using keyboard controller (AT and later systems only). If system did not reset, then there is a jump to BIOS initialization (only way to reset XT systems). Jumping to BIOS initialization is not reliable reset on later systems so the hardware might be in a state that the BIOS do not expect. That would mean the keyboard controller reset had failed. Anyone know how GSETUP does the reset?

  8. #138
    Join Date
    May 2006
    Location
    Melbourne, Australia
    Posts
    5,387

    Default

    Quote Originally Posted by aitotat View Post
    Does any part of the boot menu appear when it is enabled?
    No. With the menu enabled in 1.1.5, I see:

    IDE Master at 0300: xxxxx
    IDE Slave at 0300: xxxxxx

    The cursor sits on the line directly underneath those two lines (at leftmost position).

    Quote Originally Posted by aitotat View Post
    Can you try one more time with XT build? Enable Full operating mode and use A then C boot loader. Be sure to connect both master and slave drive. No need to try other settings if those won't work.
    I've just now tried all that. No change in symptoms. Both drives are identified on screen with cursor sitting underneath.
    If I then put in the AMI BIOS, the 5170 proceeds past that point to then boot from C:

    Quote Originally Posted by aitotat View Post
    It first tries to reset using keyboard controller (AT and later systems only). If system did not reset, then there is a jump to BIOS initialization (only way to reset XT systems). Jumping to BIOS initialization is not reliable reset on later systems so the hardware might be in a state that the BIOS do not expect.
    With the first IBM BIOS in place, I ran DEBUG to execute the AT reset code (mov al,fe / out 64,al). The 5170 reset.
    I then started XTIDECFG them immediately exited XTIDECFG. Running the AT reset code reset the 5170.
    I did various actions in XTIDECFG. The failure to reset only happened when XTIDECFG attempted its reset after EEPROM flashing.

    Quote Originally Posted by aitotat View Post
    That would mean the keyboard controller reset had failed
    Or was taking longer than normal to happen.

  9. #139

    Default

    Quote Originally Posted by aitotat View Post
    Reset is very simple:
    Code:
    .RebootComputer:
    	mov	al, 0FEh			; System reset (AT+ keyboard controller)
    	out	64h, al			; Reset computer (AT+)
    	nop
    	jmp	WORD 0F000h:0FFF0h	; XT reset
    Just to be on the safer side, it would maybe be better to use JMP WORD 0FFFFh:0000h; as this would better resemble the actual register status when the computer starts?
    Current systems owned by me:
    Vintage:IBM PC/XT submodel 087 ( 1983 ), [Kon]tiki-100 rev. C (1983), Compaq Portable I ( 1984 ), IBM PC/XT submodel 078 ( 1985 ), IBM PC/XT286 ( ~1986 ), 3x Nintendo Entertainement Systems ( 1987 ).
    Obsolete:Commodore A500 ( ~1990 ), IBM PS/2 model 70/386 type 8570-161 ( 1991 ), Atari Lynx II ( ~1992 ), Generic Intel 486SX PC ( ~1993 ), AT/T Globalyst Pentium w/FDIV bug MB ( 1994 ), Compaq 486DX4 laptop ( ~1995 ).

  10. #140

    Default

    Quote Originally Posted by per View Post
    it would maybe be better to use JMP WORD 0FFFFh:0000h; as this would better resemble the actual register status when the computer starts?
    True. I must have read 286 datasheet since CS:IP initial state is F000:FFF0h on a 286 but iAPX 86,88 User's Manual says FFFF:0000h for 8086/8088.

    I'll change the reset code to this:
    Code:
    ;--------------------------------------------------------------------
    ; .RebootComputer
    ;	Parameters:
    ; 		Nothing
    ;	Returns:
    ;		Nothing, function never returns
    ;	Corrupts registers:
    ;		Doesn't matter
    ;--------------------------------------------------------------------
    .RebootComputer:
    .ResetAT:
    	mov	al, 0FEh	; System reset (AT+ keyboard controller)
    	out	64h, al		; Reset computer (AT+)
    	mov	ax, 10
    	call	Delay_MicrosecondsFromAX
    .ResetXT:
    	xor	ax, ax
    	push	ax
    	popf			; Clear FLAGS (disables interrupt)
    	mov	ds, ax
    	mov	es, ax
    	mov	ss, ax
    	jmp	WORD 0FFFFh:0h	; XT reset

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •