|
|
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: 4600 (0x11f8)
Notes: pts_type(SC)
Names: »TABORT.SC«
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
└─⟦this⟧ »M:LP/TABORT.SC«
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
└─⟦this⟧ »M:LP/TABORT.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