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

⟦2f7da4adc⟧

    Length: 17598 (0x44be)
    Notes: pts_type(SC)
    Names: »REMREO.SC«

Derivation

└─⟦26dca8ec8⟧ Bits:30009711 Philips computer tape "RÅKON-DIVFMT"
    └─⟦this⟧ »REMIT2/REMREO.SC« 

PTS(SC)

 IDENT REMREO 830307 NJ 
 DDUM KMD08 
 PDIV 
 ENTRY REMREO 
 EXT RADEL
 EXT ASSG 
 EXT RAREAD 
 EXT SETIDX 
 EXT RESTIX 
 EXT RAWRIT 
 EXT XCOP 
 EXT TRINS
 EXT TRGETF 
 EXT BDTSCA 
 EXT VARRD
 EXT CLEAR8 
 EXT TRUNP UNPACK TRANSACTION 
 EXT SPLIN8 
 EXT YYMMDD 



 INCLUDE EQUATE 

* 
* FILENAMES ETC. USED IN THIS MODULE: 
* 
*           XXX001    XXX003    FD
* INDEX      DK07             XXX007
* STAM       DK08      DK03   XXX008
* VAR        DK09      DK04   XXX009
* TRANS      DK11      DK05   XXX011
* SLAVE      DK17             XXX017
* 
* 
 EJECT
REMREO PROC 
 SET TTREST RESTORE IN PROGRESS 
 CLEAR CERRORFL 
 SET CPFLG RESERVE DISK 
 PERF ASSG,CBIN1,DK07,CBIN7 INDEX ON XXX001 
 BNOK REMRE005
 PERF ASSG,CBIN1,DK08,CBIN8 STAM  ON XXX001 
 BNOK REMRE005
 PERF ASSG,CBIN1,DK09,CBIN9 VAR   ON XXX001 
 BNOK REMRE005
 PERF ASSG,CBIN1,DK11,CBIN11 TRANS ON XXX001
 BNOK REMRE005
 TBF C173FLG,REMRE001 
 PERF ASSG,CBIN1,DK17,CBIN17
 BNOK REMRE005
REMRE001
 PERF ASSG,CBIN3,DK03,CBIN8 STAM  ON XXX003 
 BNOK REMRE005
 PERF ASSG,CBIN3,DK04,CBIN9 VAR   ON XXX003 
 BNOK REMRE005
 PERF ASSG,CBIN3,DK05,CBIN11 TRANS ON XXX003
 BOK REMRE006 

REMRE005
 B REMRNOK
REMRE006
 PERF YYMMDD,GTPRTFRA 
 MOVE GTPRTFRA,GSWBCD7
 EDWRT KJTAPE,REOFMT1 
 MOVE GTLEVNR,=D'0' 
 MOVE SPINPUT,=C'FASE 0: INITIERING ' 
 EDWRT KJTAPE,REOFMT2 
 MOVE GSWBIN5,CBIN1 
 PERF RADEL,DK07,GSWBIN5 DELETE 1. INDEX
 PERF RADEL,DK08,GSWBIN5 DELETE 1. STAM 
 PERF RADEL,DK09,GSWBIN5 DELETE 1. VAR
 PERF RADEL,DK11,GSWBIN5 DELETE 1. TRANS
 PERF SETIDX FILL INDEX WITH 9'S
			CREATE LEV 1-15
			CONNECT ALL TRANS TO LEVNR 10
 EJECT
 MOVE GSWBIN9,CBIN0 POINTER FOR READERRORS
 MOVE GSWBIN7,CBIN0 
 MOVE EDITBUF,=X'FF'
 MOVE GTLEVNR,=D'0' 
 MOVE SPINPUT,=C'FASE 1: SAMMENH[NG STAM/VAR '
 EDWRT KJTAPE,REOFMT2 
* 
* MATCH LEVNR IN STAM/VAR 
* UPDATE GTREGF/GTDUPF AS REQUIRED
* 
REMRE010
**************************************************
* 
* THE FOLLOWING SITUATIONS CAN OCCUR AFTER A READ:
*    STAM           VAR         ROUTINEINDEX
*  READERROR      READERROR        1
*  READERROR      NODATA           2
*  READERROR      DATA             3
*  NODATA         READERROR        4
*  NODATA         NODATA           5
*  NODATA         DATA             6
*  DATA           READERROR        7
*  DATA           NODATA           8
*  DATA           DATA(MATCH)      9
*  DATA           DATA(-,MATCH)    10 
* 
*  NODATA:    RECORD FILLED WITH '7F' 
*  RDERROR:   RECORD FILLED WITH 'FF' 
* 
**************************************************
 ADD GSWBIN7,CBIN1 NEXT RECORD
 MOVE GSWBIN4,=W'128' 
 MOVE GTREMBUF,=' ' 
 PERF RAREAD,DK03,=D'8',GTREMBUF,GSWBIN4,GSWBIN7
 BOK REMRE013 
 PERF CLEAR8
 CBE GTWBCD1,=D'10',REMRE011 END OF DEVICE
 MOVE GTREMBUF,=X'FF' READ ERROR
 MOVE GSWBIN10,CBIN1
 B REMRE015 
REMRE011
 B REMRE100 EOD, FINISHED WITH PHASE 1
REMRE012			NO DATA
 MOVE GTREMBUF,=X'7F' INDICATE NO-DATA IN BUFFER
 MOVE GSWBIN10,CBIN4
 B REMRE015 
REMRE013
 CBE GTWBCD1,=D'4',REMRE012 NODATA
 MOVE GSWBIN10,CBIN7
REMRE015
 MOVE GSWBIN4,=W'49'
 MOVE CDUM0,=' '
 PERF RAREAD,DK04,=D'9',CDUM0,GSWBIN4,GSWBIN7 
 BOK REMRE019 
* EOD CAN NOT OCCUR, AS THE FILES 
* HAVE THE SAME NBR OF RECORDS
 PERF CLEAR8
 MOVE CDUM0,=X'FF' READ ERROR 
 B REMRE020 
REMRE017
 ADD GSWBIN10,CBIN1 
 MOVE CDUM0,=X'7F'
 B REMRE020 
REMRE019
 CBE GTWBCD1,=D'4',REMRE017 
 ADD GSWBIN10,CBIN2 
REMRE020
* 
* WE NOW KNOW THE STATUS OF A SET, CONSISTING 
* OF 1 STAM AND 1 VAR RECORD. 
* THE STATUS CAN BE AS DESCRIBED UNDER 'REMRE010' 
* FURTHER ACTION DEPENDS ON STATUS. 
* 
 CBNE GSWBIN10,CBIN9,REMRE024 NOT DATA/DATA ? 
 MOVE GSWBIN2,CBIN0 
 MOVE GSWBCD6,=D'1' 
 MOVE GSWBCD7,=D'1' 
 XCOPY GSWBCD6,CBIN1,CBIN6,CDUM0,CBIN0 LEVNR
 XCOPY GSWBCD7,CBIN1,CBIN6,GTREMBUF,CBIN0 
 CBE GSWBCD6,GSWBCD7,REMRE024 
 MOVE GSWBIN10,CBIN10 NO, NO MATCH
REMRE024
 IB GSWBIN10,REMRE030,REMRE035,REMRE040,		C 
		REMRE045,REMRE050,REMRE055,		C
		REMRE060,REMRE065,REMRE070,		C
		REMRE075
**************************************************
REMRE030			READERROR / READERROR
 B REMRE010 IGNORE
**************************************************
REMRE035			READERROR / NODATA 
 B REMRE010 IGNORE
**************************************************
REMRE040			READERROR / DATA 
 XCOPY GTLEVNR,CBIN0,CBIN6,CDUM0,CBIN0
 MOVE SPINPUT,=C'SLETTET PGA L[SEFEJL ' 
 EDWRT KJTAPE,REOFMT2 
 PERF RADEL,DK04,GSWBIN7
 B REMRE010 
**************************************************
REMRE045			NODATA / READERROR 
 B REMRE010 IGNORE
**************************************************
REMRE050			NODATA / NODATA
 B REMRE010 ONE MORE SAVED! 
**************************************************
REMRE055			NODATA / DATA
 PERF RADEL,DK04,GSWBIN7
 XCOPY GTLEVNR,CBIN0,CBIN6,CDUM0,CBIN0
 MOVE SPINPUT,=C'SLETTET PGA MGL STAMOPL '
 EDWRT KJTAPE,REOFMT2 
 B REMRE010 
**************************************************
REMRE060			DATA / READERROR 
 PERF RADEL,DK03,GSWBIN7
 XCOPY GTLEVNR,CBIN0,CBIN6,GTREMBUF,CBIN0 
 MOVE SPINPUT,=C'SLETTET PGA L[SEFEJL ' 
 EDWRT KJTAPE,REOFMT2 
 B REMRE080 
**************************************************
REMRE065			DATA / NODATA
 PERF RADEL,DK03,GSWBIN7
 XCOPY GTLEVNR,CBIN0,CBIN6,GTREMBUF,CBIN0 
 MOVE SPINPUT,=C'SLETTET PGA MGL VAR.OPL '
 EDWRT KJTAPE,REOFMT2 
 B REMRE010 
**************************************************
REMRE070			MATCH! 
 TBF C173FLG,REMRE071 
 XCOPY GTLEVNR,CBIN0,CBIN6,CDUM0,CBIN0
 CBL GTLEVNR,=D'19',REMRE071 DONT DELETE SYSTEMLEVS 
 MOVE GSWBCD6,=D'1' 
 XCOPY GSWBCD6,CBIN4,CBIN3,CDUM0,CBIN6
 PERF YYMMDD,GSWBCD6
 CBNG GTPRTFRA,GSWBCD7,REMRE071 
* NON-ACTIVE SUPPLIER FOUND, DELETE HIM 
 MOVE SPINPUT,=C'SLETTES PGA SK[RINGSDATO ' 
 EDWRT KJTAPE,REOFMT2 
 PERF RADEL,DK03,GSWBIN7
 PERF RADEL,DK04,GSWBIN7
REMRE071
 B REMRE010 
**************************************************
REMRE075			NO MATCH = DOUBLE ERROR
  XCOPY GTLEVNR,CBIN0,CBIN6,CDUM0,CBIN0 
 MOVE SPINPUT,=C'SLETTET PGA LOGISK FEJL '
 EDWRT KJTAPE,REOFMT2 
 XCOPY GTLEVNR,CBIN0,CBIN6,GTREMBUF,CBIN0 
 EDWRT KJTAPE,REOFMT2 
 PERF RADEL,DK03,GSWBIN7
 PERF RADEL,DK04,GSWBIN7
**************************************************
REMRE080
REMRE085
 B REMRE010 
 EJECT
REMRE100
* PERF SAVE1 SAVE UNSOLVED ERRORS 
 MOVE GTLEVNR,=D'0' 
 MOVE SPINPUT,=C'FASE 2: FLYT STAM/VAR '
 EDWRT KJTAPE,REOFMT2 
* NOW THE TWO FILES ARE OK AND
* CORRESPOND TO EACH OTHER
 MOVE GTBSUM1,=D'0' 
 MOVE GSWBIN10,CBIN15 POINTER INTO INDEXFILE
 MOVE GTBSUM3,=D'19' FIRST REC TO INSERT
REMRE105
 MOVE GSWBIN7,CBIN0 POINTER FOR VAR. READ 
 MOVE EDITBUF,=X'B999'
 ADD GTBSUM1,=D'1' NEXT RUN 
 MOVE GTBSUM2,=D'9999999999' ACCEPT ALL KEYS P.T. 
 EDIT SPINPUT,REOFMT3 XX. GENNEMLOB 
 MOVE GTLEVNR,GTBSUM3 LOWEST LEVNR TO ACCEPT
 EDWRT KJTAPE,REOFMT2 <NR> XX. GENNEMLOB
REMRE110
 ADD GSWBIN7,CBIN1
 MOVE GSWBIN4,=W'49'
 MOVE CDUM0,=' '
 PERF RAREAD,DK04,=D'9',CDUM0,GSWBIN4,GSWBIN7 
 BOK REMRE111 
 PERF CLEAR8
 CBE GTWBCD1,=D'10',REMRE130 END OF DEVICE
 B REMRE110 ONLY DATA ACCEPTED
REMRE111
 CBE GTWBCD1,=D'4',REMRE110 
 XCOPY GTLEVNR,CBIN0,CBIN6,CDUM0,CBIN0
 CBNG GTLEVNR,=D'15',REMRE125 
 CBL GTLEVNR,GTBSUM3,REMRE110 BELOW BOUNDARY, DROP
 CBG GTLEVNR,GTBSUM2,REMRE110 
 MOVE GSWBIN1,CBIN0 
 MOVE GSWBIN2,CBIN0 
 MOVE GSWBIN3,=W'90'
REMRE115
* GTLEVNR: JUST READ
* GTLEVALT: ANYTHING WITHIN EDITBUF 
 XCOPY GTLEVALT,CBIN0,CBIN6,EDITBUF,GSWBIN2 
 CBG GTLEVALT,GTLEVNR,REMRE120 INSERT 
 BE REMRE118
 ADD GSWBIN2,CBIN8
 SUB GSWBIN3,CBIN1
 BP REMRE115
 B REMRE120 
REMRE118
 ADD GTLEVNR,=D'0'
 MOVE SPINPUT,=C'DUBLET, NR. 2 SLETTES '
 EDWRT KJTAPE,REOFMT2 
 PERF RADEL,DK03,GSWBIN7 DELETE STAM
 PERF RADEL,DK04,GSWBIN7 DELETE VAR 
 B REMRE110 
REMRE120
 XCOPY GSWSTR2,CBIN0,CBIN2,GSWBIN7,CBIN0
 INSRT EDITBUF,GSWBIN2,CBIN2,GSWSTR2,CBIN0
 INSRT EDITBUF,GSWBIN2,CBIN6,CDUM0,CBIN0
 MOVE GSWBIN2,=W'726' 1. KEY AFTER EDITBUF
 XCOPY GSWSTR2,CBIN0,CBIN2,EDITBUF,GSWBIN2
 CBE GSWSTR2,=X'9999',REMRE110 ROOM IN BUFFER 
 SUB GSWBIN2,CBIN6 NO, FIND HIGHEST KEY 
 XCOPY GTLEVALT,CBIN0,CBIN6,EDITBUF,GSWBIN2 
 MOVE GTBSUM2,GTLEVALT HIGHEST KEY IN EDITBUF 
 MOVE GTWBCD2,GTLEVALT
 PERF SPLIN8,CBIN10,CBIN3 DISPLAY HIGHES LEVNR
			IN EDITBUFFER
 B REMRE110 
REMRE125			SYSTEMLEV, HAS FIXED POSITION
 MOVE GSWBIN8,GTLEVNR 
 MOVE GSWBIN4,=W'128' 
 PERF RAREAD,DK03,=D'8',GTREMBUF,GSWBIN4,GSWBIN8
 MOVE GSWBCD1,=D'1' 
 XCOPY GSWBCD1,CBIN2,CBIN5,GTREMBUF,CBIN1 
 CBNL GSWBCD1,=D'16',REMRE126 
 PERF RAWRIT,DK08,=D'8',GTREMBUF,GSWBIN8
 CBE GTLEVNR,=D'10',REMRE126 FREE LEV?
 MOVE GSWBIN4,=W'49'
 PERF RAREAD,DK04,=D'9',CDUM0,GSWBIN4,GSWBIN8 
 MOVE GSWBCD7,=D'0' 
 XCOPY CDUM0,CBIN6,CBIN3,GSWBCD7,CBIN4
 XCOPY CDUM0,CBIN9,CBIN7,GSWBCD7,CBIN0
 XCOPY CDUM0,CBIN16,CBIN7,GSWBCD7,CBIN0 
 PERF XCOP,CDUM0,=W'23',=W'7',GSWBCD7,=W'0' 
 PERF XCOP,CDUM0,=W'30',=W'7',GSWBCD7,=W'0' 
 PERF XCOP,CDUM0,=W'37',=W'3',GSWBCD7,=W'4' 
 PERF XCOP,CDUM0,=W'47',=W'2',CBIN0,=W'0' 
 PERF RAWRIT,DK09,=D'9',CDUM0,GSWBIN8 
REMRE126
 B REMRE110 
REMRE130
 PERF CLEAR8
* NOW WE HAVE MAX 90 INDEXES TO INSERT
 MOVE GSWBIN7,=W'90'
 MOVE GSWBIN6,CBIN0 
REMRE135
 ADD GSWBIN10,CBIN1 NEXT INDEXRECORD TO WRITE 
 ADD GSWBIN6,CBIN1
 XCOPY CTXBUF,CBIN0,CBIN5,EDITBUF,GSWBIN6 KEY 
 ADD GSWBIN6,CBIN5 POINT AT POINTER 
 XCOPY GSWBIN8,CBIN0,CBIN2,EDITBUF,GSWBIN6
 ADD GSWBIN6,CBIN2 NEXT KEY+POINTER 
 CBE GSWBIN8,=X'9999',REMRE160 FINISHED?
 MOVE GSWBIN4,=W'128' 
 PERF RAREAD,DK03,=D'8',GTREMBUF,GSWBIN4,GSWBIN8
 MOVE GSWBIN4,=W'49'
 PERF RAREAD,DK04,=D'9',CDUM0,GSWBIN4,GSWBIN8 
 MOVE GSWBIN1,=W'47'
 XCOPY CDUM0,GSWBIN1,CBIN2,CBIN0,CBIN0 GTTRKEY=0
 MOVE GSWBCD6,=D'0' 
 PERF XCOP,GSWBCD6,=W'4',=W'3',CDUM0,=W'37' 
 PERF YYMMDD,GSWBCD6
 PERF XCOP,CDUM0,=W'37',=W'3',GSWBCD7,=W'4' 
 XCOPY CTXBUF,CBIN5,CBIN2,GSWBIN10,CBIN0
 PERF RAWRIT,DK07,=D'7',CTXBUF,GSWBIN10 
 XCOPY GTLEVNR,CBIN0,CBIN6,GTREMBUF,CBIN0 
 ADD GTLEVNR,=D'0'
 XCOPY GTREMBUF,CBIN0,CBIN6,GTLEVNR,CBIN0 
 XCOPY CDUM0,CBIN0,CBIN6,GTLEVNR,CBIN0
 PERF RAWRIT,DK08,=D'8',GTREMBUF,GSWBIN10 
 PERF RAWRIT,DK09,=D'9',CDUM0,GSWBIN10
 SUB GSWBIN7,CBIN1
 BP REMRE135
 XCOPY GTLEVNR,CBIN0,CBIN6,EDITBUF,GSWBIN6
 ADD GTLEVNR,=D'0'
 MOVE GTBSUM3,GTLEVNR 
 CBE GTBSUM3,=D'9999999999',REMRE160
 B REMRE105 
REMRE160
 MOVE CIXFREE,GSWBIN10
REMRE170
 PERF RADEL,DK08,GSWBIN10 
 BNOK REMRE180
 PERF RADEL,DK09,GSWBIN10 
 ADD GSWBIN10,CBIN10
 B REMRE170 CONTINUE UNTIL EOD OR ERROR 
REMRE180
LSPG205 
 TBF C173FLG,REMRE182 
 MOVE GSWBIN1,=W'50'
 MOVE CMEMPT(GSWBIN1),CIXLAST 
REMRE182
 PERF RESTIX
 PERF CLEAR8
 EJECT
REMRE200			INSERT TRANSACTIONS
 MOVE GTLEVNR,=D'0' 
 MOVE SPINPUT,=C'FASE 3: FLYT TRANSAKTIONER ' 
 EDWRT KJTAPE,REOFMT2 
 MOVE GSWBIN7,CBIN0 
REMRE210
 MOVE GSWBIN4,=W'39'
 ADD GSWBIN7,CBIN1
 PERF RAREAD,DK05,=D'11',GTREMBUF,GSWBIN4,GSWBIN7 
 BOK REMRE215 
 PERF CLEAR8
 CBE GTWBCD1,=D'10',REMRE300 FINISHED 
 B REMRE210 
REMRE215
 CBE GTWBCD1,=D'4',REMRE210 
 MOVE GTLEVNR,=D'1' 
 XCOPY GTLEVNR,CBIN1,CBIN5,GTREMBUF,CBIN0 
 CBE GTLEVNR,=D'10',REMRE210 FREE SUPPLIER? 
 CLEAR GTSWFLAG 
 PERF TRUNP UNPACK INTO GTDUPF
 CBE GTDUPF(CBIN20),=D'0',REMRE230 NORMAL LEV?
 MOVE GTLEVNR,GTDUPF(CBIN20) NO, USE SYSTEM LEV 
REMRE230
 CBE GTLEVNR,=D'10',REMRE210 FREE SUPPLIER? 
 MOVE GTBSUM1,GTLEVNR SAVE ORIG. LEVNR
 PERF TRGETF,CREMPT1
 BNOK REMRNOK 
 MOVE GTLEVNR,GTBSUM1 
 PERF VARRD 
 BOK REMRE240 
 MOVE SPINPUT,=C'TRANS H[GTET P] LEVNR 05 ' 
 EDWRT KJTAPE,REOFMT2 
 MOVE GTLEVNR,=D'5' TRANS WITHOUT VALID LEVNR 
 PERF VARRD FOR MANUAL ACTION 
REMRE240
 CLEAR GTSWFLAG 
 SET GTBDTFLG 
 PERF TRINS,CREMPT1 
 BNOK REMRNOK 
 B REMRE210 
 EJECT
REMRE300			CHECK PHASE
 MOVE GTLEVNR,=D'0' 
 MOVE SPINPUT,=C'FASE 4A: CHECK INDEXREG '
 EDWRT KJTAPE,REOFMT2 
* 1. CHECK THAT INDEXFILE IS IN ASCENDING SEQUENCE, 
*    WITHOUT DOUBLE KEYS
 MOVE GSWBIN6,CBIN0 
 MOVE GSWBCD6,=D'-1' OLD LEVNR
REMRE310
 ADD GSWBIN6,CBIN1
 MOVE GSWBIN4,CBIN7 
 MOVE GTREMBUF,=' ' 
 PERF RAREAD,DK07,=D'7',GTREMBUF,GSWBIN4,GSWBIN6
 CBE GTWBCD1,=D'10',REMRE400 END OF DEVICE
 MOVE GTLEVNR,=D'1' 
 XCOPY GTLEVNR,CBIN1,CBIN5,GTREMBUF,CBIN0 
 CBE GTLEVNR,=D'9999999999',REMRE400
 CBNG GTLEVNR,GSWBCD6,REMRE320 ERROR
 MOVE GSWBCD6,GTLEVNR OK
 B REMRE310 
REMRE320
 ADD GTLEVNR,=D'0'
 MOVE SPINPUT,=C'FEJL I INDEXREG. ' 
 EDWRT KJTAPE,REOFMT2 
 B REMRNOK
REMRE400
 MOVE GTLEVNR,=D'0' 
 MOVE SPINPUT,=C'FASE 4B: CHECK STAM/VAR/TR ' 
 EDWRT KJTAPE,REOFMT2 
 PERF SETIDX
 MOVE GTLEVNR,=D'15'
 MOVE GTPRTDAT,=D'999999' 
 PERF BDTSCA
 BOK REMROK 
 EJECT
REMRNOK 
 MOVE GSWBIN8,CBIN1 
 MOVE SPINPUT,=C'FEJL I REORGANISERING '
 B REMROUT
REMROK
 MOVE GSWBIN8,CBIN0 
 MOVE SPINPUT,=C'RESTORE AFSLUTTET KORREKT '
REMROUT 
 DSC0 DK03,CLOSE
 DSC0 DK04,CLOSE
 DSC0 DK05,CLOSE
 MOVE GTLEVNR,=D'0' 
 EDWRT KJTAPE,REOFMT2 
 MOVE SPINPUT,=C'$' 
 EDWRT KJTAPE,REOFMT2 
 CLEAR CPFLG
 CLEAR TTREST 
 CMP CBIN0,GSWBIN8
 RET
 PEND 
 EJECT
REOFMT1 FRMT
 FILLR ' ',2
 FTEXT 'REORG. LEV. ' 
 FMEL '99V99V99',CMASKDAT 
 FILLR ' ',29 
 FMEND



REOFMT2 FRMT
 FILLR ' ',2
 FMEL 'ZZZZZZZZZZ',GTLEVNR
 FILLR ' ',5
 FCOPY SPINPUT
 FMEND



REOFMT3 FRMT
 FMEL 'ZZ',GTBSUM1
 FTEXT '. GENNEML'
 FILLR X'5C',1
 FILLR 'B',1
 FILLR ' ',22 
 FMEND
 END

Full view