FreeDOS

FreeDOS

The official FreeDOS channel! FreeDOS is an open source DOS-compatible operating system that you can use to play classic DOS games, run legacy business software, or develop embedded systems. Any program that works on MS-DOS should also run on FreeDOS.

VIM on FreeDOS and Linux

VIM on FreeDOS and Linux

FORTRAN 77 variables

FORTRAN 77 variables

Linux like original Unix

Linux like original Unix

Пікірлер

  • @andystandys
    @andystandys15 сағат бұрын

    I used this program all throughout high school, in the 1990 - 1993 era. I got carried away with using the thesaurus feature on one of my geography essays, and my teacher accused me of plagiarism because I was using so many "advanced words!" LOL. The notion of a high school student using a thesaurus, at all, let alone an electronic one that could be instantaneously brought up inside a word processor was a completely foreign concept to him at the time.

  • @freedosproject
    @freedosproject10 сағат бұрын

    Very powerful program! Spendy, but very good. I also recommend 'Almost Perfect' (mentioned in the video) for an interesting "insider" story about WordPerfect.

  • @joharakiri
    @joharakiriКүн бұрын

    Just wanna say FreeDOS having an official KZread channel is a blessing. The ease of access for tips and documentation is pretty much unmatched compared to other projects of this scope.

  • @freedosproject
    @freedosproject10 сағат бұрын

    Thanks - I'm glad you like the videos!

  • @nickpalance3622
    @nickpalance36222 күн бұрын

    mkdir (md) didn’t exist until DOS 2 (being that v2 is when hard disk drives were finally supported in software and the 5160 XT supported them with beefier power supplies) After all, a bare bones 5150 came with 16KB and no floppy drive (no room for DOS). What did you do with such a system? Run “cassette BASIC” from ROM and save to. Cassette. The 5150 had a cassette port in back next to the keyboard port. Hook up a tv to a CGA cord (the 5153 CGA monitor won’t come out until 1983 .. I think when the 5160 XT comes out.. yeah there is a composite output for just this reason) and enjoy 40 columns of BASIC like an Atari 400/800 or an Apple ][Plus for example. Okay okay you spring for the whopper .. a SSDD floppy drive PC. SS (single sided?!?). Yes the DSDD would come later. Oh and you only got *8* sectors (512byte) per track so 160KB on the SSDD (and later 320KB on DSDD). Who need’s subdirectories? DOS 2 gave us 9 sectors floppy disks (180KB or 360KB) and mkdir (abbreviated “md”). But that was for the XT’s hard disk drive (okay the floppy supports directories too).

  • @DanielLenskiy
    @DanielLenskiy3 күн бұрын

    What is purpose of this program, because result is clearly unreadable...

  • @Bruhmoment69
    @Bruhmoment692 күн бұрын

    15:23 it's mostly a demonstration of the way dot matrix printers work without wasting paper on several demonstrations

  • @ahmad-murery
    @ahmad-murery3 күн бұрын

    I and my friend worked together to replace an old (1-pin with 9 colors ribbon) dot printer which was a part of scintigraphy thyroid scanner. this scanner was built as a tank and it prints as it scanning, the printer and the sensor mounted on one big moving arm and it prints directly on a paper laid down and held on a metal plate using adhesive tape , you really have to see it 😁🤦‍♂ The reason to do the app is that the stock ran out from compatible ink ribbons The problem was it doesn't output any digital signals to rely on and al what we got is analog sound generator producing a wave depending on the strength of the radiation detected by the sensor. My friend designed an electronic interface circuit to convert these waves to something our program can read via RS232, and I built the app to mimic the output of the printer in order to print it on a modern inkjet printer. Thanks Jim, you bring back so many memories

  • @freedosproject
    @freedosproject3 күн бұрын

    That project sounds pretty awesome!

  • @ahmad-murery
    @ahmad-murery3 күн бұрын

    @@freedosproject It was indeed, we enjoy doing it to revive an old machine. Thanks for the great reply Jim

  • @brucetungsten5714
    @brucetungsten57143 күн бұрын

    Great video!

  • @freedosproject
    @freedosproject3 күн бұрын

    Glad you enjoyed it

  • @wherami
    @wherami3 күн бұрын

    most excellent

  • @zirize
    @zirize3 күн бұрын

    About two decades ago, I was working on POS software for a company. At that time, most receipt printers used RS232 communication, and I remember a project where we created virtual printer based on communication data generated by the PC's RS232 port. The purpose was to test whether software outputs were accurate without actually using a printer.

  • @freedosproject
    @freedosproject3 күн бұрын

    That's a great project - and practical!

  • @monad_tcp
    @monad_tcp3 күн бұрын

    That's was a cool idea, when I had that problem, I wrote a table of command translation between the matrix printer and ESC/P so I could just send the thing to a fast laser printer, It was very fast to make tests, but wasted paper.

  • @LordHog
    @LordHog3 күн бұрын

    Very cool

  • @williefleete
    @williefleete4 күн бұрын

    In amongst my stuff I have the manual for the star NX1000 mono dot matrix printer, The manual includes some BASIC listings for testing the capabilities of the printer, including user defined characters. Maybe include support for sending “escape” codes (char 27) for enabling underline, sending data for user defined characters, etc

  • @freedosproject
    @freedosproject3 күн бұрын

    My printer at the time was Epson, and Epson printers had that ESC/P print control. The name actually comes from Epson Standard Code for Printers because Epson made it. I hope to update this in future to add ESC/P print control like underline and even graphics mode.

  • @Kyoz
    @Kyoz4 күн бұрын

    🤍

  • @kelli217
    @kelli2174 күн бұрын

    Too bad that delay() requires an integer argument. Otherwise you could adjust the delay to something closer to, say, an Epson LX.

  • @freedosproject
    @freedosproject3 күн бұрын

    One way to slow it down to a fraction of a millisecond would be to use a counter, and then you add the delay for every 2nd or 3rd byte. A live human might not spot the difference. Basically this: int count = 0; ... if ((++count % 3) == 0) { delay(1); count=0; }

  • @monad_tcp
    @monad_tcp3 күн бұрын

    Also needs sound emulation.

  • @rwoliver2
    @rwoliver24 күн бұрын

    This is awesome. I wonder how difficult it would be to redirect output to LPT1 to this as a TSR?

  • @ssl3546
    @ssl35464 күн бұрын

    Depends if you already have a robust TSR framework to build on, there's just a few int 21 calls to intercept and you'd have to parse pathnames for 3Dh. Making a TSR that knows when it can take over the system is the tricky part, and it would need to be quite big for the graphics buffer.

  • @fnjesusfreak
    @fnjesusfreak3 күн бұрын

    @@ssl3546 It's actually not int21, but int17 (AH=0 lpt_putch, AH=1 lpt_init, AH=2 lpt_status).

  • @freedosproject
    @freedosproject3 күн бұрын

    I think an easier way would be to redirect printing to a file (many DOS word processors can already do that) and then use this to "print" it to the screen.

  • @gingered
    @gingered4 күн бұрын

    I would have thought converting the character set would be much more involved, this is very cool! I had a moment to think about it, and I think it will be 30 years this year since I last used a dot matrix printer. The sound as it tracks across the sheet and advances rows is very nostalgic.

  • @freedosproject
    @freedosproject3 күн бұрын

    The old dot matrix sound was kind of soothing, in a way. 😄

  • @gingered
    @gingered3 күн бұрын

    @@freedosproject it helps that now it doesn't come with a parent shouting "stop that screeching!" from the next room 😃

  • @skilletpan5674
    @skilletpan56743 күн бұрын

    ​@@freedosprojectI still remember the IBM pro printer. Such a nice sound.

  • @andimachovec2719
    @andimachovec27193 күн бұрын

    @@skilletpan5674 : Legendary!

  • @mlongval
    @mlongval4 күн бұрын

    Thanks for this Jim. I always find your videos very interesting. Keep up the great work. Cheers from Canada!

  • @freedosproject
    @freedosproject3 күн бұрын

    Thanks! I'm glad you liked it.

  • @AnimalFacts
    @AnimalFacts5 күн бұрын

    That was fun. I have Turbo C installed in DOSBox. I’m going to have to give it a go.

  • @markscheck
    @markscheck5 күн бұрын

    Love this, masterclass in ed, the standard editor. Thank you!

  • @freedosproject
    @freedosproject3 күн бұрын

    You're very welcome! Since doing this video, I sometimes use ed (and FreeDOS edlin) unironically to edit files. Usually if I just need to make a quick edit to a file, or if I run several commands and realize "that should be a script" .. I can do ed and edit my file while I can still see the previous commands I typed.

  • @MattKasdorf
    @MattKasdorf6 күн бұрын

    Just stumbled across this video, you make a great teacher.

  • @freedosproject
    @freedosproject3 күн бұрын

    Thanks, I'm glad you think so 😃

  • @rnts08
    @rnts088 күн бұрын

    Now all we need to set it to a dos screen saver. Yes those were a thing 😂

  • @Hublium
    @Hublium9 күн бұрын

    Love your videos, man! I've been playing around with my new 200LX recently and I was wondering whether there was any particular reason you've never made a video about Lotus?

  • @freedosproject
    @freedosproject8 күн бұрын

    I've done some videos on Lotus 1-2-3, and some on Quattro Pro. But I mostly use As Easy As for two reasons: 1. It is my absolute favorite spreadsheet. I like it better than modern spreadsheets, too. It saw me through my undergrad physics program, and because I used it so much I know it really well. So it's my go-to spreadsheet. 2. It's available for free, direct from TRIUS. It's not open source, but they made the last DOS version available to anyone. But Lotus and Quattro are not available like that, technically the only way to run those is to find "abandonware" and I try not to do too much of that on the channel.

  • @MasterH2005
    @MasterH20059 күн бұрын

    I know this is gonna sound strange, considering the fact that DOS is mainly a CLI OS, but is it possible to get a desktop environment running on FreeDOS?

  • @maciejstachowski183
    @maciejstachowski1838 күн бұрын

    Windows 3.1 seems to work with some tinkering. DESQView I think runs out of the box, but I haven't tried it.

  • @freedosproject
    @freedosproject3 күн бұрын

    You can run Windows 3.x in Standard Mode on FreeDOS. Jeremy (kernel developer) has an in-development version of the FreeDOS kernel that runs Windows 3.11 in Enhanced Mode .. I'm hoping that can get released so we can share it. But you can find it in his GitHub. You can also use other graphical environmnets on FreeDOS, too. See my other videos for OpenGEM and Seal.

  • @aintaintaword666
    @aintaintaword6669 күн бұрын

    13:18 Why did the program work? I imagined it should have crashed right after that null pointer assignment?

  • @tehlaser
    @tehlaser9 күн бұрын

    Ah, the joys of undefined behavior. “Everything appears to work just fine at first, but then sometime later something weird happens” is surprisingly common.

  • @maxmuster7003
    @maxmuster70039 күн бұрын

    Very good.

  • @bernieman9016
    @bernieman901610 күн бұрын

    Works on a HP200LX with FreeCOM 0.84 pre2 and StarLFN for read-only LFN within the editor as DWED supports FLNs. Unfortunately can't save with a long filename as StarLFN only provides a way to read LFNs

  • @SensualSquirrel
    @SensualSquirrel10 күн бұрын

    What's lib short for?

  • @OpenGL4ever
    @OpenGL4ever10 күн бұрын

    library

  • @SensualSquirrel
    @SensualSquirrel10 күн бұрын

    @@OpenGL4ever yet it never gets pronounced correctly

  • @simpleprogrammingcodes3834
    @simpleprogrammingcodes383410 күн бұрын

    I noticed that this compiler can understand the modern syntax for the function parameters, and it's a 1986 compiler, before K&R 2. When was the new syntax introduced and when did it become the norm for a compiler to support it?

  • @zoomosis
    @zoomosis10 күн бұрын

    Microsoft C 5.1 shown in this video is from 1988, the same year MS-DOS 4.0 was released. ANSI/ISO C was ratified two years later. From memory MSC 5.0 was their first to support ANSI/ISO C. Trivia: Most of the early OS/2 1.x C source code from 1986-7 was written in K&R syntax.

  • @StringerNews1
    @StringerNews110 күн бұрын

    If I had access to a free compiler like that 30 years ago, I could have done some things.

  • @OpenGL4ever
    @OpenGL4ever10 күн бұрын

    I agree. This compiler was very expensive at that time.

  • @rnts08
    @rnts088 күн бұрын

    Agreed, so many expensive options back then for a teenager. I ended up with the borland c compiler.

  • @rigen97
    @rigen972 күн бұрын

    apparently gcc was already a thing as early as 1987 but I suppose it was quite obscure back then

  • @OpenGL4ever
    @OpenGL4ever2 күн бұрын

    @@rigen97 That may be true for expensive Unix server systems. But on the x86 PC at home for MS-DOS, gcc was only available after DJ Delorie ported it to DOS and released it under the name DJGCC. And anyone who didn't have a modem at the time didn't find out about it until the advent of CD-ROM collections. The compiler therefore only became really well known after 1995 at the earliest. Personally I first discovered DJGCC on a CD-ROM shareware collection and because it was a version for OS/2, it was of no use to me. I only encountered GCC in a usable form in 1999, when I installed Linux on my computer for the first time.

  • @OpenGL4ever
    @OpenGL4ever2 күн бұрын

    @@rigen97 That may be true for expensive Unix server systems. But on the x86 PC at home for MS-DOS, gcc was only available after DJ Delorie ported it to DOS and released it under the name DJGCC. And anyone who didn't have a modem at the time didn't find out about it until the advent of CD-ROM collections. The compiler therefore only became really well known after 1995 at the earliest.

  • @hubstrangers3450
    @hubstrangers345010 күн бұрын

    Thank you...

  • @OpenGL4ever
    @OpenGL4ever10 күн бұрын

    I already extracted the MS C compiler, its libs and include files and the additional tools and MASM from the MS-DOS 4 release a couple of weeks ago, when the source code of MS-DOS 4 was released.

  • @MonochromeWench
    @MonochromeWench10 күн бұрын

    Sure it's nice that Microsoft released this but why would you want to use it when we have OpenWatcom that can target 16bit dos and supports a relatively modern C standard. I guess this might be useful if cl itself actually is 16 bit and you absolutely need to compile a program on an AT or an XT. Benchmark comparison might be interesting but it seems unlikely this old compiler could win but maybe it has optimizations better targeted to 8086 and 80286 cpus than what you'd find in a 32 bit compiler.

  • @OpenGL4ever
    @OpenGL4ever10 күн бұрын

    One reason could be better compatibility with old programming books written for the Microsoft C compiler. Not all early C compilers were ANSI compatible. Some had their proprietary extensions. Another one could be lower RAM requirements. It may require less RAM than the 16-bit version of gcc. When it comes to code optimization, especially program speed, modern compilers are probably better. However, the MS compiler could have been optimized for generated program code size since memory was expensive back then. In the end you will have to test it and directly compare who performs better where. In any case, the later 32-bit C compilers from Microsoft for Windows were still very bad at the time. They were only significantly improved after the release of Windows NT 3.1. Which meant that Windows NT 3.5 ran significantly more efficiently than its predecessor. The slow speed of Windows NT 3.1 was the main reason for Microsoft to improve the compiler.

  • @freedosproject
    @freedosproject10 күн бұрын

    I agree, I prefer the newer open source compilers like OpenWatcom and IA-16 GCC. We also have BCC and a few other open source compilers that are older but work fine. The MS compiler is interesting for some. And it's interesting that they included the binaries for free in the MS-DOS 4.00 BAK source code release. Another legit free (gratis) proprietary compiler is Borland Turbo C 2.01 and Borland Turbo C++ 1.01, which you can download from Embarcadero's museum, if you don't mind registering a free account with them. We have a link to them from our website under the 'Developer' section. Works great on FreeDOS - I did a video a while back about TurboC++ on FreeDOS and the IDE was super slow in that video because it doesn't run well under JEMMEX; boot "without drivers" and the IDE runs fine.

  • @zoomosis
    @zoomosis10 күн бұрын

    Borland also released a version of Turbo C++ as freeware years ago which is arguably an easier compiler to use if all you want is to target 16-bit DOS.

  • @alexandershendi7428
    @alexandershendi742811 күн бұрын

    A question: the provided multitasking version of MS-DOS stops other programs wenn you use "normal" DOS EXEs. Can the Microsoft compiler produce Windows-style "new" executables that you could concurrently? Thank you for the video!

  • @grappydingus
    @grappydingus11 күн бұрын

    I await the ultimate showdown! Which is better ed or edlin!

  • @freedosproject
    @freedosproject10 күн бұрын

    OMG, I should totally do a video on that! :-)

  • @kenielf
    @kenielf11 күн бұрын

    For absolutely no practical reason, I'd love to see a benchmark between ms-dos 4 and current free dos. It'd be great to see how it differs - even when virtualized

  • @Maxjoker98
    @Maxjoker9811 күн бұрын

    Why is the second version of the array.exe program 10x smaller? At 18:22 it's ~700 bytes, while at 14:00 it's ~7kB.

  • @TSteffi
    @TSteffi11 күн бұрын

    I was curious after seeing this comment, but watching closely, the second .EXE was around 7k, too.

  • @Maxjoker98
    @Maxjoker9810 күн бұрын

    @@TSteffi Oh, I must have read the wrong row. My bad!

  • @freedosproject
    @freedosproject10 күн бұрын

    @@Maxjoker98 No problem. 🙂 In fact, the [corrected] ARRAY.EXE at 14:16 is 7,825 .. and after copying the libs and includes, the recompiled ARRAY.EXE at 19:04 is also 7,825. So it's the same size (i.e. nothing "broke" when copying files to a new "CC" directory)

  • @SlideRSB
    @SlideRSB11 күн бұрын

    I think you may have missed a sys directory inside the headers directory.

  • @freedosproject
    @freedosproject11 күн бұрын

    Oops, I did! The 'sys' directory contains locking.h, stat.h, timeb.h, types.h and utime.h. I didn't spot that when I looked at the DIR listing.

  • @ahmad-murery
    @ahmad-murery11 күн бұрын

    Nice video as usual, Programming sessions are always welcome and I expect there will be more to come(I hope) Thanks Jim!

  • @freedosproject
    @freedosproject11 күн бұрын

    More to come. I'm trying not to be "all programming all the time" but we'll definitely come back to more programming exmaples.

  • @ahmad-murery
    @ahmad-murery11 күн бұрын

    @@freedosproject 👍💯

  • @snap_oversteer
    @snap_oversteer11 күн бұрын

    Nice video as always, I have never properly programmed in C under DOS but the usage of malloc got me thinking, when it's running (presumably) in real mode you're limited to what's left of 640K base memory, right? And if I wanted to use more memory I'd have to use a different compiler that can produce programs that run in protected/enhanced mode.

  • @rugxulo
    @rugxulo11 күн бұрын

    No, you could (manually??) use EMS or XMS (286+), if available. Or use overlays or swap to disk.

  • @zoomosis
    @zoomosis10 күн бұрын

    You also can't allocate more than 64K at a time unless you use the "huge" memory model. The easiest way around both this and the 640K limit is to use Watcom's wcl386 compiler to build 32-bit DOS4G executables.

  • @moontoadz
    @moontoadz11 күн бұрын

    yes but can it run Crysis? 🤡

  • @Australian_Made
    @Australian_Made11 күн бұрын

    😎👌

  • @benlesczynski6194
    @benlesczynski619414 күн бұрын

    the worst version of dos

  • @RobShinn
    @RobShinn16 күн бұрын

    Do not edit partitions with that version FDISK. You are asking for a corrupted disk.

  • @SilverSpoon_
    @SilverSpoon_18 күн бұрын

    7:27 Yeah that's the spot, set color to light green now and put that on your autoexec, ending with a prompt $g and a clear.