Carnivore2 : First impressions and bugs...

페이지 13/55
6 | 7 | 8 | 9 | 10 | 11 | 12 | | 14 | 15 | 16 | 17 | 18

By Wierzbowsky

Guardian (3648)

Wierzbowsky의 아바타

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 Wierzbowsky

Guardian (3648)

Wierzbowsky의 아바타

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 (1160)

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 Wierzbowsky

Guardian (3648)

Wierzbowsky의 아바타

03-11-2017, 18:55

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

By Wierzbowsky

Guardian (3648)

Wierzbowsky의 아바타

04-11-2017, 12:48

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

Alexey

By NYYRIKKI

Enlighted (6091)

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 Wierzbowsky

Guardian (3648)

Wierzbowsky의 아바타

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 (10820)

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 Wierzbowsky

Guardian (3648)

Wierzbowsky의 아바타

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.

By Grauw

Ascended (10820)

Grauw의 아바타

04-11-2017, 21:46

The cursor is only displayed when there is no character in the buffer.

    call KILBUF
Wait:
    call CHSNS
    jr z,Wait
    call CHGET
    ; a = character
페이지 13/55
6 | 7 | 8 | 9 | 10 | 11 | 12 | | 14 | 15 | 16 | 17 | 18