* 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