From c1e17503d12375aa2ce3e32fff0cf3d624f19f13 Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Wed, 14 Aug 2024 09:58:48 +0100 Subject: [PATCH] Load programs only --- build/chimaera.img | Bin 368640 -> 368640 bytes build/chimaera.vhd | Bin 34120704 -> 34120704 bytes src/apps/hello/hello.asm | 169 +++++++++++++++++++++++++++++++++++++++ src/kernel/int21.asm | 70 +++++++++++----- src/kernel/kernel.asm | 2 +- src/kernel/prog.asm | 12 +-- src/lib/crt/crt0.asm | 2 + 7 files changed, 224 insertions(+), 31 deletions(-) diff --git a/build/chimaera.img b/build/chimaera.img index a28c5360de2a52173e1910e83c15486619a68741..b3e0a5e31ae9b55348b009f87f1b27250b64b7f8 100644 GIT binary patch delta 6285 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 delta 6348 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 ScxZS$-i^BAdC>}g&Ho33$y;au diff --git a/build/chimaera.vhd b/build/chimaera.vhd index 2321841972c112fd147baee467c70c6f5ed7fbc9..26c7b5c8a7edac55bfcdf61bab16d2dbb49c7763 100644 GIT binary patch delta 8930 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 delta 8984 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