From bbd3c4dea4bc62761c191c1a13395694e7d1a393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Szostak?= Date: Wed, 1 May 2024 18:15:50 +0200 Subject: [PATCH] Floats should work for sure now --- src/shardware.adb | 2 +- src/sillymachine.adb | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/shardware.adb b/src/shardware.adb index dc267f5..85f8c41 100644 --- a/src/shardware.adb +++ b/src/shardware.adb @@ -124,7 +124,7 @@ package body Shardware is Mantissa := Mantissa + 1.0; Result := Sign * Mantissa * (2.0 ** (Exponent - 127)); elsif Exponent = 255 and Mantissa = 0.0 then - Result := 1.0 / Zero; + Result := Sign * 1.0 / Zero; elsif Exponent = 0 then Result := 1.0 + Sign * Mantissa * (2.0 ** (Exponent - 127)); else diff --git a/src/sillymachine.adb b/src/sillymachine.adb index ab36d50..e3eca53 100644 --- a/src/sillymachine.adb +++ b/src/sillymachine.adb @@ -149,8 +149,10 @@ begin --Put_Line(Unsigned_32'Image(RegisterU(0))); --Put_Line(Unsigned_32'Image(RegisterU(1))); - Put_Line(Integer'Image(RegisterI(0))); - Put_Line(Integer'Image(RegisterI(1))); + --Put_Line(Integer'Image(RegisterI(0))); + --Put_Line(Integer'Image(RegisterI(1))); + Put_Line(Float'Image(RegisterF(0))); + Put_Line(Float'Image(RegisterF(1))); PC := PC + 16; -- increment program counter to next instruction end loop;