|
|
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: 7686 (0x1e06)
Notes: pts_type(SC)
Names: »UNPCK.SC«
└─⟦35fda6e03⟧ Bits:30009701 Philips computer tape "BARCLAY"
└─⟦this⟧ »BARCLAY/UNPCK.SC«
└─⟦this⟧ »BARCLAY/UNPCK.SC«
└─⟦e276fd206⟧ Bits:30009696 Philips computer tape "600413"
└─⟦this⟧ »BARCLAY/UNPCK.SC«
IDENT UNPCK 80.11.04 NJ DDUM NJDDIV PDIV ENTRY UNPCK EXPROC FINDLN,PSTRG,PBIN,PBIN EXPROC PUSH,PBIN EXPROC PULL,PBIN EXPROC ERASUP EXPROC LOLITE EXPROC ATTUNP,PSTRG,PBIN EXPROC ATTPCK,PSTRG,PBIN * * INCLUDE EQUATE * * EJECT UNPCK PROC * THE CONTENTS OF TSTR2K (WHICH IS THE BUFFER RECEIVED * FROM THE MAINFRAME) IS TO BE UNPACKED * INTO THE TERMINALS LOGICAL SCREEN AREA (TSCRBUF). * ONLY THE 'PROTECTED + MODIFIED' AND * THE UNPROTECTED FIELDS ARE SAVED * ALL RECEIVED FIELDS ARE DISPLAYED ON THE SCREEN PERF PUSH,CBIN6 MOVE TSTR4,TSTR2K CLEAR TDC1 CLEAR TDC2 CLEAR TDC3 CLEAR TDC4 MOVE TBIN2,CBIN0 MOVE TBIN5,CBIN12 HERE START EVTL DC-CHARS UNP010 XCOPY TBIN2,CBIN1,CBIN1,TSTR2K,TBIN5 SUB TBIN2,CBIN16 SUBTRACT X'10' IB TBIN2,UNP011,UNP012,UNP013,UNP014 DC1-4? B UNP020 NON-DC-CHAR FOUND UNP011 SET TDC1 DC1 OCCURRED B UNP015 UNP012 SET TDC2 DC2 O0CCURRED B UNP015 UNP013 SET TDC3 DC3 OCCURRED B UNP015 UNP014 SET TDC4 DC4 OCCURRED UNP015 ADD TBIN5,CBIN1 TEST NEXT CHAR. B UNP010 UNP020 * NOW TBIN5 POINTS AT THE FIRST NON-DC CHARACTER, WHICH * MEANS: HERE BEGIN OUR DATA FIELD DESCRIPTIONS. * BUT FIRST WE HAVE TO EXECUTE THE FUNCTIONS * AS SPECIFIED BY THE DC-CHARS MOVE TCURPOS,=X'0101' ROW 1, COL 1 TBF TDC2,UNP021 DC2 SPECIFIED? CLEAR TDC3 YES, OVERRIDE DC3 ********** DC1 ********** UNP021 TBF TDC1,UNP022 SOUND ALARM ? MOVE TSTR3,=X'2B2B07' BEEP WRITE DSDY,TSTR3,CBIN3 ********** DC2 ********** UNP022 TBF TDC2,UNP024 CLEAR SCREEN ? MOVE TBIN1,=X'1701' STARTING POSITION UNP023 DSC1 DSDY,POS,TBIN1 POSITION CURSOR DSC1 DSDY,ERASE,CBIN80 ERASE LINE SUB TBIN1,=X'0100' ONE LINE UP, PLEASE CBNE TBIN1,CBIN1,UNP023 UNTIL WE SHOULD ERASE LINE 0 ********** DC3 ********** UNP024 TBF TDC3,UNP025 DC3 SPECIFIED? PERF ERASUP CLEAR ALL UNPROTECTED AND RESET MODIFIED DATA TAGS ON CLEARED FIELDS ********** DC4 ********** UNP025 TBF TDC4,UNP030 DC4 SPECIFIED? PERF LOLITE RESET ALL HIGHLIGHTED FIELDS TO NORMAL AND CLEAR LINE 23 I.E. SET ATTRIBUTE TO NON- DISPLAY. DO NOT RESET MDT'S UNP030 * * NOW WE CAN START UNPACKING * TBIN5 SHOULD STILL POINT AT FIRST CHAR IN FIELD SPEC. MOVE TBIN4,CBIN0 POINTER INTO TSCRBUF MOVE TSCRBUF,ESC CLEAR LOGICAL SCREEN BUFFER UNP035 XCOPY TSTR1,CBIN0,CBIN1,TSTR2K,TBIN5 MOVE DELIMITER * NOW WE HAVE TWO POSSIBILITIES: * ESC / ROW / COL / ATT OR * ESC / ROW / COL / ESC * FIRST CONVERT THE ROW/COL INTO A * BINARY CURSOR POSITION MOVE TBIN1,TBIN5 ADD TBIN1,CBIN1 XCOPY TCURPOS,CBIN0,CBIN2,TSTR2K,TBIN1 MOVE ROW / COL SUB TCURPOS,=X'1F1F' CONVERT TO BINARY VALUE XCOPY TSTR2K,TBIN1,CBIN2,TCURPOS,CBIN0 REWRITE CURPOS DSC1 DSDY,POS,TCURPOS ADD TBIN1,CBIN2 XCOPY TSTR1,CBIN0,CBIN1,TSTR2K,TBIN1 CBE TSTR1,ETX,UNP900 ETX - UNPACK FINISHED * FIND THE LENGHT OF THE FIELD * THE FIELD IS DELIMITED BY * ESC OR * ETX MOVE TBIN3,TBIN5 ADD TBIN3,CBIN1 GET STARTINGPOINT MOVE TP1,CBIN1 PERF FINDLN,TSTR2K,TBIN3,CBIN80 FIND LENGTH OF ACTUAL FIELD MOVE TBIN2,TP1 PERF ATTUNP,TSTR2K,TBIN1 TBT TENQ,UNP050 NO NEED TO SAVE IT TBF TAPROTEC,UNP040 SAVE IF UNPROTECTED OR TBT TAMODIF,UNP040 IF PROTECTED A N D MODIFIED B UNP050 UNP040 * MOVE DATAFIELD, INCLUDING ATTRIBUTE TO LOGICAL BUFFER XCOPY TSCRBUF,TBIN4,TP1,TSTR2K,TBIN5 ADD TBIN1,CBIN1 POINT AT DATA SUB TBIN2,CBIN4 COMPUTE DATA LENGTH UNP050 TBF TAHILITE,UNP060 HIGH INTENSITY ? MOVE TSCBUF,=X'2B2B20' XCOPY TSCBUF,CBIN2,TBIN2,TSTR2K,TBIN1 ADD TBIN2,CBIN2 B UNP070 UNP060 MOVE TSCBUF,=X'2B2B1E20' LOW INTENSITY XCOPY TSCBUF,CBIN3,TBIN2,TSTR2K,TBIN1 ADD TBIN2,CBIN3 UNP070 WRITE DSDY,TSCBUF,TBIN2 WRITE TO SCREEN ADD TBIN5,TP1 ADD TBIN4,TP1 INCREMENT BUFFERPOINTER B UNP035 MORE INPUT ? UNP900 PERF PULL,CBIN6 RET PEND END