/*

  This is a part of the Project Frontier's Source code.

  Copyright (C) 1997-98 Francis Gastellu
                    aka Lone Runner/Aegis

  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 2
  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, write to the Free Software
  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/

/*
                           ś+ Project Frontier +ś

ž PPL Runtime
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
±±± PPL STATEMENTS DEFINITIONS ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
*/

#define INPUT_ECHODOTS 	0x1
#define INPUT_FIELDLEN 	0x2
#define INPUT_GUIDE 	0x4
#define INPUT_UPCASE  	0x8
#define INPUT_STACKED  	0x10
#define INPUT_ERASELINE 0x20
#define INPUT_NEWLINE  	0x40
#define INPUT_LFBEFORE  0x80
#define INPUT_LFAFTER 	0x100
#define INPUT_WORDWRAP 	0x200
#define INPUT_NOCLEAR 	0x400
#define INPUT_BELL 		0x800
#define INPUT_HIGHASCII 0x1000
#define INPUT_AUTO 		0x2000
#define INPUT_YESNO 	0x4000
#define INPUT_LOGIT 	0x8000
#define INPUT_LOGITLEFT 0x10000

#define F_REG 			0x1
#define F_EXP 			0x2
#define F_SEL 			0x4
#define F_SYS 			0x8
#define F_MW 			0x10

#ifdef __cplusplus
extern "C" {
#endif

void ppl_S_END(void);
void ppl_S_CLS(void);
void ppl_S_CLREOL(void);
void ppl_S_MORE(void);
void ppl_S_WAIT(void);
void ppl_S_COLOR(void);
void ppl_S_GOTO(void);
void ppl_S_LET(void);
void ppl_S_PRINT(void);
void ppl_S_PRINTLN(void);
void ppl_S_IF(void);
void ppl_S_CONFFLAG(void);
void ppl_S_CONFUNFLAG(void);
void ppl_S_DISPFILE(void);
void ppl_S_INPUT(void);
void ppl_S_FCREATE(void);
void ppl_S_FOPEN(void);
void ppl_S_FAPPEND(void);
void ppl_S_FCLOSE(void);
void ppl_S_FGET(void);
void ppl_S_FPUT(void);
void ppl_S_FPUTLN(void);
void ppl_S_RESETDISP(void);
void ppl_S_STARTDISP(void);
void ppl_S_FPUTPAD(void);
void ppl_S_HANGUP(void);
void ppl_S_GETUSER(void);
void ppl_S_PUTUSER(void);
void ppl_S_DEFCOLOR(void);
void ppl_S_DELETE(void);
void ppl_S_DELUSER(void);
void ppl_S_ADJTIME(void);
void ppl_S_LOG(void);
void ppl_S_INPUTSTR(void);
void ppl_S_INPUTYN(void);
void ppl_S_INPUTMONEY(void);
void ppl_S_INPUTINT(void);
void ppl_S_INPUTCC(void);
void ppl_S_INPUTDATE(void);
void ppl_S_INPUTTIME(void);
void ppl_S_PROMPTSTR(void);
void ppl_S_GOSUB(void);
void ppl_S_RETURN(void);
void ppl_S_DTRON(void);
void ppl_S_DTROFF(void);
void ppl_S_CDCHKON(void);
void ppl_S_CDCHKOFF(void);
void ppl_S_DELAY(void);
void ppl_S_SENDMODEM(void);
void ppl_S_INC(void);
void ppl_S_DEC(void);
void ppl_S_NEWLINE(void);
void ppl_S_NEWLINES(void);
void ppl_S_TOKENIZE(void);
void ppl_S_GETTOKEN(void);
void ppl_S_SHELL(void);
void ppl_S_DISPTEXT(void);
void ppl_S_STOP(void);
void ppl_S_INPUTTEXT(void);
void ppl_S_BEEP(void);
void ppl_S_PUSH(void);
void ppl_S_POP(void);
void ppl_S_KBDSTUFF(void);
void ppl_S_CALL(void);
void ppl_S_JOIN(void);
void ppl_S_QUEST(void);
void ppl_S_BLT(void);
void ppl_S_DIR(void);
void ppl_S_KBDFILE(void);
void ppl_S_BYE(void);
void ppl_S_GOODBYE(void);
void ppl_S_BROADCAST(void);
void ppl_S_WAITFOR(void);
void ppl_S_KBDCHKON(void);
void ppl_S_KBDCHKOFF(void);
void ppl_S_OPTEXT(void);
void ppl_S_DISPSTR(void);
void ppl_S_RDUNET(void);
void ppl_S_WRUNET(void);
void ppl_S_DOINTR(void);
void ppl_S_VARSEG(void);
void ppl_S_VAROFF(void);
void ppl_S_POKE(void);
void ppl_S_POKEW(void);
void ppl_S_VARADDR(void);
void ppl_S_ANSIPOS(void);
void ppl_S_BACKUP(void);
void ppl_S_FORWARD(void);
void ppl_S_FRESHLINE(void);
void ppl_S_WRUSYS(void);
void ppl_S_RDUSYS(void);
void ppl_S_NEWPWD(void);
void ppl_S_OPENCAP(void);
void ppl_S_CLOSECAP(void);
void ppl_S_MESSAGE(void);
void ppl_S_SAVESCRN(void);
void ppl_S_RESTSCRN(void);
void ppl_S_SOUND(void);
void ppl_S_CHAT(void);
void ppl_S_SPRINT(void);
void ppl_S_SPRINTLN(void);
void ppl_S_MPRINT(void);
void ppl_S_MPRINTLN(void);
void ppl_S_RENAME(void);
void ppl_S_FREWIND(void);
void ppl_S_POKEDW(void);
void ppl_S_DBGLEVEL(void);
void ppl_S_SHOWON(void);
void ppl_S_SHOWOFF(void);
void ppl_S_PAGEON(void);
void ppl_S_PAGEOFF(void);
void ppl_S_FSEEK(void);
void ppl_S_FFLUSH(void);
void ppl_S_FREAD(void);
void ppl_S_FWRITE(void);
void ppl_S_FDEFIN(void);
void ppl_S_FDEFOUT(void);
void ppl_S_FDGET(void);
void ppl_S_FDPUT(void);
void ppl_S_FDPUTLN(void);
void ppl_S_FDPUTPAD(void);
void ppl_S_FDREAD(void);
void ppl_S_FDWRITE(void);
void ppl_S_ADJBYTES(void);
void ppl_S_KBDSTRING(void);
void ppl_S_ALIAS(void);
void ppl_S_REDIM(void);
void ppl_S_APPEND(void);
void ppl_S_COPY(void);
void ppl_S_KBDFLUSH(void);
void ppl_S_MDMFLUSH(void);
void ppl_S_KEYFLUSH(void);
void ppl_S_LASTIN(void);
void ppl_S_FLAG(void);
void ppl_S_DOWNLOAD(void);
void ppl_S_WRUSYSDOOR(void);
void ppl_S_GETALTUSER(void);
void ppl_S_ADJDBYTES(void);
void ppl_S_ADJTBYTES(void);
void ppl_S_ADJTFILES(void);
void ppl_S_LANG(void);
void ppl_S_SORT(void);
void ppl_S_MOUSEREG(void);
void ppl_S_SCRFILE(void);
void ppl_S_SEARCHINIT(void);
void ppl_S_SEARCHFIND(void);
void ppl_S_SEARCHSTOP(void);
void ppl_S_PRFOUND(void);
void ppl_S_PRFOUNDLN(void);
void ppl_S_TPAGET(void);
void ppl_S_TPAPUT(void);
void ppl_S_TPACGET(void);
void ppl_S_TPACPUT(void);
void ppl_S_TPAREAD(void);
void ppl_S_TPAWRITE(void);
void ppl_S_TPACREAD(void);
void ppl_S_TPACWRITE(void);
void ppl_S_BITSET(void);
void ppl_S_BITCLEAR(void);
void ppl_S_BRAG(void);
void ppl_S_FREALTUSER(void);
void ppl_S_SETLMR(void);
void ppl_S_SETENV(void);
void ppl_S_FCLOSEALL(void);
void ppl_S_DECLARE(void);
void ppl_S_FUNCTION(void);
void ppl_S_PROCEDURE(void);
void ppl_S_ENDPROC(void);
void ppl_S_BEGIN(void);
void ppl_S_ENDFUNC(void);
void ppl_S_STATIC(void);
void ppl_S_STACKABORT(void);
void ppl_S_DCREATE(void);
void ppl_S_DOPEN(void);
void ppl_S_DCLOSE(void);
void ppl_S_DSETALIAS(void);
void ppl_S_DPACK(void);
void ppl_S_DCLOSEALL(void);
void ppl_S_DLOCK(void);
void ppl_S_DLOCKR(void);
void ppl_S_DLOCKG(void);
void ppl_S_DUNLOCK(void);
void ppl_S_DNCREATE(void);
void ppl_S_DNOPEN(void);
void ppl_S_DNCLOSE(void);
void ppl_S_DNCLOSEALL(void);
void ppl_S_DNEW(void);
void ppl_S_DADD(void);
void ppl_S_DAPPEND(void);
void ppl_S_DTOP(void);
void ppl_S_DGO(void);
void ppl_S_DBOTTOM(void);
void ppl_S_DSKIP(void);
void ppl_S_DBLANK(void);
void ppl_S_DDELETE(void);
void ppl_S_DRECALL(void);
void ppl_S_DTAG(void);
void ppl_S_DSEEK(void);
void ppl_S_DFBLANK(void);
void ppl_S_DGET(void);
void ppl_S_DPUT(void);
void ppl_S_DFCOPY(void);
void ppl_S_EVAL(void);
void ppl_S_ACCOUNT(void);
void ppl_S_RECORDUSAGE(void);
void ppl_S_MSGTOFILE(void);
void ppl_S_QWKLIMITS(void);
void ppl_S_COMMAND(void);
void ppl_S_USELMRS(void);
void ppl_S_CONFINFO(void);
void ppl_S_ADJTUBYTES(void);
void ppl_S_GRAFMODE(void);
void ppl_S_ADDUSER(void);
void ppl_S_KILLMSG(void);
void ppl_S_CHDIR(void);
void ppl_S_MKDIR(void);
void ppl_S_RMDIR(void);
void ppl_S_FDOWRAKA(void);
void ppl_S_FDOADDAKA(void);
void ppl_S_FDOWRORG(void);
void ppl_S_FDOADDORG(void);
void ppl_S_FDOQMOD(void);
void ppl_S_FDOQADD(void);
void ppl_S_FDOQDEL(void);
void ppl_S_SOUNDDELAY(void);
void ppl_S_void(void);
void lineCounter(void);
void ppl_S_ABORT(void);
void ppl_S_WRPCBSYS(void);
void ppl_S_LEAVE(void);
void ppl_S_DPRINT(void);
void ppl_S_DPRINTLN(void);
void ppl_S_DANSIPOS(void);
void ppl_S_DCLS(void);
void ppl_S_DSAVESCRN(void);
void ppl_S_DRESTSCRN(void);
void ppl_S_ADVMESSAGE(void);
void ppl_S_SETREAD(void);
void ppl_S_KILLTIME(void);
void ppl_S_GETSYSTEMUSER(void);
void ppl_S_SCREENCLEARED(void);
void ppl_S_UNKILLMSG(void);
void ppl_S_ENDWITHVALUE(void);
void ppl_S_SETCARRIER(void);
void ppl_S_SETLOCAL(void);
void ppl_S_SETCOMHAND(void);
void ppl_S_SETERRORCORRECT(void);
void ppl_S_PUTPROFILE(void);
void ppl_S_SUSPENDCOM(void);
void ppl_S_RESTORECOM(void);
void ppl_S_CTOKENIZE(void);
void ppl_S_REGISTERCMD(void);
void ppl_S_INVALIDCMDS(void);
void ppl_S_LOADCONF(void);
void ppl_S_MACROS(void);
void ppl_S_SANSIPOS(void);
void ppl_S_PAGETEXT(void);
void ppl_S_BIGSHELL(void);
void ppl_S_RDPCBSYS(void);
void ppl_S_SETCOM(void);
void ppl_S_SEARCHFILEFIND(void);
void ppl_S_RESETLOG(void);
void ppl_S_GETCOM(void);
void ppl_S_SCLS(void);
void ppl_S_WRFRTSYS(void);
void ppl_S_RDFRTSYS(void);
void ppl_S_ADJTUFILES(void);
void ppl_S_SETTTIME(void);
void ppl_S_SETLANG(void);

int charok(char *valid, unsigned char c, long flags);
char *inputmagic(char *str, long flags);
void ppl_input(pplvar *prompt, pplvar *result, int color, int len, pplvar *valid, long flags);
void doShell(int big);

#ifdef __cplusplus
}
#endif
