Published Aug 17th, 2014, 8/17/14 5:22 pm
- 2,944 views, 2 today
- 184 downloads, 0 today
75
This is Blue Wave; My first redstone computer built by me!
It took 3 months to build and I have been livestreaming every second of the built!!!
the computers specs include:
256 RAM locations (each location is 2 Bytes)
256 ROM locations (each location is ~4 Bytes)
16 General Purpose Registers
8 level Stack
1 programmable I/O port
Easy-to-Use Interface
Clock speed of 20 seconds per cycle
and finally a 12 function 10 flag 8 bit ALU based off the z8085 Microprocessor
kindly revere-engineered by ken sherriff (http://www.righto.com/2013/01/inside-alu-of-8085-microprocessor.html)
Download link includes Instruction set and user manual!
Some prewritten programs I made for the computer and their memory locations:
*/ BASIC BLINK /*
AD OP DX | MNUMONIC
00 B1 00 | Port Mode 00 (all outputs)
01 31 00 | MovIR 1 00
02 30 01 | MovIR 0 01
03 44 10 | Inc 1
04 4C 01 | And 0 1 (result stored in 0)
05 B2 00 | Port 0
06 4E 02 | Jmp 02
------------------------------------------------------------------------------------------------
*/ FIBONACCI COUNTER /*
AD OP DX | MNUMONIC
10 B1 00 | Port Mode 00 (all outputs)
11 30 01 | MovIR 0 01
12 31 00 | MovIR 1 00
13 B2 00 | Port 0
14 20 18 | MovRM 0 18
15 42 01 | Add 0 1 (result stored in 0)
16 11 18 | MovMR 1 18
17 4E 13 | Jmp 13
18 00 00 | Noop (allocated for data)
------------------------------------------------------------------------------------------------
*/ COUNTDOWN /*
AD OP DX | MNUMONIC
20 B1 00 | Port Mode 00 (all outputs)
21 30 03 | MovIR 0 03
22 B2 00 | Port 0
23 45 00 | Dec 0
24 C1 22 | Jmp 22 if ZF=False
25 FF 00 | Stop Program
------------------------------------------------------------------------------------------------
*/ SQUARE-ROOT CALCULATOR /*
(register 0 must be initialized with the number being square rooted)
(this program is bugged! still working on a fix)
AD OP DX | MNUMONIC
30 B1 00 | Port Mode 00 (all outputs)
31 35 04 | MovIR 5 04
32 4F 37 | Cal 37 (squareroot algorithm)
33 45 50 | Dec 5
34 C1 32 | Jmp 32 if ZF=False
35 B2 10 | Port 1
36 FF 00 | End Program
37 47 00 | Rotate Left 0
38 47 00 | Rotate Left 0
39 34 03 | MovIR 4 03
3A 4C 40 | And 40 (result stored in 4)
3B 47 20 | Rotate Left 2
3C 47 20 | Rotate Left 2
3D 92 FC | AndI 2 FC
3E 49 24 | Or 24 (result stored in 2)
3F 41 31 | MovRR 31
40 47 30 | Rotate Left 3
41 47 30 | Rotate Left 3
42 93 FC | AndI 3 FC
43 83 01 | OrI 3 01
44 47 10 | Rotate Left 1
45 91 FE | AndI 1 FE
46 46 24 | CompareRR 24
47 BE 4A | Jmp 4A if LT=False
48 43 24 | Sub 24 (result stored in 2)
49 81 01 | OrI 1 01
4A B0 00 | Ret
Hope you enjoy!
-n00b_asaurous
It took 3 months to build and I have been livestreaming every second of the built!!!
the computers specs include:
256 RAM locations (each location is 2 Bytes)
256 ROM locations (each location is ~4 Bytes)
16 General Purpose Registers
8 level Stack
1 programmable I/O port
Easy-to-Use Interface
Clock speed of 20 seconds per cycle
and finally a 12 function 10 flag 8 bit ALU based off the z8085 Microprocessor
kindly revere-engineered by ken sherriff (http://www.righto.com/2013/01/inside-alu-of-8085-microprocessor.html)
Download link includes Instruction set and user manual!
Some prewritten programs I made for the computer and their memory locations:
*/ BASIC BLINK /*
AD OP DX | MNUMONIC
00 B1 00 | Port Mode 00 (all outputs)
01 31 00 | MovIR 1 00
02 30 01 | MovIR 0 01
03 44 10 | Inc 1
04 4C 01 | And 0 1 (result stored in 0)
05 B2 00 | Port 0
06 4E 02 | Jmp 02
------------------------------------------------------------------------------------------------
*/ FIBONACCI COUNTER /*
AD OP DX | MNUMONIC
10 B1 00 | Port Mode 00 (all outputs)
11 30 01 | MovIR 0 01
12 31 00 | MovIR 1 00
13 B2 00 | Port 0
14 20 18 | MovRM 0 18
15 42 01 | Add 0 1 (result stored in 0)
16 11 18 | MovMR 1 18
17 4E 13 | Jmp 13
18 00 00 | Noop (allocated for data)
------------------------------------------------------------------------------------------------
*/ COUNTDOWN /*
AD OP DX | MNUMONIC
20 B1 00 | Port Mode 00 (all outputs)
21 30 03 | MovIR 0 03
22 B2 00 | Port 0
23 45 00 | Dec 0
24 C1 22 | Jmp 22 if ZF=False
25 FF 00 | Stop Program
------------------------------------------------------------------------------------------------
*/ SQUARE-ROOT CALCULATOR /*
(register 0 must be initialized with the number being square rooted)
(this program is bugged! still working on a fix)
AD OP DX | MNUMONIC
30 B1 00 | Port Mode 00 (all outputs)
31 35 04 | MovIR 5 04
32 4F 37 | Cal 37 (squareroot algorithm)
33 45 50 | Dec 5
34 C1 32 | Jmp 32 if ZF=False
35 B2 10 | Port 1
36 FF 00 | End Program
37 47 00 | Rotate Left 0
38 47 00 | Rotate Left 0
39 34 03 | MovIR 4 03
3A 4C 40 | And 40 (result stored in 4)
3B 47 20 | Rotate Left 2
3C 47 20 | Rotate Left 2
3D 92 FC | AndI 2 FC
3E 49 24 | Or 24 (result stored in 2)
3F 41 31 | MovRR 31
40 47 30 | Rotate Left 3
41 47 30 | Rotate Left 3
42 93 FC | AndI 3 FC
43 83 01 | OrI 3 01
44 47 10 | Rotate Left 1
45 91 FE | AndI 1 FE
46 46 24 | CompareRR 24
47 BE 4A | Jmp 4A if LT=False
48 43 24 | Sub 24 (result stored in 2)
49 81 01 | OrI 1 01
4A B0 00 | Ret
Hope you enjoy!
-n00b_asaurous
Progress | 100% complete |
Tags |
1 Update Logs
Better Documentation! : by n00b_asaurus 09/22/2019 11:57:29 amSep 22nd, 2019
It's definitely been a while since I've even looked at Bluewave, so when I decided to mess with it for fun, I realized I had completely forgotten how it worked. In this situation, I would normally go to the documentation for answers, but alas - I never made any.
With nothing better to do, I decided I was going to rectify that issue by reverse engineering the computer, and recording what I find.
Having figured out how it works though, I've been inspired to update the design. So that might be a future video. For the time being, this was my little adventure digging into the wires of Bluewave.
3040839
2
Create an account or sign in to comment.