Hi,
I know nothing about basic stamps or the code used for them, but it seems like quite a nice language, well, I can follow it at least.
'E' is meant to be sent high, then low, after the command is sent. And any delays between commands should come AFTER 'E' has gone from low to high. Because thats when the instruction is read in by the display.Although looking at the code, there are pauses between E's, so it 'should' be fine.
looking at this bit:
PAUSE 500
HIGH en
LOW rs
OUTL = %00110000
LOW en
PAUSE 500
HIGH en
LOW rs
OUTL = %00110000
LOW en
You're making E high first, which is 'reading' in the previous command. I would change those instructions to groups like:
LOW rs ; we're sending a command. 0-command, 1-data (characters)
OUTL = %00110000 ; send data to port
HIGH en ; strobe the E
LOW en
PAUSE 500 ; wait a little bit before doing another instruction.
Your omcmand bytes look fine for 8-bit mode. Do you have R/W tied to GND? you're only writing to the display, so you probably won't need it. The numbers for the pauses, are they in microseconds? or miliseconds? Ericgibbs posted the correct delays between instrucitons earlier.
Heres a link I just found with LCD's and basic stamps:
https://www.weethet.nl/english/basicstamp2_lcdcontrol.php
The code on that site looks fine to me, easy to follow to. Should get you up and running......at least with the software. Once initialized then you should see a blank screen...but I'd advise you to turn on the blinking cursor (the commands are in the links I posted) as its truely uplifting to see that little cursor blink before your eyes as if to say 'ready for your commands sah!'
All the best,
Blueteeth