Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Solra Bizna

[MC1.7.10][OC1.5.x]ARM Architecture "OC-ARM" (alpha, updated 2016-06-07)

Recommended Posts

If it's glitching even with other architectures, something else is going on.

As for the extra 8 bytes... something is going wrong involving the echo command. Edit the makefile again, replacing both occurrences of "@echo -n" with "@/bin/echo -n", then do "make clean" and "make". If it works, tetris.rom will be 4093 bytes, and will work.

Link to post
Share on other sites

If you look at tetris.rom in a text editor (or put it into a Lua computer) you'll see that it's actually also a valid Lua BIOS, which throws an error saying something like "this EEPROM is not compatible with the Lua architecture". The Makefile uses the "echo" command to assemble that. It passes the "-n" flag to echo, to say "don't add a newline to the end of your output". Your Make (possibly because it was BSD Make and not GNU Make?) was interpreting it as something to echo, rather than a command line flag.

Link to post
Share on other sites

ok, so that fixed the error where it crashed entities in the world, for some reason. getting further. i have been tinkering with it and when i get to my destination i will do some research on what i big-endian ARM ELF file is and why its complaining about it not being executable. i  want to try to figure this one out before i come crawling back asking for help. i think this is a simple error

Link to post
Share on other sites

For whatever reason, your test.elf is not getting the EF_ARM_HASENTRY flag set. This is weird. It's correctly marked as big-endian---that error message does not indicate that it's not big-endian, but that it is unusable for whatever reason. (Not being big-endian would be one such reason.)

I don't know why EF_ARM_HASENTRY is not being set, because the entry point field in the header is being set. I'll have to do more research into this; for now, you can modify your boot0 to not care about that flag by changing line 149 of boot0.s from:

        LDR r1, =0x00800002
to:

        LDR r1, =0x00800000
Don't forget to recompile and re-flash it afterwards.

I don't think this is a viable long-term fix, because some ELF files will not have EF_ARM_HASENTRY set for good reasons. We wouldn't want to try to boot a library file, for example. This should get you up and running for now, though.

Link to post
Share on other sites

ok, it looks like it would be in the best interest for me to stop asking for help so you can work on getting 0.0a3 out so that these problems can stop. and i don't know anything about a what ever undefined error i am getting. i am going to look and see if i can find anything in the code that immediately smacks me in the face. it wouldn't matter the components i am using would it. if it would i am running a t3 case, t3 processor , t3 GPU, t3 case, 2x t3 Hdd's, and 2x t3.5 memory cards

Link to post
Share on other sites

ok, it looks like it would be in the best interest for me to stop asking for help so you can work on getting 0.0a3 out so that these problems can stop. and i don't know anything about a what ever undefined error i am getting. i am going to look and see if i can find anything in the code that immediately smacks me in the face. it wouldn't matter the components i am using would it. if it would i am running a t3 case, t3 processor , t3 GPU, t3 case, 2x t3 Hdd's, and 2x t3.5 memory cards

test.elf requires the "allowSerialDebugCP" option in OpenComputers-ARM.cfg to be set. Otherwise, all the CP7 instructions are undefined, and test.elf will immediately crash.

 

second question. where did you learn how to do all this? if you don't mind me asking

Just by continuously trying stuff, and learning from when the stuff didn't work. After a while, stuff started working more often than not working.
Link to post
Share on other sites

yup, looks good to me

 

thanks for the link. i am going to read up on that and read up a bit on the mod as well, at least more then i already have

if i just want to print to the screen do i have to go through all the trouble of loading the GPU or can i do it the simple way. by loading numbers into registers and my string into a register then calling a Software interrupt? or will this not work in OC

Link to post
Share on other sites

wow, bad luck comes a dime a dozen these days huh. (not going to go into detail for reason). I'm gonna ask this question then when i am not 12 hours past the time i should have fallen asleep i will comeback and find that i missed a post explaining it all, but i am going to ask anyway. what program are you using to build the simulator. i have access to the files from you git post but either I'm missing something or (i PRAY not) i assume your using eclipse?

Link to post
Share on other sites

I build the simulator using Eclipse, but the project is not included. (I am not at all comfortable with blindly committing the huge array of cache files and metadata files and such that come with an Eclipse project. I can't prove to my satisfaction that I wouldn't be inadvertantly commititng something covered by an NDA.)

It should be pretty easy to set up an Eclipse project to build it. Exclude the ocarm folder (right click it and "close", or something) and set the launch class to name.bizna.ocarmsim.OCARMSim.

Edit: You'll also need to add the OpenComputers API to the build path in order for it to build.

In any case, you don't have to build it yourself to use it. There should be a working .jar of the simulator under Releases.

Link to post
Share on other sites

Thanks, that saved me ALOT of time. also like i said, i knew i was going to miss something :D. this is the kinda tool that i learn most with. it gives a read out of what my last line of code did (at least from my understanding of the pics you sent earlier). i didnt even see the releases page. my bad thanks for telling me before i started the eclipse program again. i know its part of java but i simply hate that program.

P.S. Your First Github link is broken. gives me luke squidwalker or whatever that dude is followed by 404

Link to post
Share on other sites

It currently requires command line arguments. At the minimum, an argument pointing to the EEPROM image to use.

Arguments I used when testing Tetris:

-rom /home/sbizna/jarmrom/bin/tetris.rom -screen 2
Arguments I used when testing the Lua interpreter:

-rom /home/sbizna/jarmrom/bin/boot0.rom -screen 2 -memory 1024 -fsro /home/sbizna/nobackup/openos_floppy/ -fsrw /home/sbizna/nobackup/lua_test_disk/ -addrinfocmd "arm-none-eabi-addr2line -spfe /home/sbizna/luajarm/bin/lua52.elf.unstripped"
If you run it without any arguments, it'll print a usage string giving the meanings of all the arguments.
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.