What do you do if you have too much spare time? Building a very *simple* BASIC interpreter for your own OS... #osdev #x64 #baremetal
What do you do if you have too much spare time? Building a very *simple* BASIC interpreter for your own OS... #osdev #x64 #baremetal
Latest (very rough) version of the game is ready to test via browser (jsDOS).
=> https://smol.p1x.in/assembly/game12/game12.html
There is a placeholder tune, beware if you're using headphones ;)
F1- panning
F2- constructing rails
F3- switches
F4- not implemented yet
WORK-IN-PROGRESS
Current size (with that awful music): 6.8 KiB (6,972)
Having some fun (again) with bare metal OS programming. My evening task was scanning the PCI bus, and finding the network card. The next step would be now to write a "simple" network card driver...
Oh, and this code even works on my physical Lenovo W510 notebook :-) #computerscience #baremetal
Just rendered my first Vulkan triangle in raw x86-64 Assembly.
No C, no C++, no Rust.
Pure MASM64. Pure pain. Pure control.
This is what it means to go full bare metal.
More to come.
https://github.com/IbrahimHindawi/masm64-vulkan
Bootstrapping Soar on HTTP-Only Bare/Legacy Systems via /dev/tcp (a built-in feature for raw #TCP connections) #networking #docker #containers #baremetal #linux
Current progress of the game. Rat can collect floppies, brake flower pots. Points are added (BCD format).
Brooms are not doing anything now to the rat. All doors are closed. Those are next features to implement.
Added my classic floppy ASCII art.
// Old printout photo in the background. //
@lynze @gabriel @PapaFriki Otra sería no usar Docker, porque siempre son las instancias con Docker las que dan problemas. Viva el #baremetal
500 lines of pure x64 assembly.
Just to create a Vulkan instance.
No helpers. No C. No safety nets. Just raw MASM64 and the Vulkan headers.
This is what low-level graphics looks like when you go all the way down.
Next up: surface and device creation.
Released alpha9 of SMOLiX:
https://github.com/w84death/smolix/releases/tag/alpha9
It can be run online but without custom glyphs.
Time to get back to some ASCII art so I can include them in the gallery inside my OS!
I finally cracked the problem with gaps between characters.
Turns out any characters in columns C and D are rendered as "graphics" (without a gap) and all others as text (with 1px space between each).
After reorganizing my sprites so logo and UI occupies those columns make them work on any EGA/VGA text mode!
This is some black magic knowledge ;)
I started writing first lines of code to make this simple game a reality!
Updated mascot and CRT screenshots :)
It is a rat and has few frames. I will animate it and use it in the (future) build in games.
Changed some code and now it runs (in theory, emulated) on 386 SX, 20MHz, 512KB RAM.
Added few more glyphs for future use.
And the kernel has grown to almost 5KB!
Last night I was working on the mouse driver. It is starting to work...
Still needs some tweaks, cursor pointer and most important "double buffer" for restoring replaced chars on screen.
I'm thinking about making super simple drawing program for my OS.
@farooqkz Common Lisp - there are at least *Movitz* (https://movitz.common-lisp.dev/) and *Mezzan* (https://github.com/froggey/Mezzano). #commonlisp #lisp #baremetal
What #unixlike operating systems do you know which are easy to port? Something like #NetBSD. I wonder if there is anything written in #commonlisp or #rust
There are some options but I'm not sure how much easy are they to port. I've heard many positive comments about bare metal development using Rust. I wonder how is common lisp in this regard.
I have extensive programming experience but not on bare metal or kernel programming.
Boosts for wider participation in the discussion are welcome.