|
|
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: 10918 (0x2aa6)
Notes: pts_type(SC)
Names: »DMBUF.SC«
└─⟦efe3a1cfc⟧ Bits:30009667 Philips computer tape "600113"
└─⟦this⟧ »TOSSWORK/DMBUF.SC«
IDENT DMBUF REL 8.2 78-09-15 870105040820 * **************************************************** * * PHILIPS TERMINAL SYSTEM PTS * * DMBUF = DATA MANAGEMENT BUFFER AREAS * * * * * * **************************************************** * * ALLOCATE DISC BUFFERS FOR DMTASK * * A ROUTINE DMTGBU TO GET A DISC BUFFER * * BY MEANS OF CONDITIONAL ASSEMBLY QNBUF NUMBER OF BUFFERS WILL BE ALL * * MAX VALUE OF QNBUF IS 16 * * AT LEAST TWO BUFFERS PER DISC DRIVE MUST BE ALLOCATED * EJECT * *************** * ENTRIES * *************** * ENTRY CURBUF CURRENT BUFFER POINTER ENTRY BUFLNK BUFFER LINK ENTRY BUFDMI DMTASK IDENT ENTRY BUFFC FILE CODE ENTRY BUFSNR SECTOR NO ENTRY BUFOR ORDER ENTRY BUFSTA DATA AREA START ADDRESS ENTRY DMTGBU GET A BUFFER ENTRY DMTRBU RELEASE A BUFFER ENTRY CLRBUF RELEASE ALL FREE BUFFERS * EXTRN HALT EJECT X:A EQU 8 NUMBER OF DISC BUFFERS QNBUF EQU X:A * * CURBUF DATA BUF1 NEWBUF DATA 0 * * BUFLNK EQU 0 BUF1 DATA BUF2 BUFFER LINK STATUS IN BIT 15 BUFDMI EQU *-BUF1 DMI BUFFC EQU BUFDMI+1 FILE CODE DATA 0 DMI, FC BUFSNR EQU *-BUF1 SECTOR NO DATA 0 BUFOR EQU *-BUF1 LRU-WORD DATA 0 BUFFER STATUS,DM ORDER BUFSTA EQU *-BUF1 DATA BUFFER START RES 205 * * IFT QNBUF=1 BUF2 EQU BUF1 XIF * * IFF QNBUF=1 BUF2 DATA BUF3 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=2 BUF3 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 BUF3 DATA BUF4 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=3 BUF4 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 BUF4 DATA BUF5 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=4 BUF5 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 BUF5 DATA BUF6 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=5 BUF6 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 BUF6 DATA BUF7 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=6 BUF7 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 BUF7 DATA BUF8 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=7 BUF8 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 BUF8 DATA BUF9 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=8 BUF9 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 BUF9 DATA BUF10 DATA 0,0,0 RES 205 XIF * * IFT QNBUF=9 BUF10 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 IFF QNBUF=9 BUF10 DATA BUF11 DATA 0,0,0 RES 205 XIF IFT QNBUF=10 BUF11 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 IFF QNBUF=9 IFF QNBUF=10 BUF11 DATA BUF12 DATA 0,0,0 RES 205 XIF IFT QNBUF=11 BUF12 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 IFF QNBUF=9 IFF QNBUF=10 IFF QNBUF=11 BUF12 DATA BUF13 DATA 0,0,0 RES 205 XIF IFT QNBUF=12 BUF13 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 IFF QNBUF=9 IFF QNBUF=10 IFF QNBUF=11 IFF QNBUF=12 BUF13 DATA BUF14 DATA 0,0,0 RES 205 XIF IFT QNBUF=13 BUF14 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 IFF QNBUF=9 IFF QNBUF=10 IFF QNBUF=11 IFF QNBUF=12 IFF QNBUF=13 BUF14 DATA BUF15 DATA 0,0,0 RES 205 XIF IFT QNBUF=14 BUF15 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 IFF QNBUF=9 IFF QNBUF=10 IFF QNBUF=11 IFF QNBUF=12 IFF QNBUF=13 IFF QNBUF=14 BUF15 DATA BUF16 DATA 0,0,0 RES 205 XIF IFT QNBUF=15 BUF16 EQU BUF1 XIF * * IFF QNBUF=1 IFF QNBUF=2 IFF QNBUF=3 IFF QNBUF=4 IFF QNBUF=5 IFF QNBUF=6 IFF QNBUF=7 IFF QNBUF=8 IFF QNBUF=9 IFF QNBUF=10 IFF QNBUF=11 IFF QNBUF=12 IFF QNBUF=13 IFF QNBUF=14 IFF QNBUF=15 BUF16 DATA BUF1 DATA 0,0,0 RES 205 XIF EJECT * ************** * DMTGBU * ************** * * ENTRY DMTGBU GET A DISC BUFFER * * INPUT A1 = DMTASK IDENT IN LEFT HALF AND VOLUME FILE CODE IN RIGHT * A2 = SECTOR NUMBER * * OUTPUT A3 = BUFFER ADDRESS * SKIP RETURN (+2) IF SECTOR MUST BE READ INTO BUFFER AT A3 * A5 AND A7 WILL BE DESTROYED * * CURBUF, BUFDMI, -FC AND -SNR WILL BE SET * STATUS USED ( BIT 15 IN BUFLNK ) WILL BE SET * * AT FIRST ALL BUFFERS ARE CHECKED TO FIND OUT IF THE SECTOR * SEARCHED FOR IS ALREADY PRESENT IN ANY FREE BUFFER. * IF THIS SECTOR IS NOT FOUND A FREE SECTOR MUS BE FOUND AND IN * * * DMTGBU EQU * INH INH * * CHECK IF THIS SECTOR IS FOUND IN ANY BUFFER * LD A3,CURBUF LDK A5,0 DMT010 LDR* A3,A3 ANKL A3,/FFFE CW A1,BUFDMI,A3 RF(NE) DMT020 WRONG VOLUME CW A2,BUFSNR,A3 RF(E) DMT050 SAME SECTOR NO DMT020 EQU * LDK A7,/01 AN A7,BUFLNK,A3 STATUS IN BIT 15 RF(NZ) DMT041 USED IM BUFOR,A3 MAKE OLDER RF(P) DMT030 LDK A7,/FF ST A7,BUFOR,A3 DMT030 EQU * CW A5,BUFOR,A3 RF(NL) DMT041 NOT OLDER LD A5,BUFOR,A3 ST A3,NEWBUF DMT041 EQU * CW A3,CURBUF RB(NE) DMT010 MORE BUFFERS TO SERARCH LDR A5,A5 RF(NZ) DMT043 BUFFER FOUND LDK A1,3 LAMP 10 AND 11 CF A15,HALT NO MORE BUFFERS DMT043 LD A3,NEWBUF * * SET CURBUF AND BUFFER HEADER WORDS * IM 4,A14 IM 4,A14 SKIP RETURN ST A1,BUFDMI,A3 DMIDENT, FC ST A2,BUFSNR,A3 SECTOR NUMBER DMT050 EQU * CM BUFOR,A3 RESET OLD-COUNTER ST A3,CURBUF LDK A7,/01 ORRS A7,A3 SET STATUS USED BIT 15 ENB ENB RTN A14 EJECT * ************** * DMTRBU * ************** * * ENTRY DMTRBU RELEASE A DISC BUFFER * * INPUT A3 = BUFFER ADDRESS * A2 IS DESTROYED * * DMTRBU EQU * LDKL A2,/FFFE ANRS A2,A3 SET OFF BIT 15 RTN A14 * * CLRBUF EQU * CLEAR ALL FREE BUFFERS ************************************************************ INH LD A3,CURBUF DMT700 LDR* A3,A3 ANKL A3,/FFFE LDK A2,1 AN A2,BUFLNK,A3 RF(NZ) DMT750 USED CM BUFDMI,A3 REMOVE DMT750 CW A3,CURBUF RB(NE) DMT700 MORE BUFFERS RTN A14 END