|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 5200 (0x1450)
Notes: pts_type(SC)
Names: »TDISP.SC«
└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
└─⟦this⟧ »SAG/TDISP.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 *