Jeg jobber foreløpig med å bygge en datamaskin av Redstone på kreativkartet, basert på Hack-arkitekturen beskrevet i boka
The Elements of Computing Systems (du kan lese den viktigste halvdelen av boka
her, men hvis du er interessert anbefaler jeg deg å skaffe hele boka).
Fremgang 05.03.2015:
Hvis du vil hjelpe til eller bare se på, kan du skrive
/warp redhack
.
Grensesnitt kontra implementeringStatus2. Boolsk aritmetikk
HalfAdderFullAdderAdd16Inc16ALU
3. Sekvensiell logikk
5. Dataarkitektur
- CPU
- ROM32K
- Screen
- Keyboard
- Memory
- Computer
overstrekk = allerede bygget
fet = bygges nå
Vi har rammet inn hver chip med rosa ull, og organisert dem i rekker etter kapittel.
I/OBoka sier at brukeren kan kommunisere med datamaskinen ved hjelp av en skjerm. Skjermen er 512 piksler bred og 256 piksler høy, og hver piksel representeres av 1 bit (dvs. svart-hvit). Skjermen er tilordnet alt dataminne fra og med 0x4000 til og med 0x5FFF. Dessverre vil en slik skjerm i Minecraft være ganske krevende, og for det meste ubrukelig. I stedet for skjermen, tilordnes dette minnet general-purpose I/O. Dette kan brukes til å koble datamaskinen til helt vanlige redstone-kretser, som dører, dispensere, lamper, knapper og til og med andre datamaskiner.
Det vil fortsatt være mulig å ta i bruk tastaturet i 0x6000.
ProgrammeringInstruksene datamaskinen forstår er godt dokumentert
her.
Det er også mulig å programmere datamaskinen i et språk kalt assembly, som er beskrevet
her. Poenget med assembly er å oversette maskinspråk slik at det er lettere å forstå for mennesker, samtidig som det har et grensesnitt som ligner maskinspråket. Derfor er assembly en 1-til-1-oversettelse, og det kan oversettes til maskinspråk ved hjelp av en assembler.
Det finnes også en Jack-kompilator for Hack-arkitekturen. Jack er et programmeringsspråk som ligner på Java. Det er enda lettere å forstå for mennesker enn assembly, men det ligner mindre på maskinspråk. Kompilatoren oversetter Jack-kildekode til Hack-maskinkode. Jack er dessverre beskrevet i den delen av boka som ikke er gratis, men om noen ønsker det skal jeg prøve å forklare etter beste evne.
Assembleren og Jack-kompilatoren finner du
her sammen med et program som lar deg kjøre Hack-maskinkode rett på PCen din og mange andre nyttige verktøy.
Det er verdt å merke seg at Redstone går for sakte til at datamaskinen kan gjøre noe særlig nytte for seg. Poenget med dette er ikke å gjøre det mulig å spille Minecraft på Minecraft, men å lære meg selv og (forhåpentligvis) andre hvordan datamaskiner virker og at det er mange likheter mellom Redstone og teknologien hverdagen vår er bygget på.
For å gi deg en liten idé om hvor treig den er: 10 ticks = 1 sekund. Adderen som brukes har en carry på 2 ticks. 16 slike skal kobles sammen, altså 32 ticks. Og det er bare adderen. Med multiplekserne kan det fort gå over 40 ticks per instruksjon. I den første modellen vil vi fokusere mest på størrelse, men vi planlegger å bygge en mindre kompakt modell med 0-ticks carry.