Author Topic: NewSphinxCmm  (Read 1195 times)

Vortex

  • Member
  • *****
  • Posts: 1733
Re: NewSphinxCmm
« Reply #15 on: May 15, 2017, 05:02:08 AM »
Thanks for the new release. The problem is solved.

Emil_halim

  • Member
  • **
  • Posts: 99
Re: NewSphinxCmm
« Reply #16 on: May 17, 2017, 04:13:40 AM »
Hi all,

Here is a new released of NewSpinxCmm version '252 c b27'.

added UPX commend line which switch C-- to compress the final exe file or not.

useful when debug your code , NewSphinxCmm produces a .tds borland file debug , then converts it to .dbg formate so that you can use x64dbg to debug your code.


Enjoy the power of NewSphinxCmm.

Emil_halim

  • Member
  • **
  • Posts: 99
Re: NewSphinxCmm
« Reply #17 on: June 17, 2017, 02:12:30 AM »
Hi all,

here is a new released version of NewSphinxC-- . see my web.

added const c like keyword.

Test Example
===========
Code: [Select]
/*************************************
*           Sphinx C--               * 
*                                    *
*           const test               *
*                                    *
*         By Emil Halim              *
*                                    *
*************************************/


#pragma option w32c       //create Windows console EXE.
#pragma option OS         //speed optimization


#pragma option dbg
#pragma option lst

#pragma option upx-

#includelib  win32.lib ,ole32.lib , OleAut32.lib , msvcrt.lib

#includepath "$\winlib" 

//#include <windows.h> 
#include <MSVCRT.H-->

const byte by = 200;
byte bym;

const word wr = 660;
word wrv;

const qword qw = 800;
qword qwv;

const int n = 4;
int k;

const float pi = 3.14;
float aa;

const double pi2 = 22/7;
double bb;

main()
{
 //  by = 10;  //fire error because by declared as const
   bym = by;
   
 //  wr = 50;  //fire error because wr declared as const
   wrv = wr;
   
 //  qw = 900;  //fire error because qw declared as const
   qwv = qw;
   
  // n = 1;  //fire error because n declared as const
   k = n;
   printf("%d\n",k);
   
   //pi = 5.2; //fire error because pi declared as const
   aa = pi * 2;
   
   //pi2 = 10.1; //fire error because pi2 declared as const
   bb = pi2*3;
   printf("%f\n",bb);
   
   system("pause");
}

please , if you found any bug , let me know.

Emil_halim

  • Member
  • **
  • Posts: 99
Re: NewSphinxCmm
« Reply #18 on: June 25, 2017, 11:43:11 PM »
Hi all,

I have added a new directive  DQ to CMM just like masm.

here is an text
=========
Code: [Select]
/*************************************
*         New Sphinx  Cmm            * 
*                                    *
*           asm dq test              *
*                                    *
*          be Emil Halim             *         
*                                    *
*************************************/

#pragma option w32c       //create Windows console EXE.
#pragma option OS         //speed optimization

#pragma option dbg
#pragma option lst

#pragma option upx-

#includelib  win32.lib MSVCRT.lib ole32.lib

#includepath "$\winlib" 
#include <windows.h> 
#include <MSVCRT.H-->

#pragma option ia

dq100   : dq 100

dq0     : dq 0

//dq1    : dq  ?      // to be done ....

dqptr   : dq  # dq100

//dqptr1  : dq  offset dq100  // to be done ....

dqarr   : dq 1,2,3,4,5

dqarr1  : dq 5 dup 10

dqdble  : dq 5.10

dqdblearr : dq 1.0,2.0,3.0

dqdblearr1 : dq 5 dup 100.0

main()
{
      unsigned long long pam, sam, tsc;
     
      printf("dq100 = %I64d\n",DSQWORD [ # dq100 ]); 
     
      printf("dq10  = %I64d\n",DSQWORD [ # dq0  ]);
     
      printf("dqptr   = %I64d\n",DSQWORD [  DSDWORD [# dqptr]  ]);
     
      printf("dqarr[0]   = %I64d\n",DSQWORD [  # dqarr + 0 ]);
      printf("dqarr[1]   = %I64d\n",DSQWORD [  # dqarr + 8 ]);
      printf("dqarr[2]   = %I64d\n",DSQWORD [  # dqarr + 16 ]);
      printf("dqarr[4]   = %I64d\n",DSQWORD [  # dqarr + 32 ]);
     
      printf("dqarr1[1]   = %I64d\n",DSQWORD [  # dqarr1 + 8 ]);
     
      printf("dqdble  = %f\n",DSDOUBLE [ # dqdble  ]);
     
      printf("dqdblearr[0]   = %f\n",DSDOUBLE [  # dqdblearr + 0 ]);
      printf("dqdblearr[1]   = %f\n",DSDOUBLE [  # dqdblearr + 8 ]);
      printf("dqdblearr[2]   = %f\n",DSDOUBLE [  # dqdblearr + 16 ]);
     
      printf("dqdblearr[2]   = %f\n",DSDOUBLE [  # dqdblearr1 + 16 ]);
           
      system("pause");
}

the new version is 254 c  , download it form my web site.

 Enjoy coding with NewSphinxCmm.

Emil_halim

  • Member
  • **
  • Posts: 99
Re: NewSphinxCmm
« Reply #19 on: June 27, 2017, 02:04:56 AM »
Hi all,

I have added .if .else .endif .while .endw .repeat .until masm directives.

the new release of NewSphinxCmm ver 255 c is available in my site.

 Enjoy coding with NewSphinxCmm.

Emil_halim

  • Member
  • **
  • Posts: 99
Re: NewSphinxCmm
« Reply #20 on: June 28, 2017, 09:51:29 PM »
Hi all'

NewSphinxCmm ver 256 c is available in my site.

added .break .if directive.

obj file is OMF by default.   

Enjoy coding with NewSphinxCmm.