An implementation of sudo for DOS, to run the given command with full privileges. It can be used to edit important system files, run disk partitioning tools, and so on!

  • raman_klogius@ani.social
    link
    fedilink
    English
    arrow-up
    15
    ·
    edit-2
    1 day ago

    Fun fact: all Windows exe files are also com files. They all have a dos running part, most of which simply prints “this program cannot be run in dos mode” and exits, but some programs do have fully functional dos program as well as the usual windows GUI part, all in one exe.

    • Rose@slrpnk.net
      link
      fedilink
      arrow-up
      3
      ·
      13 hours ago

      I actually first thought that was weird and wasteful. Then I remembered that, uh, Commodore 64 often uses a similar thing. Basically, a lot of assembly and compiled languages just put the machine code into the BASIC memory, preceded by a stub BASIC program that’s basically just “10 SYS addr” with that address pointing just past the end of the stub program itself. BASIC’s LOAD command handles it just fine because program files don’t have any header information besides load address. BASIC handles the loaded program just normally because the program has the end token, so as long as you don’t modify the BASIC program, it’ll be fine.

      • sjmulder@lemmy.sdf.orgOP
        link
        fedilink
        English
        arrow-up
        3
        ·
        13 hours ago

        Luckily the .exe’s MZ header is pretty small. But in this case it was necessary: when DOS loads a .com binary, it can’t know how much memory it will need, so DOS just gives it all free memory. But then the program can’t launch another, because all memory is in use. So that’s why I had to add the MZ header which allows specifying the memory needs.

    • Scoopta@programming.dev
      link
      fedilink
      arrow-up
      11
      ·
      edit-2
      1 day ago

      Technically that segment is not a com file. They are MZ exe files. com files have no metadata or header.

      There are actually 3 exe variants, MZ, NE, and the modern PE

      • otacon239@lemmy.world
        link
        fedilink
        arrow-up
        10
        ·
        1 day ago

        You could say any arrangement of words or letters about the inner workings of Windows, and I’d probably just take your word for it at this point.