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.
Can anyone tell me how to disable the bloody cursor? Putting 0 or 1 into 0xFCA9 doesn't have any effect...
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.
I found some temporary solution for this, will update the boot block soon.
The new boot block version 1.75 is now in the repository.
Alexey
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...
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.
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.
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.
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