home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-386-Vol-2of3.iso / c / caty16.zip / CATY.GLO < prev    next >
Text File  |  1992-01-12  |  11KB  |  161 lines

  1. (*═══════════════════════════════════════════════════════════════════════*)
  2. (* Program:     CATY.GLO - Global declarations (Part of CATYxxx.PAS)     *)
  3. (* Author:      Donald J. Wilke, N3HGQ                                   *)
  4. (* Start Date:  July 12, 1989                                            *)
  5. (* Last Update: January 12, 1992                                         *)
  6. (* Purpose:     Control program for Yaesu FT-767GX Transceiver.          *)
  7. (* Usage:       Compile to .EXE file using Turbo Pascal Version 5.0 or   *)
  8. (*              later, and execute the .EXE file by typing CATYxxx at    *)
  9. (*              the DOS prompt.  (See CATYxxx.DOC)                       *)
  10. (* Needs:       CATY   .GLO, CATYGLO .PAS, CATYUTIL.PAS, CATYDISP.PAS,   *)
  11. (*              CATYRTC.PAS, CATYMVFO.PAS, CATYINST.PAS, CATYTERM.PAS,   *)
  12. (*              CATYGLO.PAS, CATYCOMM.PAS, Y767xxx .DAT, Y767xxx .MEM.   *)
  13. (* Remarks:     Requires RS-232 interface between computer & FT-767GX.   *)
  14. (*═══════════════════════════════════════════════════════════════════════*)
  15.  
  16. CONST           (* Compile-time conditionals, set to match configuration *)
  17.  
  18.    Version      : STRING[14] = 'Version 1.60  ';  (* Evolutionary record *)
  19.    Credit       : STRING[9]  = ' by N3HGQ';
  20.    Rig          : STRING[13] = 'for FT-767GX';
  21.    Test         : BOOLEAN = FALSE;  (* True if testing w/o comport *)
  22.    OneWay       : BOOLEAN = FALSE;  (* True for no echo checking *)
  23.    SetSel       : BOOLEAN = TRUE;   (* False to simulate KBD input *)
  24.    ToneEnc      : BOOLEAN = TRUE;   (* True if CTCSS board installed *)
  25.    MARS         : BOOLEAN = FALSE;  (* True if MARS mods installed *)
  26.    Module6      : BOOLEAN = TRUE;   (* True if 6M module installed *)
  27.    Module2      : BOOLEAN = TRUE;   (* True if 2M module installed *)
  28.    Module70A    : BOOLEAN = FALSE;  (* True if 430-440 mod installed *)
  29.    Module70B    : BOOLEAN = TRUE;   (* True if 440-450 mod installed *)
  30.    TNC          : BOOLEAN = TRUE;   (* True if TNC installed *)
  31.    RParity      : INTEGER = $00;    (* 0 = No parity for Yaesu *)
  32.    RDataBits    : INTEGER = $03;    (* 3 = Yaesu uses 8 bits per char *)
  33.    RStopBits    : INTEGER = $04;    (* 4 = Yaesu uses 2 stop bits *)
  34.    TParity      : INTEGER = $00;    (* 0 = No parity for TNC *)
  35.    TDataBits    : INTEGER = $03;    (* 3 = TNC uses 8 bits per char *)
  36.    TStopBits    : INTEGER = $00;    (* 0 = TNC uses 1 stop bit *)
  37.    DLAB         : INTEGER = $80;    (* 8250 Divisor Latch Access Bit *)
  38.    DTR          : INTEGER = $01;    (* Value for Data Terminal Ready *)
  39.    RTS          : INTEGER = $02;    (* value for Ready To Send *)
  40.    OUT2         : INTEGER = $08;    (* Bit that enables adapter ints *)
  41.    OCW1         : INTEGER = $21;    (* 8259 Operation Control Word 1 *)
  42.    OCW2         : INTEGER = $20;    (* 8259 Operation Control Word 2 *)
  43.    IRQT         : INTEGER = $01;    (* Mask to turn Timer ints on/off *)
  44.    TimerInt     : INTEGER = $1C;    (* Timer Control interrupt # *)
  45.    TimeZone     : INTEGER = 5;      (* Hours behind UTC *)
  46.    TICD         : INTEGER = 12;     (* Intercharacter delay, TNC port *)
  47.    RICD         : INTEGER = 20;     (* Intercharacter delay, Radio port *)
  48.    ClockFlag    : BOOLEAN = TRUE;   (* False disables clock during Comm *)
  49.    FreqErrorFlag: BOOLEAN = FALSE;  (* Freq out of range flag *)
  50.    Nul          : CHAR    = CHR(0); (* Used to build null strings *)
  51.    TZ           : STRING  = ' EST ';(* Default Timezone *)
  52.    RadioRate    : WORD    = 24;     (* Value for 4800 baud operation *)
  53.    Baud2400     : WORD    = 48;     (* Value for 2400 baud operation *)
  54.    TermRate     : WORD    = 96;     (* Value for 1200 baud operation *)
  55.    Baud300      : WORD    = 384;    (* Value for 300 baud operation *)
  56.    ScreenSeg    : WORD    = 0000;   (* Storage for video memory addr *)
  57.    SaveCSeg     : WORD    = 0000;   (* Storage for Code segment addr *)
  58.  
  59.    (* Define foreground, background colors, character attributes *)
  60.    DFG          : INTEGER = 3;      (* Default FG color - CYAN *)
  61.    DBG          : INTEGER = 0;      (* Default BG color - BLACK *)
  62.    PFG          : INTEGER = 14;     (* Parameter FG color - YELLOW *)
  63.    RFG          : INTEGER = 2;      (* Requested param FG color - GRN *)
  64.    SFG          : INTEGER = 15;     (* Status FG color - HI WHITE *)
  65.    EFG          : INTEGER = 31;     (* Error FG color - HI WHT + BLNK *)
  66.    EBG          : INTEGER = 4;      (* Error BG color - RED *)
  67.    SBA          : INTEGER = 4;      (* Border FG/BG attrib - RED/BLK *)
  68.    CLA          : INTEGER = 31;     (* Clock FG/BG attr - HI WHT/BLUE *)
  69.    FKA          : INTEGER = 31;     (* FKey FG/BG attr - HI WHT/BLUE *)
  70.    BFG          : INTEGER = 0;      (* Select bar FG color - BLK *)
  71.    BBG          : INTEGER = 15;     (* Select bar BG color - WHT *)
  72.    BLNK         : INTEGER = 128;    (* Add to attrib for blink *)
  73.    TRFG         : INTEGER = 2;      (* Terminal RCV FG color - GRN *)
  74.    TTFG         : INTEGER = 7;      (* Terminal XMIT FG color - WHT *)
  75.  
  76.    (* Define the FT-767 Instruction code set *)
  77.    CatOn        : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(0);
  78.    CatOff       : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(1)+CHR(0);
  79.    Check        : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(1);
  80.    Up10Hz       : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(2);
  81.    Dn10Hz       : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(3);
  82.    BandUp       : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(6);
  83.    BandDn       : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR(7);
  84.    SplitTog     : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR($30)+CHR($A);
  85.    ClarTog      : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR($40)+CHR($A);
  86.    MtoV         : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR($50)+CHR($A);
  87.    VtoM         : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR($60)+CHR($A);
  88.    Swap         : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR($70)+CHR($A);
  89.    Aclr         : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR($80)+CHR($A);
  90.    AckString    : STRING[5]  = CHR(0)+CHR(0)+CHR(0)+CHR(0)+CHR($B);
  91.    (* Define general purpose string constants *)
  92.    Nul3String   : STRING[3]  = CHR(0)+CHR(0)+CHR(0);
  93.    Title        : STRING[44] = 'CATY Transceiver Control Program';
  94.    ComErr       : STRING[43] = ' Is RS-232 Interface turned on? ';
  95.    CTCSSErr     : STRING[39] = ' CTCSS Module not installed ';
  96.    FreqErr      : STRING[17] = ' Frequency error ';
  97.    CmdErr       : STRING[17] = '  Command error  ';
  98.    MemErr       : STRING[17] = '  Memory error   ';
  99.    TimerErr     : STRING[40] = '  Restoring the normal Timer interrupt  ';
  100.    TfileErr     : STRING[26] = '  Cannot find UPDATE.DUM  ';
  101.  
  102. (*═══════════════════════════════════════════════════════════════════════*)
  103. TYPE
  104.    String5      = STRING[5];        (* Used for 767 Instructs, Echos *)
  105.    String86     = STRING[86];       (* To hold 767 Status Update stream *)
  106.    CircBuffer   =
  107.       ARRAY[0..1023] OF Char;       (* COM serial input buffers *)
  108.  
  109. (*═══════════════════════════════════════════════════════════════════════*)
  110. VAR
  111.    Zero1             : BYTE;        (* For initialization purposes *)
  112.    Clearit           : BYTE;        (* Dummy variable *)
  113.    TicCount          : BYTE;        (* Used to calc seconds for clock *)
  114.    RCommChar         : CHAR;        (* Character from the radio COM_ port *)
  115.    TCommChar         : CHAR;        (* Character from the TNC COM_ port *)
  116.    Rate              : WORD;        (* Baud rate variable *)
  117.    RComBase          : WORD;        (* Base address of radio COM port *)
  118.    TComBase          : WORD;        (* Base address of TNC COM port *)
  119.    RBuffer           : CircBuffer;  (* Incoming radio serial buffer *)
  120.    TBuffer           : CircBuffer;  (* Incoming TNC serial buffer *)
  121.    RLastRead,TLastRead,             (* Index of the last char read *)
  122.    RLastSaved,TLastSaved,           (* Index of the last char stored *)
  123.    Index             : INTEGER;     (* General purpose counter variable *)
  124.    Xbit,Ybit         : INTEGER;     (* Global storage for large char bits *)
  125.    BarPos            : INTEGER;     (* Global storage for bar selector *)
  126.    Page              : INTEGER;     (* Global storage for page selector *)
  127.    DataFileRec       : INTEGER;     (* Total # records in VFO datafile *)
  128.    RadioPort         : INTEGER;     (* Port to use for radio control *)
  129.    TermPort          : INTEGER;     (* Port to use for TNC control *)
  130.    RComVec           : INTEGER;     (* Vector # for radio (IRQ_) *)
  131.    TComVec           : INTEGER;     (* Vector # for TNC (IRQ_) *)
  132.    RIRQM             : INTEGER;     (* Mask to turn Radio IRQ_ ints on/off *)
  133.    TIRQM             : INTEGER;     (* Mask to turn TNC IRQ_ ints on/off *)
  134.    CharsInRBuf       : INTEGER;     (* No of chars in radio buffer *)
  135.    CharsInTBuf       : INTEGER;     (* No of chars in TNC buffer *)
  136.    OldRComVec        : POINTER;     (* Global storage for old radio COM vec *)
  137.    OldTComVec        : POINTER;     (* Global storage for old TNC COM vec *)
  138.    OldVector         : POINTER;     (* Holds old clock interrupt vector *)
  139.    Main              : BOOLEAN;     (* Main Menu is active flag *)
  140.    EchoValid         : BOOLEAN;     (* Good echo from FT-767 *)
  141.    MR,Cl,Fk          : BOOLEAN;     (* Mem Recall, Clar, Func key flags *)
  142.    Repeater          : BOOLEAN;     (* Repeater offset flag *)
  143.    DownFlag          : BOOLEAN;     (* Step Dn/Up flag *)
  144.    QuitFlag          : BOOLEAN;     (* Quit to DOS flag *)
  145.    Quit              : BOOLEAN;     (* Flag for exiting the program *)
  146.    SelFreq           : REAL;        (* Storage for selected frequency *)
  147.    BigFreq           : STRING[10];  (* Global storage for freq string *)
  148.    Inst              : String5;     (* Global FT-767 Instruction code *)
  149.    Update            : String86;    (* Global FT-767 Update stream *)
  150.    UpdateFile        : TEXT;        (* Test file contains dummy Update *)
  151.    Y767MemDataFile   : TEXT;        (* Filename for memory data file *)
  152.    Y767VFODataFile   : TEXT;        (* Filename for VFO database file *)
  153.    Y767MemFileParams : STRING[76];  (* Length of MemFile record *)
  154.    Lifo  : ARRAY[1..86] OF CHAR;    (* Global LIFO Update stream *)
  155.    Zero2             : BYTE;        (* For initialization purposes *)
  156.    Echo  : ARRAY[1..5] OF CHAR;     (* Global FT-767 Echo code *)
  157.    MemArray :
  158.       ARRAY[1..100] OF STRING[70]; (* For VFO datafile Memory array *)
  159.  
  160. (*════════════════════════════ End of Globals ═══════════════════════════*)
  161.