From 8897298e11bce9c59144f70c3a8508509dc98a4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Szostak?= Date: Sun, 21 Apr 2024 12:24:42 +0200 Subject: [PATCH] Implemented adding file size to memory size to ensure executable always fits --- src/sillymachine.adb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/sillymachine.adb b/src/sillymachine.adb index e5cf25b..6721441 100644 --- a/src/sillymachine.adb +++ b/src/sillymachine.adb @@ -16,6 +16,7 @@ procedure sillymachine is I : Integer := 0; Value : Byte; + ExecSize : Integer := 0; MemorySize : Integer := 1048576; -- default memory is 1 mb (TODO: figure out why 8 mb produces STORAGE_ERROR) begin @@ -73,6 +74,9 @@ begin MemorySize := 1048576 * Integer'Value(Argument (2)); end if; + ExecSize := Integer(Ada.Directories.Size(FileName)); + MemorySize := MemorySize + ExecSize; + declare MemoryArr : ByteArr (0 .. MemorySize); begin @@ -89,7 +93,7 @@ begin end loop; Bin_IO.Close(F); - for i in 0 .. 15 loop + for i in 0 .. 30 loop Put_Line(Byte'Image(MemoryArr (i))); end loop;