I've got the Anet A8 display working on a RAMPS 1.6 (which basically works exactly the same as a RAMPS 1.4 board). Note that at first connection I got exactly the same display when I connected the LCD to the EXP1 and EXP 2 headers using the "smart adapter".
To get the Anet A8 display working on a MKS GEN L (which is basically a RAMPS board as the pin layout of the RAMPS configuration are used in the firmware of the MKS GEN L) you need to forget about the EXP1 and EXP2 headers and the "smart adapter" for the Anet A8 display. Instead you need to connect the Anet A8 display to the AUX2 header. The only thing you would have to do (from the hardware side) is to switch the cables that are connected to the pin 1 and pin 2. I used Dupont connectors and cables. Pin 1 on AUX2 is VCC and pin 2 on AUX2 is GND, this is reversed on the Anet A8 display.
From the software side you need to set the following constants:
#define ULTRA_LCD // Character based
and
#define ZONESTAR_LCD
Please note that in the photo you still see the "smart adapter" with flat ribbon cables, but they are not connected to a screen, the reason for them being there is I also tested the full graphic discount controller in a previous session. The Anet A8 display is connected to the flat ribbon cable on AUX2 just above the top-left most stepper driver.
UPDATE:
At the time of writing and the use of an older Marlin version, this required to set #define ULTRA_LCD
. In Marlin 1.1.9 you do not need to set #define ULTRA_LCD
explicitly, this is now intrinsically set by #define ZONESTAR_LCD
. To elaborate on this, the #define ZONESTAR_LCD
sets the constant #define ULTIPANEL
which sets constant #define ULTRA_LCD
in Conditionals_LCD.h
.