Replies: 4 comments 2 replies
|
Early versions of Primos (I'm talking rev 14, not rev 19) did allow
ctrl-p while inside the login/logout program, but I think this was
corrected in later versions, so you shouldn't have to worry about
ctrl-p. break$ is the subroutine that enables/disables ctrl-p. If
you want to handle ctrl-p, the condition raised is QUIT$.
I don't think you need to close EPFs either, unless you are using
lower-level Primos routines to open them, map them, etc.
The official way to clean up after yourself is to make a condition
handler for CLEANUP$. This gets invoked in each stack frame that is
going to be unwound because of a non-local goto.
…On 2/13/21, SirNibble ***@***.***> wrote:
Hoping to get the time next week to get back to my LOGOUT program, but in
the meantime can someone point me in the right direction for handling CTRL-P
for clean exits and closing EPFs.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
#23
|
|
Ah, this was a more general query rather than specific to my LOGOUT adventues. I remembered it was somethig about raising conditions, but the details escape me. The R19 Pascal manual doesn't appear to have anything. Perhaps I'm miss-using old terms, but by 'closing' in this context I mean in the situation you exit with CTRL-P and a re-comp&bind says the EPF is open and then renames it .RPx before saving the new .RUN |
|
Once you'e invoke the EPF in your environment, it's mapped to segments, and re-invoking it will be able to re-use most of that. To unmap it, use the REMEPF command. Examine segment utilization with LIST_SEGMENTS (LS), EPF utilization with LIST_EPF (LE). After a program crash, you may need to CLOSE files that were open. (CLOSE doesn't do anything with COMO file units.) You are also at a higher command level with call frames and condition frames on the stack. Examine with DMSTK, eradicate with RLS. As Jim noted, PRIMOS invokes external login/out programs with quit disabled. For other programs where you want to manage that, |
|
You will quickly get into the habit of doing c all;rls -all on a Prime machine.
On the Prime, ctrl-p suspends the active program and starts a new
"command level". If you do an ld command and it takes more than one
screen, it will wait for you to hit enter. Then you ctrl-p. The
ld.run epf is still active because you could do a ren (reenter)
command and ld would continue running. If you try to delete ld.run,
it will fail. If you try to do remepf, even with the -ac flag
(active), it will not do anything. You have to do an rls command to
release the suspended ld.run first, then you can either delete ld.run
or use remepf to unmap it.
To experiment with this, do "copy cmdnc0>ld.run" to get a copy of
ld.run in your home directory, then r ld to run it.
…On 2/13/21, Dennis Boone ***@***.***> wrote:
Once you'e invoke the EPF in your environment, it's mapped to segments, and
re-invoking it will be able to re-use most of that. To unmap it, use the
REMEPF command. Examine segment utilization with LIST_SEGMENTS (LS), EPF
utilization with LIST_EPF (LE).
After a program crash, you may need to CLOSE files that were open. (CLOSE
doesn't do anything with COMO file units.) You are also at a higher command
level with call frames and condition frames on the stack. Examine with
DMSTK, eradicate with RLS.
As Jim noted, PRIMOS invokes external login/out programs with quit disabled.
For other programs where you want to manage that,
you can either enable/disable recognition of quits/breaks with BREAK$(), or
create on-units with e.g. MKON$P().
--
You are receiving this because you commented.
Reply to this email directly or view it on GitHub:
#23 (comment)
|
Uh oh!
There was an error while loading. Please reload this page.
Hoping to get the time next week to get back to my LOGOUT program, but in the meantime can someone point me in the right direction for handling CTRL-P for clean exits and closing EPFs.
All reactions