|
|
DataMuseum.dkPresents historical artifacts from the history of: Philips Data Systems |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Philips Data Systems Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 11014 (0x2b06)
Notes: pts_type(SC)
Names: »FSINIT.SC«
└─⟦f45ea3bc3⟧ Bits:30009713 Philips computer tape "WSM"
└─⟦this⟧ »WSM:CREA/FSINIT.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