ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
ram addressbinaryname@namedescription
2
#0%000000alu input A@aluA
the first input for the ALU
3
#1%000001alu input B@aluB
the second input for the ALU
4
#2%000010alu mode@aluMode
settings for the ALU. See alu mode refrence for more info
5
#3%000011alu output@aluOut
the output for the ALU
6
#4%000100jump@jump
write to here to jump to a different line of code
7
#5%000101user input/output@userIO
write to set the output, read to set the input. Doesn't automatically pause the computer to wait for user input this has to be done manually, but is not neccecary.
8
#6%000110lognet own address@netOwnAddr
the address of the comuter for recieving.
9
#7%000111
lognet send to address
@netSendAddr
the address of the device a message should be sent to
10
#8%001000lognet data to send@netSendData
write to specify the data that should be sent. sends the message when it is being written to
11
#9%001001lognet got data@netGotData
the first bit (least significant, on the right) specifies if a message has been recieved scince the last time @netRecData has been read from. The second but is a setting. by default (0) it says that a halted computer should resume automatically when a message has been recieved. if set to 1, this feature is turned off.
12
#10%001010lognet recieved data@netRecData
the recieved data can be read form here
13
#11%001011disk address@diskAddr
specifies the selected address of the disc read/write (temporarily stops the computer for 0-6secs to load data from the timer memory)
14
#12%001100disk data to write@diskWriteData
write here to write some data to the disk (temporairly stops the computer for 0-6 secs to write the data to the timer memory)
15
#13%001101disk read data@diskReadData
read form here to read the data (does not pause the computer, scince this data is already being loaded when @diskAddr is changed)
16
#14%001110stack write data@stackWrite
writes a byte to the stack and increments the stack counter
17
#15%001111stack read data@stackRead
read a byte from the stack en decrements the stack counter
18
#16 and over%010000regular memory-
regular memory for programs and variables (there are 48 bytesof regular memory)
19
20
the alu mode bytes is subdivided in 3 parts: %CCCBAAAA
21
AAAA (4 bytes) is the mode of the calculation (se table for more info)
22
when B is set to 1, the computer halts/pauses. This is handy to turn the compyter off when a program is complete, or to give the user time to enter a value in the input
23
CCC is the if-condition for jumping (see the table for more info)
24
25
26
mode of the calculation
27
valuebinarynameused inputsdescription
28
#0%0000addalu A, alu Badds A and B
29
#1%0001subtractalu A, alu B
subtracts B from A (A-B) (will be negative/overflow when B>A)
30
#2%0010andalu A, alu B
will and each bit of A and B individually, and put these anded bits in the output byte.
31
#3%0011oralu A, alu B
same, except its for OR
32
#4%0100xoralu A, alu B
same, except its for XOR
33
#5%0101notalu A
just inverts aluA, without caring about aluB
34
#6%0110nandalu A, alu B
will and each bit of A and B individually, nand put these anded bits in the output byte.
35
#7%0111noralu A, alu B
same, except its for nor
36
#8%1000nxoralu A, alu B
same, except its for nxor
37
#9%1001shift rightalu A
shifts all bits in aluA to the right (least significant bit) once, and puts this in the output
38
#10%1010
shift right + wraparound
alu A
same, except the first bit that would normally dissapear will now wrap around back to the left (most significant bit)
39
#11%1011shift leftalu A
same as shift right, except in the other direction
40
#12%1100
shift left + wraparound
alu A
same as shift right, except in the other direction shift right + wraparound, except in the other direction
41
#13%1101flip aalu A
flips all the bits in alu A to the other side of the byte, so for example %00110110 becomes %01101100
42
#14%1110delete a partalu A, alu B
deletes (sets to 0) the left (most significant) par of aluA. The amount of bits is specified with the aluB input. This of course shouldn't be more than 8.
43
#15%1111randomisernothing
a time-based randomiser that is always random. cannot be controlled. always random.
44
45
46
if-condition for jumping
the jump instruction will only work if the selected if-condition returns true
47
valuebinarynameused inputsdescription
48
#0%000always true-
always true, its the default if-condition
49
#1%001a<balu A, alu Btrue if A<B
50
#2%010a=balu A, alu Btrue if A=B
51
#3%011a>balu A, alu Btrue if A>B
52
#4%100a=0alu Atrue if A=0
53
#5%101alu out=0alu out
true if alu out=0
54
#6%110alu under/overflowallu carry out
true if the alu under/overflows
55
#7%111LSB of Aalu A
true if A is odd, which is the same as the right bit of A being 1
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