1
0
mirror of https://github.com/aap/pdp6.git synced 2026-01-11 23:53:31 +00:00
aap.pdp6/fe6/fe.h
2019-12-05 00:31:20 +01:00

93 lines
1.4 KiB
C

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include <ctype.h>
#include "util.h"
#include "pdp6common.h"
#include "threading.h"
#define nil NULL
typedef uint64_t u64, word;
typedef uint32_t u32, hword;
typedef uint16_t u16;
typedef uint8_t u8;
#define LT 0777777000000
#define RT 0777777
#define FW (LT|RT)
#define F0 0400000000000
//#define MAXMEM (16*1024)
#define MAXMEM (256*1024)
#include "regs.h"
enum {
FAKEFAKE = 01000017,
#define X(str, name) name,
PDP_REGS
PDP_REGS_TEST
#undef X
APR_END,
};
/* FE devices */
enum
{
DEV_PTR = 0,
DEV_PTP,
};
struct dev
{
char *devname;
int mode;
int fd;
char *path;
};
extern struct dev devtab[];
extern hword starta;
extern int started;
extern char *helpstr, *colhelpstr;
char *findacsym(word v);
char *findsymval(word v);
void quit(void);
void err(char *str);
void typestr(char *str);
void typestrnl(char *str);
void coloncmd(char *line);
void docmd(char *cmd, char *line);
int isrunning(void);
int isstopped(void);
void deposit(hword a, word w);
word examine(hword a);
void cpu_start(hword a);
void cpu_readin(hword a);
void cpu_setpc(hword pc);
void cpu_stopinst(void);
void cpu_stopmem(void);
void cpu_cont(void);
void cpu_nextinst(void);
void cpu_nextmem(void);
void cpu_exec(word inst);
void cpu_ioreset(void);
void cpu_printflags(void);
void fe_svc(void);
void initcrt(const char *host);
void initnetmem(const char *host, int port);
void init6(void);
void deinit6(void);