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

⟦d53fda716⟧

    Length: 6452 (0x1934)
    Notes: pts_type(SC)
    Names: »TNDPAY.SC«

Derivation

└─⟦f350e1b7a⟧ Bits:30009678 Philips computer tape "600219"
    └─⟦this⟧ »PTSDEMO/TNDPAY.SC« 

PTS(SC)

 IDENT TNDPAY REL=9.2 VER=ND 80-004-14
			UPD 3 80-04-14 / BORO
			TND BLOCKED TEST CHANGED 
			& TND RELEASED AFTER REPORT
			UPD 2 80-02-07 / BORO
			REPEAT LAST DISPENSE 
			UPD 1 80-02-05 / BORO
			ADD SEPARATE DELIVER FUNCTION
* 
* NAME:         TNDPAY
* 
* PURPOSE:      DISPENSE MONEY IN MAX SIZE BUNDLES WHEN TND 
*               OPEN-NORMALLY USED FOR BANK TRANSACTIONS
* 
* CALL:    PERF TNDPAY,AMT,TND,TNDWB1,TNDWB2,TNDWB3,TNDWD1,TNDWS1,TNDBUF
*               RET   0                 UNABLE TO PAY 
*               RET   2                 PART PAID,CASS. EMPTY OR ERROR
*               RET   4                 TOTAL REQUESTED AMOUNT PAID 
* 
* PARAMETERS: 
*    IN:  TND-TND DATA SET, INDICATING TELLER TO PAY
*         TNDWB1 BIN WORK REGISTER
*         TNDWB2  " 
*         TNDWB3  " 
*         TNDWD1 BCD WORK REGISTER, MINIMUM 7 CHAR PLUS SIGN CHAR 
*         TNDWS1 STRG WORK REGISTER, MINIMUM 5 CHAR 
*         TNDBUF STRG I/O BUFFER, MINIMUM 40 CHAR 
*    OUT: AMT-BCD ELEMENT, UPDATED BY ADDING THE AMOUNT DELIVERED 
* 
* VARIABLES 
*   IN:   TNDREG(X)-BCD ARRAY, EACH ELEMENT REPRESENTING A CASSETTE 
*                  AND CONTAINING NUMBER OF NOTES TO DELIVER
*         TNDBAD
*         TNDRCF
*         TNDREPA 
*         TNDOPF
*         TNDBLK
*         CASMAX
*         MAXOUT
* SCRATCH TNDWB1
*         TNDWB2
*         TNDWD1
*         DELAMT
*         TNDWB3
*         TNDST 
*         NDDATA1(KW2,X)
*         CASEMP
*         PAYOK 
* 
	DDUM	DEMODD
	PDIV 
	ENTRY	TNDPAY 
	EXPROC	IOTND	TND I/O SUBROUTINE
	EXPROC	TNDREM	CALC. AMT LEFT IN CASSETTE 
	EXPROC	NDERR	REPORT TO APPL CASSETTE EMPTY 
	EJECT
TNDPAY	PROC	AMT,		C 
		TND,		C 
		TNDWB1,		C
		TNDWB2,		C
		TNDWB3,		C
		TNDWD1,		C
		TNDWS1,		C
		TNDBUF
	PBCD	AMT 
	PDSET	TND
	PBIN	TNDWB1
	PBIN	TNDWB2
	PBIN	TNDWB3
	PBCD	TNDWD1
	PSTRG	TNDWS1 
	PSTRG	TNDBUF 
	TBT	TNDBAD,TNDP00	RET. IF TND BAD
	TBT	TNDRCF,TNDP00	RET. IF REJECT CASS FULL 
	TBT	TNDBLK,TNDP00	RET. IF TNDADM FUNC. RUNNING 
	TBT	TNDOPF,TNDP10	RET. IF CLOSED 
TNDP00
	RET		TND BLOCKED FROM DISPENSE 
* 
* DISPENSING ALLOWED, INITIALIZE
* 
TNDP10
	CLEAR	PAYOK
	CLEAR	CASEMP 
* 
* SET UP FOR DISPENSE 
* 
TNDP20
	MOVE	TNDWB3,MAXOUT 
	MOVE	DELAMT,KW0
	MOVE	TNDWB1,KW0
* 
* TEST IF LOOPED THROUGH CASSETTES
* 
TNDP25
	ADD	TNDWB1,KW1 
	CBG	TNDWB1,CASMAX,TNDP45 
	MOVE	NDDATA1(KW2,TNDWB1),KW0 
* 
* TEST IF DISPENSE REQUESTED FOR THIS CASSETTE
* 
	SUB	TNDREG(TNDWB1),='0'
	BZ	TNDP25
* 
* TEST IF DISPENSE ALLOWED FROPM THIS CASSETTE
	SUB	NDDATA2(KW2,TNDWB1),='0' 
	BNZ	TNDP30 
	SET	CASEMP 
	B	TNDP25 
* 
* DETERMINE  NOTES TO DISPENSE FROM THIS CASSETTE, THIS TIME
* 
TNDP30
	MOVE	NDDATA1(KW2,TNDWB1),TNDWB3
	MOVE	TNDWB2,TNDREG(TNDWB1) 
	CBG	TNDWB2,TNDWB3,TNDP35	BRANCH IF TOO MUCH
	MOVE	NDDATA1(KW2,TNDWB1),TNDREG(TNDWB1)
* 
* TEST IF ENOUGH LEFT IN CASSETTE 
* 
TNDP35
	PERF	TNDREM,TNDWB1,TNDWD1	CALC. NOTES LEFT IN CASS.
	SUB	TNDWD1,NDDATA1(KW2,TNDWB1) 
	BNN	TNDP40 
	ADD	NDDATA1(KW2,TNDWB1),TNDWD1	SUB OVERFLOW
	BP	TNDP40	STILL SOME LEFT
	MOVE	NDDATA2(KW2,TNDWB1),KW0	BLOCK CASSETTE
	PERF	NDERR,KW6	TELL APPL. ABOUT EMPTY CASS.
	SET	CASEMP 
	B	TNDP25	NEXT CASSETTE 
* 
* UPDATE NO. OF NOTES LEFT TO DISPENSE,  THIS TIME
* 
TNDP40
	MOVE	TNDWB2,NDDATA1(KW2,TNDWB1)
	SUB	TNDWB3,TNDWB2
* 
* CALCULATE AMOUNT FROM NUMBER OF NOTES 
	MOVE	TNDWD1,NOTES(TNDWB1)
	MUL	TNDWD1,NDDATA1(KW2,TNDWB1) 
	ADD	DELAMT,TNDWD1
	B	TNDP25 
	EJECT
* 
* TEST IF ANYTHING TO DISPENSE
* 
TNDP45
	CBE	TNDWB3,MAXOUT,TNDP50 
* 
* DISPENSE, IF CASSETTE EMPTY, TRY AGAIN WITHOUT THAT CASSETTE
* 
	PERF	IOTND,KW3,		C 
		TND,		C 
		TNDWB1,		C
		TNDWB2,		C
		TNDWB3,		C
		TNDWD1,		C
		TNDWS1,		C
		TNDBUF
* BRANCH ON RETURN STATUS:
* TND ERROR, TND BLOCKED, CASSETTE EMPTY
	IB	TNDST,TNDPER,TNDPER,TNDP20

* DISPENSE SUCCESSFUL, DELIVER NOTES

	PERF	IOTND,KW4,		C 
		TND,		C 
		TNDWB1,		C
		TNDWB2,		C
		TNDWB3,		C
		TNDWD1,		C
		TNDWS1,		C
		TNDBUF

* BRANCH ON RETURN STATUS:
* TND ERROR, TND BLOCKED, POWER FAIL BETWEEN DISPENSE & DELIVER 

	IB	TNDST,TNDPER,TNDPER 
	ADD	AMT,DELAMT 
	SET	PAYOK
	B	TNDP20 
	EJECT
* 
*DELIVERED WHAT WE COULD, DETACH TND, TEST IF ANYTHING PAID 
* 
TNDP50
* 
* REPORT ANY CASSETTES THAT ARE EMPTY BUT NOT REPORTED
* BY "IOTND"  BECAUSE DISPENSE WAS SUCCESSFUL 
* 
	MOVE	TNDWB1,KW0	CASSETTE INDEX 
TNDP52
	ADD	TNDWB1,KW1	NEXT CASSETTE 
	CBG	TNDWB1,CASMAX,TNDP53	BRANCH IF DONE
	SUB	NDDATA2(KW2,TNDWB1),='0' 
	BZ	TNDP52	ALREADY REPORTED EMPTY?
	PERF	TNDREM,TNDWB1,TNDWD1	GET AMOUNT REMAINING 
	SUB	TNDWD1,=D'0'	AMOUNT REMAINING
	BP	TNDP52	NOT EMPTY
	MOVE	NDDATA2(KW2,TNDWB1),KW0	FLAG CASSETTE AS EMPTY
	PERF	NDERR,KW6	REPORT TO APPLICATIONS
	B	TNDP52	NEXT CASSETTE 
TNDP53
	TBT	PAYOK,TNDP55 
	RET
* 
* PAID SOMETHING
* 
TNDP55
	TBT	CASEMP,TNDPER1 
* 
* PAID ALL
* 
	RET	4
	EJECT
* 
* ERROR  TEST IF ANYTHING PAID
* 
TNDPER
	TBT	PAYOK,TNDPER1
	RET
* 
* ERROR BUT PAID PART 
* 
TNDPER1 
	RET	2
	PEND 
	END

HexDump

0x0000…002e (0, 0, 400)  Head {h00=0x002a, h01=0x0050, text=» IDENT TNDPAY REL=9.2 VER=ND 80-004-14«, t00=0x0000, t01=0x0004}
0x002e…004e              Head {h00=0x001c, h01=0x0050, text=»   UPD 3 80-04-14 / BORO«, t00=0x0000, t01=0x0032}
0x004e…0072              Head {h00=0x0020, h01=0x0050, text=»   TND BLOCKED TEST CHANGED «, t00=0x0000, t01=0x0052}
0x0072…0098              Head {h00=0x0022, h01=0x0050, text=»   & TND RELEASED AFTER REPORT«, t00=0x0000, t01=0x0076}
0x0098…00b8              Head {h00=0x001c, h01=0x0050, text=»   UPD 2 80-02-07 / BORO«, t00=0x0000, t01=0x009c}
0x00b8…00d8              Head {h00=0x001c, h01=0x0050, text=»   REPEAT LAST DISPENSE «, t00=0x0000, t01=0x00bc}
0x00d8…00f8              Head {h00=0x001c, h01=0x0050, text=»   UPD 1 80-02-05 / BORO«, t00=0x0000, t01=0x00dc}
0x00f8…0120              Head {h00=0x0024, h01=0x0050, text=»   ADD SEPARATE DELIVER FUNCTION«, t00=0x0000, t01=0x00fc}
0x0120…012a              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0000, t01=0x0124}
0x012a…0148              Head {h00=0x001a, h01=0x0016, text=»* NAME:         TNDPAY«, t00=0x0000, t01=0x012e}
0x0148…0152              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0000, t01=0x014c}
0x0152…0196              Head {h00=0x0040, h01=0x0050, text=»* PURPOSE:      DISPENSE MONEY IN MAX SIZE BUNDLES WHEN TND «, t00=0x0000, t01=0x0156}
0x0196…01d6              Head {h00=0x003c, h01=0x0038, text=»*               OPEN-NORMALLY USED FOR BANK TRANSACTIONS«, t00=0x0001, t01=0x000a}
0x01d6…01e0              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0001, t01=0x004a}
0x01e0…0230              Head {h00=0x004c, h01=0x0050, text=»* CALL:    PERF TNDPAY,AMT,TND,TNDWB1,TNDWB2,TNDWB3,TNDWD1,TNDWS1,TNDBUF«, t00=0x0001, t01=0x0054}
0x0230…026e              Head {h00=0x003a, h01=0x0035, text=»*               RET   0                 UNABLE TO PAY «, t00=0x0001, t01=0x00a4}
0x026e…02bc              Head {h00=0x004a, h01=0x0050, text=»*               RET   2                 PART PAID,CASS. EMPTY OR ERROR«, t00=0x0001, t01=0x00e2}
0x02bc…0308              Head {h00=0x0048, h01=0x0050, text=»*               RET   4                 TOTAL REQUESTED AMOUNT PAID «, t00=0x0001, t01=0x0130}
0x0308…0312              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0001, t01=0x017c}
0x0312…0328              Head {h00=0x0012, h01=0x000d, text=»* PARAMETERS: «, t00=0x0001, t01=0x0186}
0x0328…0364              Head {h00=0x0038, h01=0x0034, text=»*    IN:  TND-TND DATA SET, INDICATING TELLER TO PAY«, t00=0x0002, t01=0x000c}
0x0364…038e              Head {h00=0x0026, h01=0x0050, text=»*         TNDWB1 BIN WORK REGISTER«, t00=0x0002, t01=0x0048}
0x038e…03aa              Head {h00=0x0018, h01=0x0050, text=»*         TNDWB2  " «, t00=0x0002, t01=0x0072}
0x03aa…03c6              Head {h00=0x0018, h01=0x0050, text=»*         TNDWB3  " «, t00=0x0002, t01=0x008e}
0x03c6…0410              Head {h00=0x0046, h01=0x0050, text=»*         TNDWD1 BCD WORK REGISTER, MINIMUM 7 CHAR PLUS SIGN CHAR «, t00=0x0002, t01=0x00aa}
0x0410…044c              Head {h00=0x0038, h01=0x0050, text=»*         TNDWS1 STRG WORK REGISTER, MINIMUM 5 CHAR «, t00=0x0002, t01=0x00f4}
0x044c…0486              Head {h00=0x0036, h01=0x0050, text=»*         TNDBUF STRG I/O BUFFER, MINIMUM 40 CHAR «, t00=0x0002, t01=0x0130}
0x0486…04d0              Head {h00=0x0046, h01=0x0050, text=»*    OUT: AMT-BCD ELEMENT, UPDATED BY ADDING THE AMOUNT DELIVERED «, t00=0x0002, t01=0x016a}
0x04d0…04da              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0003, t01=0x0024}
0x04da…04ee              Head {h00=0x0010, h01=0x000b, text=»* VARIABLES «, t00=0x0003, t01=0x002e}
0x04ee…053a              Head {h00=0x0048, h01=0x0050, text=»*   IN:   TNDREG(X)-BCD ARRAY, EACH ELEMENT REPRESENTING A CASSETTE «, t00=0x0003, t01=0x0042}
0x053a…057e              Head {h00=0x0040, h01=0x003c, text=»*                  AND CONTAINING NUMBER OF NOTES TO DELIVER«, t00=0x0003, t01=0x008e}
0x057e…0596              Head {h00=0x0014, h01=0x0050, text=»*         TNDBAD«, t00=0x0003, t01=0x00d2}
0x0596…05ae              Head {h00=0x0014, h01=0x0050, text=»*         TNDRCF«, t00=0x0003, t01=0x00ea}
0x05ae…05c8              Head {h00=0x0016, h01=0x0050, text=»*         TNDREPA «, t00=0x0003, t01=0x0102}
0x05c8…05e0              Head {h00=0x0014, h01=0x0010, text=»*         TNDOPF«, t00=0x0003, t01=0x011c}
0x05e0…05f8              Head {h00=0x0014, h01=0x0010, text=»*         TNDBLK«, t00=0x0003, t01=0x0134}
0x05f8…0610              Head {h00=0x0014, h01=0x0010, text=»*         CASMAX«, t00=0x0003, t01=0x014c}
0x0610…0628              Head {h00=0x0014, h01=0x0010, text=»*         MAXOUT«, t00=0x0003, t01=0x0164}
0x0628…0640              Head {h00=0x0014, h01=0x0050, text=»* SCRATCH TNDWB1«, t00=0x0003, t01=0x017c}
0x0640…0658 (4, 0, 400)  Head {h00=0x0014, h01=0x0050, text=»*         TNDWB2«, t00=0x0004, t01=0x0004}
0x0658…0670              Head {h00=0x0014, h01=0x0050, text=»*         TNDWD1«, t00=0x0004, t01=0x001c}
0x0670…0688              Head {h00=0x0014, h01=0x0010, text=»*         DELAMT«, t00=0x0004, t01=0x0034}
0x0688…06a0              Head {h00=0x0014, h01=0x0050, text=»*         TNDWB3«, t00=0x0004, t01=0x004c}
0x06a0…06b8              Head {h00=0x0014, h01=0x000f, text=»*         TNDST «, t00=0x0004, t01=0x0064}
0x06b8…06d8              Head {h00=0x001c, h01=0x0050, text=»*         NDDATA1(KW2,X)«, t00=0x0004, t01=0x007c}
0x06d8…06f0              Head {h00=0x0014, h01=0x0010, text=»*         CASEMP«, t00=0x0004, t01=0x009c}
0x06f0…0708              Head {h00=0x0014, h01=0x000f, text=»*         PAYOK «, t00=0x0004, t01=0x00b4}
0x0708…0712              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0004, t01=0x00cc}
0x0712…0726              Head {h00=0x0010, h01=0x0050, text=» DDUM DEMODD«, t00=0x0004, t01=0x00d6}
0x0726…0734              Head {h00=0x000a, h01=0x0005, text=» PDIV «, t00=0x0004, t01=0x00ea}
0x0734…074a              Head {h00=0x0012, h01=0x000d, text=» ENTRY TNDPAY «, t00=0x0004, t01=0x00f8}
0x074a…0772              Head {h00=0x0024, h01=0x0050, text=» EXPROC IOTND TND I/O SUBROUTINE«, t00=0x0004, t01=0x010e}
0x0772…07a4              Head {h00=0x002e, h01=0x0050, text=» EXPROC TNDREM CALC. AMT LEFT IN CASSETTE «, t00=0x0004, t01=0x0136}
0x07a4…07d8              Head {h00=0x0030, h01=0x0050, text=» EXPROC NDERR REPORT TO APPL CASSETTE EMPTY «, t00=0x0004, t01=0x0168}
0x07d8…07e6              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x0005, t01=0x000c}
0x07e6…0802              Head {h00=0x0018, h01=0x0050, text=»TNDPAY PROC AMT,  C «, t00=0x0005, t01=0x001a}
0x0802…0814              Head {h00=0x000e, h01=0x0050, text=»  TND,  C «, t00=0x0005, t01=0x0036}
0x0814…0828              Head {h00=0x0010, h01=0x000c, text=»  TNDWB1,  C«, t00=0x0005, t01=0x0048}
0x0828…083c              Head {h00=0x0010, h01=0x000c, text=»  TNDWB2,  C«, t00=0x0005, t01=0x005c}
0x083c…0850              Head {h00=0x0010, h01=0x000c, text=»  TNDWB3,  C«, t00=0x0005, t01=0x0070}
0x0850…0864              Head {h00=0x0010, h01=0x000c, text=»  TNDWD1,  C«, t00=0x0005, t01=0x0084}
0x0864…0878              Head {h00=0x0010, h01=0x000c, text=»  TNDWS1,  C«, t00=0x0005, t01=0x0098}
0x0878…0888              Head {h00=0x000c, h01=0x0008, text=»  TNDBUF«, t00=0x0005, t01=0x00ac}
0x0888…089a              Head {h00=0x000e, h01=0x0050, text=» PBCD AMT «, t00=0x0005, t01=0x00bc}
0x089a…08ac              Head {h00=0x000e, h01=0x0050, text=» PDSET TND«, t00=0x0005, t01=0x00ce}
0x08ac…08c0              Head {h00=0x0010, h01=0x0050, text=» PBIN TNDWB1«, t00=0x0005, t01=0x00e0}
0x08c0…08d4              Head {h00=0x0010, h01=0x0050, text=» PBIN TNDWB2«, t00=0x0005, t01=0x00f4}
0x08d4…08e8              Head {h00=0x0010, h01=0x0050, text=» PBIN TNDWB3«, t00=0x0005, t01=0x0108}
0x08e8…08fc              Head {h00=0x0010, h01=0x0050, text=» PBCD TNDWD1«, t00=0x0005, t01=0x011c}
0x08fc…0912              Head {h00=0x0012, h01=0x0050, text=» PSTRG TNDWS1 «, t00=0x0005, t01=0x0130}
0x0912…0928              Head {h00=0x0012, h01=0x0050, text=» PSTRG TNDBUF «, t00=0x0005, t01=0x0146}
0x0928…0952              Head {h00=0x0026, h01=0x0050, text=» TBT TNDBAD,TNDP00 RET. IF TND BAD«, t00=0x0005, t01=0x015c}
0x0952…0986              Head {h00=0x0030, h01=0x0050, text=» TBT TNDRCF,TNDP00 RET. IF REJECT CASS FULL «, t00=0x0005, t01=0x0186}
0x0986…09be              Head {h00=0x0034, h01=0x0050, text=» TBT TNDBLK,TNDP00 RET. IF TNDADM FUNC. RUNNING «, t00=0x0006, t01=0x002a}
0x09be…09e8              Head {h00=0x0026, h01=0x0050, text=» TBT TNDOPF,TNDP10 RET. IF CLOSED «, t00=0x0006, t01=0x0062}
0x09e8…09f6              Head {h00=0x000a, h01=0x0050, text=»TNDP00«, t00=0x0006, t01=0x008c}
0x09f6…0a1e              Head {h00=0x0024, h01=0x0050, text=» RET  TND BLOCKED FROM DISPENSE «, t00=0x0006, t01=0x009a}
0x0a1e…0a28              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0006, t01=0x00c2}
0x0a28…0a50              Head {h00=0x0024, h01=0x0020, text=»* DISPENSING ALLOWED, INITIALIZE«, t00=0x0006, t01=0x00cc}
0x0a50…0a5a              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0006, t01=0x00f4}
0x0a5a…0a68              Head {h00=0x000a, h01=0x0050, text=»TNDP10«, t00=0x0006, t01=0x00fe}
0x0a68…0a7c              Head {h00=0x0010, h01=0x000c, text=» CLEAR PAYOK«, t00=0x0006, t01=0x010c}
0x0a7c…0a92              Head {h00=0x0012, h01=0x000d, text=» CLEAR CASEMP «, t00=0x0006, t01=0x0120}
0x0a92…0a9c              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0006, t01=0x0136}
0x0a9c…0aba              Head {h00=0x001a, h01=0x0015, text=»* SET UP FOR DISPENSE «, t00=0x0006, t01=0x0140}
0x0aba…0ac4              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0006, t01=0x015e}
0x0ac4…0ad2              Head {h00=0x000a, h01=0x0006, text=»TNDP20«, t00=0x0006, t01=0x0168}
0x0ad2…0aee              Head {h00=0x0018, h01=0x0050, text=» MOVE TNDWB3,MAXOUT «, t00=0x0006, t01=0x0176}
0x0aee…0b06 (7, 0, 400)  Head {h00=0x0014, h01=0x0050, text=» MOVE DELAMT,KW0«, t00=0x0007, t01=0x0004}
0x0b06…0b1e              Head {h00=0x0014, h01=0x0050, text=» MOVE TNDWB1,KW0«, t00=0x0007, t01=0x001c}
0x0b1e…0b28              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0007, t01=0x0034}
0x0b28…0b52              Head {h00=0x0026, h01=0x0050, text=»* TEST IF LOOPED THROUGH CASSETTES«, t00=0x0007, t01=0x003e}
0x0b52…0b5c              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0007, t01=0x0068}
0x0b5c…0b6a              Head {h00=0x000a, h01=0x0006, text=»TNDP25«, t00=0x0007, t01=0x0072}
0x0b6a…0b82              Head {h00=0x0014, h01=0x0050, text=» ADD TNDWB1,KW1 «, t00=0x0007, t01=0x0080}
0x0b82…0ba4              Head {h00=0x001e, h01=0x0050, text=» CBG TNDWB1,CASMAX,TNDP45 «, t00=0x0007, t01=0x0098}
0x0ba4…0bca              Head {h00=0x0022, h01=0x0050, text=» MOVE NDDATA1(KW2,TNDWB1),KW0 «, t00=0x0007, t01=0x00ba}
0x0bca…0bd4              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0007, t01=0x00e0}
0x0bd4…0c0a              Head {h00=0x0032, h01=0x002e, text=»* TEST IF DISPENSE REQUESTED FOR THIS CASSETTE«, t00=0x0007, t01=0x00ea}
0x0c0a…0c14              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0007, t01=0x0120}
0x0c14…0c34              Head {h00=0x001c, h01=0x0050, text=» SUB TNDREG(TNDWB1),='0'«, t00=0x0007, t01=0x012a}
0x0c34…0c46              Head {h00=0x000e, h01=0x000a, text=» BZ TNDP25«, t00=0x0007, t01=0x014a}
0x0c46…0c50              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0007, t01=0x015c}
0x0c50…0c86              Head {h00=0x0032, h01=0x002e, text=»* TEST IF DISPENSE ALLOWED FROPM THIS CASSETTE«, t00=0x0007, t01=0x0166}
0x0c86…0cac              Head {h00=0x0022, h01=0x0050, text=» SUB NDDATA2(KW2,TNDWB1),='0' «, t00=0x0008, t01=0x000c}
0x0cac…0cc0              Head {h00=0x0010, h01=0x000b, text=» BNZ TNDP30 «, t00=0x0008, t01=0x0032}
0x0cc0…0cd4              Head {h00=0x0010, h01=0x000b, text=» SET CASEMP «, t00=0x0008, t01=0x0046}
0x0cd4…0ce6              Head {h00=0x000e, h01=0x0009, text=» B TNDP25 «, t00=0x0008, t01=0x005a}
0x0ce6…0cf0              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0008, t01=0x006c}
0x0cf0…0d34              Head {h00=0x0040, h01=0x003c, text=»* DETERMINE  NOTES TO DISPENSE FROM THIS CASSETTE, THIS TIME«, t00=0x0008, t01=0x0076}
0x0d34…0d3e              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0008, t01=0x00ba}
0x0d3e…0d4c              Head {h00=0x000a, h01=0x0006, text=»TNDP30«, t00=0x0008, t01=0x00c4}
0x0d4c…0d74              Head {h00=0x0024, h01=0x0050, text=» MOVE NDDATA1(KW2,TNDWB1),TNDWB3«, t00=0x0008, t01=0x00d2}
0x0d74…0d98              Head {h00=0x0020, h01=0x0050, text=» MOVE TNDWB2,TNDREG(TNDWB1) «, t00=0x0008, t01=0x00fa}
0x0d98…0dcc              Head {h00=0x0030, h01=0x0050, text=» CBG TNDWB2,TNDWB3,TNDP35 BRANCH IF TOO MUCH«, t00=0x0008, t01=0x011e}
0x0dcc…0dfc              Head {h00=0x002c, h01=0x0050, text=» MOVE NDDATA1(KW2,TNDWB1),TNDREG(TNDWB1)«, t00=0x0008, t01=0x0152}
0x0dfc…0e06              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0008, t01=0x0182}
0x0e06…0e30              Head {h00=0x0026, h01=0x0050, text=»* TEST IF ENOUGH LEFT IN CASSETTE «, t00=0x0008, t01=0x018c}
0x0e30…0e3a              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x0009, t01=0x0026}
0x0e3a…0e48              Head {h00=0x000a, h01=0x0006, text=»TNDP35«, t00=0x0009, t01=0x0030}
0x0e48…0e84              Head {h00=0x0038, h01=0x0050, text=» PERF TNDREM,TNDWB1,TNDWD1 CALC. NOTES LEFT IN CASS.«, t00=0x0009, t01=0x003e}
0x0e84…0eac              Head {h00=0x0024, h01=0x0050, text=» SUB TNDWD1,NDDATA1(KW2,TNDWB1) «, t00=0x0009, t01=0x007a}
0x0eac…0ec0              Head {h00=0x0010, h01=0x000b, text=» BNN TNDP40 «, t00=0x0009, t01=0x00a2}
0x0ec0…0ef4              Head {h00=0x0030, h01=0x0050, text=» ADD NDDATA1(KW2,TNDWB1),TNDWD1 SUB OVERFLOW«, t00=0x0009, t01=0x00b6}
0x0ef4…0f16              Head {h00=0x001e, h01=0x0050, text=» BP TNDP40 STILL SOME LEFT«, t00=0x0009, t01=0x00ea}
0x0f16…0f4a              Head {h00=0x0030, h01=0x0050, text=» MOVE NDDATA2(KW2,TNDWB1),KW0 BLOCK CASSETTE«, t00=0x0009, t01=0x010c}
0x0f4a…0f7e              Head {h00=0x0030, h01=0x0050, text=» PERF NDERR,KW6 TELL APPL. ABOUT EMPTY CASS.«, t00=0x0009, t01=0x0140}
0x0f7e…0f92              Head {h00=0x0010, h01=0x000b, text=» SET CASEMP «, t00=0x0009, t01=0x0174}
0x0f92…0fb2              Head {h00=0x001c, h01=0x0050, text=» B TNDP25 NEXT CASSETTE «, t00=0x0009, t01=0x0188}
0x0fb2…0fbc              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000a, t01=0x0018}
0x0fbc…0ff6              Head {h00=0x0036, h01=0x0032, text=»* UPDATE NO. OF NOTES LEFT TO DISPENSE,  THIS TIME«, t00=0x000a, t01=0x0022}
0x0ff6…1000              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000a, t01=0x005c}
0x1000…100e              Head {h00=0x000a, h01=0x0006, text=»TNDP40«, t00=0x000a, t01=0x0066}
0x100e…1036              Head {h00=0x0024, h01=0x0050, text=» MOVE TNDWB2,NDDATA1(KW2,TNDWB1)«, t00=0x000a, t01=0x0074}
0x1036…1050              Head {h00=0x0016, h01=0x0050, text=» SUB TNDWB3,TNDWB2«, t00=0x000a, t01=0x009c}
0x1050…105a              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000a, t01=0x00b6}
0x105a…108a              Head {h00=0x002c, h01=0x0027, text=»* CALCULATE AMOUNT FROM NUMBER OF NOTES «, t00=0x000a, t01=0x00c0}
0x108a…10ac              Head {h00=0x001e, h01=0x0050, text=» MOVE TNDWD1,NOTES(TNDWB1)«, t00=0x000a, t01=0x00f0}
0x10ac…10d4              Head {h00=0x0024, h01=0x0050, text=» MUL TNDWD1,NDDATA1(KW2,TNDWB1) «, t00=0x000a, t01=0x0112}
0x10d4…10ee              Head {h00=0x0016, h01=0x0050, text=» ADD DELAMT,TNDWD1«, t00=0x000a, t01=0x013a}
0x10ee…1100              Head {h00=0x000e, h01=0x0009, text=» B TNDP25 «, t00=0x000a, t01=0x0154}
0x1100…110e              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x000a, t01=0x0166}
0x110e…1118              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000a, t01=0x0174}
0x1118…113e              Head {h00=0x0022, h01=0x001e, text=»* TEST IF ANYTHING TO DISPENSE«, t00=0x000a, t01=0x017e}
0x113e…1148              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000b, t01=0x0014}
0x1148…1156              Head {h00=0x000a, h01=0x0006, text=»TNDP45«, t00=0x000b, t01=0x001e}
0x1156…1178              Head {h00=0x001e, h01=0x0050, text=» CBE TNDWB3,MAXOUT,TNDP50 «, t00=0x000b, t01=0x002c}
0x1178…1182              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000b, t01=0x004e}
0x1182…11c8              Head {h00=0x0042, h01=0x003e, text=»* DISPENSE, IF CASSETTE EMPTY, TRY AGAIN WITHOUT THAT CASSETTE«, t00=0x000b, t01=0x0058}
0x11c8…11d2              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000b, t01=0x009e}
0x11d2…11ee              Head {h00=0x0018, h01=0x0050, text=» PERF IOTND,KW3,  C «, t00=0x000b, t01=0x00a8}
0x11ee…1200              Head {h00=0x000e, h01=0x0009, text=»  TND,  C «, t00=0x000b, t01=0x00c4}
0x1200…1214              Head {h00=0x0010, h01=0x000c, text=»  TNDWB1,  C«, t00=0x000b, t01=0x00d6}
0x1214…1228              Head {h00=0x0010, h01=0x000c, text=»  TNDWB2,  C«, t00=0x000b, t01=0x00ea}
0x1228…123c              Head {h00=0x0010, h01=0x000c, text=»  TNDWB3,  C«, t00=0x000b, t01=0x00fe}
0x123c…1250              Head {h00=0x0010, h01=0x000c, text=»  TNDWD1,  C«, t00=0x000b, t01=0x0112}
0x1250…1264              Head {h00=0x0010, h01=0x000c, text=»  TNDWS1,  C«, t00=0x000b, t01=0x0126}
0x1264…1274              Head {h00=0x000c, h01=0x0008, text=»  TNDBUF«, t00=0x000b, t01=0x013a}
0x1274…1296              Head {h00=0x001e, h01=0x0050, text=»* BRANCH ON RETURN STATUS:«, t00=0x000b, t01=0x014a}
0x1296…12c6              Head {h00=0x002c, h01=0x0050, text=»* TND ERROR, TND BLOCKED, CASSETTE EMPTY«, t00=0x000b, t01=0x016c}
0x12c6…12ec              Head {h00=0x0022, h01=0x001e, text=» IB TNDST,TNDPER,TNDPER,TNDP20«, t00=0x000c, t01=0x000c}
0x12ec…12f4              Head {h00=0x0004, h01=0x0050, t00=0x000c, t01=0x0032}
0x12f4…1320              Head {h00=0x0028, h01=0x0050, text=»* DISPENSE SUCCESSFUL, DELIVER NOTES«, t00=0x000c, t01=0x003a}
0x1320…1328              Head {h00=0x0004, h01=0x0050, t00=0x000c, t01=0x0066}
0x1328…1344              Head {h00=0x0018, h01=0x0050, text=» PERF IOTND,KW4,  C «, t00=0x000c, t01=0x006e}
0x1344…1356              Head {h00=0x000e, h01=0x0009, text=»  TND,  C «, t00=0x000c, t01=0x008a}
0x1356…136a              Head {h00=0x0010, h01=0x000c, text=»  TNDWB1,  C«, t00=0x000c, t01=0x009c}
0x136a…137e              Head {h00=0x0010, h01=0x000c, text=»  TNDWB2,  C«, t00=0x000c, t01=0x00b0}
0x137e…1392              Head {h00=0x0010, h01=0x000c, text=»  TNDWB3,  C«, t00=0x000c, t01=0x00c4}
0x1392…13a6              Head {h00=0x0010, h01=0x000c, text=»  TNDWD1,  C«, t00=0x000c, t01=0x00d8}
0x13a6…13ba              Head {h00=0x0010, h01=0x000c, text=»  TNDWS1,  C«, t00=0x000c, t01=0x00ec}
0x13ba…13ca              Head {h00=0x000c, h01=0x0008, text=»  TNDBUF«, t00=0x000c, t01=0x0100}
0x13ca…13d2              Head {h00=0x0004, h01=0x0050, t00=0x000c, t01=0x0110}
0x13d2…13f4              Head {h00=0x001e, h01=0x0050, text=»* BRANCH ON RETURN STATUS:«, t00=0x000c, t01=0x0118}
0x13f4…143c              Head {h00=0x0044, h01=0x0050, text=»* TND ERROR, TND BLOCKED, POWER FAIL BETWEEN DISPENSE & DELIVER «, t00=0x000c, t01=0x013a}
0x143c…1444              Head {h00=0x0004, h01=0x0050, t00=0x000c, t01=0x0182}
0x1444…1464              Head {h00=0x001c, h01=0x0050, text=» IB TNDST,TNDPER,TNDPER «, t00=0x000c, t01=0x018a}
0x1464…147c              Head {h00=0x0014, h01=0x000f, text=» ADD AMT,DELAMT «, t00=0x000d, t01=0x001a}
0x147c…148e              Head {h00=0x000e, h01=0x000a, text=» SET PAYOK«, t00=0x000d, t01=0x0032}
0x148e…14a0              Head {h00=0x000e, h01=0x0009, text=» B TNDP20 «, t00=0x000d, t01=0x0044}
0x14a0…14ae              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x000d, t01=0x0056}
0x14ae…14b8              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000d, t01=0x0064}
0x14b8…14fc              Head {h00=0x0040, h01=0x003b, text=»*DELIVERED WHAT WE COULD, DETACH TND, TEST IF ANYTHING PAID «, t00=0x000d, t01=0x006e}
0x14fc…1506              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000d, t01=0x00b2}
0x1506…1514              Head {h00=0x000a, h01=0x0006, text=»TNDP50«, t00=0x000d, t01=0x00bc}
0x1514…151e              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000d, t01=0x00ca}
0x151e…155c              Head {h00=0x003a, h01=0x0050, text=»* REPORT ANY CASSETTES THAT ARE EMPTY BUT NOT REPORTED«, t00=0x000d, t01=0x00d4}
0x155c…1592              Head {h00=0x0032, h01=0x0050, text=»* BY "IOTND"  BECAUSE DISPENSE WAS SUCCESSFUL «, t00=0x000d, t01=0x0112}
0x1592…159c              Head {h00=0x0006, h01=0x0050, text=»* «, t00=0x000d, t01=0x0148}
0x159c…15c4              Head {h00=0x0024, h01=0x0050, text=» MOVE TNDWB1,KW0 CASSETTE INDEX «, t00=0x000d, t01=0x0152}
0x15c4…15d2              Head {h00=0x000a, h01=0x0050, text=»TNDP52«, t00=0x000d, t01=0x017a}
0x15d2…15f8              Head {h00=0x0022, h01=0x0050, text=» ADD TNDWB1,KW1 NEXT CASSETTE «, t00=0x000d, t01=0x0188}
0x15f8…1628              Head {h00=0x002c, h01=0x0050, text=» CBG TNDWB1,CASMAX,TNDP53 BRANCH IF DONE«, t00=0x000e, t01=0x001e}
0x1628…164e              Head {h00=0x0022, h01=0x0050, text=» SUB NDDATA2(KW2,TNDWB1),='0' «, t00=0x000e, t01=0x004e}
0x164e…1678              Head {h00=0x0026, h01=0x0050, text=» BZ TNDP52 ALREADY REPORTED EMPTY?«, t00=0x000e, t01=0x0074}
0x1678…16b0              Head {h00=0x0034, h01=0x0050, text=» PERF TNDREM,TNDWB1,TNDWD1 GET AMOUNT REMAINING «, t00=0x000e, t01=0x009e}
0x16b0…16da              Head {h00=0x0026, h01=0x0050, text=» SUB TNDWD1,=D'0' AMOUNT REMAINING«, t00=0x000e, t01=0x00d6}
0x16da…16f6              Head {h00=0x0018, h01=0x0050, text=» BP TNDP52 NOT EMPTY«, t00=0x000e, t01=0x0100}
0x16f6…1732              Head {h00=0x0038, h01=0x0050, text=» MOVE NDDATA2(KW2,TNDWB1),KW0 FLAG CASSETTE AS EMPTY«, t00=0x000e, t01=0x011c}
0x1732…1760              Head {h00=0x002a, h01=0x0050, text=» PERF NDERR,KW6 REPORT TO APPLICATIONS«, t00=0x000e, t01=0x0158}
0x1760…1780              Head {h00=0x001c, h01=0x0050, text=» B TNDP52 NEXT CASSETTE «, t00=0x000e, t01=0x0186}
0x1780…178e              Head {h00=0x000a, h01=0x0050, text=»TNDP53«, t00=0x000f, t01=0x0016}
0x178e…17a8              Head {h00=0x0016, h01=0x0050, text=» TBT PAYOK,TNDP55 «, t00=0x000f, t01=0x0024}
0x17a8…17b4              Head {h00=0x0008, h01=0x0004, text=» RET«, t00=0x000f, t01=0x003e}
0x17b4…17be              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x004a}
0x17be…17d6              Head {h00=0x0014, h01=0x0010, text=»* PAID SOMETHING«, t00=0x000f, t01=0x0054}
0x17d6…17e0              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x006c}
0x17e0…17ee              Head {h00=0x000a, h01=0x0006, text=»TNDP55«, t00=0x000f, t01=0x0076}
0x17ee…180a              Head {h00=0x0018, h01=0x0050, text=» TBT CASEMP,TNDPER1 «, t00=0x000f, t01=0x0084}
0x180a…1814              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x00a0}
0x1814…1826              Head {h00=0x000e, h01=0x000a, text=»* PAID ALL«, t00=0x000f, t01=0x00aa}
0x1826…1830              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x00bc}
0x1830…183e              Head {h00=0x000a, h01=0x0006, text=» RET 4«, t00=0x000f, t01=0x00c6}
0x183e…184c              Head {h00=0x000a, h01=0x0006, text=» EJECT«, t00=0x000f, t01=0x00d4}
0x184c…1856              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x00e2}
0x1856…187c              Head {h00=0x0022, h01=0x0050, text=»* ERROR  TEST IF ANYTHING PAID«, t00=0x000f, t01=0x00ec}
0x187c…1886              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x0112}
0x1886…1894              Head {h00=0x000a, h01=0x0006, text=»TNDPER«, t00=0x000f, t01=0x011c}
0x1894…18ae              Head {h00=0x0016, h01=0x0012, text=» TBT PAYOK,TNDPER1«, t00=0x000f, t01=0x012a}
0x18ae…18ba              Head {h00=0x0008, h01=0x0004, text=» RET«, t00=0x000f, t01=0x0144}
0x18ba…18c4              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x0150}
0x18c4…18e2              Head {h00=0x001a, h01=0x0015, text=»* ERROR BUT PAID PART «, t00=0x000f, t01=0x015a}
0x18e2…18ec              Head {h00=0x0006, h01=0x0003, text=»* «, t00=0x000f, t01=0x0178}
0x18ec…18fc              Head {h00=0x000c, h01=0x0007, text=»TNDPER1 «, t00=0x000f, t01=0x0182}
0x18fc…190a (16, 2, 48)  Head {h00=0x000a, h01=0x0006, text=» RET 2«, t00=0x0010, t01=0x0004}
0x190a…1918              Head {h00=0x000a, h01=0x0005, text=» PEND «, t00=0x0010, t01=0x0012}
0x1918…1924              Head {h00=0x0008, h01=0x0004, text=» END«, t00=0x0010, t01=0x0020}
0x1924…1928              Head {h00=0x4004, h01=0x0000}
0x1928…192c              00 10 00 2c                                                                                                                                                                                                                                       ┆   ,┆
0x192c…1934 (17, 1, 8)   20 04 00 00 00 11 00 04                                                                                                                                                                                                                           ┆        ┆

Reduced view