-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathifs.asm
More file actions
executable file
·134 lines (105 loc) · 1.11 KB
/
ifs.asm
File metadata and controls
executable file
·134 lines (105 loc) · 1.11 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
// A
LDR0 0 // y
SDR0 AY
LDR0 128 // x
SDR0 AX
// B
LDR0 255 // y
SDR0 BY
LDR0 0 // x
SDR0 BX
// C
LDR0 255 // y
SDR0 CY
LDR0 255 // x
SDR0 CX
// PT
42 // Undocumented instruction: R0 = random value
SDR0 PTY// y
42
SDR0 PTX // x
START:
42 // Which of A, B, or C?
LDR1 3
MOD
JZ DO_A // 0
DEC
JZ DO_B // 1
JMP DO_C // 2 (else)
DO_A:
// Ay / 2
LIR0 AY
LDR1 2
DIV
SDR0 TMP_Y
// Ax / 2
LIR0 AX
LDR1 2
DIV
SDR0 TMP_X
LDR0 9
SDR0 COLOR
JMP ENDIF
DO_B:
// By / 2
LIR0 BY
LDR1 2
DIV
SDR0 TMP_Y
// Bx / 2
LIR0 BX
LDR1 2
DIV
SDR0 TMP_X
LDR0 10
SDR0 COLOR
JMP ENDIF
DO_C:
// Cy / 2
LIR0 CY
LDR1 2
DIV
SDR0 TMP_Y
// Cx / 2
LIR0 CX
LDR1 2
DIV
SDR0 TMP_X
LDR0 11
SDR0 COLOR
ENDIF:
// HPT_Y = PTy / 2
LIR0 PTY
LDR1 2
DIV
SDR0 HPT_Y
// HPT_X = PTx / 2
LIR0 PTX
LDR1 2
DIV
SDR0 HPT_X
LIR0 TMP_Y
LIR1 HPT_Y
ADD
SDR0 PTY
LIR0 TMP_X
LIR1 HPT_X
ADD
SDR0 PTX
LIR1 PTY
LIR0 PTX
PLOT COLOR: 15
JMP START
HALT
AY: 0
AX: 0
BY: 0
BX: 0
CY: 0
CX: 0
PTY: 0
PTX: 0
TMP_Y: 0
TMP_X: 0
HPT_Y: 0
HPT_X: 0