DOSBOX Programmierung?

Hier unsere Befehle :) - (programmieren, Informatik, DOSBox)

3 Antworten

Mit dem Schreiben eines Assembler-Listing alleine bekommen wir noch keine ausführbare Datei die in DOSBOX gestartet werden kann. Wir brauchen dazu ein Assembler, wie MASM, NASM oder TASM und ein Linker für 16 bit Executable, oder Debug. Diese Programme muss man in DOSBOX aufrufen von der Kommando-Zeile, oder von einer Batch-Datei die von der Kommando-Zeile gestartet wurde.

Alle Datei-Namen dürfen nur 8.3 Buchstaben für Dateiname und Datei-Extension haben und kein Leerzeichen, keine Sonderzeichen, keine Umlaute.

Mit dem Assembler wird eine Objekt-Datei erzeugt woraus erst der Linker eine ausführbare Datei macht.

Hier habe ich eine Batch-Datei für MASM 5 die mit angehängten Datei-Namen ohne Extension gestartet wird und diesen Namen verwendet um eine NAME.exe zu erschaffen von einem NAME.asm -Listing.

Beispiel: C:\>ASSEMB.BAT TEST

Erzeugt von einer TEST.asm eine TEST.exe.

@ECHO OFF

REM ASSEMB.BAT

MASM /Z %1.asm,%1.obj,%1.lst,%1.crf

if ERRORLEVEL 1 goto ENDE

CREF %1.crf,%1.ref

if ERRORLEVEL 1 goto ENDE

LINK /CP:1 %1.obj,%1.exe,%1.map,,

if ERRORLEVEL 1 goto ENDE

if exist *.crf del *.crf

if exist *.obj del *.obj

REM %1.exe

:ENDE

Woher ich das weiß:Hobby

DOSBOX löst bei mir andere Vorstellungen aus. Es sieht eher so aus, als würdest du Assembler programmieren wollen.

Was verstehtst du unter DosBox? Suchst du einen Editor? Welches Betriebssystem? Welche Architektur?


rolyhu 
Fragesteller
 09.01.2017, 16:46

Also unser Lehrer sagt es sei assembler, aber wir programmieren eine DOSBOX xD manchmal versteht man Lehrer nicht richtig, deshalb kanns auch sein, dass ich was falsch gemacht hab..
Beste Grüße

0
PWolff  09.01.2017, 17:08

Vermutlich geht es darum, den von DOSBox emulierten Prozessor in Assembler zu programmieren.

0
flaglich  09.01.2017, 17:32
@PWolff

Ich hab jetzt mal Wikipedia konsultiert. wenn deine dosbox ein Dos mitbringt gibt es evt edit oder edlin als Editoren. mit

copy con datei.asm

"quelltext"

^Z

solltest du den quelltext aus der Komandozeile in die Datei "datei.asm" schreiben können ctrl + Z beendet die Eingabe

viel Erfolg

0

Genauso, wie wenn du das Programm außerhalb der Doxbox schreibst. Du brauchst nur einen Editor in deiner Dosbox, damit du schreiben kannst.

Könntest vlt. Northon- oder Midnightcommnder nehmen... ;-)


Syntaxomat  07.09.2021, 08:42

Ich verwende DEBUG. COM von FREEDOS, um damit kleine executable COM files in DOSBOX zu programmieren. Dosbox emuliert ein PC mit Intel 80386 32 bit CPU.

Running with a little help from Debug from the Freedos Operating System: (provide 32 bit register/instructions)

Download and extract debug into the mounted folder of DOSBOX.

http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/distributions/1.2/repos/pkg-html/debug.html 

Dazu schreibe ich alle Befehle in eine Batch-Datei. Beispiel: COLOR.BAT. Diese Batch-Datei wird mit einer angehängten Farbe gestartet. Beispiel:

COLOR.BAT 1b

@echo off

REM Need one parameter(%1) attached.

REM Usage: *Color.bat* color

REM Example: COLOR.BAT 1b

echo acs:100>tmp.deb

echo mov ax,b800>>tmp.deb

echo mov ds,ax>>tmp.deb

echo mov cx,820>>tmp.deb

echo xor di,di>>tmp.deb

echo mov al,%1>>tmp.deb

echo mov [di+1],al>>tmp.deb

echo add di,2>>tmp.deb

echo dec cx>>tmp.deb

echo jnz 010C>>tmp.deb

echo ret>>tmp.deb

echo.>>tmp.deb

echo n Color.com>>tmp.deb

echo rcx>>tmp.deb

echo 16>>tmp.deb

echo wcs:100>>tmp.deb

echo q>>tmp.deb

debug<tmp.deb>nul

del tmp.deb

Color.com

del Color.com

The batch file contains some pipe operators (> >> <) for to redirect the output of the echo commands into a new text file and to start Debug with the file. And the output contains some internal Debug commands and a routine made with assembler mnemonics to create and run a tiny executable com file. The routine use the attached color and writes it directly into the framebuffer of the DOSBOX text screen.

0