home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-386-Vol-2of3.iso
/
c
/
caty16.zip
/
CATY161.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1991-10-25
|
7KB
|
132 lines
{$R-,V-,S-} (*Range, Var-String, Stack checking all off *)
(*═══════════════════════════════════════════════════════════════════════*)
(* Program: CATYXXX.PAS (see CATY.GLO for full program information) *)
(* Author: Donald J. Wilke, N3HGQ *)
(* Purpose: Control program for Yaesu FT-767GX Transceiver. *)
(* Last update: CATYMVFO.PAS - 10/25/91 *)
(* Usage: Compile to .EXE file using Turbo Pascal V. 5.0 or later. *)
(* Requires RS-232 interface between computer & FT-767GX. *)
(*═══════════════════════════════════════════════════════════════════════*)
PROGRAM CATY;
USES
CRT, DOS, (* Unit files general *)
CATYGLO, CATYUTIL, CATYDISP, (* Specific to this pgm *)
CATYINST, CATYCOMM, CATYRTC;
(*═══════════════════════════════════════════════════════════════════════*)
PROCEDURE DoQuit; (* Shut down communications and exit *)
BEGIN (* DoQuit *)
WINDOW(2,6,79,23);
CLRSCR;
TEXTCOLOR(DFG); TEXTBACKGROUND(DBG); (* Default screen colors *)
PrMessage('Restoring the normal timer interrupt.',7);
RestoreOldTimer; (* Restore timer int vector *)
IF NOT Test THEN BEGIN
TurnCatOff; (* CAT's last life *)
Peep(1500);
CommExitProc; (* Close up shop *)
GOTOXY(30,9);
WRITE('Port COM1: closed OK.');
CommExitProc; (* Close up shop *)
GOTOXY(30,10);
WRITE('Port COM2: closed OK.');
DELAY(1000); (* Allow time to read *)
CLRSCR;
GOTOXY(34,9);
WRITE('Outta here.');
DELAY(1200); (* Allow time to read *)
END; (* IF NOT *)
WINDOW(1,1,80,25);
CLRSCR; (* Clear screen on exit *)
END; (* DoQuit *)
(*═══════════════════════════════════════════════════════════════════════*)
PROCEDURE SetupFT767; (* Set up basic program functions & radio port *)
VAR
ClString2 : STRING;
BEGIN (* SetupFT767 *)
TimeZone := 5; (* EST is default *)
TZ := ' EST '; (* Set up default prompt *)
DirectVideo := TRUE; (* Don't use BIOS for video *)
Repeater := FALSE; (* Default is simplex *)
CLRSCR;
IF PARAMCOUNT > 0 THEN (* Command line parameters *)
IF (PARAMSTR(1) = '/2') THEN BEGIN (* Values for Radio on COM2: *)
RadioPort := 2; (* Radio on COM2: *)
RComVec := $0B; (* Interrupt # for UART *)
RIRQM := $08; (* IRQ mask for COM2: *)
RComBase := $2F8; (* Port addr for COM2: *)
END (* IF PARAMSTR(1) *)
ELSE BEGIN (* Default values *)
RadioPort := 1; (* For Radio on COM1: *)
RComVec := $0C; (* Interrupt # for UART *)
RIRQM := $10; (* IRQ mask for COM1: *)
RComBase := $3F8; (* Port addr for COM1: *)
END; (* ELSE *)
ClString2 := COPY(PARAMSTR(2),2,3); (* Strip off '/' *)
FOR Index := 1 TO LENGTH(ClString2) DO (* Make upper case *)
ClString2[Index] := UPCASE(ClString2[Index]);
IF ClString2 = 'EDT' THEN TimeZone := 4;
IF ClString2 = 'EST' THEN TimeZone := 5;
IF ClString2 = 'CDT' THEN TimeZone := 5;
IF ClString2 = 'CST' THEN TimeZone := 6;
IF ClString2 = 'MDT' THEN TimeZone := 6;
IF ClString2 = 'MST' THEN TimeZone := 7;
IF ClString2 = 'PDT' THEN TimeZone := 7;
IF ClString2 = 'PST' THEN TimeZone := 8;
TZ := ' '+ClString2+' '; (* Set up prompt *)
IF mem[$0040:$0049] = 7 THEN (* Get video parameters *)
ScreenSeg := $B000 (* Monochrome display addr *)
ELSE ScreenSeg := $B800; (* CGA, EGA display addr *)
InitClock; (* Initialize clock int *)
MainFrame; (* Build screens framework *)
IF NOT Test THEN BEGIN (* This is for real *)
SetupSerialPort(RadioRate,RadioPort,RComVec,RComBase,RIRQM,'R');
TurnCatOn; (* To get initial UPDATE *)
CatSend(AClr,26); (* Turn off Split,Clar,Offs *)
TurnCatOff; (* Allow manual operation *)
END (* IF NOT *)
ELSE TestFile; (* Testing, read in sim Upd *)
END; (* SetupFT767 *)
(*═══════════════════════════════════════════════════════════════════════*)
PROCEDURE SetupTNC; (* Set up TNC port *)
BEGIN (* SetupTNC *)
IF PARAMCOUNT > 0 THEN (* Command line parameters *)
IF (PARAMSTR(1) = '/2') THEN BEGIN (* Radio on 2/TNC on 1 *)
TermPort := 1; (* Term on COM1: *)
TComVec := $0C; (* Interrupt # for UART *)
TIRQM := $10; (* IRQ mask for COM1: *)
TComBase := $3F8; (* Port addr for COM1: *)
END (* IF PARAMSTR(1) *)
ELSE BEGIN (* Default values *)
TermPort := 2; (* For Term on COM2: *)
TComVec := $0B; (* Interrupt # for UART *)
TIRQM := $08; (* IRQ mask for COM2: *)
TComBase := $2F8; (* Port addr for COM2: *)
END; (* ELSE *)
SetupSerialPort(TermRate,TermPort,TComVec,TComBase,TIRQM,'T');
END; (* SetupTNC *)
BEGIN (*================= MAINLINE CONTROL ROUTINE ======================*)
CLRSCR;
PrMessage(Title,2); (* Put up header *)
PrMessage(Version + Rig + Credit,3);
ZeroVariables; (* Initialize all globals *)
Echo := 'UUUUU'; (* Can't use nulls for this *)
FILLCHAR(MemArray,SIZEOF(MemArray),' '); (* Initialize text array *)
QuitFlag := FALSE; (* Set Quit flag *)
SetupFT767; (* Set up Radio port *)
SetupTNC; (* Set up TNC port *)
REPEAT MainMenu; UNTIL QuitFlag; (* Loop `til EXIT key (F10) *)
Quit := TRUE; (* It must be true *)
DoQuit; (* Do an orderly shutdown *)
END. (* MAINLINE CONTROL ROUTINE and CATY.PAS *)