DataMuseum.dk

Presents historical artifacts from the history of:

Philips Data Systems

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Philips Data Systems

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦e3a8469d5⟧

    Length: 7686 (0x1e06)
    Notes: pts_type(SC)
    Names: »UNPCK.SC«

Derivation

└─⟦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« 

PTS(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

Full view