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

⟦405ec8dd1⟧

    Length: 4600 (0x11f8)
    Notes: pts_type(SC)
    Names: »TABORT.SC«

Derivation

└─⟦173d42e04⟧ Bits:30009663 Philips computer tape "600105"
    └─⟦this⟧ »TOSSWORK/TABORT.SC« 
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
    └─⟦this⟧ »M:TU10/TABORT.SC« 
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
    └─⟦this⟧ »M:TU10/TABORT.SC« 

PTS(SC)

	IDENT TABORT 	REL 10.0 80-03-14 870105041000 

* 
* 
************************************************* 
* 
*   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	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,/4000	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