From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!2.eu.feeder.erje.net!feeder.erje.net!border1.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!nzpost2.xs4all.net!news.kpn.nl!not-for-mail Subject: Re: Hardware independent programming Newsgroups: comp.lang.ada References: <5ef9712d$0$1221$e4fe514c@news.kpn.nl> <5efadba5$0$1220$e4fe514c@news.kpn.nl> From: ldries46 Date: Tue, 30 Jun 2020 08:35:15 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.9.0 MIME-Version: 1.0 In-Reply-To: <5efadba5$0$1220$e4fe514c@news.kpn.nl> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Content-Language: en-GB Message-ID: <5efadd23$0$1239$e4fe514c@news.kpn.nl> NNTP-Posting-Host: 01930249.news.kpn.nl X-Trace: G=wAtPM4gH,C=U2FsdGVkX18XlEr6icfcV7sm9KJW3OJ2conXN1AohbHGjikIFbb/Et0gZNe0r+bdVJybWeFBoiniyeiwoh83VePIW/riskQrfNJcktd5rIg= X-Complaints-To: abuse@kpn.nl Xref: reader01.eternal-september.org comp.lang.ada:59255 List-Id: This is how such a Package could look like: with Ada.Environment_Variables; use Ada.Environment_Variables; with Debugging;                 use Debugging; package body Hardware is    function Operation_System return Unbounded_String is       OS : Unbounded_String := To_Unbounded_String("No System");    begin       if Exists("OS") then          OS := To_Unbounded_String(Value("OS"));       end if;       return OS;    end Operation_System;    function Resolution(Screen_nr : positive := 1) return Screen_resolution is       Scr  : Screen_resolution;       str  : Unbounded_String;       Name : Unbounded_String;    begin       str := To_Unbounded_String(integer'image(Screen_nr));       while Slice(str, 1, 1) = " " loop          str := To_Unbounded_String(Slice(str, 2, Length(str)));       end loop;       Name := To_Unbounded_String("Screen_Width_") & str;       if Exists(To_String(Name)) then          Scr.width := integer'value(Value(To_String(Name)));          Print_Line(Name);       end if;       Name := To_Unbounded_String("Screen_Heigth_") & str;       if Exists(To_String(Name)) then          Scr.heigth := integer'value(Value(To_String(Name)));          Print_Line(Name);       end if;       return Scr;    end Resolution; end Hardware;