Carnivore2 : First impressions and bugs...

Страница 13/52
6 | 7 | 8 | 9 | 10 | 11 | 12 | | 14 | 15 | 16 | 17 | 18

By Alexey

Guardian (3238)

Аватар пользователя Alexey

02-11-2017, 02:20

The boot block has been reworked. The font and layout have been changed. There's a new cursor and new volume control icons. Also the screen colors and their palettes are now controlled by variables, so it's easy to compile the boot block with custom color schemes. Beside the standard ones I have now put the boot block in black, green and blue color schemes into the corresponding folders in the repository:

https://github.com/RBSC/Carnivore2/tree/master/BootBlock

The main menu now looks like that:

And here's the renewed volume control screen:

By Alexey

Guardian (3238)

Аватар пользователя Alexey

02-11-2017, 21:18

There was a problem with colors on MSX1, it has been corrected. Thanks to Carmeloco for pointing this out. The corrected boot block has been uploaded into the repository.

By Alexey

Guardian (3238)

Аватар пользователя Alexey

03-11-2017, 12:58

Can anyone tell me how to disable the bloody cursor? Putting 0 or 1 into 0xFCA9 doesn't have any effect...

By Wolverine_nl

Paragon (1159)

Аватар пользователя Wolverine_nl

03-11-2017, 14:51

Alexey wrote:

Can anyone tell me how to disable the bloody cursor? Putting 0 or 1 into 0xFCA9 doesn't have any effect...

You are treating it like a system-variable, not sure it is the way to go.
Here is a thread about it as well.

By Alexey

Guardian (3238)

Аватар пользователя Alexey

03-11-2017, 18:55

I found some temporary solution for this, will update the boot block soon.

By Alexey

Guardian (3238)

Аватар пользователя Alexey

04-11-2017, 12:48

The new boot block version 1.75 is now in the repository.

Alexey

By NYYRIKKI

Enlighted (5889)

Аватар пользователя NYYRIKKI

04-11-2017, 14:21

Alexey wrote:

Can anyone tell me how to disable the bloody cursor? Putting 0 or 1 into 0xFCA9 doesn't have any effect...

I would say correct way to handle this would be excuting CHSNS (#9C) before CHGET (#9F). If there is character on buffer the cursor will not be drawn... If you really want to get rid of cursor once and for all then you have to do something like POKE &HFDA9,&HE1: POKE &HFDAE,&HE1... Not very great approach though...

By Alexey

Guardian (3238)

Аватар пользователя Alexey

04-11-2017, 20:39

NYYRIKKI wrote:

I would say correct way to handle this would be excuting CHSNS (#9C) before CHGET (#9F). If there is character on buffer the cursor will not be drawn... If you really want to get rid of cursor once and for all then you have to do something like POKE &HFDA9,&HE1: POKE &HFDAE,&HE1... Not very great approach though...

Kiitos Nyyrikki! I wonder why it's not a great approach? With this change you just skip the bios routines that draw and erase the cursor. You destroy HL in the process, but I don't think it's being used within those routines. And it does get rid of the bloody cursor forever. The 0xFDAA and 0xFDAF are always 0xC9 and are not used anywhere, so there will be no loss of control if these values are untouched.

By Grauw

Ascended (10157)

Аватар пользователя Grauw

04-11-2017, 21:11

Because since it pops the return address, it relies on the calling BIOS routine being responsible for showing (and only showing) the cursor, something which may not necessarily be true. It may work with your BIOS, or many others, but it may not work with C-BIOS or any particular customised BIOS (by the vendor or by the user). E.g. consider the CX5MII which hooks into the text display routines for 80 columns support with a small built-in ROM. Also if you touch the hooks and don’t restore, you will affect operation of any software afterwards.

So by using that trick, you are making a lot of assumptions about the BIOS, and about the use of these hooks (at least poke C9H as well). And in the world of MSX with its many implementations, assumptions are generally bad.

What’s wrong with CHSNS? Seems a much more elegant and compatible way to implement it.

By Alexey

Guardian (3238)

Аватар пользователя Alexey

04-11-2017, 21:31

Hmm, how checking for a character in a buffer would affect the cursor? Besides, as you see in the code the bios call 0x156 is initiated before checking for a key. And I want to keep the KILBUF call before CHGET for better usability.

Страница 13/52
6 | 7 | 8 | 9 | 10 | 11 | 12 | | 14 | 15 | 16 | 17 | 18