1 #ifndef _PDP1_H
2 #define _PDP1_H
3 
4 #include "memory.h"
5 #include "osd_cpu.h"
6 
7 #include <retro_inline.h>
8 
9 enum {
10 	PDP1_PC=1, PDP1_AC, PDP1_IO, PDP1_Y, PDP1_IB, PDP1_OV, PDP1_F,
11 	PDP1_F1, PDP1_F2, PDP1_F3, PDP1_F4, PDP1_F5, PDP1_F6,
12 	PDP1_S1, PDP1_S2, PDP1_S3, PDP1_S4, PDP1_S5, PDP1_S6
13 };
14 
15 /* PUBLIC FUNCTIONS */
16 extern unsigned pdp1_get_pc(void);
17 extern void pdp1_set_pc(UINT32 newpc);
18 extern unsigned pdp1_get_sp(void);
19 extern void pdp1_set_sp(UINT32 newsp);
20 extern unsigned pdp1_get_context (void *dst);
21 extern void pdp1_set_context (void *src);
22 extern unsigned pdp1_get_reg (int regnum);
23 extern void pdp1_set_reg (int regnum, unsigned val);
24 extern void pdp1_set_nmi_line(int state);
25 extern void pdp1_set_irq_line(int irqline, int state);
26 extern void pdp1_set_irq_callback(int (*callback)(int irqline));
27 extern void pdp1_reset(void *param);
28 extern void pdp1_exit (void);
29 extern int pdp1_execute(int cycles);
30 extern const char *pdp1_info(void *context, int regnum);
31 extern unsigned pdp1_dasm(char *buffer, unsigned pc);
32 
33 extern int pdp1_ICount;
34 extern int (* extern_iot)(int *, int);
35 
36 #define READ_PDP_18BIT(A) ((signed)cpu_readmem16(A))
37 #define WRITE_PDP_18BIT(A,V) (cpu_writemem16(A,V))
38 
39 #define AND 001
40 #define IOR 002
41 #define XOR 003
42 #define XCT 004
43 #define CALJDA 007
44 #define LAC 010
45 #define LIO 011
46 #define DAC 012
47 #define DAP 013
48 #define DIO 015
49 #define DZM 016
50 #define ADD 020
51 #define SUB 021
52 #define IDX 022
53 #define ISP 023
54 #define SAD 024
55 #define SAS 025
56 #define MUS 026
57 #define DIS 027
58 #define JMP 030
59 #define JSP 031
60 #define SKP 032
61 #define SFT 033
62 #define LAW 034
63 #define IOT 035
64 #define OPR 037
65 
66 #endif /* _PDP1_H */
67