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

⟦20384e6ff⟧

    Length: 7764 (0x1e54)
    Notes: pts_type(SC)
    Names: »SLOGIN.SC«

Derivation

└─⟦fce1dcf99⟧ Bits:30009704 Philips computer tape "KMD15"
    └─⟦this⟧ »DLCSPY/SLOGIN.SC« 

PTS(SC)

	IDENT SLOGIN	REL 1.1 78-04-21  870150340110
* 
* 
*	SDLC LOG INPUT TASK 
* 
* 
	ENTRY	SLOGIN 
* 
* 
*	EXTERNAL REFERENCES 
* 
* 
	EXTRN	MOL	OWN LINE MESSAGES
	EXTRN	MBL	BEGIN OF LINE MESSAGES 
	EXTRN	PRPOOL	PRINTER OCCUPIED BUFFER ADDRESSS
* 
* 
*	EQUATES 
* 
* 
* 
* 
* 
*	RELATIVE ECB EQUATES
* 
* 
ECBBA	EQU	2 
ECBRL	EQU	4 
ECBEL	EQU	6 
ECBRC	EQU	8 
ECBCW	EQU	/A
* 
	RES	20	A14 STACK 
STB	EQU	*-2 
PROCCA	DATA	0	ADDRESS TO PRINTER OCCUPIED BUFFER
	EJECT
* 
* 
*	INITIALIZE SYSTEM 
* 
*	A9=BUFFER POINTER 
*	A10=CHARACTER COUNTER 
* 
* 
SLOGIN	LDKL	A14,STB	LOAD STACK BASE 
	SUR	A10,A10	RESET CHARACTER COUNTER
	LDK	A1,2 
	ST	A1,PRECBL	EMPTY PRINTER BUFFER
	LDK	A1,1 
	ST	A1,XSPACE	SET SPACE INDICATOR 
	EJECT
* 
* 
*	EDIT CHARACTERS FROM LINE 
* 
* 
EDIT	CF	A14,GETCH	GET CHARACTER 
ED000	EQU	* 
	RF(P)	ED300	COMMENT
	ANK	A7,/FF 
ED050	EQU	* 
	CF	A14,EDHEX	NOT FOUND: EDIT IT HEXADECIMAL
ED100	LDK	A1,100
	CW	A1,PRECBL 
	RB(G)	EDIT	LINE NOT FULL 
ED110	CF	A14,PRLINE	PRINT LINE
	CF	A14,EDSPAC
	RB	EDIT
* 
* 
*	COMMENT CHARACTER 
* 
* 
ED300	EQU	* 
	CF	A14,CRLF
	LDK	A5,0 
	CF	A14,PRTEXT
	LDR	A5,A5
	RB(Z)	EDIT 
	EJECT
	LDKL	A12,2 
	CF	A14,EDCHAR
	LDKL	A12,6 
	CF	A14,EDCHAR
	LDKL	A12,3 
	CF	A14,EDCHAR
	RB	EDIT
* 
* 
*	MOVE 8 SPACE TO PRINT BUFFER
* 
* 
EDSPAC	LDKL	A8,8
EDSP10	SUKL	A8,1
	RF(N)	EDSP20	READY 
	CM	XSPACE
	CF	A14,SPACE 
	RB	EDSP10
EDSP20	RTN	A14
	EJECT
* 
* 
*	EDIT CHARACTERS INTO PRINT BUFFER 
*	A12 CONTAINS NR OF CHARACTERS 
* 
* 
EDCHAR	EQU	*
	CF	A14,GETCH	GET ONE CHARACTER 
	RF(P)	EDC100	COMMENT 
	CF	A14,EDHEX 
	SUKL	A12,1 
	RB(NZ)	EDCHAR	KEINE FEIERABEND NOCH
	CM	XSPACE
	CF	A14,SPACE	INSERT ONE SPACE
	RTN	A14
EDC100	EQU	*
	ADKL	A14,4 
	RB	ED300 
	EJECT
* 
* 
*	PRINT TEXT ON PRINTER 
* 
*	A7 CONTAINS CONTROL CHARACTER 
* 
* 
PRTEXT	LDR	A6,A7	SAVE CHARACTER 
	CF	A14,PRLINE	RELEASE PRINT BUFFER 
	ADR	A6,A6	DOUBLE FOR INDEXING
	ANK	A6,/FF 
	LDR	A2,A6
	ANK	A2,/7F 
	LD	A3,MOL,A2	GET TEXT ADDRESS
	CWR	A2,A6
	RF(NE)	PRT100	OWN LINE TEXT
	LDR	A2,A2
	RF(Z)	PRT090 
	CWK	A2,2 
	RF(NE)	PRT095
PRT090	LDK	A5,1 
PRT095	EQU	*
	LD	A3,MBL,A2	BEGINNING OF LINE 
PRT100	LDR*	A4,A3	GET TEXT LENGTH 
	CWK	A1,100 
	RF(G)	PRT130	INVALID LENGTH: SKIP TEXT 
	ADK	A3,2	SKIP LENGTH 
PRT110	SUK	A4,1 
	RF(N)	PRT120	ALL MOVED 
	LCR	A1,A3
	ADK	A3,1 
	CF	A14,STORE 
	RB	PRT110
PRT120	ANK	A6,/80 
	RF(Z)	PRT130	BEGINNING OF LINE 
	CF	A14,PRLINE	PRINT OWN LINE 
PRT130	RTN	A14
	EJECT
* 
* 
*	PRINT ONE LINE ON PRINTER 
* 
* 
PRLINE	LDK	A1,2 
	CW	A1,PRECBL 
	RF(E)	PRLI10	NOTHING IN BUFFER 
	LDK	A7,1 
	LKM
	DATA	-7,PRPOOL	OCCUPIE PRINTER 
	ST	A8,PROCCA	SAVE BUFFER ADDRESS 
	LDK	A7,/86	STD WRITE AND WAIT
	LDKL	A8,PRECB
	LKM
	DATA	1 
	LD	A8,PROCCA	RESTORE BUFFER ADDRESS
	RF(Z)	PRLI05	NO BUFFER 
	LKM	 
	DATA	-8,PRPOOL	RELEASE PRINTER 
	CM	PROCCA
PRLI05	EQU	*
	ST	A1,PRECBL	RESET LENGTH
	LDK	A1,1 
	ST	A1,XSPACE	SET SPACE INDICATOR 
PRLI10	RTN	A14
PRECB	DATA	/31,PRBUF,2,0,0,0
PRECBL	EQU	PRECB+4	REQUESTED LENGTH 
PRBUF	DATA	0	CONTROL WORD 
	RES	60 
	EJECT
* 
* 
*	GET ONE CHARACTER FROM LINE TO A7 
*	CR=0 IF NORMAL CHARACTER
*	CR=1 IF COMMENT CHARACTER 
* 
* 
GETCH	SUKL	A10,1
	RF(NN)	GETCH1	FETCH FROM BUFFER
	LDK	A7,/81	READ NEW BUFFER 
	LDKL	A8,LGECB
	LKM
	DATA	1 
	LD	A10,ECBEL,A8	GET EFFECTIVE LENGTH 
	SUKL	A10,1 
	LD	A9,ECBBA,A8	GET BUFFER ADDRESS
GETCH1	LCR	A7,A9	LOAD CHARACTER 
	ADKL	A9,1	INCREMENT POINTER
	LC	A1,ECBRC,A8 
	ADKL	A14,4	SKIP STACK FOR RETURN 
	ANK	A1,/20 
	RF(NZ)	GETCH3	COMMENT OR POLL COUNTER
	ABR*	A14	RETURN WITH NORMAL CHARACTER
	EJECT
GETCH3	SUK	A1,1	SET CR
	ABR*	A14	RETURN
* 
LGECB	DATA	/60,LGBUF,20,0,0,0 
LGBUF	RES	20
	EJECT
* 
* 
*	EDIT	CHAR FROM A7 IN HEXADECIMAL FORM 
* 
* 
EDHEX	EQU	* 
	LDR	A1,A7
	SRL	A1,4 
	LC	A1,HEXTAB,A1
	CF	A14,STORE	1ST CHAR
	LDR	A1,A7
	ANK	A1,/F
	LC	A1,HEXTAB,A1
	CF	A14,STORE	2ND CHAR
	RTN	A14
HEXTAB	DATA	'0123456789ABCDEF'
	EJECT
* 
* 
*	STORE CHAR FROM A1 IN PRINT BUFFER
* 
* 
STORE	LD	A2,PRECBL
	SC	A1,PRBUF,A2 
	IM	PRECBL
	LDK	A1,0 
	ST	A1,XSPACE 
	RTN	A14
	EJECT
* 
* 
*	PUT SPACE IN BUFFER 
* 
* 
SPACE	LD	A1,XSPACE
	RF(NZ)	SPA100
	LDK	A1,/20 
	CF	A14,STORE 
	IM	XSPACE
SPA100	RTN	A14
XSPACE	DATA	0	SPACE INDICATOR 
* 
* 
*    CRLF IN BUFFER 
* 
* 
CRLF	EQU	*
	CF	A14,SPACE 
	LDK	A1,/0D 
	CF	A14,STORE 
	LDK	A1,/0A 
	CF	A14,SPACE 
	RTN	A14
**
* 
	END

Full view