Artifact 1de65c78d766924e48ac30b372b1779b6c6d1c3778dbf0d7c59b0982504bcbbb:
- File
psl-1983/20-kernel/system-extras.red
— part of check-in
[eb17ceb7f6]
at
2020-04-21 19:40:01
on branch master
— Add Reduce 3.0 to the historical section of the archive, and some more
files relating to version sof PSL from the early 1980s. Thanks are due to
Paul McJones and Nelson Beebe for these, as well as to all the original
authors.git-svn-id: https://svn.code.sf.net/p/reduce-algebra/code/historical@5328 2bfe0521-f11c-4a00-b80e-6202646ff360 (user: arthurcnorman@users.sourceforge.net, size: 1712) [annotate] [blame] [check-ins using] [more...]
% % 20-EXTRAS.RED - System-specific functions for Dec-20 PSL % % Author: Eric Benson % Symbolic Computation Group % Computer Science Dept. % University of Utah % Date: 4 March 1982 % Copyright (c) 1982 University of Utah % % <PSL.KERNEL-20>SYSTEM-EXTRAS.RED.3, 5-Jan-83 16:46:34, Edit by PERDUE % Added ExitLISP, for the DEC-20 a synonym of QUIT fluid '(system_list!*); if_system(Tenex, if_system(KL10, system_list!* := '(Dec20 PDP10 Tenex KL10), system_list!* := '(Dec20 PDP10 Tenex)), system_list!* := '(Dec20 PDP10 Tops20 KL10)); lap '((!*entry Quit expr 0) (haltf) (!*MOVE '"Continued" (reg 1)) (!*EXIT 0) ); CopyD('ExitLISP, 'Quit); lap '((!*entry Date expr 0) (!*MOVE (WConst 8) (reg 1)) % allocate a 9 character string (!*CALL GtStr) (!*MOVE (reg 1) (reg 4)) % save it in 4 (!*WPLUS2 (reg 1) (WConst 1)) (hrli 1 8#440700) % create a byte pointer to it (!*MOVE (WConst -1) (reg 2)) % current date (hrlzi (reg 3) 2#0000000001) % ot%ntm, don't output time (odtim) (!*MOVE (reg 4) (reg 1)) (!*MKITEM (reg 1) (WConst STR)) % tag it as a string (!*EXIT 0) ); if_system(KL10, NIL, lap '((!*Entry StackOverflow expr 0) (sub (reg ST) (lit (halfword 1000 1000))) % back up stack (!*MOVE '"Stack overflow" (reg 1)) (!*JCALL StdError) )); on SysLisp; syslsp procedure ReturnAddressP X; begin scalar Y, Z; Z := SymFnc; return Field(X, 0, 18) = 2#011001000000000000 % PC flags and Field(@(X - 1), 0, 18) = 8#260740 % pushj 17, and (Y := Field(@(X - 1), 18, 18) - Z) > 0 and Y < MaxSymbols and MkID Y; end; off SysLisp; END;