• 860 views, 1 today
  • 16 downloads, 0 today
  • 8
  • 2
  • 10
Monkeysaucer's Avatar Monkeysaucer
Level 25 : Expert Zombie
19
MinePod

An IPod In Minecraft


Hi, in my last blog post I said I was leaving the world of redstone. I think that's one of the stupidest things I've ever said. Since then, I've discovered neural nets, which will appear in another project soonish. I probably won't finish the RedAppe for another half year or more, though.

The MCedit schematic is just a part! Currently: Program Counter. Still needs some bug testing.

I've wanted to make a practical version of the RedAppe for a long time now, so I guess this is that. It uses a couple of the basic ideas in the RedAppe- jump-based inputs, and user freindliness. The MinePod is simple compared to the RedAppe, so most of the ideas don't apply. However, being simple means I will be able to build it in a matter of days rather than a matter of years.

Note: the schematic is just a part for now. Requests for schematics of specific parts are welcome.


The Cycle

1: program counter--> memory

2: address is selected

3: memory output--> output mux

4: data is either sent to the screen or executed

5: program counter+1 --> program counter (done using a clock)

If the program counter can't use a fast enough clock, I will simply double the cell size and deal with which half to execute upon output. It would be similar to the dual fetch idea for the RedAppe, but it would deal with the output differently.


ISA


The MinePod plays music, obviously. Each note is a command, which is stored in memory as a 7-bit value. I don't think it's necessary to write out every command, so I'll give a more general ISA:

0000000 Halt

0000001 Dispenser Noise

0000010 to 1111001 Note Block notes. There are 24 notes per note block, and 5 different types of note blocks (based on what block they are placed on.)

1111010 to 1111111 Spares. I avoided things like arrow shots or mob sounds (when playing on peaceful, mob eggs still cause the mob's sound to be played) because you have to refill those, which would seem less professional.

Based on context, the data may also be decoded as characters. It has op codes for the alphabet, comma, hyphen, space, colon, and other characters. I'll explain what I mean by "context" in another section.


Very little of the MinePod is used directly for the instruction set architecture. Real CPUs have many parts controlled by the op code decoder, such as an ALU, a jump circuit, a GPU, and a bus. However, the only components in the MinePod which are controlled by the op code decoder are the instruments and the screen.


The Song Location Register File

A register file is like a small RAM, but it isn't accessed in the same way as RAM. In the MinePod, the SLRF is used to select which song is to be played. There are 16 registers in it, so 16 songs can be stored. When you press the button corresponding to the song to be played, a register in the SLRF is selected, which outputs its data to the program counter. The clock is also started whenever you select a song to be played, so the song begins executing.


The Replay Register

The replay register is used to store data for the replay function. Replay might not be the best name for it, because you can use it to start a song from the beginning whenever you want.

When the SLRF outputs data, the data is also stored in the replay register, as well. When the user presses the replay button, the data in the replay register is sent to the program counter. Simple as that.


Before I explain the next available address register (labeled NAA) and how it interacts with the adder, it is necessary to explain how songs are downloaded. This is the part I am most proud of, because it has the potential to grow into a large component of the redstone community.

But before I explain that, I need to explain how the memory works. Because no data needs to be sent back to the memory during execution of a song, RAM would be unnecessary. Instead, ROM is used. That way, more memory can be fit into the chunk render distance. The MinePod will have almost a kilobyte of ROM (1024 7 bit cells, or 896 bytes). This would be a gigantic lag machine if RAM were used, although it still is, because insta-repeaters are needed for an acceptable cycle time (only in certain directions.)

To "download" songs, you can either program the ROM yourself, or you can download MCedit schematics of songs online. I'll probably use this idea in future builds, because it is the closest thing to an internet in minecraft- the real internet.

Whenever a new song is downloaded, you must also download a schematic of temporary ROM, which holds the length of the song. It might be easier to place torches where the temporary ROM goes, so it might not be necessary to download two schematics for one song.

You can delete the temporary ROM after you press the "new song downloaded" button.



The Next Available Address Register

The next available address register holds the next available address, as the name implies. Whenever a new song is downloaded, the user must press the "new song downloaded" button. This causes the NAA to send its data to the SLRF, which stores the data in its lowest unused register. After that happens, the adder adds the data in the NAA and the data in the temporary ROM, and sends that data back to the NAA.

The Timing Circuit
Just used to time the operations done by the NAA correctly.

I think I should note that all of the MinePod's registers, besides the program counter, don't have a few of the bits. This is because ROM is a physical circuit, so the ROM is divided into layers. This isn't really necessary to know to understand how the MinePod works.

User Freindliness
Each song has a name, which the user types on the sign above the button used for that song. The name is also displayed on the screen. When a song first begins, the output mux sends data to the screen rather than the instruments. After a command appears which marks the end of the name, the mux begins to send data to the instruments.
A user manual, a programmers manual, and a technical manual will be included in the final version. These will go into depth about things like "where should I place the ROM?," "What are the exact op codes for the notes?," and "How does the SLRF work?"

To-Do List:
1x=built
2x=bug tested

-program counter x
-ROM
-NAA/Adder/timing circuit/temp. ROM
-SLRF
-screen/screen inputs
-instruments/decoder
-everything else

Thanks for viewing this!, much appreciated.

CreditI'm going to use a full adder called alternative adder on the wiki (I think it's made by Howlingmonkey)
Progress35% complete
Tags

1 Update Logs

Update #1 : by Monkeysaucer 11/04/2012 6:39:03 pmNov 4th, 2012

I'm on a small server now, so I'm starting this project again to build on the server. Built most of the note decoder.

Create an account or sign in to comment.

1
11/04/2012 10:42 pm
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Looks interesting ! :) I'm going to check it out.
1
11/04/2012 10:52 pm
Level 25 : Expert Zombie
Monkeysaucer
Monkeysaucer's Avatar
Thanks.
1
07/29/2012 10:27 am
Level 37 : Artisan Artist
tynnoel99
tynnoel99's Avatar
Good you are back.
I became a bit worried when you said you leaved.
Good luck!!!
1
07/30/2012 9:06 am
Level 25 : Expert Zombie
Monkeysaucer
Monkeysaucer's Avatar
Thanks.
1
07/24/2012 7:36 am
Level 18 : Journeyman Miner
Phrozenbit
Phrozenbit's Avatar
Nice project, looks promising just like the RedAppe. Glad to hear you will be finishing RedAppe someday, doesn't matter how long it takes :-) And, welcome back :-)
1
07/24/2012 4:33 pm
Level 25 : Expert Zombie
Monkeysaucer
Monkeysaucer's Avatar
Thanks, I tried to make it similar to the RedAppe in a way, and it worked well. Yeah, I doubt I'll ever finish the RedAppe 2.
1
07/23/2012 8:31 pm
Level 36 : Artisan Bunny
CloudPhantom
CloudPhantom's Avatar
Woot! You is back~
1
07/23/2012 9:43 pm
Level 25 : Expert Zombie
Monkeysaucer
Monkeysaucer's Avatar
Yeah, I'm dang happy to be back!
1
07/23/2012 9:45 pm
Level 36 : Artisan Bunny
CloudPhantom
CloudPhantom's Avatar
Cant wait until this is done, sounds really cool~
1
07/24/2012 4:32 pm
Level 25 : Expert Zombie
Monkeysaucer
Monkeysaucer's Avatar
Thanks.
Planet Minecraft

Website

© 2010 - 2024
www.planetminecraft.com

Welcome