From 091a25b25d90ce4466d4f5a0e15b806fc1417fe8 Mon Sep 17 00:00:00 2001 From: Stephen Heumann Date: Sun, 31 Jan 2021 20:26:51 -0600 Subject: [PATCH] Update the debugging format for long long values. For now, "long long" is represented with the existing code for the SANE comp format, since their representation is the same except for the comp NaN. This allows existing debuggers that support comp to work with it. The code for "unsigned long long" includes the unsigned flag, so it is unambiguous. --- Debugger.md | 4 ++-- Symbol.pas | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Debugger.md b/Debugger.md index bb88635..d9aa97e 100644 --- a/Debugger.md +++ b/Debugger.md @@ -105,14 +105,14 @@ The following table shows the format used to store the variable’s current valu 7 Pascal-style string 8 character 9 boolean - 10 SANE COMP number + 10 SANE COMP number or 8-byte integer 11 pointer 12 structure, union or record 13 derived type 14 object -One-byte integers default to unsigned, while two-byte and four-byte integers default to signed format. `OR`ing the format code with `$40` reverses this default, giving signed one-byte integers or unsigned four-byte integers. (The signed flag is not supported by PRIZM 1.1.3.) +One-byte integers default to unsigned, while two-byte, four-byte, and eight-byte integers default to signed format. `OR`ing the format code with `$40` reverses this default, giving signed one-byte integers or unsigned four-byte integers. (The signed flag is not supported by PRIZM 1.1.3.) A pointer to a scalar type (1-10) is indicated by `OR`ing the value’s format code with `$80`. For example, `$82` would be a pointer to a 4-byte integer. diff --git a/Symbol.pas b/Symbol.pas index 5cc2c1a..5b5c4f4 100644 --- a/Symbol.pas +++ b/Symbol.pas @@ -982,6 +982,8 @@ var cgDouble: val := $04; cgComp: val := $0A; cgExtended: val := $05; + cgQuad: val := $0A; {same as comp} + cgUQuad: val := $4A; otherwise: val := $01; end; {case} CnOut(val | modifiers); {write the format byte}