NCOT Technology
NCOT Technology
  • 75
  • 582 227
Nostalgic DOS Development Part 1 - FreeDOS, DJGPP, RHIDE and other madness.
Support the Channel: ncot.uk/support/
Modern programming is too abstract, let's get down to basics and do some programming in DOS using C. You can join in too! In this video I explain how to set up 86Box with FreeDOS, and then how to install DJGPP the C compiler and RHIDE the IDE. Then we write some good old C code in a friendly editor.
Come back to a time when 640k was enough, and when a 486 DX2/66 was considered a fast computer. None of this modern multi-core rubbish or branch predicting exploitable nonsense here. Just you, me, DOS and a C compiler.
This is part of an ongoing series where I learn how to write DOS programs in C and probably assembly. It's going to be a strange mix between a tutorial and an explanation of how to program in C in MSDOS.
I don't really have an aim or direction, but over time I hope to gain enough skill in MSDOS programming in C that I can learn VGA programming, some x86 assembly language programming and maybe create some pretty graphical demos.
There is an ongoing blog series you can read too:
Part 1 - ncot.uk/nostalgic-dos-development-setting-up-the-machine/
Part 2 - ncot.uk/nostalgic-dos-development-part-2-writing-our-first-programs/
#msdos #cprogramming #programming #retrocomputer
Переглядів: 45 120

Відео

Tilemap Game Engine Development - Agon Light C Programming
Переглядів 6 тис.2 місяці тому
In this video, I took the next step in my game development for the Agon Light by building a tilemap system and integrating it with the existing physics engine from the previous video. The tilemap, a classic way to structure game levels, includes solid tiles that interact with game sprites. While detecting collisions with tiles is usually straightforward, incorporating a physics engine made thin...
2D physics game programming in C, retro style | Gamedev the hard way #2
Переглядів 9 тис.3 місяці тому
Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this second episode I figure out how to make a very basic 2D rigid body physics system work. It doesn't matter if you don't have an Agon Light, I'm bringing you along for the ride. We'll be looking at how games deal with the objects they manipulate, and how to detect and resolve collision...
Writing a game the hard way - from scratch using C. #1
Переглядів 197 тис.4 місяці тому
Join me on a journey as I attempt to write a game for my Agon Light using nothing but raw C programming. In this first episode I figure out what kind of game to make, look at some shareware games of the past and get a basic game engine working, using nothing but C code - no external game engines or modern development tools. It doesn't matter if you don't have an Agon Light, I'm bringing you alo...
Stealing the secrets of the NES - Agon Light Tilemaps in C
Переглядів 2,7 тис.7 місяців тому
Support the channel: ncot.uk/support Github: github.com/ncot-tech/agon-graphics In this video, I explore how early computers used clever tricks to create moving graphics, focusing on how Nintendo developed tile-based games on the NES. Using these techniques, I built a scrolling tilemap system for the Agon Light using C. We start with a quick look at the evolution of game graphics, from text-bas...
Programming Bitmap Graphics - Agon Light using C
Переглядів 2,2 тис.7 місяців тому
Get the code: github.com/ncot-tech/agon-graphics Support the channel: ncot.uk/support Visit the website: ncot.uk In this video I look at how you can program the Agon Light to display bitmap images using C. I go through how to convert a PNG image into an RGB2222 format bitmap image, and then use the C library functions to load that into the Agon Light, and the VPD commands necessary to display t...
Programming Windows Screensavers - Agon Light Graphics Programming
Переглядів 7 тис.8 місяців тому
Support the Channel - ncot.uk/support Get the code for this episode - github.com/ncot-tech/agon-graphics I'm learning how to program the Agon Light, and as a project thought it'd be fun to try and program two of the classic Windows 3.11 screensavers - Mystify and Starfield Simulation. My aim is not to simply program the Agon Light by cloning the Windows 3.11 screensavers, but to learn how to pr...
Programming Language Easter Eggs
Переглядів 1,6 тис.9 місяців тому
Easter eggs are usually hidden inside our games and software, but did you know there are some hidden inside the tools and languages used to make that software? Come with me on a fun Easter diversion while we eat our bodyweight in chocolate, and look at six programming Easter Eggs. Some of these are from the Python programming language. It seems they had a lot of fun making the language itself a...
Calculating Pi using Python - Gauss-Legendre and Monte Carlo methods - #piday 2024
Переглядів 7149 місяців тому
Let's celebrate #piday in this appropriately short video by writing some #python programs to calculate Pi. The first method uses something called the Gauss-Legendre method. It works by iteratively refining an approximation of Pi, generating the answer digit by digit. When writing code to calculate Pi we run into issues trying to store the calculated value. A floating point or double precision f...
Agon Light 2 - C Programming, Better Keyboard Routines, Joystick Ports
Переглядів 3,4 тис.10 місяців тому
Dive into the exciting world of DIY hardware hacking. Join in as I explore joystick integration, keyboard inputs, and serial debugging using the versatile Agon Light platform. Delve into the technical intricacies of GPIO pins, assembly language programming, and C compiler usage for low-level development. Discover the power of computational thinking, boolean logic, and UART serial communication ...
Cellular Automata - Simulate life from chaos and code
Переглядів 1,3 тис.11 місяців тому
Today, we're diving into the world of cellular automata. A digital playground of sorts where simple rules lead to astonishing complexity. where order can arise from chaos and collapse back into chaos just as quickly. First we have a look at One Dimensional Cellular Automata which were originally conceived by John Von Neumann in the 1950s. These cellular automata operate on a grid of cells, usin...
Agon Light C Programming - An Introduction
Переглядів 4,4 тис.11 місяців тому
Instead of bashing away in BASIC, it's possible to do some coding in C on the Agon Light. Let's find out how in this introduction to an ongoing series where I figure out the Agon hardware and work on a game. I have no idea what game I want to make, and I'm not entirely sure how to achieve some of the necessary functions, but it'll be fun figuring it out and I hope you come along for the ride! T...
The Dark Art of Programming - Writing Cursed Code
Переглядів 2,7 тис.Рік тому
It's Halloween, programming is an art form and there's a darker side to it. Come with me in this fun video as I explore several languages that hate you and are trying to make your life difficult, before we go off down the rabbit hole and find some truly horrific examples of real programming. There's languages that are hard to read, languages that are deliberately hard to understand with nonsens...
FORTH - Better than BASIC?
Переглядів 42 тис.Рік тому
FORTH - Better than BASIC?
Sinclair BASIC vs BBC BASIC - How to fit an entire devkit inside 64K
Переглядів 14 тис.Рік тому
Sinclair BASIC vs BBC BASIC - How to fit an entire devkit inside 64K
The Internet - Mid 90's Web Culture
Переглядів 6 тис.Рік тому
The Internet - Mid 90's Web Culture
Zilog Z80 Deep Dive - How does it work?
Переглядів 29 тис.Рік тому
Zilog Z80 Deep Dive - How does it work?
The Computer Timeline: Calculators, Maths and Reverse Polish Notation
Переглядів 1,4 тис.Рік тому
The Computer Timeline: Calculators, Maths and Reverse Polish Notation
How the 1880 Census Led to the Invention of the Computer
Переглядів 568Рік тому
How the 1880 Census Led to the Invention of the Computer
Tiling the Plane - What are Wang Tiles?
Переглядів 947Рік тому
Tiling the Plane - What are Wang Tiles?
DIY Solar PV Installation - Can it save me money?
Переглядів 536Рік тому
DIY Solar PV Installation - Can it save me money?
Hacking Your Way to a Smarter Home: Integrating Smart Sockets with Home Assistant
Переглядів 2,5 тис.Рік тому
Hacking Your Way to a Smarter Home: Integrating Smart Sockets with Home Assistant
BBC BASIC in RiscOS on a Raspberry Pi is really cool!
Переглядів 15 тис.Рік тому
BBC BASIC in RiscOS on a Raspberry Pi is really cool!
Samsung SDP-860 Document Presenter Thing [VLOG 1]
Переглядів 603Рік тому
Samsung SDP-860 Document Presenter Thing [VLOG 1]
2022 Review and Beyond!
Переглядів 1972 роки тому
2022 Review and Beyond!
The £3,000 brick phone - mobile phones in the 1980s
Переглядів 1 тис.2 роки тому
The £3,000 brick phone - mobile phones in the 1980s
DMA - Direct Memory Access on the ZX Spectrum Next
Переглядів 1,3 тис.2 роки тому
DMA - Direct Memory Access on the ZX Spectrum Next
Clever engineering on a budget - ZX Spectrum Interrupts
Переглядів 10 тис.2 роки тому
Clever engineering on a budget - ZX Spectrum Interrupts
Breaking the 64k barrier - Spectrum Memory Banking
Переглядів 7 тис.2 роки тому
Breaking the 64k barrier - Spectrum Memory Banking
How 8bit computers work - interrupts, memory and DMA | Computing Fundamentals
Переглядів 5 тис.2 роки тому
How 8bit computers work - interrupts, memory and DMA | Computing Fundamentals

КОМЕНТАРІ

  • @michaelo2l
    @michaelo2l 12 годин тому

    The last real DOS machine I built used a DX4 100, AWE 64Gold, Creative 4X CD ROM, 2Megs of ram and a 20 Megs HD. I still have all the parts except the motherboard. If I could find a motherboard I would rebuild it ;) In those days I wrote programs and utilities using Turboc...

  • @trevorboys9140
    @trevorboys9140 День тому

    Thanks for this video, I've got a setup running on PCem with MS-DOS 6.22. Where I am having problems is with RHIDE. Does it have a problem with C:\DEV for some reason (e.g. putting the tools in C:\DEV\DJGPP like my Borland and Microsoft IDEs)?

    • @ncot_tech
      @ncot_tech День тому

      @@trevorboys9140 yes, the docs for djgpp explain you can't have anything in a folder called "dev". No idea why though, so I have a folder called "dosdev" instead. Djgpp has its own folder structure it wants to be in, take a look at the zip picker page for details.

    • @trevorboys9140
      @trevorboys9140 День тому

      @ncot_tech Thanks. How very contrary of them 😁

  • @derekjc777
    @derekjc777 3 дні тому

    Your Spectrum Next documents are no longer available from your website. Are they in GitHub?

  • @derekjc777
    @derekjc777 4 дні тому

    I had to turn off Windows Security Real-Time Protection to download CSpect.

  • @RaymondMaas
    @RaymondMaas 4 дні тому

    I notice the black bars. You can put disable_overscan=1 in the config.txt of the boot partition and it should feel and look a bit better. Fun fact: just like on the Linux OS'es, it also supports the overclock settings in config.txt

  • @ast_rsk
    @ast_rsk 4 дні тому

    All I know is that every time you complete n number of levels, the player should be rewarded with _something_. Maybe a piece of art or a little song plays. Something that has no bearing on gameplay and is tentative at best on explaining / understanding the story. All my favorite NES games did this sort of thing.

  • @yosefnegussie8790
    @yosefnegussie8790 7 днів тому

    I'd love to know your prompts that produced those stunning "Captured-in-the-Moment" images.. especially where the teacher's eyes were being chased by those curious pupil's eyes.. EPIC! Pls share the prompts..

  • @maxmuster7003
    @maxmuster7003 7 днів тому

    I am a beginner of C programming using gcc DJGPP with DosBox since two weeks, but most times i use batch files as container for x86 assembly mnemonics to create a text file with a routine together with debug command to telecontrol debug to make an executable com file from the routine. Most of these batch files have to start with one or more parameter attached with hexadecimal values or a text inside of quotes. Example to start with row color "text" attached: CENTER.BAT 8 1b "output center align" Now i figured it out that we can start a batch file from C using system("filename"), but in this case i don’t know how to put the quotes around the text using more than a single word for one parameter. The \" escape ("CENTER.BAT 8 1b \"output center align\" ") are not working propperly to use it as one parameter %3 inside the batch file. Without puotes the batch parameter %1 %2 %3 are separated with a space. Yesterday i finished a C routine that create a new batch file with 60*2 lines of call commands to call an other batch file that need to start with 5 hexadecimal parameter attached to draw a bresenham line in graphic mode x1 y1 x2 y2 color for an animation of a clock. Each step 6 to the next location of a circle in two loops from 270 to 360 and from 0 to 270 calculating the x and y coordinates. A lot of decimale integer have to convert into hexadecimal chars (for intel syntax) to build the batch file.

  • @AreHan1991
    @AreHan1991 11 днів тому

    Intereesting video. But honestly, you could have edited it down a bit 😉

  • @kurdeye5037
    @kurdeye5037 11 днів тому

    You explain it in the weird and understandable way!! How? Idk how but if you make course in this mood and environment telling people what to do that well be great because I'm beginner at c++ I want to learn but I don't watch many tutorials because of tutorial hell so I will ask you if you can do this for me and others who don't want to be overwhelmed by tutorial we just need your kinda tutorial 😂🤝🏻♥️

  • @MatthewMoreau
    @MatthewMoreau 16 днів тому

    Have you even seen Newgrounds?

  • @alexany4619
    @alexany4619 20 днів тому

    After delving so deep into a special topic, my regulary problem is, that I have forgotten most of it when trying to pick up the thread again some weaks later... 😅

  • @ms-ex8em
    @ms-ex8em 21 день тому

    do u know what the latest dos emulator for windows 11 is? is it called xboot manager or something similar? thanks...................

  • @trexxzy_
    @trexxzy_ 21 день тому

    okay i was confuse people saying direct memory access controller are cheating manager it was hook up for my controller i was use to play on apex, gears 4 and 5 sometime call of duty idk it does it say dont uninstall on direct memory access controller on window 10 i need explanation

  • @MassimoLauria
    @MassimoLauria 21 день тому

    I loved this video. After a few years of Turbo C / Turbo C++ I finally moved to the 32-bit era when I installed DJGPP. I played a lot with RHIDE and Allegro graphics library at the time. Then I moved to Linux (in the end, DJGPP had been my gateway drug into free software).

  • @acpollazzo
    @acpollazzo 22 дні тому

    are you based in wilmslow? I am in macclesfield

  • @Garfield_Minecraft
    @Garfield_Minecraft 22 дні тому

    I love DOS!

  • @ms-ex8em
    @ms-ex8em 22 дні тому

    do you know how to change screen resolution to *fx 230,222,4 or something similar in order to run cpm or msdos on the bbc micro ?? using turbo mmc ??? thanks

  • @andrew.igumenoff
    @andrew.igumenoff 23 дні тому

    What's your name?

  • @bonchbonch
    @bonchbonch 23 дні тому

    id Software used DJGPP to build Quake for DOS.

  • @retroelectrons2
    @retroelectrons2 23 дні тому

    Hi. I'm here. Lol

  • @Joacim-A
    @Joacim-A 23 дні тому

    Your rand() % 100 got a number between 0 and 99, not 1 and 100.

  • @ArifGhostwriter
    @ArifGhostwriter 24 дні тому

    🇬🇧 👍🏽 December 2024 *_Finally!_* An _actual_ explanation of under the hood! Subscribed!

  • @the8ctagon
    @the8ctagon 25 днів тому

    Does anyone have a working download link for this Open University version of Logo, please?

  • @john-schumandr
    @john-schumandr 25 днів тому

    you need to sleep bro

  • @Laughingshort-m2b
    @Laughingshort-m2b 26 днів тому

    In Papua New Guinea, when you study ICT, the first programming languages you are taught are C and C++, before moving on to Python and other beginner-friendly programming languages. It's definitely a challenging start!

  • @soapyfrog
    @soapyfrog 26 днів тому

    All a bit new for me. Was hoping for a 80286 at best and Brief (by Underware!) as the editor. Also real men (other genders are available) use K&R C! Totally right on books. You might learn something!

  • @ms-ex8em
    @ms-ex8em 27 днів тому

    are you using an emulator or virtual box ?? thanks can you help me with virtual box it won’t work on mine thanks

    • @x_voxelle_x
      @x_voxelle_x 26 днів тому

      He mentioned using 86box. VMware and Virtualbox are very touchy about DOS and Windows pre-XP.

  • @mathiaspampus813
    @mathiaspampus813 27 днів тому

    I started doing this sort of stuff when I got my first own PC in 2001. My brother provided me with a pirated Turbo Pascal package, and that got me hooked 😃 It was a bit of a surprise when in 2008 he learned that I was still using TP, so he suggested I learn a more modern language like Ruby, which I did. From there I went on with Arduno, Processing, now also doing electroinics, then Python and C# and OpenGL (like 20 years late, but whatever). What ever I did, I kept reinventing the wheel, writing my own units/modules/libraries for loads of readily available things, just to learn about them. Programming computer graphics has taught me more about physics and math than highschool ever could. So, what I mean to say is, I totaly see the appeal of this project, and I enjoy watching you take it on. You're a very pleasant person to watch 🙂

  • @chronoray8786
    @chronoray8786 27 днів тому

    I feel like a younger person who truly does have an interest in computer programming as a whole, and not just a casual interest in the potential downstream fruits that might come out of something like computer programming, such as games and the like, should enjoy learning C at least close to the start, and I wouldn't attempt to hold them back from it. I myself started out by learning BASIC when I was maybe around eight or nine, and then I moved on to learning C when I was around ten.

  • @johndelarosa8214
    @johndelarosa8214 27 днів тому

    What does 'ZET' mean?

  • @johndelarosa8214
    @johndelarosa8214 27 днів тому

    I would take morning, afternoon, and evening classing and stay up till about 2am completing school programming assignments. I still the hard from that computer, but doubt it would boot up - lol. The Sad part is it just brings back good old memories of my " Good Married Days" . I Still have Some DOS Books on Memory Management and an excellent book called: DOS Programming, that explains how to create your own 'More' command and modify it to More5 or More10. The number following more is the number of line more displays before you hit the enter key.

  • @charlespax
    @charlespax 27 днів тому

    This is an educational masterpiece!

  • @youtubedude09
    @youtubedude09 28 днів тому

    Would love an 86box port for android but unfortunately (if i recall) the cpu in most phones is RISC and therefore wouldn't be able to use the ibm bios 😅 I also saw online that it's very hard to disable the fpu (even with root) which is why the nice features of the dosbox-X haven't gotten onto android

  • @FlyGamingChannel
    @FlyGamingChannel 28 днів тому

    For the authentic 90s c experience, you need to remember to add an explicit return to your main function.

  • @keigezellig
    @keigezellig 28 днів тому

    I use Pcem as emulator to emulate a 90ies DX2 with MSDos to play some old Dos games i used to play as a kid and even some Borland Pascal programming when i feel REALLY nostalgic 😊❤

  • @philippendletonmusic
    @philippendletonmusic 28 днів тому

    Llamatron! Ordered via mail, when the floppy disc turned up (for the Atari ST) I couldn't stop playing.

  • @manojshindetalks4365
    @manojshindetalks4365 28 днів тому

    Wonderful video. I am a retro programming lover.

  • @xpepos
    @xpepos 28 днів тому

    ╔══════════════════╗ ║▒░▒▒░▒░▒▒░░░▒░░░░▒║ ║▒░░▒░▒░▒░▒▒▒▒░░░▒▒║ ║▒░▒░░▒░▒░▒▒▒▒░▒▒▒▒║ ║▒░▒▒░▒░▒▒░░░▒░░░░▒║ ╚══════════════════╝

  • @josephpurdy8390
    @josephpurdy8390 28 днів тому

    LPMUDs has a driver program written in C. I had the fortune of playing a game because it lacked graphical outputs beyond an ASCII table. The abstractions within the code were both understandable as a player and measurable for planning. This freedom can make for a high degree of details a player will experience while not having to waste it on graphics subroutines.

  • @ciscornBIG
    @ciscornBIG 28 днів тому

    I wish we could hang out and program together.

  • @yourdailygymclips
    @yourdailygymclips 29 днів тому

    Whats your keyboard if you dont mind

  • @jordandiaz5713
    @jordandiaz5713 Місяць тому

    what is the model of the keyboard?

    • @ncot_tech
      @ncot_tech Місяць тому

      @@jordandiaz5713 it's "Rii mechanical keyboard" off Amazon with some different key caps from AliExpress and then new keyswitches also off AliExpress. Had I realised separate numpads existed, I wouldn't have bought a keyboard with this layout, the home/end and arrow keys are in a strange location.

  • @marknewellmusic
    @marknewellmusic Місяць тому

    I am remaking an old Amiga game in C and I own 1st and 2nd Editions of that book. Bedroom programmers of the past, know that your efforts are highly valued and not forgotten and also know that there are still some of us that wish to continue standing on the shoulders of giants... Interest in making game engines is not dead and some of us still value performant code 👍

  • @alijehanzeb1143
    @alijehanzeb1143 Місяць тому

    Cool Best of Luck! Teaching Me How To C++

  • @idlewise
    @idlewise Місяць тому

    @37:19 The book you're showing is the 2nd edition. The "sacred" book is the 1st edition, ISBN 0-13-110163-3. My copy is from 1988 (print run #16) and cost £21.95. I used it to teach myself C on a PDP-11/23 at the then "Thames Polytechnic" (now University of Greenwich). I was the only under-graduate that had the pin code for the door (as everyone else was learning Pascal on their IBM PC-ATs, with green and amber screens).

    • @ncot_tech
      @ncot_tech Місяць тому

      @@idlewise Is the first edition K&R C, or is it also ANSI C? I have a possibly dim memory of my University tutor making sure we bought the 2nd edition, and not a cheap copy of the first edition. I think I paid almost 30 quid for mine back in 1997.

  • @Warlock_UK
    @Warlock_UK Місяць тому

    Ooooo this could be interesting to fire up some of my programming projects from the 90s. I still have my second edition Kernighan and Ritchie C manual somewhere :)

  • @saidchaida5431
    @saidchaida5431 Місяць тому

    In the late '80s and most of the '90s, I primarily used Clipper with dBASE III+ to develop business applications. I created tools like a GUI builder and a dropdown menu generator. I used graphics library to add mouse support for applications running in text mode (to the satisfaction of the users) as the early versions of Clipper didn’t support mouse functionality in text mode environment. Those were truly amazing times!

  • @shivamannan
    @shivamannan Місяць тому

    I remember Borland Turbo C. 😊

  • @perplexedmoth
    @perplexedmoth Місяць тому

    Loved RHIDE. I got some of my DOS code running and uploaded the recording on my channel.