From: Mike Gonta on
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

"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

"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
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
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