Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

FreeDOS on SBC188 (Announce)

posted by ecm Homepage E-mail, Düsseldorf, Germany, 15.09.2020, 15:15

> > Next try the following:
> >
> > 1. Boot into the debugger.
> >
> > 2. boot protocol chain b12test.bin
> >
> > 3. tp fffff while cs != 1FE0
>
> [image]

As expected.

> > 6. d ds:si - 10 length 20
> >
> > 7. Again show us what is visible.
>
> [image]

This confirms that the memory was not corrupted: The dot is still in memory after the call instruction where it belongs.

> > 4. tp fffff while cs == 1FE0 && (ip != 7D41 || al == 2E)
> > silent
> >
> > 5. Show us what is visible after the prior step.
>
> [image]

Ah, now everything is clear. The SBC188 ROM-BIOS that you use appears to modify the value in the al register when called for interrupt 10h service 0Eh and the cursor is at the end of the line. In that case it returns with al equal to 0Ah (the Line Feed codepoint). The modern FAT12/FAT16 FreeDOS boot sector loader expects the register to remain unchanged, so that it can check whether it finished displaying.

On your hard disk either you're using the (CHS) FAT32 loader, or it might be the case that you're using the FAT16 loader but it doesn't display as many dots as needed to fill the line width. If you have a cluster size larger than 1 sector (512 bytes), then the sector reading code will only display one dot per cluster. It will loop to read_next for the subsequent sectors in the cluster, which doesn't display another dot.

If you're already in contact with the maintainers of the SBC188 board's firmware, can you please point them to this? The int 10.0E service is expected to preserve the contents of the al register. I will prepare a patch for the FreeDOS boot sector loader regardless, but it is better to fix the bug on both sides, so that current FreeDOS loaders will also work on this board after a ROM-BIOS update.

---
l

 

Complete thread:

Back to the forum
Board view  Mix view
22033 Postings in 2032 Threads, 396 registered users, 8 users online (0 registered, 8 guests)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum