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

⟦2e01c15bd⟧

    Length: 11014 (0x2b06)
    Notes: pts_type(SC)
    Names: »FSINIT.SC«

Derivation

└─⟦f45ea3bc3⟧ Bits:30009713 Philips computer tape "WSM"
    └─⟦this⟧ »WSM:CREA/FSINIT.SC« 

PTS(SC)

	IDENT	FSINIT	REL=2.3,851010,870155940230 

*************************************************************** 
* 
* 
*      LATEST UPDATE 841010 MADE BY CJ
* 
* 
*      HISTORY= 
*               851010/CJ  "-" NOT EOI IN SEC. GUIDING MESS 
*               841120/CJ  MUL&DIV NOW FROM ASS.ROUTINE 
*               840119/CJ  REFRESH OF FORMAT FWSINS 
*               830526/CJ  REL.NUMBER TO FWSINS FROM WSMDDV VIA RELNUM
*               830425/CJ  REL.DATE STORED IN PASSWORD
* 
* 
*************************************************************** 

	DDUM	WSMDDV
	PDIV 
	ENTRY	FSINIT 
	EXPROC	USINIT	***UNPACK F. SECTION INITIALS
	EXPROC	READIN,PKTAB,PKTAB,PKTAB,PLIT	***READ IN ONE FIELD
	EXPROC	WSMERR,PKTAB,PLIT	***(ERROR-)MESSAGE ROUTINE
	EXT	ICLEAR	---ASSRUT:CLEAR ITEM
	EXT	SETB	---ASSRUT:SET BIT 
	EXT	WXDIV	---ASSRUT:DIVISION 
	EJECT
	INCLUDE	WSMKEY,LIST
	EJECT
	INCLUDE	KEYT11,LIST
	INCLUDE	KEYT22,LIST
	INCLUDE	KEYT33,LIST
	INCLUDE	KEYT5,LIST 
	EJECT
FSINIT	PROC 
FSI000
	MOVE	GBIN2,W0	CLEAR RETUR-CODE 
	ATTFMT	FWFSIN	ATTACH FORMAT-SECTION FORMAT 
	ERASE	6,W1,W0	ERASE OLD CONTENTS 
	TBF	LBOOL8,FSI030	JUMP IF NEW FORMAT SECTION 
	PERF	USINIT	***UNPACK SECTION INITIAL PART 
	B	FSI040 
FSI030
	PERF	FSIDEF	***FORMAT SECTION DEFAULTS 
FSI040
	DISPLAY	0,W1,W0	DISPLAY ENTIRE FORMAT
	TBT	LBOOL8,FSI050	JMP IF UPDATE
	MOVE	LBIN4,W0	FIELD-INDEX:=0 
	B	FSI405 
FSI050
	MOVE	LBIN4,W4	FIELD-INDEX:=4 
	B	FSI405 
FSI100
	GETABX	LBIN4	GET CURRENT INDEX 
FSI150
	PERF	READIN,KEYT11,KEYT22,KEYT33,=W'0'	***READIN ONE FIELD 
	IB	LBIN2,FSI500,FSI200,FSI300,FSI400 
	B	FSI100 
	EJECT
* 
*    CANCEL-KEY 
* 
FSI200
	ERASE	4,W1,W0	ERASE OLD CONTENTS 
	TBF	LBOOL8,FSI210	JUMP IF NEW FORMAT SECTION 
	PERF	USINIT	***UNPACK FORMAT SECTION INIT
	B	FSI220 
FSI210
	PERF	FSIDEF	***FORMAT SECTION DEFAULTS 
FSI220
	DISPLAY	1,W1,W0	DISPLAY JUST FIELD CONTENTS
	B	FSI050 
* 
*    RETUR-KEY
* 
FSI300
	MOVE	GBIN2,W1	INDICATE RETUR-KEY 
	B	FSI999 
	EJECT
* 
*    POWER OFF
* 
FSI400
	DISPLAY	0,W1,W0	DISPLAY ENTIRE FORMAT
FSI402
	GETABX	LBIN4	GET CURRENT FIELD 
FSI405
	GETFLD	0,LBIN4,LBIN3	SEARCH CURR POS 
	BNOK	FSI410
	SETCUR 
	B	FSI150 
FSI410
	MOVE	LBIN4,LBIN3	CHANGE INDEX
	B	FSI405 
	EJECT
* 
*    END OF FORMAT FOUND
* 
FSI500
	BZ	FSI505	JMP IF ENT AND NOT E-O-F 
	MOVE	LBIN1,W0	NO CLEAR 
	MOVE	LBIN4,W7	MESSAGE  NO 7
	PERF	WSMERR,KEYT5,=W'0'	***(ERROR-)MESSAGE ROUTINE 
	IB	LBIN2,FSI402,FSI200,	CLR,CAN	C
		FSI300,FSI505	RET,ENT 
	B	FSI400	POWER OFF 
FSI505
	MOVE	GBIN3,W1	1ST BUFFERPOOL 
	MOVE	GBIN4,GBIN3	CURRENT BUFFERPOOL=1ST
	MOVE	GBIN5,W6	BUFFER POINTER:=6
	XCOPY	GBIN6,W0,W1,GBIN4,W1	SAVE START BUFFERINDEX
	XCOPY	GBIN6,W1,W1,GBIN5,W1	SAVE STARTPOINTER IN BUFF 
	CALL	ICLEAR,BPOOL(GBIN4)	---CLEAR BUFFER 
	XCOPY	BPOOL(GBIN4),GBIN5,W6,GSTR6A,W0	F.SECTION NAME 
	ADD	GBIN5,W6	ADJUST BUFFERPOINTER:=12
	XCOPY	BPOOL(GBIN4),GBIN5,W6,PASDAT,W0	REL.DATE IN PASSWORD 
	ADD	GBIN5,W7	ADJUST BUFFERPOINTER:=19
	XCOPY	BPOOL(GBIN4),GBIN5,W1,W1,W1	OBJECT VERSION NO:=1 
	ADD	GBIN5,W3	ADJUST BUFFERPOINTER:=22
	MOVE	LBIN1,GBCD3I(W5)	CONVERT VERSION NO. TO BINARY
	ADD	LBIN1,W1	VERSION NO:=VERSION NO + 1
	MOVE	GBCD3I(W5),LBIN1	RESTORE VERSION NO 
	XCOPY	BPOOL(GBIN4),GBIN5,W1,LBIN1,W1	VERSION NO
	ADD	GBIN5,W1	ADJUST BUFFERPOINTER:=23
	MOVE	LBIN1,W0
	CBNE	GSTR1I(W1),YES,FSI510	JUMP IF AUTO ENT. NO OR EMPTY 
	CALL	SETB,LBIN1,W8	---SET BIT NO:8 
FSI510
	MOVE	LBIN2,GBCD3I(W2)	LOAD SECTION TYPE BINARY 
	CBL	LBIN2,W3,FSI520	1 AND 2 NO ADJUSTMENT
	ADD	LBIN2,W1	ADJUST FOR >2 
	CBL	LBIN2,W7,FSI520	4,5 AND 6 => NO ADJUSTMENT 
	ADD	LBIN2,W1	ADJUST FOR >7 
FSI520
	ADD	LBIN1,LBIN2
	XCOPY	BPOOL(GBIN4),GBIN5,W1,LBIN1,W1	AUTO ENT AND SEC.TYPE 
	ADD	GBIN5,W1	ADJUST BUFFERPOINTER:=24
	MOVE	LBIN1,GBCD3I(W3)	LOAD SEC.SIZE ROWS BINARY
	XCOPY	BPOOL(GBIN4),GBIN5,W1,LBIN1,W1	SEC.SIZE ROWS 
	ADD	GBIN5,W1	ADJUST BUFFERPOINTER:=25
	MOVE	LBIN1,GBCD3I(W4)	LOAD SEC.SIZE COLS BINARY
	XCOPY	BPOOL(GBIN4),GBIN5,W1,LBIN1,W1	SEC.SIZE COLS BINARY
	ADD	GBIN5,W11	BUFFERPOINTER:=36
	XCOPY	BPOOL(GBIN4),GBIN5,W1,GSTR1I(W23),W0	STORE DECIMAL-CHAR
	EJECT
	ADD	GBIN5,W4	BUFFERPOINTER:=40 
* 
*    DECORATION DEFAULTS
*                          012 4   8
	MOVE	LSTR81,=C'NBRRUUUUH'
	PERF	DECORD,W2,W3	***SCREEN BACKGROUND DECOR 
	MOVE	GBIN10,LBIN1	SAVE BACKGROUND DEFAULT
	PERF	DECORD,W4,W7	***STATIC FIELD DECORATION 
	MOVE	GBIN11,LBIN1	SAVE STATIC DEFAULT
	PERF	DECORD,W8,W11	***DYNAMIC FIELD DECOR. 
	MOVE	GBIN12,LBIN1	SAVE DYNAMIC DEFAULT 
	ADD	GBIN5,W3	3 BYTES UNUSED
	MOVE	LSTR4A,=C'S:M:'	LOAD DEF GUID.MESS.-TYPES 
	MOVE	LBIN1,GBINIA(W1)	WORKITEM:=MESSAGE LENGTH 
	MOVE	LBIN3,W0	WORKITEM:=0
	MATCH	LSTR4A,LBIN3,W4,GST80I(W1),W0,W2	WHAT TYPE?
	BOK	FSI530 
	ADD	GBIN5,W1	NO DEFAULT MESSAGE
	B	FSI540 
FSI530
	CBE	LBIN3,W2,FSI535	JUMP IF LINE MESSAGE 
	ADD	LBIN1,W1	ADJUST LENGTH WHEN SECTION
FSI535
	XCOPY	BPOOL(GBIN4),GBIN5,W1,LBIN1,W1	DEF.GUID.MESS.-TYPE + LEN 
	ADD	GBIN5,W1	ADJUST BUFFER POINTER 
	CBE	LBIN3,W2,FSI538	JUMP IF LINE MESSGAE 
	XCOPY	BPOOL(GBIN4),GBIN5,W1,W0,W0	LOAD MSG TYPE=SECTION X'00'
	ADD	GBIN5,W1	ADJUST BUFFER POINTER 
FSI538
	XCOPY	BPOOL(GBIN4),GBIN5,GBINIA(W1),GST80I(W1),W2
	ADD	GBIN5,GBINIA(W1)	ADJUST POINTER
FSI540
* 
*    RELATIVE ADRESS OF STATIC FIELD-CODE 
*      - BYTES 24-25 (+6)  POOL-UNIT-NO + DISPLACEMENT
* 
	MOVE	LBIN1,W24	LOAD BUFFERPOINTER:=24
	ADD	LBIN1,W6	GIVING 30 
	XCOPY	BPOOL(GBIN4),LBIN1,W1,GBIN4,W1	REL. ADR.ST. FC. POOL NO
	ADD	LBIN1,W1	GIVING BUFFERPOINTER=31 
	ADD	GBIN5,W1	ADJUST BUFFERPOINTER
	CALL	WXDIV,GBIN5,W2,GBIN5	POINTER MUST BE ...
	ADD	GBIN5,GBIN5	...EVEN
	MOVE	GBIN7,GBIN5	SAVE START ADRESS OF ST FIELD 
	XCOPY	GBIN7,W0,W1,GBIN4,W1	SAVE START ADRESS OF ST FIELD 
	MOVE	LBIN2,GBIN5	LOAD POINTER VALUE
	SUB	LBIN2,W6	ADJUST FOR OV HEAD
	XCOPY	BPOOL(GBIN4),LBIN1,W1,LBIN2,W1	REL. ADR.ST. FC. DISPL. 
	EJECT
* 
*   EXIT
* 
FSI999
	RET
	PEND 
	EJECT
* 
*    FORMAT SECTION DEFAULT VALUES
* 
FSIDEF	PROC 
	MOVE	GBCD3I(W2),W1	SECTION TYPE
	MOVE	GBCD3I(W3),ROWS	SECTION SIZE ROWS 
	MOVE	GBCD3I(W4),COLS	SECTION SIZE COLS 
	MOVE	GBCD3I(W5),W0	VERSION NO:=0 
	MOVE	GBCD3I(W15),W1	EFFEKTIV SIZE ROWS 
	MOVE	GBCD3I(W16),W1	EFFEKTIV SIZE COLS 
	MOVE	GBINIA(W8),W1	OBJ VERSION NO:=1 
	MOVE	GSTR1I(W1),NO	AUTO ENTERING 
	MOVE	GSTR1I(W23),=C'.'	DECIMAL=POINT 
	MOVE	GSTR1I(W8),=C'H'	DYNAMIC DECOR 1
	RET
	PEND 
	EJECT
************************************************************************
* 
*    DECORATION DEFAULTS
*      INPUT PARMETERS
*                        LSTR81 = NBRRUUUUH 
*                                 012 4   8    GIVING CORRESPONDING BIT 
*                        LINDEX = LOWEST INDEX OF 'GSTR1I'
*                        HINDEX = HIGHEST INDEX OF 'GSTR1I' 
*      OUTPUT            BPOOL  = UPDATED WITH A BYTE OF DECORATIONBITS 
*                        GBIN5  = PONTER ADJUSTED 
* 
************************************************************************
DECORD	PROC	LINDEX,HINDEX 
	PBIN	LINDEX
	PBIN	HINDEX
	MOVE	LBIN1,W0	WORKITEM:=0
	MOVE	LBIN3,LINDEX	SAVE START INDEX 
DEC100
	MOVE	LBIN2,W0	WORKITEM:=0
	MATCH	LSTR81,LBIN2,W9,GSTR1I(LBIN3),W0,W1
	BNOK	DEC200	EMPTY
	ADD	LBIN1,LBIN2	SET CORRESPONDING BIT
DEC200
	ADD	LBIN3,W1	NEXT INDEX
	CBNG	LBIN3,HINDEX,DEC100	NOT GREATER HIGHEST INDEX 
	XCOPY	BPOOL(GBIN4),GBIN5,W1,LBIN1,W1	DECORATION DEFAULT
	ADD	GBIN5,W1	ADJUST PONTER 
	RET
	PEND 
	INCLUDE	FWSINS,LIST
	END

Full view