~g1n's blog

~g1n's blog

GRU Devlog 16 - ormp and EGG

November 14, 2021 — G1n

This week i was working on one more new project - ormp. It will be terminal multiplexor. Currently i am doing it in ncurses. For current time it is not working - can just handle input but not display it.

Also i have an idea for new projects - EGG (Extended/Exciting GRU GUI). I am planning some proj in this category - eggwm, eggterm, eggmenu and E. E would be a new display server. We will need to have it for Orion in future. Currently i am planning to do it or on fbdev or on DRM/KMS.

Also now yemu can be compiled with different compilers, -pedantic flag was added to makefile and all errors fixed.

And now our channels are bridged via matterbridge: irc on ~chat, irc on libera and xmpp muc.

Hope you liked this post! If you would like to help us, contact me via email, xmpp or irc :)

tags: gru, ormp, egg, yemu, xmpp, irc

GRU Devlog 15 - ocpu, yemu and licenses

November 07, 2021 — G1n

This week wasn’t very productive. I was working on one of my personal projects.

I have added ADD for registers, INC, DEC and NOP instructions.

Also codeberg informed me that yemu has to have license, and I fast added MIT license to all our projects.

Hope you liked this post! If you would like to help me, contact me via email, xmpp or irc :)

tags: gru, ocpu, yemu, license

GRU Devlog 14 - ocpu and yemu

October 31, 2021 — G1n

This week I was working on ocpu emulator. So using it we can know if specifications can be implemented. It helps me adding some description to it.

First I made yemu a bit modular, so you need to add several lines to main file and then building your emulator based on template (that should be placed in docs one day). Now if someone would like to add some architecture to our emulator they won’t need to rewrite it from scratch.

I also added –system flag to yemu so architecture can be choosen more user-friendly way.

Currently in ocpu emulator only mov and add instructions are implemented. We also added some description to commands in specifications, so it is easier to understand what it should do

Hope you liked this post! If you would like to help me, contact me via email, xmpp or irc :)

tags: gru, yemu, ocpu

GRU Devlog 13 - ocpu thoughts and some elecronics

October 24, 2021 — G1n

This week was very busy week at school and I had no time for programming.

But in the start of week I was thinking about making ocpu specs more Turing-complete. I still think it is not done but maybe it will in some time (and of course more description required).

But I had time to buy some transistors and other electronics. Currently I am trying to make half-adder.

I have created tiny log page - lolcpu. I am going to post there some of my electronic ideas, circuits and progress in doing some electronic things.

Hope you liked this post! If you would like to help me, contact me via email, xmpp or irc :)

tags: gru, lolcpu, ocpu, transistors, electonics

GRU Devlog 12 - yemu, gasm and ocpu

October 17, 2021 — G1n

This week I have done several new instructions for yemu. For example all transfer instructions.

Also I have rewritten gasm to support 6502, published it and it should help me with debugging yemu. It supports not very a lot instructions but I hope it is good start.

But I think the coolest what I did this week is ocpu proccessor specification. Currently it is draft but i have already published it here. I hope this specifications will be Turing complete and we will try to implement it in real world. But firstly we need to make this specififcations complete, assembler and emulator for it.

Also smlckz’s idea was to make translator from ocpu assembler instructions to avr to emulate it on arduino!

Hope you liked this post! If you would like to help me, contact me via email, xmpp or irc :)

tags: gru, yemu, gasm, ocpu

GRU Devlog 11 - yemu and channel on libera.chat

October 08, 2021 — G1n

I am making this devlog a bit earlier, because I will be busy on weekends.

This week I didn’t have plan, but it seems I have done some things to yemu: added loading programs from binary file and several instructions - TAX, TAY and NOP.

I think gasm will be made for 6502 firstly, because it is easier then x86 and it would help in testing yemu.

I was trying to make some daily notes in Org Roam (and moved devlog notes there), but it wasn’t very success, but I hope to do it more often :)

Also I have registered #gru channel on libera, so you can join us also on libera.chat :)

Hope you liked this post :). If you would like to help me, contact me via email, xmpp or irc :)

tags: gru, yemu, libera, org-mode, org-roam

GRU Devlog 10 - orsh now like proper shell and gasm

October 03, 2021 — G1n

Hooray! Today is 10’s GRU Devlog! :)

This week i was trying to make notes to org document, to not forget something and put TODOs there for future weeks.

First several days was the most valuable - readline support and signal handling! This means you can use emacs-like bindings there (but i think readline also supports vi bindings, so maybe i will add them too!)

Also we now have very minimal completion support there :), but still proper function need to be added for that (currently only filenames completion)

Orsh also has one session history, so you don’t need to rewrite command from scratch now

And I have started to use it as my main (but had some problems after chsh, so currently is autostarts after bash and i can exit from there any time i will need)

Then I have started making our own assembler - gasm. Currently it only supports NOP, so i haven’t published it yet.

This week I also registered to ~news and shared devlog there (i think this devlog also will be there ;) ) If you have lobste.rs account please contact me to invite me, if you can, because it may advertize GRU more!

Today (Sunday) we had first testing GRU meeting via Jitsi. Thanks to r1k for joining. We need to make something like plan our schedule (to know about what to speak) and discuss meeting time better.

Hope you liked this post and you will join our XMPP muc (if you are not already there) :). If you would like to help me, contact me via email, xmpp or irc :)

tags: gru, org-mode, gasm, orsh, meeting, lobste.rs, tilde.news

GRU Devlog 9 - orsh, orion, bootloader, GRU xmpp room and logo

September 26, 2021 — G1n

This week I didn’t commited a lot, but started some new projects. I made orsh signal handling working (so it won’t exit on ^C) and homedir “handling” (can replace homedir in prompt with ~, and you can use ‘cd ~’ or just ‘cd’ to change dir to homedir)

Also I started making bootloader, but for now it can only detect what CPU is (intel if x86 and amd if x86_64), some additional instructions (msr) and if apic is avalible.

I was trying to make something with orion fs, maybe it will use pak files for initrd. Currently i am making archiver for it, but after that i will need to understand more how vfs working and rewrite initrd to use pak files.

We now have xmpp room (gru@conference.hmm.st) and logo! Thanks to chunk for it!

I was thinking about making weekly or monthly “conferences”. We could do it via jitsi tildeverse instance or tilde.tel (tel.tilde.org.nz) conference. I think jitsi is better, but we should try tilde.tel confernce at least once, why not? :)

Hope you liked this post and you will join our XMPP muc :). If you would like to help me, contact me via email, xmpp or irc :)

tags: gru, orion, orsh, xmpp, tilde.tel, jitsi

GRU Devlog 8 - orsh and published initrd

September 19, 2021 — G1n

This week I have published initrd, but it is not working as expected.

Also I have started one more project - orsh. It is one more shell, but now in C. Maybe it will be easier to port to Orion. It already supports ; but they are working a bit weird.

Also in orsh you can work with environment variables. From today’s morning I am trying to replace bash with it, but still a lot need to be done.

Hope you liked this post and if you would like to help me, contact me via email, xmpp or irc :)

tags: gru, orsh, orion

GRU Devlog 7 - keyboard, paging and WIP initrd in Orion

September 12, 2021 — G1n

This week I was improving Orion. First I made keyboard working, next day paging! Also I have added several new LibC functions. Today I have made scrolling working.

Last few days I was trying to make initrd working (this required heap implementing so I also did that but I don’t know if it works correctly). Currently it can only output /dev directory.

But I made something wrong with %x in printf and it can display weird chars first and then contents of files!

Hope you liked this post and if you would like to help me, contact me via email, xmpp or irc :)

tags: gru, orion