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

⟦49d30189b⟧

    Length: 11200 (0x2bc0)
    Notes: pts_type(SC)
    Names: »FORMAT.SC«

Derivation

└─⟦35fda6e03⟧ Bits:30009701 Philips computer tape "BARCLAY"
    └─⟦this⟧ »HJFORMAT/FORMAT.SC« 

PTS(SC)

       IDENT   FORMAT 
************************************************************************
*      FUNCTIONAL DESCRIPTION :                                        *
*                    BUILDING 100 FORMATS OF THE FORMAT-FILE IN A      *
*                    LANGUAGE ; EACH FORMAT HAS A LENGTH OF 1 RECORD   *
*                    MINIMAL ( 253 BYTES ) AND 2 RECORDS MAXIMAL       *
*                    A MAXIMUM OF 4 LANGUAGES IS ALLOWED               *
*                    THE 100 FORMATS ARE GROUPED TOGETHER IN A FORMAT- *
*                     TABEL AND HAVE THE NAMES FMT01 - - - FMT100      *
*                    IF ANOTHER LANGUAGE IS WANTED , TRANSLATE THE     *
*                    TEXT IN THE FTEXT-STATEMENTS OF THE 100 FORMATS IN*
*                    THE DESIRED LANGUAGE AND EXECUTE THIS MODULE.     *
*                    AFTER CREATION OF A ( EMPTY ) FORMAT-FILE , THE   *
*                    FIRST LANGUAGE-NUMBER ( AFTER EXECUTING THIS MODULE
*                    WILL BE O (ZERO) ; THE LANGUAGE NUMBER OF THE OTHER
*                    3 HAVE TO BE 1 OR 2 OR 3 IN ANY ORDER             *
*                    THIS FORMAT-FILE WILL BE USED BY PROGRAM 'DEMODD' *
*                       IF A FORMAT-RECORD CONTAINS MORE BYTES THAN A  *
*                         RECORD , THE REMAINING PART OF THE FORMAT-   *
*                         RECORD IS WRITTEN ON THE FIRST FREE OVERFLOW-*
*                         RECORD ; THE RELATIVE RECORD-NUMBER OF THE   *
*                         OVERFLOW-RECORD WILL BE WRITTEN IN THE LAST  *
*                         TWO BYTES OF THE CONCERNING FORMAT-RECORD    *
*      PROCEDURES USED : BALGG (LOOKS FOR A FREE LANGUAGE-NUMBER )     *
*                        ZKOPNF ( OPENS FORMAT-FILE  )                 *
*                        ZLCLSF ( CLOSES FORMAT-FILE )                 *
************************************************************************
	DDUM	DEMODD
       PDIV 
************************************************************************
*      FUNCTIONAL DESCRIPTION                                          *
*                       MAIN PROCEDURE , RULES THIS MODULE             *
*                       INITIALIZATION                                 *
*                       ASKS VOLUME-NUMBER OF FORMAT-FILE              *
*                       READS FIRST RECORD OF FORMAT-FILE              *
*                         IF NOT O.K. :-LANGUAGE-NUMBER WILL BE ZERO   *
*                                      -FIRST FREE OVERFLOW-RECORD     *
*                                       WILL BE TOTAL AMOUNT OF LANG   *
*                                       UAGES X TOTAL AMOUNT OF FORMATS*
*                                       +1  ( IN THIS CASE 4X100+1=401 *
*                                      IF O.K.   :-LAST TWO BYTES CONTAIN THE 
*                                       FIRST FREE OVERFLOW-RECORDNR.  *
*                                      -ASKS LANGUAGE-NUMBER           *
*                       WRITES FORMATS ON FORMAT-FILE ; THE RELATIVE   *
*                         RECORDNUMBER OF A FORMAT ON THE FORMAT-FILE  *
*                         WILL BE : LANGUAGE-NUMBER X TOTAL AMOUNT OF  *
*                         FORMATS IN THE FORMAT-TABLE + FORMAT-NUMBER  *
*                         ( IF E.G. LANGUAGE-NUMBER = 3 AND            *
*                           FORMAT-NUMBER = 17 , THE RELATIVE RECORD-  *
*                           NUMBER WILL BE 3X100 + 17 = 317  )         *
************************************************************************
	EXPROC	ZKOPNF
	EXPROC	ZLCLSF
	EXPROC	FMOVE 
	EXPROC	MASK
       ENTRY   AAMAIN 
KTB	KTAB	X'FF',X'90',X'92'
	EJECT
AAMAIN
AA000 
	DSC0	SPDSDYKB,02	CLEAR BUFFER
	EDWRT	SPDSSCRN,FMTI
       EDWRT   SPDSSCRN,FMTF
	MOVE	KWCONT,=W'6'
	KI	SPDSDYKB,WCSTRG6,KTB,KWCONT,KWSPCONT
	CBNE	KWSPCONT,KW3,AA000
	CBG	YDSTATUS,=D'0',AA000 
AA100 
	MOVE	YDSTATUS,=D'1'
       MOVE    WW2,KDMAXLGG             ) 
       MUL     WW2,KWNRFMT              ) COMPUTE FIRST OVERFLOW-REC
	ADD	WW2,KW1
AA200 
	EDWRT	SPDSSCRN,FMTI
       EDWRT   SPDSSCRN,FMTA            ASK VOLUME-NAME 
	DSC0	SPDSDYKB,02 
	MOVE	KWCONT,KW3
       NKI     SPDSDYKB,VCVOLNR2,KTB,KWCONT,KWSPCONT
	CBNE	KWCONT,KW3,AA200
	USE	UBF,KW1	ACCESS USERWORKBLOCK 
       PERF    ZKOPNF 
	BNOK	AA900 
	MOVE	NWTOTBYT,KWFMTLNG 
	SUB	NWTOTBYT,KW2 
	MOVE	KWCONT,KWFMTLNG 
	READ	.DIR,DSFMTFLE,FCFMTBUF,KWCONT,KD1 
	XSTAT	DSFMTFLE,WW1 
	MOVE	WWINDEX1,=X'8800'	NO DATA 
	CALL	MASK,WW1,WWINDEX1 
	BNOK	AA400 
AA300 
	COMMIT	NWXSTAT 
       XCOPY   WW2,KW0,KW2,FCFMTBUF,NWTOTBYT  FIRST FREE OVERFLOW-RECORD
       PERF    BALGG
AA400 
	MOVE	WWINDEX1,KW0	INITIATE FORMAT-NR 
AA500 
	COMMIT	NWXSTAT 
       ADD     WWINDEX2,KW1             GIVES RELATIVE-RECORD-NR
       ADD     WWINDEX1,KW1             GIVES FORMAT-NR 
       CBG     WWINDEX1,KWNRFMT,AA700   FORMAT-NR > 100 ? 
       CALL FMOVE,FCFORMAT,FMTTAB(WWINDEX1) 
       MOVE    FCFMTBUF,=D'0' 
       XCOPY   FCFMTBUF,KW0,NWTOTBYT,FCFORMAT,KW0 
       XCOPY   SPBINW3,KW0,KW2,FCFORMAT,NWTOTBYT
       MOVE    SPBINW4,=X'E9E9' 
	MOVE	WDEC1,WWINDEX2
       CBNE    SPBINW3,SPBINW4,AA600
	WRITE	.DIR,DSFMTFLE,FCFMTBUF,WDEC1 
	XSTAT	DSFMTFLE,KWCANCEL
       BNERR     AA500
       B       AA910
AA600 
*     FORMATS ARE LONGER THAN 1 RECORD ; 1 RECORD + 1 OVERFLOW-RECORD 
*     HAVE TO BE WRITTEN ON THE FORMAT-FILE 
       XCOPY   FCFMTBUF,NWTOTBYT,KW2,WW2,KW0
	WRITE	.DIR,DSFMTFLE,FCFMTBUF,WDEC1 
       MOVE    FCFMTBUF,=D'0' 
       XCOPY   FCFMTBUF,KW0,NWTOTBYT,FCFORMAT,NWTOTBYT
	MOVE	WDEC2,WW2 
	MOVE	SPBINW1,NWTOTBYT
	ADD	SPBINW1,NWTOTBYT 
	XCOPY	SPBINW3,KW0,KW2,FCFORMAT,SPBINW1 
	CBNE	SPBINW3,SPBINW4,AA650 
	WRITE	.DIR,DSFMTFLE,FCFMTBUF,WDEC2 
       ADD     WW2,KW1	NEXT OVERFLOW-RECORDNUMBER 
       B       AA500
AA650 
*        FORMATS ARE LONGER THAN 1RECORD + 1 OVERFLOW RECORD
	ADD	WW2,KW1
	XCOPY	FCFMTBUF,NWTOTBYT,KW2,WW2,KW0
	WRITE	.DIR,DSFMTFLE,FCFMTBUF,WDEC2 
	MOVE	FCFMTBUF,=D'0'
	XCOPY	FCFMTBUF,KW0,NWTOTBYT,FCFORMAT,SPBINW1 
	MOVE	WDEC2,WW2 
	WRITE	.DIR,DSFMTFLE,FCFMTBUF,WDEC2 
	XSTAT	DSFMTFLE,NWXSTAT 
	ADD	WW2,KW1
	B	AA500
AA700 
*      WRITE FIRST FREE OVERFLOW-RECORDNUMBER 
*      INTO THE FIRST FORMAT-RECORD 
       XCOPY   FCFMTBUF,NWTOTBYT,KW2,WW2,KW0
	DISCARD	.DIR,DSFMTFLE,KD1
	WRITE	.DIR,DSFMTFLE,FCFMTBUF,KD1 
	XSTAT	DSFMTFLE,NWXSTAT 
	B	AA920
AA900 
	RSTAT	DSFMTFLE,NWXSTAT	READ STATUS 
	EDWRT	SPDSSCRN,FMTI
	EDWRT	SPDSSCRN,FMTC	OPEN UNSUCCESSFULL 
	B	AA999
AA910 
	EDWRT	SPDSSCRN,FMTI
	EDWRT	SPDSSCRN,FMTG	I/O ERROR
	B	AA999
AA920 
	EDWRT	SPDSSCRN,FMTI
	EDWRT	SPDSSCRN,FMTH	SUCCESSFULL END
	B	AA999
AA930 
	EDWRT	SPDSSCRN,FMTI
	EDWRT	SPDSSCRN,FMTE	OVERFLOW 
	B	AA999
AA940 
	EDWRT	SPDSSCRN,FMTI
	EDWRT	SPDSSCRN,FMTD	AMOUNT LANG.NRS > 6
AA999 
	PERF	ZLCLSF
       EXIT 
       EJECT
BALGG  PROC 
************************************************************************
*      FUNCTIONAL DESCRIPTION :                                        *
*                       LOOKING FOR A FREE LANGUAGE-NUMBER             *
*                       LANGUAGE-NR MUST BE 1 , 2 OR 3                 *
*                      THE PROCEDURE "BALGG" READS THE FIRST FORMAT-   *
*                      RECORD OF THE CONCERNED LANGUAGE,
*                      THE PROCEDURE "MASK" GIVES A CONDITION-CODE EQUAL
*                      1 WHEN THE FORMAT-RECORD CONTAINS NO DATA       *
*                       THE MAXIMUM AMOUNT OF TRY-OUTS WILL BE 6       *
************************************************************************
BA000 
       MOVE    WWCOUNT,KW0              INITIATE AMOUNT OF TRIES
	MOVE	WW1,KDMAXLGG
BA100 
	EDWRT	SPDSSCRN,FMTI
       EDWRT   SPDSSCRN,FMTB
	DSC0	SPDSDYKB,02 
	MOVE  KWCONT,KW1 
       NKI     SPDSDYKB,VCVOLNR1,KTB,KWCONT,KWSPCONT
	CBNE	KWCONT,KW1,BA200
       MOVE    NDTRMLGG,VCVOLNR1
	MOVE	WWINDEX2,NDTRMLGG 
       CBE     WWINDEX2,KW0,BA200 
       CBNL    WWINDEX2,WW1,BA200 
       MUL     WWINDEX2,KWNRFMT         COUNT RELATIVE-RECORD-NUMBER
       ADD     WWINDEX2,KW1             COUNT RELATIVE-RECORD-NUMBER
	MOVE	KWCONT,KWFMTLNG 
	MOVE	WDEC1,WW1 
	READ	.DIR,DSFMTFLE,FCFMTBUF,KWCONT,WDEC1 
	XSTAT	DSFMTFLE,WW1 
	MOVE	WWINDEX1,=X'8800'	NO DATA 
	CALL	MASK,WW1,WWINDEX1 
	BNOK	BA900 
BA200 
	COMMIT	NWXSTAT 
       ADD     WWCOUNT,KW1
       CBNG    WWCOUNT,=W'6',BA100
*     TO PREVENT AN ENDLESS LOOP
	B	AA940
BA900 
	COMMIT	NWXSTAT 
	SUB	WWINDEX2,KW1 
BA999 
       RET
       PEND 
	EJECT
 INCLUDE ENGDEF,LIST FORMAT DEFINITIONS 
************************************************************************
* 
* 
FMTA   FRMT 
	FSL
       FTEXT   '  VOLUME-NAME  ?      : DSC'
       FMEND
FMTB   FRMT 
	FSL
       FTEXT  'LANGUAGE-NUMBER  ? (1 OR 2 OR 3 ):'
	FMEND
FMTC   FRMT 
	FSL
	FTEXT	'OPEN FORMAT-FILE NOT SUCCESSFULL' 
       FMEND
FMTD   FRMT 
	FSL
	FTEXT	'MORE THAN 6 LANGUAGE-NUMBERS TRIED' 
       FNL
	FTEXT	'PERHAPS NO FREE LANGUAGE-NUMBER'
       FMEND
FMTE   FRMT 
	FSL
       FTEXT    'OVERFLOW OF OVERFLOW-AREA' 
       FNL
       FTEXT   '** JOB ABENDED **'
       FMEND
FMTF   FRMT 
       FNL
       FTEXT   'PRESS CONTINUE' 
       FMEND
FMTG    FRMT
        FNL 
	FTEXT	'I/O ERROR WHILE READING OR '
	FSL
	FTEXT	'WRITING FORMAT-FILE'
        FMEND 
FMTH    FRMT
        FNL 
	FTEXT	'PGM "FORMAT" SUCCESSFULLY EXECUTED' 
        FMEND 
FMTI	FRMT		CLEARS SCREEN
	FCOPY	=X'2031' 
	FMEND
       END

Full view