DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦d19681016⟧

    Length: 17586 (0x44b2)
    Notes: pts_type(SC)
    Names: »TASS.SC«

Derivation

└─⟦245262b9f⟧ Bits:30009679 Philips computer tape "600220"
    └─⟦this⟧ »M:92NA/TASS.SC« 
    └─⟦this⟧ »M:92SP/TASS.SC« 
└─⟦38a30a456⟧ Bits:30009662 Philips computer tape "600104"
    └─⟦this⟧ »M:92OD/TASS.SC« 
└─⟦3a2bec7de⟧ Bits:30009687 Philips computer tape "600313"
    └─⟦this⟧ »M:821/TASS.SC« 
└─⟦470bcbfc6⟧ Bits:30009709 Philips computer tape "M_92LP"
    └─⟦this⟧ »M:92LP/TASS.SC« 
└─⟦6349b94c6⟧ Bits:30009684 Philips computer tape "600308"
    └─⟦this⟧ »M:92D1/TASS.SC« 
└─⟦726a6c4ca⟧ Bits:30009685 Philips computer tape "600309"
    └─⟦this⟧ »M:92D2/TASS.SC« 
└─⟦9ad21746d⟧ Bits:30009682 Philips computer tape "600304"
    └─⟦this⟧ »M:92NA/TASS.SC« 
└─⟦9af60a727⟧ Bits:30009707 Philips computer tape "M_173"
    └─⟦this⟧ »M:173/TASS.SC« 
    └─⟦this⟧ »M:173/TASS.SC« 
└─⟦a25d6defe⟧ Bits:30009676 Philips computer tape "600210"
    └─⟦this⟧ »M:92NA/TASS.SC« 
    └─⟦this⟧ »M:92SP/TASS.SC« 
└─⟦dab19bdd7⟧ Bits:30009677 Philips computer tape "600218"
    └─⟦this⟧ »M:261/TASS.SC« 

PTS(SC)

	IDENT TASS 	REL 9.2 79-11-16  870105040920 

			=1, PR 4313
*			REL 9.1 78-10-25

* 
* 
****************************************************
* 
*   PHILIPS TERMINAL SYSTEM  PTS
* 
*   TASS  = ASSIGN FILE CODE  ACTIVATION PART 
* 
* 
* 
* 
* 
* 
****************************************************
* 
*   THIS MODULE IS ENTERED VIA
*   ASSIGN REQUEST (DATA 15) OR 
*   ASSIGN INDEX REQUEST (DATA 16). 
* 
*   LDK A7,TC 
*   LDKL	A8,ASBLK 
*   LKM 
*   DATA   15 
* 
*   INPUT   A5 = TTAB ADDRESS 
*           A7 = TC 
*           A8 = ASBLK ADDRESS
*           WHERE ASBLK IS A PARAMETER BLOCK
*           AND TC = 1 WHEN TASK LOCAL ASSIGN IN TTAB IS WANTED 
*               TC = 0 WHEN GLOBAL ASSIGN IN SCTCDT IS WANETED
* 
	EJECT
*		+----------+----------+
*	ASBLK	I NO OF VOL     FC    I 
*		+----------+----------+
*		I                     I
*		I      FILE NAME      I
*		I                     I
*                 I                     I 
*		+---------------------+
*		I                     I
*		I      VOL  NAME      I
*		I                     I
*		+---------------------+
*		I                     I
* 
*   MAX 4 VOL NAMES CAN BE GIVEN
* 
* 
*   A CONECTION BETWEEN THE FILE CODE IN ASBLK AND A FDB IS 
*   CREATED IN TTAB/CD:TAB. 
* 
*   THE FDB IS INITIALIZED WITH INFORMATION FROM THE VTOC:S OF THE
*   VOLUMES MENTIONED IN ASBLK. 
* 
*   UPON COMPLETION OF THE ASSIGN REQUEST REG A7 WILL HAVE ONE OF THE 
*   FOLLOWING RETURN CODES: 
* 
*   0 = CORRECT RETURN ASSIGNMENT PERFORMED 
*  -1 = REQUEST ERROR 
*   1 = DISC I/O ERROR
*   2 = NO FREE ENTRY IN TABLE
*   3 = NO FDB AVAILABLE
*   4 = ONE OR MORE VOLUMES UNKNOWN 
*   5 = FILE CODE ALREADY USED
*   6 = FILE NAME UNKNOWN 
*   7 = FILE SECTION MISSING OR FOUND TWICE 
*   8 = FAULTY DISC FORMAT
*   9 = MORE THAN 4 EXTENTS EXIST 
* 
	EJECT
*   THIS MODULE IS ENTERED VIA
*   LDKL	A8,ASBLK 
*   LKM 
*   DATA   16 
* 
*   INPUT   A5 = TTAB ADDRESS 
*           A8 = ASBLK ADDRESS
*           WHERE ASBLK IS A PARAMETER BLOCK
*		+----------+----------+
*	ASBLK	I NO OF VOL     FC    I 
*		+----------+----------+
*		I                     I
*		I      FILE NAME      I
*		I                     I
*		+---------------------+
*		I                     I
*		I      VOL  NAME      I
*		I                     I
*		+---------------------+
*                 I MASTER INDEX
*                 I FILE NAME 
* 
*   UPON COMPLETION OF THIS REQUEST REG A7 WILL HAVE ONE OF THE 
*   FOLLOWING RETURN CODES: 
*   0 = CORRECT RETURN ASSIGNMENT PERFORMED 
*  -1 = REQUEST ERROR 
*   1 = DISC I/O ERROR
*   2 = NO FREE ENTRY IN TABLE
*   3 = NO FDB AVAILABLE OR MASTER INDEX CORE AVAIL 
*   4 = ONE OR MORE VOLUMES UNKNOWN 
*   5 = FILE CODE ALREADY USED
*   6 = FILE NAME UNKNOWN 
*   7 = FILE SECTION MISSING OR FOUND TWICE 
*   8 = FAULTY DISC FORMAT
*   9 = MORE THAN 4 EXTENTS EXIST 
*   10= NO DATA FILE ASSIGNED 
*   11= 4 INDEX FILES ALREADY ASSIGNED
*   12= MAX KEY LENGTH TOO SMALL
*   13= REQUEST BUSY. REPEAT ASSIGN REQUEST 
	EJECT
* 
*************** 
*   ENTRIES   * 
*************** 
* 
	ENTRY	TASS 
	ENTRY	VOLCHE,IXTASS
	ENTRY	TASBLK 
	ENTRY	TASQUE 
	ENTRY	TASTTA 
	ENTRY	TASASB 
	ENTRY	TASCVO 
	ENTRY	TASVOL 
	ENTRY	TASCXO 
	ENTRY	TASSEX 
	ENTRY	TASXLB 
	ENTRY	TASFDB 
	ENTRY	TASVRL 
	ENTRY	TASVLE 
	ENTRY	TASVRN 
	ENTRY	TASECB 
	ENTRY	TASFIL,TASTID,TASMXA,TASSPW
	ENTRY	TASFDD,TASTBE
	ENTRY	TASCAQ	CHECK ASSIGN QUEUE
	ENTRY	TASLFD		=1 
	ENTRY	TASHLT	HALT SYSTEM DUE TO DM (SYSGEN) ERROR
	EJECT
* 
***************** 
*   EXTERNALS   * 
***************** 
* 
	EXTRN	DFTAB
	EXTRN	DFTABE 
	EXTRN	SCTCDT 
	EXTRN	DWTVOL 
	EXTRN	FNDTID 
	EXTRN	DMTASS 
	EXTRN	ACTOT
	EXTRN	TDISP
	EXTRN	QTJOB
	EXTRN	LKMQDI 
	EXTRN	TTB:SA 
	EXTRN	TTB:TD,DMTASX
	EXTRN	ECBFC,ECBRC
	EXTRN	MOV:US	MOVE FROM USER TO SYSTEM AREA 
	EXTRN	HALT	HALT SYSTEM ROUTINE 
	EJECT			TOSSIO 
* 
* 
***************************************** 
* 
*	CONDITIONAL ASSEMBLY
* 
***************************************** 
* 
*	A PROGRAM VERSION USING TOSS MMU PAGING 
*	IS OBTAINED BY SETTING MMUPAG EQU 1.
* 
MMUPAG	EQU	1
* 
	EJECT
* 
******************* 
*   DATA AREAS    * 
******************* 
* 
TASBLK	DATA	0	USE INDICATOR 
TASQUE	DATA	0	ASSIGN QUEUE ANCOR
TASTTA	DATA	0	REQUESTING TTAB ADDRESS 
TASASB	DATA	0	ASBLK ADDRESS 
TASCVO	DATA	0	CURRENT OFFSET IN TASVOL
TASVOL	DATA	0	VOLUME IDENTIFICATION (DMI,FC)
	DATA	0,0,0	THREE MORE ENTRIES
TASCXO	DATA	0	CURRENT OFFSET IN TASSEX AND TASXLB 
TASSEX	DATA	0	SECTION NUMBER, EXTENT NUMBER 
	DATA	0	OFFSET IN TASVOL FOR THIS EXT 
	DATA	0,0,0,0,0,0	THREE MORE ENTRIES
TASXLB	DATA	0	EXTENT LENGTH 
	DATA	0	EXTENT BASE 
	DATA	0,0,0,0,0,0	THREE MORE ENTRIES
TASFDB	DATA	0	FDB ADDRESS 
TASVRL	DATA	0	VTOC RECORD LENGTH
TASVLE	DATA	0	VTOC LENGTH 
TASVRN	DATA	0	VTOC RECORD NO
TASECB	DATA	0,0	ECBFC,ECBBA 
	DATA	410	ECBRL 
	DATA	0,0,0	ECBEL,-RC,-CW 
	DATA	0	CW2 
TASFIL	DATA	0	0=DATA,1=INDEX,2=MASTER INDEX 
TASTID	DATA	0	DMTSASK IDENT AT ASSIGN 
TASMXA	DATA	0	MASTER INDEX ADDR 
TASSPW	DATA	0	TTAB ADDRESS DMTASK 
TASFDD	DATA	0	FDB ADDR DATA FILE
TASTBE	DATA	0	TTAB/SCTCDT ENTRY ADDR
TASLFD	DATA	0,0	LOCKED FLEXDISC FILE CODES	=1 
	DATA	0,0 
	DATA	0,0 
TASS14	EQU	*-2	TASS A14 STACK 
* 
	IFT	MMUPAG=1 
MASBLK	RES	17	ASSIGN BLOCK SAVE AREA
	XIF
* 
	EJECT
**************
*   TASCAQ   *
**************
* 
*   ENTRY   TASCAQ   CHECK ASSIGN QUEUE 
* 
*       A7= RETURN CODE 
* 
*           SET OFF USE BIT IN TASBLK 
*           IF TASQUE = 0 THEN RETURN ELSE QUEUE FIRST IN CHAIN AND 
*           LET TASQUE POINT TO NEXT IN CHAIN 
* 
*   USED REGS : A1,A5,A7
* 
TASCAQ	EQU	*
	LD	A5,TASQUE 
	RF(Z)	TASCEX	EMPTY QUEUE 
	LDR*	A1,A5	GET NEXT IN CHAIN 
	ST	A1,TASQUE	AND PUT IT FIRST IN QUEUE 
	LDKL	A1,-4 
	ADS	A1,TTB:SA,A5	UPD DISPATCH ADDR 
	CF	A15,QTJOB	NEXT ASSIGN 
	RF	TASC05
TASCEX	CM	TASQUE	ASSIGN COMPLETED 
TASC05	EQU	*
	CM	TASBLK
TASC10	EQU	*
	LD	A5,TASTTA 
	ST	A7,TTB:SA+14,A5	SET RETURN CODE IN SAVED A7 
	RTN	A14
	EJECT
****DESCRIPTION*************************************
* 
*   VOLCHE WILL COMPARE EACH VOLUME NAME IN ASBLK WITH
*   VOLUME NAMES IN DWT FOR DISCS 
* 
****ENTRY PARAMETERS********************************
* 
*   A2 = NO OF VOL IN ASBLK 
*   A8 = ASBLK ADDR 
*   A11 = 0 WHEN NO LOCK IS WANTED. 
*         1 LOCK WANTED. ONLY FROM DMTASS FOR FLEXDISC
* 
****EXIT PARAMETERS*********************************
* 
*   A1 = 0 OK 
*        1 VOLUME UNKNOWN 
*   A5 = TTAB ADDR
* 
****USED REGISTERS**********************************
* 
*   A1 - A9,A11,A12 
* 
******************************************************
VOLCHE	EQU	*
	CM	TASLFD		=1
	CM	TASLFD+2	LOCKED FLEXDISCS	=1
	SLL	A2,1 
	SUK	A2,2 
	ST	A2,TASCVO	INIT. TASCVO
	LDR	A4,A8
	ADK	A4,10	POINTER TO FIRST VOL NAME IN ASBLK 
TAS110	EQU	*
	LDKL	A3,DFTAB	POINTER TO FIRST DISC FILE CODE
TAS120	LDK	A1,0 
	LCR	A1,A3	DISC FILE CODE 
* 
*   FIND DWT ADDRESS IN CD:TAB AND COMPARE DWTVOL 
* 
	LD*	A6,SCTCDT
TAS130	SUK	A6,4 
	RF(N)	TASHLT	FC NOT FOUND? SHOULD NOT OCCUR. 
	LD	A5,SCTCDT 
	ADR	A5,A6
	CC	A1,1,A5 
	RB(NE)	TAS130	NOT THIS FC
	LDR	A11,A11
	RF(Z)	TAS131 
	LCR	A5,A3	DISC CODE
	ANK	A5,/F8 
	SUK	A5,/F8 
	RF(NZ)	TAS131	NO FLEXDISC
* 
*   LOCK FLEXDISC 
* 
	LDKL	A8,TASECB 
	ST	A1,ECBFC,A8	FLEX FILE CODE
	SUR	A12,A12
	LDK	A7,/A6	LOCK,WAIT 
	LKM
	DATA	1 
	LD	A7,ECBRC,A8 
	RF(Z)	TAS131 
	ANKL	A7,/7FFF
	RF(NZ)	TASF10	NOT ONLY BIT 0 
	LDKL	A12,1	LFLAG=LOCKED BEFORE 
	RF	TAS131
TASF10	EQU	*
	ANK	A7,/7	BIT 13,14,15 
	RF(NZ)	TAS150	GRAVE ERR
TAS131	EQU	*
	ST	A1,TASVOL,A2	SAVE FC

	AD	A6,SCTCDT 
	LDR*	A5,A6	INDEX 
	LDK	A1,0	DISC NAME DISPLACEMENT
	SRL	A5,8 
	RF(Z)	TAS135 
*   DECIDE DISC DISPL FOR THIS FILE CODE
*   INDEX IS REL VOL NAME IN DWT
* 
TAS132	EQU	*
	ADK	A1,6	NEXT DISC DISPLACEMENT
	SUK	A5,1 
	RB(P)	TAS132 
TAS135	EQU	*
	LD	A6,2,A6	DWT ADDR
	RF(Z)	TASHLT	NO DWT ADDRESS FOUND
	ADR	A6,A1	POINTER TO VOLUME NAME 
	LDK	A1,3	VOL NAMES 3 WORDS 
	LDR	A5,A4	POINTER ASBLK VOL NAME 
* 
*   CHECK VOLUME NAMES IN DWT AND ASBLK 
* 
TAS140	LDR*	A9,A5 
	CW	A9,DWTVOL,A6
	RF(NE)	TAS146	NO MATCH 
	ADK	A5,2 
	ADK	A6,2 
	SUK	A1,1 
	RB(P)	TAS140	CHECK NEXT WORD IN VOL NAME 
* 
*   VOL NAME MATCH
*   STORE DMI , FC IN TASVOL
* 
	LD	A1,TASVOL,A2
	ANK	A1,/0F 
	CWK	A1,/8
	RF(L)	TAS143	NOT FLEXIBLE DISC 
	LDK	A1,2	FD DMI
	RF	TAS145
TAS143	EQU	*
	SRL	A1,1 
TAS145	EQU	*
* 
*   A1 = DMI = 0 FOR DRIVE 1
*              1 FOR DRIVE 2
*              2 FOR FLEXDISC 
* 
	SC	A1,TASVOL,A2
* 
*   SAVE FILE CODES FOR NEWLY LOCKED FLEXDISCS	=1 
*   (ONLY SIGNIFICANT WHEN A11 = 1 )		=1 START
* 
	SUK	A1,2 
	RF(NZ)	TAS147	NO FLEX
	LDR	A12,A12
	RF(NZ)	TAS147	LOCKED EARLIER 
	LDR	A1,A2
	SRL	A1,1	BYTE
	LC	A3,TASVOL+1,A2	FILE CODE
	SC	A3,TASLFD,A1	SAVE 
TAS147	EQU	*		=1 END
* 
*   CHECK NEXT VOL IN ASBLK 
* 
	LDK	A1,0	RET CODE
	ADK	A4,6 
	SUK	A2,2 
	RB(NN)	TAS110	MORE VOLUMES TO CHECK
	RF	TAS155	OK ALL VOLUMES ARE ON LINE 
TAS146	EQU	*
	LDR	A11,A11
	RF(Z)	TAS150	NO LOCK PERFORMED 
	LCR	A1,A3	DISC CODE
	ANK	A1,/F8 
	SUK	A1,/F8 
	RF(NZ)	TAS150	NO FLEXDISC
	LDR	A12,A12	LFLAG
	RF(NZ)	TAS150	LOCKED BEFORE
* 
*   UNLOCK
* 
	LDK	A7,/B8	UNLOAD,WAIT 
	LKM
	DATA	1 
* 
*   NO MATCH TRY NEXT FC IN DFTAB 
* 
TAS150	EQU	*
	ADK	A3,1 
	CWK	A3,DFTABE
	RB(NE)	TAS120	MORE FC IN DFTAB 
	LDK	A1,1 
TAS155	EQU	*
	RTN	A14
* 
TASHLT	LDK	A1,/11	INDICATE DM ERROR 
	CF	A15,HALT	HALT SYSTEM
* 
	EJECT
* 
************
*   TASS   *
************
* 
IXTASS	EQU	*
	IFT	MMUPAG=0 
	LDK	A7,/81 
	SCR	A7,A8	BIT 0+7 IND. ASS ONE INDEX 
	XIF
* 
	IFT	MMUPAG=1 
	ELR	A7,A8	GET FIRST WORD OF USER ASSIGN BLOCK
	ANK	A7,/FF	SKIP LEFT CHARACTER 
	ORKL	A7,/8100	BIT 0+7 IND. ASSIGN ONE INDEX
	ESR	A7,A8	SET WORD IN ASSIGN BLOCK 
	XIF
*~
	LDK	A7,0	ONLY GLOBAL ASSIGN ALLOWED
* 
TASS	EQU	*
	LDKL	A14,TASS14	INITIALIZE A14 STACK POINTER 
	LDR	A10,A7	SAVE TC 
* 
*   CHECK IF PREVIOS ASSIGN NOT COMPLETED 
*   AND IF SO QUEUE THIS REQUEST VIA THE TASQUE 
* 
	LD	A1,TASBLK 
	RF(Z)	TAS050	NO CONCURRENT ASSIGN
	LDKL	A1,TASQUE	START OF ASSIGN QUEUE 
TAS020	EQU	*	QUEUE AS FOR GETBUFFER 
	LDR	A2,A1
	LDR*	A1,A1 
	RB(NZ)	TAS020	NOT LAST IN CHAIN
	STR	A5,A2
	CMR	A5 
	ABL	TDISP	DISPATCH 
* 
TAS050	EQU	*
	IM	TASBLK	INDICATE ASSIGN STARTED
	CM	TASFDD	FDB ADDR DATA FILE 
* 
	ST	A5,TASTTA	SAVE TTAB ADDRESS OF REQUESTING TASK
* 
	IFT	MMUPAG=1 
* 
*	MOVE USER ASSIGN BLOCK TO SYSTEM AREA MASBLK
* 
	LDR	A1,A8	GET ADDRESS OF SENDING BLOCK 
	LDKL	A2,MASBLK	GET ADDRESS OF RECEIVING BLOCK
	LDR	A8,A2	SET A8 TO NEW ASSIGN BLOCK ADDRESS 
	LDK	A3,34	ASSIGN BLOCK LENGTH IN BYTES 
	CF	A14,MOV:US	MOVE ASSIGN BLOCK
	XIF
* 
	ST	A8,TASASB	SAVE ASBLK ADDRESS
* 
	LDK	A1,16
	ST	A1,TASCXO	INIT. TASCXO TO LAST ENTRY IN TASSEXXLB 
* 
	LDKL	A7,-1	INITIALIZE RETURN CODE IN A7
* 
*   CHECK MAX NUMBER OF VOLUMES ( 1 - 4 ) 
* 
	LDK	A2,0 
	LCR	A2,A8	NO OF VOLUMES
	ANK	A2,/1F	REMOVE INDEX BIT +DELAY+BASIC 
	RF(Z)	TAS090	NO VOL
	CWK	A2,4 
	RF(NG)	TAS100	<=4
TAS090	RF	TASSEM
	EJECT
* 
*   CHECK IF VOLUMES ARE ON LINE
* 
TAS100	EQU	*
	SUR	A11,A11	NO FLEXLOCK
	CF	A14,VOLCHE
	LD	A8,TASASB	ASBLK ADDR
	LDKL	A7,-1	RET CODE
	ADK	A1,0	SET CR
	RF(Z)	TAS160	ALL VOLUMES FOUND 
* 
*   ALL VOL NOT FOUND. ACT FLEXDISCTASK 
* 
	LD	A1,TASCVO 
	LDK	A2,2	ID DMTASK FLEXDISC
	SC	A2,TASVOL,A1	SEE TAS195 
	EJECT
* 
*   CHECK IF FILE CODE ALREADY ASSIGNED 
* 
TAS160	EQU	*
	LDR*	A3,A8 
	ANK	A3,/FF 
	RF(E)	TASSEM	FILE CODE = 0 NOT ALLOWED 
	LDR	A10,A10	TC 
	RF(Z)	TAS165	GLOBAL ASSIGN 
	LD	A2,TASTTA	TTAB ADDR 
	LDR	A4,A2
	LD	A2,TTB:TD,A4
	ADKL	A4,TTB:TD+1 
	RF	TAS170
TAS165	EQU	*
	LD	A4,SCTCDT 
	LDR*	A2,A4 
	ADK	A4,1 
TAS170	SUK	A2,4 
	RF(L)	TAS180	END OF TABLE
	LDR	A1,A4
	ADR	A1,A2
	CCR	A3,A1	FILE CODE
	RB(NE)	TAS170	NO MATCH 
* 
*   FILE CODE USED
*   OK WHEN REQ = ASS INDEX AND INDEX = 1 
* 
	LDR*	A2,A8	ASBLK 1ST WORD
	RF(NN)	TASSE5	NORMAL ASSIGN
	LDK	A2,1 
	CC	A2,-1,A1	INDEX
	RF(NE)	TASSE5	FILE CODE ALREADY USED 
* 
*   DATA FILE FDB IS FOUND
* 
	LD	A1,1,A1	FDB ADDR
	ST	A1,TASFDD 
	RB	TAS170
* 
* 
*   FIND A FREE ENTRY IN TTAB/CD:TAB (FC AND DWTADR = 0 ) 
* 
TAS180	EQU	*
	LDK	A1,0 
	LDR	A10,A10	TC 
	RF(Z)	TAS185	GLOBAL ASSIGN 
	LD	A2,TASTTA	TTAB ADDR 
	LDR	A4,A2
	LD	A2,TTB:TD,A4
	ADKL	A4,TTB:TD+1 
	RF	TAS190
TAS185	EQU	*
	LD	A4,SCTCDT 
	LDR*	A2,A4 
	ADK	A4,1 
TAS190	SUK	A2,4 
	RF(L)	TASSE2	NO FREE ENTRY IN TABLE
	LDR	A9,A4
	ADR	A9,A2
	CCR	A1,A9	FILE CODE
	RB(NE)	TAS190	FC NOT EQUAL 0 
	CW	A1,1,A9 
	RB(NE)	TAS190	DWTADR NOT EQUAL 0 
	LDR*	A1,A8	ASBLK 1ST WORD
	RF(N)	TAS195	ASSIGN INDEX
	ORKL	A3,/100	INDEX = 1 FOR DATA FILE 
TAS195	EQU	*
	ST	A3,-1,A9	SET INDEX AND FC IN FREE ENTRY 
	ST	A9,TASTBE	SAVE ENTRY
* 
*   GET FIRST VOLUME AND ACTIVATE ITS DMTASK
* 
	LD	A1,TASCVO 
	LDK	A7,0 
	LC	A7,TASVOL,A1
	ADKL	A7,'#D'	TID DMTASK
	CF	A15,FNDTID
	LDR	A5,A2	TTAB ADDRESS DMTASK
	RF(NZ)	TAS200	TTAB FOUND 
	EJECT
* 
*   FLEXDISC DMTASK DOES NOT EXIST
* 
	CM	-1,A9	REMOVE ENTRY
	LDK	A7,4	VOL UNKNOWN 
	RF	TASSEM
TAS200	EQU	*
	LDK	A2,2 
	ST	A2,TASFIL	MASTER INDEX LOOP IDENT IN DMTSAK 
	LDKL	A2,DMTASS	ASSIGN INDEX ENTRY
	LDR*	A6,A8 
	RF(N)	TAS210	INDEX ASSIGN
	CM	TASFIL
TAS210	EQU	*
	CM	TASFDB	=0 INDICATES EXT #0 NOT FOUND
	LDK	A3,0 
*   A1=PAR,A2=ADR,A3=SEGM,A5=TTAB ADDR
	CF	A15,ACTOT	ACTIVATE DMTASK 
	ABL	TDISP	GO TO DISPATCHER 
	EJECT
* 
*   ERROR RETURNS 
* 
TASSE5	ADK	A7,1 
TASSE4	ADK	A7,1 
TASSE3	ADK	A7,1 
TASSE2	ADK	A7,1 
TASSE1	ADK	A7,1 
	ADK	A7,1 
TASSEM	EQU	*
	CF	A14,TASCAQ	CHECK ASSIGN QUEUE 
	ABL	LKMQDI	QUEUE AND DISPATCH
	END

Full view