|
|
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: 17378 (0x43e2)
Notes: pts_type(SC)
Names: »DSPBSC.SC«
└─⟦a16d9b08d⟧ Bits:30009712 Philips computer tape "TOSS11"
└─⟦this⟧ »U3270.2/DSPBSC.SC«
IDENT DSPBSC REL 11.1 82-02-12 870150541110 =4 IMPROVEMENT OF =1 =3 SAVE A12 =2 IND. PRINTER NOT OP INIT. 81-11-20 =1 TEST DEVICE BEFORE CONNECT 81-04-08 ************************************************************* * * * MODULE DSPBSC * * MODULE HANDLING THE START UP OF THE * * VDUKB TASK, CONTROLLING SNA MODES * * AND MULTIPLE WAIT FOR KB AND DC. * * (EMULATION 3270 BSC) * * * ************************************************************* EJECT **************************************************************** * * * LIST OF ROUTINES * * * * VDUKB MAIN ROUTINE * * IOACT I/O ACTIVATION * IOCPL I/O COMPLETION * MATCH MATCH ADDRESS AND TASKID * INIT INITIALIZE THE TASK * * COMINI COMMON INIT ROUTINE * ECBINI INIT OF ECB:S * TSTDEV TEST KEYBOARD AND DISPLAY * * * **************************************************************** EJECT ********************************************************** * * * ENTRY POINTS * * * ********************************************************** ENTRY VDUKB START LABEL FROM DATSNA(CREDIT) ENTRY COMINI COMMON INIT ROUTINE ENTRY ECBINI INIT OF ECB:S ENTRY MATCH MATCH TASID AND PHYS. ADDRESS ********************************************************** * * * EXTERNAL REFERENCES * * * ********************************************************** EXTRN I:EVA0 CREDIT EVALUATION ROUTINE EXTRN OPEN OPEN DC (DCBSC) EXTRN CONCT CONNECT DC (DCBSC) EXTRN SETTIM SET REQUEST TIMEOUT (DCBSC) EXTRN ERASE ERASE SCREEN AND VDU BUFFER (VDU) EXTRN TSTMES TEST IF ANY MESSAGE (DCSNA) EXTRN READKB READ KEYBOARD WITH NO WAIT (KEYB) EXTRN KBINP MAIN ROUTINE IN KEYB-MODULE (KEYB) EXTRN DCINP MAIN ROUTINE IN DCSNA-MODULE (DCSNA) EXTRN LMP6OF OFFLINE LAMP OFF (KEYB) EXTRN LMP1ON DC LINE 1 (KEYB) EXTRN LMP2ON DC LINE 2 (KEYB) EXTRN SOUND SOUND ALARM AT DISPLAY (VDU) EXTRN LMP5ON ERROR LAMP ON (KEYB) EXTRN LMP5OF ERROR LAMP OFF (KEYB) EXTRN RESKB RESET KEYBOARD BUFFER (KEYB) EXTRN STOINF SAVE SCREEN INFORMATION (VDU) EXTRN ICVRED INTERTASK READ (KEYB) EXTRN ICINP INTERTASK INPUT (KEYB) EXTRN CHKSTA CHECK DC STATUS (DCBSC) EJECT ************************************************************* * * * CONDITIONAL ASSEMBLY PARAMETERS * * * ************************************************************* X:B EQU 15 NUMBER OF TASKS (1- ) NBRTSK EQU X:B X:C EQU 0 OFFLINE HANDLING IF :=1 OFLIN EQU X:C X:D EQU 1 NUMBER OF LINES (1-2) NBRLIN EQU X:D X:M EQU 0 COPY COMMNAND INCLUDED IF:=1 COPCMD EQU X:M X:O EQU 0 TEST INCLUDED IF:=1 TEST EQU X:O EJECT *********************************************************** * * * DECLARATIONS OF DATA AND EQUATES * * *********************************************************** * * ECB INDEX TABLE * ECBIND EQU * DATA 8 NUMBER OF ENTRIES DATA X'2000' ECB KB DATA X'3002' ECB PRINTER DATA X'4004' ECB SIGNAL DISPLAY DATA X'4206' ECB VDU DATA X'5008' ECB INTERTASK READ DATA X'510A' ECB INTERTASK WRITE DATA X'610C' ECB DC LINE1 DATA X'620E' ECB DC LINE2 * * SCREEN SIZE ON DISPLAY * LBVDU EQU 1920 * * MODES * HCPMOD EQU /4000 HARDCOPY OUTSTANDING * * TASK IDENTIFICATION CODE * VDUCOD EQU 'VV' KB/VDU EJECT * * RELATIVE ADDRESSES IN * TERMINAL WORKBLOCK TB1 * OFFFLG EQU 1962 OFFLINE FLAG PRTID EQU OFFFLG+2 TASKID FOR HARDCOPY MAIN EQU PRTID+6 WHICH DC LINE ECBBLK EQU MAIN+6 ECBBLK FOR MULTIPLE WAIT REGI EQU ECBBLK+16 SAVE AREA BSCMOD EQU REGI+32 BSC MODE ECBTAB EQU BSCMOD+2 ECB TABLE * * RELATIVE ADDRESSES IN * COMMON WORKBLOCK CB1 * MF1CU EQU 0 SYMBOLIC CLUSTER ADDDRESS IFF TEST=1 TSKTAB EQU MF1CU+24 TASK TABLE XIF IFT TEST=1 TSKTAB EQU MF1CU+219 TASK TABLE XIF EJECT ********************************************************* * * * VDUKB MAIN ROUTINE * * * ********************************************************* * REGISTERS * * A11= RESERVED * A13= RESERVED * ************************************************ VDUKB EQU * . =4 CF A14,INIT INITIALIZE THE TASK VDU200 EQU * CF A14,IOACT PREPARE ECB-BLK LDKL A7,ECBBLK ADR A7,A11 LKM DATA 7 MULTIPLE WAIT CF A14,IOCPL TAKE CARE OF REQUEST RB VDU200 HERE WE GO AGAIN EJECT * * * POSSIBLE LAYOUTS OF ECB-BLK * * * * * MODE /0000 /4000 * * * BLK 2 3 * KB KB * DC DC * IC * * * EJECT ************************************************************ * * * IOACT I/O ACTIVATION * * ************************************************************ * REGISTERS * * A4= NUMBER OF ENTRIES IN ECB BLOCK * A11= CREDIT WORK AREA * A13= RESERVED * ********************************************************** IOACT EQU * LDK A4,0 LD A1,BSCMOD,A11 ADK A4,1 INCREMENT NUMBER OF WAITS LD A2,ECBBLK+4,A11 REQ. ALREADY OUTST.? RF(NZ) IOAC10 YES CF A14,TSTMES TEST MESSAGE ST A8,ECBBLK+4,A11 IOAC10 EQU * IFT COPCMD=1 ANKL A1,HCPMOD HARDCOPY OUTSTANDING? RF(Z) IOAC30 NO XIF ADK A4,1 INCREMENT NUMBER OF WAITS LD A2,ECBBLK+6,A11 RF(NZ) IOAC30 INTERTASK ALREDY OUTSTANDING CF A14,ICVRED READ INTERATSK ST A8,ECBBLK+6,A11 IOAC30 EQU * ADK A4,1 EVEN MORE LD A2,ECBBLK+2,A11 KB OUTSTANDING? RF(NZ) IOAC40 YES CF A14,READKB READ KEYBOARD ST A8,ECBBLK+2,A11 IOAC40 EQU * ST A4,ECBBLK,A11 SAVE NUMBER OF WAITS RTN A14 EJECT ************************************************************ * * * IOCPL I/O COMPLETION * * ************************************************************ * REGISTERS * * A11= CREDIT WORK AREA * A13= RESERVED * ************************************************************ IOCPL EQU * CW A8,ECBBLK+2,A11 KB INPUT RF(NE) IOCP10 NO CM ECBBLK+2,A11 CF A14,KBINP TAKE CARE OF KB RF IOCP90 IOCP10 EQU * CW A8,ECBBLK+4,A11 DC? RF(NE) IOCP20 NO CM ECBBLK+4,A11 CF A14,DCINP TAKE CARE OF DC RF IOCP90 IOCP20 EQU * CM ECBBLK+6,A11 CF A14,ICINP TAKE CARE OF INTERTASK IOCP90 EQU * RTN A14 EJECT *************************************************************** * * MATCH MATCH TASKID AND PHYS. ADDRESS * *************************************************************** * REGISTERS * * **************************************************************** MATCH EQU * IFT COPCMD=1 LDK A1,NBRTSK GET NUMBER OF ENTRIES LD A3,6,A13 ADKL A3,TSKTAB START OF TABLE MATC10 EQU * CC A2,+2,A3 SAME ADDRESS? RF(E) MATC30 YES ADK A3,4 NEXT SUK A1,1 ALL CHECKED? RB(NZ) MATC10 NO MATC20 EQU * LDK A1,1 INDICATE NOT FOUND RF MATC90 MATC30 EQU * LCR A1,A3 CCK A1,VDUCOD COPY IN RIGHT DIRECTION? RB(NE) MATC20 NO LDK A1,0 LDR* A2,A3 MATC90 EQU * XIF RTN A14 EJECT ************************************************************ * * * INIT INITIALIZE THE TASK * * * ************************************************************ * REGISTERS * * A11= CREDIT WORK AREA * A13= RESERVED * ************************************************* INIT EQU * CF A14,COMINI COMMON INIT IFT OFLIN=1 . =3 LD A1,2,A14 SAVE A12&A13 ON A14-STACK =3 LD A2,4,A14 . =3 ST A12,4,A14 . =3 ST A13,2,A14 . =3 STR A2,A14 . =3 ST A1,-2,A14 . =3 SUKL A14,4 UPDATE STACK POINTER =3 XIF . =3 CF A14,ECBINI INIT OF ECB:S CF A14,TSTDEV TEST KB&VDU =4 CF A14,OPEN OPEN DC LDKL A8,20 LKM DATA 6 CF A14,CONCT CONNECT DC CF A14,SETTIM SET REQUEST TIMEOUT LDK A2,NBRTSK NUMBER OF TASK ENTRIES LD A9,REGI,A11 RESTORE TASKTAB ADDRESS INIT10 EQU * SUK A2,1 RF(N) INIT20 ADKL A9,4 LCR A1,A9 ANK A1,/FF ANY TASK AT ALL? RB(Z) INIT10 NO CCK A1,'VV' DISPLAY TASK? RB(E) INIT10 YES SLL A1,8 LC A1,+1,A9 ST A1,PRTID,A11 INIT20 EQU * IFT OFLIN=1 . =3 . =3 . =3 . =3 . =3 . =3 . =3 CM OFFFLG,A11 CF A14,LMP6OF TURN OFF OFFLINE LAMP XIF LDK A4,0 LDKL A5,LBVDU+1 UNFORMATTED SCREEN LDK A6,0 CF A14,STOINF SAVE SCREEN INFORMATION CF A14,ERASE ERASE THE WHOLE SCREEN IFT NBRLIN=2 LD A1,MAIN,A11 DC LINE 1? RF(Z) INIT30 YES CF A14,LMP2ON INDICATE DC LINE 2 RF INIT40 INIT30 EQU * XIF CF A14,LMP1ON INDICATE DC LINE 1 INIT40 EQU * CF A14,CHKSTA CHECK IF LINE OK RTN A14 EJECT ********************************************************** * * * COMINI COMMON INIT ROUTINE * * * ********************************************************** * REGISTERS * * A11= CREDIT WORK AREA * A13= RESERVED * ********************************************************** COMINI EQU * CF A14,I:EVA0 LDR A11,A9 LOAD TASK AREA BASE LDR* A2,A11 GET TASKID LD A3,6,A13 COMMON BLOCK BASE LDR A1,A2 ANK A1,X'FF' SUK A1,X'30' GET OFFSET IN TASK TABLE SLL A1,2 TWO WORDS ENTRIES LDKL A4,TSKTAB ADR A4,A3 ADR A1,A4 POINT TO YOUR LABLE ST A1,REGI,A11 SAVE TASKTAB ADDRESS SC A2,+1,A1 SAVE TASKID SRL A2,8 SCR A2,A1 CCK A2,VDUCOD DISPLAY TASK? =2 RF(E) COMI10 YES! =2 LDK A2,1 . =2 SC A2,+3,A1 IND. PRINTER NOT OP =2 COMI10 EQU * . =2 RTN A14 EJECT * * * ECB TABLE LAYOUT * * * * DISPLACEMENT I/O FILECODE * * 0 KB /20 * 2 PRINTER /30 * 4 SIGNAL/DISP. /40 * 6 VDU /42 * 8 INTERTASK R. /50 * 10 INTERTASK W. /51 * 12 DC LINE 1 /61 * 14 DC LINE 2 /62 * * * * EJECT ************************************************************* * * * ECBINI INIT OF ECB:S * * * ************************************************************* * REGISTERS * * A4 = NUMBER OF ENTRIES * A5 = NUMBER OF FC ALLOWED * A6 = DAT POINTER * A7 = ECB FC POINTER * A8 = DATA SET POINTER * A11= CREDIT WORK AREA * A13= RESERVED * ************************************************************ ECBINI EQU * LD A2,-8,A13 GET T:D ADDRESS LD A4,+4,A2 GET NUMBER OF ENTRIES LD A8,+6,A2 ADR A8,A13 LDR A6,A8 DAT POINTER SUKL A8,20 DATA SET POINTER ECBI10 EQU * LD A5,ECBIND NUMBER OF FC:S LDKL A7,ECBIND+2 FIRST FILE CODE LC A2,+1,A6 DATA SET FC ECBI20 EQU * CCR A2,A7 FC IN DAT = FC CONFIGURED? RF(E) ECBI30 YES ADK A7,2 NEXT SUK A5,1 NOT FOUND? RB(NZ) ECBI20 NOT YET LDKL A1,* DIAGNOSTIC ST A1,REGI,A11 LKM DATA 3 WRONG GENERATION ECBI30 EQU * SC A2,+1,A8 SAVE FC IN DATA SET LD A2,+2,A6 GET FIXED LENGTH IF ANY ST A2,+4,A8 SAVE IN DATA SET LD A2,+18,A8 GET FIXED BUFFER IF ANY ST A2,+2,A8 SAVE IN DATA SET LC A2,+1,A7 GET INDEX TO ECB TABLE ANK A2,/FF ADR A2,A11 ST A8,ECBTAB,A2 SAVE ECB ADDRESS ADK A6,4 SUKL A8,20 SUK A4,1 ALL DONE? RB(NZ) ECBI10 NO RTN A14 EJECT ************************************************************* * * * TSTDEV TEST KEYBOARD AND DISPLAY * * * ************************************************************* * REGISTERS * * A11= CREDIT WORK AREA * A13= RESERVED * ************************************************* TSTDEV EQU * CF A14,SOUND TURN ON SOUND ALARM AT VDU ANK A1,/1 OPERABLE? RF(Z) TSTD10 YES CF A14,LMP5ON TRY TO INDICATE ERROR LDKL A8,300 WAIT LKM DATA 6 RB TSTDEV TRY AGAIN TSTD10 EQU * CF A14,LMP5OF ERROR LAMP OFF ANK A1,/1 OPERABLE? RF(Z) TSTD90 YES CF A14,SOUND INDICATE ERROR LDKL A8,300 WAIT LKM DATA 6 RB TSTD10 TRY AGAIN TSTD90 EQU * CF A14,RESKB RESET KEYBOARD RTN A14 END