From 884b834195437214188a09e3d5cf6313374ca6d3 Mon Sep 17 00:00:00 2001 From: Robert Pengelly Date: Thu, 19 Sep 2024 00:23:19 +0100 Subject: [PATCH] Overrite/append based on insert key --- build/chimaera.img | Bin 368640 -> 368640 bytes build/chimaera.vhd | Bin 34120704 -> 34120704 bytes src/apps/pcomm/cbreak.asm | 31 -------------- src/apps/pcomm/pcomm.asm | 88 ++++++++++++++++++++++++++++++++++++-- src/kernel/int23.asm | 4 +- 5 files changed, 86 insertions(+), 37 deletions(-) diff --git a/build/chimaera.img b/build/chimaera.img index ba8e0bfeed27209aa84ff3bb1d5c7c4524cf86c6..3a86ddacd4e7672947429944b112c67088e2b842 100644 GIT binary patch delta 4311 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 fS