mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-05 23:22:25 +00:00
ulmIO.Mod changed and now it works with 64 bit longint numbers.
Former-commit-id: bf5bc16cd6
This commit is contained in:
parent
640d71680b
commit
8edb411458
11 changed files with 26 additions and 80 deletions
|
|
@ -1,62 +1 @@
|
|||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
/opt/voc-1.0/lib
|
||||
|
|
|
|||
2
makefile
2
makefile
|
|
@ -145,7 +145,7 @@ stage7:
|
|||
$(ARCHIVE) *.o
|
||||
#$(ARCHIVE) objects
|
||||
$(LD) *.o
|
||||
echo "$(PREFIX)/lib" >> 05vishap.conf
|
||||
echo "$(PREFIX)/lib" > 05vishap.conf
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ stage7:
|
|||
$(ARCHIVE) *.o
|
||||
#$(ARCHIVE) objects
|
||||
$(LD) *.o
|
||||
echo "$(PREFIX)/lib" >> 05vishap.conf
|
||||
echo "$(PREFIX)/lib" > 05vishap.conf
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ stage7:
|
|||
$(ARCHIVE) *.o
|
||||
#$(ARCHIVE) objects
|
||||
$(LD) *.o
|
||||
echo "$(PREFIX)/lib" >> 05vishap.conf
|
||||
echo "$(PREFIX)/lib" > 05vishap.conf
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ stage7:
|
|||
$(ARCHIVE) *.o
|
||||
#$(ARCHIVE) objects
|
||||
$(LD) *.o
|
||||
echo "$(PREFIX)/lib" >> 05vishap.conf
|
||||
echo "$(PREFIX)/lib" > 05vishap.conf
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ stage7:
|
|||
$(ARCHIVE) *.o
|
||||
#$(ARCHIVE) objects
|
||||
$(LD) *.o
|
||||
echo "$(PREFIX)/lib" >> 05vishap.conf
|
||||
echo "$(PREFIX)/lib" > 05vishap.conf
|
||||
|
||||
clean:
|
||||
# rm_objects := rm $(wildcard *.o)
|
||||
|
|
|
|||
BIN
ocat
BIN
ocat
Binary file not shown.
|
|
@ -1 +1 @@
|
|||
3d280e4d53947c30f8b9f62d69afc61518f1f628
|
||||
178817a94acd3bf196f05bcb739ee068c1004f3b
|
||||
|
|
@ -30,16 +30,27 @@ MODULE ulmIO;
|
|||
(* len is the minimal length of the generated string *)
|
||||
(* neg means: "the number is negative" for btyp = dec *)
|
||||
|
||||
CONST
|
||||
NumberLen = 11;
|
||||
(*CONST
|
||||
NumberLen = 11;*)
|
||||
(* we need it as variable to change the value depending on architecture; -- noch *)
|
||||
VAR
|
||||
digits : ARRAY NumberLen+1 OF CHAR;
|
||||
(*digits : ARRAY NumberLen+1 OF CHAR;*)
|
||||
digits : POINTER TO ARRAY OF CHAR;
|
||||
base : INTEGER;
|
||||
cnt, ix : INTEGER;
|
||||
maxlen : LONGINT;
|
||||
dig : LONGINT;
|
||||
|
||||
NumberLen : SHORTINT;
|
||||
BEGIN
|
||||
|
||||
IF SIZE(LONGINT) = 4 THEN
|
||||
NumberLen := 11
|
||||
ELSIF SIZE(LONGINT) = 8 THEN
|
||||
NumberLen := 21
|
||||
ELSE
|
||||
NumberLen := 11 (* default value, corresponds to 32 bit *)
|
||||
END;
|
||||
NEW(digits, NumberLen + 1 );
|
||||
ASSERT(num >= 0);
|
||||
ix := 1;
|
||||
WHILE ix <= NumberLen DO
|
||||
|
|
@ -103,11 +114,7 @@ MODULE ulmIO;
|
|||
CHAR);
|
||||
(* conversion of an integer decimal number to a string *)
|
||||
BEGIN
|
||||
IF num = MIN(LONGINT) THEN
|
||||
COPY("-2147483648", str); (* need fix, it's 32 bit only; -- noch *)
|
||||
ELSE
|
||||
ConvertNumber(ABS(num),len,dec,num < 0,str);
|
||||
END;
|
||||
END ConvertInteger;
|
||||
|
||||
(* ========================= terminal ============================ *)
|
||||
|
|
@ -180,13 +187,13 @@ MODULE ulmIO;
|
|||
END InitIO;
|
||||
|
||||
PROCEDURE WriteInt*(arg: LONGINT);
|
||||
VAR field: ARRAY 12 OF CHAR;
|
||||
BEGIN
|
||||
VAR field: ARRAY 23 OF CHAR;
|
||||
BEGIN (* the field size should be big enough to hold the long number. it was 12 to hold just 32 bit numbers, now it can hold 64 bit numbers; need to be more for 128bit numbers; -- noch *)
|
||||
ConvertInteger(arg, 1, field);
|
||||
WriteString(field);
|
||||
END WriteInt;
|
||||
|
||||
PROCEDURE ReadInt*(VAR arg: INTEGER);
|
||||
PROCEDURE ReadInt*(VAR arg: LONGINT);
|
||||
VAR ch: CHAR;
|
||||
minus: BOOLEAN;
|
||||
BEGIN
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
7e50a6001dfae638682d5c84c73f327515cfcf01
|
||||
9cdb3e113e99a63f2f5f5240dcbcea3d535979c1
|
||||
|
|
@ -1 +1 @@
|
|||
7e50a6001dfae638682d5c84c73f327515cfcf01
|
||||
9cdb3e113e99a63f2f5f5240dcbcea3d535979c1
|
||||
Loading…
Add table
Add a link
Reference in a new issue