News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

A New Testbed for MASM32 Forum

Started by frktons, September 21, 2010, 05:25:26 PM

Previous topic - Next topic

frktons

Quote from: Antariy on November 08, 2010, 01:07:08 AM
Quote from: frktons on November 08, 2010, 01:05:28 AM
On my pc it takes about 6.120 CPU cycles

So - 2 bytes per clock.


Tomorrow I'll add the test for 386 code, and for PUNPCKLBW because what we
are really doing is converting a BYTE string into a WORD string.  :P

Frank
Mind is like a parachute. You know what to do in order to use it :-)

frktons

I'm actually stuck with an error during assembling probably regarding
the macro for timing:


Microsoft (R) Macro Assembler Version 10.00.30319.01
Copyright (C) Microsoft Corporation.  All rights reserved.

Assembling: K:\NewTestBed\Beta 0.60\NewTestBed.asm
K:\NewTestBed\Beta 0.60\NewTestBed.asm(671) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(674) : error A2108:use of register assumed to ERROR
counter_begin(51): Macro Called From
  K:\NewTestBed\Beta 0.60\NewTestBed.asm(674): Main Line Code
K:\NewTestBed\Beta 0.60\NewTestBed.asm(676) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(684) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(703) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(723) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(732) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(744) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(750) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(768) : error A2108:use of register assumed to ERROR
K:\NewTestBed\Beta 0.60\NewTestBed.asm(772) : fatal error A1010:unmatched block nesting : Main
_
Assembly Error
Press any key to continue . . .



attached the program I'm trying to assemble.
If anybody can give me an hand looking for the error/s I'll be
glad.  ::)

Frank
Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Frank, after this piece you addeded:

; ###########################################################################
; ---------------------------------------------------------------------------
;  Second Algo to test - Uses 386 opcodes
; ---------------------------------------------------------------------------
; ###########################################################################

    .data

    Algo2Desc        BYTE  "Use 386 - Proposed by Frank",0
    Algo2DescSize    DWORD SIZEOF Algo2Desc
    Algo2Size        DWORD EndAlgo2 - Algo2
    Algo2SizeStr     BYTE  8 DUP (?)
    PtrAlgo2SizeStr  DWORD Algo2SizeStr


place tag:

.code


I.e. is needed to be:

; ###########################################################################
; ---------------------------------------------------------------------------
;  Second Algo to test - Uses 386 opcodes
; ---------------------------------------------------------------------------
; ###########################################################################

    .data

    Algo2Desc        BYTE  "Use 386 - Proposed by Frank",0
    Algo2DescSize    DWORD SIZEOF Algo2Desc
    Algo2Size        DWORD EndAlgo2 - Algo2
    Algo2SizeStr     BYTE  8 DUP (?)
    PtrAlgo2SizeStr  DWORD Algo2SizeStr
    .code ; <--- THIS




Alex

frktons

OK, I found it. I forget to put the .code in the second chunk of code
for II Algo to test.

Thanks Alex.

Attached new one and results.

Frank
Mind is like a parachute. You know what to do in order to use it :-)

Antariy


│01 Use MMX - Proposed by Alex    │ 62      │ 11.830   │ 11.703   │ 11.731   │ 11.707   ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│02 Use 386 - Proposed by Frank   │ 43      │ 18.635   │ 18.765   │ 18.686   │ 18.835   ││


I guess, it is worth to make not saving of "screen", but the text-based table, with tab delims etc.

frktons

Quote from: Antariy on November 08, 2010, 02:28:11 AM

│01 Use MMX - Proposed by Alex    │ 62      │ 11.830   │ 11.703   │ 11.731   │ 11.707   ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│02 Use 386 - Proposed by Frank   │ 43      │ 18.635   │ 18.765   │ 18.686   │ 18.835   ││


I guess, it is worth to make not saving of "screen", but the text-based table, with tab delims etc.


I was thinking to  add a Text option to save the text only. But it'll come later.
For the time being there are a lot of other things to do.
If you have time and want to do it, feel free to code a PROC to extract
the text from the result screen, ready to be written to a file or to copy to
Windows clipboard.


     Algorithm notes          │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4
──────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────
Use MMX - Proposed by Alex    │ 62      │ 6.961    │ 6.960    │ 6.980    │ 6.984
──────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────
Use 386 - Proposed by Frank   │ 43      │ 10.234   │ 10.234   │ 10.231   │ 10.231



Frank
Mind is like a parachute. You know what to do in order to use it :-)

frktons

By the way, even now the interface is already more user friendly:

┌────────────────────────────────────────────────────────────────────────────────────────┐
│OS  : Microsoft Windows 7 Ultimate Edition, 64-bit (build 7600)                         │
│CPU : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz with MMX, SSE1, SSE2, SSE3, SSSE3           │
│                                                                                        │
│Test: Conversion of a screen buffer from DOS to Windows CHAR_INFO structure             │
├─────────────────────────────────┬─────────┬──────────┬──────────┬──────────┬──────────┬┤
│        Algorithm notes          │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4 ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│01 Use MMX - Proposed by Alex    │ 62      │ 7.032    │ 6.986    │ 6.982    │ 6.992    ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│02 Use 386 - Proposed by Frank   │ 43      │ 10.240   │ 10.210   │ 10.225   │ 10.256   ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤


than previous versions used on the Forum.
Copying it into the Windows clipboard could make it even more user friendly to post
the results on the Forum.  :bg

Frank
Mind is like a parachute. You know what to do in order to use it :-)

frktons

A test on another machine:


┌────────────────────────────────────────────────────────────────────────────────────────┐
│OS  : Microsoft Windows XP Professional Service Pack 3 (build 2600)                     │
│CPU : Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz with MMX, SSE1, SSE2, SSE3, SSSE3      │
│                                                                                        │
│Test: Conversion of a screen buffer from DOS to Windows CHAR_INFO structure             │
├─────────────────────────────────┬─────────┬──────────┬──────────┬──────────┬──────────┬┤
│        Algorithm notes          │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4 ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│01 Use MMX - Proposed by Alex    │ 62      │ 8.000    │ 8.089    │ 8.095    │ 8.132    ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│02 Use 386 - Proposed by Frank   │ 43      │ 10.280   │ 10.264   │ 10.258   │ 10.256   ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
Mind is like a parachute. You know what to do in order to use it :-)

frktons

Some improvements towards RC1:

ESC - exit immediately
E-Key - ask confirmation
Right Alignment of formatted numbers
Some new PROC
Some minor change in the Screen command line
Some adaptation towards Display Mode 12/24 Algos.
.....

Enjoy


┌────────────────────────────────────────────────────────────────────────────────────────┐
│OS  : Microsoft Windows 7 Ultimate Edition, 64-bit (build 7600)                         │
│CPU : Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz with MMX, SSE1, SSE2, SSE3, SSSE3           │
│                                                                                        │
│Test: Conversion of a screen buffer from DOS to Windows CHAR_INFO structure             │
├─────────────────────────────────┬─────────┬──────────┬──────────┬──────────┬──────────┬┤
│        Algorithm notes          │Proc Size│ Test # 1 │ Test # 2 │ Test # 3 │ Test # 4 ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│01 Alex / MMX - PUNPCKLBW        │   62    │    5.992 │    5.988 │    5.985 │    5.987 ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│02 Frank / 486 - MOV-BSWAP       │   43    │    8.200 │    8.195 │    8.237 │    8.181 ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│03                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│04                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│05                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│06                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│07                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│08                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│09                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│10                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│11                               │         │          │          │          │          ││
├─────────────────────────────────┼─────────┼──────────┼──────────┼──────────┼──────────┼┤
│12                               │         │          │          │          │          ││
├─────────────────────────────────┴─────────┴──────────┴──────────┴──────────┴──────────┴┤
│ Esc   Exit    F1     Copy        Run       View       Save       Display 12 Help       │
└────────────────────────────────────────────────────────────────────────────────────────┘


Attached new release.  :eek

Frank
Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Quote from: frktons on November 09, 2010, 01:30:10 AM
ESC - exit immediately
E Key - ask confirmation

I guess, needed to switch keys - press Esc - ask for exit, press E - exit immediately.
Reason: if user wants to exit, and not save results - then exit must be intentional. To prove intentional exit, user must find and press E key. Because Esc is not needed to be found  :bg

Antariy


frktons

Quote from: Antariy on November 09, 2010, 01:36:59 AM
Quote from: frktons on November 09, 2010, 01:30:10 AM
ESC - exit immediately
E Key - ask confirmation

I guess, needed to switch keys - press Esc - ask for exit, press E - exit immediately.
Reason: if user wants to exit, and not save results - then exit must be intentional. To prove intentional exit, user must find and press E key. Because Esc is not needed to be found  :bg


and
Quote from: Antariy on November 09, 2010, 01:38:34 AM
For what will serve Display item?


Display will switch between 12 Algos Display Mode and 24 Algos Display Mode.
It will be completed next release.  :P
I've just started preparing variables, buffers, and I need to implement the logic.
It'll be the most challenging task in the program. Some days and it'll be ready.

ESC - we are used to press it to exit, and it is easy to use and find.
Many people, if any, will just copy and paste to the forum the content of the
Screen and will not bother to save the Screen with attributes, zip it and attach it.

My guess is I'll use it for my personal taste this option, and almost nobody will.
So when I want to save the Screen I have to look for the E-Key before exiting.

Just the opposite point of view, but still a good one.  :lol

Frank
Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Quote from: frktons on November 09, 2010, 01:44:22 AM
Just the opposite point of view, but still a good one.  :lol

:bg


What if integrate help-pop into the program? Just, I guess, release version must have no additional files - for being simple to using and sharing.

frktons

Quote from: Antariy on November 09, 2010, 01:48:12 AM
:bg

What if integrate help-pop into the program? Just, I guess, release version must have no additional files - for being simple to using and sharing.

Of course it will.  :U
Final release will have no external file at all.  :bg

Now I change it all the time, so it is not the right time to do it.

Frank
Mind is like a parachute. You know what to do in order to use it :-)

Antariy

Quote from: frktons on November 09, 2010, 01:51:31 AM
Final release will have no external file at all ...

... and test-bed must be self destructable - to not mess a hard disk of the tester  :P  :bg