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

⟦0d771f830⟧

    Length: 4606 (0x11fe)
    Notes: pts_type(SC)
    Names: »TABORT.SC«

Derivation

└─⟦7f25f14aa⟧ Bits:30009683 Philips computer tape "600307"
    └─⟦this⟧ »M:92F4/TABORT.SC« 
└─⟦f740ae34d⟧ Bits:30009708 Philips computer tape "M_92F3"
    └─⟦this⟧ »M:92F3/TABORT.SC« 

PTS(SC)

	IDENT TABORT 	REL 9.2 79-11-16  870105040920 

* 
* 
************************************************* 
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   TABORT = ABORT I/O REQUEST
* 
* 
* 
* 
* 
* 
************************************************* 
* 
* 
*   THIS MODULE CONTAINS THE
*   ABORT I/O REQUEST LKM PROCESSOR.
* 
* 
	EJECT			TABORT 
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	TABORT 



* 
* 
************* 
* EXTERNALS * 
************* 
* 
* 
	EXTRN	FNDDWT	FIND DWT ADDRESS
	EXTRN	DWTST	DWT STATUS 
	EXTRN	DWTADR	DRIVER ADDRESS BLOCK
	EXTRN	DWTTAB	TTAB ADDRESS IN DWT 
	EXTRN	DWTWAT	WAIT ACTIVATE INDICATOR IN DWT
	EXTRN	DWTECH	ECHO DEVICE DWT 
	EXTRN	ABTADR	ABORT ROUTINE ADDRESS 
	EXTRN	TENDIO	END I/O 
	EXTRN	LKMQDI	QUEUE JOB AND DISPATCH
	EXTRN	LKMRQE	LKM REQUEST ERROR 
	EXTRN	FREBLK	FREE ONE BLOCK
	EJECT			TABORT 
* 
* 
***************************************** 
* 
*	CONDITIONAL ASSEMBLY
* 
***************************************** 
* 
*	A PROGRAM VERSION USING TOSS MMU PAGING 
*	IS OBTAINED BY SETTING MMUPAG EQU 1.
* 
MMUPAG	EQU	0
* 
	EJECT			TABORT 
* 
* 
**********
* TABORT *
**********
* 
* 
*   THIS IS THE ABORT I/O REQUEST LKM PROCESSOR.
* 
*   IT IS ENTERED FROM THE LKM HANDLER
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = TTAB ADDRESS 
*   A8 = ECB ADDRESS
* 
*   A PENDING I/O REQUEST IS ABORTED. 
*   THE ABORT REQUEST MUST BE ISSUED FROM THE SAME TASK 
*   THAT MADE THE I/O REQUEST. THUS I/O WITH WAIT CAN 
*   NOT BE ABORTED. 
* 
* 
TABORT	EQU	*
	IFT	MMUPAG=0 
	LDR*	A3,A8	GET FIRST WORD OF ECB 
	XIF
* 
	IFT	MMUPAG=1 
	ELR	A3,A8	GET FIRST WORD OF ECB
	XIF
* 
	RF(N)	TABOER	REQUEST ALREADY COMPLETED?
	CF	A15,FNDDWT	LOOK FOR DWT ADDRESS 
	LDR	A8,A6
	RF(Z)	TABOER	DWT UNKNOWN?
* 
	EJECT			TABORT 
* 
* 
	CW	A5,DWTTAB,A6
	RF(NE)	TABOER	ILLEGAL TASK?
	LD	A7,DWTST,A6 
	RF(N)	TABOER	DEVICE NOT BUSY?
	SLC	A7,2 
	RF(NN)	TABO20	NOT ECHO REQUEST?
* 
*	ABORT ECHO DEVICE 
* 
	LD	A6,DWTECH,A6	GET ECHO DWT 
	LD	A2,DWTADR,A6	GET ADDRESS TO DRIVER ADDRESS BLOCK
	LD	A2,ABTADR,A2	GET ABORT ROUTINE ADDRESS (IF ANY) 
	RF(Z)	TABO10	NO SPECIAL ABORT ROUTINE? 
	CFR	A15,A2	PERFORM ABORT ROUTINE 
* 
TABO10	EQU	*
	CF	A15,TENDIO	ABORT ECHO DEVICE
	LDR	A6,A8	RESTORE DWT
* 
	EJECT			TABORT 
* 
* 
TABO20	EQU	*
	LD	A4,DWTWAT,A6
	RF(Z)	TABO30	I/O WITH NO WAIT? 
	CF	A15,FREBLK	I/O AND ACTIVATE. FREE DISPATCHER BLOCK
	CM	DWTWAT,A6	INDICATE NO WAIT
* 
TABO30	EQU	*
	LD	A2,DWTADR,A6	GET ADDRESS TO DRIVER ADDRESS BLOCK
	LD	A2,ABTADR,A2	GET ABORT ROUTINE ADDRESS (IF ANY) 
	RF(Z)	TABO40	NO SPECIAL ABORT ROUTINE? 
	CFR	A15,A2	PERFORM ABORT ROUTINE 
* 
TABO40	EQU	*
	LDKL	A1,/C000	RETURN CODE
	CF	A15,TENDIO	ABORT
	ABL	LKMQDI	QUEUE TASK AND GO TO DISPATCHER 
* 
TABOER	ABL	LKMRQE	GO AND INDICATE LKM ERROR 
* 
* 
* 
	END

Full view