|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5214 (0x145e)
Types: TextFile
Notes: R1k Text-file segment
└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
└─⟦cfc2e13cd⟧ »Space Info Vol 2«
└─⟦4034421d9⟧
└─⟦this⟧
with system; use system;
with v_i_pass; use v_i_pass;
with unchecked_conversion;
package v_i_libop is
pragma not_elaborated;
pragma suppress(EXCEPTION_TABLES);
pragma suppress(ALL_CHECKS);
---- for image and value attributes ---------------------
type target_integer is new integer;
type target_dv_integer is new integer;
type dv_rec is
record
char_size: target_dv_integer;
low: target_dv_integer;
high: target_dv_integer;
size: target_dv_integer;
end record;
type dv_ptr is access dv_rec;
pragma local_access(dv_ptr);
type image_rec is
record
width: integer;
count: integer;
images: string(1 .. 1);
end record;
type image_ptr is access image_rec;
pragma local_access(image_ptr);
type pv_arr is array(target_integer range 0 .. 0) of target_integer;
type pv_ptr is access pv_arr;
pragma local_access(pv_ptr);
type char_ptr is access character;
pragma local_access(char_ptr);
function atoc is new unchecked_conversion(address, char_ptr);
function enum_image ( map: image_ptr; val: target_integer; dv: dv_ptr)
return address;
function enum_value ( str: address; dv: dv_ptr; image: image_ptr)
return target_integer;
function enum_width ( map: image_ptr; low, high: target_integer)
return target_integer;
function int_image ( val: target_integer; image: address; dv: dv_ptr)
return address;
function int_value ( str: address; dv: dv_ptr; lb, ub: target_integer)
return target_integer;
function int_width ( low: target_integer; high: target_integer)
return target_integer;
------ val/pos support --------------------------------------
function val_to_pos ( val: target_integer; pv_map: pv_ptr)
return target_integer;
------ bit support ------------------------------------------
procedure bitcopy(
bits: integer;
src_base: address;
src_bit_offset: integer;
dst_base: address;
dst_bit_offset: integer);
function biteq(
bits: integer;
lhs_base: address;
lhs_bit_offset: integer;
rhs_base: address;
rhs_bit_offset: integer)
return boolean;
-- catenation support ---------------------------------------------
procedure lib_catenate(arg_list_p: address; new_dv: dv_ptr);
-- block memory support -------------------------------------------
procedure bcopy( src_addr, dst_addr: address; lgth: integer);
procedure bzero ( addr: address; lgth: integer);
-- Compare 2 strings of characters given their address and the length.
-- Condition codes are left for the calling procedure.
procedure cmpc3 ( addr1: address; addr2: address; lgth: integer);
-- Compare 2 strings of chars with possibly different lengths.
-- Condition codes are left for the calling procedure.
procedure cmpc4(addr1:address; lgth1:integer; addr2:address; lgth2:integer);
-- Compare 2 strings of longs with possibly different lengths.
-- Condition codes are left for the calling procedure.
procedure cmpl4(addr1:address; lgth1:integer; addr2:address; lgth2:integer);
-- Compare 2 strings of words with possibly different lengths.
-- Condition codes are left for the calling procedure.
procedure cmpw4(addr1:address; lgth1:integer; addr2:address; lgth2:integer);
-- Copy a block of memory from one address to another.
-- Handles overlapping segments of memory.
procedure movc3 ( addr1: address; addr2: address; lgth: integer);
-- fixed point support --------------------------------------------
function fixed_mantissa(low: target_integer; high: target_integer)
return target_integer;
-- string support --------------------------------------------
procedure strncpy(dest: system.address; src: system.address; len: integer);
private
pragma interface(Ada, fixed_mantissa);
pragma interface_name(fixed_mantissa, "FIXED_MANTISSA");
pragma interface(Ada, movc3);
pragma interface_name(movc3, "MOVC3");
pragma interface(Ada, cmpw4);
pragma interface_name(cmpw4, "CMPW4");
pragma interface(Ada, cmpl4);
pragma interface_name(cmpl4, "CMPL4");
pragma interface(Ada, cmpc4);
pragma interface_name(cmpc4, "CMPC4");
pragma interface(Ada, cmpc3);
pragma interface_name(cmpc3, "CMPC3");
pragma interface(Ada, bzero);
pragma interface_name(bzero, "BZERO");
pragma interface(Ada, bcopy);
pragma interface_name(bcopy, "BCOPY");
pragma interface(Ada, biteq);
pragma interface_name(biteq, "BITEQ");
pragma interface(Ada, bitcopy);
pragma interface_name(bitcopy, "BITCOPY");
pragma interface(Ada,val_to_pos);
pragma interface_name (val_to_pos, "VAL_TO_POS");
pragma interface(Ada,int_width);
pragma interface_name (int_width, "INT_WIDTH");
pragma interface(Ada,int_value);
pragma interface_name (int_value, "INT_VALUE");
pragma interface(Ada,int_image);
pragma interface_name (int_image, "INT_IMAGE");
pragma interface(Ada,enum_width);
pragma interface_name (enum_width, "ENUM_WIDTH");
pragma interface(Ada,enum_value);
pragma interface_name (enum_value, "ENUM_VALUE");
pragma interface(Ada,enum_image);
pragma interface_name(enum_image, "ENUM_IMAGE");
pragma interface(Ada, lib_catenate);
pragma interface_name(lib_catenate, "__LIB_CATENATE");
pragma interface(Ada, strncpy);
pragma interface_name(strncpy, "__STRNCPY");
end