-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathcheatsheet.rtf
133 lines (133 loc) · 4.32 KB
/
cheatsheet.rtf
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
{\rtf1\ansi\ansicpg1252\deff0\deflang5129{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sl240\slmult1\lang9\b\f0\fs18 Addresses:\par
\b0 0000=A, 0001=B, 0002=X, 0003=PC\par
0200=Output\par
0201, 0202 & 0203=Flags A, B & X, b1=Carry, b0=Overflow\par
0377=Input\par
\par
\b Op-codes: octal PQR\par
\b0 ----Bit Test & Manipulate----\par
P-- -Q- --R\par
0 = Set 0 (bit number)\par
1 = Set 1 \par
2 = Skip 0 2\par
3 = Skip 1 \par
\par
----Shifts/Rotates---- (one byte)\par
P-- -Q- --R\par
0 = Rt Shift 0 = A:4\par
1 = Rt Rot 1 = A:1 1\par
2 = Lt Shift 2 = A:2\par
3 = Lt Rot 3 = A:3\par
4 = B:4\par
5 = B:1\par
6 = B:2\par
7 = B:3 (bits)\par
\par
----Misc---- (one byte)\par
P-- -Q- --R\par
0 = Halt (don't care) 0\par
1 = Halt \par
2 = NOP \par
3 = NOP \par
\b 360 = System extension\par
\b0 \par
----Jumps----\par
P-- -Q- --R\par
0 = A\par
1 = B\par
2 = X\par
3 = Unc 3 != 0\par
4 = JPD 4 == 0\par
5 = JPI 5 =< 0\par
6 = JMD 6 >= 0\par
7 = JMI 7 > 0\par
\par
----Or, And, LNeg----\par
P-- -Q- --R\par
3 0 = Or\par
1 = (NOP)\par
2 = And\par
3 - LNeg 3 = Const\par
4 = Mem\par
5 = Ind\par
6 = Idx\par
7 = Ind/Idx\par
\par
----Add, Sub, Load, Store----\par
P-- -Q- --R\par
0 = A 0 = Add \par
1 = B 1 = Sub\par
2 = X 2 = Load\par
3 = Store 3 = Const\par
4 = Mem\par
5 = Ind\par
6 = Idx\par
7 = Ind/Idx\par
\par
\b Address modes; LDA b STA b\par
\b0 3 Const: A=b Immed: (over-write b)\par
4 Mem: A=[b] [b]=A\par
5 Ind: A=[[b]] Defer: [[b]]=A\par
6 Idx: A=[b + X] [b + X]=A\par
7 Ind/Idx: A=[[b] + X] [[b] + X]=A\par
Bit Test & Manipulate op-codes are only Mem mode.\par
\par
\b Jump Modes; jmp b\par
\b0 4 jmp direct: PC=[b]\par
5 jmp indirect: PC=[[b]]\par
6 jmp direct & mark: [b]=PC+2, PC=[b]+1\par
7 jmp indirect & mark: [[b]]=PC+2, PC=[[b]]+1\par
\par
\b System Extension ("NOOP" 0360)\par
\b0 Index in A, b7 clear = read into B, b7 set = write to B\par
A=\par
000..007 : DS1307 RTC registers;\par
sec,min,hr-24,day,date,month,year,ctrl (BCD).\par
010 : Flags; \par
b0 set = buttons toggle bits.\par
011: EEPROM Page Map.\par
012..016: User data.\par
017: Control auto-run (see Buttons at Power On).\par
020: Control LEDs; Read N/A. \par
Write b0:INP,b1:ADDR,b2:MEM,b3:RUN,b4-b7=~PWM.\par
021: Random; Read 0..255, write <seed> or 0.\par
022: Sleep; Read N/A. Write=delay in ms.\par
023: Serial byte; @38400baud.\par
0177: Extensions enabled; Reading sets A=0 \par
\par
\b Buttons\par
\b0 STOP+CLR: All LEDs off.\par
CLR+STOR: Zero memory, PC=004, address=004, reset speed.\par
STOP+BitN: Loads pre-defined program:\par
0:\tab Simple counter\par
1:\tab Pattern\par
2:\tab Counting Clock\par
3:\tab BCD Clock\par
4: Binary Clock\par
5:\tab Das Blinken Lights\par
6: Sieve of Eratosthenes\par
7:\tab Set RTC (A=HH, B=MM)\par
BitN+STOR: Write memory to EEPROM page N.\par
BitN+READ: Reads memory from EEPROM page N. Default pages\par
0:\tab 256\par
1:\tab 256\par
2:\tab 128\par
3:\tab 128\par
4:\tab 64\par
5:\tab 64\par
6:\tab 64\par
7:\tab 64\par
STOP+READ: System Extension read. Index is address, result in Output.\par
STOP+STOR: System Extension write. Index is address, value from Input.\par
BitN+STOP: Set CPU speed. Cycle delay=2^N ms.\par
BitN+DISP/SET: Send/receive program memory at baud N (0/1/2/3=4800/9600/19k2/38k4)\par
\par
\b Buttons at Power On\par
\b0 STOP & BitN: auto-run built-in program N.\par
READ & BitN: auto-run from EEPROM slot N.\par
STOP : turn auto-run off.\par
STOP & CLR : reset configuration to defaults.\par
\par
}