Carnivore2 : First impressions and bugs...

Page 32/44
25 | 26 | 27 | 28 | 29 | 30 | 31 | | 33 | 34 | 35 | 36 | 37

By Pencioner

Paladin (800)

Pencioner's picture

08-05-2018, 21:06

NAND cells can be rewritten about 100,000 times IIRC Wink

By Alexey

Guardian (1873)

Alexey's picture

09-05-2018, 04:04

I finally managed to make the boot block compatible with Korean and Arabic MSX computers. They differ from our standard MSX machines and those differences result in nasty incompatibility issues. For example the Korean BIOS destroys the alternative registers and modifies index registers during calls. So if you are using EXX commands and you rely on the alternative registers, after calling any BIOS function you can say goodbye to them. Nasty! Anyway, here's the BIOS that works with Daewoo and Arabic MSXs in the emulator. I can't test it on real machines because I have none.

http://podrezov.com/carnivore2/special/bootblock.zip

The UI had to be modified to be able to work with those weird machines. They use certain characters to control the output to the screen, so I had to simplify the UI a lot by only using the printable characters. But it doesn't look too ugly.

By Grauw

Enlighted (7791)

Grauw's picture

09-05-2018, 08:34

Wasn't the BIOS supposed to increase compatibility? Tongue

By Alexey

Guardian (1873)

Alexey's picture

09-05-2018, 10:58

Well, on all other machines the boot block works correctly. Not on those ones. That could explain some software not working on those computers. In any case the new boot block version (see the link above) should be able to mitigate this problem.

By Eugeny_Brychkov

Paragon (1050)

Eugeny_Brychkov's picture

09-05-2018, 11:57

Alexey wrote:

For example the Korean BIOS destroys the alternative registers and modifies index registers during calls. So if you are using EXX commands and you rely on the alternative registers, after calling any BIOS function you can say goodbye to them.

That's weird. I tested on emulated Daewoo CPC-300 with CHGET call, and it is true. However this document says that only AF will be affected.

Corruption to all registers except BC, DE and HL happens for simple reason - Hangul driver is being FAR called, and FAR call kills all regs in alternate set, and IX/IY registers.

By Eugeny_Brychkov

Paragon (1050)

Eugeny_Brychkov's picture

09-05-2018, 15:11

Alexey wrote:

So if you are using EXX commands and you rely on the alternative registers, after calling any BIOS function you can say goodbye to them.

Affected calls in the CPC-300 are:

CHPUT  FDA4
CHGET  FDC2
PINLIN FDDB
QINLIN FDE0
INLIN  FDE5
LPTOUT FBB6

It is logical because these routines are I/O calls subject to localization.

By Alexey

Guardian (1873)

Alexey's picture

09-05-2018, 15:51

I also noticed that on CPC-400S more functions are affected, for example POSIT (address #00C6). So I added register preserving functionality for all BIOS calls in the boot block. Just in case. Smile

One more bug has been found when trying to output a long message that should fit the screen. The screen has 24 lines as it should according to the standard. Normally if you print something on the last position of the 24th line, the screen scrolls one line up. However on those Korean machines this already happens when printing something in the end of line 23. That's why the lower right corner of the UI looks weird on the above image. It's a workaround to prevent scrolling.

If I ever get my hands on CPC-400S, I will patch the BIOS to eliminate these nasty bugs.

By hit9918

Prophet (2824)

hit9918's picture

09-05-2018, 18:55

another thing to take care is that it might return with DI.
so one got to EI or else may be stuck.

By Alexey

Guardian (1873)

Alexey's picture

10-05-2018, 03:44

The new boot block is confirmed to be working on the real Daewoo CPC-400S.

By Alexey

Guardian (1873)

Alexey's picture

10-05-2018, 13:11

I managed to mitigate the bug in BIOS when I could not print on the last position of line 23. Now the frame looks complete. The bootblock has been updated as well as the picture above.

Page 32/44
25 | 26 | 27 | 28 | 29 | 30 | 31 | | 33 | 34 | 35 | 36 | 37
My MSX profile