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

⟦f7f883f3c⟧

    Length: 5200 (0x1450)
    Notes: pts_type(SC)
    Names: »TDISP.SC«

Derivation

└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
    └─⟦this⟧ »SAG/TDISP.SC« 

PTS(SC)

	IDENT TDISP 	REL 8.2 78-09-15  870105040820

* 
**************************************************
* 
*   PHILIPS TERMINAL SYSTEM PTS 
* 
*   TDISP = TERMINAL DISPATCHER 
* 
* 
* 
* 
* 
* 
**************************************************
* 
* 
* 
*   THIS IS THE TERMINAL DISPATCHER IN TOSS.
*   ENTRY POINT IS 'TDISP' WITH 8 REGISTERS ON A15 STACK. 
*   THE DISPATCHER CHECKS IF THERE IS A JOB IN DISPATCHER-
*   QUEUE WITH HIGHER PRIORITY THAN INTERRUPTED PROGRAM.
*   - IF SO THE QUEUED PROGRAM IS STARTED AND REGISTERS 
*     A1-A14 OF INTERRUPTED PROGRAM ARE SAVED ON A15 STACK. 
*   - IF NOT RETURN IS GIVEN TO INTERRUPTED PROGRAM VIA RETUR8. 
* 
*   AN ENTRYPOINT 'LKMDIS' IS ALSO INCLUDED IN THIS MODULE. 
*   THIS PART IS DISPATCHED AFTER EACH LKM-REQUEST.(NO REGISTERS
*   ON STACK) A CHECK IS MADE IF THERE IS A JOB IN DISPATCHER QUEUE 
*   WITH HIGHER PRIORITY THAN INTERRUPTED PROGRAM.
*   - IF QUEUED JOB IS STARTED
*   - IF NOT RETURN IS GIVEN TO INTERRUPTED PROGRAM VIA RETU14. 
* 
* 
*   AN OPTIONALY ENTRYPOINT 'DISIOE' IS ALSO PROVIDED FOR 
*   ERRORS IN I/O DRIVERS. BIT 0 IS SET IN A1 AND THE SUB-
*   ROUTINE 'TENDIO' IS CALLED BEFORE THE 'TDISP'-ENTRY 
*   IS ENTERED. 
*   ENTRY 'DISEND' ONLY CALLS 'TENDIO' BEFORE 'TDISP'-ENTRY.
	EJECT
* 
*********** 
* ENTRIES * 
*********** 
* 
	ENTRY	TDISP	DISPATCHER ENTRY 
	ENTRY	LKMDIS	DISPATCHED AFTER LKM
	ENTRY	DISIOE	I/O ERROR ENTRY 
	ENTRY	DISEND	END I/O AND DISPATCH
	ENTRY	DISQUE	POINTER TO FIRST PLACE IN DISPATCHER-QUEUE
	ENTRY	GBQUE	POINTER TO FIRST TTAB IN BUFFER QUEUE
	ENTRY	PRUN	TTAB-ADDRESS OF RUNING PROGRAM
	ENTRY	SRUN	RUNNING SEGMENT 
	ENTRY	RETU14	RESTORE REGISTER A14-A1 VIA A15 STACK 
	ENTRY	RETU13 
	ENTRY	RETU12 
	ENTRY	RETU11 
	ENTRY	RETU10 
	ENTRY	RETUR9 
	ENTRY	RETUR8 
	ENTRY	RETUR7 
	ENTRY	RETUR6 
	ENTRY	RETUR5 
	ENTRY	RETUR4 
	ENTRY	RETUR3 
	ENTRY	RETUR2 
	ENTRY	RETUR1 
	ENTRY	RTNA15 
	ENTRY	FREQUE 
	ENTRY	BLOCKL 
	EJECT
	ENTRY	DWTCHP	CHANNEL PARAMETER 
	ENTRY	DWTST	STATUS 
	ENTRY	DWTECB	ECB ADDRESS 
	ENTRY	DWTOR	ORDER
	ENTRY	DWTADR	POINTER TO ADDRESS-BLOCK
	ENTRY	DWTTAB	TTAB-ADDRESS
	ENTRY	DWTWAT	WAIT ACTIVATE INDICATOR 
	ENTRY	DWTTQ	TERMINAL QUEUE 
	ENTRY	DWTWA	WORK AREA
	ENTRY	DWTTDM	DM REQUEST TTAB ADDRESS 
	ENTRY	DWTVOL	VOLUME NAME 
	ENTRY	ECBBA,ECBRL,ECBEL
	ENTRY	ECBRC,ECBCW
	ENTRY	SACT	ACTIVE SEGMENT POINTER
	ENTRY	LRUNEW	DUMMY FOR MEMORY MANAGEMENT (OVERLAY) 
	EJECT
* 
************* 
* EXTERNALS * 
************* 
* 
*   DISPLACEMENT IN TTAB
* 
	EXTRN	TTB:SA	SAVE AREA 
	EXTRN	TTB:ST	STATUS
	EXTRN	TENDIO	END I/O 
	EXTRN	EXIT	PROGRAM EXIT
	EXTRN	BLOK:S	START OF BLOCK POOL 
	EXTRN	BLOCKE	BLOCK POOL LENGTH 
	EJECT

* 
******************************************
* 
*   DWT-DISPLACEMENT DECLARATIONS 
* 
***************************************** 
* 

DWTCHP	EQU	0	CHANNEL PARAMETER
DWTST	EQU	2	STSTUS
DWTECB	EQU	4	ECB-ADDRESS
DWTOR	EQU	6	ORDER 
DWTADR	EQU	8	ADDRESS BLOCK POINTER
DWTTAB	EQU	10	TTAB-ADDRESS
DWTWAT	EQU	12	WAIT/ACTIVATE INDICATOR 
DWTTQ	EQU	14	TERMINAL QUEUE 
DWTWA	EQU	16	WORK AREA
DWTTDM	EQU	16	DM RQEUEST TTAB ADDRESS 
DWTVOL	EQU	44	VOLUME NAME 
* 
******************************
* 
*    ECB-DISPLACEMENTS
* 
******************************
* 
ECBBA	EQU	/02 
ECBRL	EQU	/04 
ECBEL	EQU	/06 
ECBRC	EQU	/08 
ECBCW	EQU	/0A 
	EJECT
* 
*   D I S Q U E 
* 
*   POINTER TO FIRST PLACE IN DISPATCHER QUEUE
* 
DISQUE	EQU	*
	DATA	0 
* 
*   P R U N 
* 
*   TTAB-ADDRESS OF RUNING PROGRAM
* 
PRUN	EQU	*
	DATA	0 
* 
*   S R U N 
* 
*   RUNNING SEGMENT POINTER 
* 
SRUN	EQU	*
	DATA	0 
******************************* 
* 
*   S A C T 
* 
****************

SACT	DATA	0	ACTIVE SEGMENT POINTER

* 
*   L R U N E W 
* 
LRUNEW	EQU	*
* 
*   G B Q U E 
* 
*   POINTER TO FIRST TASK TABLE IN BUFFER QUEUE 
* 
GBQUE	EQU	* 
	DATA	0 
FREQUE	DATA	BLOK:S
BLOCKL	DATA	BLOCKE
* 
	EJECT
* 
*   D I S I O E 
* 
*   SET BIT 0 IN ECB RETURN CODE AND GO TO TDISP-ENTRY
* 
DISIOE	EQU	*

Full view