summaryrefslogtreecommitdiff
path: root/compiler/ogrel.pas
diff options
context:
space:
mode:
authornickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-06-22 14:13:54 +0000
committernickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2>2020-06-22 14:13:54 +0000
commitb683d4e91889d3d0c79b57068e10fbe492c9968d (patch)
tree6ae149258bdb42f09ec32f881c02d40701e3249f /compiler/ogrel.pas
parent140a20adf80298a071a56b497040d976c26ba9b4 (diff)
downloadfpc-b683d4e91889d3d0c79b57068e10fbe492c9968d.tar.gz
* limit the ZX Spectrum programs address space up to $FDFC, because the RTL now
installs an interrupt handler at $FDFD git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@45678 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/ogrel.pas')
-rw-r--r--compiler/ogrel.pas20
1 files changed, 20 insertions, 0 deletions
diff --git a/compiler/ogrel.pas b/compiler/ogrel.pas
index bc527f8104..fce7d07cf4 100644
--- a/compiler/ogrel.pas
+++ b/compiler/ogrel.pas
@@ -131,6 +131,13 @@ interface
constructor create;override;
end;
+ { TZXSpectrumIntelHexExeOutput }
+
+ TZXSpectrumIntelHexExeOutput = class(TIntelHexExeOutput)
+ public
+ constructor create;override;
+ end;
+
implementation
uses
@@ -1322,6 +1329,19 @@ implementation
end;
{*****************************************************************************
+ TZXSpectrumIntelHexExeOutput
+*****************************************************************************}
+
+ constructor TZXSpectrumIntelHexExeOutput.create;
+ begin
+ inherited create;
+ { The ZX Spectrum RTL switches to interrupt mode 2, and install an
+ interrupt handler + table, starting at address $FDFD, so we must limit
+ program size to $FDFC }
+ MaxMemPos:=$FDFC;
+ end;
+
+{*****************************************************************************
Initialize
*****************************************************************************}
const