-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathcheatsheet2.rtf
112 lines (112 loc) · 3.89 KB
/
cheatsheet2.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
{\rtf1\ansi\ansicpg1252\deff0\deflang5129{\fonttbl{\f0\fnil\fcharset0 Courier New;}}
{\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\sl240\slmult1\lang9\ul\b\f0\fs12 Addresses: Kenbak-uino\par
\ulnone\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
\ul\b Op-codes: octal PQR\par
\ulnone\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/4=A/B:4\par
1 = Rt Rot 1/5=A/A:1 1\par
2 = Lt Shift 2/6=A/B:2\par
3 = Lt Rot 3/7=A/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 \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 (address mode)\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 (address mode)\par
\par
\ul\b Address modes; LDA b STA b\par
\ulnone\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
\ul\b Jump Modes; jmp b\par
\ulnone\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
\ul\b System Extension ("NOOP" 0360)\par
\ulnone\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; 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
\ul\b Buttons\par
\ulnone\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: Simple counter\par
1: Pattern\par
2: Counting Clock\par
3: BCD Clock\par
4: Binary Clock\par
5: Das Blinken Lights\par
6: Sieve of Eratosthenes\par
7: 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,1: 256; 2,3: 128; 4,5,67: 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
}