
Похоже, и правда всё дело было в "болтающемся" R/W. И подсветку на место вернул, теперь экран очень равномерно засвечивается.
Хотя и без подсветки хоть при малейшем внешнем освещении всё отчётливо видно, вот всё-таки классная вещь старые добрые черно-белые ЖК:

По сравнению с прошлым разом, когда мы вывели этот текст, стало существенно проще набирать строки, не нужно отдельный символ заключать в одинарные кавычки, т.к компилятор "поумнел". Вот сейчас в пол-пинка добавил 4-ю строку ("by FastQuatCore"):
Row3 dw 0x1D4,'(by FastQuatCore',f')'
В числе 0x1D4, первая единичка (т.е. 8-й бит, при нумерации с нуля) - признак команды, то что в документации на экранчик называется A0. Затем, 7-й бит, "маска 0x80" - это команда "Set DDRAM Address" (см. http://www.melt.com.ru/docs/MT-20S4A.pdf). И наконец, 0x54 (оставшиеся биты) - это адрес начала 4-й строки. Они почему-то "в шахматном порядке" идут: сначала 1-я, затем 3-я, затем 2-я и наконец 4-я. Ну а после этой команды мы выдаём строку, а метка f')' означает "final )", то есть 15-й бит выставляется в единичку, чтобы процедура print восприняла этот символ как самый последний.
И всё, откомпилил по-новой - и оно заработало. Приятно.
Теперь на очереди SPI. Пора уже пнуть Ethernet-контроллер, чтобы повысил частоту с 4 МГц до 25 МГц, ради этого-то всё и затевалось!