1
0
mirror of https://github.com/PDP-10/its.git synced 2026-01-11 23:53:12 +00:00
PDP-10.its/doc/_info_/its.info
2019-05-03 08:29:50 +02:00

1382 lines
31 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.