GithubHelp home page GithubHelp logo

onepisya / masm-tasm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dosasm/masm-tasm

0.0 0.0 0.0 14.47 MB

VSCode extension which Offers a way to run and debug DOS(80x86) assembly TASM/MASM via DOSBox and msdos-player

Home Page: https://marketplace.visualstudio.com/items?itemName=xsro.masm-tasm

License: MIT License

TypeScript 91.24% Batchfile 2.62% JavaScript 6.14%

masm-tasm's Introduction

DOS assembly (MASM/TASM) via DOSBox(and msdos-player)

中文|English|more versions

Language support for DOS assembly,may be suitable for studying MASM/TASM and the course <principles& peripheral technology of microprocessor>.

  • (Language Support) Offer grammar,basic outline view,hover,code formate support for DOS assembly language
  • Run and debug assembly with right click on the VSCode editor panel. You can choose using MASM or TASM in the preference-settings.
  • Diagnose: process the output of ASM tools and display them in VSCode
  • For windows, all needed tools have been packaged in the extension.Just install and enjoy!
  • For other systems: you need to install DOSBox first

Features

when you are editing assembly files ,you can right click at the editor panel,then you will see several choices listed below:

  1. Open dosbox: Open the dosbox, prepare the environment(copy file to dosbox's D:\ and add tools to path)
  2. Run ASM code: Assemble,link and Run the program
  3. Debug ASM code: Assemble,link and Debug the program

Demo

Demo 1: Run and Debug Assembly

using TASM via DOSBox using MASM via msdos-player
demo dosbox tasm demo msdos-player masm

When opened a ASM file in Editor, Right click on the Editor, then run or debug the code. Default mode is using DOSBox and TASM, you can change them in preference->settings like the second gif(using MASM via msdos-palyer).

Demo 2: code Formate,Diagnose and more

Formate Codes Diagnose
programmatic lanaguage features diagnose

The extension offer some programmatic features like "hover","formate","jump to definition",you can close them in the preferece->settings

Demo 3: Open dosbox and type the command you need

Single-File (command Open DOSBox) Multi-Files (command Dosbox here)
Open in Dosbox pacman
  • Command "Open DOSBox": Your file will be copied as D:\T.ASM in DOSBox. (The extension will copy your file to work space and mount this space to DOSbox disk D:)
  • Command "Doxbox here": The extension will mount your active editor file's folder directly to dosbox's disk E:.
  • some ASM commands you may need: ASM_commands.
  • Some interesting assembly codes you may need: DOSBox ASM codes

For other system

The extension is packaged with needed tools for windows inside while other OS users should make sure DOSBox can be opened by shell command.We can download DOSBox from its website:DOSBox

For MacOS (Darwin),the extension will use command open -a DOSBox --args to open DOSBox. So you need to

  1. download dmg file from DOSBox's website
  2. Double-click the .DMG file to mount it. A new Finder window showing its contents should appear.
  3. double-click the mounted volume on your desktop and drag the app icon from there to the “Applications” icon in the Finder sidebar.

For Ubuntu and other linux system user,The extension will use shell command dosbox to open DOSBox. We can use command like this:

sudo apt install dosbox  #install dosbox
dosbox #if successfully opened the dosbox, it is largely possible for the extension to use dosbox

You can also use the setting ID masmtasm.dosbox.command to set your command for the extension to open DOSBox.

Extension Settings

for more,please see the preference->settings

  • masmtasm.ASM.MASMorTASM use MASM or TASM assembler in DOS emulator to run and debug assembly
  • masmtasm.ASM.emulator use dosbox or msdos-player as DOS emulator
    • DOSBox (default) more stable
    • msdos-playerquiet, it runs in command prompt(CMD). So it cannot support GUI like TD.exe
    • auto auto select
      1. use msdos-player to compile and link
      2. use DOSBox to run
      3. use msdos-player for MASM(debug)
      4. use DOSBox for TASM(TD)
  • masmtasm.ASM.savefirst save file first before using
  • masmtasm.dosbox.run:what to do after run your code in DOSBox
  • masmtasm.dosbox.CustomResolution: size(resolution) of the dosbox window,for example 1024x960
  • masmtasm.ASM.toolspath custom path of your ASM tools. #about-tools

About Tools

the extension has built in tools for windows. But if you need to use assembler or emulator of different version. You can organize your tools following the structure bellow and add your folder's path to masmtasm.ASM.toolspath, see about ASM tools

  • tools:your tools folder name, you can add the path of it to settings masmtasm.ASM.toolspath
    1. TASM: TASM tools including tasm.exe,tlink.exe,td.exe
    2. MASM: MASM tools including masm.exe,link.exe,debug.exe
    3. dosbox: dosbox.exe and related files
    4. player: msdos.exe

Folder dosbox and player are emulator for windows and this extension will not use them in other systems

About use of DOSBox

The extension will mount some folder to DOSBox 's disk. Please don't modify them.

in DOSBox real path in the computor
C: the path of tools folder
D: the path of the work space
E: the path of the editor file's folder(when using command dosbox here)

Docs & Thanks & Licenses

Enjoy!:smile:

masm-tasm's People

Contributors

xsro avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.