Revision: 1869
Author: wattymage
Date: Sat Apr  3 07:58:48 2010
Log: obsolete version
http://code.google.com/p/jallib/source/detail?r=1869

Deleted:
 /trunk/project/catpad_mw/cmds_ft817.jal

=======================================
--- /trunk/project/catpad_mw/cmds_ft817.jal     Sat Apr  3 07:37:56 2010
+++ /dev/null
@@ -1,603 +0,0 @@
--- Title: cmds_FT817
--- Author: Michael Watterson Copyright (c) 2010, all rights reserved.
--- Adapted-by:
--- Compiler: >=2.4k
--- ft817   cat control
-
-
-
-const CMD_lockOn = 0            ;1
-Const CMD_lockOff = 0x80        ;1
-Const CMD_FreqWr = 1            ;0
-Const CMD_FreqRd = 3            ;5
-Const CMD_VFOtoggle = 0x81     ;0
-Const CMD_SplitOn = 2           ;1
-Const CMD_SplitOff = 0x82      ;1
-Const CMD_ClarOn = 5            ;1
-Const CMD_ClarOff = 0x85       ;1
-Const CMD_ClarFreq = 0xF5      ;0  RIT
-Const CMD_ModMode = 7           ;0
-Const CMD_PTTon = 8             ;1
-Const CMD_PTToff = 0x88        ;1
-Const CMD_RepOffDir = 9         ;0
-Const CMD_RepOffFreq = 0xF9    ;0  0 .. 99MHz
-Const CMD_SqlMode = 0xA        ;0
-Const CMD_CTSSfreq = 0xB       ;0
-Const CMD_DCScode = 0xC        ;0
-Const CMD_PwrOn = 0xF          ;0
-Const CMD_PwrOff = 0x8F        ;0
-Const CMD_RXstats = 0xE7       ;1
-Const CMD_TXstats = 0xF7       ;1
-Const CMD_TXmeter = 0xBD ;2 unofficial but only 1 byte = 0 if in RX mode
-Const CMD_TXkeyState = 0x10    ;1 unofficial
-Const CMD_ConfigRd = 0xA7      ;9 unofficial
-Const CMD_ConfigRes = 0xBE     ;0 unofficial But DO NOT do this!
-Const CMD_EEPROM_Rd = 0xBB     ;2 unofficial
-Const CMD_EEPROM_Wr = 0xBC     ;0 unofficial
---  End commands
-Const TimeCommShort = 50
-Const TimeOutInitial = 200
-
--- Memory Constants
-var byte FreqLast[4]
-var byte ModeLast
-var byte MemLast
-    -- 00 .. 26  is R/T band
-    -- 27 .. 99  is Scan
-    -- 100 .. 199 is C channels
-    -- 200 .. 1200 is # channels
-Const SIZE_UserName = 32
-
-Const OFF_Memlast = 0
-Const OFF_ModLast = OFF_Memlast + 2
-Const OFF_FreqLast = OFF_ModLast + 2
-Const OFF_UserName = OFF_FreqLast + 4
-Const Off_UserCall = OFF_UserName + SIZE_UserName
-
-
-var word memIndex      -- index into EEPROM
-var word eepromIndex        -- index into EEPROM
-var word eepromExtIndex
--- External EEPROM
--- Frequency stored as 976.543,21MHz etc, i.e. 10s of Hz as BCD (or GHz if GHz Flag)
---  97 65 43 21 = 4bytes
-
---
---  R/T  64 bytes per band. 27 bands  00 to 26  =        bytes
--- Name, RX L, RX H, Last Rx, Mode, Aerial, Trans, Filter, Atten, FMN, IPO, --- 8 4 4 4 1 , 2xF 4xF, 2xF 2xF F F, = 23 bytes
---
---
--- TX L, TX H, Last Tx, Offset, Tone, CTCSS, DCS, Pwr,  Split, spare
---   4     4     4         4      2     2     2,  4xF,    F     F    ,
--- C-TX, D-Tx, T-Tx, Spare, C-Sql, D-Sql, T-RB, Sel,
--- F F F F F F F F = 24 bytes
-
-const IO_Start = 2
-const IO_MyCall = IO_Start    -- 16 bytes
-const IO_Seconds = IO_MyCall +16
-const IO_Minutes = IO_Seconds +1
-const IO_Hours = IO_Minutes +1
-const IO_Day = IO_Hours +1
-const IO_Month = IO_Day +1
-const IO_Year = IO_Month +1  -- word
-const IO_Boots = IO_Year +2  -- word
-
--- offsets per band for 0 .. 27 and per Scan band 28..99
-const EO_Start = 2
-
-Const EO_BandName = 32
-Const EO_BandRXL = EO_BandName + 8
-Const EO_BandRXH = EO_BandRXL + 4
-Const EO_BandLastRX = EO_BandRXH + 4
-Const EO_BandMode = EO_BandLastRX + 4
-Const EO_BandTAS = EO_BandMode + 1
-    -- Aerial=4,5,  Transverter=0,1,2,3, Spare = 6,7
-Const EO_BandAFNI = EO_BandTAS + 1
-    -- Filter=4,5,  Atten=0,1,3 FMN=6 IP0=7
-Const LASTBAND = 27
--- TX part. Only offsets per band for 0 .. 26
-Const EO_BandTXL = 32
-Const EO_BandTXH = EO_BandTXL + 4
-Const EO_BandLastTX = EO_BandTXH + 4
-Const EO_BandOffset = EO_BandLastTX + 4
-Const EO_BandTone = EO_BandOffset + 4
-Const EO_BandCTCSS = EO_BandTone + 2
-Const EO_BandDCS = EO_BandCTCSS + 2
-Const EO_BandPS = EO_BandDCS + 2
-    -- Power=0,1,2,3  Split=7
-Const EO_BandSquelch = EO_BandPS + 1
- -- TX=0,1,2 RX=4,5,6,7 C-TX, D-Tx, T-Tx, Spare, C-Sql, D-Sql, T-RB, Sel
-Const BANDS_FIELDS = 30
-Const SCANS_FIELDS = 13
-Const TRANS_FIELDS = 13
--- Scanner/Broadcast 32 bytes 100 -27 = 83 bands = 27 to 99 = bytes --- Name, RX L, RX H, Last Rx, Mode, Aerial, Trans, Filter, Atten, IPO, spare --- 8 4 4 4 1 , 2xF 4xF 2xF , 2xF F, 5xF = 24 bytes
-
---  we make the first 32 bytes same to use same routines and save code.
-
-
---  Memory  32 bytes  100 channels + 100 channels  = 6400 bytes
--- Name,   Rx, ModeRX, AerialRX, TransRX, Filter, Atten, IPO, spare
--- 8 4 1 , 2xF 4xF , 2xF , 2xF F 5xF, = 15 bytes --- Last Tx, ModeTX, AerialTX, TransTX, Tone, CTCSS, DCS, Pwr, Split, spare
---       4      1 ,   2xF    4xF ,  2     2     2,  4xF,    F     F    ,
--- C-TX, D-Tx, T-Tx, C-Sql, D-Sql, T-RB, Sel, Spare
--- F F F F F F F F = 14 bytes total =30
-Const EO_ChanName = 0
-Const EO_ChanRX = EO_ChanName + 8
-Const EO_ChanModeRX = EO_ChanRX + 4
-Const EO_ChanTAS = EO_ChanModeRX + 1
-    -- Aerial=4,5,  Transverter=0,1,2,3, Spare = 6,7
-Const EO_ChanAFNI = EO_ChanTAS + 1
-    -- Filter=4,5,  Atten=0,1,3 FMN=6 IP0=7
-
--- TX part. Only offsets per band for 0 .. 26
-Const EO_ChanTX = 16
-Const EO_ChanModeTX = EO_ChanTX + 4
-Const EO_ChanTone = EO_ChanModeTX + 1
-Const EO_ChanCTCSS = EO_ChanTone + 2
-Const EO_ChanDCS = EO_ChanCTCSS + 2
-Const EO_ChanPS = EO_ChanDCS + 2
-    -- Power=0,1,2,3  Split=7
-Const EO_ChanSquelch = EO_ChanPS + 1
- -- TX=0,1,2 RX=4,5,6,7 C-TX, D-Tx, T-Tx, Spare, C-Sql, D-Sql, T-RB, Sel
-
-
--- Transverter 32 bytes each x 16   = 1024 Bytes
--- Name, RX L, RX H, RX Offset, TX L, TX H, TX Offset, spare, RXneg, TXneg, GHz, 5 spare --- 6 4 4 4 4 4 4, 1 F F F , 5 =32
-Const EO_TranName = 0
-Const EO_TranRXL = EO_TranName + 6
-Const EO_TranRXH = EO_TranRXL + 4
-Const EO_TranRXO = EO_TranRXH + 4
-Const EO_TranTXL = EO_TranRXO + 4
-Const EO_TranTXH = EO_TranTXL + 4
-Const EO_TranTXO = EO_TranTXH + 4
-Const EO_TranFlg = EO_TranTXO + 4
-    -- RXneg=0, TXneg=1, GHz=7   spare=2,3,4,5,6
-
--- Rig band definitions
--- Name, RX L, RX H, TX L, TX H, Modes, Filters, Resolution, GHz,Phantom,spare, Id" --- 8 4 4 4 4 1 1 1 (1 1 ) 2 2 =32
-Const EO_RigBandName = 0
-Const EO_RigBandRXL = EO_RigBandName + 8
-Const EO_RigBandRXH = EO_RigBandRXL + 4
-Const EO_RigBandTXL = EO_RigBandRXH + 4
-Const EO_RigBandTXH = EO_RigBandTXL + 4
-Const EO_RigBandModes = EO_RigBandTXH + 4
-Const EO_RigBandFilters = EO_RigBandModes + 1
-Const EO_RigBandResolution = EO_RigBandFilters + 1
-Const EO_RigBandGP = EO_RigBandResolution + 1
-Const EO_RigBandSpare = EO_RigBandGP + 1
-Const EO_RigBandId = EO_RigBandSpare + 2
-
---                 total = 14,356 bytes
--- External 24LC512 = 512 x 1024 / 8 = 64Ki byte
--- Memories and Bands are in a separate I2C eeprom
-
-
--- memory is frequency TX, frequency Rx  = 4 words per channel
--- Frequency stored as 12,987.654MHz etc as 54 76 = word1 89 21 = Word2
-
-
--- END of External Memory
--- 27 x 64  R/T band
--- 83 x 32  Scanner bands
--- 200 x 32 Memory
--- 16 x 32  Transverter
--- 16 x 32  Radio band defines
--- last  8k is radio backup
-const EE_24LC512_I2C = 0       -- addrees on bus
-Const EXT_EEPROM_LIMIT = 65535
-Const LAST_BAND = 27
-Const MEM_BLOCK_SIZE = 32
-Const RIG_MEM_SIZE = 8192
-Const EXTOFF_BAND = 0
-Const NUM_MEMS  = 100
-Const NUM_TRANS = 16
-Const EXTOFF_SCAN = EXTOFF_BAND + ((LAST_BAND + 1) * MEM_BLOCK_SIZE * 2)
-Const EXTOFF_CHS1 = EXTOFF_SCAN + ((NUM_MEMS - EXTOFF_BAND) * MEM_BLOCK_SIZE) -- 100 -Const EXTOFF_CHS2 = EXTOFF_CHS1 + (NUM_MEMS * MEM_BLOCK_SIZE) -- 1000 -Const EXTOFF_TRAN = EXTOFF_CHS2 + (10 * NUM_MEMS * MEM_BLOCK_SIZE) -- 16
-Const EXTOFF_RIG_BANDS = EXTOFF_TRAN + (NUM_TRANS * MEM_BLOCK_SIZE)
-Const EXTOFF_RIG_MISC = EXTOFF_RIG_BANDS + (NUM_TRANS * MEM_BLOCK_SIZE)
-Const EXTOFF_RIG_BACKUP = EXT_EEPROM_LIMIT - RIG_MEM_SIZE
-
-const byte MOD_MODE_TABLE[] = {
-"L","S","B",     ;0
-"U","S","B",     ;1
-" ","C","W",     ;2
-"C","W","R",     ;3
-" ","A","M",     ;4
-"E","0","5",     ;5
-"W","F","M",     ;6
-"E","0","7",     ;7
-" ","F","M",     ;8
-"E","0","9",     ;9
-"D","I","G",     ;10
-"E","1","1",     ;11
-"P","K","T",     ;12
-"E","1","3",     ;13
-"E","1","4",     ;14
-"E","1","5"}     ;15
--- if ox80 higher it's narrow mode
-
-const RIGMODE_OFF = 0
-const RIGMODE_RX = 1
-const RIGMODE_FREQ = 2  -- enter new freq
-const RIGMODE_MAIN_MENU = 3
-const RIGMODE_S_MENU = 4
-const RIGMODE_TX = 5
-
-const RIGMODE_IMPORT = 128
-const RIGMODE_REMOTE = 255
-var byte rigModeNow = RIGMODE_OFF
-var byte rigModeOld = RIGMODE_OFF
-
--- make sure noting in serial port buffer before issue a command
-procedure serial_flush_read() is
-var volatile byte temp
-    while (serial_hw_data_available) loop
-        temp = serial_hw_data
-        _usec_delay(40)
-    end loop
-end procedure
-
---tested
--- Higher level Rig specific
-function RIG_ModeLegal(byte in modMode) return bit is
--- Warning the FT817 will hang if you try to set wrong Mode.
--- Never set WFM or unlisted modes.
-    case modMode of
-    0, 1, 2, 3, 4, 8, 10, 12 :
-        return (True)
-    otherwise
-        return (false)
-    End case
-end function
-
---tested
-function RIG_ModeText(byte in modMode, byte out modText[3])return bit is
-var bit narrow = false
-   if (modMode > 0x80) & !(modMode == 255) then
-      modMode = modMode - 0x80
-      narrow =true
-   end if
-
-   if modMode < 16 then
-       modMode = modMode *3
-       modText[0] = MOD_MODE_TABLE[modMode]
-       modText[1] = MOD_MODE_TABLE[modMode+1]
-       modText[2] = MOD_MODE_TABLE[modMode+2]
-   Else
-       modText[0] = "E"
-       modText[1] = "R"
-       modText[2] = "R"
-    end if
-   Return narrow
-end function
-
---tested
-procedure CAT_FreqBCDRd(byte out ModMode,  byte out bcdfreq[4])  is
-pragma inline
-var byte TimeOut
-var byte digit
-    bcdfreq[0] = 0
-    bcdfreq[1] = 0
-    bcdfreq[2] = 1
-    bcdfreq[3] = 0
-    ModMode = 255
-    serial_flush_read() -- make sure nothing in buffer
-    -- timeouts incase radio off or serial unplugged.
-    for 4 loop
-        serial_hw_write(0)
-    end loop
-    serial_hw_write(CMD_FreqRd)
-    -- get back the frequency & mode
-    --suspend
-    for 4 using digit loop
-       Timeout = TimeOutInitial
-       while (!serial_hw_data_available) & (TimeOut > 0) loop
-           _usec_delay(20)
-           TimeOut = TimeOut -1
-       end loop
-       if TimeOut < 1 then return end if
-       bcdfreq[digit]= serial_hw_data
-    end loop
-    Timeout = TimeOutInitial
-    while (!serial_hw_data_available)  & (TimeOut > 0) loop
-        _usec_delay(10)
-        TimeOut = TimeOut -1
-    end loop
-    if TimeOut < 1 then return end if
-    ModMode = serial_hw_data
-end procedure
-
-
---tested
-procedure CAT_FreqBCDWr(byte in freq[4] ) is
--- we assume nn n.n nn,nn  tens of Hz
-var byte ind
-var byte TimeOut
-    for 4 using ind loop
-        serial_hw_write(freq[ind])
-    end loop
-    serial_hw_write(CMD_FreqWr)
-end procedure
-
-procedure CAT_Mode(byte in  mode) is
--- sets modulation for current Band
-    If RIG_ModeLegal(mode) Then
-       serial_hw_write (mode)
-       serial_hw_write (0)
-       serial_hw_write (0)
-       serial_hw_write (0)
-       serial_hw_write (CMD_ModMode)
-    end if
-end procedure
-
-
-function CAT_PTT(bit in KeyOn) return bit is
---This command returns lastKey state
-var bit pttState
-var byte temp
-var word TimeOut
-    pttState = False
-    TimeOut = TimeOutInitial
-    serial_flush_Read()
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (0)
-    If KeyOn Then
- serial_hw_write ( CMD_PTTon ) -- 00 if the FT817 WAS unkeyed, & F0 if already keyed
-    Else
- serial_hw_write (CMD_PTToff) -- returns 00 if the '817 was keyed, & F0 if already unkeyed.
-    End If
-    -- returns one byte
-    Timeout = TimeOutInitial
-    while (!serial_hw_data_available)  & (TimeOut > 0) loop
-        _usec_delay(10)
-        TimeOut = TimeOut -1
-    end loop
-    if TimeOut > 0 then
-        temp = serial_hw_data
-        temp = temp & 0xF0
-        pttState = (temp > 0)
-    End If
-    return (pttState)
-end Function
-
-function CAT_RXstats(bit out squelch, bit out toneSql, bit out discrim)return byte is
-pragma inline
- -- returns S meter
-var byte RXstatus
-var byte  meter
-var word TimeOut
-     -- must set to default for TX or no connection
-    meter = 255
-    squelch = off
-    toneSql = off
-    discrim = off
-    TimeOut = TimeOutInitial
-    serial_flush_read() -- make sure nothing in buffer
-    -- timeouts incase radio off or serial unplugged.
-    for 4 loop
-        Timeout = TimeOutInitial
-        while (!serial_hw_data_ready)& (TimeOut > 0) loop
-            _usec_delay(10)
-             TimeOut = TimeOut -1
-        end loop
-        if TimeOut < 1 then return (meter) end if
-        serial_hw_write(0)
-    end loop
-    Timeout = TimeOutInitial
-    -- suspend
-    while (!serial_hw_data_ready)& (TimeOut > 0)loop
-        _usec_delay(10)
-        TimeOut = TimeOut -1
-    end loop
-    if TimeOut < 1 then return (meter) end if
-    serial_hw_write(CMD_RXstats)     -- Read RX status & sigmeter
-    TimeOut = TimeOutInitial
-    -- returns one byte
-    Timeout = TimeOutInitial
-    while (!serial_hw_data_available)  & (TimeOut > 0) loop
-        _usec_delay(10)
-        TimeOut = TimeOut -1
-    end loop
-    if TimeOut < 1 then return (meter) end if
-    If TimeOut > 0 Then
-       RXstatus= serial_hw_data
-       If RXstatus < 255 Then
-            meter = RXstatus & 15
-            squelch = (RXstatus & 128) > 0
-            toneSql = (RXstatus & 64) > 0
-            discrim = (RXstatus & 32) > 0
-        End If
-    End If
-    return (meter)
-End Function
-
-function CAT_TXstats(bit out PTTon, bit out SWRhi, bit out SplitOn)return byte is
- -- returns power meter
-var byte TXstatus
-var byte  meter
-var word TimeOut
-     -- must set to default for TX or no connection
-    meter = 0
-    PTTon = off
-    SWRhi = off
-    SplitOn = off
-    TimeOut = TimeOutInitial
-    serial_flush_Read()
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (CMD_TXstats)     -- Read RX status & sigmeter
-    TimeOut = TimeOutInitial
-    -- returns one byte
-    while ! _serial_hw_read(TXstatus) & (timeOut > 0) Loop
-          _usec_delay(100)
-          TimeOut = TimeOut - 1
-    end loop
-    If TimeOut > 0 Then
-         If TXstatus < 255 Then
-            meter = TXstatus & 15
-            PTTon = (TXstatus & 128) > 0
-            SWRhi = (TXstatus & 64) > 0
-            SplitOn = (TXstatus & 32) > 0
-        end if
-    end if
-    return (meter)
-end function
-
-function CAT_TXmeters(byte out pwrMeter, byte out alcMeter, byte out modMeter) return byte is
- --returns SWRmeter
-var byte temp[2]
-var byte swrMeter
-var word TimeOut
-    swrMeter = 255
-    pwrMeter = 0
-    alcMeter = 0
-    modMeter = 0
-    TimeOut = TimeOutInitial
-    serial_flush_Read()
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (CMD_TXmeter)    -- Read four nybbles = 2 byte
-    Timeout = TimeOutInitial
-    while (!serial_hw_data_available)  & (TimeOut > 0) loop
-        _usec_delay(10)
-        TimeOut = TimeOut -1
-    end loop
-    if TimeOut > 0 then
-        temp[0] = serial_hw_data
-        Timeout = TimeOutInitial
-        while (!serial_hw_data_available)  & (TimeOut > 0) loop
-            _usec_delay(10)
-            TimeOut = TimeOut -1
-        end loop
-        if TimeOut > 0 then
-            temp[1] = serial_hw_data
-              -- alc, Power
-            pwrMeter = temp[0] / 16
-            alcMeter = temp[0] & 15
-              -- swr, Mod
-            swrMeter = temp[1] / 16
-            modMeter = temp[1] & 15
-        End If
-    End If
-    return (swrMeter)
-end function
-
-procedure CAT_EEPROMread(word in eeAddress, byte out buffer[2] )is
--- returns two bytes, i.e. the byte at the address & the next byte
-var word  TimeOut
-    buffer[0] = 0
-    buffer[1] = 0
-    TimeOut = TimeOutInitial
-    serial_flush_Read()
-    serial_hw_write (byte(eeAddress / 256))
-    serial_hw_write (byte(eeAddress & 0xFF))
-    serial_hw_write (0)
-    serial_hw_write (0)
-    serial_hw_write (CMD_EEPROM_Rd)   --Read two bytes eeprom
-    while ! _serial_hw_read(buffer[0]) & (timeOut > 0) Loop
-          _usec_delay(100)
-          TimeOut = TimeOut - 1
-    end loop
-    If TimeOut > 0 Then
-        while ! _serial_hw_read(buffer[1]) & (timeOut > 0) Loop
-          _usec_delay(100)
-          TimeOut = TimeOut - 1
-        end loop
-    End If
-end procedure
-
-
---  Write FT-817 EEPROM Data  (Undocumented)    Address MSB Address
---  LSB Data for Address    Data for Address + 1    BC
--- This command writes two bytes to the EEPROM at the address in data bytes 1 & 2
-procedure CAT_EEPROMwrite(word in eeAddress, byte in datab[2])  is
-    serial_hw_write (byte(eeAddress / 256))
-    serial_hw_write (byte(eeAddress & 0xFF))
-    serial_hw_write (datab[0])
-    serial_hw_write (datab[1])
-    serial_hw_write (CMD_EEPROM_Wr)
-end procedure
-
-
-
-procedure RIG_Backup() is
-var word dest
-var word idxCnt
-var byte datawd[2]
-var word datas at datawd
-    dest = EXTOFF_RIG_BACKUP
-    for RIG_MEM_SIZE /2  using idxCnt loop
-        -- use  idxCnt for progress bar
-         CAT_EEPROMread(idxCnt*2, datawd)
-        -- WriteBlockEEPROM2ex data, dest
-        EepromWord[dest]= datas
-        dest = dest + 2
-    end loop
-end procedure
-
-procedure RIG_Restore() is
-var word dest
-var word idxCnt
-var byte datawd[2]
-var word datas at datawd
-    dest = EXTOFF_RIG_BACKUP
-    for RIG_MEM_SIZE /2  using idxCnt loop
-        -- use  idxCnt for progress bar
-        datas  = EepromWord[dest]
-        CAT_EEPROMwrite (idxCnt, datawd)
-        dest = dest + 2
-    end loop
-end procedure
-
--- must be global
-var byte smeter = 50
-var byte modMode = 0
-
-procedure RIG_ModeNext (byte in modMode) is
-    modMode = ModMode +1
-    if modMode > 15 then
-         modMode = 0
-    end if
-    while !RIG_ModeLegal (modMode) loop
-          modMode = ModMode +1
-       if modMode > 15 then
-          modMode = 0
-       end if
-    end loop
-    CAT_Mode(modMode)
-end procedure
-
-
-procedure RIG_ModePrior (byte in modMode) is
-    if modMode == 0 then
-         modMode = 15
-    else
-        modMode = modMode -1
-    end if
-    while !RIG_ModeLegal (modMode) loop
-        if modMode == 0 then
-             modMode = 15
-        else
-            modMode = modMode -1
-        end if
-    end loop
-    CAT_Mode(modMode)
-end procedure
-
-
-
-

--
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en.

Reply via email to