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

⟦1003b7938⟧

    Length: 23338 (0x5b2a)
    Notes: pts_type(SC)
    Names: »QMISC.SC«

Derivation

└─⟦35fda6e03⟧ Bits:30009701 Philips computer tape "BARCLAY"
    └─⟦this⟧ »DEMO6800/QMISC.SC« 
└─⟦e276fd206⟧ Bits:30009696 Philips computer tape "600413"
    └─⟦this⟧ »DEMO6800/QMISC.SC« 
└─⟦f350e1b7a⟧ Bits:30009678 Philips computer tape "600219"
    └─⟦this⟧ »PTSDEMO/QMISC.SC« 

PTS(SC)

         IDENT    QMISC                 MISCELANEOUS SUBROUTINES
 DDUM DEMODDIV
 PDIV 
 ENTRY QAFNKY 
 ENTRY QBSTKY 
 ENTRY QCGUWB 
 ENTRY QDFUWB 
	ENTRY	QENTRS 
	ENTRY	QFLTRS 
	ENTRY	QGATYP 
	ENTRY	QHSPKY 
	EXPROC	XBFMT 
************************************************************************
* *
*   PROCEDURE:     QAFNKY*
*   PARAMETERS: *
*      XWINDEX (UPDATE):  INDEX IN THE KEYTABLE*
*      XWADAPT (INPUT):   ADAPTION VALUE FOR XWINDEX*
*      XWKTBLNG (INPUT):  LENGTH OF ONE HALF OF THE KEYTABLE*
*   FUNCTIONAL DESCRIPTION:*
*      QAFNKY CHECKS THE EOI-KEY ENTERED BY THE OPERATOR AFTER A*
*      KI-INSTRUCTION.*
*      UPON ENTRY XWINDEX CAN HAVE ONE OF THE FOLLOWING VALUES:*
*        V: VALUE OF XWINDEX         MEANS:*
*          -8 =< V =< -1           KEYLOCK TURNED ON 6236/71/72-KB*
*                V = 0             POWER FAILURE*
*           1 =< V =< XWKTBLNG     6234/31-KEYBOARD AND KEY 1 ON*
*                                  OR 6236/71/72-KEYBOARD*
*  XWKTBLNG+1 =< V =< 2*XWKTBLNG   6234/31-KEYBOARD AND KEY 2 ON*
*           OTHER VALUES           UNDEFINED KEY*
* *
*      THE ROUTINE QBSTKY CHECKS WHETHER OR NOT KEYLOCK ON A*
*      6236/71/72-KB HAS BEEN TURNED AND IF SO WILL SET SBKEY1*
*      AND SBKEY2 ACCORDINGLY AND SET XWINDEX TO XWADAPT.*
*      IF XWINDEX IS NOT IN THE RANGE  1....2*XWKTBLNG THEN*
*      XWINDEX IS SET TO  XWADAPT AND CONTROL IS RETURNED.*
*      ELSE IF A 6234-TYPE KEYBOARD IS USED THEN XWINDEX IS ADAPTED*
*      TO POINT INTO THE FIRST HALF OF THE KEYTABLE AND*
*      SBKEY1 AND SBKEY2 ARE SET TO THE RIGHT VALUES.*
*  *
*   VARIABLES USED:*
*      SB34KB:    6234/31-KEYBOARD ?*
*      SBKEY1:    IS KEY 1 ON ?*
*      SBKEY2:    IS KEY 2 ON ?*
*   WORKVARIABLE:*
*      WW1*
* *
************************************************************************
QAFNKY	PROC	XWINDEX,XWADAPT,XWKTBLNG			
	PBIN	XWINDEX,XWADAPT,XWKTBLNG
QA000					
**
* CHECK KEYLOCK TURNED ON 6236/71/72*
**
	PERF	QBSTKY,XWINDEX,XWADAPT			
**
* CHECK IF INDEX POINTS INTO THE KEYTABLE*
**
	CBL	XWINDEX,=W'1',QA900	INDEX NOT IN RANGE		
	MOVE	WW1,XWKTBLNG			
	MUL	WW1,=W'2'	FULL KEYTABLE LENGTH		
	CBG	XWINDEX,WW1,QA900	INDEX NOT IN RANGE		
**
* INDEX POINTS INTO THE KEYTABLE*
*    CHECK KEYBOARD TYPE*
**
	CBG	XWINDEX,XWKTBLNG,QA300	6231/34 KEYBOARD WITH KEY 2 ON		
	TBF	SB34KB,QA999	6236/71/72-KEYBOARD 
**
* 6231/34 KEYBOARD,*
*    CHECK KEYLOCK TURNED*
* 
QA300 
 SET SB34KB	SET KB TYPE AT TRMSTT 
 CBG XWINDEX,XWKTBLNG,QA500	KEY2 IS ON
* 
* KEY1 IS ON
* 
QA400 
 TBT SBKEY1,QA999	KEY1 WAS ALREADY ON 
 SET SBKEY1 
 CLEAR SBKEY2 
	B	QA999
* 
* KEY2 IS ON
* 
QA500 
 SUB XWINDEX,XWKTBLNG	ADJUST INDEX IN KEYTABLE
 TBT SBKEY2,QA999	KEY2 WAS ALREADY ON 
 SET SBKEY2 
	CLEAR	SBKEY1 
	B	QA999
* 
* IF A KEYLOCK HAS BEEN TURNED, 
*    ADAPT THE INDEX IN THE KEYTABLE
* 
QA900 
 MOVE XWINDEX,XWADAPT	ADAPT INDEX IN KEYTABLE 
QA999 
 RET
 PEND 
************************************************************************
* *
*   PROCEDURE:     QBSTKY*
*   PARAMETERS: *
*      XWINDEX (UPDATE):  INDEX RETURNED BY KI-INSTRUCTION.*
*      XWADAPT (INPUT):   ADAPT VALUE FOR XWINDEX.*
*   FUNCTIONAL DESCRIPTION:*
*      IF KEYLOCK HAS BEEN TURNED ON 6236/71/72-KEYBOARD THEN*
*      XWINDEX CONTAINS ONE OF THE FOLLOWING VALUES:*
*         -8:  KEY 1 TURNED ON      -4:  KEY 1 TURNED OFF*
*         -7:  KEY 2 TURNED ON      -3:  KEY 2 TURNED OFF*
*         -6:  KEY 3 TURNED ON      -2:  KEY 3 TURNED OFF*
*         -5:  KEY 4 TURNED ON      -1:  KEY 4 TURNED OFF*
*      SBKEY1 AND SBKEY2 MUST BE SET ACCORDING TO THE KEYLOCK TURNED *
*      AND IF A KEYLOCK HAS BEEN TURNED XWINDEX MUST BE SET TO XWADAPT*
*  *
*   VARIABLES USED:*
*      SB34KB:    6234/31-KEYBOARD ?*
*      SBKEY1:    IS KEY 1 ON ?*
*      SBKEY2:    IS KEY 2 ON ?*
*   WORKVARIABLE:*
*      WW1*
* *
************************************************************************
QBSTKY	PROC	XWINDEX,XWADAPT			
	PBIN	XWINDEX,XWADAPT 
 MOVE WW1,XWINDEX	CONVERT TO BINARY 
 ADD WW1,=W'9'
 IB WW1,QB100,QB200,QB900,		C 
		QB900,QB500,QB600,QB900,QB900 
* 
* NO KEYLOCK TURNED 
* 
	B	QB999
QB100 
 SET SBKEY1 
 B QB900
QB200 
 SET SBKEY2 
 B QB900
QB500 
 CLEAR SBKEY1 
 B QB900
QB600 
 CLEAR SBKEY2 
**
* IF A KEYLOCK HAS BEEN TURNED,*
*    ADAPT THE INDEX IN THE KEYTABLE*
**
QB900					
	MOVE	XWINDEX,XWADAPT			
QB999					
 RET
 PEND 
************************************************************************
* *
*   PROCEDURE:    QCGUWB*
*   FUNCTIONAL DESCRIPTION:*
*      TRY TO GET A SET OF FREE USER WORKBLOCKS.*
*      IF FREE UWB'S HAVE BEEN FOUND, THEY ARE RESERVED BY SETTING*
*      THE BOOLEAN 'SBUSEDWB' OF THAT SET OF UWB'S.*
*      NWUWBNR WILL THEN CONTAIN THE NUMBER OF THE UWB'S GRABBED.*
*      IF NO UWB'S ARE AVAILABLE, NWUWBNR IS SET TO ZERO.*
* *
*   VARIABLES USED:*
*      NWUWBNR:   WILL CONTAIN THE NUMBER OF THE UWB'S GRABBED.*
*      SBUSEDUWB: BOOLEAN TO INDICATE WHETHER OR NOT THE UWB'S*
*                 WITH A CERTAIN NUMBER ARE USED OR NOT.*
* *
************************************************************************
QCGUWB 	PROC				
QC000					
	MOVE	NWUWBNR,=W'0'			
**
* TRY NEXT USER WORK BLOCK*
**
QC100					
	ADD	NWUWBNR,=W'1'			
	USE	UBF,NWUWBNR			
	BERR	QC500	NO MORE UWB'S		
	TBF	SBUSEDWB,QC400	UWB NOT IN USE, GRAB IT		
	B	QC100	TRY NEXT UWB		
**
* GET OTHER USER WORK BLOCKS AS WELL*
**
QC400					
	SET	SBUSEDWB			
	USE	UCY,NWUWBNR			
	USE	UIF,NWUWBNR
	USE	UOP,NWUWBNR			
	USE	UA1,NWUWBNR			
	USE	UA2,NWUWBNR			
	USE	UT1,NWUWBNR			
	USE	UT2,NWUWBNR			
	USE	UQQ,NWUWBNR
	B	QC999			
**
* NO FREE UWB'S*
**
QC500					
	MOVE   	NWUWBNR,=W'0'	INDICATE NO FREE UWB'S		
QC999					
	RET				
	PEND				
************************************************************************
* *
*   PROCEDURE:     QDFUWB*
*   FUNCTIONAL DESCRIPTION:*
*      FREE TGHE UWB'S RESERVED BEFORE BY CLEARING SBUSEDWB.*
* *
************************************************************************
QDFUWB	PROC				
QD000					
	CLEAR	SBUSEDWB			
QD999					
	RET				
	PEND				
************************************************************************
* *
*   PROCEDURE:     QENTRS*
*   PARAMETER:*
*      XDTRS (UPDATE):   A TRANSACTION NUMBER BETWEEN 1 AND 8.*
*   FUNCTIONAL DESCRIPTION:*
*      CALCULATE THE NEXT TRANSACTION NUMBER.*
*      THE TRANSACTIONS BELONGING TO AN ACCOUNT ARE NUMBERED FROM*
*      1 TO 8 AND ARE USED CIRCULARLY.*
*      TO GET THE NEXT TRANSACTION NUMBER, ADD 1 TO XDTRS AND IF NOW*
*      XDTRS = 9, RESET XDTRS TO 1.*
* *
************************************************************************
QENTRS	PROC	XDTRS			
	PBCD	XDTRS 
QE000					
	ADD	XDTRS,=D'1'			
	CBL	XDTRS,=D'9',QE999	OKE		
	MOVE	XDTRS,=D'1'	NEXT SEQ NR. IS 1		
QE999					
	RET				
	PEND				
************************************************************************
* *
*   PROCEDURE:     QFLTRS*
*   PARAMETER:*
*      XDTRS (UPDATE):   A TRANSACTION NUMBER BETWEEN 1 AND 8.*
*   FUNCTIONAL DESCRIPTION:*
*      CALCULATE THE LAST TRANSACTION NUMBER.*
*      TO GET THE LAST TRANSACTION NUMBER, SUBTRACT 1 FROM XDTRS AND*
*      IF NOW XDTRS = 0, RESET XDTRS TO 8.*
* *
************************************************************************
QFLTRS	PROC	XDTRS			
	PBCD	XDTRS 
QF000					
	SUB	XDTRS,=D'1'			
	CBG	XDTRS,=D'0',QF999	OKE		
	MOVE	XDTRS,=D'8'	LAST SEQ NR. IS 8		
QF999					
	RET				
	PEND				
************************************************************************
* *
*   PROCEDURE:     QGATYP*
*   PARAMETER:*
*      XDACTNR (INPUT):  UNSHIFTED ACCOUNT NUMBER.*
*   FUNCTIONAL DESCRIPTION:*
*      IF THE UNSHIFTED ACCOUNT NUMBER IN XDACTNR IS EVEN THEN IT*
*      IS A CHEQUE ACCOUNT NUMBER AND SBCHQACT IS SET TO TRUE *
*      ELSE IT IS A SAVINGS ACCOUNT NUMBER.*
* *
*   VARIABLES USED:*
*      SBCHQACT:   IS ACCOUNT A CHEQUE ACCOUNT ?*
*   WORKVARIABLE:*
*      WDEC1*
* *
************************************************************************
QGATYP	PROC	XDACTNR			
	PBCD	XDACTNR 
QG000					
	CLEAR	SBCHQACT			
* *
* TEST ACCOUNTNUMBER IS ODD/EVEN*
*  *
	MOVE	WDEC1,XDACTNR			
	DIV	WDEC1,=D'2'			
	MUL	WDEC1,=D'2'			
	CBNE	WDEC1,XDACTNR,QG200	NUMBER IS ODD		
	SET	SBCHQACT	EVEN NUMBER - CHEQUE ACCOUNT		
QG200					
	RET				
	PEND				
************************************************************************
* *
*   PROCEDURE:     QHSPKY*
*   PARAMETERS:*
*      XWINDEX (UPDATE):  INDEX IN THE SCREEN-MANAGEMENT KEYTABLE.*
*      XWADAPT (INPUT):   ADAPT-VALUE FOR XWINDEX.*
*      XWKTBLNG (INPUT):  FULL SCREEN-MANAGEMENT KEYTABLE LENGTH.*
*   FUNCTIONAL DESCRIPTION:*
*      UPON ENTRY XWINDEX CAN HAVE THE FOLLOWING VALUES:*
*        -8 =< V =< -1          KEYLOCK TURNED ON 6236-TYPE KEYBOARD.*
*                               THIS WILL BE HANDLED BY 'QBSTKY'.*
*              V = 0            POWER FAILURE*
*         0 =< V =< XWKTBLNG-1  KEY LISTED IN THE KEYTABLE IS ENTERED.*
*         OTHER VALUES          ADAPT XWINDEX TO XWADAPT.*
* *
************************************************************************
QHSPKY	PROC	XWINDEX,XWADAPT,XWKTBLNG			
	PBIN	XWINDEX,XWADAPT,XWKTBLNG
QH000					
**
* CHECK KEYLOCK TURNED FOR 6236/71/72*
**
	PERF	QBSTKY,XWINDEX,XWADAPT			
**
* CHECK KEY ENTERED*
*     FIRST ADAPT THE INDEX FOR CALCULATION PURPOSES
*    (THE DYKI INDEX IS DIFFERENT FROM THE KI INDEX)*
**
	ADD	XWINDEX,=W'1'			
* 
*   CHECK IF INDEX POINTS INTO THE KEYTABLE 
* 
	CBL	XWINDEX,=W'1',QH900	INDEX NOT IN KEYTABLE
	CBG	XWINDEX,XWKTBLNG,QH900	INDEX NOT IN KEYTABLE 
	CBE	XWINDEX,=W'1',QH900	BACKSPACE KEY ENTERED
**
* READJUST INDEX FOR SCREEN MANAGEMENT*
**
	SUB	XWINDEX,=W'1'			
	B	QH999
* 
*   ADAPT INDEX IN THE KEYTABLE 
* 
QH900 
	MOVE	XWINDEX,XWADAPT 
QH999					
	RET				
	PEND				
************************************************************************
 END

Full view