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

⟦ff5fc273b⟧

    Length: 4696 (0x1258)
    Notes: pts_type(SC)
    Names: »TABORT.SC«

Derivation

└─⟦7a1dcd5a9⟧ Bits:30009673 Philips computer tape "600134"
    └─⟦this⟧ »PTMON/TABORT.SC« 
└─⟦7b35573c9⟧ Bits:30009690 Philips computer tape "600402"
    └─⟦this⟧ »M:AF/TABORT.SC« 
└─⟦928b1fd3e⟧ Bits:30009671 Philips computer tape "600131"
    └─⟦this⟧ »PTMON/TABORT.SC« 

PTS(SC)

	IDENT TABORT 	REL 11.0 81-01-26 870105041100 

* 
* 
************************************************* 
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   TABORT = ABORT I/O REQUEST
* 
* 
* 
* 
* 
* 
************************************************* 
* 
* 
*   THIS MODULE CONTAINS THE
*   ABORT I/O REQUEST LKM PROCESSOR.
* 
* 
	EJECT			TABORT 
* 
* 
*********** 
* ENTRIES * 
*********** 
* 
* 
	ENTRY	TABORT 
	EJECT			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	DWTECB	ECB ADDRESS 
	EXTRN	DWTSB2	2ND STACK BASE IN DWT 
	EXTRN	DWTECH	ECHO DEVICE DWT ADDRESS 
	EXTRN	TENDIO	END I/O 
	EXTRN	ABTADR	ABORT ROUTINE ADDRESS 
	EXTRN	DISEND	TENDIO AND TDISP
	EXTRN	LKMRQE	LKM REQUEST ERROR 
	EXTRN	FREBLK	FREE ONE BLOCK
	EXTRN	ECBRC	ECN RETURN CODE
	EJECT			TABORT 
* 
* 
***************************************** 
* 
*	CONDITIONAL ASSEMBLY
* 
***************************************** 
* 
*	A PROGRAM VERSION USING TOSS MMU PAGING 
*	IS OBTAINED BY SETTING MMUPAG EQU 1.
* 
MMUPAG	EQU	1
* 
	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	FIRST WORD OF ECB 
	XIF
* 
	IFT	MMUPAG=1 
	ELR	A3,A8	FIRST WORD OF ECB
	XIF
* 
	RF(N)	TABRQE	REQUEST ALREADY COMPLETED 
	CF	A15,FNDDWT	LOOK FOR DWT ADDRESS 
	LDR	A7,A6	SAVE DWT ADDRESS 
	RF(Z)	TABRQE	DWT UNKNOWN 
* 
	EJECT			TABORT 
* 
* 
	CW	A5,DWTTAB,A6
	RF(NE)	TABRQE	ILLEGAL TASK 
	LD	A2,DWTADR,A6	ADDRESS TO DRIVER ADDRESS BLOCK
	LD	A9,ABTADR,A2	ABORT ROUTINE ADDRESS
	CWK	A9,1 
	RF(E)	TABRQE	ABORT NOT ALLOWED 
	LD	A4,DWTST,A6 
	RF(N)	TABRQE	DEVICE NOT BUSY 
	SLC	A4,2 
	RF(NN)	TAB:20	NOT ECHO REQUEST 
	LD	A6,DWTECH,A6	ECHO DWT ADDRESS 
	LD	A3,DWTADR,A6	ADDRESS TO ECHO DRIVER ADDRESS BLOCK 
	LD	A3,ABTADR,A3	ABORT ROUTINE ADDRESS
	RF(NZ)	TAB:10
	CF	A15,TENDIO	SET ECHO DEVICE FREE 
* 
TAB:10	EQU	*
	SUK	A3,1 
	RF(Z)	TABRQE	ABORT NOT ALLOWED ON ECHO DEVICE
	LDR	A6,A7	RESTORE DWT ADDRESS
* 
TAB:20	EQU	*
	LD	A4,DWTWAT,A6
	RF(Z)	TAB:30	I/O WITH NO WAIT
	CF	A15,FREBLK	I/O AND ACTIVATE. FREE DISPATCHER BLOCK
* 
	EJECT			TABORT 
* 
* 
TAB:30	EQU	*
	LD	A8,DWTECB,A6	ACTUAL ECB ADDRESS 
	LDK	A1,1 
	ST	A1,DWTWAT,A6	INDICATE WAIT
	SRC	A1,2	A1 := /4000 
	ORS	A1,ECBRC,A8	SET RETURN CODE TO ABORTED 
	LDKL	A5,DWTSB2	2ND STACK BASE DISPLACEMENT IN DWT
	ADR	A5,A6	ADD DWT ADDRESS
* 
*   EXIT IS MADE TO DRIVER ABORT ROUTINE
*   WITH THE FOLLOWING PARAMETERS:
* 
*   A5 = 2ND STACK BASE IN DWT
*   A6 = DWT ADDRESS
*   A8 = ECB ADDRESS (IN SYSTEM AREA IF MMU)
* 
	LDR	A9,A9	ABORT ROUTINE ADDRESS
	ABR(NZ)	A9	PERFORM ABORT ROUTINE (IF ANY)
	ABL	DISEND	TENDIO AND TDISP
* 
TABRQE	ABL	LKMRQE	GO AND INDICATE LKM ERROR 
* 
* 
* 
	END

Full view