1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-27 12:42:10 +00:00

Muddle library files courtesy of Rick Shiffman.

Files are from RRS; AR5 MUDDLE on ToTS tape 9006256.  Some timestamps
are from DM _TAPE files.
This commit is contained in:
Lars Brinkhoff
2020-12-08 11:11:14 +01:00
parent 00afe4b60b
commit 88f5a7262c
9 changed files with 992 additions and 2 deletions

50
doc/rrs/jsys.order Normal file
View File

@@ -0,0 +1,50 @@
JSYS PACKAGE
.... .......
THIS PACKAGE IS A JSYS HANDLER FOR TENEX AND TWINEX MUDDLE.
THERE ARE TWO RSUBRS, JSYS AND ADR. ALSO THERE IS AN OBLIST CALL J THAT
HAS THE ATOMS WHO'S PNAMES ARE THE NAMES OF THE 10X JSYS'S. THE GVALS
OF THESE ATOMS ARE THE RIGHT HALFS OF THE JSYS'S.
THE RSUBR ADR TAKES ONE ARGUMENT. THIS IS EITHER A STRING OR
AN UVECTOR. ADR RETURNS A BYTE POINTER TO A STRING OR THE ADDRESS OF
THE FIRST WORD IN THE UVECTOR.
THE RSUBR JSYS IS USED TO EXECUTE THE JSYS OF YOUR CHOICE. IT
HAS FIVE REQUIRED ARGUMENTS (PRIMTYPE WORD) AND AN OPTIONAL SIXTH ONE,
WHICH IS OF TYPE VECTOR (<VECTOR [2 <PRIMTYPE WORD>]>). THE FIRST ARG
IS THE THE RIGHT HALF OF THE JSYS TO PREFORM. ARGS 2 - 4 ARE THE ACS
1 - 3. THE 5TH ARG IS THE ADDRESS OF THE AC TO RETURN. THE SIXTH ARG
IS AN OPTIONAL TWO VECTOR FOR THE RESALTS TO RETURNED IN. IF THIS
ARG IS MISSING THEN JSYS PUTS ITS RESALTS INTO THE GVAL OF THE ATOM
JSYSVECTOR!-IJSYS!-JSYS!-PACKAGE.
JSYS RETURNS A TWO ELEMENT VECTOR (<VECTOR WORD FIX>). THE
FIRST ELEMENT IS THE VALUE OF THE AC POINTED TO BY ARG 5, AND THE
SECOND ELEMENT IS THE SKIP COUNT OF THE JSYS THAT WAS EXECUTED.
EXAMPLE 1
<JSYS ,SOUT!-J
<1 .OUTCHAN>
<ADR <SET S "THIS IS A TEST">>
<- <LENGTH .S>>
2> ;"OUTPUT THE STRING .S ON OUTCHAN"$
EXAMPLE 2
<SET FOO
<CHTYPE <1 <JSYS ,NIN!-J
<1 .INCHAN>
0
10
2>>
FIX>> ;"READ THE NEXT FIXED NUMBER TYPED ON INCHAN
IN BASE TEN AND SET THE LVAL OF FOO TO THE
NUMBER."$
--- NOTE ---
THIS PACKAGE OFFERS THE 10X MDL HACKERS HUNDREDS OF WAYS TO SCREW THERE
CORE IMAGE OF MUDDLE UP, DELETE THERE FILES, OR LOG OUT THERE JOB.
BECAUSE OF THIS I TAKE NO RESPONSIBILITY FOR THE USE OF THIS PACKAGE.
RRS
 

60
doc/rrs/subsys.order Normal file
View File

@@ -0,0 +1,60 @@
SUBSYS PACKAGE
------ -------
THIS PACKAGE WILL LET THE TOPS-20 MUDDLE USER EXECUTE ANY 'EXE' FILE
AS AN INFERIOR TO MUDDLE. AT THE MINUTE SUBSYS IS THE ONLY RSUBR IN THE
PACKAGE. THIS PACKAGE USES THE JSYS PACKAGE.
SUBSYS TAKES ONE OPTIONAL ARGUMENT OF TYPE STRING. THE STRING IS THE
NAME OF THE NAME OF THE FILE TO RUN AS AN INFERIOR TO MUDDLE. THIS ARGUMENT
WILL DEFAULT TO "<SYSTEM>EXEC.EXE", THUS <SUBSYS>$ WILL RUN THE EXEC.
SUBSYS RETURNS THE FORK HANDLE OF THE LOWER FORK WHEN IT QUITS. THE
FORK HANDLE IS OF TYPE WORD AND WILL BE USED BE OTHER RSURS ADDED TO
THIS PACKAGE.
EX. 1.1
--- ---
<SUBSYS> ;"THIS WILL RUN AN EXEC"$
EX. 1.2
___ ___
<SUBSYS "<MDL>MDL104.EXE"> ;"RUN AN INFERIOR MUDDLE"$
THE RSUBR "CONTINUE" LETS THE CONTINUE A FORK THAT HE QUIT. IT ACTS
LIKE A $P FROM DDT. CONTINUE TAKES ONE ARGUMENT OF PRIMTYPE WORD.
THIS ARGUMENTS IS THE FORK HANDLE OF THE FORK TO RESUME. IT SHOULD
BE A VALID INFERIOR FORK HANDLE. CONTINUE RETURNS THE FORK HANDLE
WHEN THE LOWER FORK QUITS.
EX. 2.1
--- ---
<SET FH <SUBSYS>> ;"RUN AN EXEC AS A LOWER FORK"$
@;DO SOMETHING
@POP
#WORD *400XXX* ;"THIS IS THE FORK HANDLE .FH"
;"PLAY WITH MDL"
<CONTINE .FH> ;"CONTINUE THE EXEC"$
@DIR <FOO>*.* ;DIR OF FOO'S DIRECTORY
...........
KILLFORK IS THE RSUBR TO KILL A LOWER FORK, SINCE WHEN YOU QUIT A
LOWER FORK IT DOESNT DIE. KILLFORK TAKES ONE ARGUMENT OF PRIMTYE
WORD, THIS IS THE VALID FORK HANDLE OF THE PROCESS TO KILL. KILLFORK
CAN'T BE UNDONE, ALSO ALL THE INFERIORS OF THE KILLED FORK ARE
KILLED.
EX. 3.1
--- ---
@; LETS KILL THE EXEC FROM EXAMPLE 2!
@POP
#WORD *400XXX*
<KILLFORK .FH> ;"THE EXEC IS KILLED"$
#WORD *400XXX* ;"FREE FORK HANDLE. NOT GOOD FOR ANYTHING"


16
doc/rrs/uvbyte.order Normal file
View File

@@ -0,0 +1,16 @@
The UVBYTES package has now been released to the world, it will work on
both XXs and ITS. There is one function in this package, UV-BYTES. The
purpose of UV-BYTES is to corrupt UVECTORs into BYTES of any bytesize.
It does this by consing up a bytpointer of the requested byte size to
the UVECTOR. Note, the BYTES created UV-BYTES will shear the same
storage as the UVECTOR. The contents UVECTOR must be of primtype WORD.
The main use of UV-BYTES is to create multiple windows of different
bytesize to the same UVECTOR. The call to UV-BYTES follows.
;"UV-BYTES RETURNS BYTES FOR ANY GIVEN BYTE SIZE TO A UVECTOR
OF PRIMTYPE WORD. THE CALL TO THIS ROUTINE IS <UV-BYTES .UV .BSIZE>.
UV-BYTES RETURNS AN OBJECT OF TYPE BYTES. ARGS ARE:
.UV ........ A UVECTOR OF PRIMTYPE WORDS
.BSIZE ..... THE BYTE SIZE OF THE DESIRED BYTES, MUST BE LEES THAN 36."