
DECLARE SUB delay (delayTime!)
'Nov 96 board test a sep prog which is shelled
'       New 23 address slot selection           
'NEW PROGRAMMING SCHEME WITHOUT MAGNET

DECLARE SUB antinit ()
'--------------------- startup sequence ---------------------------
ON ERROR GOTO duff
flagnonA = 0: flagarr = 0
CLS :
GOTO configure
3000 :
'--------TRANSLATION ARRAYS -----------------------------
'-----non array values ANT----23 addresses-----------------
DATA "00,7F,21,00,11,","00,2E,73,00,01,","00,54,FB,00,04,"
DATA "00,4F,1F,00,11,","00,5E,75,00,01,","00,24,F9,00,04,"
DATA "00,1F,1D,00,11,","00,8E,77,00,01,","00,F4,F7,00,03,"
DATA "00,EF,1B,00,10,","00,BE,79,00,01,","00,C4,F5,00,03,"
DATA "00,BF,19,00,10,","00,EE,7B,00,01,","00,94,F3,00,03,"
DATA "00,8F,17,00,10,","00,1E,7D,00,02,","00,64,F1,00,03,"
DATA "00,5F,15,00,10,","00,4E,7F,00,02,","00,34,EF,00,03,"
DATA "00,2F,13,00,10,","00,7E,81,00,02,","00,04,ED,00,03,"
DATA "00,FF,11,00,0F,","00,AE,83,00,02,","00,D4,EB,00,02,"
DATA "00,CF,0F,00,0F,","00,DE,85,00,02,","00,A4,E9,00,02,"
DATA "00,9F,0D,00,0F,","00,0E,87,00,03,","00,74,E7,00,02,"
DATA "00,6F,0B,00,0F,","00,3E,89,00,03,","00,44,E5,00,02,"
DATA "00,3F,09,00,0F,","00,6E,8B,00,03,","00,14,E3,00,02,"
DATA "00,0F,07,00,0F,","00,9E,8D,00,03,","00,E4,E1,00,01,"
DATA "00,DF,05,00,0E,","00,CE,8F,00,03,","00,B4,DF,00,01,"
DATA "00,AF,03,00,0E,","00,FE,91,00,03,","00,84,DD,00,01,"
DATA "00,7F,01,00,0E,","00,2E,93,00,04,","00,54,DB,00,01,"
DATA "00,4E,FF,00,0E,","00,5E,95,00,04,","00,24,D9,00,01,"
DATA "00,1E,FD,00,0E,","00,8E,97,00,04,","00,F4,D7,00,00,"
DATA "00,EE,FB,00,0D,","00,BE,99,00,04,","00,C4,D5,00,00,"
DATA "00,BE,F9,00,0D,","00,EE,9B,00,04,","00,94,D3,00,00,"
DATA "00,8E,F7,00,0D,","00,1E,9D,00,05,","00,64,D1,00,00,"
DATA "00,5E,F5,00,0D,","00,4E,9F,00,05,","00,34,CF,00,00,"
DIM loopdelay$(23): DIM Pulse2Pulse$(23): DIM turnaround$(23)
FOR n = 1 TO 23
READ A$: loopdelay$(n) = A$
READ Pulse2Pulse$(n)
READ turnaround$(n)
NEXT n
'------------ values of R6 for each address -
DATA 6,10,14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94
DIM add$(23)
FOR n = 23 TO 1 STEP -1
READ add: add$(n) = CHR$(add): NEXT n
'--------------------------- array uses a vector ------------------
DATA 11,8,7,6,5,4,3,2,14
DIM ADDVECT(9)
FOR n = 1 TO 9: READ ADDVECT(n): NEXT n
'-- array for TZ translation - actual divisors TzFrq(N) -1 actually used
DIM TzFrq(9)
DATA 66,64,62,60,58,56,54,53,52
FOR n = 1 TO 9
READ TzFrq(n): TzFrq(n) = TzFrq(n) - 1
NEXT n

'--------------------------- RX ANT freq number x5Hz ---------------
DIM FTAB$(9)
DIM fREQ$(9)
DATA "1D,98,","1E,85,","1F,81,","20,8D,","21,AD,","22,E1,","24,2B,"
DATA "24,CD,","25,8F,"
FOR n = 1 TO 9: READ A$:
FTAB$(n) = A$
fREQ$(n) = "2390/10,B8," + A$ + A$ + "00,00,"
'PRINT fREQ$(n)
NEXT n
'-----------------------  array delays for each address for ANT ---
DATA "D6,7A,0,1,","06,7C,0,2,","36,7E,0,2,","66,80,0,2,","96,82,0,2,"
DATA "C6,84,0,2,","F6,86,0,2,","26,88,0,3,","56,8A,0,3,"
DIM ROW$(9):
FOR n = 1 TO 9
READ ROW$(n)
NEXT n
'-----------------------  array delays for Column address for ANT --
DATA "A6,78,0,1,","D6,7A,0,1,","06,7C,0,2,","36,7E,0,2,","66,80,0,2,","96,82,0,2,"
DATA "C6,84,0,2,","F6,86,0,2,","26,88,0,3,"
DIM COL$(9): FOR n = 1 TO 9: READ COL$(n): NEXT n
'-----------------------  array delay for time after row for fxed delay
DATA "B0,12,0,1,","80,10,0,1,","50,0E,0,1,","20,0C,0,1,","F0,0A,0,0,","C0,08,0,0,"
DATA "90,06,0,0,","60,04,0,0,","30,02,0,0,"
DIM RLEFT$(9): FOR n = 1 TO 9: READ RLEFT$(n): NEXT n
'----------------------- array delay for time after col before RX
DATA "28,17,0,2,","F8,15,0,1,","C8,13,0,1,","98,11,0,1,","68,0F,0,1,"
DATA "38,0D,0,1,","08,0B,0,1,","D8,09,0,0,","A8,07,0,0,"
DIM CLEFT$(9): FOR n = 1 TO 9: READ CLEFT$(n): NEXT n
'---------------------------------------------------------------------
PW$ = "60,09,9A,00,00,"         'TODL=70=01110000 b6=pulse b5=trig out
PWNT$ = "40,9,9A,0,0,"                      'b4=flash LED active
								'time = 0000099Ah/1229000 = 2ms
CLOSE ANTCOMMS%                        '
DEL! = .3
ATT$ = "12"

'====================- which program -=================================
3230
GOSUB logo

LOCATE 7, 14: PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» "
LOCATE , 14: PRINT " º MAIN MENU     O/ Quit to DOS                   º "
LOCATE , 14: PRINT " º               1/ BOARD TEST                    º "
LOCATE , 14: PRINT " º               2/ IDENTIFY                      º "
LOCATE , 14: PRINT " º               3/ Program EEPROM                º "
LOCATE , 14: PRINT " º               4/ Select/Test TPDR              º "
LOCATE , 14: PRINT " º               5/ Test TPDR A5-5                º "
LOCATE , 14: PRINT " º               6/ Program ARRAY EEPROM          º "
LOCATE , 14: PRINT " º               7/ TEST ARRAY TPDR               º "
LOCATE , 14: PRINT " º               8/ reset ANT                     º "
LOCATE , 14: PRINT " º               9/ Help                          º "
IF flagnonA = 1 THEN LOCATE , 14: PRINT " º     Last Frq/Address  programmed =   A"; addr%; "-"; tzno; : LOCATE , 62: PRINT "  º "
IF flagarr = 1 THEN LOCATE , 14: PRINT " º     ARRAY TPDR Row/Col/Frq   = "; ROW; "/"; COLM; "/TZ"; tzno; : LOCATE , 60: PRINT "    º "
LOCATE , 14: PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼ "
IF fskprgflag% = 0 THEN GOSUB blank

FLAG = 0: COLOR 7, 0: PRINT : LOCATE 21, 20: COLOR 15, 4: PRINT DISPLAY$: COLOR 7, 0
flagping = 0
DO: q$ = INKEY$
LOOP UNTIL q$ <> ""            'loop til key press
	IF q$ = CHR$(13) THEN GOTO 3230
	DISPLAY$ = ""
	q = VAL(q$): ON q + 1 GOTO ToDOS, BoardTst, IDENTIFY, eet, TestT, TTa55, eea, TestA, RsetANT, tohelp'
	'IF Q$ = CHR$(13) THEN choice% = 1: GOTO nextPrg ELSE Q = VAL(Q$): ON Q + 1 GOTO ToDOS,BoardTst, EET, TestT, EEA, TestA, ToHelp'

ToDOS: INPUT " return to DOS Y/N  ", qq$
 IF qq$ = "y" OR qq$ = "Y" THEN CLOSE #1: END:  ELSE GOTO 3230'system
BoardTst: SHELL "Vlcbdtst": flagnonA = 0: flagarr = 0: GOTO 3230
eet: IF fskprgflag% <> 1 THEN PRINT " Not available ": GOTO 3230
CLS : LOCATE 10, 14: PRINT "----- programming ANT -----": progflag% = 1: GOTO ProgEEPROM
TestT: CLS : GOSUB TPDRTST: DISPLAY$ = "  TESTING TPDR   A" + STR$(addr%) + " TZ" + STR$(tzno) + " ": progflag% = 0: GOTO 3230
TTa55: CLS : GOSUB TPDR55TST: DISPLAY$ = "  TESTING TPDR   A" + STR$(addr%) + " TZ" + STR$(tzno) + " ": progflag% = 0: GOTO 3230
eea: IF fskprgflag% <> 1 THEN PRINT " Not available ": GOTO 3230
CLS : LOCATE 10, 14: PRINT "----- programming ANT -----": progFlagE% = 1: GOTO ProgEEarry
TestA: CLS : GOSUB ARRAYTEST: DISPLAY$ = "  TESTING ARRAY TPDR " + artpdr$: progFlagE% = 0: GOTO 3230
RsetANT: PRINT "RESET ANT": CLOSE #ANTCOMMS%: GOSUB Startant: CLOSE #ANTCOMMS%: GOTO 3230
tohelp: GOSUB Help: GOTO 3230


blank:
LOCATE 10, 14: PRINT " º               2/ - - - - - - -                 º "
LOCATE 11, 14: PRINT " º               3/ - - - - - - -                 º "
LOCATE 14, 14: PRINT " º               6/ - - - - - - -                 º "
RETURN
'~~~~~~~~~~~ EEPROM PROGRAMMING and TEST FOR NON ARRAY TPDR ~~~~~~~~
'------------------ PROGRAMMING ---------------------------------
ProgEEPROM:
flagnonA = 1: flagarr = 0
GOSUB antping     'sets up ant to listen for pings
GOSUB logo
GOSUB seladdfrq   'returns with addr% and frq
output$ = CHR$(0) + "VLCT" + add$(addr%) + CHR$(frq) + ">"
'PRINT output$: INPUT qq$: GOTO eet
PRINT #1, output$
GOTO 3230
'-----------------TEST  ----------------------------------------
TPDR55TST:
addr% = 5
tzno = 5
addr$ = STR$(addno)

frq = TzFrq(tzno)
rxfreq$ = FTAB$(tzno)   'frq)
GOTO AddDelay

TPDRTST:
IF progflag% = 1 THEN GOTO tt1
GOSUB logo
GOSUB seladdfrq
tt1:
addr$ = STR$(addno)
AddDelay:
	loopdelay$ = loopdelay$(addr%): Pulse2Pulse$ = Pulse2Pulse$(addr%)
	turnaround$ = turnaround$(addr%)
RxeveNT$ = "24,02,66,0,0,54,60,64,0,09,01,15,9A,0,0,00,A8,C7,0,12,"
OET$ = "2400/08,14," + PW$ + Pulse2Pulse$ + PWNT$ + turnaround$ + RxeveNT$
'IF rxfreq$ = "" THEN GOSUB selfreq
OUT$ = OET$ + "2390/D,C1,0E,5D," + rxfreq$ + "00,00,"   'freq table at 2390
OUT$ = OUT$ + "23DA/00,00,80,80,"                       'atten table at 23DA
OUT$ = OUT$ + "2016/80,01,"                             'pulse disc
GOSUB OutAnt
RETURN


'-----------------CHOOSE ADDRESS AND FREQ-------------------------------
seladdfrq:

COLOR 0, 0: CLS : COLOR 2, 0: PRINT "*KONCEPT*   "; DATE$; "   "; TIME$
PRINT : COLOR 14, 1, 0
LOCATE 10, 9: PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LOCATE , 9: PRINT "º   ENTER THREE DIGITS                      º"
LOCATE , 9: PRINT "º   1st TWO = TPDR ADDRESS O1 to 23         º"
LOCATE , 9: PRINT "º   3rd DIGIT TZ FREQUENCY  1 to 9          º"
LOCATE , 9: PRINT "º                                           º"
LOCATE , 9: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼"
FLAG = 0: COLOR 7, 0
DO: A$ = INKEY$
LOOP UNTIL A$ <> ""            'loop til key press
addd$ = A$
LOCATE 14, 40: PRINT "A "; A$; "  - "
DO: b$ = INKEY$
LOOP UNTIL b$ <> ""            'loop til key press
addr% = VAL(addd$ + b$)
LOCATE 14, 43: PRINT b$;

DO: c$ = INKEY$
LOOP UNTIL c$ <> ""            'loop til key press
tzno = VAL(c$)
IF c$ = CHR$(13) THEN addr% = VAL(addd$): tzno = VAL(b$)
IF addr% > 23 THEN PRINT "error": CALL delay(1): GOTO seladdfrq
COLOR 7, 0
IF tzno = 0 THEN PRINT "error": CALL delay(1): GOTO seladdfrq
LOCATE 14, 40: PRINT "A"; addr%; "-"; tzno; " "
CALL delay(1)

frq = TzFrq(tzno)
rxfreq$ = FTAB$(tzno)   'frq)
 
RETURN

'~~~~~~~~~~~~ PROGRAM AND TEST ARRAY TPDR
'-------------PROGRAM  -------------------------------------
ProgEEarry:
flagnonA = 0: flagarr = 1
GOSUB antping    'Sets ANT to listen for pings
GOSUB logo
GOSUB seladdRA
'GOSUB selfreq
output$ = CHR$(0) + "VLCT" + CHR$(ZZ) + CHR$(frq + 128) + ">"
'PRINT : PRINT : COLOR 15, 4: PRINT row; "/"; colm; "/TZ"; TZNo; : COLOR 7, 0
PRINT #1, output$
GOTO 3230
'--------------TEST -------------------------------------------
ARRAYTEST:
IF progFlagE% = 1 THEN GOTO AR1
GOSUB logo
GOSUB seladdRA
'GOSUB selfreq
AR1:
RxeveNT$ = "24,02,66,0,0,54,60,64,0,09,01,15,9A,0,0,00,A8,C7,0,12,"
OET$ = "2400/0B,14," + PW$ + "00," + ROW$(ROW) + PWNT$ + "00," + RLEFT$(ROW) + "00," + COL$(COLM) + PWNT$ + "00," + CLEFT$(COLM) + RxeveNT$
OUT$ = OET$ + "2390/D,C1,0E,5D,D,C1," + rxfreq$ + "00,00,"   'freq table at 2390
OUT$ = OUT$ + "23DA/00,00,00,80,80,"                       'atten table at 23DA
OUT$ = OUT$ + "2016/80,01,"                             'pulse disc
GOSUB OutAnt
RETURN
'---------------SELECT ADDRESSES---------------------------------
seladdRA:
COLOR 0, 0: CLS : COLOR 2, 0: PRINT "*KONCEPT*   "; DATE$; "   "; TIME$
PRINT : COLOR 14, 1, 0
LOCATE 9, 9: PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LOCATE , 9: PRINT "º   ENTER THREE DIGITS                      º"
LOCATE , 9: PRINT "º   1st  =  ROW ADDRESS     1 to 9          º"
LOCATE , 9: PRINT "º   2nd  =  COLUMN ADDRESS  1 to 9          º"
LOCATE , 9: PRINT "º   3rd DIGIT TZ FREQUENCY  1 to 9          º"
LOCATE , 9: PRINT "º                                           º"
LOCATE , 9: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼"
FLAG = 0: COLOR 7, 0
DO: A$ = INKEY$
LOOP UNTIL A$ <> ""            'loop til key press
ROW = VAL(A$): ZZ = ADDVECT(ROW)
IF ROW = 0 OR ROW > 9 THEN PRINT "error": CALL delay(1): GOTO seladdRA
LOCATE 14, 40: artpdr$ = "R" + A$: PRINT artpdr$
DO: A$ = INKEY$
LOOP UNTIL A$ <> ""            'loop til key press
COLM = VAL(A$): ZZ = ZZ + ADDVECT(COLM) * 16
IF COLM = 0 OR COLM > 9 THEN PRINT "error": CALL delay(1): GOTO seladdRA
LOCATE 14, 40: artpdr$ = artpdr$ + " C" + A$ + " ": PRINT artpdr$
DO: A$ = INKEY$
LOOP UNTIL A$ <> ""            'loop til key press
COLOR 7, 0
tzno = VAL(A$)
IF tzno = 0 THEN PRINT "error": CALL delay(1): GOTO seladdRA
LOCATE 14, 40: artpdr$ = artpdr$ + "TZ" + STR$(tzno) + " ": PRINT artpdr$
CALL delay(1)

frq = TzFrq(tzno)
rxfreq$ = FTAB$(tzno)   'frq)

RETURN
'    COLOR 7, 0: CLS : PRINT : PRINT
'    PRINT : PRINT :
'    LOCATE 10, 14: COLOR 14, 1: PRINT "  SELECT ROW ADDRESS (1 to 9)     "; : COLOR 7, 0
'DO: Q$ = INKEY$
'LOOP UNTIL Q$ <> ""            'loop til key press
'    ROW = VAL(Q$): PRINT ROW: ZZ = ADDVECT(ROW)
   
'    PRINT : PRINT : LOCATE , 14: COLOR 14, 1:   PRINT "  SELECT COLUMN ADDRESS (1 to 9)  "; : COLOR 7, 0
'DO: Q$ = INKEY$
'LOOP UNTIL Q$ <> ""            'loop til key press
'    COLM = VAL(Q$): PRINT COLM: ZZ = ZZ + ADDVECT(COLM) * 16
'RETURN
'------------------ SELECT FREQUENCY ~~~~~~~~~~~~~~~~~~~~~~~~~
'selfreq:
'CLS : COLOR 2, 0: PRINT "*KONCEPT*   "; DATE$; "   "; TIME$; "   COM"; COMF
'PRINT : COLOR 14, 1
'LOCATE 10, 9: PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
'LOCATE , 9: PRINT "º        REPLY FREQUENCY SELECT MENU        º"
'LOCATE , 9: PRINT "º   Enter TZ channel Number 1 to 9          º"
'LOCATE , 9: PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼"
'FLAG = 0: COLOR 7, 0
'DO: A$ = INKEY$
'LOOP UNTIL A$ <> ""            'loop til key press
'tznO = VAL(A$)
'frq = TzFrq(tznO)
'rxfreq$ = FTAB$(tznO)           'frq)
'RETURN

'~~~~~~~~~~~~~~~~ ASK TPDR FOR ITS PROGRAMMED SEQUENCE ~~~~~~~~~~~~
'------------------------------
IDENTIFY:
fgp = 1: CLS
'Send sequence which results in O/P timing to allow identification
IF fskprgflag% = 0 THEN GOTO 3230
GOSUB antping
xyz:

PRINT
IF fgp = 1 THEN COLOR 14, 1: fgp = 0 ELSE IF fgp = 0 THEN COLOR 0, 3: fgp = 1
LOCATE 10, 12: PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» "
LOCATE , 12: PRINT " º      Sending Request Identification       º "
LOCATE , 12: PRINT " º                                           º "
LOCATE , 12: PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼ "
LOCATE 12, 22: PRINT "PRESS ANY KEY TO ABORT"
FLAG = 0: COLOR 7, 0
output$ = CHR$(0) + "VLCtst>"
PRINT #1, output$

CALL delay(1)
A$ = INKEY$: IF A$ <> "" THEN COLOR 7, 0: GOTO 3230
GOTO xyz

'############## SUB ROUTINES ############################

'~~~~~~~~~~~~~~RX SET UP ROUTINE ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
antping:  'LOOKS FOR PINGS AT 39062 IF PROGRAMMING SUCCESSFUL ANT FLASHES
freqq$ = "2390/10,B8,1E,84,1E,84,00,00,"   'freq table at 2390

antrxsetup:
RxeveNT$ = "24,02,66,0,0,64,15,9A,0,0,54,A8,C7,FF,12,01,04,CD,0,0,00,A0,3C,0,05,"
OET$ = "2400/06,54,70,09,9A,0,0," + RxeveNT$
OUT$ = OET$ + freqq$                      'freq table at 2390
OUT$ = OUT$ + "23DA/00,80,80,"                       'atten table at 23DA
OUT$ = OUT$ + "2016/80,01,"                             'pulse disc
GOSUB OutAnt
RETURN
'------------OUTPUTS STRINGS TO ANT------------------------------------

OutAnt:

CLOSE ANTCOMMS%
ANTCOMMS% = FREEFILE
OPEN "com2:9600,s,7,2,cs65000,ds,cd" FOR RANDOM AS #ANTCOMMS%
PRINT #ANTCOMMS%, "5"; : CALL delay(DEL!)  'select COMP
PRINT #ANTCOMMS%, "D"; : CALL delay(DEL!)  'direct entry mode
PRINT #ANTCOMMS%, OUT$; : CALL delay(DEL!)
PRINT #ANTCOMMS%, "G";                 'GO
'CLOSE AntCommS%                        '
RETURN
'--------------------INITIALISE ANT--------------------------
Startant:
CLOSE ANTCOMMS%
ANTCOMMS% = FREEFILE
OPEN "com2:9600,s,7,2,cs65000,ds,cd" FOR RANDOM AS #ANTCOMMS%
CALL delay(1)
PRINT #ANTCOMMS%, CHR$(27); CHR$(27); CHR$(27)               'reset ANT
CALL delay(1.5)
PRINT "start"   ': SHELL "VTERM"
RETURN
'---------------- LOGO ----------------------------------
logo:
CLS : COLOR 14, 6
LOCATE , 6: PRINT "                                                                      "
LOCATE , 6: PRINT "       -***   VLCT FSK PROGRAMMING AND TEST PROGRAM  ***-             "
COLOR 0
LOCATE , 6: PRINT "                                                                      "
LOCATE , 6: PRINT "              Sonardyne International Ltd (c)  Nov 1996               "
'LOCATE , 6: PRINT "            Author John Kennaugh    Tel O1579-382583                  "
LOCATE , 6: PRINT "                                                                      "
COLOR 7, 0: PRINT
PRINT : COLOR 14, 1
RETURN

'------------------------------- help ----------------------
Help:
CLS : PRINT : PRINT : PRINT " Connect the Serial>FSK box to COM1"
PRINT " Connect COM2 to the ANT unit Serial I/P"
PRINT " Connect the TDR O/P of the ANT to the input of the Serial>FSK box"
PRINT " Connect the O/P of the Serial>FSK box to the TPDR I/P or"
PRINT "          couple to the TDCR using a acoustic coupling"
PRINT "       If programming signal correctly received then the"
PRINT "       TPDR will ping 3 times and the LED on the ANT will flash 3 times"
PRINT "      TRANSPONDER TEST - sends out the interrogation"
PRINT "       if TPDR replies - then very brief flash of LED"
PRINT "       if NO reply detected LED stays on for half a second"
PRINT " identify Sends a signal to the TPDR which makes it give a series"
PRINT " of pulses out on its programmed ZT freq. It tries each in turn"
PRINT " times each. when the ANT flashes you have identified the freq"
PRINT " The pulses represent the telemetry window and the window(s) of the"
PRINT " programmed address. By looking at what comes out you can tell"
PRINT " what it is programmed and whether it is programmed as an array."

PRINT : PRINT : INPUT " press <CR> to continue ", qq$
RETURN
configure:
GOSUB logo
fskprgflag% = 0
LOCATE , 14: PRINT " ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» "
LOCATE , 14: PRINT " º                                                º "
LOCATE , 14: PRINT " º  Connect ANT unit to COM2                      º "  'Changed to COM2 by PJF (21.11.96)
LOCATE , 14: PRINT " º                                                º "
LOCATE , 14: PRINT " º  Connect FSK programmer to COM1 or select 2    º "
LOCATE , 14: PRINT " º                                                º "
LOCATE , 14: PRINT " º     1/ Programming function ENABLED            º "
LOCATE , 14: PRINT " º                                                º "
LOCATE , 14: PRINT " º     2/ Programming function DISABLED           º "
LOCATE , 14: PRINT " º                                                º "
LOCATE , 14: PRINT " ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼ "
FLAG = 0: COLOR 7, 0: PRINT : COLOR 7, 0
DO: q$ = INKEY$
LOOP UNTIL q$ <> ""            'loop til key press
	IF VAL(q$) <> 1 THEN GOTO 3000
fskprgflag% = 1
OPEN "com1:150,n,8,1" FOR RANDOM AS #1
GOTO 3000

duff:
CLS : PRINT " no fsk box detected on com 1": CALL delay(2): GOTO configure
'-----------------------------------------------------------

'the address for a straight TPDR is the value of R6
' addresses
'addr%  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
'R0    94 90 86 82 78 74 70 66 62 58 54 50 46 42 38 34 30 26 22 18 14 10  6
'Asc   ^  Z  V  R  N  J  F  B  >  :  6  2  .  *  &  " -- non printable

' FREQ  TZ  1  2  3  4  5  6  7  8  9                                                  '           A  ?  =  ;  9  7  5  4  3
'   Fn     65 63 61 59 57 55 53 52 51  < TZ FREQ =5MHz/2/(Fn+1)
'           A  ?  =  ;  9  7  5  4  3
' EXAMPLE TPDR A14-6 WILL TRANSFER "VLCT*7>" TO THE fsk

SUB antinit
ANTCOMMS% = FREEFILE
OPEN "com2:9600,s,7,2,cs65000,ds,cd" FOR RANDOM AS #ANTCOMMS%
PRINT #ANTCOMMS%, CHR$(27);                 'reset ANT
CALL delay(2)
END SUB

SUB delay (delayTime!)
StartTime! = TIMER
DO
LOOP UNTIL TIMER > (StartTime! + delayTime!)

END SUB

