
/* lfxmit.h - version general prototypes.information.
 *  Copyright (C) 2022 by Jed Marti
 *   This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *   (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see https://www.gnu.org/licenses/.
 */


#ifndef lfxmit_h
#define lfxmit_h


// Note that PROCESSOR is a string defined in config.h.

// Version
#define VERSION 2
#define RELEASE 3
#define PATCH   18

// Wait in milliseconds between DS1085 assignments.
#define DS1085WAIT 10


// See init51.c
void init51(void);

// See a2d.c
void initA2D(void);
void readAD0(void);
void readAD1(void);
void readRawTemp(void);
void readTemp(void);

// See bytevector.c
void runByteVector(void);
void getByteVector(uint8_t c);

// See chain.c
void runChain(void);

// See cmd.c
void cmd(void);

// See digio.c
void runDigDirection(void);
void readDIG0(void);
void readDIG1(void);
void anyChar(void);
void readRed(void);
void readYellow(void);
void readGreen(void);
void readBlue(void);
void setDIG0(void);
void setDIG1(void);
void setRed(void);
void setYellow(void);
void setGreen(void);
void setBlue(void);

// See download.c
void download(void);

// See ds1085.c
void initDS1085(void);
void showBand(void);
void powerDownDS1085(void);
void runFrequency(void);

// see files.c
void runCreateFile(void);
void runOpenFile(void);
void runWrite(void);
void runPutch(void);
void doReadch(void);
void runRead(void);
void runClose(void);
void putuint32(uint32_t v);
void putint32(int32_t v);
void putfloat(float v);

// See floatvector.c
void runFloatVector(void);
void getFloatVector(uint8_t s);

// See for.c
void resetFOR(void);
void runFOR(void);

// See functions.c
void isInt(void);
void isFloat(void);
void isString(void);
void isByteVector(void);
void isFloatVector(void);
void doRound(void);
void doSqrt(void);
void doAbs(void);

// See i2c.c
void runWriteI2C(void);

// See if.c
void runIf(void);

// See let.c
void runLet1(void);
void runLet(void);

// See more.c
void more(void);
void sendFile(void);

// See morse.c
void initMorse(void);
void sendChar(uint8_t ch);
void sendString(char *s);
void waitMS(uint8_t m);
void runSend(void);
void runCarrier(void);

// See parse.c
void pushST(uint16_t );
uint16_t popST(void);
uint8_t getPByte(void);
uint8_t getPByte1(void);
void incPC(void);
void parseExpression(void);
void initParse(void);

// See pause.c
void runPause(void);

// See print.c
void print(void);

// See program.c
void initProgram(void);
void loadProgramFile(void);
void loadProgram(void);
void dumpProgram(void);

// See run.c
void runStatement(void);
void runAfterLoad(void);
void runProgram(void);

// See progn.c
void runProgn(void);

// See arithmetic.c
void badType(char *oper);
void plus2(void);
void difference(void);
void times2(void);
void quotient(void);
void remainder(void);
void minus(void);


//  See bits.c
void bitand(void);
void bitor(void);
void bitnot(void);


// See logical.c
void and(void);
void or(void);
void not(void);

// See relations.c
void lessp(void);
void leq(void);
void greaterp(void);
void geq(void);
void equal(void);
void neq(void);

// See sleep.c
void runSleep(void);

// See vector.c
void subscriptCheck(uint8_t s);
void getVector(uint8_t s);

// See while.c
void runWhile(void);

#endif


// EOF
