DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦cde056d3e⟧

    Length: 23020 (0x59ec)
    Notes: pts_type(SC)
    Names: »FILES.SC«

Derivation

└─⟦f350e1b7a⟧ Bits:30009678 Philips computer tape "600219"
    └─⟦this⟧ »PTSDEMO/FILES.SC« 

PTS(SC)

         IDENT    FILES	SEP 80,SEBE,BSO APELDOORN 
* 
* 
* 
* 
*********************************************************************** 
* 
*                            F  I  L  E  S
*                           *************** 
* 
*  THIS MODULE PROVIDES AN CREDIT INTERFACE TO HANDLE THE TOSS
*  UTILITIES. ALL THE ROUTINES ARE IN ASSEMBLER.
* 
*  THE INTERFACE IS CALLED UPON THE FOLLOWING MANNERS : 
* 
* 
*  1) TO CREATE A STANDARD FILE 
* 
*     CALL  CRFS,DATAITEM1,VAL1,VOL1(,VOL2,..),DATE,RECL,NOREC, 
*                           BF,NOIND,KEY,ERROR
* 
*     DATAITEM1 CONTAINS THE FILE NAME.(MUST BE 8 CHAR.)
*     VAL1      CONTAINS THE NUMBER OF VOLUMES. 
*     VOL(1-4)  REPRESENTS DATAITEMS IN WICH THE VOLUMENAMES
*               ARE PLACED (EACH ONE MUST BE 6 CHAR.) 
*     DATE      A STRING ITEM WITH THE SYSTEM DATE. 
*     BF        REPRESENTS THE BLOCKINGS FACTOR. (IN BINAIRY).
*     RECL      IS A BINAIRY WITH THE RECORD LENGTH.
*     NOREC     IS A BINAITY WITH THE NUMBER OF RECORDS.
*     NOIND     REPRESENTS THE NUMBER OF INDEX FILES. 
*     KEY       REPRESENTS A DATAITEM IN WICH THE KEYADRES IS PLACED. 
*     ERROR     THIS FIELD CONTAINS THE ERROR NUMBER. 
* 
* 
*  2) TO DELETE A STANDARD FILE.
* 
*     CALL  DLFS,DATAITEM1,VAL1,VOL1,(VOL2..),ERROR 
* 
*     THE CONTENS OF THE ITEMS IS THE SAME AS WITH A CREATE FILE. 
* 
* 
*********************************************************************** 
* 
*  SEE NEXT PAGE. 
* 
	EJECT
* 
*********************************************************************** 
* 
* 
*  3) TO GET THE LRN OF A STANDARD FILE.
* 
*     CALL GETLRN,DATAITEM1,VAL1,VOL1,(VOL2,..),LRN,ERROR 
* 
*     LRN       CONTAINS THE LAST RECORD NUMBER OF A FILE 
*               AFTER THE CALL GETLRN IS PERFORMED SUCCESFULL.
* 
*     THE CONTENS OF THE OTHER ITEMS IS THE SAME AS WITH A
*     CREATE FILE.
* 
* 
*  4) TO UPDATE THE LRN OF A STANDARD FILE. 
* 
*     CALL PUTLRN,DATAITEM1,VAL1,VOL1,(VOL2,..),LRN,ERROR 
* 
*     THE CONTENS OF THE ITEMS IS THE SAME AS WITH A
*     CALL GETLRN, BUT IN THIS CASE THE LRN IS UPDATED
*     AT THE RIGTH PLACE IN THE -VTOC-. 
* 
* 
*  5) SOME ROUTINES TO GET THE SPECIALITIES FROM A FILE.
*     ALL THESE ROUTINES ARE THE SAME AS THE GETLRN.
* 
*     CALL GET...,DATAITEM1,VAL1,VOL1,(VOL2,..),...,ERROR 
* 
*          GETRL   RECORD LENGTH. 
*          GETEL   FILE EXTENSION LENGTH. 
*          GETBF   BLOCKINGS FACTOR.
*          GETNIF  NUMBER OF INDEX FILES. 
*          GETKA   KEY ADDRESS. 
* 
* 
*  6) COPY FILE TO FILE.
* 
*     CALL CFF,FILEIN,VOL1,FILEOUT,VOL2,ERROR 
* 
*     FILEIN    CONTAINS THE NAME OF THE INPUT FILE.
*     FILEOUT   CONTAINS THE NAME OF THE OUTPUT FILE. 
*     VOL1      CONTAINS THE VOLUME NAME OF INPUTFILE.
*     VOL2      CONTAINS THE VOLUME NAME OF OUTPUTFILE. 
* 
* 
*                                                 BY : SEBE KRUIJER.
*********************************************************************** 
* 
	EJECT
* 
************************************************* 
*   E N T R I E S   A N D   E X T E R N A L S   * 
************************************************* 
* 
	ENTRY	CRFS 
	ENTRY	DLFS 
	ENTRY	A:PPC
	ENTRY	A:EVA	-ROUTINE FOR I:EVA0. 
	ENTRY	GETLRN 
	ENTRY	PUTLRN 
	ENTRY	CFF
	ENTRY	GETRL
	ENTRY	GETEL
	ENTRY	GETBF
	ENTRY	GETNIF 
	ENTRY	GETKA
* 
* 
	EXTRN	I:EVA0 
	EXTRN	I:RT1
	EXTRN	CRFILE 
	EXTRN	DLFILE 
	EXTRN	COPFIL 
        EJECT 
* 
********************************************************* 
* 
*  C R E A T E   A  S T A N D A R D   F I L E 
* 
* 
CRFS	EQU	*
	CF	A14,STANDRD	-STANDARD FILE BLOCK. 
	CF	A14,TEKST	-FILL DATE RET. PERIOD. 
	CF	A14,A:EVA 
	ST	A3,BLOCK+50	-RECORD LENGTH. 
	CF	A14,A:EVA 
	ST	A3,BLOCK+56	-NO OF RECORDS. 
	CF	A14,A:EVA	-HAAL BLOCKINGSFACTOR.
	SC	A3,BLOCK+49	-STORE
	CF	A14,A:EVA 
	SLL	A3,8	-NIF TO 1E BYTE.
	ST	A3,BLOCK+54 
	CF	A14,A:EVA	-GET KEYADRES.
	ST	A3,BLOCK+52 
	CF	A14,STORE	-SAVE REG 11 .. 13
	LDKL	A12,BLOCK	-BLOCK ADRES. 
	CF	A14,CRFILE	-THE CREATE
	RF	CFFEND	-TO COMMON SEGMENT 
* 
* 
****************************************************************
* 
*    D E L E T E  A  S T A N D A R D  F I L E 
* 
* 
DLFS	EQU	*
	CF	A14,STANDRD	STANDARD PARAM. 
	CF	A14,STORE	STORE REGISTERS.
	LDKL	A12,BLOCK 
	CF	A14,DLFILE	-DELETE THE FILE.
	RF	CFFEND
* 
* 
*************************************************************** 
	EJECT
* 
* 
*************************************************************** 
* 
*   THIS ROUTINE IS TO GET THE LAST RECORD NUMBER FROM
*   THE -VTOC-. 
* 
*************************************************************** 
* 
GETLRN	EQU	*
	CF	A14,LRN 
	LDR	A1,A1
	RF(NZ)	AFHAND
	LD	A4,22,A4	-GET LRN NR. 
GETAF	EQU	* 
	CF	A14,I:EVA0
	STR	A4,A9	STORE LAST REC NUMBER
	LDK	A1,0	-INDICATION OK. 
AFHAND	EQU	*
	LDK	A2,2 
	ADS	A2,REG12	-NIEUWE A12 
	LDR	A1,A1	-IS IT OKE.? 
	RF(Z)	COMSEG 
	RF	GETRC 
* 
* 
**************************************************************
* 
*      THIS ROUTINE IS THE PUTLRN.
* 
*************************************************************** 
* 
PUTLRN	EQU	*
	CF	A14,LRN 
	LDR	A1,A1
	RB(NZ)	AFHAND
	CF	A14,A:EVA 
	ST	A3,22,A4	-STORE RECORD NUMBER.
	CF	A14,WRITE	-WRITE THE LRN. 
* 
	RB	AFHAND
* 
	EJECT
* 
*************************************************** 
*    GET THE RECORD LENGTH. 
*************************************************** 
* 
GETRL	EQU	* 
	CF	A14,LRN	-SOME STANDARDS.
	LDR	A1,A1
	RB(NZ)	AFHAND	-OKE ??
	LD	A4,24,A4	-THE RECORD LENGTH.
	RB	GETAF 
* 
***************************************** 
*   GET THE EXTENSION LENGTH. 
***************************************** 
* 
GETEL	EQU	* 
	CF	A14,LRN 
	LDR	A1,A1	-OKE ??
	RB(NZ)	AFHAND
	LD	A4,14,A4	-THE EXTENSION LENGTH. 
	RB	GETAF 
* 
****************************************
* GET THE BLOCKINGS FACTOR. 
****************************************
* 
GETBF	EQU	* 
	CF	A14,LRN	-STANDARDS. 
	LDR	A1,A1
	RB(NZ)	AFHAND
	LD	A4,26,A4	-THE BLOCKINGS FACTOR. 
	SRL	A4,8	-TO 2E BYTE.
	RB	GETAF 
* 
***************************************** 
*     GET THE NUMBER OF INDEX FILES.
***************************************** 
* 
GETNIF	EQU	*
	CF	A14,LRN 
	LDR	A1,A1	-OKE ??
	RB(NZ)	AFHAND
	LD	A4,36,A4	-THE NUMBER. 
	SLL	A4,8 
	SRL	A4,8	-TO THE 2E BYTE.
	RB	GETAF 
	EJECT
* 
* 
******************************************
*     GET THE KEY ADDRESS.
******************************************
* 
GETKA	EQU	* 
	CF	A14,LRN 
	LDR	A1,A1	-OKE ??
	RB(NZ)	AFHAND
	LD	A4,38,A4	-THE KEY ADDRESS.
	RB	GETAF 
* 
* 
******************************************
*   COPY FILE TO FILE.
******************************************
* 
CFF	EQU	* 
	CF	A14,QUEUE	-SYSTEM FREE. 
	CF	A14,INIT
	CF	A14,ASROUT	-ASSIGN FILES. 
	CF	A14,ASROUT
	LD	A1,FC1	-FC1 := C0.
	SUK	A1,2 
	ST	A1,FC1
	LDK	A2,0 
	ST	A2,BLOCK+4	INIT BLOCK.
	ADK	A2,1 
	ST	A2,BLOCK+8
	LD	A3,FC1A2	-THE FILE CODES. 
	ST	A3,BLOCK+6	-IN THE BLOCK. 
	CF	A14,STORE 
	LDKL	A12,BLOCK	-BLOCK ADDRESS. 
	CF	A14,COPFIL	-COPY ROUTINE. 
CFFEND	EQU	*
	RF	COMSEG
* 
	EJECT
* 
* 
********************************************
*   THE ASSIGN ROUTINE. 
*   THE FILE CODE IS INCREASED. 
********************************************
* 
ASROUT	EQU	*
	CF	A14,I:EVA0	-A FILENAME. 
	LDK	A4,8	-BYTES TO MOVE. 
	LDK	A3,6	-FROM BYTE 6. 
	CF	A14,A:MOVE
	CF	A14,I:EVA0	-A VOLUME NAME.
	LDK	A4,6 
	LDK	A3,14
	CF	A14,A:MOVE
	LDKL	A8,ASSBLK	-ADDRESS BLOCK. 
	LDK	A7,0	-NORMAL ASSIGN. 
	LD	A1,FC1	FILE CODE. 
	STR	A1,A8	-TO BLOCK. 
	IM	FC1 
	LKM
	DATA	15	-THE ASSIGN. 
	RTN	A14
* 
* 
	EJECT
* 
*************************************** 
*  G E T   R E T U R N C O D E
*************************************** 
* 
GETRC	EQU	* 
	LD	A2,RETCOD 
	LDR	A1,A2	-RETURN CODE IN A1 
	ANKL	A1,/028E	-I/O ERROR ??
	RF(NZ)	COMSEG	-IN A1 FOUT. 
	LDR	A1,A2	-WAIT. 
	ANK	A1,/20	-FILE NAME UNKNOWN. 
	RF(NZ)	COMSEG	-IN A1 AL WRONG. 
	LDR	A1,A2
	ANK	A1,1	-DISK NOT OPERABLE. 
	RF(NZ)	COMSEG
	LDR	A1,A2	-VOLUME NAME UNKNOWN.
	RF	COMSEG
* 
* 
********************************************* 
*   C O M S E G 
* 
*   COMMON EXIT PART FOR ALL FUNCTIONS. 
********************************************* 
* 
* 
COMSEG	EQU	*
	LDR	A4,A1
	CF	A14,RESTOR	-RESTORE A11,..A13 
	CF	A14,I:EVA0
	STR	A4,A9
	LDK	A1,0	-PRESET COND. REG.
	LDR	A4,A4	-TJEK ON STATUS. 
	RF(Z)	CON0 
	LDK	A1,2	-ERROR. 
CON0	EQU	*
	CF	A14,KONDIT
	CM	FREE	-FREE. 
	ABL	I:RT1
	EJECT
* 
********************************************************* 
* 
*    STANDARD ROUTINES FOR THE GETLRN.
* 
* 
LRN	EQU	* 
	CF	A14,STANDRD	-GET FILENAME + VOLUME NAME 
	CF	A14,STORE 
	CF	A14,INIT1	-FC--> E9, REC LENGTH--> 410
VOLG	CF	A14,INIT2	-BUFADRES + SECNR.
	CF	A14,GETVOL	-GET VOLUME. 
	LDR	A1,A1
	RF(NZ)	ENDLRN	-NOT OPERABLE
	CF	A14,NXTECB	-ADJUST THE ECB. 
	CF	A14,VTOC	-SEARCH THE VTOC.
	LDR	A1,A1
	RF(NZ)	ENDLRN	-I/O ERROR 
	LDR	A8,A8	-FILE NOT IN VTOC. 
	RB(Z)	VOLG 
ENDLRN	EQU	*
	RTN	A14
* 
* 
INIT1	EQU	* 
	LDK	A1,0 
	ST	A1,RETCOD	-INIT RETURN CODE 
	LDK	A1,/E8 
	ST	A1,ECB
	LDKL	A2,/19A 
	ST	A2,ECB+4	-RECORD LENGTH 
	RTN	A14
* 
INIT2	EQU	* 
	LDK	A2,0 
	ST	A2,SECNR	-SECTOR NUMBER.
	LDKL	A2,BUFFER 
	ST	A2,ECB+2	-BUFFER ADRES
	LDK	A1,1 
	RTN	A14
	EJECT
* 
*************************************** 
*   GET THE VOLUME NAME.
*************************************** 
* 
* 
GETVOL	EQU	*
	ADS	A1,ECB	-STORE FILECODE 
	LC	A1,ECB+1
	SUK	A1,/F4	-IS IT F4 ? 
	RF(Z)	VOLABSEN 
	CF	A14,READ
	LDR	A1,A1
	RF(NZ)	NEXTVOL 
	CF	A14,CHKVLN	-CHECK VOLUME NAME.
	LDR	A1,A1
	RF(NZ)	NXVOL	-NEXT VOLUME
	RTN	A14
NXVOL	EQU	* 
	LDK	A1,/40	-VOLUME NAME UNKNOWN. 
	ORS	A1,RETCOD
NEXTVOL	LDK	A1,1	-FILECODE 1 UP.
	RB	GETVOL	-ONES MORE.
VOLABSEN	LDK	A1,2 
	RTN	A14
* 
* 
* 
	EJECT
* 
* 
********************************************************
*   I / O   R O U T I N E S . 
********************************************************
* 
* 
READ	EQU	*
	LDK	A7,/91	-PHYSICAL READ. 
	RF	IODISC
* 
* 
WRITE	EQU	* 
	LDK	A7,/95	-PHYSICAL WRITE.
	RF	IODISC
* 
* 
* 
*           CHECK THE RETURN CODE.
* 
IODISC	EQU	*
	LDK	A2,1	-INDICATION RETRY.
	LDKL	A8,ECB
RETRY	LKM 
	DATA	1 
	LD	A1,8,A8	-RETURN CODE. 
	RF(Z)	EOREAD 
	SUK	A2,1	-RETRY ?? 
	RB(Z)	RETRY
	ORS	A1,RETCOD	-STORE TOTAL RETURN CODE 
EOREAD	EQU	*
	RTN	A14
* 
* 
**************************************************************
*       CHECK CONDITION REGISTER. 
**************************************************************
* 
KONDIT	EQU	*
	LD	A2,2,A13
	SC	A1,-2,A2
	RTN	A14
* 
* 
* 
A:EVA	EQU	* 
	CF	A14,I:EVA0
	LDR*	A3,A9 
	RTN	A14
* 
	EJECT
* 
* 
***************************************** 
*    CHECK VOLUME NAME. 
***************************************** 
* 
CHKVLN	EQU	*
	LD	A2,ECB+2	-BUFFER ADRS.
	ADK	A2,2	-POINTER IN BUFFER. 
	ST	A2,C:STOR	-ROUTINE COMPARE
	LDK	A3,1	-PRESET NUMBER OF CHECKS
	LDKL	A4,BLOCK+16	-BASIC VOLUME NAME
LABEL	EQU	* 
	LDK	A1,6 
	CF	A14,COMPAR	-CHECK THE NAME
	LDR	A1,A1
	RF(Z)	EINDE
	ADK	A3,1	-NEXT NAME
	CWR	A6,A3	-ALL VOLUMES HAD ??
	RF(N)	EINDE
	ADK	A4,6	-ADJUST POINTER.
	RB	LABEL 
EINDE	RTN	A14 
* 
* 
COMPAR	EQU	*
	LDK	A5,0 
	ADR	A4,A1	-THE CORRECT POINTER ? 
C:LOOP	SUK	A1,1 
	SUK	A4,1 
	LCR	A5,A4	-CHAR IN A5. 
	CC	A5,0,A1	-COMPARE CHAR.
C:STOR	EQU	*-2	-SAVE ADRES ITEM 
	RF(NZ)	NOTSAME	-NOT EQUAL
	LDR	A1,A1
	RB(NZ)	C:LOOP
	RTN	A14
NOTSAME	EQU	* 
	SUR	A4,A1	-GET POINTER BACK
	LDK	A1,2 
	RTN	A14
* 
	EJECT
* 
********************************* 
*   GET NEXT ECB. 
********************************* 
* 
* 
NXTECB	EQU	*
	LDKL	A2,BUFFE2 
	ST	A2,ECB+2	-SAVE BUFFER2 ADRES. 
	LD	A6,BUFFER+12	-FREE SPACE TABLE
	ADK	A6,1 
	LD	A3,BUFFER+8	-GET VTOC SECTORS.
	ADR	A3,A6	-LAST VTOC SECTOR. 
	RTN	A14
* 
* 
* 
**********************************************
*    SEARCH FILENAME IN THE -VTOC-. 
**********************************************
* 
* 
SEARCH	EQU	*
	LDKL	A4,BLOCK+8	-ADRES FILE NAME.
	ST	A4,C:STOR	STORE IN ROUTINE COMPAR 
	LDKL	A4,BUFFE2+2	-BEGIN VTOC RECORD. 
LABEL2	LDK	A1,8 
	CF	A14,COMPAR	-CHECK FILENAMES 
	LDR	A1,A1
	RF(Z)	OKE	-SAME ?? 
	ADK	A4,42	-NEXT VTOC RECORD. 
	CWK	A4,BUFFE2+420	-END OF SECTOR.
	RB(2)	LABEL2	-NO GET BACK. 
OKE	RTN	A14 
* 
	EJECT
* 
* 
************************************
*   READ SECTOR OF THE VTOC.
************************************
* 
* 
VTOC	EQU	*
	ST	A6,SECNR	-STORE SECTOR NUMBER 
	CF	A14,READ	-READ SECTOR 
	LDR	A1,A1
	RF(NZ)	ERRREAD	-ERROR ?
	CF	A14,SEARCH	-SEARCH FILE NAME. 
	LDR	A1,A1
	RF(Z)	FOUND	-FOUND ??
	ADK	A6,1	-NO NEXT ONE
	CWR	A3,A6	-END OF SECTOR ? 
	RB(NZ)	VTOC	-NO NEXT VTOC SECTOR.
	LDK	A1,/20	-FILENAME UNKNOWN 
	ORS	A1,RETCOD	-STORE RETURN CODE.
	LDK	A1,0 
	LDKL	A8,0	-NOT PRESENT.
ERRREAD	RTN	A14 
* 
* 
FOUND	EQU	* 
	LDK	A1,0 
	RTN	A14
* 
* 
	EJECT
* 
* 
************************************* 
*   STANDARD SUB ROUTINE. 
************************************* 
* 
* 
STANDRD	EQU	* 
	CF	A14,QUEUE 
	CF	A14,INIT
	CF	A14,FILNAM
	CF	A14,A:PPC 
	LDR	A7,A3	-SAVE REGISTER.
	LDK	A6,0 
ST:01	EQU	* 
	CF	A14,VOLNAM
	ADK	A6,1 
	SUK	A7,1 
	RB(NZ)	ST:01 
	LDKL	A1,/5353
	SC	A1,BLOCK+6	-STORE IN PARAM BLOCK. 
	RTN	A14
* 
* 
* 
**************************************
*   SUB ROUTINE : QUEUE.
* 
*   THIS IS TO SHEDULE THE TASK UNTILL
*   THE ENTRY IS OMITTED. 
*************************************** 
* 
* 
QUEUE	EQU	* 
	LD	A1,FREE	-IS OMITTED ??
	RF(Z)	Q:RTN	-OKAY IF ZERO. 
	LKM
	DATA	0 
	RB	QUEUE 
Q:RTN	EQU	* 
	IM	FREE	-INDICATE USED.
	RTN	A14
* 
* 
	EJECT
* 
* 
***************************************** 
*  THIS ROUTINE IS TO COPY THE USER 
*  FILENAME TO THE DISCRIPTOR BLOCK.
******************************************
* 
* 
FILNAM	EQU	*
	CF	A14,I:EVA0
	LDK	A4,8	-BYTES TO MOVE. 
	LDK	A3,8	-FROM BYTE 8 IN BLOCK.
	CF	A14,A:MOVE
	RTN	A14
* 
* 
******************************************
*  THIS ROUTINE IS TO MOVE THE VOLUME 
*  NAME TO THE DISCRIPTOR BLOCK.
* 
*  REG. A7 CONTAINS THE INDEX OF THE VOLUME NAME. 
******************************************
* 
* 
VOLNAM	EQU	*
	CF	A14,I:EVA0
	LDR	A1,A6	-GET INDEX.
	SLL	A1,1	-MUL BY 2.
	ADR	A1,A6	-ADD VALUE.
	SLL	A1,1	-MUL BY 2 --> 6 X.
	LDK	A3,16	-VOLUME ENTRY. 
	ADR	A3,A1	-ADD INDEX.
	LDK	A4,6	-LENGTH 
	CF	A14,A:MOVE	-MOVE VOLUME 
	RTN	A14
* 
* 
************************************************* 
*   ROUTINE TO GET A CONSTANT VALUE FROM THE
*   USER DATA DIVISION AND TO UPDATE THE
*   PROGRAM POINTER.
************************************************* 
* 
* 
A:PPC	EQU	* 
	LDK	A3,0 
	LCR	A3,A12 
	ADKL	A12,1 
	RTN	A14
	EJECT
* 
* 
****************************************************
*    ROUTINE TO MOVE CORE FROM USER TO THE
*    DISCRIPTOR BLOCK.
* 
*    REG. A9 CONTAINS THE USER CORE ADRES.
*    REG. A4 CONTAINS THE LENGTH
*    REG. A3 CONTAINS THE ENTRY IN THE BLOCK. 
***************************************************** 
* 
* 
A:MOVE	EQU	*
	LDKL	A1,BLOCK	-DISCRIPTOR BLOCK
	ADR	A1,A3	-ENTRY IN BLOCK
	ST	A1,DISCRIPT 
	ST	A9,ADRES	-USER ADRES. 
	LDK	A1,0 
M:LOOP	EQU	*
	SUK	A4,1	-EVERY THING MOVED ?? 
	RF(N)	M:END
	LC	A1,0,A4 
ADRES	EQU	*-2 
	SC	A1,0,A4 
DISCRIPT	EQU	*-2
	RB	M:LOOP
M:END	EQU	* 
	RTN	A14
* 
* 
******************************************************
*    ROUTINE TO MOVE DATE AND RETENTION PERIOD
*    FROM USER BUFFER TO DISCRIPTOR BLOCK.
******************************************************* 
* 
* 
TEKST	EQU	* 
	CF	A14,I:EVA0
	LDK	A4,15	LENGTH TEXT. 
	LDK	A3,40	ENTRY IN BLOCK.
	CF	A14,A:MOVE
	RTN	A14
* 
* 
	EJECT
* 
* 
******************************************************
*   THIS ROUTINE IS TO INIT THE DISCRIPTOR BLOCK
*   ON TO SPACES. 
******************************************************
* 
INIT	EQU	*
	LDKL	A1,/2020	-SPACES. 
	LDK	A2,50
I:LOOP	EQU	*
	ST	A1,BLOCK+6,A2 
	SUK	A2,2 
	RB(NN)	I:LOOP	-END OF BUFFER ??
	LDK	A1,0 
	ST	A1,BLOCK+54	-NUMBER OF INDEX FILES --> 0
	RTN	A14
* 
* 
FREE	DATA	0 
FC1	DATA	/01C0
FC1A2	DATA	/C0C1
* 
************************************************
*   ROUTINE TO SAVE REGISTERS.
************************************************
* 
STORE	EQU	* 
	ST	A11,REG11 
	ST	A12,REG12 
	ST	A13,REG13 
	RTN	A14
* 
* 
************************************************
*   ROUTINE TO GET BACK THE SAVED REGISTERS.
************************************************
* 
RESTOR	EQU	*
	LDKL	A11,0 
REG11	EQU	*-2 
	LDKL	A12,0 
REG12	EQU	*-2 
	LDKL	A13,0 
REG13	EQU	*-2 
	RTN	A14
* 
	DATA	'TM','P-' 
	EJECT
* 
* 
************************************************************************
* 
*              D I S C R I P T O R     B L O C K
* 
* 
BLOCK	EQU	* 
	DATA	BUFFER
	DATA	BUFFE2
ASSBLK	DATA	0 
	RES	16 
ECB	DATA	0
	DATA	0 
	DATA	0 
	DATA	0 
	DATA	0	-RETURN CODE. 
SECNR	DATA	0	-SECTOR NUMBER.
RETCOD	DATA	0 
BUFADR	DATA	0 
	DATA	0 
* 
* 
* 
************************************************************************
* 
*         C R E A T E    A N D    D E L E T E    B U F F E R
* 
* 
* 
	DATA	0 
	DATA	/4141 
BUFFER	EQU	*
	RES	205
BUFFE2	EQU	*
	RES	205
* 
* 
* 
	END

Full view