From: Frank Kotler on
Mike Gonta wrote:

> http://mikegonta.com/aeBIOS

20070923

Not a start image - Press Any Key

(same as 20070922, but on a new line now)

My /proc/cpuinfo claims:

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 1
model name : Intel(R) Pentium(R) 4 CPU 1.80GHz
stepping : 2
cpu MHz : 1816.203
cache size : 256 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm
bogomips : 3617.58

.... although I suspect a FDC problem. Dunno what that is - "barely
workin'"... may not be a problem with your code...

Best,
Frank
From: Rod Pemberton on

"Rod Pemberton" <do_not_have(a)nowhere.cmm> wrote in message
news:fd43de$9v8$1(a)aioe.org...
> "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...
> > > Testing feedback would be greatly appreciated.
> > >
> >
> > 9/22 same... [2nd stage not loaded - halted]
> >

9/23 changed...

FDC failed - halted


RP

From: geezer on
Mike Gonta <mikegonta(a)gmail.com> wrote:

>On Sep 22, 1:19 pm, "Benjamin David Lunt" <zf...(a)frontiernet.net>
>wrote:
>> Are you reading all 35 sectors with one read?
>
>Correct.

Then maybe you need to patch the diskette parameter table.
See INT 1Eh in Ralf Brown's list. The table could be in ROM,
so you copy it to RAM (0000:0522h seems to be the traditional
location for the copy), patch the sectors-per-track value,
then point the INT 1Eh vector to the patched table.


================================================================
From MS-DOS 7.0 (Win95) bootsector
================================================================

{snip}
0000:7C41 33C9 xor cx,cx ; SS=0
0000:7C43 8ED1 mov ss,cx
{snip}
0000:7C48 16 push ss
0000:7C49 07 pop es ; ES=0
0000:7C4A BD7800 mov bp,0x78 ; SS:BP --> INT 1Eh vector
0000:7C4D C57600 lds si,[bp+0x0] ; DS:SI --> old diskette parameter table (DPT)
{snip}
0000:7C54 BF2205 mov di,0x522
0000:7C57 897E00 mov [bp+0x0],di ; new INT 1Eh vector --> new DPT at 0000:0522
0000:7C5A 894E02 mov [bp+0x2],cx
0000:7C5D B10B mov cl,0xb ; copy old DPT (11 bytes) to new DPT
0000:7C5F FC cld
0000:7C60 F3A4 rep movsb
0000:7C62 06 push es ; DS=0
0000:7C63 1F pop ds
0000:7C64 BD007C mov bp,0x7c00 ; SS:BP --> this bootsector
0000:7C67 C645FE0F mov byte [di-0x2],0xf ; new head settle time=15 ms (why?)
0000:7C6B 8B4618 mov ax,[bp+0x18]
0000:7C6E 8845F9 mov [di-0x7],al ; new sectors/track in DPT = sectors/track from this bootsector
{snip}

================================================================
From Linux (prior to version 2.6) bootsect.s
================================================================

{snip}
/*
* Many BIOS's default disk parameter tables will not
* recognize multi-sector reads beyond the maximum sector number
* specified in the default diskette parameter tables - this may
* mean 7 sectors in some cases.
*
* Since single sector reads are slow and out of the question,
* we must take care of this by creating new parameter tables
* (for the first disk) in RAM. We will set the maximum sector
* count to 36 - the most we will encounter on an ED 2.88.
*
* High doesn't hurt. Low does.
*
* Segments are as follows: ds=es=ss=cs - INITSEG,
* fs = 0, gs is unused.
*/

! cx contains 0 from rep movsw above

mov fs,cx
mov bx,#0x78 ! fs:bx is parameter table address
push ds
seg fs
lds si,(bx) ! ds:si is source

mov cl,#6 ! copy 12 bytes
cld
push di

rep
movsw

pop di
pop ds

movb 4(di),*36 ! patch sector count

seg fs
mov (bx),di
seg fs
mov 2(bx),es

From: Rod Pemberton on

"Rod Pemberton" <do_not_have(a)nowhere.cmm> wrote in message
news:fd6trd$tha$1(a)aioe.org...
>
> "Rod Pemberton" <do_not_have(a)nowhere.cmm> wrote in message
> news:fd43de$9v8$1(a)aioe.org...
> > "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...
> > > > Testing feedback would be greatly appreciated.
> > > >
> > >
> > > 9/22 same... [2nd stage not loaded - halted]
> > >
>
> 9/23 changed...
>
> FDC failed - halted
>

Sorry, I didn't notice the 9/24 update.

9/24 changed...
06 (on green background)

Bad news: QEMU doesn't like it now.

Interesting news: I have a utility which boots A: after DOS is loaded. It
works for FYSOS, but not DOS... It hasn't been working for aeBIOS. But, it
now "works" for aeBIOS 9/24 version. However, 06 still comes up - only
_after_ the first hello world/press a key messages. Since the "working"
machine loads and displays hello world/press a key over and over without
waiting (even on 9/24), the 06 gives me the impression that DOS "enabled"
something, your OS ran due to this, your OS "disabled" something when it
tried to reload/rerun.


Rod Pemberton

From: Rod Pemberton on

"Rod Pemberton" <do_not_have(a)nowhere.cmm> wrote in message
news:fdd545$aqa$1(a)aioe.org...
>
> "Rod Pemberton" <do_not_have(a)nowhere.cmm> wrote in message
> news:fd6trd$tha$1(a)aioe.org...
> >
> > "Rod Pemberton" <do_not_have(a)nowhere.cmm> wrote in message
> > news:fd43de$9v8$1(a)aioe.org...
> > > "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...
> > > > > Testing feedback would be greatly appreciated.
> > > > >
> > > >
> > > > 9/22 same... [2nd stage not loaded - halted]
> > > >
> >
> > 9/23 changed...
> >
> > FDC failed - halted
> >
>
> Sorry, I didn't notice the 9/24 update.
>
> 9/24 changed...
> 06 (on green background)
>
> Bad news: QEMU doesn't like it now.
>
> Interesting news: I have a utility which boots A: after DOS is loaded. It
> works for FYSOS, but not DOS... It hasn't been working for aeBIOS. But,
it
> now "works" for aeBIOS 9/24 version. However, 06 still comes up - only
> _after_ the first hello world/press a key messages. Since the "working"
> machine loads and displays hello world/press a key over and over without
> waiting (even on 9/24), the 06 gives me the impression that DOS "enabled"
> something, your OS ran due to this, your OS "disabled" something when it
> tried to reload/rerun.
>

Just read the 9/24 docs:
"Should int 0 to int 0Fh occur, a 2 digit hex number will appear..."

06 appeared which is invalid opcode...

MG Previously:
> No unreal mode, all code is pmode, except for the transition to the real
mode BIOS.

RB int. list:
"INT 06 C - CPU-generated (80186+) - INVALID OPCODE"

"...many 386 BIOSes emulate the 80286 undocumented LOADALL instruction which
was removed from the 80386+"

Now, I'm wondering if 286 LOADALL is actually the invalid opcode?


Rod Pemberton