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

⟦5f6b19a3c⟧

    Length: 14272 (0x37c0)
    Notes: pts_type(SC)
    Names: »SCREEN.SC«

Derivation

└─⟦7b35573c9⟧ Bits:30009690 Philips computer tape "600402"
    └─⟦this⟧ »A:AF/SCREEN.SC« 

PTS(SC)

 IDENT SCREEN REL.9.1 ARBEJDSFORMIDLINGEN 
* 
*    A STANDARD PROGRAM PACKAGE HANDLING
*    A COMPLETE PICTURE ON A DISPLAY SCREEN 
* 
*    RUNNING UNDER:  CREDIT REL 4.1 
*                    TOSS   REL 9.1 
* 
 DDUM SPDDIV
 PDIV 
* 
 ENTRY SPCLRA CLEAR ALL VARIABLE FIELDS 
 ENTRY SPCLRS CLEAR SOME VARIABLE FIELDS
 ENTRY SPCLRN CLEAR NO VARIABLE FIELDS
 ENTRY SPERR DISPLAY ERROR MESSAGE, UPDATE
			.. CURRENT FIELD & CONTINUE IN ..
			.. FORMAT. 
 EXT EMPTYT 

 INCLUDE SPLITT,LIST

* 
*    CLEAR ALL VARIABLE FIELD BEFORE HANDLING THE PICTURE 
* 
SPCLRA PROC 
 PERF SCREEN,W1 
	RET
 PEND 
* 
*    CLEAR SOME VARIABLE FIELDS BEFORE HANDLING THE PICTURE 
* 
SPCLRS PROC 
 PERF SCREEN,W2 
	RET
 PEND 
* 
*    CLEAR NO VARIABLE FIELDS BEFORE HANDLING THE PICTURE 
* 
SPCLRN PROC 
 PERF SCREEN,W3 
	RET
 PEND 
* 
*    HANDLE ERRORS DETECTED OUTSIDE THE PACKAGE 
* 
SPERR PROC
 PERF SCREEN,W0 
 RET
 PEND 
* 
SPERR2 PROC 
 SET SPERCALL INDICATE SPERR CALL 
 PERF SCREEN,W0 
 CLEAR SPERCALL 
	RET
 PEND 
* 

SCREEN PROC OPT 
 PBIN OPT 

 MOVE SPBINW2,OPT MOVE TO BARIABLE
			TO ALLOW INSTR.S CMP AND IB
 CMP SPBINW2,W0 "SPERR" CALL? 
 BE ERRPRINT YES! 

 MOVE SPBINW1,W1 SET INITIAL VALUE
 TBT SPPROMPT,ENTIRE JUMP IF ENTIRE FORMAT
			SHOULD BE DISPLAYED
* 
*    ONLY VARIABLE FIELDS 
* 
 IB SPBINW2,CLEARA,CLEARS,CONT JUMP ON ROUTINE INDEX
* 
CLEARA
 ERASE 2,SPBINW1,W0 ERASE ALL FROM 1 AND UP 
 B CONT 
* 
CLEARS
 ERASE 5,SPBINW1,W0 ERASE NOT-"NCLR" FIELDS 
			FROM 1 AND UP
	B	CONT 

* 
*    DISPLAY ENTIRE FORMAT
* 
ENTIRE
 IB SPBINW2,ECLRA,ECLRS,ECLRN JUMP ON ROUTINE INDEX 
* 
*    CLEAR ALL VARIABLES
* 
ECLRA 
 ERASE 3,SPBINW1,W0 CLEAR ALL FROM 1 AND UP 
			IN MEMORY
 B ECLRN CONTINUE 
* 
*    CLEAR VARIABLES WITHOUT THE "NCLR" FLAG SET
* 
ECLRS 
 ERASE 6,SPBINW1,W0 CLEAR NOT-"NCLR" FIELDS 
			IN MEMORY
* 
*    CLEAR NO VARIABLES IN MEMORY 
* 
ECLRN 
 DISPLAY 0,SPBINW1,W0 DISPLAY ENTIRE FORM 
	 
* 
CONT
 GETABX SPBINW4 GET CURRENT INDEX 
 BL KTHOME JUMP IF NO CURRENT FIELD 
CONT5 
 GETFLD 0,SPBINW4,SPBINW3 SEARCH CURRENT POSITION 
 BZ SETCREAD JUMP IF FOUND
 BL KTHOME POSITION NOT FOUND 
* 
*    COMPULSORY FIELD FOUND 
* 
 MOVE SPBINW4,SPBINW3 CHANGE INDEX
 B CONT5 SEARCH AGAIN 
* 

* 
*    SET CURSOR AND READ KEYBOARD 
* 
SETCREAD
	SETCUR		SET CURSOR ON CURRENT FIELD

* 
*    READ TO CURRENT FIELD ON DISPLAY 
* 
READIN
 DYKI SPINPUT,SPKTAB1,SPKTAB2,SPBINW1,		C 
		SPBINW2,SPBINW4 
 BL ERRPRT ERROR
 CBNG SPBINW2,W0,RETUR JUMP IF POWER OFF OR 
			KEY SWITCHES 
DYKOUT
 CBNE SPBINW2,W7,DYK100 IF KEY = TBWD & ... 
 CMP SPBINW1,W0 ... POSITION > 0, ... 
 BNE KEDBWD ... START EDIT
DYK100
 IB SPBINW2,UPD300,CLEA20 JUMP ON	C 
		UPDATE,CANC,CANC,		C
		UPDATE,UPDATE,UPDATE,UPDATE CONVERTED	C 
		UPDATE,UPDATE,UPDATE,UPDATE END-OF-ITEM-KEY	C 
		UPDATE,KDUPL,KEDIT
	 
* 
*    HANDLE THE RESPECTIVE KEY AS EOI-KEY FIRST 
* 
UPDATE
 CBE SPBINW1,W0,UPD350 JUMP IF LENGTH = 0 
 GETCTL 3,SPBINW4 GET SCHK-NUMBER 
 CBE SPBINW4,W0,UPD050 JUMP IF NOT STANDARD CHECK 
* 
 PERFI SPBINW4,SPCHK1,SPCHK2,SPCHK3		C
		SPCHK4,SPCHK5,SPCHK6,SPCHK7 
 IB SPBINW3,UPD100,UPD070,ERRPRINT
* 
*    CONDITIONAL DISPLAYING 
* 
UPD050
 MOVE SPBINW4,W1 INDICATE COND. DISPL 
 B UPD200 
UPD070
 GETCTL 0,SPBINW3 GET APPL-VALUE
 CBNE SPBINW3,W0,UPD210 JUMP IF APPL VALUE
 B SETCREAD 
* 
*    UNCONDITIONAL DISPLAYING 
* 
UPD100
 MOVE SPBINW4,W2 INDICATE UNCONDITIONAL DISPLAY 
UPD200
 GETCTL 0,SPBINW3 GET APPL-VALUE
 CBE SPBINW3,W0,UPD400 JUMP IF NO APPL VALUE
* 
*    APPL-VALUE DIFFERENT FROM ZERO 
* 
UPD210
 PERF SPAPPL
 IB SPBINW3,UPD260,SETCREAD,ERRPRINT
 B UPD400 
* 
*    OK AFTER APPL CONTROL
*    UNCONDITIONAL DISPLAYING 
* 
UPD260			UPDATE CURRENT INPUT ... 
 UPDFLD 1,SPINPUT ... FIELD & DISPLAY IT
UPD300 SET SPCHANGE INDICATE CHANGED ITEM 
UPD350
 CBE SPBINW2,=X'E',KCOPY TO ALLOW "COPY"-KEY ...
			... IN "SPERR2"-CALL 
 TBT SPERCALL,RETUR RETURN IF "SPERR2"-CALL 
* 
*    JUMP ON FUNCTION KEY INDEX 
* 
 IB SPBINW2,READIN,DUMMY,		C
		KEOI,DUMMY,DUMMY,KTFWD,		C
		KTBWD,KTHOME,KTLDOWN,KTLEFT,KTRIGHT,		C 
		KTDOWN,KTUP,DUMMY,DUMMY,DUMMY,KENTER
 SUB SPBINW2,=W'14' ADJUST EOI-KEY INDEX
DUMMY 
RETUR 
 RET
* 
UPD400
 CBE SPBINW4,W2,UPD260 JUMP IF UNCONDITIONAL DISPL
 UPDFLD 0,SPINPUT UPDATE FIELD DISPL. COND. 
 B UPD300 
* 

KEOI			COMMON END-OF-ITEM KEY 
KTFWD			TAB. FORWARD 1 STEP 
 TFWD 
	B	TSTTAB 
KTBWD			TABULATION 1 STEP BACKW.
 TBWD 
 B TSTTAB 
KTHOME			TAB. TO HOME POSITION
 THOME
 B TSTTAB 
KTLDOWN			TAB. TO FIRST ON NEXT LINE
 TLDOWN 
 B TSTTAB 
KTLEFT			TAB. TO LEFTMOST 
 TLEFT
 B TSTTAB 
KTRIGHT			TAB. TO RIGHTMOST 
 TRIGHT 
 B TSTTAB 
KTDOWN			TAB 1 DOWN 
 TDOWN
 B TSTTAB 
KTUP			TAB 1 UP 
 TUP

TSTTAB			TEST TAB OUTPUT
 BE READIN OK 
 BL SETCREAD NOT FOUND
 BOFL SETCREAD EMPTY COMPULSORY FIELD 
* 
*    CONDITIONAL TABULATION 
* 
 PERF SPTCHK
 CBE SPBINW3,W0,SETCREAD
 IB SPBINW2,DUMMY,DUMMY,		C 
		KTFWD,DUMMY,DUMMY,KTFWD,		C 
		KTBWD,KTFWD,KTFWD,KTFWD,		C 
		KTBWD,KTFWD,KTBWD 
*    BRANCH LIST EXHAUSTED - SPBINW2 CLOBBERED BY SPTCHK
* 
	B	SETCREAD 


	 
KCOPY			HARD COPY 
 SET PRBUSY 
 BOK KCOPY1 PRINTER NOT BUSY
 MOVE SPBINW3,=W'50' VENT 5 SEKUNDER
 DELAY SPBINW3
 B KCOPY OG PROV IGEN 
KCOPY1
 MOVE SPBINW3,W1
 PRINT SPDSPRT,SPBINW3,W0 
 CLEAR PRBUSY FRIGIV PRINTER
 TBT SPERCALL,RETUR RETURN IF "SPERR"-CALL
 B SETCREAD SET CURSOR AND READ 
* 
KDUPL			DUPLICATION 
 MOVE SPBINW2,W3 INDICATE COMMON EOI-KEY
 DUPL SPINPUT DUPLICATION 
 BZ UPD260 DUPL ALLOWED 
 MOVE SPBINW4,W4 INDICATE ILLEGAL EOI-KEY 
 B ERRPRINT DUPL NOT ALLOWED

* 
*    EDIT FIELD 
* 
KEDERR			EDIT AFTER ERROR 
 CBE SPBINW1,W0,KEDIT 
KEDBWD			EDIT AFTER TBWD
 MOVE SPBINW1,W1
KEDIT			NORMAL EDIT 
 GETCTL 1,SPBINW3 GET MAXL
 CBNE SPBINW3,W0,KED100 
 EDWRT SPDSSCRN,BELL ACOUSTIC ALARM 
 B SETCREAD 
KED100
 EDFLD SPINPUT,SPKTAB3,SPBINW1,		C
		SPBINW2,SPBINW4 
 BL ERRPRT ERROR
 CBNG SPBINW2,W0,POWEROFF POWER OFF OR KEY SWITCH 
 CBNE SPBINW1,W0,KED150 LENGTH NOT ZERO 
 SET SPCHANGE ITEM CLEARED BY EDFLD 
KED150
 B DYKOUT CONTINUE AS FOR DYKI
	 
* 
*    ENTER KEY
* 
KENTER
 MOVE SPBINW4,W5 INDICATE COMP.FIELD FOUND
 MOVE SPBINW1,W0 INDICATE NO CLEARING 
 MOVE SPBINW2,W0 SET INDEX TO LAST FIELD
			IN FORMAT
 GETFLD 0,SPBINW2,SPBINW3 SEARCH FOR EMPTY COMP. FIELDS 
 BOFL KENT10 EMPTY COMP. FIELD FOUND
 TSTCTL 2 LAST FIELD COMPULSORY?
 BZ KENT05 NO!
 CALL EMPTYT,:FMTITEM EMPTY?
 BP KENT10 YES! 
KENT05
 MOVE SPBINW2,W3 INDICATE ENTER KEY DEPRESSED 
 RET
* 
*    EMPTY COMPULSORY FIELD FOUND 
* 
KENT10
 GETFLD 0,SPBINW3,SPBINW2 GET THE COMPULSORY FIELD
 B ERRPRINT 

POWEROFF
 B RETUR
ERRPRT
 CBE SPBINW2,W16,KEDIT	JUMP IF EDIT 
 CBE SPBINW2,W4,CANC JUMP IF CANCEL1
 CBE SPBINW2,W5,CANC JUMP IF CANCEL2
 CBE SPBINW2,W7,KEDBWD JUMP IF TBWD 
* 
*    ERROR HANDLING 
* 
ERRPRINT
 CMP SPBINW4,W0 
 BE SETCREAD JUMP IF NO PRINTOUT
 EDWRT SPDSSCRN,BELL ACOUSTIC ALARM 
 MOVE SPBINW3,=X'1801' ROW 24 COL. 1
 DSC1 SPDSSCRN,6,SPBINW3 SET CURSOR ON LAST ROW 
 EDWRT SPDSSCRN,SPFTBERR(SPBINW4) 
* 
*    READ AFTER ERROR 
* 
ERREAD
 SETCUR		SET CURSOR AT THE BEGINNING
			OF THE CURRENT FIELD 
ERR100
 MOVE SPBINW3,W1 REQUESTED LENGTH 
* 
 NKI .NE,SPDSDYKB,SPSTRGW1,SPKTAB1,SPBINW3,SPBINW2
 BNZ ERR100 JUMP IF NOT OK
 CBE SPBINW2,W0,POWEROFF JUMP IF POWER OFF
 IB SPBINW2,ERR100,ERRCONT		C 
		ERRCONT,ERR100,ERRCONT,ERRCONT
 CBNE SPBINW2,W17,ERR100 TRY AGAIN IF NOT EDIT KEY! 
* 
*    CLEAR ERROR PRINTOUT 
* 
ERRCONT 
 MOVE SPBINW3,='24' INDICATE LAST LINE
 ERASE 0,SPBINW3,SPBINW3 ERASE LAST LINE
 CBE SPBINW2,W17,KEDERR EDIT KEY
 SUB SPBINW2,W1 ADJUST KEY INDEX
CANC
 CBE SPBINW1,W0,ERRC10 JUMP IF LENGTH = 0 
 MOVE SPINPUT,:FMTITEM SAVE CURRENT CONTENTS
 MOVE SPSTRGW1,=X'3100' 
 MOVE :FMTITEM,SPSTRGW1 PUT SOMETHING IN THE FIELD
 GETABX SPBINW4 GET CURRENT INDEX 
 ERASE 10,SPBINW4,SPBINW4 CLEAR FIELD 
ERRC10
 IB SPBINW2,CLEAR1,CLEAR2,DUMMY 
 SUB SPBINW2,W3 ADJUST FOR CANCEL1,CANCEL2
 RET
CLEAR1
 CBE SPBINW1,W0,ERRC20 JUMP IF LENGTH = 0 
 SET SPCHANGE INDICATE CHANGED FIELD
ERRC20
 B SETCREAD CONTINUE
* 
CLEAR2
 CBE SPBINW1,W0,CLEA20 JUMP IF LENGTH 0 
 MOVE :FMTITEM,SPINPUT RESTORE CURRENT CONTENTS 
CLEA20
 GETABX SPBINW4 GET CURRENT TAB INDEX 
 DISPLAY 1,SPBINW4,SPBINW4 DISPLAY FIELD
 B SETCREAD 
* 
BELL FRMT 
 FSL
 FILLR X'07',1
 FMEND

	PEND 

 XSTAT SPDSSCRN,TBIN5 
 EJECT
SPTCHK PROC 
 RET
 PEND 

SPCHK1 PROC 
 RET
 PEND 

SPCHK2 PROC 
 RET
 PEND 

SPCHK3 PROC 
 RET
 PEND 

SPCHK4 PROC 
 RET
 PEND 

SPCHK5 PROC 
 RET
 PEND 

SPCHK6 PROC 
 RET
 PEND 

SPCHK7 PROC 
 RET
 PEND 

SPAPPL PROC 
 RET
 PEND 
 END

Full view