Quote Originally Posted by skimask
Maybe something like:
LCDOUT $fe , $fe , 0 , "First LCD"
LCDOUT $fe , $fe , 1 , "Second LCD"
...
Sure,

With complete control of the LCDOUT command, you can do pretty much whatever you want.

And, It's not a bad idea.

So, with the existing code from this thread.
Changing the LCDsend routine like this ...
Code:
;----[Send a byte to the Virtual LCD PORT]------------(DO NOT Change)---------
TempChar        var  byte
Char            VAR  Byte
LCD_Initialized VAR  FLAGS.1
RSS             VAR  FLAGS.0                ; LCD RS State
HJ_Command      VAR  BIT

;----[ This routine is called once for every character sent by LCDOUT ]-------
LCDsend:
      @  MOVE?AB  _TempChar                 ; Get char sent by LCDOUT, in WREG
      if !LCD_Initialized then LCD_Init     ; Make sure LCD was Initialized 
  LCDAfterInit:

      IF HJ_Command then LCDEN = TempChar : HJ_Command = 0 : goto LCDsendDone
      IF RSS then NO_HJcheck
      IF TempChar = $FE then RSS = 1 : HJ_Command = 1 : goto LCDsendDone
  NO_HJcheck:

      if TempChar = $FE then RSS=0 : goto LCDsendDone ; next char is Command 
      Char = TempChar
  LCDsendCOM:
      @  WritePort   _Char, LCD_Port_HNIB   ; send the High Nibble
  LCDsendShortCOM:
      @  WritePort   _Char, LCD_Port_LNIB   ; send the Low Nibble

      IF RSS = 0 then                    ; Is a Command
          IF Char = 1 then CommandDelay     ; Long delay for Clear Screen
          IF Char = 2 then CommandDelay     ; Long delay for Home
          @  DelayUS   _LCD_DATAUS          ; Short delay for everything else
          goto DelayDone
      else                                  
          @  DelayUS   _LCD_DATAUS          ; Short delay for Data
          goto DelayDone
      endif
  CommandDelay:
      @  DelayUS   _LCD_COMMANDUS
  DelayDone:
    if LCD_Initialized then RSS = 1       ; Set RS to Data next time
  LCDsendDone:
return
Then you can embed the LCD selection inside the LCDOUT statements...
Code:
    LCDOUT $FE,$FE,%001, $FE,$80, "Display 1"
    LCDOUT $FE,$FE,%010, $FE,$80, "Display 2"
    LCDOUT $FE,$FE,%100, $FE,$80, "Display 3"
    LCDOUT $FE,$FE,%111, $FE,$C0, "ALL Displays"
And it still works the original way too. (Choices)
Code:
    LCDEN = %001
    LCDOUT $FE,$80, "Display 1"
    
    LCDEN = %010
    LCDOUT $FE,$80, "Display 2"

    LCDEN = %100
    LCDOUT $FE,$80, "Display 3"
    
    LCDEN = %111
    LCDOUT $FE,$C0, "ALL Displays"
Now I really gotta go to bed.