|
|
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: 7824 (0x1e90)
Notes: pts_type(SC)
Names: »DRDN01.SC«
└─⟦110b7ed5e⟧ Bits:30009664 Philips computer tape "600106"
└─⟦this⟧ »TOSSWORK/DRDN01.SC«
IDENT DRDN01 REL 9.2 79-11-16 870105040920 * * *************************************************** * * PHILIPS TERMINAL SYSTEM PTS * * DRDN01 = DRIVER NUMERIC DISPLAY * * * * * * *************************************************** * * * THIS DRIVER HANDLES THE NUMERIC DISPLAY * ON INDICATOR UNIT PTS 6241 CONNECTED TO * THE SYSTEM VIA CHLT OR CHRT. * * THE DISPLAY MAY BE USED AS AN ORDINARY * OUTPUT DEVICE WHERE NUMERIC INFORMATION * ARE DISPLAYED FROM THE USER PROGRAM. IT * MAY ALSO BE USED AS AN ECHO-DEVICE TO * ANY KEYBOARD THAT WORKS UNDER THE GENERAL * KEYBOARD DRIVER DRKB01. * * THE DRIVER CONSISTS OF FOLLOWING PARTS: * * A C D N ACTIVATION PART * * I H D N INTERRUPT HANDLER * * R C D N RECOVERY ROUTINE * * E C H O D N ECHO FUNCTIONS EJECT DRDN01 * * * THE FOLLOWING ORDERS ARE THREATED: * * ORDER 05: ERASE NUMERIC DISPLAY * 06: WRITE NUMERIC DISPLAY * * * NORMAL REGISTER USAGE: * * REGISTER: A1 = RETURN CODE * A2 = OUTPUT CHARACTER * A3 = BUFFER INDEX * A4 = WORK REGISTER * A5 = STACK BASE * A6 = DWT-ADDRESS * A7 = ORDER * A8 = ECB-ADDRESS * * * SYSTEM ADAPTATION * * BY MEANS OF CONDITIONAL ASSEMBLY ORDER 06 * WRITE NUMERIC DISPLAY MAY BE EXCLUDED. * TO BE USED IN SYSTEMS WHERE THE DISPLAY * FIGURES ONLY AS AN ECHO-DEVICE. * * EJECT DRDN01 * * *********** * ENTRIES * *********** * * ENTRY DNAD ADDRESS TO ADDRESS-BLOCK * * ******************************************** * EXTERNAL TOSS MODULE ENTRIES * ******************************************** * * EXTRN TDISP DISPATCHER EXTRN GETCHR GET CHARACTER FROM ECB EXTRN DISIOE I/O REQUEST ERROR EXTRN TENDIO END I/O EXTRN OUTPUT SEND CHARACTER EXTRN LDREG RESTORE REGISTERS A4,A3,A5,A7,A8 AND RETURN EXTRN SAVE8 SAVE REGISTERS A1-A8 EXTRN ECHRTN RETURN FROM ECHOING * * **************************** * DWT PARAMETERS * **************************** * * EXTRN DWTST STATUS EXTRN DWTBC BYTE COUNTER EXTRN DWTECB ECB ADDRESS EJECT DRDN01 * * ************************** * CONDITIONAL ASSEMBLY * ************************** * * BY SETTING X:A = 0 THIS DRIVER HANDLES * ONLY ORDER 05 ERASE NUMERIC DISPLAY * X:A EQU 1 DNWRIT EQU X:A ORDER 6 * * THIS DRIVER CAN BE MADE TO HANDLE CREDIT ORDERS * BY SETTING CREDIT = 1 * ORDER 05 IS THEN REPLACED BY ORDER /31 * CREDIT EQU 0 * * A PROGRAM VERSION USING TOSS MMU PAGING * IS OBTAINED BY SETTING MMUPAG EQU 1. * MMUPAG EQU 0 * * * A PROGRAM VERSION USING THE EXTENDED INSTRUCTION * SET IS OBTAINED BY SETTING CPU852 EQU 0. * CPU852 EQU 1 * * ***************** * CONSTANTS * ***************** * CCERR EQU /4 CODE CHECK ERROR * * MEMORY MANAGEMENT BUFFER SIZE * X:B EQU 16 DVBLEN EQU X:B EJECT DRDN01 * * ************** * TABLES * ************** * * DATA DVBLEN MMU BUFFER SIZE DATA 2 DEVICE INDEX DNAD EQU * ADDRESS BLOCK DATA ACDN ACTIVATION PART DATA 0 ABORT ROUTINE ADDRESS DATA IHDN INTERRUPT HANDLER DATA RCDN RECOVERY ROUTINE DATA ECHODN DEVICE-DEPENDENT ECHO-SUBROUTINE * EJECT DRDN01 * * A C D N * * ACDN = ACTIVATION DRIVER NUMERIC DISPLAY * * THE FOLLOWING ORDERS ARE THREATED: * * ORDER 05: ERASE NUMERIC DISPLAY * ORDER 06: WRITE ON NUMERIC DISPLAY * * IF ORDER 5 ERASE CHARACTER /40 IS SENT TO DISPLAY. * IF ORDER 6 CHARACTERS IN ECB-BUFFER ARE SENT TO DISPLAY * ACDN EQU * IFT CREDIT=0 SUK A7,5 ORDER 5? RF(E) ADN010 XIF IFT CREDIT=1 SUK A7,/31 RF(Z) ADN010 ADK A7,/2C XIF * IFT DNWRIT=1 * SUK A7,1 ORDER 6? RF(E) ADN015 * XIF * ABL DISIOE I/O REQUEST ERROR * EJECT DRDN01 * * ORDER 05 * ADN010 EQU * LDK A2,/40 ERASE DISPLAY CF A5,OUTPUT SEND CHARACTER RF ENDIO * * ORDER 06 * IFT DNWRIT=1 * ADN015 LDK A3,0 RESET BUFFER INDEX ADN020 CF A15,GETCHR GET CHARACTER LDR A1,A1 FOUND? RF(NP) ENDIO NO, READY ! * EJECT DRDN01 * * CHECK CHARACTER * LDR A4,A2 SUK A4,/3F BLANK? RF(E) ADN025 ADK A4,6 KEY > /39? RF(P) ADN030 ADK A4,9 KEY < /30 RF(N) ADN030 ADN025 EQU * CF A5,OUTPUT SEND CHARACTER RB ADN020 ADN030 LDK A1,CCERR INDICATE CODE CHECK ERROR ORS A1,8,A8 RETURN CODE RB ADN020 * XIF * ENDIO CF A15,TENDIO END I/O EXIT ABL TDISP * EJECT DRDN01 * * I H D N * * INTERRUPT * IHDN EQU * LD A4,DWTST,A6 BUSY? RB(N) EXIT SLL A4,2 ECHO MODE ? RF(N) IHDN10 LDR A1,A1 RETURN CODE FROM CHLT? RB(NE) ENDIO IHDN10 EQU * ABL LDREG * EJECT DRDN01 * * R C D N * * RECOVERY * RCDN 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 * LDKL A2,/7FFF ANS A2,DWTST,A6 SET DEVICE BUSY LDK A2,/40 ERASE CHARACTER CF A5,OUTPUT SEND ERASE LD A8,DWTECB,A6 RB(E) ENDIO RB ACDN RETURN TO ACTIVATINO PARTONI * EJECT DRDN01 * * E C H O D N * * ECHO-ROUTINE * ECHODN EQU * LDR A7,A7 EOR? RF(N) ECH050 LDR A3,A2 SUK A3,/8 BACKSPACE? RF(E) ECH050 SUK A3,/10 CLEAR? RF(NE) ECH040 NO LDK A2,/40 ERASE DISPLAY ECH040 CF A5,OUTPUT SEND CHARACTER ECH050 ABL ECHRTN RETURN TO KEYBOARD DRIVER * * * END