Back in our VAX days, we supported more than 100 BASIC programs employing FMS (Forms Management System). During the port to Alpha, we considered transitioning to DECforms (even acquired a temporary license), but this transition appeared to be a lot of risk for very little reward, so we stuck with FMS. After the move to Itanium, many of these FMS-based programs were modified to only work from Apache. One 50,000 line monster still employs FMS. It compiles under x86 but will not run (%BAS-F-MEMMANVIO, Memory management violation). So I decided to switch my focus over to some smaller skeleton demos we use to introduce new programmers to FMS + RMS. (see attached zip)
These skeleton demos all work as-is on all previous technologies but do not work on X86, so I did some hacking then developed a few workarounds. Perhaps these fixes will help the VSI team locate some FMS functions that were not ported 100% properly. These fixes might also be useful to programmers reading this.
One more point. DCL commands like "FMS/DIRECTORY" appear to be working properly while "FMS/EDIT" still crashes (might also be affected by some of the stuff I discovered)
FMS still broken (but I have some work-arounds)
-
Topic author - Active Contributor
- Posts: 44
- Joined: Tue Jan 10, 2023 10:41 am
- Reputation: 0
- Location: Waterloo, Ontario, Canada
- Status: Offline
- Contact:
FMS still broken (but I have some work-arounds)
- Attachments
-
- basic-fms-demos2.zip
- (36.01 KiB) Downloaded 197 times
Last edited by neilrieck on Sat Sep 07, 2024 4:59 am, edited 2 times in total.
Re: FMS still broken (but I have some work-arounds)
Thanks. Rob and I appreciate it.
I'll check on the BASIC RTL ACCVIO tomorrow.
John
I'll check on the BASIC RTL ACCVIO tomorrow.
John
-
- VSI Expert
- Valued Contributor
- Posts: 77
- Joined: Thu Jun 20, 2019 11:48 am
- Reputation: 0
- Status: Offline
Re: FMS still broken (but I have some work-arounds)
FMS on X86 has a BLISS problem.
The BLISS cross-compiler used to build FMS and the current native compiler do not correctly handle the
BLISS construct of global registers. This shows up during the UNWIND mechanism, where the compiler is not correctly saving/restoring the Alpha registers.
I was tearing my hair out trying to make sense of a very reproducible access violation that happened after a read-with-timeout timed out. The issue is that the relevant BLISS code signaled the timeout, invoking the unwind.
Reagan figured out what was going on, thanks to a customer's reproducer.
John and his compiler folks will have a new native compiler in late January; I hope this solves a few other oddball issues I've been looking at.
Fortunately, we do not have much code that marries BLISS global registers with UNWINDs.
The BLISS cross-compiler used to build FMS and the current native compiler do not correctly handle the
BLISS construct of global registers. This shows up during the UNWIND mechanism, where the compiler is not correctly saving/restoring the Alpha registers.
I was tearing my hair out trying to make sense of a very reproducible access violation that happened after a read-with-timeout timed out. The issue is that the relevant BLISS code signaled the timeout, invoking the unwind.
Reagan figured out what was going on, thanks to a customer's reproducer.
John and his compiler folks will have a new native compiler in late January; I hope this solves a few other oddball issues I've been looking at.
Fortunately, we do not have much code that marries BLISS global registers with UNWINDs.
--
-- Rob
-- Rob
-
Topic author - Active Contributor
- Posts: 44
- Joined: Tue Jan 10, 2023 10:41 am
- Reputation: 0
- Location: Waterloo, Ontario, Canada
- Status: Offline
- Contact:
Re: FMS still broken (but I have some work-arounds)
Great news. I await my Christmas gift