|
|
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: 23078 (0x5a26)
Notes: pts_type(SC)
Names: »DRDCH1.SC«
└─⟦fce1dcf99⟧ Bits:30009704 Philips computer tape "KMD15"
└─⟦this⟧ »DLCSIM/DRDCH1.SC«
IDENT DRDCH1 REL 1.1 78-04-21 870150240110 **************************************************************** * * DRIVER FOR TEST TOOL * * HDLC DRIVER FOR CC SIMULATOR * * HSON 76-04-29 * ****************************************************************** * * * ENTRIES * * ENTRY DRLGOA ACTIVATION OF CONTROL ENTRY DCH1ON POWER ON RECOVERY ENTRY DRLGIA ACTIVATION OF INPUT ENTRY DRLGUA ACTIVATION OF OUTPUT ENTRY IHH101 INPUT INTERRUPT ENTRY IHH102 OUTPUT INTERRUPT ENTRY DWH101 CONTROL IO ENTRY DWH102 LOG INPUT ENTRY DWH103 LOG OUTPUT * * * EXTERNAL REFERENCES * * EXTRN DWTECB ECBADDRESS EXTRN TENDIO END OF EVENT EXTRN TDISP DISPATCHER EXTRN DISIOE EXTRN SAVE8 SAVE 8 REGS ON A15 STACK EXTRN SETIME SET TIMER * EXTRN DWTST DWT STATUS EXTRN DWTOR DWT ORDER EJECT * * DEVICE ADRESSES * * DALGIN EQU /02 INPUT DEVICE ADDRESS DALGUT EQU /12 OUTPUT DEVICE ADDRESS * * * * * RELATIVE ECB EQUATES * * ECBBA EQU 2 ECBRL EQU 4 ECBEL EQU 6 ECBRC EQU 8 ECBCW EQU /A EJECT * * * INSTRUCTION EQUATES * * CINRTS EQU /1 NO REQUEST TO SEND CIT4WP EQU /2 TRANSMIT 4-WIRE PC CIT2WP EQU /3 TRANSMIT 2-WIRE PC CIT4WM EQU /A TRANSMIT 4-WIRE MUX CIT2WM EQU /B TRANSMIT 2-WIRE MUX CIIDLE EQU /4 TRANSMIT IDLE '1' * * * CIO START IN COMMANDS * * CICMO EQU /2 CONNECT MODEM CIDISC EQU /1 DISCONNECT MODEM CIWAIC EQU /3 WAIT FOR CALL CIREPC EQU /5 RECEIVE ON PC CIAREP EQU /4 RECEIVE ALARM ON PC CIREMX EQU /B RECEIVE ON MUX CIAREM EQU /E RECEIVE ALARM ON MUX * * * * DEVICE WORK AREA EQUATES * * DWTSAV EQU /20 REGISTER SAVE AREA DWTA4 EQU DWTSAV+6 A4 SAVE AREA DWTA5 EQU DWTSAV+8 A5,SAVE AREA STB EQU /1E RELATIVE STACK BASE EJECT * * * WORK AREAS * * RECIND DATA 0 TRAX DATA 0 FIRST OUTPUT INTERRUPT INDICATOR POLFIN DATA 1 FORTWO DATA 0 FOUR WIRE IF ZERO PROCED DATA 0 COMMON FLAG FOR HDLC SDLC TRAIND DATA 0 WATIPO DATA 0 WRTIMP DATA 0 TIMER POINTER MESEXP DATA 0 MESSAGE EXPECTED INDICATOR BFULL DATA 0 PBUFIN DATA BSTART PBUFUT DATA BSTART BSTART EQU * RES 3000 BEND EQU *-2 EJECT * * *DRIVER ACTIVATION* * *INPUT REQUEST * * DRLGIA DATA LGINAC DWT REFERENCE * * LGINAC SUK A7,1 RF(Z) ENDR ORDER 01: READ GENERAL LIA100 ABL DISIOE ILLEGAL ORDER * EJECT * * * END READ REQUEST? * * ENDR EQU * INH LDKL A5,STB+DWH101 LDKL A6,DWH102 LD A8,DWTECB,A6 LD A1,PBUFUT ENDR10 CW A1,PBUFIN RF(E) ENDR20 NO NEW CHARACTEIN BUFFER ADK A1,2 CWK A1,BEND RF(NE) ENDR15 NOT END OF BUFFER LDKL A1,BSTART ENDR15 EQU * LDR* A2,A1 ANKL A2,/FF00 RF(NZ) ENDR30 PCOUNTER OR COMMENT LD A2,BFULL SUK A2,1 RF(Z) ENDR50 BUFFER FULL EJECT * * *ORDINARY CHARACTER * ST A1,PBUFUT LDR* A2,A1 FETCH CHARACTER CF A5,STORA STORE IN REQUEST BUFFER SUK A2,/FF RF(E) ENDR17 COMPLETE REQUEST ON MARK HOLD LD A2,ECBEL,A8 CW A2,ECBRL,A8 RB(NE) ENDR10 NOT END OF REQUESTED LINE ENDR17 LDK A1,0 ENDEND CF A15,TENDIO ABL TDISP * * NO ENDING OF REQUEST * ENDR20 EQU * CF A15,SETIME DATA ENDR,5 CM BFULL ABL TDISP EJECT * * ENDR30 EQU * LD A3,ECBEL,A8 RB(NZ) ENDR17 COMPLETE PREVIOUS REQUEST ST A1,PBUFUT POLL/COMMENT LDR* A2,A1 * * COMMENT * ENDR40 EQU * CF A5,STORA LDKL A1,/2000 RETURN CODE RB ENDEND * * BUFFER FULL ENDR50 EQU * LD A3,ECBEL,A8 RB(NZ) ENDR17 IM BFULL LDKL A2,/240 RB ENDR40 EJECT * * * STORE CHATACTER IN A2 IN REQUEST BUFFER * * STORA LD A3,ECBBA,A8 AD A3,ECBEL,A8 SCR A2,A3 IM ECBEL,A8 RTN A5 EJECT * * *OUTPUT * * DRLGUA DATA LGUTAC * * LGUTAC SUK A7,6 RB(NZ) LIA100 ILLEGAL ORDER * * * WRITE REQUEST * * LGUT10 EQU * LDK A5,STB ADKL A5,DWH103 LOAD STACKPOINTER LDKL A6,DWH103 LD A8,DWTECB,A6 LD A1,ECBCW,A8 ST A1,TRA300 SAVE TIMEOUT VALUE ABL TRAMIT EJECT * * * CONTROL COMMANDS * * DRLGOA DATA LGOPAC DWT REFERENCE * * LGOPAC EQU * LDK A5,STB ADKL A5,DWH101 ST A5,DWTA5+DWH101 STORE STACK POINTER LD A8,DWTECB,A6 LD A7,ECBCW,A8 ANK A7,/F LDR A1,A7 SUK A1,1 RF(Z) OPEN CW=1 SUK A1,1 RF(Z) RESET CW=2 SUK A1,2 RF(Z) ENDW CW=4 SUK A1,1 RF(Z) CLOSE SUK A1,1 RF(Z) SPEPRO SUK A1,1 RF(Z) SPWIRE RB LIA100 ILLEGAL ORDER EJECT CLOSE LDK A5,STB ADKL A5,DWH102 CF A5,HALTIN CF A5,DISCON LDKL A1,BSTART ST A1,PBUFIN ST A1,PBUFUT LDKL A2,/242 CF A5,STORE RF RESET0 * * * SPECIFY LINE PROTOCOL * * SPEPRO LD A1,ECBBA,A8 ST A1,PROCED RF RESET1 * * * SPECIFY WIRE TYPE * * SPWIRE LD A1,ECBBA,A8 ST A1,FORTWO RF RESET1 EJECT * * * OPEN RECEIVER * * OPEN EQU * LDK A5,STB LOAD STACK POINTER ADKL A5,DWH102 CF A5,HALTIN CF A5,DISCON HALT COMMUNICATION CF A5,CONMOD CONNECT MODEM IM POLFIN LDKL A1,BSTART ST A1,PBUFIN RESET BUFFER ST A1,PBUFUT OP250 LDK A1,0 CF A15,TENDIO ABL RECEIV OPEN RECEIVER EJECT * * * DISCONNECT MODEM * * DISCON EQU * LDK A2,1 LDK A1,CIDISC CIO A1,1,DALGIN DISCONNECT MODEM RF(A) CONM20 RF(NA) CONM15 RF CONM10 * * * CONNECT MODEM * * CONMOD EQU * LDK A2,1 LDK A1,CICMO CIO A1,1,DALGIN CONNECT MODEM RF(A) CONM20 RF(NA) CONM15 CONM10 EQU * ADKL A2,/4000 DEVICE ADDRESS UNKNOWN CONM15 EQU * ADKL A2,/8000 COMMAND NOT ACCEPTED CF A5,LOGG RTN A5 CONM20 EQU * CF A5,LOGG ABL READ WAIT FOR MODEM NOT READY EJECT * * *RESET BUFFER * * RESET EQU * LDKL A1,BSTART ST A1,PBUFIN ST A1,PBUFUT RESET0 EQU * LDKL A2,/241 COMMENT: BUFFER RESET CF A5,STORE LDK A1,/0 ST A1,BFULL RESET,BFULL RESET1 EQU * LDK A1,0 CF A15,TENDIO ABL TDISP EJECT * * *END WRITE REQUEST * * ENDW EQU * LDK A1,/2 RETURN CODE CF A15,TENDIO ENDW01 EQU * CM WATIPO LDK A1,/80 REQUEST ABORT ENDW05 EQU * LDKL A6,DWH103 CM TRAIND CM MESEXP ENDW1 EQU * CF A15,TENDIO ABL TDISP EJECT * * * RECEIVE MODULE * * RECEIV EQU * LDK A5,STB ADKL A5,DWH102 LOAD STACK POINTER CM RECIND CF A5,STINP START RECEIVER AND COLLECT DATA ANK A1,1 RF(Z) REC100 LDKL A2,/242 CF A5,STORE CF A5,DISCON ABL TDISP REC100 EQU * LD A1,MESEXP RF(Z) REC200 UNEXPECTED MESSAGE LD A1,RECIND RB(Z) RECEIVE NO DATA REC150 EQU * CM MESEXP LDKL A6,DWH103 LD A1,2,A6 RF(N) REC200 NO REQUEST WAS THERE LDK A1,0 CF A15,TENDIO COMPLETE WRITE REQUEST CM TRAIND REC200 EQU * CM RECIND NOT BUSY RECEIVING LD A1,TRAIND RF(Z) REC300 NO WRITE ON QUEUE LD A1,WATIPO RF(Z) REC250 CM* WATIPO CM WATIPO REC250 EQU * ABL LGUT10 REC300 EQU * LDKL A6,DWH102 RB RECEIV ENTER IDLE RECEIVE EJECT * * * TRANSMIT MODULE * * TRAMIT EQU * IM TRAIND INDICATE TRANSMISSION LD A1,RECIND RF(Z) TRA100 NOT BUSY RECEIVING TRA050 EQU * CF A15,SETIME DATA ENDW01,50 ST A4,WATIPO ABL TDISP WAIT MAX 5 SECONDS FOR RECEIVER TRA100 EQU * LD A1,POLFIN * * RB(Z) TRA050 REMOVED !!!!!! CF A5,HALTIN HALT INPUT LDKL A6,DWH103 LDKL A2,/200 CF A5,STORE STORE COMMENT C: LD A3,ECBRL,A8 GET LENGTH LDR A1,A3 ANKL A1,/E000 RF(NZ) TRA110 ODD BITS PRESENT LDR A2,A3 ANK A2,1 RF(Z) TRA130 EVEN NR OF BYTES RF TRA120 ODD NR OF BYTES TRA110 EQU * SRL A1,5 LDR A2,A3 ANK A2,1 RF(NZ) TRA130 ODD NR OF BYTES AND BITS TRA120 EQU * ORKL A1,/800 TRA130 EQU * ANKL A3,/3FF MASK BIT AREA LD A4,ECBBA,A8 GET BUFFER ADDRESS LD A2,FORTWO RF(Z) TRA140 4-WIRE CF A5,STOUT2 RF TRA200 TRA140 EQU * CF A5,STOUT4 TRA200 EQU * LDK A2,/FF CF A5,STORE LD A1,FORTWO RF(Z) TRA250 4-WIRE CF A5,IDLONE CF A5,NORTS TRA250 EQU * LD A1,TRA300 RF(Z) TRA400 NO TIMING RB(N) REC150 IMMEDIATE COMPLETION CF A15,SETIME DATA TRA500 TRA300 EQU * DATA 0 ST A4,WRTIMP TRA400 EQU * IM MESEXP CM TRAIND ABL REC300 START RECEIVER TRA500 EQU * INH CM TRA300 CM WRTIMP LDKL A2,/245 LDK A5,STB ADKL A5,DWH103 CF A5,STORE LDKL A1,/100 SET RETURN CODE LDKL A6,DWH103 CM TRAIND CM MESEXP CF A15,TENDIO COMPLETE WRITE REQUEST CF A5,HALTIN ABL REC300 EJECT ************************************************ * *READ ONE CHARACTER * * READ EQU * RETURN EQU * ST A3,LCA3 ST A4,LCA4 ST A5,LCA5 ST A6,LCA6 ST A7,LCA7 ST A8,LCA8 ABL TDISP GO TO DISPATCHER EJECT * * *STORE ONE CHARACTER * * STORE EQU * STR A1,A15 STR A2,A15 LD A1,BFULL RF(NZ) STOR20 LD A1,PBUFIN ADK A1,2 CWK A1,BEND RF(NE) STOR10 NOT END OF RING BUFFER LDKL A1,BSTART STOR10 CW A1,PBUFUT RF(E) STOR30 BUFFER FULL STOR15 STR A2,A1 STORE CHAR. ST A1,PBUFIN STOR20 LDR* A2,A15 LDR* A1,A15 RTN A5 * *BUFFER FULL * STOR30 EQU * IM BFULL RB STOR20 EJECT * * *RESTART INPUT * * STINP EQU * LDK A2,1 LDK A1,CIREPC CIO A1,1,DALGIN START RECEIVER RF(A) HALT20 RF(NA) HALT15 RF HALT10 * * * START CHLC TRANSMITTER * 2-WIRE CASE * * STOUT2 EQU * LDK A2,/10 ADK A1,CIT2WP 2-WIRE IM TRAX STOU10 EQU * CIO A1,1,DALGUT START TRANSMITTER RF(A) HALT20 RF(NA) HALT15 RF HALT10 * * * START CHLC TRANSMITTER * 4-WIRE CASE * * STOUT4 LDK A2,/10 ADK A1,CIT4WP IM TRAX RB STOU10 EJECT * * * NO REQUEST TO SEND * * NORTS EQU * LDK A2,/10 LDK A1,CINRTS NO REQUEST TO SEND RB STOU10 * * * IDLE ONE * * IDLONE LDK A2,/10 LDK A1,CIIDLE IDLE ONE RB STOU10 EJECT * * * HALT RECEIVER * * HALTIN EQU * LDK A2,8 LDK A1,0 CIO A1,0,DALGIN HALT INPUT RF(A) HALT20 RF(NA) HALT15 HALT10 EQU * ADKL A2,/4000 DEVICE ADDRESS UNKNOWN HALT15 EQU * ADKL A2,/8000 COMMAND NOT ACCEPTED CF A5,LOGG RTN A5 HALT20 EQU * CF A5,LOGG ABL READ EJECT * * * RESTORE REGISTERS A3 - A8 * * LDREG LDKL A3,0 LCA3 EQU *-2 LDKL A4,0 LCA4 EQU *-2 LDKL A5,0 LCA5 EQU *-2 LDKL A6,0 LCA6 EQU *-2 LDKL A7,0 LCA7 EQU *-2 LDKL A8,0 LCA8 EQU *-2 ADKL A15,4 ABR* A15 EJECT ********************************************************** * * CHLC TRANSMITTER INTERRUPT * ********************************************************** IHH102 CF A15,SAVE8 CF A15,LDREG RESTORE A3 - A8 LDK A2,/20 LDR* A1,A4 LD A7,PROCED RF(Z) IHLGU1 HDLC CF A5,MIRROR IHLGU1 EQU * OTR A1,0,DALGUT ABL(NA) STATUS NOT ACCEPTED CF A5,LOGG LDR* A1,A4 LD A2,TRAX RF(Z) IHLGU2 NOT FIRST INTERRUPT CM TRAX LD A2,PROCED RF(NZ) IHLGU2 SDLC RUNNING LDR A2,A1 CF A5,MIRROR ANK A1,/FF ANKL A2,/FF00 ORR A1,A2 EJECT IHLGU2 EQU * LDR A2,A1 SRL A2,8 CF A5,STORE LDR A2,A1 ANK A2,/FF CF A5,STORE ADK A4,2 SUK A3,2 ABL(P) READ LDKL A2,/100 LDK A1,0 CIO A1,0,DALGUT HALT TRANSMITTER CF A5,LOGG ABL READ EJECT * * ********************************************************* * * CHLC RECEIVER INTERRUPT * ******************************************************** IHH101 CF A15,SAVE8 CF A15,LDREG RESTORE A3 - A8 LDK A2,2 INR A1,0,DALGIN RF(A) IHLG20 LDKL A2,4 LDKL A2,4 LDKL A2,4 SST A1,DALGIN RF(NA) IHLG15 CF A5,LOGG LD A3,RECIND RF(Z) IHLG11 LDKL A2,/202 STORE COMMENT 'SST-IN' CF A5,STORE LDR A2,A1 SRL A2,8 CF A5,STORE LDR A2,A1 ANK A2,/FF CF A5,STORE IHLG10 LDK A2,/FF CF A5,STORE IHLG11 EQU * RTN A5 IHLG15 ADKL A2,/8000 CF A5,LOGG RB IHLG10 IHLG20 EQU * CF A5,LOGG LD A7,PROCED RF(Z) IHLG21 HDLC CF A5,MIRROR IHLG21 EQU * LD A2,RECIND RF(NZ) IHLG40 NOT FIRST INTERRUPT IM RECIND CM POLFIN LD A2,PROCED RF(NZ) IHLG24 SDLC RUNNING LDR A2,A1 CF A5,MIRROR ANK A1,/FF ANKL A2,/FF00 ORR A1,A2 IHLG24 EQU * LDR A2,A1 ANK A2,/10 RF(Z) IHLG25 IM POLFIN POLL/FINAL PRESENT IHLG25 EQU * LD A2,TRA300 RF(Z) IHLG30 NO TIMING CM* WRTIMP IHLG30 EQU * LDR A3,A1 LDKL A2,/201 CF A5,STORE STORE COMMENT T: LDR A1,A3 IHLG40 EQU * LDR A2,A1 ECR A2,A1 ANK A2,/FF CF A5,STORE LDR A2,A1 ANK A2,/FF CF A5,STORE ABL READ WAIT FOR NEXT INTERRUPT EJECT ******************************************************** * * STATUS INTERRUPT FROM CHLC TRANSMITTER * ******************************************************** STATUS EQU * LDKL A2,/80 LDKL A2,/80 LDKL A2,/80 SST A1,DALGUT RF(A) STA110 HLT HARDWARE ERROR STA110 EQU * CF A5,LOGG CM TRAX RTN A5 EJECT * * * POWER ON RECOVERY * * DCH1ON EQU * LDK A1,0 ST A1,BFULL LDKL A1,BSTART ST A1,PBUFIN ST A1,PBUFUT IM POLFIN CM BFULL RTN A15 EJECT * * * MIRROR ROUTINE FOR A1 * * MIRROR EQU * * * NOT TO BE USED * LD A7,PROCED RF(Z) SUITE RTN A5 SUITE EQU * STR A2,A15 STR A3,A15 LDK A7,16 LDK A3,0 MIRLOP EQU * LDR A2,A1 ANKL A2,/8000 ORR A3,A2 SUK A7,1 RF(Z) MIRRUT SRL A3,1 SLL A1,1 RB MIRLOP MIRRUT EQU * LDR A1,A3 ECR A1,A3 LDR* A3,A15 LDR* A2,A15 RTN A5 EJECT * ********************************************************* * * INTERRUPT LOGGING ROUTINE * ********************************************************* * * * CONTROL WORD CONTENTS * * * 8000 COMMAND NOT ACCEPTED * 4000 DEVICE ADDRESS UNKNOWN * * 0100 HDLCUT CIO HALT * 0080 HDLCUT SST * 0040 HDLCUT OTR 1 * 0020 HDLCUT OTR 0 * 0010 HDLCUT CIO START * * 0008 HDLCIN CIO HALT * 0004 HDLCIN SST * 0002 HDLCIN INR * 0001 HDLCIN CIO START * * ********************************************************* * EJECT * LOGG EQU * ST A3,SAV3 SAVE A3 LD A3,LOGPOI ST A2,LOGBUF,A3 STORE COMMAND ST A1,LOGBUF+2,A3 STORE RESULT CW A3,LOGEND RF(G) EXIT ADK A3,4 ST A3,LOGPOI STORE POINTER EXIT EQU * LD A3,SAV3 RESTORE A3 RTN A5 * * SAV3 DATA 0 LOGPOI DATA 0 LOGG POINTER LOGEND DATA 1000 END OF BUFFER LOGBUF EQU * RES 510 LOGG BUFFER * * * EJECT * * * LOG OUTPUT CHLC 1 * * DWH103 DATA /12 DEVICE ADDRESS DATA /8000 STATUS DATA 0 ECB ADDRESS DATA 0 ORDER DATA DRLGUA DRIVER ADDRESS BLOCK DATA 0 TASK TABLE ADDRESS DATA 0 WAIT/ACTIVATE INDICATOR DATA 0 TASK QUEUE FOR THIS DEVICE RES 8 SUBROUTINE STACK RES 5 SAVE AREA FOR A1 - A5 DATA DWH103 THIS DWT ADDRESS FOR A6 DATA DWH102 CORRESPONDING INPUT DWT IN A7 RES 1 SAVE AREA FOR A8 DATA 0,0,0,0 WORK AREA * EJECT * * * LOG INPUT CHLC 1 * * DWH102 DATA /02 DEVICE ADDRESS DATA /8000 STATUS DATA 0 ECB ADDRESS DATA 0 ORDER DATA DRLGIA DRIVER ADDRESS BLOCK DATA 0 TASK TABLE ADDRESS DATA 0 WAIT/ACTIVATE INDICATOR DATA 0 TASK QUEUE FOR THIS DEVICE RES 8 SUBROUTINE STACK RES 5 SAVE AREA FOR A1 - A5 DATA DWH102 CORRESPONDING INPUT DWT IN A7 DATA DWH103 THIS DWT ADDRESS FOR A6 RES 1 SAVE AREA FOR A8 DATA 0,0,0,0 WORK AREA * EJECT * * * LOG CONTROL IO * * DWH101 DATA /02 DEVICE ADDRESS DATA /8000 STATUS DATA 0 ECB ADDRESS DATA 0 ORDER DATA DRLGOA DRIVER ADDRESS BLOCK DATA 0 TASK TABLE ADDRESS DATA 0 WAIT/ACTIVATE INDICATOR DATA 0 TASK QUEUE FOR THIS DEVICE RES 8 SUBROUTINE STACK RES 3 SAVE AREA FOR A1 - A5 DATA DWH102 INPUT DWT RES 1 SAVE A5 DATA DWH101 THIS DWT ADDRESS FOR A6 DATA DWH103 CORRESPONDING DWT IN A7 RES 1 SAVE AREA FOR A8 DATA 0,0,0,0 WORK AREA * * * * END