Happy 29th anniversary to FreeDOS!

Поділитися
Вставка
  • Опубліковано 28 чер 2023
  • Today is the 29th anniversary of FreeDOS, and I wanted to show how anyone can get started in programming on FreeDOS.
    In 1994, several of us got together around a pretty neat idea.
    We liked DOS, but Microsoft was clearly moving completely to Windows. "The next version of Windows," they said, "would do away with DOS."
    We wanted to keep DOS around, so we decided to write our own. That project, announced 29 years ago TODAY on June 29 1994, was the FreeDOS Project.
    And I wanted to show that it's not that hard to rewrite many the core DOS utilities. You don't have to be an expert programmer to write some of the basic tools. And that's what I'm going to show you - a simple way that anyone can write some programs that replace the standard DOS commands.
    I should mention that these aren't the best algorithms. In fact, there are better ways to read from a file. But I want to show how any beginner programmer can jump in and get started. And after all, I was definitely a "beginner" programmer in 1994 when I started working on FreeDOS. You can find these same basic methods in my early code from 1994.
    Visit our website
    www.freedos.org/
    Join us on Facebook
    / freedosproject
    Follow us on Mastodon
    fosstodon.org/@freedosproject
    Consider supporting me on Patreon
    / freedos
    And don't forget to Like and Subscribe!
    Standard comment rules apply.
  • Наука та технологія

КОМЕНТАРІ • 85

  • @elallende
    @elallende 11 місяців тому +21

    Even when I'm not a regular user of FreeDOS, I really like to read-hear-watch Computer/Software history material, I do really want to let you know that appreciate your hard work to keep the project going on which helps to preserve software and allow new people to get into retro software (as users or developers).

  • @OzzFan1000
    @OzzFan1000 11 місяців тому +8

    29 years! What a milestone! Congratulations to you and everyone involved in the project for keeping it alive and making it work so well.

    • @freedosproject
      @freedosproject  11 місяців тому +3

      🎂 It's pretty cool to reach 29 years. Looking ahead to more years to come.

  • @G.B...
    @G.B... 11 місяців тому +4

    Happy birthday FreeDOS!🙂

  • @ahmad-murery
    @ahmad-murery 11 місяців тому +6

    That was a great programming video,
    I feel satisfied now.
    Thanks Jim! and happy 29th anniversary to FreeDOS.

  • @JP-tf4tb
    @JP-tf4tb 11 місяців тому +6

    Hi. Congratulations and thanks for the project, also for this videos. I left MS-DOS since Windows XP, later I dive to GNU/Linux, after that FreeBSD, finally MacOSX. Since Windows8 I comeback to Windows as a peasant. I miss my Slackware from time to time, sometimes even OSX SnowLeopard, but never miss DOS or the great software it had. I feel bad for my behaviour and I hate myself for betraying the buddy that was DOS. I remember using FreeDOS many years ago a few times as boot tool for Windows installs or playing a couple of days with my beloved TurboPascal inside Qemu. Please apologize my english, only want to thank you and your FreeDOS mates for keeping alive DOS and doing it freely and open, I suscribed almost a year ago here and don't see many videos but want to be here to dont forget, feel guilty. I hope someday with the retro hardware fever more people comeback and see how nice it's FreeDOS. 🥰🥰

    • @freedosproject
      @freedosproject  11 місяців тому +3

      Thanks! I'm glad you like using FreeDOS 👍
      (I was an early Slackware user too. My first Linux distro was SLS, and I moved to Slackware from that.) 🐧

  • @thisisreallyme3130
    @thisisreallyme3130 11 місяців тому +9

    What would be neat ideas for intro projects: port some of the old David Ahl BASIC games.
    A bunch of these were converted to GWBASIC and QBASIC... but not many were ever converted to DOS C.
    Games are always fun, and text games are a great way to take graphics out of the picture. :-)

    • @freedosproject
      @freedosproject  11 місяців тому +6

      I love that! Porting/updating older programs a great way to encourage new programmers to contribute to FreeDOS. Updating old BASIC text games to FBC or BW-BASIC - or rewriting them in another language - is a great exercise for new programmers.

    • @OpenGL4ever
      @OpenGL4ever 11 місяців тому

      You can run all the old GWBASIC and QBASIC games by using the QB64 and PC-BASIC emulators on a modern OS.

    • @freedosproject
      @freedosproject  11 місяців тому

      David Ahl's BASIC books were from the early 1970s, well before GW-BASIC or QBASIC. Back then, "BASIC" was not very standardized; DEC BASIC (Ahl's books) was different than AppleSoft BASIC, which was a little different than GW-BASIC. For example, when I typed some of his games into our Apple II+ computer, I often had to track down where things broke and fix them on my own.

    • @thisisreallyme3130
      @thisisreallyme3130 10 місяців тому

      Yep. I got "BASIC Computer Games" Microcomputer Edition with my Atari 8-bit back in 1984. Unstructured BASIC is a headache (you have to "memorize" what's going on with layered GOTO commands). But it was SO easy to "port" and (as you learned) then layer on your own OS-specific graphics (title screens, a sound loop, high scores, etc).

  • @JoeBurnett
    @JoeBurnett 11 місяців тому +6

    Congratulations!

  • @cs127
    @cs127 11 місяців тому +3

    happy birthday freedos! 🥳

  • @fragglet
    @fragglet 11 місяців тому +4

    Happy Birthday!!! 🎂

  • @algorithminc.8850
    @algorithminc.8850 11 місяців тому +4

    Looking forward to giving it a try (was already planning to get my old 80's/90's machines from storage). I agree with your idea of alternate approaches and some of the old ways - always thought it best too for learning (learn by doing). Subscribed. Cheers

    • @freedosproject
      @freedosproject  11 місяців тому +1

      Thanks! I think it's important to remind new programmers that they can contribute to projects and create things even if they consider themselves "beginners." We all start somewhere. And if you look at my 1994 FreeDOS code, it's not great. But it was enough of a starting point that others got involved and together we made it work. ☺

  • @tetsuoshiva
    @tetsuoshiva 11 місяців тому +3

    Happy birthday!!

  • @MechaFenris
    @MechaFenris 11 місяців тому +3

    I have always had a soft spot for DOS, but being a Commodore Amiga fanatic, I didn't use DOS in the formative years... going from an Atari 800xl to a C64 to an Amiga was my computing path (I still marvel at the elegance of 68k Motorola assembly language). DOS was the primary lab computer early in college, and I spent lots of time in the labs/study areas tinkering with DOS...and getting access to the nice laser printers. :) When I started my CompSci in earnest, I was steeped in IBM 370 and HP-UX. I only used DOS programmatically to learn Intel assembly (which as a chip, I loathe compared to Motorola)...
    Having FreeDOS is like taking a tangential trip on what might've been had I been gifted an IBM PC instead of an Atari. :) I appreciate the hard work and enjoy the heck out of using it. I may be a Linux user proper, but I still love me some DOS gaming. :)

    • @OpenGL4ever
      @OpenGL4ever 11 місяців тому +1

      There's nothing wrong with Intel assembly in 32 Bit protected mode which was available starting in 1985 if you could afford a 386.
      And Intel assembly 16 Bit real mode was available in a time, when all the other consumer price microchips were still 8 Bit. And its design was very good for a 16 bit CPU. You could address up to 1 MiB of memory even with only 16 Bit registers and the best thing was, the segment:offset addressing allowed you to shift the 64 KiB window along 16 byte paragraphs which saved you valuable memory because a short jump was shorter than a far jump, the same applies to memory addressing in one of the 64 KiB segment windows.
      Memory was extremely expensive at that time. When the 8086 was released in 1978 you paid a fortune for 128 KiB.
      All hail to Intel assembly.

    • @freedosproject
      @freedosproject  11 місяців тому +1

      My day-to-day desktop is also Linux 🐧 and I also boot back into DOS to keep playing my favorite DOS games. I have several that I'm playing through right now. Just because the games are old doesn't make them less fun to play. 😃

    • @OpenGL4ever
      @OpenGL4ever 11 місяців тому

      ​@@freedosproject You never told us which is your favorite DOS game and which are in your personal top 10.

    • @freedosproject
      @freedosproject  11 місяців тому

      ​@@OpenGL4ever My all-time favorite DOS game is TIE Fighter (Special Edition). I loved that game - and I still play it. The space combat worked really well, and it was a novel concept to play on the Empire side.
      I don't know that I have a top 10 list, but other games I can think of include Dark Forces, DOOM, Commander Keen 1 and 4, Epin Pinball, Tomb Raider 1 (although I switched to PS1 to play that one and the TR games that followed it). I also liked puzzle games, but none come to mind at the moment.
      My all-time favorite DOS app was As Easy As spreadsheet - although I liked DOS spreadsheets in general. My first DOS spreadsheet was Lotus 1-2-3. Quattro Pro was okay, but I didn't like that WYSIWIG mode ran a bit slow.
      Also liked WordPerfect 4 and 5 (although I moved to Galaxy, which was quite good). I think we used PC-Write at home before that, but I don't remember it. My favorite DOS word processor now is Word 5.5, which has a modern feel. emTeX for writing LaTeX docs. Eureka equation solver helped a ton in my undergrad physics program. Telix was an outstanding terminal app that I used all the time.
      My first C compiler was Microsoft QuickC, and later Borland C (much better). These days, my favorite C compiler is a balance between OpenWatcom and IA-16 GCC (with libi86). I loved Freemacs at the time, and used that for pretty much everything - but now I like FED for programming, and sometimes FreeDOS Edlin.

    • @OpenGL4ever
      @OpenGL4ever 11 місяців тому

      @@freedosproject Thank you for your answer.
      Tie Fighter is also on my list of favorite DOS games, but it's not number one.
      For me number one is Civilization.
      Number 2 is UFO Enemy Unknown, also known as X-Com.
      SWOTL and its predecessor Battle of Britain - Their Finest hour was also one of my favorite games
      I also liked M1 Tank Platoon, X-Wing and Railroad Tycoon very much.
      I also have Dark Forces, but this didn't age well. For first person shooter i think the best DOS game in this genre is Duke Nukem 3d.
      About puzzle games, have you played The Incredible Machine?
      My Word processor of that time was Ami Pro 3.x on Windows 3.1 and i really liked that one. Some basic DOS word processor and spreadsheet came with my PC, but I never used it. In the absence of a printer at the beginning, that didn't make much sense either.
      Unfortunately, I didn't have a C compiler when I started, but I've always wanted one, and back then it wasn't like it is now, where you can get free compilers everywhere.
      I was still very young back then, which is why I unfortunately preferred games rather than a compiler as a birthday or Christmas present. In retrospect, it would have been better if I had given up some games and wished for QuickC or Turbo C for my birthday instead, but you don't think that far-sightedly at that age.
      So I only had a C compiler long after I had Windows 9x.
      That's why I programmed with GW-Basic and QBASIC in the time of DOS.
      What version of QuickC did you have and did you also have the MASM assembler? As far as I found out in retrospect through research, you could previously buy both together in a bundle.

  • @gabrielcamacho6112
    @gabrielcamacho6112 5 місяців тому

    This is just excellent. Thank you for this. Interestingly, my preferred retro environment is Minix 1.5 on an Atari ST, but I learn so much from your videos and I’m able to apply them to my system.

  • @thisisreallyme3130
    @thisisreallyme3130 11 місяців тому +2

    Thanks! Please keep these onboarding videos coming.

  • @techhoppy
    @techhoppy 10 місяців тому

    Thank you for the project and for this video.

  • @OpenGL4ever
    @OpenGL4ever 11 місяців тому

    Congratulations and Happy Birthday FreeDOS. ❤🥳🎉

  • @brucetungsten5714
    @brucetungsten5714 11 місяців тому

    Awesome - congrats! I think I got my first glimpse of it in the later 90ies. I'll install it later on on one of my older PCs.

    • @freedosproject
      @freedosproject  11 місяців тому +1

      Please do! It's interesting how FreeDOS remains cool 29 years later. 😎

  • @vincei4252
    @vincei4252 11 місяців тому

    Congratulations! You haven't quite beaten the oldest software I worked on that is still in production, however, there are only a handful of that application/system on the entire planet!

  • @johngangemi1361
    @johngangemi1361 3 місяці тому

    Thanks for keeping DOS alive!

  • @DV-ye6xb
    @DV-ye6xb 11 місяців тому +3

    🎉happy birthday 🎂 🥳

    • @freedosproject
      @freedosproject  11 місяців тому +1

      Thanks! It's great that FreeDOS is still going 29 years later. That's a long time for any open source project. 🥳

    • @DV-ye6xb
      @DV-ye6xb 11 місяців тому

      ​​​@@freedosprojectYes, I wanted to take a moment to congratulate you on the FreeDOS 29 year anniversary. It is truly remarkable and it is a testament to your determination and hard work. 🥳

    • @DV-ye6xb
      @DV-ye6xb 11 місяців тому

      @@freedosproject FreeDOS is my favorite open source project for three reasons. Firstly it is an operating system. Secondly FreeDOS is open-source I have the opportunity to learn a lot about how operating systems work. Thirdly FreeDOS also has so much fun features.

    • @OpenGL4ever
      @OpenGL4ever 11 місяців тому +1

      @@DV-ye6xb Well the problem is, while we all love our DOS, DOS has nothing to do with a modern operating system that can do preemptive multitasking and abstracts the hardware with a driver layer and much more. If you want to learn something about a modern OS, you better start with Minix.

    • @DV-ye6xb
      @DV-ye6xb 11 місяців тому

      @@OpenGL4ever Yes that's true I appreciate your suggestion but I want to look at the FreeDOS code just for fun and learn a thing or two about how retro operating systems work and how it works with the hardware.

  • @MotownBatman
    @MotownBatman 11 місяців тому

    HAPPY BIRTHDAY (Insert image of Rankin Bass Style Frosty here)!!!

  • @waldmensch2010
    @waldmensch2010 11 місяців тому +1

    thx to keep dos running

  • @cleverson_sa_
    @cleverson_sa_ 11 місяців тому

    Congrats!

  • @narayanbandodker5482
    @narayanbandodker5482 11 місяців тому +2

    I would really like to know how "Drivers" in DOS works. It's still a mystery to me like how does for example the Sound Blaster driver work? I've also heard of interrupt hooks and that the driver hooks at IRQ5 or 388h or something. Can you explain that?

  • @kneekoo
    @kneekoo 11 місяців тому

    Happy anniversary, FreeDOS! 🙂❤

  • @Leonard_MT
    @Leonard_MT 11 місяців тому +1

    I'm more of a UNIX person but whenever UNIX is overkill or for some other reason I need DOS FreeDOS is my go to for a Disk Operating System.

    • @freedosproject
      @freedosproject  11 місяців тому +1

      I use Linux as my primary operating system, but DOS is still pretty cool too! 💾

    • @Leonard_MT
      @Leonard_MT 11 місяців тому +1

      @@freedosproject Thanks for 29 years of keeping DOS alive as FreeDOS has saved me from a few computing nightmares!

    • @freedosproject
      @freedosproject  11 місяців тому +1

      @@Leonard_MT Glad we could help! 👍

    • @Leonard_MT
      @Leonard_MT 11 місяців тому +1

      @@freedosproject Oops I meant 29 years 😅

  • @NotNoAndrew
    @NotNoAndrew 11 місяців тому

    Nice video Jim, question though, I see you wrap your if and while expressions in (), Is this for a reason? I work on a project at work that doe this but they don't put spaces around them and when they have 5 or so it makes it really hard to read; Especially if it's compound expression. I usually just remove the unnecessary parens.

    • @freedosproject
      @freedosproject  11 місяців тому

      Wrapping the if and while in () is required syntax now. 😃 But I also picked up some programming habits during an undergraduate internship, and the developers had a very strict code style. That's probably where I started using spaces around nested parens, like:
      while ( (ch = fgetch(in)) != EOF ) { ...
      and
      if ( (a == 1) || (b == 2) ) { ...
      The spacing around the outside parens makes it a little easier to read, at least to me.

  • @anon_y_mousse
    @anon_y_mousse 11 місяців тому

    Just a few notes, but () are parentheses, or parens for short, [] are brackets and {} are braces. When reading and writing files with non-text data you should remember to open them with "rb" and "wb" so that certain implementations *cough*Windows*cough* don't break your files by translating line endings. The only reason that's important is that someone may be using such an implementation to play with code and it could be disastrous. Finally, while it's not necessary for a simple example like choice, it would be nice to mention include'ing ctype.h and using either tolower() or toupper() on the output of getch() so you'd only have to check against 'y' and 'n' instead of 'Y' and 'y' and 'N' and 'n'. Also, if you use a switch in the loop to return you can just make it an infinite loop and print an error on anything not 'y' or 'n';
    I know point 1 is mostly irrelevant and point 3 is beyond the scope of the video, but point 2 has been a huge problem for those that fail to account for it.

    • @freedosproject
      @freedosproject  11 місяців тому +1

      Thanks for the clarifications 🤓

    • @gurok2
      @gurok2 10 місяців тому +1

      () and [] are both brackets! () are round brackets, [] are square brackets. There's a little variation, but I believe 'brackets' is more popular in the UK. Parentheses can refer to (), but also anything aside from the main text -- like this -- that has punctuation to offset it.

    • @anon_y_mousse
      @anon_y_mousse 10 місяців тому

      @@gurok2 We're not in the UK, and proper English is () for parentheses, [] for brackets and {} for braces.

    • @gurok2
      @gurok2 10 місяців тому +1

      @@anon_y_mousse Who's not in the UK? And where do you suppose proper English comes from? The term brackets is fine and "proper" enough. There's nothing that marks it as improper, just regional variance.

    • @anon_y_mousse
      @anon_y_mousse 10 місяців тому

      @@gurok2 I and the guy running the channel aren't from the UK. Proper English comes from the US since the Brits decided to diverge from us after the revolution. Look it up, before the revolution they didn't use superfluous U's in so many words, such as color. They changed just to be different and now they're wrong.

  • @MatthewCenance
    @MatthewCenance 10 місяців тому +1

    Wait, this isn't a new project? It's actually older than me?

  • @dschoene57
    @dschoene57 9 місяців тому

    Is there a reason for the weird formatting of the main function? I know it is delightfully medieval, but back in the day, with screens being restricted to 80x25 we would never have wasted entire lines on a single curly brace or an orphaned int.

    • @freedosproject
      @freedosproject  9 місяців тому

      I don't remember exactly where I picked up that style, but it was when I was still learning how to use C. I think it was the coding standard they used at a company where I did a summer internship. And it just stuck with me.
      Personally, I find that coding style helps me to find function definitions more quickly. I can do a regex search for "^function" because I know the function name will always start on a new line. And the line above it will be the return type.
      It wastes some vertical space in an 80x25 screen, but it works well for me.

  • @xhivo97
    @xhivo97 10 місяців тому

    Why freedos comes with laptops? Can you install os without a flash drive by using freedos? Like maybevsomehow overwrite the hdd with an iso, as long as tge iso is small enough should be possible right?

    • @freedosproject
      @freedosproject  10 місяців тому

      A few manufacturers (like HP) include FreeDOS as a pre-install option. I don't think these vendors really expect you to keep FreeDOS on there - they probably expect you to reinstall with Linux. In fact, computers made in the last few years can't run FreeDOS on *bare metal* because they don't provide a BIOS anymore - for example, HP's "FreeDOS" laptop is really running Linux, which boots QEMU, which runs FreeDOS. But this lets them ship a model with an operating system on it.

  • @yschoi5838
    @yschoi5838 11 місяців тому

    축하합니다
    그리고 당신의 노고에 감사합니다
    (^^)=b

  • @philtoa334
    @philtoa334 11 місяців тому +1

    • @freedosproject
      @freedosproject  11 місяців тому +1

      Ohmigosh, that's a great emoji! Looks a lot like the FreeDOS fish.

  • @rehsd
    @rehsd 11 місяців тому

    Congrats!