comp.lang.ada
 help / color / mirror / Atom feed
* Port IO with Gnat
@ 2008-08-31 13:15 levy.david.c
  2008-08-31 21:06 ` anon
  2008-09-01 12:41 ` Stephen Leake
  0 siblings, 2 replies; 7+ messages in thread
From: levy.david.c @ 2008-08-31 13:15 UTC (permalink / raw)


Could anyone point me at how to do simple port IO under Windows XP
with GNAT 2005?

Thanks

Dave



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Port IO with Gnat
  2008-08-31 13:15 Port IO with Gnat levy.david.c
@ 2008-08-31 21:06 ` anon
  2008-09-26  0:34   ` levy.david.c
  2008-09-01 12:41 ` Stephen Leake
  1 sibling, 1 reply; 7+ messages in thread
From: anon @ 2008-08-31 21:06 UTC (permalink / raw)


-- There is a workable example in the gnat doc that comes with GNAT.
-- But these you routine should give you and idea.  

--
--  If your using x86 processors
--
procedure Out_Byte ( Port : unsigned_16 ;
                       Data : unsigned_8 ) is

  begin -- Out_Byte
    Asm ( Template => "outb %%al, %%dx"  & ASCII.LF,
          Inputs => ( Unsigned_8'Asm_Input ( "a", Data ),
                      Unsigned_16'Asm_Input ( "d", Port ) 
                      ),
          Volatile => True ) ;
  end Out_Byte ;


function In_Byte ( Port : unsigned_16 ) return unsigned_8 is

    Data : unsigned_8 ;

  begin -- In_Byte
    Asm ( Template => "inb  %%dx, %%al"  & ASCII.LF,
          Inputs   =>  Unsigned_16'Asm_Input ( "d", Port ),
          Outputs => Unsigned_8'Asm_Output ( "=a", Data ),
          Volatile => True ) ;
    return Data ;
  end In_Byte ;


In <6e0427b4-4871-4e51-a1b1-696136aa45a6@i20g2000prf.googlegroups.com>, levy.david.c@gmail.com writes:
>Could anyone point me at how to do simple port IO under Windows XP
>with GNAT 2005?
>
>Thanks
>
>Dave




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Port IO with Gnat
  2008-08-31 13:15 Port IO with Gnat levy.david.c
  2008-08-31 21:06 ` anon
@ 2008-09-01 12:41 ` Stephen Leake
  2008-09-01 14:50   ` Gary Scott
  1 sibling, 1 reply; 7+ messages in thread
From: Stephen Leake @ 2008-09-01 12:41 UTC (permalink / raw)


levy.david.c@gmail.com writes:

> Could anyone point me at how to do simple port IO under Windows XP
> with GNAT 2005?

I think the best answer is that there is no such thing as "simple port
IO" under Windows XP.

What, specifically, are you trying to do?

-- 
-- Stephe



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Port IO with Gnat
  2008-09-01 12:41 ` Stephen Leake
@ 2008-09-01 14:50   ` Gary Scott
  0 siblings, 0 replies; 7+ messages in thread
From: Gary Scott @ 2008-09-01 14:50 UTC (permalink / raw)


Stephen Leake wrote:

> levy.david.c@gmail.com writes:
> 
> 
>>Could anyone point me at how to do simple port IO under Windows XP
>>with GNAT 2005?
> 
> 
> I think the best answer is that there is no such thing as "simple port
> IO" under Windows XP.
> 
> What, specifically, are you trying to do?
> 
There is a library targeted at Fortran that should be pretty easy to use:

http://www.microglyph.com/prdpag.html


-- 

Gary Scott
mailto:garylscott@sbcglobal dot net

Fortran Library:  http://www.fortranlib.com

Support the Original G95 Project:  http://www.g95.org
-OR-
Support the GNU GFortran Project:  http://gcc.gnu.org/fortran/index.html

If you want to do the impossible, don't hire an expert because he knows 
it can't be done.

-- Henry Ford



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Port IO with Gnat
  2008-08-31 21:06 ` anon
@ 2008-09-26  0:34   ` levy.david.c
  2008-09-26  1:32     ` Steve
  0 siblings, 1 reply; 7+ messages in thread
From: levy.david.c @ 2008-09-26  0:34 UTC (permalink / raw)


On Sep 1, 7:06 am, a...@anon.org (anon) wrote:
> -- There is a workable example in the gnat doc that comes with GNAT.
> -- But these you routine should give you and idea.  
>
> --
> --  If your using x86 processors
> --
> procedure Out_Byte ( Port : unsigned_16 ;
>                        Data : unsigned_8 ) is
>
>   begin -- Out_Byte
>     Asm ( Template => "outb %%al, %%dx"  & ASCII.LF,
>           Inputs => ( Unsigned_8'Asm_Input ( "a", Data ),
>                       Unsigned_16'Asm_Input ( "d", Port )
>                       ),
>           Volatile => True ) ;
>   end Out_Byte ;
>
> function In_Byte ( Port : unsigned_16 ) return unsigned_8 is
>
>     Data : unsigned_8 ;
>
>   begin -- In_Byte
>     Asm ( Template => "inb  %%dx, %%al"  & ASCII.LF,
>           Inputs   =>  Unsigned_16'Asm_Input ( "d", Port ),
>           Outputs => Unsigned_8'Asm_Output ( "=a", Data ),
>           Volatile => True ) ;
>     return Data ;
>   end In_Byte ;
>
> In <6e0427b4-4871-4e51-a1b1-696136aa4...@i20g2000prf.googlegroups.com>,levy.davi...@gmail.com writes:
> >Could anyone point me at how to do simple port IO under Windows XP
> >with GNAT 2005?
>
> >Thanks
>
> >Dave
>
>

Unfortunately this does not work because of Windows XP's security,
which disallows port io.

How does one ask XP for permission to do the port IO from GNAT?

Thanks

Dave



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Port IO with Gnat
  2008-09-26  0:34   ` levy.david.c
@ 2008-09-26  1:32     ` Steve
  2008-09-26  3:32       ` anon
  0 siblings, 1 reply; 7+ messages in thread
From: Steve @ 2008-09-26  1:32 UTC (permalink / raw)


<levy.david.c@gmail.com> wrote in message 
news:de90dcd1-8540-446b-9926-06d671416736@i20g2000prf.googlegroups.com...
On Sep 1, 7:06 am, a...@anon.org (anon) wrote:
> -- There is a workable example in the gnat doc that comes with GNAT.
> -- But these you routine should give you and idea.
>
> --
> -- If your using x86 processors
> --
> procedure Out_Byte ( Port : unsigned_16 ;
> Data : unsigned_8 ) is
>
> begin -- Out_Byte
> Asm ( Template => "outb %%al, %%dx" & ASCII.LF,
> Inputs => ( Unsigned_8'Asm_Input ( "a", Data ),
> Unsigned_16'Asm_Input ( "d", Port )
[snip]

Unfortunately this does not work because of Windows XP's security,
which disallows port io.

How does one ask XP for permission to do the port IO from GNAT?

Thanks

Dave

A quick search on "port io from xp" (on ixquick) finds:

http://www.geekhideout.com/iodll.shtml

There is an IO.DLL that does the grubby work for you, so all you have to do 
is use the DLL.

Regards,
Steve

BTW: Some times my newsreader (outlook express) doesn't qoute replies 
properly (sometimes it does)... sorry 





^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Port IO with Gnat
  2008-09-26  1:32     ` Steve
@ 2008-09-26  3:32       ` anon
  0 siblings, 0 replies; 7+ messages in thread
From: anon @ 2008-09-26  3:32 UTC (permalink / raw)


It depends on the XP or Vista security mode.  With the security mode active 
a program must request and be granted rights to use the I/O instructions.  
Check Win security apps for those routines. Once rights have been granted 
the routines works perfectly. But, if the OS does not give the rights then a 
"System I/O Access" exception will occur if you try to execute any I/O 
instruction.  There are other ways (hacked) but microsoft and some schools 
do not support those and it may void any hardware warranties on new 
equipment or get one expelled.

But in either case, you will need to write an Ada Interface package to import 
those routines to Ada.

In <3aydnfE84t4XpkHVnZ2dnUVZ_uqdnZ2d@comcast.com>, "Steve" <nospam_steved94@comcast.net> writes:
><levy.david.c@gmail.com> wrote in message 
>news:de90dcd1-8540-446b-9926-06d671416736@i20g2000prf.googlegroups.com...
>On Sep 1, 7:06 am, a...@anon.org (anon) wrote:
>> -- There is a workable example in the gnat doc that comes with GNAT.
>> -- But these you routine should give you and idea.
>>
>> --
>> -- If your using x86 processors
>> --
>> procedure Out_Byte ( Port : unsigned_16 ;
>> Data : unsigned_8 ) is
>>
>> begin -- Out_Byte
>> Asm ( Template => "outb %%al, %%dx" & ASCII.LF,
>> Inputs => ( Unsigned_8'Asm_Input ( "a", Data ),
>> Unsigned_16'Asm_Input ( "d", Port )
>[snip]
>
>Unfortunately this does not work because of Windows XP's security,
>which disallows port io.
>
>How does one ask XP for permission to do the port IO from GNAT?
>
>Thanks
>
>Dave
>
>A quick search on "port io from xp" (on ixquick) finds:
>
>http://www.geekhideout.com/iodll.shtml
>
>There is an IO.DLL that does the grubby work for you, so all you have to do 
>is use the DLL.
>
>Regards,
>Steve
>
>BTW: Some times my newsreader (outlook express) doesn't qoute replies 
>properly (sometimes it does)... sorry 
>
>




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2008-09-26  3:32 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-31 13:15 Port IO with Gnat levy.david.c
2008-08-31 21:06 ` anon
2008-09-26  0:34   ` levy.david.c
2008-09-26  1:32     ` Steve
2008-09-26  3:32       ` anon
2008-09-01 12:41 ` Stephen Leake
2008-09-01 14:50   ` Gary Scott

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox