;-------------------------------------------------------------------------------
;                    Icom IC-756 Pro II command set
;
;     File created by Alex Shovkoplyas, VE3NEA ve3nea@dxatlas.com
; Modified by Brendan EI6IZ ei6iz@oceanfree.net
;-------------------------------------------------------------------------------


;-------------------------------------------------------------------------------
;                                 initialize
;-------------------------------------------------------------------------------
[INIT1]
;disable transceive mode
Command=FEFE64E0.1A0542.00.FD
ReplyLength=15
Validate=FEFE64E01A054200FD.FEFEE064FBFD

[INIT2]
;disable 731 mode
Command=FEFE64E0.1A0543.00.FD
ReplyLength=15
Validate=FEFE64E01A054300FD.FEFEE064FBFD

; Some of us don't like this option one bit!
;[INIT3]
;set CW normal to upper sideband
;Command=FEFE64E0.1A0567.01.FD
;ReplyLength=15
;Validate=FEFE64E01A056701FD.FEFEE064FBFD

;-------------------------------------------------------------------------------
;                               set frequency
;-------------------------------------------------------------------------------
[pmFreqA]
;not supported

[pmFreqB]
;not supported

[pmFreq]
Command=FEFE64E0.05.0000000000.FD
Value=5|5|vfBcdLU|1|0
ReplyLength=17
Validate=FEFE64E0050000000000FD.FEFEE064FBFD

[pmRitOffset]
;not supported


[pmRit0]
;not supported

[pmPitch]


Command=FEFE64E0.14.09.0000.FD
;300Hz=5 600Hz=128 900Hz=255
;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
;how do we scale for this?

Value=6|2|vfBcdBU|1|1
ReplyLength=15
Validate=FEFE64E014090000FD.FEFEE064FBFD




;-------------------------------------------------------------------------------
;                         set rit/xit/split/rx/tx
;-------------------------------------------------------------------------------
[pmSplitOn]
Command=FEFE64E0.0F01.FD
ReplyLength=13
Validate=FEFE64E00F01FD.FEFEE064FBFD

[pmSplitOff]
Command=FEFE64E0.0F00.FD
ReplyLength=13
Validate=FEFE64E00F00FD.FEFEE064FBFD

[pmVfoA]
;not supported
;It's possible to select which VFO is active on the display & used for data entry,
;this isn't usually the receive VFO, perhaps this is what you want however?

Command=FEFE64E0.07D0.FD
ReplyLength=13
Validate=FEFE64E007D0FD.FEFEE064FBFD


[pmVfoB]
Command=FEFE64E0.07D1.FD
ReplyLength=13
Validate=FEFE64E007D1FD.FEFEE064FBFD


[pmVfoEqual]
Command=FEFE64E0.07B1.FD
ReplyLength=13
Validate=FEFE64E007B1FD.FEFEE064FBFD

[pmVfoSwap]
Command=FEFE64E0.07B0.FD
ReplyLength=13
Validate=FEFE64E007B0FD.FEFEE064FBFD

[pmVfoAA]
;not supported

[pmVfoAB]
;not supported

[pmVfoBA]
;not supported

[pmVfoBB]
;not supported

[pmRitOn]
;not supported

[pmRitOff]
;not supported

[pmXitOn]
;not supported

[pmXitOff]
;not supported

[pmRx]
Command=FEFE64E0.1C00.00.FD
ReplyLength=14
Validate=FEFE64E01C0000FD.FEFEE064FBFD

[pmTx]
;is 00 after 1C required or err in doc?
; Yes we require the 00 following the 1C
Command=FEFE64E0.1C00.01.FD
ReplyLength=14
Validate=FEFE64E01C0001FD.FEFEE064FBFD




;-------------------------------------------------------------------------------
;                                 set mode
;-------------------------------------------------------------------------------
[pmCW_U]
;swapped this around to correct for the removal of INIT3
Command=FEFE64E0.06.07.FD
ReplyLength=13
Validate=FEFE64E00607FD.FEFEE064FBFD


[pmCW_L]
;swapped this around to correct for the removal of INIT3
Command=FEFE64E0.06.03.FD
ReplyLength=13
Validate=FEFE64E00603FD.FEFEE064FBFD

[pmSSB_U]
Command=FEFE64E0.06.01.FD
ReplyLength=13
Validate=FEFE64E00601FD.FEFEE064FBFD

[pmSSB_L]
Command=FEFE64E0.06.00.FD
ReplyLength=13
Validate=FEFE64E00600FD.FEFEE064FBFD

[pmDIG_U]
; if we want to use SSB-D modes we need 2 commands, fist set appropriate Sideband then set D-mode
; problem is that since the D mode status requires a different poll ( FEFE64E0.1A.06.FD)
; it always looks to the software like we are in SSB modes not SSB-D modes
Command=FEFE64E0.06.01.FD.FEFE64E0.1A.06.01.FD
ReplyLength=27
Validate=FEFE64E00601FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD


[pmDIG_L]
Command=FEFE64E0.06.00.FD.FEFE64E0.1A.06.01.FD
ReplyLength=27
Validate=FEFE64E00600FD.FEFEE064FBFD.FEFE64E01A0601FD.FEFEE064FBFD


[pmAM]
Command=FEFE64E0.06.02.FD
ReplyLength=13
Validate=FEFE64E00602FD.FEFEE064FBFD

[pmFM]
Command=FEFE64E0.06.05.FD
ReplyLength=13
Validate=FEFE64E00605FD.FEFEE064FBFD




;-------------------------------------------------------------------------------
;                               read status
;-------------------------------------------------------------------------------
[STATUS1]
Command=FEFE64E0.03.FD
ReplyLength=17
Validate=FEFE64E003FD.FEFEE064.03.0000000000.FD
Value1=11|5|vfBcdLU|1|0|pmFreq

[STATUS2]
Command=FEFE64E0.04.FD
ReplyLength=14
Validate=FEFE64E004FD.FEFEE064.04.0000.FD
;is filter byte appended to the mode byte?
Flag1=000000000000.0000000000.03.0000|pmCW_U
Flag2=000000000000.0000000000.07.0000|pmCW_L
Flag3=000000000000.0000000000.01.0000|pmSSB_U
Flag4=000000000000.0000000000.FF.0000|pmSSB_L
Flag5=000000000000.0000000000.04.0000|pmDIG_U
Flag6=000000000000.0000000000.08.0000|pmDIG_L
Flag7=000000000000.0000000000.02.0000|pmAM
Flag8=000000000000.0000000000.05.0000|pmFM

;we need an extended command to read the SSB D modes and this still doesn't tell us which sideband,
; you have to read the Sideband THEN check to see What the 1A06 command returns (0= normal SSB 1= D mode)
; how do we code for this? Does it even matter that we can't read this?

[STATUS3]
;need to read pitch offset in cw mode
;there's a fundamental problem here, anything between 0 and 9 = 300 10-19 =325 20-29 =350 etc
;how do we scale for this?
Command=FEFE64E0.1409.FD
ReplyLength=16
Validate=FEFE64E01409FD.FEFEE0641409.0000.FD
Value1=13|2|vfBcdBU|1|1|pmPitch

[STATUS4]
Command=FEFE64E0.1C00.FD
ReplyLength=15
Validate=FEFE64E01C00FD.FEFEE064.1C00.00.FD
Flag1=00000000000000.00000000.0000.01.00|pmTx
Flag2=00000000000000.00000000.0000.FF.00|00000000000000.00000000.0000.00.00|pmRx

