Peter,
I can't do anything with the binaries.
If you are using any 32bit assembler techniques in a 64bit system, expect trouble!
The calling convention and demand for 16 byte stack pointer alignment make it a very different place.
One of your demos below compiles successfully to 64bit binary using an amended version of your window64.h / Window.h
This, I have included with a suite of your programs in projects/GDIWindows/. I try to ensure that these programs work correctly with each release.
$ Filename "t.exe"
#include "..\..\inc\RTL64.inc"
indexbase 0
include "window64.h"
SetWindow "Load Check",320,240,w_2
Font 12,24,700,"courier"
dim map(108) as byte
sys x, loaded
loaded = LoadFile "maps/map1-1.bin", map
string s="Loaded= " + loaded
Text 0,0,s,white
WaitKey(32)
While Esckey()=0
cls 0
for x=0 to 8
Text 0,x*24,"map" + x + "= " + map(x),white
next
DoEvents
SwapBuffers
Wend
WinEnd
Charles