|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1812 (0x714)
Types: TextFile
Names: »CANCEL.S«
└─⟦f81e11cf7⟧ Bits:30005196 8" CR80 Floppy CR80FD_0194 ( CR/D/2497 TEST-TDX VS0102 Source moduler Att. Holger Bay 820208/AEK )
└─⟦d066df9e9⟧
└─⟦this⟧ »CANCEL.S«
«ff»
"CANCEL.S "
"----------------"
«ff»
PROCEDURE LIST_CANCELLED(OP : INIT_OPERATION_TYPE);
BEGIN
WRITETEXT('OPERATION (:0:)');
WRITEHEX (OP.OPREF);
WRITETEXT(' ON CRID (:0:)');
WRITEHEX (OP.CRID);
WRITETEXT(' CANCELLED.(:0:)');
WRITENL;
END; " LIST_CANCELLED "
PROCEDURE INT_CANCEL(PC, SP : INTEGER;VAR CC : COMPLETION_CODE);
"**********************************************************************
AUTHOR: TLM
DATE: 810421
***********************************************************************
COMMENTS:
**********************************************************************"
CONST TDX_TIMEOUT = #607;
VAR CRID : INTEGER;
OPREF : OPERATION_REFERENCE;
I : INTEGER;
BEGIN
VM := CODE[PC + XVARMASK];
GET_PARAMETER(VM, 1, PC, SP, CRID);
GET_PARAMETER(VM, 2, PC, SP, OPREF);
IF CRID <> 0 THEN
BEGIN "CANCEL ALL INITIATED READ OPS. ON THIS CRID"
FOR I := 1 TO MAX_INIT_OPS DO
BEGIN
IF (INIT_OPERATIONS[I].OCCUPIED)
AND
(INIT_OPERATIONS[I].CRID = CRID)
AND
(INIT_OPERATIONS[I].KIND = INIT_READ_KD)
THEN
BEGIN
CANCEL_OPERATION(INIT_OPERATIONS[I].OPREF, CC);
LIST_CANCELLED(INIT_OPERATIONS[I]);
INIT_OPERATIONS[I].OCCUPIED := FALSE;
END;
END
END
ELSE
BEGIN
CANCEL_OPERATION(OPREF, CC);
FOR I := 1 TO MAX_INIT_OPS DO
BEGIN
IF INIT_OPERATIONS[I].OCCUPIED
AND
(INIT_OPERATIONS[I].OPREF = OPREF)
THEN
BEGIN
LIST_CANCELLED(INIT_OPERATIONS[I]);
INIT_OPERATIONS[I].OCCUPIED := FALSE;
END;
END;
END;
IF CC = TDX_TIMEOUT THEN CC := IO_OK;
END; " INT_CANCEL " «a5»