From: Mike Gonta on 22 Sep 2007 12:51 Thanks to everyone who tested aeBIOS. I have made some changes based on feedback. aeBIOS has tested successfully on standard PC's (I have a 386DX and a Pentium 4). It has also tested successfully on a Pentium D. However, in a few test cases it fails to load the second stage (sector 1 to 35). The floppy disk controller reports OK (there is a separate error message for a FDC failure). It is possibly a DMA programming issue. I have made some changes in the DMA code in the latest version. Testing feedback would be greatly appreciated. The latest version is here http://mikegonta.com/aeBIOS Mike Gonta look and see - many look but few see
From: Rod Pemberton on 22 Sep 2007 17:25 "Mike Gonta" <mikegonta(a)gmail.com> wrote in message news:1190480060.304450.255970(a)n39g2000hsh.googlegroups.com... > Thanks to everyone who tested aeBIOS. > I have made some changes based on feedback. > aeBIOS has tested successfully on standard PC's (I have a 386DX and a > Pentium 4). It has also tested successfully on a Pentium D. > > However, in a few test cases it fails to load the second stage (sector > 1 to 35). The floppy disk controller reports OK (there is a separate > error message for a FDC failure). It is possibly a DMA programming > issue. > > I have made some changes in the DMA code in the latest version. > > Testing feedback would be greatly appreciated. > 9/22 same... Does anyone know of programs which might help identify the problem? I.e., DMA test and compatibility program, FDC test program, floppy test program, info on MB's FDC, floppy, DMA chipset? RP
From: Rod Pemberton on 22 Sep 2007 18:04 "Rod Pemberton" <do_not_have(a)nowhere.cmm> wrote in message news:fd413k$3v4$1(a)aioe.org... > > "Mike Gonta" <mikegonta(a)gmail.com> wrote in message > news:1190480060.304450.255970(a)n39g2000hsh.googlegroups.com... > > Thanks to everyone who tested aeBIOS. > > I have made some changes based on feedback. > > aeBIOS has tested successfully on standard PC's (I have a 386DX and a > > Pentium 4). It has also tested successfully on a Pentium D. > > > > However, in a few test cases it fails to load the second stage (sector > > 1 to 35). The floppy disk controller reports OK (there is a separate > > error message for a FDC failure). It is possibly a DMA programming > > issue. > > > > I have made some changes in the DMA code in the latest version. > > > > Testing feedback would be greatly appreciated. > > > > 9/22 same... > > Does anyone know of programs which might help identify the problem? I.e., > DMA test and compatibility program, FDC test program, floppy test program, > info on MB's FDC, floppy, DMA chipset? > > DaQarta's DOS SYSTEST does some very simple DMA timing. DaQarta's SYSTEST http://www.daqarta.com/download.htm Their doc says: "DMA timing is not for an actual DMA transfer operation, since SYSTEST must be able to work on any system without actually knowing what hardware is present or safe to use. The Read value is the time to read the DMA channel 1 pointer, which is used by applications (like Daqarta) that need to monitor DMA transfer progress between DMA-generated interrupts." "The DMA Write value is the time to set the DMA byte-reset latch. This port (0Ch) is normally used before sending word data to the DMA controller, which can only accept one byte at a time. Writing anything to this port just resets the controller to expect the low byte first, the normal order." (good machine) DMA 1376 read 1376 write (bad machine) DMA 4 read 4 write That _really_ seems like a very large difference in timing... Unfortunately, I'd don't have other machines, at the moment, that I can run SYSTEST on. Rod Pemberton
From: s_dubrovich on 22 Sep 2007 23:01 On Sep 22, 10:54 am, Mike Gonta <mikego...(a)gmail.com> wrote: > Thanks to everyone who tested aeBIOS. > I have made some changes based on feedback. > aeBIOS has tested successfully on standard PC's (I have a 386DX and a > Pentium 4). It has also tested successfully on a Pentium D. > > However, in a few test cases it fails to load the second stage (sector > 1 to 35). The floppy disk controller reports OK (there is a separate > error message for a FDC failure). It is possibly a DMA programming > issue. > > I have made some changes in the DMA code in the latest version. > > Testing feedback would be greatly appreciated. > > The latest version is available here > > http://mikegonta.com/aeBIOS > > Mike Gonta > > look and see- many look but few see Hi Mike, Ver 20070923 I get the error msg.. 2nd stage not loaded - halted. Try something like... thisstub: call read_track ;;parameters in dseg. . . . = = = = = ;;---------------------------------------------------55 ;;----Subroutines---- ;;---------------------------------- ;; read track from disk into buffer read_track: mov cx,3 ;; 3 tries reread_track: push cx call track_setup mov ah,2 ;; read Fn int 13h pop cx jnc read_exit ;; no error, return call recal_disk loop reread_track stc read_exit: ret ;;---------------------------------------------------55 ;;------------------------------------------ ;; recalibrate diskette controller on error recal_disk: mov ah,0 int 13h ret ;;---------- ;;---------------------------------------------------55 ;; Notes: AH.02 RD, AL.numb of sectors to xfer ;; ES:BX dest.buffer CH.track CL.start sector ;; DH.head DL.unit drv numb ;; Rets: NC.good, AH.0, AL.numb sectors xferred ;; CF.error,-> AH.err status byte ;;----Local Function Data---- ;; SECTION .dseg ;;small model align 16 track db 0 ;; current track number (0..79) head db 0 ;; current side (0..1) disk db 0 ;; current disk (0..3) 0.A, 1.B sector db 1 ;; starting sector number, never zero count db number_sectors ;; #phys sectors per trk ;; Obviously, the above are snippets, incomplete, but you get the idea. The recalibrate on error is needed to clear pending errors like disk change, or time out.. it's a bit of a long shot in this situation, but it might clear it up if it's a timing issue over head load/unload. I've had to do this. Steve
From: s_dubrovich on 22 Sep 2007 23:17
On Sep 22, 9:01 pm, s_dubrov...(a)yahoo.com wrote: > On Sep 22, 10:54 am, Mike Gonta <mikego...(a)gmail.com> wrote: > > > > > > > Thanks to everyone who tested aeBIOS. > > I have made some changes based on feedback. > > aeBIOS has tested successfully on standard PC's (I have a 386DX and a > > Pentium 4). It has also tested successfully on a Pentium D. > > > However, in a few test cases it fails to load the second stage (sector > > 1 to 35). The floppy disk controller reports OK (there is a separate > > error message for a FDC failure). It is possibly a DMA programming > > issue. > > > I have made some changes in the DMA code in the latest version. > > > Testing feedback would be greatly appreciated. > > > The latest version is available here > > >http://mikegonta.com/aeBIOS > > > Mike Gonta > > > look and see- many look but few see > > Hi Mike, > > Ver 20070923 > > I get the error msg.. > > 2nd stage not loaded - halted. > And I missed saying this with a Pentium mmx laptop. > Try something like... > thisstub: > call read_track ;;parameters in dseg. > . . . > = = = = = > ;;---------------------------------------------------55 > ;;----Subroutines---- > ;;---------------------------------- > ;; read track from disk into buffer > read_track: > mov cx,3 ;; 3 tries > reread_track: > push cx > call track_setup > mov ah,2 ;; read Fn > int 13h > pop cx > jnc read_exit ;; no error, return > call recal_disk > loop reread_track > stc > read_exit: > ret > ;;---------------------------------------------------55 > ;;------------------------------------------ > ;; recalibrate diskette controller on error > recal_disk: > mov ah,0 > int 13h > ret > ;;---------- i missed this..but this is not for a normal fat disk. ;;---------------------------------------- ;; This is for CP/M diskette layout. track_setup: mov ch,[track] mov ah,ch xor al,al cmp [byte head],byte 0 je not_side1 neg ah add ah,79 not_side1: ;; Get ES from CS, BX == offset verify_track_buffer push cs ;;currently running code segment pop es ;; same dest. segm. mov bx,verify_track_buffer ;; dest. offset ;; add ax,[word bsextra] ;; extra_base val in pg zr ;; mov es,ax ;;ESEG is our track buffer ;; mov bx,0 mov cl,[sector] mov al,[count] ;; # to transfer == SPT mov dh,[head] mov dl,[disk] ret > ;;---------------------------------------------------55 > ;; Notes: AH.02 RD, AL.numb of sectors to xfer > ;; ES:BX dest.buffer CH.track CL.start sector > ;; DH.head DL.unit drv numb > ;; Rets: NC.good, AH.0, AL.numb sectors xferred > ;; CF.error,-> AH.err status byte > ;;----Local Function Data---- > ;; SECTION .dseg ;;small model > align 16 > track db 0 ;; current track number (0..79) > head db 0 ;; current side (0..1) > disk db 0 ;; current disk (0..3) 0.A, 1.B > sector db 1 ;; starting sector number, never zero > count db number_sectors ;; #phys sectors per trk > ;; > Obviously, the above are snippets, incomplete, but you get the idea. > > The recalibrate on error is needed to clear pending errors like disk > change, or time out.. it's a bit of a long shot in this situation, but > it might clear it up if it's a timing issue over head load/unload. > I've had to do this. > > Steve- Hide quoted text - > > - Show quoted text - And on the test PII desktop I'm still getting: 'Not a start image - Press Any Key.' Steve |