mirror of
https://github.com/PDP-10/its.git
synced 2026-01-11 23:53:12 +00:00
1382 lines
31 KiB
Plaintext
1382 lines
31 KiB
Plaintext
WHILE ITS IS RUNNING, IT USUALLY DISPLAYS, ON THE BOTTOM BAY OF
|
||
LIGHTS ON THE PDP-10, WHICH JOB IS BEING RUN. THE NUMBER OF THE LIT
|
||
UP BIT IS WHICH JOB IS CURRENTLY RUNNING.
|
||
|
||
ALL IMPLEMENTED SYMBOLIC
|
||
SYSTEM CALLS (SUCH AS OPEN AND DELETE)
|
||
ARE LISTED AS SIXBIT NAMES IN ITS AT THE TABLE CALLED SYSCTB:. THE APPROPRIATE
|
||
LOCATIONS WHERE EACH OF THESE CALLS ARE EXECUTED ARE LISTED IN THE TABLE
|
||
CALLED SYSCTD:. MOST OF THE CALLS HAVE SOME DOCUMENTATION IN THE ITS
|
||
LISTING VERY CLOSE TO THE ROUTINE THAT EXECUTES THE CALL.
|
||
|
||
THE ITS CODE THAT EXECUTES USER UUOS USUALLY STARTS WITH A TAG BEGINNING
|
||
WITH THE LETTER "A" AND AUGMENTED WITH THE NAME OF THE UUO. FOR EXAMPLE,
|
||
TO LOOK AT THE CODE THAT HANDLES A .IOT, LOOK UP THE SYMBOL "AIOT". OCCASIONALLY
|
||
THE SYMBOL STARTS WITH "N" RATHER THAN "A". DISK ROUTINE PROCEDURES ALMOST
|
||
ALWAYS BEGIN WITH "Q", AND TELETYPE CODE WITH "TT".
|
||
|
||
USER VARIABLES ARE STORED SUCH THAT ALL THE VARIABLES FOR A SINGLE JOB
|
||
ARE TOGETHER. THE SYMBOL "L" IS DEFINED EQUAL TO THE TOTAL SIZE
|
||
OF THE VARIABLE BLOCK. HENCE, FOR EXAMPLE, THE UNAME OF THE JOB
|
||
WITH INDEX 30 IS STORED IN LOCATION UNAME+30*L.
|
||
WHILE ITS IS RUNNING THE JOB WITH INDEX N, ACCUMULATOR
|
||
U CONTAINS N*L. WHEN ITS WANTS TO SCHEDULE(RUN) A CERTAIN JOB,
|
||
FIRST THAT JOB'S USTP MUST BE 0. THEN, THAT JOBS FLSINS(FLUSH INSTRUCTION)
|
||
IS EXECUTED, AND THE JOB DOES NOT RUN UNLESS THE INSTRUCTION SKIPS.
|
||
THE FORMAT FOR EXECUTING A NEW SYSTEM CALL IS:
|
||
|
||
CALL: .CALL CALBLK ;THE CALL ITSELF
|
||
;ERROR RETURN IS TO CALL+1
|
||
;SUCCESSFUL RETURN IS TO CALL+2
|
||
|
||
|
||
...
|
||
|
||
CALBLK: SETZ ;ALWAYS
|
||
SIXBIT /NAME/ ;WHERE "NAME" IS ANY IMPLEMENTED CALL
|
||
ARG1 ;ARGUMENTS START HERE
|
||
ARG2
|
||
|
||
...
|
||
|
||
SETZ ARGN ;BIT 4.9 ON MEANS THIS ARG IS THE LAST ONE
|
||
|
||
A LIST OF ALL IMPLEMENTED SYSTEM CALLS MAY BE SEEN
|
||
IN DSK:SYSENG;ITS > STARTING AT SYSCTB:. THE ACTUAL ADDRESSES WITHIN ITS
|
||
WHERE EACH CALL IS EXECUTED MAY BE FOUND FROM THE TABLE
|
||
STARTING AT SYSCTD:.
|
||
|
||
TYPES OF ARGS:
|
||
|
||
THERE ARE THREE MAIN TYPES OF ARGS: INPUT, RESULT AND CONTROL BIT.
|
||
THEY ARE DISTINGUISHED BY BITS 4.2 AND 4.3 OF THE ARGUMENT WORD:
|
||
4.3, 4.2 = 0 -- INPUT
|
||
=1 -- RESULT
|
||
=2 -- CONTROL BIT.
|
||
THE ORDER OF THE INPUT ARGS MATTERS; SO DOES THE ORDER
|
||
OF THE RESULT ARGS. OTHER THAN THAT, THE ORDER IS IRRELEVANT.
|
||
|
||
INPUT ARGS: MAY OR MAY NOT BE IMMEDIATE, ACCORDING TO BIT 4.1 .
|
||
IN EITHER CASE, AN EFFECTIVE ADDRESS IS CALCULATED
|
||
FROM THE R.H., INDEX AND INDIRECT FIELDS.
|
||
IF THE ARG IS IMMEDIATE, THAT ADDRESS IS ACTUALLY PASSED TO THE
|
||
SYSTEM CALL; OTHERWISE, THE WORD AT THAT ADDRESS IS PASSED.
|
||
(EXCEPTION: SOME SYSTEM CALLS UPDATE THEIR INPUT ARGS.
|
||
THOSE ARGS USUALLY MAY NOT BE IMMEDIATE.)
|
||
THE VALUES OF THE INPUT ARGS GIVEN ARE PASSED IN ORDER TO
|
||
THE SYSTEM CALL, WHICH MAY NOT USE ALL OF THEM.
|
||
IF MORE THAN 8 INPUT ARGS ARE GIVEN, AN ERROR WITH STATUS CODE 15
|
||
IS INDICATED. FEWER ARGS THAN THE PARTICULAR CALL REQUIRES
|
||
RESULTS IN AN ERROR WITH CODE 30 .
|
||
|
||
RESULT ARGS:
|
||
CANNOT BE IMMEDIATE. THE EFFECTIVE ADDRESS IS CALCULATED
|
||
AS USUAL, AND THE VALUE RETURNED BY THE SYSTEM CALL
|
||
IS STORED IN THE WORD AT THAT ADDRESS.
|
||
IF THERE ARE SEVERAL RESULT ARGS, EACH WILL GET THE NEXT
|
||
SUCCESSIVE VALUE RETURNED BY THE SYSTEM CALL. IF THERE ARE
|
||
MORE RESULT ARGS THAN THE SYSTEM CALL RETURNS VALUES,
|
||
JUNK WILL BE STORED IN THE EXCESS RESULT ARGS.
|
||
IF MORE VALUES ARE RETURNED THAN THERE ARE RESULT ARGS,
|
||
THE EXTRA VALUES WILL BE IGNORED.
|
||
MORE THAN 8 RESULT ARGS CAUSES AN ERROR RETURN.
|
||
|
||
CONTROL BIT ARGS: MAY OR MAY NOT BE IMMEDIATE.
|
||
THE VALUES OF ALL CONTROL BIT ARGS GIVEN
|
||
ARE XOR'ED TOGETHER, AND THE RESULT MAY OR MAY NOT BE USED
|
||
BY THE SYSTEM CALL. ONLY THE RIGHT HALF OF A NON-IMMEDIATE
|
||
CONTROL BUT ARG IS SIGNIFICANT.
|
||
FAILURE-CODES RETURNED BY NEW SYSTEM CALLS (AND .OPEN'S, ETC.)
|
||
|
||
THE FAILURE CODE FROM A NEW SYSTEM CALL THAT DOESN'T SKIP
|
||
CAN BE OBTAINED BY READING THE .BCH USET VARIABLE TO FIND THE
|
||
NUMBER OF THE CHANNEL ON WHICH THE CODE WAS RETURNED, AND THEN
|
||
READING THAT CHANNEL'S .IOC VARIABLE TO GET A WORD WITH THE ERROR
|
||
CODE IN BITS 3.1 - 3.6 .
|
||
|
||
CODE MESSAGE
|
||
|
||
1 NO SUCH DEVICE
|
||
2 WRONG DIRECTION
|
||
3 TOO MANY TRANSLATIONS
|
||
4 FILE NOT FOUND
|
||
5 DIRECTORY FULL
|
||
6 DEVICE FULL
|
||
7 DEVICE NOT IN READY STATUS
|
||
10 DEVICE NOT AVAILABLE
|
||
11 ILLEGAL FILE NAME
|
||
12 MODE NOT AVAILABLE
|
||
13 FILE ALREADY EXISTS (RENAME)
|
||
14 BAD CHANNEL NUMBER
|
||
15 TOO MANY ARGUMENTS (CALL)
|
||
16 PACK NOT MOUNTED
|
||
17 DIRECTORY NOT AVAIL NOW (ALL DIREC CHNLS IN USE)
|
||
20 USER DOESN'T EXIST
|
||
21 LOCAL DEVICE ONLY
|
||
22 SELF CONTRADICTORY OPEN COMMAND
|
||
23 ATT MODIFY WRITE ON FILE OPEN FOR READ
|
||
24 MFD FULL
|
||
25 DEVICE NOT ASSIGNABLE TO THIS PROCESSOR
|
||
26 DEVICE WRITE-LOCKED
|
||
27 LINK DEPTH EXCEEDED
|
||
30 TOO FEW ARGUMENTS (CALL)
|
||
31 CAN'T MODIFY JOB.
|
||
32 CAN'T GET ACCESS TO PAGE.
|
||
33 SELF-CONTRADICTORY ARGS (CALL)
|
||
34 WRONG TYPE DEVICE.
|
||
35 NO JOB WITH THAT NUMBER.
|
||
36 VALID CLEAR OR STORED SET (JOBRET, JOBGET)
|
||
37 NO CORE AVAILABLE.
|
||
40 NOT TOP LEVEL.
|
||
THIS FILE LISTS ALL SYSTEM CALLS AND UUO'S. EACH CALL IS LABELED
|
||
WITH ITS NAME. THE LABELS IN PARENTHESIS ARE THE LOCATIONS OF
|
||
THE ACTUAL ROUTINES. THE NUMBERS FOLLOWING THE SYSTEM LABELS ARE
|
||
THE PAGE AND LINE NUMBERS OF THE LABEL IN SYSENG;. A PAGE NUMBER
|
||
WITH NO SPECIAL CHARACTER IN FRONT OF IT MEANS THAT IT IS IN ITS >
|
||
(CURRENTLY 819); AN '!' IN FRONT OF THE PAGE NUMBER MEANS THAT THE
|
||
LABEL IS IN TS2TTY > (CURRENTLY 45); AND A '"' IN FRONT OF THE PAGE
|
||
NUMBER MEANS THAT THE LABEL IS IN MTAPE > (CURRENTLY 51).
|
||
REFERENCES TO 'ITS REF MAN' ARE TO THE ITS 1.5 REFERENCE MANUAL
|
||
(MEM0 NO. 161A). SECTION NUMBERS ARE INCLUDED.
|
||
|
||
|
||
|
||
RANGET: (ARANGT:!001 049)
|
||
.CALL ADR
|
||
RETURN
|
||
ADR: SETZ
|
||
SIXBIT /RANGET/
|
||
402000,,FOO
|
||
FOO: 0
|
||
RETURNS 4.9=1 => DOES NOT HAVE TTY NOW
|
||
1.1-1.6 CONSOLE TTY #
|
||
1.7-2.3 USER #
|
||
|
||
|
||
|
||
ATTY: (AATTY:!006 004) .OPER 11
|
||
.ATTY USR,
|
||
SEE ITS REF MAN 3.2.1.1
|
||
|
||
|
||
|
||
DTTY: (ADTTY:!008 002) .OPER 12
|
||
SEE ITS REF MAN 3.2.1.1
|
||
|
||
|
||
|
||
TTYGET: (ATTYGT:!009 036)
|
||
GETS TTYST1, TTYST2 AND TTYSTS WHEN THE USER HAS THE TTY
|
||
HANGS UNTIL HE GETS IT
|
||
ALSO RETURNS HIS TTYTYP, TCTYP AND TCECL.
|
||
THE RH OF TTYSTS AS RETURNED IS PRE-DIVIDED BY LUBLK
|
||
|
||
|
||
|
||
TTYSET: (ATTYST:!009 004)
|
||
SETS TTYST1, TTYST2 TTYSTS AND SCNBTM WHEN THE USER HAS THE TTY
|
||
HANGS UNTIL HE GETS IT
|
||
|
||
|
||
|
||
RCPOS: (ARCPOS:!010 036)
|
||
RCPOS SYSTEM CALL. (READ CURSOR POSITION)
|
||
1 ARG - TTY OR STY CHNL.
|
||
1ST VALUE <ECHO VERT POS>,,<ECHO HORIZ POS>
|
||
2ND VALUE <MAIN PRGM VERT POS>,,<MAIN PRGM HORIZ POS>
|
||
1ST VALUE IRRELEVANT IF NO ECHO LINES.
|
||
|
||
|
||
|
||
SCML: (ASCML:!010 049)
|
||
SCML SYSTEM CALL.
|
||
SET # COMMAND LINES
|
||
1ST ARG TTY OR STY CHNL,
|
||
2ND ARG IS DESIRED # COMMAND LINES
|
||
(FOR ECHOING AT BOTTOM OF SCREEN)
|
||
2ND ARG 0 => NO ECHO REGION.
|
||
|
||
|
||
|
||
CNSSET: (NCNSSET:!011 018)
|
||
CNSSET SYSTEM CALL.
|
||
1ST ARG TTY OR STY CHNL. NEXT ARGS SET
|
||
VERT SIZE, HORIZ SIZE, TCTYP, TTYCOM, TTYTYP VARS RESPECTIVELY.
|
||
TCTYP CAN'T BE SET TO A NONSENSE VALUE,
|
||
SOME TTYCOM VARS CAN'T BE SET.
|
||
IF 2ND (3RD) ARG NEGATIVE, VERT SIZE (HORIZ SIZE) NOT CHANGED.
|
||
|
||
|
||
|
||
RSSIZE:
|
||
CNSGET: (ARSSIZ:!011 005) (NCNSGET:!011 004)
|
||
CNSGET OR RSSIZE SYSTEM CALL.
|
||
READ SCREEN SIZE
|
||
1 ARG - TTY OR STY CHNL.
|
||
RETURNS THE SAME VARS THAT CNSSET SETS, IN THE SAME ORDER.
|
||
RETURN PERMANENT AND SEMIPERMANENT TTY INFO.
|
||
|
||
|
||
|
||
UNMORE: (NUNMORE:!012 007)
|
||
UNMORE SYSTEM CALL.
|
||
LEAVE **MORE** STATE, ECT.
|
||
1ST ARG IS TTY OR STY CHNL,
|
||
2ND (OPTIONAL) USED TO SET SCNBTM VAR.
|
||
CTL BIT 1.1 => FLUSH NEXT INPUT CHAR (WITHOUT ECHOING IT)
|
||
CTL BIT 1.2 => REENTER MORE STATE, LOOKING AGAIN FOR AN INPUT CHAR.
|
||
RETURNS SCNBTM VAR AS IT IS AFTER ACTIONS.
|
||
|
||
|
||
|
||
LISTEN: (ALISTEN:!021 021) (NLISTE:!021 040) .OPER 2
|
||
SEE ITS REF MAN 3.2.1.2
|
||
|
||
|
||
|
||
|
||
ITYIC: (AITYIC:!021 002) .OPER 60
|
||
SEE ITS REF MAN 2.7.3
|
||
|
||
|
||
|
||
ITYI: (AITYI:021 007) .OPER 1
|
||
READ INTERRUPT LEVEL CHARACTERS FROM OPEN TTY DEVICE, IF ANY.
|
||
BEING REPLACED BY ITYIC
|
||
|
||
|
||
|
||
MTAPE: (AMTAPE:"017 006) .OPER 107
|
||
.MTAPE AC,
|
||
AC/ CHNM,COMMAND
|
||
COMMAND/ COUNT,,FUNCTION
|
||
|
||
|
||
|
||
SWAP: (ASWAP:032 137) .OPER 106
|
||
AC/ 4.9 =>1 SWAP OUT USER
|
||
4.8 => 1 ALL PAGES
|
||
4.7=1 => LOOP FOR A WHILE
|
||
3.6-3.1 USER # SELF IF 0
|
||
RH => USER VIRTUAL PG #
|
||
OR 4.9=0, 4.8=0, 4.7=0 SWAP OUT RH # OF PAGES
|
||
IF 4.9=0, 4.8=1 AND 4.7=0, HACK PCLSR TEST FEATURE ON CURRENT USER
|
||
RH =0 LEAVE PCLSR TEST MODE
|
||
=1 ENTER IN ADVANCE MODE
|
||
=-1 ENTER IN HOLD MODE
|
||
=2 ENTER IN ADVANCE BUT DON'T ^Z
|
||
|
||
|
||
|
||
UTRAP: (AUTRAP:062 035) UUO 51
|
||
GET UUO TRAP INT BIT
|
||
|
||
|
||
|
||
ILUUO: (AILUUO:062 034) UUO 50
|
||
ILLEGAL SYSTEM UUO
|
||
|
||
|
||
|
||
ACCESS: (NACCES:063 055) (AACCES:063 048) UUO 47
|
||
SET ACCESS POINTER
|
||
SEE ITS REF MAN 2.7.4
|
||
|
||
|
||
|
||
IOT: (NIOT:063 027) (AIOT:063 035) UUO 40
|
||
SEE ITS REF MAN 5.3.2
|
||
|
||
|
||
|
||
BREAK: (ABREAK:063 021) UUO 45
|
||
INTERRUPT TO SUPERIOR
|
||
SEE ITS REF MAN 5.3.2
|
||
|
||
|
||
|
||
UIOT: (AUIOT:064 004) UUO 52
|
||
ROUTINES TO SIMULATE SOME USER EXECUTED I/O INSTRUCTIONS
|
||
|
||
|
||
|
||
USET: (AUSET:065 016) UUO 44
|
||
.USET CH,[N,,LOC]
|
||
IF N&200000=1, BLOCK MODE
|
||
IF N&400000=0, READS USER VAR SPECIFIED BY REST OF N
|
||
FOR INFERIOR OR FOREIGN USER OPEN ON CHANNEL CH
|
||
INTO USER LOCATION LOC
|
||
IF N&400000.NE.0, SETS USER VAR SPECIFIED BY REST OF N
|
||
FOR DIRECTLY INFERIOR USER OPEN ON CHANNEL CH
|
||
FROM USER LOCATION LOC
|
||
SEE ITS REF MAN 5.2.3
|
||
|
||
|
||
|
||
SUSET: (ASUSET:065 004) .CALL 13,
|
||
.SUSET [N,,LOC]
|
||
SAME AS .USET, BUT REFERS TO SELF
|
||
SEE ITS REF MAN 4.5
|
||
|
||
|
||
|
||
HANG: (AHANG:073 006) .OPER 47
|
||
<FLUSH INSTRUCTION>
|
||
.HANG
|
||
USER INSTRUCTION HANG ROUTINE
|
||
DOESN'T WORK FOR SWAPPED OUT USER MEMORY,BUT LEAVE IN FOR DEMON
|
||
TO HANG ON EXEC CORE NEVER SWAPPED OUT
|
||
GET USER'S FLUSH INSTRUCTION (PREVIOUS INSTRUCTION)
|
||
CHECK FOR CAMX,TDNX,TSNX,SKIPX,XCT,OR CONSX INSTRUCTIONS
|
||
AOS & SOS ARE ILLEGAL
|
||
SO ARE SKIP INSTRUCTIONS WITH NON-ZERO AC FIELD
|
||
MAKE IT THE JOB FLUSH INSTRUCTION
|
||
(IE. RUN JOB ONLY IF SKIPS)
|
||
THIS OPER HAS DELETED THE .RD710 OPER
|
||
|
||
|
||
|
||
OPEN: (AOPEN:075 024) (NOPEN:078 001) UUO 41
|
||
.OPEN CH,ADR
|
||
ERROR RETURN
|
||
NORMAL RETURN
|
||
ARGS 1 RH HAS CHANNEL NUMBER,
|
||
LH IS XOR'ED TOGETHER WITH CONTROL-BIT ARGS TO
|
||
DETERMINE THE MODE TO OPEN IN
|
||
2 LEFT-JUSTIFIED DEVICE NAME
|
||
3 FN1
|
||
4 FN2
|
||
5 SNAME, IF LESS THAN 5 ARGS, IT DEFAULTS TO JOB'S SNAME
|
||
NO VALUES RETURNED (RESULT ARGS WILL BE IGNORED)
|
||
J
|
||
ADR: MODE,,(SIXBIT /DSK/)
|
||
FN1
|
||
FN2
|
||
|
||
ADR: MODE,,(SIXBIT /JOB/)
|
||
FN1
|
||
FN2
|
||
|
||
ADR: MODE,,(SIXBIT /USR/)
|
||
UNAM
|
||
JNAME
|
||
|
||
ADR: MODE,,(SIXBIT /NET/)
|
||
LOCAL SOCKET NUMBER (1.1-4.5)
|
||
FOREIGN SOCKET NUMBER (1.1-4.5)
|
||
FOREIGN HOST NUMBER (1.1-1.8)
|
||
SPECIAL MODE BITS FOR NET
|
||
3.4 = 1 => GENERATE UNIQUE LOCAL RECEIVE (SEND)
|
||
SOCKET NUMBER
|
||
3.4 = 0 => USE LOCAL SOCKET NUMBER SPECIFIED IN BLK+1
|
||
3.5 => OPEN SOCKET IN LISTEN MODE
|
||
3.6 => IF IMAGE MODE, USE BYTE SIZE IN 4.1-4.6
|
||
IF ASCII MODE, USE 8 BIT BYTES RATHER THAN 7
|
||
4.1-4.6 = BYTE SIZE IN IMAGE MODE
|
||
|
||
GENERAL MODE BITS
|
||
3.1=0 => INPUT =1 OUTPUT
|
||
3.2=0 => UNITS =1 BLOCK
|
||
3.3=0 => ASCII =1 IMAGE
|
||
4.9-4.7 OPERATION FIELD
|
||
0=> NORMAL READ OR WRITE
|
||
1=> WRITE OVER MODE
|
||
2=> MAKE LINK
|
||
3=> "COPY OVER" MODE
|
||
4=> DELETE OR RENAME (INTERNAL)
|
||
SEE ITS REF MAN 2.2
|
||
|
||
|
||
|
||
FDELETE: (AFDELE:075 004) .CALL 11,
|
||
.FDELE FILBLK
|
||
DELETE OR RENAME FILE SPECIFIED AT FILBLK
|
||
SEE DELETE
|
||
|
||
|
||
|
||
RENAME: (NRNAM:078 055)
|
||
RENAMES THE FILE WITH THE "OLD" NAMES ON SPECIFIED
|
||
DEVICE AND DIRECTORY TO HAVE THE "NEW" NAMES
|
||
ARGS 1 LEFT-JUSTIFIED DEVICE NAME
|
||
2 OLD FN1
|
||
3 OLD FN2
|
||
4 SNAME
|
||
5 NEW FN1
|
||
6 NEW FN2
|
||
NO RESULT ARGS
|
||
|
||
|
||
|
||
MLINK: (NMLINK:078 044)
|
||
MAKE LINK
|
||
ARGS 1 LEFT-JUSTIFIED FROM-DEVICE
|
||
2 FROM-FN1
|
||
3 FROM-FN2
|
||
4 FROM-SNAME
|
||
5 TO-SNAME
|
||
6 TO-FN1
|
||
7 TO-FN2
|
||
NO VALUES RETURNED
|
||
|
||
|
||
|
||
RENMWO: (NRNWO:078 061)
|
||
CHANGES THE NAME UNDER WHICH A FILE IS BEING WRITTEN
|
||
TO THE "NEW" NAMES. THE PREVIOUS NAMES ARE IRRELEVANT.
|
||
ARGS 1 CHANNEL NUMBER OF FILE BEING WRITTEN
|
||
2 NEW FN1
|
||
3 NEW FN2
|
||
NO RETURNED VALUES
|
||
|
||
|
||
|
||
DELETE: (NDEL:078 052)
|
||
DELETES A FILE (LIKE .FDELE)
|
||
ARGS 1 LEFT JUSTIFIED DEVICE NAME
|
||
2 1ST FILE NAME
|
||
3 2ND FILE NAME
|
||
4 SNAME, DEFAULTS TO JOB'S SNAME
|
||
NO VALUES RETURNED
|
||
MAY FAIL IF FILE DOESN'T EXIST, ECT.
|
||
|
||
|
||
|
||
RCHST: (ARCHST:080 002) .OPER 103
|
||
? CHNL IN LH OF AC+ IF UTAPE THEN TAPE NAME IN LH
|
||
? SUPPLY SYM DEVICE IN AC(RH)
|
||
? AC+1 GETS 0 IF NOT A FILE DEVICE
|
||
? ELSE AC+1 GETS FILE NAME 1
|
||
? AC+2 GETS FNM 2
|
||
? AC+3 GETS SYS NAME OR 0 IF NOT APPLICABLE
|
||
? AC+4(RH) GETS WORD ADR (ACCES POINTER) IN FILE
|
||
? OR -1=> NOT RANDOMLY ADDRESSABLE
|
||
? AC+4 (LH) GETS CHR BYTE PNTR IF IN CHR MODE
|
||
|
||
ABOVE INFO PERHAPS WRONG...FOLLOWING DOES WORK:
|
||
MOVE AC,[CHNL,,ADDR]
|
||
.RCHST AC,
|
||
.
|
||
.
|
||
ADDR: 0 ;DEVICE OPEN ON
|
||
0 ;FNAM1
|
||
0 ;FNAM2
|
||
0 ;SNAME
|
||
0 ;'AC+4' AS EXPLAINED ABOVE
|
||
|
||
|
||
|
||
|
||
STATUS: (ASTATUS:085 005) UUO 46
|
||
.STATUS CH,LOC
|
||
STORE IN LOC THE STATUS OF CHANNEL CH
|
||
AND OF THE DEV OPEN ON IT IF ANY
|
||
SEE ITS REF MAN 2.5
|
||
|
||
|
||
|
||
RESET: (ARESET:086 006) .OPER 37
|
||
.RESET CH,
|
||
RESET BUFFERED INFO ON CHANNEL CH
|
||
NOT IMPLEMENTED FOR MANY DEVICES
|
||
HAS SPECIAL EFFECTS ON "USR" DEVICE
|
||
SEE ITS REF MAN 2.7.3
|
||
|
||
|
||
|
||
OPER: (AOPER:088 004) UUO 42
|
||
OPER DISPATCH
|
||
SEE ITS REF MAN 1.2.1
|
||
|
||
|
||
|
||
CALL: (ACALL:088 016) (NCALL:091 019) UUO 43
|
||
CALL DISPATCH
|
||
SEE ITS REF MAN 1.2.1
|
||
|
||
|
||
SSTATU: (ASSTATUS:085 052)
|
||
GET VARIOUS SYS STATUS
|
||
|
||
|
||
|
||
SHUTDN: (ASHUTDN:089 003) .OPER 67
|
||
SHUT DOWN SYSTEM
|
||
ILLEGAL FOR DISOWNED PROCEDURE
|
||
SEE ITS REF MAN 6.5.2.1
|
||
|
||
|
||
|
||
DIETIME: (ADIETIM:089 025) .OPER 66
|
||
READ TIME TILL SYSTEM DOWN
|
||
SEE ITS REF MAN 6.5.2.2
|
||
|
||
|
||
|
||
REVIVE: (AREVIVE:089 032) .OPER 65
|
||
REVIVE SYS
|
||
THIS OPER HAS DELETED THE .HANGU OPER, WHICH WOULD HANG UP A
|
||
PHONE LINE
|
||
|
||
|
||
|
||
SYSCALL: (ASYSC:091 013) .CALL 0,
|
||
.CALL ADR
|
||
ERROR RETURN
|
||
NORMAL RETURN
|
||
ADR: SETZ
|
||
SIXBIT /<CALL NAME>/
|
||
REPEAT #ARGS,BITS,, <ADDRESS OF ARGUMENT>
|
||
BITS 4.9 => LAST ARG
|
||
4.3 - 4.1 0 = NORMAL ARG
|
||
1 = IMMEDIATE
|
||
2 = OUTPUT ARG
|
||
4 = WORD OF CONTROL BITS
|
||
5 = IMMEDIATE CONTROL BITS
|
||
|
||
|
||
|
||
PDUMP: (PDUMP:094 012)
|
||
.PDUMP ADR
|
||
ERROR RETURN
|
||
NORMAL RETURN
|
||
ADR: SETZ
|
||
SIXBIT /PDUMP/
|
||
POINTER TO INFERIOR CHANNEL
|
||
POINTER TO DISK CHANNEL
|
||
POINTER TO STATE WORD
|
||
STATE WORD: 0 (INITIALLY)
|
||
4.9 + N => READY TO DUMP PAGE N
|
||
JOB SPEC'D MUST BE OUR INFERIOR
|
||
|
||
|
||
|
||
LOAD: (NLOAD:097 028)
|
||
PURE LOAD
|
||
.CALL ADR
|
||
ADR: SETZ
|
||
SIXBIT /LOAD/
|
||
[<JOB-SPEC>]
|
||
SETZ [DSKCHN]
|
||
PAGE WORD
|
||
4.9=1 ABSOLUTE
|
||
4.8=1 SHARED WITH OTHER PAGES AT LEAST ONE OF WHICH IS WRITE
|
||
4.7=1 LINK WITH VIRT PG IN RH 1.8-1.1
|
||
2.7=1 WORD ALREADY PROCESSED
|
||
|
||
|
||
|
||
PAGEID: (APGID:105 022)
|
||
.CALL ADR
|
||
ADR: SETZ
|
||
SIXBIT /PAGEID/
|
||
ARG1
|
||
ARG2
|
||
402000,,ARG3
|
||
ARG1/ N ;VIRTUAL PAGE NUMBER (MUST NOT BE ZERO)
|
||
ARG2/ ID ;SIX BITS OF IDENTIFIER (1.1-1.6)
|
||
ARG3/ ;SET TO -1 IF NEW PAGE CREATED,
|
||
;0 IF LINKED TO EXISTING PAGE
|
||
INSERTS A PUBLIC PAGE WITH IDENTIFIER -ID- IN USERS MAP
|
||
AS PAGE SPECIFIED BY FIRST ARGUMENT. IF A PUBLIC PAGE
|
||
WITH IDENTIFIER -ID- ALREADY EXISTS, THAT PAGE WIL BE
|
||
INSERTED IN THE USERS MAP. IN THE FIRST CASE ARG3 WILL
|
||
BE SET TO -1, IN THE SECOND CASE IT WILL BE SET TO 0.
|
||
SKIPS UNLESS BAD ARGUMENTS OR RANDOMNESS.
|
||
|
||
|
||
|
||
SUPSET: (ASUPSET:107 002) .OPER 53
|
||
SEE ITS REF MAN 6.5.1
|
||
|
||
|
||
|
||
GUN: (AGUN:107 011) .OPER 21
|
||
DESTROY PROCEDURE TREE WHOSE TOP INDEX SUPPLIED BY USER
|
||
ILLEGAL FOR DISOWNED PROCEDURE
|
||
SEE ITS REF MAN 5.4
|
||
|
||
|
||
|
||
REALTIME: (AREALT:108 021) .OPER 34
|
||
|
||
REAL TIME USER FEATURE
|
||
.REALT AC,
|
||
SKIPS ONLY IF REAL TIME FACILITY REQUESTED AND SEIZED
|
||
AC= 4.9=>TURN OFF OLD CLOCK RATE
|
||
FLUSHING REAL TIME FACILITY AND REMAINDER
|
||
OF CURRENT TICK AND ZEROING TICK COUNT
|
||
4.8=>TURN ON NEW CLOCK RATE
|
||
4.7=>TRY TO SEIZE REAL TIME USER FACILITY
|
||
4.6=>DON'T SETTLE FOR PSEUDO-REAL TIME STATUS
|
||
4.5 =>ONLY WANT PSEUDO
|
||
4.4=>PROGRAM TO BE BLOCKED EXCEPT FOR HIGH PRIORITY
|
||
PHASE OR INT. LEVEL
|
||
4.3=>READ INTO WD3+4 AS DESCRIBED BELOW
|
||
(BEFORE ANY OTHER BITS INTERPRETED)
|
||
3.1-4.2=RESERVED FOR EXPANSION, SHOULD BE ZERO
|
||
1.1-2.9 (RH) POINTER TO 4 WORD BLOCK
|
||
WD1 FRAME TIME IN 60'THS (MUST BE <2**18.)
|
||
WD2 PRIORITY TIME IN 60'THS (MUST BE <7 AND <WD1/2)
|
||
WD3 IF 4.3 ON, SET RH TO FRAME TIME,
|
||
LH TO TICKS SINCE EXAMINED
|
||
WD4 IF 4.3 ON, SET RH TO HIGH PRIORITY TIME,
|
||
LH TO 0 IF CURRENTLY LOW
|
||
PRIORITY OR -1 IF CURRENTLY HIGH PRIORITY
|
||
THIS OPER HAS DELETED THE .GSNAM OPER, WHICH HAS BEEN REPLACED
|
||
BY A SUSET TO READ OWN USER VARIABLE USYSNM
|
||
|
||
|
||
|
||
VALUE: (NVALUE:109 027) .CALL 4,
|
||
VALRET: (AVALRET:109 028)
|
||
SEE ITS REF MAN 5.3.1
|
||
|
||
|
||
|
||
UTRAN: (AUTRAN:109 033) .CALL 5,
|
||
SEE ITS REF MAN 5.1.3
|
||
|
||
|
||
|
||
CLOSE: (NCLOSE:109 004) (ACLOSE:109 009) .OPER 7
|
||
.CLOSE CH,
|
||
CLOSES I-O CHANNEL CH, AS WELL AS ANY TRANSACTIONS ON CHANNEL
|
||
NO RESULT ARGS.
|
||
14 IS THE ONLY FAILURE CODE POSSIBLE; IT RESULTS FROM A
|
||
FIRST ARG NOT BETWEEN 0 AND 17 .
|
||
SEE ITS REF MAN 2.7.1
|
||
|
||
|
||
|
||
MASTER: (AMASTER:110 053) .OPER 61
|
||
SEE ITS REF MAN 6.8.5
|
||
|
||
|
||
|
||
UCLOSE: (AUCLOSE:110 002) .OPER 10
|
||
CLOSE INFERIOR
|
||
SEE ITS REF MAN 5.2.1
|
||
|
||
|
||
|
||
RELOAD: (NRELOA:111 115)
|
||
RELOAD CALL - IGNORE ARGS
|
||
MUST BE FROM TOP LEVEL NON-DISOWNED JOB
|
||
RELOADS AND STARTS SYS: ATSIGN WHATEVER
|
||
|
||
|
||
|
||
SLEEP: (ASLEEP:111 094) .OPER 3
|
||
.SLEEP AC,
|
||
IF C(AC) + OR ZERO,
|
||
BECOME DORMANT FOR C(AC) 1/30'THS OF A SEC
|
||
IF C(AC) -,
|
||
BECOME DORMANT TILL MAGNITUDE OF C(AC) > C(TIME)
|
||
SEE ITS REF MAN 6.8.1
|
||
|
||
|
||
|
||
DISMIS: (NDISMIS:111 008) (ADISMIS:111 033) .CALL 1,
|
||
DISMIS SYSTEM CALL.
|
||
1ST ARG INT PDL PTR
|
||
(WILL BE DECREMENTED IF NOT AN IMMEDIATE ARG)
|
||
2ND ARG OPTIONAL PC TO DISMIS TO (OVERRIDES THAT IN INT PDL)
|
||
3RD ARG OPTIONAL NEW .DF1 VALUE " " " "
|
||
4TH ARG OPTIONAL NEW .DF2 VALUE ...
|
||
IF 4 ARGS GIVEN, 1ST IGNORED EXCEPT FOR POSSIBLY DECREMENTING
|
||
SEE ITS REF MAN 4.2.2
|
||
|
||
|
||
|
||
LOGIN: (NLOGIN:112 002) .OPER 6
|
||
SKIP IF ALREADY LOGGED IN OR BAD NAME
|
||
SEE ITS REF MAN 6.1
|
||
|
||
|
||
|
||
RSYSI: (ARSYSI:112 034) .OPER 52
|
||
SEE ITS REF MAN 6.6.3
|
||
|
||
|
||
|
||
RDSW: (ARDSW:112 052) .OPER 20
|
||
BEING REPLACED BY DATAI
|
||
SEE ITS REF MAN 6.2.1
|
||
|
||
|
||
|
||
RDTIME: (ARDTIME:112 051) .OPER 17
|
||
SEE ITS REF MAN 6.3.1
|
||
|
||
|
||
|
||
SETMSK: (ASETMSK:112 039) .OPER 4
|
||
SET OPWN USER VARIABLE MSKST
|
||
BEING REPLACED BY A SUSET
|
||
|
||
|
||
|
||
SETM2: (ASETM2:112 037) .OPER 5
|
||
SEE ITS REF MAN 4.2.1
|
||
|
||
|
||
|
||
DETACH: (NDETAC:113 014)
|
||
.CALL ADR
|
||
ERROR RETURN
|
||
NORMAL RETURN
|
||
ADR: SETZ
|
||
SIXBIT /DETACH/
|
||
SETZ [<JOB SPEC>]
|
||
DISOWN JOB'S ENTIRE TREE AND FREE CONSOLE. IF TREE HAS NO
|
||
CONSOLE, JUST MAKES IT DISOWNED. NO ARG => THIS JOB'S TREE
|
||
ALWAYS SKIPS IF THE JOB SPEC IS REASONABLE.
|
||
|
||
|
||
|
||
ATTACH: (NATTAC:114 009)
|
||
.CALL ADR
|
||
ERR RET
|
||
NORMAL RET
|
||
ADR: SETZ
|
||
SIXBIT /ATTACH/
|
||
400000,[<JOB SPEC>]
|
||
|
||
|
||
|
||
DISOWN: (ADISOWN:115 004) .OPER 27
|
||
.DISOWN CH,
|
||
MAKES DIRECTLY INFERIOR PROCEDURE OPEN ON CHANNEL CH, THE
|
||
TOP LEVEL JOB OF A DISOWNED JOB
|
||
SEE ITS REF MAN 5.2.2
|
||
|
||
|
||
|
||
LOGOUT: (ALOGOUT:117 006) .OPER 33
|
||
ROUTINE TO LOG OUT USER WITH TOP PROCEDURE INDEX IN U
|
||
SEE ITS REF MAN 6.1
|
||
|
||
|
||
|
||
ASSIGN: (AASSIGN:118 024) .OPER 43
|
||
ASSIGN UTAPE
|
||
SEE ITS REF MAN 3.1.2.2
|
||
|
||
|
||
|
||
EOFC: (AEOFC:118 049) .OPER 50
|
||
READ END OF FILE CHARACTER
|
||
OBSOLETE
|
||
SEE ITS REF MAN 2.3.1
|
||
|
||
|
||
|
||
DESIGN: (ADESIGN:118 038) .OPER 44
|
||
DEASSIGN UTAPE
|
||
SEE ITS REF MAN 3.1.2.2
|
||
|
||
|
||
|
||
RTIME: (ARTIME:119 026) .OPER17
|
||
.RTIME AC,
|
||
RETURNS SIXBIT HHMMSS (24 HOUR TIME) IN AC
|
||
SEE ITS REF MAN 6.3.2
|
||
|
||
|
||
|
||
RYEAR: (ARYEAR:119 046) .OPER 100
|
||
.RYEAR AC,
|
||
PUSHJ'S TO RYEAR AND MOVEM'S E TO AC
|
||
|
||
|
||
|
||
RDATE: (ARDATE:119 018) .OPER 46
|
||
.RDATE AC,
|
||
RETURNS SIXBIT YYMMDD IN AC
|
||
SEE ITS REF MAN 6.3.3
|
||
|
||
|
||
PDTIME: (APDTIME:119 007) .OPER 54
|
||
.OPERS RELEVANT TO REAL TIME
|
||
.PDTIME AC,
|
||
RETURNS 60.*<# SECS SINCE BEGINNING OF YEAR>
|
||
|
||
|
||
|
||
RDATIME: (ARDATI:119 034) .OPER 102
|
||
.RDATIM AC,
|
||
DOES .RTIME TO AC, .RDATE TO AC+1
|
||
|
||
|
||
|
||
RLPDT: (ARLPDT:119 052) .OPER 101
|
||
.RLPDT AC,
|
||
DOES .RYEAR AC+1, AND ALSO MOVEM'S A TO AC
|
||
|
||
|
||
|
||
IOTLSR: (AIOTLS:125 035) .OPER 51
|
||
OPER TO REQUEST OR FLUSH RUNNING IN IOT USER MODE
|
||
SEE ITS REF MAN 6.8.3
|
||
|
||
|
||
|
||
TRANS: (NTRNS:128 002) .CALL 2,
|
||
TRANS SYSTEM CALL.
|
||
DEFAULT 5 ARGS TO 0.
|
||
FAIL IF TOO MANY TRANSL
|
||
SEE ITS REF MAN 2.2.2.1
|
||
|
||
|
||
|
||
TRANEX: (NTRNEX:129 008)
|
||
TRANEX CALL -- READ IN A JOB'S TRANSL LIST.
|
||
1ST ARG RH - JOB SPEC. BIT 4.8 - IF SET, TRNLS1 NOT TRNLST.
|
||
2ND ARG AOBJN -> PLACE TO STORE LIST INTO.
|
||
UPDATED AOBJN PTR IS OUTPUT ARG.
|
||
SKIPS IF ENTIRE LIST FIT IN BUFFER.
|
||
EACH ENTRY TAKES 9 WDS OF SPACE: MODE,, IN 1ST,
|
||
INPUT DEV, FN1, FN2, SNAME; THEN OUTPUT DEV, FN1, FN2, SNAME.
|
||
|
||
|
||
|
||
TRANDL: (NTRNDL:130 007) (ATRNDL:133 006) .CALL 7,
|
||
TRANDL CALL -- DELETE ENTRY FROM TRANSL LIST.
|
||
1ST ARG RH JOB SPEC. OF JOB WHICH IS OK TO MODIFY.
|
||
1ST ARG LH MODE BITS AS FOR .TRANAD, ALSO 4.8 BIT SAYS TRNLS1
|
||
(SPEC'D JOB AND INFS, RATHER THAN JUST SPEC'D JOB)
|
||
2ND ARG AOBJN -> INPUT DEV, FN1, FN2, SNAME. (ONLY DEV NEC.).
|
||
SKIPS IF SOMETHING WAS DELETED.
|
||
SEE ITS REF MAN 2.2.2.3
|
||
|
||
|
||
|
||
TRANAD: (NTRNAD:131 005) (ATRANA:133 002) .CALL 3,
|
||
TRANAD CALL. -- ADD AN ENTRY TO A TRANSL LIST.
|
||
1ST 2 ARGS AS FOR TRANDL.
|
||
3RD ARG LIKE 2ND BUT GIVES OUTPUT NAMES.
|
||
SKIPS UNLESS ALL ENTRIES WERE IN USE.
|
||
SEE ITS REF MAN 2.2.2.2
|
||
|
||
|
||
|
||
TRANCL: (NTRNCL:132 006)
|
||
TRANCL CALL -- RESET A ONE OR BOTH TRANSL LISTS FOR A JOB.
|
||
1ST ARG RH HAS JOB SPEC OF MODIFYABLE JOB.
|
||
BIT 4.8 CLEAR TRNLS1 VAR. (TRANSL FOR THIS JOB & INFS).
|
||
BIT 4.7 CLEAR TRNLST VAR. (TRANSL FOR THIS JOB ONLY).
|
||
ALWAYS SKIPS IF VALID.
|
||
|
||
|
||
|
||
JOBGET: (NJBGT:152 036)
|
||
.CALL ADR
|
||
ERROR RETURN
|
||
NORMAL RETURN
|
||
ADR: SETZ
|
||
SIXBIT /JOBGET/
|
||
[BOJCHNL]
|
||
2000,,WD1
|
||
2000,,WD2
|
||
UP TO SIX WDS RETURNED
|
||
WD1 BITS:
|
||
4.9-4.7 => IMAGE/ASCII, BLOCK/UNIT, OUTPUT/INPUT
|
||
4.6 => INPUT CLOSE
|
||
4.5 => OUTPUT CLOSE
|
||
1.4-1.1 => TYPE OF SYSTEM CALL
|
||
0 OPEN
|
||
1 IOT
|
||
2 STATUS
|
||
3 RESET
|
||
4 RCHST
|
||
5 ACCESS
|
||
6 FDELE (DELETE OR RENAME)
|
||
7 FDELE (RENAME WHILE OPEN)
|
||
WD2 SET ONLY FOR BLOCK IOT POINTER,
|
||
ACCESS POINTER, NEW FN1 FOR FDELE
|
||
WD3 FN1
|
||
WD4 FN2
|
||
WD5 SYS NAME
|
||
WD6 LEFT ADJUSTED DEVICE NAME
|
||
WD7 NEW FN2 FOR FDELE.
|
||
IGNORE ALL RETURNED INFO ON AN ERROR RETURN
|
||
IF 4.5 OR 4.6 IS SET THEN ALL ELSE IS MEANINGLESS
|
||
|
||
|
||
|
||
JOBRET: (NJBRT:153 011)
|
||
.CALL ADR
|
||
ERROR RETURN
|
||
NORMAL RETURN
|
||
ADR: SETZ
|
||
SIXBIT /JOBRET/
|
||
[BOJCHNL]
|
||
SETZ [OPEN LOSS #(IF RH = 0),,# TIMES FOR CREATING JOB TO SKIP]
|
||
|
||
|
||
|
||
SETIOC: (NSTIOC:156 015)
|
||
.CALL ADR
|
||
WON'T SKIP
|
||
ADR: SETZ
|
||
SIXBIT /SETIOC/
|
||
ARG1
|
||
SETZ ARG2
|
||
ARG1: CHANNEL JOB OR BOJ DEVICE IS OPEN ON
|
||
ARG2: TYPE OF IOCER TO CAUSE
|
||
THIS CALL CAUSES THE NEXT IOT EXECUTED BY THE
|
||
PROCEDURE ON THE OTHER END OF THE CHANNEL TO GET
|
||
THE SPECIFIED IO CHANNEL ERROR
|
||
|
||
|
||
|
||
JOBINT: (NJBINT:157 010)
|
||
.CALL ADR
|
||
SKIPS UNLESS JOB END OF CHNL NOT THERE
|
||
ADR: SETZ
|
||
SIXBIT /JOBINT/
|
||
401000,,BOJCH
|
||
GIVE CREATOR A SECOND WORD INT ON CHANNEL CORRESP TO BOJCH
|
||
|
||
|
||
|
||
DEMON; (ADEMON:163 035)
|
||
|
||
|
||
|
||
DEMSIG: (ADEMSIG:163 052)
|
||
|
||
|
||
|
||
IOPUSH: (AIOPUSH:166 006) .OPER 13
|
||
IO CHANNEL PUSH DOWN LIST ROUTINES
|
||
LOOK AT LH OF RESET TABLE TO SEE IF DEVICES HAVE ROUTINES
|
||
(FOR INTERRUPTS ETC)
|
||
C(I) =0 AT DSP => IOPUSH =1 => IOPOP
|
||
SEE ITS REF MAN 2.6.1
|
||
|
||
|
||
|
||
IOPDL: (AIOPDL:166 040) .OPER 57
|
||
LIKE IOPOP
|
||
SEE ITS REF MANJ 2.6.2
|
||
|
||
|
||
|
||
IOPOP: (AIOPOP:166 025) .OPER 14
|
||
CLOSE WHATEVER MAY BE OPEN ON CHANNEL POPPING INTO
|
||
SEE ITS REF MAN 6.2.1
|
||
|
||
|
||
|
||
GETSYS: (AGETSYS:167 005) .OPER 23
|
||
.GETSYS AC,
|
||
TRANSFERS SYSTEM AREA SPECIFIED BY C(AC+1)
|
||
TO USER AREA STARTING AT R.H. C(AC) OF LENGTH MINUS L.H. C(AC)
|
||
SEE ITS REF MAN 6.6.1
|
||
|
||
|
||
|
||
GETLOC: (AGETLOC:169 004) .OPER 25
|
||
GET AN ABSOLUTE LOCATION
|
||
.GETSYS AC,
|
||
C(A)=FROM(ABS),,TO(RELATIVE)
|
||
SEE ITS REF MAN 6.6.2
|
||
|
||
|
||
|
||
SETLOC: (ASETLOC:169 014) .OPER 26
|
||
SET AN ABSOLUTE LOCATION
|
||
.SETLOC AC,
|
||
C(AC)=FROM(RELATIVE),,TO(ABS)
|
||
SEE REF MAN 6.8.4
|
||
|
||
|
||
|
||
IFSET: (AIFSET:169 020) .OPER 75
|
||
SET AN ABSOLUTE LOCATION ONLY IF C(ABS)=C(TEST)
|
||
SKIP IF SUCCESSFUL
|
||
.IFSET AC,
|
||
C(AC)=<POINTER TO 2 WORD BLOCK>,,TO ADR(ABS)
|
||
WORD 1=TEST
|
||
WORD 2=NEW C(ABS)
|
||
SEE ITS REF MAN 6.8.4
|
||
|
||
|
||
|
||
REDEF: (AREDEF:170 021) .OPER 74
|
||
REDEFINE ITS SYMBOL
|
||
.REDEF AC,
|
||
C(AC)=POINTER TO 2 WORD BLOCK
|
||
WORD 1 = SYMBOL
|
||
WORD 2 = VALUE
|
||
DELETE SYM IF ALL 4 FLAG BITS SET
|
||
ADD SYM IF NOT FOUND
|
||
SKIPS IF SUCCESSFUL
|
||
FAIL ONLY IF NOT ENOUGH ROOM
|
||
ILLEGAL IF DISOWNED
|
||
SEE ITS REF MAN 6.8.6
|
||
|
||
|
||
|
||
EVAL: (AEVAL:170 005) .OPER 73
|
||
LOOK UP ITS SYMBOL
|
||
.EVAL AC,
|
||
C(AC)=SQUOZE SYMBOL
|
||
REPLACES SYMBOL BY VALUE & SKIPS IF SUCCESSFUL
|
||
SEE ITS REF MAN 6.6.4
|
||
|
||
|
||
|
||
UPISET: (AUPISET:171 025) .OPER 36
|
||
SET OWN USER VARIABLE PICLR
|
||
BEING REPLACED BY A SUSET
|
||
|
||
|
||
|
||
WSNAME: (AWSNAME:171 021) .OPER 35
|
||
SET OWN USER VARIABLE USYSNM
|
||
BEING REPLACED BY A SUSET
|
||
|
||
|
||
|
||
GENSYM: (AGENSYM:172 004) .OPER 32
|
||
GENERATE A UNIQUE SYM
|
||
.GENSYM AC,
|
||
LOADS AC WITH SYM
|
||
SEE ITS REF MAN 6.8.2
|
||
|
||
|
||
|
||
CORE: (ACORE:173 006) (UACORE:173 005) .CALL 6,
|
||
CORE ALLOCATOR
|
||
SEE ITS REF MAN 4.3.1
|
||
|
||
|
||
|
||
CORTYP: (NCORTY:174 019)
|
||
CORTYP SYSTEM CALL.
|
||
IF 2 ARGS,1ST ARG IS JOB SPEC, LIKE CORBLK'S 2ND AND 4TH ARGS.
|
||
2ND ARG IS PAGE NUMBER IN THAT JOB.
|
||
IF ONLY 1 ARG, IT IS THE PAGE NUMBER IN THE EXECUTING JOB.
|
||
RETURNED VALUES:
|
||
1ST VALUE BIT 4.9 => PAGE IS WRITEABLE, 4.8 => PAGE EXISTS.
|
||
FOR NON EX PAGE, ALL THE REST ARE 0.
|
||
2ND IS 0 => PAGE IS ABSOLUTE, -1 => UNSHARED,
|
||
ELSE IS JOB NUMBER OF NEXT JOB IN CIRCULAR LIST.
|
||
3RD IF ABSOLUTE PAGE, HAS PAGE NUMBER.
|
||
IF PAGE IS SHARED, HAS PAGE NUMBER IN THE JOB
|
||
WHOSE NUMBER IS THE 2ND VALUE. ELSE, 0.
|
||
4TH BIT 4.9 => PAGE IS IN CORE.
|
||
BIT 4.8 => PAGE IS PUBLIC.
|
||
RH IS NUMBER OF TIMES PAGE IS SHARED
|
||
(WILL BE 0 FOR ABS PAGE OR IF NO PAGE,
|
||
OTHERWISE WILL BE >= 1)
|
||
DON'T LET PAGE MAPS CHANGE.
|
||
|
||
|
||
|
||
CORBLK: (NCORBL:175 033)
|
||
CORBLK CALL
|
||
1ST ARG FLAG BITS (RH XOR'D INTO LH BEFORE DECODING)
|
||
4.9 GET WRITE ACCESS IF OK, DON'T FAIL IF NOT.
|
||
4.8 GET READ ACCESS
|
||
4.7 GET WRITE ACCESS, FAIL IF CAN'T
|
||
4.6 MAKE PAGE PUBLIC
|
||
4.5 MAKE IT PRIVATE (BOTH FAIL IF COULDN'T GET WRITE ACCESS)
|
||
4.4 FAIL IF CAN'T GET READ ACCESS.(COPYING NONEXISTANT PAGE)
|
||
4.3 COPY ON WRITE(CURRENTLY ONLY IMPLEMENTED FOR PAGE OF FILE)
|
||
IF ALL 0, DELETE.
|
||
2ND ARG SPECIFIES JOB TO PUT PAGE IN
|
||
IS EITHER CHNL NUM, -1 FOR SELF, OR 400000+USRNUM
|
||
JOB SPECIFIED MUST BE CURRENT JOB OR INFERIOR.
|
||
3RD ARG RH. IS PAGE NUM. IN IT.
|
||
LH. IF NEGATIVE, BLOCK MODE, REPEAT THAT MANY TIMES,
|
||
INCREMENTING BOTH PAGE NUMS EACH TIME.
|
||
IN BLOCK MODE, REWRITES 3RD AND 5TH ARGS EACH TIME.
|
||
4TH ARG IS SOURCE OF PAGE,
|
||
EITHER 0,,-1 OR -1 FOR SELF, CHNL NUM, 400000+USRNUM
|
||
400000 FOR ABS PAGE (SYS JOB),
|
||
400377 FOR SUPERIOR,
|
||
OR 400001 FOR FRESH PAGE (CORE JOB).
|
||
OR DSK CHNL GET NTH PG IN FILE
|
||
IF NO 4TH ARG, SAME AS 2ND
|
||
5TH ARG IS PAGE NUM IN SOURCE (IGNORED FOR FRESH PAGE)
|
||
IF NO 5TH ARG, SAME AS 3RD IF 4TH ARG SPECIFIES JOB.
|
||
IF 4TH ARG SPECS FILE, USE CURRENT ACCESS PNTR
|
||
IF INSERTING DISK PAGES, THE ACCESS PTR WILL
|
||
BE POSITIONED AT THE BEGINNING OF THE PAGE AFTER THE
|
||
LAST PAGE INSERTED.
|
||
|
||
|
||
|
||
CBLK: (ACBLK:183 026) .OPER 42
|
||
.CBLK AC,
|
||
AC 4.9 MUST BE ZERO
|
||
4.7 USED INTERNALLY IN CODE (W RQ ON PDP6)
|
||
4.3-4.1 = 0 GET PAGE FROM SELF
|
||
= 1 GET ABSOLUTE PAGE
|
||
= 2 GET PAGE FROM USER OPEN ON CH # 3.1-3.8
|
||
= 3 GET PAGE FROM USER NUMBER 3.1-3.8
|
||
= 4 GET PAGE
|
||
= 5 GET PAGE (PUBLIC)
|
||
= 6 MAKE PAGE PRIVATE
|
||
= 7 MAKE PAGE PUBLIC
|
||
3.9=1 REQUEST WRITE PERMISSION (IGNORED ON FRESH PAGE,
|
||
OTHERWISE VALID ONLY FOR SELF OR DIRECT INFERIOR OPEN
|
||
ON CH OR PUBLIC PAGE)
|
||
3.1-3.8 USER NUMBER OR CH # (377 => CREATOR IF JOB DEVICE)
|
||
2.9=1 INSERT PAGE, 0 DELETE
|
||
(IGNORES 4.3-4.1 EXCEPT FOR 6 OR 7 WHEN IT IS IGNORED)
|
||
2.1-2.8 VIRTUAL PAGE TO BE AFFECTED
|
||
1.1-1.9 BLOCK # IN ABSOLUTE OR OTHER USER
|
||
(OR SELF IF 4.3-4.1 = 0)
|
||
NEW .CBLK CODE, PASSES THE BUCK TO CORBLK.
|
||
SAME AS FAR AS CALLER IS CONCERNED.
|
||
THIS OPER HAS DELETED THE .RRTIM OPER, WHICH HAS BEEN
|
||
REPLACED BY A SUSET TO READ OWN USER VARIABLE UTRNTM
|
||
|
||
|
||
|
||
ARMOVE: (AARMOV:206 004) .OPER 40
|
||
DONT ALLOW ARM TO RUN WITHOUT TIPBRK
|
||
SEE ITS REF MAN 3.3.2.1
|
||
|
||
|
||
|
||
ARMOFF: (AARMOFF:209 012) .OPER 70
|
||
SEE ITS REF MAN 3.3.2.1
|
||
|
||
|
||
|
||
ARMRS: (AARMRS:209 020) .OPER 55
|
||
RESET ARM LOCK FLAGS
|
||
|
||
|
||
|
||
POTSET: (APOTSE:211 002) .CALL 16,
|
||
SEE ITS REF MAN 3.3.3.1
|
||
|
||
|
||
|
||
DSTART: (ADSTART:219 021) .CALL 10,
|
||
ROUTINES TO START 340 DISPLAY WITH DIS BUFF IN USERS CORE
|
||
|
||
|
||
|
||
DSTRT:
|
||
DSTL: (ADSTL:219 022) .CALL 12,
|
||
SEE ITS REF MAN 3.4.1.1
|
||
|
||
|
||
|
||
NDIS: (ANDIS:219 037) .OPER 71
|
||
DISPLAY N TIMES AND THEN STOP
|
||
SEE ITS REF MAN 3.4.1.5
|
||
|
||
|
||
|
||
DCLOSE: (ADCLOSE:220 037) .OPER 15
|
||
SEE ITS REF MAN 3.4.1.3
|
||
|
||
|
||
|
||
LTPEN: (ALTPEN:220 054) .CALL 14,
|
||
SEE ITS REF MAN 3.4.1.2
|
||
|
||
|
||
|
||
DSTOP: (ADSTOP:220 002) .OPER 16
|
||
SEE ITS REF MAN 3.4.1.4
|
||
|
||
|
||
|
||
VSTST: (AVSTST:241 001) .OPER 62
|
||
READ CURRENT DISPLAY STATE
|
||
SEE ITS REF MAN 3.3.1.1
|
||
|
||
|
||
|
||
VSCAN: (AVSCAN:242 001) .CALL 15,
|
||
SEE ITS REF MAN 3.3.1.1
|
||
|
||
|
||
|
||
NETBLK: (ANETBLK:255 073)
|
||
JRST ILUUO ;FOR NOW
|
||
|
||
|
||
|
||
NETINT: (ANETINT:255 054)
|
||
.NETINT CH,
|
||
SEND NETWORK INTERRUPT "INR" OR "INS"
|
||
INR FROM RECEIVER TO SENDER (LOCAL SOCKET EVEN, FOREIGN ODD)
|
||
INS FROM SND TO RCV ( -", -")
|
||
|
||
|
||
|
||
NETS: (ANETS:255 037) .OPER 64
|
||
SEND BUFFER NOW
|
||
.NETS CH,
|
||
RETURN
|
||
THIS OPER HAS DELETED THE .DIALW OPER
|
||
|
||
|
||
|
||
NETAC: (ANETAC:255 006) .OPER 63
|
||
ACCEPT CONNECTION
|
||
.NETAC CH,
|
||
ERROR RETURN
|
||
NORMAL RETURN
|
||
THIS OPER HAS DELETED THE .DIAL OPER, WHICH WAS USED TO
|
||
REQUEST DIALING ON A DATAPHONE LINE
|
||
|
||
|
||
|
||
RBTC: (ARBTC:305 004) .OPER 104
|
||
ROBOT CONSOLE READ SWITCHES
|
||
|
||
|
||
|
||
FEED: (AFEED:318 044) .OPER 72
|
||
SEE ITS REF MAN 3.2.4.1
|
||
|
||
|
||
|
||
UBLAT: (AUBLAT:338 038) .OPER 56
|
||
UTAPE CONTINUOUS NON-FILE IO
|
||
GET TAPE NUM, C(AC), SKIP IF NEG OR ZERO
|
||
SEE ITS REF MAN 3.1.2.3
|
||
|
||
|
||
|
||
UINIT: (AUINIT:339 032) .OPER 77
|
||
INITIALIZE UTAPE DIRECTORY
|
||
.UINIT AC,
|
||
C(AC)=TAPE #
|
||
TAPE MUST BE ASSIGNED
|
||
SEE ITS REF MAN 3.1.2.5
|
||
|
||
|
||
|
||
UTNAM: (AUTNAM:339 004) .OPER 76
|
||
SET UTAPE NAME
|
||
.UTNAM AC,
|
||
LH(AC)=6BIT NAME, RH(AC)=TAPE #
|
||
SEE ITS REF MAN 3.1.2.4
|
||
|
||
|
||
|
||
UDISMT: (AUDISM:340 004) .OPER 22
|
||
UTAPE DISMOUNT
|
||
SEE ITS REF MAN 3.1.2.1
|
||
|
||
|
||
|
||
FLAP: (NFLAP:340 005)
|
||
SAME AS UDISMT
|
||
|
||
|
||
|
||
SRDATE: (ASRDAT:394 024)
|
||
SET REFERENCE DATE
|
||
|
||
|
||
|
||
SFDATE: (ASFDAT:394 032)
|
||
SET FILE CREATION DATE WORD
|
||
|
||
|
||
|
||
FILLEN: (NFILLEN:394 068)
|
||
GETS FILE LENGTH
|
||
|
||
|
||
|
||
FILBLK: (AFILBL:394 061)
|
||
READ ALL 5 PARAMETERS OF NAME AREA
|
||
|
||
|
||
|
||
RDMPBT: (ARDMPB:394 038)
|
||
READ FILE DUMPED BIT
|
||
|
||
|
||
|
||
DMPCH: (ADMPCH:394 002) .OPER 105
|
||
SET OR READ STATUS OF DUMP BIT OF FILE OPEN ON CHNL IN AC(RH)
|
||
|
||
|
||
|
||
RFDATE: (ARFDAT:394 016)
|
||
READ FILE CREATION DATE WORD
|
||
|
||
|
||
|
||
RESRDT: (ARESRD:394 028)
|
||
RESTORE REFERENCE DATE
|
||
|
||
|
||
|
||
SDMPBT: (ASDMPB:394 042)
|
||
SET FILE DUMPED BIT
|
||
|
||
|
||
|
||
IPDP: (AIPDP:442 006) .OPER 24
|
||
.IPDP CH,
|
||
INTERRUPT THE PDP6, I/O CH SHOULD HAVE PDP6 OPEN AS INFERIOR
|
||
THIS CALL DOESNT SKIP OR INTERRUPT TO THE USER
|
||
THIS OPER HAS DELETED THE .RD500 OPER, WHICH READ A CLOCK
|
||
|
||
5/29/73 PROGRAMMING THE PDP-10 TO PDP-11 INTERFACE
|
||
|
||
THE INTERFACE LETS THE PDP-10 PROGRAMMER DIRECTLY ACCESS THE MEMORIES
|
||
OF UP TO EIGHT PDP-11'S. PDP-10 PAGES ARE MAPPED INTO SEGMENTS OF
|
||
VARIABLE SIZE IN THE PDP-11'S MEMORY. THE PDP-10 PAGE MAP IS ALSO
|
||
DIRECTLY ADDRESSABLE IN MEMORY (IT CURRENTLY LIVES IN LOCATIONS
|
||
776000-776777)**. THERE IS ONE ENTRY IN THE MAP FOR EACH PDP-10 PAGE.
|
||
** SEE ALSO BELOW
|
||
|
||
PAGE TABLE ENTRY:
|
||
4.9 VALID
|
||
4.8 WRITE ENABLE
|
||
4.3-4.7 (5 BITS) NOT USED (0)
|
||
3.9-4.2 (3 BITS) PDP-11 NUMBER
|
||
2.2-3.8 (16 BITS) RELOCATION
|
||
ORIGIN OF SEGMENT OF IN PDP-11 ADDRESS SPACE
|
||
PDP-11 ADDRESS=4*RELOCATION
|
||
1.1-2.1 (10 BITS) PROTECTION (PDP-11 PROTECTION=4*PROTECTION
|
||
IF PROTECTION=0 THEN ONLY ONE 16 BIT WORD IS ACCESSIBLE)
|
||
|
||
WRITE REFERENCE FORMAT
|
||
3.3-4.9 (16 BITS) WORD 0, LOW ORDER WORD
|
||
1.5-3.2 (16 BITS) WORD 1, HIGH ORDER WORD
|
||
1.4 DON'T WRITE WORD 0
|
||
1.3 DON'T WRITE WORD 1
|
||
1.1-1.2 (2 BITS) NOT USED
|
||
|
||
READ REFERENCE FORMAT
|
||
3.3-4.9 (16 BITS) WORD 0, LOW ORDER WORD
|
||
1.5-3.2 (16 BITS) WORD 1, HIGH ORDER WORD
|
||
1.1-1.4 (4 BITS) 0
|
||
|
||
NOTE -- SPLIT CYCLES WILL DO THE RIGHT THING; HENCE, ILDB AND IDPB WORK.
|
||
|
||
CAUTION -- WHEN USING BYTE INSTRUCTIONS, A 16 BIT BYTE SIZE IS
|
||
RECCOMMENDED. SUCCESSIVE INCREMENTS OF BYTE POINTERS WITH AN 8 BIT BYTE
|
||
SIZE DO NOT ADDRESS CONSECUTIVE BYTES IN THE PDP-11!
|
||
|
||
ITS SYSTEM CALL TO PUT 11 MAP ENTRY IN YOUR 10 MAP
|
||
|
||
.CALL [SETZ
|
||
SIXBIT /T11MP/
|
||
10PGNO ;PTR TO 10 PG NO
|
||
SETZ PGENT] ;PTR TO ENTRY (FORMAT ABOVE)
|
||
10PGNO: 3
|
||
PGENT: <<ACCESS>_34.>+<<PDP-11 #>_26.>+<<PDP-11 ADDRESS/4>_10.>+
|
||
<<SEGMENT SIZE (BYTES>/4>
|
||
FOR ABOVE 10 ADDRESSES 6000-7777 ARE MAPPED INTO
|
||
11 ADDRESSES 10000-17776. BOTH READ AND WRITE ARE ENABLED.
|
||
|