News:

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

winioctl.h

Started by Ian_B, July 29, 2006, 05:12:44 PM

Previous topic - Next topic

ToutEnMasm


It seems i have found a question.
To know the size of c++ defined,i use the code following
evalub (sizeof MEDIA_TYPE ) return 4
A structure with a union of dword seems to be the answer.

But all that is to say that if somebody want to make a translator (not a full)  of the SDK,this can be do.
A work book is needed for that and also all than culd help.
     ToutEnMasm






#include "stdafx.h"
#include "iostream"
#include "conio.h"

using namespace std;
typedef enum _MEDIA_TYPE {
    Unknown,                // Format is unknown
    F5_1Pt2_512,            // 5.25", 1.2MB,  512 bytes/sector
    F3_1Pt44_512,           // 3.5",  1.44MB, 512 bytes/sector
    F3_2Pt88_512,           // 3.5",  2.88MB, 512 bytes/sector
    F3_20Pt8_512,           // 3.5",  20.8MB, 512 bytes/sector
    F3_720_512,             // 3.5",  720KB,  512 bytes/sector
    F5_360_512,             // 5.25", 360KB,  512 bytes/sector
    F5_320_512,             // 5.25", 320KB,  512 bytes/sector
    F5_320_1024,            // 5.25", 320KB,  1024 bytes/sector
    F5_180_512,             // 5.25", 180KB,  512 bytes/sector
    F5_160_512,             // 5.25", 160KB,  512 bytes/sector
    RemovableMedia,         // Removable media other than floppy
    FixedMedia,             // Fixed hard disk media
    F3_120M_512,            // 3.5", 120M Floppy
    F3_640_512,             // 3.5" ,  640KB,  512 bytes/sector
    F5_640_512,             // 5.25",  640KB,  512 bytes/sector
    F5_720_512,             // 5.25",  720KB,  512 bytes/sector
    F3_1Pt2_512,            // 3.5" ,  1.2Mb,  512 bytes/sector
    F3_1Pt23_1024,          // 3.5" ,  1.23Mb, 1024 bytes/sector
    F5_1Pt23_1024,          // 5.25",  1.23MB, 1024 bytes/sector
    F3_128Mb_512,           // 3.5" MO 128Mb   512 bytes/sector
    F3_230Mb_512,           // 3.5" MO 230Mb   512 bytes/sector
    F8_256_128,             // 8",     256KB,  128 bytes/sector
    F3_200Mb_512,           // 3.5",   200M Floppy (HiFD)
    F3_240M_512,            // 3.5",   240Mb Floppy (HiFD)
    F3_32M_512              // 3.5",   32Mb Floppy
} MEDIA_TYPE, *PMEDIA_TYPE;




void main()
{
int a,b,c,d,e,f;
short cfFormat;
unsigned short usFlags;
long evalua ;
_MEDIA_TYPE evalub;
__int16 evaluc ;
__int32 evalud;
float evalue ;
// evalf;

a = sizeof evalua ;// sizeof evalua;
b = sizeof evalub;
c = sizeof evaluc;
d = sizeof evalud;
e = sizeof evalue;
//f = sizeof evaluf; // sizeof f;
//cout<<"Enter a number \n";
//cin>>a;
//cout<<"Enter another number \n";
//cin>>b;
//c= a+b;
cout <<"evalua "<<a ;
_getch();
cout<<" \n evalub "<<b ;
_getch();
cout <<"\n evaluc "<<c ;
_getch();
cout<<" \n evalud "<<d ;
_getch();
cout <<"\n evalue "<<e ;
_getch();

}


hutch--

This seems to work but I am not sure if it is the way people want to do this.


; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««
    include \masm32\include\masm32rt.inc
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

comment * -----------------------------------------------------
                        Build this  template with
                       "CONSOLE ASSEMBLE AND LINK"
        ----------------------------------------------------- *


    MEDIA_TYPE_STRUCT STRUCT
        Unknown           dd ?
        F5_1Pt2_512       dd ?
        F3_1Pt44_512      dd ?
        F3_2Pt88_512      dd ?
        F3_20Pt8_512      dd ?
        F3_720_512        dd ?
        F5_360_512        dd ?
        F5_320_512        dd ?
        F5_320_1024       dd ?
        F5_180_512        dd ?
        F5_160_512        dd ?
        RemovableMedia    dd ?
        FixedMedia        dd ?
        F3_120M_512       dd ?
        F3_640_512        dd ?
        F5_640_512        dd ?
        F5_720_512        dd ?
        F3_1Pt2_512       dd ?
        F3_1Pt23_1024     dd ?
        F5_1Pt23_1024     dd ?
        F3_128Mb_512      dd ?
        F3_230Mb_512      dd ?
        F8_256_128        dd ?
        F3_200Mb_512      dd ?
        F3_240M_512       dd ?
        F3_32M_512        dd ?
    MEDIA_TYPE_STRUCT ENDS

    TEST_ME STRUCT
      itm1 dd 1234
    TEST_ME ENDS

    .data

      testme TEST_ME <>

      MEDIA_TYPE MEDIA_TYPE_STRUCT <000h,001h,002h,003h,004h,005h, \
                                    006h,007h,008h,009h,00Ah,00Bh, \
                                    00Ch,00Dh,00Eh,00Fh,010h,011h, \
                                    012h,013h,014h,015h,016h,017h, \
                                    018h,019h>

    .code

start:
   
; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

    call main
    inkey
    exit

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

main proc

    cls

    print str$(testme.itm1),13,10

    print hex$(MEDIA_TYPE.Unknown),13,10
    print hex$(MEDIA_TYPE.F5_320_1024),13,10
    print hex$(MEDIA_TYPE.FixedMedia),13,10
    print hex$(MEDIA_TYPE.F3_32M_512),13,10

    ret

main endp

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

end start

Download site for MASM32      New MASM Forum
https://masm32.com          https://masm32.com/board/index.php

ninjarider

ok that solved the media zise but what about the Io_Control_Code constants. i have not been able to find them in any inc file.