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, 09.05.2026, 09:58

> I am really curious how you convert the source syntax. AFAIK, all the
> assemblers have their unique quirks and syntax can differ.

I'm not using a formal grammar parser generator or anything complex like that. Usually it's just me editing a Sed script.
(I also often went out of my way to avoid any dependency on Sed at all by using normal programming languages like Pascal or REXX.)


@echo off
REM ASM++ (African Assembler) 24.02

::#--- fix1.sed begins ---
:: /^$/d
:: /^;/d
:: s/ *;.*//
:: s/^ *//
:: /^A[sS][sS][uU][mM][eE]/d
:: /^D[BW] /b
:: / D[BWD] /{
:: h
:: s/^\([A-Z][^ ]*\)[ ] *DB .*/s, \\[\1\\], byte\&,/w fix2.sed
:: g
:: b
:: }
:: /^[A-Z][^ ]*:/{
:: s//&\n/
:: P
:: D
:: }
:: s/^ *//
:: /^LEA /{
:: s/LEA \(.*\),/MOV \1,OFFSET /
:: b
:: }
:: /^MOV /{
:: /,O[fF]/{
:: s/\[0\]//
:: b
:: }
:: /Word Ptr /s///
:: /40:/s///
:: }
:: /[+]BX/s//][BX/
:: /\[[0-9]\]/s/\([A-Z][a-zA-Z][a-zA-Z][a-zA-Z0-9]*\)\(\[[0-9]\]\)/[\1]\2/
:: s/^\([ID][NE]C\)[ ] *\([A-Z][A-Za-z][A-Za-z][^ ]*\)/\1 [\2]/
:: /,/{
:: s/\([A-Z][a-zA-Z][a-zA-Z][a-zA-Z0-9]*\),/[\1],/
:: s/,\([A-Z][a-zA-Z][a-zA-Z][^ ]*\)/,[\1]/
:: }
:: /^RemoveNewInt9[ ] *PROC/,/^DrawBunkers[ ] *PROC/s/\[\([^0]\)/[cs:\1/
::#--- fix1.sed ends ---

if not exist invaders.asm goto end
if not exist %0 %0.bat %1

if "%SED%"=="" set SED=sed

echo.
echo %%SED%% = '%SED%'
echo.

%SED% -n -e "/\.sed begins ---/,/ ends ---$/s/^::[ ] *//w fix1.sed" %0
if not exist fix1.sed goto end
%SED% -f fix1.sed invaders.asm | %SED% -e "/\[/!b" -f fix2.sed >invap.app

ap.exe /jo invap
if not exist invap.com goto end

echo.
echo invap.com       9A476DE7
crc32 invap.com
echo.

if "%1"=="notclean" goto end
del fix?.sed >NUL
del invap.app >NUL

:end
if "%SED%"=="sed" set SED=

 

Complete thread:

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