From 594e54df976beb4fb9f4b761c49357061c28fcb0 Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Sun, 16 May 2021 07:14:16 +0100 Subject: [PATCH] Correct protection error when accessing system base in Atari ST. --- setter/src/atarist/os.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/setter/src/atarist/os.c b/setter/src/atarist/os.c index 09102ab..01dd101 100644 --- a/setter/src/atarist/os.c +++ b/setter/src/atarist/os.c @@ -39,7 +39,7 @@ Copyright (C) 2011-2021 Natalia Portillo void GetOsInfo() { - OSHEADER* osHeader = (OSHEADER*)_sysbase; + OSHEADER* osHeader; unsigned short version; long** cookieJar = _p_cookies; long cookie = 0; @@ -48,6 +48,15 @@ void GetOsInfo() struct _stemu_vars* stemu_vars; struct _tos2win_vars* tos2win_vars; MAGX_COOKIE* magic_vars; + int32_t savessp; + + // Retrieve the OS data in Supervisor mode + savessp = Super(0L); + osHeader = *((OSHEADER**)_sysbase); + Super((void*)savessp); + + // Due to old AHDI bug + osHeader = osHeader->os_beg; version = Sversion();