|
|
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: 10938 (0x2aba)
Notes: pts_type(SC)
Names: »CPDKMT.SC«
└─⟦5c22ed822⟧ Bits:30009675 Philips computer tape "600209"
└─⟦this⟧ »TOOL/CPDKMT.SC«
└─⟦bf903a231⟧ Bits:30009665 Philips computer tape "600109"
└─⟦this⟧ »TOOL/CPDKMT.SC«
IDENT CPDKMT * 790122 C.EKERT *************************************************************** * * COPY DISK TO 1/2 INC. MAG-TAPE ( & REVERSE) UTILITY. * * * *************************************************************** * * THE IMPROVED DISK TO TAPE SAVE AND RESTORE FACILITY. * * THE UTILITY HAS BEEN ADAPTED TO BE CALLED FROM A * * 'CREDIT'-PROGRAM. TWO ENTRYPOINTS ARE PROVIDED, 'CDT' * * AND 'CTD'. THE 'CDT' ENTRY CAUSES A DISK TO BE SAVED ON * * A MAGNETIC TAPE AND 'CTD' RESTORES THE DISK FROM A * * MAGNETIC TAPE WHICH HAS PREVIOUSLY BEEN CREATED VIA THE * * 'CDT' ENTRY. THE DISK IS READ/WRITTEN SECTOR BY SECTOR * * AND BLOCKED BEFORE TRANFERRED TO THE TAPE.. * * * * NOTES: * * IMMEDIATLY WHEN AN I/O-FAILURE IS DETECTED THE * * PROCESSING IS ABORTED AND THE CALLING PROGRAM IS * * INFORMED VIA THE RETURNCODE, WHICH CONTAINS THE DEVICE * * DEPENDENT RETURNCODE FROM THE DRIVER. NO AUTOMATIC * * RECOVERY PROCEDURE IS INITIATED. * * * * 'CREDIT' INTERFACE: * * CALLING SEQUENCE: * * CALL CDT,DKFC,MTFC,FRST,LAST,SLTH,BLKF,BUFF,RETC * * <CDT> : : ENTRY DISK TO TAPE COPY ROUTINE * * <DKFC> :BIN : DISK - FILE CODE. * * <MTFC> :BIN : MAG. TAPE FILE CODE. * * <FRST> :BIN : NUMBER OF FIRST SECTOR TO BE TRANSFERRED * * <LAST> :BIN : NUMBER OF LAST SECTOR TO BE TRANSFERRED * * <SLTH> :BIN : SECTOR LENGTH IN BYTES * * <BLKF> :BIN : BLOCKING FACTOR (RECORDS/BLOCK) * * <BUFF> :STRG: I/O-BUFFER ADDRESS * * <RETC> :BIN : RETURN CODE. * * =0 IF THE PROCESSING TERMINATED * * SUCCESSFULLY. IF AN I/O ERROR OCCURRED * * THE RETURNCODE CONTAINS THE RETURNCODE * * FROM THE DRIVER AND THE 1:ST BYTE IN THE * * I/O-BUFFER CONTAINS A 'M' OR A 'D' * * INDICATING THE FAILING UNIT. * * * *********************************************************** *************************************************************** * ENTRY CDT * COPY DISK TO TAPE ENTRY CTD * RESTORE DISK FROM TAPE * * EXTRN I:EVA0 * RETREIVE CALLING PARAMS. EXTRN I:RT1 * RETURN TO 'CREDIT' USER. * * EJECT * * CDT EQU * * * COPY ENTIRE DISK SECTOR BY SECTOR TO 1/2 INC. TAPE. * * TO TAPE INITIALIZATIONS. * LDK A7,X'91' * ORDERCODE PHYSICAL READ SC A7,DKORDR LDK A7,X'85' * ORDERCODE 'WRITE TAPE' SC A7,MTORDR LDKL A7,MTIOLB ST A7,SWTCH2 * LDKL A7,DKIO ST A7,SWTCH1 * LDKL A7,X'AA67' * WRT TAPE MASK ST A7,MTMSK2 * LDKL A7,X'AA61' * WTM - MASK ST A7,MTMSK1 * LDK A7,X'A2' * ORDERCODE WRT TAPEMARK SC A7,MTHEAD RF TPMRK * * EJECT * * CTD EQU * * * RESTORE DISK FROM 1/2 TAPE, SECTOR BY SECTOR. * * INITIALIZATIONS FOR DISK RESTORE. * LDK A7,X'95' * ORDERCODE PHYSICAL WRITE DISK SC A7,DKORDR * LDK A7,X'82' * ORDERCODE 'READ TAPE' SC A7,MTORDR * LDKL A7,RETURN ST A7,SWTCH2 * LDKL A7,MTIO ST A7,SWTCH1 * LDKL A7,X'B87F' * MASK 'TAPE READ' ST A7,MTMSK2 * LDKL A7,X'A87F' * MASK 'TAPE READ' ST A7,MTMSK1 * LDK A7,X'82' * ORDERCODE 'READ TAPE' SC A7,MTHEAD * * EJECT * * * WRITE / BYPASS 1:ST TAPE MARK. * TPMRK EQU * CF A14,I:EVA0 * RETREIVE DISK FILE CODE LDR* A7,A9 ST A7,DKECB CF A14,I:EVA0 * RETREIVE TAPE FILE CODE LDR* A7,A9 ST A7,MTECB CF A14,I:EVA0 * RETREIVE FIRST SECTOR NO. LDR* A7,A9 ST A7,DKECBC * SAVE IN CONTROL WORD CF A14,I:EVA0 * RETREIVE LAST SECTOR NO. LDR* A7,A9 ST A7,DKSECN * SAVE IN LOOP CONTROL. CF A14,I:EVA0 * RETREIVE SECTOR LENGTH LDR* A7,A9 ST A7,DKECBL LDR A6,A7 * SAVE SECTOR LENGTH CF A14,I:EVA0 * RETREIVE BLOCK FACTOR LDR* A7,A9 ST A7,BLKFCT LDR A2,A6 * CALC. MT-BUFFER SIZE MUR A7 ST A2,MTECBL * SAVE MT-BUFFERSIZE CF A14,I:EVA0 * RETREIVE BUFFER ADDR. ST A9,MTECBB ST A9,DKECBB CM RECCNT LDK A7,X'00' MTHEAD EQU *-1 LDKL A8,MTECB LKM DATA 1 LDKL A7,X'1000' * 'TAPE MARK' MASK AN A7,MTECBR RF(Z) MTERR LDKL A7,X'0000' MTMSK1 EQU *-1 AN A7,MTECBR RF(NZ) MTERR LDKL A7,NXTBLK ST A7,SWTCH3 ABL X'0000' SWTCH1 EQU *-1 * DKIO / MTIO * * EJECT * * DISK - I/O * DKIO EQU * LDK A7,X'00' DKORDR EQU *-1 LDKL A8,DKECB LKM DATA 1 * * I/O ANALYSIS. * LDKL A7,X'820F' AN A7,DKECBR RF(NZ) DKERR * * REPEAT I/O IF 'NEW VOLUME' DETECTED. * LDK A7,X'80' * MASK 'NEW VOL.' AN A7,DKECBR RB(NZ) DKIO * REPEAT I/O * * INCREMENT SECTOR COUNTER * IM DKECBC * INCR. SECTOR COUNTER IM RECCNT * INCR. RECORD COUNTER * * SECTOR READ. INCREMENT BUFFER POINTER & CHECK IF END OF BUFFER * LD A7,DKECBB *LOAD BUFFER ADDR. AD A7,DKECBL * ADD ON RECORD LENGTH ST A7,DKECBB * SAVE NEW BUFF. ADDR. * * CHECK IF LAST SECTOR PROCESSED AND BRANCH ACORDINGLY. * LD A7,DKECBC * LOAD SECTOR COUNTER CW A7,DKSECN ABL(G) X'0000' SWTCH2 EQU *-1 *MTIOLB / RETURN * * CHECK IF BLOCK IS COMPLETE. * LD A7,RECCNT CW A7,BLKFCT RF(Z) MTIO * YES! TRANS. TO TAPE RB DKIO * READ NEXT SECTOR IF NOT LAST * * EJECT * * * * MAG. TAPE I/O. * MTIOLB EQU * * * FIX WHEN LAST BLOCK PROCESSED. * LDKL A7,WRTPMK ST A7,SWTCH3 * * NORMAL TAPE-I/O ENTRY. * MTIO EQU * LDK A7,X'00' * LOAD ORDERCODE MTORDR EQU *-1 LDKL A8,MTECB LKM DATA 1 * * RETURN CODE ANALYSIS. * LDKL A7,X'0000' * LOAD MASK MTMSK2 EQU *-1 AN A7,MTECBR RF(NZ) MTERR * * RETURN IF LAST SECTOR ELSE PERPARE FOR NEXT BLOCK. * ABL X'0000' SWTCH3 EQU *-1 * NXTBLK / WRTPMK * * * NXTBLK EQU * LD A7,MTECBB ST A7,DKECBB * RESTORE BUFFER ADDR. CM RECCNT * RESET RECORD COUNTER. RB DKIO * READ NEXT SECTOR * * EJECT * * * NORMAL TERMINATION. * WRTPMK EQU * * * WRITE TAPE MARK * LDK A7,X'A2' * ORDERCODE WTM LDKL A8,MTECB LKM DATA 1 LDKL A7,X'1000' AN A7,MTECBR RF(Z) MTERR * * RETURN EQU * LDK A6,0 * RETURN CODE = OK. RF SETRC * * * I/O ERROR HANDLING. * * MTERR EQU * LDKL A8,'M' * INDICATE MAG.TAPE LD A6,MTECBR * PICK UP DRIVER RET. CODE RF ERRHDL * * DKERR EQU * LDKL A8,'D' * INDICATE DISK LDKL A6,DKECBR * * ERRHDL EQU * LD A7,MTECBB * PICK UP BUFFER ADDR. SCR A8,A7 * TRANS. FAILING UNIT * * SETRC EQU * CF A14,I:EVA0 * PICK UP ADDR. OF RETURNCODE STR A6,A9 * TRANS. DRIVER RET. CODE * * ABL I:RT1 * RETURN TO 'CREDIT' USER * * * EJECT * * * EVENT CONTROL BLOCKS. MAG. TAPE AND DISK * MTECB DATA /0070 * FILE CODE TAPE DRIVE MTECBB DATA 0 * BUFFER ADDR. MTECBL DATA 3280,0 * BUFFER LENGTH (8 SECTORS) MTECBR DATA 0 * RETURN CODE MTECBC DATA 0 * NO BLOCK SEQUENCE NO. * * * DKECB DATA /00F0 * FILE CODE FIXED DISK 1 DKECBB DATA 0 * BUFFER ADDR. DKECBL DATA 410,0 * SECTOR LENGTH DKECBR DATA 0 * RETURN CODE DKECBC DATA 0 * SECTOR COUNTER * * * DKSECN DATA 13055 * NO. OF LAST SECTOR BLKFCT DATA 0 *BLOCK FACTOR RECCNT DATA 0 * RECORD IN BLOCK COUNT. * * * END