-
+ D190CE3AEB4C78D22671E7D960508560E04FA0AAE61B1E84B9486B32183DBEE0C829AE81AF30C277F5EC395EC268386640F0486C6113BCA9B96F72BE3D0341C9
ffa/ffacalc/ffa_calc.ads
(0 . 0)(1 . 55)
646 ------------------------------------------------------------------------------
647 ------------------------------------------------------------------------------
648 -- This file is part of 'Finite Field Arithmetic', aka 'FFA'. --
649 -- --
650 -- (C) 2019 Stanislav Datskovskiy ( www.loper-os.org ) --
651 -- http://wot.deedbot.org/17215D118B7239507FAFED98B98228A001ABFFC7.html --
652 -- --
653 -- You do not have, nor can you ever acquire the right to use, copy or --
654 -- distribute this software ; Should you use this software for any purpose, --
655 -- or copy and distribute it to anyone or in any manner, you are breaking --
656 -- the laws of whatever soi-disant jurisdiction, and you promise to --
657 -- continue doing so for the indefinite future. In any case, please --
658 -- always : read and understand any software ; verify any PGP signatures --
659 -- that you use - for any purpose. --
660 -- --
661 -- See also http://trilema.com/2015/a-new-software-licensing-paradigm . --
662 ------------------------------------------------------------------------------
663 ------------------------------------------------------------------------------
664
665 with Limits; use Limits;
666 with FFA_RNG; use FFA_RNG;
667
668
669 package FFA_Calc is
670
671 -- Peh Tapes:
672 subtype Peh_Tape_Range is Positive range 1 .. Max_Peh_TapeSpace;
673 type Peh_Tapes is array(Peh_Tape_Range range <>) of Character;
674
675 -- Possible Verdicts of a non-erroneous Peh Tape run:
676 type Peh_Verdicts is (Yes, No, Mu);
677
678 -- Operator-Selectable Spatial and Time Dimensions of a Peh Machine:
679 type Peh_Dimensions is
680 record
681 Width : Positive;
682 Height : Positive;
683 TapeSpace : Peh_Tape_Range;
684 Life : Natural;
685 end record;
686
687 -- Valid indices into the Control Stack:
688 subtype ControlStack_Range is Natural range 0 .. Peh_Control_Stack_Size;
689 -- The 'zero' position, as with the Data Stack, indicates 'emptiness'
690 -- when pointed to by CSP ( see ffa_calc.adb ) and is never accessed.
691
692 -- Ensure that requested Peh Dimensions are permissible. Terminate if not.
693 procedure Validate_Peh_Dimensions(Dimensions : in Peh_Dimensions);
694
695 -- Start a Peh Machine with the given Dimensions and Tape; return a Verdict.
696 function Peh_Machine(Dimensions : in Peh_Dimensions;
697 Tape : in Peh_Tapes;
698 RNG : in RNG_Device) return Peh_Verdicts;
699
700 end FFA_Calc;