NAR-5050/5070 Series User
’
s Manual
51
mov bl,34h ; EBX_Bit[7..0] = 34h
mov dx,Index_IO_Port ; Read Index F1h first
mov al,GPCFG1
out dx,al
mov dx,Data_IO_Port
in al,dx
or al,07h ; OR 07h
mov bh,al ; EBX_Bit[15..8]
ror ebx,10h ; Swap EBX high and low word
mov bl,ch
and bl,01h ; Other bits = 0 except Bit0
ror bl,04h ; Bit0 rotate to Bit4 for EBX_Bit[23..16]
mov bh,bl ; Temperoary save in BH
; Keep bit7,6,5,4,3,2,1 start ---------------------
mov bl,ch
and bl,02h ; Other bits = 0 except Bit1
rol bl,02h ; Bit1 rotate to Bit3 for EBX_Bit[23..16]
add bh,bl ; Add Bit1 of ch in BH
mov bl,ch
and bl,04h ; Other bits = 0 except Bit2
rol bl,03h ; Bit2 rotate to Bit5 for EBX_Bit[23..16]
add bh,bl ; Add Bit2 of ch in BH
mov bl,ch
and bl,08h ; Other bits = 0 except Bit3
ror bl,01h ; Bit3 rotate to Bit2 for EBX_Bit[23..16]
add bh,bl ; Add Bit3 of ch in BH
mov bl,ch
and bl,10h ; Other bits = 0 except Bit4
rol bl,02h ; Bit4 rotate to Bit6 for EBX_Bit[23..16]
add bh,bl ; Add Bit4 of ch in BH
mov bl,ch
and bl,20h ; Other bits = 0 except Bit5
ror bl,04h ; Bit5 rotate to Bit1 for EBX_Bit[23..16]
add bh,bl ; Add BIt5 of ch in BH
mov bl,ch
and bl,40h ; Other bits = 0 except Bit6
rol bl,01h ; Bit6 rotate to Bit7 for EBX_Bit[23..16]
add bh,bl ; Add BIt6 of ch in BH
mov bl,ch ; Bit7 of Ch needs to be saved since Programmed
and bl,80h ; Other bits = 0 except Bit7
ror bl,07h ; Bit7 rotate to Bit0 for EBX_Bit[23..16]
; Keep bit7,6,5,4,3,2,1 end -----------------------
add bl,bh ; Bit7~0 of Ch programmed