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

⟦dae59b544⟧

    Length: 10962 (0x2ad2)
    Notes: pts_type(SC)
    Names: »ZMRDF.SC«

Derivation

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

PTS(SC)

	IDENT	ZMRDF              SCREEN I/O
 DDUM DEMODD
 PDIV 
 ENTRY ZMRDF
	EXPROC	MASK
************************************************************************
**
*        PROCEDURE-NAME :*
*                ZMRDF*
*        FUNCTIONAL DESCRIPTION :*
*                THE PROCEDURE READS A FORMAT FROM THE FORMAT-FILE*
*                THERE ARE MESSAGE-FORMATS ( MAXIMUM LENGTH 397 BYTES)*
*                AND NORMAL FORMATS ( MAXIMUM LENGTH 794 BYTES )*
*                A MESSAGE-FORMAT MUST BE PLACED IN FCBUFFER , WHILE*
*                FCFMTBUF AND FCFORMAT MAY NOT BE USED*
*                A NORMAL FORMAT MUST BE PLACED IN FCFORMAT*
*                AS A RECORD OF THE FORMAT-FILE IS ONLY 400 BYTES IN*
*                LENGTH , FOR A NORMAL FORMAT IT COULD BE NECESSARY TO*
*                READ TWO RECORDS OF THE FORMAT-FILE*
**
*                FIRST THE PROCEDURE TRIES TO READ A RECORD IN THE*
*                DESIRED LANGUAGE , IF NOT OK THE PROCEDURE TRIES*
*                TO READ A RECORD IN THE FIRST LANGUAGE ( LANGUGE-*
*                NUMBER = 0 ) , IF NOT OK  AN ERROR-MESSAGE WILL BE*
*                DISPLAYED AND ABEND OCCURS*
*                IF READING OF THE SECOND RECORD OF A FORMAT IS NOT OK*
*                AN ERROR-MESSAGE WILL BE DISPLAYED AND ABEND OCCURS*
*        PARAMETERS :*
*                XWFMTNR : RELATIVE FORMAT NUMBER (INPUT )*
*                XWMSG   : MESSAGE-FLAG ( INPUT )*
*                          0 = NORMAL FORMAT  , 1 = MESSAGE-FORMAT*
*        USE OF VARIABLES :*
*                NONE*
*        WORKVARIABLES :*
*                WWCOUNT   : RELATIVE RECORD NUMBER*
*                WW2   : AMOUNT OF BYTES TO BE MOVED ,*
*                        POINTER IN XCOPY-STATEMENTS*
************************************************************************
ZMRDF	PROC	XWFMTNR,XWMSG
	PBIN	XWFMTNR,XWMSG 
ZM000					
	MOVE	WWCOUNT,NDTRMLGG	 		
	CBL	WWCOUNT,KW4,ZM050
	MOVE	WWCOUNT,KW0 
ZM050 
	MUL	WWCOUNT,KWNRFMT	) COMPUTE RELATIVE-RECORD-NR  		 
	ADD	WWCOUNT,XWFMTNR	)		
	MOVE	WWINDEX2,=X'8800' 
* USED IN CALL MASK - INSTRUCTIONS, TEST FOR 'NO DATA'
	CBE	XWMSG,KW1,ZM500	MESSAGE FORMAT 
					
ZM100					
	MOVE	WW2,KWFMTLNG
*    READ FORMAT-RECORD IN DESIRED LANGUAGE 
	MOVE	WDEC1,WWCOUNT	RECNR TO BCD
	READ	.DIR,DSFMTFLE,FCFMTBUF,WW2,WDEC1
	BE	ZM200 
	XSTAT	DSFMTFLE,WWINDEX1
	CALL	MASK,WWINDEX1,WWINDEX2
	BOK	ZM200			
	MOVE	WDEC1,XWFMTNR			
	MOVE	WW2,KWFMTLNG
*    READ DEFAULT FORMAT-RECORD  (LANGUAGE-NR = 0 ) 
	READ	.DIR,DSFMTFLE,FCFMTBUF,WW2,WDEC1
	XSTAT	DSFMTFLE,WWINDEX1
	CALL	MASK,WWINDEX1,WWINDEX2
	BNOK	ZM900			
					
ZM200					
	MOVE	WW2,KWFMTLNG			
	SUB	WW2,KW2			
	XCOPY	FCFORMAT,KW0,WW2,FCFMTBUF,KW0			
	CBE	WWCOUNT,KW1,ZM999
*    ( FIRST FORMAT-RECORD CONTAINS FIRST FREE OVERFLOWRECORDNUMBER ) 
	XCOPY	WWCOUNT,KW0,KW2,FCFMTBUF,WW2			
	CBE	WWCOUNT,KW0,ZM999	CHECK IF FORMAT IS CONTAINED		
*                                      IN A SINGLE RECORD*
	MOVE    WW2,KWFMTLNG 
	MOVE	WDEC1,WWCOUNT	RECNR TO BCD
	READ	.DIR,DSFMTFLE,FCFMTBUF,WW2,WDEC1
	XSTAT	DSFMTFLE,WWINDEX1
	CALL	MASK,WWINDEX1,WWINDEX2
	BNOK	ZM900			
	MOVE	WW2,KWFMTLNG
	SUB	WW2,KW2
	XCOPY	FCFORMAT,WW2,WW2,FCFMTBUF,KW0			
	XCOPY	WWCOUNT,KW0,KW2,FCFMTBUF,WW2 
	CBE	WWCOUNT,KW0,ZM999
	MOVE    WW2,KWFMTLNG 
	MOVE	WDEC1,WWCOUNT	RECNR TO BCD
	READ	.DIR,DSFMTFLE,FCFMTBUF,WW2,WDEC1
	XSTAT	DSFMTFLE,WWINDEX1
	CALL	MASK,WWINDEX1,WWINDEX2
	BNOK	ZM900			
	MOVE	WW2,KWFMTLNG
	SUB	WW2,KW2
	MOVE	SPBINW1,WW2 
	ADD	SPBINW1,WW2
	XCOPY	FCFORMAT,SPBINW1,WW2,FCFMTBUF,KW0
	B	ZM999			
					
ZM500					
*                                      READ MESSAGE-FORMAT*
	MOVE	WW2,KWFMTLNG			
	MOVE	WDEC1,WWCOUNT	RECNR TO BCD
	READ	.DIR,DSFMTFLE,FCBUFFER,WW2,WDEC1
	XSTAT	DSFMTFLE,WWINDEX1
	CALL	MASK,WWINDEX1,WWINDEX2
	BOK	ZM600			
	MOVE	WDEC1,XWFMTNR 
	MOVE	WW2,KWFMTLNG
	READ	.DIR,DSFMTFLE,FCBUFFER,WW2,WDEC1
	XSTAT	DSFMTFLE,WWINDEX1
	CALL	MASK,WWINDEX1,WWINDEX2
	BNOK	ZM900 
ZM600 
	MOVE	WW2,KWFMTLNG
	SUB	WW2,KW2
	XCOPY	WWCOUNT,KW0,KW2,FCBUFFER,WW2 
* OVERFLOW RECORDNUMBER 
	CBE	WWCOUNT,KW0,ZM999
	MOVE	WW2,KWFMTLNG
	MOVE	WDEC1,WWCOUNT 
	READ	.DIR,DSFMTFLE,FCFMTBUF,WW2,WDEC1
	BNOK	ZM900 
	MOVE	WW2,KWFMTLNG
	SUB	WW2,KW2
	MOVE	WWCOUNT,=W'146' 
	XCOPY	FCBUFFER,WW2,WWCOUNT,FCFMTBUF,KW0
	B	ZM999
					
ZM900					
	EDWRT	SPDSSCRN,FMTA	WRITE ERROR-MESSAGE		
	SET	SBCANCEL	ABEND 
					
ZM999					
	RET				
	PEND				
					
FMTA	FRMT				
	FSL
	FTEXT	'FAILURE ON FORMAT-FILE-DISK'			
	FNL				
	FTEXT	'FUNCTION ABENDED BY ZMRDF'
	FMEND				
 END

Full view