ef9345: implement commands CLF and CLG #14288
                
     Merged
            
            
          
  Add this suggestion to a batch that can be applied as a single commit.
  This suggestion is invalid because no changes were made to the code.
  Suggestions cannot be applied while the pull request is closed.
  Suggestions cannot be applied while viewing a subset of changes.
  Only one suggestion per line can be applied in a batch.
  Add this suggestion to a batch that can be applied as a single commit.
  Applying suggestions on deleted lines is not supported.
  You must change the existing code in this line in order to create a valid suggestion.
  Outdated suggestions cannot be applied.
  This suggestion has been applied or marked resolved.
  Suggestions cannot be applied from pending reviews.
  Suggestions cannot be applied on multi-line comments.
  Suggestions cannot be applied while the pull request is queued to merge.
  Suggestion cannot be applied right now. Please check back later.
  
    
  
    
This PR implements the CLF and CLG commands of the EF9345 and TS9347 video chips. While none of the currently supported Minitel ROMs seems to rely on them, they are used in similar Minitel models that we might want to support in the future.
From the EF9435 datasheet, Table 4:

Official documentation about this commands seems quite lacking. A good explanation can be found here: https://stardot.org.uk/forums/viewtopic.php?t=22941&start=31
They have been validated with tests
test_clear_page16andtest_clear_page24from https://github.com/fabio-d/minitel-ef9345-testsuite/blob/main/tests/test_memory.py.Implementation notes:
Unlike all the other commands, CLF and CLG never complete.
More precisely, in the real chip, they keep filling the video RAM in a loop, restarting from line 8 after the last line 31 has been filled, until interrupted by the application by executing a different command. CLF/CLG are equivalent to repeatedly executing KRF/KRG with proper pointer wraparound.
In this PR, I have made them fill the whole page instantaneously similar to other commands, which are completely "unrolled" in MAME and finish immediately as soon as they start.
However, unlike others, CLF/CLG never signal completion by clearing the BUSY flag.
cc @jfdelnero