|
|
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: 11062 (0x2b36)
Notes: pts_type(SC)
Names: »DRSW01.SC«
└─⟦48601905a⟧ Bits:30009668 Philips computer tape "600121"
└─⟦this⟧ »M:TU10/DRSW01.SC«
└─⟦d2a299635⟧ Bits:30009698 Philips computer tape "600415"
└─⟦this⟧ »M:TU10/DRSW01.SC«
IDENT DRSW01 REL 10.0 80-03-14 870105041000 * * ******************************************************************* * * PHILIPS TERMINAL SYSTEM PTS * * DRSW01 = DRIVER SWITCH * * * * * * ******************************************************************* * * * THIS MODULE CONTAINS THE FOLLOWING FUNCTIONS * WHICH ARE COMMON PARTS FOR CHANNEL UNIT DRIVERS. * * * -OUTPUT SEND ONE CHARACTER,SAVE A3-A5 AND RETURN TO DISPATCHER * * -OUTLIN CHECK WHICH CHANNEL UNIT DRIVER TO USE * * -STREG SAVE A3-A5 AND RETURN TO DISPATCHER * * -LDREG IF INTERRUPT IS ALLOWED, RESTORE A3-A5 AND RETURN * TO USER VIA A5 * * -LDREGE RESTORE A3-A5 AND RETURN TO USER VIA A5 * * -GETCHR GET ONE CHARACTER FROM ECB-BUFFER * * -ECHO ECHO CHARACTER * * -ECHEND END OF ECHO * * EJECT * *********** * ENTRIES * *********** * * ENTRY OUTLIN SEND CHARACTER ENTRY OUTPUT SAVE REGISTERS, SEND CHAR. AND DISPATCH ENTRY LDREG RESTORE A3-A5 ANDRETURN ENTRY LDREGE WAY BACK FROM ECHO HANDLING ENTRY LDREGF RETURN ENTRY STREG SAVE REGISTERS A3-A5 IN DWT ENTRY GETCHR GET ONE CHARACTER FROM ECB-BUFFER ENTRY ECHRTN RETURN FROM ECHO ENTRY ECHO ECHO ROUTINE ENTRY ECHEND END OF ECHO EJECT * * ******************************** * EXTERNAL TOSS MODULE ENTRIES * ******************************** * EXTRN SAVE8 SAVE REGISTERS A1-A8 EXTRN TDISP DISPATCHER EXTRN TENDIO END I/O EXTRN OUTLRT DRIVER FOR LOCAL OR REMOTE TERMINALS EXTRN OUTSAL SALCUZ DRIVER EXTRN OUTASC ASCU4Z DRIVER EJECT * ****************** * DWT PARAMETERS * ****************** * * EXTRN DWTST STATUS EXTRN DWTOR ORDER EXTRN DWTECB ECB-ADDRESS EXTRN DWTADR ADDRESS TO ADDRESSBLOCK EXTRN DWTWAT WAIT/ACTIVATE INDICATOR EXTRN DWTA3 SAVE AREA A3 EXTRN DWTA4 SAVE AREA A4 EXTRN DWTA5 SAVE AREA A5 EXTRN DWTSB2 STACK BASE 2 EXTRN DWTECH ECHO DEVICE DWT * EXTRN ECHADR ECHO ADDRESS DISPLACEMENT * EJECT * ************************ * CONDITIONAL ASSEMBLY * ************************ * * ECHO FUNCTION CAN BE EXCLUDED * BY SETTING X:A=0 * X:A EQU 1 CECHO EQU X:A * * BY SETTING X:B=1 DRIVER FOR LOCAL OR * REMOTE TERMINALS CAN BE USED * X:B EQU 1 LRT EQU 01 * * BY SETTING X:C=1 SALCUZ DRIVER CAN BE USED * X:C EQU 1 SALCUZ EQU 00 * * * BY SETTING X:D=1 ASCU4Z DRIVER CAN BE USED * X:D EQU 1 ASCU4Z EQU 00 * * A PROGRAM VERSION USING THE EXTENDED INSTRUCTION SET * IS OBTAINED BY SETTING CPU852 EQU 0 * CPU852 EQU 1 * EJECT * * O U T L I N * * CHECK CHANNEL PARAMETER WHICH CHANNEL UNIT * DRIVER TO USE * * OUTLIN EQU * IFT CPU852=1 CF A15,SAVE8 SAVE A1-A8 ON STACK XIF * IFT CPU852=0 MSR 8,A15 SAVE A1-A8 ON STACK XIF * LDR* A1,A6 CHANNEL PARAMETER ANK A1,/F CHANNEL INDEX * IFT LRT=1 SUK A1,/C ABL(N) OUTLRT CULT OR CURT ADK A1,/C XIF * IFT ASCU4Z=1 LDR A7,A1 SUK A7,/C RF(N) OUTL10 SUK A7,/3 ABL(N) OUTASC ASCU4Z XIF * OUTL10 EQU * IFT SALCUZ=1 SUK A1,/F ABL(E) OUTSAL SALCUZ XIF RF EXIT EJECT * * O U T P U T * * SEND ONE CHARACTER VIA 'OUTLIN' INDICATE INTERRUPTS * ALLOWED AND SAVE A3-A5 IN DWT. * * OUTPUT EQU * ANK A2,/FF LDR A1,A2 SUK A1,/82 STX ? RF(E) OUTP05 YES SUK A1,/15 ETB ? RF(NE) OUTP10 NO OUTP05 EQU * LDR* A1,A6 CHANNEL PARAMETER ANK A1,/C LT? RF(E) LDRE10 YES SUK A1,/C RT? RF(E) LDRE10 NO OUTP10 EQU * CF A15,OUTLIN SEND ONE CHARACTER VIA CHANNEL UNIT EJECT * * * S T R E G * * INDICATE INTERRUPTS ALLOWED AND SAVE A3-A5 IN DWT * * STREG EQU * INH LDKL A1,/100 ORS A1,DWTST,A6 INDICATE INTERRUPTS ALLOWED ST A3,DWTA3,A6 SAVE REGISTER A3 ST A4,DWTA4,A6 A4 ST A5,DWTA5,A6 A5 EXIT ABL TDISP EJECT * * L D R E G * * IF INTERRUPT ALLOWED RESTORE A3-A5 FROM DWT AND RETURN * VIA A5. ELSE GO TO DISPATCHER. * * LDREG EQU * LD A3,DWTST,A6 ANKL A3,/100 RB(Z) EXIT XRS A3,DWTST,A6 * * * L D R E G E * * RESTORE A3-A5 FROM DWT AND RETURN TO USER VIA A5 * * LDREGF EQU * LD A5,DWTA5,A6 A5 LDREGE EQU * LD A3,DWTA3,A6 RELOAD REGISTER A3 LD A4,DWTA4,A6 A4 LDRE10 LD A7,DWTOR,A6 GET ORDER ANK A7,/FF LD A8,DWTECB,A6 RTN A5 RETURN VIA A5-STACK EJECT * * * G E T C H R * * SUBROUTINE TO GET ONE CHARACTER FROM ECB-BUFFER * * ON ENTRY: * * A3 = BUFFER INDEX * A8 = ECB-ADDRESS * * ON EXIT: * * A2 = CHARACTER * A1 = 0 IF LAST CHARACTER ELSE # 0 * * IF LAST CHARACTER IS REACHED A3 IS STORED IN ECB EFFECTIVE LENGTH * * GETCHR EQU * LD A1,4,A8 REQUESTED LENGTH SUR A1,A3 RF(NP) GCH010 LAST CHARACTER REACHED LD A2,2,A8 GET BUFFER ADDRESS ADR A2,A3 LCR A2,A2 CHAR. TO A2 ANK A2,/FF ADK A3,1 INCREMENT BUFFER INDEX RF GCH020 GCH010 ST A3,6,A8 STORE EFFECTIVE LENGTH GCH020 EQU * RTNA15 ADKL A15,2 RETURN AND ENABLE ENB LDR* P,A15 EJECT * * * E C H O , E C H E N D * * SUBROUTINE TO ECHO CHARACTER CONTAINING TWO PARTS, * ONE GENERAL AND ONE DEVICE-DEPENDENT * * PART ONE: FIND DWT-ADDRESS OF ECHO-DEVICE, * LOAD STACKBASE AND FIND ADDRESS * TO DEVICE-DEPENDENT ECHO-ROUTINE * * PART TWO: ECHO ONE OR MORE CHARACTERS * CORRESPONDING TO ONE CHARACTER * TO BE STORED IN INPUT ECB-BUFFER * * * PART ONE FOLLOWS AND PART TWO CAN BE FOUND * IN THE DRIVER MODULE CORRESPONDING TO ECHO * OUTPUT DEVICE * * RESTRICTIONS IN DEVICE DEPENDENT ECHO DRIVER * * A7 MUST NOT BE DESTROYED * THE ECHO-ROUTINE SHOULD BE TERMINATED WITH A * JUMP TO 'ECHRTN'. * ECHEND EQU * * IFT CECHO=1 * LDKL A7,/8000 INDICATE END I/O XIF ECHO EQU * IFT CECHO=1 ST A3,DWTA3,A6 SAVE A3-A5 IN DWT ST A4,DWTA4,A6 ST A5,DWTA5,A6 LD A1,DWTST,A6 STATUS SLL A1,2 RF(NN) RETUR NO ECHO REQUESTED LDR A4,A6 SAVE DWT-ADDRESS OF INPUT DEVICE LD A6,DWTECH,A6 DWT-ADDRESS OF OUTPUT DEVICE ST A4,DWTWAT,A6 SAVE DWT-ADDRESS OF INPUT DEVICE LDKL A5,DWTSB2 ADR A5,A6 STACKBASE-ADDRESS IN A5 LD A1,DWTADR,A6 ADDRESS TO ADDRESS-BLOCK ABI ECHADR,A1 GO TO ECHO-ROUTINE DEVICE-DEPENDENT XIF ECHRTN EQU * IFT CECHO=1 LDR A7,A7 END? RF(NN) ERETUR NO CF A15,TENDIO END I/O OUTPUT DEVICE ERETUR LD A6,DWTWAT,A6 RELOAD DWT-ADDRESS OF INPUT DEVICE RETUR ABL LDREGF RELOAD A3-A5 AND RETURN VIA A5 * END