01 Assembly Programming in DOSBox

Поделиться
HTML-код
  • Опубликовано: 18 сен 2024
  • Assembly language programming returns!
    In order to have a stable system to program on I'm going to use DOSBox.
    dosbox-x: dosbox-x.com/
    flat assembler: flatassembler....
    hx dox extender: www.japheth.de...
    another hx dos extender: github.com/Bar...
  • НаукаНаука

Комментарии • 14

  • @KrishnasisMandal
    @KrishnasisMandal 5 месяцев назад +1

    This is insane. Exactly what i was looking for

  • @andrepolidoro4966
    @andrepolidoro4966 6 месяцев назад

    I learned x86_64 asm in a college course last year. There's something about it that I really love. Thanks for these vids. Can't wait to watch the rest!

  • @nullsemicolon
    @nullsemicolon 7 месяцев назад

    I found your content for the first time just today. I love this idea.

  • @maxmuster7003
    @maxmuster7003 7 месяцев назад

    Good work.
    In DOS an executable can start a child process to start an other executable and if we terminate it we are going back to the parent executable. So it is possible to have more than one executable in RAM without to have a TSR.
    The only one different between the 16 bit mode and the 32 bit mode (on 80386+ CPU) is not the amount of memory that we can address, but the usage of instructions with or without an operand size (hex 66) prefix and an address size (hex 67) prefix. In 16 bit mode we need the prefix for 32 bit operand/addresses and in 32 bit mode for 16 bit operand/addresses. It reverse the default depht for one instruction.
    So in the 16 bit Real Address Mode of the CPU we can use a 32 bit operand and a 32 bit address register, but the segment size is limited to 64 kb.

  • @maxmuster7003
    @maxmuster7003 7 месяцев назад

    For creating larger executable an assembler&linker like Fasm, Nasm, Masm is perfect. For tiny executable com files i like to use debug.
    And i like to use batch files as an open source container to put x86 instructions inside to build a routine. I made some videos(no speech) to show how it works on DosBox and to share the batch files. Have fun.😊

  • @maxmuster7003
    @maxmuster7003 7 месяцев назад

    I like to change the config file of DosBox from ems=true to ems=false for switching into the 16 bit protected mode to increase the segment size from 64 kb to 4 gb for DS,ES,FS and GS segment, but let CS and SS using 64 kb segment size, jumping back to RM and at last open the 21. address line to get the undocumented 16 bit BIG real mode/Unreal mode. This allow us to use 32 bit addresses (using address size prefixes hex 67) to write directly into the linear framebuffer in hex C0000000 of the svga-S3 emulation using VBE modenumbers for 800x600x32 for example.

  • @maxmuster7003
    @maxmuster7003 7 месяцев назад

    There are a lot of BIOS function and DOS function based on 16 bit, but not for the 32 bit mode of the CPU. There is a table of interrupt numbers online based on Ralph Browns Interrupt List html version with the descriptions on how to use these functions.
    The undocumented 16 bit BIG Real Mode of the CPU is compatible to the BIOS/DOS functions in DosBox. So we can use these functions and additional we can use the free memory of 4 gb for data and for using the linear framebuffer in the 4th gb.

  • @maxmuster7003
    @maxmuster7003 7 месяцев назад

    Most DOS-gamer use the official DosBox version and not DosBox-X. And i use a DosBox app on my Android tablet installed from Google, but i don’t know how to change the emulated graphic card to a Geforce 4 graphic card for example, so i have to use the default svga-S3 emulation.

    • @philipbohun740
      @philipbohun740  7 месяцев назад +1

      Yes, feel free to use any DOSBox version you want. I wanted to recommend one to people who may not be familiar at all with it.

  • @maxmuster7003
    @maxmuster7003 7 месяцев назад

    I wish to have a DosBox version that emulates an intel Core2quad 64 bit CPU on mainboard with IBM compatible BIOS, 8 gb RAM, a Radeon 9750 GPU with a VBE 3 Bios with modenumbers for 16:9 and 16: 10 aspect ratio in 1920x1080x32 (for android tablet full HD) and 1920x1200x32 (for a 28" LCD-Monitor) starting on a single core in 16 bit RM booting MS DOS.

    • @philipbohun740
      @philipbohun740  7 месяцев назад

      I'm not sure exactly what you mean. From what I know DOSBox will only emulate up to early Pentium processors, which means it will only provide up to 32 bit instructions. DOSBox will definitely run on very modern and fast hardware, but it only provides emulation of some older hardware. Hopefully that helps.

    • @maxmuster7003
      @maxmuster7003 7 месяцев назад

      @@philipbohun740 I want a new DosBox version that starts in the 16 bit RM with MS DOS, but emulates an intel core2quad CPU. From the 16 bit RM we can startup the next 3 CPU core and we can switch into the 64 bit mode. And the DosBox svga-S3 emulation have an outdated vbe bios.

    • @philipbohun740
      @philipbohun740  7 месяцев назад +1

      @@maxmuster7003 Ah okay. In that case you'll want to use Qemu or VirtualBox instead. If you want to program it from the bare metal, starting the processor in 16 bit mode and move it to 32 and then 64 bit mode, you'll want to follow the information found in the OSDev website. You'll want to learn how to go from Real Mode (16-bit) to Protected Mode (32-bit), and finally Long Mode (64-bit), and you'll need your own boot loader.
      That is a quite advanced topic, and I would recommend reading up a lot on it. You can find some information here: wiki.osdev.org/Real_Mode
      As well as a tutorial for Protected Mode here: www.osdever.net/tutorials/view/the-world-of-protected-mode

  • @sinamobasheri
    @sinamobasheri 7 месяцев назад

    🍻🤍👏🏻🍷