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

⟦724be96e6⟧

    Length: 17340 (0x43bc)
    Notes: pts_type(SC)
    Names: »DSPBSC.SC«

Derivation

└─⟦7a1dcd5a9⟧ Bits:30009673 Philips computer tape "600134"
    └─⟦this⟧ »PT3272/DSPBSC.SC« 

PTS(SC)

	IDENT DSPBSC	REL 11.0 83-11-16DK 870150541100

			DK2, DEV. STATUS AT CONNECT
			#1 HARDCOPY PROBLEM
			82-06-25 
			DK1, POWER OFF ON TERM.. 
************************************************************* 
*                                                           * 
*            MODULE   DSPBSC                                * 
*                     MODULE HANDLING THE START UP OF THE   * 
*                     VDUKB TASK, CONTROLLING SNA MODES     * 
*                     AND MULTIPLE WAIT FOR KB AND DC.      * 
*                      (EMULATION 3270 BSC)            *
*                                                           * 
************************************************************* 
	EJECT
****************************************************************
*                                                              *
*        LIST OF ROUTINES                                      *
*                                                              *
*     VDUKB       MAIN ROUTINE                                 *
*     IOACT       I/O ACTIVATION
*     IOCPL       I/O COMPLETION
*     MATCH       MATCH ADDRESS AND TASKID
*     INIT        INITIALIZE THE TASK                          *
*     COMINI      COMMON INIT ROUTINE 
*     ECBINI      INIT OF ECB:S 
*     TSTDEV      TEST KEYBOARD AND DISPLAY                    *
*                                                              *
****************************************************************
	EJECT
**********************************************************
*                                                        *
*        ENTRY POINTS                                    *
*                                                        *
**********************************************************

	ENTRY	VDUKB	START LABEL FROM DATSNA(CREDIT)
	ENTRY	COMINI	COMMON INIT ROUTINE 
	ENTRY ECBINI	INIT OF ECB:S 
	ENTRY	MATCH	MATCH TASID AND PHYS. ADDRESS

**********************************************************
*                                                        *
*        EXTERNAL REFERENCES                             *
*                                                        *
**********************************************************

	EXTRN	I:EVA0	CREDIT EVALUATION ROUTINE 
	EXTRN	OPEN	OPEN DC (DCBSC) 
	EXTRN	CONCT	CONNECT DC (DCBSC) 
	EXTRN	SETTYM	SET REQUEST TIMEOUT (DCBSC) 
	EXTRN	ERASE	ERASE SCREEN AND VDU BUFFER (VDU)
	EXTRN	TSTMES	TEST IF ANY MESSAGE (DCSNA) 
	EXTRN	READKB	READ KEYBOARD WITH NO WAIT (KEYB) 
	EXTRN	KBINP	MAIN ROUTINE IN KEYB-MODULE (KEYB) 
	EXTRN	DCINP	MAIN ROUTINE IN DCSNA-MODULE (DCSNA) 
	EXTRN	LMP6OF	OFFLINE LAMP OFF (KEYB) 
	EXTRN	LMP1ON	DC LINE 1 (KEYB)
	EXTRN	LMP2ON	DC LINE 2 (KEYB)
	EXTRN	SOUND	SOUND ALARM AT DISPLAY (VDU) 
	EXTRN	LMP5ON	ERROR LAMP ON (KEYB)
	EXTRN	LMP5OF	ERROR LAMP OFF (KEYB) 
	EXTRN	RESKB	RESET KEYBOARD BUFFER (KEYB) 
	EXTRN	STOINF	SAVE SCREEN INFORMATION (VDU) 
	EXTRN	ICVRED	INTERTASK READ (KEYB) 
	EXTRN	ICINP	INTERTASK INPUT (KEYB) 
	EXTRN	CHKSTA	CHECK DC STATUS (DCBSC) 
	EXTRN	READK2	READ NUMERIC KEYB'RD, NO-WAIT (KEYB)
	EXTRN	KBINP2	ROUTINE FOR 2ND. KEYBOARD 
	EJECT
************************************************************* 
*                                                           * 
*        CONDITIONAL ASSEMBLY PARAMETERS                    * 
*                                                           * 
************************************************************* 

X:B	EQU	15	NUMBER OF TASKS (1- )
NBRTSK	EQU	16 
X:C	EQU	0	OFFLINE HANDLING IF :=1 
OFLIN	EQU	0 
X:D	EQU	1	NUMBER OF LINES (1-2) 
NBRLIN	EQU	2
X:M	EQU	0	COPY COMMNAND INCLUDED IF:=1
COPCMD	EQU	1
X:O	EQU	0	TEST INCLUDED IF:=1 
TEST	EQU	0
	EJECT
*********************************************************** 
*                                                         * 
*	DECLARATIONS OF DATA AND EQUATES
*                                                         * 
*********************************************************** 

* 
*	ECB INDEX TABLE 
* 
ECBIND	EQU	*
	DATA	9	NUMBER OF ENTRIES 
	DATA	X'2000'	ECB KB
	DATA	X'3002'	ECB PRINTER 
	DATA	X'4004'	ECB SIGNAL DISPLAY
	DATA	X'4206'	ECB VDU 
	DATA	X'5008'	ECB INTERTASK READ
	DATA	X'510A'	ECB INTERTASK WRITE 
	DATA	X'610C'	ECB DC LINE1
	DATA	X'620E'	ECB DC LINE2	DK 
	DATA	X'2110'	ECB FOR NUMERIC KB	DK 
* 
*         SCREEN SIZE ON DISPLAY
* 
LBVDU	EQU	1920
* 
*	MODES 
* 
HCPMOD	EQU	/4000	HARDCOPY OUTSTANDING 
* 
*	TASK IDENTIFICATION CODE
* 
VDUCOD	EQU	'VV'	KB/VDU
	EJECT
* 
*	RELATIVE ADDRESSES IN 
*	TERMINAL WORKBLOCK TB1
* 
OFFFLG	EQU	1962	OFFLINE FLAG
PRTID	EQU	OFFFLG+2	TASKID FOR HARDCOPY
MAIN	EQU	PRTID+6	WHICH DC LINE
ECBBLK	EQU	MAIN+6	ECBBLK FOR MULTIPLE WAIT
REGI	EQU	ECBBLK+16	SAVE AREA
BSCMOD	EQU	REGI+32	BSC MODE 
ECBTAB	EQU	BSCMOD+2	ECB TABLE 
* 
*	RELATIVE ADDRESSES IN 
*	COMMON WORKBLOCK CB1
* 
MF1CU	EQU	0	SYMBOLIC CLUSTER ADDDRESS 
	IFF	TEST=1 
TSKTAB	EQU	MF1CU+26	TASK TABLE
	XIF
	IFT	TEST=1 
TSKTAB	EQU	MF1CU+219	TASK TABLE 
	XIF
	EJECT
********************************************************* 
*                                                       * 
*        VDUKB       MAIN ROUTINE                       * 
*                                                       * 
********************************************************* 
*		REGISTERS
* 
*	A11= RESERVED 
*	A13= RESERVED 
* 
************************************************
VDUKB	EQU	* 
	CF	A14,INIT	INITIALIZE THE TASK
VDU200	EQU	*
	CF	A14,IOACT	PREPARE ECB-BLK 
	LDKL	A7,ECBBLK 
	ADR	A7,A11 
	LKM
	DATA	7	MULTIPLE WAIT 
	CF	A14,IOCPL	TAKE CARE OF REQUEST
	RB	VDU200	HERE WE GO AGAIN 
	EJECT
* 
* 
*	POSSIBLE LAYOUTS OF ECB-BLK 
* 
* 
* 
* 
*   MODE     /0000     /4000
* 
* 
*   BLK        2         3
*              KB        KB 
*              DC        DC 
*                        IC 
* 
* 
* 
	EJECT
************************************************************
*                                                          *
*        IOACT       I/O ACTIVATION 
*                                                          *
************************************************************
*              REGISTERS
* 
*	A4= NUMBER OF ENTRIES IN ECB BLOCK
*	A11= CREDIT WORK AREA 
*	A13= RESERVED 
* 
**********************************************************
IOACT	EQU	* 
	LDK	A4,1	COUNT NUMBER OF I-O'S 
			.	#1 
	LD	A2,ECBBLK+4,A11	REQ. ALREADY OUTST.?
	RF(NZ)	IOAC10	YES
	CF	A14,TSTMES	TEST MESSAGE 
	ST	A8,ECBBLK+4,A11 
IOAC10	EQU	*
	IFT	COPCMD=1 
	LD	A1,BSCMOD,A11	.	#1
	ANKL	A1,HCPMOD	HARDCOPY OUTSTANDING? 
	RF(Z)	IOAC30	NO
	XIF
	ADK	A4,1	
	LD	A2,ECBBLK+8,A11 
	RF(NZ)	IOAC30	INTERTASK ALREDY OUTSTANDING 
	CF	A14,ICVRED	READ INTERATSK 
	ST	A8,ECBBLK+8,A11 
IOAC30	EQU	*
	ADK	A4,1	
	LD	A2,ECBBLK+2,A11	KB OUTSTANDING? 
	RF(NZ)	IOAC35	YES
	CF	A14,READKB	READ KEYBOARD
	ST	A8,ECBBLK+2,A11 
IOAC35	EQU	*	 
*  SECOND KEYBOARD HANDLING 81-10-18 DK  *
	ADK	A4,1	
	LD	A2,ECBBLK+6,A11	KB2 OUTSTANDING	
	RF(NZ)	IOAC40	YES	 
	CF	A14,READK2	READ SECOND KEYBOARD	
	ST	A8,ECBBLK+6,A11	
**        END DK    **
IOAC40	EQU	*
	ST	A4,ECBBLK,A11	SAVE NUMBER OF WAITS
	RTN	A14
	EJECT
************************************************************
*                                                          *
*        IOCPL       I/O COMPLETION 
*                                                          *
************************************************************
*		REGISTERS
* 
*	A11= CREDIT WORK AREA 
*	A13= RESERVED 
* 
************************************************************
IOCPL	EQU	* 
	CW	A8,ECBBLK+2,A11	KB INPUT
	RF(NE)	IOCP05	NO 
	CM	ECBBLK+2,A11
	CF	A14,KBINP	TAKE CARE OF KB 
	RF	IOCP90
**  SECOND KEYBOARD HANDLING P & T,81-10-19 DK  **
IOCP05	EQU	*	 
	CW	A8,ECBBLK+6,A11	KB2 INPUT ? 
	RF(NE)	IOCP10	NO	
	CM	ECBBLK+6,A11	 
	CF	A14,KBINP2	TAKE CARE OF KB2	
	RF	IOCP90		
**  END DK P & T    **
IOCP10	EQU	*
	CW	A8,ECBBLK+4,A11	DC? 
	RF(NE)	IOCP20	NO 
	CM	ECBBLK+4,A11
	CF	A14,DCINP	TAKE CARE OF DC 
	RF	IOCP90
IOCP20	EQU	*
	CM	ECBBLK+8,A11
	CF	A14,ICINP	TAKE CARE OF INTERTASK
IOCP90	EQU	*
	RTN	A14
	EJECT
*************************************************************** 
* 
*	MATCH	MATCH TASKID AND PHYS. ADDRESS
* 
*************************************************************** 
*         REGISTERS 
* 
* 
****************************************************************
MATCH	EQU	* 
	IFT	COPCMD=1 
	LDK	A1,NBRTSK	GET NUMBER OF ENTRIES
	LD	A3,6,A13
	ADKL	A3,TSKTAB	START OF TABLE
MATC10	EQU	*
	CC	A2,+2,A3	SAME ADDRESS?
	RF(E)	MATC30	YES 
	ADK	A3,4	NEXT
	SUK	A1,1	ALL CHECKED?
	RB(NZ)	MATC10	NO 
MATC20	EQU	*
	LDK	A1,1	INDICATE NOT FOUND
	RF	MATC90
MATC30	EQU	*
	LCR	A1,A3
	CCK	A1,VDUCOD	COPY IN RIGHT DIRECTION? 
	RB(NE)	MATC20	NO 
	LDK	A1,0 
	LDR*	A2,A3 
MATC90	EQU	*
	XIF
	RTN	A14
	EJECT
************************************************************
*                                                          *
*        INIT       INITIALIZE THE TASK                    *
*                                                          *
************************************************************
*		REGISTERS
* 
*	A11= CREDIT WORK AREA 
*	A13= RESERVED 
* 
************************************************* 
INIT	EQU	*
	CF	A14,COMINI	COMMON INIT
	CF	A14,ECBINI	INIT OF ECB:S
	CF	A14,OPEN	OPEN DC
	LDKL	A8,20 
	LKM
	DATA	6 
	CF	A14,TSTDEV	WAIT FOR TERM OPERABLE	DK1 
	LDK	A4,0	DEV STATUS= OPERABLE	DK2
	CF	A14,CONCT	CONNECT DC
	CF	A14,SETTYM	SET REQUEST TIMEOUT
	LDK	A2,NBRTSK	NUMBER OF TASK ENTRIES 
	LD	A9,REGI,A11	RESTORE TASKTAB ADDRESS 
INIT10	EQU	*
	SUK	A2,1 
	RF(N)	INIT20 
	ADKL	A9,4
	LCR	A1,A9
	ANK	A1,/FF	ANY TASK AT ALL?
	RB(Z)	INIT10	NO
	CCK	A1,'VV'	DISPLAY TASK?
	RB(E)	INIT10	YES 
	SLL	A1,8 
	LC	A1,+1,A9
	ST	A1,PRTID,A11
INIT20	EQU	*
	IFT	OFLIN=1
	LD	A1,2,A14
	LD	A2,4,A14
	ST	A12,4,A14 
	ST	A13,2,A14 
	STR	A2,A14 
	ST	A1,-2,A14 
	SUKL	A14,4	UPDATE STACK POINTER
	CM	OFFFLG,A11
	CF	A14,LMP6OF	TURN OFF OFFLINE LAMP
	XIF
	LDK	A4,0 
	LDKL	A5,LBVDU+1	UNFORMATTED SCREEN 
	LDK	A6,0 
	CF	A14,STOINF	SAVE SCREEN INFORMATION
	CF	A14,ERASE	ERASE THE WHOLE SCREEN
	IFT	NBRLIN=2 
	LD	A1,MAIN,A11	DC LINE 1?
	RF(Z)	INIT30	YES 
	CF	A14,LMP2ON	INDICATE DC LINE 2 
	RF	INIT40
INIT30	EQU	*
	XIF
	CF	A14,LMP1ON	INDICATE DC LINE 1 
INIT40	EQU	*
	CF	A14,CHKSTA	CHECK IF LINE OK 
	RTN	A14
	EJECT
**********************************************************
*                                                        *
*       COMINI      COMMON INIT ROUTINE                  *
*                                                        *
**********************************************************
*               REGISTERS 
* 
*	A11= CREDIT WORK AREA 
*	A13= RESERVED 
* 
**********************************************************
COMINI	EQU	*
	CF	A14,I:EVA0
	LDR	A11,A9	LOAD TASK AREA BASE 
	LDR*	A2,A11	GET TASKID 
	LD	A3,6,A13	COMMON BLOCK BASE
	LDR	A1,A2
	ANK	A1,X'FF' 
	SUK	A1,X'30'	GET OFFSET IN TASK TABLE
	SLL	A1,2	TWO WORDS ENTRIES 
	LDKL	A4,TSKTAB 
	ADR	A4,A3
	ADR	A1,A4	POINT TO YOUR LABLE
	ST	A1,REGI,A11	SAVE TASKTAB ADDRESS
	SC	A2,+1,A1	SAVE TASKID
	SRL	A2,8 
	SCR	A2,A1
	RTN	A14
	EJECT
* 
* 
*	ECB TABLE LAYOUT
* 
* 
* 
*       DISPLACEMENT       I/O         FILECODE 
* 
*            0             KB             /20 
*            2             PRINTER        /30 
*            4             SIGNAL/DISP.   /40 
*            6             VDU            /42 
*            8             INTERTASK R.   /50 
*           10             INTERTASK W.   /51 
*           12             DC LINE 1      /61 
*           14             DC LINE 2      /62 
* 
* 
* 
* 
	EJECT
************************************************************* 
*                                                           * 
*        ECBINI       INIT OF ECB:S                         * 
*                                                           * 
************************************************************* 
*         REGISTERS 
* 
*	A4 = NUMBER OF ENTRIES
*	A5 = NUMBER OF FC ALLOWED 
*	A6 = DAT POINTER
*	A7 = ECB FC POINTER 
*	A8 = DATA SET POINTER 
*	A11= CREDIT WORK AREA 
*	A13= RESERVED 
* 
************************************************************
ECBINI	EQU	*
	LD	A2,-8,A13	GET T:D ADDRESS 
	LD	A4,+4,A2	GET NUMBER OF ENTRIES
	LD	A8,+6,A2
	ADR	A8,A13 
	LDR	A6,A8	DAT POINTER
	SUKL	A8,20	DATA SET POINTER
ECBI10	EQU	*
	LD	A5,ECBIND	NUMBER OF FC:S
	LDKL	A7,ECBIND+2	FIRST FILE CODE 
	LC	A2,+1,A6	DATA SET FC
ECBI20	EQU	*
	CCR	A2,A7	FC IN DAT = FC CONFIGURED? 
	RF(E)	ECBI30	YES 
	ADK	A7,2	NEXT
	SUK	A5,1	NOT FOUND?
	RB(NZ)	ECBI20	NOT YET
	LDKL	A1,*	DIAGNOSTIC 
	ST	A1,REGI,A11 
	LKM
	DATA	3	WRONG GENERATION
ECBI30	EQU	*
	SC	A2,+1,A8	SAVE FC IN DATA SET
	LD	A2,+2,A6	GET FIXED LENGTH IF ANY
	ST	A2,+4,A8	SAVE IN DATA SET 
	LD	A2,+18,A8	GET FIXED BUFFER IF ANY 
	ST	A2,+2,A8	SAVE IN DATA SET 
	LC	A2,+1,A7	GET INDEX TO ECB TABLE 
	ANK	A2,/FF 
	ADR	A2,A11 
	ST	A8,ECBTAB,A2	SAVE ECB ADDRESS 
	ADK	A6,4 
	SUKL	A8,20 
	SUK	A4,1	ALL DONE? 
	RB(NZ)	ECBI10	NO 
	RTN	A14
	EJECT
************************************************************* 
*                                                           * 
*        TSTDEV       TEST KEYBOARD AND DISPLAY             * 
*                                                           * 
************************************************************* 
*		REGISTERS
* 
*	A11= CREDIT WORK AREA 
*	A13= RESERVED 
* 
************************************************* 
TSTDEV	EQU	*
	CF	A14,SOUND	TURN ON SOUND ALARM AT VDU
	LDR	A1,A1	CHECK RETURN CODE	DK1
	RF(Z)	TSTD90	OK, GO ON..	DK1 
	LKM		
	DATA	0	SWITCH TASKS
	RB	TSTDEV	TRY AGAIN	DK1
TSTD90	EQU	*		DK1 
	RTN	A14

	END

Full view