blob: 35e1fdfbae7857f9d57c29fbc2ef663580a663d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#ifndef SALIS_PROCESS_H
#define SALIS_PROCESS_H
#define SPROC_REG_COUNT 4
#define SPROC_STACK_SIZE 8
#define SPROC_ELEM_COUNT (6 + SPROC_REG_COUNT + SPROC_STACK_SIZE)
typedef struct {
sword mb1a;
sword mb1s;
sword mb2a;
sword mb2s;
sword ip;
sword sp;
sword regs [SPROC_REG_COUNT];
sword stack [SPROC_STACK_SIZE];
} SProc;
void sp_init (void);
void sp_quit (void);
void sp_load (FILE *file);
void sp_save (FILE *file);
sbool sp_isInit (void);
sword sp_getCount (void);
sword sp_getCap (void);
sword sp_getFirst (void);
sword sp_getLast (void);
sbool sp_isFree (sword pidx);
SProc sp_getProc (sword pidx);
void sp_setProc (sword pidx, SProc proc);
void sp_create (sword addr, sword size);
void sp_kill (void);
void sp_cycle (void);
#endif
|