https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4f4be5c4989208be46088…
commit 4f4be5c4989208be46088dbaff3015e4b32d3f51
Author: Joachim Henze <joachim.henze(a)reactos.org>
AuthorDate: Thu Sep 26 00:49:29 2024 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Thu Sep 26 00:49:29 2024 +0200
[FREELDR] Print arch + buildnumber on crash-screen (#7382)
This commit tries to improve the quality of the screenshots that we do get posted in JIRA,
where we couldn't even see up to now which build and arch was run.
This is in the wider context of CORE6762
(I intentionally left out the minus in the CORE-ID to prevent auto-linkage to that ticket)
---
boot/freeldr/freeldr/arch/i386/i386bug.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/boot/freeldr/freeldr/arch/i386/i386bug.c b/boot/freeldr/freeldr/arch/i386/i386bug.c
index 7e03deacdcb..1276ddad9bc 100644
--- a/boot/freeldr/freeldr/arch/i386/i386bug.c
+++ b/boot/freeldr/freeldr/arch/i386/i386bug.c
@@ -1,6 +1,7 @@
#include <freeldr.h>
+#include <reactos/buildno.h>
#include <debug.h>
typedef struct _FRAME
@@ -115,7 +116,7 @@ i386PrintExceptionText(ULONG TrapIndex, PKTRAP_FRAME TrapFrame, PKSPECIAL_REGIST
i386_ScreenPosX = 0;
i386_ScreenPosY = 0;
- PrintText("An error occured in " VERSION "\n"
+ PrintText("FreeLdr " KERNEL_VERSION_STR " " KERNEL_VERSION_BUILD_STR "\n"
"Report this error on the ReactOS Bug Tracker: https://jira.reactos.org\n\n"
"0x%02lx: %s\n\n", TrapIndex, i386ExceptionDescriptionText[TrapIndex]);
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=064d6d3427eef07c3b47c…
commit 064d6d3427eef07c3b47c9ffb30e1058241f6147
Author: Mahir Gül <mahirgul(a)gmail.com>
AuthorDate: Thu Sep 26 00:12:19 2024 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Thu Sep 26 00:12:19 2024 +0200
[MSPAINT] Update Turkish (tr-TR) translation (#7371)
---
base/applications/mspaint/lang/tr-TR.rc | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/base/applications/mspaint/lang/tr-TR.rc b/base/applications/mspaint/lang/tr-TR.rc
index 7030caf87b6..911eeabf84a 100644
--- a/base/applications/mspaint/lang/tr-TR.rc
+++ b/base/applications/mspaint/lang/tr-TR.rc
@@ -4,6 +4,7 @@
* PURPOSE: Turkish resource file
* TRANSLATORS: Copyright 2013-2016, 2019 Erdem Ersoy (eersoy93) <erdemersoy(a)erdemersoy.net>
* Copyright 2021-2022 Süleyman Poyraz <zaryob.dev(a)gmail.com>
+ * Copyright 2024 Mahir Gül <mahirgul(a)gmail.com>
*/
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
@@ -269,8 +270,8 @@ BEGIN
IDS_UNDERLINE "Altı Çizgili"
IDS_VERTICAL "Düşey"
IDS_PRINTRES "%d x %d pixel/cm"
- IDS_CANTPASTE "Failed to paste from the clipboard. The data format is either incorrect or not supported."
- IDS_SAVEERROR "Failed to save the bitmap to file:\n\n%s"
- IDS_CANTSENDMAIL "Failed to send a mail."
- IDS_LOSECOLOR "The color information will be lost in this operation. Are you sure to proceed?"
+ IDS_CANTPASTE "Panodan yapıştırma işlemi başarısız oldu. Veri biçimi ya yanlış ya da desteklenmiyor."
+ IDS_SAVEERROR "Bit eşlemi dosyaya kaydedilemedi:\n\n%s"
+ IDS_CANTSENDMAIL "Posta gönderilemedi."
+ IDS_LOSECOLOR "Bu işlem sırasında renk bilgisi kaybolacaktır. Devam edeceğinizden emin misiniz?"
END
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=840d39b9d09a1bce487c6…
commit 840d39b9d09a1bce487c651e880049ee577cf8be
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Sep 22 21:37:36 2024 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Wed Sep 25 13:24:08 2024 +0200
[FREELDR] i386/pc/pcdisk.c: Fix LBA reads retry loop (#7367)
When the Int 13h AH=42h "Extended read" function fails, the disk address
packet's LBA block count is reset to the number of blocks that have been
successfully transferred. This is more or less fine, unless one wants to
ensure the exact number of sectors gets read.
If the function fails so that zero sectors were read, the retry loop is
restarted, but with the packet's LBA block count member reset, as per
the documentation. (In this example, it is reset to zero.) Then, at the
next retry attempt, zero sectors are requested to be read, and this time
of course, the call succeeds... Wrongly, of course, this is not what's
expected.
Therefore, for each retry, the LBA block count member should be set
again to the correct number of sectors to read. There are maximum 3
retries, so the retry loop will stop anyway, but the LBA read will now
correctly fail and return FALSE, as expected.
This problem doesn't exist in the retry loop for the Int 13h, AH=02h
"Read Disk Sectors" CHS function, because here, the call is made only
using registers, and we use a pair of RegsIn/RegsOut. RegsOut receives
the modified register values, but the input RegsIn stays unchanged.
---
boot/freeldr/freeldr/arch/i386/pc/pcdisk.c | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c b/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c
index 40492457c86..28e7fd66a76 100644
--- a/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c
+++ b/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c
@@ -570,14 +570,13 @@ PcDiskReadLogicalSectorsLBA(
RtlZeroMemory(Packet, sizeof(*Packet));
Packet->PacketSize = sizeof(*Packet);
Packet->Reserved = 0;
- Packet->LBABlockCount = (USHORT)SectorCount;
- ASSERT(Packet->LBABlockCount == SectorCount);
+ // Packet->LBABlockCount set in the loop.
Packet->TransferBufferOffset = ((ULONG_PTR)Buffer) & 0x0F;
Packet->TransferBufferSegment = (USHORT)(((ULONG_PTR)Buffer) >> 4);
Packet->LBAStartBlock = SectorNumber;
/*
- * BIOS int 0x13, function 42h - IBM/MS INT 13 Extensions - EXTENDED READ
+ * BIOS Int 13h, function 42h - IBM/MS INT 13 Extensions - EXTENDED READ
* Return:
* CF clear if successful
* AH = 00h
@@ -586,7 +585,7 @@ PcDiskReadLogicalSectorsLBA(
* Disk address packet's block count field set to the
* number of blocks successfully transferred.
*/
- RegsIn.b.ah = 0x42; // Subfunction 42h
+ RegsIn.b.ah = 0x42;
RegsIn.b.dl = DriveNumber; // Drive number in DL (0 - floppy, 0x80 - harddisk)
RegsIn.x.ds = BIOSCALLBUFSEGMENT; // DS:SI -> disk address packet
RegsIn.w.si = BIOSCALLBUFOFFSET;
@@ -594,6 +593,12 @@ PcDiskReadLogicalSectorsLBA(
/* Retry 3 times */
for (RetryCount = 0; RetryCount < 3; ++RetryCount)
{
+ /* Restore the number of blocks to transfer, since it gets reset
+ * on failure with the number of blocks that were successfully
+ * transferred (and which could be zero). */
+ Packet->LBABlockCount = (USHORT)SectorCount;
+ ASSERT(Packet->LBABlockCount == SectorCount);
+
Int386(0x13, &RegsIn, &RegsOut);
/* If it worked return TRUE */
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=4190b4892448cd73574c0…
commit 4190b4892448cd73574c0886cc189a2a8e106b5a
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Sep 22 19:00:42 2024 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Wed Sep 25 13:05:07 2024 +0200
[FREELDR] Fix the seg:off values when dumping the extended drive parameters (#7367)
(By the way, it's "EDD": "Enhanced Disk Drive", not "EED"...)
The 13th and 14th USHORTs (at offsets 0x1A-0x1D) in the retrieved buffer
from the INT 13h, AH=48h "Get Extended Drive Parameters" function,
correspond respectively to the offset and the segment of the "EDD
configuration parameters", see http://www.ctyme.com/intr/rb-0715.htm
Fixes code introduced in commit b3f11cfb38 (r17484).
----
16 years ago, these values were wrongly stored in the returned buffer
by VirtualBox, see https://www.virtualbox.org/ticket/2848 .
This has been fixed since VBox 2.1.0 in commit 15712 (22 Dec. 2008):
https://www.virtualbox.org/changeset/15712/vbox
This problem was also noticed earlier (07 Mar. 2008) and fixed in Xen:
https://lists.xenproject.org/archives/html/xen-devel/2008-03/msg00229.html
This bug originated from Bochs, from which the two projects above
adapted their rombios.c code. It was fixed on 08-09 Oct. 2007 by
Myles Watson, see https://sourceforge.net/p/bochs/mailman/message/13777090/
and included in Bochs 1.15x and 1.185+
https://sourceforge.net/p/bochs/mailman/message/12953093/https://sourceforge.net/p/bochs/mailman/message/12953094/
---
boot/freeldr/freeldr/arch/i386/pc/pcdisk.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c b/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c
index 550c424d15d..40492457c86 100644
--- a/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c
+++ b/boot/freeldr/freeldr/arch/i386/pc/pcdisk.c
@@ -338,14 +338,15 @@ DiskGetExtendedDriveParameters(
TRACE("number of physical cylinders on drive: %u\n", *(PULONG)&Ptr[2]);
TRACE("number of physical heads on drive: %u\n", *(PULONG)&Ptr[4]);
TRACE("number of physical sectors per track: %u\n", *(PULONG)&Ptr[6]);
- TRACE("total number of sectors on drive: %I64u\n", *(unsigned long long*)&Ptr[8]);
+ TRACE("total number of sectors on drive: %I64u\n", *(PULONGLONG)&Ptr[8]);
TRACE("bytes per sector: %u\n", Ptr[12]);
if (Ptr[0] >= 0x1e)
{
- TRACE("EED configuration parameters: %x:%x\n", Ptr[13], Ptr[14]);
+ // Ptr[13]: offset, Ptr[14]: segment
+ TRACE("EDD configuration parameters: %x:%x\n", Ptr[14], Ptr[13]);
if (Ptr[13] != 0xffff && Ptr[14] != 0xffff)
{
- PUCHAR SpecPtr = (PUCHAR)(ULONG_PTR)((Ptr[13] << 4) + Ptr[14]);
+ PUCHAR SpecPtr = (PUCHAR)(ULONG_PTR)((Ptr[14] << 4) + Ptr[13]);
TRACE("SpecPtr: %x\n", SpecPtr);
TRACE("physical I/O port base address: %x\n", *(PUSHORT)&SpecPtr[0]);
TRACE("disk-drive control port address: %x\n", *(PUSHORT)&SpecPtr[2]);