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

⟦ca395ab3e⟧

    Length: 27154 (0x6a12)
    Notes: pts_type(SC)
    Names: »ADM6BC.SC«

Derivation

└─⟦d2cdd233a⟧ Bits:30009674 Philips computer tape "600204"
    └─⟦this⟧ »OD-KOM/ADM6BC.SC« 

PTS(SC)

 IDENT ADM6BC 831019 EV 
 DDUM KMD08 
 PDIV 
 ENTRY ADM600 
 ENTRY SIGNON 
 ENTRY CHNGDK 
 ENTRY STRTRC 
 ENTRY SENDRC 
 ENTRY TERMIN 
 ENTRY SIGNOF 
 ENTRY EXCHAN 
 ENTRY TRNOK
 ENTRY WJDC 
 ENTRY BCGO 
 ENTRY BCACTV 
* 
 EXT SPCLRA 
 EXT SPLIN8 
 EXT SPCLRS 
 EXT SLUTID 
 EXT RAWRIT 
 EXT WRITID 
 EXT LAMPOF 
 EXT ADMRET 
 EXT SPERR
 EXT CLSVOL 
 EXT LAMPON 
 EXT SOPRD
 EXT ASGVOL 
 EXT ASGFIL 
 EXT BCKUP
 EXT RAREAD 
 EXT GETBIT 
 EXT WRITJT 
 EXT ABORT
* 
 INCLUDE EQUATE 
 EJECT
ADM600
 CLEAR SPKEYFLG 
 CMP TTASKNR,CBIN1 MASTER ? 
 BNE ADM06RET NO
 SET SPPROMPT 
ADM0604			REPEAT UNTIL CORRECT KEY
 MOVE GSWBCD2,CSENDNR 
 ATTFMT SNDFRM6 
 PERF SPCLRA
 IB SPBINW2,ADM06RET,ADM06RET,ADM0605 
 B ADM0604
ADM0605			ENTER KEY 
 MOVE SPBINW2,GSWBCD1 CHECK ON VALUE
 IB SPBINW2,ADM0610,ADM0650 MANUAL/AUTOMATIC
 B ADM0604 NOT VALID
ADM0610 
			MANUAL 
 CLEAR CBCFLAG MANUAL 
 TEST GTKASSE KASSE OPEN? 
 BNZ ADM0604 YES, NOT ALLOWED 
 CMP CTASKNR,CBIN0 ALL CLOSED?
 BNE ADM0604 NO 
 TBT CBCSENDF,ADM0604 SENDING?
 SET CBCWAITF STOP AUTO BATCH 
 SET CCONVFLG STOP OTHER FROM OPEN
* MANUAL TRANSMISSION ALLOWED 
* TEST IF SIGN ON MUST BE DONE
 TBT CBCACTVF,ADM0615 

			AUTO BATCH NOT ACTIVE
			SIGN ON
ADM0611 
 SET SPPROMPT 
 ATTFMT SNDFRM
 PERF SPCLRS
 IB SPBINW2,ADM0612,ADM0612,ADM0615 
 B ADM0611
ADM0612 
 CLEAR CBCWAITF MAK 
 CLEAR CCONVFLG 
 B ADM0604
			ENTER KEY
ADM0615 
 TBT CCONVERT,ADM0613 
 SUB CRECBCD,=D'1'
 PERF SLUTID,CPCKBUF,CRECBCD
 ADD CRECBCD,=D'1'
 PERF RAWRIT,DK02,=D'2',CPCKBUF,CRECNR
 BNOK ADM0612 
 PERF WRITID,CPCKBUF,CBIN5,CBIN2 SLUTID ON JOURNAL
	EJECT
ADM0613 
**************************************************
*             BATCH TRANSMISSION
*       1)  SIGNON
*       2)  CHANGE DISK 
*       3)  SEND STARTIDENT 
*       4)  SEND TRANSACTIONS AND SLUTID
*       5)  IN CASE OF ERROR SEND TERMINATE 
*       6)  WHEN ALL TRANSMITTED SEND SIGNOFF 
************************************************* 
			SEE IF AUTOMATIC BATCH ACTIVE

 TBT CBCACTVF,ADM0620 
			NOT ACTIVE, SEND SIGN-ON 
 PERF SIGNON
 BNOK ADM0612 LIKE MAK
ADM0620 
			SET OPTION TO STOP 
			AUTOMATIC BATCH
 MOVE CBCOPT,CBIN2 STOP AUTOMATIC BATCH 
 PERF LAMPOF,=W'2047' 
ADM0630 
 PERF CHNGDK CHANGE DISC
 BNOK ADM6SOFF
 PERF STRTRC SEND STARTIDENT
 BNOK ADM0640 IF NOT OK, TRY NEXT 
 PERF SENDRC SEND BATCH 
 BOK ADM0620
			IF NOT OK
 PERF TERMIN SEND TERMINATE 
ADM0640 
 PERF LAMPOF,=W'2047' 
 PERF LAMPON,=W'2' LAMP 10, ERROR 
 B ADM0630
ADM6SOFF
 PERF SIGNOF SEND SIGNOFF 
 CLEAR CCONVFLG 
 CLEAR CBCWAITF 
ADM06OUT
ADM06RET

 TBT CBCACTVF,ADM06RT 
 PERF LAMPOF,=W'2047' 
ADM06RT 
 SET SPKEYFLG 
 B ADMRET 
	EJECT
ADM0650			AUTOMATIC 
 SET CBCFLAG
			SELECT IF ALREADY ACTIVE 

 TBT CBCACTVF,ADM0670 
			NOT ACTIVE 
ADM0651 
 SET SPPROMPT 
 ATTFMT SNDFRM ASK FOR
 PERF SPCLRS BRUGERNAVN,KENDEORD
 IB SPBINW2,ADM0652,ADM0652,ADM0655 
 B ADM0651
ADM0652			MAK 
 B ADM0604
ADM0655			ENTER KEY 
 PERF SIGNON
 BNOK ADM0604 LIKE MAK
ADM0660 
 ATTFMT SNDFRM8 
 PERF SPCLRA STARF FRA
 IB SPBINW2,ADM6SOFF,ADM6SOFF,ADM0665 
 B ADM0660
* 
ADM0665 
 MOVE CBCFROM,GSWBCD1 
 MOVE CBCOPT,CBIN1 SET OPTION START 

 MOVE GSWSTR2,=C'BC'
 ACTV BCACTV,GSWSTR2 ACTIVATE TASK
 B ADM06RET RETURN
* 
ADM0670			ALREADY ACTIVE
 ATTFMT SNDFRM9 
 PERF SPCLRA GET OPTION 
 IB SPBINW2,ADM06RET,ADM06RET,ADM0675 
 B ADM0670

ADM0675			TEST IF OPTION 1 OR 2 
 CBE GSWBCD1,=D'1',ADM0680
 CBE GSWBCD1,=D'2',ADM0681
 B ADM0670

ADM0680			SET OPTION
 MOVE CBCOPT,CBIN4 SEND REST
 B ADM06RET 
ADM0681 
 MOVE CBCOPT,CBIN3 INTERRUPT
 B ADM06RET 
	EJECT
******************************************* 
* TASK BC - AUTOMATIC BATCH TRANSMISSION STARTS HERE
* 
* 
******************************************* 
BCGO			ENTRY POINT
 EXIT 
* 
* 
* ACTIVATION POINT
* 
BCACTV			ACTIVATION POINT 
 SET CBCACTVF SET ACTIVE
 SET TBCTASK IN TASK BC 

 EDWRT KJTAPE,FFNL
 EDWRT KJTAPE,FBCACTV 


* "AUTOMATIC DATATRANSMISSION AKTIVERET"

* 
BC100 
 TBT CBCSENDF,BC150 
			NO SENDING GOING ON
 IB CBCOPT,	SELECT ON OPTION	C
		BC210,	START	C
		BC220,	STOP	C 
		BC230,	INTERRUPT	C
		BC240	SEND REST 
* 
BC200			IDLE LOOP 
 MOVE GSWBIN1,=W'30' 3 SECONDS
 DELAY GSWBIN1
 B BC100
* 
BC210			START 
 TBT CBCWAITF,BC200 WAIT
 MOVE GSWBIN1,CRECNR
 SUB GSWBIN1,CBCFROM SEE IF ENOUGH
 CBL GSWBIN1,CBCANT,BC200 
 EDWRT KJTAPE,FBCSTRT 
 PERF STRTRC SEND START IDENT 
 BNOK BC230 
 SET CBCSENDF SENDING 
 MOVE CBCTO,CBCFROM 
 ADD CBCTO,CBCANT LAST TO SEND
 B BC100
* 
BC220			STOP

 EDWRT KJTAPE,FBCEXIT 
 CLEAR CBCACTVF CLEAR ACTIVE

* "AUTOMATISK DATATRANSMISSION STOPPET" 

 EXIT 
* 
BC230			INTERRUPT 
 PERF LAMPOF,=W'64' LAMP 5 OFF
 PERF SIGNOF SEND SIGNOFF 

 MOVE CBCOPT,CBIN2
 B BC100

* 
BC240			SEND REST 

 EDWRT KJTAPE,FBCSTRT 

 PERF STRTRC SEND START IDENT 
 BNOK BC230 
 SET CBCSENDF SENDING STARTED 
 MOVE CBCTO,CBIN0 SEND ALL
 B BC100
* 
* 
* 
BC150			SENDING ALREAD RUNNING
 PERF SENDRC SEND BATCH 
 BOK BC350
 PERF TERMIN TERMINATE
 CLEAR CBCSENDF STOPPED SENDING 

 EDWRT KJTAPE,FBCTERM 

 PERF LAMPOF,=W'64' LAMP 5 OFF
 MOVE CBCOPT,CBIN2 STOP 
 B BC100

BC350			END OF BATCH

 MOVE GSWBCD1,CBCFROM 
 MOVE GSWBCD2,CSENDNR 
 EDWRT KJTAPE,FBCTO 

 EDWRT KJTAPE,FBCSTOP 

 MOVE CBCFROM,CSENDNR 
 ADD CBCFROM,CBIN1

 PERF LAMPOF,=W'64' LAMP 5 OFF
 MOVE CBCOPT,CBIN1
 CLEAR CBCSENDF 
 B BC100
********************************************
* 
* END OF AUTOMATIC BATCH TASK 
* 
********************************************
 EJECT
************************************************
* 
*             SIGNON
*    IF NOT OK CR NOT = 0 
* 
************************************************
SIGNON PROC 
 MOVE GSWBIN1,=X'40'
 DSC1 DCOMM,TRPAR,GSWBIN1 
 MOVE GSWBIN1,CBIN5 
 MOVE GSWBIN2,=W'50'
 MOVE CSENDBUF,=C' '
 EDIT CSENDBUF,SIGONF 
*                          FIND LENGTH
 MATCH CSENDBUF,GSWBIN1,GSWBIN2,CBLANKS,CBIN0,CBIN2 
 MOVE GSWBIN2,GSWBIN1 
 TBT CTESTFLG,SIGON10 
 PERF EXCHAN EXCHANGE DC
 BNOK SIGON100
 PERF WJDC
 MOVE GSWSTR20,=C'DFH3504'
 MOVE GSWBIN1,CBIN0 
 MATCH CSENDBUF,GSWBIN1,GSWBIN2,GSWSTR20,CBIN0,CBIN7
 BNE SIGON100 
SIGON10 
 EDWRT SCREEN,SNDFRM3 
 CMP CBIN0,CBIN0
 RET
SIGON100
 MOVE GSWBIN1,CBIN0 
 DSC1 DCOMM,TRPAR,GSWBIN1 
 MOVE SPBINW4,CBIN21
 MOVE GTWBCD2,=D'60'
 MOVE GSWSTR9,=C'TRANSMIT ' 
 MOVE GTWBCD1,=D'16'
 PERF SPERR 
 PERF WRITJT,=W'14' 
 CMP CBIN0,CBIN1
 RET
 PEND 
 EJECT
********************************************* 
* 
*            CHNGDK - CHANGE DISK 
*         STOP SEND PIN 6 
*         CONTINIUE PIN 5 
* 
********************************************* 
* 
DUMTAB KTAB EORKY1
* 
CHNGDK PROC 
CHNG000 
 PERF CLSVOL,CBIN2 CLOSE REGSET 
 MOVE CSENDNR,CBIN1 
 MOVE CRECBCD,=D'1' 
 PERF LAMPON,=W'64' LAMP 5
 PERF LAMPON,=W'32' LAMP 6
 PERF LAMPON,=W'16' LAMP 7
CHNG010 
* INPUT FROM SOP OR KEYBOARD

 EDWRT SCREEN,SNDFRM7 SEND? 
 PERF SPLIN8,CBIN0,CBIN0 .NW
CHNG0104
 MOVE GSWBIN1,CBIN1 NO WRITING, .NW 
 KI .NW,DSSOPI,SOPINP,DUMTAB,GSWBIN1,GSWBIN2
 BNOK CHNG0104
CHNG0105			WAIT 
 MWAIT GSWBIN3,KEYB,DSSOPI
 IB GSWBIN3,	SEE WHO FINISHED FIRST	C 
		CHNG0210,	KEYBOARD	C
		CHNG0220	SOP
 B CHNG0105 

CHNG0210			KEYBOARD 
 TESTIO DSSOPI
 BOK CHNG0211 
 CALL ABORT,DSSOPI
CHNG0211
 WAIT DSSOPI
CHNG0212			HANDLE KEYBOARD
 ATTFMT SNDFRM10
 PERF SPCLRS
 IB SPBINW2,CHNG010,CHNG010,CHNG0213
 B CHNG0212 
CHNG0213
 MOVE CBCFROM,GSWBCD1 
 MOVE CBCTO,GSWBCD2 
 MOVE GSWBIN2,CBIN6 AS SOP 5
 B CHNG030


CHNG0220			SOP FINISHED 
 TESTIO KEYB STOP KEYBOARD
 BOK CHNG0221 
 CALL ABORT,KEYB
CHNG0221
 WAIT KEYB
 MOVE CBCFROM,CBIN1 SEND
 MOVE CBCTO,CBIN0 ALL 
 B CHNG030
* 

CHNG030 
 IB GSWBIN2,		C 
		CHSOP10,CHSOP09,CHSOP08,CHSOP07,CHSOP06,		C 
		CHSOP05,CHSOP04,CHSOP03,CHSOP02,CHSOP01 
CHSOP01 
CHSOP02 
CHSOP03 
CHSOP04 
CHSOP08 
CHSOP09 
 B CHNG010
CHSOP10 
*   ERROR, SIGN ON AGAIN
 PERF LAMPOF,=W'2047' LAMPS OFF 
 PERF LAMPON,=W'2' LAMP 10
 SET SPPROMPT 
 ATTFMT SNDFRM SIGNON FORMAT
 PERF SPCLRS
 IB SPBINW2,CH1010,CH1010,CH1020
CH1010
 B CHNG000
CH1020
 PERF SIGNON
 BNOK CHNG000 
 PERF LAMPOF,=W'2047' 
 B CHNG000
CHSOP05 
 PERF LAMPOF,=W'2047' LAMPS OFF 
 PERF ASGVOL,CBIN2 ASSIGN DISK 2
 BOK CHNG050
 PERF LAMPON,=W'2'
 B CHNG000
CHNG050 
 PERF LAMPON,=W'64' LAMP 5
 CMP CBIN0,CBIN0 SET CR 
 RET
CHSOP06			SOP 6 
 PERF LAMPOF,=W'2047' LAMPS OFF 
 PERF BCKUP,=W'1' WITHOUT BACKUP
 BNOK CHNG000 
 B CHNG130
CHSOP07 
 PERF LAMPOF,=W'2047' LAMPS OFF 
 PERF BCKUP,=W'2' WITH BACKUP 
 BNOK CHNG000 
 B CHNG130
CHNG130 
 PERF LAMPOF,=W'2047' 
 CMP CBIN0,CBIN1 INDICATE ERROR OR END OF TRANS 
 RET
 PEND 
 EJECT
******************************************
* 
*         STRTRC - SEND OF STARTIDENT 
*         AND CHECK REPLY 
* 
******************************************* 
STRTRC PROC 
 PERF LAMPOF,=W'2047' 
 PERF LAMPON,=W'64' 
 MOVE GSWBIN6,CBIN1 
 MOVE GSWBIN1,=W'128' 
 PERF RAREAD,DK02,=D'2',CDISKBUF,GSWBIN1,GSWBIN6
 BNOK STRTRET 
 CBE GTWBCD1,=D'4',STRTRET RECORD DELETED?
 PERF WRITID,CDISKBUF,CBIN5,CBIN1 
 MOVE GSWBIN6,CBIN0 
 MOVE GSWBIN1,=W'40'
 MOVE GSWSTR20,CBLANKS
 COPY CDISKBUF,GSWBIN1,CBIN20,GSWSTR20,GSWBIN6
 MOVE CSENDBUF,=C' '
 EDIT CSENDBUF,SNDFRM2
 MOVE GSWBIN2,=W'31' LENGTH 
 PERF EXCHAN EXCHANGE DC
 BNOK STRTRET 
 PERF TRNOK CHECK IF OK 
 BNOK STRTRET 
 CMP CBIN0,CBIN0 SET CR 
 RET
STRTRET 
 CMP CBIN0,CBIN1
 RET
 PEND 
 EJECT
**********************************************
* 
*         SENDRC - SEND BATCH UNTIL SLUTID
* 
**********************************************
SENDRC PROC 
*CBCFROM MUST HAVE BEEN ADJUSTED ???????? 
 CBG CBCFROM,CBIN1,SND000 
 MOVE CBCFROM,CBIN2 FIRST DATA RECORD 
SND000

 MOVE GSWBIN1,=W'128' 
 PERF RAREAD,DK02,=D'2',CDISKBUF,GSWBIN1,CBCFROM
 BNOK SNDERR
 CMP GTWBCD1,=D'4'
 BE SNDERR TOO FAR

* LOOK FOR FIRST PART OF A TRANSACTION '&01'
 MOVE GSWSTR20,=C'&01'
 MOVE GSWBIN1,=W'128' 
 MOVE GSWBIN5,CBIN0 
 MATCH CDISKBUF,GSWBIN5,GSWBIN1,GSWSTR20,CBIN0,CBIN3
 BE SND003
 MOVE GSWSTR20,=C'SLUTD'
 MOVE GSWBIN5,CBIN0 
 MATCH GSWSTR20,GSWBIN5,CBIN5,CDISKBUF,CBIN0,CBIN5
 BNE SND002 TRY NEXT
 MOVE CSENDNR,CBCFROM 
 MOVE GSWBIN3,CBIN0 
 B SND013 SEND SLUTD

SND002			TRY NEXT 
 ADD CBCFROM,CBIN1
 B SND000 

SND003
 TBF TBCTASK,SND004 
 MOVE GSWBCD1,CBCFROM 
 EDWRT KJTAPE,FBCFROM 
SND004

 PERF WRITID,CDISKBUF,CBIN0,CBIN1 

 CLEAR TTEORFLG NOT END OF RECORD 
 MOVE CSENDNR,CBCFROM 
 SUB CSENDNR,CBIN1
SND005
 MOVE GSWBIN3,CBIN0 PACKPOINTER 

SND010
 TBF TTEORFLG,SND011 END OF RECORD? 
			YES
 CBE CBCTO,CBIN0,SND011 SEND REST 
* IF FROM > TO, SEND SLUTD
 CBNG CSENDNR,CBCTO,SND011 SEND MORE
 MOVE CDISKBUF,=C'SLUTD00000 '

 MOVE GSWBIN1,CSENDNR 
 SUB GSWBIN1,CBCFROM
 ADD GSWBIN1,CBIN1
 MOVE GSWBCD3,GSWBIN1 
 PERF SLUTID,CDISKBUF,GSWBCD3 

 B SNDSLUT

SND011
 ADD CSENDNR,CBIN1
 MOVE GSWBIN1,=W'128' 
 PERF RAREAD,DK02,=D'2',CDISKBUF,GSWBIN1,CSENDNR
 BNOK SNDERR
 CMP GTWBCD1,=D'4'
 BNE SND012 
 MOVE CDISKBUF,=C'SLUTD00000 '

SND012
 MOVE GSWSTR20,=C'SLUTD'
 MOVE GSWBIN5,CBIN0 
 MATCH GSWSTR20,GSWBIN5,CBIN5,CDISKBUF,CBIN0,CBIN5
 BNE SND014 
SND013
 MOVE GSWBIN1,CSENDNR 
 SUB GSWBIN1,CBCFROM
 MOVE GSWBCD3,GSWBIN1 
 PERF SLUTID,CDISKBUF,GSWBCD3 
 SUB CSENDNR,CBIN1
 MOVE CBCOPT,CBIN2 STOP 
 B SNDSLUT
SND014
 SET TTEORFLG END OF RECORD 
 MOVE GSWSTR9,=X'7F' FIND LENGTH
SND015
 MOVE GSWBIN4,CBIN0 
 MOVE GSWBIN5,=W'128' 
 MATCH CDISKBUF,GSWBIN4,GSWBIN5,GSWSTR9,CBIN0,CBIN1 
 BE SND020
 CLEAR TTEORFLG NOT END OF RECORD 
 MOVE GSWSTR9,=X'21'
 B SND015 
SND020
 ADD GSWBIN4,GSWBIN3 SEE IF MORE SPACE
 CBNG GSWBIN4,=W'500',SND030
 SUB CSENDNR,CBIN1 NO MORE SPACE
 B SND040 SEND BUFFER 
SND030
 SUB GSWBIN4,GSWBIN3 RESTORE
 ADD GSWBIN4,CBIN1 FILL WITH X'00'
 CBE GSWBIN4,=W'128',SND037 
 MOVE GSWSTR20,=X'00' 
 MOVE GSWBIN5,=W'128' 
 SUB GSWBIN5,GSWBIN4 REMAINING TO FILL
SND035
 CBL GSWBIN5,CBIN20,SND036
 INSRT CDISKBUF,GSWBIN4,CBIN20,GSWSTR20,CBIN0 
 SUB GSWBIN5,CBIN20 
 B SND035 
SND036
 INSRT CDISKBUF,GSWBIN4,GSWBIN5,GSWSTR20,CBIN0

SND037
 EDSUB CSENDBUF,GSWBIN3,SNDFRM5 INSERT RECORD 
 B SND010 READ NEXT 
SND040
 MOVE GSWBIN2,GSWBIN3 
 TBT TBCTASK,SND042 
			MANUAL 
 MOVE GTWBCD2,CSENDNR 
 PERF SPLIN8,CBIN10,CBIN3 
 B SND044 
SND042			AUTOMATIC
 IB CBCOPT,	CHECK ON OPTION	C 
		SND0421,	START	C
		SND0422,	STOP	C 
		SND0423,	INTERRUPT	C
		SND0424 SEND REST 
SND0421 
 B SND044 
SND0422 
SND0423 
 B SNDERR 
SND0424			SEND REST 
 MOVE CBCTO,CBIN0 
SND044			END OF CHECK 
* 
 PERF EXCHAN
 BNOK SNDERR
 PERF TRNOK 
 BNOK SNDERR
 B SND005 
SNDSLUT 
	CBE	GSWBIN3,CBIN0,SND090	REQ.LGTH.=0 ? 
 MOVE GSWBIN2,GSWBIN3 
 PERF EXCHAN EXCHANGE DC
 BNOK SNDERR
 PERF TRNOK 
 BNOK SNDERR
SND090
 MOVE GSWBIN3,CBIN0 
 MOVE CSENDBUF,=C' '
 EDSUB CSENDBUF,GSWBIN3,SNDFRM5 
 MOVE GSWBIN2,CBIN18
 PERF EXCHAN
 BNOK SNDERR
 PERF WRITID,CDISKBUF,CBIN5,CBIN2 
 PERF WJDC PRINT ANSWER 
 TBT CTESTFLG,SNDSL10 
 MOVE GSWSTR9,=C'0002'
 MOVE GSWBIN1,CBIN0 
 MOVE GSWBIN2,=W'52'
 MATCH CSENDBUF,GSWBIN1,GSWBIN2,GSWSTR9,CBIN0,CBIN4 
 BNE SNDERR 
SNDSL10 
 CMP CBIN0,CBIN0
 RET
SNDERR
 CMP CBIN1,CBIN0
 RET
 PEND 
 EJECT
********************************************
* 
*         TERMIN - TERMINATE TRANSMISSION IN CASE OF ERROR
* 
********************************************
TERMIN PROC 
 MOVE GSWBIN3,CBIN0 
 MOVE CSENDBUF,=C' '
 MOVE CDISKBUF,=C'TERMINATE ' 
 MOVE GSWBIN3,CBIN0 
 EDSUB CSENDBUF,GSWBIN3,SNDFRM2 
 MOVE GSWBIN2,CBIN14
 PERF EXCHAN EXCHANGE DC
 BNOK TERMRET 
 PERF WJDC
TERMRET 
 MOVE GSWBIN1,CBIN0 
 DSC1 DCOMM,TRPAR,GSWBIN1 
 RET
 PEND 
 EJECT
********************************************* 
* 
*         SIGNOFF 
* 
********************************************* 
SIGNOF PROC 
 MOVE GSWBIN3,CBIN0 
 MOVE CSENDBUF,=C' '
 MOVE CDISKBUF,=C'CSSF '
 EDSUB CSENDBUF,GSWBIN3,SNDFRM2 
 MOVE GSWBIN2,CBIN9 
 PERF EXCHAN
 BNOK SIGOFRET
 MOVE GSWBIN1,CBIN0 
 DSC1 DCOMM,TRPAR,GSWBIN1 
 TBT CTESTFLG,SIGOFRT1
 PERF WJDC PRINT ANSWER 
SIGOFRET
 RET
SIGOFRT1
 CMP CBIN0,CBIN0
 RET
 PEND 
 EJECT
********************************************* 
*           EXCHAN - EXCHANGE DC
*         IN CASE OF ERROR ERRORMESSAGE 
*         IS SHOWN ON SCREEN AND JOURNAL
********************************************* 
EXCHAN PROC 
 TBT CTESTFLG,EXCHTEST
EXCH10
 MOVE GSWBIN5,CBIN1 
 MOVE GSWBIN1,=W'504' 
 DCREAD DCOMM,CDUMBUF,GSWBIN1,GSWBIN5 
 BOK EXCH10 IF ANYTIBNG RCVD, THROW AWAY
 MOVE GSWBIN5,=W'900' TIMEOUT 
 DCWRITE DCOMM,CSENDBUF,GSWBIN2,GSWBIN5 
 BNOK EXCHNOK 
 MOVE GSWBIN2,=W'504' 
 MOVE GSWBIN5,=W'900' TIMEOUT 
 DCREAD DCOMM,CSENDBUF,GSWBIN2,GSWBIN5
 BOK EXCHRET
EXCHNOK 
 PERF GETBIT,DCOMM FETCH ERRORCODE
 MOVE SPBINW4,CBIN21
 MOVE GTWBCD2,=D'60'
 MOVE GSWSTR9,=C'TRANSMIT ' 
 PERF SPERR 
 PERF WRITJT,=W'14' 
 CMP CBIN0,CBIN1
 RET
EXCHTEST
 MOVE CSENDBUF,=X'1B3543' 
 DELAY CBIN20 
EXCHRET 
 CMP CBIN0,CBIN0
 RET
 PEND 
 EJECT
********************************************* 
* 
*       TRNOK - CHECK IF MESSAGE CORRECT RECIEVED 
* 
********************************************* 
TRNOK PROC
 MOVE GSWBIN3,CBIN0 
 MOVE GSWSTR9,=X'1B3543' =EBCDIC 27F5C3 
 MATCH CSENDBUF,GSWBIN3,GSWBIN2,GSWSTR9,CBIN0,CBIN3 
 BNE TRNERR 
 MOVE GSWBIN2,CBIN0 
 MOVE CSENDBUF,=C' '
 CMP CBIN0,CBIN0
 RET
TRNERR
 PERF WJDC PRINT WRONG RESPONSE 
 MOVE GTWBCD2,=D'60'
 MOVE GSWSTR9,=C'TRANSMIT ' 
 MOVE GTWBCD1,=D'50'
 PERF SPERR 
 PERF WRITJT,=W'14' 
 CMP CBIN0,CBIN1
 RET
 PEND 
 EJECT
************************************************* 
* 
*    WJDC - PRINT RECEIVED MESSAGE ON JOURNAL 
* 
************************************************* 
WJDC PROC 
 TBT TBCTASK,WJDC000
 WAIT KTALLY
WJDC000 
 CBL GSWBIN2,CBIN1,WJDCRET
 CBG GSWBIN2,=W'504',WJDCRET
 MOVE GSWSTR9,=C'DFH' 
 MOVE GSWBIN1,CBIN0 
 MATCH CSENDBUF,GSWBIN1,GSWBIN2,GSWSTR9,CBIN0,CBIN3 
 BE WJDC100 CICS MESSAGE
* 
*      APLICATION MESSAGE 
* 
 MOVE GSWSTR9,=X'11'
 MOVE GSWBIN1,CBIN0 
 MATCH CSENDBUF,GSWBIN1,GSWBIN2,GSWSTR9,CBIN0,CBIN1 
 BNE WJDCRET
*                       GSWBIN1=START 
 ADD GSWBIN1,CBIN3 BYPASS SBA SEQUENSE
 MOVE GSWBIN4,GSWBIN1 
 SUB GSWBIN2,GSWBIN4 ADJUST LENGTH
 CBL GSWBIN2,CBIN1,WJDCRET
WJDC005 
 MOVE CDISKBUF,=X'00' 
 MATCH CSENDBUF,GSWBIN4,GSWBIN2,GSWSTR9,CBIN0,CBIN1 
 BNE WJDC010
 SUB GSWBIN4,GSWBIN1 GSWBIN4 = LENGTH 
 CBNG GSWBIN4,=W'52',WJDC007
 MOVE GSWBIN4,=W'52' MAX 52 CHARS 
 COPY CDISKBUF,CBIN0,GSWBIN4,CSENDBUF,GSWBIN1 
 EDWRT KJTAPE,WJDCFRM 
 B WJDC008
WJDC007 
 COPY CDISKBUF,CBIN0,GSWBIN4,CSENDBUF,GSWBIN1 
 EDWRT KJTAPE,WJDCFRM 
 ADD GSWBIN4,CBIN3
WJDC008 
 SUB GSWBIN2,GSWBIN4
 ADD GSWBIN4,GSWBIN1
 MOVE GSWBIN1,GSWBIN4 
 CBG GSWBIN2,CBIN3,WJDC005
 B WJDCRET
WJDC010 
 B WJDC200
WJDCRET 
 RET
* 
WJDC100 
 SUB GSWBIN2,GSWBIN1
 CBL GSWBIN2,=W'52',WJDC200 
 MOVE GSWBIN4,=W'30' FIND BLANK 
 ADD GSWBIN4,GSWBIN1
 MATCH CSENDBUF,GSWBIN4,CBIN22,CBLANKS,CBIN0,CBIN1
 BNE WJDC200
 MOVE CDISKBUF,=X'00' 
 SUB GSWBIN4,GSWBIN1
 COPY CDISKBUF,CBIN0,GSWBIN4,CSENDBUF,GSWBIN1 
 EDWRT KJTAPE,WJDCFRM 
 SUB GSWBIN2,GSWBIN4
 ADD GSWBIN1,GSWBIN4
WJDC200 
 MOVE CDISKBUF,=X'00' 
 CBL GSWBIN2,=W'52',WJDC210 
 MOVE GSWBIN2,=W'52'
WJDC210 
 COPY CDISKBUF,CBIN0,GSWBIN2,CSENDBUF,GSWBIN1 
 EDWRT KJTAPE,WJDCFRM 
 RET
 PEND 
 EJECT
************************************************
* 
*         FORMATS USED
* 
************************************************
* 
SNDFRM FRMT 
 FSL
 FLINK SNDAUTO
 FNL
 FTEXT 'BRUGERNAVN' 
 FKI 12,MINL=1,MAXL=13,ME 
 FMEL 'AAAAAAAAAAAAAAAAAAA9',CBRUGNR
 FNL
 FTEXT 'KENDEORD' 
 FKI 12,MINL=1,MAXL=4,ME
 FMEL 'TTT9',CKENDNR
 FMEND
* 
SIGONF FRMT 
 FILLR ' ',2
 FCOPY =X'272020' 
 FTEXT 'CSSN PS=' 
 FMEL '9999',CKENDNR
 FTEXT ',NAME=' 
 FMEL 'AAAAAAAAAAAAAAAAAAA9',CBRUGNR
 FMEND
* 
SNDAUTO FRMT
 FBT CBCFLAG,FRMAUTO
 FCOPY =C'MANUEL '
 FB FRMOUT
FRMAUTO FCOPY =C'AUTOMATISK ' 
FRMOUT FCOPY =C'DATATRANSMISSION '
 FMEND
* 
SNDFRM2 FRMT
 FILLR ' ',2
 FCOPY =X'272020' 
 FCOPY CDISKBUF 
 FMEND
* 
SNDFRM3 FRMT
 FILLR '1',2
 FCOPY =C'DATATRANSMISSION '
 FMEND
* 
SNDFRM5 FRMT
 FBNZ GSWBIN3,SNDLAB10
 FILLR ' ',2
 FCOPY =X'272020' 
SNDLAB10
 FCOPY =X'112020' 
 FCOPY CDISKBUF 
 FMEND
* 
SNDFRM6 FRMT
 FSL
 FCOPY ='DATATRANSMISSION ' 
 FILLR '?',1
 FKI 20,MAXL=1,ME 
 FMEL '9',GSWBCD1 
 FNL
 FNL
 FTEXT '1: '
 FCOPY =C'MANUEL '
 FNL
 FTEXT '2: '
 FCOPY =C'AUTOMATISK '
 FBF CBCACTVF,FRM6020 
 FBT CBCSENDF,FRM6010 
 FTEXT '(ER AKTIV)' 
 FB FRM6015 
FRM6010 FTEXT '(SENDER)'
FRM6015 FILLR ' ',4 
 FMEL 'ZZZZ9',GSWBCD2 
FRM6020 FMEND 
* 
* 
SNDFRM7 FRMT
 FILLR '1',2
 FLINK SNDAUTO
 FNL
 FNL
 FTEXT 'SEND FRA DENNE DISK? '
 FNL
 FKI 1
 FMEL 'B',TSWBCD2 
 FMEND
* 
SNDFRM8 FRMT
 FSL
 FLINK SNDAUTO
 FNL
 FNL
 FTEXT 'START ' 
 FCOPY =C'FRA: '
 FKI 12,MAXL=5
 FMEL 'ZZZZ9',GSWBCD1 
 FMEND
* 
SNDFRM9 FRMT
 FSL
 FLINK SNDAUTO
 FNL
 FNL
 FILLR ' ',3
 FTEXT 'V[LG: ' 
 FKI 9,MAXL=1 
 FMEL '9',GSWBCD1 
 FNL
 FTEXT '1: SEND RESTEN '
 FNL
 FTEXT '2: AFBRYD SENDING ' 
 FMEND
* 
SNDFRM10 FRMT 
 FSL
 FLINK SNDAUTO
 FNL
 FNL
 FTEXT 'SEND FRA: ' 
 FKI 11,MAXL=5
 FMEL 'ZZZZ9',GSWBCD1 
 FNL
 FILLR ' ',5
 FTEXT 'TIL: '
 FKI 11,MAXL=5
 FMEL 'ZZZZ9',GSWBCD2 
 FMEND
* 
WJDCFRM FRMT
 FNL
 FCOPY CDISKBUF 
 FNL
 FMEND
	EJECT
FBCACTV FRMT		BC ACTIVATED
 FNL
 FLINK SNDAUTO
 FCOPY =C'AKTIVERET ' 
 FMEL '99V99V99',CMASKDAT 
 FLINK FSKIP
 FMEND
* 
FBCSTRT FRMT		START BATCH 
 FNL
 FLINK SNDAUTO
 FCOPY ='BATCH SENDES'
 FNL
 FMEND
* 
FBCEXIT FRMT		EXIT BC TASK
 FNL
 FLINK SNDAUTO
 FCOPY =C'AFSLUTTET'
 FLINK FSKIP
 FMEND
* 
FBCSTOP FRMT		END OF BATCH
 FNL
 FLINK SNDAUTO
 FCOPY =C'BATCH SENDT'
 FLINK FSKIP
 FMEND
* 
FSKIP FRMT		SKIP LINES
 FNL
 FNL
 FNL
 FNL
 FNL
 FNL
 FNL
 FNL
 FMEND
* 
FFNL FRMT 
 FNL
 FMEND
* 
FBCTERM FRMT
 FNL
 FLINK SNDAUTO
 FCOPY =C'AFBRUDT'
 FNL
 FMEND
* 
FBCFROM FRMT
 FNL
 FCOPY =C'FRA: '
 FMEL 'ZZZZZ9',GSWBCD1
 FNL
 FMEND
* 
FBCTO FRMT
 FNL
 FCOPY =C'FRA: '
 FMEL 'ZZZZZ9',GSWBCD1
 FILLR ' ',5
 FCOPY =C'TIL: '
 FMEL 'ZZZZZ9',GSWBCD2
 FNL
 FMEND
* 
* 
 END

Full view