aboutsummaryrefslogtreecommitdiff
path: root/xcpu/xcpu_asm.h
blob: 39b2c7ce77f24980c132fcaec5370a3d6a55df94 (plain) (blame)
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
41
42
43
44
45
46
47
48
49
50
	;; XCPU_ASM.h -*- asm-mode -*-
	;; Standard XCPU definitions


	;; CPU flags for cpuop
	_define	CPU_JUMP1	0
	_define	CPU_JUMP2	1
	_define CPU_MEMOP	2
	_define CPU_SLR		3
	_define CPU_SRC		4
	_define CPU_MOVE	5
	_define	CPU_DEBUG	7

	_define	CPU_MEMOP_READ	1
	_define CPU_MEMOP_WRITE	0

	_define	CPU_SHIFT_LEFT	0
	_define	CPU_SHIFT_RIGHT	1
	_define	CPU_SHIFT_REG	0
	_define	CPU_SHIFT_CIRC	1

	_define	CPU_MOVE_TO_M	0
	_define	CPU_MOVE_FROM_M	1

	;; jump types
	_define JUMP_UNCOND	0
	_define JUMP_EQ		1
	_define JUMP_NEQ	2
	_define JUMP_LT		3
	_define JUMP_GT		4
	;;_define JUMP_LE		5
	;;_define JUMP_GE		6
	_define CALL		7

	;; devices to configure for config
	_define	CONFIG_MEMORY	0
	_define	CONFIG_STACK	1
	_define	CONFIG_IOPORTS	2

	;; I/O devices
	_define IO_DEV_CONSOLE	0x0
	_define IO_DEV_GRAPHICS	0x1

	;; IO addresses and controls
	_define IOPORT_DEVICE	0x0104
	_define IOPORT_ADDR	0x0108
	_define	IOPORT_RW	0x010c

	;; address of pointer to halt routine
	_define HALT_ADDR	0xfc