|
|
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: 7764 (0x1e54)
Notes: pts_type(SC)
Names: »SLOGIN.SC«
└─⟦fce1dcf99⟧ Bits:30009704 Philips computer tape "KMD15"
└─⟦this⟧ »DLCSPY/SLOGIN.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