naja. die maske invertiert ja nur die signale. und davon gibt es in diesem fall 3 (/RD, /WR, C/D). die maske ist mit 11 angegeben = 1011. die null kannst du ignorieren, da parport 16 (INIT) nicht verwendet wird => mask = 1#11
und damit kannst du dann genauso die 6 HI/LO-folgen wie im originalcode hinbasteln.
warum das mit RDHI bzw. RDLO nicht funktioniert hat:
/RD (oder auch nRD geschrieben) ist active low (heisst, dass RD aktiv ist, wenn es auf 0 gesetzt ist. der parport invertiert auf pin 14 aber ebenfalls (weil auch dieser active low ist) -> dh will man, dass NICHT vom display gelesen wird (RD also nicht aktiv ist), muss man im code RD auf 0 setzen. RD = 0, parport pin 14 macht 1 daraus, 1 heisst: RD ist nicht aktiv.
weil aber RD im originalcode auf 1 gesetzt worden ist, konnte dein display mit windows-wiring nicht funktionieren, da dem display dadurch mitgeteilt worden ist: bitte vom display etwas auslesen!
beim standard-wiring ist dieser fehler deshalb nicht aufgefallen, weil sowohl RDHI als auch RDLO mit 0x00 definiert sind ...
anmerkung (der vollstaendigkeit halber):
eigentlich ist die beruecksichtigung von RD im code ohnedies ueberfluessig, da es sich sowieso nie aendert bei der ganzen ansteuerung. es wuerde daher ausreichen, RD 'hardwired' auf high zu ziehen (= direkt mit +5V (via vorwiderstand) zu verbinden). dann wuerde man mit 2 anzusteuernden signalleitungen im code auskommen ...
aber die 2 wirings haben sich nun mal so eingebuergert ...