2.9. Expanded Memory

You may distribute the instructions of your program over several address states up to a maximum of 1M word on the 1750A. Calls between compilation units may then need to switch address states. The option for calls that switch address states is -mlong-calls, and you must give the option to the compiler, binder and linker. If you are using gnatmake then the option -mlong-calls must be given after -cargs and -largs.

$ m1750-coff-gnatmake -mlong-calls -f -g hello
m1750-coff-gcc -c -mlong-calls -g hello.adb
m1750-coff-gnatbind -x hello.ali
m1750-coff-gnatlink -mlong-calls -g hello.ali

You can confirm that the expanded memory variants of the library files have been included using the linker's option -t, as follows:

$ m1750-coff-gnatmake -mlong-calls -f -g hello -largs -Wl,-t
m1750-coff-gcc -c -mlong-calls -g hello.adb
m1750-coff-gnatbind -x hello.ali
m1750-coff-gnatlink -mlong-calls -g -t hello.ali
/opt/m1750-ada-1.7/m1750-coff/bin/ld: mode coff_m1750_expanded
/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/art0.o
b~hello.o
./hello.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)a-except.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)a-textio.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)a-ioexce.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)x-malloc.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libada.a)s-stcosc.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)open.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)close.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)unlink.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)lseek.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)read.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)write.o
(/opt/m1750-ada-1.7/lib/gcc-lib/m1750-coff/2.8.1/mlong-calls/libc.a)sbrk.o