Back to home page

DOS ain't dead

Forum index page

Log in | Register

Back to the forum
Board view  Mix view

testing speed of DOS assemblers under djl's 8086 DOS emulator (Emulation)

posted by Rugxulo Homepage, Usono, 10.05.2026, 05:38

> > I am also interested in those benchmarks. But don't really have a
> machine
> > to test it. Beside maybe HP 200 LX, but that's 80186 class machine.
>
> I didn't write the reason. I am considering getting Atari Portfolio. 80c88
> with 128KB of which ~32kb is by default used as a ram disk so available
> memory is a bit more than 64kb realistically.

Under DOSBox-X, by default it only works with "cputype" of 386 or above (e.g. auto). Trying "8086" doesn't work. I also tested 8086tinyplus (Win32), but it hangs.

I went back to find a quick fix by hacking the source code, so I made a quick diff. Now AP.EXE runs at least under "80186" cputype (DOSBox-X) or 8086tinyplus (quasi 186). But DOSBox-X "8086" still doesn't like it, dunno.

8086tinyplus runs my .BAT (Sed script(s) plus AP.EXE) in 99 secs. For testing the assembler speed itself, it assembles Sed's modified assembly output of PSR Invaders in 12 secs (using default 4.77 Mhz speed, which is probably not 100% accurate).

Feel free to apply this patch, reassemble (N.B. use "/jo"), and benchmark yourself. EDIT: You'll probably need "patch -p1 -l -i ap186.dif" (N.B. "-l" to ignore whitespace/tab differences).


diff -rU1 asmpp.old/ap.asm asmpp/ap.asm
--- asmpp.old/ap.asm    2024-02-07 02:11:12 +0000
+++ asmpp/ap.asm        2026-05-09 21:12:06 +0000
@@ -2,3 +2,3 @@
 .RADIX 10
-;.8086
+.8086
 
Binary files asmpp.old/ap.exe and asmpp/ap.exe differ
diff -rU1 asmpp.old/asm16.asm asmpp/asm16.asm
--- asmpp.old/asm16.asm 2024-02-07 02:11:12 +0000
+++ asmpp/asm16.asm     2026-05-09 21:25:16 +0000
@@ -38,4 +38,6 @@
         CMP     AL,3
-        JZ      AssembleDoneIPOK
+        JZ      AssembleDoneIPOK2
         JMP     ProgIPOverflow
+AssembleDoneIPOK2:
+        JMP     AssembleDoneIPOK
 
@@ -112,10 +114,13 @@
         CMP     BYTE [AddrMode],4
-        JB      AssembleProgIPOverflow
+        JB      AssembleProgIPOverflow2
         ADD     WORD [ProgIP][4],1
         ADC     WORD [ProgIP][6],0
-        JC      AssembleProgIPOverflow
+        JC      AssembleProgIPOverflow2
         JMP     AssembleDoneIPOK
+AssembleProgIPOverflow2:
+        JMP     AssembleProgIPOverflow
+
 AssUpdateEIP:
         CMP     BYTE [AddrMode],1
-        JZ      AssembleProgIPOverflow
+        JZ      AssembleProgIPOverflow2
         ADD     WORD [ProgIP][2],1
@@ -123,2 +128,4 @@
         JMP     AssembleDoneIPOK
+AssembleExtraChars2:
+        JMP     AssembleExtraChars
 
@@ -127,3 +134,3 @@
         CMP     AL,EndOfLine
-        JNZ     AssembleExtraChars
+        JNZ     AssembleExtraChars2
 AssembleFile:
diff -rU1 asmpp.old/direcw16.asm asmpp/direcw16.asm
--- asmpp.old/direcw16.asm      2024-02-07 02:11:12 +0000
+++ asmpp/direcw16.asm  2026-05-09 21:26:40 +0000
@@ -749,4 +749,6 @@
         CALL    GetStrFile
+        .386
         CMP     DI,OFFSET StrBuffer
         JZ      IncludeInvalidFile
+        .8086
         XOR     AL,AL
@@ -804,4 +806,6 @@
         CALL    GetStrFile
+        .386
         CMP     DI,OFFSET StrBuffer
         JZ      OptionStubInvalidFile
+        .8086
         MOV     AL,0
@@ -1115,2 +1119,2 @@
 
-DirectivesWEnd:
\ No newline at end of file
+DirectivesWEnd:
diff -rU1 asmpp.old/nstrctns/sseavx/avxkrrm.asm asmpp/nstrctns/sseavx/avxkrrm.asm
--- asmpp.old/nstrctns/sseavx/avxkrrm.asm       2024-02-07 02:11:12 +0000
+++ asmpp/nstrctns/sseavx/avxkrrm.asm   2026-05-09 21:26:14 +0000
@@ -175,4 +175,6 @@
 
+.386
                CMP BYTE [NextChar], Comma
-               JZ      AVX_GetParams_Comma
+               JZ AVX_GetParams_Comma
+.8086
 
@@ -196,4 +198,6 @@
 
+.386
                CMP AL, OpenCBracket
                JZ      AVX_GetParams_CurlyBracket
+.8086
                CMP     AL, Keyword
@@ -209,4 +213,6 @@
 CALL _PrintChar, WORD ('_')
+.386
     CMP AL,EndOfLine
     JZ  AVX_GetParams_Done_1
+.8086
 CALL _PrintChar, WORD ('=')
@@ -352,4 +358,6 @@
 ;              JZ AVX_GetParams_Curly_Len4
+.386
                CMP CX, 1
                JZ AVX_GetParams_Curly_Len1
+.8086
 

 

Complete thread:

Back to the forum
Board view  Mix view
23449 Postings in 2213 Threads, 407 registered users (0 online)
DOS ain't dead | Admin contact
RSS Feed
powered by my little forum