• Recent Tutorials

  • Up is down - Baremetal Programming & Pascal as Low As It Gets

    The easiest way I find, would be to write a unit containing you program and having a name to initialize/launch that then include your units name in code_helios.pas and add the procedure you wish to run inside the oHelios.Kernel() procedure.



    Then followed by
    Code:
    ./build.sh
    
    ./run.sh
    You now have a kernel.obj with all your code inside that runs inside a qemu window - you now have your own OS that runs your pascal code as close to the baremetal as I think is practical. Although a lot of this code is not mine - just look at the headers I thought that for those out there interested in the working of operating systems and just how little you need to program in pascal it might be worth me putting this up while I write up the next tutorial.


    I apologize for my brevity but there is honestly not that much to say, any questions/suggestions are welcome and I will continue work on Helios as well as my desktop UI in the meantime...


    As for the next tutorial - its coming with a green plush robot from google


    PS: Any takers for the LD48 in 2 weeks time?
    Comments 5 Comments
    1. chronozphere's Avatar
      chronozphere -
      Impressive! I didn't know that this was possible using pascal. Although its not really necessary, since we allready have linux, its great to play with :-D

      I fear that I won't have any time for it though.
    1. code_glitch's Avatar
      code_glitch -
      Its true we have linux - but lets say you needed to calculate some numbers of pi as fast as you could with zero overhead (or only a few bytes of it ).

      As a concept though, I think this demonstrates the true power of pascal - I've heard all too many critiques of it saying its too high level, no direct memory management and how limiting managed pointers can be. This, though, is the transformation of 'theoretically' to a much more practical approach to saying: it may be high level, but give it a line or two of ASM, tell the compiler to scrap the beautification and off you go: baremetal programming

      It is a shame the OSDev site only goes as far as basic VGA - if we had opengl drivers/code available I would have been able to compile prometheus and that could have been a sight to behold. Although I have not given up on the idea of finding some ATI docs on the matter and looking if there is any common ground between the driver .so files procedure wise. Because if that is the case it may be possible to scrap together a quick and dirty solution to the OpenGL solution. Still looking into this a bit at a time as it were.
    1. Ñuño Martínez's Avatar
      Ñuño Martínez -
      Man, I was looking for something like this for decades. Actually. Thank you for make it public!
    1. code_glitch's Avatar
      code_glitch -
      Nuno: No problem at all... I was actually getting worried by the silence of the comments box I'd posted one of the few topics no one needed/was interested in

      At least now its helped at least one person I am more or less satisfied...
    1. Ñuño Martínez's Avatar
      Ñuño Martínez -
      Quote Originally Posted by code_glitch View Post
      At least now its helped at least one person I am more or less satisfied...
      You know: Tanenbaum's book is so complex... I know your HeliOS isn't a full kernel but it helps to understand and testing ideas and so.