diff --git a/erlang/apps/as/src/assemble.erl b/erlang/apps/as/src/assemble.erl
index e30c1b7..24b823a 100644
--- a/erlang/apps/as/src/assemble.erl
+++ b/erlang/apps/as/src/assemble.erl
@@ -153,7 +153,7 @@ dot_ascii_image(#s_dot_ascii{z = Z, strings = Strings}, _Tunit, _SectionName, Do
dot_byte_image(#s_dot_byte{exprs = Exprs}, Tunit, SectionName, Dot) ->
integer_data_directive(Exprs, Tunit, SectionName, Dot, _Size = 1, _Context = byte,
- fun(Value) -> Value band ?PDP10_UINT9_MAX end).
+ fun(Value) -> Value band ?UINT9_MAX end).
dot_long_image(#s_dot_long{exprs = Exprs}, Tunit, SectionName, Dot) ->
integer_data_directive(Exprs, Tunit, SectionName, Dot, _Size = 4, _Context = long,
@@ -287,25 +287,25 @@ make_abs36_h(Value) when Value >= 0, Value =< ((1 bsl 32) - 1), (Value band 1) =
make_abs36(Value) ->
case Value of
- _ when Value >= 0, Value =< ?PDP10_UINT36_MAX ->
+ _ when Value >= 0, Value =< ?UINT36_MAX ->
Value;
- _ when Value >= ?PDP10_INT36_MIN, Value =< ?PDP10_INT36_MAX ->
+ _ when Value >= ?INT36_MIN, Value =< ?INT36_MAX ->
Value band ((1 bsl 36) - 1)
end.
make_abs18(Value) ->
case Value of
- _ when Value >= 0, Value =< ?PDP10_UINT18_MAX ->
+ _ when Value >= 0, Value =< ?UINT18_MAX ->
Value;
- _ when Value >= ?PDP10_INT18_MIN, Value =< ?PDP10_INT18_MAX ->
+ _ when Value >= ?INT18_MIN, Value =< ?INT18_MAX ->
Value band ((1 bsl 18) - 1)
end.
make_abs9(Value) ->
case Value of
- _ when Value >= 0, Value =< ?PDP10_UINT9_MAX ->
+ _ when Value >= 0, Value =< ?UINT9_MAX ->
Value;
- _ when Value >= ?PDP10_INT9_MIN, Value =< ?PDP10_INT9_MAX ->
+ _ when Value >= ?INT9_MIN, Value =< ?INT9_MAX ->
Value band ((1 bsl 9) - 1)
end.
diff --git a/erlang/apps/as/src/output.erl b/erlang/apps/as/src/output.erl
index 9baccd2..4afbaaf 100644
--- a/erlang/apps/as/src/output.erl
+++ b/erlang/apps/as/src/output.erl
@@ -295,7 +295,7 @@ elf36_Sym_image(ElfSym) ->
elf36_Addr_image(Addr) -> uint36_image(Addr).
elf36_Half_image(Half) -> uint18_image(Half).
elf36_Off_image(Off) -> uint36_image(Off).
-elf36_Sword_image(Sword) -> uint36_image(Sword band ?PDP10_UINT36_MAX).
+elf36_Sword_image(Sword) -> uint36_image(Sword band ?UINT36_MAX).
elf36_Word_image(Word) -> uint36_image(Word).
elf36_Uchar_image(Uchar) -> uint9_image(Uchar).
diff --git a/erlang/apps/ld/src/ld_output.erl b/erlang/apps/ld/src/ld_output.erl
index e43611b..c4b19d8 100644
--- a/erlang/apps/ld/src/ld_output.erl
+++ b/erlang/apps/ld/src/ld_output.erl
@@ -276,7 +276,7 @@ apply_reloc(Type, Value, Word) ->
Address = Value div 4,
%% TODO: check that location and value are in same section
%% TODO: handle cross-section references
- {ok, (Word band bnot ?PDP10_UINT18_MAX) bor (Address band ?PDP10_UINT18_MAX)};
+ {ok, (Word band bnot ?UINT18_MAX) bor (Address band ?UINT18_MAX)};
?R_PDP10_EFIW ->
0 = (Value band 3), % assert alignment
Address = Value div 4,
@@ -287,23 +287,23 @@ apply_reloc(Type, Value, Word) ->
0 = (Value band 3), % assert alignment
Address = Value div 4,
%% TODO: handle non-zero sections
- 0 = (Address band bnot ?PDP10_UINT18_MAX), % assert section
- {ok, Address band ?PDP10_UINT18_MAX};
+ 0 = (Address band bnot ?UINT18_MAX), % assert section
+ {ok, Address band ?UINT18_MAX};
?R_PDP10_LOCAL_B ->
Address = Value div 4,
%% TODO: handle non-zero sections
- 0 = (Address band bnot ?PDP10_UINT18_MAX), % assert section
+ 0 = (Address band bnot ?UINT18_MAX), % assert section
P = (3 - (Value band 3)) * 9, % P \in {0, 9, 18, 27}
S = 9,
- {ok, (P bsl 30) bor (S bsl 24) bor (Address band ?PDP10_UINT18_MAX)};
+ {ok, (P bsl 30) bor (S bsl 24) bor (Address band ?UINT18_MAX)};
?R_PDP10_LOCAL_H ->
0 = (Value band 1), % assert alignment
Address = Value div 4,
%% TODO: handle non-zero sections
- 0 = (Address band bnot ?PDP10_UINT18_MAX), % assert section
+ 0 = (Address band bnot ?UINT18_MAX), % assert section
P = (2 - (Value band 3)) * 9, % P \in {0, 18}
S = 18,
- {ok, (P bsl 30) bor (S bsl 24) bor (Address band ?PDP10_UINT18_MAX)};
+ {ok, (P bsl 30) bor (S bsl 24) bor (Address band ?UINT18_MAX)};
?R_PDP10_GLOBAL_B ->
Address = Value div 4,
0 = (Address band bnot ((1 bsl 30) - 1)), % assert
@@ -315,13 +315,13 @@ apply_reloc(Type, Value, Word) ->
PS = 8#75 + ((Value band 2) bsr 1),
{ok, (PS bsl 30) bor (Address band ((1 bsl 30) - 1))};
?R_PDP10_LITERAL_W ->
- Value = (Value band ?PDP10_UINT36_MAX), % assert
+ Value = (Value band ?UINT36_MAX), % assert
{ok, Value};
?R_PDP10_LITERAL_H ->
- Value = (Value band ?PDP10_UINT18_MAX), % assert
+ Value = (Value band ?UINT18_MAX), % assert
{ok, Value};
?R_PDP10_LITERAL_B ->
- Value = (Value band ?PDP10_UINT9_MAX), % assert
+ Value = (Value band ?UINT9_MAX), % assert
{ok, Value}
end.
diff --git a/erlang/apps/lib/include/libelf.hrl b/erlang/apps/lib/include/libelf.hrl
index 6a94bc1..406e1cc 100644
--- a/erlang/apps/lib/include/libelf.hrl
+++ b/erlang/apps/lib/include/libelf.hrl
@@ -29,7 +29,7 @@
-ifndef(LIBELF_HRL).
-define(LIBELF_HRL, 1).
--include("pdp10_stdint.hrl").
+-include("stdint.hrl").
-type uint8_t() :: 0..((1 bsl 8) - 1).
-type uint16_t() :: 0..((1 bsl 16) - 1).
diff --git a/erlang/apps/lib/include/pdp10_ar.hrl b/erlang/apps/lib/include/pdp10_ar.hrl
index f6bf7df..f6de5e5 100644
--- a/erlang/apps/lib/include/pdp10_ar.hrl
+++ b/erlang/apps/lib/include/pdp10_ar.hrl
@@ -1,7 +1,7 @@
%%% -*- erlang-indent-level: 2 -*-
%%%
%%% pdp10_ar.hrl -- AR definitions for pdp10-elf
-%%% Copyright (C) 2013-2023 Mikael Pettersson
+%%% Copyright (C) 2013-2025 Mikael Pettersson
%%%
%%% This file is part of pdp10-tools.
%%%
@@ -28,7 +28,7 @@
-ifndef(PDP10_AR_HRL).
-define(PDP10_AR_HRL, 1).
--include_lib("lib/include/pdp10_stdint.hrl"). % uint9_t()
+-include_lib("lib/include/stdint.hrl"). % uint9_t()
-define(PDP10_ARMAG, [$!, $<, $a, $r, $c, $h, $>, $\n]). % String that begins an archive file.
-define(PDP10_SARMAG, 8). % Size of that string.
diff --git a/erlang/apps/lib/include/pdp10_stdint.hrl b/erlang/apps/lib/include/pdp10_stdint.hrl
deleted file mode 100644
index 221866c..0000000
--- a/erlang/apps/lib/include/pdp10_stdint.hrl
+++ /dev/null
@@ -1,58 +0,0 @@
-%%% -*- erlang-indent-level: 2 -*-
-%%%
-%%% pdp10_stdint.hrl -- stdint.h for PDP10
-%%% Copyright (C) 2013-2023 Mikael Pettersson
-%%%
-%%% This file is part of pdp10-tools.
-%%%
-%%% pdp10-tools is free software: you can redistribute it and/or modify
-%%% it under the terms of the GNU General Public License as published by
-%%% the Free Software Foundation, either version 3 of the License, or
-%%% (at your option) any later version.
-%%%
-%%% pdp10-tools is distributed in the hope that it will be useful,
-%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
-%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-%%% GNU General Public License for more details.
-%%%
-%%% You should have received a copy of the GNU General Public License
-%%% along with pdp10-tools. If not, see .
-%%%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%%%
-%%% Provide stdint.h-like type names and macros for 9, 18, and 36-bit integers.
-%%%
-%%% Standard {u,}int_t types must not contain any extraneous bits, but that
-%%% cannot be guaranteed for these 9, 18, and 36-bit types embedded in Erlang
-%%% integers of unbounded precision. For arithmetic on these types, use the
-%%% operations provided by pdp10_arith.
-%%%
-%%% Do not use these 18 or 36-bit types for file-level binary data structures,
-%%% instead use the pdp10_extint and pdp10_stdio facilities to explicitly
-%%% convert between file-level and host-level binary data structures.
-
--ifndef(PDP10_STDINT_HRL).
--define(PDP10_STDINT_HRL, 1).
-
--define(PDP10_UINT9_MAX, ((1 bsl 9) - 1)).
--type uint9_t() :: 0..?PDP10_UINT9_MAX.
-
--define(PDP10_INT9_MAX, ((1 bsl (9 - 1)) - 1)).
--define(PDP10_INT9_MIN, (-?PDP10_INT9_MAX - 1)).
--type int9_t() :: ?PDP10_INT9_MIN..?PDP10_INT9_MAX.
-
--define(PDP10_UINT18_MAX, ((1 bsl 18) - 1)).
--type uint18_t() :: 0..?PDP10_UINT18_MAX.
-
--define(PDP10_INT18_MAX, ((1 bsl (18 - 1)) - 1)).
--define(PDP10_INT18_MIN, (-?PDP10_INT18_MAX - 1)).
--type int18_t() :: ?PDP10_INT18_MIN..?PDP10_INT18_MAX.
-
--define(PDP10_UINT36_MAX, ((1 bsl 36) - 1)).
--type uint36_t() :: 0..?PDP10_UINT36_MAX.
-
--define(PDP10_INT36_MAX, ((1 bsl (36 - 1)) - 1)).
--define(PDP10_INT36_MIN, (-?PDP10_INT36_MAX - 1)).
--type int36_t() :: ?PDP10_INT36_MIN..?PDP10_INT36_MAX.
-
--endif. % PDP10_STDINT_HRL
diff --git a/erlang/apps/lib/include/stdint.hrl b/erlang/apps/lib/include/stdint.hrl
new file mode 100644
index 0000000..e851870
--- /dev/null
+++ b/erlang/apps/lib/include/stdint.hrl
@@ -0,0 +1,49 @@
+%%% -*- erlang-indent-level: 2 -*-
+%%%
+%%% stdint.hrl -- stdint.h for Erlang
+%%% Copyright (C) 2013-2025 Mikael Pettersson
+%%%
+%%% This file is part of pdp10-tools.
+%%%
+%%% pdp10-tools is free software: you can redistribute it and/or modify
+%%% it under the terms of the GNU General Public License as published by
+%%% the Free Software Foundation, either version 3 of the License, or
+%%% (at your option) any later version.
+%%%
+%%% pdp10-tools is distributed in the hope that it will be useful,
+%%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%%% GNU General Public License for more details.
+%%%
+%%% You should have received a copy of the GNU General Public License
+%%% along with pdp10-tools. If not, see .
+%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+%%% Provide stdint.h-like type names and macros for 9, 18, and 36-bit integers.
+
+-ifndef(STDINT_HRL).
+-define(STDINT_HRL, 1).
+
+-define(UINT9_MAX, ((1 bsl 9) - 1)).
+-type uint9_t() :: 0..?UINT9_MAX.
+
+-define(INT9_MAX, ((1 bsl (9 - 1)) - 1)).
+-define(INT9_MIN, (-?INT9_MAX - 1)).
+-type int9_t() :: ?INT9_MIN..?INT9_MAX.
+
+-define(UINT18_MAX, ((1 bsl 18) - 1)).
+-type uint18_t() :: 0..?UINT18_MAX.
+
+-define(INT18_MAX, ((1 bsl (18 - 1)) - 1)).
+-define(INT18_MIN, (-?INT18_MAX - 1)).
+-type int18_t() :: ?INT18_MIN..?INT18_MAX.
+
+-define(UINT36_MAX, ((1 bsl 36) - 1)).
+-type uint36_t() :: 0..?UINT36_MAX.
+
+-define(INT36_MAX, ((1 bsl (36 - 1)) - 1)).
+-define(INT36_MIN, (-?INT36_MAX - 1)).
+-type int36_t() :: ?INT36_MIN..?INT36_MAX.
+
+-endif. % STDINT_HRL
diff --git a/erlang/apps/lib/src/libelf.erl b/erlang/apps/lib/src/libelf.erl
index 64e03ce..fe59ce8 100644
--- a/erlang/apps/lib/src/libelf.erl
+++ b/erlang/apps/lib/src/libelf.erl
@@ -38,7 +38,7 @@
]).
-include_lib("lib/include/libelf.hrl").
--include_lib("lib/include/pdp10_stdint.hrl").
+-include_lib("lib/include/stdint.hrl").
-type read_field() :: fun((pdp10_stdio:file())
-> {ok, integer()} | {error, {module(), term()}}).
@@ -733,7 +733,7 @@ read(FP, N, ConvFun, Acc) ->
write_Addr(FP, UInt36) -> write_uint36(FP, UInt36).
write_Half(FP, UInt18) -> write_uint18(FP, UInt18).
write_Off(FP, UInt36) -> write_uint36(FP, UInt36).
-write_Sword(FP, SInt36) -> write_uint36(FP, SInt36 band ?PDP10_UINT36_MAX).
+write_Sword(FP, SInt36) -> write_uint36(FP, SInt36 band ?UINT36_MAX).
write_Uchar(FP, UInt9) -> write_uint9(FP, UInt9).
write_Word(FP, UInt36) -> write_uint36(FP, UInt36).
diff --git a/erlang/apps/lib/src/pdp10_extint.erl b/erlang/apps/lib/src/pdp10_extint.erl
index 1118dbf..a419f5d 100644
--- a/erlang/apps/lib/src/pdp10_extint.erl
+++ b/erlang/apps/lib/src/pdp10_extint.erl
@@ -1,7 +1,7 @@
%%% -*- erlang-indent-level: 2 -*-
%%%
%%% converts between 18 and 36-bit integers and sequences of nonets
-%%% Copyright (C) 2013-2019 Mikael Pettersson
+%%% Copyright (C) 2013-2025 Mikael Pettersson
%%%
%%% This file is part of pdp10-tools.
%%%
@@ -26,29 +26,29 @@
, uint36_from_ext/1
]).
--include_lib("lib/include/pdp10_stdint.hrl").
+-include_lib("lib/include/stdint.hrl").
%% The PDP10 is big-endian, so the conversions here are big-endian.
%% The bytes (nonets) are numbered in storage order.
-spec uint18_to_ext(uint18_t()) -> [uint9_t()].
uint18_to_ext(U18) ->
- [_B0 = (U18 bsr 9) band ?PDP10_UINT9_MAX, _B1 = U18 band ?PDP10_UINT9_MAX].
+ [_B0 = (U18 bsr 9) band ?UINT9_MAX, _B1 = U18 band ?UINT9_MAX].
-spec uint18_from_ext([uint9_t()]) -> uint18_t().
uint18_from_ext([B0, B1]) ->
- ((B0 band ?PDP10_UINT9_MAX) bsl 9) bor (B1 band ?PDP10_UINT9_MAX).
+ ((B0 band ?UINT9_MAX) bsl 9) bor (B1 band ?UINT9_MAX).
-spec uint36_to_ext(uint36_t()) -> [uint9_t()].
uint36_to_ext(U36) ->
- [_B0 = (U36 bsr 27) band ?PDP10_UINT9_MAX,
- _B1 = (U36 bsr 18) band ?PDP10_UINT9_MAX,
- _B2 = (U36 bsr 9) band ?PDP10_UINT9_MAX,
- _B3 = U36 band ?PDP10_UINT9_MAX].
+ [_B0 = (U36 bsr 27) band ?UINT9_MAX,
+ _B1 = (U36 bsr 18) band ?UINT9_MAX,
+ _B2 = (U36 bsr 9) band ?UINT9_MAX,
+ _B3 = U36 band ?UINT9_MAX].
-spec uint36_from_ext([uint9_t()]) -> uint36_t().
uint36_from_ext([B0, B1, B2, B3]) ->
- ((B0 band ?PDP10_UINT9_MAX) bsl 27) bor
- ((B1 band ?PDP10_UINT9_MAX) bsl 18) bor
- ((B2 band ?PDP10_UINT9_MAX) bsl 9) bor
- (B3 band ?PDP10_UINT9_MAX).
+ ((B0 band ?UINT9_MAX) bsl 27) bor
+ ((B1 band ?UINT9_MAX) bsl 18) bor
+ ((B2 band ?UINT9_MAX) bsl 9) bor
+ (B3 band ?UINT9_MAX).