Forums - Open Redstone Engineers
Introducing /autoprogram - Printable Version

+- Forums - Open Redstone Engineers (https://forum.openredstone.org)
+-- Forum: Announcements (https://forum.openredstone.org/forum-102.html)
+--- Forum: Announcements (https://forum.openredstone.org/forum-7.html)
+--- Thread: Introducing /autoprogram (/thread-5301.html)



Introducing /autoprogram - mort96 - 12-17-2014

Hi! I've added a command to OREUtils called /autoprogram. The purpose of the command is to let you programmatically create instructions for how to program a CPU's program memory.

Update: I just made some changes to the command and associated file format. The video which was linked here is thus wrong, and was removed. I will create a new video explaining the updated format soon.


RE: Introducing /autoprogram - LordDecapo - 12-17-2014

I love this... loves this so much.


RE: Introducing /autoprogram - AFtExploision - 12-19-2014

Truly a perfect solution


RE: Introducing /autoprogram - Xray_Doc - 12-19-2014

Thanks mister


RE: Introducing /autoprogram - tokumei - 12-19-2014

Why does no one delete the flippin' spam? Especially when it's two pages long.


RE: Introducing /autoprogram - Magic :^) - 12-29-2014

maybe i missed it in the video, but how do you/autoprogram know what orientation the data will be in when pasted? e.g. will it go north south east or west?


RE: Introducing /autoprogram - Apuly - 12-29-2014

I'm guessing it's based on your orientation.


RE: Introducing /autoprogram - Magic :^) - 12-29-2014

cool beans, I'm definitely parsing my programs into this .prog format in the near future ^^


RE: Introducing /autoprogram - Promethean - 12-30-2014

Does it handle three-dimensional arrays if the .prog has both ; and | characters? Because if so, it looks to me like an alternative to //schem load in many cases (with the advantages of knowing which air blocks erase existing blocks and which ones don't, and being already defined for block IDs above 255). Also, can it set the 4-bit block-data field? (I'm experimenting with fence gates as a storage medium.)


RE: Introducing /autoprogram - Apuly - 12-30-2014

Looking at the video, it can handle 3 dimension, it just wasn't demonstrated in the video, so you can use it as an alternative to //schem load. I just don't think it's a good alternative, because the importing and exporting of files would be a pain in dah bum.

Frankly, I am not sure if it supports block-data. Personally I think that the additional data is added based on your orientation.


RE: Introducing /autoprogram - Magic :^) - 12-31-2014

The orientation part does have an advantage over schematics though. Also i think this is a much easier format to understand than a .schem file


RE: Introducing /autoprogram - Phase - 01-06-2015

I'd love to see this evolve into a schem loader.


RE: Introducing /autoprogram - mort96 - 01-07-2015

I just made some changes to this command and the associated format. Backwards compatibility was broken, but the format is now way more versatile; you can assign metadata to blocks, you can rotate torches and other rotatable blocks relative to the player's rotation, and the format is just generally more flexible. I'll create a new video soon to explain the changes.


RE: Introducing /autoprogram - LordDecapo - 01-07-2015

Yayayayayayayayyaayayyayayayaya. Thanks u mort!!


RE: Introducing /autoprogram - Magic :^) - 01-07-2015

^ what lord said


RE: Introducing /autoprogram - Magic :^) - 02-19-2015

Do you have a list of the autoprogram syntax stuffs?
I wanna make a binary -> autoprogram template thing.
I can make do without the syntax for now, but it would be nice to have it in case I make the wrong assumptions on how autoprogram handles the data. I'd also like to make sure that none of the templating syntax clashes :3

Also: any intention on making it compatible with 1.8? and/or could you link the source?


RE: Introducing /autoprogram - Chibill - 02-19-2015

I am going to work on it for 1.8 Magic.


RE: Introducing /autoprogram - Magic :^) - 02-19-2015

Big Grin could you give me the syntax or source code so I can work around the format? I don't want to have to use escape characters xD

EDIT: from the yt video it looks like autoprogram doesn't use bracket characters, so I'll use those.
() {} []

be graaand like


RE: Introducing /autoprogram - Magazorb - 02-20-2015

Hey mort, why not invest in some version control, it will let people maintain work on older versions even when you get newer versions rather then forcing them to restart if theirs a filesystem change.


RE: Introducing /autoprogram - Magic :^) - 02-20-2015

ahhhhhhhhhhhh

I looked at the yt video again, and it looks like that there is no support for vertically oriented words, and the ; and | type operators only go in one direction...

chi if you're adapting this, could you look into making it easier to navigate?

(I'm still making the templater either way though, I'm making good progress with the recursive parsing ^^)


RE: Introducing /autoprogram - Chibill - 02-20-2015

I could try... I might not even be able to get it working...


RE: Introducing /autoprogram - Magic :^) - 02-20-2015

(02-20-2015, 01:08 AM)Chibill Wrote: I could try... I might not even be able to get it working...

I could look at it too if you could link the source

I dunno how much help I'd be though, as I'm not big into Java..

EDIT:
You can make autoprogram a lot simpler if you want. My template parser can be heavily scripted so all you need to do is allow 1 block movement in 3 dimensions.
With that done, the programmer can use their own template for navigating bit widths and placing blocks etc.

The biggest requirement after that would be some kind of rotation support, or at least a way to declare custom block metadata so the rotation could be hardcoded. I could implement the rotation from my side via a command line argument before converting to autoprogram if need be.


RE: Introducing /autoprogram - Magic :^) - 02-21-2015

I've done did the thingay btw:
http://forum.openredstone.org/showthread.php?tid=5843&pid=35738


RE: Introducing /autoprogram - Magic :^) - 03-13-2015

My conversion program is pretty close to perfect now, I'm just dawdling about adding more non-essential features on a whim.

I wanna get some good documentation done with examples of autoprog templates and output but....

I have no idea where to find a decent explanation of how to use the autoprog format xD
I've pieced together the general syntax from the source code and that one youtube video, but I'd like some clarification on:
- how blocks are placed relative to your position
- how blocks are rotated relative to your position (and the limitations if any)
- how to define custom blocks and metadata for said blocks

also, there is no operator in the source code to do x -= 1
that's kinda important?