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

⟦a3ec8cefd⟧

    Length: 14252 (0x37ac)
    Notes: pts_type(SC)
    Names: »DENT02.SC«

Derivation

└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
    └─⟦this⟧ »S:DE/DENT02.SC« 
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
    └─⟦this⟧ »S:DE/DENT02.SC« 

PTS(SC)

	IDENT	DENT02	REL 10.0 80-04-11 
			UPD 80-04-23/DALI
			80-04-08/DALI
 DDUM DEDDIV
 PDIV 
 ENTRY DENDUP 
 ENTRY DEEDIT 
 ENTRY DELAST 
 EXT DERECS 
 EXT DEACC
 EXT DECLRN 
 EXT DECLRD 
 EXT DERR 
 EXT TESTB TEST FOR A BIT IN A BIN
 EXT GETDUP LOOK FOR DUPLICATION- 
			STRING FOR CURRENT FIELD 
 EXT CMPIND 
 EXT DEDISC DISC HANDLING ROUTINE 
 EXT ATTDB ASSEMBLY SUBROUTINE ATTDB -
			ATTACH DESCRIPTORBLOCK 
 EXT ATTWB ASSEMBLY SUBROUTINE ATTWB -
			ATTACH WORKBLOCK 
 EXT EMPTYT 
 EXT TYPET ASSEMBLY SUBROUTINE TYPET -
			RETURNS ITEM-TYPE. 
			1=BIN,2=BCD,3=STRG 
 EXT DEPOOL POOL HANDLING ROUTINE 
 EXT MASK 
 EXT DELOCK 
 EXT DEPRUT 
 INCLUDE DELITT 
 EJECT
**********************************
* THIS ROUTINE HANDLE THE KEY FOR 
* DUPLICATION AND EXECUTE THE 
* AUTOMATIC DUPLICATION WHEN
* THE KEEP KEY HAS BEEN PRESSED 
**********************************
DENDUP PROC 
 CLEAR BOOL5
 CALL GETDUP,BPOOL(W1),BIN11,BIN12,BIN13
 BOK KDUP05 
KDUP03
 CBE DEBINW2,W3,KDUP02 JUMP IF AUTODUP
 CBNE DEBINW2,W11,KDUP04 JUMP IF KEEP 
KDUP02
 B KDUP35 
KDUP04
 DUPL DEINPUT 
 BNZ KDUP40 
 SET BOOL5
 B KDUP30 
KDUP05
 MOVE BIN9,W5 
 MATCH VALSTR,BIN9,W8,BPOOL(BIN11),BIN12,W1 
			LOOK IF DUPL FROM VALUESET 
 BNOK KDUP40 JUMP IF NOT
 CBE BIN9,W5,KDUP25 JUMP IF DATE
 SUB BIN9,W8 ADJUST FOR THE OTHER 
 BL KDUP40
 ADD BIN12,W1 GET ITEMNUMBER
 MOVE BIN8,W0 
 XCOPY BIN8,W1,W1,BPOOL(BIN11),BIN12
 ADD BIN12,W1 
 MOVE BCD3A,BIN8
 CBNE BIN9,W4,KDUP25 JUMP IF NOT VALUESET 
 MOVE BIN8,W18 LOOK IF ELEMENTNUMBER
 MATCH VALSTR,BIN8,W1,BPOOL(BIN11),BIN12,W1 
 BNOK KDUP10
 ADD BIN12,W1 
 XCOPY ELMNO,W1,W1,BPOOL(BIN11),BIN12 
 B KDUP20 
KDUP10 PERF DELAST,W5,DEKTAB7 
 IB DEBINW2,KDUP60,KDUP60,KDUP60,KDUP10 
 SUB DEBINW1,W1 
 BZ KDUP10
 COPY DEINPUT,DEBINW1,W1,HEX00,W0 DELETE ENTER-KEY
 MOVE BCD13A,DEINPUT
 MOVE ELMNO,BCD13A
KDUP20
 CBNE ELMNO,W0,KDUP15 
 CBE VSEIND,W0,KDUP13 
 MOVE ELMNO,VSEIND
 B KDUP15 
KDUP13			VALUESETINDEX =0 
 MOVE DEBINW4,W9 NOT FOUND
 B KDUP50 
KDUP15
 MOVE TABLE,BCD3A 
 MOVE STR1A,=C'T' 
 DLETE TABLE,W0,W2
 INSRT TABLE,W2,W1,HEX00,W0 
 INSRT TABLE,W0,W1,STR1A,W0 
 PERF DEDISC,W24 GET VALUSET
 BNOK KDUP50
 MOVE VSEIND,ELMNO
	CALL	ATTWB,BPOOL(PINDTB),W8,W11
	CALL	ATTDB,BPOOL(PINDTB),W0,W11
 MOVE BIN10,W0
 XCOPY BIN10,W1,W1,RPOOL(PINDTB),W17
 SUB ELMNO,BIN10
 ADD ELMNO,W1 
KDUP25
 PERF DEEDIT,BIN9 
 PERF DEPOOL,W6,PINDTB,BIN10,STRG10A
 TSTCTL 0 LOOK IF ALPHA 
 BNZ KDUP30 YES 
 GETCTL 1,DEBINW4 GET MAXL
 SUB DEBINW4,DEBINW1 - LENGTH OF DEINPUT
 BNN KDUP30 MAXL NOT LESS 
 MUL DEBINW4,=W'-1' 
 DLETE DEINPUT,W0,DEBINW4 
 SUB DEBINW1,DEBINW4
KDUP30
 CALL EMPTYT,:FMTITEM LOOK IF EMPTY 
 BNZ KDUP32 YES!
 TSTCTL 0 LOOK IF ALPHA 
 BZ KDUP27 JUMP IF BCD
 GETCTL 1,DEBINW4 GET MAXL
 MOVE DEBINW3,W0
 MATCH DEINPUT,DEBINW3,DEBINW4,:FMTITEM,W0,DEBINW4
 BOK KDUP33 
 B KDUP28 
KDUP27
 MOVE BCDI21(W1),DEINPUT
 CBE BCDI21(W1),:FMTITEM,KDUP33 
KDUP28
 GETABX DEBINW3 
 ERASE 9,DEBINW3,DEBINW3
KDUP32
 UPDFLD 1,DEINPUT UPDATE FIELD WITH DISPLAYING
KDUP33
 MOVE DEBINW2,W3
 CLEAR BOOL5
 BNZ KDUP38 
KDUP35
 SET DOOL5
KDUP38
 CMP W1,W1 OK 
 RET
KDUP40
 MOVE DEBINW4,W0 INDICATE ILLEGAL EOI-KEY 
KDUP50
 MOVE DEBINW2,W0
KDUP60
 MOVE DEBINW1,W0
 CMP W1,W0
 RET
 PEND 
 EJECT
***************************************** 
* 
*THIS PROCEDURE EDIT ITEMS FOR VALIDATIONS
*INTO THE ITEM DEINPUT. 
*LEGAL FUNCTIONCODES AREX.
* <FC> = 0  ACCUMULATORS
*      = 1  SYSTEMVARIABELS 
*      = 2  USERVARIABELS 
*      = 3  FIELDS WITHIN CURRENT FORMAT
*      = 4  VALUESETS 
*      = 5 DATE 
*      = 6  VALUESETINDEX (ELEMENTNO) 
* 
***************************************** 
DEEDIT PROC FC
 MOVE BIN10,W1 LENGTHADJUSTER 
 MOVE DEINPUT,HEX00 
 MOVE BIN7,W0 
 IB FC,DED300,DED330,DED200,DED100,DED170,DED160
 CALL CMPIND,BIN8,ACK(W1) 
 BNOK DED500 OUT OF RANGE 
 MOVE DEINPUT,ACK(BIN8) 
 B DED390 
DED100
 CALL TESTB,BPOOL(PINDTB),W2
 BNZ DED150 JUMP IF BCD 
 XCOPY BIN7,W1,W1,BPOOL(PINDTB),W1
 COPY DEINPUT,W0,BIN7,FDVBCD(ELMNO),W0
 B DED390 
DED150
 MOVE DEINPUT,FDVBCD(ELMNO) 
 B DED400 
	EJECT
* 
*       VALUE SET INDEX (ELEMENTNO) 
* 
DED160
	MOVE	BCD3A,VSEIND	BINCONV=>BCD 
	MOVE	DEINPUT,BCD3A	BCDCONV=>STRG 
 B DED470 
DED170
 MOVE DEINPUT,DATE
 DLETE DEINPUT,W0,W1
 B DED390 
DED200
 TBF DOOLA,DED210 JUMP IF NOT BALANCE 
 MOVE DEINPUT,:FMTITEM
 B DED400 
DED210
* LOOK FOR TYPE OF ITEM BY USING TYPET
 CALL TYPET,BIN7,X.PSEU1,X.PSEU2,X.WB10,BIN8
 CBE BIN7,W2,DED250 JUMP IF BCD 
 MOVE BIN7,W0 
 EDSUB DEINPUT,BIN7,FORMF 
 B DED350 
DED250
 CON X.MOVE,DEINPUT,X.PSEU1,X.PSEU2,X.WB10,BIN8 
 B DED400 
DED300
 CALL CMPIND,BIN8,SYSV(W1)
 BNOK DED500
 EDSUB DEINPUT,BIN7,FORMS 
* 
 B DED350 
DED330
 CALL CMPIND,BIN8,USEV(W1)
 BNOK DED500 OUT OF RANGE 
 EDSUB DEINPUT,BIN7,FORMU 
DED350
 MOVE DEBINW1,BIN7
 B DED470 
DED390
 MOVE BIN10,W0
DED400
 MOVE DEBINW1,W0
 MOVE BIN7,=W'80' 
 MATCH DEINPUT,DEBINW1,BIN7,HEX00,W0,W1 
DED450
 SUB DEBINW1,BIN10
 BNN DED470 JUMP IF NOT MINUS 
 MOVE DEBINW1,W0
DED470
 CMP W1,W1 EDITING OKEY 
 RET
DED500
 CMP W1,W2 EDITING FAILED 
 RET
 PEND 
 EJECT
************************************* 
* DISPLAY AND READ OF FUNCTION-KEYS * 
* ENTERED ON THE LAST LINE.         * 
************************************* 
DELAST	PROC	FC,KEYTAB 
	PKTAB	KEYTAB 
 MOVE BIN15,FC
LASTD0 MOVE DEBINW4,W24 
 ERASE 0,DEBINW4,DEBINW4
 EDWRT DEDSSCRN,FLAST(FC) 
LAST05
 MOVE DEBINW1,W0
LASTD1
 IB FC JUMP ON FUNCTIONKEY	C
		LPROG	FPROG = 1	C 
		LDEL	FDEL1 = 2	C
		LDEL	FDEL2 = 3	C
		LINS	FLIN1 = 4	C
		LVAL	FLVAL = 5	C
		LINS	FLINS = 6	C
		LASRET2	FRECOV = 7	C
		LASRET3	FCORR = 8	C 
		LASVER	FVER = 9	C 
		LASRET2	FREC02 =10	C
		LINS	FFORCE = 11	C
		LINS	FCONVNO =12	C
		LINS	FCONV1 =13	C 
		LASRET2	FASD =14	C
		LRFBWD FRFBWD =15 
 B LINS 
LPROG 
 MOVE DEBINW1,SYMREC(W12) GET MAX SYMB.LENGTH 
 CBG DEBINW1,W0,LPROG2
 MOVE DEBINW2,W2 SIMULATE CANCEL
 ERASE 0,DEBINW4,DEBINW4
 B LASVER 
LPROG2
	KI	DEDSDYKB,DEINPUT,KEYTAB,DEBINW1,DEBINW2 
 B LAST50 
LVAL
 MOVE DEBINW1,W2
 B LPROG2 
LRFBWD
 MOVE DEBINW1,W7
 B LPROG2 
LDEL
LINS
 MOVE DEBINW1,W1
LASTD2
	KI	.NE,DEDSDYKB,DEINPUT,KEYTAB,DEBINW1,DEBINW2 
LAST50
	PERF	DELOCK,W1,DEBINW2 
	IB	DEBINW3,POWOFF,LASTER,LASTD0
	B	LASTD3 
* 
* NOK. NOTICE THAT INCORRECT LENGTH IS OKEY 
* 
LASTER
 XSTAT DEDSDYKB,DEBINW3 
 CALL MASK,DEBINW3,W8 
 BZ LASBEL
 MOVE DEBINW2,W6 SIMULATE EOI 
 B PROEN2 
LASTD3
 IB FC,LASRET,LASRET,LAST06,LASRET,LASRET		C
		LAST06,DUMMY,DUMMY,DUMMY,DUMMY		C 
		LASRET,LASRET,LASRET,DUMMY,LASRET 
LAST06
 IB DEBINW2,LASBEL,LASBEL,LASBEL
 SUB DEBINW2,W3 ADJUST EOI0KEY
 B LASRET 
LASBEL
 EDWRT DEDSSCRN,BELL ACOUSTIC ALARM 
 B LAST05 
LASKOP
 MOVE DEBINW3,W1
 PRINT DEDSPRT,DEBINW3,W0 
 B LASTD0 
DUMMY 
LASVER
 EDWRT DEDSSCRN,BELL ACOUSTIC ALARM 
 B LASRET3
* 
* POWER OFF 
* 
POWOFF
 DISPLAY 0,W1,W0
 B LASTD0 
* 
PROEN2
 IB FC,LASTUT,LASTD0,LASTD0,LASTD0,LASTUT 
LASTUT
 ADD DEBINW1,W1 
LASRET
 ERASE 0,DEBINW4,DEBINW4
LASRET2 
 RET
LASRET3 
 THOME
 RET
 PEND 
	EJECT
* 
*        FORMATS
* 
FLAST FTABLE FPROG,FDEL1,FDEL2,FLIN1,FLVAL,FLINS,FRECOV		C
		FCORR,FVER,FRECO2,FFORCE,FCONV0,FCONV1,FASD		C
		FRFBWD
FPROG FRMT
 FSL
 FLOW 
 FCOPY =C'SYMBOLIC:'
 FMEND
FDEL1 FRMT
 FSL
 FLOW 
 FTEXT 'CONFIRM RECORD DELETE:' 
 FMEND
FDEL2 FRMT
 FLINK FDEL3
 FTEXT 'DELETED'
 FMEND
FLINS FRMT
 FLINK FDEL3
 FTEXT 'INSERTED' 
 FMEND
FDEL3 FRMT
 FSL
 FLOW 
 FCOPY =C'RECORD' 
 FILLR ' ',1
 FMEL 'TTTT9',BCD13A
 FILLR ' ',1
 FMEND
FLVAL FRMT
 FSL
 FLOW 
 FTEXT 'DUPL FROM ' 
 FCOPY =C'VALUESET' 
 FTEXT ' T:'
 FMEL 'XX',BCD3A
 FILLR ' ',1
 FCOPY =C'ELEMENT'
 FCOPY =C'NUMBER' 
 FILLR ':',1
 FMEND
FLIN1 FRMT
 FSL
 FLOW 
 FTEXT 'CONFIRM RECORD INSERT'
 FMEND
FRECOV FRMT 
 FSL
 FLOW 
 FTEXT 'RECOVERY OF ' 
 FCOPY =C'JOB'
 FILLR ':',1
 FCOPY JOBNAME
 FILLR ' ',1
 FCOPY =C'BATCH'
 FILLR ':',1
 FCOPY BATCH
 FTEXT ' RUNNING.'
 FMEND
FCORR FRMT
 FSL
 FLOW 
 FTEXT 'RECORD CORRECTION'
 FMEND
FVER FRMT 
 FSL
 FLOW 
 FTEXT 'RECORD MUST BE VERIFIED'
 FMEND
FRECO2 FRMT 
 FSL
 FTEXT 'RECOVERY RUNNING.'
 FMEND
FFORCE FRMT 
 FSL
 FCOPY =C'CONFIRM ' 
 FTEXT 'FREEZING OF BATCH ' 
 FCOPY BATCH
 FMEND
FCONVA FRMT 
 FCOPY =C'CONFIRM ' 
 FTEXT 'CONVERSION OF ALL BATCHES ' 
 FMEND
FCONV0 FRMT 
 FSL
 FLINK FCONVA 
 FTEXT 'ON UNIT:U'
 FMEL 'X',USERFILE
 FMEND
FONV2 
FCONV1 FRMT 
 FSL
 FLINK FCONVA 
 FTEXT 'WITHIN JOB:'
 FCOPY JOBNAME
 FMEND
FASD FRMT 
 FSL
 FTEXT 'AUTOMATIC SKIP/DUP *O'
 FBF ASDFLAG,FASD2
 FTEXT 'N*' 
 FB FASDEN
FASD2 FTEXT 'FF*' 
FASDEN FMEND
FRFBWD FRMT 
 FSL
 FTEXT 'ENTER WANTED RECORDNUMBER:' 
 FMEND
 EJECT
FORMF FRMT
 FCTL X'C0',X.PSEU1,X.PSEU2,X.WB10,BIN8 
 FMEND
FORMS FRMT
 FCOPY SYSV(BIN8) 
 FMEND
FORMU FRMT
 FCOPY USEV(BIN8) 
 FMEND
BELL FRMT 
 FSL
 FILLR X'07',1
 FMEND
* 
 END

Full view