|
|
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: 13596 (0x351c)
Notes: pts_type(SC)
Names: »LOGCON.SC«
└─⟦fce1dcf99⟧ Bits:30009704 Philips computer tape "KMD15"
└─⟦this⟧ »LINSPY/LOGCON.SC«
IDENT LOGCON REL 1.1 78-04-21 870150140110 ********************************************************** * * LINE LOG TOOL * LOG CONTROL FUNCTIONS * * OESTEN HANSSON 1976-01-21 * ********************************************************** * * THIS MODULE HANDLES OPERATOR COMMUNICATION * * BY INITIALIZATION , LINE CODE MUST BE SPECIFIED * * A : ASCII-CODE WANTED * * E : EBCDIC-CODE WANTED * * THEN FOLLOWING KEYS ARE ALLOWED: * * O : OPEN RECEIVER 1 AND 2 * * C : CLOSE RECEIVER 1 AND 2 * * R : RESET RECEIVE BUFFER * * P : DEFINE IDLE-POLL PATTERN * *********************************************************** EJECT * * * ENTRY ASTART ENTRY EBASC * * EXTRN PRPOOL OCCUPIE PRINTER BUFFER POOL EXTRN LOGINP EXTRN TEXT1 EXTRN TEXT2 EXTRN TEXT3 EXTRN TEXT4 EXTRN TEXT5 EXTRN TEXT6 EXTRN PATT1 PATTERN AREA 1 EXTRN PATT2 PATTERN AREA 2 * * * EQUATES * * ECBBA EQU 2 ECBRC EQU 8 ECBCW EQU 10 * * RES 20 STACK FOR A14 STB EQU *-2 PROCCB DATA 0 ADDRESS TO PRINTER OCCUPIED BUFFFER EBASC DATA 0 0=EBCDIC , 1=ASCII EJECT * * * START LOG TEST TOOL * * ASTART EQU * CM PROCCB RELEASE PRINTER BUFFER LDKL A7,'OP' LKM DATA -4,OPCTRL ACTIVATE OPERATOR CONTROL TASK LDKL A7,'IN' LKM DATA -4,LOGINP ACTIVATE LOG TASK LKM DATA 3 EJECT * * * OPERATOR CONTROL TASK * * OPCTRL EQU * LDKL A14,STB LDK A7,' ' CF A14,OCCPR OCCUPIE PRINTER OPCT10 EQU * CF A14,CRLF LDKL A2,TEXT1 CF A14,PRTXT PRINT TEXT FOR CODE CHOICE CF A14,READ READ E OR A DATA KT100,FT100 LDK A7,'?' INVALID KEY CF A14,PRCH RB OPCT10 TRY AGAIN * * KT100 DATA /0241,'E' FT100 DATA OPCT20,OPCT30 * * EJECT OPCT20 EQU * IM EBASC ASCII-CODE WANTED RF OPCT40 OPCT30 EQU * CM EBASC EBCDIC-CODE WANTED OPCT40 EQU * STR A7,A14 SUKL A14,2 CF A14,CRLF ADKL A14,2 LDR* A7,A14 CF A14,PRCH CF A14,CRLF LDKL A2,TEXT6 CF A14,PRTXT CF A14,READE DATA KT110,FT110 LDK A7,'?' CF A14,PRCH RB OPCT40 * * KT110 DATA /0242,'O' FT110 DATA OPCT45,OPCT46 * * EJECT OPCT45 EQU * LDK A5,0 B AS IN BSC RF OPCT47 OPCT46 EQU * LDKL A5,/100 O AS IN OTHER OPCT47 EQU * CF A14,CRLF LDKL A8,CTECB LOAD ECB ADDRESS LDK A7,/85 LOAD ORDER 5 LDK A3,/32 LD A2,EBASC RF(Z) OPCT50 EBCDIC LDK A3,/16 OPCT50 EQU * ADR A3,A5 ST A3,ECBCW,A8 STORE SYNC-PATTERN LKM DATA 1 TRANSFER SYNC-PATTERN RF OPCOM EJECT * * * SUBROUTINE FOR TEXT PRINTING * * PRTXT EQU * LDR* A3,A2 GET LENGTH ST A2,PRXECB+2 STORE ADDRESS ADK A3,2 ST A3,PRXECB+4 STORE LENGTH LDK A7,/86 LDKL A8,PRXECB LKM DATA 1 STANDARD WRITE CF A14,CRLF RTN A14 * * PRXECB DATA /31,0,0,0,0,0 * * EJECT * * * OPCOM , OPERATOR COMMAND MODULE * * OPCOM EQU * LD A8,PROCCB RF(Z) OPCOM1 BUFFER NOT OCCUPIED LKM DATA -8,PRPOOL RELEASE BUFFER CM PROCCB OPCOM1 EQU * CF A14,READ READ COMMAND DATA KT200,FT200 ABL ERRORA INVALID KEY * * KT200 DATA /044F,'CRP' FT200 DATA OPEN,CLOSE,RESET,IDPOLL EJECT * * * LOG CONTROL * * OPEN EQU * LDK A7,' ' CF A14,OCCPR CF A14,CRLF LDKL A2,TEXT5 CF A14,PRTXT LDK A2,1 RF CLOSET RESET EQU * LDK A2,3 RESET RECEIVE BUFFER RF CLOSET CLOSE EQU * LDK A7,' ' CLOSE RECEIVER CF A14,OCCPR OCCUPIE PRINTER CF A14,CRLF LDKL A2,TEXT2 CF A14,PRTXT PRINT TEXT LDK A2,2 EJECT CLOSET EQU * LDKL A8,CTECB LDR A7,A2 LKM DATA 1 PERFORM ORDER FOR LOGG DRIVER SUK A7,2 ABL(Z) OPCT10 CLOSE ORDER CF A14,CRLF ABL OPCOM EJECT IDPOLL EQU * LDK A7,' ' DEFINE POLL PATTERN CF A14,OCCPR OCCUPIE PRINTER IDP10 EQU * CF A14,CRLF LDKL A2,TEXT3 CF A14,PRTXT PRINT TEXT CF A14,CRLF LDKL A4,PATT1 LOAD ADDRESS TO PATTERN AREA 1 ADK A4,2 LDK A3,/B CM PATT1 IDP20 EQU * CF A14,READE READ AND ECHO DATA KT300,FT300 CF A14,RDH100 LDR A6,A7 SAVE FIRST DIGIT SLL A6,4 CF A14,RDHEX READ ADR A7,A6 SAVE SECOND DIGIT SCR A7,A4 STORE IN PATTERN AREA ADK A4,1 IM PATT1 SUK A3,1 RF(Z) ERROR AREA OVERFLOW CF A14,PRSPAC RB IDP20 EJECT * * KT300 DATA /012A FT300 DATA IDP30 * * IDP30 EQU * IDP40 EQU * CF A14,CRLF LDKL A2,TEXT4 CF A14,PRTXT PRINT TEXT CF A14,CRLF LDKL A4,PATT2 LOAD ADDERSS TO PATTERN AREA 2 ADK A4,2 LDK A3,/B CM PATT2 EJECT IDP50 EQU * CF A14,READE READ AND ECHO DATA KT400,FT400 CF A14,RDH100 LDR A6,A7 SAVE FIRST DIGIT SLL A6,4 CF A14,RDHEX READ ADR A7,A6 SAVE SECOND DIGIT SCR A7,A4 STORE IN PATTERN AREA ADK A4,1 IM PATT2 SUK A3,1 RF(Z) ERROR AREA OVERFLOW CF A14,PRSPAC RB IDP50 EJECT * * KT400 DATA /012A FT400 DATA IDP60 * * IDP60 EQU * CF A14,CRLF LDKL A2,PATT1 ST A2,CTECB+2 STORE PATTERN ADDRESS LDK A2,4 LOAD ORDER 4 ABL CLOSET EJECT * * * TYPE: ? * ERRORA EQU * CF A14,OCCPR OCCUPIE PRINTER ERROR EQU * LDKL A14,STB LOAD STACK BASE LDK A7,'?' INVALID KEY CF A14,PRCH PRINT '?' CF A14,CRLF ABL OPCOM EJECT * * * CHECK HEXADEC. INPUT AND TRANSLATE * * CR=0 OK * CR=1,2 ILLEGAL CHAR * * HEXCH EQU * ADKL A14,4 SKIP STACK LDR A1,A7 SUK A1,'0' RF(N) HEXC90 SUK A1,9 RF(NP) HEXC10 NUMBER SUK A1,8 RF(N) HEXC90 SUK A1,5 RF(P) HEXC90 ADK A1,15 TRANSLATE HEX LETTER LDR A7,A1 RF HEX20 HEXC10 EQU * ADK A1,9 LDR A7,A1 HEX20 EQU * SUR A1,A1 RF HEX99 HEXC90 EQU * LDK A1,1 HEX99 EQU * ABR* A14 EJECT * * CTECB DATA /62,0,0,0,0,0 EJECT * * * PRINT ONE CHARACTER FROM A7 * * PRCH LDKL A8,PRECB SC* A7,ECBBA,A8 LDK A7,/85 LKM DATA 1 ADKL A11,1 COUNT CHARACTERS LDK A7,0 ST A7,XSPACE RESET SPACE INDICATOR LC* A7,ECBBA,A8 RESTORE A7 RTN A14 * * TYECB DATA /20,TYBUF,1,0,0,0 TYBUF RES 1 PRECB DATA /31,PRBUF,1,0,0,0 PRBUF DATA 0 EJECT * * * GENERATE CRLF * * CRLF EQU * LDK A7,/0D CF A14,PRCH LDK A7,/0A CF A14,PRCH IM XSPACE SET SPACE INDICATOR SUR A11,A11 CRLF90 EQU * RTN A14 EJECT * * * READ ONE CHARACTER FROM KEYBOARD TO A7 * * TWO WORDS FOLLOWING CALL GIVE KEYTABLE AND FUNCTION TABLE ADDRESSES * * ON ERROR GO TO NEXT INSTRUCTION ELSE TO FUNCTION * * A1 IS DESTROYED * * READ LD A7,4,A14 LD A1,2,A7 GET FUNCTION TABLE ADDRESS LDR* A7,A7 GET KEYTABLE ADDRESS LDKL A8,TYECB ST A7,ECBCW,A8 STORE KEYTABLE ADDRESS LDK A7,/82 STANDARD READ LKM DATA 1 READ05 EQU * ADKL A11,1 COUNT CHARS LDK A7,1 ST A7,XSPACE SET SPACE INDICATOR LC* A7,ECBBA,A8 GET CHARACTER TO A7 ANK A7,/7F LD A2,ECBRC,A8 RF(Z) READ10 READING OK LDK A1,4 ADS A1,4,A14 INCR RETURN ADDRESS RTN A14 READ10 AD A1,ECBCW,A8 ADD INDEX ADKL A14,4 ABR* A1 RETURN TO FUNCTION * * * READ AND ECHO * * READE EQU * LD A7,4,A14 * LD A1,2,A7 GET FUNCTION TABLE ADDRESS LDR* A7,A7 GET KEYTABLE ADDRESS LDKL A8,TYECB ST A7,ECBCW,A8 STORE KEYTABLE ADDRESS LDK A7,/82 STANDARD READ LKM DATA 1 LC* A7,ECBBA,A8 CF A14,PRCH ECHO LDKL A8,TYECB RB READ05 EJECT * * * READ HEXADECIMAL CHARACTER * * RDHEX CF A14,READE DATA KTRDH KTRDH DATA 0 NO KEYTABLE RDH100 SUK A7,/30 ABL(N) ERROR CWK A7,9 RF(NG) RDH110 SUK A7,7 ABL(N) ERROR CWK A7,/F ABL(G) ERROR RDH110 RTN A14 EJECT * * * EDIT CHAR FROM A7 IN HEXADECIMAL FORM * * EDHEX LDR A6,A7 SAVE A7 CF A14,SPACE LDK A7,'/' CF A14,PRCH LDR A7,A6 SRL A7,4 LC A7,HEXTAB,A7 CF A14,PRCH 1ST CHAR LDR A7,A6 ANK A7,/F LC A7,HEXTAB,A7 CF A14,PRCH 2ND CHAR CF A14,SPACE SPACE RTN A14 HEXTAB DATA '0123456789ABCDEF' * EJECT * * * PUT SPACE IN BUFFER * * SPACE LD A1,XSPACE RF(NZ) SPA100 PRSPAC LDK A7,' ' CF A14,PRCH IM XSPACE SPA100 RTN A14 XSPACE DATA 0 SPACE INDICATOR * * * * OCCUPIE PRINTER AND ECHO CHARACHTER IN A7 * * OCCPR EQU * LDR A1,A7 SAVE CHAR LDK A7,1 LKM DATA -7,PRPOOL GET BUFFER ST A8,PROCCB SAVE BUFFER ADDRESS CF A14,CRLF LDR A7,A1 RESTORE CHAR CF A14,PRCH ECHO RTN A14 * * * END ASTART