+ added startup code for the medium memory model

git-svn-id: trunk@24820 -
This commit is contained in:
nickysn 2013-06-08 22:41:43 +00:00
parent 5966cc088d
commit cd5255c147
7 changed files with 119 additions and 85 deletions

3
.gitattributes vendored
View File

@ -8262,8 +8262,9 @@ rtl/msdos/crt.pp svneol=native#text/plain
rtl/msdos/dos.pp svneol=native#text/plain rtl/msdos/dos.pp svneol=native#text/plain
rtl/msdos/msmouse.pp svneol=native#text/plain rtl/msdos/msmouse.pp svneol=native#text/plain
rtl/msdos/ports.pp svneol=native#text/plain rtl/msdos/ports.pp svneol=native#text/plain
rtl/msdos/prt0m.asm svneol=native#text/plain
rtl/msdos/prt0s.asm svneol=native#text/plain rtl/msdos/prt0s.asm svneol=native#text/plain
rtl/msdos/prt0st.asm svneol=native#text/plain rtl/msdos/prt0stm.asm svneol=native#text/plain
rtl/msdos/prt0t.asm svneol=native#text/plain rtl/msdos/prt0t.asm svneol=native#text/plain
rtl/msdos/registers.inc svneol=native#text/plain rtl/msdos/registers.inc svneol=native#text/plain
rtl/msdos/sysdir.inc svneol=native#text/plain rtl/msdos/sysdir.inc svneol=native#text/plain

View File

@ -556,223 +556,223 @@ ifeq ($(FULL_TARGET),i8086-msdos)
override TARGET_UNITS+=system uuchar objpas strings dos crt heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo varutils variants types dateutil convutil strutils stdconvs matrix ucomplex getopts fgl classes objects msmouse ports override TARGET_UNITS+=system uuchar objpas strings dos crt heaptrc lineinfo sysconst sysutils math macpas iso7185 rtlconst typinfo varutils variants types dateutil convutil strutils stdconvs matrix ucomplex getopts fgl classes objects msmouse ports
endif endif
ifeq ($(FULL_TARGET),i386-linux) ifeq ($(FULL_TARGET),i386-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-go32v2) ifeq ($(FULL_TARGET),i386-go32v2)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-win32) ifeq ($(FULL_TARGET),i386-win32)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-os2) ifeq ($(FULL_TARGET),i386-os2)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-freebsd) ifeq ($(FULL_TARGET),i386-freebsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-beos) ifeq ($(FULL_TARGET),i386-beos)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-haiku) ifeq ($(FULL_TARGET),i386-haiku)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-netbsd) ifeq ($(FULL_TARGET),i386-netbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-solaris) ifeq ($(FULL_TARGET),i386-solaris)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-qnx) ifeq ($(FULL_TARGET),i386-qnx)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-netware) ifeq ($(FULL_TARGET),i386-netware)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-openbsd) ifeq ($(FULL_TARGET),i386-openbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-wdosx) ifeq ($(FULL_TARGET),i386-wdosx)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-darwin) ifeq ($(FULL_TARGET),i386-darwin)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-emx) ifeq ($(FULL_TARGET),i386-emx)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-watcom) ifeq ($(FULL_TARGET),i386-watcom)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-netwlibc) ifeq ($(FULL_TARGET),i386-netwlibc)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-wince) ifeq ($(FULL_TARGET),i386-wince)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-embedded) ifeq ($(FULL_TARGET),i386-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-symbian) ifeq ($(FULL_TARGET),i386-symbian)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-nativent) ifeq ($(FULL_TARGET),i386-nativent)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-iphonesim) ifeq ($(FULL_TARGET),i386-iphonesim)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i386-android) ifeq ($(FULL_TARGET),i386-android)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-linux) ifeq ($(FULL_TARGET),m68k-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-freebsd) ifeq ($(FULL_TARGET),m68k-freebsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-netbsd) ifeq ($(FULL_TARGET),m68k-netbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-amiga) ifeq ($(FULL_TARGET),m68k-amiga)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-atari) ifeq ($(FULL_TARGET),m68k-atari)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-openbsd) ifeq ($(FULL_TARGET),m68k-openbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-palmos) ifeq ($(FULL_TARGET),m68k-palmos)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),m68k-embedded) ifeq ($(FULL_TARGET),m68k-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-linux) ifeq ($(FULL_TARGET),powerpc-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-netbsd) ifeq ($(FULL_TARGET),powerpc-netbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-amiga) ifeq ($(FULL_TARGET),powerpc-amiga)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-macos) ifeq ($(FULL_TARGET),powerpc-macos)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-darwin) ifeq ($(FULL_TARGET),powerpc-darwin)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-morphos) ifeq ($(FULL_TARGET),powerpc-morphos)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-embedded) ifeq ($(FULL_TARGET),powerpc-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-wii) ifeq ($(FULL_TARGET),powerpc-wii)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc-aix) ifeq ($(FULL_TARGET),powerpc-aix)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),sparc-linux) ifeq ($(FULL_TARGET),sparc-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),sparc-netbsd) ifeq ($(FULL_TARGET),sparc-netbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),sparc-solaris) ifeq ($(FULL_TARGET),sparc-solaris)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),sparc-embedded) ifeq ($(FULL_TARGET),sparc-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-linux) ifeq ($(FULL_TARGET),x86_64-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-freebsd) ifeq ($(FULL_TARGET),x86_64-freebsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-netbsd) ifeq ($(FULL_TARGET),x86_64-netbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-solaris) ifeq ($(FULL_TARGET),x86_64-solaris)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-openbsd) ifeq ($(FULL_TARGET),x86_64-openbsd)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-darwin) ifeq ($(FULL_TARGET),x86_64-darwin)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-win64) ifeq ($(FULL_TARGET),x86_64-win64)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),x86_64-embedded) ifeq ($(FULL_TARGET),x86_64-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-linux) ifeq ($(FULL_TARGET),arm-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-palmos) ifeq ($(FULL_TARGET),arm-palmos)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-darwin) ifeq ($(FULL_TARGET),arm-darwin)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-wince) ifeq ($(FULL_TARGET),arm-wince)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-gba) ifeq ($(FULL_TARGET),arm-gba)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-nds) ifeq ($(FULL_TARGET),arm-nds)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-embedded) ifeq ($(FULL_TARGET),arm-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-symbian) ifeq ($(FULL_TARGET),arm-symbian)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),arm-android) ifeq ($(FULL_TARGET),arm-android)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc64-linux) ifeq ($(FULL_TARGET),powerpc64-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc64-darwin) ifeq ($(FULL_TARGET),powerpc64-darwin)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc64-embedded) ifeq ($(FULL_TARGET),powerpc64-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),powerpc64-aix) ifeq ($(FULL_TARGET),powerpc64-aix)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),avr-embedded) ifeq ($(FULL_TARGET),avr-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),armeb-linux) ifeq ($(FULL_TARGET),armeb-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),armeb-embedded) ifeq ($(FULL_TARGET),armeb-embedded)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),mips-linux) ifeq ($(FULL_TARGET),mips-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),mipsel-linux) ifeq ($(FULL_TARGET),mipsel-linux)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),jvm-java) ifeq ($(FULL_TARGET),jvm-java)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),jvm-android) ifeq ($(FULL_TARGET),jvm-android)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
ifeq ($(FULL_TARGET),i8086-msdos) ifeq ($(FULL_TARGET),i8086-msdos)
override TARGET_LOADERS+=prt0s prt0t # exceptn fpu override TARGET_LOADERS+=prt0s prt0t prt0m # exceptn fpu
endif endif
override INSTALL_FPCPACKAGE=y override INSTALL_FPCPACKAGE=y
ifeq ($(FULL_TARGET),i386-linux) ifeq ($(FULL_TARGET),i386-linux)
@ -2391,10 +2391,12 @@ SYSINCDEPS=$(addprefix $(INC)/,$(SYSINCNAMES))
include $(PROCINC)/makefile.cpu include $(PROCINC)/makefile.cpu
SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES)) SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS) SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
prt0s$(OEXT) : prt0s.asm prt0st.asm prt0s$(OEXT) : prt0s.asm prt0stm.asm
nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0s$(OEXT) prt0s.asm nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0s$(OEXT) prt0s.asm
prt0t$(OEXT) : prt0t.asm prt0st.asm prt0t$(OEXT) : prt0t.asm prt0stm.asm
nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0t$(OEXT) prt0t.asm nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0t$(OEXT) prt0t.asm
prt0m$(OEXT) : prt0m.asm prt0stm.asm
nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0m$(OEXT) prt0m.asm
system$(PPUEXT) : system.pp $(SYSDEPS) system$(PPUEXT) : system.pp $(SYSDEPS)
$(COMPILER) -Us -Sg system.pp $(COMPILER) -Us -Sg system.pp
uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp

View File

@ -4,7 +4,7 @@
[package] [package]
main=rtl main=rtl
[target] [target]
loaders=prt0s prt0t # exceptn fpu loaders=prt0s prt0t prt0m # exceptn fpu
units=system uuchar objpas strings dos crt heaptrc lineinfo sysconst sysutils \ units=system uuchar objpas strings dos crt heaptrc lineinfo sysconst sysutils \
math macpas iso7185 rtlconst typinfo varutils variants types dateutil \ math macpas iso7185 rtlconst typinfo varutils variants types dateutil \
convutil strutils stdconvs matrix ucomplex getopts fgl classes objects \ convutil strutils stdconvs matrix ucomplex getopts fgl classes objects \
@ -62,10 +62,12 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
# #
# Loaders # Loaders
# #
prt0s$(OEXT) : prt0s.asm prt0st.asm prt0s$(OEXT) : prt0s.asm prt0stm.asm
nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0s$(OEXT) prt0s.asm nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0s$(OEXT) prt0s.asm
prt0t$(OEXT) : prt0t.asm prt0st.asm prt0t$(OEXT) : prt0t.asm prt0stm.asm
nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0t$(OEXT) prt0t.asm nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0t$(OEXT) prt0t.asm
prt0m$(OEXT) : prt0m.asm prt0stm.asm
nasm -f obj -o $(UNITTARGETDIRPREFIX)prt0m$(OEXT) prt0m.asm
# #
# System Units (System, Objpas, Strings) # System Units (System, Objpas, Strings)
# #

3
rtl/msdos/prt0m.asm Normal file
View File

@ -0,0 +1,3 @@
; nasm -f obj -o prt0m.o prt0m.asm
%define __MEDIUM__
%include "prt0stm.asm"

View File

@ -1,3 +1,3 @@
; nasm -f obj -o prt0s.o prt0s.asm ; nasm -f obj -o prt0s.o prt0s.asm
%define __SMALL__ %define __SMALL__
%include "prt0st.asm" %include "prt0stm.asm"

View File

@ -1,4 +1,16 @@
; common startup code for the SMALL and TINY memory models ; common startup code for the SMALL, TINY and MEDIUM memory models
%ifdef __MEDIUM__
%define __FAR_CODE__
%else
%define __NEAR_CODE__
%endif
%ifdef __FAR_CODE__
extra_param_offset equ 2
%else
extra_param_offset equ 0
%endif
cpu 8086 cpu 8086
@ -112,7 +124,11 @@ skip_mem_realloc:
dec bx dec bx
mov word [__nearheap_end], bx mov word [__nearheap_end], bx
%ifdef __FAR_CODE__
jmp far PASCALMAIN
%else
jmp PASCALMAIN jmp PASCALMAIN
%endif
not_enough_mem: not_enough_mem:
mov dx, not_enough_mem_msg mov dx, not_enough_mem_msg
@ -133,17 +149,23 @@ FPC_MSDOS_CARRY:
FPC_MSDOS: FPC_MSDOS:
mov al, 21h ; not ax, because only the low byte is used mov al, 21h ; not ax, because only the low byte is used
pop dx pop dx
%ifdef __FAR_CODE__
pop bx
%endif
pop cx pop cx
push ax push ax
push cx push cx
%ifdef __FAR_CODE__
push bx
%endif
push dx push dx
global FPC_INTR global FPC_INTR
FPC_INTR: FPC_INTR:
push bp push bp
mov bp, sp mov bp, sp
mov al, byte [ss:bp + 6] mov al, byte [ss:bp + 6 + extra_param_offset]
mov byte [cs:int_number], al mov byte [cs:int_number], al
mov si, [ss:bp + 4] mov si, [ss:bp + 4 + extra_param_offset]
push ds push ds
mov ax, word [si + 16] mov ax, word [si + 16]
mov es, ax mov es, ax
@ -169,7 +191,7 @@ int_number:
mov bp, sp mov bp, sp
mov si, word [ss:bp + 8] mov si, word [ss:bp + 8]
mov ds, si mov ds, si
mov si, word [ss:bp + 14] mov si, word [ss:bp + 14 + extra_param_offset]
mov word [si], ax mov word [si], ax
mov word [si + 2], bx mov word [si + 2], bx
mov word [si + 4], cx mov word [si + 4], cx
@ -188,7 +210,11 @@ int_number:
pop ds pop ds
pop bp pop bp
%ifdef __FAR_CODE__
retf 4
%else
ret 4 ret 4
%endif
segment data segment data
mem_realloc_err_msg: mem_realloc_err_msg:

View File

@ -1,3 +1,3 @@
; nasm -f obj -o prt0t.o prt0t.asm ; nasm -f obj -o prt0t.o prt0t.asm
%define __TINY__ %define __TINY__
%include "prt0st.asm" %include "prt0stm.asm"