Jump to content

change rsm message in lc emu


Guest ekopappa
 Share

Recommended Posts

Guest ekopappa

hi@all

maybe someone could push a newbie in the right direction.

i want to spread the rsm message over the 2 lcds, so that every track has a matching m/s/r character below.

first i tried to squeeze some spaces between the characters like this:

LC_CLCD_LEDStatusUpdate_Rec

;; print the solo status if value == 0, else a "R"

movf TMP1, W

andlw 0x07

addlw 0x00 ; rec == 90 0[0-7]

movf PLUSW0, W

bz LC_CLCD_LEDStatusUpdate_Solo

LC_CLCD_LEDStatusUpdate_Rec1

;; print R

movlw 'R  '

rgoto LC_CLCD_LEDStatusUpdate_RSM_Save

LC_CLCD_LEDStatusUpdate_Solo

;; print the mute status if value == 0, else a "S"

movf TMP1, W

andlw 0x07

addlw 0x08 ; solo == 90 0[8-F]

movf PLUSW0, W

bz LC_CLCD_LEDStatusUpdate_Mute

LC_CLCD_LEDStatusUpdate_Solo1

;; print S

movlw 'S  '

rgoto LC_CLCD_LEDStatusUpdate_RSM_Save

LC_CLCD_LEDStatusUpdate_Mute

;; print space or "S" if value == 0

movf TMP1, W

andlw 0x07

addlw 0x10 ; mute == 90 1[0-7]

movf PLUSW0, W

bz LC_CLCD_LEDStatusUpdate_Mute0

LC_CLCD_LEDStatusUpdate_Mute1

;; else print M

movlw 'M  '

rgoto LC_CLCD_LEDStatusUpdate_RSM_Save

LC_CLCD_LEDStatusUpdate_Mute0

;; print 'R' if rec active, 'S' if solo active, else space

clrf TMP2 ; TMP2.0 notifies that rec active, TMP2.1 that solo active

movf TMP1, W

andlw 0x07

addlw 0x00 ; rec == 90 0[0-7]

movf PLUSW0, W

skpz

bsf TMP2, 0

movf TMP1, W

andlw 0x07

addlw 0x08 ; solo == 90 0[8-F]

movf PLUSW0, W

skpz

bsf TMP2, 1

;; print "R", "S" or ' ' (in this priority)

movlw ' '

IFSET TMP2, 1, movlw 'S  '

IFSET TMP2, 0, movlw 'R  '

;; rgoto LC_CLCD_LEDStatusUpdate_RSM_Save

LC_CLCD_LEDStatusUpdate_RSM_Save

;; save character in RSM_MSG array

movwf TMP2 ; temp. save it in TMP2

;; prepare pointer to RSM_MSG array

lfsr FSR1, RSM_MSG_BEGIN

movf TMP1, W

andlw 0x30

addwf FSR1L, F

movff TMP2, INDF1 ; transfer character to array

;; print message

call LC_CLCD_Print_RSM

;; and exit

rgoto LC_CLCD_LEDStatusUpdate_End

and this

;; init pointer to message

lfsr FSR0, RSM_MSG_BEGIN

;; print 8 chars

movlw 30

movwf TMP1

in lc_clcd.inc, but that didn´t work.

then i tried to add lcd_rsm_d here:

;; font, x-position, y-position, distance

;; if font == 0, element will not be print

SET_CLCD_RSM_MSG MACRO font, x, y, d

movlw x

movwf LCD_RSM_X

movlw y * 0x40

movwf LCD_RSM_Y

movlw  d

          movwf  LCD_RSM_D

          movlw font & 0xff

movwf LCD_RSM_FONT_H

ENDM

and

LC_CLCD_Init_Page3

;; don't print status digits

SET_CLCD_STATUS 0, 0, 0

;; don't print "SMPTE/BEATS"

SET_CLCD_SMPTE_BEATS 0, 0, 0

;; don't print MTC digits

SET_CLCD_MTC 0, 0, 0

;; print host messages at position 12/0, (1=large spacing, x and y ignored)

SET_CLCD_HOST_MSG 0, 12, 0, 1

;; print horizontal meters at position 7/1 (distance between meter chars: 2)

;; |4 means: x-2 on second display

SET_CLCD_METER 0, 0, 0, 0

;; don't print rec/solo/mute status - x,y,d

SET_CLCD_RSM_MSG 1, 0, 0, 3

;; don't print select status

SET_CLCD_SEL_MSG 0, 0, 0

return

in lc_clcd_macros.inc/lc_clcd.inc, but it didn´t work either.

now i think this might be a bigger thing than i imagined. so i´m gratefull for any hints where to start.

greetings

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...