CreativeASM/Assembler/Old Versions
Jump to navigation
Jump to search
← Back to CreativeASM/Assembler
Here are some older versions of the CreativeASM assembler... I will add more in the future...
Version 11.0
@echo off
REM Registers
set ra=
set rb=
set rc=
set rd=
REM Another set
set rax=
set rbx=
set rcx=
set rdx=
REM Special ones
set r=
set s=
set t=
set u=
REM x86 assembly ones
set eax=
set ebx=
set ecx=
set edx=
REM If the file doesn't exist
if not exist %1 (
echo E02: CreativeASM file doesn't exist
echo Backend expection: %1.casm
echo ^^
echo ^| [HERE]
echo.
echo Assembling to %1.bat failed! :(
) else (
goto asm
)
:asm
REM Assembling to Batch...
echo @echo off >> %1.bat
echo set ra= >> %1.bat
echo set rb= >> %1.bat
echo set rc= >> %1.bat
echo set rd= >> %1.bat
echo REM Another set >> %1.bat
echo set rax= >> %1.bat
echo set rbx= >> %1.bat
echo set rcx= >> %1.bat
echo set rdx= >> %1.bat
echo REM Special ones >> %1.bat
echo set r= >> %1.bat
echo set s= >> %1.bat
echo set t= >> %1.bat
echo set u= >> %1.bat
echo REM x86 assembly ones >> %1.bat
echo set eax= >> %1.bat
echo set ebx= >> %1.bat
echo set ecx= >> %1.bat
echo set edx= >> %1.bat
for /F "eol= tokens=1,2,3,4,5* delims= " %%A in (%1) do (
if %%A EQU put (
echo set %%B=%%C %%D %%E %%F >> %1.bat
)
if %%A EQU int if %%C EQU 01h (
echo echo %%%%B%% >> %1.bat
)
if %%A EQU int if %%C EQU 00h (
echo set /p %%B=? >> %1.bat
)
if %%A EQU add (
echo set /a %%D=%%%%B%%+%%%%C%% >> %1.bat
)
if %%A EQU sub (
echo set /a %%D=%%%%B%%-%%%%C%% >> %1.bat
)
if %%A EQU mul (
echo set /a %%D=%%%%B%%*%%%%C%% >> %1.bat
)
if %%A EQU div (
echo set /a %%D=%%%%B%%/%%%%C%% >> %1.bat
)
if %%A EQU @ (
echo REM %%B %%C %%D %%E %%F >> %1.bat
)
if %%A EQU mrk (
echo REM %%B %%C %%D %%E %%F >> %1.bat
)
if %%A EQU bl (
echo echo. >> %1.bat
)
if %%A EQU beqrax (
echo if %%rax%% EQU %%B goto %%C >> %1.bat
)
if %%A EQU beqrbx (
echo if %%rbx%% EQU %%B goto %%C >> %1.bat
)
if %%A EQU beqrcx (
echo if %%rcx%% EQU %%B goto %%C >> %1.bat
)
if %%A EQU beqrdx (
echo if %%rdx%% EQU %%B goto %%C >> %1.bat
)
if %%A EQU lbl (
echo :%%B >> %1.bat
)
if %%A EQU start (
echo :%%B >> %1.bat
)
if %%A EQU slp (
echo pause ^>nul >> %1.bat
)
if %%A EQU jmp (
echo goto %%B >> %1.bat
)
if %%A EQU hal (
echo exit >> %1.bat
)
if %%A EQU clr (
echo cls >> %1.bat
)
if %%A EQU for (
echo for /L %%%%%%B in ^(%%C,%%E,%%D^) do ^( >> %1.bat
)
if %%A EQU endfor (
echo ^) >> %1.bat
)
if %%A EQU tit (
echo title %%B %%C %%D %%E %%F >> %1.bat
)
if %%A EQU cpy (
echo set %%C=%%%%B%% >> %1.bat
)
if %%A EQU mov (
echo set %%C=%%%%B%% >> %1.bat
echo set %%B= >> %1.bat
)
if %%A EQU or (
echo set /a %%D=%%%%B%%^|^|%%%%C%% >> %1.bat
)
if %%A EQU xor (
echo set /a %%D=%%%%B%%^^^^%%%%C%% >> %1.bat
)
if %%A EQU rnd (
echo set /a math=%%D-%%C+1 >> %1.bat
echo set /a %%B=%%random%%%%%%%%math%%+%%C >> %1.bat
)
if %%A EQU slt (
echo ping /n 1 localhost ^>nul >> %1.bat
)
if %%A EQU sls (
echo ping /n 2 localhost ^>nul >> %1.bat
)
if %%A EQU col (
echo color %%B >> %1.bat
)
if %%A EQU dat (
echo echo %%date%% >> %1.bat
)
if %%A EQU tim (
echo echo %%time%% >> %1.bat
)
if %%A NEQ put if %%A NEQ int if %%A NEQ add if %%A NEQ sub if %%A NEQ mul if %%A NEQ div if %%A NEQ @ if %%A NEQ mrk if %%A NEQ beqrax if %%A NEQ beqrbx if %%A NEQ beqrcx if %%A NEQ beqrdx if %%A NEQ lbl if %%A NEQ hal if %%A NEQ slp if %%A NEQ jmp if %%A NEQ clr if %%A NEQ for if %%A NEQ endfor if %%A NEQ mov if %%A NEQ cpy if %%A NEQ start if %%A NEQ bl if %%A NEQ tit if %%A NEQ or if %%A NEQ xor if %%A NEQ rnd if %%A NEQ slt if %%A NEQ sls if %%A NEQ col if %%A NEQ dat if %%A NEQ tim (
echo E01: Instruction not valid, or didn't put comments with "@" or "mrk".
echo Backend expection: %%A
echo ^^
echo ^| [HERE]
echo.
echo Assembled to %1.bat, but with errors! :^|
)
)
echo Assembled to %1.bat! :)